From 87e349066bf888fdd4fcdfaf8c998f49ccdd7449 Mon Sep 17 00:00:00 2001 From: Chris Bono Date: Sat, 29 Oct 2022 14:39:52 -0500 Subject: [PATCH] Split sample apps into multi-modules (#186) --- settings.gradle | 3 +- spring-pulsar-docs/build.gradle | 2 +- spring-pulsar-sample-apps/README.adoc | 20 ++++++------- .../{ => sample-app1}/build.gradle | 26 ++--------------- .../main/java/app1/SpringPulsarBootApp.java | 0 .../src/main/java/app1/package-info.java | 0 .../src/main/resources/application.yml | 0 .../sample-app2/build.gradle | 29 +++++++++++++++++++ .../main/java/app2/FailoverConsumerApp.java | 0 .../src/main/java/app2/package-info.java | 0 .../src/main/resources/application.yml | 12 ++++++++ 11 files changed, 56 insertions(+), 36 deletions(-) rename spring-pulsar-sample-apps/{ => sample-app1}/build.gradle (50%) rename spring-pulsar-sample-apps/{ => sample-app1}/src/main/java/app1/SpringPulsarBootApp.java (100%) rename spring-pulsar-sample-apps/{ => sample-app1}/src/main/java/app1/package-info.java (100%) rename spring-pulsar-sample-apps/{ => sample-app1}/src/main/resources/application.yml (100%) create mode 100644 spring-pulsar-sample-apps/sample-app2/build.gradle rename spring-pulsar-sample-apps/{ => sample-app2}/src/main/java/app2/FailoverConsumerApp.java (100%) rename spring-pulsar-sample-apps/{ => sample-app2}/src/main/java/app2/package-info.java (100%) create mode 100644 spring-pulsar-sample-apps/sample-app2/src/main/resources/application.yml diff --git a/settings.gradle b/settings.gradle index 1267e864..212ed9f3 100644 --- a/settings.gradle +++ b/settings.gradle @@ -26,5 +26,6 @@ include 'spring-pulsar' include 'spring-pulsar-dependencies' include 'spring-pulsar-spring-boot-autoconfigure' include 'spring-pulsar-spring-boot-starter' -include 'spring-pulsar-sample-apps' +include 'spring-pulsar-sample-apps:sample-app1' +include 'spring-pulsar-sample-apps:sample-app2' include 'spring-pulsar-docs' diff --git a/spring-pulsar-docs/build.gradle b/spring-pulsar-docs/build.gradle index 9d0cd39f..dae0db96 100644 --- a/spring-pulsar-docs/build.gradle +++ b/spring-pulsar-docs/build.gradle @@ -28,7 +28,7 @@ task aggregatedJavadoc(type: Javadoc) { title = "${rootProject.description} ${version} API" project.rootProject.gradle.projectsEvaluated { - Set excludedProjects = ['spring-pulsar-sample-apps'] + Set excludedProjects = ['spring-pulsar-sample-apps:sample-app1', 'spring-pulsar-sample-apps:sample-app2'] Set publishedProjects = rootProject.subprojects.findAll { it != project} .findAll { it.plugins.hasPlugin(JavaPlugin) && it.plugins.hasPlugin(MavenPublishPlugin) } .findAll { !excludedProjects.contains(it.name) } diff --git a/spring-pulsar-sample-apps/README.adoc b/spring-pulsar-sample-apps/README.adoc index 176a1bae..e3ac5358 100644 --- a/spring-pulsar-sample-apps/README.adoc +++ b/spring-pulsar-sample-apps/README.adoc @@ -23,18 +23,18 @@ TIP: The included link:../tools/pulsar/docker/README.adoc#_start_pulsar[Pulsar t **** === Steps -Make sure the above pre-requisites are satisfied and that you are in the `spring-pulsar-sample-apps` directory and follow the steps below. -=== App1 -To start the link:./src/main/java/app1/SpringPulsarBootApp.java[SpringPulsarBootApp] run the following command: +Make sure the above pre-requisites are satisfied. + +===== IDE +To run the app in your IDE just choose `Run/Debug` on the desired sample application class. + +===== Command Line +To run the app on the command line open a terminal and navigate to the desired sample application directory (underneath `spring-pulsar-sample-apps`) and execute the following command: + [source,bash] ---- -../gradlew bootRunApp1 +../../gradlew bootRun ---- -=== App2 -To start the link:./src/main/java/app2/FailoverConsumerApp.java[FailoverConsumerApp] run the following command: -[source,bash] ----- -../gradlew bootRunApp2 ----- +TIP: When running on the command line the `add-opens` JVM args are automatically configured which prevents annoying exceptions at runtime. diff --git a/spring-pulsar-sample-apps/build.gradle b/spring-pulsar-sample-apps/sample-app1/build.gradle similarity index 50% rename from spring-pulsar-sample-apps/build.gradle rename to spring-pulsar-sample-apps/sample-app1/build.gradle index 78b61bfa..ec8eeb72 100644 --- a/spring-pulsar-sample-apps/build.gradle +++ b/spring-pulsar-sample-apps/sample-app1/build.gradle @@ -3,7 +3,7 @@ plugins { id 'org.springframework.boot' version '3.0.0-SNAPSHOT' } -description = 'Spring Pulsar Sample Applications' +description = 'Spring Pulsar Sample Application (Send and Receive)' dependencies { api project(':spring-pulsar-spring-boot-starter') @@ -16,34 +16,12 @@ dependencies { implementation 'io.zipkin.reporter2:zipkin-sender-urlconnection' } -springBoot { - mainClass = 'app1.SpringPulsarBootApp' // default app to run -} - -task bootRunApp1(type: org.springframework.boot.gradle.tasks.run.BootRun, dependsOn: 'build') { - group = 'application' - mainClass = 'app1.SpringPulsarBootApp' +bootRun { jvmArgs = [ "--add-opens", "java.base/java.lang=ALL-UNNAMED", "--add-opens", "java.base/java.util=ALL-UNNAMED", "--add-opens", "java.base/sun.net=ALL-UNNAMED" ] - doFirst() { - classpath = sourceSets.main.runtimeClasspath - } -} - -task bootRunApp2(type: org.springframework.boot.gradle.tasks.run.BootRun, dependsOn: 'build') { - group = 'application' - mainClass = 'app2.FailoverConsumerApp' - jvmArgs = [ - "--add-opens", "java.base/java.lang=ALL-UNNAMED", - "--add-opens", "java.base/java.util=ALL-UNNAMED", - "--add-opens", "java.base/sun.net=ALL-UNNAMED" - ] - doFirst() { - classpath = sourceSets.main.runtimeClasspath - } } project.afterEvaluate { diff --git a/spring-pulsar-sample-apps/src/main/java/app1/SpringPulsarBootApp.java b/spring-pulsar-sample-apps/sample-app1/src/main/java/app1/SpringPulsarBootApp.java similarity index 100% rename from spring-pulsar-sample-apps/src/main/java/app1/SpringPulsarBootApp.java rename to spring-pulsar-sample-apps/sample-app1/src/main/java/app1/SpringPulsarBootApp.java diff --git a/spring-pulsar-sample-apps/src/main/java/app1/package-info.java b/spring-pulsar-sample-apps/sample-app1/src/main/java/app1/package-info.java similarity index 100% rename from spring-pulsar-sample-apps/src/main/java/app1/package-info.java rename to spring-pulsar-sample-apps/sample-app1/src/main/java/app1/package-info.java diff --git a/spring-pulsar-sample-apps/src/main/resources/application.yml b/spring-pulsar-sample-apps/sample-app1/src/main/resources/application.yml similarity index 100% rename from spring-pulsar-sample-apps/src/main/resources/application.yml rename to spring-pulsar-sample-apps/sample-app1/src/main/resources/application.yml diff --git a/spring-pulsar-sample-apps/sample-app2/build.gradle b/spring-pulsar-sample-apps/sample-app2/build.gradle new file mode 100644 index 00000000..694ff0f3 --- /dev/null +++ b/spring-pulsar-sample-apps/sample-app2/build.gradle @@ -0,0 +1,29 @@ +plugins { + id 'org.springframework.pulsar.spring-module' + id 'org.springframework.boot' version '3.0.0-SNAPSHOT' +} + +description = 'Spring Pulsar Sample Applications (Custom Routing)' + +dependencies { + api project(':spring-pulsar-spring-boot-starter') + implementation 'com.google.code.findbugs:jsr305' + + // observability + implementation 'org.springframework.boot:spring-boot-starter-actuator' + implementation 'io.micrometer:micrometer-tracing-bridge-brave' + implementation 'io.zipkin.reporter2:zipkin-reporter-brave' + implementation 'io.zipkin.reporter2:zipkin-sender-urlconnection' +} + +bootRun { + jvmArgs = [ + "--add-opens", "java.base/java.lang=ALL-UNNAMED", + "--add-opens", "java.base/java.util=ALL-UNNAMED", + "--add-opens", "java.base/sun.net=ALL-UNNAMED" + ] +} + +project.afterEvaluate { + project.tasks.artifactoryPublish.enabled(false) +} diff --git a/spring-pulsar-sample-apps/src/main/java/app2/FailoverConsumerApp.java b/spring-pulsar-sample-apps/sample-app2/src/main/java/app2/FailoverConsumerApp.java similarity index 100% rename from spring-pulsar-sample-apps/src/main/java/app2/FailoverConsumerApp.java rename to spring-pulsar-sample-apps/sample-app2/src/main/java/app2/FailoverConsumerApp.java diff --git a/spring-pulsar-sample-apps/src/main/java/app2/package-info.java b/spring-pulsar-sample-apps/sample-app2/src/main/java/app2/package-info.java similarity index 100% rename from spring-pulsar-sample-apps/src/main/java/app2/package-info.java rename to spring-pulsar-sample-apps/sample-app2/src/main/java/app2/package-info.java diff --git a/spring-pulsar-sample-apps/sample-app2/src/main/resources/application.yml b/spring-pulsar-sample-apps/sample-app2/src/main/resources/application.yml new file mode 100644 index 00000000..091b1570 --- /dev/null +++ b/spring-pulsar-sample-apps/sample-app2/src/main/resources/application.yml @@ -0,0 +1,12 @@ +logging: + level: + org.apache.pulsar: error + +management: + tracing: + enabled: false + sampling: + probability: 1.0 + zipkin: + tracing: + endpoint: "http://localhost:9411/api/v2/spans"