Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

EclipseLink/UserGuide/MOXy/Runtime/Bootstrapping Dynamic/Specifying the EclipseLink Runtime

EclipseLink MOXy

Eclipselink-logo.gif
EclipseLink
Website
Download
Community
Mailing ListForumsIRCmattermost
Issues
OpenHelp WantedBug Day
Contribute
Browse Source


Specifying the EclipseLink Runtime

In order to use EclipseLink Dynamic MOXy as your JAXB implementation, you must identify the EclipseLink DynamicJAXBContextFactory in your jaxb.properties file.

  1. Create a text file named jaxb.properties, specifying DynamicJAXBContextFactory as the factory used to build new JAXBContexts.
    javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.dynamic.DynamicJAXBContextFactory
  2. Copy the file to your application package (or any of your packages on your classpath).
  3. Use the standard JAXBContext.newInstance(String contextPath) API to create a DynamicJAXBContext.
    DynamicJAXBContext jaxbContext = (DynamicJAXBContext) JAXBContext.newInstance("org.example.mypackage");

Because you do not need to change any application code, you can easily switch between different JAXB implementations.

The following methods on DynamicJAXBContextFactory can be used to create DynamicJAXBContexts:

public static JAXBContext newInstance(String contextPath) throws JAXBException
 
public static JAXBContext newInstance(String contextPath, ClassLoader classLoader) throws JAXBException
 
public static JAXBContext newInstance(String contextPath, ClassLoader classLoader, Map<String,?> properties) throws JAXBException
  • contextPath - Location of jaxb.properties file.
  • classLoader - The application's current class loader, which will be used to first lookup classes to see if they exist before new DynamicTypes are generated.
  • properties - A map of properties to use when creating a new DynamicJAXBContext. This map must contain one of the following keys:

JAXBContext.ECLIPSELINK_OXM_XML_KEY, which can have several possible values:

  • One of the following, pointing to your OXM file: java.io.File, java.io.InputStream, java.io.Reader, java.net.URL,
    javax.xml.stream.XMLEventReader, javax.xml.stream.XMLStreamReader, javax.xml.transform.Source,
    org.w3c.dom.Node, or org.xml.sax.InputSource.
  • A List of objects from the set above.
  • A Map<String, Object>, where String is a package name, and Object is the pointer to the OXM file, from the set
    of possibilities above. If using this option, a package-name element is not required in the xml-bindings element of your OXM file.

Eclipselink-logo.gif
Version: 2.2.0 - DRAFT
Other versions...

Back to the top