# HG changeset patch # User alanb # Date 1458241448 0 # Node ID 116e5d5cdaded6916c3ecb07092cb221f090fe65 # Parent 0017f3cf1657e68a590a3b6975abbd5ade25bd48 8142968: Module System implementation Summary: Initial integration of JEP 200, JEP 260, JEP 261, and JEP 282 Reviewed-by: lancea, mchung Contributed-by: alan.bateman@oracle.com, alex.buckley@oracle.com, jonathan.gibbons@oracle.com, karen.kinnear@oracle.com, mandy.chung@oracle.com, mark.reinhold@oracle.com, miroslav.kos@oracle.com, erik.joelsson@oracle.com diff -r 0017f3cf1657 -r 116e5d5cdade jaxws/src/java.activation/share/classes/javax/activation/DataContentHandler.java --- a/jaxws/src/java.activation/share/classes/javax/activation/DataContentHandler.java Tue Mar 15 13:48:25 2016 -0700 +++ b/jaxws/src/java.activation/share/classes/javax/activation/DataContentHandler.java Thu Mar 17 19:04:08 2016 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -33,18 +33,23 @@ import javax.activation.DataSource; /** - * The DataContentHandler interface is implemented by objects that can + *

The DataContentHandler interface is implemented by objects that can * be used to extend the capabilities of the DataHandler's implementation * of the Transferable interface. Through DataContentHandlers * the framework can be extended to convert streams in to objects, and - * to write objects to streams.

+ * to write objects to streams.

* - * Applications don't generally call the methods in DataContentHandlers + *

An implementation of DataContentHandler should be a public class + * with a public no-arg constructor. If the implementation class is in + * a named module then it should be in an API package that is exported + * to the module {@code java.activation}.

+ * + *

Applications don't generally call the methods in DataContentHandlers * directly. Instead, an application calls the equivalent methods in * DataHandler. The DataHandler will attempt to find an appropriate * DataContentHandler that corresponds to its MIME type using the * current DataContentHandlerFactory. The DataHandler then calls - * through to the methods in the DataContentHandler. + * through to the methods in the DataContentHandler.

