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

From Eclipsepedia

Jump to: navigation, search

EclipseLink MOXy

link="http://wiki.eclipse.org/EclipseLink"
EclipseLink
Website
Download
Community
Mailing ListForumsIRC
Bugzilla
Open
Help Wanted
Bug Day
Contribute
Browse Source


Specifying the EclipseLink Runtime

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

  1. Create a text file named jaxb.properties with the following content:
    javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory
  2. Copy the file to the same package (directory) in which your model classes reside.
  3. Create a JAXBContent using the standard APIs:
    JAXBContext jaxbContext = JAXBContext.newInstance(Customer.class);

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

The JAXBContextFactory can

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

Specifying Dynamic JAXB Bootstrapping in EclipseLink Runtime

You can create JAXBContexts by specifying a factory class in jaxb.properties file and then using the JAXBContext.newInstance() API.

  1. Create a jaxb.properties, specifying DynamicJAXBContextFactory as the factory used to build new JAXBContexts.
  2. Place the jaxb.properties on your classpath within the package in which the DynamicEntites will be generated.
    In this example, the mynamespace package will contain the DynamicEntities:
    javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.dynamic.DynamicJAXBContextFactory
  3. Use the newInstance(String contextPath) method to create a DynamicJAXBContext.
    When this method is called, MOXy attempts to locate a jaxb.properties file on the classpath in the package specified by contextPath, and use the specified factory.
    DynamicJAXBContext jaxbContext = (DynamicJAXBContext) JAXBContext.newInstance("mynamespace");


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