From 53b83e9f9c5b611181b069792c8cb7f69c78eafb Mon Sep 17 00:00:00 2001 From: Rob Rudin Date: Fri, 3 Sep 2021 11:35:03 -0400 Subject: [PATCH 1/7] #442 Logging warning when database resource directory isn't valid "Isn't valid" = an existing ML database cannot be associated. Now logging a warning as throwing an exception proved to be too punitive for users. --- .../appdeployer/command/AbstractCommand.java | 11 ++++++++--- .../command/alert/DeployAlertActionsCommand.java | 4 +++- .../command/alert/DeployAlertConfigsCommand.java | 4 +++- .../command/alert/DeployAlertRulesCommand.java | 4 +++- .../command/flexrep/DeployConfigsCommand.java | 4 +++- .../command/flexrep/DeployPullsCommand.java | 4 +++- .../command/flexrep/DeployTargetsCommand.java | 4 +++- .../rebalancer/DeployPartitionQueriesCommand.java | 4 +++- .../command/rebalancer/DeployPartitionsCommand.java | 4 +++- .../command/temporal/DeployTemporalAxesCommand.java | 4 +++- .../temporal/DeployTemporalCollectionsCommand.java | 4 +++- .../DeployTemporalCollectionsLSQTCommand.java | 4 +++- .../command/triggers/DeployTriggersCommand.java | 4 +++- .../command/viewschemas/DeployViewSchemasCommand.java | 4 +++- .../command/alert/ManageAlertConfigsTest.java | 5 +++++ .../alert/configs/should-be-ignored-alert-config.json | 9 +++++++++ 16 files changed, 61 insertions(+), 16 deletions(-) create mode 100644 src/test/resources/sample-app/alert-config/databases/unknown-database/alert/configs/should-be-ignored-alert-config.json diff --git a/src/main/java/com/marklogic/appdeployer/command/AbstractCommand.java b/src/main/java/com/marklogic/appdeployer/command/AbstractCommand.java index d7fce93b..b14f47c7 100644 --- a/src/main/java/com/marklogic/appdeployer/command/AbstractCommand.java +++ b/src/main/java/com/marklogic/appdeployer/command/AbstractCommand.java @@ -509,7 +509,10 @@ protected void setIncrementalMode(boolean incrementalMode) { * within the directory should be associated with. But starting in 3.16.0, if the name of the directory doesn't * match that of an existing database, then a check is made to see if there's a database file in the given ConfigDir * that has the same name, minus its extension, as the database directory name. If so, then the database-name is - * extracted from that file and used as the database name. If not, an exception is thrown. + * extracted from that file and used as the database name. If not, a warning is logged and null is returned. + * Previously, an exception was thrown if the database-name could not be determined, but this raised problems for + * users that had directory names like ".svn" that they could not easily remove (and we can't eagerly ignore certain + * names since something like ".svn" is a valid ML database name). * * @param context * @param configDir @@ -538,8 +541,10 @@ protected String determineDatabaseNameForDatabaseResourceDirectory(CommandContex } } - throw new RuntimeException("Could not determine database to associate with database resource directory: " + - databaseResourceDir); + logger.warn("Could not determine database to associate with database resource directory: " + + databaseResourceDir + "; will not process any resource files in that directory"); + + return null; } public void setPayloadTokenReplacer(PayloadTokenReplacer payloadTokenReplacer) { diff --git a/src/main/java/com/marklogic/appdeployer/command/alert/DeployAlertActionsCommand.java b/src/main/java/com/marklogic/appdeployer/command/alert/DeployAlertActionsCommand.java index 277a5951..306c22c2 100644 --- a/src/main/java/com/marklogic/appdeployer/command/alert/DeployAlertActionsCommand.java +++ b/src/main/java/com/marklogic/appdeployer/command/alert/DeployAlertActionsCommand.java @@ -35,7 +35,9 @@ public void execute(CommandContext context) { deployActions(context, configDir, appConfig.getContentDatabaseName()); for (File dir : configDir.getDatabaseResourceDirectories()) { String databaseName = determineDatabaseNameForDatabaseResourceDirectory(context, configDir, dir); - deployActions(context, new ConfigDir(dir), databaseName); + if (databaseName != null) { + deployActions(context, new ConfigDir(dir), databaseName); + } } } } diff --git a/src/main/java/com/marklogic/appdeployer/command/alert/DeployAlertConfigsCommand.java b/src/main/java/com/marklogic/appdeployer/command/alert/DeployAlertConfigsCommand.java index f4986353..95fd13fa 100644 --- a/src/main/java/com/marklogic/appdeployer/command/alert/DeployAlertConfigsCommand.java +++ b/src/main/java/com/marklogic/appdeployer/command/alert/DeployAlertConfigsCommand.java @@ -26,7 +26,9 @@ public void execute(CommandContext context) { deployAlertConfigs(context, configDir, appConfig.getContentDatabaseName()); for (File dir : configDir.getDatabaseResourceDirectories()) { String databaseName = determineDatabaseNameForDatabaseResourceDirectory(context, configDir, dir); - deployAlertConfigs(context, new ConfigDir(dir), databaseName); + if (databaseName != null) { + deployAlertConfigs(context, new ConfigDir(dir), databaseName); + } } } } diff --git a/src/main/java/com/marklogic/appdeployer/command/alert/DeployAlertRulesCommand.java b/src/main/java/com/marklogic/appdeployer/command/alert/DeployAlertRulesCommand.java index 6911c56f..4fd8ef77 100644 --- a/src/main/java/com/marklogic/appdeployer/command/alert/DeployAlertRulesCommand.java +++ b/src/main/java/com/marklogic/appdeployer/command/alert/DeployAlertRulesCommand.java @@ -28,7 +28,9 @@ public void execute(CommandContext context) { deployRules(context, configDir, appConfig.getContentDatabaseName()); for (File dir : configDir.getDatabaseResourceDirectories()) { String databaseName = determineDatabaseNameForDatabaseResourceDirectory(context, configDir, dir); - deployRules(context, new ConfigDir(dir), databaseName); + if (databaseName != null) { + deployRules(context, new ConfigDir(dir), databaseName); + } } } } diff --git a/src/main/java/com/marklogic/appdeployer/command/flexrep/DeployConfigsCommand.java b/src/main/java/com/marklogic/appdeployer/command/flexrep/DeployConfigsCommand.java index df89f96f..4fd913e0 100644 --- a/src/main/java/com/marklogic/appdeployer/command/flexrep/DeployConfigsCommand.java +++ b/src/main/java/com/marklogic/appdeployer/command/flexrep/DeployConfigsCommand.java @@ -33,7 +33,9 @@ public void execute(CommandContext context) { deployConfigs(context, configDir, appConfig.getContentDatabaseName()); for (File dir : configDir.getDatabaseResourceDirectories()) { String databaseName = determineDatabaseNameForDatabaseResourceDirectory(context, configDir, dir); - deployConfigs(context, new ConfigDir(dir), databaseName); + if (databaseName != null) { + deployConfigs(context, new ConfigDir(dir), databaseName); + } } } } diff --git a/src/main/java/com/marklogic/appdeployer/command/flexrep/DeployPullsCommand.java b/src/main/java/com/marklogic/appdeployer/command/flexrep/DeployPullsCommand.java index 32f66291..057aec7e 100644 --- a/src/main/java/com/marklogic/appdeployer/command/flexrep/DeployPullsCommand.java +++ b/src/main/java/com/marklogic/appdeployer/command/flexrep/DeployPullsCommand.java @@ -35,7 +35,9 @@ public void execute(CommandContext context) { deployFlexRepPulls(context, configDir, appConfig.getContentDatabaseName()); for (File dir : configDir.getDatabaseResourceDirectories()) { String databaseName = determineDatabaseNameForDatabaseResourceDirectory(context, configDir, dir); - deployFlexRepPulls(context, new ConfigDir(dir), databaseName); + if (databaseName != null) { + deployFlexRepPulls(context, new ConfigDir(dir), databaseName); + } } } } diff --git a/src/main/java/com/marklogic/appdeployer/command/flexrep/DeployTargetsCommand.java b/src/main/java/com/marklogic/appdeployer/command/flexrep/DeployTargetsCommand.java index 0d9e6ed0..74a06502 100644 --- a/src/main/java/com/marklogic/appdeployer/command/flexrep/DeployTargetsCommand.java +++ b/src/main/java/com/marklogic/appdeployer/command/flexrep/DeployTargetsCommand.java @@ -37,7 +37,9 @@ public void execute(CommandContext context) { deployTargets(context, configDir, appConfig.getContentDatabaseName()); for (File dir : configDir.getDatabaseResourceDirectories()) { String databaseName = determineDatabaseNameForDatabaseResourceDirectory(context, configDir, dir); - deployTargets(context, new ConfigDir(dir), databaseName); + if (databaseName != null) { + deployTargets(context, new ConfigDir(dir), databaseName); + } } } } diff --git a/src/main/java/com/marklogic/appdeployer/command/rebalancer/DeployPartitionQueriesCommand.java b/src/main/java/com/marklogic/appdeployer/command/rebalancer/DeployPartitionQueriesCommand.java index 1ecc0a92..0e277b3d 100644 --- a/src/main/java/com/marklogic/appdeployer/command/rebalancer/DeployPartitionQueriesCommand.java +++ b/src/main/java/com/marklogic/appdeployer/command/rebalancer/DeployPartitionQueriesCommand.java @@ -27,7 +27,9 @@ public void execute(CommandContext context) { for (ConfigDir configDir : appConfig.getConfigDirs()) { for (File dir : configDir.getDatabaseResourceDirectories()) { String databaseName = determineDatabaseNameForDatabaseResourceDirectory(context, configDir, dir); - deployPartitionQueries(context, new ConfigDir(dir), databaseName); + if (databaseName != null) { + deployPartitionQueries(context, new ConfigDir(dir), databaseName); + } } } } diff --git a/src/main/java/com/marklogic/appdeployer/command/rebalancer/DeployPartitionsCommand.java b/src/main/java/com/marklogic/appdeployer/command/rebalancer/DeployPartitionsCommand.java index 60bbafff..f23e2c9b 100644 --- a/src/main/java/com/marklogic/appdeployer/command/rebalancer/DeployPartitionsCommand.java +++ b/src/main/java/com/marklogic/appdeployer/command/rebalancer/DeployPartitionsCommand.java @@ -27,7 +27,9 @@ public void execute(CommandContext context) { for (ConfigDir configDir : appConfig.getConfigDirs()) { for (File dir : configDir.getDatabaseResourceDirectories()) { String databaseName = determineDatabaseNameForDatabaseResourceDirectory(context, configDir, dir); - deployPartitions(context, new ConfigDir(dir), databaseName); + if (databaseName != null) { + deployPartitions(context, new ConfigDir(dir), databaseName); + } } } } diff --git a/src/main/java/com/marklogic/appdeployer/command/temporal/DeployTemporalAxesCommand.java b/src/main/java/com/marklogic/appdeployer/command/temporal/DeployTemporalAxesCommand.java index d262a2d7..80e761c0 100644 --- a/src/main/java/com/marklogic/appdeployer/command/temporal/DeployTemporalAxesCommand.java +++ b/src/main/java/com/marklogic/appdeployer/command/temporal/DeployTemporalAxesCommand.java @@ -28,7 +28,9 @@ public void execute(CommandContext context) { deployTemporalAxes(context, configDir, appConfig.getContentDatabaseName()); for (File dir : configDir.getDatabaseResourceDirectories()) { String databaseName = determineDatabaseNameForDatabaseResourceDirectory(context, configDir, dir); - deployTemporalAxes(context, new ConfigDir(dir), databaseName); + if (databaseName != null) { + deployTemporalAxes(context, new ConfigDir(dir), databaseName); + } } } } diff --git a/src/main/java/com/marklogic/appdeployer/command/temporal/DeployTemporalCollectionsCommand.java b/src/main/java/com/marklogic/appdeployer/command/temporal/DeployTemporalCollectionsCommand.java index b1d3ae33..c334eb06 100644 --- a/src/main/java/com/marklogic/appdeployer/command/temporal/DeployTemporalCollectionsCommand.java +++ b/src/main/java/com/marklogic/appdeployer/command/temporal/DeployTemporalCollectionsCommand.java @@ -29,7 +29,9 @@ public void execute(CommandContext context) { deployTemporalCollections(context, configDir, appConfig.getContentDatabaseName()); for (File dir : configDir.getDatabaseResourceDirectories()) { String databaseName = determineDatabaseNameForDatabaseResourceDirectory(context, configDir, dir); - deployTemporalCollections(context, new ConfigDir(dir), databaseName); + if (databaseName != null) { + deployTemporalCollections(context, new ConfigDir(dir), databaseName); + } } } } diff --git a/src/main/java/com/marklogic/appdeployer/command/temporal/DeployTemporalCollectionsLSQTCommand.java b/src/main/java/com/marklogic/appdeployer/command/temporal/DeployTemporalCollectionsLSQTCommand.java index 74ec671e..152efa23 100644 --- a/src/main/java/com/marklogic/appdeployer/command/temporal/DeployTemporalCollectionsLSQTCommand.java +++ b/src/main/java/com/marklogic/appdeployer/command/temporal/DeployTemporalCollectionsLSQTCommand.java @@ -20,7 +20,9 @@ public void execute(CommandContext context) { deployTemporalCollectionsLsqt(context, configDir, appConfig.getContentDatabaseName()); for (File dir : configDir.getDatabaseResourceDirectories()) { String databaseName = determineDatabaseNameForDatabaseResourceDirectory(context, configDir, dir); - deployTemporalCollectionsLsqt(context, new ConfigDir(dir), databaseName); + if (databaseName != null) { + deployTemporalCollectionsLsqt(context, new ConfigDir(dir), databaseName); + } } } } diff --git a/src/main/java/com/marklogic/appdeployer/command/triggers/DeployTriggersCommand.java b/src/main/java/com/marklogic/appdeployer/command/triggers/DeployTriggersCommand.java index 1bc6241f..3d6d9b2b 100644 --- a/src/main/java/com/marklogic/appdeployer/command/triggers/DeployTriggersCommand.java +++ b/src/main/java/com/marklogic/appdeployer/command/triggers/DeployTriggersCommand.java @@ -37,7 +37,9 @@ public void execute(CommandContext context) { deployTriggers(context, configDir, initialTriggersDatabaseName); for (File dir : configDir.getDatabaseResourceDirectories()) { String databaseName = determineDatabaseNameForDatabaseResourceDirectory(context, configDir, dir); - deployTriggers(context, new ConfigDir(dir), databaseName); + if (databaseName != null) { + deployTriggers(context, new ConfigDir(dir), databaseName); + } } } } diff --git a/src/main/java/com/marklogic/appdeployer/command/viewschemas/DeployViewSchemasCommand.java b/src/main/java/com/marklogic/appdeployer/command/viewschemas/DeployViewSchemasCommand.java index dc0303c5..2da0dce2 100644 --- a/src/main/java/com/marklogic/appdeployer/command/viewschemas/DeployViewSchemasCommand.java +++ b/src/main/java/com/marklogic/appdeployer/command/viewschemas/DeployViewSchemasCommand.java @@ -41,7 +41,9 @@ public void execute(CommandContext context) { deployViewSchemas(context, configDir, appConfig.getContentDatabaseName()); for (File dir : configDir.getDatabaseResourceDirectories()) { String databaseName = determineDatabaseNameForDatabaseResourceDirectory(context, configDir, dir); - deployViewSchemas(context, new ConfigDir(dir), databaseName); + if (databaseName != null) { + deployViewSchemas(context, new ConfigDir(dir), databaseName); + } } } } diff --git a/src/test/java/com/marklogic/appdeployer/command/alert/ManageAlertConfigsTest.java b/src/test/java/com/marklogic/appdeployer/command/alert/ManageAlertConfigsTest.java index a259bfad..48629a47 100644 --- a/src/test/java/com/marklogic/appdeployer/command/alert/ManageAlertConfigsTest.java +++ b/src/test/java/com/marklogic/appdeployer/command/alert/ManageAlertConfigsTest.java @@ -8,6 +8,11 @@ import java.io.File; +/** + * This test is also expected to verify the fix for #442, which is that when a database resource directory - in this + * case, sample-app/alert-configs/databases/unknown-database - cannot be associated with an existing ML database, an + * exception is NOT thrown but rather a warning is logged. The fact that the test succeeds is evidence of this. + */ public class ManageAlertConfigsTest extends AbstractManageResourceTest { @Override diff --git a/src/test/resources/sample-app/alert-config/databases/unknown-database/alert/configs/should-be-ignored-alert-config.json b/src/test/resources/sample-app/alert-config/databases/unknown-database/alert/configs/should-be-ignored-alert-config.json new file mode 100644 index 00000000..5cec6abe --- /dev/null +++ b/src/test/resources/sample-app/alert-config/databases/unknown-database/alert/configs/should-be-ignored-alert-config.json @@ -0,0 +1,9 @@ +{ + "uri": "should-be-ignored-alert-config", + "name": "Should Be Ignored Alerting App", + "description": "This should be ignored since the parent directory of 'unknown-database' doesn't match an existing ML database", + "trigger": [], + "domain": [], + "action": [], + "option": [] +} From ae903121ed9aa25f81e3a9afa376b79bfe2967e8 Mon Sep 17 00:00:00 2001 From: Mads Hansen Date: Sat, 19 Mar 2022 16:34:29 -0400 Subject: [PATCH 2/7] - remove unused imports - use try-with-resources for closeable objects - use diamond operator for object construction - use addAll() instead of iterating over every item and adding each one - use Map.computeIfAbsent() to simplify - use StringBuilder instead of concatenating strings inside of a loop - use equalsIgnoreCase when comparing values without caring about case --- .../appdeployer/DefaultAppConfigFactory.java | 8 ++---- .../com/marklogic/appdeployer/cli/Main.java | 5 +--- .../appdeployer/command/AbstractCommand.java | 4 +-- .../command/CommandMapBuilder.java | 28 +++++++++---------- .../command/ResourceFilenameFilter.java | 5 ++-- .../alert/DeployAlertRulesCommand.java | 2 -- .../databases/DeployDatabaseCommand.java | 1 - .../DeployOtherDatabasesCommand.java | 2 +- .../databases/DeploySubDatabasesCommand.java | 2 +- .../command/flexrep/DeployTargetsCommand.java | 4 --- .../DistributedReplicaBuilderStrategy.java | 6 ++-- .../command/forests/ForestBuilder.java | 15 ++-------- .../command/forests/ForestNamingStrategy.java | 1 - .../hosts/AssignHostsToGroupsCommand.java | 4 --- .../command/modules/DeleteModulesCommand.java | 1 - .../DeployTemporalCollectionsCommand.java | 1 - .../triggers/DeployTriggersCommand.java | 2 -- .../viewschemas/DeployViewSchemasCommand.java | 2 -- .../appdeployer/export/Exporter.java | 1 - .../impl/CompositeResourceExporter.java | 5 ++-- .../appdeployer/impl/AbstractAppDeployer.java | 2 +- .../appdeployer/impl/SimpleAppDeployer.java | 9 +++--- .../appdeployer/util/ModulesWatcher.java | 1 - .../java/com/marklogic/mgmt/ManageClient.java | 12 ++++---- .../marklogic/mgmt/admin/AdminManager.java | 16 +++++------ .../mgmt/admin/DefaultAdminConfigFactory.java | 1 - src/main/java/com/marklogic/mgmt/api/API.java | 5 ++-- .../com/marklogic/mgmt/api/group/Group.java | 4 +-- .../com/marklogic/mgmt/api/security/Amp.java | 2 +- .../com/marklogic/mgmt/api/security/Role.java | 4 +-- .../com/marklogic/mgmt/api/security/User.java | 4 +-- .../resource/AbstractResourceManager.java | 14 ++++++---- .../resource/appservers/ServerManager.java | 1 - .../resource/databases/DatabaseManager.java | 10 +++---- .../mgmt/resource/forests/ForestManager.java | 15 +++++----- .../mgmt/resource/groups/GroupManager.java | 2 +- .../mgmt/resource/security/AmpManager.java | 4 +-- .../security/CertificateAuthorityManager.java | 2 +- .../mgmt/selector/MapResourceSelection.java | 8 +----- .../template/group/GroupTemplateBuilder.java | 1 - .../template/security/AmpTemplateBuilder.java | 1 - .../com/marklogic/rest/util/Fragment.java | 11 ++++---- .../rest/util/ResourcesFragment.java | 2 -- .../command/ReplaceTokensTest.java | 1 - .../command/databases/ClearDatabaseTest.java | 3 +- .../CreateForestsOnSpecificHostsTest.java | 1 - .../hosts/AssignHostsToGroupsTest.java | 2 +- .../DontUndeployCertainRolesTest.java | 1 - .../command/security/ManageAmpsTest.java | 1 - .../junit/CustomDifferenceListener.java | 2 +- .../java/com/marklogic/junit/Fragment.java | 6 ++-- 51 files changed, 94 insertions(+), 153 deletions(-) diff --git a/src/main/java/com/marklogic/appdeployer/DefaultAppConfigFactory.java b/src/main/java/com/marklogic/appdeployer/DefaultAppConfigFactory.java index a50da63d..23a75bc7 100644 --- a/src/main/java/com/marklogic/appdeployer/DefaultAppConfigFactory.java +++ b/src/main/java/com/marklogic/appdeployer/DefaultAppConfigFactory.java @@ -457,9 +457,7 @@ public void initialize() { logger.info("Databases that will have their forest(s) created on a single host: " + prop); String[] names = prop.split(","); Set set = new HashSet<>(); - for (String name : names) { - set.add(name); - } + set.addAll(Arrays.asList(names)); config.setDatabasesWithForestsOnOneHost(set); }); @@ -904,9 +902,7 @@ protected Map> buildMapOfListsFromDelimitedString(String st String dbName = tokens[i]; String[] hostNames = tokens[i + 1].split("\\|"); List names = new ArrayList<>(); - for (String name : hostNames) { - names.add(name); - } + names.addAll(Arrays.asList(hostNames)); map.put(dbName, names); } return map; diff --git a/src/main/java/com/marklogic/appdeployer/cli/Main.java b/src/main/java/com/marklogic/appdeployer/cli/Main.java index 7aabe942..7dfe8f15 100644 --- a/src/main/java/com/marklogic/appdeployer/cli/Main.java +++ b/src/main/java/com/marklogic/appdeployer/cli/Main.java @@ -102,11 +102,8 @@ private static PropertySource buildPropertySource(Options options) throws IOExce if (logger.isInfoEnabled()) { logger.info("Reading properties from file path: " + propertiesFilePath); } - FileInputStream fis = new FileInputStream(propertiesFilePath); - try { + try (FileInputStream fis = new FileInputStream(propertiesFilePath)) { props.load(fis); - } finally { - fis.close(); } // Dynamic params override what's in the properties file diff --git a/src/main/java/com/marklogic/appdeployer/command/AbstractCommand.java b/src/main/java/com/marklogic/appdeployer/command/AbstractCommand.java index d7fce93b..3018a63e 100644 --- a/src/main/java/com/marklogic/appdeployer/command/AbstractCommand.java +++ b/src/main/java/com/marklogic/appdeployer/command/AbstractCommand.java @@ -75,9 +75,7 @@ public void setFilenamesToIgnore(String... filenames) { } else { set = new HashSet<>(); } - for (String f : filenames) { - set.add(f); - } + set.addAll(Arrays.asList(filenames)); rff.setFilenamesToIgnore(set); } else { logger.warn("resourceFilenameFilter is not an instanceof ResourceFilenameFilter, so unable to set resource filenames to ignore"); diff --git a/src/main/java/com/marklogic/appdeployer/command/CommandMapBuilder.java b/src/main/java/com/marklogic/appdeployer/command/CommandMapBuilder.java index 5373a2d8..6a3cf7b3 100644 --- a/src/main/java/com/marklogic/appdeployer/command/CommandMapBuilder.java +++ b/src/main/java/com/marklogic/appdeployer/command/CommandMapBuilder.java @@ -92,7 +92,7 @@ public List getCommandsForReplicaCluster() { } private void addCommandsThatDoNotWriteToDatabases(Map> map) { - List clusterCommands = new ArrayList(); + List clusterCommands = new ArrayList<>(); clusterCommands.add(new ModifyLocalClusterCommand()); map.put("mlClusterCommands", clusterCommands); @@ -100,27 +100,27 @@ private void addCommandsThatDoNotWriteToDatabases(Map> map configurationCommands.add(new DeployConfigurationsCommand()); map.put("mlConfigurationCommands", configurationCommands); - List dbCommands = new ArrayList(); + List dbCommands = new ArrayList<>(); dbCommands.add(new DeployOtherDatabasesCommand()); map.put("mlDatabaseCommands", dbCommands); - List forestCommands = new ArrayList(); + List forestCommands = new ArrayList<>(); forestCommands.add(new DeployCustomForestsCommand()); map.put("mlForestCommands", forestCommands); - List replicaCommands = new ArrayList(); + List replicaCommands = new ArrayList<>(); replicaCommands.add(new ConfigureForestReplicasCommand()); map.put("mlForestReplicaCommands", replicaCommands); - List groupCommands = new ArrayList(); + List groupCommands = new ArrayList<>(); groupCommands.add(new DeployGroupsCommand()); map.put("mlGroupCommands", groupCommands); - List hostCommands = new ArrayList(); + List hostCommands = new ArrayList<>(); hostCommands.add(new AssignHostsToGroupsCommand()); map.put("mlHostCommands", hostCommands); - List mimetypeCommands = new ArrayList(); + List mimetypeCommands = new ArrayList<>(); mimetypeCommands.add(new DeployMimetypesCommand()); map.put("mlMimetypeCommands", mimetypeCommands); @@ -137,7 +137,7 @@ private void addCommandsThatDoNotWriteToDatabases(Map> map restApiCommands.add(new DeployRestApiServersCommand()); map.put("mlRestApiCommands", restApiCommands); - List securityCommands = new ArrayList(); + List securityCommands = new ArrayList<>(); securityCommands.add(new DeployRolesCommand()); securityCommands.add(new DeployUsersCommand()); securityCommands.add(new DeployAmpsCommand()); @@ -157,20 +157,20 @@ private void addCommandsThatDoNotWriteToDatabases(Map> map serverCommands.add(new UpdateRestApiServersCommand()); map.put("mlServerCommands", serverCommands); - List taskCommands = new ArrayList(); + List taskCommands = new ArrayList<>(); taskCommands.add(new DeployScheduledTasksCommand()); taskCommands.add(new UpdateTaskServerCommand()); map.put("mlTaskCommands", taskCommands); } private void addCommandsThatWriteToDatabases(Map> map) { - List alertCommands = new ArrayList(); + List alertCommands = new ArrayList<>(); alertCommands.add(new DeployAlertConfigsCommand()); alertCommands.add(new DeployAlertActionsCommand()); alertCommands.add(new DeployAlertRulesCommand()); map.put("mlAlertCommands", alertCommands); - List cpfCommands = new ArrayList(); + List cpfCommands = new ArrayList<>(); cpfCommands.add(new DeployCpfConfigsCommand()); cpfCommands.add(new DeployDomainsCommand()); cpfCommands.add(new DeployPipelinesCommand()); @@ -180,7 +180,7 @@ private void addCommandsThatWriteToDatabases(Map> map) { dataCommands.add(new LoadDataCommand()); map.put("mlDataCommands", dataCommands); - List flexrepCommands = new ArrayList(); + List flexrepCommands = new ArrayList<>(); flexrepCommands.add(new DeployConfigsCommand()); flexrepCommands.add(new DeployTargetsCommand()); flexrepCommands.add(new DeployFlexrepCommand()); @@ -201,11 +201,11 @@ private void addCommandsThatWriteToDatabases(Map> map) { temporalCommands.add(new DeployTemporalCollectionsLSQTCommand()); map.put("mlTemporalCommands", temporalCommands); - List triggerCommands = new ArrayList(); + List triggerCommands = new ArrayList<>(); triggerCommands.add(new DeployTriggersCommand()); map.put("mlTriggerCommands", triggerCommands); - List viewCommands = new ArrayList(); + List viewCommands = new ArrayList<>(); viewCommands.add(new DeployViewSchemasCommand()); map.put("mlViewCommands", viewCommands); } diff --git a/src/main/java/com/marklogic/appdeployer/command/ResourceFilenameFilter.java b/src/main/java/com/marklogic/appdeployer/command/ResourceFilenameFilter.java index d554b51c..0021afa6 100644 --- a/src/main/java/com/marklogic/appdeployer/command/ResourceFilenameFilter.java +++ b/src/main/java/com/marklogic/appdeployer/command/ResourceFilenameFilter.java @@ -3,6 +3,7 @@ import com.marklogic.client.ext.helper.LoggingObject; import java.io.File; +import java.util.Arrays; import java.util.HashSet; import java.util.Set; import java.util.regex.Pattern; @@ -38,9 +39,7 @@ public ResourceFilenameFilter(ResourceFileManager resourceFileManager) { public ResourceFilenameFilter(String... filenamesToIgnore) { this(); this.filenamesToIgnore = new HashSet<>(); - for (String f : filenamesToIgnore) { - this.filenamesToIgnore.add(f); - } + this.filenamesToIgnore.addAll(Arrays.asList(filenamesToIgnore)); } public ResourceFilenameFilter(Set filenamesToIgnore) { diff --git a/src/main/java/com/marklogic/appdeployer/command/alert/DeployAlertRulesCommand.java b/src/main/java/com/marklogic/appdeployer/command/alert/DeployAlertRulesCommand.java index 6911c56f..f98d900c 100644 --- a/src/main/java/com/marklogic/appdeployer/command/alert/DeployAlertRulesCommand.java +++ b/src/main/java/com/marklogic/appdeployer/command/alert/DeployAlertRulesCommand.java @@ -1,7 +1,5 @@ package com.marklogic.appdeployer.command.alert; -import java.io.File; - import com.marklogic.appdeployer.AppConfig; import com.marklogic.appdeployer.ConfigDir; import com.marklogic.appdeployer.command.AbstractCommand; diff --git a/src/main/java/com/marklogic/appdeployer/command/databases/DeployDatabaseCommand.java b/src/main/java/com/marklogic/appdeployer/command/databases/DeployDatabaseCommand.java index f6fdfa31..5d60138e 100644 --- a/src/main/java/com/marklogic/appdeployer/command/databases/DeployDatabaseCommand.java +++ b/src/main/java/com/marklogic/appdeployer/command/databases/DeployDatabaseCommand.java @@ -8,7 +8,6 @@ import com.marklogic.appdeployer.command.UndoableCommand; import com.marklogic.appdeployer.command.forests.DeployForestsCommand; import com.marklogic.mgmt.PayloadParser; -import com.marklogic.mgmt.SaveReceipt; import com.marklogic.mgmt.api.database.Database; import com.marklogic.mgmt.resource.databases.DatabaseManager; diff --git a/src/main/java/com/marklogic/appdeployer/command/databases/DeployOtherDatabasesCommand.java b/src/main/java/com/marklogic/appdeployer/command/databases/DeployOtherDatabasesCommand.java index 75fd9119..36ead363 100644 --- a/src/main/java/com/marklogic/appdeployer/command/databases/DeployOtherDatabasesCommand.java +++ b/src/main/java/com/marklogic/appdeployer/command/databases/DeployOtherDatabasesCommand.java @@ -249,7 +249,7 @@ protected List mergeDatabasePlanFiles(CommandContext context, Data ObjectReader objectReader = ObjectMapperFactory.getObjectMapper().readerFor(Database.class); List databasePlanList = new ArrayList<>(); - databasePlans.getDatabasePlanMap().values().forEach(ref -> databasePlanList.add(ref)); + databasePlanList.addAll(databasePlans.getDatabasePlanMap().values()); DatabasePlan testDatabasePlan = null; diff --git a/src/main/java/com/marklogic/appdeployer/command/databases/DeploySubDatabasesCommand.java b/src/main/java/com/marklogic/appdeployer/command/databases/DeploySubDatabasesCommand.java index e14c6aa3..63d8f075 100644 --- a/src/main/java/com/marklogic/appdeployer/command/databases/DeploySubDatabasesCommand.java +++ b/src/main/java/com/marklogic/appdeployer/command/databases/DeploySubDatabasesCommand.java @@ -37,7 +37,7 @@ public void execute(CommandContext context) { } if (subdbDir.exists()) { - List subDbNames = new ArrayList(); + List subDbNames = new ArrayList<>(); for (File subDatabaseFile : listFilesInDirectory(subdbDir)) { logger.info(format("Processing sub-database for %s found in file: %s", superDatabaseName, subDatabaseFile.getAbsolutePath())); diff --git a/src/main/java/com/marklogic/appdeployer/command/flexrep/DeployTargetsCommand.java b/src/main/java/com/marklogic/appdeployer/command/flexrep/DeployTargetsCommand.java index 0d9e6ed0..02804f51 100644 --- a/src/main/java/com/marklogic/appdeployer/command/flexrep/DeployTargetsCommand.java +++ b/src/main/java/com/marklogic/appdeployer/command/flexrep/DeployTargetsCommand.java @@ -1,18 +1,14 @@ package com.marklogic.appdeployer.command.flexrep; -import java.io.File; - import com.marklogic.appdeployer.AppConfig; import com.marklogic.appdeployer.ConfigDir; import com.marklogic.appdeployer.command.AbstractCommand; import com.marklogic.appdeployer.command.CommandContext; import com.marklogic.appdeployer.command.SortOrderConstants; -import com.marklogic.mgmt.ManageClient; import com.marklogic.mgmt.SaveReceipt; import com.marklogic.mgmt.resource.flexrep.TargetManager; import java.io.File; -import java.net.URI; /** * The directory structure for this is a bit different from most command. Since targets belong to a certain flexrep diff --git a/src/main/java/com/marklogic/appdeployer/command/forests/DistributedReplicaBuilderStrategy.java b/src/main/java/com/marklogic/appdeployer/command/forests/DistributedReplicaBuilderStrategy.java index 556b66eb..0b402eaf 100644 --- a/src/main/java/com/marklogic/appdeployer/command/forests/DistributedReplicaBuilderStrategy.java +++ b/src/main/java/com/marklogic/appdeployer/command/forests/DistributedReplicaBuilderStrategy.java @@ -20,7 +20,7 @@ public void buildReplicas(List forests, ForestPlan forestPlan, AppConfig final List hostNames = forestPlan.getReplicaHostNames(); final int replicaCount = forestPlan.getReplicaCount(); - HashMap> hostToForests = new HashMap>(); + HashMap> hostToForests = new HashMap<>(); for (Forest f : forests) { String host = f.getHost(); @@ -28,7 +28,7 @@ public void buildReplicas(List forests, ForestPlan forestPlan, AppConfig hostToForests.get(host).add(f); } else { - ArrayList hostForests = new ArrayList(); + ArrayList hostForests = new ArrayList<>(); hostForests.add(f); hostToForests.put(host, hostForests); } @@ -41,7 +41,7 @@ public void buildReplicas(List forests, ForestPlan forestPlan, AppConfig // the forest lives. We also want to have the hosts in different order as we assign replicas to hosts, so // that we don't overload any of them. So if we have five hosts, and we're looking to build replicas for // the forests on host 2, this list will be [host3, host4, host5, host1]. - List availableHosts = new ArrayList(); + List availableHosts = new ArrayList<>(); int hostIndex = hostNames.indexOf(host); if (hostIndex != -1 && hostIndex < hostNames.size()) { availableHosts.addAll(hostNames.subList(hostIndex + 1, hostNames.size())); diff --git a/src/main/java/com/marklogic/appdeployer/command/forests/ForestBuilder.java b/src/main/java/com/marklogic/appdeployer/command/forests/ForestBuilder.java index 6d4888c7..990494b4 100644 --- a/src/main/java/com/marklogic/appdeployer/command/forests/ForestBuilder.java +++ b/src/main/java/com/marklogic/appdeployer/command/forests/ForestBuilder.java @@ -125,17 +125,9 @@ protected Map>> existingForestsMap(ForestPlan f dataDirectory = ""; } - Map> dataDirectoryMap = existingForestsMap.get(host); - if (dataDirectoryMap == null) { - dataDirectoryMap = new LinkedHashMap<>(); - existingForestsMap.put(host, dataDirectoryMap); - } + Map> dataDirectoryMap = existingForestsMap.computeIfAbsent(host, k -> new LinkedHashMap<>()); - List list = dataDirectoryMap.get(dataDirectory); - if (list == null) { - list = new ArrayList<>(); - dataDirectoryMap.put(dataDirectory, list); - } + List list = dataDirectoryMap.computeIfAbsent(dataDirectory, k -> new ArrayList<>()); list.add(f); } return existingForestsMap; @@ -236,8 +228,7 @@ protected List determineReplicaDataDirectories(ForestPlan forestPlan, Ap Map> replicaDataDirectoryMap = appConfig.getDatabaseReplicaDataDirectories(); final String databaseName = forestPlan.getDatabaseName(); if (replicaDataDirectoryMap != null && replicaDataDirectoryMap.containsKey(databaseName)) { - replicaDataDirectories = new ArrayList<>(); - replicaDataDirectories.addAll(replicaDataDirectoryMap.get(databaseName)); + replicaDataDirectories = new ArrayList<>(replicaDataDirectoryMap.get(databaseName)); } return replicaDataDirectories; diff --git a/src/main/java/com/marklogic/appdeployer/command/forests/ForestNamingStrategy.java b/src/main/java/com/marklogic/appdeployer/command/forests/ForestNamingStrategy.java index bc2397e5..ca66b3ea 100644 --- a/src/main/java/com/marklogic/appdeployer/command/forests/ForestNamingStrategy.java +++ b/src/main/java/com/marklogic/appdeployer/command/forests/ForestNamingStrategy.java @@ -1,7 +1,6 @@ package com.marklogic.appdeployer.command.forests; import com.marklogic.appdeployer.AppConfig; -import com.marklogic.mgmt.api.forest.Forest; public interface ForestNamingStrategy { diff --git a/src/main/java/com/marklogic/appdeployer/command/hosts/AssignHostsToGroupsCommand.java b/src/main/java/com/marklogic/appdeployer/command/hosts/AssignHostsToGroupsCommand.java index 35e3b679..6164daa5 100644 --- a/src/main/java/com/marklogic/appdeployer/command/hosts/AssignHostsToGroupsCommand.java +++ b/src/main/java/com/marklogic/appdeployer/command/hosts/AssignHostsToGroupsCommand.java @@ -5,10 +5,6 @@ import com.marklogic.appdeployer.command.AbstractUndoableCommand; import com.marklogic.appdeployer.command.CommandContext; import com.marklogic.appdeployer.command.SortOrderConstants; -import com.marklogic.mgmt.api.server.AppServicesServer; -import com.marklogic.mgmt.api.server.ManageServer; -import com.marklogic.mgmt.api.server.Server; -import com.marklogic.mgmt.resource.appservers.ServerManager; import com.marklogic.mgmt.resource.hosts.HostManager; public class AssignHostsToGroupsCommand extends AbstractUndoableCommand { diff --git a/src/main/java/com/marklogic/appdeployer/command/modules/DeleteModulesCommand.java b/src/main/java/com/marklogic/appdeployer/command/modules/DeleteModulesCommand.java index dc2da42e..90e1adc7 100644 --- a/src/main/java/com/marklogic/appdeployer/command/modules/DeleteModulesCommand.java +++ b/src/main/java/com/marklogic/appdeployer/command/modules/DeleteModulesCommand.java @@ -4,7 +4,6 @@ import com.marklogic.appdeployer.command.AbstractCommand; import com.marklogic.appdeployer.command.CommandContext; import com.marklogic.client.DatabaseClient; -import com.marklogic.client.DatabaseClientFactory; public class DeleteModulesCommand extends AbstractCommand { diff --git a/src/main/java/com/marklogic/appdeployer/command/temporal/DeployTemporalCollectionsCommand.java b/src/main/java/com/marklogic/appdeployer/command/temporal/DeployTemporalCollectionsCommand.java index b1d3ae33..724ae458 100644 --- a/src/main/java/com/marklogic/appdeployer/command/temporal/DeployTemporalCollectionsCommand.java +++ b/src/main/java/com/marklogic/appdeployer/command/temporal/DeployTemporalCollectionsCommand.java @@ -6,7 +6,6 @@ import com.marklogic.appdeployer.command.CommandContext; import com.marklogic.appdeployer.command.SortOrderConstants; import com.marklogic.mgmt.resource.ResourceManager; -import com.marklogic.mgmt.resource.temporal.TemporalAxesManager; import com.marklogic.mgmt.resource.temporal.TemporalCollectionManager; import java.io.File; diff --git a/src/main/java/com/marklogic/appdeployer/command/triggers/DeployTriggersCommand.java b/src/main/java/com/marklogic/appdeployer/command/triggers/DeployTriggersCommand.java index 1bc6241f..0d7cbc99 100644 --- a/src/main/java/com/marklogic/appdeployer/command/triggers/DeployTriggersCommand.java +++ b/src/main/java/com/marklogic/appdeployer/command/triggers/DeployTriggersCommand.java @@ -5,9 +5,7 @@ import com.marklogic.appdeployer.command.AbstractResourceCommand; import com.marklogic.appdeployer.command.CommandContext; import com.marklogic.appdeployer.command.SortOrderConstants; -import com.marklogic.mgmt.PayloadParser; import com.marklogic.mgmt.resource.ResourceManager; -import com.marklogic.mgmt.resource.databases.DatabaseManager; import com.marklogic.mgmt.resource.triggers.TriggerManager; import java.io.File; diff --git a/src/main/java/com/marklogic/appdeployer/command/viewschemas/DeployViewSchemasCommand.java b/src/main/java/com/marklogic/appdeployer/command/viewschemas/DeployViewSchemasCommand.java index dc0303c5..6b9e8a9a 100644 --- a/src/main/java/com/marklogic/appdeployer/command/viewschemas/DeployViewSchemasCommand.java +++ b/src/main/java/com/marklogic/appdeployer/command/viewschemas/DeployViewSchemasCommand.java @@ -1,7 +1,5 @@ package com.marklogic.appdeployer.command.viewschemas; -import java.io.File; - import com.marklogic.appdeployer.AppConfig; import com.marklogic.appdeployer.ConfigDir; import com.marklogic.appdeployer.command.AbstractResourceCommand; diff --git a/src/main/java/com/marklogic/appdeployer/export/Exporter.java b/src/main/java/com/marklogic/appdeployer/export/Exporter.java index a8d29536..a7918548 100644 --- a/src/main/java/com/marklogic/appdeployer/export/Exporter.java +++ b/src/main/java/com/marklogic/appdeployer/export/Exporter.java @@ -6,7 +6,6 @@ import com.marklogic.appdeployer.export.cpf.PipelineExporter; import com.marklogic.appdeployer.export.databases.DatabaseExporter; import com.marklogic.appdeployer.export.groups.GroupExporter; -import com.marklogic.appdeployer.export.impl.AbstractNamedResourceExporter; import com.marklogic.appdeployer.export.impl.CompositeResourceExporter; import com.marklogic.appdeployer.export.security.AmpExporter; import com.marklogic.appdeployer.export.security.PrivilegeExporter; diff --git a/src/main/java/com/marklogic/appdeployer/export/impl/CompositeResourceExporter.java b/src/main/java/com/marklogic/appdeployer/export/impl/CompositeResourceExporter.java index 74a7e710..aded49ac 100644 --- a/src/main/java/com/marklogic/appdeployer/export/impl/CompositeResourceExporter.java +++ b/src/main/java/com/marklogic/appdeployer/export/impl/CompositeResourceExporter.java @@ -7,6 +7,7 @@ import java.io.File; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; /** @@ -21,9 +22,7 @@ public class CompositeResourceExporter extends LoggingObject implements Resource public CompositeResourceExporter(ResourceExporter... resourceExporters) { this.resourceExporters = new ArrayList<>(); - for (ResourceExporter exporter : resourceExporters) { - this.resourceExporters.add(exporter); - } + this.resourceExporters.addAll(Arrays.asList(resourceExporters)); } public void add(ResourceExporter exporter) { diff --git a/src/main/java/com/marklogic/appdeployer/impl/AbstractAppDeployer.java b/src/main/java/com/marklogic/appdeployer/impl/AbstractAppDeployer.java index 79e40c98..0f9866bc 100644 --- a/src/main/java/com/marklogic/appdeployer/impl/AbstractAppDeployer.java +++ b/src/main/java/com/marklogic/appdeployer/impl/AbstractAppDeployer.java @@ -122,7 +122,7 @@ public void undeploy(AppConfig appConfig) { List commands = getCommands(); - List undoableCommands = new ArrayList(); + List undoableCommands = new ArrayList<>(); for (Command command : commands) { if (command instanceof UndoableCommand) { undoableCommands.add((UndoableCommand) command); diff --git a/src/main/java/com/marklogic/appdeployer/impl/SimpleAppDeployer.java b/src/main/java/com/marklogic/appdeployer/impl/SimpleAppDeployer.java index 9613bdd2..312a1d27 100644 --- a/src/main/java/com/marklogic/appdeployer/impl/SimpleAppDeployer.java +++ b/src/main/java/com/marklogic/appdeployer/impl/SimpleAppDeployer.java @@ -5,6 +5,7 @@ import com.marklogic.mgmt.admin.AdminManager; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; /** @@ -35,12 +36,10 @@ public SimpleAppDeployer(ManageClient manageClient, AdminManager adminManager, C */ protected void buildModifiableCommandList(Command... commandArray) { if (commandArray != null) { - commands = new ArrayList(commandArray.length); - for (Command c : commandArray) { - commands.add(c); - } + commands = new ArrayList<>(commandArray.length); + commands.addAll(Arrays.asList(commandArray)); } else { - commands = new ArrayList(); + commands = new ArrayList<>(); } } diff --git a/src/main/java/com/marklogic/appdeployer/util/ModulesWatcher.java b/src/main/java/com/marklogic/appdeployer/util/ModulesWatcher.java index f4e55083..c73adde4 100644 --- a/src/main/java/com/marklogic/appdeployer/util/ModulesWatcher.java +++ b/src/main/java/com/marklogic/appdeployer/util/ModulesWatcher.java @@ -12,7 +12,6 @@ import com.marklogic.client.ext.modulesloader.impl.DefaultModulesLoader; import com.marklogic.mgmt.util.SystemPropertySource; -import java.io.File; import java.util.List; /** diff --git a/src/main/java/com/marklogic/mgmt/ManageClient.java b/src/main/java/com/marklogic/mgmt/ManageClient.java index 18cb67f7..7a937a14 100644 --- a/src/main/java/com/marklogic/mgmt/ManageClient.java +++ b/src/main/java/com/marklogic/mgmt/ManageClient.java @@ -145,11 +145,11 @@ public ResponseEntity postForm(String path, String... params) { logRequest(path, "form", "POST"); HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); - MultiValueMap map = new LinkedMultiValueMap(); + MultiValueMap map = new LinkedMultiValueMap<>(); for (int i = 0; i < params.length; i += 2) { map.add(params[i], params[i + 1]); } - HttpEntity> entity = new HttpEntity>(map, headers); + HttpEntity> entity = new HttpEntity<>(map, headers); return restTemplate.exchange(buildUri(path), HttpMethod.POST, entity, String.class); } @@ -160,7 +160,7 @@ public String getXmlString(String path) { public Fragment getXml(String path, String... namespacePrefixesAndUris) { String xml = getXmlString(path); - List list = new ArrayList(); + List list = new ArrayList<>(); for (int i = 0; i < namespacePrefixesAndUris.length; i += 2) { list.add(Namespace.getNamespace(namespacePrefixesAndUris[i], namespacePrefixesAndUris[i + 1])); } @@ -174,7 +174,7 @@ public String getXmlStringAsSecurityUser(String path) { public Fragment getXmlAsSecurityUser(String path, String... namespacePrefixesAndUris) { String xml = getXmlStringAsSecurityUser(path); - List list = new ArrayList(); + List list = new ArrayList<>(); for (int i = 0; i < namespacePrefixesAndUris.length; i += 2) { list.add(Namespace.getNamespace(namespacePrefixesAndUris[i], namespacePrefixesAndUris[i + 1])); } @@ -235,7 +235,7 @@ public HttpEntity buildJsonEntity(String json) { if (manageConfig != null && manageConfig.isCleanJsonPayloads()) { json = cleanJsonPayload(json); } - return new HttpEntity(json, headers); + return new HttpEntity<>(json, headers); } /** @@ -261,7 +261,7 @@ protected String cleanJsonPayload(String payload) { public HttpEntity buildXmlEntity(String xml) { HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_XML); - return new HttpEntity(xml, headers); + return new HttpEntity<>(xml, headers); } protected void logRequest(String path, String contentType, String method) { diff --git a/src/main/java/com/marklogic/mgmt/admin/AdminManager.java b/src/main/java/com/marklogic/mgmt/admin/AdminManager.java index e38c0c3b..6f412280 100644 --- a/src/main/java/com/marklogic/mgmt/admin/AdminManager.java +++ b/src/main/java/com/marklogic/mgmt/admin/AdminManager.java @@ -63,7 +63,7 @@ public void init(String licenseKey, String licensee) { public boolean execute() { HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON); - HttpEntity entity = new HttpEntity(payload, headers); + HttpEntity entity = new HttpEntity<>(payload, headers); try { ResponseEntity response = restTemplate.exchange(uri, HttpMethod.POST, entity, String.class); logger.info("Initialization response: " + response); @@ -113,7 +113,7 @@ public void installAdmin(String username, String password, String realm) { public boolean execute() { HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON); - HttpEntity entity = new HttpEntity(payload, headers); + HttpEntity entity = new HttpEntity<>(payload, headers); try { ResponseEntity response = restTemplate.exchange(uri, HttpMethod.POST, entity, String.class); logger.info("Admin installation response: " + response); @@ -193,10 +193,10 @@ public boolean execute() { adminConfig.getUsername(), adminConfig.getPassword()); HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); - MultiValueMap map = new LinkedMultiValueMap(); + MultiValueMap map = new LinkedMultiValueMap<>(); map.add("xquery", xquery); - HttpEntity> entity = new HttpEntity>(map, - headers); + HttpEntity> entity = new HttpEntity<>(map, + headers); String url = format("http://%s:%d/v1/eval", adminConfig.getHost(), appServicesPort); if (logger.isInfoEnabled()) { logger.info("Setting SSL FIPS enabled: " + enabled); @@ -242,14 +242,14 @@ public byte[] postJoiningHostConfig(Fragment joiningHostConfig, String group, St HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); - MultiValueMap map = new LinkedMultiValueMap(); + MultiValueMap map = new LinkedMultiValueMap<>(); map.add("group", group); if(zone != null && !zone.isEmpty()){ map.add("zone", zone); } map.add("server-config", joiningHostConfig.getPrettyXml()); - HttpEntity> entity = new HttpEntity>(map, headers); + HttpEntity> entity = new HttpEntity<>(map, headers); URI url = adminConfig.buildUri("/admin/v1/cluster-config"); ResponseEntity bytes = restTemplate.exchange(url, HttpMethod.POST, entity, byte[].class); @@ -268,7 +268,7 @@ public void postClustConfigToJoiningHost(byte[] clusterConfigZipBytes) { URI clusterConfigUri = adminConfig.buildUri("/admin/v1/cluster-config"); - HttpEntity resourceEntity = new HttpEntity(new ByteArrayResource(clusterConfigZipBytes), headers); + HttpEntity resourceEntity = new HttpEntity<>(new ByteArrayResource(clusterConfigZipBytes), headers); ResponseEntity response = restTemplate.exchange(clusterConfigUri, HttpMethod.POST, resourceEntity, String.class); if(response.getStatusCode().value() == 202){ waitForRestart(); diff --git a/src/main/java/com/marklogic/mgmt/admin/DefaultAdminConfigFactory.java b/src/main/java/com/marklogic/mgmt/admin/DefaultAdminConfigFactory.java index 531034d5..06c2a836 100644 --- a/src/main/java/com/marklogic/mgmt/admin/DefaultAdminConfigFactory.java +++ b/src/main/java/com/marklogic/mgmt/admin/DefaultAdminConfigFactory.java @@ -1,6 +1,5 @@ package com.marklogic.mgmt.admin; -import com.marklogic.mgmt.ManageConfig; import com.marklogic.mgmt.util.PropertySource; import com.marklogic.mgmt.util.PropertySourceFactory; diff --git a/src/main/java/com/marklogic/mgmt/api/API.java b/src/main/java/com/marklogic/mgmt/api/API.java index 353342df..04a10ff0 100644 --- a/src/main/java/com/marklogic/mgmt/api/API.java +++ b/src/main/java/com/marklogic/mgmt/api/API.java @@ -34,6 +34,7 @@ import java.io.IOException; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; /** @@ -243,9 +244,7 @@ public ProtectedPath protectedPath(String pathExpression) { public QueryRoleset queryRoleset(String... roleNames) { List names = new ArrayList<>(); - for (String name : roleNames) { - names.add(name); - } + names.addAll(Arrays.asList(roleNames)); QueryRoleset roleset = new QueryRoleset(); roleset.setApi(this); roleset.setRoleName(names); diff --git a/src/main/java/com/marklogic/mgmt/api/group/Group.java b/src/main/java/com/marklogic/mgmt/api/group/Group.java index f55fbe44..ef63cd2e 100644 --- a/src/main/java/com/marklogic/mgmt/api/group/Group.java +++ b/src/main/java/com/marklogic/mgmt/api/group/Group.java @@ -232,9 +232,7 @@ public void addEvents(String... events) { if (event == null) { event = new ArrayList<>(); } - for (String e : events) { - event.add(e); - } + event.addAll(Arrays.asList(events)); } public void removeEvents(String... events) { diff --git a/src/main/java/com/marklogic/mgmt/api/security/Amp.java b/src/main/java/com/marklogic/mgmt/api/security/Amp.java index b3c144ad..8dcf1c07 100644 --- a/src/main/java/com/marklogic/mgmt/api/security/Amp.java +++ b/src/main/java/com/marklogic/mgmt/api/security/Amp.java @@ -53,7 +53,7 @@ public String[] getResourceUrlParams() { public void addRole(String r) { if (role == null) { - role = new ArrayList(); + role = new ArrayList<>(); } role.add(r); } diff --git a/src/main/java/com/marklogic/mgmt/api/security/Role.java b/src/main/java/com/marklogic/mgmt/api/security/Role.java index 35758e54..0f417206 100644 --- a/src/main/java/com/marklogic/mgmt/api/security/Role.java +++ b/src/main/java/com/marklogic/mgmt/api/security/Role.java @@ -107,7 +107,7 @@ public void addExternalName(String name) { public void addRole(String r) { if (role == null) { - role = new ArrayList(); + role = new ArrayList<>(); } role.add(r); } @@ -128,7 +128,7 @@ public void addPrivilege(RolePrivilege priv) { public void addCollection(String c) { if (collection == null) { - collection = new ArrayList(); + collection = new ArrayList<>(); } collection.add(c); } diff --git a/src/main/java/com/marklogic/mgmt/api/security/User.java b/src/main/java/com/marklogic/mgmt/api/security/User.java index 40367a24..430af721 100644 --- a/src/main/java/com/marklogic/mgmt/api/security/User.java +++ b/src/main/java/com/marklogic/mgmt/api/security/User.java @@ -59,7 +59,7 @@ public void addExternalName(String name) { public void addRole(String r) { if (role == null) { - role = new ArrayList(); + role = new ArrayList<>(); } role.add(r); } @@ -73,7 +73,7 @@ public void addPermission(Permission p) { public void addCollection(String c) { if (collection == null) { - collection = new ArrayList(); + collection = new ArrayList<>(); } collection.add(c); } diff --git a/src/main/java/com/marklogic/mgmt/resource/AbstractResourceManager.java b/src/main/java/com/marklogic/mgmt/resource/AbstractResourceManager.java index 12683822..73a4d12a 100644 --- a/src/main/java/com/marklogic/mgmt/resource/AbstractResourceManager.java +++ b/src/main/java/com/marklogic/mgmt/resource/AbstractResourceManager.java @@ -200,22 +200,24 @@ public void deleteAtPath(String path) { */ protected String appendParamsAndValuesToPath(String path, String... paramsAndValues) { if (paramsAndValues != null && paramsAndValues.length > 0) { + StringBuilder pathBuilder = new StringBuilder(path); if (path.contains("?")) { - path += "&"; + pathBuilder.append("&"); } else { - path += "?"; + pathBuilder.append("?"); } - for (int i = 0; i < paramsAndValues.length; i += 2) { + for (int i = 0; i < paramsAndValues.length; i += 2) { String name = paramsAndValues[i]; String value = paramsAndValues[i + 1]; if (name != null && value != null) { if (i > 0) { - path += "&"; + pathBuilder.append("&"); } - path += name + "=" + value; + pathBuilder.append(name).append("=").append(value); } } - } + path = pathBuilder.toString(); + } return path; } diff --git a/src/main/java/com/marklogic/mgmt/resource/appservers/ServerManager.java b/src/main/java/com/marklogic/mgmt/resource/appservers/ServerManager.java index c669e74d..3e74973a 100644 --- a/src/main/java/com/marklogic/mgmt/resource/appservers/ServerManager.java +++ b/src/main/java/com/marklogic/mgmt/resource/appservers/ServerManager.java @@ -1,6 +1,5 @@ package com.marklogic.mgmt.resource.appservers; -import com.marklogic.mgmt.SaveReceipt; import com.marklogic.mgmt.resource.AbstractResourceManager; import com.marklogic.mgmt.ManageClient; import com.marklogic.rest.util.Fragment; diff --git a/src/main/java/com/marklogic/mgmt/resource/databases/DatabaseManager.java b/src/main/java/com/marklogic/mgmt/resource/databases/DatabaseManager.java index f119b9a0..fc276803 100644 --- a/src/main/java/com/marklogic/mgmt/resource/databases/DatabaseManager.java +++ b/src/main/java/com/marklogic/mgmt/resource/databases/DatabaseManager.java @@ -101,14 +101,14 @@ public void detachSubDatabases(String databaseIdOrName){ * @param subDbNames */ public void attachSubDatabases(String databaseIdOrName, List subDbNames){ - String payload = format("{\"database-name\":\"%s\", \"subdatabase\": [", databaseIdOrName); + StringBuilder payload = new StringBuilder(format("{\"database-name\":\"%s\", \"subdatabase\": [", databaseIdOrName)); for(int index = 0; index < subDbNames.size(); index++){ - if(index > 0){ payload += ","; } - payload += format("{\"database-name\":\"%s\"}", subDbNames.get(index)); + if(index > 0){ payload.append(","); } + payload.append(format("{\"database-name\":\"%s\"}", subDbNames.get(index))); } - payload += "]}"; + payload.append("]}"); logger.info("Attaching sub-databases to database: " + databaseIdOrName + ", using configured payload: " + payload); - save(payload); + save(payload.toString()); logger.info("Finished attaching sub-databases to database: " + databaseIdOrName); } diff --git a/src/main/java/com/marklogic/mgmt/resource/forests/ForestManager.java b/src/main/java/com/marklogic/mgmt/resource/forests/ForestManager.java index 9150a4bf..d81cf8d7 100644 --- a/src/main/java/com/marklogic/mgmt/resource/forests/ForestManager.java +++ b/src/main/java/com/marklogic/mgmt/resource/forests/ForestManager.java @@ -4,7 +4,6 @@ import com.marklogic.mgmt.resource.AbstractResourceManager; import com.marklogic.mgmt.ManageClient; import com.marklogic.rest.util.Fragment; -import org.springframework.web.client.HttpClientErrorException; import java.util.HashMap; import java.util.Iterator; @@ -141,21 +140,21 @@ public String getHostId(String forestIdOrName) { * A map where each key is a replica forest name, and its value is the host ID of that forest */ public void setReplicas(String forestIdOrName, Map replicaNamesAndHostIds) { - String json = "{\"forest-replica\":["; + StringBuilder json = new StringBuilder("{\"forest-replica\":["); boolean firstOne = true; for (String replicaName : replicaNamesAndHostIds.keySet()) { if (!firstOne) { - json += ","; + json.append(","); } String hostId = replicaNamesAndHostIds.get(replicaName); - json += format("{\"replica-name\":\"%s\", \"host\":\"%s\"}", replicaName, hostId); + json.append(format("{\"replica-name\":\"%s\", \"host\":\"%s\"}", replicaName, hostId)); firstOne = false; } - json += "]}"; + json.append("]}"); if (logger.isInfoEnabled()) { - logger.info(format("Setting replicas for forest %s, JSON: %s", forestIdOrName, json)); + logger.info(format("Setting replicas for forest %s, JSON: %s", forestIdOrName, json.toString())); } - getManageClient().putJson(getPropertiesPath(forestIdOrName), json); + getManageClient().putJson(getPropertiesPath(forestIdOrName), json.toString()); if (logger.isInfoEnabled()) { logger.info(format("Finished setting replicas for forest %s", forestIdOrName)); } @@ -168,7 +167,7 @@ public void setReplicas(String forestIdOrName, Map replicaNamesA * @param forestIdOrName */ public void setReplicasToNone(String forestIdOrName) { - setReplicas(forestIdOrName, new HashMap()); + setReplicas(forestIdOrName, new HashMap<>()); } /** diff --git a/src/main/java/com/marklogic/mgmt/resource/groups/GroupManager.java b/src/main/java/com/marklogic/mgmt/resource/groups/GroupManager.java index d29e87d3..9f5bd995 100644 --- a/src/main/java/com/marklogic/mgmt/resource/groups/GroupManager.java +++ b/src/main/java/com/marklogic/mgmt/resource/groups/GroupManager.java @@ -26,7 +26,7 @@ protected boolean useSecurityUser() { @Override public DeleteReceipt delete(String payload, String... resourceUrlParams) { String resourceId = getResourceId(payload); - if (resourceId != null && resourceId.toUpperCase().equals("DEFAULT")) { + if (resourceId != null && resourceId.equalsIgnoreCase("DEFAULT")) { return new DeleteReceipt(resourceId, null, false); } return super.delete(payload); diff --git a/src/main/java/com/marklogic/mgmt/resource/security/AmpManager.java b/src/main/java/com/marklogic/mgmt/resource/security/AmpManager.java index 6c0236d2..672ca8cb 100644 --- a/src/main/java/com/marklogic/mgmt/resource/security/AmpManager.java +++ b/src/main/java/com/marklogic/mgmt/resource/security/AmpManager.java @@ -96,7 +96,7 @@ public boolean ampExists(ResourcesFragment resources, String localName, String d @Override protected String[] getUpdateResourceParams(String payload) { - List params = new ArrayList(); + List params = new ArrayList<>(); AmpParams ampParams = getAmpParams(payload); params.add("document-uri"); params.add(ampParams.documentUri); @@ -121,7 +121,7 @@ protected String[] getUpdateResourceParams(String payload) { */ @Override protected String[] getDeleteResourceParams(String payload) { - List params = new ArrayList(); + List params = new ArrayList<>(); AmpParams ampParams = getAmpParams(payload); params.add("document-uri"); params.add(ampParams.documentUri); diff --git a/src/main/java/com/marklogic/mgmt/resource/security/CertificateAuthorityManager.java b/src/main/java/com/marklogic/mgmt/resource/security/CertificateAuthorityManager.java index 4d1e1b9c..3ad27b90 100644 --- a/src/main/java/com/marklogic/mgmt/resource/security/CertificateAuthorityManager.java +++ b/src/main/java/com/marklogic/mgmt/resource/security/CertificateAuthorityManager.java @@ -24,7 +24,7 @@ public ResponseEntity create(String payload) { HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.TEXT_PLAIN); - HttpEntity entity = new HttpEntity(payload, headers); + HttpEntity entity = new HttpEntity<>(payload, headers); ResponseEntity response = t.exchange(manageClient.buildUri("/manage/v2/certificate-authorities"), HttpMethod.POST, entity, String.class); return response; diff --git a/src/main/java/com/marklogic/mgmt/selector/MapResourceSelection.java b/src/main/java/com/marklogic/mgmt/selector/MapResourceSelection.java index b0acb2bf..e1b5698a 100644 --- a/src/main/java/com/marklogic/mgmt/selector/MapResourceSelection.java +++ b/src/main/java/com/marklogic/mgmt/selector/MapResourceSelection.java @@ -1,7 +1,5 @@ package com.marklogic.mgmt.selector; -import com.marklogic.mgmt.api.security.Amp; - import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -21,11 +19,7 @@ public class MapResourceSelection implements ResourceSelection { * @param value */ public void select(String type, String value) { - List names = selections.get(type); - if (names == null) { - names = new ArrayList<>(); - selections.put(type, names); - } + List names = selections.computeIfAbsent(type, k -> new ArrayList<>()); names.add(value); } diff --git a/src/main/java/com/marklogic/mgmt/template/group/GroupTemplateBuilder.java b/src/main/java/com/marklogic/mgmt/template/group/GroupTemplateBuilder.java index f1d045d0..395accc4 100644 --- a/src/main/java/com/marklogic/mgmt/template/group/GroupTemplateBuilder.java +++ b/src/main/java/com/marklogic/mgmt/template/group/GroupTemplateBuilder.java @@ -1,6 +1,5 @@ package com.marklogic.mgmt.template.group; -import com.marklogic.mgmt.api.Resource; import com.marklogic.mgmt.api.group.Group; import com.marklogic.mgmt.template.GenericTemplateBuilder; diff --git a/src/main/java/com/marklogic/mgmt/template/security/AmpTemplateBuilder.java b/src/main/java/com/marklogic/mgmt/template/security/AmpTemplateBuilder.java index c3e1296d..89281e53 100644 --- a/src/main/java/com/marklogic/mgmt/template/security/AmpTemplateBuilder.java +++ b/src/main/java/com/marklogic/mgmt/template/security/AmpTemplateBuilder.java @@ -1,6 +1,5 @@ package com.marklogic.mgmt.template.security; -import com.marklogic.mgmt.api.Resource; import com.marklogic.mgmt.api.security.Amp; import com.marklogic.mgmt.template.GenericTemplateBuilder; diff --git a/src/main/java/com/marklogic/rest/util/Fragment.java b/src/main/java/com/marklogic/rest/util/Fragment.java index c837467e..e9a35dc0 100644 --- a/src/main/java/com/marklogic/rest/util/Fragment.java +++ b/src/main/java/com/marklogic/rest/util/Fragment.java @@ -12,6 +12,7 @@ import java.io.StringReader; import java.util.ArrayList; +import java.util.Arrays; import java.util.HashMap; import java.util.List; @@ -28,7 +29,7 @@ public Fragment(Fragment other) { public Fragment(String xml, Namespace... namespaces) { try { internalDoc = new SAXBuilder().build(new StringReader(xml)); - List list = new ArrayList(); + List list = new ArrayList<>(); list.add(Namespace.getNamespace("arp", "http://marklogic.com/manage/alert-rule/properties")); list.add(Namespace.getNamespace("c", "http://marklogic.com/manage/clusters")); list.add(Namespace.getNamespace("cert", "http://marklogic.com/xdmp/x509")); @@ -47,9 +48,7 @@ public Fragment(String xml, Namespace... namespaces) { list.add(Namespace.getNamespace("sec", "http://marklogic.com/xdmp/security")); list.add(Namespace.getNamespace("ts", "http://marklogic.com/manage/task-server")); list.add(Namespace.getNamespace("t", "http://marklogic.com/manage/tasks")); - for (Namespace n : namespaces) { - list.add(n); - } + list.addAll(Arrays.asList(namespaces)); this.namespaces = list.toArray(new Namespace[] {}); } catch (Exception e) { throw new RuntimeException(String.format("Unable to parse XML, cause: %s; XML: %s", e.getMessage(), xml), e); @@ -69,7 +68,7 @@ public boolean elementExists(String xpath) { } public List getElementValues(String xpath) { - List values = new ArrayList(); + List values = new ArrayList<>(); for (Element el : evaluateForElements(xpath)) { values.add(el.getText()); } @@ -87,7 +86,7 @@ public List getElements(String xpath) { protected List evaluateForElements(String xpath) { XPathFactory f = XPathFactory.instance(); - XPathExpression expr = f.compile(xpath, Filters.element(), new HashMap(), namespaces); + XPathExpression expr = f.compile(xpath, Filters.element(), new HashMap<>(), namespaces); return expr.evaluate(internalDoc); } diff --git a/src/main/java/com/marklogic/rest/util/ResourcesFragment.java b/src/main/java/com/marklogic/rest/util/ResourcesFragment.java index 01d58233..a7407212 100644 --- a/src/main/java/com/marklogic/rest/util/ResourcesFragment.java +++ b/src/main/java/com/marklogic/rest/util/ResourcesFragment.java @@ -1,7 +1,5 @@ package com.marklogic.rest.util; -import java.util.List; - import org.jdom2.Element; import org.jdom2.Namespace; diff --git a/src/test/java/com/marklogic/appdeployer/command/ReplaceTokensTest.java b/src/test/java/com/marklogic/appdeployer/command/ReplaceTokensTest.java index c9908f6a..43f95f23 100644 --- a/src/test/java/com/marklogic/appdeployer/command/ReplaceTokensTest.java +++ b/src/test/java/com/marklogic/appdeployer/command/ReplaceTokensTest.java @@ -8,7 +8,6 @@ import com.marklogic.client.DatabaseClient; import com.marklogic.client.ext.modulesloader.impl.DefaultModulesLoader; import com.marklogic.client.io.BytesHandle; -import com.marklogic.client.io.StringHandle; import org.junit.jupiter.api.Test; import java.io.File; diff --git a/src/test/java/com/marklogic/appdeployer/command/databases/ClearDatabaseTest.java b/src/test/java/com/marklogic/appdeployer/command/databases/ClearDatabaseTest.java index c427993a..72da509a 100644 --- a/src/test/java/com/marklogic/appdeployer/command/databases/ClearDatabaseTest.java +++ b/src/test/java/com/marklogic/appdeployer/command/databases/ClearDatabaseTest.java @@ -7,6 +7,7 @@ import com.marklogic.appdeployer.command.restapis.DeployRestApiServersCommand; import com.marklogic.mgmt.resource.databases.DatabaseManager; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; public class ClearDatabaseTest extends AbstractAppDeployerTest { @@ -34,6 +35,6 @@ public void modulesDatabase() { mgr.clearDatabase(appConfig.getModulesDatabaseName()); String uris = newModulesXccTemplate().executeAdhocQuery("cts:uris((), (), cts:and-query(()))"); - assertTrue(uris.length() == 0, "The modules database should have been cleared"); + assertEquals(0, uris.length(), "The modules database should have been cleared"); } } diff --git a/src/test/java/com/marklogic/appdeployer/command/forests/CreateForestsOnSpecificHostsTest.java b/src/test/java/com/marklogic/appdeployer/command/forests/CreateForestsOnSpecificHostsTest.java index 198a1cdb..ded65891 100644 --- a/src/test/java/com/marklogic/appdeployer/command/forests/CreateForestsOnSpecificHostsTest.java +++ b/src/test/java/com/marklogic/appdeployer/command/forests/CreateForestsOnSpecificHostsTest.java @@ -6,7 +6,6 @@ import com.marklogic.mgmt.util.SimplePropertySource; import static org.junit.jupiter.api.Assertions.*; import org.junit.jupiter.api.Test; -import org.springframework.core.env.PropertiesPropertySource; import java.util.*; diff --git a/src/test/java/com/marklogic/appdeployer/command/hosts/AssignHostsToGroupsTest.java b/src/test/java/com/marklogic/appdeployer/command/hosts/AssignHostsToGroupsTest.java index 8abede47..3100b5f1 100644 --- a/src/test/java/com/marklogic/appdeployer/command/hosts/AssignHostsToGroupsTest.java +++ b/src/test/java/com/marklogic/appdeployer/command/hosts/AssignHostsToGroupsTest.java @@ -27,7 +27,7 @@ public void assignSingleHostToExistingGroup() { final String otherGroup = "sample-app-other-group"; final String hostname = hostManager.getHostNames().get(0); - Map hostGroups = new HashMap(); + Map hostGroups = new HashMap<>(); hostGroups.put(hostname, otherGroup); appConfig.setHostGroups(hostGroups); diff --git a/src/test/java/com/marklogic/appdeployer/command/security/DontUndeployCertainRolesTest.java b/src/test/java/com/marklogic/appdeployer/command/security/DontUndeployCertainRolesTest.java index 9134d2b4..b5f955f3 100644 --- a/src/test/java/com/marklogic/appdeployer/command/security/DontUndeployCertainRolesTest.java +++ b/src/test/java/com/marklogic/appdeployer/command/security/DontUndeployCertainRolesTest.java @@ -2,7 +2,6 @@ import com.marklogic.appdeployer.AbstractAppDeployerTest; import com.marklogic.mgmt.resource.security.RoleManager; -import com.marklogic.mgmt.resource.security.UserManager; import org.junit.jupiter.api.Test; import java.io.File; diff --git a/src/test/java/com/marklogic/appdeployer/command/security/ManageAmpsTest.java b/src/test/java/com/marklogic/appdeployer/command/security/ManageAmpsTest.java index 267ff3bf..9b15fda5 100644 --- a/src/test/java/com/marklogic/appdeployer/command/security/ManageAmpsTest.java +++ b/src/test/java/com/marklogic/appdeployer/command/security/ManageAmpsTest.java @@ -8,7 +8,6 @@ import com.marklogic.client.DatabaseClient; import com.marklogic.client.DatabaseClientFactory; import com.marklogic.mgmt.ManageClient; -import com.marklogic.mgmt.ManageConfig; import com.marklogic.mgmt.resource.ResourceManager; import com.marklogic.mgmt.resource.security.AmpManager; import org.junit.jupiter.api.Test; diff --git a/src/test/java/com/marklogic/junit/CustomDifferenceListener.java b/src/test/java/com/marklogic/junit/CustomDifferenceListener.java index d698921d..278078ca 100644 --- a/src/test/java/com/marklogic/junit/CustomDifferenceListener.java +++ b/src/test/java/com/marklogic/junit/CustomDifferenceListener.java @@ -15,7 +15,7 @@ */ public class CustomDifferenceListener extends LoggingObject implements DifferenceListener { - private List differences = new ArrayList(); + private List differences = new ArrayList<>(); @Override public int differenceFound(Difference difference) { diff --git a/src/test/java/com/marklogic/junit/Fragment.java b/src/test/java/com/marklogic/junit/Fragment.java index 378d1ab3..9a1f1a66 100644 --- a/src/test/java/com/marklogic/junit/Fragment.java +++ b/src/test/java/com/marklogic/junit/Fragment.java @@ -76,7 +76,7 @@ public Fragment getFragment(String xpath) { public List getFragments(String xpath) { List elements = evaluateForElements(xpath); - List fragments = new ArrayList(); + List fragments = new ArrayList<>(); for (Element el : elements) { fragments.add(new Fragment(el, this.namespaces)); } @@ -138,7 +138,7 @@ public void assertElementCount(String message, String xpath, int count) { private void assertElementListHasOneElement(String message, List list, String xpath) { int size = list.size(); - assertTrue(size == 1, message + ";\nExpected 1 element, but found " + size + "; xpath: " + xpath); + assertEquals(1, size, message + ";\nExpected 1 element, but found " + size + "; xpath: " + xpath); } public void assertElementExists(String xpath) { @@ -162,7 +162,7 @@ public void assertElementMissing(String message, String xpath) { protected List evaluateForElements(String xpath) { XPathFactory f = XPathFactory.instance(); - XPathExpression expr = f.compile(xpath, Filters.element(), new HashMap(), namespaces); + XPathExpression expr = f.compile(xpath, Filters.element(), new HashMap<>(), namespaces); return expr.evaluate(internalDoc); } From 4f076130701fc04cda19b5314e8a55f06c4c5f03 Mon Sep 17 00:00:00 2001 From: Ryan Dew Date: Wed, 23 Mar 2022 10:45:38 -0700 Subject: [PATCH 3/7] Update dependency patch versions --- build.gradle | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/build.gradle b/build.gradle index ec8f7242..6a2ce601 100644 --- a/build.gradle +++ b/build.gradle @@ -20,13 +20,13 @@ repositories { dependencies { api 'com.marklogic:ml-javaclient-util:4.3.0' - api 'org.springframework:spring-web:5.3.9' - // Match the version of what Java Client 5.5.0 expects - api 'com.fasterxml.jackson.core:jackson-databind:2.11.1' + api 'org.springframework:spring-web:5.3.17' + // Match the version of what Java Client 5.5.2 expects + api 'com.fasterxml.jackson.core:jackson-databind:2.12.4' implementation 'jaxen:jaxen:1.2.0' implementation 'org.apache.httpcomponents:httpclient:4.5.13' - implementation 'org.jdom:jdom2:2.0.6' + implementation 'org.jdom:jdom2:2.0.6.1' // Forcing httpclient to use this to address https://snyk.io/vuln/SNYK-JAVA-COMMONSCODEC-561518 implementation 'commons-codec:commons-codec:1.15' @@ -35,7 +35,7 @@ dependencies { implementation "org.apache.commons:commons-lang3:3.12.0" // For PreviewInterceptor; can be excluded if that feature is not used - implementation("com.flipkart.zjsonpatch:zjsonpatch:0.4.11") { + implementation("com.flipkart.zjsonpatch:zjsonpatch:0.4.12") { // Prefer the api version declared above exclude module: "jackson-databind" } @@ -43,21 +43,21 @@ dependencies { // Required for Java 11 implementation "javax.xml.bind:jaxb-api:2.3.1" implementation "com.sun.xml.bind:jaxb-core:2.3.0.1" - implementation "com.sun.xml.bind:jaxb-impl:2.3.3" + implementation "com.sun.xml.bind:jaxb-impl:2.3.6" // Don't want to include this in the published jar, just the executable jar - compileOnly "com.beust:jcommander:1.78" - compileOnly "ch.qos.logback:logback-classic:1.2.4" + compileOnly "com.beust:jcommander:1.82" + compileOnly "ch.qos.logback:logback-classic:1.2.11" testImplementation "org.junit.jupiter:junit-jupiter:5.7.2" - testImplementation 'org.springframework:spring-test:5.3.9' + testImplementation 'org.springframework:spring-test:5.3.17' testImplementation 'commons-io:commons-io:2.11.0' testImplementation 'xmlunit:xmlunit:1.6' // Forcing Spring to use logback for testing instead of commons-logging - testImplementation "ch.qos.logback:logback-classic:1.2.4" - testImplementation "org.slf4j:jcl-over-slf4j:1.7.31" - testImplementation "org.slf4j:slf4j-api:1.7.31" + testImplementation "ch.qos.logback:logback-classic:1.2.11" + testImplementation "org.slf4j:jcl-over-slf4j:1.7.36" + testImplementation "org.slf4j:slf4j-api:1.7.36" } // This ensures that Gradle includes in the published jar any non-java files under src/main/java From b6d5e28f9d336da927ade7080245720367c3d354 Mon Sep 17 00:00:00 2001 From: Ryan Dew Date: Thu, 31 Mar 2022 15:04:42 -0700 Subject: [PATCH 4/7] Update Spring patch for Spring4Shell --- build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index 6a2ce601..8bd91712 100644 --- a/build.gradle +++ b/build.gradle @@ -20,7 +20,7 @@ repositories { dependencies { api 'com.marklogic:ml-javaclient-util:4.3.0' - api 'org.springframework:spring-web:5.3.17' + api 'org.springframework:spring-web:5.3.18' // Match the version of what Java Client 5.5.2 expects api 'com.fasterxml.jackson.core:jackson-databind:2.12.4' @@ -50,7 +50,7 @@ dependencies { compileOnly "ch.qos.logback:logback-classic:1.2.11" testImplementation "org.junit.jupiter:junit-jupiter:5.7.2" - testImplementation 'org.springframework:spring-test:5.3.17' + testImplementation 'org.springframework:spring-test:5.3.18' testImplementation 'commons-io:commons-io:2.11.0' testImplementation 'xmlunit:xmlunit:1.6' From 1d47c3a45cbaa4a0d80424119d903ebe12ab87bf Mon Sep 17 00:00:00 2001 From: Ryan Dew Date: Thu, 31 Mar 2022 15:07:56 -0700 Subject: [PATCH 5/7] Update POM --- pom.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index f90821b9..113914d0 100644 --- a/pom.xml +++ b/pom.xml @@ -46,13 +46,13 @@ It is not intended to be used to build this project. org.springframework spring-web - 5.3.9 + 5.3.18 compile com.fasterxml.jackson.core jackson-databind - 2.11.1 + 2.12.4 compile @@ -70,7 +70,7 @@ It is not intended to be used to build this project. org.jdom jdom2 - 2.0.6 + 2.0.6.1 runtime @@ -88,7 +88,7 @@ It is not intended to be used to build this project. com.flipkart.zjsonpatch zjsonpatch - 0.4.11 + 0.4.12 runtime @@ -112,7 +112,7 @@ It is not intended to be used to build this project. com.sun.xml.bind jaxb-impl - 2.3.3 + 2.3.6 runtime From 62286d390dab3abc54c9d36210f02921a0e9f332 Mon Sep 17 00:00:00 2001 From: Ryan Dew Date: Thu, 31 Mar 2022 15:42:08 -0700 Subject: [PATCH 6/7] Update jackson-databind dependency --- build.gradle | 3 +-- pom.xml | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/build.gradle b/build.gradle index 8bd91712..55486b3a 100644 --- a/build.gradle +++ b/build.gradle @@ -21,8 +21,7 @@ repositories { dependencies { api 'com.marklogic:ml-javaclient-util:4.3.0' api 'org.springframework:spring-web:5.3.18' - // Match the version of what Java Client 5.5.2 expects - api 'com.fasterxml.jackson.core:jackson-databind:2.12.4' + api 'com.fasterxml.jackson.core:jackson-databind:2.13.2.2' implementation 'jaxen:jaxen:1.2.0' implementation 'org.apache.httpcomponents:httpclient:4.5.13' diff --git a/pom.xml b/pom.xml index 113914d0..c365ab94 100644 --- a/pom.xml +++ b/pom.xml @@ -52,7 +52,7 @@ It is not intended to be used to build this project. com.fasterxml.jackson.core jackson-databind - 2.12.4 + 2.13.2.2 compile From b7b9e8adebd2120bff6b3e46392f32b5818beaf7 Mon Sep 17 00:00:00 2001 From: Ryan Dew Date: Thu, 31 Mar 2022 21:04:02 -0700 Subject: [PATCH 7/7] Bump ml-app-deployer version to 4.3.2 --- build.gradle | 2 +- pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index 55486b3a..46d7cd78 100644 --- a/build.gradle +++ b/build.gradle @@ -8,7 +8,7 @@ plugins { } group = "com.marklogic" -version = "4.3.1" +version = "4.3.2" sourceCompatibility = "8" targetCompatibility = "8" diff --git a/pom.xml b/pom.xml index c365ab94..a9ad26fa 100644 --- a/pom.xml +++ b/pom.xml @@ -12,7 +12,7 @@ It is not intended to be used to build this project. 4.0.0 com.marklogic ml-app-deployer - 4.3.1 + 4.3.2 com.marklogic:ml-app-deployer Java client for the MarkLogic REST Management API and for deploying applications to MarkLogic https://github.com/marklogic-community/ml-app-deployer