--- old/jaxws/src/java.xml.bind/share/classes/javax/xml/bind/JAXBContext.java 2017-06-01 18:20:50.485569715 +0100
+++ new/jaxws/src/java.xml.bind/share/classes/javax/xml/bind/JAXBContext.java 2017-06-01 18:20:50.429569715 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -27,11 +27,11 @@
import org.w3c.dom.Node;
+import java.io.IOException;
+import java.io.InputStream;
import java.util.Collections;
import java.util.Map;
import java.util.Properties;
-import java.io.IOException;
-import java.io.InputStream;
/**
* The {@code JAXBContext} class provides the client's entry point to the
@@ -227,6 +227,9 @@
* This phase of the look up allows some packages to force the use of a certain JAXB implementation.
* (For example, perhaps the schema compiler has generated some vendor extension in the code.)
*
+ *
+ * This configuration method is deprecated.
+ *
*
* If the system property {@link #JAXB_CONTEXT_FACTORY} exists, then its value is assumed to be the provider
* factory class. If no such property exists, properties {@code "javax.xml.bind.context.factory"} and
@@ -332,7 +335,14 @@
* the context class loader of the current thread.
*
* @throws JAXBException if an error was encountered while creating the
- * {@code JAXBContext}. See {@link JAXBContext#newInstance(String, ClassLoader, Map)} for details.
+ * {@code JAXBContext} such as
+ *
+ * - failure to locate either ObjectFactory.class or jaxb.index in the packages
+ * - an ambiguity among global elements contained in the contextPath
+ * - failure to locate a value for the context factory provider property
+ * - mixing schema derived packages from different providers on the same contextPath
+ * - packages are not open to {@code java.xml.bind} module
+ *
*/
public static JAXBContext newInstance( String contextPath )
throws JAXBException {
@@ -414,16 +424,26 @@
*
* The steps involved in discovering the JAXB implementation is discussed in the class javadoc.
*
- * @param contextPath list of java package names that contain schema
- * derived class and/or java to schema (JAXB-annotated)
- * mapped classes
+ * @param contextPath
+ * List of java package names that contain schema
+ * derived class and/or java to schema (JAXB-annotated)
+ * mapped classes.
+ * Packages in {@code contextPath} that are in named modules must be
+ * {@linkplain java.lang.Module#isOpen open} to at least the {@code java.xml.bind} module.
* @param classLoader
* This class loader will be used to locate the implementation
* classes.
*
* @return a new instance of a {@code JAXBContext}
* @throws JAXBException if an error was encountered while creating the
- * {@code JAXBContext}. See {@link JAXBContext#newInstance(String, ClassLoader, Map)} for details.
+ * {@code JAXBContext} such as
+ *
+ * - failure to locate either ObjectFactory.class or jaxb.index in the packages
+ * - an ambiguity among global elements contained in the contextPath
+ * - failure to locate a value for the context factory provider property
+ * - mixing schema derived packages from different providers on the same contextPath
+ * - packages are not open to {@code java.xml.bind} module
+ *
*/
public static JAXBContext newInstance( String contextPath, ClassLoader classLoader ) throws JAXBException {
@@ -442,7 +462,12 @@
* The interpretation of properties is up to implementations. Implementations must
* throw {@code JAXBException} if it finds properties that it doesn't understand.
*
- * @param contextPath list of java package names that contain schema derived classes
+ * @param contextPath
+ * List of java package names that contain schema
+ * derived class and/or java to schema (JAXB-annotated)
+ * mapped classes.
+ * Packages in {@code contextPath} that are in named modules must be
+ * {@linkplain java.lang.Module#isOpen open} to at least the {@code java.xml.bind} module.
* @param classLoader
* This class loader will be used to locate the implementation classes.
* @param properties
@@ -457,6 +482,7 @@
* an ambiguity among global elements contained in the contextPath
* failure to locate a value for the context factory provider property
* mixing schema derived packages from different providers on the same contextPath
+ * packages are not open to {@code java.xml.bind} module
*
* @since 1.6, JAXB 2.0
*/
@@ -588,15 +614,27 @@
* The steps involved in discovering the JAXB implementation is discussed in the class javadoc.
*
* @param classesToBeBound
- * list of java classes to be recognized by the new {@link JAXBContext}.
+ * List of java classes to be recognized by the new {@link JAXBContext}.
+ * Classes in {@code classesToBeBound} that are in named modules must be in a package
+ * that is {@linkplain java.lang.Module#isOpen open} to at least the {@code java.xml.bind} module.
* Can be empty, in which case a {@link JAXBContext} that only knows about
* spec-defined classes will be returned.
*
* @return
* A new instance of a {@code JAXBContext}.
*
- * @throws JAXBException if an error was encountered while creating the
- * {@code JAXBContext}. See {@link JAXBContext#newInstance(Class[], Map)} for details.
+ * @throws JAXBException
+ * if an error was encountered while creating the
+ * {@code JAXBContext}, such as (but not limited to):
+ *
+ * - No JAXB implementation was discovered
+ *
- Classes use JAXB annotations incorrectly
+ *
- Classes have colliding annotations (i.e., two classes with the same type name)
+ *
- The JAXB implementation was unable to locate
+ * provider-specific out-of-band information (such as additional
+ * files generated at the development time.)
+ *
- {@code classesToBeBound} are not open to {@code java.xml.bind} module
+ *
*
* @throws IllegalArgumentException
* if the parameter contains {@code null} (i.e., {@code newInstance(null);})
@@ -621,7 +659,9 @@
* throw {@code JAXBException} if it finds properties that it doesn't understand.
*
* @param classesToBeBound
- * list of java classes to be recognized by the new {@link JAXBContext}.
+ * List of java classes to be recognized by the new {@link JAXBContext}.
+ * Classes in {@code classesToBeBound} that are in named modules must be in a package
+ * that is {@linkplain java.lang.Module#isOpen open} to at least the {@code java.xml.bind} module.
* Can be empty, in which case a {@link JAXBContext} that only knows about
* spec-defined classes will be returned.
* @param properties
@@ -641,6 +681,7 @@
* The JAXB implementation was unable to locate
* provider-specific out-of-band information (such as additional
* files generated at the development time.)
+ * {@code classesToBeBound} are not open to {@code java.xml.bind} module
*
*
* @throws IllegalArgumentException