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