private JPADefinition(boolean feature) { super(getParameters(feature)); }
public String toString() { return getLocalName(); } }
@Override public void initializeParsers(ExtensionParsingContext context) { context.setSubsystemXmlMapping(SUBSYSTEM_NAME, Namespace.JPA_1_1.getUriString(), JPASubsystemElementParser1_1::new); context.setSubsystemXmlMapping(SUBSYSTEM_NAME, Namespace.JPA_1_0.getUriString(), JPASubsystemElementParser1_0::new); }
/** * {@inheritDoc} */ @Override public void readElement(XMLExtendedStreamReader reader, List<ModelNode> list) throws XMLStreamException { ModelNode subsystemAdd = null; while (reader.hasNext() && reader.nextTag() != END_ELEMENT) { final Element element = Element.forName(reader.getLocalName()); Namespace readerNS = Namespace.forUri(reader.getNamespaceURI()); switch (element) { case JPA: { subsystemAdd = parseJPA(reader, readerNS); break; } default: { throw ParseUtils.unexpectedElement(reader); } } } if (subsystemAdd == null) { throw ParseUtils.missingRequiredElement(reader, Collections.singleton(Element.JPA.getLocalName())); } list.add(subsystemAdd); }
/** * {@inheritDoc} */ @Override public void readElement(XMLExtendedStreamReader reader, List<ModelNode> list) throws XMLStreamException { ModelNode subsystemAdd = null; while (reader.hasNext() && reader.nextTag() != END_ELEMENT) { final Element element = Element.forName(reader.getLocalName()); Namespace readerNS = Namespace.forUri(reader.getNamespaceURI()); switch (element) { case JPA: { subsystemAdd = parseJPA(reader, readerNS); break; } default: { throw ParseUtils.unexpectedElement(reader); } } } if (subsystemAdd == null) { throw ParseUtils.missingRequiredElement(reader, Collections.singleton(Element.JPA.getLocalName())); } list.add(subsystemAdd); }
/** * {@inheritDoc} */ @Override public void writeContent(final XMLExtendedStreamWriter writer, final SubsystemMarshallingContext context) throws XMLStreamException { ModelNode node = context.getModelNode(); if (node.hasDefined(CommonAttributes.DEFAULT_DATASOURCE) || node.hasDefined(CommonAttributes.DEFAULT_EXTENDEDPERSISTENCE_INHERITANCE) ) { context.startSubsystemElement(Namespace.JPA_1_1.getUriString(), false); writer.writeStartElement(Element.JPA.getLocalName()); JPADefinition.DEFAULT_DATASOURCE.marshallAsAttribute(node, writer); JPADefinition.DEFAULT_EXTENDEDPERSISTENCE_INHERITANCE.marshallAsAttribute(node, writer); writer.writeEndElement(); writer.writeEndElement(); } else { //TODO seems to be a problem with empty elements cleaning up the queue in FormattingXMLStreamWriter.runAttrQueue //context.startSubsystemElement(NewNamingExtension.NAMESPACE, true); context.startSubsystemElement(Namespace.JPA_1_1.getUriString(), false); writer.writeEndElement(); } } }
private ModelNode parseJPA(XMLExtendedStreamReader reader, Namespace readerNS) throws XMLStreamException { String dataSourceName = null; final ModelNode operation = Util.createAddOperation(PathAddress.pathAddress(PathElement.pathElement(SUBSYSTEM, SUBSYSTEM_NAME))); int count = reader.getAttributeCount(); for (int i = 0; i < count; i++) { final String value = reader.getAttributeValue(i); final Attribute attribute = Attribute.forName(reader.getAttributeLocalName(i)); switch (attribute) { case DEFAULT_DATASOURCE_NAME: { dataSourceName = value; JPADefinition.DEFAULT_DATASOURCE.parseAndSetParameter(value, operation, reader); break; } case DEFAULT_EXTENDEDPERSISTENCEINHERITANCE_NAME: JPADefinition.DEFAULT_EXTENDEDPERSISTENCE_INHERITANCE.parseAndSetParameter(value, operation, reader); break; default: { throw ParseUtils.unexpectedAttribute(reader, i); } } } // Require no content ParseUtils.requireNoContent(reader); if (dataSourceName == null) { throw ParseUtils.missingRequired(reader, Collections.singleton(Attribute.DEFAULT_DATASOURCE_NAME)); } return operation; }
@Override public EntityManagerFactory entityManagerFactory(final String scopedPersistenceUnitName) { PersistenceUnitService persistenceUnitService = PersistenceUnitRegistryImpl.INSTANCE.getPersistenceUnitService(scopedPersistenceUnitName); if (persistenceUnitService == null) { return null; } return persistenceUnitService.getEntityManagerFactory(); }
private JPADefinition(boolean feature) { super(new Parameters(PathElement.pathElement(ModelDescriptionConstants.SUBSYSTEM, JPAExtension.SUBSYSTEM_NAME), JPAExtension.getResourceDescriptionResolver()) .setAddHandler(JPASubSystemAdd.INSTANCE) .setRemoveHandler(ReloadRequiredRemoveStepHandler.INSTANCE) .setFeature(feature)); }
@Override public void initialize(ExtensionContext context) { SubsystemRegistration registration = context.registerSubsystem(SUBSYSTEM_NAME, CURRENT_MODEL_VERSION); final ManagementResourceRegistration nodeRegistration = registration.registerSubsystemModel(JPADefinition.INSTANCE); nodeRegistration.registerOperationHandler(GenericSubsystemDescribeHandler.DEFINITION, GenericSubsystemDescribeHandler.INSTANCE); registration.registerXMLElementWriter(new JPASubsystemElementParser1_1()); try { PersistenceProviderLoader.loadDefaultProvider(); } catch (ModuleLoadException e) { ROOT_LOGGER.errorPreloadingDefaultProvider(e); } if (context.isRuntimeOnlyRegistrationValid()) { registration.registerDeploymentModel(JPADefinition.DEPLOYMENT_INSTANCE); } }
/** * {@inheritDoc} */ @Override public void readElement(XMLExtendedStreamReader reader, List<ModelNode> list) throws XMLStreamException { ModelNode subsystemAdd = null; while (reader.hasNext() && reader.nextTag() != END_ELEMENT) { final Element element = Element.forName(reader.getLocalName()); Namespace readerNS = Namespace.forUri(reader.getNamespaceURI()); switch (element) { case JPA: { subsystemAdd = parseJPA(reader, readerNS); break; } default: { throw ParseUtils.unexpectedElement(reader); } } } if (subsystemAdd == null) { throw ParseUtils.missingRequiredElement(reader, Collections.singleton(Element.JPA.getLocalName())); } list.add(subsystemAdd); }
/** * {@inheritDoc} */ @Override public void readElement(XMLExtendedStreamReader reader, List<ModelNode> list) throws XMLStreamException { ModelNode subsystemAdd = null; while (reader.hasNext() && reader.nextTag() != END_ELEMENT) { final Element element = Element.forName(reader.getLocalName()); Namespace readerNS = Namespace.forUri(reader.getNamespaceURI()); switch (element) { case JPA: { subsystemAdd = parseJPA(reader, readerNS); break; } default: { throw ParseUtils.unexpectedElement(reader); } } } if (subsystemAdd == null) { throw ParseUtils.missingRequiredElement(reader, Collections.singleton(Element.JPA.getLocalName())); } list.add(subsystemAdd); }
/** * {@inheritDoc} */ @Override public void writeContent(final XMLExtendedStreamWriter writer, final SubsystemMarshallingContext context) throws XMLStreamException { ModelNode node = context.getModelNode(); if (node.hasDefined(CommonAttributes.DEFAULT_DATASOURCE) || node.hasDefined(CommonAttributes.DEFAULT_EXTENDEDPERSISTENCE_INHERITANCE) ) { context.startSubsystemElement(Namespace.JPA_1_1.getUriString(), false); writer.writeStartElement(Element.JPA.getLocalName()); JPADefinition.DEFAULT_DATASOURCE.marshallAsAttribute(node, writer); JPADefinition.DEFAULT_EXTENDEDPERSISTENCE_INHERITANCE.marshallAsAttribute(node, writer); writer.writeEndElement(); writer.writeEndElement(); } else { //TODO seems to be a problem with empty elements cleaning up the queue in FormattingXMLStreamWriter.runAttrQueue //context.startSubsystemElement(NewNamingExtension.NAMESPACE, true); context.startSubsystemElement(Namespace.JPA_1_1.getUriString(), false); writer.writeEndElement(); } } }
private ModelNode parseJPA(XMLExtendedStreamReader reader, Namespace readerNS) throws XMLStreamException { String dataSourceName = null; final ModelNode operation = Util.createAddOperation(PathAddress.pathAddress(PathElement.pathElement(SUBSYSTEM, SUBSYSTEM_NAME))); int count = reader.getAttributeCount(); for (int i = 0; i < count; i++) { final String value = reader.getAttributeValue(i); final Attribute attribute = Attribute.forName(reader.getAttributeLocalName(i)); switch (attribute) { case DEFAULT_DATASOURCE_NAME: { dataSourceName = value; JPADefinition.DEFAULT_DATASOURCE.parseAndSetParameter(value, operation, reader); break; } case DEFAULT_EXTENDEDPERSISTENCEINHERITANCE_NAME: JPADefinition.DEFAULT_EXTENDEDPERSISTENCE_INHERITANCE.parseAndSetParameter(value, operation, reader); break; default: { throw ParseUtils.unexpectedAttribute(reader, i); } } } // Require no content ParseUtils.requireNoContent(reader); if (dataSourceName == null) { throw ParseUtils.missingRequired(reader, Collections.singleton(Attribute.DEFAULT_DATASOURCE_NAME)); } return operation; }
public String toString() { return getLocalName(); } }
@Override public void initializeParsers(ExtensionParsingContext context) { context.setSubsystemXmlMapping(SUBSYSTEM_NAME, Namespace.JPA_1_1.getUriString(), JPASubsystemElementParser1_1::new); context.setSubsystemXmlMapping(SUBSYSTEM_NAME, Namespace.JPA_1_0.getUriString(), JPASubsystemElementParser1_0::new); }
@Override public EntityManagerFactory entityManagerFactory(final String scopedPersistenceUnitName) { PersistenceUnitService persistenceUnitService = PersistenceUnitRegistryImpl.INSTANCE.getPersistenceUnitService(scopedPersistenceUnitName); if (persistenceUnitService == null) { return null; } return persistenceUnitService.getEntityManagerFactory(); }
private static Parameters getParameters(boolean feature) { Parameters result = new Parameters(PathElement.pathElement(ModelDescriptionConstants.SUBSYSTEM, JPAExtension.SUBSYSTEM_NAME), JPAExtension.getResourceDescriptionResolver()) .setFeature(feature); if (feature) { result = result.setCapabilities(JPA_CAPABILITY); } // TODO WFLY-11173 add/remove handlers don't make sense on the deployment resource result = result.setAddHandler(JPASubSystemAdd.INSTANCE).setRemoveHandler(ReloadRequiredRemoveStepHandler.INSTANCE); return result; }
@Override public void initialize(ExtensionContext context) { SubsystemRegistration registration = context.registerSubsystem(SUBSYSTEM_NAME, CURRENT_MODEL_VERSION); final ManagementResourceRegistration nodeRegistration = registration.registerSubsystemModel(JPADefinition.INSTANCE); nodeRegistration.registerOperationHandler(GenericSubsystemDescribeHandler.DEFINITION, GenericSubsystemDescribeHandler.INSTANCE); registration.registerXMLElementWriter(new JPASubsystemElementParser1_1()); try { PersistenceProviderLoader.loadDefaultProvider(); } catch (ModuleLoadException e) { ROOT_LOGGER.errorPreloadingDefaultProvider(e); } if (context.isRuntimeOnlyRegistrationValid()) { registration.registerDeploymentModel(JPADefinition.DEPLOYMENT_INSTANCE); } }
private ModelNode parseJPA(XMLExtendedStreamReader reader, Namespace readerNS) throws XMLStreamException { final ModelNode operation = Util.createAddOperation(PathAddress.pathAddress(PathElement.pathElement(SUBSYSTEM, SUBSYSTEM_NAME))); String dataSourceName = null; int count = reader.getAttributeCount(); for (int i = 0; i < count; i++) { final String value = reader.getAttributeValue(i); final Attribute attribute = Attribute.forName(reader.getAttributeLocalName(i)); switch (attribute) { case DEFAULT_DATASOURCE_NAME: { dataSourceName = value; JPADefinition.DEFAULT_DATASOURCE.parseAndSetParameter(value, operation, reader); break; } default: { throw ParseUtils.unexpectedAttribute(reader, i); } } } // Require no content ParseUtils.requireNoContent(reader); if (dataSourceName == null) { throw ParseUtils.missingRequired(reader, Collections.singleton(Attribute.DEFAULT_DATASOURCE_NAME)); } return operation; } }