You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by cs...@apache.org on 2021/03/03 16:44:08 UTC

[aries-component-dsl] 08/09: Update ConfigurationHolder and add static initializers

This is an automated email from the ASF dual-hosted git repository.

csierra pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/aries-component-dsl.git

commit 89291d1f56cfc928edac70a07d016d53177b8aa3
Author: Carlos Sierra Andrés <ca...@liferay.com>
AuthorDate: Wed Mar 3 17:30:54 2021 +0100

    Update ConfigurationHolder and add static initializers
---
 .../dsl/configuration/ConfigurationHolder.java     | 35 ++++++++++++++++++----
 .../dsl/internal/ConfigurationHolderImpl.java      | 19 +-----------
 .../aries/component/dsl/update/UpdateSelector.java |  2 ++
 .../aries/component/dsl/update/UpdateTuple.java    | 15 ++++++++++
 4 files changed, 47 insertions(+), 24 deletions(-)

diff --git a/component-dsl/src/main/java/org/apache/aries/component/dsl/configuration/ConfigurationHolder.java b/component-dsl/src/main/java/org/apache/aries/component/dsl/configuration/ConfigurationHolder.java
index f114fb1..6c7c721 100644
--- a/component-dsl/src/main/java/org/apache/aries/component/dsl/configuration/ConfigurationHolder.java
+++ b/component-dsl/src/main/java/org/apache/aries/component/dsl/configuration/ConfigurationHolder.java
@@ -18,20 +18,43 @@
 package org.apache.aries.component.dsl.configuration;
 
 import java.util.Dictionary;
+import java.util.Hashtable;
+import java.util.Map;
 
 public interface ConfigurationHolder {
 
-    String getPid();
-
     Dictionary<String, ?> getProperties();
 
-    String getFactoryPid();
-
     long getChangeCount();
 
-    void refresh();
-
     long getUpdatedChangeCount();
 
     Dictionary<String, ?> getUpdatedProperties();
+
+    public static ConfigurationHolder fromMap(Map<String, ?> map) {
+        return new ConfigurationHolder() {
+
+            final Hashtable<String, ?> properties = new Hashtable<>(map);
+
+            @Override
+            public Dictionary<String, ?> getProperties() {
+                return new Hashtable<>(properties);
+            }
+
+            @Override
+            public long getChangeCount() {
+                return 0;
+            }
+
+            @Override
+            public long getUpdatedChangeCount() {
+                return getChangeCount();
+            }
+
+            @Override
+            public Dictionary<String, ?> getUpdatedProperties() {
+                return getProperties();
+            }
+        };
+    }
 }
diff --git a/component-dsl/src/main/java/org/apache/aries/component/dsl/internal/ConfigurationHolderImpl.java b/component-dsl/src/main/java/org/apache/aries/component/dsl/internal/ConfigurationHolderImpl.java
index 891c27d..c9bf04a 100644
--- a/component-dsl/src/main/java/org/apache/aries/component/dsl/internal/ConfigurationHolderImpl.java
+++ b/component-dsl/src/main/java/org/apache/aries/component/dsl/internal/ConfigurationHolderImpl.java
@@ -27,7 +27,7 @@ import java.util.concurrent.atomic.AtomicReference;
 public class ConfigurationHolderImpl implements ConfigurationHolder {
 
     private Configuration configuration;
-    private AtomicReference<Dictionary<String, ?>> properties;
+    private AtomicReference<Dictionary<String, ?>> properties = new AtomicReference<>();
     private AtomicLong changeCount = new AtomicLong(-1);
 
     public ConfigurationHolderImpl(Configuration configuration) {
@@ -35,11 +35,6 @@ public class ConfigurationHolderImpl implements ConfigurationHolder {
     }
 
     @Override
-    public String getPid() {
-        return configuration.getPid();
-    }
-
-    @Override
     public Dictionary<String, ?> getProperties() {
         properties.compareAndSet(null, configuration.getProperties());
 
@@ -47,11 +42,6 @@ public class ConfigurationHolderImpl implements ConfigurationHolder {
     }
 
     @Override
-    public String getFactoryPid() {
-        return configuration.getFactoryPid();
-    }
-
-    @Override
     public long getChangeCount() {
         changeCount.compareAndSet(-1, configuration.getChangeCount());
 
@@ -59,13 +49,6 @@ public class ConfigurationHolderImpl implements ConfigurationHolder {
     }
 
     @Override
-    public void refresh() {
-        changeCount.set(-1);
-
-        properties.set(null);
-    }
-
-    @Override
     public long getUpdatedChangeCount() {
         return configuration.getChangeCount();
     }
diff --git a/component-dsl/src/main/java/org/apache/aries/component/dsl/update/UpdateSelector.java b/component-dsl/src/main/java/org/apache/aries/component/dsl/update/UpdateSelector.java
index 2478759..397e349 100644
--- a/component-dsl/src/main/java/org/apache/aries/component/dsl/update/UpdateSelector.java
+++ b/component-dsl/src/main/java/org/apache/aries/component/dsl/update/UpdateSelector.java
@@ -20,4 +20,6 @@ package org.apache.aries.component.dsl.update;
 public interface UpdateSelector {
 
     public static final UpdateSelector ALL = new UpdateSelector() {};
+
+    public static final UpdateSelector STATIC = new UpdateSelector() {};
 }
diff --git a/component-dsl/src/main/java/org/apache/aries/component/dsl/update/UpdateTuple.java b/component-dsl/src/main/java/org/apache/aries/component/dsl/update/UpdateTuple.java
index 0b7b2e3..5622638 100644
--- a/component-dsl/src/main/java/org/apache/aries/component/dsl/update/UpdateTuple.java
+++ b/component-dsl/src/main/java/org/apache/aries/component/dsl/update/UpdateTuple.java
@@ -17,6 +17,10 @@
 
 package org.apache.aries.component.dsl.update;
 
+import org.apache.aries.component.dsl.OSGi;
+
+import java.util.function.BiFunction;
+
 public final class UpdateTuple<T> {
 
     public final UpdateSelector updateSelector;
@@ -30,4 +34,15 @@ public final class UpdateTuple<T> {
     public T getT() {
         return t;
     }
+
+    public static <S, R> OSGi<R> flatMap(
+        OSGi<UpdateTuple<S>> tuple, BiFunction<UpdateSelector, S, OSGi<R>> biFunction) {
+
+        return tuple.flatMap(updateTuple -> biFunction.apply(updateTuple.updateSelector, updateTuple.t));
+    }
+
+    public static <T> UpdateTuple<T> fromStatic(T t) {
+        return new UpdateTuple<>(UpdateSelector.STATIC, t);
+    }
+
 }