/** * Create a JAXBContext based on the EntityManagerFactory for this PersistenceContext. * @param session * @return */ protected JAXBContext createDynamicJAXBContext(AbstractSession session) throws JAXBException, IOException { final ServiceVersion cachedContextVersion = (ServiceVersion) session.getProperty(SESSION_VERSION_PROPERTY); final JAXBContext cachedContext = (JAXBContext) session.getProperty(JAXBContext.class.getName()); if (cachedContext != null && cachedContextVersion != null && cachedContextVersion == version) { return cachedContext; } final Map<String, Object> properties = createJAXBProperties(session); final ClassLoader cl = session.getDatasourcePlatform().getConversionManager().getLoader(); final JAXBContext jaxbContext = DynamicJAXBContextFactory.createContextFromOXM(cl, properties); session.setProperty(SESSION_VERSION_PROPERTY, version); session.setProperty(JAXBContext.class.getName(), jaxbContext); return jaxbContext; }
/** * Create a JAXBContext based on the EntityManagerFactory for this PersistenceContext. * @param session * @return */ protected JAXBContext createDynamicJAXBContext(AbstractSession session) throws JAXBException, IOException { final ServiceVersion cachedContextVersion = (ServiceVersion) session.getProperty(SESSION_VERSION_PROPERTY); final JAXBContext cachedContext = (JAXBContext) session.getProperty(JAXBContext.class.getName()); if (cachedContext != null && cachedContextVersion != null && cachedContextVersion == version) { return cachedContext; } final Map<String, Object> properties = createJAXBProperties(session); final ClassLoader cl = session.getDatasourcePlatform().getConversionManager().getLoader(); final JAXBContext jaxbContext = DynamicJAXBContextFactory.createContextFromOXM(cl, properties); session.setProperty(SESSION_VERSION_PROPERTY, version); session.setProperty(JAXBContext.class.getName(), jaxbContext); return jaxbContext; }