You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by mi...@apache.org on 2019/02/01 14:47:51 UTC

[maven-archiver] 01/01: [MSHARED-799] Change "Created-By" manifest entry value to be reproducible

This is an automated email from the ASF dual-hosted git repository.

michaelo pushed a commit to branch MSHARED-799
in repository https://gitbox.apache.org/repos/asf/maven-archiver.git

commit 199445f810b06810cdca08c41b536c280410b870
Author: Michael Osipov <mi...@apache.org>
AuthorDate: Fri Feb 1 15:46:45 2019 +0100

    [MSHARED-799] Change "Created-By" manifest entry value to be reproducible
    
    The test method testCreatedByManifestEntryWithoutMavenVersion() has been
    dropped because its function is coverted by two other tests as well.
---
 .../org/apache/maven/archiver/MavenArchiver.java   | 23 ++++++++++++-----
 .../apache/maven/archiver/MavenArchiverTest.java   | 30 +++-------------------
 2 files changed, 20 insertions(+), 33 deletions(-)

diff --git a/src/main/java/org/apache/maven/archiver/MavenArchiver.java b/src/main/java/org/apache/maven/archiver/MavenArchiver.java
index 5213d95..4bcb2f5 100644
--- a/src/main/java/org/apache/maven/archiver/MavenArchiver.java
+++ b/src/main/java/org/apache/maven/archiver/MavenArchiver.java
@@ -36,6 +36,7 @@ import org.codehaus.plexus.interpolation.PrefixedPropertiesValueSource;
 import org.codehaus.plexus.interpolation.RecursionInterceptor;
 import org.codehaus.plexus.interpolation.StringSearchInterpolator;
 import org.codehaus.plexus.interpolation.ValueSource;
+import org.apache.maven.shared.utils.PropertyUtils;
 import org.apache.maven.shared.utils.StringUtils;
 
 import javax.lang.model.SourceVersion;
@@ -610,6 +611,8 @@ public class MavenArchiver
         // Create the manifest
         // ----------------------------------------------------------------------
 
+        archiver.setMinimalDefaultManifest( true );
+
         File manifestFile = archiveConfiguration.getManifestFile();
 
         if ( manifestFile != null )
@@ -665,14 +668,11 @@ public class MavenArchiver
     private void addCreatedByEntry( MavenSession session, Manifest m, Map<String, String> entries )
         throws ManifestException
     {
-        String createdBy = "Apache Maven";
-        if ( session != null ) // can be null due to API backwards compatibility
+        String createdBy = "Maven Archiver";
+        String archiverVersion = getArchiverVersion();
+        if ( archiverVersion != null )
         {
-            String mavenVersion = session.getSystemProperties().getProperty( "maven.version" );
-            if ( mavenVersion != null )
-            {
-                createdBy += " " + mavenVersion;
-            }
+            createdBy += " " + archiverVersion;
         }
         addManifestAttribute( m, entries, "Created-By", createdBy );
     }
@@ -703,4 +703,13 @@ public class MavenArchiver
         }
         return null;
     }
+
+    private String getArchiverVersion()
+    {
+        final Properties properties = PropertyUtils.loadOptionalProperties( MavenArchiver.class.getResourceAsStream(
+            "/META-INF/maven/org.apache.maven/maven-archiver/pom.properties" ) );
+
+        return properties.getProperty( "version" );
+    }
+
 }
diff --git a/src/test/java/org/apache/maven/archiver/MavenArchiverTest.java b/src/test/java/org/apache/maven/archiver/MavenArchiverTest.java
index 2ef472e..77b53df 100644
--- a/src/test/java/org/apache/maven/archiver/MavenArchiverTest.java
+++ b/src/test/java/org/apache/maven/archiver/MavenArchiverTest.java
@@ -489,7 +489,8 @@ public class MavenArchiverTest
         assertTrue( jarFile.exists() );
         Attributes manifest = getJarFileManifest( jarFile ).getMainAttributes();
 
-        assertEquals( "Apache Maven", manifest.get( new Attributes.Name( "Created-By" ) ) ); // no version number
+        // no version number
+        assertEquals( "Maven Archiver", manifest.get( new Attributes.Name( "Created-By" ) ) );
 
         assertEquals( "archiver test", manifest.get( Attributes.Name.SPECIFICATION_TITLE ) );
         assertEquals( "0.1", manifest.get( Attributes.Name.SPECIFICATION_VERSION ) );
@@ -540,7 +541,8 @@ public class MavenArchiverTest
         final Manifest jarFileManifest = getJarFileManifest( jarFile );
         Attributes manifest = jarFileManifest.getMainAttributes();
 
-        assertEquals( "Apache Maven 3.0.4", manifest.get( new Attributes.Name( "Created-By" ) ) );
+        // no version number
+        assertEquals( "Maven Archiver", manifest.get( new Attributes.Name( "Created-By" ) ) );
 
         assertEquals( session.getSystemProperties().get( "maven.build.version" ),
             manifest.get( new Attributes.Name( "Build-Tool" ) ) );
@@ -602,30 +604,6 @@ public class MavenArchiverTest
         }
     }
 
-    @Test
-    public void testCreatedByManifestEntryWithoutMavenVersion()
-        throws Exception
-    {
-        File jarFile = new File( "target/test/dummy.jar" );
-        JarArchiver jarArchiver = getCleanJarArchiver( jarFile );
-
-        MavenArchiver archiver = getMavenArchiver( jarArchiver );
-
-        MavenSession session = getDummySessionWithoutMavenVersion();
-        MavenProject project = getDummyProject();
-
-        MavenArchiveConfiguration config = new MavenArchiveConfiguration();
-        config.setForced( true );
-
-        archiver.createArchive( session, project, config );
-        assertTrue( jarFile.exists() );
-
-        final Manifest manifest = getJarFileManifest( jarFile );
-        Map<Object, Object> entries = manifest.getMainAttributes();
-
-        assertEquals( "Apache Maven", entries.get( new Attributes.Name( "Created-By" ) ) );
-    }
-
     /*
      * Test to make sure that manifest sections are present in the manifest prior to the archive has been created.
      */