diff --git a/conductor-clients/java/conductor-java-sdk/build.gradle b/conductor-clients/java/conductor-java-sdk/build.gradle index 5c402e1a7..84568f0f4 100644 --- a/conductor-clients/java/conductor-java-sdk/build.gradle +++ b/conductor-clients/java/conductor-java-sdk/build.gradle @@ -9,7 +9,7 @@ apply from: "$rootDir/versions.gradle" subprojects { apply plugin: 'java' apply plugin: 'com.diffplug.spotless' - group = 'io.orkes.conductor' + group = 'org.conductoross' spotless { java { diff --git a/conductor-clients/java/conductor-java-sdk/buildSrc/build.gradle b/conductor-clients/java/conductor-java-sdk/buildSrc/build.gradle new file mode 100644 index 000000000..b941b0c8b --- /dev/null +++ b/conductor-clients/java/conductor-java-sdk/buildSrc/build.gradle @@ -0,0 +1,12 @@ +plugins { + id 'groovy' +} + +repositories { + mavenCentral() +} + +dependencies { + implementation gradleApi() + implementation localGroovy() +} diff --git a/conductor-clients/java/conductor-java-sdk/buildSrc/src/main/groovy/io/orkes/conductor/gradle/PublishConfigPlugin.groovy b/conductor-clients/java/conductor-java-sdk/buildSrc/src/main/groovy/io/orkes/conductor/gradle/PublishConfigPlugin.groovy new file mode 100644 index 000000000..fe32131ea --- /dev/null +++ b/conductor-clients/java/conductor-java-sdk/buildSrc/src/main/groovy/io/orkes/conductor/gradle/PublishConfigPlugin.groovy @@ -0,0 +1,83 @@ +package io.orkes.conductor.gradle + +import org.gradle.api.Plugin +import org.gradle.api.Project +import org.gradle.api.publish.maven.plugins.MavenPublishPlugin +import org.gradle.api.publish.maven.MavenPublication +import org.gradle.authentication.aws.AwsImAuthentication + + +class PublishConfigPlugin implements Plugin { + @Override + void apply(Project project) { + project.plugins.withType(MavenPublishPlugin) { + config(project) + } + } + + private void config(Project project) { + project.publishing { + publications(publicationConfig(project)) + repositories(repositoriesConfig(project)) + } + } + + private publicationConfig(Project project) { + return { + mavenJava(MavenPublication) { + from project.components.java + pom { + name = project.findProperty('artifactName') + description = project.findProperty('artifactDescription') + url = 'https://github.com/conductor-oss/conductor.git' + scm { + connection = 'scm:git:git://github.com/conductor-oss/conductor.git' + developerConnection = 'scm:git:ssh://github.com/conductor-oss/conductor.git' + url = 'https://github.com/conductor-oss/conductor.git' + } + licenses { + license { + name = 'The Apache License, Version 2.0' + url = 'http://www.apache.org/licenses/LICENSE-2.0.txt' + } + } + developers { + developer { + organization = 'Orkes' + organizationUrl = 'https://orkes.io' + name = 'Orkes Development Team' + email = 'developers@orkes.io' + } + } + } + } + } + } + + private repositoriesConfig(Project project) { + return { + maven { + if (project.hasProperty("mavenCentral")) { + url = getMavenRepoUrl(project) + credentials { + username = project.properties['username'] + password = project.properties['password'] + } + } else { + url = getS3BucketUrl(project) + authentication { + awsIm(AwsImAuthentication) + } + } + } + } + } + + private static String getS3BucketUrl(Project project) { + return "s3://orkes-artifacts-repo/${project.version.endsWith('-SNAPSHOT') ? 'snapshots' : 'releases'}" + } + + private static String getMavenRepoUrl(Project project) { + return "https://s01.oss.sonatype.org/${project.version.endsWith('-SNAPSHOT') ? 'content/repositories/snapshots/' : 'service/local/staging/deploy/maven2/'}" + } +} \ No newline at end of file diff --git a/conductor-clients/java/conductor-java-sdk/buildSrc/src/main/resources/META-INF/gradle-plugins/publish-config.properties b/conductor-clients/java/conductor-java-sdk/buildSrc/src/main/resources/META-INF/gradle-plugins/publish-config.properties new file mode 100644 index 000000000..2293ab074 --- /dev/null +++ b/conductor-clients/java/conductor-java-sdk/buildSrc/src/main/resources/META-INF/gradle-plugins/publish-config.properties @@ -0,0 +1 @@ +implementation-class=io.orkes.conductor.gradle.PublishConfigPlugin \ No newline at end of file diff --git a/conductor-clients/java/conductor-java-sdk/conductor-client-metrics/build.gradle b/conductor-clients/java/conductor-java-sdk/conductor-client-metrics/build.gradle index 62c67e7e8..8b2065010 100644 --- a/conductor-clients/java/conductor-java-sdk/conductor-client-metrics/build.gradle +++ b/conductor-clients/java/conductor-java-sdk/conductor-client-metrics/build.gradle @@ -5,6 +5,13 @@ plugins { id 'signing' } +ext { + artifactName = 'Conductor Client Metrics' + artifactDescription = 'Conductor Client Metrics' +} + +apply plugin: 'publish-config' + dependencies { implementation 'io.micrometer:micrometer-registry-prometheus:1.10.5' implementation project(":conductor-client") @@ -19,72 +26,6 @@ java { withJavadocJar() } -publishing { - publications { - mavenJava(MavenPublication) { - from components.java - pom { - name = 'Orkes Conductor Metrics module' - description = 'OSS & Orkes Conductor Metrics' - url = 'https://github.com/conductor-oss/conductor.git' - scm { - connection = 'scm:git:git://github.com/conductor-oss/conductor.git' - developerConnection = 'scm:git:ssh://github.com/conductor-oss/conductor.git' - url = 'https://github.com/conductor-oss/conductor.git' - } - licenses { - license { - name = 'The Apache License, Version 2.0' - url = 'http://www.apache.org/licenses/LICENSE-2.0.txt' - } - } - developers { - developer { - organization = 'Orkes' - organizationUrl = 'https://orkes.io' - name = 'Orkes Development Team' - email = 'developers@orkes.io' - } - } - } - } - } - - repositories { - maven { - if (project.hasProperty("mavenCentral")) { - println "Publishing to Sonatype Repository" - url = "https://s01.oss.sonatype.org/${project.version.endsWith('-SNAPSHOT') ? "content/repositories/snapshots/" : "service/local/staging/deploy/maven2/"}" - credentials { - username project.properties.username - password project.properties.password - } - } else { - url = "s3://orkes-artifacts-repo/${project.version.endsWith('-SNAPSHOT') ? "snapshots" : "releases"}" - authentication { - awsIm(AwsImAuthentication) - } - } - } - } -} - -signing { - def signingKeyId = findProperty('signingKeyId') - if (signingKeyId) { - println 'Signing the artifact with keys' - signing { - def signingKey = findProperty('signingKey') - def signingPassword = findProperty('signingPassword') - if (signingKeyId && signingKey && signingPassword) { - useInMemoryPgpKeys(signingKeyId, signingKey, signingPassword) - } - - sign publishing.publications - } - } -} - test { useJUnitPlatform() } \ No newline at end of file diff --git a/conductor-clients/java/conductor-java-sdk/conductor-client-spring/build.gradle b/conductor-clients/java/conductor-java-sdk/conductor-client-spring/build.gradle index 3966fa469..8b837b155 100644 --- a/conductor-clients/java/conductor-java-sdk/conductor-client-spring/build.gradle +++ b/conductor-clients/java/conductor-java-sdk/conductor-client-spring/build.gradle @@ -5,6 +5,13 @@ plugins { id 'signing' } +ext { + artifactName = 'Conductor OSS Client Spring' + artifactDescription = 'Spring autoconfig for Conductor Client and SDK' +} + +apply plugin: 'publish-config' + compileJava { sourceCompatibility = 17 targetCompatibility = 17 @@ -21,56 +28,6 @@ dependencies { implementation 'org.springframework.boot:spring-boot-starter:3.3.0' } -publishing { - publications { - mavenJava(MavenPublication) { - from components.java - pom { - name = 'Conductor OSS Client Spring' - description = 'Spring autoconfig for Conductor Client and SDK' - url = 'https://github.com/conductor-oss/conductor.git' - scm { - connection = 'scm:git:git://github.com/conductor-oss/conductor.git' - developerConnection = 'scm:git:ssh://github.com/conductor-oss/conductor.git' - url = 'https://github.com/conductor-oss/conductor.git' - } - licenses { - license { - name = 'The Apache License, Version 2.0' - url = 'http://www.apache.org/licenses/LICENSE-2.0.txt' - } - } - developers { - developer { - organization = 'Orkes' - organizationUrl = 'https://orkes.io' - name = 'Orkes Development Team' - email = 'developers@orkes.io' - } - } - } - } - } - - repositories { - maven { - if (project.hasProperty("mavenCentral")) { - println "Publishing to Sonatype Repository" - url = "https://s01.oss.sonatype.org/${project.version.endsWith('-SNAPSHOT') ? "content/repositories/snapshots/" : "service/local/staging/deploy/maven2/"}" - credentials { - username project.properties.username - password project.properties.password - } - } else { - url = "s3://orkes-artifacts-repo/${project.version.endsWith('-SNAPSHOT') ? "snapshots" : "releases"}" - authentication { - awsIm(AwsImAuthentication) - } - } - } - } -} - test { useJUnitPlatform() } \ No newline at end of file diff --git a/conductor-clients/java/conductor-java-sdk/conductor-client/build.gradle b/conductor-clients/java/conductor-java-sdk/conductor-client/build.gradle index 9839d0327..312129fa4 100644 --- a/conductor-clients/java/conductor-java-sdk/conductor-client/build.gradle +++ b/conductor-clients/java/conductor-java-sdk/conductor-client/build.gradle @@ -7,6 +7,13 @@ plugins { id 'groovy' } +ext { + artifactName = 'Conductor Client' + artifactDescription = 'Conductor OSS client (http)' +} + +apply plugin: 'publish-config' + dependencies { implementation "com.squareup.okhttp3:okhttp:${versions.okHttp}" @@ -27,72 +34,6 @@ java { withJavadocJar() } -publishing { - publications { - mavenJava(MavenPublication) { - from components.java - pom { - name = 'Conductor Client' - description = 'Conductor OSS client (http)' - url = 'https://github.com/conductor-oss/conductor.git' - scm { - connection = 'scm:git:git://github.com/conductor-oss/conductor.git' - developerConnection = 'scm:git:ssh://github.com/conductor-oss/conductor.git' - url = 'https://github.com/conductor-oss/conductor.git' - } - licenses { - license { - name = 'The Apache License, Version 2.0' - url = 'http://www.apache.org/licenses/LICENSE-2.0.txt' - } - } - developers { - developer { - organization = 'Orkes' - organizationUrl = 'https://orkes.io' - name = 'Orkes Development Team' - email = 'developers@orkes.io' - } - } - } - } - } - - repositories { - maven { - if (project.hasProperty("mavenCentral")) { - println "Publishing to Sonatype Repository" - url = "https://s01.oss.sonatype.org/${project.version.endsWith('-SNAPSHOT') ? "content/repositories/snapshots/" : "service/local/staging/deploy/maven2/"}" - credentials { - username project.properties.username - password project.properties.password - } - } else { - url = "s3://orkes-artifacts-repo/${project.version.endsWith('-SNAPSHOT') ? "snapshots" : "releases"}" - authentication { - awsIm(AwsImAuthentication) - } - } - } - } -} - -signing { - def signingKeyId = findProperty('signingKeyId') - if (signingKeyId) { - println 'Signing the artifact with keys' - signing { - def signingKey = findProperty('signingKey') - def signingPassword = findProperty('signingPassword') - if (signingKeyId && signingKey && signingPassword) { - useInMemoryPgpKeys(signingKeyId, signingKey, signingPassword) - } - - sign publishing.publications - } - } -} - test { useJUnitPlatform() } diff --git a/conductor-clients/java/conductor-java-sdk/examples/build.gradle b/conductor-clients/java/conductor-java-sdk/examples/build.gradle index 6ac27d88b..5fae19163 100644 --- a/conductor-clients/java/conductor-java-sdk/examples/build.gradle +++ b/conductor-clients/java/conductor-java-sdk/examples/build.gradle @@ -2,9 +2,6 @@ plugins { id 'java' } -group 'io.orkes.conductor' -version '3.0.0' - repositories { mavenCentral() } diff --git a/conductor-clients/java/conductor-java-sdk/orkes-client/build.gradle b/conductor-clients/java/conductor-java-sdk/orkes-client/build.gradle index 50fff4eb5..487e5ab66 100644 --- a/conductor-clients/java/conductor-java-sdk/orkes-client/build.gradle +++ b/conductor-clients/java/conductor-java-sdk/orkes-client/build.gradle @@ -7,6 +7,15 @@ plugins { id 'groovy' } +group = 'io.orkes.conductor' + +ext { + artifactName = 'Orkes Conductor Client' + artifactDescription = 'Orkes Conductor client (http)' +} + +apply plugin: 'publish-config' + dependencies { implementation project(':conductor-client') implementation "com.squareup.okhttp3:okhttp:${versions.okHttp}" @@ -28,72 +37,6 @@ java { withJavadocJar() } -publishing { - publications { - mavenJava(MavenPublication) { - from components.java - pom { - name = 'Orkes Conductor Client' - description = 'OSS & Orkes Conductor client (http)' - url = 'https://github.com/conductor-oss/conductor.git' - scm { - connection = 'scm:git:git://github.com/conductor-oss/conductor.git' - developerConnection = 'scm:git:ssh://github.com/conductor-oss/conductor.git' - url = 'https://github.com/conductor-oss/conductor.git' - } - licenses { - license { - name = 'The Apache License, Version 2.0' - url = 'http://www.apache.org/licenses/LICENSE-2.0.txt' - } - } - developers { - developer { - organization = 'Orkes' - organizationUrl = 'https://orkes.io' - name = 'Orkes Development Team' - email = 'developers@orkes.io' - } - } - } - } - } - - repositories { - maven { - if (project.hasProperty("mavenCentral")) { - println "Publishing to Sonatype Repository" - url = "https://s01.oss.sonatype.org/${project.version.endsWith('-SNAPSHOT') ? "content/repositories/snapshots/" : "service/local/staging/deploy/maven2/"}" - credentials { - username project.properties.username - password project.properties.password - } - } else { - url = "s3://orkes-artifacts-repo/${project.version.endsWith('-SNAPSHOT') ? "snapshots" : "releases"}" - authentication { - awsIm(AwsImAuthentication) - } - } - } - } -} - -signing { - def signingKeyId = findProperty('signingKeyId') - if (signingKeyId) { - println 'Signing the artifact with keys' - signing { - def signingKey = findProperty('signingKey') - def signingPassword = findProperty('signingPassword') - if (signingKeyId && signingKey && signingPassword) { - useInMemoryPgpKeys(signingKeyId, signingKey, signingPassword) - } - - sign publishing.publications - } - } -} - test { useJUnitPlatform() } diff --git a/conductor-clients/java/conductor-java-sdk/orkes-spring/build.gradle b/conductor-clients/java/conductor-java-sdk/orkes-spring/build.gradle index 8067c8172..c903ee0a5 100644 --- a/conductor-clients/java/conductor-java-sdk/orkes-spring/build.gradle +++ b/conductor-clients/java/conductor-java-sdk/orkes-spring/build.gradle @@ -5,6 +5,15 @@ plugins { id 'signing' } +group = 'io.orkes.conductor' + +ext { + artifactName = 'Orkes Conductor Client/SDK Spring' + artifactDescription = 'Spring autoconfig for Orkes Conductor Client and SDK' +} + +apply plugin: 'publish-config' + compileJava { sourceCompatibility = 17 targetCompatibility = 17 @@ -23,56 +32,6 @@ dependencies { implementation 'org.springframework.boot:spring-boot-starter:3.3.0' } -publishing { - publications { - mavenJava(MavenPublication) { - from components.java - pom { - name = 'Orkes Conductor Client/SDK Spring' - description = 'Spring autoconfig for Orkes Conductor Client and SDK' - url = 'https://github.com/conductor-oss/conductor.git' - scm { - connection = 'scm:git:git://github.com/conductor-oss/conductor.git' - developerConnection = 'scm:git:ssh://github.com/conductor-oss/conductor.git' - url = 'https://github.com/conductor-oss/conductor.git' - } - licenses { - license { - name = 'The Apache License, Version 2.0' - url = 'http://www.apache.org/licenses/LICENSE-2.0.txt' - } - } - developers { - developer { - organization = 'Orkes' - organizationUrl = 'https://orkes.io' - name = 'Orkes Development Team' - email = 'developers@orkes.io' - } - } - } - } - } - - repositories { - maven { - if (project.hasProperty("mavenCentral")) { - println "Publishing to Sonatype Repository" - url = "https://s01.oss.sonatype.org/${project.version.endsWith('-SNAPSHOT') ? "content/repositories/snapshots/" : "service/local/staging/deploy/maven2/"}" - credentials { - username project.properties.username - password project.properties.password - } - } else { - url = "s3://orkes-artifacts-repo/${project.version.endsWith('-SNAPSHOT') ? "snapshots" : "releases"}" - authentication { - awsIm(AwsImAuthentication) - } - } - } - } -} - test { useJUnitPlatform() } \ No newline at end of file diff --git a/conductor-clients/java/conductor-java-sdk/sdk/build.gradle b/conductor-clients/java/conductor-java-sdk/sdk/build.gradle index 875f2addf..83f26b708 100644 --- a/conductor-clients/java/conductor-java-sdk/sdk/build.gradle +++ b/conductor-clients/java/conductor-java-sdk/sdk/build.gradle @@ -5,6 +5,13 @@ plugins { id 'signing' } +ext { + artifactName = 'Orkes Conductor SDK' + artifactDescription = 'OSS & Orkes Conductor SDK' +} + +apply plugin: 'publish-config' + dependencies { implementation project(":conductor-client") testImplementation 'org.mockito:mockito-core:5.4.0' @@ -17,72 +24,6 @@ java { withJavadocJar() } -publishing { - publications { - mavenJava(MavenPublication) { - from components.java - pom { - name = 'Orkes Conductor SDK' - description = 'OSS & Orkes Conductor SDK' - url = 'https://github.com/conductor-oss/conductor.git' - scm { - connection = 'scm:git:git://github.com/conductor-oss/conductor.git' - developerConnection = 'scm:git:ssh://github.com/conductor-oss/conductor.git' - url = 'https://github.com/conductor-oss/conductor.git' - } - licenses { - license { - name = 'The Apache License, Version 2.0' - url = 'http://www.apache.org/licenses/LICENSE-2.0.txt' - } - } - developers { - developer { - organization = 'Orkes' - organizationUrl = 'https://orkes.io' - name = 'Orkes Development Team' - email = 'developers@orkes.io' - } - } - } - } - } - - repositories { - maven { - if (project.hasProperty("mavenCentral")) { - println "Publishing to Sonatype Repository" - url = "https://s01.oss.sonatype.org/${project.version.endsWith('-SNAPSHOT') ? "content/repositories/snapshots/" : "service/local/staging/deploy/maven2/"}" - credentials { - username project.properties.username - password project.properties.password - } - } else { - url = "s3://orkes-artifacts-repo/${project.version.endsWith('-SNAPSHOT') ? "snapshots" : "releases"}" - authentication { - awsIm(AwsImAuthentication) - } - } - } - } -} - -signing { - def signingKeyId = findProperty('signingKeyId') - if (signingKeyId) { - println 'Signing the artifact with keys' - signing { - def signingKey = findProperty('signingKey') - def signingPassword = findProperty('signingPassword') - if (signingKeyId && signingKey && signingPassword) { - useInMemoryPgpKeys(signingKeyId, signingKey, signingPassword) - } - - sign publishing.publications - } - } -} - test { useJUnitPlatform() } \ No newline at end of file