import java.nio.file.Path;\r
import java.nio.file.Paths;\r
import java.security.CodeSource;\r
+import java.util.AbstractMap.SimpleEntry;\r
import java.util.ArrayList;\r
import java.util.Collections;\r
import java.util.HashSet;\r
import java.util.LinkedHashMap;\r
import java.util.List;\r
import java.util.Map;\r
+import java.util.Map.Entry;\r
import java.util.Set;\r
import java.util.function.Consumer;\r
import java.util.function.Predicate;\r
String jsonConfig = new String(Files.readAllBytes(Paths.get(configFilePath)));\r
BasicDBObject dbo = (BasicDBObject) JSONUtil.jsonToDbObject(jsonConfig);\r
BasicDBList scheduleJobs = NoSQLUtils.asDBList(dbo, "joblist");\r
+ ArrayList<Entry<String, BasicDBObject>> schedulesArraylist = new ArrayList<Entry<String, BasicDBObject>>();\r
+\r
scheduleJobs.forEach(o -> {\r
try {\r
+ boolean keyAlreadyContained = false;\r
BasicDBObject j = (BasicDBObject) o;\r
String template = j.getString("template");\r
String xml = loadTemplateXml(template);\r
j.put("xml", xml);\r
- schedules.put(template, j);\r
+\r
+ for (int index = 0; index < schedulesArraylist.size(); index++) {\r
+ if (schedulesArraylist.get(index).getKey().equals(template)) {\r
+ keyAlreadyContained = true;\r
+ throw new Exception("Key " + template + " is already contained in scheduled jobs!");\r
+ }\r
+ }\r
+\r
+ if (!keyAlreadyContained) {\r
+ schedulesArraylist.add(new SimpleEntry<String, BasicDBObject>(template, j));\r
+ }\r
} catch (Exception e) {\r
logger.error("Scheduled job error! {}", e.getMessage());\r
}\r
-\r
});\r
+\r
+ for (Entry<String, BasicDBObject> entry : schedulesArraylist) {\r
+ schedules.put(entry.getKey(), entry.getValue());\r
+ }\r
}\r
\r
private Set<File> getJavaFileList(Path path, String excludeFileName) {\r