Repository: incubator-edgent
Updated Branches:
  refs/heads/master 66b6861f5 -> 82dd45758


[Edgent-370] add static IotProvider.getPreferences()

Project: http://git-wip-us.apache.org/repos/asf/incubator-edgent/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-edgent/commit/6c434f29
Tree: http://git-wip-us.apache.org/repos/asf/incubator-edgent/tree/6c434f29
Diff: http://git-wip-us.apache.org/repos/asf/incubator-edgent/diff/6c434f29

Branch: refs/heads/master
Commit: 6c434f297424d3941ba5f719e9f08171a059ceb2
Parents: 66b6861
Author: Dale LaBossiere <dlab...@us.ibm.com>
Authored: Mon Jan 23 16:42:21 2017 -0500
Committer: Dale LaBossiere <dlab...@us.ibm.com>
Committed: Mon Jan 23 16:42:21 2017 -0500

----------------------------------------------------------------------
 .../edgent/providers/iot/IotProvider.java       | 24 ++++++++++++--------
 1 file changed, 15 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/6c434f29/providers/iot/src/main/java/org/apache/edgent/providers/iot/IotProvider.java
----------------------------------------------------------------------
diff --git 
a/providers/iot/src/main/java/org/apache/edgent/providers/iot/IotProvider.java 
b/providers/iot/src/main/java/org/apache/edgent/providers/iot/IotProvider.java
index 764bc7d..212b623 100644
--- 
a/providers/iot/src/main/java/org/apache/edgent/providers/iot/IotProvider.java
+++ 
b/providers/iot/src/main/java/org/apache/edgent/providers/iot/IotProvider.java
@@ -68,7 +68,7 @@ import com.google.gson.JsonObject;
  * <LI>{@link PublishSubscribeService publish-subscribe} - An instance of 
{@link ProviderPubSub}</LI>
  * <LI>preferences (optional) - An instance of {@code 
java.util.pref.Preferences} to store application
  * and service preferences. A {@code Preferences} node is created if the 
provider is created with
- * a name that is not {@code null}. if the preferences implementation supports 
persistence
+ * a name that is not {@code null}. If the preferences implementation supports 
persistence
  * then any preferences will be maintained across provider and JVM restarts 
when creating a
  * provider with the same name. The {@code Preferences} node is a user node.
  * </UL>
@@ -240,24 +240,30 @@ public class IotProvider implements TopologyProvider,
                 new ProviderPubSub());
     }
     
-    /**
-     * @throws BackingStoreException 
-     * 
-     */
     protected void registerPreferencesService() {
         if (getName() == null)
             return;
-        Preferences classNode = 
Preferences.userNodeForPackage(IotProvider.class);
-        Preferences providerNode = classNode.node(getName());
+        Preferences providerNode = getPreferences(getName());
+        getServices().addService(Preferences.class, providerNode);
         
         try {
             providerNode.flush();
-            getServices().addService(Preferences.class, providerNode);
         } catch (BackingStoreException e) {
-            // No preferences available
+            // TODO log that preference changes may not be persisted
             ;
         }
     }
+    
+    /**
+     * Get the Preferences node that will be used for the IotProvider with the 
specified name.
+     * @param providerName The value that will be passed into {@link 
IotProvider#IotProvider(String, TopologyProvider, DirectSubmitter, Function) 
IotProvider()}
+     * @return
+     */
+    public static Preferences getPreferences(String providerName) {
+      Preferences classNode = 
Preferences.userNodeForPackage(IotProvider.class);
+      Preferences providerNode = classNode.node(providerName);
+      return providerNode;
+    }
 
     protected JsonControlService getControlService() {
         return controlService;

Reply via email to