--- old/src/java.xml.bind/share/classes/javax/xml/bind/JAXBContext.java 2015-05-26 17:38:00.000000000 +0200 +++ new/src/java.xml.bind/share/classes/javax/xml/bind/JAXBContext.java 2015-05-26 17:38:00.000000000 +0200 @@ -45,29 +45,20 @@ * specialized forms of the method available: * *
- * SPEC REQUIREMENT: the provider must supply an implementation - * class containing the following method signatures: - * - *
{@code - * public static JAXBContext createContext( String contextPath, ClassLoader classLoader, Map- * *properties ) throws JAXBException - * public static JAXBContext createContext( Class[] classes, Map properties ) throws JAXBException - * }
* The following JAXB 1.0 requirement is only required for schema to
* java interface/implementation binding. It does not apply to JAXB annotated
@@ -109,11 +100,11 @@
* any of the schemas listed in the contextPath. For example:
*
*
- * JAXBContext jc = JAXBContext.newInstance( "com.acme.foo:com.acme.bar" );
- * Unmarshaller u = jc.createUnmarshaller();
- * FooObject fooObj = (FooObject)u.unmarshal( new File( "foo.xml" ) ); // ok
- * BarObject barObj = (BarObject)u.unmarshal( new File( "bar.xml" ) ); // ok
- * BazObject bazObj = (BazObject)u.unmarshal( new File( "baz.xml" ) ); // error, "com.acme.baz" not in contextPath
+ * JAXBContext jc = JAXBContext.newInstance( "com.acme.foo:com.acme.bar" );
+ * Unmarshaller u = jc.createUnmarshaller();
+ * FooObject fooObj = (FooObject)u.unmarshal( new File( "foo.xml" ) ); // ok
+ * BarObject barObj = (BarObject)u.unmarshal( new File( "bar.xml" ) ); // ok
+ * BazObject bazObj = (BazObject)u.unmarshal( new File( "baz.xml" ) ); // error, "com.acme.baz" not in contextPath
*
*
*
@@ -146,7 +137,7 @@ * Section 4.2 Java Package of the specification. * *
- * SPEC REQUIREMENT: the provider must generate a class in each
+ * The provider must generate a class in each
* package that contains all of the necessary object factory methods for that
* package named ObjectFactory as well as the static
* newInstance( javaContentInterface ) method
@@ -214,6 +205,7 @@
* by the following steps.
*
*
* If such a file is discovered, it is {@link Properties#load(InputStream) loaded} as a property file, and
* the value of the {@link #JAXB_CONTEXT_FACTORY} key will be assumed to be the provider factory class.
- * This class is then loaded by the associated classloader discussed above.
+ * This class is then loaded by the associated class loader discussed above.
*
*
* This phase of the look up allows some packages to force the use of a certain JAXB implementation.
@@ -234,10 +226,36 @@
* factory class. This phase of the look up enables per-JVM override of the JAXB implementation.
*
*
+ *
*
*
*
+ * In case of {@link java.util.ServiceConfigurationError service
+ * configuration error} a {@link javax.xml.bind.JAXBException} will be thrown.
+ *
+ *
+ * public static JAXBContext createContext(
+ * String contextPath,
+ * ClassLoader classLoader,
+ * Map<String,Object> properties throws JAXBException
+ *
+ * public static JAXBContext createContext(
+ * Class[] classes,
+ * Map<String,Object> properties ) throws JAXBException
+ *
+ * This configuration method is deprecated.
*
*
- * Once the provider factory class is discovered, its - * public static JAXBContext createContext(String,ClassLoader,Map) method - * (see {@link #newInstance(String, ClassLoader, Map)} for the parameter semantics.) - * or public static JAXBContext createContet(Class[],Map) method - * (see {@link #newInstance(Class[], Map)} for the parameter semantics) are invoked + * Once the provider factory class {@link javax.xml.bind.JAXBContextFactory} is discovered, one of its methods + * {@link javax.xml.bind.JAXBContextFactory#createContext(String, ClassLoader, java.util.Map)} or + * {@link javax.xml.bind.JAXBContextFactory#createContext(Class[], java.util.Map)} is invoked * to create a {@link JAXBContext}. * - * @author
Service discovery method using file /META-INF/services/javax.xml.bind.JAXBContext (described in step 4) + * and leveraging provider's static methods is supported only to allow backwards compatibility, but it is strongly + * recommended to migrate to standard ServiceLoader mechanism (described in step 3). + * + * @implNote + * Within the last step, if Glassfish AS environment detected, its specific service loader is used to find factory class. + * + * @author
- * Obtain a new instance of a JAXBContext class. + * Create a new instance of a JAXBContext class. * *
* This is a convenience method to invoke the @@ -300,7 +329,7 @@ /** *
- * Obtain a new instance of a JAXBContext class. + * Create a new instance of a JAXBContext class. * *
* The client application must supply a context path which is a list of @@ -396,7 +425,7 @@ /** *
- * Obtain a new instance of a JAXBContext class. + * Create a new instance of a JAXBContext class. * *
* This is mostly the same as {@link JAXBContext#newInstance(String, ClassLoader)},
@@ -425,8 +454,9 @@
*
* @since 1.6, JAXB 2.0
*/
- public static JAXBContext newInstance( String contextPath, ClassLoader classLoader, Map
-// * Obtain a new instance of a JAXBContext class.
+// * Create a new instance of a JAXBContext class.
// *
// *
// * The client application must supply a list of classes that the new
@@ -479,7 +509,7 @@
// * spec-defined classes will be returned.
// *
// * @return
-// * A new instance of a JAXBContext. Always non-null valid object.
+// * A new instance of a JAXBContext.
// *
// * @throws JAXBException
// * if an error was encountered while creating the
@@ -517,7 +547,7 @@
/**
*
- * Obtain a new instance of a JAXBContext class.
+ * Create a new instance of a JAXBContext class.
*
*
* The client application must supply a list of classes that the new
@@ -559,7 +589,7 @@
* spec-defined classes will be returned.
*
* @return
- * A new instance of a JAXBContext. Always non-null valid object.
+ * A new instance of a JAXBContext.
*
* @throws JAXBException
* if an error was encountered while creating the
@@ -578,7 +608,7 @@
*
* @since 1.6, JAXB 2.0
*/
- public static JAXBContext newInstance( Class... classesToBeBound )
+ public static JAXBContext newInstance( Class> ... classesToBeBound )
throws JAXBException {
return newInstance(classesToBeBound,Collections.
- * Obtain a new instance of a JAXBContext class.
+ * Create a new instance of a JAXBContext class.
*
*
* An overloading of {@link JAXBContext#newInstance(Class...)}
@@ -605,7 +635,7 @@
* in an empty map.
*
* @return
- * A new instance of a JAXBContext. Always non-null valid object.
+ * A new instance of a JAXBContext.
*
* @throws JAXBException
* if an error was encountered while creating the
@@ -624,7 +654,7 @@
*
* @since 1.6, JAXB 2.0
*/
- public static JAXBContext newInstance( Class[] classesToBeBound, Map