From 34cb660cc61a21f29a3be86fc9e1ae134f0a3c7d Mon Sep 17 00:00:00 2001 From: Eric Long Date: Tue, 27 Aug 2019 13:48:20 -0400 Subject: [PATCH] 0004082: Sort the properties alphabetically --- .../symmetric/web/SymmetricEngineHolder.java | 10 ++++---- .../jumpmind/properties/SortedProperties.java | 23 +++++++++++++++++++ 2 files changed, 29 insertions(+), 4 deletions(-) create mode 100644 symmetric-util/src/main/java/org/jumpmind/properties/SortedProperties.java diff --git a/symmetric-server/src/main/java/org/jumpmind/symmetric/web/SymmetricEngineHolder.java b/symmetric-server/src/main/java/org/jumpmind/symmetric/web/SymmetricEngineHolder.java index 889561f40f..f388ab3a08 100644 --- a/symmetric-server/src/main/java/org/jumpmind/symmetric/web/SymmetricEngineHolder.java +++ b/symmetric-server/src/main/java/org/jumpmind/symmetric/web/SymmetricEngineHolder.java @@ -45,6 +45,7 @@ import org.apache.commons.lang.StringUtils; import org.jumpmind.db.util.BasicDataSourcePropertyConstants; import org.jumpmind.properties.DefaultParameterParser.ParameterMetaData; +import org.jumpmind.properties.SortedProperties; import org.jumpmind.properties.TypedProperties; import org.jumpmind.security.ISecurityService; import org.jumpmind.security.SecurityConstants; @@ -379,11 +380,12 @@ public ISymmetricEngine install(Properties passedInProperties) throws Exception File enginesDir = new File(AbstractCommandLauncher.getEnginesDir()); File symmetricProperties = new File(enginesDir, engineName + ".properties"); - try(FileOutputStream fileOs = new FileOutputStream(symmetricProperties)) { - properties.store(fileOs, "Updated by SymmetricDS Pro"); + try (FileOutputStream fileOs = new FileOutputStream(symmetricProperties)) { + SortedProperties sortedProperties = new SortedProperties(); + sortedProperties.putAll(properties); + sortedProperties.store(fileOs, "Updated by SymmetricDS Pro"); } catch (IOException ex) { - throw new RuntimeException("Failed to write symmetric.properties to engine directory", - ex); + throw new RuntimeException("Failed to write symmetric.properties to engine directory", ex); } ISymmetricEngine engine = null; diff --git a/symmetric-util/src/main/java/org/jumpmind/properties/SortedProperties.java b/symmetric-util/src/main/java/org/jumpmind/properties/SortedProperties.java new file mode 100644 index 0000000000..5b96f5babd --- /dev/null +++ b/symmetric-util/src/main/java/org/jumpmind/properties/SortedProperties.java @@ -0,0 +1,23 @@ +package org.jumpmind.properties; + +import java.util.Collections; +import java.util.Enumeration; +import java.util.Properties; +import java.util.Vector; + +public class SortedProperties extends Properties { + + private static final long serialVersionUID = 1L; + + @SuppressWarnings({ "rawtypes", "unchecked" }) + public Enumeration keys() { + Enumeration keysEnum = super.keys(); + Vector keyList = new Vector(); + while (keysEnum.hasMoreElements()) { + keyList.add((String) keysEnum.nextElement()); + } + Collections.sort(keyList); + return keyList.elements(); + } + +} \ No newline at end of file