< prev index next >
src/java.xml.bind/share/classes/javax/xml/bind/JAXBContext.java
Print this page
*** 1,7 ****
/*
! * Copyright (c) 2003, 2016, 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
--- 1,7 ----
/*
! * 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
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
*** 25,39 ****
package javax.xml.bind;
import org.w3c.dom.Node;
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
* JAXB API. It provides an abstraction for managing the XML/Java binding
* information necessary to implement the JAXB binding framework operations:
--- 25,39 ----
package javax.xml.bind;
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;
/**
* The {@code JAXBContext} class provides the client's entry point to the
* JAXB API. It provides an abstraction for managing the XML/Java binding
* information necessary to implement the JAXB binding framework operations:
*** 330,340 ****
* This is a convenience method to invoke the
* {@link #newInstance(String,ClassLoader)} method with
* 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.
*/
public static JAXBContext newInstance( String contextPath )
throws JAXBException {
//return newInstance( contextPath, JAXBContext.class.getClassLoader() );
--- 330,347 ----
* This is a convenience method to invoke the
* {@link #newInstance(String,ClassLoader)} method with
* the context class loader of the current thread.
*
* @throws JAXBException if an error was encountered while creating the
! * {@code JAXBContext} such as
! * <ol>
! * <li>failure to locate either ObjectFactory.class or jaxb.index in the packages</li>
! * <li>an ambiguity among global elements contained in the contextPath</li>
! * <li>failure to locate a value for the context factory provider property</li>
! * <li>mixing schema derived packages from different providers on the same contextPath</li>
! * <li>packages are not open to {@code java.xml.bind} module</li>
! * </ol>
*/
public static JAXBContext newInstance( String contextPath )
throws JAXBException {
//return newInstance( contextPath, JAXBContext.class.getClassLoader() );
*** 412,431 ****
* being thrown.
*
* <p>
* 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 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.
*/
public static JAXBContext newInstance( String contextPath, ClassLoader classLoader ) throws JAXBException {
return newInstance(contextPath,classLoader,Collections.<String,Object>emptyMap());
}
--- 419,448 ----
* being thrown.
*
* <p>
* 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.
! * Packages in {@code contextPath} that are in named modules must be
! * {@linkplain java.lang.reflect.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} such as
! * <ol>
! * <li>failure to locate either ObjectFactory.class or jaxb.index in the packages</li>
! * <li>an ambiguity among global elements contained in the contextPath</li>
! * <li>failure to locate a value for the context factory provider property</li>
! * <li>mixing schema derived packages from different providers on the same contextPath</li>
! * <li>packages are not open to {@code java.xml.bind} module</li>
! * </ol>
*/
public static JAXBContext newInstance( String contextPath, ClassLoader classLoader ) throws JAXBException {
return newInstance(contextPath,classLoader,Collections.<String,Object>emptyMap());
}
*** 440,450 ****
*
* <p>
* 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 classLoader
* This class loader will be used to locate the implementation classes.
* @param properties
* provider-specific properties. Can be null, which means the same thing as passing
* in an empty map.
--- 457,472 ----
*
* <p>
* 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 class and/or java to schema (JAXB-annotated)
! * mapped classes.
! * Packages in {@code contextPath} that are in named modules must be
! * {@linkplain java.lang.reflect.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
* provider-specific properties. Can be null, which means the same thing as passing
* in an empty map.
*** 455,464 ****
--- 477,487 ----
* <ol>
* <li>failure to locate either ObjectFactory.class or jaxb.index in the packages</li>
* <li>an ambiguity among global elements contained in the contextPath</li>
* <li>failure to locate a value for the context factory provider property</li>
* <li>mixing schema derived packages from different providers on the same contextPath</li>
+ * <li>packages are not open to {@code java.xml.bind} module</li>
* </ol>
* @since 1.6, JAXB 2.0
*/
public static JAXBContext newInstance( String contextPath,
ClassLoader classLoader,
*** 586,604 ****
*
* <p>
* 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}.
* 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 IllegalArgumentException
* if the parameter contains {@code null} (i.e., {@code newInstance(null);})
*
* @since 1.6, JAXB 2.0
--- 609,639 ----
*
* <p>
* 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}.
! * Classes in {@code classesToBeBound} that are in named modules must be in a package
! * that is {@linkplain java.lang.reflect.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}, such as (but not limited to):
! * <ol>
! * <li>No JAXB implementation was discovered
! * <li>Classes use JAXB annotations incorrectly
! * <li>Classes have colliding annotations (i.e., two classes with the same type name)
! * <li>The JAXB implementation was unable to locate
! * provider-specific out-of-band information (such as additional
! * files generated at the development time.)
! * <li>{@code classesToBeBound} are not open to {@code java.xml.bind} module
! * </ol>
*
* @throws IllegalArgumentException
* if the parameter contains {@code null} (i.e., {@code newInstance(null);})
*
* @since 1.6, JAXB 2.0
*** 619,629 ****
* <p>
* The interpretation of properties is up to implementations. Implementations must
* 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}.
* Can be empty, in which case a {@link JAXBContext} that only knows about
* spec-defined classes will be returned.
* @param properties
* provider-specific properties. Can be null, which means the same thing as passing
* in an empty map.
--- 654,666 ----
* <p>
* The interpretation of properties is up to implementations. Implementations must
* 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}.
! * Classes in {@code classesToBeBound} that are in named modules must be in a package
! * that is {@linkplain java.lang.reflect.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
* provider-specific properties. Can be null, which means the same thing as passing
* in an empty map.
*** 639,648 ****
--- 676,686 ----
* <li>Classes use JAXB annotations incorrectly
* <li>Classes have colliding annotations (i.e., two classes with the same type name)
* <li>The JAXB implementation was unable to locate
* provider-specific out-of-band information (such as additional
* files generated at the development time.)
+ * <li>{@code classesToBeBound} are not open to {@code java.xml.bind} module
* </ol>
*
* @throws IllegalArgumentException
* if the parameter contains {@code null} (i.e., {@code newInstance(null,someMap);})
*
< prev index next >