* * @since 1.6 */ diff -r 0017f3cf1657 -r 116e5d5cdade jaxws/src/java.activation/share/classes/javax/activation/MailcapCommandMap.java --- a/jaxws/src/java.activation/share/classes/javax/activation/MailcapCommandMap.java Tue Mar 15 13:48:25 2016 -0700 +++ b/jaxws/src/java.activation/share/classes/javax/activation/MailcapCommandMap.java Thu Mar 17 19:04:08 2016 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -580,8 +580,7 @@ // if anything goes wrong, do it the old way cl = Class.forName(name); } - if (cl != null) // XXX - always true? - return (DataContentHandler)cl.newInstance(); + return (DataContentHandler) cl.newInstance(); } catch (IllegalAccessException e) { if (LogSupport.isLoggable()) LogSupport.log("Can't load DCH " + name, e); diff -r 0017f3cf1657 -r 116e5d5cdade jaxws/src/java.activation/share/classes/module-info.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jaxws/src/java.activation/share/classes/module-info.java Thu Mar 17 19:04:08 2016 +0000 @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +module java.activation { + requires public java.datatransfer; + // dependence on java.beans.Beans to be eliminated + requires java.desktop; + requires java.logging; + + exports javax.activation; +} + diff -r 0017f3cf1657 -r 116e5d5cdade jaxws/src/java.annotations.common/share/classes/module-info.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jaxws/src/java.annotations.common/share/classes/module-info.java Thu Mar 17 19:04:08 2016 +0000 @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +module java.annotations.common { + exports javax.annotation; +} + diff -r 0017f3cf1657 -r 116e5d5cdade jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/ClassFactory.java --- a/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/ClassFactory.java Tue Mar 15 13:48:25 2016 -0700 +++ b/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/ClassFactory.java Thu Mar 17 19:04:08 2016 +0000 @@ -113,7 +113,6 @@ m.put(clazz,new WeakReference(cons)); } - return cons.newInstance(emptyObject); } diff -r 0017f3cf1657 -r 116e5d5cdade jaxws/src/java.xml.bind/share/classes/module-info.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jaxws/src/java.xml.bind/share/classes/module-info.java Thu Mar 17 19:04:08 2016 +0000 @@ -0,0 +1,136 @@ +/* + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +module java.xml.bind { + requires public java.activation; + requires public java.xml; + requires java.compiler; + requires java.desktop; + requires java.logging; + + uses javax.xml.bind.JAXBContextFactory; + + exports javax.xml.bind; + exports javax.xml.bind.annotation; + exports javax.xml.bind.annotation.adapters; + exports javax.xml.bind.attachment; + exports javax.xml.bind.helpers; + exports javax.xml.bind.util; + exports com.sun.istack.internal to + java.xml.ws, + jdk.xml.bind, + jdk.xml.ws; + exports com.sun.istack.internal.localization to + java.xml.ws, + jdk.xml.ws; + exports com.sun.istack.internal.logging to + java.xml.ws, + jdk.xml.ws; + exports com.sun.xml.internal.bind to + java.xml.ws, + jdk.xml.bind, + jdk.xml.ws; + exports com.sun.xml.internal.bind.annotation to + jdk.xml.bind; + exports com.sun.xml.internal.bind.api to + java.xml.ws, + jdk.xml.bind; + exports com.sun.xml.internal.bind.api.impl to + java.xml.ws, + jdk.xml.bind; + exports com.sun.xml.internal.bind.marshaller to + java.xml.ws, + jdk.xml.bind, + jdk.xml.ws; + exports com.sun.xml.internal.bind.unmarshaller to + java.xml.ws, + jdk.xml.bind, + jdk.xml.ws; + exports com.sun.xml.internal.bind.util to + java.xml.ws, + jdk.xml.bind, + jdk.xml.ws; + exports com.sun.xml.internal.bind.v2 to + java.xml.ws, + jdk.xml.bind, + jdk.xml.ws; + exports com.sun.xml.internal.bind.v2.model.annotation to + java.xml.ws, + jdk.xml.bind, + jdk.xml.ws; + exports com.sun.xml.internal.bind.v2.model.core to + jdk.xml.bind; + exports com.sun.xml.internal.bind.v2.model.impl to + jdk.xml.bind; + exports com.sun.xml.internal.bind.v2.model.nav to + java.xml.ws, + jdk.xml.bind, + jdk.xml.ws; + exports com.sun.xml.internal.bind.v2.model.runtime to + java.xml.ws; + exports com.sun.xml.internal.bind.v2.model.util to + jdk.xml.bind; + exports com.sun.xml.internal.bind.v2.runtime to + java.xml.ws, + jdk.xml.bind; + exports com.sun.xml.internal.bind.v2.runtime.unmarshaller to + java.xml.ws; + exports com.sun.xml.internal.bind.v2.schemagen to + java.xml.ws, + jdk.xml.bind; + exports com.sun.xml.internal.bind.v2.schemagen.episode to + jdk.xml.bind; + exports com.sun.xml.internal.bind.v2.schemagen.xmlschema to + java.xml.ws; + exports com.sun.xml.internal.bind.v2.util to + jdk.xml.bind, + jdk.xml.ws; + exports com.sun.xml.internal.fastinfoset to + java.xml.ws; + exports com.sun.xml.internal.fastinfoset.stax to + java.xml.ws; + exports com.sun.xml.internal.fastinfoset.vocab to + java.xml.ws; + exports com.sun.xml.internal.org.jvnet.fastinfoset to + java.xml.ws; + exports com.sun.xml.internal.org.jvnet.mimepull to + java.xml.ws; + exports com.sun.xml.internal.org.jvnet.staxex to + java.xml.ws; + exports com.sun.xml.internal.org.jvnet.staxex.util to + java.xml.ws; + exports com.sun.xml.internal.txw2 to + java.xml.ws, + jdk.xml.bind, + jdk.xml.ws; + exports com.sun.xml.internal.txw2.annotation to + java.xml.ws, + jdk.xml.bind, + jdk.xml.ws; + exports com.sun.xml.internal.txw2.output to + java.xml.ws, + jdk.xml.bind, + jdk.xml.ws; +} diff -r 0017f3cf1657 -r 116e5d5cdade jaxws/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/api/server/SDDocumentSource.java --- a/jaxws/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/api/server/SDDocumentSource.java Tue Mar 15 13:48:25 2016 -0700 +++ b/jaxws/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/api/server/SDDocumentSource.java Thu Mar 17 19:04:08 2016 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -26,6 +26,7 @@ package com.sun.xml.internal.ws.api.server; import com.sun.xml.internal.stream.buffer.XMLStreamBuffer; +import com.sun.xml.internal.ws.server.ServerRtException; import com.sun.xml.internal.ws.streaming.TidyXMLStreamReader; import com.sun.xml.internal.ws.api.streaming.XMLStreamReaderFactory; @@ -34,6 +35,7 @@ import javax.xml.stream.XMLStreamReader; import java.io.IOException; import java.io.InputStream; +import java.net.MalformedURLException; import java.net.URL; /** @@ -112,6 +114,48 @@ } /** + * Creates {@link SDDocumentSource} from resource path using resolvingClass to read the resource. + * Required for Jigsaw runtime. + * + * @param resolvingClass class used to read resource + * @param path resource path + */ + public static SDDocumentSource create(final Class resolvingClass, final String path) { + return new SDDocumentSource() { + + public XMLStreamReader read(XMLInputFactory xif) throws IOException, XMLStreamException { + InputStream is = inputStream(); + return new TidyXMLStreamReader(xif.createXMLStreamReader(path,is), is); + } + + public XMLStreamReader read() throws IOException, XMLStreamException { + InputStream is = inputStream(); + return new TidyXMLStreamReader(XMLStreamReaderFactory.create(path,is,false), is); + } + + public URL getSystemId() { + try { + return new URL("file://" + path); + } catch (MalformedURLException e) { + return null; + } + } + + private InputStream inputStream() throws IOException { + java.lang.reflect.Module module = resolvingClass.getModule(); + if (module != null) { + InputStream stream = module.getResourceAsStream(path); + if (stream != null) { + return stream; + } + } + throw new ServerRtException("cannot.load.wsdl", path); + } + + }; + } + + /** * Creates a {@link SDDocumentSource} from {@link XMLStreamBuffer}. */ public static SDDocumentSource create(final URL systemId, final XMLStreamBuffer xsb) { diff -r 0017f3cf1657 -r 116e5d5cdade jaxws/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/transport/http/server/EndpointImpl.java --- a/jaxws/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/transport/http/server/EndpointImpl.java Tue Mar 15 13:48:25 2016 -0700 +++ b/jaxws/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/transport/http/server/EndpointImpl.java Thu Mar 17 19:04:08 2016 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -372,7 +372,7 @@ if (url != null) { return SDDocumentSource.create(url); } - throw new ServerRtException("cannot.load.wsdl", wsdlLocation); + return SDDocumentSource.create(implClass, wsdlLocation); } return null; } diff -r 0017f3cf1657 -r 116e5d5cdade jaxws/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/util/HandlerAnnotationProcessor.java --- a/jaxws/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/util/HandlerAnnotationProcessor.java Tue Mar 15 13:48:25 2016 -0700 +++ b/jaxws/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/util/HandlerAnnotationProcessor.java Thu Mar 17 19:04:08 2016 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -197,28 +197,62 @@ return null; } - static InputStream getFileAsStream(Class clazz, HandlerChain chain) { - URL url = clazz.getResource(chain.file()); - if (url == null) { - url = Thread.currentThread().getContextClassLoader(). - getResource(chain.file()); - } - if (url == null) { - String tmp = clazz.getPackage().getName(); - tmp = tmp.replace('.', '/'); - tmp += "/" + chain.file(); - url = - Thread.currentThread().getContextClassLoader().getResource(tmp); - } + static InputStream getFileAsStream(Class clazz, HandlerChain chain) { + Package pkg = clazz.getPackage(); + String filename = chain.file(); + String fullpath = addPackagePath(filename, pkg); + InputStream is; + + is = moduleResource(clazz, filename); + if (is != null) return is; + + is = moduleResource(clazz, fullpath); + if (is != null) return is; + + URL url = cpResource(clazz, filename); + if (url == null) url = cpResource(clazz, fullpath); + if (url == null) { throw new UtilException("util.failed.to.find.handlerchain.file", - clazz.getName(), chain.file()); + clazz.getName(), filename); } try { return url.openStream(); } catch (IOException e) { throw new UtilException("util.failed.to.parse.handlerchain.file", - clazz.getName(), chain.file()); + clazz.getName(), filename); } } + + private static URL cpResource(Class clazz, String name) { + URL url = clazz.getResource(name); + if (url == null) { + ClassLoader tccl = Thread.currentThread().getContextClassLoader(); + url = tccl.getResource(name); + } + return url; + } + + private static InputStream moduleResource(Class resolvingClass, String name) { + java.lang.reflect.Module module = resolvingClass.getModule(); + if (module != null) { + try { + InputStream stream = module.getResourceAsStream(name); + if (stream != null) { + return stream; + } + } catch(IOException e) { + throw new UtilException("util.failed.to.find.handlerchain.file", + resolvingClass.getName(), name); + } + } + return null; + } + + private static String addPackagePath(String file, Package pkg) { + String tmp = pkg.getName(); + tmp = tmp.replace('.', '/'); + tmp += "/" + file; + return tmp; + } } diff -r 0017f3cf1657 -r 116e5d5cdade jaxws/src/java.xml.ws/share/classes/module-info.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jaxws/src/java.xml.ws/share/classes/module-info.java Thu Mar 17 19:04:08 2016 +0000 @@ -0,0 +1,113 @@ +/* + * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +module java.xml.ws { + requires public java.activation; + requires public java.xml; + requires public java.xml.bind; + requires java.annotations.common; + requires java.desktop; + requires java.logging; + requires java.management; + requires java.rmi; + requires jdk.httpserver; + + uses javax.xml.ws.spi.Provider; + uses javax.xml.soap.MessageFactory; + uses javax.xml.soap.SAAJMetaFactory; + uses javax.xml.soap.SOAPConnectionFactory; + uses javax.xml.soap.SOAPFactory; + + exports javax.jws; + exports javax.jws.soap; + exports javax.xml.soap; + exports javax.xml.ws; + exports javax.xml.ws.handler; + exports javax.xml.ws.handler.soap; + exports javax.xml.ws.http; + exports javax.xml.ws.soap; + exports javax.xml.ws.spi; + exports javax.xml.ws.spi.http; + exports javax.xml.ws.wsaddressing; + + exports com.oracle.webservices.internal.api.databinding to + jdk.xml.ws; + exports com.sun.xml.internal.ws.addressing to + jdk.xml.ws, + java.xml.bind; + exports com.sun.xml.internal.ws.addressing.v200408 to + jdk.xml.ws; + exports com.sun.xml.internal.ws.api to + jdk.xml.ws; + exports com.sun.xml.internal.ws.api.addressing to + jdk.xml.ws; + exports com.sun.xml.internal.ws.api.databinding to + jdk.xml.ws; + exports com.sun.xml.internal.ws.api.model to + jdk.xml.ws; + exports com.sun.xml.internal.ws.api.server to + jdk.xml.ws; + exports com.sun.xml.internal.ws.api.streaming to + jdk.xml.ws; + exports com.sun.xml.internal.ws.api.wsdl.parser to + jdk.xml.ws; + exports com.sun.xml.internal.ws.api.wsdl.writer to + jdk.xml.ws; + exports com.sun.xml.internal.ws.binding to + jdk.xml.ws; + exports com.sun.xml.internal.ws.db to + jdk.xml.ws; + exports com.sun.xml.internal.ws.model to + jdk.xml.ws; + exports com.sun.xml.internal.ws.policy.sourcemodel.wspolicy to + jdk.xml.ws; + exports com.sun.xml.internal.ws.spi.db to + jdk.xml.ws; + exports com.sun.xml.internal.ws.streaming to + jdk.xml.ws; + exports com.sun.xml.internal.ws.util to + jdk.xml.ws; + exports com.sun.xml.internal.ws.util.exception to + jdk.xml.ws; + exports com.sun.xml.internal.ws.util.xml to + jdk.xml.ws; + exports com.sun.xml.internal.ws.wsdl.parser to + jdk.xml.ws; + exports com.sun.xml.internal.ws.wsdl.writer to + jdk.xml.ws; + + // XML document content needs to be exported + exports com.sun.xml.internal.ws.runtime.config to java.xml.bind; + + // com.sun.xml.internal.ws.fault.SOAPFaultBuilder uses JAXBContext.newInstance + exports com.sun.xml.internal.ws.fault to java.xml.bind; + + // JAF data handlers + exports com.sun.xml.internal.messaging.saaj.soap to + java.activation; + exports com.sun.xml.internal.ws.encoding to + java.activation; +} + diff -r 0017f3cf1657 -r 116e5d5cdade jaxws/src/jdk.xml.bind/share/classes/com/sun/codemodel/internal/fmt/JStaticJavaFile.java --- a/jaxws/src/jdk.xml.bind/share/classes/com/sun/codemodel/internal/fmt/JStaticJavaFile.java Tue Mar 15 13:48:25 2016 -0700 +++ b/jaxws/src/jdk.xml.bind/share/classes/com/sun/codemodel/internal/fmt/JStaticJavaFile.java Thu Mar 17 19:04:08 2016 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -33,7 +33,6 @@ import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.PrintWriter; -import java.net.URL; import java.text.ParseException; import java.util.Iterator; import java.util.List; @@ -69,22 +68,17 @@ private final JPackage pkg; private final String className; - private final URL source; + private final ResourceLoader source; private final JStaticClass clazz; private final LineFilter filter; - public JStaticJavaFile(JPackage _pkg, String className, String _resourceName) { - this( _pkg, className, - SecureLoader.getClassClassLoader(JStaticJavaFile.class).getResource(_resourceName), null ); - } - - public JStaticJavaFile(JPackage _pkg, String _className, URL _source, LineFilter _filter ) { - super(_className+".java"); - if(_source==null) throw new NullPointerException(); + public JStaticJavaFile(JPackage _pkg, String _className, Class loadingClass, LineFilter _filter) { + super(_className + ".java"); + if (loadingClass == null) throw new NullPointerException(); this.pkg = _pkg; this.clazz = new JStaticClass(); this.className = _className; - this.source = _source; + this.source = new ResourceLoader(_className, loadingClass); this.filter = _filter; } @@ -100,14 +94,13 @@ } protected void build(OutputStream os) throws IOException { - InputStream is = source.openStream(); - - BufferedReader r = new BufferedReader(new InputStreamReader(is)); - PrintWriter w = new PrintWriter(new BufferedWriter(new OutputStreamWriter(os))); - LineFilter filter = createLineFilter(); int lineNumber=1; - - try { + try ( + InputStream is = source.getResourceAsStream(); + BufferedReader r = new BufferedReader(new InputStreamReader(is)); + PrintWriter w = new PrintWriter(new BufferedWriter(new OutputStreamWriter(os))); + ) { + LineFilter filter = createLineFilter(); String line; while((line=r.readLine())!=null) { line = filter.process(line); @@ -118,9 +111,6 @@ } catch( ParseException e ) { throw new IOException("unable to process "+source+" line:"+lineNumber+"\n"+e.getMessage()); } - - w.close(); - r.close(); } /** @@ -235,5 +225,32 @@ protected JClass substituteParams(JTypeVar[] variables, List bindings) { return this; } - }; + } + + static class ResourceLoader { + Class loadingClass; + String shortName; + + ResourceLoader(String shortName, Class loadingClass) { + this.loadingClass = loadingClass; + this.shortName = shortName; + } + + InputStream getResourceAsStream() { + // some people didn't like our jars to contain files with .java extension, + // so when we build jars, we'' use ".java_". But when we run from the workspace, + // we want the original source code to be used, so we check both here. + // see bug 6211503. + InputStream stream = loadingClass.getResourceAsStream(shortName + ".java"); + if (stream == null) { + stream = loadingClass.getResourceAsStream(shortName + ".java_"); + } + if (stream == null) { + throw new InternalError("Unable to load source code of " + loadingClass.getName() + " as a resource"); + } + return stream; + } + + } + } diff -r 0017f3cf1657 -r 116e5d5cdade jaxws/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/generator/bean/BeanGenerator.java --- a/jaxws/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/generator/bean/BeanGenerator.java Tue Mar 15 13:48:25 2016 -0700 +++ b/jaxws/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/generator/bean/BeanGenerator.java Thu Mar 17 19:04:08 2016 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -28,7 +28,6 @@ import static com.sun.tools.internal.xjc.outline.Aspect.EXPOSED; import java.io.Serializable; -import java.net.URL; import java.util.Collection; import java.util.HashMap; import java.util.LinkedHashMap; @@ -809,26 +808,14 @@ } public JClass generateStaticClass(Class src, JPackage out) { - String shortName = getShortName(src.getName()); - - // some people didn't like our jars to contain files with .java extension, - // so when we build jars, we'' use ".java_". But when we run from the workspace, - // we want the original source code to be used, so we check both here. - // see bug 6211503. - URL res = src.getResource(shortName + ".java"); - if (res == null) { - res = src.getResource(shortName + ".java_"); - } - if (res == null) { - throw new InternalError("Unable to load source code of " + src.getName() + " as a resource"); - } - - JStaticJavaFile sjf = new JStaticJavaFile(out, shortName, res, null); + JStaticJavaFile sjf = new JStaticJavaFile(out, getShortName(src), src, null); out.addResourceFile(sjf); return sjf.getJClass(); } - private String getShortName(String name) { + private String getShortName(Class src) { + String name = src.getName(); return name.substring(name.lastIndexOf('.') + 1); } + } diff -r 0017f3cf1657 -r 116e5d5cdade jaxws/src/jdk.xml.bind/share/classes/module-info.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jaxws/src/jdk.xml.bind/share/classes/module-info.java Thu Mar 17 19:04:08 2016 +0000 @@ -0,0 +1,73 @@ +/* + * Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +module jdk.xml.bind { + requires java.activation; + requires java.compiler; + requires java.desktop; + requires java.logging; + requires java.xml; + requires java.xml.bind; + requires jdk.compiler; + + exports com.sun.codemodel.internal to + jdk.xml.ws; + exports com.sun.codemodel.internal.writer to + jdk.xml.ws; + exports com.sun.istack.internal.tools to + jdk.xml.ws; + exports com.sun.tools.internal.jxc.ap to + jdk.xml.ws; + exports com.sun.tools.internal.jxc.model.nav to + jdk.xml.ws; + exports com.sun.tools.internal.xjc to + jdk.xml.ws; + exports com.sun.tools.internal.xjc.api to + jdk.xml.ws; + exports com.sun.tools.internal.xjc.reader to + jdk.xml.ws; + exports com.sun.tools.internal.xjc.reader.internalizer to + jdk.xml.ws; + exports com.sun.tools.internal.xjc.util to + jdk.xml.ws; + exports com.sun.xml.internal.xsom.parser to + jdk.xml.ws; + + // XML document content needs to be exported + exports com.sun.tools.internal.xjc.reader.xmlschema.bindinfo to + java.xml.bind; + + // com.sun.tools.internal.xjc.reader.xmlschema.bindinfo.BindInfo uses JAXBContext + exports com.sun.tools.internal.xjc.generator.bean to java.xml.bind; + + uses com.sun.tools.internal.xjc.Plugin; + provides com.sun.tools.internal.xjc.Plugin with com.sun.tools.internal.xjc.addon.accessors.PluginImpl; + provides com.sun.tools.internal.xjc.Plugin with com.sun.tools.internal.xjc.addon.at_generated.PluginImpl; + provides com.sun.tools.internal.xjc.Plugin with com.sun.tools.internal.xjc.addon.code_injector.PluginImpl; + provides com.sun.tools.internal.xjc.Plugin with com.sun.tools.internal.xjc.addon.episode.PluginImpl; + provides com.sun.tools.internal.xjc.Plugin with com.sun.tools.internal.xjc.addon.locator.SourceLocationAddOn; + provides com.sun.tools.internal.xjc.Plugin with com.sun.tools.internal.xjc.addon.sync.SynchronizedMethodAddOn; +} + diff -r 0017f3cf1657 -r 116e5d5cdade jaxws/src/jdk.xml.ws/share/classes/module-info.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jaxws/src/jdk.xml.ws/share/classes/module-info.java Thu Mar 17 19:04:08 2016 +0000 @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +module jdk.xml.ws { + requires java.compiler; + requires java.logging; + requires java.rmi; + requires java.xml; + requires java.xml.bind; + requires java.xml.ws; + requires jdk.xml.bind; + + uses com.sun.tools.internal.ws.wscompile.Plugin; + provides com.sun.tools.internal.ws.wscompile.Plugin with com.sun.tools.internal.ws.wscompile.plugin.at_generated.PluginImpl; +} +