+ jobsByOwner.clear();
+ clearDatabase();
+ }
+
+ private void clearDatabase() {
+ try {
+ FileSystemUtils.deleteRecursively(Path.of(getDatabaseDirectory()));
+ Files.createDirectories(Paths.get(getDatabaseDirectory()));
+ } catch (IOException e) {
+ logger.warn("Could not delete database : {}", e.getMessage());
+ }
+ }
+
+ private void doPut(EiJob job) {
+ allEiJobs.put(job.getId(), job);
+ jobsByType.put(job.getTypeId(), job.getId(), job);
+ jobsByOwner.put(job.getOwner(), job.getId(), job);
+ }
+
+ private void storeJobInFile(EiJob job) {
+ try {
+ try (PrintStream out = new PrintStream(new FileOutputStream(getFile(job)))) {
+ out.print(gson.toJson(job));
+ }
+ } catch (Exception e) {
+ logger.warn("Could not store job: {} {}", job.getId(), e.getMessage());
+ }
+ }
+
+ private File getFile(EiJob job) {
+ return getPath(job).toFile();
+ }
+
+ private Path getPath(EiJob job) {
+ return Path.of(getDatabaseDirectory(), job.getId());
+ }
+
+ private String getDatabaseDirectory() {
+ return config.getVardataDirectory() + "/eijobs";