From 12436dfff7ede724af8b5471de32fd2973ec0149 Mon Sep 17 00:00:00 2001 From: Arnaud Nauwynck Date: Wed, 25 Sep 2019 07:52:51 +0200 Subject: [PATCH] Fixed sort order of descriptor xml files for reproducible build --- .../plexus/metadata/DefaultMetadataGenerator.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/plexus-component-metadata/src/main/java/org/codehaus/plexus/metadata/DefaultMetadataGenerator.java b/plexus-component-metadata/src/main/java/org/codehaus/plexus/metadata/DefaultMetadataGenerator.java index daf99f8e1..ae77de97f 100644 --- a/plexus-component-metadata/src/main/java/org/codehaus/plexus/metadata/DefaultMetadataGenerator.java +++ b/plexus-component-metadata/src/main/java/org/codehaus/plexus/metadata/DefaultMetadataGenerator.java @@ -26,6 +26,7 @@ import java.io.FileOutputStream; import java.io.OutputStreamWriter; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.Comparator; @@ -148,7 +149,18 @@ public int compare( ComponentDescriptor d1, ComponentDescriptor d2 ) { File[] files = request.componentDescriptorDirectory.listFiles(); - for ( File file : files ) + // Sort the descriptor files by name to make the output reproducible + List sortedFiles = new ArrayList( Arrays.asList( files) ); + Collections.sort( sortedFiles, new Comparator() + { + public int compare( File f1, File f2 ) + { + return f1.getName().compareTo( f2.getName() ); + } + }); + + + for ( File file : sortedFiles ) { if ( file.getName().endsWith( ".xml" ) && !file.getName().equals( "plexus.xml" ) ) {