You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by pr...@apache.org on 2019/01/04 21:01:50 UTC
[geode] branch develop updated: GEODE-6237: Opt into publication
rather than opting out. (#3038)
This is an automated email from the ASF dual-hosted git repository.
prhomberg pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git
The following commit(s) were added to refs/heads/develop by this push:
new 961c75f GEODE-6237: Opt into publication rather than opting out. (#3038)
961c75f is described below
commit 961c75f56681a66a3056f0d51556803bf7d6ca00
Author: Patrick Rhomberg <pr...@pivotal.io>
AuthorDate: Fri Jan 4 13:01:40 2019 -0800
GEODE-6237: Opt into publication rather than opting out. (#3038)
* Remove 'disableMavenPublishing' declaration and use.
* Remove unused publication block that was otherwise disabled in :extensions:geode-modules-assembly.
* Flatten if/else:'if/else:"if/else:"' logic in publish.gradle
* Move askpass block to rootProject build.gradle
* Use relative pathing rather than ${rootDir} in Gradle apply from statements
Co-authored-by: Robert Houghton <rh...@pivotal.io>
Co-authored-by: Patrick Rhomberg <pr...@pivotal.io>
---
boms/build.gradle | 1 -
boms/geode-all-bom/build.gradle | 3 +-
boms/geode-client-bom/build.gradle | 1 +
build.gradle | 38 ++-
extensions/build.gradle | 3 +-
extensions/geode-modules-assembly/build.gradle | 15 +-
.../geode-modules-session-internal/build.gradle | 3 +-
extensions/geode-modules-session/build.gradle | 3 +-
extensions/geode-modules-test/build.gradle | 3 +-
extensions/geode-modules-tomcat7/build.gradle | 3 +-
extensions/geode-modules-tomcat8/build.gradle | 3 +-
extensions/geode-modules-tomcat9/build.gradle | 3 +-
extensions/geode-modules/build.gradle | 3 +-
extensions/session-testing-war/build.gradle | 3 +-
geode-assembly/build.gradle | 4 +-
geode-assembly/geode-assembly-test/build.gradle | 3 +-
geode-common/build.gradle | 5 +-
geode-concurrency-test/build.gradle | 3 +-
geode-connectors/build.gradle | 3 +-
geode-core/build.gradle | 3 +-
geode-cq/build.gradle | 3 +-
geode-dunit/build.gradle | 3 +-
geode-experimental-driver/build.gradle | 3 +-
geode-json/build.gradle | 3 +-
geode-junit/build.gradle | 3 +-
geode-lucene/build.gradle | 3 +-
geode-lucene/geode-lucene-test/build.gradle | 3 +-
geode-old-client-support/build.gradle | 3 +-
geode-old-versions/build.gradle | 1 -
geode-protobuf-messages/build.gradle | 1 +
geode-protobuf/build.gradle | 3 +-
geode-protobuf/geode-protobuf-test/build.gradle | 3 +-
geode-pulse/build.gradle | 4 +-
geode-pulse/geode-pulse-test/build.gradle | 3 +-
geode-rebalancer/build.gradle | 3 +-
geode-wan/build.gradle | 3 +-
geode-web-api/build.gradle | 3 +-
geode-web/build.gradle | 3 +-
gradle/geode-dependency-management.gradle | 2 +-
gradle/publish.gradle | 322 +++++++++------------
gradle/utilities.gradle | 18 --
41 files changed, 232 insertions(+), 267 deletions(-)
diff --git a/boms/build.gradle b/boms/build.gradle
index c4f796a..8f5c586 100644
--- a/boms/build.gradle
+++ b/boms/build.gradle
@@ -16,5 +16,4 @@
*/
jar.enabled = false
-disableMavenPublishing()
diff --git a/boms/geode-all-bom/build.gradle b/boms/geode-all-bom/build.gradle
index 0368f40..d24cb66 100644
--- a/boms/geode-all-bom/build.gradle
+++ b/boms/geode-all-bom/build.gradle
@@ -19,7 +19,8 @@ apply plugin: "java"
apply plugin: "maven-publish"
jar.enabled = false
-apply from: "${rootDir}/${scriptDir}/geode-dependency-management.gradle"
+apply from: "${project.projectDir}/../../gradle/geode-dependency-management.gradle"
+apply from: "${project.projectDir}/../../gradle/publish.gradle"
publishing {
diff --git a/boms/geode-client-bom/build.gradle b/boms/geode-client-bom/build.gradle
index d037e35..7530369 100644
--- a/boms/geode-client-bom/build.gradle
+++ b/boms/geode-client-bom/build.gradle
@@ -16,6 +16,7 @@
*/
apply plugin: "io.spring.dependency-management"
+apply from: "${project.projectDir}/../../gradle/publish.gradle"
jar.enabled = false
diff --git a/build.gradle b/build.gradle
index 35186ea..a4d9843 100755
--- a/build.gradle
+++ b/build.gradle
@@ -76,7 +76,6 @@ apply from: "${scriptDir}/ide.gradle"
apply from: "${scriptDir}/dependency-resolution.gradle"
apply from: "${scriptDir}/test.gradle"
apply from: "${scriptDir}/test-by-category.gradle"
-apply from: "${scriptDir}/publish.gradle"
apply from: "${scriptDir}/code-analysis.gradle"
apply from: "${scriptDir}/sonar.gradle"
apply from: "${scriptDir}/rat.gradle"
@@ -152,3 +151,40 @@ task generate() {
// injecting themselves as a task dependency into this task. E.g., via
// `afterEvaluate.rootProject.generate.dependsOn(generateProto)`
}
+
+// Prompt the user for a publication passsword to sign archives or upload artifacts, if requested
+if (project.hasProperty('askpass')) {
+ gradle.taskGraph.whenReady { taskGraph ->
+ if(taskGraph.allTasks.any {it instanceof Sign}) {
+ if(!project.hasProperty('signing.keyId') || !project.hasProperty('signing.secretKeyRingFile')) {
+ println "You must configure your signing.keyId and signing.secretKeyRingFile"
+ println "in ~/.gradle/gradle.properties in order to sign jars\n"
+ println "See https://cwiki.apache.org/confluence/display/GEODE/Release+Steps"
+ throw new GradleException("Signing key/keyring is missing")
+ }
+
+ if(!project.hasProperty('signing.password')) {
+ def password = PasswordDialog.askPassword("Please enter your password to unlock your gpg keyring for signing artifacts")
+
+ subprojects { ext."signing.password" = password }
+ }
+ }
+
+ if(taskGraph.allTasks.any {it instanceof PublishToMavenRepository}) {
+ if(!project.hasProperty('mavenUsername')) {
+ println "You must configure your mavenUsername in ~/.gradle/gradle.properties in order to publish\n"
+ println "See https://cwiki.apache.org/confluence/display/GEODE/Release+Steps"
+ throw new GradleException("mavenUsername is missing")
+ }
+ if(!project.hasProperty('mavenPassword')) {
+ def getPassword = PasswordDialog.askPassword("Please enter your apache password to publish to Apache Maven")
+
+ taskGraph.allTasks.each {
+ if(it instanceof PublishToMavenRepository) {
+ (it as PublishToMavenRepository).repository.credentials.password = getPassword
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/extensions/build.gradle b/extensions/build.gradle
index 4ac2a86..0b73607 100755
--- a/extensions/build.gradle
+++ b/extensions/build.gradle
@@ -15,5 +15,4 @@
* limitations under the License.
*/
-disableMavenPublishing()
-apply from: "${rootDir}/${scriptDir}/geode-dependency-management.gradle"
+apply from: "${project.projectDir}/../gradle/geode-dependency-management.gradle"
diff --git a/extensions/geode-modules-assembly/build.gradle b/extensions/geode-modules-assembly/build.gradle
index a4fd8d1..9e2e5cc 100644
--- a/extensions/geode-modules-assembly/build.gradle
+++ b/extensions/geode-modules-assembly/build.gradle
@@ -22,7 +22,7 @@ configurations {
slf4jDeps
}
-apply from: "${rootDir}/${scriptDir}/geode-dependency-management.gradle"
+apply from: "${project.projectDir}/../../gradle/geode-dependency-management.gradle"
dependencies {
@@ -32,7 +32,6 @@ dependencies {
jar.enabled = true
-disableMavenPublishing()
def getJarArtifact(module) {
project(module).configurations.archives.artifacts.findAll {
@@ -242,15 +241,3 @@ task distTcServer30(type: Zip, dependsOn: [':extensions:geode-modules:assemble',
task dist(type: Task, dependsOn: ['distTcServer', 'distTcServer30', 'distTomcat', 'distAppServer'])
build.dependsOn dist
-
-publishing {
- publications {
- maven(MavenPublication) {
- artifact distTcServer
- artifact distTcServer30
- artifact distAppServer
- artifact distTomcat
- }
- }
-}
-
diff --git a/extensions/geode-modules-session-internal/build.gradle b/extensions/geode-modules-session-internal/build.gradle
index 2091b94..3bbb0c1 100644
--- a/extensions/geode-modules-session-internal/build.gradle
+++ b/extensions/geode-modules-session-internal/build.gradle
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-apply from: "${rootDir}/${scriptDir}/geode-dependency-management.gradle"
+apply from: "${project.projectDir}/../../gradle/geode-dependency-management.gradle"
dependencies {
@@ -32,4 +32,3 @@ jar {
baseName = 'geode-modules-session-internal'
}
-disableMavenPublishing()
diff --git a/extensions/geode-modules-session/build.gradle b/extensions/geode-modules-session/build.gradle
index a925339..b8f6e91 100644
--- a/extensions/geode-modules-session/build.gradle
+++ b/extensions/geode-modules-session/build.gradle
@@ -17,7 +17,7 @@
evaluationDependsOn(":geode-core")
-apply from: "${rootDir}/${scriptDir}/geode-dependency-management.gradle"
+apply from: "${project.projectDir}/../../gradle/geode-dependency-management.gradle"
dependencies {
@@ -64,4 +64,3 @@ jar {
baseName = 'geode-modules-session'
}
-disableMavenPublishing()
diff --git a/extensions/geode-modules-test/build.gradle b/extensions/geode-modules-test/build.gradle
index d4c01aa..8c88656 100644
--- a/extensions/geode-modules-test/build.gradle
+++ b/extensions/geode-modules-test/build.gradle
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-apply from: "${rootDir}/${scriptDir}/geode-dependency-management.gradle"
+apply from: "${project.projectDir}/../../gradle/geode-dependency-management.gradle"
dependencies {
@@ -43,4 +43,3 @@ dependencies {
}
}
-disableMavenPublishing()
diff --git a/extensions/geode-modules-tomcat7/build.gradle b/extensions/geode-modules-tomcat7/build.gradle
index c8a7b1f..65b9bc9 100644
--- a/extensions/geode-modules-tomcat7/build.gradle
+++ b/extensions/geode-modules-tomcat7/build.gradle
@@ -17,7 +17,7 @@
evaluationDependsOn(":geode-core")
-apply from: "${rootDir}/${scriptDir}/geode-dependency-management.gradle"
+apply from: "${project.projectDir}/../../gradle/geode-dependency-management.gradle"
dependencies {
@@ -58,4 +58,3 @@ eclipse.classpath.file {
}
}
-disableMavenPublishing()
diff --git a/extensions/geode-modules-tomcat8/build.gradle b/extensions/geode-modules-tomcat8/build.gradle
index 482c349..2c0d2d8 100644
--- a/extensions/geode-modules-tomcat8/build.gradle
+++ b/extensions/geode-modules-tomcat8/build.gradle
@@ -17,7 +17,7 @@
evaluationDependsOn(":geode-core")
-apply from: "${rootDir}/${scriptDir}/geode-dependency-management.gradle"
+apply from: "${project.projectDir}/../../gradle/geode-dependency-management.gradle"
dependencies {
@@ -59,4 +59,3 @@ eclipse.classpath.file {
}
}
-disableMavenPublishing()
diff --git a/extensions/geode-modules-tomcat9/build.gradle b/extensions/geode-modules-tomcat9/build.gradle
index 64cebbe..3dbc700 100644
--- a/extensions/geode-modules-tomcat9/build.gradle
+++ b/extensions/geode-modules-tomcat9/build.gradle
@@ -17,7 +17,7 @@
evaluationDependsOn(":geode-core")
-apply from: "${rootDir}/${scriptDir}/geode-dependency-management.gradle"
+apply from: "${project.projectDir}/../../gradle/geode-dependency-management.gradle"
dependencies {
@@ -47,4 +47,3 @@ eclipse.classpath.file {
}
}
-disableMavenPublishing()
diff --git a/extensions/geode-modules/build.gradle b/extensions/geode-modules/build.gradle
index 6fa960c..16c6b87 100644
--- a/extensions/geode-modules/build.gradle
+++ b/extensions/geode-modules/build.gradle
@@ -17,7 +17,7 @@
evaluationDependsOn(":geode-core")
-apply from: "${rootDir}/${scriptDir}/geode-dependency-management.gradle"
+apply from: "${project.projectDir}/../../gradle/geode-dependency-management.gradle"
dependencies {
@@ -61,4 +61,3 @@ dependencies {
}
}
-disableMavenPublishing()
diff --git a/extensions/session-testing-war/build.gradle b/extensions/session-testing-war/build.gradle
index a9651c6..5f5bcea 100644
--- a/extensions/session-testing-war/build.gradle
+++ b/extensions/session-testing-war/build.gradle
@@ -16,7 +16,7 @@
*/
apply plugin: 'war'
-apply from: "${rootDir}/${scriptDir}/geode-dependency-management.gradle"
+apply from: "${project.projectDir}/../../gradle/geode-dependency-management.gradle"
dependencies {
@@ -27,4 +27,3 @@ war {
version = ''
}
-disableMavenPublishing()
diff --git a/geode-assembly/build.gradle b/geode-assembly/build.gradle
index 7bbf541..33da4a2 100755
--- a/geode-assembly/build.gradle
+++ b/geode-assembly/build.gradle
@@ -21,7 +21,8 @@ import java.nio.file.Paths
evaluationDependsOn(":geode-core")
apply plugin: 'distribution'
-apply from: "${rootDir}/${scriptDir}/geode-dependency-management.gradle"
+apply from: "${project.projectDir}/../gradle/geode-dependency-management.gradle"
+apply from: "${project.projectDir}/../gradle/publish.gradle"
// disable artifact generation for this project
jar.enabled = false
@@ -394,7 +395,6 @@ distributions {
exclude relBuild
}
}
-
}
}
diff --git a/geode-assembly/geode-assembly-test/build.gradle b/geode-assembly/geode-assembly-test/build.gradle
index 3663393..d24cd79 100755
--- a/geode-assembly/geode-assembly-test/build.gradle
+++ b/geode-assembly/geode-assembly-test/build.gradle
@@ -16,7 +16,7 @@
*/
-apply from: "${rootDir}/${scriptDir}/geode-dependency-management.gradle"
+apply from: "${project.projectDir}/../../gradle/geode-dependency-management.gradle"
dependencies {
@@ -32,4 +32,3 @@ dependencies {
compileOnly('org.codehaus.cargo:cargo-core-uberjar')
}
-disableMavenPublishing()
diff --git a/geode-common/build.gradle b/geode-common/build.gradle
index 15f5d38..50fbd06 100755
--- a/geode-common/build.gradle
+++ b/geode-common/build.gradle
@@ -15,10 +15,11 @@
* limitations under the License.
*/
-apply from: "${rootDir}/${scriptDir}/geode-dependency-management.gradle"
+apply from: "${project.projectDir}/../gradle/geode-dependency-management.gradle"
+apply from: "${project.projectDir}/../gradle/publish.gradle"
dependencies {
testCompile('junit:junit')
testCompile('org.assertj:assertj-core')
-}
\ No newline at end of file
+}
diff --git a/geode-concurrency-test/build.gradle b/geode-concurrency-test/build.gradle
index 316771b..e58a856 100644
--- a/geode-concurrency-test/build.gradle
+++ b/geode-concurrency-test/build.gradle
@@ -14,7 +14,8 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-apply from: "${rootDir}/${scriptDir}/geode-dependency-management.gradle"
+apply from: "${project.projectDir}/../gradle/geode-dependency-management.gradle"
+apply from: "${project.projectDir}/../gradle/publish.gradle"
dependencies {
diff --git a/geode-connectors/build.gradle b/geode-connectors/build.gradle
index 49d8d37..db41165 100644
--- a/geode-connectors/build.gradle
+++ b/geode-connectors/build.gradle
@@ -24,7 +24,8 @@ repositories {
}
}
-apply from: "${rootDir}/${scriptDir}/geode-dependency-management.gradle"
+apply from: "${project.projectDir}/../gradle/geode-dependency-management.gradle"
+apply from: "${project.projectDir}/../gradle/publish.gradle"
dependencies {
diff --git a/geode-core/build.gradle b/geode-core/build.gradle
index 466bcfb..3d1470d 100755
--- a/geode-core/build.gradle
+++ b/geode-core/build.gradle
@@ -17,7 +17,8 @@
apply plugin: 'antlr'
apply plugin: 'me.champeau.gradle.jmh'
-apply from: "${rootDir}/${scriptDir}/geode-dependency-management.gradle"
+apply from: "${project.projectDir}/../gradle/geode-dependency-management.gradle"
+apply from: "${project.projectDir}/../gradle/publish.gradle"
sourceSets {
jca {
diff --git a/geode-cq/build.gradle b/geode-cq/build.gradle
index 3f8f898..ba3f0fc 100644
--- a/geode-cq/build.gradle
+++ b/geode-cq/build.gradle
@@ -15,7 +15,8 @@
* limitations under the License.
*/
-apply from: "${rootDir}/${scriptDir}/geode-dependency-management.gradle"
+apply from: "${project.projectDir}/../gradle/geode-dependency-management.gradle"
+apply from: "${project.projectDir}/../gradle/publish.gradle"
dependencies {
diff --git a/geode-dunit/build.gradle b/geode-dunit/build.gradle
index 8fd20f8..7d29fec 100755
--- a/geode-dunit/build.gradle
+++ b/geode-dunit/build.gradle
@@ -15,7 +15,8 @@
* limitations under the License.
*/
-apply from: "${rootDir}/${scriptDir}/geode-dependency-management.gradle"
+apply from: "${project.projectDir}/../gradle/geode-dependency-management.gradle"
+apply from: "${project.projectDir}/../gradle/publish.gradle"
dependencies {
diff --git a/geode-experimental-driver/build.gradle b/geode-experimental-driver/build.gradle
index 85f80ec..5896c7b 100644
--- a/geode-experimental-driver/build.gradle
+++ b/geode-experimental-driver/build.gradle
@@ -15,7 +15,8 @@
* limitations under the License.
*/
-apply from: "${rootDir}/${scriptDir}/geode-dependency-management.gradle"
+apply from: "${project.projectDir}/../gradle/geode-dependency-management.gradle"
+apply from: "${project.projectDir}/../gradle/publish.gradle"
dependencies {
diff --git a/geode-json/build.gradle b/geode-json/build.gradle
index 4fd5cb6..776a762 100644
--- a/geode-json/build.gradle
+++ b/geode-json/build.gradle
@@ -15,4 +15,5 @@
* limitations under the License.
*/
-apply from: "${rootDir}/${scriptDir}/geode-dependency-management.gradle"
+apply from: "${project.projectDir}/../gradle/geode-dependency-management.gradle"
+apply from: "${project.projectDir}/../gradle/publish.gradle"
diff --git a/geode-junit/build.gradle b/geode-junit/build.gradle
index 5f2e0d8..83e3d11 100755
--- a/geode-junit/build.gradle
+++ b/geode-junit/build.gradle
@@ -15,7 +15,8 @@
* limitations under the License.
*/
-apply from: "${rootDir}/${scriptDir}/geode-dependency-management.gradle"
+apply from: "${project.projectDir}/../gradle/geode-dependency-management.gradle"
+apply from: "${project.projectDir}/../gradle/publish.gradle"
dependencies {
diff --git a/geode-lucene/build.gradle b/geode-lucene/build.gradle
index e649e5a..61bb7c8 100644
--- a/geode-lucene/build.gradle
+++ b/geode-lucene/build.gradle
@@ -15,7 +15,8 @@
* limitations under the License.
*/
-apply from: "${rootDir}/${scriptDir}/geode-dependency-management.gradle"
+apply from: "${project.projectDir}/../gradle/geode-dependency-management.gradle"
+apply from: "${project.projectDir}/../gradle/publish.gradle"
dependencies {
diff --git a/geode-lucene/geode-lucene-test/build.gradle b/geode-lucene/geode-lucene-test/build.gradle
index b68a490..f16cdeb 100644
--- a/geode-lucene/geode-lucene-test/build.gradle
+++ b/geode-lucene/geode-lucene-test/build.gradle
@@ -16,7 +16,7 @@
*/
-apply from: "${rootDir}/${scriptDir}/geode-dependency-management.gradle"
+apply from: "${project.projectDir}/../../gradle/geode-dependency-management.gradle"
dependencies {
@@ -29,4 +29,3 @@ dependencies {
compile('org.mockito:mockito-core')
}
-disableMavenPublishing()
diff --git a/geode-old-client-support/build.gradle b/geode-old-client-support/build.gradle
index 1a51057..341537c 100644
--- a/geode-old-client-support/build.gradle
+++ b/geode-old-client-support/build.gradle
@@ -15,7 +15,8 @@
* limitations under the License.
*/
-apply from: "${rootDir}/${scriptDir}/geode-dependency-management.gradle"
+apply from: "${project.projectDir}/../gradle/geode-dependency-management.gradle"
+apply from: "${project.projectDir}/../gradle/publish.gradle"
dependencies {
diff --git a/geode-old-versions/build.gradle b/geode-old-versions/build.gradle
index e309ff5..6468986 100644
--- a/geode-old-versions/build.gradle
+++ b/geode-old-versions/build.gradle
@@ -15,7 +15,6 @@
* limitations under the License.
*/
-disableMavenPublishing()
def generatedResources = "$buildDir/generated-resources/main"
project.ext.installs = new Properties()
diff --git a/geode-protobuf-messages/build.gradle b/geode-protobuf-messages/build.gradle
index 73838c0..31dd020 100644
--- a/geode-protobuf-messages/build.gradle
+++ b/geode-protobuf-messages/build.gradle
@@ -17,6 +17,7 @@
apply plugin: 'com.google.protobuf'
apply plugin: 'idea'
+apply from: "${project.projectDir}/../gradle/publish.gradle"
buildscript {
diff --git a/geode-protobuf/build.gradle b/geode-protobuf/build.gradle
index b1fb803..33601e0 100644
--- a/geode-protobuf/build.gradle
+++ b/geode-protobuf/build.gradle
@@ -15,7 +15,8 @@
* limitations under the License.
*/
-apply from: "${rootDir}/${scriptDir}/geode-dependency-management.gradle"
+apply from: "${project.projectDir}/../gradle/geode-dependency-management.gradle"
+apply from: "${project.projectDir}/../gradle/publish.gradle"
dependencies {
diff --git a/geode-protobuf/geode-protobuf-test/build.gradle b/geode-protobuf/geode-protobuf-test/build.gradle
index 83b7fdf..8343637 100644
--- a/geode-protobuf/geode-protobuf-test/build.gradle
+++ b/geode-protobuf/geode-protobuf-test/build.gradle
@@ -16,7 +16,7 @@
*/
-apply from: "${rootDir}/${scriptDir}/geode-dependency-management.gradle"
+apply from: "${project.projectDir}/../../gradle/geode-dependency-management.gradle"
dependencies {
@@ -28,4 +28,3 @@ dependencies {
compile('org.mockito:mockito-core')
}
-disableMavenPublishing()
diff --git a/geode-pulse/build.gradle b/geode-pulse/build.gradle
index b68af7f..2090e1e 100644
--- a/geode-pulse/build.gradle
+++ b/geode-pulse/build.gradle
@@ -16,7 +16,8 @@
*/
apply plugin: 'war'
-apply from: "${rootDir}/${scriptDir}/geode-dependency-management.gradle"
+apply from: "${project.projectDir}/../gradle/geode-dependency-management.gradle"
+apply from: "${project.projectDir}/../gradle/publish.gradle"
dependencies {
@@ -163,4 +164,3 @@ war.dependsOn(':geode-core:webJar')
uiTest.dependsOn war
uiTest.finalizedBy rootProject.combineReports
rootProject.combineReports.mustRunAfter uiTest
-
diff --git a/geode-pulse/geode-pulse-test/build.gradle b/geode-pulse/geode-pulse-test/build.gradle
index 1aaa530..463a04c 100644
--- a/geode-pulse/geode-pulse-test/build.gradle
+++ b/geode-pulse/geode-pulse-test/build.gradle
@@ -16,7 +16,7 @@
*/
-apply from: "${rootDir}/${scriptDir}/geode-dependency-management.gradle"
+apply from: "${project.projectDir}/../../gradle/geode-dependency-management.gradle"
dependencies {
@@ -41,4 +41,3 @@ dependencies {
compile('org.seleniumhq.selenium:selenium-support')
}
-disableMavenPublishing()
diff --git a/geode-rebalancer/build.gradle b/geode-rebalancer/build.gradle
index 7961369..26059a8 100644
--- a/geode-rebalancer/build.gradle
+++ b/geode-rebalancer/build.gradle
@@ -15,7 +15,8 @@
* limitations under the License.
*/
-apply from: "${rootDir}/${scriptDir}/geode-dependency-management.gradle"
+apply from: "${project.projectDir}/../gradle/geode-dependency-management.gradle"
+apply from: "${project.projectDir}/../gradle/publish.gradle"
dependencies {
diff --git a/geode-wan/build.gradle b/geode-wan/build.gradle
index c15a46b..9605523 100644
--- a/geode-wan/build.gradle
+++ b/geode-wan/build.gradle
@@ -15,7 +15,8 @@
* limitations under the License.
*/
-apply from: "${rootDir}/${scriptDir}/geode-dependency-management.gradle"
+apply from: "${project.projectDir}/../gradle/geode-dependency-management.gradle"
+apply from: "${project.projectDir}/../gradle/publish.gradle"
dependencies {
diff --git a/geode-web-api/build.gradle b/geode-web-api/build.gradle
index 6bcc87b..c23bb73 100644
--- a/geode-web-api/build.gradle
+++ b/geode-web-api/build.gradle
@@ -17,7 +17,8 @@
apply plugin: 'war'
-apply from: "${rootDir}/${scriptDir}/geode-dependency-management.gradle"
+apply from: "${project.projectDir}/../gradle/geode-dependency-management.gradle"
+apply from: "${project.projectDir}/../gradle/publish.gradle"
dependencies {
diff --git a/geode-web/build.gradle b/geode-web/build.gradle
index a1bc7e2..590ceaf 100644
--- a/geode-web/build.gradle
+++ b/geode-web/build.gradle
@@ -17,7 +17,8 @@
apply plugin: 'war'
-apply from: "${rootDir}/${scriptDir}/geode-dependency-management.gradle"
+apply from: "${project.projectDir}/../gradle/geode-dependency-management.gradle"
+apply from: "${project.projectDir}/../gradle/publish.gradle"
dependencies {
diff --git a/gradle/geode-dependency-management.gradle b/gradle/geode-dependency-management.gradle
index 0ca2904..deec52a 100644
--- a/gradle/geode-dependency-management.gradle
+++ b/gradle/geode-dependency-management.gradle
@@ -16,7 +16,7 @@
*/
// This gradle should be applied as a plugin to every subproject that requires our dependency management
-// E.g.: apply from: "${rootDir}/${scriptDir}/geode-dependency-management.gradle"
+// E.g.: apply from: "${project.projectDir}/../../gradle/geode-dependency-management.gradle"
apply plugin: "io.spring.dependency-management"
diff --git a/gradle/publish.gradle b/gradle/publish.gradle
index 403c106..40da7df 100644
--- a/gradle/publish.gradle
+++ b/gradle/publish.gradle
@@ -15,78 +15,77 @@
* limitations under the License.
*/
-subprojects {
- apply plugin: 'maven-publish'
- apply plugin: 'signing'
+apply plugin: 'maven-publish'
+apply plugin: 'signing'
- task sourcesJar(type: Jar) {
- from sourceSets.main.allJava
- classifier = 'sources'
- }
+task sourcesJar(type: Jar) {
+ from sourceSets.main.allJava
+ classifier = 'sources'
+}
- task javadocJar(type: Jar) {
- from javadoc
- classifier = 'javadoc'
- }
+task javadocJar(type: Jar) {
+ from javadoc
+ classifier = 'javadoc'
+}
- publishing {
- publications {
- maven(MavenPublication) {
- from components.java
+publishing {
+ publications {
+ maven(MavenPublication) {
+ from components.java
- afterEvaluate {
- // uses the tasks created by nexus for sources and javadoc
- if (!getTasksByName('sourcesJar', false).isEmpty()) {
- artifact sourcesJar
- }
- if (!getTasksByName('javadocJar', false).isEmpty()) {
- artifact javadocJar
- }
+ afterEvaluate {
+ // uses the tasks created by nexus for sources and javadoc
+ if (!getTasksByName('sourcesJar', false).isEmpty()) {
+ artifact sourcesJar
+ }
+ if (!getTasksByName('javadocJar', false).isEmpty()) {
+ artifact javadocJar
+ }
- pom {
- name = 'Apache Geode'
- description = 'Apache Geode provides a database-like consistency model, reliable transaction processing and a shared-nothing architecture to maintain very low latency performance with high concurrency processing'
- url = 'http://geode.apache.org'
+ pom {
+ name = 'Apache Geode'
+ description = 'Apache Geode provides a database-like consistency model, reliable transaction processing and a shared-nothing architecture to maintain very low latency performance with high concurrency processing'
+ url = 'http://geode.apache.org'
- scm {
- url = 'https://github.com/apache/geode'
- connection = 'scm:git:https://github.com:apache/geode.git'
- developerConnection = 'scm:git:https://github.com:apache/geode.git'
- }
+ scm {
+ url = 'https://github.com/apache/geode'
+ connection = 'scm:git:https://github.com:apache/geode.git'
+ developerConnection = 'scm:git:https://github.com:apache/geode.git'
+ }
- licenses {
- license {
- name = 'The Apache Software License, Version 2.0'
- url = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
- }
+ licenses {
+ license {
+ name = 'The Apache Software License, Version 2.0'
+ url = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
}
+ }
- withXml {
- //This black magic checks to see if a dependency has the flag ext.optional=true
- //set on it, and if so marks the dependency as optional in the maven pom
- def depMap = project.configurations.compile.dependencies.collectEntries { [it.name, it] }
- def runtimeDeps = project.configurations.runtime.dependencies.collectEntries { [it.name, it] }
- def runtimeOnlyDeps = project.configurations.runtimeOnly.dependencies.collectEntries { [it.name, it] }
- depMap.putAll(runtimeDeps)
- depMap.putAll(runtimeOnlyDeps)
- asNode().dependencies.dependency.findAll {
- def dep = depMap.get(it.artifactId.text())
- return dep?.hasProperty('optional') && dep.optional
- }.each {
- if (it.optional) {
- it.optional.value = 'true'
- } else {
- it.appendNode('optional', 'true')
- }
+ withXml {
+ //This black magic checks to see if a dependency has the flag ext.optional=true
+ //set on it, and if so marks the dependency as optional in the maven pom
+ def depMap = project.configurations.compile.dependencies.collectEntries { [it.name, it] }
+ def runtimeDeps = project.configurations.runtime.dependencies.collectEntries { [it.name, it] }
+ def runtimeOnlyDeps = project.configurations.runtimeOnly.dependencies.collectEntries { [it.name, it] }
+ depMap.putAll(runtimeDeps)
+ depMap.putAll(runtimeOnlyDeps)
+ asNode().dependencies.dependency.findAll {
+ def dep = depMap.get(it.artifactId.text())
+ return dep?.hasProperty('optional') && dep.optional
+ }.each {
+ if (it.optional) {
+ it.optional.value = 'true'
+ } else {
+ it.appendNode('optional', 'true')
}
}
}
- pom {
- withXml {
- def elem = asElement()
- def hdr = elem.ownerDocument().createComment(
- '''
+ }
+ pom {
+ withXml {
+ def elem = asElement()
+ def hdr = elem.ownerDocument().createComment(
+ '''
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
@@ -102,152 +101,109 @@ subprojects {
See the License for the specific language governing permissions and
limitations under the License.
''')
- elem.insertBefore(hdr, elem.firstChild)
- }
+ elem.insertBefore(hdr, elem.firstChild)
}
}
}
}
- repositories {
- maven {
- if (project.hasProperty("mavenRepository")) {
- url = project.mavenRepository
- } else {
- if (project.isReleaseVersion) {
- url = "https://repository.apache.org/service/local/staging/deploy/maven2"
- } else {
- // If testing from a non-GCE instance, then the shell needs service-account creds
- // following the instructions at https://cloud.google.com/docs/authentication/production
- if (project.hasProperty("mavenSnapshotBucket")) {
- url = "gcs://$project.mavenSnapshotBucket/snapshots"
- } else {
- url = "gcs://maven.apachegeode-ci.info/snapshots"
- }
+ }
+ repositories {
+ maven {
+ if (project.hasProperty("mavenRepository")) {
+ url = project.mavenRepository
+ } else if (project.isReleaseVersion) {
+ url = "https://repository.apache.org/service/local/staging/deploy/maven2"
+ } else if (project.hasProperty("mavenSnapshotBucket")) {
+ // If testing from a non-GCE instance, then the shell needs service-account creds
+ // following the instructions at https://cloud.google.com/docs/authentication/production
+ url = "gcs://$project.mavenSnapshotBucket/snapshots"
+ } else {
+ url = "gcs://maven.apachegeode-ci.info/snapshots"
+ }
+ if (!url.toString().startsWith("gcs:")) {
+ credentials {
+ if (project.hasProperty("mavenUsername")) {
+ username = project.mavenUsername
}
- }
- if (! url.toString().startsWith("gcs:")) {
- credentials {
- if (project.hasProperty("mavenUsername")) {
- username = project.mavenUsername
- }
- if (project.hasProperty("mavenPassword")) {
- password = project.mavenPassword
- }
+ if (project.hasProperty("mavenPassword")) {
+ password = project.mavenPassword
}
}
}
}
}
+}
- signing {
- required({project.isReleaseVersion && project.hasProperty('signing.keyId') && project.hasProperty('signing.secretKeyRingFile')})
- sign publishing.publications.maven
- }
-
- task install(dependsOn: publishToMavenLocal) {}
-
- task('checkPom') {
- dependsOn('generatePomFileForMavenPublication')
- description 'Checks the generated POM against an expected POM for dependency changes.'
+signing {
+ required({project.isReleaseVersion && project.hasProperty('signing.keyId') && project.hasProperty('signing.secretKeyRingFile')})
+ sign publishing.publications.maven
+}
- doLast {
- if (tasks.getByName("generatePomFileForMavenPublication").enabled) {
- def expectedPomFile = sourceSets.test.resources.getSourceDirectories().first().toURI().resolve("expected-pom.xml")
- if (null == expectedPomFile) {
- throw new RuntimeException("expected-pom.xml not found.")
- }
- def expectedPom = new XmlParser().parse(expectedPomFile.toString())
- def expectedDependencies = new TreeSet()
- expectedPom.dependencies.dependency.each() {
- def dep = it as String
- if (dep.contains("org.apache.geode")) {
- // since the project version is the source of truth, use that for comparison instead of
- // whatever is stored in the expected pom file
- dep = dep.replaceFirst("(.*\\[)(\\d+.\\d+.\\d+(-SNAPSHOT)?)(\\].*)", '$1' + version + '$4')
- }
- expectedDependencies.add(dep)
- }
+task install(dependsOn: publishToMavenLocal) {}
- def actualPomFile = generatePomFileForMavenPublication.outputs.files.first()
- def actualPom = new XmlParser().parse(actualPomFile)
- def actualDependencies = new TreeSet()
- actualPom.dependencies.dependency.each() {
- actualDependencies.add(it as String)
- }
+task('checkPom') {
+ dependsOn('generatePomFileForMavenPublication')
+ description 'Checks the generated POM against an expected POM for dependency changes.'
- if (actualDependencies != expectedDependencies) {
- def newDependencies = new TreeSet(actualDependencies)
- newDependencies.removeAll(expectedDependencies)
- def removedDependencies = new TreeSet(expectedDependencies)
- removedDependencies.removeAll(actualDependencies)
-
- def message =
- "The ".concat(project.name).concat(" pom-default.xml has changed. Verify dependencies.")
- .concat("\nWhen changes have been approved, copy :\n")
- .concat(" cp ").concat(actualPomFile as String)
- .concat(" ").concat(expectedPomFile as String)
- .concat("\nRemoved Dependencies\n--------------\n")
- .concat(String.join("\n", removedDependencies.each { dep -> dep.toString() }))
- .concat("\n\nNew Dependencies\n--------------\n")
- .concat(String.join("\n", newDependencies.each { dep -> dep.toString() }))
- .concat("\n\n")
-
-
- throw new RuntimeException(message)
+ doLast {
+ if (tasks.getByName("generatePomFileForMavenPublication").enabled) {
+ def expectedPomFile = sourceSets.test.resources.getSourceDirectories().first().toURI().resolve("expected-pom.xml")
+ if (null == expectedPomFile) {
+ throw new RuntimeException("expected-pom.xml not found.")
+ }
+ def expectedPom = new XmlParser().parse(expectedPomFile.toString())
+ def expectedDependencies = new TreeSet()
+ expectedPom.dependencies.dependency.each() {
+ def dep = it as String
+ if (dep.contains("org.apache.geode")) {
+ // since the project version is the source of truth, use that for comparison instead of
+ // whatever is stored in the expected pom file
+ dep = dep.replaceFirst("(.*\\[)(\\d+.\\d+.\\d+(-SNAPSHOT)?)(\\].*)", '$1' + version + '$4')
}
+ expectedDependencies.add(dep)
}
- }
- }
- check.dependsOn('checkPom')
-
- task updateExpectedPom(dependsOn: generatePomFileForMavenPublication, type: Copy) {
- description 'After having verified changes with checkPom, this task will perform the copy.'
- def expectedPomDir = sourceSets.test.resources.getSourceDirectories().first().toURI()
- def actualPomFile = generatePomFileForMavenPublication.outputs.files.first()
- if (tasks.getByName("generatePomFileForMavenPublication").enabled) {
- from actualPomFile
- into expectedPomDir
- rename '.*.xml', "expected-pom.xml"
- }
- }
- checkPom.mustRunAfter(updateExpectedPom)
-} // subprojects
-
-
-//Prompt the user for a password to sign archives or upload artifacts, if requested
-if (project.hasProperty('askpass')) {
- gradle.taskGraph.whenReady { taskGraph ->
- if(taskGraph.allTasks.any {it instanceof Sign}) {
- if(!project.hasProperty('signing.keyId') || !project.hasProperty('signing.secretKeyRingFile')) {
- println "You must configure your signing.keyId and signing.secretKeyRingFile"
- println "in ~/.gradle/gradle.properties in order to sign jars\n"
- println "See https://cwiki.apache.org/confluence/display/GEODE/Release+Steps"
- throw new GradleException("Signing key/keyring is missing")
+ def actualPomFile = generatePomFileForMavenPublication.outputs.files.first()
+ def actualPom = new XmlParser().parse(actualPomFile)
+ def actualDependencies = new TreeSet()
+ actualPom.dependencies.dependency.each() {
+ actualDependencies.add(it as String)
}
- if(!project.hasProperty('signing.password')) {
- def password = PasswordDialog.askPassword("Please enter your password to unlock your gpg keyring for signing artifacts")
-
- subprojects { ext."signing.password" = password }
+ if (actualDependencies != expectedDependencies) {
+ def newDependencies = new TreeSet(actualDependencies)
+ newDependencies.removeAll(expectedDependencies)
+ def removedDependencies = new TreeSet(expectedDependencies)
+ removedDependencies.removeAll(actualDependencies)
+
+ def message =
+ "The ".concat(project.name).concat(" pom-default.xml has changed. Verify dependencies.")
+ .concat("\nWhen changes have been approved, copy :\n")
+ .concat(" cp ").concat(actualPomFile as String)
+ .concat(" ").concat(expectedPomFile as String)
+ .concat("\nRemoved Dependencies\n--------------\n")
+ .concat(String.join("\n", removedDependencies.each { dep -> dep.toString() }))
+ .concat("\n\nNew Dependencies\n--------------\n")
+ .concat(String.join("\n", newDependencies.each { dep -> dep.toString() }))
+ .concat("\n\n")
+
+
+ throw new RuntimeException(message)
}
}
+ }
+}
+check.dependsOn('checkPom')
- if(taskGraph.allTasks.any {it instanceof PublishToMavenRepository}) {
- if(!project.hasProperty('mavenUsername')) {
- println "You must configure your mavenUsername in ~/.gradle/gradle.properties in order to publish\n"
- println "See https://cwiki.apache.org/confluence/display/GEODE/Release+Steps"
- throw new GradleException("mavenUsername is missing")
- }
- if(!project.hasProperty('mavenPassword')) {
- def getPassword = PasswordDialog.askPassword("Please enter your apache password to publish to Apache Maven")
+task updateExpectedPom(dependsOn: generatePomFileForMavenPublication, type: Copy) {
+ description 'After having verified changes with checkPom, this task will perform the copy.'
- taskGraph.allTasks.each {
- if(it instanceof PublishToMavenRepository) {
- (it as PublishToMavenRepository).repository.credentials.password = getPassword
- }
- }
- }
- }
+ def expectedPomDir = sourceSets.test.resources.getSourceDirectories().first().toURI()
+ def actualPomFile = generatePomFileForMavenPublication.outputs.files.first()
+ if (tasks.getByName("generatePomFileForMavenPublication").enabled) {
+ from actualPomFile
+ into expectedPomDir
+ rename '.*.xml', "expected-pom.xml"
}
}
+checkPom.mustRunAfter(updateExpectedPom)
diff --git a/gradle/utilities.gradle b/gradle/utilities.gradle
index ebd283e..d4152c4 100644
--- a/gradle/utilities.gradle
+++ b/gradle/utilities.gradle
@@ -33,23 +33,5 @@ allprojects {
def parts = project.name.split("/")
return parts[parts.length - 1]
}
-
- disableMavenPublishing = {
- // Use this closure when a project should not publish anything to maven.
- afterEvaluate {
- tasks.withType(PublishToMavenLocal) {
- it.enabled = false
- }
- tasks.withType(PublishToMavenRepository) {
- it.enabled = false
- }
- tasks.withType(GenerateMavenPom) {
- it.enabled = false
- }
- tasks.withType(Sign) {
- it.enabled = false
- }
- }
- }
}
}