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.
EclipseLink/UserGuide/MOXy/Runtime/Bootstrapping Dynamic/Specifying the EclipseLink Runtime
< EclipseLink | UserGuide | MOXy | Runtime | Bootstrapping Dynamic
Revision as of 12:18, 6 January 2011 by Rick.barkhouse.oracle.com (Talk | contribs)
EclipseLink MOXy
EclipseLink | |
Website | |
Download | |
Community | |
Mailing List • Forums • IRC • mattermost | |
Issues | |
Open • Help Wanted • Bug Day | |
Contribute | |
Browse Source |
Key API
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.
- Create a text file named jaxb.properties with the following content:
javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory
- Copy the file to the same package (directory) in which your model classes reside.
- 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.
- Create a jaxb.properties, specifying DynamicJAXBContextFactory as the factory used to build new JAXBContexts.
- 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
- 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");