private void parseCMs(XMLExtendedStreamReader reader, List<ModelNode> operations) throws XMLStreamException { while (reader.hasNext() && reader.nextTag() != END_ELEMENT) { final Element element = Element.forName(reader.getLocalName()); switch (element) { case CM_RESPOURCE: parseCM(reader, operations); break; default: { throw unexpectedElement(reader); } } } }
protected void parseRemote(final XMLExtendedStreamReader reader, List<ModelNode> operations) throws XMLStreamException { final int count = reader.getAttributeCount(); ModelNode operation = Util.createAddOperation(SUBSYSTEM_PATH.append(SERVICE, REMOTE)); final EnumSet<EJB3SubsystemXMLAttribute> required = EnumSet.of(EJB3SubsystemXMLAttribute.CONNECTOR_REF, EJB3SubsystemXMLAttribute.THREAD_POOL_NAME); for (int i = 0; i < count; i++) { requireNoNamespaceAttribute(reader, i); final String value = reader.getAttributeValue(i); final EJB3SubsystemXMLAttribute attribute = EJB3SubsystemXMLAttribute.forName(reader.getAttributeLocalName(i)); required.remove(attribute); switch (attribute) { case CONNECTOR_REF: EJB3RemoteResourceDefinition.CONNECTOR_REF.parseAndSetParameter(value, operation, reader); break; case THREAD_POOL_NAME: EJB3RemoteResourceDefinition.THREAD_POOL_NAME.parseAndSetParameter(value, operation, reader); break; default: throw unexpectedAttribute(reader, i); } } if (!required.isEmpty()) { throw missingRequired(reader, required); } operation.get(EJB3SubsystemModel.EXECUTE_IN_WORKER).set(new ModelNode(false)); requireNoContent(reader); operations.add(operation); }
static String parseEarSubDeploymentsIsolatedElement(XMLExtendedStreamReader reader) throws XMLStreamException { // we don't expect any attributes for this element. requireNoAttributes(reader); final String value = reader.getElementText(); if (value == null || value.trim().isEmpty()) { throw EeLogger.ROOT_LOGGER.invalidValue(value, Element.EAR_SUBDEPLOYMENTS_ISOLATED.getLocalName(), reader.getLocation()); } return value.trim(); }
protected Boolean getAttributeAsBoolean(XMLExtendedStreamReader reader, String attributeName) { for (int i = 0; i < reader.getAttributeCount(); i++) { final String name = reader.getAttributeLocalName(i); final String value = reader.getAttributeValue(i); if (attributeName.equals(name)) { return Boolean.valueOf(value); } } return null; } }
private void parseLogin(XMLExtendedStreamReader reader, ModelNode operation) throws XMLStreamException { while (reader.hasNext() && reader.nextTag() != END_ELEMENT) { final String element = reader.getLocalName(); switch (element) { case LOGIN: { for (int i = 0; i < reader.getAttributeCount(); i++) { String att = reader.getAttributeLocalName(i); String value = reader.getAttributeValue(i); if (att.equals(MailSubsystemModel.USER_NAME)) { MailServerDefinition.USERNAME.parseAndSetParameter(value, operation, reader); } else if (att.equals(MailSubsystemModel.PASSWORD)) { PASSWORD.parseAndSetParameter(value, operation, reader); } } ParseUtils.requireNoContent(reader); break; } } } } }
@Override public void parseElement(AttributeDefinition attribute, XMLExtendedStreamReader reader, ModelNode operation) throws XMLStreamException { assert attribute instanceof MapAttributeDefinition; String name = reader.getAttributeValue(null, ModelDescriptionConstants.NAME); ((MapAttributeDefinition) attribute).parseAndAddParameterElement(name, reader.getElementText(), operation, reader); } };
static void parseContextServices(XMLExtendedStreamReader reader, List<ModelNode> operations, PathAddress subsystemPathAddress) throws XMLStreamException { requireNoAttributes(reader); boolean empty = true; while (reader.hasNext() && reader.nextTag() != END_ELEMENT) { switch (Element.forName(reader.getLocalName())) { case CONTEXT_SERVICE: { empty = false; parseContextService(reader, operations, subsystemPathAddress); break; } default: { throw unexpectedElement(reader); } } } if (empty) { throw missingRequired(reader, EnumSet.of(Element.CONTEXT_SERVICE)); } }
private void parseDefaultSecurityDomain(final XMLExtendedStreamReader reader, final ModelNode ejb3SubsystemAddOperation) throws XMLStreamException { final int count = reader.getAttributeCount(); final EnumSet<EJB3SubsystemXMLAttribute> missingRequiredAttributes = EnumSet.of(EJB3SubsystemXMLAttribute.VALUE); for (int i = 0; i < count; i++) { requireNoNamespaceAttribute(reader, i); final String value = reader.getAttributeValue(i); final EJB3SubsystemXMLAttribute attribute = EJB3SubsystemXMLAttribute.forName(reader.getAttributeLocalName(i)); switch (attribute) { case VALUE: EJB3SubsystemRootResourceDefinition.DEFAULT_SECURITY_DOMAIN.parseAndSetParameter(value, ejb3SubsystemAddOperation, reader); // found the mandatory attribute missingRequiredAttributes.remove(EJB3SubsystemXMLAttribute.VALUE); break; default: throw unexpectedAttribute(reader, i); } } requireNoContent(reader); if (!missingRequiredAttributes.isEmpty()) { throw missingRequired(reader, missingRequiredAttributes); } }
public void readElement(XMLExtendedStreamReader reader, List<ModelNode> list) throws XMLStreamException { requireNoAttributes(reader); final ModelNode eeSubSystem = Util.createAddOperation(PathAddress.pathAddress(EeExtension.PATH_SUBSYSTEM)); final EnumSet<Element> encountered = EnumSet.noneOf(Element.class); while (reader.hasNext() && reader.nextTag() != END_ELEMENT) { switch (Namespace.forUri(reader.getNamespaceURI())) { case EE_1_0: { final Element element = Element.forName(reader.getLocalName()); if (!encountered.add(element)) { throw unexpectedElement(reader); eeSubSystem.get(GlobalModulesDefinition.GLOBAL_MODULES).set(model); break; final String earSubDeploymentsIsolated = parseEarSubDeploymentsIsolatedElement(reader); EeSubsystemRootResource.EAR_SUBDEPLOYMENTS_ISOLATED.parseAndSetParameter(earSubDeploymentsIsolated, eeSubSystem, reader); break; throw unexpectedElement(reader);
@Override public void readElement(XMLExtendedStreamReader reader, List<ModelNode> operations) throws XMLStreamException { PathAddress address = PathAddress.pathAddress(PathElement.pathElement(SUBSYSTEM, SecurityExtension.SUBSYSTEM_NAME)); final ModelNode subsystemNode = Util.createAddOperation(address); operations.add(subsystemNode); requireNoAttributes(reader); final EnumSet<Element> visited = EnumSet.noneOf(Element.class); while (reader.hasNext() && reader.nextTag() != END_ELEMENT) { final Element element = Element.forName(reader.getLocalName()); if (!visited.add(element)) { throw unexpectedElement(reader); } readElement(reader, element, operations, address, subsystemNode); } }
/** * {@inheritDoc} */ @Override public void readElement(final XMLExtendedStreamReader reader, final List<ModelNode> operations) throws XMLStreamException { final ModelNode ejb3SubsystemAddOperation = Util.createAddOperation(SUBSYSTEM_PATH); operations.add(ejb3SubsystemAddOperation); readAttributes(reader); // elements final EnumSet<EJB3SubsystemXMLElement> encountered = EnumSet.noneOf(EJB3SubsystemXMLElement.class); while (reader.hasNext() && reader.nextTag() != XMLStreamConstants.END_ELEMENT) { if (EJB3SubsystemNamespace.forUri(reader.getNamespaceURI()) != getExpectedNamespace()) { throw unexpectedElement(reader); } final EJB3SubsystemXMLElement element = EJB3SubsystemXMLElement.forName(reader.getLocalName()); if (!encountered.add(element)) { throw unexpectedElement(reader); } readElement(reader, element, operations, ejb3SubsystemAddOperation); } }
private void parseCustomStore(XMLExtendedStreamReader reader, PathAddress cacheAddress, Map<PathAddress, ModelNode> operations) throws XMLStreamException { PathAddress address = cacheAddress.append(CustomStoreResourceDefinition.PATH); PathAddress operationKey = cacheAddress.append(StoreResourceDefinition.WILDCARD_PATH); if (operations.containsKey(operationKey)) { throw ParseUtils.unexpectedElement(reader); } ModelNode operation = Util.createAddOperation(address); operations.put(operationKey, operation); for (int i = 0; i < reader.getAttributeCount(); i++) { XMLAttribute attribute = XMLAttribute.forName(reader.getAttributeLocalName(i)); switch (attribute) { case CLASS: { readAttribute(reader, i, operation, CustomStoreResourceDefinition.Attribute.CLASS); break; } default: { this.parseStoreAttribute(reader, i, operation); } } } if (!operation.hasDefined(CustomStoreResourceDefinition.Attribute.CLASS.getName())) { throw ParseUtils.missingRequired(reader, EnumSet.of(XMLAttribute.CLASS)); } while (reader.hasNext() && (reader.nextTag() != XMLStreamConstants.END_ELEMENT)) { this.parseStoreElement(reader, address, operations); } }
private void parseJobRepository(final XMLExtendedStreamReader reader, final PathAddress subsystemAddress, final String name, final List<ModelNode> ops) throws XMLStreamException { while (reader.hasNext() && reader.nextTag() != END_ELEMENT) { final String localName = reader.getLocalName(); final Element element = Element.forName(localName); if (element == Element.IN_MEMORY) { ops.add(Util.createAddOperation(subsystemAddress.append(InMemoryJobRepositoryDefinition.NAME, name))); ParseUtils.requireNoContent(reader); } else if (element == Element.JDBC) { final Map<Attribute, String> attributes = AttributeParsers.readRequiredAttributes(reader, EnumSet.of(Attribute.DATA_SOURCE)); final ModelNode op = Util.createAddOperation(subsystemAddress.append(JdbcJobRepositoryDefinition.NAME, name)); JdbcJobRepositoryDefinition.DATA_SOURCE.parseAndSetParameter(attributes.get(Attribute.DATA_SOURCE), op, reader); ops.add(op); ParseUtils.requireNoContent(reader); } else { throw ParseUtils.unexpectedElement(reader); } } } }
private void parseAuthProtocol(XMLExtendedStreamReader reader, PathAddress stackAddress, Map<PathAddress, ModelNode> operations) throws XMLStreamException { String type = require(reader, XMLAttribute.TYPE); PathAddress address = stackAddress.append(ProtocolResourceDefinition.pathElement(type)); ModelNode operation = Util.createAddOperation(address); operations.put(address, operation); for (int i = 0; i < reader.getAttributeCount(); i++) { this.parseProtocolAttribute(reader, i, operation); } while (reader.hasNext() && (reader.nextTag() != XMLStreamConstants.END_ELEMENT)) { this.parseAuthProtocolElement(reader, address, operations); } if (!operations.containsKey(address.append(AuthTokenResourceDefinition.WILDCARD_PATH))) { throw ParseUtils.missingOneOf(reader, EnumSet.of(XMLElement.PLAIN_TOKEN, XMLElement.DIGEST_TOKEN, XMLElement.CIPHER_TOKEN)); } }
private void parseAuthModule(List<ModelNode> list, XMLExtendedStreamReader reader, PathAddress parentAddress) throws XMLStreamException { Namespace schemaVer = Namespace.forUri(reader.getNamespaceURI()); EnumSet<Attribute> required = EnumSet.of(Attribute.CODE); final EnumSet<Attribute> notAllowed; // in version 1.2 of the schema the optional flag attribute has been included. switch (schemaVer) { case SECURITY_1_0: case SECURITY_1_1: notAllowed = EnumSet.of(Attribute.TYPE, Attribute.FLAG); break; default: notAllowed = EnumSet.of(Attribute.TYPE); } parseCommonModule(reader, parentAddress, AUTH_MODULE, required, notAllowed, list); }
private void parseCustomServerConfig(final XMLExtendedStreamReader reader, final PathAddress parent, List<ModelNode> list) throws XMLStreamException { final ModelNode operation = Util.createAddOperation(parent); list.add(operation); String name = null; for (int i = 0; i < reader.getAttributeCount(); i++) { String attr = reader.getAttributeLocalName(i); String value = reader.getAttributeValue(i); switch (attr) { case MailSubsystemModel.OUTBOUND_SOCKET_BINDING_REF: OUTBOUND_SOCKET_BINDING_REF_OPTIONAL.parseAndSetParameter(value, operation, reader); break; case MailSubsystemModel.SSL: SSL.parseAndSetParameter(value, operation, reader); break; case MailSubsystemModel.TLS: TLS.parseAndSetParameter(value, operation, reader); break; case MailSubsystemModel.NAME: while (reader.hasNext() && reader.nextTag() != END_ELEMENT) { final String element = reader.getLocalName(); switch (element) { case LOGIN: { for (int i = 0; i < reader.getAttributeCount(); i++) { String att = reader.getAttributeLocalName(i); String value = reader.getAttributeValue(i); final String[] array = requireAttributes(reader, org.jboss.as.controller.parsing.Attribute.NAME.getLocalName(), org.jboss.as.controller.parsing.Attribute.VALUE.getLocalName());
private void parseRolloutPlans(XMLExtendedStreamReader reader, ModelNode address, List<ModelNode> list) throws XMLStreamException { String hash = readStringAttributeElement(reader, Attribute.SHA1.getLocalName()); ModelNode addAddress = address.clone().add(MANAGEMENT_CLIENT_CONTENT, ROLLOUT_PLANS); ModelNode addOp = Util.getEmptyOperation(ADD, addAddress); try { addOp.get(HASH).set(HashUtil.hexStringToByteArray(hash)); } catch (final Exception e) { throw ControllerLogger.ROOT_LOGGER.invalidSha1Value(e, hash, Attribute.SHA1.getLocalName(), reader.getLocation()); } list.add(addOp); }
private ModelNode parseBeanValidation(final XMLExtendedStreamReader reader, final ModelNode parentOperation) throws XMLStreamException { final ModelNode beanValidationOperation = new ModelNode(); beanValidationOperation.get(OP).set(ADD); final ModelNode beanValidationAddress = parentOperation.clone(); beanValidationAddress.add(BEAN_VALIDATION, BEAN_VALIDATION); beanValidationAddress.protect(); beanValidationOperation.get(OP_ADDR).set(beanValidationAddress); final int cnt = reader.getAttributeCount(); for (int i = 0; i < cnt; i++) { final Attribute attribute = Attribute.forName(reader.getAttributeLocalName(i)); switch (attribute) { case ENABLED: { String value = rawAttributeText(reader, JcaBeanValidationDefinition.BeanValidationParameters.BEAN_VALIDATION_ENABLED.getAttribute().getXmlName()); JcaBeanValidationDefinition.BeanValidationParameters.BEAN_VALIDATION_ENABLED.getAttribute().parseAndSetParameter(value, beanValidationOperation, reader); break; } default: { throw unexpectedAttribute(reader, i); } } } // Handle elements requireNoContent(reader); return beanValidationOperation; }
protected void parseUseJournalstore(final XMLExtendedStreamReader reader, final ModelNode logStoreOperation, final ModelNode operation) throws XMLStreamException { logStoreOperation.get(LogStoreConstants.LOG_STORE_TYPE.getName()).set("journal"); // Handle attributes final int count = reader.getAttributeCount(); for (int i = 0; i < count; i++) { requireNoNamespaceAttribute(reader, i); final String value = reader.getAttributeValue(i); final Attribute attribute = Attribute.forName(reader.getAttributeLocalName(i)); switch (attribute) { case ENABLE_ASYNC_IO: TransactionSubsystemRootResourceDefinition.JOURNAL_STORE_ENABLE_ASYNC_IO.parseAndSetParameter(value, operation, reader); break; default: throw unexpectedAttribute(reader, i); } } // Handle elements requireNoContent(reader); }
private void parseJts(final XMLExtendedStreamReader reader, final ModelNode operation) throws XMLStreamException { // no attributes if (reader.getAttributeCount() > 0) { throw unexpectedAttribute(reader, 0); } operation.get(CommonAttributes.JTS).set(true); requireNoContent(reader); }