Skip to content

Commit 7041fca

Browse files
committed
[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. This closes #4
1 parent 93f5ba1 commit 7041fca

File tree

2 files changed

+20
-33
lines changed

2 files changed

+20
-33
lines changed

src/main/java/org/apache/maven/archiver/MavenArchiver.java

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
import org.codehaus.plexus.interpolation.RecursionInterceptor;
3737
import org.codehaus.plexus.interpolation.StringSearchInterpolator;
3838
import org.codehaus.plexus.interpolation.ValueSource;
39+
import org.apache.maven.shared.utils.PropertyUtils;
3940
import org.apache.maven.shared.utils.StringUtils;
4041

4142
import javax.lang.model.SourceVersion;
@@ -610,6 +611,8 @@ public void createArchive( MavenSession session, MavenProject project,
610611
// Create the manifest
611612
// ----------------------------------------------------------------------
612613

614+
archiver.setMinimalDefaultManifest( true );
615+
613616
File manifestFile = archiveConfiguration.getManifestFile();
614617

615618
if ( manifestFile != null )
@@ -665,14 +668,11 @@ public void createArchive( MavenSession session, MavenProject project,
665668
private void addCreatedByEntry( MavenSession session, Manifest m, Map<String, String> entries )
666669
throws ManifestException
667670
{
668-
String createdBy = "Apache Maven";
669-
if ( session != null ) // can be null due to API backwards compatibility
671+
String createdBy = "Maven Archiver";
672+
String archiverVersion = getArchiverVersion();
673+
if ( archiverVersion != null )
670674
{
671-
String mavenVersion = session.getSystemProperties().getProperty( "maven.version" );
672-
if ( mavenVersion != null )
673-
{
674-
createdBy += " " + mavenVersion;
675-
}
675+
createdBy += " " + archiverVersion;
676676
}
677677
addManifestAttribute( m, entries, "Created-By", createdBy );
678678
}
@@ -703,4 +703,13 @@ private Artifact findArtifactWithFile( Set<Artifact> artifacts, File file )
703703
}
704704
return null;
705705
}
706+
707+
private static String getArchiverVersion()
708+
{
709+
final Properties properties = PropertyUtils.loadOptionalProperties( MavenArchiver.class.getResourceAsStream(
710+
"/META-INF/maven/org.apache.maven/maven-archiver/pom.properties" ) );
711+
712+
return properties.getProperty( "version" );
713+
}
714+
706715
}

src/test/java/org/apache/maven/archiver/MavenArchiverTest.java

Lines changed: 4 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -489,7 +489,8 @@ public void testDeprecatedCreateArchiveAPI()
489489
assertTrue( jarFile.exists() );
490490
Attributes manifest = getJarFileManifest( jarFile ).getMainAttributes();
491491

492-
assertEquals( "Apache Maven", manifest.get( new Attributes.Name( "Created-By" ) ) ); // no version number
492+
// no version number
493+
assertEquals( "Maven Archiver", manifest.get( new Attributes.Name( "Created-By" ) ) );
493494

494495
assertEquals( "archiver test", manifest.get( Attributes.Name.SPECIFICATION_TITLE ) );
495496
assertEquals( "0.1", manifest.get( Attributes.Name.SPECIFICATION_VERSION ) );
@@ -540,7 +541,8 @@ public void testManifestEntries()
540541
final Manifest jarFileManifest = getJarFileManifest( jarFile );
541542
Attributes manifest = jarFileManifest.getMainAttributes();
542543

543-
assertEquals( "Apache Maven 3.0.4", manifest.get( new Attributes.Name( "Created-By" ) ) );
544+
// no version number
545+
assertEquals( "Maven Archiver", manifest.get( new Attributes.Name( "Created-By" ) ) );
544546

545547
assertEquals( session.getSystemProperties().get( "maven.build.version" ),
546548
manifest.get( new Attributes.Name( "Build-Tool" ) ) );
@@ -602,30 +604,6 @@ public void testManifestWithInvalidAutomaticModuleNameThrowsOnCreateArchive()
602604
}
603605
}
604606

605-
@Test
606-
public void testCreatedByManifestEntryWithoutMavenVersion()
607-
throws Exception
608-
{
609-
File jarFile = new File( "target/test/dummy.jar" );
610-
JarArchiver jarArchiver = getCleanJarArchiver( jarFile );
611-
612-
MavenArchiver archiver = getMavenArchiver( jarArchiver );
613-
614-
MavenSession session = getDummySessionWithoutMavenVersion();
615-
MavenProject project = getDummyProject();
616-
617-
MavenArchiveConfiguration config = new MavenArchiveConfiguration();
618-
config.setForced( true );
619-
620-
archiver.createArchive( session, project, config );
621-
assertTrue( jarFile.exists() );
622-
623-
final Manifest manifest = getJarFileManifest( jarFile );
624-
Map<Object, Object> entries = manifest.getMainAttributes();
625-
626-
assertEquals( "Apache Maven", entries.get( new Attributes.Name( "Created-By" ) ) );
627-
}
628-
629607
/*
630608
* Test to make sure that manifest sections are present in the manifest prior to the archive has been created.
631609
*/

0 commit comments

Comments
 (0)