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/08 17:28:09 UTC

[aries-component-dsl] 04/10: Unify implementations

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 d2652d13bceb443904de4155240fa095485257b6
Author: Carlos Sierra Andrés <ca...@liferay.com>
AuthorDate: Mon Mar 8 14:27:41 2021 +0100

    Unify implementations
---
 .../aries/component/dsl/internal/BaseOSGiImpl.java | 123 ++++++++++-----------
 1 file changed, 58 insertions(+), 65 deletions(-)

diff --git a/component-dsl/src/main/java/org/apache/aries/component/dsl/internal/BaseOSGiImpl.java b/component-dsl/src/main/java/org/apache/aries/component/dsl/internal/BaseOSGiImpl.java
index 1bf1358..74b0219 100644
--- a/component-dsl/src/main/java/org/apache/aries/component/dsl/internal/BaseOSGiImpl.java
+++ b/component-dsl/src/main/java/org/apache/aries/component/dsl/internal/BaseOSGiImpl.java
@@ -239,84 +239,78 @@ public class BaseOSGiImpl<T> implements OSGi<T> {
 		Consumer<? super T> onRemovedAfter,
 		Consumer<? super T> onUpdate) {
 
-		return new BaseOSGiImpl<>((executionContext, op) ->
-			run(
-				executionContext,
-				op.pipe(t -> {
-					onAddedBefore.accept(t);
+		return transform(op -> t -> {
+			onAddedBefore.accept(t);
 
-					try {
-						OSGiResult terminator = op.publish(t);
+			try {
+				OSGiResult terminator = op.publish(t);
 
-						OSGiResult result = new OSGiResultImpl(() -> {
-							try {
-								onRemovedBefore.accept(t);
-							}
-							catch (Exception e) {
-								//TODO: logging
-							}
+				OSGiResult result = new OSGiResultImpl(() -> {
+					try {
+						onRemovedBefore.accept(t);
+					}
+					catch (Exception e) {
+						//TODO: logging
+					}
 
-							try {
-								terminator.run();
-							}
-							catch (Exception e) {
-								//TODO: logging
-							}
+					try {
+						terminator.run();
+					}
+					catch (Exception e) {
+						//TODO: logging
+					}
 
-							try {
-								onRemovedAfter.accept(t);
-							}
-							catch (Exception e) {
-								//TODO: logging
-							}
-						},
-							() -> {
-								onUpdate.accept(t);
+					try {
+						onRemovedAfter.accept(t);
+					}
+					catch (Exception e) {
+						//TODO: logging
+					}
+				},
+					() -> {
+						onUpdate.accept(t);
 
-								return terminator.update();
-							}
-						);
+						return terminator.update();
+					}
+				);
 
-						try {
-							onAddedAfter.accept(t);
-						}
-						catch (Exception e) {
-							result.run();
+				try {
+					onAddedAfter.accept(t);
+				}
+				catch (Exception e) {
+					result.run();
 
-							throw e;
-						}
+					throw e;
+				}
 
-						return result;
-					}
-					catch (Exception e) {
-						try {
-							onRemovedAfter.accept(t);
-						}
-						catch (Exception e1) {
-							//TODO: logging
-						}
+				return result;
+			}
+			catch (Exception e) {
+				try {
+					onRemovedAfter.accept(t);
+				}
+				catch (Exception e1) {
+					//TODO: logging
+				}
 
-						throw e;
-					}
+				throw e;
+			}
 				}
-			)
-		));
+		);
 	}
 
 	@Override
 	public OSGi<T> filter(Predicate<T> predicate) {
-		return new BaseOSGiImpl<>((executionContext, op) ->
-			run(
-				executionContext,
-				op.pipe(t -> {
-					if (predicate.test(t)) {
-						return op.apply(t);
-					}
-					else {
-						return NOOP;
-					}
+		return transform(
+			op -> t -> {
+				if (predicate.test(t)) {
+					return op.apply(t);
 				}
-			)));
+				else {
+					return NOOP;
+				}
+			}
+		);
 	}
 
 	@Override
@@ -327,8 +321,7 @@ public class BaseOSGiImpl<T> implements OSGi<T> {
 
 	@Override
 	public <S> OSGi<S> map(Function<? super T, ? extends S> function) {
-		return new BaseOSGiImpl<>((executionContext, op) ->
-			run(executionContext, op.pipe(t -> op.apply(function.apply(t)))));
+		return transform(op -> t -> op.apply(function.apply(t)));
 	}
 
 	@Override