From 9063961bb43366b98422f56a7de77ab188f7c110 Mon Sep 17 00:00:00 2001 From: dhruba619 Date: Sun, 12 Mar 2017 20:49:43 +0530 Subject: [PATCH 1/3] BAEL-701 updated source after review --- .../test/java/baeldung/com/SimpleTest.java | 28 +++++++++++++++++++ testng/src/test/resources/test_suite.xml | 1 + 2 files changed, 29 insertions(+) create mode 100644 testng/src/test/java/baeldung/com/SimpleTest.java diff --git a/testng/src/test/java/baeldung/com/SimpleTest.java b/testng/src/test/java/baeldung/com/SimpleTest.java new file mode 100644 index 0000000000..24bf3a6f01 --- /dev/null +++ b/testng/src/test/java/baeldung/com/SimpleTest.java @@ -0,0 +1,28 @@ +package baeldung.com; + +import org.testng.Assert; +import org.testng.TestNG; +import org.testng.annotations.AfterClass; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; + +public class SimpleTest extends TestNG { + private int number; + + @BeforeClass + public void setup() { + number = 12; + } + + @AfterClass + public void tearDown() { + number = 0; + } + + @Test + public void givenNumber_whenEven_thenTrue() { + Assert.assertTrue(number % 2 == 0); + } + +} + diff --git a/testng/src/test/resources/test_suite.xml b/testng/src/test/resources/test_suite.xml index 0ccbbd2714..4d0b17cbe8 100644 --- a/testng/src/test/resources/test_suite.xml +++ b/testng/src/test/resources/test_suite.xml @@ -7,6 +7,7 @@ + \ No newline at end of file From 32147b4459f9b21db59660e04a0885ff86c5f051 Mon Sep 17 00:00:00 2001 From: dhruba619 Date: Sun, 19 Mar 2017 22:28:34 +0530 Subject: [PATCH 2/3] BAEL-702 Intro to Vert.x Initial commit --- pom.xml | 7 +- vertx/pom.xml | 111 ++++++++++++++++++ vertx/src/main/conf/conf.json | 3 + .../main/java/com/baeldung/HelloVerticle.java | 28 +++++ .../com/baeldung/SimpleServerVerticle.java | 26 ++++ .../main/java/com/baeldung/model/Article.java | 59 ++++++++++ .../baledung/rest/RestServiceVerticle.java | 41 +++++++ vertx/src/resources/logback.xml | 14 +++ .../com/baeldung/RestServiceVerticleTest.java | 46 ++++++++ .../baeldung/SimpleServerVerticleTest.java | 47 ++++++++ 10 files changed, 378 insertions(+), 4 deletions(-) create mode 100644 vertx/pom.xml create mode 100644 vertx/src/main/conf/conf.json create mode 100644 vertx/src/main/java/com/baeldung/HelloVerticle.java create mode 100644 vertx/src/main/java/com/baeldung/SimpleServerVerticle.java create mode 100644 vertx/src/main/java/com/baeldung/model/Article.java create mode 100644 vertx/src/main/java/com/baledung/rest/RestServiceVerticle.java create mode 100644 vertx/src/resources/logback.xml create mode 100644 vertx/src/test/java/com/baeldung/RestServiceVerticleTest.java create mode 100644 vertx/src/test/java/com/baeldung/SimpleServerVerticleTest.java diff --git a/pom.xml b/pom.xml index 9c24200a0b..312e2aef9f 100644 --- a/pom.xml +++ b/pom.xml @@ -203,9 +203,8 @@ apache-solrj rabbitmq - - - + vertx + @@ -216,4 +215,4 @@ --> - + \ No newline at end of file diff --git a/vertx/pom.xml b/vertx/pom.xml new file mode 100644 index 0000000000..971a61d336 --- /dev/null +++ b/vertx/pom.xml @@ -0,0 +1,111 @@ + + + 4.0.0 + + com.baeldung + parent-modules + 1.0.0-SNAPSHOT + + com.baeldung + vertx + 1.0-SNAPSHOT + vertx + http://maven.apache.org + + + junit + junit + 4.12 + test + + + + io.vertx + vertx-core + 3.0.0 + + + + io.vertx + vertx-web + 3.0.0 + + + + io.vertx + vertx-unit + 3.0.0 + test + + + + + + org.slf4j + slf4j-api + ${org.slf4j.version} + + + ch.qos.logback + logback-classic + ${logback.version} + + + + + + + maven-compiler-plugin + 3.3 + + 1.8 + 1.8 + + + + org.apache.maven.plugins + maven-shade-plugin + 2.3 + + + package + + shade + + + + + + io.vertx.core.Starter + com.baeldung.SimpleServerVerticle + + + + + ${project.build.directory}/${project.artifactId}-${project.version}-app.jar + + + + + + + + + + + 1.7.21 + 1.1.7 + + + 6.10 + + + 3.6.0 + 2.19.1 + + + + diff --git a/vertx/src/main/conf/conf.json b/vertx/src/main/conf/conf.json new file mode 100644 index 0000000000..4fa43ee648 --- /dev/null +++ b/vertx/src/main/conf/conf.json @@ -0,0 +1,3 @@ +{ + "http.port":8080 +} \ No newline at end of file diff --git a/vertx/src/main/java/com/baeldung/HelloVerticle.java b/vertx/src/main/java/com/baeldung/HelloVerticle.java new file mode 100644 index 0000000000..98d1b336a3 --- /dev/null +++ b/vertx/src/main/java/com/baeldung/HelloVerticle.java @@ -0,0 +1,28 @@ +package com.baeldung; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import io.vertx.core.AbstractVerticle; +import io.vertx.core.Future; +import io.vertx.core.Vertx; + +public class HelloVerticle extends AbstractVerticle { + private static final Logger LOGGER = LoggerFactory.getLogger(HelloVerticle.class); + + @Override + public void start(Future future) { + LOGGER.info("Welcome to Vertx"); + } + + @Override + public void stop() { + LOGGER.info("Shutting down application"); + } + + public static void main(String[] args) { + Vertx vertx = Vertx.vertx(); + vertx.deployVerticle(new HelloVerticle()); + } +} + diff --git a/vertx/src/main/java/com/baeldung/SimpleServerVerticle.java b/vertx/src/main/java/com/baeldung/SimpleServerVerticle.java new file mode 100644 index 0000000000..2cee37903b --- /dev/null +++ b/vertx/src/main/java/com/baeldung/SimpleServerVerticle.java @@ -0,0 +1,26 @@ +package com.baeldung; + +import io.vertx.core.AbstractVerticle; +import io.vertx.core.Future; + +public class SimpleServerVerticle extends AbstractVerticle { + + @Override + public void start(Future future) { + vertx.createHttpServer() + .requestHandler(request -> { + request.response() + .end("Welcome to Vert.x Intro"); + }) + .listen(config().getInteger("http.port", 8080), result -> { + if (result.succeeded()) { + future.complete(); + } else { + future.fail(result.cause()); + } + }); + } + +} + + diff --git a/vertx/src/main/java/com/baeldung/model/Article.java b/vertx/src/main/java/com/baeldung/model/Article.java new file mode 100644 index 0000000000..9f1fdb8203 --- /dev/null +++ b/vertx/src/main/java/com/baeldung/model/Article.java @@ -0,0 +1,59 @@ +package com.baeldung.model; + +public class Article { + private String id; + private String content; + private String author; + private String datePublished; + private int wordCount; + + public Article(String id, String content, String author, String datePublished, int wordCount) { + super(); + this.id = id; + this.content = content; + this.author = author; + this.datePublished = datePublished; + this.wordCount = wordCount; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public String getAuthor() { + return author; + } + + public void setAuthor(String author) { + this.author = author; + } + + public String getDatePublished() { + return datePublished; + } + + public void setDatePublished(String datePublished) { + this.datePublished = datePublished; + } + + public int getWordCount() { + return wordCount; + } + + public void setWordCount(int wordCount) { + this.wordCount = wordCount; + } + +} diff --git a/vertx/src/main/java/com/baledung/rest/RestServiceVerticle.java b/vertx/src/main/java/com/baledung/rest/RestServiceVerticle.java new file mode 100644 index 0000000000..181b3007d5 --- /dev/null +++ b/vertx/src/main/java/com/baledung/rest/RestServiceVerticle.java @@ -0,0 +1,41 @@ +package com.baledung.rest; + +import com.baeldung.model.Article; + +import io.vertx.core.AbstractVerticle; +import io.vertx.core.Future; +import io.vertx.core.json.Json; +import io.vertx.ext.web.Router; +import io.vertx.ext.web.RoutingContext; + +public class RestServiceVerticle extends AbstractVerticle { + @Override + public void start(Future future) { + + Router router = Router.router(vertx); + router.get("/api/baeldung/articles/article/:id") + .handler(this::getArticles); + + vertx.createHttpServer() + .requestHandler(router::accept) + .listen(config().getInteger("http.port", 8080), result -> { + if (result.succeeded()) { + future.complete(); + } else { + future.fail(result.cause()); + } + }); + } + + private void getArticles(RoutingContext routingContext) { + String articleId = routingContext.request() + .getParam("id"); + Article article = new Article(articleId, "This is an intro to vertx", "baeldung", "01-02-2017", 1578); + + routingContext.response() + .putHeader("content-type", "application/json") + .setStatusCode(200) + .end(Json.encodePrettily(article)); + } + +} diff --git a/vertx/src/resources/logback.xml b/vertx/src/resources/logback.xml new file mode 100644 index 0000000000..e9ae1894a6 --- /dev/null +++ b/vertx/src/resources/logback.xml @@ -0,0 +1,14 @@ + + + + + web - %date [%thread] %-5level %logger{36} - %message%n + + + + + + + + + \ No newline at end of file diff --git a/vertx/src/test/java/com/baeldung/RestServiceVerticleTest.java b/vertx/src/test/java/com/baeldung/RestServiceVerticleTest.java new file mode 100644 index 0000000000..8eebe1396d --- /dev/null +++ b/vertx/src/test/java/com/baeldung/RestServiceVerticleTest.java @@ -0,0 +1,46 @@ +package com.baeldung; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; + +import com.baledung.rest.RestServiceVerticle; + +import io.vertx.core.Vertx; +import io.vertx.ext.unit.Async; +import io.vertx.ext.unit.TestContext; +import io.vertx.ext.unit.junit.VertxUnitRunner; + +@RunWith(VertxUnitRunner.class) +public class RestServiceVerticleTest { + + private Vertx vertx; + + @Before + public void setup(TestContext testContext) { + vertx = Vertx.vertx(); + + vertx.deployVerticle(RestServiceVerticle.class.getName(), testContext.asyncAssertSuccess()); + } + + @After + public void tearDown(TestContext testContext) { + vertx.close(testContext.asyncAssertSuccess()); + } + + @Test + public void givenId_whenReceivedArticle_thenSuccess(TestContext testContext) { + final Async async = testContext.async(); + + vertx.createHttpClient() + .getNow(8080, "localhost", "/api/baeldung/articles/article/12345", response -> { + response.handler(responseBody -> { + testContext.assertTrue(responseBody.toString() + .contains("\"id\" : \"12345\"")); + async.complete(); + }); + }); + } + +} diff --git a/vertx/src/test/java/com/baeldung/SimpleServerVerticleTest.java b/vertx/src/test/java/com/baeldung/SimpleServerVerticleTest.java new file mode 100644 index 0000000000..177f8d8435 --- /dev/null +++ b/vertx/src/test/java/com/baeldung/SimpleServerVerticleTest.java @@ -0,0 +1,47 @@ +package com.baeldung; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; + +import io.vertx.core.DeploymentOptions; +import io.vertx.core.Vertx; +import io.vertx.core.json.JsonObject; +import io.vertx.ext.unit.Async; +import io.vertx.ext.unit.TestContext; +import io.vertx.ext.unit.junit.VertxUnitRunner; + +@RunWith(VertxUnitRunner.class) +public class SimpleServerVerticleTest { + private Vertx vertx; + + @Before + public void setup(TestContext testContext) { + vertx = Vertx.vertx(); + + vertx.deployVerticle(SimpleServerVerticle.class.getName(), + testContext.asyncAssertSuccess()); + } + + @After + public void tearDown(TestContext testContext) { + vertx.close(testContext.asyncAssertSuccess()); + } + + @Test + public void whenReceivedResponse_thenSuccess(TestContext testContext) { + final Async async = testContext.async(); + + vertx.createHttpClient() + .getNow(8080, "localhost", "/", response -> { + response.handler(responseBody -> { + testContext.assertTrue(responseBody.toString() + .contains("Welcome")); + async.complete(); + }); + }); + } + +} + From 5294e7d42587df12774dc50a7304c33d0beea9c8 Mon Sep 17 00:00:00 2001 From: slavisa-baeldung Date: Mon, 20 Mar 2017 15:50:43 +0000 Subject: [PATCH 3/3] BAEL-702 - Intro to Vert.x formatting changes --- .../main/java/com/baeldung/HelloVerticle.java | 10 +++---- .../com/baeldung/SimpleServerVerticle.java | 24 ++++++++--------- .../baledung/rest/RestServiceVerticle.java | 26 +++++++++---------- .../com/baeldung/RestServiceVerticleTest.java | 12 ++++----- .../baeldung/SimpleServerVerticleTest.java | 16 ++++++------ 5 files changed, 44 insertions(+), 44 deletions(-) diff --git a/vertx/src/main/java/com/baeldung/HelloVerticle.java b/vertx/src/main/java/com/baeldung/HelloVerticle.java index 98d1b336a3..59baceb0d8 100644 --- a/vertx/src/main/java/com/baeldung/HelloVerticle.java +++ b/vertx/src/main/java/com/baeldung/HelloVerticle.java @@ -10,6 +10,11 @@ import io.vertx.core.Vertx; public class HelloVerticle extends AbstractVerticle { private static final Logger LOGGER = LoggerFactory.getLogger(HelloVerticle.class); + public static void main(String[] args) { + Vertx vertx = Vertx.vertx(); + vertx.deployVerticle(new HelloVerticle()); + } + @Override public void start(Future future) { LOGGER.info("Welcome to Vertx"); @@ -19,10 +24,5 @@ public class HelloVerticle extends AbstractVerticle { public void stop() { LOGGER.info("Shutting down application"); } - - public static void main(String[] args) { - Vertx vertx = Vertx.vertx(); - vertx.deployVerticle(new HelloVerticle()); - } } diff --git a/vertx/src/main/java/com/baeldung/SimpleServerVerticle.java b/vertx/src/main/java/com/baeldung/SimpleServerVerticle.java index 2cee37903b..6b56896860 100644 --- a/vertx/src/main/java/com/baeldung/SimpleServerVerticle.java +++ b/vertx/src/main/java/com/baeldung/SimpleServerVerticle.java @@ -4,21 +4,21 @@ import io.vertx.core.AbstractVerticle; import io.vertx.core.Future; public class SimpleServerVerticle extends AbstractVerticle { - + @Override public void start(Future future) { vertx.createHttpServer() - .requestHandler(request -> { - request.response() - .end("Welcome to Vert.x Intro"); - }) - .listen(config().getInteger("http.port", 8080), result -> { - if (result.succeeded()) { - future.complete(); - } else { - future.fail(result.cause()); - } - }); + .requestHandler(request -> { + request.response() + .end("Welcome to Vert.x Intro"); + }) + .listen(config().getInteger("http.port", 8080), result -> { + if (result.succeeded()) { + future.complete(); + } else { + future.fail(result.cause()); + } + }); } } diff --git a/vertx/src/main/java/com/baledung/rest/RestServiceVerticle.java b/vertx/src/main/java/com/baledung/rest/RestServiceVerticle.java index 181b3007d5..802f74942e 100644 --- a/vertx/src/main/java/com/baledung/rest/RestServiceVerticle.java +++ b/vertx/src/main/java/com/baledung/rest/RestServiceVerticle.java @@ -14,28 +14,28 @@ public class RestServiceVerticle extends AbstractVerticle { Router router = Router.router(vertx); router.get("/api/baeldung/articles/article/:id") - .handler(this::getArticles); + .handler(this::getArticles); vertx.createHttpServer() - .requestHandler(router::accept) - .listen(config().getInteger("http.port", 8080), result -> { - if (result.succeeded()) { - future.complete(); - } else { - future.fail(result.cause()); - } - }); + .requestHandler(router::accept) + .listen(config().getInteger("http.port", 8080), result -> { + if (result.succeeded()) { + future.complete(); + } else { + future.fail(result.cause()); + } + }); } private void getArticles(RoutingContext routingContext) { String articleId = routingContext.request() - .getParam("id"); + .getParam("id"); Article article = new Article(articleId, "This is an intro to vertx", "baeldung", "01-02-2017", 1578); routingContext.response() - .putHeader("content-type", "application/json") - .setStatusCode(200) - .end(Json.encodePrettily(article)); + .putHeader("content-type", "application/json") + .setStatusCode(200) + .end(Json.encodePrettily(article)); } } diff --git a/vertx/src/test/java/com/baeldung/RestServiceVerticleTest.java b/vertx/src/test/java/com/baeldung/RestServiceVerticleTest.java index 8eebe1396d..b5be0734f4 100644 --- a/vertx/src/test/java/com/baeldung/RestServiceVerticleTest.java +++ b/vertx/src/test/java/com/baeldung/RestServiceVerticleTest.java @@ -34,13 +34,13 @@ public class RestServiceVerticleTest { final Async async = testContext.async(); vertx.createHttpClient() - .getNow(8080, "localhost", "/api/baeldung/articles/article/12345", response -> { - response.handler(responseBody -> { - testContext.assertTrue(responseBody.toString() - .contains("\"id\" : \"12345\"")); - async.complete(); + .getNow(8080, "localhost", "/api/baeldung/articles/article/12345", response -> { + response.handler(responseBody -> { + testContext.assertTrue(responseBody.toString() + .contains("\"id\" : \"12345\"")); + async.complete(); + }); }); - }); } } diff --git a/vertx/src/test/java/com/baeldung/SimpleServerVerticleTest.java b/vertx/src/test/java/com/baeldung/SimpleServerVerticleTest.java index 177f8d8435..189d2f6604 100644 --- a/vertx/src/test/java/com/baeldung/SimpleServerVerticleTest.java +++ b/vertx/src/test/java/com/baeldung/SimpleServerVerticleTest.java @@ -20,8 +20,8 @@ public class SimpleServerVerticleTest { public void setup(TestContext testContext) { vertx = Vertx.vertx(); - vertx.deployVerticle(SimpleServerVerticle.class.getName(), - testContext.asyncAssertSuccess()); + vertx.deployVerticle(SimpleServerVerticle.class.getName(), + testContext.asyncAssertSuccess()); } @After @@ -34,13 +34,13 @@ public class SimpleServerVerticleTest { final Async async = testContext.async(); vertx.createHttpClient() - .getNow(8080, "localhost", "/", response -> { - response.handler(responseBody -> { - testContext.assertTrue(responseBody.toString() - .contains("Welcome")); - async.complete(); + .getNow(8080, "localhost", "/", response -> { + response.handler(responseBody -> { + testContext.assertTrue(responseBody.toString() + .contains("Welcome")); + async.complete(); + }); }); - }); } }