< prev index next >
src/java.xml.bind/share/classes/javax/xml/bind/JAXBContextFactory.java
Print this page
*** 1,7 ****
/*
! * Copyright (c) 2015, 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) 2015, 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
*** 42,52 ****
*
* <p>
* For semantics see {@link javax.xml.bind.JAXBContext#newInstance(Class[], java.util.Map)}
*
* @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.
--- 42,54 ----
*
* <p>
* For semantics see {@link javax.xml.bind.JAXBContext#newInstance(Class[], java.util.Map)}
*
* @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.
*** 54,64 ****
* @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,someMap);})
*
* @since 9, JAXB 2.3
--- 56,75 ----
* @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,someMap);})
*
* @since 9, JAXB 2.3
*** 75,94 ****
*
* <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.
*
* @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.
*
* @since 9, JAXB 2.3
*/
JAXBContext createContext(String contextPath,
ClassLoader classLoader,
--- 86,115 ----
*
* <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.
! * 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.
* @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.
*
* @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>
*
* @since 9, JAXB 2.3
*/
JAXBContext createContext(String contextPath,
ClassLoader classLoader,
< prev index next >