diff --git a/core/src/main/java/org/infinispan/configuration/parsing/Namespace.java b/core/src/main/java/org/infinispan/configuration/parsing/Namespace.java index f73c5e27b1bb..505783f27edd 100644 --- a/core/src/main/java/org/infinispan/configuration/parsing/Namespace.java +++ b/core/src/main/java/org/infinispan/configuration/parsing/Namespace.java @@ -1,5 +1,6 @@ package org.infinispan.configuration.parsing; +import java.lang.annotation.Repeatable; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -12,6 +13,7 @@ * @since 6.0 */ @Retention(RetentionPolicy.RUNTIME) +@Repeatable(Namespaces.class) public @interface Namespace { /** * The URI of the namespace. Defaults to the empty string. @@ -22,4 +24,16 @@ * The root element of this namespace. */ String root(); + + /** + * The first version of the schema where this is supported. Defaults to 7.0. Only considered if {@link #uri()} ends + * with a wildcard + */ + String since() default "7.0"; + + /** + * The last version of the schema where this is supported. Defaults to the current release. Only considered if {@link #uri()} ends + * with a wildcard + */ + String until() default ""; } diff --git a/core/src/main/java/org/infinispan/configuration/parsing/Parser.java b/core/src/main/java/org/infinispan/configuration/parsing/Parser.java index d7b61c5ee2a7..aed3a0a15cd0 100644 --- a/core/src/main/java/org/infinispan/configuration/parsing/Parser.java +++ b/core/src/main/java/org/infinispan/configuration/parsing/Parser.java @@ -93,20 +93,9 @@ * @since 9.0 */ @MetaInfServices -@Namespaces({ - @Namespace(uri = "urn:infinispan:config:9.2", root = "infinispan"), - @Namespace(uri = "urn:infinispan:config:9.1", root = "infinispan"), - @Namespace(uri = "urn:infinispan:config:9.0", root = "infinispan"), - @Namespace(root = "infinispan"), - - @Namespace(uri = "urn:infinispan:config:8.0", root = "infinispan"), - @Namespace(uri = "urn:infinispan:config:8.1", root = "infinispan"), - @Namespace(uri = "urn:infinispan:config:8.2", root = "infinispan"), - - @Namespace(uri = "urn:infinispan:config:7.0", root = "infinispan"), - @Namespace(uri = "urn:infinispan:config:7.1", root = "infinispan"), - @Namespace(uri = "urn:infinispan:config:7.2", root = "infinispan"), -}) + +@Namespace(root = "infinispan") +@Namespace(uri = "urn:infinispan:config:*", root = "infinispan") public class Parser implements ConfigurationParser { static final Log log = LogFactory.getLog(Parser.class); diff --git a/core/src/main/java/org/infinispan/configuration/parsing/ParserRegistry.java b/core/src/main/java/org/infinispan/configuration/parsing/ParserRegistry.java index a35f24b3b58e..bea62891e395 100644 --- a/core/src/main/java/org/infinispan/configuration/parsing/ParserRegistry.java +++ b/core/src/main/java/org/infinispan/configuration/parsing/ParserRegistry.java @@ -27,6 +27,7 @@ import javax.xml.stream.XMLStreamReader; import javax.xml.stream.XMLStreamWriter; +import org.infinispan.Version; import org.infinispan.commons.CacheConfigurationException; import org.infinispan.commons.util.CollectionFactory; import org.infinispan.commons.util.FileLookup; @@ -56,7 +57,7 @@ public class ParserRegistry implements NamespaceMappingParser { private static final Log log = LogFactory.getLog(ParserRegistry.class); private final WeakReference cl; - private final ConcurrentMap parserMappings; + private final ConcurrentMap parserMappings; public ParserRegistry() { this(Thread.currentThread().getContextClassLoader()); @@ -90,9 +91,9 @@ public ParserRegistry(ClassLoader classLoader, boolean defaultOnly) { if (!skipParser) { for (Namespace ns : namespaces) { QName qName = new QName(ns.uri(), ns.root()); - ConfigurationParser existingParser = parserMappings.putIfAbsent(qName, parser); - if (existingParser != null && !parser.getClass().equals(existingParser.getClass())) { - log.parserRootElementAlreadyRegistered(qName, parser.getClass().getName(), existingParser.getClass().getName()); + NamespaceParserPair existing = parserMappings.putIfAbsent(qName, new NamespaceParserPair(ns, parser)); + if (existing != null && !parser.getClass().equals(existing.parser.getClass())) { + log.parserRootElementAlreadyRegistered(qName, parser.getClass().getName(), existing.parser.getClass().getName()); } } } @@ -161,16 +162,32 @@ public void parse(XMLExtendedStreamReader reader, ConfigurationBuilderHolder hol @Override public void parseElement(XMLExtendedStreamReader reader, ConfigurationBuilderHolder holder) throws XMLStreamException { QName name = reader.getName(); - ConfigurationParser parser = parserMappings.get(name); + // First we attempt to get the direct name + NamespaceParserPair parser = parserMappings.get(name); if (parser == null) { - throw log.unsupportedConfiguration(name.getLocalPart(), name.getNamespaceURI()); + // Next we strip off the version from the URI and look for a wildcard match + String uri = name.getNamespaceURI(); + int lastColon = uri.lastIndexOf(':'); + String baseUri = uri.substring(0, lastColon + 1) + "*"; + parser = parserMappings.get(new QName(baseUri, name.getLocalPart())); + if (parser == null || !isSupportedNamespaceVersion(parser.namespace, uri.substring(lastColon + 1))) + throw log.unsupportedConfiguration(name.getLocalPart(), name.getNamespaceURI()); } Schema oldSchema = reader.getSchema(); reader.setSchema(Schema.fromNamespaceURI(name.getNamespaceURI())); - parser.readElement(reader, holder); + parser.parser.readElement(reader, holder); reader.setSchema(oldSchema); } + private boolean isSupportedNamespaceVersion(Namespace namespace, String version) { + short reqVersion = Version.getVersionShort(version); + if (reqVersion < Version.getVersionShort(namespace.since())) { + return false; + } + short untilVersion = namespace.until().length() > 0 ? Version.getVersionShort(namespace.until()) : Version.getVersionShort(); + return reqVersion <= untilVersion; + } + /** * Serializes a full configuration to an {@link OutputStream} * @@ -229,4 +246,14 @@ public String serialize(String name, Configuration configuration) { throw new CacheConfigurationException(e); } } + + public static class NamespaceParserPair { + Namespace namespace; + ConfigurationParser parser; + + NamespaceParserPair(Namespace namespace, ConfigurationParser parser) { + this.namespace = namespace; + this.parser = parser; + } + } } diff --git a/core/src/test/java/org/infinispan/configuration/module/MyParserExtension.java b/core/src/test/java/org/infinispan/configuration/module/MyParserExtension.java index 12333a2bc9ab..ef8cd647bcb8 100644 --- a/core/src/test/java/org/infinispan/configuration/module/MyParserExtension.java +++ b/core/src/test/java/org/infinispan/configuration/module/MyParserExtension.java @@ -8,7 +8,6 @@ import org.infinispan.configuration.parsing.ConfigurationBuilderHolder; import org.infinispan.configuration.parsing.ConfigurationParser; import org.infinispan.configuration.parsing.Namespace; -import org.infinispan.configuration.parsing.Namespaces; import org.infinispan.configuration.parsing.ParseUtils; import org.infinispan.configuration.parsing.ParserScope; import org.infinispan.configuration.parsing.XMLExtendedStreamReader; @@ -19,10 +18,8 @@ * @author Tristan Tarrant * @since 5.2 */ -@Namespaces({ - @Namespace(uri = "urn:infinispan:config:mymodule", root = "sample-element"), - @Namespace(root = "sample-element") -}) +@Namespace(uri = "urn:infinispan:config:mymodule", root = "sample-element") +@Namespace(root = "sample-element") public class MyParserExtension implements ConfigurationParser { @Override diff --git a/counter/src/main/java/org/infinispan/counter/configuration/CounterConfigurationParser.java b/counter/src/main/java/org/infinispan/counter/configuration/CounterConfigurationParser.java index 35832b75e55a..6178d9c84882 100644 --- a/counter/src/main/java/org/infinispan/counter/configuration/CounterConfigurationParser.java +++ b/counter/src/main/java/org/infinispan/counter/configuration/CounterConfigurationParser.java @@ -18,7 +18,6 @@ import org.infinispan.configuration.parsing.ConfigurationBuilderHolder; import org.infinispan.configuration.parsing.ConfigurationParser; import org.infinispan.configuration.parsing.Namespace; -import org.infinispan.configuration.parsing.Namespaces; import org.infinispan.configuration.parsing.ParseUtils; import org.infinispan.configuration.parsing.ParserScope; import org.infinispan.configuration.parsing.XMLExtendedStreamReader; @@ -33,12 +32,8 @@ * @since 9.0 */ @MetaInfServices -@Namespaces({ - @Namespace(root = "counters"), - @Namespace(uri = "urn:infinispan:config:counters:9.2", root = "counters"), - @Namespace(uri = "urn:infinispan:config:counters:9.1", root = "counters"), - @Namespace(uri = "urn:infinispan:config:counters:9.0", root = "counters") -}) +@Namespace(root = "counters") +@Namespace(uri = "urn:infinispan:config:counters:*", root = "counters", since = "9.0") public class CounterConfigurationParser implements ConfigurationParser { private static final Log log = LogFactory.getLog(CounterConfigurationParser.class, Log.class); diff --git a/persistence/cli/src/main/java/org/infinispan/persistence/cli/configuration/CLInterfaceLoaderConfigurationParser.java b/persistence/cli/src/main/java/org/infinispan/persistence/cli/configuration/CLInterfaceLoaderConfigurationParser.java index 307b946baf35..e24973bdd13b 100644 --- a/persistence/cli/src/main/java/org/infinispan/persistence/cli/configuration/CLInterfaceLoaderConfigurationParser.java +++ b/persistence/cli/src/main/java/org/infinispan/persistence/cli/configuration/CLInterfaceLoaderConfigurationParser.java @@ -9,7 +9,6 @@ import org.infinispan.configuration.parsing.ConfigurationBuilderHolder; import org.infinispan.configuration.parsing.ConfigurationParser; import org.infinispan.configuration.parsing.Namespace; -import org.infinispan.configuration.parsing.Namespaces; import org.infinispan.configuration.parsing.ParseUtils; import org.infinispan.configuration.parsing.Parser; import org.infinispan.configuration.parsing.XMLExtendedStreamReader; @@ -22,17 +21,8 @@ * @since 9.0 */ @MetaInfServices -@Namespaces({ - @Namespace(root = "cli-loader"), - @Namespace(uri = "urn:infinispan:config:store:cli:9.2", root = "cli-loader"), - @Namespace(uri = "urn:infinispan:config:store:cli:9.1", root = "cli-loader"), - @Namespace(uri = "urn:infinispan:config:store:cli:9.0", root = "cli-loader"), - @Namespace(uri = "urn:infinispan:config:store:cli:8.0", root = "cli-loader"), - @Namespace(uri = "urn:infinispan:config:store:cli:7.2", root = "cli-loader"), - @Namespace(uri = "urn:infinispan:config:store:cli:7.1", root = "cli-loader"), - @Namespace(uri = "urn:infinispan:config:store:cli:7.0", root = "cli-loader"), - -}) +@Namespace(root = "cli-loader") +@Namespace(uri = "urn:infinispan:config:store:cli:*", root = "cli-loader") public class CLInterfaceLoaderConfigurationParser implements ConfigurationParser { @Override diff --git a/persistence/jdbc/src/main/java/org/infinispan/persistence/jdbc/configuration/JdbcStoreConfigurationParser.java b/persistence/jdbc/src/main/java/org/infinispan/persistence/jdbc/configuration/JdbcStoreConfigurationParser.java index c68e1b27c4d3..83c279ffbdd3 100644 --- a/persistence/jdbc/src/main/java/org/infinispan/persistence/jdbc/configuration/JdbcStoreConfigurationParser.java +++ b/persistence/jdbc/src/main/java/org/infinispan/persistence/jdbc/configuration/JdbcStoreConfigurationParser.java @@ -1,7 +1,6 @@ package org.infinispan.persistence.jdbc.configuration; import static org.infinispan.commons.util.StringPropertyReplacer.replaceProperties; -import static org.infinispan.persistence.jdbc.configuration.Element.MIXED_KEYED_JDBC_STORE; import javax.xml.stream.XMLStreamConstants; import javax.xml.stream.XMLStreamException; @@ -12,7 +11,6 @@ import org.infinispan.configuration.parsing.ConfigurationBuilderHolder; import org.infinispan.configuration.parsing.ConfigurationParser; import org.infinispan.configuration.parsing.Namespace; -import org.infinispan.configuration.parsing.Namespaces; import org.infinispan.configuration.parsing.ParseUtils; import org.infinispan.configuration.parsing.Parser; import org.infinispan.configuration.parsing.XMLExtendedStreamReader; @@ -26,28 +24,12 @@ * @since 9.0 */ @MetaInfServices -@Namespaces({ - @Namespace(root = "string-keyed-jdbc-store"), - @Namespace(root = "binary-keyed-jdbc-store"), - @Namespace(root = "mixed-keyed-jdbc-store"), - @Namespace(uri = "urn:infinispan:config:store:jdbc:9.2", root = "string-keyed-jdbc-store"), - @Namespace(uri = "urn:infinispan:config:store:jdbc:9.1", root = "string-keyed-jdbc-store"), - @Namespace(uri = "urn:infinispan:config:store:jdbc:9.0", root = "string-keyed-jdbc-store"), - @Namespace(uri = "urn:infinispan:config:store:jdbc:9.0", root = "binary-keyed-jdbc-store"), - @Namespace(uri = "urn:infinispan:config:store:jdbc:9.0", root = "mixed-keyed-jdbc-store"), - @Namespace(uri = "urn:infinispan:config:store:jdbc:8.0", root = "string-keyed-jdbc-store"), - @Namespace(uri = "urn:infinispan:config:store:jdbc:8.0", root = "binary-keyed-jdbc-store"), - @Namespace(uri = "urn:infinispan:config:store:jdbc:8.0", root = "mixed-keyed-jdbc-store"), - @Namespace(uri = "urn:infinispan:config:store:jdbc:7.0", root = "string-keyed-jdbc-store"), - @Namespace(uri = "urn:infinispan:config:store:jdbc:7.1", root = "string-keyed-jdbc-store"), - @Namespace(uri = "urn:infinispan:config:store:jdbc:7.2", root = "string-keyed-jdbc-store"), - @Namespace(uri = "urn:infinispan:config:store:jdbc:7.0", root = "binary-keyed-jdbc-store"), - @Namespace(uri = "urn:infinispan:config:store:jdbc:7.1", root = "binary-keyed-jdbc-store"), - @Namespace(uri = "urn:infinispan:config:store:jdbc:7.2", root = "binary-keyed-jdbc-store"), - @Namespace(uri = "urn:infinispan:config:store:jdbc:7.0", root = "mixed-keyed-jdbc-store"), - @Namespace(uri = "urn:infinispan:config:store:jdbc:7.1", root = "mixed-keyed-jdbc-store"), - @Namespace(uri = "urn:infinispan:config:store:jdbc:7.2", root = "mixed-keyed-jdbc-store"), -}) +@Namespace(root = "string-keyed-jdbc-store") +@Namespace(root = "binary-keyed-jdbc-store") +@Namespace(root = "mixed-keyed-jdbc-store") +@Namespace(uri = "urn:infinispan:config:store:jdbc:*", root = "string-keyed-jdbc-store") +@Namespace(uri = "urn:infinispan:config:store:jdbc:*", root = "binary-keyed-jdbc-store", until = "9.0") +@Namespace(uri = "urn:infinispan:config:store:jdbc:*", root = "mixed-keyed-jdbc-store", until = "9.0") public class JdbcStoreConfigurationParser implements ConfigurationParser { public JdbcStoreConfigurationParser() { diff --git a/persistence/jpa/src/main/java/org/infinispan/persistence/jpa/configuration/JpaStoreConfigurationParser.java b/persistence/jpa/src/main/java/org/infinispan/persistence/jpa/configuration/JpaStoreConfigurationParser.java index 5445c722af77..2bfe9605bfa8 100644 --- a/persistence/jpa/src/main/java/org/infinispan/persistence/jpa/configuration/JpaStoreConfigurationParser.java +++ b/persistence/jpa/src/main/java/org/infinispan/persistence/jpa/configuration/JpaStoreConfigurationParser.java @@ -9,7 +9,6 @@ import org.infinispan.configuration.parsing.ConfigurationBuilderHolder; import org.infinispan.configuration.parsing.ConfigurationParser; import org.infinispan.configuration.parsing.Namespace; -import org.infinispan.configuration.parsing.Namespaces; import org.infinispan.configuration.parsing.ParseUtils; import org.infinispan.configuration.parsing.Parser; import org.infinispan.configuration.parsing.XMLExtendedStreamReader; @@ -20,16 +19,9 @@ * @since 9.0 */ @MetaInfServices -@Namespaces({ - @Namespace(root = "jpa-store"), - @Namespace(uri = "urn:infinispan:config:store:jpa:9.2", root = "jpa-store"), - @Namespace(uri = "urn:infinispan:config:store:jpa:9.1", root = "jpa-store"), - @Namespace(uri = "urn:infinispan:config:store:jpa:9.0", root = "jpa-store"), - @Namespace(uri = "urn:infinispan:config:store:jpa:8.0", root = "jpa-store"), - @Namespace(uri = "urn:infinispan:config:store:jpa:7.2", root = "jpa-store"), - @Namespace(uri = "urn:infinispan:config:store:jpa:7.1", root = "jpa-store"), - @Namespace(uri = "urn:infinispan:config:store:jpa:7.0", root = "jpa-store"), -}) + +@Namespace(root = "jpa-store") +@Namespace(uri = "urn:infinispan:config:store:jpa:*", root = "jpa-store") public class JpaStoreConfigurationParser implements ConfigurationParser { @Override public void readElement(XMLExtendedStreamReader reader, diff --git a/persistence/leveldb/src/main/java/org/infinispan/persistence/leveldb/configuration/LevelDBStoreConfigurationParser.java b/persistence/leveldb/src/main/java/org/infinispan/persistence/leveldb/configuration/LevelDBStoreConfigurationParser.java index 9d6afc983e16..b4fd3f7d02b1 100644 --- a/persistence/leveldb/src/main/java/org/infinispan/persistence/leveldb/configuration/LevelDBStoreConfigurationParser.java +++ b/persistence/leveldb/src/main/java/org/infinispan/persistence/leveldb/configuration/LevelDBStoreConfigurationParser.java @@ -8,7 +8,6 @@ import org.infinispan.configuration.parsing.ConfigurationBuilderHolder; import org.infinispan.configuration.parsing.ConfigurationParser; import org.infinispan.configuration.parsing.Namespace; -import org.infinispan.configuration.parsing.Namespaces; import org.infinispan.configuration.parsing.ParseUtils; import org.infinispan.configuration.parsing.Parser; import org.infinispan.configuration.parsing.XMLExtendedStreamReader; @@ -24,13 +23,8 @@ */ @Deprecated @MetaInfServices -@Namespaces({ - @Namespace(root = "leveldb-store"), - @Namespace(uri = "urn:infinispan:config:store:leveldb:8.0", root = "leveldb-store"), - @Namespace(uri = "urn:infinispan:config:store:leveldb:7.2", root = "leveldb-store"), - @Namespace(uri = "urn:infinispan:config:store:leveldb:7.1", root = "leveldb-store"), - @Namespace(uri = "urn:infinispan:config:store:leveldb:7.0", root = "leveldb-store"), -}) +@Namespace(root = "leveldb-store") +@Namespace(uri = "urn:infinispan:config:store:leveldb:*", root = "leveldb-store", until = "8.0") public class LevelDBStoreConfigurationParser implements ConfigurationParser { private static final Log log = LogFactory.getLog(LevelDBStoreConfigurationParser.class); diff --git a/persistence/remote/src/main/java/org/infinispan/persistence/remote/configuration/RemoteStoreConfigurationParser.java b/persistence/remote/src/main/java/org/infinispan/persistence/remote/configuration/RemoteStoreConfigurationParser.java index 8f23488c7415..d469a072d026 100644 --- a/persistence/remote/src/main/java/org/infinispan/persistence/remote/configuration/RemoteStoreConfigurationParser.java +++ b/persistence/remote/src/main/java/org/infinispan/persistence/remote/configuration/RemoteStoreConfigurationParser.java @@ -12,7 +12,6 @@ import org.infinispan.configuration.parsing.ConfigurationBuilderHolder; import org.infinispan.configuration.parsing.ConfigurationParser; import org.infinispan.configuration.parsing.Namespace; -import org.infinispan.configuration.parsing.Namespaces; import org.infinispan.configuration.parsing.ParseUtils; import org.infinispan.configuration.parsing.Parser; import org.infinispan.configuration.parsing.XMLExtendedStreamReader; @@ -27,16 +26,8 @@ * @since 9.0 */ @MetaInfServices -@Namespaces({ - @Namespace(root = "remote-store"), - @Namespace(uri = "urn:infinispan:config:store:remote:9.2", root = "remote-store"), - @Namespace(uri = "urn:infinispan:config:store:remote:9.1", root = "remote-store"), - @Namespace(uri = "urn:infinispan:config:store:remote:9.0", root = "remote-store"), - @Namespace(uri = "urn:infinispan:config:store:remote:8.0", root = "remote-store"), - @Namespace(uri = "urn:infinispan:config:store:remote:7.2", root = "remote-store"), - @Namespace(uri = "urn:infinispan:config:store:remote:7.1", root = "remote-store"), - @Namespace(uri = "urn:infinispan:config:store:remote:7.0", root = "remote-store"), -}) +@Namespace(root = "remote-store") +@Namespace(uri = "urn:infinispan:config:store:remote:*", root = "remote-store") public class RemoteStoreConfigurationParser implements ConfigurationParser { private static final Log log = LogFactory.getLog(RemoteStoreConfigurationParser.class, Log.class); diff --git a/persistence/rest/src/main/java/org/infinispan/persistence/rest/configuration/RestStoreConfigurationParser.java b/persistence/rest/src/main/java/org/infinispan/persistence/rest/configuration/RestStoreConfigurationParser.java index a439b9e29a14..1eb9fa14b046 100644 --- a/persistence/rest/src/main/java/org/infinispan/persistence/rest/configuration/RestStoreConfigurationParser.java +++ b/persistence/rest/src/main/java/org/infinispan/persistence/rest/configuration/RestStoreConfigurationParser.java @@ -10,7 +10,6 @@ import org.infinispan.configuration.parsing.ConfigurationBuilderHolder; import org.infinispan.configuration.parsing.ConfigurationParser; import org.infinispan.configuration.parsing.Namespace; -import org.infinispan.configuration.parsing.Namespaces; import org.infinispan.configuration.parsing.ParseUtils; import org.infinispan.configuration.parsing.Parser; import org.infinispan.configuration.parsing.XMLExtendedStreamReader; @@ -25,16 +24,8 @@ * @since 9.0 */ @MetaInfServices -@Namespaces({ - @Namespace(root = "rest-store"), - @Namespace(uri = "urn:infinispan:config:store:rest:9.2", root = "rest-store"), - @Namespace(uri = "urn:infinispan:config:store:rest:9.1", root = "rest-store"), - @Namespace(uri = "urn:infinispan:config:store:rest:9.0", root = "rest-store"), - @Namespace(uri = "urn:infinispan:config:store:rest:8.0", root = "rest-store"), - @Namespace(uri = "urn:infinispan:config:store:rest:7.2", root = "rest-store"), - @Namespace(uri = "urn:infinispan:config:store:rest:7.1", root = "rest-store"), - @Namespace(uri = "urn:infinispan:config:store:rest:7.0", root = "rest-store"), -}) +@Namespace(root = "rest-store") +@Namespace(uri = "urn:infinispan:config:store:rest:*", root = "rest-store") public class RestStoreConfigurationParser implements ConfigurationParser { private static final Log log = LogFactory.getLog(RestStoreConfigurationParser.class, Log.class); diff --git a/persistence/rocksdb/src/main/java/org/infinispan/persistence/rocksdb/configuration/RocksDBStoreConfigurationParser.java b/persistence/rocksdb/src/main/java/org/infinispan/persistence/rocksdb/configuration/RocksDBStoreConfigurationParser.java index d3c2c819c4d9..8d805a22a4e6 100644 --- a/persistence/rocksdb/src/main/java/org/infinispan/persistence/rocksdb/configuration/RocksDBStoreConfigurationParser.java +++ b/persistence/rocksdb/src/main/java/org/infinispan/persistence/rocksdb/configuration/RocksDBStoreConfigurationParser.java @@ -1,11 +1,13 @@ package org.infinispan.persistence.rocksdb.configuration; +import javax.xml.stream.XMLStreamConstants; +import javax.xml.stream.XMLStreamException; + import org.infinispan.commons.util.StringPropertyReplacer; import org.infinispan.configuration.cache.ConfigurationBuilder; import org.infinispan.configuration.parsing.ConfigurationBuilderHolder; import org.infinispan.configuration.parsing.ConfigurationParser; import org.infinispan.configuration.parsing.Namespace; -import org.infinispan.configuration.parsing.Namespaces; import org.infinispan.configuration.parsing.ParseUtils; import org.infinispan.configuration.parsing.Parser; import org.infinispan.configuration.parsing.XMLExtendedStreamReader; @@ -13,21 +15,14 @@ import org.infinispan.util.logging.LogFactory; import org.kohsuke.MetaInfServices; -import javax.xml.stream.XMLStreamConstants; -import javax.xml.stream.XMLStreamException; - /** * RocksDB XML Parser * @author Tristan Tarrant * @since 9.0 */ @MetaInfServices -@Namespaces({ - @Namespace(root = "rocksdb-store"), - @Namespace(uri = "urn:infinispan:config:store:rocksdb:9.2", root = "rocksdb-store"), - @Namespace(uri = "urn:infinispan:config:store:rocksdb:9.1", root = "rocksdb-store"), - @Namespace(uri = "urn:infinispan:config:store:rocksdb:9.0", root = "rocksdb-store") -}) +@Namespace(root = "rocksdb-store") +@Namespace(uri = "urn:infinispan:config:store:rocksdb:*", root = "rocksdb-store", since = "9.0") public class RocksDBStoreConfigurationParser implements ConfigurationParser { private static final Log log = LogFactory.getLog(RocksDBStoreConfigurationParser.class, Log.class); diff --git a/persistence/soft-index/src/main/java/org/infinispan/persistence/sifs/configuration/SoftIndexFileStoreConfigurationParser.java b/persistence/soft-index/src/main/java/org/infinispan/persistence/sifs/configuration/SoftIndexFileStoreConfigurationParser.java index d40a40099094..8a828317dd3c 100644 --- a/persistence/soft-index/src/main/java/org/infinispan/persistence/sifs/configuration/SoftIndexFileStoreConfigurationParser.java +++ b/persistence/soft-index/src/main/java/org/infinispan/persistence/sifs/configuration/SoftIndexFileStoreConfigurationParser.java @@ -9,7 +9,6 @@ import org.infinispan.configuration.parsing.ConfigurationBuilderHolder; import org.infinispan.configuration.parsing.ConfigurationParser; import org.infinispan.configuration.parsing.Namespace; -import org.infinispan.configuration.parsing.Namespaces; import org.infinispan.configuration.parsing.ParseUtils; import org.infinispan.configuration.parsing.Parser; import org.infinispan.configuration.parsing.XMLExtendedStreamReader; @@ -21,22 +20,9 @@ * */ @MetaInfServices -@Namespaces({ - @Namespace(root = SoftIndexFileStoreConfigurationParser.ROOT_ELEMENT), - @Namespace(uri = "urn:infinispan:config:store:soft-index:9.2", - root = SoftIndexFileStoreConfigurationParser.ROOT_ELEMENT), - @Namespace(uri = "urn:infinispan:config:store:soft-index:9.0", - root = SoftIndexFileStoreConfigurationParser.ROOT_ELEMENT), - @Namespace(uri = "urn:infinispan:config:store:soft-index:8.0", - root = SoftIndexFileStoreConfigurationParser.ROOT_ELEMENT), - @Namespace(uri = "urn:infinispan:config:store:soft-index:7.2", - root = SoftIndexFileStoreConfigurationParser.ROOT_ELEMENT), - @Namespace(uri = "urn:infinispan:config:store:soft-index:7.1", - root = SoftIndexFileStoreConfigurationParser.ROOT_ELEMENT), - @Namespace(uri = "urn:infinispan:config:store:soft-index:7.0", - root = SoftIndexFileStoreConfigurationParser.ROOT_ELEMENT) - -}) +@Namespace(root = SoftIndexFileStoreConfigurationParser.ROOT_ELEMENT) +@Namespace(uri = "urn:infinispan:config:store:soft-index:*", + root = SoftIndexFileStoreConfigurationParser.ROOT_ELEMENT) public class SoftIndexFileStoreConfigurationParser implements ConfigurationParser { public static final String ROOT_ELEMENT = "soft-index-file-store"; diff --git a/tools/src/main/java/org/infinispan/tools/config/v6/Parser60.java b/tools/src/main/java/org/infinispan/tools/config/v6/Parser60.java index 5ef02c4864c9..33cae855892d 100644 --- a/tools/src/main/java/org/infinispan/tools/config/v6/Parser60.java +++ b/tools/src/main/java/org/infinispan/tools/config/v6/Parser60.java @@ -45,7 +45,6 @@ import org.infinispan.configuration.parsing.ConfigurationBuilderHolder; import org.infinispan.configuration.parsing.ConfigurationParser; import org.infinispan.configuration.parsing.Namespace; -import org.infinispan.configuration.parsing.Namespaces; import org.infinispan.configuration.parsing.ParseUtils; import org.infinispan.configuration.parsing.ParsedCacheMode; import org.infinispan.configuration.parsing.XMLExtendedStreamReader; @@ -75,9 +74,7 @@ * @since 6.0 */ @MetaInfServices -@Namespaces({ - @Namespace(uri = "urn:infinispan:config:6.0", root = "infinispan"), -}) +@Namespace(uri = "urn:infinispan:config:6.0", root = "infinispan") public class Parser60 implements ConfigurationParser { public static final String INFINISPAN_FACTORY = "infinispan-factory"; diff --git a/tools/src/main/java/org/infinispan/tools/config/v6/jdbc/JdbcStoreConfigurationParser60.java b/tools/src/main/java/org/infinispan/tools/config/v6/jdbc/JdbcStoreConfigurationParser60.java index 8f78e8232f75..be7b1529fb1c 100644 --- a/tools/src/main/java/org/infinispan/tools/config/v6/jdbc/JdbcStoreConfigurationParser60.java +++ b/tools/src/main/java/org/infinispan/tools/config/v6/jdbc/JdbcStoreConfigurationParser60.java @@ -13,7 +13,6 @@ import org.infinispan.configuration.parsing.ConfigurationBuilderHolder; import org.infinispan.configuration.parsing.ConfigurationParser; import org.infinispan.configuration.parsing.Namespace; -import org.infinispan.configuration.parsing.Namespaces; import org.infinispan.configuration.parsing.ParseUtils; import org.infinispan.configuration.parsing.XMLExtendedStreamReader; import org.infinispan.persistence.jdbc.configuration.AbstractJdbcStoreConfigurationBuilder; @@ -31,11 +30,9 @@ * @since 6.0 */ @MetaInfServices -@Namespaces({ - @Namespace(uri = "urn:infinispan:config:jdbc:6.0", root = "stringKeyedJdbcStore"), - @Namespace(uri = "urn:infinispan:config:jdbc:6.0", root = "binaryKeyedJdbcStore"), - @Namespace(uri = "urn:infinispan:config:jdbc:6.0", root = "mixedKeyedJdbcStore"), -}) +@Namespace(uri = "urn:infinispan:config:jdbc:6.0", root = "stringKeyedJdbcStore") +@Namespace(uri = "urn:infinispan:config:jdbc:6.0", root = "binaryKeyedJdbcStore") +@Namespace(uri = "urn:infinispan:config:jdbc:6.0", root = "mixedKeyedJdbcStore") public class JdbcStoreConfigurationParser60 implements ConfigurationParser { public JdbcStoreConfigurationParser60() { diff --git a/tools/src/main/java/org/infinispan/tools/config/v6/leveldb/LevelDBStoreConfigurationParser60.java b/tools/src/main/java/org/infinispan/tools/config/v6/leveldb/LevelDBStoreConfigurationParser60.java index 54f79c61f1ba..6d3c8ecafc9e 100644 --- a/tools/src/main/java/org/infinispan/tools/config/v6/leveldb/LevelDBStoreConfigurationParser60.java +++ b/tools/src/main/java/org/infinispan/tools/config/v6/leveldb/LevelDBStoreConfigurationParser60.java @@ -8,7 +8,6 @@ import org.infinispan.configuration.parsing.ConfigurationBuilderHolder; import org.infinispan.configuration.parsing.ConfigurationParser; import org.infinispan.configuration.parsing.Namespace; -import org.infinispan.configuration.parsing.Namespaces; import org.infinispan.configuration.parsing.ParseUtils; import org.infinispan.configuration.parsing.XMLExtendedStreamReader; import org.infinispan.persistence.leveldb.configuration.CompressionType; @@ -23,7 +22,7 @@ * */ @MetaInfServices -@Namespaces({ @Namespace(uri = "urn:infinispan:config:store:leveldb:6.0", root = "leveldbStore") }) +@Namespace(uri = "urn:infinispan:config:store:leveldb:6.0", root = "leveldbStore") public class LevelDBStoreConfigurationParser60 implements ConfigurationParser { public LevelDBStoreConfigurationParser60() { diff --git a/tools/src/main/java/org/infinispan/tools/config/v6/remote/RemoteStoreConfigurationParser60.java b/tools/src/main/java/org/infinispan/tools/config/v6/remote/RemoteStoreConfigurationParser60.java index 00d3c5d425a6..9ddcc671a679 100644 --- a/tools/src/main/java/org/infinispan/tools/config/v6/remote/RemoteStoreConfigurationParser60.java +++ b/tools/src/main/java/org/infinispan/tools/config/v6/remote/RemoteStoreConfigurationParser60.java @@ -11,7 +11,6 @@ import org.infinispan.configuration.parsing.ConfigurationBuilderHolder; import org.infinispan.configuration.parsing.ConfigurationParser; import org.infinispan.configuration.parsing.Namespace; -import org.infinispan.configuration.parsing.Namespaces; import org.infinispan.configuration.parsing.ParseUtils; import org.infinispan.configuration.parsing.XMLExtendedStreamReader; import org.infinispan.persistence.remote.configuration.ConnectionPoolConfigurationBuilder; @@ -30,7 +29,7 @@ * @since 6.0 */ @MetaInfServices -@Namespaces({ @Namespace(uri = "urn:infinispan:config:remote:6.0", root = "remoteStore") }) +@Namespace(uri = "urn:infinispan:config:remote:6.0", root = "remoteStore") public class RemoteStoreConfigurationParser60 implements ConfigurationParser { public RemoteStoreConfigurationParser60() { diff --git a/tools/src/main/java/org/infinispan/tools/config/v6/rest/RestStoreConfigurationParser60.java b/tools/src/main/java/org/infinispan/tools/config/v6/rest/RestStoreConfigurationParser60.java index 5bccc1af764b..c42787143430 100644 --- a/tools/src/main/java/org/infinispan/tools/config/v6/rest/RestStoreConfigurationParser60.java +++ b/tools/src/main/java/org/infinispan/tools/config/v6/rest/RestStoreConfigurationParser60.java @@ -10,7 +10,6 @@ import org.infinispan.configuration.parsing.ConfigurationBuilderHolder; import org.infinispan.configuration.parsing.ConfigurationParser; import org.infinispan.configuration.parsing.Namespace; -import org.infinispan.configuration.parsing.Namespaces; import org.infinispan.configuration.parsing.ParseUtils; import org.infinispan.configuration.parsing.XMLExtendedStreamReader; import org.infinispan.persistence.rest.configuration.ConnectionPoolConfigurationBuilder; @@ -26,9 +25,7 @@ * @since 6.0 */ @MetaInfServices -@Namespaces({ - @Namespace(uri = "urn:infinispan:config:store:rest:6.0", root = "restStore"), -}) +@Namespace(uri = "urn:infinispan:config:store:rest:6.0", root = "restStore") public class RestStoreConfigurationParser60 implements ConfigurationParser { public RestStoreConfigurationParser60() {