Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
EclipseLink/UserGuide/MOXy/Runtime/Bootstrapping
EclipseLink MOXy
EclipseLink | |
Website | |
Download | |
Community | |
Mailing List • Forums • IRC • mattermost | |
Issues | |
Open • Help Wanted • Bug Day | |
Contribute | |
Browse Source |
Key API
Contents
Bootstrapping
EclipseLink MOXy offers several options when creating your JAXBContext. You have the option of bootstrapping from:
- A list of one or more JAXB-annotated Classes
- A list of one or more EclipseLink OXM Bindings Files defining the mappings for your Java classes
- A combination of Classes and OXM files
- A Session name, referring to an EclipseLink Session defined in sessions.xml
JAXBContext API
The following methods on JAXBContext are used to create new instances of JAXBContexts:
public static JAXBContext newInstance(Class... classesToBeBound) throws JAXBException public static JAXBContext newInstance(Class[] classesToBeBound, Map<String,?> properties) throws JAXBException 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
- classesToBeBound - List of Java classes to be recognized by the new JAXBContext.
- contextPath - List of Java package names that contain mapped classes.
- classLoader - The class loader used to locate the mapped classes.
- properties - A map of additional properties.
Bootstrapping from Classes
If you already have a collection of Java Classes annotated with JAXB annotations, you can provide an list of these Classes directly:
JAXBContext context = JAXBContext.newInstance(Company.class, Employee.class);
Bootstrapping from EclipseLink OXM
Links to the actual OXM files are passed in via the properties parameter, using a special key, JAXBContextFactory.ECLIPSELINK_OXM_XML_KEY. The value of this key will be a handle to the OXM metadata file, in the form of one of the following:
- 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
- org.xml.sax.InputSource
When bootstrapping from OXM, the package specified by contextPath must contain a jaxb.properties file that specifies the EclipseLink JAXBContextFactory.
InputStream iStream = myClassLoader.getResourceAsStream("example/eclipselink-oxm.xml"); Map<String, Object> properties = new HashMap<String, Object>(); properties.put(JAXBContextFactory.ECLIPSELINK_OXM_XML_KEY, iStream); JAXBContext context = JAXBContext.newInstance("example", myClassLoader, properties);