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);
+ }
+
}