plugins { id 'org.springframework.boot' id 'java' } apply from: '../../gradle/coverage/java-coverage.gradle' apply from: "../../gradle/versioning/versioning.gradle" apply from: "../../gradle/docker/docker.gradle" ext { docker_repo = 'datahub-gms' } ext.apiProject = project(':metadata-service:restli-api') dependencies { implementation project(':metadata-service:factories') implementation project(':metadata-service:auth-filter') implementation project(':metadata-service:servlet') implementation project(':metadata-service:auth-servlet-impl') implementation project(':metadata-service:graphql-servlet-impl') implementation project(':metadata-service:openapi-servlet') implementation project(':metadata-service:openapi-entity-servlet') implementation project(':metadata-service:openapi-analytics-servlet') implementation project(':metadata-service:schema-registry-servlet') implementation project(':metadata-service:iceberg-catalog') implementation 'org.apache.iceberg:iceberg-core:1.6.1' runtimeOnly project(':metadata-jobs:mce-consumer') runtimeOnly project(':metadata-jobs:mae-consumer') runtimeOnly project(':metadata-jobs:pe-consumer') runtimeOnly externalDependency.awsSecretsManagerJdbc runtimeOnly externalDependency.h2 runtimeOnly externalDependency.mariadbConnector runtimeOnly externalDependency.mysqlConnector runtimeOnly externalDependency.postgresql implementation(externalDependency.springBootStarterWeb) { exclude module: "spring-boot-starter-tomcat" } implementation(externalDependency.springBootStarterJetty) { exclude group: 'org.apache.tomcat.embed', module: 'tomcat-embed-el' } implementation(externalDependency.springBootStarterValidation) { exclude group: 'org.apache.tomcat.embed', module: 'tomcat-embed-el' } implementation externalDependency.jettyJmx implementation externalDependency.springWebMVC implementation externalDependency.springBootAutoconfigure implementation externalDependency.servletApi runtimeOnly externalDependency.opentelemetryExporter runtimeOnly externalDependency.openTelemetryExporterLogging runtimeOnly externalDependency.openTelemetryExporterCommon implementation spec.product.pegasus.restliDocgen implementation spec.product.pegasus.restliSpringBridge compileOnly externalDependency.lombok annotationProcessor externalDependency.lombok runtimeOnly externalDependency.log4jCore runtimeOnly externalDependency.log4j2Api runtimeOnly externalDependency.logbackClassic implementation externalDependency.awsMskIamAuth testRuntimeOnly externalDependency.logbackClassic implementation externalDependency.charle testImplementation externalDependency.testng testImplementation externalDependency.springBootTest testRuntimeOnly externalDependency.logbackClassic } configurations.all{ exclude group: "com.charleskorn.kaml", module:"kaml" } tasks.register('run') { group = 'application' // Add a group for better organization description = 'Runs the application with Gretty' dependsOn 'bootRun' // spring task } bootJar { // backwards compatible with old war archive name archiveFileName = 'war.war' mainClass = 'com.linkedin.gms.GMSApplication' } bootRun { environment "SCHEMA_REGISTRY_TYPE", "INTERNAL" environment "KAFKA_SCHEMAREGISTRY_URL", "http://localhost:8080/schema-registry/api" } docker { dependsOn bootJar name "${docker_registry}/${docker_repo}:${versionTag}" dockerfile file("${rootProject.projectDir}/docker/${docker_repo}/Dockerfile") files bootJar.outputs.files files fileTree(rootProject.projectDir) { include '.dockerignore' include 'docker/monitoring/*' include "docker/${docker_repo}/*" include 'metadata-models/src/main/resources/*' }.exclude { i -> (!i.file.name.endsWith(".dockerignore") && i.file.isHidden()) } additionalTag("Debug", "${docker_registry}/${docker_repo}:debug") // Add build args if they are defined (needed for some CI or enterprise environments) def dockerBuildArgs = [:] if (project.hasProperty('alpineApkRepositoryUrl')) { dockerBuildArgs.ALPINE_REPO_URL = project.getProperty('alpineApkRepositoryUrl') } if (project.hasProperty('githubMirrorUrl')) { dockerBuildArgs.GITHUB_REPO_URL = project.getProperty('githubMirrorUrl') } if (project.hasProperty('mavenCentralRepositoryUrl')) { dockerBuildArgs.MAVEN_CENTRAL_REPO_URL = project.getProperty('mavenCentralRepositoryUrl') } if (dockerBuildArgs.size() > 0) { buildArgs(dockerBuildArgs) } debugBuildArgs = [APP_ENV: 'dev'] } test { jacoco { // This contains quickstart tested code for jetty startup excludes = ["com.linkedin.gms.CommonApplicationConfig", "com.linkedin.gms.ServletConfig", "com.linkedin.gms.GMSApplication"] } }