You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@edgent.apache.org by dl...@apache.org on 2017/01/24 16:05:43 UTC

[1/2] incubator-edgent git commit: [Edgent-370] add static IotProvider.getPreferences()

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 <dl...@us.ibm.com>
Authored: Mon Jan 23 16:42:21 2017 -0500
Committer: Dale LaBossiere <dl...@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;


[2/2] incubator-edgent git commit: add test of IotProvider.getProvider()

Posted by dl...@apache.org.
add test of IotProvider.getProvider()

fix testPreferences() to only remove the test's created preference nodes

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

Branch: refs/heads/master
Commit: 82dd4575882e005057d4c969f6e4e74f8da5ec4b
Parents: 6c434f2
Author: Dale LaBossiere <dl...@us.ibm.com>
Authored: Mon Jan 23 17:17:50 2017 -0500
Committer: Dale LaBossiere <dl...@us.ibm.com>
Committed: Mon Jan 23 17:17:50 2017 -0500

----------------------------------------------------------------------
 .../edgent/test/fvt/iot/IotProviderTest.java    | 23 ++++++++++++++------
 1 file changed, 16 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/82dd4575/test/fvtiot/src/test/java/org/apache/edgent/test/fvt/iot/IotProviderTest.java
----------------------------------------------------------------------
diff --git a/test/fvtiot/src/test/java/org/apache/edgent/test/fvt/iot/IotProviderTest.java b/test/fvtiot/src/test/java/org/apache/edgent/test/fvt/iot/IotProviderTest.java
index 170dd5d..a55562c 100644
--- a/test/fvtiot/src/test/java/org/apache/edgent/test/fvt/iot/IotProviderTest.java
+++ b/test/fvtiot/src/test/java/org/apache/edgent/test/fvt/iot/IotProviderTest.java
@@ -188,15 +188,23 @@ public class IotProviderTest {
     
     @Test
     public void testPreferences() throws BackingStoreException {
+      
+        String PP1 = this.getClass().getName() + "-PP1";
+        String PP2 = this.getClass().getName() + "-PP2";
         
-        Preferences.userNodeForPackage(IotProvider.class).removeNode();     
+        Preferences.userNodeForPackage(IotProvider.class).node(PP1).removeNode();     
+        Preferences.userNodeForPackage(IotProvider.class).node(PP2).removeNode();     
         
         {
-            IotProvider provider1 = new IotProvider("PP1", EchoIotDevice::new);
-            IotProvider provider2 = new IotProvider("PP2", EchoIotDevice::new);
+            Preferences pp1S = IotProvider.getPreferences(PP1);
+            assertNotNull(pp1S);
+            
+            IotProvider provider1 = new IotProvider(PP1, EchoIotDevice::new);
+            IotProvider provider2 = new IotProvider(PP2, EchoIotDevice::new);
 
             Preferences pp1 = provider1.getServices().getService(Preferences.class);
             assertNotNull(pp1);
+            assertSame(pp1, pp1S);
 
             Preferences pp2 = provider2.getServices().getService(Preferences.class);
             assertNotNull(pp2);
@@ -217,22 +225,23 @@ public class IotProviderTest {
             pp2.flush();
         }
         
-        // Create a new proivder with the same name
+        // Create a new provider with the same name
         // it should pick up the previously values.
         {
-            IotProvider provider1N = new IotProvider("PP1", EchoIotDevice::new);
+            IotProvider provider1N = new IotProvider(PP1, EchoIotDevice::new);
             Preferences pp1N = provider1N.getServices().getService(Preferences.class);
             assertNotNull(pp1N);
             assertEquals("one", pp1N.get("a", "unset"));
         }
         {
-            IotProvider provider2N = new IotProvider("PP2", EchoIotDevice::new);
+            IotProvider provider2N = new IotProvider(PP2, EchoIotDevice::new);
             Preferences pp2N = provider2N.getServices().getService(Preferences.class);
             assertNotNull(pp2N);
             assertEquals("two", pp2N.get("a", "unset"));
         }
         
         // Remove the nodes
-        Preferences.userNodeForPackage(IotProvider.class).removeNode();
+        Preferences.userNodeForPackage(IotProvider.class).node(PP1).removeNode();     
+        Preferences.userNodeForPackage(IotProvider.class).node(PP2).removeNode();     
     }
 }