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:21:35 UTC

svn commit: r1814203 - in /aries/trunk/component-dsl: component-dsl/src/main/java/org/apache/aries/osgi/functional/ itests/src/main/java/org/apache/aries/osgi/functional/test/

Author: csierra
Date: Fri Nov  3 15:21:35 2017
New Revision: 1814203

URL: http://svn.apache.org/viewvc?rev=1814203&view=rev
Log:
[Component-DSL] Change `apply` for `combine`

Modified:
    aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/OSGi.java
    aries/trunk/component-dsl/itests/src/main/java/org/apache/aries/osgi/functional/test/AsynchronousTest.java
    aries/trunk/component-dsl/itests/src/main/java/org/apache/aries/osgi/functional/test/ComponentTest.java
    aries/trunk/component-dsl/itests/src/main/java/org/apache/aries/osgi/functional/test/DSLTest.java

Modified: aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/OSGi.java
URL: http://svn.apache.org/viewvc/aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/OSGi.java?rev=1814203&r1=1814202&r2=1814203&view=diff
==============================================================================
--- aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/OSGi.java (original)
+++ aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/OSGi.java Fri Nov  3 15:21:35 2017
@@ -226,24 +226,24 @@ public interface OSGi<T> extends OSGiRun
 		return fun.flatMap(this::map);
 	}
 
