private boolean buildSessionConfigs(SessionManager sessionManager, ClassLoader loader,Document document, Project project){ // No errors occurred, unmasrshal the document which will return a // SessionConfigs containing 0 or more SessionConfigs and send // them through the factory to create actual Sessions XMLContext context = new XMLContext(project); XMLUnmarshaller unmarshaller = context.createUnmarshaller(); SessionConfigs configs = (SessionConfigs)unmarshaller.unmarshal(document); SessionsFactory factory = new SessionsFactory(); Map sessions = factory.buildSessionConfigs(configs, loader); for (Iterator iterator = sessions.entrySet().iterator(); iterator.hasNext(); ) { Map.Entry entry = (Map.Entry)iterator.next(); // Only add the session if missing. if (!sessionManager.getSessions().containsKey(entry.getKey())) { sessionManager.addSession((String)entry.getKey(), (Session)entry.getValue()); } } return true; }
final DatabaseSession session = xmlContext.getSession(0);
public XMLBinder(XMLContext context) { this.context = new XMLContext(context.getXMLContextState()); marshaller = this.context.createMarshaller(); unmarshaller = this.context.createUnmarshaller(); initialize(); }
/** * INTERNAL: Return the EclipseLink session used to marshal. */ public List getSessions() { return getXMLContextState().getSessions(); }
public XMLBinder(XMLContext context, XMLMarshaller marshaller, XMLUnmarshaller unmarshaller) { this.context = new XMLContext(context.getXMLContextState()); this.marshaller = marshaller; this.unmarshaller = unmarshaller; initialize(); }
/** * INTERNAL: * Convert the given object to an XML Document * @param object the object to marshal * @return the document which the specified object has been marshalled to * @param descriptor the XMLDescriptor for the object being marshalled * @throws XMLMarshalException if an error occurred during marshalling */ @Override protected Document objectToXML(Object object, XMLDescriptor descriptor, boolean isXMLRoot) throws XMLMarshalException { AbstractSession session = context.getSession(descriptor); DocumentPreservationPolicy docPresPolicy = context.getDocumentPreservationPolicy(session); if (docPresPolicy != null && docPresPolicy.shouldPreserveDocument()) { XMLRecord xmlRow = null; if (!isXMLRoot) { xmlRow = (XMLRecord) ((XMLObjectBuilder) descriptor.getObjectBuilder()).createRecordFor(object, context.getDocumentPreservationPolicy(session)); xmlRow.setMarshaller(this); if (this.attachmentMarshaller != null) { xmlRow.setXOPPackage(this.attachmentMarshaller.isXOPPackage()); } addDescriptorNamespacesToXMLRecord(descriptor, xmlRow); } return objectToXML(object, descriptor, xmlRow, isXMLRoot, docPresPolicy); } return super.objectToXML(object, descriptor, isXMLRoot); }
public XMLBinder(XMLContext context) { marshaller = context.createMarshaller(); unmarshaller = context.createUnmarshaller(); saxUnmarshaller = new SAXUnmarshaller(unmarshaller, null); this.context = context; documentPreservationPolicy = new XMLBinderPolicy(); reader = new DOMReader(); }
typeFragment.setNamespaceURI(unmarshalNamespaceResolver.getNamespaceURI(typeFragment.getPrefix())); xmlDescriptor = xmlContext.getDescriptorByGlobalType(typeFragment); if(xmlDescriptor == null) { xmlDescriptor = xmlContext.getDescriptor(rootQName); xmlDescriptor = (XMLDescriptor)xmlContext.getSession(obj.getClass()).getDescriptor(obj.getClass()); session = xmlContext.getReadSession(xmlDescriptor); unmarshalRecord.setSession((AbstractSession) unmarshaller.getXMLContext().getSession(0)); } else if (xmlDescriptor.hasInheritance()) { unmarshalRecord = new UnmarshalRecord(null);
/** * @return the Eclipselink orm project. */ public static XMLContext getEclipseLinkOrmProject() { if (m_eclipseLinkOrmProject == null) { m_eclipseLinkOrmProject = new XMLContext(new XMLEntityMappingsMappingProject(ECLIPSELINK_ORM_NAMESPACE, ECLIPSELINK_ORM_XSD)); } return m_eclipseLinkOrmProject; }
public Map<String, SchemaTypeInfo> generateSchemaFiles(String schemaPath, Map<QName, Type> additionalGlobalElements) throws FileNotFoundException { // process any additional global elements processAdditionalElements(additionalGlobalElements, annotationsProcessor); schemaGenerator.generateSchema(annotationsProcessor.getTypeInfoClasses(), annotationsProcessor.getTypeInfos(), annotationsProcessor.getUserDefinedSchemaTypes(), annotationsProcessor.getPackageToPackageInfoMappings(), annotationsProcessor.getGlobalElements(), annotationsProcessor.getArrayClassesToGeneratedClasses()); CoreProject proj = new SchemaModelProject(); XMLContext context = new XMLContext((Project)proj); XMLMarshaller marshaller = context.createMarshaller(); Descriptor schemaDescriptor = (Descriptor)proj.getDescriptor(Schema.class); java.util.Collection<Schema> schemas = schemaGenerator.getAllSchemas(); for(Schema schema : schemas) { File file = new File(schemaPath + "/" + schema.getName()); NamespaceResolver schemaNamespaces = schema.getNamespaceResolver(); schemaNamespaces.put(Constants.SCHEMA_PREFIX, XMLConstants.W3C_XML_SCHEMA_NS_URI); schemaDescriptor.setNamespaceResolver(schemaNamespaces); marshaller.marshal(schema, new FileOutputStream(file)); } return schemaGenerator.getSchemaTypeInfo(); }
Object obj = ((XMLConversionManager) xmlContext.getSession(0).getDatasourcePlatform().getConversionManager()).convertObject(nodeVal, referenceClass); XMLRoot xmlRoot = new XMLRoot(); xmlRoot.setObject(obj); AbstractSession readSession = xmlContext.getReadSession(referenceClass); if(null == xmlRow.getDOM().getAttributes().getNamedItemNS(XMLConstants.SCHEMA_INSTANCE_URL, XMLConstants.SCHEMA_NIL_ATTRIBUTE)) { xmlRow.setUnmarshaller(xmlUnmarshaller); xmlRow.setDocPresPolicy(xmlContext.getDocumentPreservationPolicy(readSession)); XMLObjectBuilder objectBuilder = (XMLObjectBuilder) descriptor.getObjectBuilder();
@Override protected JAXBContextState createContextState() throws JAXBException { DynamicJAXBContextState state = new DynamicJAXBContextState((DynamicClassLoader) classLoader); StringTokenizer st = new StringTokenizer(sessions, ":"); ArrayList<Project> dynamicProjects = new ArrayList<Project>(st.countTokens()); XMLSessionConfigLoader loader = new XMLSessionConfigLoader(); while (st.hasMoreTokens()) { DatabaseSession dbSession = (DatabaseSession) SessionManager.getManager().getSession(loader, st.nextToken(), classLoader, false, true); Project p = DynamicTypeBuilder.loadDynamicProject(dbSession.getProject(), null, (DynamicClassLoader) classLoader); dynamicProjects.add(p); } XMLContext xmlContext = new XMLContext(dynamicProjects); state.setXMLContext(xmlContext); List<Session> sessions = (List<Session>) xmlContext.getSessions(); for (Object session : sessions) { state.getHelpers().add(new DynamicHelper((DatabaseSession) session)); } return state; } }
XMLDescriptor d = null; if (!isGlobalType) { d = getDescriptor(qName); } else { XPathFragment frag = new XPathFragment(); frag.setLocalName(typeName); d = getDescriptorByGlobalType(frag);
public void initializeDescriptor(XMLDescriptor descriptor){ AbstractSession theSession = (AbstractSession)getXmlContext().getSession(); //do initialization for new descriptor; descriptor.preInitialize(theSession); descriptor.initialize(theSession); descriptor.postInitialize(theSession); descriptor.getObjectBuilder().initializePrimaryKey(theSession); getXmlContext().storeXMLDescriptorByQName(descriptor); }
XMLContext xmlContext = xmlUnmarshaller.getXMLContext(); if (xmlContext.hasDocumentPreservation()) { SAXDocumentBuilder saxDocumentBuilder = new SAXDocumentBuilder(); xmlReader.setContentHandler(saxDocumentBuilder); unmarshalRecord.setSession((AbstractSession) xmlUnmarshaller.getXMLContext().getSession(0)); } else if(clazz == ClassConstants.OBJECT) { SAXUnmarshallerHandler saxUnmarshallerHandler = new SAXUnmarshallerHandler(xmlUnmarshaller.getXMLContext()); session = xmlContext.getReadSession(clazz); xmlDescriptor = (XMLDescriptor) session.getDescriptor(clazz); unmarshalRecord = (UnmarshalRecord) xmlDescriptor.getObjectBuilder().createRecord(session);
unmarshalRecord.setSession((AbstractSession)xmlUnmarshaller.getXMLContext().getSession(0)); } else if(clazz == ClassConstants.OBJECT) { SAXUnmarshallerHandler saxUnmarshallerHandler = new SAXUnmarshallerHandler(xmlUnmarshaller.getXMLContext()); session = xmlUnmarshaller.getXMLContext().getReadSession(clazz); xmlDescriptor = (XMLDescriptor) session.getDescriptor(clazz); unmarshalRecord = (UnmarshalRecord) xmlDescriptor.getObjectBuilder().createRecord(session);
public XMLMarshaller getXmlMarshaller() { XMLMarshaller marshaller = xmlMarshallerMap.get(Thread.currentThread()); if (marshaller == null) { marshaller = getXmlContext().createMarshaller(); marshaller.setMarshalListener(new SDOMarshalListener(marshaller, (SDOTypeHelper) aHelperContext.getTypeHelper())); xmlMarshallerMap.put(Thread.currentThread(), marshaller); } XMLContext context = getXmlContext(); if (marshaller.getXMLContext() != context) { marshaller.setXMLContext(context); } return marshaller; }
protected XMLDescriptor getDescriptor(XMLRecord xmlRecord, AbstractSession session) throws XMLMarshalException { XMLContext xmlContext = xmlRecord.getUnmarshaller().getXMLContext(); QName rootQName = new QName(xmlRecord.getNamespaceURI(), xmlRecord.getLocalName()); XMLDescriptor xmlDescriptor = xmlContext.getDescriptor(rootQName); if (null == xmlDescriptor) { throw XMLMarshalException.noDescriptorWithMatchingRootElement(xmlRecord.getLocalName()); } return xmlDescriptor; }
/** * Returns descriptors from all sessions. * * @return descriptors from all sessions */ public List<Descriptor> getDescriptors() { List<Descriptor> descriptors = new ArrayList<Descriptor>(); List<Session> sessions = getSessions(); for (Session session : sessions) { List<Descriptor> orderedDescriptors = (List<Descriptor>) (List) session.getProject().getOrderedDescriptors(); for (Descriptor xDesc : orderedDescriptors) { descriptors.add(xDesc); } } return descriptors; }
public XMLUnmarshaller getXmlUnmarshaller() { XMLUnmarshaller unmarshaller = xmlUnmarshallerMap.get(Thread.currentThread()); if (null == unmarshaller) { unmarshaller = getXmlContext().createUnmarshaller(); unmarshaller.getProperties().put(SDOConstants.SDO_HELPER_CONTEXT, aHelperContext); unmarshaller.setUnmappedContentHandlerClass(SDOUnmappedContentHandler.class); unmarshaller.setUnmarshalListener(new SDOUnmarshalListener(aHelperContext)); unmarshaller.setResultAlwaysXMLRoot(true); xmlUnmarshallerMap.put(Thread.currentThread(), unmarshaller); } XMLContext context = getXmlContext(); if (unmarshaller.getXMLContext() != context) { unmarshaller.setXMLContext(context); } return unmarshaller; }