You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by rh...@apache.org on 2019/04/09 17:22:31 UTC

[geode] branch develop updated: GEODE-6383: Be explicit in evaluation dependencies. * A previous commit under this ticket was too aggressive in project evaluation dependencies. Explicit > Implicit.

This is an automated email from the ASF dual-hosted git repository.

rhoughton 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 09e289f  GEODE-6383: Be explicit in evaluation dependencies. * A previous commit under this ticket was too aggressive in project evaluation dependencies.  Explicit > Implicit.
09e289f is described below

commit 09e289f185ada1b5f7f4ae946cdf214c22462cb2
Author: Patrick Rhomberg <pr...@pivotal.io>
AuthorDate: Tue Apr 9 10:06:27 2019 -0700

    GEODE-6383: Be explicit in evaluation dependencies.
    * A previous commit under this ticket was too aggressive in project evaluation dependencies.  Explicit > Implicit.
---
 geode-assembly/build.gradle | 63 ++++++++++++++++++++++++++++-----------------
 1 file changed, 39 insertions(+), 24 deletions(-)

diff --git a/geode-assembly/build.gradle b/geode-assembly/build.gradle
index 532b0fd..c9445fd 100755
--- a/geode-assembly/build.gradle
+++ b/geode-assembly/build.gradle
@@ -23,16 +23,46 @@ import org.apache.geode.gradle.plugins.DependencyConstraints
 import java.nio.file.Paths
 
 // This project aggressively reaches into many other projects and must wait for those configurations
-// to be evaluated and resolved.  As a safeguard against this and to avoid having to explicitly 
-// re-list every geode-* here, we instead depend on every subproject of rootProject, excluding this
-// project itself.  Additionally, this project also aggressively inspects its own subprojects.
-// Evaluation depends on them all.
+// to be evaluated and resolved.  Evaluation depends on each of these subprojects.
+
+// This list is used in a loop to defined the /lib copySpec 
+def dependentProjectNames = [
+  ':geode-common',
+  ':geode-connectors',
+  ':geode-core',
+  ':geode-cq',
+  ':geode-lucene',
+  ':geode-memcached',
+  ':geode-old-client-support',
+  ':geode-protobuf',
+  ':geode-protobuf-messages',
+  ':geode-rebalancer',
+  ':geode-redis',
+  ':geode-wan',
+]
+
+// These other dependencies are explicitly referenced throughout other copySpec
+def otherDependentProjectNames = [
+  ':extensions:geode-modules',
+  ':extensions:geode-modules-assembly',
+  ':extensions:geode-modules-session',
+  ':extensions:geode-modules-session',
+  ':extensions:geode-modules-tomcat7',
+  ':extensions:geode-modules-tomcat8',
+  ':extensions:geode-modules-tomcat9',
+  ':geode-experimental-driver',
+  ':geode-management',
+  ':geode-pulse',
+  ':geode-web',
+  ':geode-web-api',
+  ':geode-web-management',
+]
+
 evaluationDependsOnChildren()
-rootProject.subprojects.each { neighborProject ->
-  if (neighborProject != project) {
-    project.evaluationDependsOn(neighborProject.path)
-  }
+(dependentProjectNames + otherDependentProjectNames).each { neighborProjectName ->
+  project.evaluationDependsOn(neighborProjectName)
 }
+
 apply plugin: 'distribution'
 apply from: "${rootDir}/${scriptDir}/publish.gradle"
 
@@ -116,7 +146,6 @@ sourceSets {
   }
 }
 
-
 task downloadWebServers(type:Copy) {
   from {configurations.findAll {it.name.startsWith("webServer")}}
   into webServersDir
@@ -484,21 +513,7 @@ distributions {
 
       with copySpec {
         into('lib')
-        from {
-          [
-            'geode-common',
-            'geode-connectors',
-            'geode-core',
-            'geode-cq',
-            'geode-lucene',
-            'geode-memcached',
-            'geode-old-client-support',
-            'geode-protobuf',
-            'geode-protobuf-messages',
-            'geode-rebalancer',
-            'geode-redis',
-            'geode-wan',
-          ].collect {
+        from { dependentProjectNames.collect {
             [
               project(':'.concat(it)).configurations.runtimeClasspath,
               project(':'.concat(it)).configurations.archives.allArtifacts.files