-	public static <A, B, C> OSGi<C> apply(Function2<A, B, C> fun, OSGi<A> a, OSGi<B> b) {
+	public static <A, B, C> OSGi<C> combine(Function2<A, B, C> fun, OSGi<A> a, OSGi<B> b) {
 		return b.applyTo(a.applyTo(just(fun.curried())));
 	}
 
-	public static <A, B, C, D> OSGi<D> apply(Function3<A, B, C, D> fun, OSGi<A> a, OSGi<B> b, OSGi<C> c) {
-		return c.applyTo(OSGi.apply((A aa, B bb) -> fun.curried().apply(aa).apply(bb), a, b));
+	public static <A, B, C, D> OSGi<D> combine(Function3<A, B, C, D> fun, OSGi<A> a, OSGi<B> b, OSGi<C> c) {
+		return c.applyTo(OSGi.combine((A aa, B bb) -> fun.curried().apply(aa).apply(bb), a, b));
 	}
 
-	public static <A, B, C, D, E> OSGi<E> apply(Function4<A, B, C, D, E> fun, OSGi<A> a, OSGi<B> b, OSGi<C> c, OSGi<D> d) {
-		return d.applyTo(OSGi.apply((A aa, B bb, C cc) -> fun.curried().apply(aa).apply(bb).apply(cc), a, b, c));
+	public static <A, B, C, D, E> OSGi<E> combine(Function4<A, B, C, D, E> fun, OSGi<A> a, OSGi<B> b, OSGi<C> c, OSGi<D> d) {
+		return d.applyTo(OSGi.combine((A aa, B bb, C cc) -> fun.curried().apply(aa).apply(bb).apply(cc), a, b, c));
 	}
 
-	public static <A, B, C, D, E, F> OSGi<F> apply(Function5<A, B, C, D, E, F> fun, OSGi<A> a, OSGi<B> b, OSGi<C> c, OSGi<D> d, OSGi<E> e) {
-		return e.applyTo(OSGi.apply((A aa, B bb, C cc, D dd) -> fun.curried().apply(aa).apply(bb).apply(cc).apply(dd), a, b, c, d));
+	public static <A, B, C, D, E, F> OSGi<F> combine(Function5<A, B, C, D, E, F> fun, OSGi<A> a, OSGi<B> b, OSGi<C> c, OSGi<D> d, OSGi<E> e) {
+		return e.applyTo(OSGi.combine((A aa, B bb, C cc, D dd) -> fun.curried().apply(aa).apply(bb).apply(cc).apply(dd), a, b, c, d));
 	}
 
-	public static <A, B, C, D, E, F, G> OSGi<G> apply(Function6<A, B, C, D, E, F, G> fun, OSGi<A> a, OSGi<B> b, OSGi<C> c, OSGi<D> d, OSGi<E> e, OSGi<F> f) {
-		return f.applyTo(OSGi.apply((A aa, B bb, C cc, D dd, E ee) -> fun.curried().apply(aa).apply(bb).apply(cc).apply(dd).apply(ee), a, b, c, d, e));
+	public static <A, B, C, D, E, F, G> OSGi<G> combine(Function6<A, B, C, D, E, F, G> fun, OSGi<A> a, OSGi<B> b, OSGi<C> c, OSGi<D> d, OSGi<E> e, OSGi<F> f) {
+		return f.applyTo(OSGi.combine((A aa, B bb, C cc, D dd, E ee) -> fun.curried().apply(aa).apply(bb).apply(cc).apply(dd).apply(ee), a, b, c, d, e));
 	}
 
 }

Modified: aries/trunk/component-dsl/itests/src/main/java/org/apache/aries/osgi/functional/test/AsynchronousTest.java
URL: http://svn.apache.org/viewvc/aries/trunk/component-dsl/itests/src/main/java/org/apache/aries/osgi/functional/test/AsynchronousTest.java?rev=1814203&r1=1814202&r2=1814203&view=diff
==============================================================================
--- aries/trunk/component-dsl/itests/src/main/java/org/apache/aries/osgi/functional/test/AsynchronousTest.java (original)
+++ aries/trunk/component-dsl/itests/src/main/java/org/apache/aries/osgi/functional/test/AsynchronousTest.java Fri Nov  3 15:21:35 2017
@@ -38,7 +38,7 @@ import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.function.Function;
 
-import static org.apache.aries.osgi.functional.OSGi.apply;
+import static org.apache.aries.osgi.functional.OSGi.combine;
 import static org.apache.aries.osgi.functional.OSGi.configurations;
 import static org.apache.aries.osgi.functional.OSGi.services;
 import static org.junit.Assert.assertEquals;
@@ -72,7 +72,7 @@ public class AsynchronousTest {
         OSGi<Integer> bs = services(Service.class, "(property=b)").map(Service::getI);
         OSGi<Integer> cs = services(Service.class, "(property=c)").map(Service::getI);
 
-        OSGi<int[]> combined = apply((x, y, z) -> new int[] {x, y, z}, as, bs, cs);
+        OSGi<int[]> combined = combine((x, y, z) -> new int[] {x, y, z}, as, bs, cs);
 
         OSGi<?> program = combined.effects(
             i -> started[i[0]][i[1]][i[2]].set(true),
@@ -195,7 +195,7 @@ public class AsynchronousTest {
         OSGi<Integer> bs = services(Service.class, "(property=b)").map(Service::getI);
         OSGi<Integer> cs = configurations("configurationc").map(d -> (Integer)d.get("property"));
 
-        OSGi<int[]> combined = apply((x, y, z) -> new int[] {x, y, z}, as, bs, cs);
+        OSGi<int[]> combined = combine((x, y, z) -> new int[] {x, y, z}, as, bs, cs);
 
         OSGi<?> program = combined.effects(
             i -> started[i[0]][i[1]][i[2]].set(true),
@@ -327,7 +327,7 @@ public class AsynchronousTest {
         OSGi<Integer> bs = new ProbeImpl<>();
         OSGi<Integer> cs = new ProbeImpl<>();
 
-        OSGi<int[]> combined = apply((x, y, z) -> new int[] {x, y, z}, as, bs, cs);
+        OSGi<int[]> combined = combine((x, y, z) -> new int[] {x, y, z}, as, bs, cs);
 
         OSGi<?> program = combined.effects(
             i -> started[i[0]][i[1]][i[2]].set(true),

Modified: aries/trunk/component-dsl/itests/src/main/java/org/apache/aries/osgi/functional/test/ComponentTest.java
URL: http://svn.apache.org/viewvc/aries/trunk/component-dsl/itests/src/main/java/org/apache/aries/osgi/functional/test/ComponentTest.java?rev=1814203&r1=1814202&r2=1814203&view=diff
==============================================================================
--- aries/trunk/component-dsl/itests/src/main/java/org/apache/aries/osgi/functional/test/ComponentTest.java (original)
+++ aries/trunk/component-dsl/itests/src/main/java/org/apache/aries/osgi/functional/test/ComponentTest.java Fri Nov  3 15:21:35 2017
@@ -22,7 +22,6 @@ import org.apache.aries.osgi.functional.
 import org.junit.AfterClass;
 import org.junit.Assert;
 import org.junit.BeforeClass;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.FrameworkUtil;
@@ -44,8 +43,8 @@ import java.util.concurrent.TimeoutExcep
 import java.util.function.Consumer;
 
 import static org.apache.aries.osgi.functional.OSGi.all;
-import static org.apache.aries.osgi.functional.OSGi.apply;
 import static org.apache.aries.osgi.functional.OSGi.bundleContext;
+import static org.apache.aries.osgi.functional.OSGi.combine;
 import static org.apache.aries.osgi.functional.OSGi.configurations;
 import static org.apache.aries.osgi.functional.OSGi.just;
 import static org.apache.aries.osgi.functional.OSGi.onClose;
@@ -200,7 +199,7 @@ public class ComponentTest {
     @Test
     public void testComponentApplicative() throws IOException, TimeoutException {
         OSGi<?> program =
-            apply(
+            combine(
                 Component::new,
                 configurations("org.components.MyComponent"),
                 services(Service.class)).

Modified: aries/trunk/component-dsl/itests/src/main/java/org/apache/aries/osgi/functional/test/DSLTest.java
URL: http://svn.apache.org/viewvc/aries/trunk/component-dsl/itests/src/main/java/org/apache/aries/osgi/functional/test/DSLTest.java?rev=1814203&r1=1814202&r2=1814203&view=diff
==============================================================================
--- aries/trunk/component-dsl/itests/src/main/java/org/apache/aries/osgi/functional/test/DSLTest.java (original)
+++ aries/trunk/component-dsl/itests/src/main/java/org/apache/aries/osgi/functional/test/DSLTest.java Fri Nov  3 15:21:35 2017
@@ -574,7 +574,7 @@ public class DSLTest {
     public void testApply() {
         AtomicInteger integer = new AtomicInteger(0);
 
-        OSGi<Integer> program = OSGi.apply(
+        OSGi<Integer> program = OSGi.combine(
             (a, b, c) -> a + b + c, just(5), just(5), just(5));
 
         program.run(bundleContext, integer::set);
@@ -585,14 +585,23 @@ public class DSLTest {
     @Test
     public void testMultipleApplies() {
         ArrayList<Integer> results = new ArrayList<>();
+        AtomicInteger results2 = new AtomicInteger();
 
-        OSGi<Integer> program = OSGi.apply(
+        OSGi<Integer> program = OSGi.combine(
             (a, b, c) -> a + b + c, just(Arrays.asList(5, 20)),
             just(Arrays.asList(5, 40)), just(Arrays.asList(5, 60)));
 
-        program.run(bundleContext, results::add);
+        OSGiResult or = program.run(bundleContext, results::add);
+
+        or.close();
+
+        OSGiResult or2 = program.run(
+            bundleContext, i -> results2.accumulateAndGet(i, (a, b) -> a + b));
+
+        or2.close();
 
         assertEquals(8, results.size());
+        assertEquals(540, results2.get());
     }
 
     private class Service {}