diff --git a/integration/src/main/resources/META-INF/MANIFEST.MF b/integration/src/main/resources/META-INF/MANIFEST.MF deleted file mode 100644 index e69de29bb..000000000 diff --git a/jcl-over-slf4j/pom.xml b/jcl-over-slf4j/pom.xml index 2dfc300e3..802c76489 100755 --- a/jcl-over-slf4j/pom.xml +++ b/jcl-over-slf4j/pom.xml @@ -39,5 +39,19 @@ test + + + + org.apache.felix + maven-bundle-plugin + + + org.apache.commons.logging.*;version=${jcl.version} + + + + + + diff --git a/jcl-over-slf4j/src/main/resources/META-INF/MANIFEST.MF b/jcl-over-slf4j/src/main/resources/META-INF/MANIFEST.MF deleted file mode 100755 index aa79492a3..000000000 --- a/jcl-over-slf4j/src/main/resources/META-INF/MANIFEST.MF +++ /dev/null @@ -1,9 +0,0 @@ -Implementation-Title: jcl-over-slf4j -Bundle-ManifestVersion: 2 -Bundle-SymbolicName: jcl.over.slf4j -Bundle-Name: jcl-over-slf4j -Bundle-Vendor: SLF4J.ORG -Bundle-RequiredExecutionEnvironment: JavaSE-1.8 -Export-Package: org.apache.commons.logging;version=1.2, - org.apache.commons.logging.impl;version=1.2 -Import-Package: org.slf4j;version=${parsedVersion.osgiVersion}, org.slf4j.spi;version=${parsedVersion.osgiVersion} diff --git a/jul-to-slf4j/pom.xml b/jul-to-slf4j/pom.xml index 850827072..b50d08de8 100755 --- a/jul-to-slf4j/pom.xml +++ b/jul-to-slf4j/pom.xml @@ -31,4 +31,20 @@ + + + + + org.apache.felix + maven-bundle-plugin + + + $${bsn} + + + + + + + diff --git a/jul-to-slf4j/src/main/resources/META-INF/MANIFEST.MF b/jul-to-slf4j/src/main/resources/META-INF/MANIFEST.MF deleted file mode 100644 index adecc065b..000000000 --- a/jul-to-slf4j/src/main/resources/META-INF/MANIFEST.MF +++ /dev/null @@ -1,8 +0,0 @@ -Bundle-ManifestVersion: 2 -Bundle-SymbolicName: jul.to.slf4j -Bundle-Name: jul-to-slf4j -Bundle-Vendor: SLF4J.ORG -Bundle-RequiredExecutionEnvironment: JavaSE-1.8 -Export-Package: org.slf4j.bridge;version=${parsedVersion.osgiVersion};uses:="org.slf4j,org.slf4j.spi" -Import-Package: org.slf4j;version=${parsedVersion.osgiVersion},org.slf4j.spi;version=${parsedVersion.osgiVersion} -Automatic-Module-Name: jul.to.slf4j diff --git a/log4j-over-slf4j/pom.xml b/log4j-over-slf4j/pom.xml index e6438deb4..1cf551486 100755 --- a/log4j-over-slf4j/pom.xml +++ b/log4j-over-slf4j/pom.xml @@ -41,4 +41,21 @@ + + + + + org.apache.felix + maven-bundle-plugin + + + org.slf4j.*;version="$${range;[===,3);${slf4j.api.minimum.compatible.version}}" + org.apache.log4j.*;version=${reload4j.version} + + + + + + + diff --git a/log4j-over-slf4j/src/main/resources/META-INF/MANIFEST.MF b/log4j-over-slf4j/src/main/resources/META-INF/MANIFEST.MF deleted file mode 100755 index 7a621dc65..000000000 --- a/log4j-over-slf4j/src/main/resources/META-INF/MANIFEST.MF +++ /dev/null @@ -1,13 +0,0 @@ -Implementation-Title: log4j-over-slf4j -Bundle-ManifestVersion: 2 -Bundle-SymbolicName: log4j.over.slf4j -Bundle-Name: log4j-over-slf4j -Bundle-Vendor: SLF4J.ORG -Bundle-RequiredExecutionEnvironment: JavaSE-1.8 -Export-Package: org.apache.log4j;version=${reload4j.version}, - org.apache.log4j.helpers;version=${reload4j.version}, - org.apache.log4j.spi;version=${reload4j.version}, - org.apache.log4j.xml;version=${reload4j.version} -Import-Package: org.slf4j;version=${slf4j.api.minimum.compatible.version}, - org.slf4j.helpers;version=${slf4j.api.minimum.compatible.version}, - org.slf4j.spi;version=${slf4j.api.minimum.compatible.version} diff --git a/osgi-over-slf4j/pom.xml b/osgi-over-slf4j/pom.xml index 0a78e1b31..8e3593cef 100755 --- a/osgi-over-slf4j/pom.xml +++ b/osgi-over-slf4j/pom.xml @@ -37,8 +37,29 @@ org.slf4j slf4j-simple - ${project.version} provided + + + + + + org.apache.felix + maven-bundle-plugin + + + org.slf4j.osgi-over-slf4j + org.slf4j.*;${slf4j_self_import_version},* + + org.slf4j.osgi.logservice.impl.Activator + osgi + $${bsn} + + + + + + + diff --git a/osgi-over-slf4j/src/main/resources/META-INF/MANIFEST.MF b/osgi-over-slf4j/src/main/resources/META-INF/MANIFEST.MF deleted file mode 100644 index 5fa377518..000000000 --- a/osgi-over-slf4j/src/main/resources/META-INF/MANIFEST.MF +++ /dev/null @@ -1,8 +0,0 @@ -Implementation-Title: osgi-over-slf4j -Bundle-ManifestVersion: 2 -Bundle-SymbolicName: org.slf4j.osgi-over-slf4j -Bundle-Name: OSGi LogService implemented over SLF4J -Bundle-RequiredExecutionEnvironment: JavaSE-1.8 -Bundle-Activator: org.slf4j.osgi.logservice.impl.Activator -Bundle-Category: osgi -Import-Package: org.osgi.framework;version="[1.5,2)",org.osgi.service.log;version="[1.3,2)",org.slf4j;version=${parsedVersion.osgiVersion} diff --git a/pom.xml b/pom.xml index f791f8a92..d41932917 100755 --- a/pom.xml +++ b/pom.xml @@ -49,6 +49,7 @@ 0.8.1 1.2.22 1.2.10 + 1.2 4.13.1 3.7.1 3.8.1 @@ -59,7 +60,11 @@ 3.2.0 3.1.1 5.1.8 + 6.4.0 3.2.0 + + ${version;===;${maven_version;${project.version}}} + version="$${range;[===,3);${project.osgi.version}}" @@ -95,6 +100,12 @@ ${junit.version} test + + biz.aQute.bnd + biz.aQute.bnd.annotation + ${bnd.version} + provided + @@ -238,14 +249,25 @@ maven-bundle-plugin ${maven-bundle-plugin.version} + true + - - ${parsedVersion.osgiVersion} - ${project.description} + $${replacestring;${project.artifactId};-;.} + ${project.artifactId} + SLF4J.ORG + <_snapshot /> + + org.slf4j.*;${slf4j_self_import_version} + !META-INF.*,* + + ${project.url} ${maven.compiler.source} ${maven.compiler.target} ${project.version} + ${project.artifactId} true + + <_removeheaders>Private-Package,Bundle-SCM,Include-Resource @@ -289,21 +311,6 @@ - - - org.codehaus.mojo - build-helper-maven-plugin - ${build-helper-maven-plugin.version} - - - parse-version - - parse-version - - - - - org.apache.maven.plugins maven-site-plugin diff --git a/slf4j-api/pom.xml b/slf4j-api/pom.xml index 1a19a326e..d2de5530e 100755 --- a/slf4j-api/pom.xml +++ b/slf4j-api/pom.xml @@ -53,6 +53,16 @@ + + org.apache.felix + maven-bundle-plugin + + + org.slf4j.spi;${slf4j_self_import_version} + + + + diff --git a/slf4j-api/src/main/java/org/slf4j/LoggerFactory.java b/slf4j-api/src/main/java/org/slf4j/LoggerFactory.java index 06828e5e3..64051cf71 100755 --- a/slf4j-api/src/main/java/org/slf4j/LoggerFactory.java +++ b/slf4j-api/src/main/java/org/slf4j/LoggerFactory.java @@ -46,7 +46,7 @@ import org.slf4j.helpers.Util; import org.slf4j.spi.SLF4JServiceProvider; -import javax.accessibility.AccessibleComponent; +import aQute.bnd.annotation.spi.ServiceConsumer; /** * The LoggerFactory is a utility class producing Loggers for @@ -66,6 +66,7 @@ * @author Ceki Gülcü * */ +@ServiceConsumer(SLF4JServiceProvider.class) public final class LoggerFactory { static final String CODES_PREFIX = "https://www.slf4j.org/codes.html"; diff --git a/slf4j-api/src/main/resources/META-INF/MANIFEST.MF b/slf4j-api/src/main/resources/META-INF/MANIFEST.MF deleted file mode 100755 index eb0a28705..000000000 --- a/slf4j-api/src/main/resources/META-INF/MANIFEST.MF +++ /dev/null @@ -1,15 +0,0 @@ -Implementation-Title: slf4j-api -Bundle-ManifestVersion: 2 -Bundle-SymbolicName: slf4j.api -Bundle-Name: slf4j-api -Bundle-Vendor: SLF4J.ORG -Bundle-RequiredExecutionEnvironment: JavaSE-1.8 -Export-Package: org.slf4j;version=${parsedVersion.osgiVersion}, - org.slf4j.spi;version=${parsedVersion.osgiVersion}, - org.slf4j.helpers;version=${parsedVersion.osgiVersion}, - org.slf4j.event;version=${parsedVersion.osgiVersion} -Import-Package: org.slf4j.spi;version=${parsedVersion.osgiVersion} -Require-Capability: osgi.extender;filter:="(&(osgi.extender=osgi.servi - celoader.processor)(version>=1.0.0)(!(version>=2.0.0)))",osgi.service - loader;filter:="(osgi.serviceloader=org.slf4j.spi.SLF4JServiceProvide - r)";osgi.serviceloader="org.slf4j.spi.SLF4JServiceProvider" diff --git a/slf4j-ext/pom.xml b/slf4j-ext/pom.xml index cedf731d4..7d10c9e47 100755 --- a/slf4j-ext/pom.xml +++ b/slf4j-ext/pom.xml @@ -73,8 +73,28 @@ - + + org.apache.felix + maven-bundle-plugin + + + + ch.qos.cal10n;version="${cal10n.version}";resolution:="optional", + org.slf4j;${slf4j_self_import_version}, + org.slf4j.spi;${slf4j_self_import_version}, + org.slf4j.helpers;${slf4j_self_import_version} + + + org.slf4j.ext, + org.slf4j.profiler, + org.slf4j.cal10n + + + + + + diff --git a/slf4j-ext/src/main/resources/META-INF/MANIFEST.MF b/slf4j-ext/src/main/resources/META-INF/MANIFEST.MF deleted file mode 100644 index e69292764..000000000 --- a/slf4j-ext/src/main/resources/META-INF/MANIFEST.MF +++ /dev/null @@ -1,8 +0,0 @@ -Implementation-Title: slf4j-ext -Bundle-ManifestVersion: 2 -Bundle-SymbolicName: slf4j.ext -Bundle-Name: slf4j-ext -Bundle-Vendor: SLF4J.ORG -Bundle-RequiredExecutionEnvironment: JavaSE-1.8 -Export-Package: org.slf4j.profiler;version=${parsedVersion.osgiVersion}, org.slf4j.cal10n;version=${parsedVersion.osgiVersion}, org.slf4j.ext;version=${parsedVersion.osgiVersion} -Import-Package: org.slf4j;version=${parsedVersion.osgiVersion}, org.slf4j.spi;version=${parsedVersion.osgiVersion}, org.slf4j.helpers;version=${parsedVersion.osgiVersion}, ch.qos.cal10n;version=${cal10n.version};resolution:=optional diff --git a/slf4j-jdk-platform-logging/src/main/resources/META-INF/MANIFEST.MF b/slf4j-jdk-platform-logging/src/main/resources/META-INF/MANIFEST.MF deleted file mode 100644 index d07332267..000000000 --- a/slf4j-jdk-platform-logging/src/main/resources/META-INF/MANIFEST.MF +++ /dev/null @@ -1,9 +0,0 @@ -Implementation-Title: slf4j-jdk-platform-logging -Bundle-ManifestVersion: 2 -Bundle-SymbolicName: slf4j.jdk.platform.logging -Bundle-Name: slf4j-jdk-platform-logging -Bundle-Vendor: SLF4J.ORG -Require-Bundle: slf4j.api -Bundle-RequiredExecutionEnvironment: JavaSE-9 -Export-Package: slf4j.jdk.platform.logging;version=${parsedVersion.osgiVersion} -Import-Package: org.slf4j;version=${parsedVersion.osgiVersion} diff --git a/slf4j-jdk14/src/main/java/org/slf4j/jul/JULServiceProvider.java b/slf4j-jdk14/src/main/java/org/slf4j/jul/JULServiceProvider.java index 5e9a74edd..c6a8859b6 100755 --- a/slf4j-jdk14/src/main/java/org/slf4j/jul/JULServiceProvider.java +++ b/slf4j-jdk14/src/main/java/org/slf4j/jul/JULServiceProvider.java @@ -7,6 +7,9 @@ import org.slf4j.spi.MDCAdapter; import org.slf4j.spi.SLF4JServiceProvider; +import aQute.bnd.annotation.spi.ServiceProvider; + +@ServiceProvider(value = SLF4JServiceProvider.class, attribute = { "type=jul" }) public class JULServiceProvider implements SLF4JServiceProvider { /** @@ -30,6 +33,7 @@ public IMarkerFactory getMarkerFactory() { return markerFactory; } + @Override public MDCAdapter getMDCAdapter() { return mdcAdapter; } diff --git a/slf4j-jdk14/src/main/resources/META-INF/MANIFEST.MF b/slf4j-jdk14/src/main/resources/META-INF/MANIFEST.MF deleted file mode 100755 index c7401272f..000000000 --- a/slf4j-jdk14/src/main/resources/META-INF/MANIFEST.MF +++ /dev/null @@ -1,17 +0,0 @@ -Implementation-Title: slf4j-jdk14 -Bundle-ManifestVersion: 2 -Bundle-SymbolicName: slf4j.jdk14 -Bundle-Name: slf4j-jdk14 -Bundle-Vendor: SLF4J.ORG -Bundle-RequiredExecutionEnvironment: JavaSE-1.8 -Export-Package: org.slf4j.jul;version=${parsedVersion.osgiVersion} -Import-Package: org.slf4j;version=${parsedVersion.osgiVersion}, - org.slf4j.spi;version=${parsedVersion.osgiVersion}, - org.slf4j.helpers;version=${parsedVersion.osgiVersion}, - org.slf4j.event;version=${parsedVersion.osgiVersion} -Provide-Capability: osgi.service;objectClass:List="org.slf4j.s - pi.SLF4JServiceProvider";type=jul;effective:=active,osgi.serviceloade - r;osgi.serviceloader="org.slf4j.spi.SLF4JServiceProvider";register:=" - org.slf4j.jul.JULServiceProvider";type=jul -Require-Capability: osgi.extender;filter:="(&(osgi.extender=osgi.servi - celoader.registrar)(version>=1.0.0)(!(version>=2.0.0)))" diff --git a/slf4j-migrator/pom.xml b/slf4j-migrator/pom.xml index 3ce68138f..413fa3a6c 100755 --- a/slf4j-migrator/pom.xml +++ b/slf4j-migrator/pom.xml @@ -16,4 +16,21 @@ SLF4J Migrator SLF4J Migrator + + + + + org.apache.felix + maven-bundle-plugin + + + bundle-manifest + none + + + + + + + diff --git a/slf4j-migrator/src/main/resources/META-INF/MANIFEST.MF b/slf4j-migrator/src/main/resources/META-INF/MANIFEST.MF index 10f5bdf34..b11f62376 100644 --- a/slf4j-migrator/src/main/resources/META-INF/MANIFEST.MF +++ b/slf4j-migrator/src/main/resources/META-INF/MANIFEST.MF @@ -1 +1 @@ -Main-Class: org.slf4j.migrator.Main \ No newline at end of file +Main-Class: org.slf4j.migrator.Main diff --git a/slf4j-nop/src/main/java/org/slf4j/nop/NOPServiceProvider.java b/slf4j-nop/src/main/java/org/slf4j/nop/NOPServiceProvider.java index 515cf23b2..1781c4305 100755 --- a/slf4j-nop/src/main/java/org/slf4j/nop/NOPServiceProvider.java +++ b/slf4j-nop/src/main/java/org/slf4j/nop/NOPServiceProvider.java @@ -8,6 +8,9 @@ import org.slf4j.spi.MDCAdapter; import org.slf4j.spi.SLF4JServiceProvider; +import aQute.bnd.annotation.spi.ServiceProvider; + +@ServiceProvider(value = SLF4JServiceProvider.class, attribute = { "type=nop" }) public class NOPServiceProvider implements SLF4JServiceProvider { /** @@ -21,14 +24,17 @@ public class NOPServiceProvider implements SLF4JServiceProvider { private final IMarkerFactory markerFactory = new BasicMarkerFactory(); private final MDCAdapter mdcAdapter = new NOPMDCAdapter(); + @Override public ILoggerFactory getLoggerFactory() { return loggerFactory; } + @Override public IMarkerFactory getMarkerFactory() { return markerFactory; } + @Override public MDCAdapter getMDCAdapter() { return mdcAdapter; } @@ -38,9 +44,9 @@ public String getRequestedApiVersion() { return REQUESTED_API_VERSION; } + @Override public void initialize() { } - } diff --git a/slf4j-nop/src/main/resources/META-INF/MANIFEST.MF b/slf4j-nop/src/main/resources/META-INF/MANIFEST.MF deleted file mode 100755 index e8026f444..000000000 --- a/slf4j-nop/src/main/resources/META-INF/MANIFEST.MF +++ /dev/null @@ -1,17 +0,0 @@ -Implementation-Title: slf4j-nop -Bundle-ManifestVersion: 2 -Bundle-SymbolicName: slf4j.nop -Bundle-Name: slf4j-nop -Bundle-Vendor: SLF4J.ORG -Bundle-RequiredExecutionEnvironment: JavaSE-1.8 -Export-Package: org.slf4j.nop;version=${parsedVersion.osgiVersion} -Import-Package: org.slf4j;version=${parsedVersion.osgiVersion}, - org.slf4j.spi;version=${parsedVersion.osgiVersion}, - org.slf4j.helpers;version=${parsedVersion.osgiVersion}, - org.slf4j.event;version=${parsedVersion.osgiVersion} -Provide-Capability: osgi.service;objectClass:List="org.slf4j.s - pi.SLF4JServiceProvider";type=nop;effective:=active,osgi.serviceloade - r;osgi.serviceloader="org.slf4j.spi.SLF4JServiceProvider";register:=" - org.slf4j.nop.NOPServiceProvider";type=nop -Require-Capability: osgi.extender;filter:="(&(osgi.extender=osgi.servi - celoader.registrar)(version>=1.0.0)(!(version>=2.0.0)))" diff --git a/slf4j-reload4j/pom.xml b/slf4j-reload4j/pom.xml index d39216ac0..b754c12a9 100644 --- a/slf4j-reload4j/pom.xml +++ b/slf4j-reload4j/pom.xml @@ -58,6 +58,19 @@ + + org.apache.felix + maven-bundle-plugin + + + + org.apache.log4j;version="${range;[==,+)}", + org.slf4j.*;${slf4j_self_import_version} + + + + + diff --git a/slf4j-reload4j/src/main/java/org/slf4j/reload4j/Reload4jServiceProvider.java b/slf4j-reload4j/src/main/java/org/slf4j/reload4j/Reload4jServiceProvider.java index 4625b09ca..d5b75ba1b 100644 --- a/slf4j-reload4j/src/main/java/org/slf4j/reload4j/Reload4jServiceProvider.java +++ b/slf4j-reload4j/src/main/java/org/slf4j/reload4j/Reload4jServiceProvider.java @@ -8,6 +8,9 @@ import org.slf4j.spi.MDCAdapter; import org.slf4j.spi.SLF4JServiceProvider; +import aQute.bnd.annotation.spi.ServiceProvider; + +@ServiceProvider(value = SLF4JServiceProvider.class, attribute = { "type=reload4j" }) public class Reload4jServiceProvider implements SLF4JServiceProvider { /** @@ -42,13 +45,11 @@ public ILoggerFactory getLoggerFactory() { return loggerFactory; } - @Override public IMarkerFactory getMarkerFactory() { return markerFactory; } - @Override public MDCAdapter getMDCAdapter() { return mdcAdapter; diff --git a/slf4j-reload4j/src/main/resources/META-INF/MANIFEST.MF b/slf4j-reload4j/src/main/resources/META-INF/MANIFEST.MF deleted file mode 100644 index fed77da50..000000000 --- a/slf4j-reload4j/src/main/resources/META-INF/MANIFEST.MF +++ /dev/null @@ -1,18 +0,0 @@ -Implementation-Title: slf4j-reload4j -Bundle-ManifestVersion: 2 -Bundle-SymbolicName: slf4j.reload4j -Bundle-Name: slf4j-reload4j -Bundle-Vendor: SLF4J.ORG -Bundle-RequiredExecutionEnvironment: JavaSE-1.8 -Export-Package: org.slf4j.reload4j;version=${parsedVersion.osgiVersion} -Import-Package: org.slf4j;version=${parsedVersion.osgiVersion}, - org.slf4j.spi;version=${parsedVersion.osgiVersion}, - org.slf4j.helpers;version=${parsedVersion.osgiVersion}, - org.slf4j.event;version=${parsedVersion.osgiVersion}, - org.apache.log4j -Provide-Capability: osgi.service;objectClass:List="org.slf4j.s - pi.SLF4JServiceProvider";type=reload4j;effective:=active,osgi.service - loader;osgi.serviceloader="org.slf4j.spi.SLF4JServiceProvider";regist - er:="org.slf4j.reload4j.Reload4jServiceProvider";type=reload4j -Require-Capability: osgi.extender;filter:="(&(osgi.extender=osgi.servi - celoader.registrar)(version>=1.0.0)(!(version>=2.0.0)))" diff --git a/slf4j-simple/src/main/java/org/slf4j/simple/SimpleServiceProvider.java b/slf4j-simple/src/main/java/org/slf4j/simple/SimpleServiceProvider.java index 795200dc5..4227335ed 100755 --- a/slf4j-simple/src/main/java/org/slf4j/simple/SimpleServiceProvider.java +++ b/slf4j-simple/src/main/java/org/slf4j/simple/SimpleServiceProvider.java @@ -7,6 +7,9 @@ import org.slf4j.spi.MDCAdapter; import org.slf4j.spi.SLF4JServiceProvider; +import aQute.bnd.annotation.spi.ServiceProvider; + +@ServiceProvider(value = SLF4JServiceProvider.class, attribute = { "type=simple" }) public class SimpleServiceProvider implements SLF4JServiceProvider { /** @@ -20,6 +23,7 @@ public class SimpleServiceProvider implements SLF4JServiceProvider { private IMarkerFactory markerFactory; private MDCAdapter mdcAdapter; + @Override public ILoggerFactory getLoggerFactory() { return loggerFactory; } diff --git a/slf4j-simple/src/main/resources/META-INF/MANIFEST.MF b/slf4j-simple/src/main/resources/META-INF/MANIFEST.MF deleted file mode 100755 index 9e8d817a9..000000000 --- a/slf4j-simple/src/main/resources/META-INF/MANIFEST.MF +++ /dev/null @@ -1,18 +0,0 @@ -Implementation-Title: slf4j-simple -Bundle-ManifestVersion: 2 -Bundle-SymbolicName: slf4j.simple -Bundle-Name: slf4j-simple -Bundle-Vendor: SLF4J.ORG -Require-Bundle: slf4j.api -Bundle-RequiredExecutionEnvironment: JavaSE-1.8 -Export-Package: org.slf4j.simple;version=${parsedVersion.osgiVersion} -Import-Package: org.slf4j;version=${parsedVersion.osgiVersion}, - org.slf4j.spi;version=${parsedVersion.osgiVersion}, - org.slf4j.helpers;version=${parsedVersion.osgiVersion}, - org.slf4j.event;version=${parsedVersion.osgiVersion} -Provide-Capability: osgi.service;objectClass:List="org.slf4j.s - pi.SLF4JServiceProvider";type=simple;effective:=active,osgi.servicelo - ader;osgi.serviceloader="org.slf4j.spi.SLF4JServiceProvider";register - :="org.slf4j.simple.SimpleServiceProvider";type=simple -Require-Capability: osgi.extender;filter:="(&(osgi.extender=osgi.servi - celoader.registrar)(version>=1.0.0)(!(version>=2.0.0)))"