[maven] 09/24: Build and install the new maven-slf4j-provider module
Emmanuel Bourg
ebourg-guest at moszumanska.debian.org
Tue May 23 21:54:58 UTC 2017
This is an automated email from the git hooks/post-receive script.
ebourg-guest pushed a commit to branch maven-3.5
in repository maven.
commit 39486a3ffda55569c8d9179c101c48a3316909f8
Author: Emmanuel Bourg <ebourg at apache.org>
Date: Wed May 17 14:40:11 2017 +0200
Build and install the new maven-slf4j-provider module
---
debian/changelog | 1 +
debian/control | 5 +-
debian/libmaven3-core-java.poms | 1 +
debian/maven.links | 5 +-
debian/patches/series | 1 +
debian/patches/slf4j-compatibility.patch | 224 +++++++++++++++++++++++++++++++
6 files changed, 235 insertions(+), 2 deletions(-)
diff --git a/debian/changelog b/debian/changelog
index 3c71c4e..bcafcea 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -4,6 +4,7 @@ maven (3.5.0-1) UNRELEASED; urgency=medium
* New upstream release
- Refreshed the patches
- Replaced maven-aether-provider with maven-resolver-provider
+ - Build and install the new maven-slf4j-provider module
* Build with the DH sequencer instead of CDBS
* Build with maven-debian-helper instead of Ant
* Switch to debhelper level 10
diff --git a/debian/control b/debian/control
index 229d516..05ec780 100644
--- a/debian/control
+++ b/debian/control
@@ -13,6 +13,8 @@ Build-Depends-Indep: junit4,
liblogback-java,
libmaven-parent-java,
libmaven-resolver-java,
+ libmaven-shade-plugin-java,
+ libmaven-shared-utils-java (>= 3.1.0),
libmockito-java,
libmodello-maven-plugin-java (>= 1.8),
libplexus-classworlds2-java (>= 2.4),
@@ -20,7 +22,7 @@ Build-Depends-Indep: junit4,
libplexus-utils2-java (>= 3.0.15),
libsisu-maven-plugin-java,
libsisu-plexus-java (>= 0.3.0),
- libslf4j-java,
+ libslf4j-java (>= 1.7.25),
libsurefire-java (>= 2.17),
libwagon2-java (>= 2.2-2),
libxmlunit-java
@@ -57,6 +59,7 @@ Package: maven
Architecture: all
Depends: default-jre-headless (>= 2:1.7) | java7-runtime-headless,
libmaven3-core-java (= ${source:Version}),
+ libjansi-java,
${misc:Depends}
Replaces: maven2 (<< 2.2.1-11)
Breaks: maven2 (<< 2.2.1-11)
diff --git a/debian/libmaven3-core-java.poms b/debian/libmaven3-core-java.poms
index 6244e41..64c3f2a 100644
--- a/debian/libmaven3-core-java.poms
+++ b/debian/libmaven3-core-java.poms
@@ -40,3 +40,4 @@ maven-repository-metadata/pom.xml --has-package-version --java-lib --usj-name=ma
maven-resolver-provider/pom.xml --has-package-version --java-lib --usj-name=maven3-resolver-provider
maven-settings/pom.xml --has-package-version --java-lib --usj-name=maven3-settings
maven-settings-builder/pom.xml --has-package-version --java-lib --usj-name=maven3-settings-builder
+maven-slf4j-provider/pom.xml --has-package-version --java-lib --usj-name=maven3-slf4j-provider
diff --git a/debian/maven.links b/debian/maven.links
index 8f35e11..1ae03a5 100644
--- a/debian/maven.links
+++ b/debian/maven.links
@@ -11,13 +11,16 @@
/usr/share/java/commons-lang.jar /usr/share/maven/lib/commons-lang.jar
/usr/share/java/commons-lang3.jar /usr/share/maven/lib/commons-lang3.jar
/usr/share/java/jsoup.jar /usr/share/maven/lib/jsoup.jar
+/usr/share/java/jansi.jar /usr/share/maven/lib/jansi.jar
/usr/share/java/atinject-jsr330-tck-1.0.jar /usr/share/maven/lib/javax.inject.jar
+/usr/share/java/jcl-over-slf4j.jar /usr/share/maven/lib/jcl-over-slf4j.jar
/usr/share/java/maven-resolver-api.jar /usr/share/maven/lib/maven-resolver-api.jar
/usr/share/java/maven-resolver-connector-basic.jar /usr/share/maven/lib/maven-resolver-connector-basic.jar
/usr/share/java/maven-resolver-impl.jar /usr/share/maven/lib/maven-resolver-impl.jar
/usr/share/java/maven-resolver-spi.jar /usr/share/maven/lib/maven-resolver-spi.jar
/usr/share/java/maven-resolver-transport-wagon.jar /usr/share/maven/lib/maven-resolver-transport-wagon.jar
/usr/share/java/maven-resolver-util.jar /usr/share/maven/lib/maven-resolver-util.jar
+/usr/share/java/maven-shared-utils.jar /usr/share/maven/lib/maven-shared-utils.jar
/usr/share/java/plexus-cipher.jar /usr/share/maven/lib/plexus-cipher.jar
/usr/share/java/plexus-component-annotations-1.5.jar /usr/share/maven/lib/plexus-component-annotations.jar
/usr/share/java/plexus-interpolation.jar /usr/share/maven/lib/plexus-interpolation.jar
@@ -28,7 +31,6 @@
/usr/share/java/sisu-inject.jar /usr/share/maven/lib/sisu-inject.jar
/usr/share/java/sisu-plexus.jar /usr/share/maven/lib/sisu-plexus.jar
/usr/share/java/slf4j-api.jar /usr/share/maven/lib/slf4j-api.jar
-/usr/share/java/slf4j-simple.jar /usr/share/maven/lib/slf4j-simple.jar
/usr/share/java/maven3-artifact.jar /usr/share/maven/lib/maven-artifact-3.x.jar
/usr/share/java/maven3-builder-support.jar /usr/share/maven/lib/maven-builder-support-3.x.jar
@@ -42,6 +44,7 @@
/usr/share/java/maven3-resolver-provider.jar /usr/share/maven/lib/maven-resolver-provider-3.x.jar
/usr/share/java/maven3-settings-builder.jar /usr/share/maven/lib/maven-settings-builder-3.x.jar
/usr/share/java/maven3-settings.jar /usr/share/maven/lib/maven-settings-3.x.jar
+/usr/share/java/maven3-slf4j-provider.jar /usr/share/maven/lib/maven-slf4j-provider-3.x.jar
/usr/share/java/wagon-file-2.x.jar /usr/share/maven/lib/wagon-file.jar
/usr/share/java/wagon-http-shaded-2.x.jar /usr/share/maven/lib/wagon-http-shaded.jar
diff --git a/debian/patches/series b/debian/patches/series
index cb24b85..7476d42 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,3 +1,4 @@
plugins_version.diff
modello-configuration.patch
reproducible-build-timestamp.patch
+slf4j-compatibility.patch
diff --git a/debian/patches/slf4j-compatibility.patch b/debian/patches/slf4j-compatibility.patch
new file mode 100644
index 0000000..2615a59
--- /dev/null
+++ b/debian/patches/slf4j-compatibility.patch
@@ -0,0 +1,224 @@
+Description: Upgrade to SLF4J 1.7.25 and remove the monkey patching
+Author: Emmanuel Bourg <ebourg at apache.org>
+Bug: https://github.com/apache/maven/pull/118
+--- a/maven-slf4j-provider/pom.xml
++++ b/maven-slf4j-provider/pom.xml
+@@ -42,6 +42,11 @@
+ <artifactId>slf4j-api</artifactId>
+ </dependency>
+ <dependency>
++ <groupId>org.slf4j</groupId>
++ <artifactId>slf4j-simple</artifactId>
++ <version>${slf4jVersion}</version>
++ </dependency>
++ <dependency>
+ <groupId>org.apache.maven.shared</groupId>
+ <artifactId>maven-shared-utils</artifactId>
+ </dependency>
+@@ -49,68 +54,36 @@
+
+ <build>
+ <plugins>
++ <!-- Shade slf4j-simple without StaticLoggerBinder to ensure SLF4J picks our implementation -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+- <artifactId>maven-dependency-plugin</artifactId>
+- <configuration>
+- <artifactItems>
+- <artifactItem>
+- <groupId>org.slf4j</groupId>
+- <artifactId>slf4j-simple</artifactId>
+- <version>${slf4jVersion}</version>
+- <type>jar</type>
+- <classifier>sources</classifier>
+- <overWrite>false</overWrite>
+- <outputDirectory>${project.build.directory}/generated-sources/slf4j-simple</outputDirectory>
+- <includes>org/slf4j/impl/*.java</includes>
+- </artifactItem>
+- </artifactItems>
+- </configuration>
++ <artifactId>maven-shade-plugin</artifactId>
++ <version>3.0.0</version>
+ <executions>
+ <execution>
+- <id>unzip-slf4j-simple</id>
++ <phase>package</phase>
+ <goals>
+- <goal>unpack</goal>
+- </goals>
+- </execution>
+- </executions>
+- </plugin>
+- <plugin>
+- <groupId>org.codehaus.mojo</groupId>
+- <artifactId>build-helper-maven-plugin</artifactId>
+- <version>1.12</version>
+- <executions>
+- <execution>
+- <id>add-slf4j-simple</id>
+- <phase>generate-sources</phase>
+- <goals>
+- <goal>add-source</goal>
++ <goal>shade</goal>
+ </goals>
+ <configuration>
+- <sources>
+- <source>${project.build.directory}/generated-sources/slf4j-simple</source>
+- </sources>
+- </configuration>
+- </execution>
+- </executions>
+- </plugin>
+- <plugin>
+- <groupId>org.codehaus.gmaven</groupId>
+- <artifactId>groovy-maven-plugin</artifactId>
+- <version>2.0</version>
+- <executions>
+- <execution>
+- <id>patch-slf4j-simple</id>
+- <phase>process-sources</phase>
+- <goals>
+- <goal>execute</goal>
+- </goals>
+- <configuration>
+- <source>${project.basedir}/src/main/script/patch-slf4j-simple.groovy</source>
++ <artifactSet>
++ <includes>
++ <include>org.slf4j:slf4j-simple</include>
++ </includes>
++ </artifactSet>
++ <filters>
++ <filter>
++ <artifact>org.slf4j:slf4j-simple</artifact>
++ <excludes>
++ <exclude>org/slf4j/impl/StaticLoggerBinder*</exclude>
++ </excludes>
++ </filter>
++ </filters>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+-</project>
+\ No newline at end of file
++
++</project>
+--- a/maven-slf4j-provider/src/main/java/org/slf4j/impl/MavenSimpleLogger.java
++++ b/maven-slf4j-provider/src/main/java/org/slf4j/impl/MavenSimpleLogger.java
+@@ -56,8 +56,13 @@
+ }
+
+ @Override
+- protected void renderThrowable( Throwable t, PrintStream stream )
++ protected void writeThrowable( Throwable t, PrintStream stream )
+ {
++ if ( t == null )
++ {
++ return;
++ }
++
+ stream.print( buffer().failure( t.getClass().getName() ) );
+ if ( t.getMessage() != null )
+ {
+--- /dev/null
++++ b/maven-slf4j-provider/src/main/java/org/slf4j/impl/StaticLoggerBinder.java
+@@ -0,0 +1,87 @@
++package org.slf4j.impl;
++
++/*
++ * Licensed to the Apache Software Foundation (ASF) under one
++ * or more contributor license agreements. See the NOTICE file
++ * distributed with this work for additional information
++ * regarding copyright ownership. The ASF licenses this file
++ * to you 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.
++ */
++
++import org.slf4j.ILoggerFactory;
++import org.slf4j.spi.LoggerFactoryBinder;
++
++/**
++ * SLF4J LoggerFactoryBinder implementation using MavenSimpleLogger.
++ * This class is part of the required classes used to specify an
++ * SLF4J logger provider implementation.
++ *
++ * @since 3.5.0
++ */
++public final class StaticLoggerBinder implements LoggerFactoryBinder
++{
++ /**
++ * Declare the version of the SLF4J API this implementation is compiled
++ * against. The value of this field is usually modified with each release.
++ */
++ // to avoid constant folding by the compiler, this field must *not* be final
++ public static String REQUESTED_API_VERSION = "1.7.25"; // !final
++
++ private static final String LOGGER_FACTORY_CLASS_STR = MavenSimpleLoggerFactory.class.getName();
++
++ /**
++ * The unique instance of this class.
++ */
++ private static final StaticLoggerBinder SINGLETON = new StaticLoggerBinder();
++
++ /**
++ * The ILoggerFactory instance returned by the {@link #getLoggerFactory}
++ * method should always be the same object
++ */
++ private final ILoggerFactory loggerFactory;
++
++ /**
++ * Private constructor to prevent instantiation
++ */
++ private StaticLoggerBinder()
++ {
++ loggerFactory = new MavenSimpleLoggerFactory();
++ }
++
++ /**
++ * Returns the singleton of this class.
++ */
++ public static StaticLoggerBinder getSingleton()
++ {
++ return SINGLETON;
++ }
++
++ /**
++ * Returns the factory.
++ */
++ @Override
++ public ILoggerFactory getLoggerFactory()
++ {
++ return loggerFactory;
++ }
++
++ /**
++ * Returns the class name.
++ */
++ @Override
++ public String getLoggerFactoryClassStr()
++ {
++ return LOGGER_FACTORY_CLASS_STR;
++ }
++}
+--- a/pom.xml
++++ b/pom.xml
+@@ -593,6 +593,7 @@
+ <exclude>.maven/spy.log</exclude> <!-- hudson maven3 integration log -->
+ <exclude>.java-version</exclude>
+ <exclude>README.md</exclude>
++ <exclude>dependency-reduced-pom.xml</exclude>
+ </excludes>
+ </configuration>
+ </plugin>
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/maven.git
More information about the pkg-java-commits
mailing list