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/11/03 15:22:14 UTC

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

Author: csierra
Date: Fri Nov  3 15:22:14 2017
New Revision: 1814209

URL: http://svn.apache.org/viewvc?rev=1814209&view=rev
Log:
[Component-DSL] Optimize filter implementation

Modified:
    aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/OSGiImpl.java

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=1814209&r1=1814208&r2=1814209&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 Fri Nov  3 15:22:14 2017
@@ -162,14 +162,18 @@ public class OSGiImpl<T> implements OSGi
 
 	@Override
 	public OSGi<T> filter(Predicate<T> predicate) {
-		return flatMap(t -> {
-			if (predicate.test(t)) {
-				return OSGi.just(t);
-			}
-			else {
-				return OSGi.nothing();
-			}
-		});
+		return new OSGiImpl<>((bundleContext, op) ->
+			_operation.run(
+				bundleContext,
+				(t) -> {
+					if (predicate.test(t)) {
+						return op.apply(t);
+					}
+					else {
+						return () -> {};
+					}
+				}
+			));
 	}
 
 	@Override