summaryrefslogtreecommitdiffstats
path: root/cloud-tenant-base-dependencies-enforcer
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@verizonmedia.com>2020-09-01 15:38:25 +0200
committerBjørn Christian Seime <bjorncs@verizonmedia.com>2020-09-01 15:38:25 +0200
commit7a0c82592ac04b62de8b172638d0324e498504e3 (patch)
tree87bf98eaa47a7283f59306924f96258be007b1be /cloud-tenant-base-dependencies-enforcer
parent402ce3fe9c7dbdbf63d8bfe8121683440adc6bc5 (diff)
Add dependencies enforcer for cloud-tenant-base
Diffstat (limited to 'cloud-tenant-base-dependencies-enforcer')
-rw-r--r--cloud-tenant-base-dependencies-enforcer/OWNERS2
-rw-r--r--cloud-tenant-base-dependencies-enforcer/README.md3
-rw-r--r--cloud-tenant-base-dependencies-enforcer/is-base-pom-module.txt1
-rw-r--r--cloud-tenant-base-dependencies-enforcer/pom.xml283
4 files changed, 289 insertions, 0 deletions
diff --git a/cloud-tenant-base-dependencies-enforcer/OWNERS b/cloud-tenant-base-dependencies-enforcer/OWNERS
new file mode 100644
index 00000000000..0a0d219e4eb
--- /dev/null
+++ b/cloud-tenant-base-dependencies-enforcer/OWNERS
@@ -0,0 +1,2 @@
+bjorncs
+mortent
diff --git a/cloud-tenant-base-dependencies-enforcer/README.md b/cloud-tenant-base-dependencies-enforcer/README.md
new file mode 100644
index 00000000000..46d1af7090e
--- /dev/null
+++ b/cloud-tenant-base-dependencies-enforcer/README.md
@@ -0,0 +1,3 @@
+# Dependencies enforcer for cloud-tenant-base parent pom
+
+Enforces that only allowed dependencies are visible for tenant projects using the cloud-tenant-base parent pom.
diff --git a/cloud-tenant-base-dependencies-enforcer/is-base-pom-module.txt b/cloud-tenant-base-dependencies-enforcer/is-base-pom-module.txt
new file mode 100644
index 00000000000..56ff7dcddc8
--- /dev/null
+++ b/cloud-tenant-base-dependencies-enforcer/is-base-pom-module.txt
@@ -0,0 +1 @@
+Used to skip 'hosted-build-vespa-application' profile in 'hosted-tenant-base'
diff --git a/cloud-tenant-base-dependencies-enforcer/pom.xml b/cloud-tenant-base-dependencies-enforcer/pom.xml
new file mode 100644
index 00000000000..29fe714a26f
--- /dev/null
+++ b/cloud-tenant-base-dependencies-enforcer/pom.xml
@@ -0,0 +1,283 @@
+<?xml version="1.0"?>
+<!-- Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
+ http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>com.yahoo.vespa</groupId>
+ <artifactId>cloud-tenant-base</artifactId>
+ <version>7-SNAPSHOT</version>
+ <relativePath />
+ </parent>
+
+ <artifactId>cloud-tenant-base-dependencies-enforcer</artifactId>
+ <version>7-SNAPSHOT</version>
+ <packaging>pom</packaging>
+
+ <!-- MUST BE KEPT IN SYNC WITH container-dependency-versions pom
+ Copied here because vz-tenant-base does not have a parent. -->
+ <properties>
+ <aopalliance.version>1.0</aopalliance.version>
+ <athenz.version>1.8.49</athenz.version>
+ <bouncycastle.version>1.65</bouncycastle.version>
+ <felix.version>6.0.3</felix.version>
+ <felix.log.version>1.0.1</felix.log.version>
+ <findbugs.version>1.3.9</findbugs.version>
+ <guava.version>20.0</guava.version>
+ <guice.version>3.0</guice.version>
+ <javax.inject.version>1</javax.inject.version>
+ <javax.servlet-api.version>3.1.0</javax.servlet-api.version>
+ <jaxb.version>2.3.0</jaxb.version>
+ <jetty.version>9.4.30.v20200611</jetty.version>
+ <org.lz4.version>1.7.1</org.lz4.version>
+ <org.json.version>20090211</org.json.version>
+ <slf4j.version>1.7.5</slf4j.version>
+ <tensorflow.version>1.12.0</tensorflow.version>
+ <xml-apis.version>1.4.01</xml-apis.version>
+
+ <hk2.version>2.5.0-b32</hk2.version>
+ <hk2.osgi-resource-locator.version>1.0.1</hk2.osgi-resource-locator.version>
+ <jackson2.version>2.8.11</jackson2.version>
+ <jackson-databind.version>${jackson2.version}.6</jackson-databind.version>
+ <javassist.version>3.20.0-GA</javassist.version>
+ <javax.annotation-api.version>1.2</javax.annotation-api.version>
+ <javax.validation-api.version>1.1.0.Final</javax.validation-api.version>
+ <javax.ws.rs-api.version>2.0.1</javax.ws.rs-api.version>
+ <jersey2.version>2.25</jersey2.version>
+ <mimepull.version>1.9.6</mimepull.version>
+ </properties>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-enforcer-plugin</artifactId>
+ <version>3.0.0-M2</version>
+ <executions>
+ <execution>
+ <!-- To allow running 'mvn enforcer:enforce' from the command line -->
+ <id>default-cli</id>
+ <goals>
+ <goal>enforce</goal>
+ </goals>
+ <configuration>
+ <rules>
+ <bannedDependencies>
+ <excludes>
+ <!-- Only allow explicitly listed dependencies -->
+ <exclude>*:*:*:*:*:*</exclude>
+ </excludes>
+ <includes>
+ <!-- MUST BE KEPT IN SYNC WITH container-dependencies-enforcer pom -->
+ <include>aopalliance:aopalliance:[${aopalliance.version}]:jar:provided</include>
+ <include>com.fasterxml.jackson.core:jackson-annotations:[${jackson2.version}]:jar:provided</include>
+ <include>com.fasterxml.jackson.core:jackson-core:[${jackson2.version}]:jar:provided</include>
+ <include>com.fasterxml.jackson.core:jackson-databind:[${jackson-databind.version}]:jar:provided</include>
+ <include>com.fasterxml.jackson.datatype:jackson-datatype-jdk8:[${jackson2.version}]:jar:provided</include>
+ <include>com.fasterxml.jackson.datatype:jackson-datatype-jsr310:[${jackson2.version}]:jar:provided</include>
+
+ <!-- Use version range for jax deps, because jersey and junit affect the versions. -->
+ <include>com.fasterxml.jackson.jaxrs:jackson-jaxrs-base:[2.5.4, ${jackson2.version}]:jar:provided</include>
+ <include>com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:[2.5.4, ${jackson2.version}]:jar:provided</include>
+ <include>com.fasterxml.jackson.module:jackson-module-jaxb-annotations:[2.5.4, ${jackson2.version}]:jar:provided</include>
+
+ <include>com.google.code.findbugs:jsr305:[${findbugs.version}]:jar:provided</include>
+ <include>com.google.guava:guava:[${guava.version}]:jar:provided</include>
+ <include>com.google.inject.extensions:guice-assistedinject:[${guice.version}]:jar:provided</include>
+ <include>com.google.inject.extensions:guice-multibindings:[${guice.version}]:jar:provided</include>
+ <include>com.google.inject:guice:[${guice.version}]:jar:provided:no_aop</include>
+ <include>com.sun.activation:javax.activation:[1.2.0]:jar:provided</include>
+ <include>com.sun.xml.bind:jaxb-core:[${jaxb.version}]:jar:provided</include>
+ <include>com.sun.xml.bind:jaxb-impl:[${jaxb.version}]:jar:provided</include>
+ <include>commons-logging:commons-logging:[1.1.3]:jar:provided</include>
+ <include>javax.annotation:javax.annotation-api:[${javax.annotation-api.version}]:jar:provided</include>
+ <include>javax.inject:javax.inject:[${javax.inject.version}]:jar:provided</include>
+ <include>javax.servlet:javax.servlet-api:[${javax.servlet-api.version}]:jar:provided</include>
+ <include>javax.validation:validation-api:[${javax.validation-api.version}]:jar:provided</include>
+ <include>javax.ws.rs:javax.ws.rs-api:[${javax.ws.rs-api.version}]:jar:provided</include>
+ <include>javax.xml.bind:jaxb-api:[${jaxb.version}]:jar:provided</include>
+ <include>net.jcip:jcip-annotations:[1.0]:jar:provided</include>
+ <include>org.lz4:lz4-java:[${org.lz4.version}]:jar:provided</include>
+ <include>org.apache.felix:org.apache.felix.framework:[${felix.version}]:jar:provided</include>
+ <include>org.apache.felix:org.apache.felix.log:[${felix.log.version}]:jar:provided</include>
+ <include>org.apache.felix:org.apache.felix.main:[${felix.version}]:jar:provided</include>
+ <include>org.bouncycastle:bcpkix-jdk15on:[${bouncycastle.version}]:jar:provided</include>
+ <include>org.bouncycastle:bcprov-jdk15on:[${bouncycastle.version}]:jar:provided</include>
+ <include>org.eclipse.jetty:jetty-http:[${jetty.version}]:jar:provided</include>
+ <include>org.eclipse.jetty:jetty-io:[${jetty.version}]:jar:provided</include>
+ <include>org.eclipse.jetty:jetty-util:[${jetty.version}]:jar:provided</include>
+ <include>org.glassfish.hk2.external:aopalliance-repackaged:[${hk2.version}]:jar:provided</include>
+ <include>org.glassfish.hk2.external:javax.inject:[${hk2.version}]:jar:provided</include>
+ <include>org.glassfish.hk2:hk2-api:[${hk2.version}]:jar:provided</include>
+ <include>org.glassfish.hk2:hk2-locator:[${hk2.version}]:jar:provided</include>
+ <include>org.glassfish.hk2:hk2-utils:[${hk2.version}]:jar:provided</include>
+ <include>org.glassfish.hk2:osgi-resource-locator:[${hk2.osgi-resource-locator.version}]:jar:provided</include>
+ <include>org.glassfish.jersey.bundles.repackaged:jersey-guava:[${jersey2.version}]:jar:provided</include>
+ <include>org.glassfish.jersey.containers:jersey-container-servlet-core:[${jersey2.version}]:jar:provided</include>
+ <include>org.glassfish.jersey.containers:jersey-container-servlet:[${jersey2.version}]:jar:provided</include>
+ <include>org.glassfish.jersey.core:jersey-client:[${jersey2.version}]:jar:provided</include>
+ <include>org.glassfish.jersey.core:jersey-common:[${jersey2.version}]:jar:provided</include>
+ <include>org.glassfish.jersey.core:jersey-server:[${jersey2.version}]:jar:provided</include>
+ <include>org.glassfish.jersey.ext:jersey-entity-filtering:[${jersey2.version}]:jar:provided</include>
+ <include>org.glassfish.jersey.ext:jersey-proxy-client:[${jersey2.version}]:jar:provided</include>
+ <include>org.glassfish.jersey.media:jersey-media-jaxb:[${jersey2.version}]:jar:provided</include>
+ <include>org.glassfish.jersey.media:jersey-media-json-jackson:[${jersey2.version}]:jar:provided</include>
+ <include>org.glassfish.jersey.media:jersey-media-multipart:[${jersey2.version}]:jar:provided</include>
+ <include>org.javassist:javassist:[${javassist.version}]:jar:provided</include>
+ <include>org.json:json:[${org.json.version}]:jar:provided</include>
+ <include>org.jvnet.mimepull:mimepull:[${mimepull.version}]:jar:provided</include>
+ <include>org.slf4j:jcl-over-slf4j:[${slf4j.version}]:jar:provided</include>
+ <include>org.slf4j:log4j-over-slf4j:[${slf4j.version}]:jar:provided</include>
+ <include>org.slf4j:slf4j-api:[${slf4j.version}]:jar:provided</include>
+ <include>org.slf4j:slf4j-jdk14:[${slf4j.version}]:jar:provided</include>
+ <include>xml-apis:xml-apis:[${xml-apis.version}]:jar:provided</include>
+
+ <!-- Vespa provided dependencies -->
+ <include>com.yahoo.vespa:annotations:*:jar:provided</include>
+ <include>com.yahoo.vespa:chain:*:jar:provided</include>
+ <include>com.yahoo.vespa:component:*:jar:provided</include>
+ <include>com.yahoo.vespa:config-bundle:*:jar:provided</include>
+ <include>com.yahoo.vespa:config-lib:*:jar:provided</include>
+ <include>com.yahoo.vespa:config:*:jar:provided</include>
+ <include>com.yahoo.vespa:configdefinitions:*:jar:provided</include>
+ <include>com.yahoo.vespa:configgen:*:jar:provided</include>
+ <include>com.yahoo.vespa:container-accesslogging:*:jar:provided</include>
+ <include>com.yahoo.vespa:container-core:*:jar:provided</include>
+ <include>com.yahoo.vespa:container-dev:*:jar:provided</include>
+ <include>com.yahoo.vespa:container-di:*:jar:provided</include>
+ <include>com.yahoo.vespa:container-disc:*:jar:provided</include>
+ <include>com.yahoo.vespa:container-documentapi:*:jar:provided</include>
+ <include>com.yahoo.vespa:container-jersey2:*:jar:provided</include>
+ <include>com.yahoo.vespa:container-messagebus:*:jar:provided</include>
+ <include>com.yahoo.vespa:container-search-and-docproc:*:jar:provided</include>
+ <include>com.yahoo.vespa:container-search:*:jar:provided</include>
+ <include>com.yahoo.vespa:container:*:jar:provided</include>
+ <include>com.yahoo.vespa:defaults:*:jar:provided</include>
+ <include>com.yahoo.vespa:docproc:*:jar:provided</include>
+ <include>com.yahoo.vespa:document:*:jar:provided</include>
+ <include>com.yahoo.vespa:documentapi:*:jar:provided</include>
+ <include>com.yahoo.vespa:fileacquirer:*:jar:provided</include>
+ <include>com.yahoo.vespa:fsa:*:jar:provided</include>
+ <include>com.yahoo.vespa:hosted-zone-api:*:jar:provided</include>
+ <include>com.yahoo.vespa:http-utils:*:jar:provided</include>
+ <include>com.yahoo.vespa:jdisc_core:*:jar:provided</include>
+ <include>com.yahoo.vespa:jdisc_http_service:*:jar:provided</include>
+ <include>com.yahoo.vespa:jdisc_messagebus_service:*:jar:provided</include>
+ <include>com.yahoo.vespa:jrt:*:jar:provided</include>
+ <include>com.yahoo.vespa:linguistics:*:jar:provided</include>
+ <include>com.yahoo.vespa:messagebus-disc:*:jar:provided</include>
+ <include>com.yahoo.vespa:messagebus:*:jar:provided</include>
+ <include>com.yahoo.vespa:model-evaluation:*:jar:provided</include>
+ <include>com.yahoo.vespa:predicate-search-core:*:jar:provided</include>
+ <include>com.yahoo.vespa:processing:*:jar:provided</include>
+ <include>com.yahoo.vespa:provided-dependencies:*:jar:provided</include>
+ <include>com.yahoo.vespa:provided-yahoo-dependencies:*:jar:provided</include>
+ <include>com.yahoo.vespa:searchcore:*:jar:provided</include>
+ <include>com.yahoo.vespa:searchlib:*:jar:provided</include>
+ <include>com.yahoo.vespa:security-utils:*:jar:provided</include>
+ <include>com.yahoo.vespa:simplemetrics:*:jar:provided</include>
+ <include>com.yahoo.vespa:statistics:*:jar:provided</include>
+ <include>com.yahoo.vespa:vdslib:*:jar:provided</include>
+ <include>com.yahoo.vespa:vespa-http-client:*:jar:provided</include>
+ <include>com.yahoo.vespa:vespa_jersey2:*:pom:provided</include>
+ <include>com.yahoo.vespa:vespaclient-container-plugin:*:jar:provided</include>
+ <include>com.yahoo.vespa:vespajlib:*:jar:provided</include>
+ <include>com.yahoo.vespa:vespalog:*:jar:provided</include>
+ <include>com.yahoo.vespa:yolean:*:jar:provided</include>
+
+ <!-- Vespa test dependencies -->
+ <include>com.yahoo.vespa:application:*:jar:test</include>
+ <include>com.yahoo.vespa:cloud-tenant-cd:*:jar:test</include>
+ <include>com.yahoo.vespa:config-application-package:*:jar:test</include>
+ <include>com.yahoo.vespa:config-model-api:*:jar:test</include>
+ <include>com.yahoo.vespa:config-model:*:jar:test</include>
+ <include>com.yahoo.vespa:config-provisioning:*:jar:test</include>
+ <include>com.yahoo.vespa:container-search-gui:*:jar:test</include>
+ <include>com.yahoo.vespa:container-test:*:jar:test</include>
+ <include>com.yahoo.vespa:hosted-api:*:jar:test</include>
+ <include>com.yahoo.vespa:indexinglanguage:*:jar:test</include>
+ <include>com.yahoo.vespa:jdisc_jetty:*:jar:test</include>
+ <include>com.yahoo.vespa:logd:*:jar:test</include>
+ <include>com.yahoo.vespa:metrics-proxy:*:jar:test</include>
+ <include>com.yahoo.vespa:metrics:*:jar:test</include>
+ <include>com.yahoo.vespa:model-integration:*:jar:test</include>
+ <include>com.yahoo.vespa:searchsummary:*:jar:test</include>
+ <include>com.yahoo.vespa:standalone-container:*:jar:test</include>
+ <include>com.yahoo.vespa:storage:*:jar:test</include>
+ <include>com.yahoo.vespa:tenant-cd-api:*:jar:test</include>
+ <include>com.yahoo.vespa:tenant-cd-commons:*:jar:test</include>
+ <include>com.yahoo.vespa:vespa-athenz:*:jar:test</include>
+ <include>com.yahoo.vespa:vespa_jersey2:*:pom:test</include>
+ <include>com.yahoo.vespa:vespaclient-core:*:jar:test</include>
+ <include>com.yahoo.vespa:vsm:*:jar:test</include>
+
+ <!-- 3rd party test dependencies -->
+ <include>com.amazonaws:aws-java-sdk-core:1.11.542:jar:test</include>
+ <include>com.auth0:java-jwt:3.10.0:jar:test</include>
+ <include>com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:2.6.7:jar:test</include>
+ <include>com.fasterxml.jackson.dataformat:jackson-dataformat-xml:[${jackson2.version}]:jar:test</include>
+ <include>com.fasterxml.woodstox:woodstox-core:5.0.3:jar:test</include>
+ <include>com.google.protobuf:protobuf-java:3.7.0:jar:test</include>
+ <include>com.ibm.icu:icu4j:57.1:jar:test</include>
+ <include>com.intellij:annotations:12.0:jar:test</include>
+ <include>com.optimaize.languagedetector:language-detector:0.6:jar:test</include>
+ <include>com.thaiopensource:jing:20091111:jar:test</include>
+ <include>com.yahoo.athenz:athenz-auth-core:[${athenz.version}]:jar:test</include>
+ <include>com.yahoo.athenz:athenz-client-common:[${athenz.version}]:jar:test</include>
+ <include>com.yahoo.athenz:athenz-zms-core:[${athenz.version}]:jar:test</include>
+ <include>com.yahoo.athenz:athenz-zpe-java-client:[${athenz.version}]:jar:test</include>
+ <include>com.yahoo.athenz:athenz-zts-core:[${athenz.version}]:jar:test</include>
+ <include>com.yahoo.rdl:rdl-java:1.5.2:jar:test</include>
+ <include>commons-beanutils:commons-beanutils-core:1.8.0:jar:test</include>
+ <include>commons-beanutils:commons-beanutils:1.7.0:jar:test</include>
+ <include>commons-codec:commons-codec:1.11:jar:test</include>
+ <include>commons-digester:commons-digester:1.8:jar:test</include>
+ <include>io.airlift:airline:0.7:jar:test</include>
+ <include>io.jsonwebtoken:jjwt:0.9.1:jar:test</include>
+ <include>io.prometheus:simpleclient:0.6.0:jar:test</include>
+ <include>io.prometheus:simpleclient_common:0.6.0:jar:test</include>
+ <include>joda-time:joda-time:2.8.1:jar:test</include>
+ <include>net.arnx:jsonic:1.2.11:jar:test</include>
+ <include>net.java.dev.jna:jna:4.5.2:jar:test</include>
+ <include>org.abego.treelayout:org.abego.treelayout.core:1.0.1:jar:test</include>
+ <include>org.antlr:antlr-runtime:3.5.2:jar:test</include>
+ <include>org.antlr:antlr4-runtime:4.5:jar:test</include>
+ <include>org.apache.commons:commons-exec:1.3:jar:test</include>
+ <include>org.apache.commons:commons-math3:3.6.1:jar:test</include>
+ <include>org.apache.httpcomponents:httpclient:4.5.12:jar:test</include>
+ <include>org.apache.httpcomponents:httpcore:4.4.13:jar:test</include>
+ <include>org.apache.opennlp:opennlp-tools:1.8.4:jar:test</include>
+ <include>org.apiguardian:apiguardian-api:1.1.0:jar:test</include>
+ <include>org.codehaus.woodstox:stax2-api:3.1.4:jar:test</include>
+ <include>org.eclipse.jetty:jetty-continuation:[${jetty.version}]:jar:test</include>
+ <include>org.eclipse.jetty:jetty-jmx:[${jetty.version}]:jar:test</include>
+ <include>org.eclipse.jetty:jetty-security:[${jetty.version}]:jar:test</include>
+ <include>org.eclipse.jetty:jetty-server:[${jetty.version}]:jar:test</include>
+ <include>org.eclipse.jetty:jetty-servlet:[${jetty.version}]:jar:test</include>
+ <include>org.eclipse.jetty:jetty-servlets:[${jetty.version}]:jar:test</include>
+ <include>org.hdrhistogram:HdrHistogram:2.1.8:jar:test</include>
+ <include>org.junit.jupiter:junit-jupiter-api:5.6.2:jar:test</include>
+ <include>org.junit.jupiter:junit-jupiter-engine:5.6.2:jar:test</include>
+ <include>org.junit.platform:junit-platform-commons:1.6.2:jar:test</include>
+ <include>org.junit.platform:junit-platform-engine:1.6.2:jar:test</include>
+ <include>org.kohsuke:libpam4j:1.11:jar:test</include>
+ <include>org.opentest4j:opentest4j:1.2.0:jar:test</include>
+ <include>org.tensorflow:libtensorflow:[${tensorflow.version}]:jar:test</include>
+ <include>org.tensorflow:libtensorflow_jni:[${tensorflow.version}]:jar:test</include>
+ <include>org.tensorflow:proto:[${tensorflow.version}]:jar:test</include>
+ <include>org.tensorflow:tensorflow:[${tensorflow.version}]:jar:test</include>
+ <include>software.amazon.ion:ion-java:1.0.2:jar:test</include>
+ <include>xerces:xercesImpl:2.12.0:jar:test</include>
+ </includes>
+ </bannedDependencies>
+ </rules>
+ <fail>true</fail>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>