Jump to: navigation, search

Difference between revisions of "EclipseLink/UserGuide/MOXy/Runtime/Bootstrapping Dynamic/Specifying the EclipseLink Runtime"

m (Specifying Dynamic JAXB Bootstrapping in EclipseLink Runtime)
Line 6: Line 6:
 
|apis= * [http://www.eclipse.org/eclipselink/api/2.1/index.html?org/eclipse/persistence/jaxb/JAXBContextFactory.html *.jaxb.JAXBContextFactory]
 
|apis= * [http://www.eclipse.org/eclipselink/api/2.1/index.html?org/eclipse/persistence/jaxb/JAXBContextFactory.html *.jaxb.JAXBContextFactory]
 
}}
 
}}
 +
 +
=Specifying the EclipseLink Runtime=
 +
 +
In order to use EclipseLink MOXy as your JAXB implementation, you must identify the EclipseLink <tt>JAXBContextFactory</tt> in your <tt>jaxb.properties</tt> file.
 +
 +
# Create a text file named <tt>jaxb.properties</tt> with the following content:<br><div><source lang="java">
 +
javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory
 +
</source></div>
 +
# Copy the file to the same package (directory) in which your model classes reside.
 +
# Create a <tt>JAXBContent</tt> using the standard APIs:<br><div><source lang="java">
 +
JAXBContext jaxbContext = JAXBContext.newInstance(Customer.class);
 +
</source></div>
 +
 +
Because you do not need to change any application code, you can easily switch between different JAXB implementations.
 +
 +
The <tt>JAXBContextFactory</tt> can
 +
* Create a <tt>JAXBContext</tt> from an array of Classes and a Properties object
 +
* Create a <tt>JAXBContext</tt> from a context path and a ClassLoader
  
 
=Specifying Dynamic JAXB Bootstrapping in EclipseLink Runtime=
 
=Specifying Dynamic JAXB Bootstrapping in EclipseLink Runtime=

Revision as of 11:18, 6 January 2011

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...