diff --git a/README.adoc b/README.adoc index b6e2ee97..04267d5d 100644 --- a/README.adoc +++ b/README.adoc @@ -49,20 +49,27 @@ If you want to build everything and run tests, use the `build` task: [source,shell] ---- -./gradlew clean build +./gradlew build ---- NOTE: Some tests rely on a Docker daemon to test against live services using https://www.testcontainers.org/[Testcontainers]. These tests will be skipped if a local Docker daemon is not available. -The above command will build everything and run all tests except the `PulsarFunctionAdministrationIntegrationTests` which requires the _Pulsar RabbitMQ Connector_ to be downloaded prior to running. +The above command will build everything and run all unit tests and integration tests except the `PulsarFunctionAdministrationIntegrationTests` which requires the _Pulsar RabbitMQ Connector_ to be downloaded prior to running. To download the connector (one time only) and run the integration test, add a system property to the task as follows: [source,shell] ---- -./gradlew clean build -DdownloadRabbitConnector=true +./gradlew build -DdownloadRabbitConnector=true ---- +By default, the `build` command will run unit tests followed by integration tests. +If you want skip tests, use the `-x test` and/or `-x integrationTest` options: + +[source,shell] +---- +./gradlew build -x test -x integrationTest +---- == Modules There are several modules in Spring Pulsar. Here is a quick overview: diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 7abe8178..913f66a7 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -6,13 +6,20 @@ plugins { } repositories { - gradlePluginPortal() mavenCentral() - maven { url 'https://repo.spring.io/milestone' } - if (version.endsWith('SNAPSHOT')) { - maven { url 'https://repo.spring.io/snapshot' } + gradlePluginPortal() +} + +new File(new File("$projectDir").parentFile, "gradle.properties").withInputStream { + def properties = new Properties() + properties.load(it) + ext.set("springFrameworkVersion", properties["springFrameworkVersion"]) + if (properties["springFrameworkVersion"].contains("-")) { + repositories { + maven { url "https://repo.spring.io/milestone" } + maven { url "https://repo.spring.io/snapshot" } + } } - jcenter() } sourceCompatibility = JavaVersion.VERSION_17 @@ -32,13 +39,13 @@ configurations { } ext { - springBootVersion = '3.0.5' + springBootVersion = '3.1.1-SNAPSHOT' } dependencies { implementation localGroovy() - implementation 'commons-codec:commons-codec' - implementation 'com.fasterxml.jackson.core:jackson-databind' + implementation 'commons-codec:commons-codec:1.15' + implementation 'com.fasterxml.jackson.core:jackson-databind:2.11.4' implementation 'io.github.gradle-nexus:publish-plugin:1.1.0' implementation("io.spring.javaformat:spring-javaformat-gradle-plugin:0.0.34") implementation 'io.spring.nohttp:nohttp-gradle:0.0.10' @@ -46,26 +53,11 @@ dependencies { implementation "org.asciidoctor:asciidoctor-gradle-jvm:3.3.2" implementation 'org.codehaus.groovy:groovy-all:2.5.17' implementation 'org.jfrog.buildinfo:build-info-extractor-gradle:4.31.9' - implementation "org.gradle:test-retry-gradle-plugin:1.4.0" implementation 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.7.1' - implementation(platform("org.springframework.boot:spring-boot-dependencies:${springBootVersion}")) + implementation(platform("org.springframework:spring-framework-bom:${springFrameworkVersion}")) implementation 'org.springframework:spring-core' implementation 'org.springframework:spring-web' - - testImplementation 'org.assertj:assertj-core' - testImplementation 'org.apache.logging.log4j:log4j-core' - testImplementation 'org.junit.jupiter:junit-jupiter' - testRuntimeOnly 'org.junit.platform:junit-platform-launcher' -} - -tasks.named('test', Test).configure { - onlyIf { !project.hasProperty("buildSrc.skipTests") } - useJUnitPlatform() - jvmArgs( - '--add-opens', 'java.base/java.lang=ALL-UNNAMED', - '--add-opens', 'java.base/java.util=ALL-UNNAMED' - ) } gradlePlugin { diff --git a/gradle.properties b/gradle.properties index 1fc5fb63..ce839aa5 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,3 +3,12 @@ version=1.0.0-SNAPSHOT org.gradle.caching=true org.gradle.parallel=true org.gradle.jvmargs=-Xmx4g -XX:+HeapDumpOnOutOfMemoryError -XX:+UseParallelGC -Dfile.encoding=UTF-8 + +pulsarClientVersion=3.0.0 +pulsarClientReactiveVersion=0.3.0 +springBootVersion=3.1.1-SNAPSHOT +springFrameworkVersion=6.0.9 +# these are temp until autoconfig moves into boot +springPulsarStarterVersion=0.2.1-SNAPSHOT +springPulsarBinderVersion=0.2.1-SNAPSHOT +springCloudStreamVersion=4.0.3 diff --git a/integration-tests/build.gradle b/integration-tests/build.gradle new file mode 100644 index 00000000..77a134af --- /dev/null +++ b/integration-tests/build.gradle @@ -0,0 +1,58 @@ +plugins { + id 'org.springframework.pulsar.spring-module' + id "de.undercouch.download" version "5.3.0" + id 'spring-pulsar.integration-test-conventions' +} + +description = 'Spring Pulsar Integration Tests' + +dependencies { + intTestImplementation project(':spring-pulsar-test') + intTestRuntimeOnly 'ch.qos.logback:logback-classic' + intTestRuntimeOnly 'org.junit.platform:junit-platform-launcher' + intTestImplementation "org.springframework.boot:spring-boot-starter-test:$springBootVersion" + intTestImplementation "org.springframework.boot:spring-boot-starter-amqp:$springBootVersion" + intTestImplementation "org.springframework.pulsar:spring-pulsar-spring-boot-starter:$springPulsarStarterVersion" + intTestImplementation "org.springframework.pulsar:spring-pulsar-reactive-spring-boot-starter:$springPulsarStarterVersion" + intTestImplementation 'org.testcontainers:junit-jupiter' + intTestImplementation 'org.testcontainers:pulsar' + intTestImplementation 'org.testcontainers:rabbitmq' +} + +test { + testLogging.showStandardStreams = true +} + +integrationTest { + maxHeapSize '2048m' +} + +task downloadRabbitConnector { + onlyIf { + System.getProperty("downloadRabbitConnector") == "true" + } + doLast { + try { + download.run { + println "Downloading Rabbit connector to 'src/intTest/resources/connectors/' (one time only if not already downloaded)..." + src 'https://archive.apache.org/dist/pulsar/pulsar-2.10.2/connectors/pulsar-io-rabbitmq-2.10.2.nar' + dest "$buildDir/../src/intTest/resources/connectors/pulsar-io-rabbitmq-2.10.2.nar" + overwrite false + } + } catch (Exception ex) { + println "Failed to download rabbit connector: $ex" + } + } +} + +project.afterEvaluate { + integrationTest.dependsOn downloadRabbitConnector +} + +project.afterEvaluate { + project.tasks.publishArtifacts.enabled(false) + project.tasks.artifactoryPublish.enabled(false) + project.tasks.publishToOssrh.enabled(false) + project.tasks.publishMavenJavaPublicationToOssrhRepository.enabled(false) + project.tasks.publishAllPublicationsToOssrhRepository.enabled(false) +} diff --git a/spring-pulsar/src/intTest/java/org/springframework/pulsar/autoconfigure/PulsarFunctionAdministrationIntegrationTests.java b/integration-tests/src/intTest/java/org/springframework/pulsar/autoconfigure/PulsarFunctionAdministrationIntegrationTests.java similarity index 100% rename from spring-pulsar/src/intTest/java/org/springframework/pulsar/autoconfigure/PulsarFunctionAdministrationIntegrationTests.java rename to integration-tests/src/intTest/java/org/springframework/pulsar/autoconfigure/PulsarFunctionAdministrationIntegrationTests.java diff --git a/spring-pulsar/src/intTest/java/org/springframework/pulsar/autoconfigure/PulsarListenerIntegrationTests.java b/integration-tests/src/intTest/java/org/springframework/pulsar/autoconfigure/PulsarListenerIntegrationTests.java similarity index 100% rename from spring-pulsar/src/intTest/java/org/springframework/pulsar/autoconfigure/PulsarListenerIntegrationTests.java rename to integration-tests/src/intTest/java/org/springframework/pulsar/autoconfigure/PulsarListenerIntegrationTests.java diff --git a/spring-pulsar-reactive/src/intTest/java/org/springframework/pulsar/autoconfigure/ReactivePulsarListenerIntegrationTests.java b/integration-tests/src/intTest/java/org/springframework/pulsar/autoconfigure/ReactivePulsarListenerIntegrationTests.java similarity index 100% rename from spring-pulsar-reactive/src/intTest/java/org/springframework/pulsar/autoconfigure/ReactivePulsarListenerIntegrationTests.java rename to integration-tests/src/intTest/java/org/springframework/pulsar/autoconfigure/ReactivePulsarListenerIntegrationTests.java diff --git a/spring-pulsar-reactive/src/intTest/resources/application.yml b/integration-tests/src/intTest/resources/application.yml similarity index 100% rename from spring-pulsar-reactive/src/intTest/resources/application.yml rename to integration-tests/src/intTest/resources/application.yml diff --git a/spring-pulsar-reactive/src/intTest/resources/logback-test.xml b/integration-tests/src/intTest/resources/logback-test.xml similarity index 100% rename from spring-pulsar-reactive/src/intTest/resources/logback-test.xml rename to integration-tests/src/intTest/resources/logback-test.xml diff --git a/settings.gradle b/settings.gradle index 8f95b94e..f6db9299 100644 --- a/settings.gradle +++ b/settings.gradle @@ -37,3 +37,4 @@ include 'spring-pulsar-sample-apps:sample-pulsar-binder' include 'spring-pulsar-sample-apps:sample-pulsar-reader' include 'spring-pulsar-docs' include 'spring-pulsar-test' +include 'integration-tests' diff --git a/spring-pulsar-dependencies/build.gradle b/spring-pulsar-dependencies/build.gradle index 8ec94493..1ee414f7 100644 --- a/spring-pulsar-dependencies/build.gradle +++ b/spring-pulsar-dependencies/build.gradle @@ -6,31 +6,30 @@ javaPlatform { allowDependencies() } -ext { - googleJsr305Version = '3.0.2' - protobufJavaVersion = '3.21.5' - testcontainersVersion = '1.17.6' - pulsarVersion = '3.0.0' - pulsarClientReactiveVersion = '0.3.0' - springBootVersion = '3.0.5' - springPulsarStarterVersion = '0.2.1-SNAPSHOT' - springPulsarBinderVersion = '0.2.1-SNAPSHOT' - springCloudStreamVersion = '4.0.1' -} - dependencies { - api platform("org.springframework.boot:spring-boot-dependencies:$springBootVersion") - api platform("org.testcontainers:testcontainers-bom:$testcontainersVersion") + api platform("com.fasterxml.jackson:jackson-bom:2.15.0") + api platform("io.micrometer:micrometer-bom:1.11.0") + api platform("io.micrometer:micrometer-tracing-bom:1.1.1") + api platform("io.projectreactor:reactor-bom:2022.0.7") + api platform("io.zipkin.brave:brave-bom:5.15.1") + api platform("org.assertj:assertj-bom:3.24.2") + api platform("org.awaitility:awaitility:4.2.0") + api platform("org.junit:junit-bom:5.9.3") + api platform("org.mockito:mockito-bom:5.3.1") + api platform("org.springframework:spring-framework-bom:$springFrameworkVersion") + api platform("org.testcontainers:testcontainers-bom:1.18.0") + constraints { - api "com.google.code.findbugs:jsr305:$googleJsr305Version" - api "com.google.protobuf:protobuf-java:$protobufJavaVersion" - api "org.apache.pulsar:pulsar-client-all:$pulsarVersion" + api "ch.qos.logback:logback-classic:1.4.7" + api "com.github.ben-manes.caffeine:caffeine:3.1.6" + api "com.google.code.findbugs:jsr305:3.0.2" + api "com.google.protobuf:protobuf-java:3.21.5" + api "com.jayway.jsonpath:json-path:2.8.0" + api "org.apache.pulsar:pulsar-client-all:$pulsarClientVersion" api "org.apache.pulsar:pulsar-client-reactive-adapter:$pulsarClientReactiveVersion" api "org.apache.pulsar:pulsar-client-reactive-producer-cache-caffeine-shaded:$pulsarClientReactiveVersion" - api "org.springframework.cloud:spring-cloud-stream:$springCloudStreamVersion" - api "org.springframework.cloud:spring-cloud-stream-test-support:$springCloudStreamVersion" - api "org.springframework.pulsar:spring-pulsar-spring-boot-starter:$springPulsarStarterVersion" - api "org.springframework.pulsar:spring-pulsar-reactive-spring-boot-starter:$springPulsarStarterVersion" - api "org.springframework.pulsar:spring-pulsar-spring-cloud-stream-binder:$springPulsarBinderVersion" + // spring-pulsar tests (OutputCaptureExtension) + api "org.springframework.boot:spring-boot-test:$springBootVersion" + api "org.springframework.retry:spring-retry:2.0.1" } } diff --git a/spring-pulsar-docs/build.gradle b/spring-pulsar-docs/build.gradle index c5a28d12..79007ef5 100644 --- a/spring-pulsar-docs/build.gradle +++ b/spring-pulsar-docs/build.gradle @@ -15,7 +15,6 @@ configurations { dependencies { api project (':spring-pulsar') - api 'org.springframework.boot:spring-boot-starter' observationDocs "io.micrometer:micrometer-docs-generator:$micrometerDocsVersion" } @@ -86,11 +85,11 @@ tasks.withType(org.asciidoctor.gradle.jvm.AbstractAsciidoctorTask) { jvmArgs "--add-opens", "java.base/sun.nio.ch=ALL-UNNAMED", "--add-opens", "java.base/java.io=ALL-UNNAMED" } doFirst { - attributes "spring-boot-version": project(':spring-pulsar-dependencies').springBootVersion ?: 'current', - "spring-cloud-stream-version": project(':spring-pulsar-dependencies').springCloudStreamVersion ?: 'current', + attributes "spring-boot-version": project.springBootVersion ?: 'current', + "spring-cloud-stream-version": project.springCloudStreamVersion ?: 'current', "spring-pulsar-version": project.version, - "spring-pulsar-binder-version": project(':spring-pulsar-dependencies').springPulsarBinderVersion ?: 'current', - "spring-pulsar-starter-version": project(':spring-pulsar-dependencies').springPulsarStarterVersion ?: 'current' + "spring-pulsar-binder-version": project.springPulsarBinderVersion ?: 'current', + "spring-pulsar-starter-version": project.springPulsarStarterVersion ?: 'current' } } diff --git a/spring-pulsar-reactive/build.gradle b/spring-pulsar-reactive/build.gradle index d1ca9873..af80c37f 100644 --- a/spring-pulsar-reactive/build.gradle +++ b/spring-pulsar-reactive/build.gradle @@ -1,6 +1,5 @@ plugins { id 'org.springframework.pulsar.spring-module' - id 'spring-pulsar.integration-test-conventions' } description = 'Spring Pulsar Reactive Support' @@ -38,16 +37,8 @@ dependencies { testImplementation 'org.springframework:spring-test' testImplementation 'org.testcontainers:junit-jupiter' testImplementation 'org.testcontainers:pulsar' - - intTestImplementation 'org.springframework.pulsar:spring-pulsar-reactive-spring-boot-starter' - intTestImplementation 'org.testcontainers:junit-jupiter' - intTestImplementation 'org.testcontainers:pulsar' } test { testLogging.showStandardStreams = true } - -integrationTest { - maxHeapSize '2048m' -} diff --git a/spring-pulsar-sample-apps/sample-app1/build.gradle b/spring-pulsar-sample-apps/sample-app1/build.gradle index 7dc4bf62..8e4a486a 100644 --- a/spring-pulsar-sample-apps/sample-app1/build.gradle +++ b/spring-pulsar-sample-apps/sample-app1/build.gradle @@ -1,15 +1,19 @@ plugins { - id 'org.springframework.pulsar.spring-module' - id 'org.springframework.boot' version '3.0.5' + id 'java' + id 'org.springframework.boot' version '3.1.1-SNAPSHOT' + id 'io.spring.dependency-management' version '1.1.0' } description = 'Spring Pulsar Sample Application (Send and Receive)' -dependencies { - implementation 'org.springframework.pulsar:spring-pulsar-spring-boot-starter' - implementation 'com.google.code.findbugs:jsr305' +repositories { + mavenCentral() + maven { url 'https://repo.spring.io/milestone' } + maven { url 'https://repo.spring.io/snapshot' } +} - // observability +dependencies { + implementation "org.springframework.pulsar:spring-pulsar-spring-boot-starter:${springPulsarStarterVersion}" implementation 'org.springframework.boot:spring-boot-starter-actuator' implementation 'io.micrometer:micrometer-tracing-bridge-brave' implementation 'io.zipkin.reporter2:zipkin-reporter-brave' @@ -23,11 +27,3 @@ bootRun { "--add-opens", "java.base/sun.net=ALL-UNNAMED" ] } - -project.afterEvaluate { - project.tasks.publishArtifacts.enabled(false) - project.tasks.artifactoryPublish.enabled(false) - project.tasks.publishToOssrh.enabled(false) - project.tasks.publishMavenJavaPublicationToOssrhRepository.enabled(false) - project.tasks.publishAllPublicationsToOssrhRepository.enabled(false) -} diff --git a/spring-pulsar-sample-apps/sample-app2/build.gradle b/spring-pulsar-sample-apps/sample-app2/build.gradle index 3b1c8f9e..1c3f2036 100644 --- a/spring-pulsar-sample-apps/sample-app2/build.gradle +++ b/spring-pulsar-sample-apps/sample-app2/build.gradle @@ -1,15 +1,19 @@ plugins { - id 'org.springframework.pulsar.spring-module' - id 'org.springframework.boot' version '3.0.5' + id 'java' + id 'org.springframework.boot' version '3.1.1-SNAPSHOT' + id 'io.spring.dependency-management' version '1.1.0' } description = 'Spring Pulsar Sample Applications (Custom Routing)' -dependencies { - implementation 'org.springframework.pulsar:spring-pulsar-spring-boot-starter' - implementation 'com.google.code.findbugs:jsr305' +repositories { + mavenCentral() + maven { url 'https://repo.spring.io/milestone' } + maven { url 'https://repo.spring.io/snapshot' } +} - // observability +dependencies { + implementation "org.springframework.pulsar:spring-pulsar-spring-boot-starter:${springPulsarStarterVersion}" implementation 'org.springframework.boot:spring-boot-starter-actuator' implementation 'io.micrometer:micrometer-tracing-bridge-brave' implementation 'io.zipkin.reporter2:zipkin-reporter-brave' @@ -23,11 +27,3 @@ bootRun { "--add-opens", "java.base/sun.net=ALL-UNNAMED" ] } - -project.afterEvaluate { - project.tasks.publishArtifacts.enabled(false) - project.tasks.artifactoryPublish.enabled(false) - project.tasks.publishToOssrh.enabled(false) - project.tasks.publishMavenJavaPublicationToOssrhRepository.enabled(false) - project.tasks.publishAllPublicationsToOssrhRepository.enabled(false) -} diff --git a/spring-pulsar-sample-apps/sample-pulsar-binder/build.gradle b/spring-pulsar-sample-apps/sample-pulsar-binder/build.gradle index 66861151..b344e460 100644 --- a/spring-pulsar-sample-apps/sample-pulsar-binder/build.gradle +++ b/spring-pulsar-sample-apps/sample-pulsar-binder/build.gradle @@ -1,13 +1,20 @@ plugins { - id 'org.springframework.pulsar.spring-module' - id 'org.springframework.boot' version '3.0.5' + id 'java' + id 'org.springframework.boot' version '3.1.1-SNAPSHOT' + id 'io.spring.dependency-management' version '1.1.0' } description = 'Spring Cloud Stream Binder for Pulsar Sample Application' +repositories { + mavenCentral() + maven { url 'https://repo.spring.io/milestone' } + maven { url 'https://repo.spring.io/snapshot' } +} + dependencies { - implementation 'org.springframework.pulsar:spring-pulsar-spring-cloud-stream-binder' - implementation 'org.springframework.pulsar:spring-pulsar-spring-boot-starter' + implementation "org.springframework.pulsar:spring-pulsar-spring-cloud-stream-binder:${springPulsarBinderVersion}" + implementation "org.springframework.pulsar:spring-pulsar-spring-boot-starter:${springPulsarStarterVersion}" } bootRun { @@ -17,11 +24,3 @@ bootRun { "--add-opens", "java.base/sun.net=ALL-UNNAMED" ] } - -project.afterEvaluate { - project.tasks.publishArtifacts.enabled(false) - project.tasks.artifactoryPublish.enabled(false) - project.tasks.publishToOssrh.enabled(false) - project.tasks.publishMavenJavaPublicationToOssrhRepository.enabled(false) - project.tasks.publishAllPublicationsToOssrhRepository.enabled(false) -} diff --git a/spring-pulsar-sample-apps/sample-pulsar-functions/sample-signup-app/build.gradle b/spring-pulsar-sample-apps/sample-pulsar-functions/sample-signup-app/build.gradle index 81b13cd9..1cf4a616 100644 --- a/spring-pulsar-sample-apps/sample-pulsar-functions/sample-signup-app/build.gradle +++ b/spring-pulsar-sample-apps/sample-pulsar-functions/sample-signup-app/build.gradle @@ -1,23 +1,28 @@ plugins { - id 'org.springframework.pulsar.spring-module' - id 'org.springframework.boot' version '3.0.5' + id 'java' + id 'org.springframework.boot' version '3.1.1-SNAPSHOT' + id 'io.spring.dependency-management' version '1.1.0' } group = 'org.springframework.pulsar.sample' description = 'Sample Signup App (Pulsar Functions)' +repositories { + mavenCentral() + maven { url 'https://repo.spring.io/milestone' } + maven { url 'https://repo.spring.io/snapshot' } +} + dependencies { - implementation 'org.springframework.pulsar:spring-pulsar-spring-boot-starter' + implementation "org.springframework.pulsar:spring-pulsar-spring-cloud-stream-binder:${springPulsarBinderVersion}" + implementation "org.springframework.pulsar:spring-pulsar-spring-boot-starter:${springPulsarStarterVersion}" implementation 'org.springframework.boot:spring-boot-starter-amqp' implementation 'org.springframework.boot:spring-boot-starter-data-cassandra' - implementation 'com.devskiller:jfairy:0.6.5' - 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' + implementation 'com.devskiller:jfairy:0.6.5' } bootRun { @@ -27,11 +32,3 @@ bootRun { "--add-opens", "java.base/sun.net=ALL-UNNAMED" ] } - -project.afterEvaluate { - project.tasks.publishArtifacts.enabled(false) - project.tasks.artifactoryPublish.enabled(false) - project.tasks.publishToOssrh.enabled(false) - project.tasks.publishMavenJavaPublicationToOssrhRepository.enabled(false) - project.tasks.publishAllPublicationsToOssrhRepository.enabled(false) -} diff --git a/spring-pulsar-sample-apps/sample-pulsar-reader/build.gradle b/spring-pulsar-sample-apps/sample-pulsar-reader/build.gradle index 8a218877..78b8165a 100644 --- a/spring-pulsar-sample-apps/sample-pulsar-reader/build.gradle +++ b/spring-pulsar-sample-apps/sample-pulsar-reader/build.gradle @@ -1,13 +1,19 @@ plugins { - id 'org.springframework.pulsar.spring-module' - id 'org.springframework.boot' version '3.0.5' + id 'java' + id 'org.springframework.boot' version '3.1.1-SNAPSHOT' + id 'io.spring.dependency-management' version '1.1.0' } -description = 'Spring Pulsar Sample Application (Send and Receive)' +description = 'Spring Pulsar Sample Application (Reader)' + +repositories { + mavenCentral() + maven { url 'https://repo.spring.io/milestone' } + maven { url 'https://repo.spring.io/snapshot' } +} dependencies { - implementation 'org.springframework.pulsar:spring-pulsar-spring-boot-starter' - implementation 'com.google.code.findbugs:jsr305' + implementation "org.springframework.pulsar:spring-pulsar-spring-boot-starter:${springPulsarStarterVersion}" } bootRun { @@ -17,11 +23,3 @@ bootRun { "--add-opens", "java.base/sun.net=ALL-UNNAMED" ] } - -project.afterEvaluate { - project.tasks.publishArtifacts.enabled(false) - project.tasks.artifactoryPublish.enabled(false) - project.tasks.publishToOssrh.enabled(false) - project.tasks.publishMavenJavaPublicationToOssrhRepository.enabled(false) - project.tasks.publishAllPublicationsToOssrhRepository.enabled(false) -} diff --git a/spring-pulsar-sample-apps/sample-reactive/build.gradle b/spring-pulsar-sample-apps/sample-reactive/build.gradle index 080ca547..e915d84d 100644 --- a/spring-pulsar-sample-apps/sample-reactive/build.gradle +++ b/spring-pulsar-sample-apps/sample-reactive/build.gradle @@ -1,13 +1,19 @@ plugins { - id 'org.springframework.pulsar.spring-module' - id 'org.springframework.boot' version '3.0.5' + id 'java' + id 'org.springframework.boot' version '3.0.8-SNAPSHOT' + id 'io.spring.dependency-management' version '1.1.0' } description = 'Reactive Spring Pulsar Sample Application' +repositories { + mavenCentral() + maven { url 'https://repo.spring.io/milestone' } + maven { url 'https://repo.spring.io/snapshot' } +} + dependencies { - implementation 'org.springframework.pulsar:spring-pulsar-reactive-spring-boot-starter' - implementation 'com.google.code.findbugs:jsr305' + implementation "org.springframework.pulsar:spring-pulsar-reactive-spring-boot-starter:${springPulsarStarterVersion}" } bootRun { @@ -17,11 +23,3 @@ bootRun { "--add-opens", "java.base/sun.net=ALL-UNNAMED" ] } - -project.afterEvaluate { - project.tasks.publishArtifacts.enabled(false) - project.tasks.artifactoryPublish.enabled(false) - project.tasks.publishToOssrh.enabled(false) - project.tasks.publishMavenJavaPublicationToOssrhRepository.enabled(false) - project.tasks.publishAllPublicationsToOssrhRepository.enabled(false) -} diff --git a/spring-pulsar-test/build.gradle b/spring-pulsar-test/build.gradle index f9c3a99e..574fae9e 100644 --- a/spring-pulsar-test/build.gradle +++ b/spring-pulsar-test/build.gradle @@ -5,6 +5,7 @@ plugins { description = 'Spring Pulsar Test Module' dependencies { + implementation 'org.junit.jupiter:junit-jupiter-api' implementation 'org.testcontainers:pulsar' implementation 'org.testcontainers:junit-jupiter' } diff --git a/spring-pulsar/build.gradle b/spring-pulsar/build.gradle index d50411cc..d89feab3 100644 --- a/spring-pulsar/build.gradle +++ b/spring-pulsar/build.gradle @@ -1,10 +1,8 @@ plugins { id 'org.springframework.pulsar.spring-module' - id "de.undercouch.download" version "5.3.0" - id 'spring-pulsar.integration-test-conventions' } -description = 'Spring Pulsar Support' +description = 'Spring Pulsar Core' dependencies { api 'io.micrometer:micrometer-observation' @@ -43,41 +41,10 @@ dependencies { testRuntimeOnly 'org.junit.platform:junit-platform-launcher' testImplementation 'org.mockito:mockito-junit-jupiter' testImplementation 'org.springframework:spring-test' + // OutputCaptureExtension used by PulsarFunctionAdministrationTests testImplementation 'org.springframework.boot:spring-boot-test' - - intTestImplementation 'org.springframework.boot:spring-boot-starter-amqp' - intTestImplementation 'org.springframework.pulsar:spring-pulsar-spring-boot-starter' - intTestImplementation 'org.testcontainers:junit-jupiter' - intTestImplementation 'org.testcontainers:pulsar' - intTestImplementation 'org.testcontainers:rabbitmq' } test { testLogging.showStandardStreams = true } - -integrationTest { - maxHeapSize '2048m' -} - -task downloadRabbitConnector { - onlyIf { - System.getProperty("downloadRabbitConnector") == "true" - } - doLast { - try { - download.run { - println "Downloading Rabbit connector to 'src/intTest/resources/connectors/' (one time only if not already downloaded)..." - src 'https://archive.apache.org/dist/pulsar/pulsar-2.10.2/connectors/pulsar-io-rabbitmq-2.10.2.nar' - dest "$buildDir/../src/intTest/resources/connectors/pulsar-io-rabbitmq-2.10.2.nar" - overwrite false - } - } catch (Exception ex) { - println "Failed to download rabbit connector: $ex" - } - } -} - -project.afterEvaluate { - integrationTest.dependsOn downloadRabbitConnector -} diff --git a/spring-pulsar/src/intTest/resources/application.yml b/spring-pulsar/src/intTest/resources/application.yml deleted file mode 100644 index 15b7001c..00000000 --- a/spring-pulsar/src/intTest/resources/application.yml +++ /dev/null @@ -1,3 +0,0 @@ -spring: - main: - banner-mode: log diff --git a/spring-pulsar/src/intTest/resources/logback-test.xml b/spring-pulsar/src/intTest/resources/logback-test.xml deleted file mode 100644 index 0fc8852d..00000000 --- a/spring-pulsar/src/intTest/resources/logback-test.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - %d{HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n - - - - - - - - -