From 64d5d39d0fd972c1130a6661ea07d0ac9f9a615a Mon Sep 17 00:00:00 2001 From: bitsofinfo Date: Sun, 19 Jun 2016 11:01:37 -0600 Subject: [PATCH 1/2] changes for monolithic subproject build --- Profiles-Blog-Monolithic/.gitignore | 1 + Profiles-Blog-Monolithic/bin/.gitignore | 2 ++ Profiles-Blog-Monolithic/build.gradle | 20 +++++++++++++++++++ .../java/org/jdw/blog/MonolithicMain.java | 13 ++++++++++++ .../src/main/resources/application.properties | 2 ++ .../jdw/blog/receiver/ReceiverController.java | 2 +- .../org/jdw/blog/sender/PayloadSender.java | 17 ++++++++++++++-- .../org/jdw/blog/sender/SenderController.java | 2 +- .../src/main/resources/application.properties | 1 + README.md | 7 +++++-- settings.gradle | 1 + 11 files changed, 62 insertions(+), 6 deletions(-) create mode 100644 Profiles-Blog-Monolithic/.gitignore create mode 100644 Profiles-Blog-Monolithic/bin/.gitignore create mode 100644 Profiles-Blog-Monolithic/build.gradle create mode 100644 Profiles-Blog-Monolithic/src/main/java/org/jdw/blog/MonolithicMain.java create mode 100644 Profiles-Blog-Monolithic/src/main/resources/application.properties diff --git a/Profiles-Blog-Monolithic/.gitignore b/Profiles-Blog-Monolithic/.gitignore new file mode 100644 index 0000000..84c048a --- /dev/null +++ b/Profiles-Blog-Monolithic/.gitignore @@ -0,0 +1 @@ +/build/ diff --git a/Profiles-Blog-Monolithic/bin/.gitignore b/Profiles-Blog-Monolithic/bin/.gitignore new file mode 100644 index 0000000..62a8b74 --- /dev/null +++ b/Profiles-Blog-Monolithic/bin/.gitignore @@ -0,0 +1,2 @@ +/application.properties +/org/ diff --git a/Profiles-Blog-Monolithic/build.gradle b/Profiles-Blog-Monolithic/build.gradle new file mode 100644 index 0000000..b618360 --- /dev/null +++ b/Profiles-Blog-Monolithic/build.gradle @@ -0,0 +1,20 @@ +description = 'Profiles-Blog-Monolithic' + +apply plugin: 'war' + +war { + baseName = 'Profiles-Blog-Monolithic' + version = '0.0.1-SNAPSHOT' +} + +dependencies { + compile project(':Profiles-Blog-Sender') + compile project(':Profiles-Blog-Receiver') +} + +// Ensure each project uses a different remote debug port +def remoteDebugPort = '5001' + +if (!project.hasProperty('prod')) { + bootRun.jvmArgs = ["-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=" + remoteDebugPort] +} diff --git a/Profiles-Blog-Monolithic/src/main/java/org/jdw/blog/MonolithicMain.java b/Profiles-Blog-Monolithic/src/main/java/org/jdw/blog/MonolithicMain.java new file mode 100644 index 0000000..d70963b --- /dev/null +++ b/Profiles-Blog-Monolithic/src/main/java/org/jdw/blog/MonolithicMain.java @@ -0,0 +1,13 @@ +package org.jdw.blog; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class MonolithicMain { + + public static void main(String[] args) throws Exception { + SpringApplication.run(new Class[]{SenderMain.class,ReceiverMain.class}, args); + } + +} diff --git a/Profiles-Blog-Monolithic/src/main/resources/application.properties b/Profiles-Blog-Monolithic/src/main/resources/application.properties new file mode 100644 index 0000000..11d9ed6 --- /dev/null +++ b/Profiles-Blog-Monolithic/src/main/resources/application.properties @@ -0,0 +1,2 @@ +server.port=9001 +sender.target.hostport=localhost:9001 \ No newline at end of file diff --git a/Profiles-Blog-Receiver/src/main/java/org/jdw/blog/receiver/ReceiverController.java b/Profiles-Blog-Receiver/src/main/java/org/jdw/blog/receiver/ReceiverController.java index 60b40d2..c2ca286 100644 --- a/Profiles-Blog-Receiver/src/main/java/org/jdw/blog/receiver/ReceiverController.java +++ b/Profiles-Blog-Receiver/src/main/java/org/jdw/blog/receiver/ReceiverController.java @@ -20,7 +20,7 @@ public void receivePayload(@RequestBody Payload payload) { receiveCountService.incrementReceiveCount(payload.getPayloadType()); } - @RequestMapping("/{payloadType}/count") + @RequestMapping("/receiver/{payloadType}/count") public ReceiveCount findReceiveCount(@PathVariable("payloadType") PayloadType payloadType) { return receiveCountService.findReceiveCount(payloadType); } diff --git a/Profiles-Blog-Sender/src/main/java/org/jdw/blog/sender/PayloadSender.java b/Profiles-Blog-Sender/src/main/java/org/jdw/blog/sender/PayloadSender.java index 531a3c7..483f49d 100644 --- a/Profiles-Blog-Sender/src/main/java/org/jdw/blog/sender/PayloadSender.java +++ b/Profiles-Blog-Sender/src/main/java/org/jdw/blog/sender/PayloadSender.java @@ -1,5 +1,6 @@ package org.jdw.blog.sender; +import org.springframework.beans.factory.annotation.Value; import java.util.Arrays; import javax.annotation.PostConstruct; @@ -20,8 +21,12 @@ public class PayloadSender { private RestTemplate restTemplate; + + @Value("${sender.target.hostport}") + private String serverHostPort; - @PostConstruct + + @PostConstruct public void initialize() { restTemplate = new RestTemplate(); @@ -48,10 +53,18 @@ public void sendPayloadToReceiver(PayloadType payloadType) { // Rudimentary destination hard-coding // Only sends to a local receiver // Receiver's port taken from Profiles-Blog-Receiver's application.properties - String url = "http://localhost:9002/receive"; + String url = "http://"+serverHostPort+"/receive"; // Invoke the endpoint in the Profiles-Blog-Receiver project restTemplate.postForEntity(url, payload, Void.class); } + + public String getServerHostPort() { + return serverHostPort; + } + + public void setServerHostPort(String serverHostPort) { + this.serverHostPort = serverHostPort; + } } diff --git a/Profiles-Blog-Sender/src/main/java/org/jdw/blog/sender/SenderController.java b/Profiles-Blog-Sender/src/main/java/org/jdw/blog/sender/SenderController.java index 332d2c2..f0dec71 100644 --- a/Profiles-Blog-Sender/src/main/java/org/jdw/blog/sender/SenderController.java +++ b/Profiles-Blog-Sender/src/main/java/org/jdw/blog/sender/SenderController.java @@ -21,7 +21,7 @@ public SendCount sendPayload(@PathVariable("payloadType") PayloadType payloadTyp return sendCountService.incrementSendCount(payloadType); } - @RequestMapping("/{payloadType}/count") + @RequestMapping("/sender/{payloadType}/count") public SendCount findSendCount(@PathVariable("payloadType") PayloadType payloadType) { return sendCountService.findSendCount(payloadType); } diff --git a/Profiles-Blog-Sender/src/main/resources/application.properties b/Profiles-Blog-Sender/src/main/resources/application.properties index de78e03..5f81287 100644 --- a/Profiles-Blog-Sender/src/main/resources/application.properties +++ b/Profiles-Blog-Sender/src/main/resources/application.properties @@ -1 +1,2 @@ server.port=9001 +sender.target.hostport=localhost:9002 diff --git a/README.md b/README.md index 79294ca..9c0fbe0 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,9 @@ gradle -Pdev bootRun Or, if in the parent project's directory, individual projects can be targeted using their name: gradle -Pdev Profiles-Blog-Sender:bootRun +You can also run all subprojects in a monolithic stack of the app with: +gradle -Ptest Profiles-Blog-Monolithic:bootRun + See common\_test\_application.properties and common\_dev\_application.properties for information about where each database is located. The prod profile requires database credentials to be passed using -P arguments as follows: @@ -26,13 +29,13 @@ http://localhost:9001/TEST1/send Sends a payload of the type specified in the URL to the Profiles-Blog-Sender project. Sample Response" {"payloadType":"TEST1","timesSent":1} -http://localhost:9001/TEST1/count +http://localhost:9001/sender/TEST1/count Displays the current number of times the specified payload type has been sent. Sample Response: {"payloadType":"TEST1","timesSent":1} **Profiles-Blog-Receiver supports one HTTP GET command:** -http://localhost:9002/TEST1/count +http://localhost:9002/receiver/TEST1/count Displays the current number of times the specified payload type has been received. Sample Response: {"payloadType":"TEST1","timesReceived":1} diff --git a/settings.gradle b/settings.gradle index 23cfdcf..9196642 100644 --- a/settings.gradle +++ b/settings.gradle @@ -3,3 +3,4 @@ rootProject.name = 'Profiles-Blog' include 'Profiles-Blog-Common' include 'Profiles-Blog-Sender' include 'Profiles-Blog-Receiver' +include 'Profiles-Blog-Monolithic' From 3374995fbfcb1de7e4a67e987c1678584d0d5aaa Mon Sep 17 00:00:00 2001 From: bitsofinfo Date: Sun, 19 Jun 2016 11:04:22 -0600 Subject: [PATCH 2/2] removed --- Profiles-Blog-Monolithic/bin/.gitignore | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 Profiles-Blog-Monolithic/bin/.gitignore diff --git a/Profiles-Blog-Monolithic/bin/.gitignore b/Profiles-Blog-Monolithic/bin/.gitignore deleted file mode 100644 index 62a8b74..0000000 --- a/Profiles-Blog-Monolithic/bin/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/application.properties -/org/