Class JAXBContextFactory


  • public class JAXBContextFactory
    extends java.lang.Object

    Purpose:An EclipseLink specific JAXBContextFactory. This class can be specified in a jaxb.properties file to make use of EclipseLink's JAXB 2.1 implementation.

    Responsibilities:

    • Create a JAXBContext from an array of Classes and a Properties object
    • Create a JAXBContext from a context path and a classloader

    This class is the entry point into in EclipseLink's JAXB 2.1 Runtime. It provides the required factory methods and is invoked by javax.xml.bind.JAXBContext.newInstance() to create new instances of JAXBContext. When creating a JAXBContext from a contextPath, the list of classes is derived either from an ObjectFactory class (schema-to-java) or a jaxb.index file (java-to-schema).

    See Also:
    JAXBContext, JAXBContext, Generator
    Author:
    mmacivor
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String ANNOTATION_HELPER_KEY
      Deprecated.
      As of release 2.4, replaced by JAXBContextProperties.ANNOTATION_HELPER
      static java.lang.String DEFAULT_TARGET_NAMESPACE_KEY
      Deprecated.
      As of release 2.4, replaced by JAXBContextProperties.DEFAULT_TARGET_NAMESPACE
      static java.lang.String ECLIPSELINK_OXM_XML_KEY
      Deprecated.
      As of release 2.4, replaced by JAXBContextProperties.OXM_METADATA_SOURCE
      static java.lang.String PKG_SEPARATOR  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static JAXBContext createContext​(java.lang.Class[] classesToBeBound, java.util.Map properties)
      Create a JAXBContext on the array of Class objects.
      static JAXBContext createContext​(java.lang.Class[] classesToBeBound, java.util.Map properties, java.lang.ClassLoader classLoader)
      Create a JAXBContext on the array of Class objects.
      static JAXBContext createContext​(java.lang.reflect.Type[] typesToBeBound, java.util.Map properties, java.lang.ClassLoader classLoader)
      Create a JAXBContext on the array of Type objects.
      static JAXBContext createContext​(java.lang.String contextPath, java.lang.ClassLoader classLoader)
      Create a JAXBContext on context path.
      static JAXBContext createContext​(java.lang.String contextPath, java.lang.ClassLoader classLoader, java.util.Map properties)
      Create a JAXBContext on context path.
      static JAXBContext createContext​(TypeMappingInfo[] typesToBeBound, java.util.Map properties, java.lang.ClassLoader classLoader)
      Create a JAXBContext on the array of TypeMappingInfo objects.
      static java.util.Map<java.lang.String,​XmlBindings> getXmlBindingsFromProperties​(java.util.Map properties, java.lang.ClassLoader classLoader)
      Convenience method for processing a properties map and creating a map of package names to XmlBindings instances.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • JAXBContextFactory

        public JAXBContextFactory()
    • Method Detail

      • createContext

        public static JAXBContext createContext​(java.lang.Class[] classesToBeBound,
                                                java.util.Map properties)
                                         throws JAXBException
        Create a JAXBContext on the array of Class objects. The JAXBContext will also be aware of classes reachable from the classes in the array.
        Throws:
        JAXBException
      • createContext

        public static JAXBContext createContext​(java.lang.Class[] classesToBeBound,
                                                java.util.Map properties,
                                                java.lang.ClassLoader classLoader)
                                         throws JAXBException
        Create a JAXBContext on the array of Class objects. The JAXBContext will also be aware of classes reachable from the classes in the array.
        Throws:
        JAXBException
      • createContext

        public static JAXBContext createContext​(java.lang.String contextPath,
                                                java.lang.ClassLoader classLoader)
                                         throws JAXBException
        Create a JAXBContext on context path. The JAXBContext will also be aware of classes reachable from the classes on the context path.
        Throws:
        JAXBException
      • createContext

        public static JAXBContext createContext​(java.lang.String contextPath,
                                                java.lang.ClassLoader classLoader,
                                                java.util.Map properties)
                                         throws JAXBException
        Create a JAXBContext on context path. The JAXBContext will also be aware of classes reachable from the classes on the context path.
        Throws:
        JAXBException
      • createContext

        public static JAXBContext createContext​(java.lang.reflect.Type[] typesToBeBound,
                                                java.util.Map properties,
                                                java.lang.ClassLoader classLoader)
                                         throws JAXBException
        Create a JAXBContext on the array of Type objects. The JAXBContext will also be aware of classes reachable from the types in the array. The preferred means of creating a Type aware JAXBContext is to create the JAXBContext with an array of TypeMappingInfo objects.
        Throws:
        JAXBException
      • createContext

        public static JAXBContext createContext​(TypeMappingInfo[] typesToBeBound,
                                                java.util.Map properties,
                                                java.lang.ClassLoader classLoader)
                                         throws JAXBException
        Create a JAXBContext on the array of TypeMappingInfo objects. The JAXBContext will also be aware of classes reachable from the types in the array. This is the preferred means of creating a Type aware JAXBContext.
        Throws:
        JAXBException
      • getXmlBindingsFromProperties

        public static java.util.Map<java.lang.String,​XmlBindings> getXmlBindingsFromProperties​(java.util.Map properties,
                                                                                                     java.lang.ClassLoader classLoader)

        Convenience method for processing a properties map and creating a map of package names to XmlBindings instances.

        It is assumed that the given map's key will be JAXBContextProperties.OXM_METADATA_SOURCE, and the value will be:

         1)  Map<String, Object>
             - Object is one of those listed in 3) below
         2)  List<Object>
             - Object is one of those listed in 3) below
             - Bindings file must contain package-name attribute on
               xml-bindings element
         3)  One of:
             - java.io.File
             - java.io.InputStream
             - java.io.Reader
             - java.lang.String
             - java.net.URL
             - javax.xml.stream.XMLEventReader
             - javax.xml.stream.XMLStreamReader
             - javax.xml.transform.Source
             - org.eclipse.persistence.jaxb.metadata.MetadataSource
             - org.w3c.dom.Node
             - org.xml.sax.InputSource
        
             - Bindings file must contain package-name attribute on
               xml-bindings element