[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