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.
Difference between revisions of "User:Rick.barkhouse.oracle.com"
Line 33: | Line 33: | ||
EclipseLink MOXy 2.3 introduces the ability to refresh your '''JAXBContext's''' metadata at runtime. This allows you to make changes to existing mappings in a live application environment and see those changes immediately without having to create a new '''JAXBContext'''. | EclipseLink MOXy 2.3 introduces the ability to refresh your '''JAXBContext's''' metadata at runtime. This allows you to make changes to existing mappings in a live application environment and see those changes immediately without having to create a new '''JAXBContext'''. | ||
− | In order to use the Metadata Refresh feature, your metadata information must be provided as either ''' | + | In order to use the Metadata Refresh feature, your metadata information must be provided as either '''Node(s)''' or '''MetadataSource'''. |
== Example == | == Example == | ||
Line 54: | Line 54: | ||
</source> | </source> | ||
− | Our '''JAXBContext''' is created in the standard way. | + | Our '''JAXBContext''' is created in the standard way: |
+ | |||
+ | <source lang="java"> | ||
+ | ClassLoader classLoader = ClassLoader.getSystemClassLoader(); | ||
+ | |||
+ | DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); | ||
+ | dbf.setNamespaceAware(true); | ||
+ | DocumentBuilder db = dbf.newDocumentBuilder(); | ||
+ | InputStream metadataStream = classLoader.getResourceAsStream("example/eclipselink-oxm.xml"; | ||
+ | Document metadataDocument = db.parse(metadataStream); | ||
+ | metadataStream.close(); | ||
+ | |||
+ | Map<String, Object> props = new HashMap<String, Object>(1); | ||
+ | props.put(JAXBContextFactory.ECLIPSELINK_OXM_XML_KEY, metadataDocument); | ||
+ | JAXBContext jc = JAXBContextFactory.createContext(new Class[] { Root.class }, props); | ||
+ | </source> |
Revision as of 11:13, 17 June 2011
bugzilla id: rick.barkhouse (at) oracle.com
committer id: rbarkhous
Location: Ottawa, Canada - Eastern Standard Time
- Committer on Eclipse Persistence Services project - EclipseLink
Profession: Software Engineer
Currently working for Oracle Corporation on their TopLink product.
Also working with Eclipse Foundation on their EclipseLink product.
EclipseLink | |
Website | |
Download | |
Community | |
Mailing List • Forums • IRC • mattermost | |
Issues | |
Open • Help Wanted • Bug Day | |
Contribute | |
Browse Source |
Contents
Refreshing Metadata
EclipseLink MOXy 2.3 introduces the ability to refresh your JAXBContext's metadata at runtime. This allows you to make changes to existing mappings in a live application environment and see those changes immediately without having to create a new JAXBContext.
In order to use the Metadata Refresh feature, your metadata information must be provided as either Node(s) or MetadataSource.
Example
Our example will be bootstrapped from the following EclipseLink OXM file:
<?xml version="1.0"?> <xml-bindings xmlns="http://www.eclipse.org/eclipselink/xsds/persistence/oxm" package-name="example"> <java-types> <java-type name="Root"> <java-attributes> <xml-element java-attribute="name" name="orig-name"/> </java-attributes> </java-type> </java-types> </xml-bindings>
Our JAXBContext is created in the standard way:
ClassLoader classLoader = ClassLoader.getSystemClassLoader(); DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); dbf.setNamespaceAware(true); DocumentBuilder db = dbf.newDocumentBuilder(); InputStream metadataStream = classLoader.getResourceAsStream("example/eclipselink-oxm.xml"; Document metadataDocument = db.parse(metadataStream); metadataStream.close(); Map<String, Object> props = new HashMap<String, Object>(1); props.put(JAXBContextFactory.ECLIPSELINK_OXM_XML_KEY, metadataDocument); JAXBContext jc = JAXBContextFactory.createContext(new Class[] { Root.class }, props);