buildscript { ext.junitJupiterVersion = '5.6.1' ext.pegasusVersion = '29.22.16' ext.mavenVersion = '3.6.3' ext.springVersion = '5.3.20' ext.springBootVersion = '2.5.12' apply from: './repositories.gradle' buildscript.repositories.addAll(project.repositories) dependencies { classpath 'com.linkedin.pegasus:gradle-plugins:' + pegasusVersion classpath 'com.github.node-gradle:gradle-node-plugin:2.2.4' classpath 'com.commercehub.gradle.plugin:gradle-avro-plugin:0.8.1' classpath 'org.springframework.boot:spring-boot-gradle-plugin:' + springBootVersion classpath('com.github.jengelman.gradle.plugins:shadow:5.2.0') { exclude group: 'org.apache.logging.log4j', module: 'log4j-core' } classpath "io.codearte.gradle.nexus:gradle-nexus-staging-plugin:0.30.0" classpath "com.palantir.gradle.gitversion:gradle-git-version:0.12.3" classpath "org.gradle.playframework:gradle-playframework:0.12" classpath "gradle.plugin.org.hidetake:gradle-swagger-generator-plugin:2.18.1" } } plugins { id 'com.gorylenko.gradle-git-properties' version '2.4.0-rc2' } project.ext.spec = [ 'product' : [ 'pegasus' : [ 'd2' : 'com.linkedin.pegasus:d2:' + pegasusVersion, 'data' : 'com.linkedin.pegasus:data:' + pegasusVersion, 'dataAvro1_6' : 'com.linkedin.pegasus:data-avro-1_6:' + pegasusVersion, 'generator': 'com.linkedin.pegasus:generator:' + pegasusVersion, 'restliCommon' : 'com.linkedin.pegasus:restli-common:' + pegasusVersion, 'restliClient' : 'com.linkedin.pegasus:restli-client:' + pegasusVersion, 'restliDocgen' : 'com.linkedin.pegasus:restli-docgen:' + pegasusVersion, 'restliServer' : 'com.linkedin.pegasus:restli-server:' + pegasusVersion, 'restliSpringBridge': 'com.linkedin.pegasus:restli-spring-bridge:' + pegasusVersion, ] ] ] project.ext.externalDependency = [ 'akkaHttp': 'com.typesafe.akka:akka-http-core_2.12:10.1.15', 'antlr4Runtime': 'org.antlr:antlr4-runtime:4.7.2', 'antlr4': 'org.antlr:antlr4:4.7.2', 'assertJ': 'org.assertj:assertj-core:3.11.1', 'avro_1_7': 'org.apache.avro:avro:1.7.7', 'avroCompiler_1_7': 'org.apache.avro:avro-compiler:1.7.7', 'awsGlueSchemaRegistrySerde': 'software.amazon.glue:schema-registry-serde:1.1.10', 'awsMskIamAuth': 'software.amazon.msk:aws-msk-iam-auth:1.1.1', 'cacheApi' : 'javax.cache:cache-api:1.1.0', 'commonsIo': 'commons-io:commons-io:2.4', 'commonsLang': 'commons-lang:commons-lang:2.6', 'commonsCollections': 'commons-collections:commons-collections:3.2.2', 'data' : 'com.linkedin.pegasus:data:' + pegasusVersion, 'datastaxOssNativeProtocol': 'com.datastax.oss:native-protocol:1.5.1', 'datastaxOssCore': 'com.datastax.oss:java-driver-core:4.14.1', 'datastaxOssQueryBuilder': 'com.datastax.oss:java-driver-query-builder:4.14.1', 'dgraph4j' : 'io.dgraph:dgraph4j:21.03.1', 'dropwizardMetricsCore': 'io.dropwizard.metrics:metrics-core:4.2.3', 'dropwizardMetricsJmx': 'io.dropwizard.metrics:metrics-jmx:4.2.3', 'ebean': 'io.ebean:ebean:11.33.3', 'ebeanAgent': 'io.ebean:ebean-agent:11.27.1', 'elasticSearchRest': 'org.elasticsearch.client:elasticsearch-rest-high-level-client:7.9.3', 'elasticSearchTransport': 'org.elasticsearch.client:transport:7.9.3', 'findbugsAnnotations': 'com.google.code.findbugs:annotations:3.0.1', 'graphqlJava': 'com.graphql-java:graphql-java:16.1', 'gson': 'com.google.code.gson:gson:2.8.9', 'guice': 'com.google.inject:guice:4.2.2', 'guava': 'com.google.guava:guava:27.0.1-jre', 'h2': 'com.h2database:h2:2.1.210', 'hadoopClient': 'org.apache.hadoop:hadoop-client:3.2.1', 'hadoopCommon':'org.apache.hadoop:hadoop-common:2.7.2', 'hadoopMapreduceClient':'org.apache.hadoop:hadoop-mapreduce-client-core:2.7.2', 'hibernateCore': 'org.hibernate:hibernate-core:5.2.16.Final', 'httpClient': 'org.apache.httpcomponents:httpclient:4.5.9', 'httpAsyncClient': 'org.apache.httpcomponents:httpasyncclient:4.1.5', 'iStackCommons': 'com.sun.istack:istack-commons-runtime:4.0.1', 'jacksonCore': 'com.fasterxml.jackson.core:jackson-core:2.13.2', 'jacksonDataBind': 'com.fasterxml.jackson.core:jackson-databind:2.13.2.2', 'jacksonDataFormatYaml': 'com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.13.2', 'javatuples': 'org.javatuples:javatuples:1.2', 'javaxInject' : 'javax.inject:javax.inject:1', 'javaxValidation' : 'javax.validation:validation-api:2.0.1.Final', 'jerseyCore': 'org.glassfish.jersey.core:jersey-client:2.25.1', 'jerseyGuava': 'org.glassfish.jersey.bundles.repackaged:jersey-guava:2.25.1', 'jettyJaas': 'org.eclipse.jetty:jetty-jaas:9.4.46.v20220331', 'jgrapht': 'org.jgrapht:jgrapht-core:1.5.1', 'jsonSchemaAvro': 'com.github.fge:json-schema-avro:0.1.4', 'jsonSimple': 'com.googlecode.json-simple:json-simple:1.1.1', 'jsonSmart': 'net.minidev:json-smart:2.4.6', 'junitJupiterApi': "org.junit.jupiter:junit-jupiter-api:$junitJupiterVersion", 'junitJupiterParams': "org.junit.jupiter:junit-jupiter-params:$junitJupiterVersion", 'junitJupiterEngine': "org.junit.jupiter:junit-jupiter-engine:$junitJupiterVersion", // avro-serde includes dependencies for `kafka-avro-serializer` `kafka-schema-registry-client` and `avro` 'kafkaAvroSerde': 'io.confluent:kafka-streams-avro-serde:5.5.1', 'kafkaAvroSerializer': 'io.confluent:kafka-avro-serializer:5.1.4', 'kafkaClients': 'org.apache.kafka:kafka-clients:2.3.0', 'logbackClassic': 'ch.qos.logback:logback-classic:1.2.9', 'lombok': 'org.projectlombok:lombok:1.18.12', 'mariadbConnector': 'org.mariadb.jdbc:mariadb-java-client:2.6.0', 'mavenArtifact': "org.apache.maven:maven-artifact:$mavenVersion", 'mixpanel': 'com.mixpanel:mixpanel-java:1.4.4', 'mockito': 'org.mockito:mockito-core:3.0.0', 'mockitoInline': 'org.mockito:mockito-inline:3.0.0', 'mockServer': 'org.mock-server:mockserver-netty:5.11.2', 'mockServerClient': 'org.mock-server:mockserver-client-java:5.11.2', 'mysqlConnector': 'mysql:mysql-connector-java:8.0.20', 'neo4jHarness': 'org.neo4j.test:neo4j-harness:3.4.11', 'neo4jJavaDriver': 'org.neo4j.driver:neo4j-java-driver:4.0.1', 'opentelemetryApi': 'io.opentelemetry:opentelemetry-api:1.0.0', 'opentelemetryAnnotations': 'io.opentelemetry:opentelemetry-extension-annotations:1.0.0', 'opentracingJdbc':'io.opentracing.contrib:opentracing-jdbc:0.2.15', 'parquet': 'org.apache.parquet:parquet-avro:1.12.2', 'picocli': 'info.picocli:picocli:4.5.0', 'playCache': 'com.typesafe.play:play-cache_2.12:2.7.6', 'playEhcache': 'com.typesafe.play:play-ehcache_2.12:2.7.6', 'playWs': 'com.typesafe.play:play-ahc-ws-standalone_2.12:2.0.8', 'playDocs': 'com.typesafe.play:play-docs_2.12:2.7.6', 'playGuice': 'com.typesafe.play:play-guice_2.12:2.7.6', 'playJavaJdbc': 'com.typesafe.play:play-java-jdbc_2.12:2.7.6', 'playAkkaHttpServer': 'com.typesafe.play:play-akka-http-server_2.12:2.7.6', 'playServer': 'com.typesafe.play:play-server_2.12:2.7.6', 'playTest': 'com.typesafe.play:play-test_2.12:2.7.6', 'pac4j': 'org.pac4j:pac4j-oidc:3.6.0', 'playPac4j': 'org.pac4j:play-pac4j_2.12:8.0.2', 'postgresql': 'org.postgresql:postgresql:42.3.3', 'protobuf': 'com.google.protobuf:protobuf-java:3.19.3', 'reflections': 'org.reflections:reflections:0.9.9', 'resilience4j': 'io.github.resilience4j:resilience4j-retry:1.7.1', 'rythmEngine': 'org.rythmengine:rythm-engine:1.3.0', 'servletApi': 'javax.servlet:javax.servlet-api:3.1.0', 'shiroCore': 'org.apache.shiro:shiro-core:1.8.0', 'sparkSql' : 'org.apache.spark:spark-sql_2.11:2.4.8', 'sparkHive' : 'org.apache.spark:spark-hive_2.11:2.4.8', 'springBeans': "org.springframework:spring-beans:$springVersion", 'springContext': "org.springframework:spring-context:$springVersion", 'springCore': "org.springframework:spring-core:$springVersion", 'springDocUI': 'org.springdoc:springdoc-openapi-ui:1.6.7', 'springJdbc': "org.springframework:spring-jdbc:$springVersion", 'springWeb': "org.springframework:spring-web:$springVersion", 'springWebMVC': "org.springframework:spring-webmvc:$springVersion", 'springBoot': "org.springframework.boot:spring-boot:$springBootVersion", 'springBootAutoconfigure': "org.springframework.boot:spring-boot-autoconfigure:$springBootVersion", 'springBootStarterWeb': "org.springframework.boot:spring-boot-starter-web:$springBootVersion", 'springBootStarterJetty': "org.springframework.boot:spring-boot-starter-jetty:$springBootVersion", 'springBootStarterCache': "org.springframework.boot:spring-boot-starter-cache:$springBootVersion", 'springKafka': 'org.springframework.kafka:spring-kafka:2.7.12', 'springActuator': "org.springframework.boot:spring-boot-starter-actuator:$springBootVersion", 'swaggerAnnotations': 'io.swagger.core.v3:swagger-annotations:2.1.12', 'testng': 'org.testng:testng:7.3.0', 'testContainers': 'org.testcontainers:testcontainers:1.15.3', 'testContainersJunit': 'org.testcontainers:junit-jupiter:1.15.3', 'testContainersPostgresql':'org.testcontainers:postgresql:1.15.3', 'testContainersElasticsearch': 'org.testcontainers:elasticsearch:1.15.3', 'testContainersCassandra': 'org.testcontainers:cassandra:1.15.3', 'typesafeConfig':'com.typesafe:config:1.4.1', 'wiremock':'com.github.tomakehurst:wiremock:2.10.0', 'zookeeper': 'org.apache.zookeeper:zookeeper:3.4.14' ] allprojects { apply plugin: 'idea' apply plugin: 'eclipse' apply plugin: 'checkstyle' } configure(subprojects.findAll {it.name != 'spark-lineage'}) { configurations.all { exclude group: "io.netty", module: "netty" exclude group: "log4j", module: "log4j" } } subprojects { apply plugin: 'maven' apply plugin: 'com.gorylenko.gradle-git-properties' gitProperties { keys = ['git.commit.id','git.commit.id.describe','git.commit.time'] // using any tags (not limited to annotated tags) for "git.commit.id.describe" property // see http://ajoberstar.org/grgit/grgit-describe.html for more info about the describe method and available parameters // 'it' is an instance of org.ajoberstar.grgit.Grgit customProperty 'git.commit.id.describe', { it.describe(tags: true) } failOnNoGitDirectory = false } plugins.withType(JavaPlugin) { dependencies { testCompile externalDependency.testng constraints { implementation('io.netty:netty-all:4.1.68.Final') implementation('org.apache.commons:commons-compress:1.21') implementation('org.apache.velocity:velocity-engine-core:2.3') implementation('org.hibernate:hibernate-validator:6.0.20.Final') implementation('com.fasterxml.jackson.core:jackson-databind:2.13.2.2') implementation('com.fasterxml.jackson.core:jackson-dataformat-cbor:2.13.2') } } tasks.withType(Test) { if (!name.startsWith('integ')) { useTestNG() } } checkstyle { configDirectory = file("${project.rootDir}/gradle/checkstyle") sourceSets = [ getProject().sourceSets.main, getProject().sourceSets.test ] toolVersion = "8.0" maxWarnings = 0 ignoreFailures = false } } if (project.name != 'datahub-protobuf') { tasks.withType(JavaCompile).configureEach { javaCompiler = javaToolchains.compilerFor { languageVersion = JavaLanguageVersion.of(8) } } tasks.withType(Test).configureEach { javaLauncher = javaToolchains.launcherFor { languageVersion = JavaLanguageVersion.of(8) } } } else { tasks.withType(Javadoc).configureEach { javadocTool = javaToolchains.javadocToolFor { languageVersion = JavaLanguageVersion.of(11) } } tasks.withType(JavaCompile).configureEach { javaCompiler = javaToolchains.compilerFor { languageVersion = JavaLanguageVersion.of(11) } } tasks.withType(Test).configureEach { javaLauncher = javaToolchains.launcherFor { languageVersion = JavaLanguageVersion.of(11) } } } afterEvaluate { if (project.plugins.hasPlugin('pegasus')) { dependencies { dataTemplateCompile spec.product.pegasus.data restClientCompile spec.product.pegasus.restliClient } } } }