From 2b43304b9b0846bd7329a71f46210384812027cc Mon Sep 17 00:00:00 2001 From: James Perkins Date: Mon, 21 Nov 2016 10:21:36 -0800 Subject: [PATCH] [WFLY-6390] Schema and version bump. Updated the parser and some tests to support version bumps. --- .../batch/jberet/AttributeParsers.java | 113 +++++++++++++++ .../jberet/BatchSubsystemDefinition.java | 1 + .../batch/jberet/BatchSubsystemExtension.java | 7 +- .../jberet/BatchSubsystemParser_1_0.java | 101 ++++++------- .../jberet/BatchSubsystemParser_2_0.java | 34 +++++ .../extension/batch/jberet/Namespace.java | 3 +- .../schema/wildfly-batch-jberet_2_0.xsd | 137 ++++++++++++++++++ .../subsystem-templates/batch-jberet.xml | 2 +- .../JBeretSubsystemParsingTestCase.java | 47 +++++- .../src/test/resources/default-subsystem.xml | 2 +- .../test/resources/default-subsystem_1_0.xml | 32 ++++ .../test/resources/jdbc-default-subsystem.xml | 2 +- .../resources/jdbc-default-subsystem_1_0.xml | 31 ++++ .../src/test/resources/minimal-subsystem.xml | 2 +- .../multi-thread-factory-subsystem.xml | 2 +- .../multi-thread-factory-subsystem_1_0.xml | 32 ++++ 16 files changed, 478 insertions(+), 70 deletions(-) create mode 100644 batch/extension-jberet/src/main/java/org/wildfly/extension/batch/jberet/AttributeParsers.java create mode 100644 batch/extension-jberet/src/main/java/org/wildfly/extension/batch/jberet/BatchSubsystemParser_2_0.java create mode 100644 batch/extension-jberet/src/main/resources/schema/wildfly-batch-jberet_2_0.xsd create mode 100644 batch/extension-jberet/src/test/resources/default-subsystem_1_0.xml create mode 100644 batch/extension-jberet/src/test/resources/jdbc-default-subsystem_1_0.xml create mode 100644 batch/extension-jberet/src/test/resources/multi-thread-factory-subsystem_1_0.xml diff --git a/batch/extension-jberet/src/main/java/org/wildfly/extension/batch/jberet/AttributeParsers.java b/batch/extension-jberet/src/main/java/org/wildfly/extension/batch/jberet/AttributeParsers.java new file mode 100644 index 000000000000..aaef9cee3c76 --- /dev/null +++ b/batch/extension-jberet/src/main/java/org/wildfly/extension/batch/jberet/AttributeParsers.java @@ -0,0 +1,113 @@ +/* + * Copyright 2016 Red Hat, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.wildfly.extension.batch.jberet; + +import java.util.EnumMap; +import java.util.EnumSet; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; +import javax.xml.stream.XMLStreamException; + +import org.jboss.as.controller.AttributeDefinition; +import org.jboss.as.controller.AttributeParser; +import org.jboss.as.controller.parsing.ParseUtils; +import org.jboss.dmr.ModelNode; +import org.jboss.staxmapper.XMLExtendedStreamReader; + +/** + * Attribute parsing utilities. + * + * @author James R. Perkins + */ +class AttributeParsers { + + /** + * An attribute parser for elements with a single {@code value} that don't allow any content within the element. + */ + static final AttributeParser VALUE = new AttributeParser() { + @Override + public void parseElement(final AttributeDefinition attribute, final XMLExtendedStreamReader reader, final ModelNode operation) throws XMLStreamException { + operation.get(attribute.getName()).set(readValueAttribute(reader)); + ParseUtils.requireNoContent(reader); + } + + @Override + public boolean isParseAsElement() { + return true; + } + }; + + /** + * Reads a {@code name} attribute on an element. + * + * @param reader the reader used to read the attribute with + * + * @return the name attribute or {@code null} if the name attribute was not defined + * + * @throws XMLStreamException if an XML processing error occurs + */ + static String readNameAttribute(final XMLExtendedStreamReader reader) throws XMLStreamException { + return readRequiredAttributes(reader, EnumSet.of(Attribute.NAME)).get(Attribute.NAME); + } + + /** + * Reads a {@code value} attribute on an element. + * + * @param reader the reader used to read the attribute with + * + * @return the value attribute or {@code null} if the value attribute was not defined + * + * @throws XMLStreamException if an XML processing error occurs + */ + static String readValueAttribute(final XMLExtendedStreamReader reader) throws XMLStreamException { + return readRequiredAttributes(reader, EnumSet.of(Attribute.VALUE)).get(Attribute.VALUE); + } + + /** + * Reads the required attributes from an XML configuration. + *

+ * The reader must be on an element with attributes. + *

+ * + * @param reader the reader for the attributes + * @param attributes the required attributes + * + * @return a map of the required attributes with the key being the attribute and the value being the value of the + * attribute + * + * @throws XMLStreamException if an XML processing error occurs + */ + static Map readRequiredAttributes(final XMLExtendedStreamReader reader, final Set attributes) throws XMLStreamException { + final int attributeCount = reader.getAttributeCount(); + final Map result = new EnumMap<>(Attribute.class); + for (int i = 0; i < attributeCount; i++) { + final Attribute current = Attribute.forName(reader.getAttributeLocalName(i)); + if (attributes.contains(current)) { + if (result.put(current, reader.getAttributeValue(i)) != null) { + throw ParseUtils.duplicateAttribute(reader, current.getLocalName()); + } + } else { + throw ParseUtils.unexpectedAttribute(reader, i, attributes.stream().map(Attribute::getLocalName).collect(Collectors.toSet())); + } + } + if (result.isEmpty()) { + throw ParseUtils.missingRequired(reader, attributes.stream().map(Attribute::getLocalName).collect(Collectors.toSet())); + } + return result; + } +} \ No newline at end of file diff --git a/batch/extension-jberet/src/main/java/org/wildfly/extension/batch/jberet/BatchSubsystemDefinition.java b/batch/extension-jberet/src/main/java/org/wildfly/extension/batch/jberet/BatchSubsystemDefinition.java index 257c82e6cfab..f0fdd6a97bec 100644 --- a/batch/extension-jberet/src/main/java/org/wildfly/extension/batch/jberet/BatchSubsystemDefinition.java +++ b/batch/extension-jberet/src/main/java/org/wildfly/extension/batch/jberet/BatchSubsystemDefinition.java @@ -91,6 +91,7 @@ public class BatchSubsystemDefinition extends SimpleResourceDefinition { static final SimpleAttributeDefinition RESTART_JOBS_ON_RESUME = SimpleAttributeDefinitionBuilder.create("restart-jobs-on-resume", ModelType.BOOLEAN, true) .setAllowExpression(true) .setDefaultValue(new ModelNode(true)) + .setAttributeParser(AttributeParsers.VALUE) .setAttributeMarshaller(AttributeMarshallers.VALUE) .build(); diff --git a/batch/extension-jberet/src/main/java/org/wildfly/extension/batch/jberet/BatchSubsystemExtension.java b/batch/extension-jberet/src/main/java/org/wildfly/extension/batch/jberet/BatchSubsystemExtension.java index 8fbd06752f8e..8898a0bbc682 100644 --- a/batch/extension-jberet/src/main/java/org/wildfly/extension/batch/jberet/BatchSubsystemExtension.java +++ b/batch/extension-jberet/src/main/java/org/wildfly/extension/batch/jberet/BatchSubsystemExtension.java @@ -34,8 +34,8 @@ public class BatchSubsystemExtension implements Extension { - private static final int MANAGEMENT_API_MAJOR_VERSION = 1; - private static final int MANAGEMENT_API_MINOR_VERSION = 1; + private static final int MANAGEMENT_API_MAJOR_VERSION = 2; + private static final int MANAGEMENT_API_MINOR_VERSION = 0; private static final int MANAGEMENT_API_MICRO_VERSION = 0; /** @@ -48,7 +48,8 @@ public class BatchSubsystemExtension implements Extension { @Override public void initializeParsers(final ExtensionParsingContext context) { - context.setSubsystemXmlMapping(BatchSubsystemDefinition.NAME, Namespace.BATCH_1_0.getUriString(), new BatchSubsystemParser_1_0()); + context.setSubsystemXmlMapping(BatchSubsystemDefinition.NAME, Namespace.BATCH_1_0.getUriString(), BatchSubsystemParser_1_0::new); + context.setSubsystemXmlMapping(BatchSubsystemDefinition.NAME, Namespace.BATCH_2_0.getUriString(), BatchSubsystemParser_2_0::new); } @Override diff --git a/batch/extension-jberet/src/main/java/org/wildfly/extension/batch/jberet/BatchSubsystemParser_1_0.java b/batch/extension-jberet/src/main/java/org/wildfly/extension/batch/jberet/BatchSubsystemParser_1_0.java index deabbc306b2e..f0b8dfeef824 100644 --- a/batch/extension-jberet/src/main/java/org/wildfly/extension/batch/jberet/BatchSubsystemParser_1_0.java +++ b/batch/extension-jberet/src/main/java/org/wildfly/extension/batch/jberet/BatchSubsystemParser_1_0.java @@ -24,16 +24,18 @@ import static org.jboss.as.threads.Namespace.THREADS_1_1; -import javax.xml.stream.XMLStreamConstants; -import javax.xml.stream.XMLStreamException; -import java.util.EnumMap; +import java.util.Collections; import java.util.EnumSet; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; -import java.util.stream.Collectors; +import javax.xml.stream.XMLStreamConstants; +import javax.xml.stream.XMLStreamException; +import org.jboss.as.controller.AttributeParser; import org.jboss.as.controller.PathAddress; +import org.jboss.as.controller.SimpleAttributeDefinition; import org.jboss.as.controller.operations.common.Util; import org.jboss.as.controller.parsing.ParseUtils; import org.jboss.as.threads.ThreadsParser; @@ -51,6 +53,19 @@ public class BatchSubsystemParser_1_0 implements XMLStreamConstants, XMLElementR public static final BatchSubsystemParser_1_0 INSTANCE = new BatchSubsystemParser_1_0(); + private final Map attributeElements; + + public BatchSubsystemParser_1_0() { + this(Collections.emptyMap()); + } + + BatchSubsystemParser_1_0(final Map additionalElements) { + attributeElements = new HashMap<>(additionalElements); + attributeElements.put(Element.DEFAULT_JOB_REPOSITORY, BatchSubsystemDefinition.DEFAULT_JOB_REPOSITORY); + attributeElements.put(Element.DEFAULT_THREAD_POOL, BatchSubsystemDefinition.DEFAULT_THREAD_POOL); + attributeElements.put(Element.RESTART_JOBS_ON_RESUME, BatchSubsystemDefinition.RESTART_JOBS_ON_RESUME); + } + @Override public void readElement(final XMLExtendedStreamReader reader, final List ops) throws XMLStreamException { final ThreadsParser threadsParser = ThreadsParser.getInstance(); @@ -59,25 +74,32 @@ public void readElement(final XMLExtendedStreamReader reader, final List requiredElements = EnumSet.of(Element.JOB_REPOSITORY, Element.THREAD_POOL, Element.DEFAULT_JOB_REPOSITORY, Element.DEFAULT_THREAD_POOL); + // Find the required elements + final Set requiredElements = EnumSet.of(Element.JOB_REPOSITORY, Element.THREAD_POOL); + attributeElements.forEach((element, attribute) -> { + if (!attribute.isAllowNull() && attribute.getDefaultValue() == null) { + requiredElements.add(element); + } + }); + final Namespace namespace = Namespace.forUri(reader.getNamespaceURI()); while (reader.hasNext() && reader.nextTag() != END_ELEMENT) { final String localName = reader.getLocalName(); final Element element = Element.forName(localName); - if (element == Element.DEFAULT_THREAD_POOL) { - BatchSubsystemDefinition.DEFAULT_THREAD_POOL.parseAndSetParameter(readNameAttribute(reader), subsystemAddOp, reader); - ParseUtils.requireNoContent(reader); - requiredElements.remove(Element.DEFAULT_THREAD_POOL); - } else if (element == Element.DEFAULT_JOB_REPOSITORY) { - BatchSubsystemDefinition.DEFAULT_JOB_REPOSITORY.parseAndSetParameter(readNameAttribute(reader), subsystemAddOp, reader); - ParseUtils.requireNoContent(reader); - requiredElements.remove(Element.DEFAULT_JOB_REPOSITORY); - } else if (element == Element.RESTART_JOBS_ON_RESUME) { - BatchSubsystemDefinition.RESTART_JOBS_ON_RESUME.parseAndSetParameter(readValueAttribute(reader), subsystemAddOp, reader); - ParseUtils.requireNoContent(reader); + final SimpleAttributeDefinition attribute = attributeElements.get(element); + if (attribute != null) { + final AttributeParser parser = attribute.getParser(); + if (parser.isParseAsElement()) { + parser.parseElement(attribute, reader, subsystemAddOp); + } else { + // Assume this is an element with a single name attribute + parser.parseAndSetParameter(attribute, AttributeParsers.readNameAttribute(reader), subsystemAddOp, reader); + ParseUtils.requireNoContent(reader); + } + requiredElements.remove(element); } else if (element == Element.JOB_REPOSITORY) { - final String name = readNameAttribute(reader); + final String name = AttributeParsers.readNameAttribute(reader); parseJobRepository(reader, subsystemAddress, name, ops); requiredElements.remove(Element.JOB_REPOSITORY); } else if (element == Element.THREAD_POOL) { @@ -107,7 +129,7 @@ private void parseJobRepository(final XMLExtendedStreamReader reader, final Path ops.add(Util.createAddOperation(subsystemAddress.append(InMemoryJobRepositoryDefinition.NAME, name))); ParseUtils.requireNoContent(reader); } else if (element == Element.JDBC) { - final Map attributes = readRequiredAttributes(reader, EnumSet.of(Attribute.DATA_SOURCE)); + final Map 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); @@ -117,45 +139,4 @@ private void parseJobRepository(final XMLExtendedStreamReader reader, final Path } } } - - static String readNameAttribute(final XMLExtendedStreamReader reader) throws XMLStreamException { - return readRequiredAttributes(reader, EnumSet.of(Attribute.NAME)).get(Attribute.NAME); - } - - static String readValueAttribute(final XMLExtendedStreamReader reader) throws XMLStreamException { - return readRequiredAttributes(reader, EnumSet.of(Attribute.VALUE)).get(Attribute.VALUE); - } - - /** - * Reads the required attributes from an XML configuration. - *

- * The reader must be on an element with attributes. - *

- * - * @param reader the reader for the attributes - * @param attributes the required attributes - * - * @return a map of the required attributes with the key being the attribute and the value being the value of the - * attribute - * - * @throws XMLStreamException if an XML processing error occurs - */ - static Map readRequiredAttributes(final XMLExtendedStreamReader reader, final Set attributes) throws XMLStreamException { - final int attributeCount = reader.getAttributeCount(); - final Map result = new EnumMap<>(Attribute.class); - for (int i = 0; i < attributeCount; i++) { - final Attribute current = Attribute.forName(reader.getAttributeLocalName(i)); - if (attributes.contains(current)) { - if (result.put(current, reader.getAttributeValue(i)) != null) { - throw ParseUtils.duplicateAttribute(reader, current.getLocalName()); - } - } else { - throw ParseUtils.unexpectedAttribute(reader, i, attributes.stream().map(Attribute::getLocalName).collect(Collectors.toSet())); - } - } - if (result.isEmpty()) { - throw ParseUtils.missingRequired(reader, attributes.stream().map(Attribute::getLocalName).collect(Collectors.toSet())); - } - return result; - } -} +} \ No newline at end of file diff --git a/batch/extension-jberet/src/main/java/org/wildfly/extension/batch/jberet/BatchSubsystemParser_2_0.java b/batch/extension-jberet/src/main/java/org/wildfly/extension/batch/jberet/BatchSubsystemParser_2_0.java new file mode 100644 index 000000000000..be6d8132dda2 --- /dev/null +++ b/batch/extension-jberet/src/main/java/org/wildfly/extension/batch/jberet/BatchSubsystemParser_2_0.java @@ -0,0 +1,34 @@ +/* + * Copyright 2016 Red Hat, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.wildfly.extension.batch.jberet; + +import java.util.List; +import javax.xml.stream.XMLStreamConstants; + +import org.jboss.dmr.ModelNode; +import org.jboss.staxmapper.XMLElementReader; + +/** + * @author James R. Perkins + */ +class BatchSubsystemParser_2_0 extends BatchSubsystemParser_1_0 implements XMLStreamConstants, XMLElementReader> { + + public static final BatchSubsystemParser_2_0 INSTANCE = new BatchSubsystemParser_2_0(); + + public BatchSubsystemParser_2_0() { + } +} \ No newline at end of file diff --git a/batch/extension-jberet/src/main/java/org/wildfly/extension/batch/jberet/Namespace.java b/batch/extension-jberet/src/main/java/org/wildfly/extension/batch/jberet/Namespace.java index 008d7b18e9a9..2f06171165c0 100644 --- a/batch/extension-jberet/src/main/java/org/wildfly/extension/batch/jberet/Namespace.java +++ b/batch/extension-jberet/src/main/java/org/wildfly/extension/batch/jberet/Namespace.java @@ -33,12 +33,13 @@ enum Namespace { UNKNOWN(null), BATCH_1_0("urn:jboss:domain:batch-jberet:1.0"), + BATCH_2_0("urn:jboss:domain:batch-jberet:2.0"), ; /** * The current namespace version. */ - public static final Namespace CURRENT = BATCH_1_0; + public static final Namespace CURRENT = BATCH_2_0; private final String name; diff --git a/batch/extension-jberet/src/main/resources/schema/wildfly-batch-jberet_2_0.xsd b/batch/extension-jberet/src/main/resources/schema/wildfly-batch-jberet_2_0.xsd new file mode 100644 index 000000000000..e9ebc7dd724b --- /dev/null +++ b/batch/extension-jberet/src/main/resources/schema/wildfly-batch-jberet_2_0.xsd @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + Defines the default job-repository for the batch environment. + + + + + + + Defines the default thread-pool for the batch environment. + + + + + + + If set to true when a resume operation has be invoked after a suspend operation any jobs stopped + during the suspend will be restarted. A value of false will leave the jobs in a stopped state. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/batch/extension-jberet/src/main/resources/subsystem-templates/batch-jberet.xml b/batch/extension-jberet/src/main/resources/subsystem-templates/batch-jberet.xml index 5489f21c2bcf..8e73efc4c678 100644 --- a/batch/extension-jberet/src/main/resources/subsystem-templates/batch-jberet.xml +++ b/batch/extension-jberet/src/main/resources/subsystem-templates/batch-jberet.xml @@ -27,7 +27,7 @@ org.wildfly.extension.batch.jberet - + diff --git a/batch/extension-jberet/src/test/java/org/wildfly/extension/batch/jberet/JBeretSubsystemParsingTestCase.java b/batch/extension-jberet/src/test/java/org/wildfly/extension/batch/jberet/JBeretSubsystemParsingTestCase.java index 7a4a29e50649..f2a2f7a92d81 100644 --- a/batch/extension-jberet/src/test/java/org/wildfly/extension/batch/jberet/JBeretSubsystemParsingTestCase.java +++ b/batch/extension-jberet/src/test/java/org/wildfly/extension/batch/jberet/JBeretSubsystemParsingTestCase.java @@ -22,10 +22,22 @@ package org.wildfly.extension.batch.jberet; +import java.io.File; import java.io.IOException; +import java.nio.file.FileVisitResult; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.nio.file.SimpleFileVisitor; +import java.nio.file.attribute.BasicFileAttributes; +import java.util.ArrayList; +import java.util.List; +import java.util.regex.Pattern; import org.jboss.as.subsystem.test.AdditionalInitialization; +import org.junit.Assert; import org.junit.Test; +import org.wildfly.security.manager.WildFlySecurityManager; /** * Basic subsystem test. Tests parsing various batch configurations @@ -43,7 +55,7 @@ protected String getSubsystemXml() throws IOException { @Override protected String getSubsystemXsdPath() throws Exception { - return "schema/wildfly-batch-jberet_1_0.xsd"; + return "schema/wildfly-batch-jberet_2_0.xsd"; } @Override @@ -72,4 +84,37 @@ public void testJdbcSubsystem() throws Exception { protected AdditionalInitialization createAdditionalInitialization() { return AdditionalInitialization.withCapabilities("org.wildfly.data-source.ExampleDS"); } + + @Test + public void testLegacySubsystems() throws Exception { + // Get a list of all the logging_x_x.xml files + final Pattern pattern = Pattern.compile("(.*-subsystem)_\\d+_\\d+\\.xml"); + // Using the CP as that's the standardSubsystemTest will use to find the config file + final String cp = WildFlySecurityManager.getPropertyPrivileged("java.class.path", "."); + final String[] entries = cp.split(Pattern.quote(File.pathSeparator)); + final List configs = new ArrayList<>(); + for (String entry : entries) { + final Path path = Paths.get(entry); + if (Files.isDirectory(path)) { + Files.walkFileTree(path, new SimpleFileVisitor() { + @Override + public FileVisitResult visitFile(final Path file, final BasicFileAttributes attrs) throws IOException { + final String name = file.getFileName().toString(); + if (pattern.matcher(name).matches()) { + configs.add("/" + name); + } + return FileVisitResult.CONTINUE; + } + }); + } + } + + // The paths shouldn't be empty + Assert.assertFalse("No configs were found", configs.isEmpty()); + + for (String configId : configs) { + // Run the standard subsystem test, but don't compare the XML as it should never match + standardSubsystemTest(configId, false); + } + } } diff --git a/batch/extension-jberet/src/test/resources/default-subsystem.xml b/batch/extension-jberet/src/test/resources/default-subsystem.xml index 78b0bd898034..9de1c2622f16 100644 --- a/batch/extension-jberet/src/test/resources/default-subsystem.xml +++ b/batch/extension-jberet/src/test/resources/default-subsystem.xml @@ -20,7 +20,7 @@ ~ 02110-1301 USA, or see the FSF site: http://www.fsf.org. --> - + diff --git a/batch/extension-jberet/src/test/resources/default-subsystem_1_0.xml b/batch/extension-jberet/src/test/resources/default-subsystem_1_0.xml new file mode 100644 index 000000000000..e0811ff48c37 --- /dev/null +++ b/batch/extension-jberet/src/test/resources/default-subsystem_1_0.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + diff --git a/batch/extension-jberet/src/test/resources/jdbc-default-subsystem.xml b/batch/extension-jberet/src/test/resources/jdbc-default-subsystem.xml index ff93f90a9aa0..9925fdb09fcd 100644 --- a/batch/extension-jberet/src/test/resources/jdbc-default-subsystem.xml +++ b/batch/extension-jberet/src/test/resources/jdbc-default-subsystem.xml @@ -20,7 +20,7 @@ ~ 02110-1301 USA, or see the FSF site: http://www.fsf.org. --> - + diff --git a/batch/extension-jberet/src/test/resources/jdbc-default-subsystem_1_0.xml b/batch/extension-jberet/src/test/resources/jdbc-default-subsystem_1_0.xml new file mode 100644 index 000000000000..1fcdd8770bd6 --- /dev/null +++ b/batch/extension-jberet/src/test/resources/jdbc-default-subsystem_1_0.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + diff --git a/batch/extension-jberet/src/test/resources/minimal-subsystem.xml b/batch/extension-jberet/src/test/resources/minimal-subsystem.xml index 46813cf730e8..e45ab41fe3a7 100644 --- a/batch/extension-jberet/src/test/resources/minimal-subsystem.xml +++ b/batch/extension-jberet/src/test/resources/minimal-subsystem.xml @@ -20,7 +20,7 @@ ~ 02110-1301 USA, or see the FSF site: http://www.fsf.org. --> - + diff --git a/batch/extension-jberet/src/test/resources/multi-thread-factory-subsystem.xml b/batch/extension-jberet/src/test/resources/multi-thread-factory-subsystem.xml index 3a3ad9a039b4..5269d9bfafae 100644 --- a/batch/extension-jberet/src/test/resources/multi-thread-factory-subsystem.xml +++ b/batch/extension-jberet/src/test/resources/multi-thread-factory-subsystem.xml @@ -20,7 +20,7 @@ ~ 02110-1301 USA, or see the FSF site: http://www.fsf.org. --> - + diff --git a/batch/extension-jberet/src/test/resources/multi-thread-factory-subsystem_1_0.xml b/batch/extension-jberet/src/test/resources/multi-thread-factory-subsystem_1_0.xml new file mode 100644 index 000000000000..d1703e977d85 --- /dev/null +++ b/batch/extension-jberet/src/test/resources/multi-thread-factory-subsystem_1_0.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + +