From de8dc8f425b68f2b3bcf79153afab841ab50a36c Mon Sep 17 00:00:00 2001 From: Richard Cordovano Date: Sat, 11 Mar 2017 13:21:13 -0500 Subject: [PATCH] Make app coord svc namespace ext point --- ...va => AppCoordinationServiceNamespace.java} | 18 +++++++++--------- .../CoordinationService.java | 11 ++++++++++- 2 files changed, 19 insertions(+), 10 deletions(-) rename Core/src/org/sleuthkit/autopsy/coordinationservice/{CoordinationServiceNamespace.java => AppCoordinationServiceNamespace.java} (64%) diff --git a/Core/src/org/sleuthkit/autopsy/coordinationservice/CoordinationServiceNamespace.java b/Core/src/org/sleuthkit/autopsy/coordinationservice/AppCoordinationServiceNamespace.java similarity index 64% rename from Core/src/org/sleuthkit/autopsy/coordinationservice/CoordinationServiceNamespace.java rename to Core/src/org/sleuthkit/autopsy/coordinationservice/AppCoordinationServiceNamespace.java index 567dd38bc6..75f72acc00 100644 --- a/Core/src/org/sleuthkit/autopsy/coordinationservice/CoordinationServiceNamespace.java +++ b/Core/src/org/sleuthkit/autopsy/coordinationservice/AppCoordinationServiceNamespace.java @@ -1,7 +1,7 @@ /* * Autopsy Forensic Browser * - * Copyright 2016-2017 Basis Technology Corp. + * Copyright 2011-2017 Basis Technology Corp. * Contact: carrier sleuthkit org * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -19,15 +19,15 @@ package org.sleuthkit.autopsy.coordinationservice; /** - * Root node for Autopsy coordination service namespace. + * Interface for providers of application-level coordination service namespaces. */ -public final class CoordinationServiceNamespace { - private static final String ROOT = "autopsy"; +public interface AppCoordinationServiceNamespace { - public static String getRoot() { - return ROOT; - } + /** + * Gets the name of the root node of the namespace for the application. + * + * @return The name of the root node for the application namespace. + */ + public String getAppNamespaceRoot(); - private CoordinationServiceNamespace() { - } } diff --git a/Core/src/org/sleuthkit/autopsy/coordinationservice/CoordinationService.java b/Core/src/org/sleuthkit/autopsy/coordinationservice/CoordinationService.java index 907d278036..e2b083d678 100644 --- a/Core/src/org/sleuthkit/autopsy/coordinationservice/CoordinationService.java +++ b/Core/src/org/sleuthkit/autopsy/coordinationservice/CoordinationService.java @@ -19,7 +19,9 @@ package org.sleuthkit.autopsy.coordinationservice; import java.io.IOException; +import java.util.Collection; import java.util.HashMap; +import java.util.Iterator; import java.util.Map; import java.util.concurrent.TimeUnit; import org.apache.curator.RetryPolicy; @@ -34,6 +36,7 @@ import org.apache.zookeeper.KeeperException.NoNodeException; import org.apache.zookeeper.WatchedEvent; import org.apache.zookeeper.ZooDefs; import org.apache.zookeeper.ZooKeeper; +import org.openide.util.Lookup; import org.sleuthkit.autopsy.core.UserPreferences; /** @@ -92,7 +95,13 @@ public final class CoordinationService { * @return The name of the root node for the application namespace. */ public static String getAppNamespaceRoot() { - return DEFAULT_NAMESPACE_ROOT; + Collection providers = Lookup.getDefault().lookupAll(AppCoordinationServiceNamespace.class); + Iterator it = providers.iterator(); + if (it.hasNext()) { + return it.next().getAppNamespaceRoot(); + } else { + return DEFAULT_NAMESPACE_ROOT; + } } /**