Merge pull request #1710 from hboutemy/KARAF-7637

[KARAF-7637] drop non-reproducible properties store
diff --git a/archetypes/assembly/pom.xml b/archetypes/assembly/pom.xml
index a661ea5..36f6871 100644
--- a/archetypes/assembly/pom.xml
+++ b/archetypes/assembly/pom.xml
@@ -34,7 +34,7 @@
     <description>This archetype sets up an empty karaf assembly project.</description>
 
     <properties>
-        <archetype.version>3.1.2</archetype.version>
+        <archetype.version>3.2.1</archetype.version>
     </properties>
 
     <build>
diff --git a/archetypes/blueprint/pom.xml b/archetypes/blueprint/pom.xml
index 91d6e05..9b30c5b 100644
--- a/archetypes/blueprint/pom.xml
+++ b/archetypes/blueprint/pom.xml
@@ -35,7 +35,7 @@
     <description>An archetype for creating a simple blueprint bundle.</description>
 
     <properties>
-        <archetype.version>3.1.2</archetype.version>
+        <archetype.version>3.2.1</archetype.version>
     </properties>
 
     <build>
diff --git a/archetypes/bundle/pom.xml b/archetypes/bundle/pom.xml
index eb30398..6fdf760 100644
--- a/archetypes/bundle/pom.xml
+++ b/archetypes/bundle/pom.xml
@@ -35,7 +35,7 @@
     <description>A simple bundle archetype.</description>
 
     <properties>
-        <archetype.version>3.1.2</archetype.version>
+        <archetype.version>3.2.1</archetype.version>
     </properties>
 
     <build>
diff --git a/archetypes/command/pom.xml b/archetypes/command/pom.xml
index 1225ebd..fd60247 100644
--- a/archetypes/command/pom.xml
+++ b/archetypes/command/pom.xml
@@ -35,7 +35,7 @@
     <description>A Karaf command archetype.</description>
 
     <properties>
-        <archetype.version>3.1.2</archetype.version>
+        <archetype.version>3.2.1</archetype.version>
     </properties>
 
     <build>
diff --git a/archetypes/feature/pom.xml b/archetypes/feature/pom.xml
index c5d8595..fc1fce2 100644
--- a/archetypes/feature/pom.xml
+++ b/archetypes/feature/pom.xml
@@ -35,7 +35,7 @@
     <description>This archetype sets up an empty karaf features project.</description>
 
     <properties>
-        <archetype.version>3.1.2</archetype.version>
+        <archetype.version>3.2.1</archetype.version>
     </properties>
 
     <build>
diff --git a/archetypes/kar/pom.xml b/archetypes/kar/pom.xml
index ec1f20a..dfd302b 100644
--- a/archetypes/kar/pom.xml
+++ b/archetypes/kar/pom.xml
@@ -35,7 +35,7 @@
     <description>This archetype sets up an empty karaf kar project.</description>
 
     <properties>
-        <archetype.version>3.1.2</archetype.version>
+        <archetype.version>3.2.1</archetype.version>
     </properties>
 
     <build>
diff --git a/tooling/karaf-services-maven-plugin/src/main/java/org/apache/karaf/tooling/tracker/GenerateServiceMetadata.java b/tooling/karaf-services-maven-plugin/src/main/java/org/apache/karaf/tooling/tracker/GenerateServiceMetadata.java
index 1790330..f0eb59a 100644
--- a/tooling/karaf-services-maven-plugin/src/main/java/org/apache/karaf/tooling/tracker/GenerateServiceMetadata.java
+++ b/tooling/karaf-services-maven-plugin/src/main/java/org/apache/karaf/tooling/tracker/GenerateServiceMetadata.java
@@ -16,12 +16,18 @@
  */
 package org.apache.karaf.tooling.tracker;
 
+import java.io.BufferedReader;
 import java.io.File;
 import java.io.IOException;
 import java.io.OutputStream;
+import java.io.OutputStreamWriter;
+import java.io.PrintWriter;
+import java.io.StringReader;
+import java.io.StringWriter;
 import java.net.URL;
 import java.net.URLClassLoader;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 import java.util.Properties;
 import java.util.Set;
@@ -176,8 +182,28 @@
 
         File file = new File(outputDirectory, "OSGI-INF/karaf-tracker/" + serviceClazz.getName());
         file.getParentFile().mkdirs();
-        try (OutputStream os = buildContext.newFileOutputStream(file)) {
-            props.store(os, null);
+        writeProperties(props, file);
+    }
+
+    private void writeProperties(Properties props, File file) throws IOException {
+        try (OutputStream os = buildContext.newFileOutputStream(file); PrintWriter pw = new PrintWriter(new OutputStreamWriter(os, "ISO-8859-1"));
+             StringWriter sw = new StringWriter()) {
+            props.store(sw, null);
+
+            List<String> lines = new ArrayList<>();
+            try (BufferedReader r = new BufferedReader(new StringReader(sw.toString()))) {
+                String line;
+                while ((line = r.readLine()) != null) {
+                    if (!line.startsWith("#")) {
+                        lines.add(line);
+                    }
+                }
+            }
+
+            Collections.sort(lines);
+            for (String l : lines) {
+                pw.println(l);
+            }
         }
     }