From c4f2d7a24ae2d491828e3a86b29354db27308668 Mon Sep 17 00:00:00 2001 From: Tomaz Cerar Date: Thu, 29 Sep 2016 17:25:21 +0200 Subject: [PATCH] WFCORE-1841 lazy subsystem parser support - introduces parser providers (via staxmapper 1.3) - migrates core subsystems to use it - should redurce memory usage down a bit --- .../PersistentResourceXMLDescription.java | 87 +++++++++---------- .../extension/ExtensionRegistry.java | 14 ++- .../parsing/ExtensionParsingContext.java | 19 +++- .../scanner/DeploymentScannerExtension.java | 8 +- .../scanner/DeploymentScannerParser_1_0.java | 2 - .../scanner/DeploymentScannerParser_1_1.java | 2 - .../scanner/DeploymentScannerParser_2_0.java | 2 - .../org/wildfly/extension/io/IOExtension.java | 6 +- .../extension/io/IOSubsystemParser_1_0.java | 4 +- .../extension/io/IOSubsystemParser_1_1.java | 2 - .../java/org/jboss/as/jmx/JMXExtension.java | 12 +-- .../jboss/as/logging/LoggingExtension.java | 21 ++--- pom.xml | 2 +- .../subsystem/test/SubsystemTestDelegate.java | 5 +- 14 files changed, 101 insertions(+), 85 deletions(-) diff --git a/controller/src/main/java/org/jboss/as/controller/PersistentResourceXMLDescription.java b/controller/src/main/java/org/jboss/as/controller/PersistentResourceXMLDescription.java index fcf83f8b33d..cf6a4bb09f2 100644 --- a/controller/src/main/java/org/jboss/as/controller/PersistentResourceXMLDescription.java +++ b/controller/src/main/java/org/jboss/as/controller/PersistentResourceXMLDescription.java @@ -35,14 +35,14 @@ public final class PersistentResourceXMLDescription { protected final PathElement pathElement; - protected final String xmlElementName; - protected final String xmlWrapperElement; - protected final LinkedHashMap> attributesByGroup; + private final String xmlElementName; + private final String xmlWrapperElement; + private final LinkedHashMap> attributesByGroup; protected final List children; - protected final Map attributeElements = new HashMap<>(); - protected final boolean useValueAsElementName; - protected final boolean noAddOperation; - protected final AdditionalOperationsGenerator additionalOperationsGenerator; + private final Map attributeElements = new HashMap<>(); + private final boolean useValueAsElementName; + private final boolean noAddOperation; + private final AdditionalOperationsGenerator additionalOperationsGenerator; private boolean flushRequired = true; private boolean childAlreadyRead = false; private final Map attributeParsers; @@ -65,7 +65,7 @@ private PersistentResourceXMLDescription(PersistentResourceXMLBuilder builder) { this.namespaceURI = builder.namespaceURI; if (useElementsForGroups) { // Ensure we have a map for the default group even if there are no attributes so we don't NPE later - this.attributesByGroup.put(null, new LinkedHashMap()); + this.attributesByGroup.put(null, new LinkedHashMap<>()); this.attributeGroups = new HashSet<>(); // Segregate attributes by group for (AttributeDefinition ad : builder.attributeList) { @@ -93,9 +93,10 @@ private PersistentResourceXMLDescription(PersistentResourceXMLBuilder builder) { this.attributeGroups = null; } this.children = new ArrayList<>(); - for (PersistentResourceXMLBuilder b : builder.children) { + for (PersistentResourceXMLBuilder b : builder.childrenBuilders) { this.children.add(b.build()); } + builder.children.forEach(this.children::add); this.useValueAsElementName = builder.useValueAsElementName; this.noAddOperation = builder.noAddOperation; this.additionalOperationsGenerator = builder.additionalOperationsGenerator; @@ -417,7 +418,18 @@ public void persistChildren(XMLExtendedStreamWriter writer, ModelNode model) thr @SuppressWarnings("deprecation") @Deprecated public static PersistentResourceXMLBuilder builder(PersistentResourceDefinition resource) { - return new PersistentResourceXMLBuilder(resource); + return new PersistentResourceXMLBuilder(resource.getPathElement()); + } + + /** + * @param resource resource for which path we are creating builder + * @return PersistentResourceXMLBuilder + * @deprecated please use {@linkplain PersistentResourceXMLBuilder(PathElement, String)} variant + */ + @SuppressWarnings("deprecation") + @Deprecated + public static PersistentResourceXMLBuilder builder(ResourceDefinition resource) { + return new PersistentResourceXMLBuilder(resource.getPathElement()); } /** @@ -430,7 +442,7 @@ public static PersistentResourceXMLBuilder builder(PersistentResourceDefinition @SuppressWarnings("deprecation") @Deprecated public static PersistentResourceXMLBuilder builder(PersistentResourceDefinition resource, String namespaceURI) { - return new PersistentResourceXMLBuilder(resource, namespaceURI); + return new PersistentResourceXMLBuilder(resource.getPathElement(), namespaceURI); } /** @@ -453,55 +465,42 @@ public static PersistentResourceXMLBuilder builder(final PathElement pathElement return new PersistentResourceXMLBuilder(pathElement, namespaceURI); } - public static class PersistentResourceXMLBuilder { + public static final class PersistentResourceXMLBuilder { protected final PathElement pathElement; private final String namespaceURI; - protected String xmlElementName; - protected String xmlWrapperElement; - protected boolean useValueAsElementName; - protected boolean noAddOperation; - protected AdditionalOperationsGenerator additionalOperationsGenerator; - protected final LinkedList attributeList = new LinkedList<>(); - protected final List children = new ArrayList<>(); - protected final LinkedHashMap attributeParsers = new LinkedHashMap<>(); - protected final LinkedHashMap attributeMarshallers = new LinkedHashMap<>(); - protected boolean useElementsForGroups = true; - protected String forcedName; + private String xmlElementName; + private String xmlWrapperElement; + private boolean useValueAsElementName; + private boolean noAddOperation; + private AdditionalOperationsGenerator additionalOperationsGenerator; + private final LinkedList attributeList = new LinkedList<>(); + private final List childrenBuilders = new ArrayList<>(); + private final List children = new ArrayList<>(); + private final LinkedHashMap attributeParsers = new LinkedHashMap<>(); + private final LinkedHashMap attributeMarshallers = new LinkedHashMap<>(); + private boolean useElementsForGroups = true; + private String forcedName; private boolean marshallDefaultValues = false; private String nameAttributeName = NAME; - /** - * @deprecated please use {@link PersistentResourceXMLBuilder(PathElement) } instead - * @param resourceDefinition for which xml build is constructed - */ - @Deprecated - protected PersistentResourceXMLBuilder(final PersistentResourceDefinition resourceDefinition) { - this(resourceDefinition.getPathElement()); - } - - /** - * @param resourceDefinition for which xml build is constructed - * @param namespaceURI namespace for which we create this resource, usually only useful for top level resources - * @deprecated please use {@link PersistentResourceXMLBuilder(PathElement, String) } instead - */ - @Deprecated - protected PersistentResourceXMLBuilder(final PersistentResourceDefinition resourceDefinition, String namespaceURI) { - this(resourceDefinition.getPathElement(), namespaceURI); - } - - protected PersistentResourceXMLBuilder(final PathElement pathElement) { + private PersistentResourceXMLBuilder(final PathElement pathElement) { this.pathElement = pathElement; this.namespaceURI = null; this.xmlElementName = pathElement.isWildcard() ? pathElement.getKey() : pathElement.getValue(); } - protected PersistentResourceXMLBuilder(final PathElement pathElement, String namespaceURI) { + private PersistentResourceXMLBuilder(final PathElement pathElement, String namespaceURI) { this.pathElement = pathElement; this.namespaceURI = namespaceURI; this.xmlElementName = pathElement.isWildcard() ? pathElement.getKey() : pathElement.getValue(); } public PersistentResourceXMLBuilder addChild(PersistentResourceXMLBuilder builder) { + this.childrenBuilders.add(builder); + return this; + } + + public PersistentResourceXMLBuilder addChild(PersistentResourceXMLDescription builder) { this.children.add(builder); return this; } diff --git a/controller/src/main/java/org/jboss/as/controller/extension/ExtensionRegistry.java b/controller/src/main/java/org/jboss/as/controller/extension/ExtensionRegistry.java index 80a5c7f9d53..6acca8877cf 100644 --- a/controller/src/main/java/org/jboss/as/controller/extension/ExtensionRegistry.java +++ b/controller/src/main/java/org/jboss/as/controller/extension/ExtensionRegistry.java @@ -35,7 +35,7 @@ import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; - +import java.util.function.Supplier; import javax.xml.namespace.QName; import org.jboss.as.controller.AttributeDefinition; @@ -456,6 +456,18 @@ public void setSubsystemXmlMapping(String subsystemName, String namespaceUri, XM } } + @Override + public void setSubsystemXmlMapping(String subsystemName, String namespaceUri, Supplier>> supplier){ + assert subsystemName != null : "subsystemName is null"; + assert namespaceUri != null : "namespaceUri is null"; + synchronized (extension) { + extension.getSubsystemInfo(subsystemName).addParsingNamespace(namespaceUri); + if (extension.xmlMapper != null) { + extension.xmlMapper.registerRootElement(new QName(namespaceUri, SUBSYSTEM), supplier); + } + } + } + @Override public void setProfileParsingCompletionHandler(ProfileParsingCompletionHandler handler) { assert handler != null : "handler is null"; diff --git a/controller/src/main/java/org/jboss/as/controller/parsing/ExtensionParsingContext.java b/controller/src/main/java/org/jboss/as/controller/parsing/ExtensionParsingContext.java index 468db22e4ab..bb73bc289de 100644 --- a/controller/src/main/java/org/jboss/as/controller/parsing/ExtensionParsingContext.java +++ b/controller/src/main/java/org/jboss/as/controller/parsing/ExtensionParsingContext.java @@ -23,7 +23,7 @@ package org.jboss.as.controller.parsing; import java.util.List; - +import java.util.function.Supplier; import org.jboss.as.controller.ProcessType; import org.jboss.as.controller.RunningMode; @@ -66,6 +66,23 @@ public interface ExtensionParsingContext { */ void setSubsystemXmlMapping(String subsystemName, String namespaceUri, XMLElementReader> reader); + /** + * Set the parser for the profile-wide subsystem configuration XML element. The element is always + * called {@code "subsystem"}. The reader should populate the given model node with the appropriate + * "subsystem add" update, without the address or operation name as that information will be automatically + * populated. + * It is recommended that supplier always creates new instance of the {@link XMLElementReader} + * instead of caching and returning always same instance. + * + * @param subsystemName the name of the subsystem. Cannot be {@code null} + * @param namespaceUri the URI of the sussystem's XML namespace, in string form. Cannot be {@code null} + * @param supplier of the element reader. Cannot be {@code null} + * + * @throws IllegalStateException if another {@link org.jboss.as.controller.Extension} has already registered a subsystem with the given + * {@code subsystemName} + */ + void setSubsystemXmlMapping(String subsystemName, String namespaceUri, Supplier>> supplier); + /** * Registers a {@link ProfileParsingCompletionHandler} to receive a callback upon completion of parsing of a * profile. diff --git a/deployment-scanner/src/main/java/org/jboss/as/server/deployment/scanner/DeploymentScannerExtension.java b/deployment-scanner/src/main/java/org/jboss/as/server/deployment/scanner/DeploymentScannerExtension.java index e0be4859901..5be9211c1c2 100644 --- a/deployment-scanner/src/main/java/org/jboss/as/server/deployment/scanner/DeploymentScannerExtension.java +++ b/deployment-scanner/src/main/java/org/jboss/as/server/deployment/scanner/DeploymentScannerExtension.java @@ -70,7 +70,7 @@ public void initialize(ExtensionContext context) { } final SubsystemRegistration subsystem = context.registerSubsystem(CommonAttributes.DEPLOYMENT_SCANNER, CURRENT_VERSION); - subsystem.registerXMLElementWriter(DeploymentScannerParser_2_0.INSTANCE); + subsystem.registerXMLElementWriter(new DeploymentScannerParser_2_0()); final ManagementResourceRegistration registration = subsystem.registerSubsystemModel(new DeploymentScannerSubsystemDefinition()); registration.registerOperationHandler(GenericSubsystemDescribeHandler.DEFINITION, GenericSubsystemDescribeHandler.INSTANCE); @@ -89,9 +89,9 @@ public void initialize(ExtensionContext context) { */ @Override public void initializeParsers(ExtensionParsingContext context) { - context.setSubsystemXmlMapping(SUBSYSTEM_NAME, Namespace.DEPLOYMENT_SCANNER_1_0.getUriString(), DeploymentScannerParser_1_0.INSTANCE); - context.setSubsystemXmlMapping(SUBSYSTEM_NAME, Namespace.DEPLOYMENT_SCANNER_1_1.getUriString(), DeploymentScannerParser_1_1.INSTANCE); - context.setSubsystemXmlMapping(SUBSYSTEM_NAME, Namespace.DEPLOYMENT_SCANNER_2_0.getUriString(), DeploymentScannerParser_2_0.INSTANCE); + context.setSubsystemXmlMapping(SUBSYSTEM_NAME, Namespace.DEPLOYMENT_SCANNER_1_0.getUriString(), DeploymentScannerParser_1_0::new); + context.setSubsystemXmlMapping(SUBSYSTEM_NAME, Namespace.DEPLOYMENT_SCANNER_1_1.getUriString(), DeploymentScannerParser_1_1::new); + context.setSubsystemXmlMapping(SUBSYSTEM_NAME, Namespace.DEPLOYMENT_SCANNER_2_0.getUriString(), DeploymentScannerParser_2_0::new); } diff --git a/deployment-scanner/src/main/java/org/jboss/as/server/deployment/scanner/DeploymentScannerParser_1_0.java b/deployment-scanner/src/main/java/org/jboss/as/server/deployment/scanner/DeploymentScannerParser_1_0.java index da0f3767b67..91f9171cb3f 100644 --- a/deployment-scanner/src/main/java/org/jboss/as/server/deployment/scanner/DeploymentScannerParser_1_0.java +++ b/deployment-scanner/src/main/java/org/jboss/as/server/deployment/scanner/DeploymentScannerParser_1_0.java @@ -50,8 +50,6 @@ */ class DeploymentScannerParser_1_0 implements XMLStreamConstants, XMLElementReader>, XMLElementWriter { - public static final DeploymentScannerParser_1_0 INSTANCE = new DeploymentScannerParser_1_0(); - /** {@inheritDoc} */ @Override public void writeContent(XMLExtendedStreamWriter writer, SubsystemMarshallingContext context) throws XMLStreamException { diff --git a/deployment-scanner/src/main/java/org/jboss/as/server/deployment/scanner/DeploymentScannerParser_1_1.java b/deployment-scanner/src/main/java/org/jboss/as/server/deployment/scanner/DeploymentScannerParser_1_1.java index 41fb46755c8..774746117c9 100644 --- a/deployment-scanner/src/main/java/org/jboss/as/server/deployment/scanner/DeploymentScannerParser_1_1.java +++ b/deployment-scanner/src/main/java/org/jboss/as/server/deployment/scanner/DeploymentScannerParser_1_1.java @@ -49,8 +49,6 @@ */ class DeploymentScannerParser_1_1 implements XMLStreamConstants, XMLElementReader>, XMLElementWriter { - public static final DeploymentScannerParser_1_1 INSTANCE = new DeploymentScannerParser_1_1(); - /** * {@inheritDoc} */ diff --git a/deployment-scanner/src/main/java/org/jboss/as/server/deployment/scanner/DeploymentScannerParser_2_0.java b/deployment-scanner/src/main/java/org/jboss/as/server/deployment/scanner/DeploymentScannerParser_2_0.java index 310d902040d..05562a9596b 100644 --- a/deployment-scanner/src/main/java/org/jboss/as/server/deployment/scanner/DeploymentScannerParser_2_0.java +++ b/deployment-scanner/src/main/java/org/jboss/as/server/deployment/scanner/DeploymentScannerParser_2_0.java @@ -49,8 +49,6 @@ */ class DeploymentScannerParser_2_0 implements XMLStreamConstants, XMLElementReader>, XMLElementWriter { - public static final DeploymentScannerParser_2_0 INSTANCE = new DeploymentScannerParser_2_0(); - /** * {@inheritDoc} */ diff --git a/io/subsystem/src/main/java/org/wildfly/extension/io/IOExtension.java b/io/subsystem/src/main/java/org/wildfly/extension/io/IOExtension.java index bbfeb1302fa..6d15611d279 100644 --- a/io/subsystem/src/main/java/org/wildfly/extension/io/IOExtension.java +++ b/io/subsystem/src/main/java/org/wildfly/extension/io/IOExtension.java @@ -58,8 +58,8 @@ public static StandardResourceDescriptionResolver getResolver(final String... ke @Override public void initializeParsers(ExtensionParsingContext context) { - context.setSubsystemXmlMapping(SUBSYSTEM_NAME, Namespace.IO_1_0.getUriString(), IOSubsystemParser_1_0.INSTANCE); - context.setSubsystemXmlMapping(SUBSYSTEM_NAME, Namespace.IO_1_1.getUriString(), IOSubsystemParser_1_1.INSTANCE); + context.setSubsystemXmlMapping(SUBSYSTEM_NAME, Namespace.IO_1_0.getUriString(), IOSubsystemParser_1_0::new); + context.setSubsystemXmlMapping(SUBSYSTEM_NAME, Namespace.IO_1_1.getUriString(), IOSubsystemParser_1_1::new); } @Override @@ -67,7 +67,7 @@ public void initialize(ExtensionContext context) { final SubsystemRegistration subsystem = context.registerSubsystem(SUBSYSTEM_NAME, ModelVersion.create(2)); final ManagementResourceRegistration registration = subsystem.registerSubsystemModel(IORootDefinition.INSTANCE); registration.registerOperationHandler(GenericSubsystemDescribeHandler.DEFINITION, GenericSubsystemDescribeHandler.INSTANCE, false); - subsystem.registerXMLElementWriter(IOSubsystemParser_1_1.INSTANCE); + subsystem.registerXMLElementWriter(new IOSubsystemParser_1_1()); } diff --git a/io/subsystem/src/main/java/org/wildfly/extension/io/IOSubsystemParser_1_0.java b/io/subsystem/src/main/java/org/wildfly/extension/io/IOSubsystemParser_1_0.java index 343de4aa590..d29d73f19a5 100644 --- a/io/subsystem/src/main/java/org/wildfly/extension/io/IOSubsystemParser_1_0.java +++ b/io/subsystem/src/main/java/org/wildfly/extension/io/IOSubsystemParser_1_0.java @@ -33,11 +33,9 @@ */ class IOSubsystemParser_1_0 extends PersistentResourceXMLParser { - static final IOSubsystemParser_1_0 INSTANCE = new IOSubsystemParser_1_0(); - private final PersistentResourceXMLDescription xmlDescription; - private IOSubsystemParser_1_0() { + IOSubsystemParser_1_0() { xmlDescription = builder(IORootDefinition.INSTANCE.getPathElement()) .addChild( builder(WorkerResourceDefinition.INSTANCE.getPathElement()) diff --git a/io/subsystem/src/main/java/org/wildfly/extension/io/IOSubsystemParser_1_1.java b/io/subsystem/src/main/java/org/wildfly/extension/io/IOSubsystemParser_1_1.java index 8719c9290f0..a14f3bb6d14 100644 --- a/io/subsystem/src/main/java/org/wildfly/extension/io/IOSubsystemParser_1_1.java +++ b/io/subsystem/src/main/java/org/wildfly/extension/io/IOSubsystemParser_1_1.java @@ -33,8 +33,6 @@ * @author Tomaz Cerar (c) 2013 Red Hat Inc. */ class IOSubsystemParser_1_1 extends PersistentResourceXMLParser { - static final IOSubsystemParser_1_1 INSTANCE = new IOSubsystemParser_1_1(); - private static final PersistentResourceXMLDescription xmlDescription; diff --git a/jmx/src/main/java/org/jboss/as/jmx/JMXExtension.java b/jmx/src/main/java/org/jboss/as/jmx/JMXExtension.java index 5b0fdc2e504..ec079ad38e1 100644 --- a/jmx/src/main/java/org/jboss/as/jmx/JMXExtension.java +++ b/jmx/src/main/java/org/jboss/as/jmx/JMXExtension.java @@ -79,10 +79,6 @@ static ResourceDescriptionResolver getResourceDescriptionResolver(final String k new SensitivityClassification(SUBSYSTEM_NAME, "jmx", false, false, true); static final SensitiveTargetAccessConstraintDefinition JMX_SENSITIVITY_DEF = new SensitiveTargetAccessConstraintDefinition(JMX_SENSITIVITY); - static final JMXSubsystemParser_1_3 parserCurrent = new JMXSubsystemParser_1_3(); - static final JMXSubsystemParser_1_2 parser12 = new JMXSubsystemParser_1_2(); - static final JMXSubsystemParser_1_1 parser11 = new JMXSubsystemParser_1_1(); - static final JMXSubsystemParser_1_0 parser10 = new JMXSubsystemParser_1_0(); static final JMXSubsystemWriter writer = new JMXSubsystemWriter(); private static final int MANAGEMENT_API_MAJOR_VERSION = 1; @@ -120,10 +116,10 @@ public void initialize(ExtensionContext context) { */ @Override public void initializeParsers(ExtensionParsingContext context) { - context.setSubsystemXmlMapping(SUBSYSTEM_NAME, Namespace.JMX_1_0.getUriString(), parser10); - context.setSubsystemXmlMapping(SUBSYSTEM_NAME, Namespace.JMX_1_1.getUriString(), parser11); - context.setSubsystemXmlMapping(SUBSYSTEM_NAME, Namespace.JMX_1_2.getUriString(), parser12); - context.setSubsystemXmlMapping(SUBSYSTEM_NAME, Namespace.JMX_1_3.getUriString(), parserCurrent); + context.setSubsystemXmlMapping(SUBSYSTEM_NAME, Namespace.JMX_1_0.getUriString(), JMXSubsystemParser_1_0::new); + context.setSubsystemXmlMapping(SUBSYSTEM_NAME, Namespace.JMX_1_1.getUriString(), JMXSubsystemParser_1_1::new); + context.setSubsystemXmlMapping(SUBSYSTEM_NAME, Namespace.JMX_1_2.getUriString(), JMXSubsystemParser_1_2::new); + context.setSubsystemXmlMapping(SUBSYSTEM_NAME, Namespace.JMX_1_3.getUriString(), JMXSubsystemParser_1_3::new); } private static ModelNode createAddOperation() { diff --git a/logging/src/main/java/org/jboss/as/logging/LoggingExtension.java b/logging/src/main/java/org/jboss/as/logging/LoggingExtension.java index e97ede6bca6..1aea8eb636e 100644 --- a/logging/src/main/java/org/jboss/as/logging/LoggingExtension.java +++ b/logging/src/main/java/org/jboss/as/logging/LoggingExtension.java @@ -30,6 +30,7 @@ import java.util.List; import java.util.Locale; import java.util.ResourceBundle; +import java.util.function.Supplier; import org.jboss.as.controller.Extension; import org.jboss.as.controller.ExtensionContext; @@ -229,14 +230,14 @@ public void initialize(final ExtensionContext context) { @Override public void initializeParsers(final ExtensionParsingContext context) { - setParser(context, Namespace.LOGGING_1_0, new LoggingSubsystemParser_1_0()); - setParser(context, Namespace.LOGGING_1_1, new LoggingSubsystemParser_1_1()); - setParser(context, Namespace.LOGGING_1_2, new LoggingSubsystemParser_1_2()); - setParser(context, Namespace.LOGGING_1_3, new LoggingSubsystemParser_1_3()); - setParser(context, Namespace.LOGGING_1_4, new LoggingSubsystemParser_1_4()); - setParser(context, Namespace.LOGGING_1_5, new LoggingSubsystemParser_1_5()); - setParser(context, Namespace.LOGGING_2_0, new LoggingSubsystemParser_2_0()); - setParser(context, Namespace.LOGGING_3_0, new LoggingSubsystemParser_3_0()); + setParser(context, Namespace.LOGGING_1_0, LoggingSubsystemParser_1_0::new); + setParser(context, Namespace.LOGGING_1_1, LoggingSubsystemParser_1_1::new); + setParser(context, Namespace.LOGGING_1_2, LoggingSubsystemParser_1_2::new); + setParser(context, Namespace.LOGGING_1_3, LoggingSubsystemParser_1_3::new); + setParser(context, Namespace.LOGGING_1_4, LoggingSubsystemParser_1_4::new); + setParser(context, Namespace.LOGGING_1_5, LoggingSubsystemParser_1_5::new); + setParser(context, Namespace.LOGGING_2_0, LoggingSubsystemParser_2_0::new); + setParser(context, Namespace.LOGGING_3_0, LoggingSubsystemParser_3_0::new); } private void registerLoggingProfileSubModels(final ManagementResourceRegistration registration, final PathManager pathManager) { @@ -342,8 +343,8 @@ private void registerTransformers(final ChainedTransformationDescriptionBuilder } } - private static void setParser(final ExtensionParsingContext context, final Namespace namespace, final XMLElementReader> parser) { - context.setSubsystemXmlMapping(SUBSYSTEM_NAME, namespace.getUriString(), parser); + private static void setParser(final ExtensionParsingContext context, final Namespace namespace, final Supplier>> supplier) { + context.setSubsystemXmlMapping(SUBSYSTEM_NAME, namespace.getUriString(), supplier); } private static boolean getBooleanProperty(final String property) { diff --git a/pom.xml b/pom.xml index c89acfadd1e..21c139ac42e 100644 --- a/pom.xml +++ b/pom.xml @@ -118,7 +118,7 @@ 1.0.3.GA 1.0.1.Final 1.0.0.Final - 1.2.0.Final + 1.3.0.Final 1.0.2.GA 2.2.1.Final 3.4.0.Final diff --git a/subsystem-test/framework/src/main/java/org/jboss/as/subsystem/test/SubsystemTestDelegate.java b/subsystem-test/framework/src/main/java/org/jboss/as/subsystem/test/SubsystemTestDelegate.java index 290b4818b03..982a453053d 100644 --- a/subsystem-test/framework/src/main/java/org/jboss/as/subsystem/test/SubsystemTestDelegate.java +++ b/subsystem-test/framework/src/main/java/org/jboss/as/subsystem/test/SubsystemTestDelegate.java @@ -88,8 +88,8 @@ import org.jboss.as.controller.registry.OperationEntry; import org.jboss.as.controller.registry.OperationEntry.Flag; import org.jboss.as.controller.registry.Resource; -import org.jboss.as.controller.transform.OperationTransformer.TransformedOperation; import org.jboss.as.controller.transform.ExtensionTransformerRegistration; +import org.jboss.as.controller.transform.OperationTransformer.TransformedOperation; import org.jboss.as.model.test.ChildFirstClassLoaderBuilder; import org.jboss.as.model.test.EAPRepositoryReachableUtil; import org.jboss.as.model.test.ModelFixer; @@ -107,6 +107,7 @@ import org.jboss.as.subsystem.test.ModelDescriptionValidator.ValidationConfiguration; import org.jboss.dmr.ModelNode; import org.jboss.modules.filter.ClassFilter; +import org.jboss.staxmapper.XMLElementReader; import org.jboss.staxmapper.XMLMapper; import org.junit.Assert; import org.junit.Assume; @@ -556,7 +557,7 @@ private ExtensionRegistry cloneExtensionRegistry(AdditionalInitialization additi ExtensionParsingContext epc = clone.getExtensionParsingContext(extension, null); for (Map.Entry entry : extensionParsingRegistry.getAvailableSubsystems(extension).entrySet()) { for (String namespace : entry.getValue().getXMLNamespaces()) { - epc.setSubsystemXmlMapping(entry.getKey(), namespace, null); + epc.setSubsystemXmlMapping(entry.getKey(), namespace, (XMLElementReader) null); } } }