diff --git a/libraries/pom.xml b/libraries/pom.xml index a2c5c0d726..a53feda5fc 100644 --- a/libraries/pom.xml +++ b/libraries/pom.xml @@ -1,604 +1,609 @@ - - parent-modules - com.baeldung - 1.0.0-SNAPSHOT - - 4.0.0 - libraries - libraries - - - - org.apache.maven.plugins - maven-dependency-plugin - - - org.apache.felix - maven-bundle-plugin - 3.3.0 - maven-plugin - - - true - - - maven-failsafe-plugin - 2.20 - - - chromedriver - - - - - net.serenity-bdd.maven.plugins - serenity-maven-plugin - ${serenity.plugin.version} - - - serenity-reports - post-integration-test - - aggregate - - - - - - - org.datanucleus - datanucleus-maven-plugin - 5.0.2 - - JDO - ${basedir}/datanucleus.properties - ${basedir}/log4j.properties - true - false - - - - - process-classes - - enhance - - - - - - - org.apache.maven.plugins - maven-jar-plugin - 3.0.2 - - - **/log4j.properties - - - - com.baeldung.neuroph.NeurophXOR - - - - - - org.apache.maven.plugins - maven-surefire-plugin - 2.18.1 - - - test - test - - test - - - - test/java/com/baeldung/neuroph/XORTest.java - - - - - - - - - - - - - org.beykery - neuroph - ${neuroph.version} - - - - cglib - cglib - ${cglib.version} - - - commons-beanutils - commons-beanutils - ${commons-beanutils.version} - - - org.apache.commons - commons-lang3 - ${commons-lang.version} - - - org.apache.commons - commons-text - ${commons-text.version} - - - org.apache.commons - commons-collections4 - ${commons.collections.version} - - - org.jasypt - jasypt - ${jasypt.version} - - - org.javatuples - javatuples - ${javatuples.version} - - - org.javassist - javassist - ${javaassist.version} - - - - org.assertj - assertj-core - ${assertj.version} - - - org.skyscreamer - jsonassert - ${jsonassert.version} - - - org.javers - javers-core - ${javers.version} - - - org.eclipse.jetty - jetty-server - ${jetty.version} - - - org.eclipse.jetty - jetty-servlet - ${jetty.version} - - - rome - rome - ${rome.version} - - - io.specto - hoverfly-java - 0.8.1 - - - org.apache.httpcomponents - httpclient - ${httpclient.version} - - - commons-logging - commons-logging - - - - - commons-io - commons-io - ${commons.io.version} - - - commons-chain - commons-chain - ${commons-chain.version} - - - org.apache.commons - commons-csv - ${commons-csv.version} - - - commons-dbutils - commons-dbutils - ${commons.dbutils.version} - - - org.apache.flink - flink-core - ${flink.version} - - - commons-logging - commons-logging - - - - - org.apache.flink - flink-java - ${flink.version} - - - commons-logging - commons-logging - - - - - org.apache.flink - flink-test-utils_2.10 - ${flink.version} - test - - - org.apache.commons - commons-math3 - 3.6.1 - - - net.serenity-bdd - serenity-core - ${serenity.version} - test - - - net.serenity-bdd - serenity-junit - ${serenity.version} - test - - - net.serenity-bdd - serenity-jbehave - ${serenity.jbehave.version} - test - - - net.serenity-bdd - serenity-rest-assured - ${serenity.version} - test - - - net.serenity-bdd - serenity-jira-requirements-provider - ${serenity.jira.version} - test - - - com.fasterxml.jackson.core - jackson-databind - ${jackson.version} - - - - org.datanucleus - javax.jdo - 3.2.0-m7 - - - org.datanucleus - datanucleus-core - 5.1.1 - - - org.datanucleus - datanucleus-api-jdo - 5.1.1 - - - org.datanucleus - datanucleus-rdbms - 5.1.1 - - - org.datanucleus - datanucleus-maven-plugin - 5.0.2 - - - org.datanucleus - datanucleus-xml - 5.0.0-release - - - net.openhft - chronicle - 3.6.4 - - - org.springframework - spring-web - 4.3.8.RELEASE - - - net.serenity-bdd - serenity-spring - ${serenity.version} - test - - - net.serenity-bdd - serenity-screenplay - ${serenity.version} - test - - - net.serenity-bdd - serenity-screenplay-webdriver - ${serenity.version} - test - - - io.rest-assured - spring-mock-mvc - 3.0.3 - test - - - org.multiverse - multiverse-core - ${multiverse.version} - - - com.zaxxer - HikariCP - 2.6.3 - compile - - - com.h2database - h2 - ${h2.version} - - - pl.pragmatists - JUnitParams - ${jUnitParams.version} - test - - - org.quartz-scheduler - quartz - 2.3.0 - - - one.util - streamex - ${streamex.version} - - - org.jooq - jool - 0.9.12 - - - org.openjdk.jmh - jmh-core - 1.19 - - - org.openjdk.jmh - jmh-generator-annprocess - 1.19 - - - io.netty - netty-all - ${netty.version} - - - junit - junit - ${junit.version} - test - - - info.debatty - java-lsh - ${java-lsh.version} - - - au.com.dius - pact-jvm-consumer-junit_2.11 - ${pact.version} - test - - - org.codehaus.groovy - groovy-all - 2.4.10 - - - org.awaitility - awaitility - ${awaitility.version} - test - - - org.awaitility - awaitility-proxy - ${awaitility.version} - test - - - org.hamcrest - java-hamcrest - ${org.hamcrest.java-hamcrest.version} - test - - - net.agkn - hll - ${hll.version} - - - net.bytebuddy - byte-buddy - ${bytebuddy.version} - - - net.bytebuddy - byte-buddy-agent - ${bytebuddy.version} - - - org.pcollections - pcollections - ${pcollections.version} - - - com.machinezoo.noexception - noexception - 1.1.0 - - - org.eclipse.collections - eclipse-collections - ${eclipse-collections.version} - - - io.vavr - vavr - ${vavr.version} - - - org.geotools - gt-shapefile - ${geotools.version} - - - org.geotools - gt-epsg-hsql - ${geotools.version} - - - org.geotools - gt-swing - ${geotools.version} - - - com.darwinsys - hirondelle-date4j - RELEASE - test - - - joda-time - joda-time - ${joda-time.version} - - - com.darwinsys - hirondelle-date4j - ${hirondelle-date4j.version} - - - com.haulmont.yarg - yarg - 2.0.4 - - - net.engio - mbassador - 1.3.1 - - - - - maven2-repository.dev.java.net - Java.net repository - http://download.java.net/maven/2 - - - osgeo - Open Source Geospatial Foundation Repository - http://download.osgeo.org/webdav/geotools/ - - - - true - - opengeo - OpenGeo Maven Repository - http://repo.opengeo.org - - - - false - - bintray-cuba-platform-main - bintray - http://dl.bintray.com/cuba-platform/main - - - - 0.7.0 - 3.2.4 - 3.6 - 1.1 - 1.9.3 - 1.2 - 1.4 - 1.9.2 - 1.2 - 3.21.0-GA - 3.6.2 - 1.5.0 - 3.1.0 - 9.4.3.v20170317 - 4.5.3 - 2.5 - 1.6 - 1.4.196 - 9.4.2.v20170220 - 4.5.3 - 2.5 - 1.2.0 - 2.8.5 - 2.92 - 1.4.0 - 1.24.0 - 1.1.3-rc.5 - 1.4.0 - 1.1.0 - 4.1.15.Final - 4.1 - 4.12 - 0.10 - 3.5.0 - 3.0.0 - 2.0.0.0 - 1.6.0 - 1.7.1 - 2.1.2 - 1.0 - 8.2.0 - 0.6.5 - 0.9.0 - 15.2 - 2.9.9 - 1.5.1 - + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + + parent-modules + com.baeldung + 1.0.0-SNAPSHOT + + 4.0.0 + libraries + libraries + + + + org.apache.maven.plugins + maven-dependency-plugin + + + org.apache.felix + maven-bundle-plugin + 3.3.0 + maven-plugin + + + true + + + maven-failsafe-plugin + 2.20 + + + chromedriver + + + + + net.serenity-bdd.maven.plugins + serenity-maven-plugin + ${serenity.plugin.version} + + + serenity-reports + post-integration-test + + aggregate + + + + + + + org.datanucleus + datanucleus-maven-plugin + 5.0.2 + + JDO + ${basedir}/datanucleus.properties + ${basedir}/log4j.properties + true + false + + + + + process-classes + + enhance + + + + + + + org.apache.maven.plugins + maven-jar-plugin + 3.0.2 + + + **/log4j.properties + + + + com.baeldung.neuroph.NeurophXOR + + + + + + org.apache.maven.plugins + maven-surefire-plugin + 2.18.1 + + + test + test + + test + + + + test/java/com/baeldung/neuroph/XORTest.java + + + + + + + + + + + + + org.beykery + neuroph + ${neuroph.version} + + + + cglib + cglib + ${cglib.version} + + + commons-beanutils + commons-beanutils + ${commons-beanutils.version} + + + org.apache.commons + commons-lang3 + ${commons-lang.version} + + + org.apache.commons + commons-text + ${commons-text.version} + + + org.apache.commons + commons-collections4 + ${commons.collections.version} + + + org.jasypt + jasypt + ${jasypt.version} + + + org.javatuples + javatuples + ${javatuples.version} + + + org.javassist + javassist + ${javaassist.version} + + + + org.assertj + assertj-core + ${assertj.version} + + + org.skyscreamer + jsonassert + ${jsonassert.version} + + + org.javers + javers-core + ${javers.version} + + + org.eclipse.jetty + jetty-server + ${jetty.version} + + + org.eclipse.jetty + jetty-servlet + ${jetty.version} + + + rome + rome + ${rome.version} + + + io.specto + hoverfly-java + 0.8.1 + + + org.apache.httpcomponents + httpclient + ${httpclient.version} + + + commons-logging + commons-logging + + + + + commons-io + commons-io + ${commons.io.version} + + + commons-chain + commons-chain + ${commons-chain.version} + + + org.apache.commons + commons-csv + ${commons-csv.version} + + + commons-dbutils + commons-dbutils + ${commons.dbutils.version} + + + org.apache.flink + flink-core + ${flink.version} + + + commons-logging + commons-logging + + + + + org.apache.flink + flink-java + ${flink.version} + + + commons-logging + commons-logging + + + + + org.apache.flink + flink-test-utils_2.10 + ${flink.version} + test + + + org.apache.commons + commons-math3 + 3.6.1 + + + net.serenity-bdd + serenity-core + ${serenity.version} + test + + + net.serenity-bdd + serenity-junit + ${serenity.version} + test + + + net.serenity-bdd + serenity-jbehave + ${serenity.jbehave.version} + test + + + net.serenity-bdd + serenity-rest-assured + ${serenity.version} + test + + + net.serenity-bdd + serenity-jira-requirements-provider + ${serenity.jira.version} + test + + + com.fasterxml.jackson.core + jackson-databind + ${jackson.version} + + + + org.datanucleus + javax.jdo + 3.2.0-m7 + + + org.datanucleus + datanucleus-core + 5.1.1 + + + org.datanucleus + datanucleus-api-jdo + 5.1.1 + + + org.datanucleus + datanucleus-rdbms + 5.1.1 + + + org.datanucleus + datanucleus-maven-plugin + 5.0.2 + + + org.datanucleus + datanucleus-xml + 5.0.0-release + + + net.openhft + chronicle + 3.6.4 + + + org.springframework + spring-web + 4.3.8.RELEASE + + + net.serenity-bdd + serenity-spring + ${serenity.version} + test + + + net.serenity-bdd + serenity-screenplay + ${serenity.version} + test + + + net.serenity-bdd + serenity-screenplay-webdriver + ${serenity.version} + test + + + io.rest-assured + spring-mock-mvc + 3.0.3 + test + + + org.multiverse + multiverse-core + ${multiverse.version} + + + com.zaxxer + HikariCP + 2.6.3 + compile + + + com.h2database + h2 + ${h2.version} + + + pl.pragmatists + JUnitParams + ${jUnitParams.version} + test + + + org.quartz-scheduler + quartz + 2.3.0 + + + one.util + streamex + ${streamex.version} + + + org.jooq + jool + 0.9.12 + + + org.openjdk.jmh + jmh-core + 1.19 + + + org.openjdk.jmh + jmh-generator-annprocess + 1.19 + + + io.netty + netty-all + ${netty.version} + + + junit + junit + ${junit.version} + test + + + info.debatty + java-lsh + ${java-lsh.version} + + + au.com.dius + pact-jvm-consumer-junit_2.11 + ${pact.version} + test + + + org.codehaus.groovy + groovy-all + 2.4.10 + + + org.awaitility + awaitility + ${awaitility.version} + test + + + org.awaitility + awaitility-proxy + ${awaitility.version} + test + + + org.hamcrest + java-hamcrest + ${org.hamcrest.java-hamcrest.version} + test + + + net.agkn + hll + ${hll.version} + + + net.bytebuddy + byte-buddy + ${bytebuddy.version} + + + net.bytebuddy + byte-buddy-agent + ${bytebuddy.version} + + + org.pcollections + pcollections + ${pcollections.version} + + + com.machinezoo.noexception + noexception + 1.1.0 + + + org.eclipse.collections + eclipse-collections + ${eclipse-collections.version} + + + io.vavr + vavr + ${vavr.version} + + + org.geotools + gt-shapefile + ${geotools.version} + + + org.geotools + gt-epsg-hsql + ${geotools.version} + + + org.geotools + gt-swing + ${geotools.version} + + + com.darwinsys + hirondelle-date4j + RELEASE + test + + + joda-time + joda-time + ${joda-time.version} + + + com.darwinsys + hirondelle-date4j + ${hirondelle-date4j.version} + + + com.haulmont.yarg + yarg + 2.0.4 + + + net.engio + mbassador + 1.3.1 + + + org.jdeferred + jdeferred-core + 1.2.6 + + + + + maven2-repository.dev.java.net + Java.net repository + http://download.java.net/maven/2 + + + osgeo + Open Source Geospatial Foundation Repository + http://download.osgeo.org/webdav/geotools/ + + + + true + + opengeo + OpenGeo Maven Repository + http://repo.opengeo.org + + + + false + + bintray-cuba-platform-main + bintray + http://dl.bintray.com/cuba-platform/main + + + + 0.7.0 + 3.2.4 + 3.6 + 1.1 + 1.9.3 + 1.2 + 1.4 + 1.9.2 + 1.2 + 3.21.0-GA + 3.6.2 + 1.5.0 + 3.1.0 + 9.4.3.v20170317 + 4.5.3 + 2.5 + 1.6 + 1.4.196 + 9.4.2.v20170220 + 4.5.3 + 2.5 + 1.2.0 + 2.8.5 + 2.92 + 1.4.0 + 1.24.0 + 1.1.3-rc.5 + 1.4.0 + 1.1.0 + 4.1.15.Final + 4.1 + 4.12 + 0.10 + 3.5.0 + 3.0.0 + 2.0.0.0 + 1.6.0 + 1.7.1 + 2.1.2 + 1.0 + 8.2.0 + 0.6.5 + 0.9.0 + 15.2 + 2.9.9 + 1.5.1 + diff --git a/libraries/src/main/java/com/baeldung/jdeffered/FilterDemo.java b/libraries/src/main/java/com/baeldung/jdeffered/FilterDemo.java new file mode 100644 index 0000000000..fc33824b6f --- /dev/null +++ b/libraries/src/main/java/com/baeldung/jdeffered/FilterDemo.java @@ -0,0 +1,28 @@ +package com.baeldung.jdeffered; + +import org.jdeferred.Deferred; +import org.jdeferred.Promise; +import org.jdeferred.impl.DeferredObject; + +public class FilterDemo { + + static String modifiedMsg; + + public static String filter(String msg) { + + Deferred d = new DeferredObject(); + Promise p = d.promise(); + Promise filtered = p.then((result) -> { + modifiedMsg = "Hello " + result; + }); + + filtered.done((result) -> { + System.out.println("filtering done"); + }); + + d.resolve(msg); + return modifiedMsg; + + } + +} diff --git a/libraries/src/main/java/com/baeldung/jdeffered/PipeDemo.java b/libraries/src/main/java/com/baeldung/jdeffered/PipeDemo.java new file mode 100644 index 0000000000..f3c72f1847 --- /dev/null +++ b/libraries/src/main/java/com/baeldung/jdeffered/PipeDemo.java @@ -0,0 +1,39 @@ +package com.baeldung.jdeffered; + +import org.jdeferred.Deferred; +import org.jdeferred.DonePipe; +import org.jdeferred.Promise; +import org.jdeferred.impl.DeferredObject; + +public class PipeDemo { + + public static enum Result { + SUCCESS, FAILURE + }; + + static Result status; + + public static Result validate(int num) { + Deferred d = new DeferredObject(); + Promise p = d.promise(); + + p.then(new DonePipe() { + public Deferred pipeDone(Integer result) { + if (result < 90) { + return new DeferredObject().resolve(result); + } else { + return new DeferredObject().reject(new Exception("Unacceptable value")); + } + } + }).done((result) -> { + status = Result.SUCCESS; + }).fail((result) -> { + status = Result.FAILURE; + }); + + d.resolve(num); + + return status; + } + +} diff --git a/libraries/src/main/java/com/baeldung/jdeffered/PromiseDemo.java b/libraries/src/main/java/com/baeldung/jdeffered/PromiseDemo.java new file mode 100644 index 0000000000..7e38afc3ac --- /dev/null +++ b/libraries/src/main/java/com/baeldung/jdeffered/PromiseDemo.java @@ -0,0 +1,29 @@ +package com.baeldung.jdeffered; + +import org.jdeferred.Deferred; +import org.jdeferred.Promise; +import org.jdeferred.impl.DeferredObject; + +public class PromiseDemo { + + public static void startJob(String jobName) { + + Deferred deferred = new DeferredObject(); + Promise promise = deferred.promise(); + + promise.done((result) -> { + System.out.println("Job done"); + }).fail((rejection) -> { + System.out.println("Job fail"); + }).progress((progress) -> { + System.out.println("Job is in progress"); + }).always((state, result, rejection) -> { + System.out.println("Job execution started"); + }); + + deferred.resolve(jobName); + // deferred.notify(""); + // deferred.reject("oops"); + } + +} \ No newline at end of file diff --git a/libraries/src/main/java/com/baeldung/jdeffered/ThreadSafeDemo.java b/libraries/src/main/java/com/baeldung/jdeffered/ThreadSafeDemo.java new file mode 100644 index 0000000000..ae9be964d3 --- /dev/null +++ b/libraries/src/main/java/com/baeldung/jdeffered/ThreadSafeDemo.java @@ -0,0 +1,40 @@ +package com.baeldung.jdeffered; + +import org.jdeferred.Deferred; +import org.jdeferred.DeferredManager; +import org.jdeferred.Promise; +import org.jdeferred.impl.DefaultDeferredManager; +import org.jdeferred.impl.DeferredObject; + +public class ThreadSafeDemo { + + public static void task() { + DeferredManager dm = new DefaultDeferredManager(); + Deferred deferred = new DeferredObject(); + Promise p1 = deferred.promise(); + Promise p = dm.when(p1).done((result) -> { + System.out.println("done"); + }).fail((result) -> { + System.out.println("fail"); + }); + + synchronized (p) { + while (p.isPending()) { + try { + p.wait(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } + + try { + p.waitSafely(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + deferred.resolve("Hello Baeldung"); + } + +} diff --git a/libraries/src/main/java/com/baeldung/jdeffered/manager/DeferredManagerDemo.java b/libraries/src/main/java/com/baeldung/jdeffered/manager/DeferredManagerDemo.java new file mode 100644 index 0000000000..65a720cc3f --- /dev/null +++ b/libraries/src/main/java/com/baeldung/jdeffered/manager/DeferredManagerDemo.java @@ -0,0 +1,23 @@ +package com.baeldung.jdeffered.manager; + +import org.jdeferred.Deferred; +import org.jdeferred.DeferredManager; +import org.jdeferred.Promise; +import org.jdeferred.impl.DefaultDeferredManager; +import org.jdeferred.impl.DeferredObject; + +public class DeferredManagerDemo { + + public static void initiate() { + Deferred deferred = new DeferredObject(); + DeferredManager dm = new DefaultDeferredManager(); + Promise p1 = deferred.promise(), p2 = deferred.promise(), p3 = deferred.promise(); + dm.when(p1, p2, p3).done((result) -> { + System.out.println("done"); + }).fail((result) -> { + System.out.println("fail"); + }); + deferred.resolve("Hello Baeldung"); + } + +} diff --git a/libraries/src/main/java/com/baeldung/jdeffered/manager/DeferredManagerWithExecutorDemo.java b/libraries/src/main/java/com/baeldung/jdeffered/manager/DeferredManagerWithExecutorDemo.java new file mode 100644 index 0000000000..e4669aab06 --- /dev/null +++ b/libraries/src/main/java/com/baeldung/jdeffered/manager/DeferredManagerWithExecutorDemo.java @@ -0,0 +1,27 @@ +package com.baeldung.jdeffered.manager; + +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + +import org.jdeferred.Deferred; +import org.jdeferred.DeferredManager; +import org.jdeferred.Promise; +import org.jdeferred.impl.DefaultDeferredManager; +import org.jdeferred.impl.DeferredObject; + +public class DeferredManagerWithExecutorDemo { + + public static void initiate() { + ExecutorService executor = Executors.newFixedThreadPool(10); + Deferred deferred = new DeferredObject(); + DeferredManager dm = new DefaultDeferredManager(executor); + Promise p1 = deferred.promise(), p2 = deferred.promise(), p3 = deferred.promise(); + dm.when(p1, p2, p3).done((result) -> { + System.out.println("done"); + }).fail((result) -> { + System.out.println("fail"); + }); + deferred.resolve("done"); + } + +} diff --git a/libraries/src/main/java/com/baeldung/jdeffered/manager/SimpleDeferredManagerDemo.java b/libraries/src/main/java/com/baeldung/jdeffered/manager/SimpleDeferredManagerDemo.java new file mode 100644 index 0000000000..fc58aa40a2 --- /dev/null +++ b/libraries/src/main/java/com/baeldung/jdeffered/manager/SimpleDeferredManagerDemo.java @@ -0,0 +1,19 @@ +package com.baeldung.jdeffered.manager; + +import org.jdeferred.DeferredManager; +import org.jdeferred.impl.DefaultDeferredManager; + +public class SimpleDeferredManagerDemo { + + public static void initiate() { + DeferredManager dm = new DefaultDeferredManager(); + dm.when(() -> { + return 1; + }).done((result) -> { + System.out.println("done"); + }).fail((e) -> { + e.printStackTrace(); + }); + } + +} diff --git a/libraries/src/test/java/com/baeldung/jdeffered/AppTest.java b/libraries/src/test/java/com/baeldung/jdeffered/AppTest.java new file mode 100644 index 0000000000..b48c9c2652 --- /dev/null +++ b/libraries/src/test/java/com/baeldung/jdeffered/AppTest.java @@ -0,0 +1,28 @@ +package com.baeldung.jdeffered; + +import org.junit.Test; + +import com.baeldung.jdeffered.PipeDemo.Result; + +import static org.junit.Assert.assertEquals; + +public class AppTest { + + @Test + public void givenJob_expectPromise() { + PromiseDemo.startJob("Baeldung Job"); + } + + @Test + public void givenMsg_expectModifiedMsg() { + String msg = FilterDemo.filter("Baeldung"); + assertEquals("Hello Baeldung", msg); + } + + @Test + public void givenNum_validateNum_expectStatus() { + Result result = PipeDemo.validate(80); + assertEquals(result, Result.SUCCESS); + } + +}