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 2017/10/10 15:51:07 UTC

svn commit: r1811722 - /aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/

Author: csierra
Date: Tue Oct 10 15:51:07 2017
New Revision: 1811722

URL: http://svn.apache.org/viewvc?rev=1811722&view=rev
Log:
[Component-DSL] Take closed into account

Modified:
    aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/BundleOSGi.java
    aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/ConfigurationOSGiImpl.java
    aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/ConfigurationsOSGiImpl.java
    aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/DistributeOSGi.java
    aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/FlatMapImpl.java
    aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/JustOSGiImpl.java
    aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/OSGiImpl.java
    aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/OSGiResultImpl.java
    aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/OnCloseOSGiImpl.java
    aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/Pipe.java
    aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/RouteOsgiImpl.java
    aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/ServiceReferenceOSGi.java
    aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/ServiceRegistrationOSGiImpl.java

Modified: aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/BundleOSGi.java
URL: http://svn.apache.org/viewvc/aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/BundleOSGi.java?rev=1811722&r1=1811721&r2=1811722&view=diff
==============================================================================
--- aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/BundleOSGi.java (original)
+++ aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/BundleOSGi.java Tue Oct 10 15:51:07 2017
@@ -36,7 +36,7 @@ public class BundleOSGi extends OSGiImpl
 
 	public BundleOSGi(int stateMask) {
 		super(bundleContext -> {
-			Pipe<Tuple<Bundle>, Tuple<Bundle>> added = Pipe.create();
+			Pipe<Bundle, Bundle> added = Pipe.create();
 
 			Consumer<Tuple<Bundle>> addedSource = added.getSource();
 
@@ -87,7 +87,7 @@ public class BundleOSGi extends OSGiImpl
 		Function<? super Bundle, OSGi<? extends S>> fun) {
 
 		return new OSGiImpl<>(bundleContext -> {
-			Pipe<Tuple<S>, Tuple<S>> added = Pipe.create();
+			Pipe<S, S> added = Pipe.create();
 
 			Consumer<Tuple<S>> addedSource = added.getSource();
 

Modified: aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/ConfigurationOSGiImpl.java
URL: http://svn.apache.org/viewvc/aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/ConfigurationOSGiImpl.java?rev=1811722&r1=1811721&r2=1811722&view=diff
==============================================================================
--- aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/ConfigurationOSGiImpl.java (original)
+++ aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/ConfigurationOSGiImpl.java Tue Oct 10 15:51:07 2017
@@ -43,8 +43,8 @@ public class ConfigurationOSGiImpl
 			AtomicReference<ServiceRegistration<ManagedService>>
 				serviceRegistrationReferece = new AtomicReference<>(null);
 
-			Pipe<Tuple<Dictionary<String, ?>>, Tuple<Dictionary<String, ?>>>
-				added = Pipe.create();
+			Pipe<Dictionary<String, ?>, Dictionary<String, ?>> added =
+				Pipe.create();
 
 			Consumer<Tuple<Dictionary<String, ?>>> addedSource =
 				added.getSource();

Modified: aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/ConfigurationsOSGiImpl.java
URL: http://svn.apache.org/viewvc/aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/ConfigurationsOSGiImpl.java?rev=1811722&r1=1811721&r2=1811722&view=diff
==============================================================================
--- aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/ConfigurationsOSGiImpl.java (original)
+++ aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/ConfigurationsOSGiImpl.java Tue Oct 10 15:51:07 2017
@@ -42,7 +42,7 @@ public class ConfigurationsOSGiImpl
 			AtomicReference<ServiceRegistration<ManagedServiceFactory>>
 				serviceRegistrationReference = new AtomicReference<>(null);
 
-			Pipe<Tuple<Dictionary<String, ?>>, Tuple<Dictionary<String, ?>>>
+			Pipe<Dictionary<String, ?>, Dictionary<String, ?>>
 				added = Pipe.create();
 
 			Consumer<Tuple<Dictionary<String, ?>>> addedSource =

Modified: aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/DistributeOSGi.java
URL: http://svn.apache.org/viewvc/aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/DistributeOSGi.java?rev=1811722&r1=1811721&r2=1811722&view=diff
==============================================================================
--- aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/DistributeOSGi.java (original)
+++ aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/DistributeOSGi.java Tue Oct 10 15:51:07 2017
@@ -34,7 +34,7 @@ public class DistributeOSGi<T> extends O
     @SafeVarargs
     public DistributeOSGi(OSGi<T>... programs) {
         super(bundleContext -> {
-            Pipe<Tuple<T>, Tuple<T>> added = Pipe.create();
+            Pipe<T, T> added = Pipe.create();
 
             Consumer<Tuple<T>> addedSource = added.getSource();
 

Modified: aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/FlatMapImpl.java
URL: http://svn.apache.org/viewvc/aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/FlatMapImpl.java?rev=1811722&r1=1811721&r2=1811722&view=diff
==============================================================================
--- aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/FlatMapImpl.java (original)
+++ aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/FlatMapImpl.java Tue Oct 10 15:51:07 2017
@@ -38,7 +38,7 @@ public class FlatMapImpl<T, S> extends O
 			AtomicReference<Runnable> closeReference =
 				new AtomicReference<>(NOOP);
 
-			Pipe<Tuple<S>, Tuple<S>> added = Pipe.create();
+			Pipe<S, S> added = Pipe.create();
 
 			Consumer<Tuple<S>> addedSource = added.getSource();
 
@@ -51,7 +51,7 @@ public class FlatMapImpl<T, S> extends O
 					closeReference.set(or1.close);
 
 					or1.added.map(t -> {
-						OSGiImpl<S> program = (OSGiImpl<S>)fun.apply(t.t);
+						OSGiImpl<S> program = (OSGiImpl<S>)fun.apply((T)t.t);
 
 						OSGiResultImpl<S> or2 =
 							program._operation.run(bundleContext);

Modified: aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/JustOSGiImpl.java
URL: http://svn.apache.org/viewvc/aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/JustOSGiImpl.java?rev=1811722&r1=1811721&r2=1811722&view=diff
==============================================================================
--- aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/JustOSGiImpl.java (original)
+++ aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/JustOSGiImpl.java Tue Oct 10 15:51:07 2017
@@ -45,7 +45,7 @@ public class JustOSGiImpl<T> extends OSG
 	public JustOSGiImpl(Supplier<Collection<T>> t) {
 		super(((bundleContext) -> {
 
-			Pipe<Tuple<T>, Tuple<T>> added = Pipe.create();
+			Pipe<T, T> added = Pipe.create();
 
 			AtomicReference<Collection<Tuple<T>>> collectionAtomicReference =
 				new AtomicReference<>();
@@ -76,7 +76,7 @@ public class JustOSGiImpl<T> extends OSG
 	@Override
 	public <S> OSGiImpl<S> flatMap(Function<? super T, OSGi<? extends S>> fun) {
 		return new OSGiImpl<>(bundleContext -> {
-			Pipe<Tuple<S>, Tuple<S>> added = Pipe.create();
+			Pipe<S, S> added = Pipe.create();
 
 			AtomicReference<Runnable> atomicReference = new AtomicReference<>(
 				NOOP);

Modified: aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/OSGiImpl.java
URL: http://svn.apache.org/viewvc/aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/OSGiImpl.java?rev=1811722&r1=1811721&r2=1811722&view=diff
==============================================================================
--- aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/OSGiImpl.java (original)
+++ aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/OSGiImpl.java Tue Oct 10 15:51:07 2017
@@ -216,7 +216,7 @@ public class OSGiImpl<T> implements OSGi
 				DoublyLinkedList<Tuple<Function<T, S>>> funs =
 					new DoublyLinkedList<>();
 
-				Pipe<Tuple<S>, Tuple<S>> added = Pipe.create();
+				Pipe<S, S> added = Pipe.create();
 
 				Consumer<Tuple<S>> addedSource = added.getSource();
 

Modified: aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/OSGiResultImpl.java
URL: http://svn.apache.org/viewvc/aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/OSGiResultImpl.java?rev=1811722&r1=1811721&r2=1811722&view=diff
==============================================================================
--- aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/OSGiResultImpl.java (original)
+++ aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/OSGiResultImpl.java Tue Oct 10 15:51:07 2017
@@ -26,12 +26,12 @@ import java.util.function.Consumer;
  */
 public class OSGiResultImpl<T> implements OSGiResult<T> {
 
-	public Pipe<?, Tuple<T>> added;
+	public Pipe<?, T> added;
 	public Runnable start;
 	public Runnable close;
 
 	public OSGiResultImpl(
-		Pipe<?, Tuple<T>> added, Runnable start, Runnable close) {
+		Pipe<?, T> added, Runnable start, Runnable close) {
 
 		this.added = added;
 		this.start = start;

Modified: aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/OnCloseOSGiImpl.java
URL: http://svn.apache.org/viewvc/aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/OnCloseOSGiImpl.java?rev=1811722&r1=1811721&r2=1811722&view=diff
==============================================================================
--- aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/OnCloseOSGiImpl.java (original)
+++ aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/OnCloseOSGiImpl.java Tue Oct 10 15:51:07 2017
@@ -24,7 +24,7 @@ public class OnCloseOSGiImpl extends OSG
 
 	public OnCloseOSGiImpl(Runnable action) {
 		super(bundleContext -> {
-			Pipe<Tuple<Void>, Tuple<Void>> added = Pipe.create();
+			Pipe<Void, Void> added = Pipe.create();
 
 			Tuple<Void> tuple = Tuple.create(null);
 

Modified: aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/Pipe.java
URL: http://svn.apache.org/viewvc/aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/Pipe.java?rev=1811722&r1=1811721&r2=1811722&view=diff
==============================================================================
--- aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/Pipe.java (original)
+++ aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/Pipe.java Tue Oct 10 15:51:07 2017
@@ -25,9 +25,9 @@ import java.util.function.Function;
  */
 class Pipe<I, O> {
 
-	private Function<I, O> pipe;
+	private Function<Tuple<I>, Tuple<O>> pipe;
 
-	private Pipe(Function<I, O> fun) {
+	private Pipe(Function<Tuple<I>, Tuple<O>> fun) {
 		this.pipe = fun;
 	}
 
@@ -35,11 +35,21 @@ class Pipe<I, O> {
 		return new Pipe<>(x -> x);
 	}
 
-	public Consumer<I> getSource() {
-		return i -> pipe.apply(i);
+	public Consumer<Tuple<I>> getSource() {
+		return i -> {
+			if (i.isClosed()) {
+				return;
+			}
+
+			pipe.apply(i);
+
+			if (i.isClosed()) {
+				i.terminate();
+			}
+		};
 	}
 
-	<U> Pipe<I, U> map(Function<? super O, ? extends U> fun) {
+	<U> Pipe<I, U> map(Function<Tuple<O>, Tuple<U>> fun) {
 		this.pipe = (Function)this.pipe.andThen(fun);
 
 		return (Pipe<I, U>)this;

Modified: aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/RouteOsgiImpl.java
URL: http://svn.apache.org/viewvc/aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/RouteOsgiImpl.java?rev=1811722&r1=1811721&r2=1811722&view=diff
==============================================================================
--- aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/RouteOsgiImpl.java (original)
+++ aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/RouteOsgiImpl.java Tue Oct 10 15:51:07 2017
@@ -29,7 +29,7 @@ public class RouteOsgiImpl<T> extends OS
 
         super(((bundleContext) -> {
 
-            Pipe<Tuple<T>, Tuple<T>> outgoingAddingPipe = Pipe.create();
+            Pipe<T, T> outgoingAddingPipe = Pipe.create();
 
             Consumer<Tuple<T>> outgoingAddingSource =
                 outgoingAddingPipe.getSource();

Modified: aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/ServiceReferenceOSGi.java
URL: http://svn.apache.org/viewvc/aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/ServiceReferenceOSGi.java?rev=1811722&r1=1811721&r2=1811722&view=diff
==============================================================================
--- aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/ServiceReferenceOSGi.java (original)
+++ aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/ServiceReferenceOSGi.java Tue Oct 10 15:51:07 2017
@@ -38,7 +38,7 @@ public class ServiceReferenceOSGi<T> ext
 
 	public ServiceReferenceOSGi(String filterString, Class<T> clazz) {
 		super(bundleContext -> {
-			Pipe<Tuple<ServiceReference<T>>, Tuple<ServiceReference<T>>>
+			Pipe<ServiceReference<T>, ServiceReference<T>>
 				added = Pipe.create();
 
 			ServiceTracker<T, AtomicReference<Tuple<ServiceReference<T>>>>
@@ -60,7 +60,7 @@ public class ServiceReferenceOSGi<T> ext
 		Function<? super ServiceReference<T>, OSGi<? extends S>> fun) {
 
 		return new OSGiImpl<>(bundleContext -> {
-			Pipe<Tuple<S>, Tuple<S>> added = Pipe.create();
+			Pipe<S, S> added = Pipe.create();
 
 			ServiceTracker<T, ?> serviceTracker =
 				new ServiceTracker<>(

Modified: aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/ServiceRegistrationOSGiImpl.java
URL: http://svn.apache.org/viewvc/aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/ServiceRegistrationOSGiImpl.java?rev=1811722&r1=1811721&r2=1811722&view=diff
==============================================================================
--- aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/ServiceRegistrationOSGiImpl.java (original)
+++ aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/ServiceRegistrationOSGiImpl.java Tue Oct 10 15:51:07 2017
@@ -82,8 +82,8 @@ public class ServiceRegistrationOSGiImpl
 		getServiceRegistrationOSGiResult(
 			ServiceRegistration<T> serviceRegistration) {
 
-		Pipe<Tuple<ServiceRegistration<T>>, Tuple<ServiceRegistration<T>>>
-            added = Pipe.create();
+		Pipe<ServiceRegistration<T>, ServiceRegistration<T>> added =
+			Pipe.create();
 
 		Consumer<Tuple<ServiceRegistration<T>>> addedSource =
             added.getSource();