| /* |
| * 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. |
| * The ASF licenses this file to You under the Apache License, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| // This gradle should be applied as a plugin to every subproject that requires our dependency management |
| // E.g.: apply from: "${project.projectDir}/../../gradle/geode-dependency-management.gradle" |
| |
| |
| class GeodeDependencyExtension { |
| // While we transition away from external properties, we will consume this plugin |
| // in build files that should not apply Spring dependency-management. |
| // Allow this to be configurable via this extension. |
| boolean applySpringDependencyManagement = true |
| } |
| |
| class GeodeDependencyManagementPlugin implements Plugin<Project> { |
| @Override |
| void apply(Project project) { |
| def extension = project.extensions.create('versionManagement', GeodeDependencyExtension) |
| // Delay evaluation to allow for configuration |
| project.afterEvaluate { |
| if (extension.applySpringDependencyManagement) { |
| project.logger.info("Applying Spring management via GeodeDependencyManagementPlugin to ${project}") |
| manage_dependencies(project) |
| } |
| } |
| |
| project.logger.info("Applying external property version values via GeodeDependencyManagementPlugin to ${project}") |
| set_extended_property_versioning(project) |
| } |
| |
| void manage_dependencies(Project project) { |
| project.apply plugin: "io.spring.dependency-management" |
| project.dependencyManagement { |
| dependencies { |
| dependencySet(group: project.group, version: project.version) { |
| entry('apache-geode') |
| entry('geode-common') |
| entry('geode-concurrency-test') |
| entry('geode-connectors') |
| entry('geode-core') |
| entry('geode-cq') |
| entry('geode-dunit') |
| entry('geode-experimental-driver') |
| entry('geode-json') |
| entry('geode-junit') |
| entry('geode-lucene') |
| entry('geode-management') |
| entry('geode-old-client-support') |
| entry('geode-old-versions') |
| entry('geode-protobuf') |
| entry('geode-protobuf-messages') |
| entry('geode-pulse') |
| entry('geode-rebalancer') |
| entry('geode-wan') |
| entry('geode-web') |
| entry('geode-web-api') |
| entry('geode-web-management') |
| } |
| |
| // informal, inter-group dependencySet |
| dependency('com.sun.xml.bind:jaxb-impl:2.3.1') |
| dependency('javax.xml.bind:jaxb-api:2.3.1') |
| |
| dependency(group: 'antlr', name: 'antlr', version: project.'antlr.version') |
| dependency(group: 'cglib', name: 'cglib', version: project.'cglib.version') |
| dependency(group: 'com.carrotsearch.randomizedtesting', name: 'randomizedtesting-runner', version: '2.5.0') |
| dependencySet(group: 'com.fasterxml.jackson.core', version: '2.9.7') { |
| entry 'jackson-annotations' |
| entry 'jackson-core' |
| entry 'jackson-databind' |
| } |
| dependency(group: 'com.fasterxml.jackson.module', name: 'jackson-module-scala_2.10', version: '2.9.6') |
| dependency(group: 'com.github.davidmoten', name: 'geo', version: '0.7.1') |
| dependency(group: 'com.github.stefanbirkner', name: 'system-rules', version: '1.19.0') |
| dependency(group: 'com.github.stephenc.findbugs', name: 'findbugs-annotations', version: '1.3.9-1') |
| dependency(group: 'com.google.guava', name: 'guava', version: '27.0-jre') |
| dependency(group: 'com.google.protobuf', name: 'protobuf-gradle-plugin', version: project.'protobuf-gradle-plugin.version') |
| dependency(group: 'com.google.protobuf', name: 'protobuf-java', version: project.'protobuf-java.version') |
| dependency(group: 'com.healthmarketscience.rmiio', name: 'rmiio', version: '2.1.2') |
| dependencySet(group: 'com.jayway.jsonpath', version: '2.4.0') { |
| entry 'json-path-assert' |
| entry 'json-path' |
| } |
| dependency(group: 'com.mockrunner', name: 'mockrunner-servlet', version: '1.1.2') |
| dependencySet(group: 'com.palantir.docker.compose', version: '0.31.1') { |
| entry 'docker-compose-rule-core' |
| entry 'docker-compose-rule-junit4' |
| } |
| dependencySet(group: 'com.pholser', version: '0.8.1') { |
| entry 'junit-quickcheck-core' |
| entry 'junit-quickcheck-generators' |
| } |
| dependency(group: 'com.sun.activation', name: 'javax.activation', version: '1.2.0') |
| dependency(group: 'com.sun.istack', name: 'istack-commons-runtime', version: '2.2') |
| dependency(group: 'com.zaxxer', name: 'HikariCP', version: '3.2.0') |
| dependency(group: 'commons-beanutils', name: 'commons-beanutils', version: '1.9.3') |
| dependency(group: 'commons-collections', name: 'commons-collections', version: '3.2.2') |
| dependency(group: 'commons-configuration', name: 'commons-configuration', version: '1.10') |
| dependency(group: 'commons-digester', name: 'commons-digester', version: '2.1') |
| dependency(group: 'commons-fileupload', name: 'commons-fileupload', version: '1.3.3') |
| dependency(group: 'commons-io', name: 'commons-io', version: project.'commons-io.version') |
| dependency(group: 'commons-logging', name: 'commons-logging', version: '1.2') |
| dependency(group: 'commons-modeler', name: 'commons-modeler', version: '2.0.1') |
| dependency(group: 'commons-validator', name: 'commons-validator', version: project.'commons-validator.version') |
| dependency(group: 'io.github.classgraph', name: 'classgraph', version: '4.0.6') |
| dependency(group: 'io.netty', name: 'netty-all', version: '4.1.31.Final') |
| dependencySet(group: 'io.springfox', version: '2.9.2') { |
| entry 'springfox-swagger-ui' |
| entry 'springfox-swagger2' |
| } |
| dependency(group: 'it.unimi.dsi', name: 'fastutil', version: project.'fastutil.version') |
| dependency(group: 'javax.annotation', name: 'javax.annotation-api', version: '1.3.2') |
| dependency(group: 'javax.annotation', name: 'jsr250-api', version: '1.0') |
| dependency(group: 'javax.ejb', name: 'ejb-api', version: '3.0') |
| dependency(group: 'javax.mail', name: 'javax.mail-api', version: '1.6.2') |
| dependency(group: 'javax.resource', name: 'javax.resource-api', version: '1.7.1') |
| dependency(group: 'javax.servlet', name: 'javax.servlet-api', version: '3.1.0') |
| dependency(group: 'junit', name: 'junit', version: project.'junit.version') |
| dependencySet(group: 'mx4j', version: '3.0.2') { |
| entry 'mx4j-remote' |
| entry 'mx4j' |
| } |
| dependency(group: 'mx4j', name: 'mx4j-tools', version: '3.0.1') |
| dependency(group: 'mysql', name: 'mysql-connector-java', version: '5.1.46') |
| dependency(group: 'net.java.dev.jna', name: 'jna', version: '4.1.0') |
| dependency(group: 'net.sf.jopt-simple', name: 'jopt-simple', version: '5.0.4') |
| dependency(group: 'net.spy', name: 'spymemcached', version: '2.12.2') |
| dependency(group: 'org.apache.bcel', name: 'bcel', version: '6.2') |
| dependency(group: 'org.apache.commons', name: 'commons-lang3', version: project.'commons-lang3.version') |
| dependency(group: 'org.apache.derby', name: 'derby', version: '10.14.2.0') |
| dependency(group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.6') |
| dependency(group: 'org.apache.httpcomponents', name: 'httpcore', version: '4.4.10') |
| dependencySet(group: 'org.apache.logging.log4j', version: project.'log4j.version') { |
| entry 'log4j-api' |
| entry 'log4j-core' |
| entry 'log4j-jcl' |
| entry 'log4j-jul' |
| entry 'log4j-slf4j-impl' |
| } |
| dependencySet(group: 'org.apache.lucene', version: '6.6.2') { |
| entry 'lucene-analyzers-common' |
| entry 'lucene-analyzers-phonetic' |
| entry 'lucene-core' |
| entry 'lucene-queryparser' |
| entry 'lucene-test-framework' |
| } |
| dependency(group: 'org.apache.shiro', name: 'shiro-core', version: project.'shiro.version') |
| dependency(group: 'org.assertj', name: 'assertj-core', version: '3.11.1') |
| dependency(group: 'org.awaitility', name: 'awaitility', version: '3.1.2') |
| dependency(group: 'org.bouncycastle', name: 'bcpkix-jdk15on', version: '1.60') |
| dependency(group: 'org.codehaus.cargo', name: 'cargo-core-uberjar', version: '1.6.10') |
| dependency(group: 'org.eclipse.jetty', name: 'jetty-webapp', version: project.'jetty.version') |
| dependency(group: 'org.eclipse.persistence', name: 'javax.persistence', version: '2.2.1') |
| dependency(group: 'org.fusesource.jansi', name: 'jansi', version: '1.17.1') |
| dependencySet(group: 'org.hamcrest', version: '1.3') { |
| entry 'hamcrest-all' |
| entry 'hamcrest-core' |
| entry 'hamcrest-library' |
| } |
| dependency(group: 'org.httpunit', name: 'httpunit', version: '1.7.3') |
| dependency(group: 'org.iq80.snappy', name: 'snappy', version: '0.4') |
| dependency(group: 'org.jgroups', name: 'jgroups', version: project.'jgroups.version') |
| dependency(group: 'org.mockito', name: 'mockito-core', version: '2.23.0') |
| dependency(group: 'org.mortbay.jetty', name: 'servlet-api', version: '3.0.20100224') |
| dependency(group: 'org.postgresql', name: 'postgresql', version: '42.2.2') |
| dependencySet(group: 'org.powermock', version: '2.0.0-beta.5') { |
| entry 'powermock-api-mockito2' |
| entry 'powermock-core' |
| entry 'powermock-module-junit4' |
| } |
| dependencySet(group: 'org.seleniumhq.selenium', version: '3.13.0') { |
| entry 'selenium-api' |
| entry 'selenium-chrome-driver' |
| entry 'selenium-remote-driver' |
| entry 'selenium-support' |
| } |
| dependency(group: 'org.skyscreamer', name: 'jsonassert', version: '1.5.0') |
| dependency("org.slf4j:slf4j-api:${project.'slf4j-api.version'}") |
| dependency('org.springframework.hateoas:spring-hateoas:0.25.0.RELEASE') |
| dependency('org.springframework.ldap:spring-ldap-core:2.3.2.RELEASE') |
| dependencySet(group: 'org.springframework.security', version: '4.2.8.RELEASE') { |
| entry 'spring-security-config' |
| entry 'spring-security-core' |
| entry 'spring-security-ldap' |
| entry 'spring-security-test' |
| entry 'spring-security-web' |
| } |
| dependency('org.springframework.shell:spring-shell:1.2.0.RELEASE') |
| dependencySet(group: 'org.springframework', version: '4.3.20.RELEASE') { |
| entry 'spring-aspects' |
| entry 'spring-beans' |
| entry 'spring-context' |
| entry 'spring-core' |
| entry 'spring-expression' |
| entry 'spring-oxm' |
| entry 'spring-test' |
| entry 'spring-tx' |
| entry 'spring-web' |
| entry 'spring-webmvc' |
| } |
| dependency(group: 'pl.pragmatists', name: 'JUnitParams', version: '1.1.0') |
| dependency(group: 'redis.clients', name: 'jedis', version: '2.9.0') |
| dependency(group: 'xerces', name: 'xercesImpl', version: '2.12.0') |
| } |
| } |
| } |
| |
| void set_extended_property_versioning(Project project) { |
| // These versions are consumed beyond the scope of source set dependencies. |
| project.ext { |
| // These version numbers are consumed by :geode-modules-assembly:distAppServer filtering |
| // Some of these are referenced above as well |
| set('antlr.version', '2.7.7') |
| set('commons-io.version', '2.6') |
| set('commons-lang3.version', '3.8.1') |
| set('commons-validator.version', '1.6') |
| set('fastutil.version', '8.2.2') |
| set('javax.transaction-api.version', '1.3') |
| set('jgroups.version', '3.6.14.Final') |
| set('log4j.version', '2.11.1') |
| set('shiro.version', '1.4.0') |
| set('slf4j-api.version', '1.7.25') |
| |
| // These version numbers are used in testing various versions of tomcat and are consumed explicitly |
| // in will be called explicitly in the relevant extensions module, and respective configurations |
| // in geode-assembly.gradle. Moreover, dependencyManagement does not seem to place nicely when |
| // specifying @zip in a dependency, in the manner in which we consume them in custom configurations. |
| // This would possibly be corrected if they were proper source sets. |
| set('tomcat6.version', '6.0.37') |
| set('tomcat7.version', '7.0.90') |
| set('tomcat8.version', '8.5.34') |
| set('tomcat9.version', '9.0.12') |
| // The jetty version is also hard-coded in geode-assembly:test |
| // at o.a.g.sessions.tests.GenericAppServerInstall.java |
| set('jetty.version', '9.4.12.v20180830') |
| |
| // These version numbers are consumed by protobuf configurations that are plugin-specific and not |
| // part of the typical Gradle dependency configurations. |
| set('protoc.version', '3.6.1') |
| set('protobuf-gradle-plugin.version', '0.8.6') |
| set('protobuf-java.version', '3.6.1') |
| |
| // These versions are referenced in test.gradle, which is aggressively injected into all projects. |
| // This results in brittle behavior compared to dependency-management.gradle's "opt-in" plugin style. |
| set('junit.version', '4.12') |
| set('cglib.version', '3.2.9') |
| } |
| } |
| } |
| |
| apply plugin: GeodeDependencyManagementPlugin |