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 {}