diff options
author | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2020-06-30 15:09:12 +0200 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2020-07-01 12:09:23 +0200 |
commit | 5108f48b4994422924b14fc4a435e33733c56756 (patch) | |
tree | 6dfc7a067988493b500c946fad54f1695635b014 | |
parent | b4abecef92c802ee6f779dc77d4328cc6fbf22cb (diff) |
Redefine hosted-tenant-base + cloud-tenant-base
Use implicit profile that builds artifacts in default package phase.
Remove duplicated definitions from cloud-tenant-base.
Replace scope 'runtime' with 'test'.
Use new plugin goals to build test-bundle.
Remove old, undocumented dependencies excludes.
-rw-r--r-- | cloud-tenant-base/is-base-pom-module.txt | 0 | ||||
-rw-r--r-- | cloud-tenant-base/pom.xml | 332 | ||||
-rw-r--r-- | hosted-tenant-base/is-base-pom-module.txt | 0 | ||||
-rw-r--r-- | hosted-tenant-base/pom.xml | 297 |
4 files changed, 100 insertions, 529 deletions
diff --git a/cloud-tenant-base/is-base-pom-module.txt b/cloud-tenant-base/is-base-pom-module.txt new file mode 100644 index 00000000000..e69de29bb2d --- /dev/null +++ b/cloud-tenant-base/is-base-pom-module.txt diff --git a/cloud-tenant-base/pom.xml b/cloud-tenant-base/pom.xml index 8ffa6be4f9c..8011d110229 100644 --- a/cloud-tenant-base/pom.xml +++ b/cloud-tenant-base/pom.xml @@ -39,345 +39,17 @@ <properties> <endpoint>https://api.vespa-external.aws.oath.cloud:4443</endpoint> + <bundlePluginExtraTestProvidedDependencies>com.yahoo.vespa:cloud-tenant-cd</bundlePluginExtraTestProvidedDependencies> </properties> - <dependencyManagement> - <dependencies> - <dependency> - <groupId>com.yahoo.vespa</groupId> - <artifactId>container-dependency-versions</artifactId> - <version>${vespaversion}</version> - <type>pom</type> - <scope>import</scope> - </dependency> - - <dependency> - <groupId>org.junit.vintage</groupId> - <artifactId>junit-vintage-engine</artifactId> - <version>${junit.version}</version> - </dependency> - - <dependency> - <groupId>org.junit.jupiter</groupId> - <artifactId>junit-jupiter-engine</artifactId> - <version>${junit.version}</version> - </dependency> - </dependencies> - </dependencyManagement> <dependencies> <dependency> <groupId>com.yahoo.vespa</groupId> - <artifactId>container</artifactId> - <version>${vespaversion}</version> - <scope>provided</scope> - </dependency> - - <dependency> - <groupId>com.yahoo.vespa</groupId> - <artifactId>container-test</artifactId> - <version>${vespaversion}</version> - <scope>test</scope> - <exclusions> - <exclusion> - <groupId>org.apache.commons</groupId> - <artifactId>commons-exec</artifactId> - </exclusion> - <exclusion> - <groupId>commons-lang</groupId> - <artifactId>commons-lang</artifactId> - </exclusion> - </exclusions> - </dependency> - - <dependency> - <groupId>com.yahoo.vespa</groupId> <artifactId>cloud-tenant-cd</artifactId> <version>${test-framework.version}</version> - <scope>runtime</scope> + <scope>test</scope> </dependency> </dependencies> - <profiles> - <profile> - <!-- Build *-fat-test.jar file that includes all non-test classes and resources - that are part of the class path during test and and test.jar that includes - all test classes and resources, and put it inside a zip: - 1. application classes and resources - 2. test classes and resources - 3. classes and resources in all dependencies of both (1) and (2) - 4. copy the fat-test-jar and test-jar to application-test/artifacts directory - 5. zip application-test --> - <id>fat-test-application</id> - <build> - <plugins> - <plugin> - <!-- dependencies, see (3) above --> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-dependency-plugin</artifactId> - <version>3.1.1</version> - <executions> - <execution> - <!-- JAR-like dependencies --> - <id>unpack-dependencies</id> - <phase>prepare-package</phase> - <goals> - <goal>unpack-dependencies</goal> - </goals> - <configuration> - <includeTypes>jar,test-jar</includeTypes> - <outputDirectory>target/fat-test-classes</outputDirectory> - <!-- WARNING(2018-06-27): bcpkix-jdk15on-1.58.jar and - bcprov-jdk15on-1.58.jar are pulled in via - container-dev and both contains the same set of - bouncycastle signature files in META-INF: - BC1024KE.DSA, BC1024KE.SF, BC2048KE.DSA, and - BC2048KE.SF. By merging any of these two with any - other JAR file like we're doing here, the signatures - are wrong. Worse, what we're doing is WRONG but not - yet fatal. - - The symptom of this happening is that the tester fails - to load the SystemTest class(!?), and subsequently - tries to run all test-like files in the fat test JAR. - - The solution is to exclude such files. This happens - automatically with maven-assembly-plugin. --> - <excludes>META-INF/*.SF,META-INF/*.DSA</excludes> - </configuration> - </execution> - <execution> - <!-- non-JAR-like dependencies --> - <id>non-jar-dependencies</id> - <phase>prepare-package</phase> - <goals> - <goal>copy-dependencies</goal> - </goals> - <configuration> - <excludeTypes>jar,test-jar</excludeTypes> - <outputDirectory>target/fat-test-classes</outputDirectory> - </configuration> - </execution> - </executions> - </plugin> - <plugin> - <artifactId>maven-resources-plugin</artifactId> - <version>3.1.0</version> - <executions> - <execution> - <id>copy-resources</id> - <phase>prepare-package</phase> - <goals> - <goal>copy-resources</goal> - </goals> - <configuration> - <outputDirectory>target/fat-test-classes</outputDirectory> - <resources> - <!-- application classes and resources, see 1. above --> - <resource> - <directory>target/classes</directory> - </resource> - </resources> - </configuration> - </execution> - </executions> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-jar-plugin</artifactId> - <version>3.1.0</version> - <executions> - <execution> - <id>fat-test-jar</id> - <phase>package</phase> - <goals> - <goal>jar</goal> - </goals> - <configuration> - <classesDirectory>target/fat-test-classes</classesDirectory> - <classifier>fat-test</classifier> - </configuration> - </execution> - <execution> - <id>test-jar</id> - <phase>package</phase> - <goals> - <goal>test-jar</goal> - </goals> - </execution> - </executions> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-antrun-plugin</artifactId> - <executions> - <execution> - <id>attach-artifact</id> - <phase>package</phase> - <goals> - <goal>run</goal> - </goals> - <configuration> - <tasks> - <!-- copy fat test-jar to application-test artifacts directory, see 4. above --> - <copy file="target/${project.artifactId}-fat-test.jar" - todir="target/application-test/artifacts/" /> - - <!-- copy slim test-jar to application-test artifacts directory, see 4. above --> - <copy file="target/${project.artifactId}-tests.jar" - todir="target/application-test/artifacts/" /> - - <!-- zip application-test, see 5. above --> - <zip destfile="target/application-test.zip" - basedir="target/application-test/" /> - </tasks> - </configuration> - </execution> - </executions> - </plugin> - </plugins> - </build> - </profile> - - <profile> <!-- Alias vespaversion with a more descriptive vespa.compile.version --> - <id>set-vespa-compile-version</id> - <activation> - <property> - <name>vespa.compile.version</name> - </property> - </activation> - <properties> - <vespaversion>${vespa.compile.version}</vespaversion> - </properties> - </profile> - - <profile> <!-- Alias vespaVersion with a more descriptive vespa.runtime.version --> - <id>set-vespa-runtime-version</id> - <activation> - <property> - <name>vespa.runtime.version</name> - </property> - </activation> - <properties> - <vespaVersion>${vespa.runtime.version}</vespaVersion> - </properties> - </profile> - </profiles> - - <build> - <finalName>${project.artifactId}</finalName> - <pluginManagement> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-surefire-plugin</artifactId> - <version>${maven-surefire-plugin.version}</version> - <configuration> - <groups>${test.categories}</groups> - <redirectTestOutputToFile>false</redirectTestOutputToFile> - <trimStackTrace>false</trimStackTrace> - <systemPropertyVariables> - <application>${application}</application> - <tenant>${tenant}</tenant> - <instance>${instance}</instance> - <environment>${environment}</environment> - <region>${region}</region> - <endpoint>${endpoint}</endpoint> - <apiKeyFile>${apiKeyFile}</apiKeyFile> - <apiCertificateFile>${apiCertificateFile}</apiCertificateFile> - <dataPlaneKeyFile>${dataPlaneKeyFile}</dataPlaneKeyFile> - <dataPlaneCertificateFile>${dataPlaneCertificateFile}</dataPlaneCertificateFile> - </systemPropertyVariables> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-surefire-report-plugin</artifactId> - <version>${maven-surefire-plugin.version}</version> - <configuration> - <reportsDirectory>${env.TEST_DIR}</reportsDirectory> - </configuration> - </plugin> - </plugins> - </pluginManagement> - - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-enforcer-plugin</artifactId> - <version>3.0.0-M2</version> - <executions> - <execution> - <id>enforce-java</id> - <goals> - <goal>enforce</goal> - </goals> - <configuration> - <rules> - <requireJavaVersion> - <version>[11, )</version> - </requireJavaVersion> - <requireMavenVersion> - <version>[3.5, )</version> - </requireMavenVersion> - </rules> - </configuration> - </execution> - </executions> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>${maven-compiler-plugin.version}</version> - <configuration> - <source>${target_jdk_version}</source> - <target>${target_jdk_version}</target> - <showWarnings>true</showWarnings> - <showDeprecation>true</showDeprecation> - <compilerArgs> - <arg>-Xlint:all</arg> - <arg>-Werror</arg> - </compilerArgs> - </configuration> - </plugin> - - <plugin> - <groupId>com.yahoo.vespa</groupId> - <artifactId>vespa-maven-plugin</artifactId> - <version>${vespaversion}</version> - </plugin> - - <plugin> - <groupId>com.yahoo.vespa</groupId> - <artifactId>vespa-application-maven-plugin</artifactId> - <version>${vespaversion}</version> - <executions> - <execution> - <goals> - <goal>packageApplication</goal> - </goals> - </execution> - </executions> - </plugin> - - <plugin> - <groupId>com.yahoo.vespa</groupId> - <artifactId>bundle-plugin</artifactId> - <version>${vespaversion}</version> - <extensions>true</extensions> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-surefire-plugin</artifactId> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-surefire-report-plugin</artifactId> - </plugin> - </plugins> - </build> </project> diff --git a/hosted-tenant-base/is-base-pom-module.txt b/hosted-tenant-base/is-base-pom-module.txt new file mode 100644 index 00000000000..e69de29bb2d --- /dev/null +++ b/hosted-tenant-base/is-base-pom-module.txt diff --git a/hosted-tenant-base/pom.xml b/hosted-tenant-base/pom.xml index 93ef008b8f7..b565e1004e9 100644 --- a/hosted-tenant-base/pom.xml +++ b/hosted-tenant-base/pom.xml @@ -5,10 +5,6 @@ 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> - <!-- <version>7-SNAPSHOT</version>--> - <!-- <url>https://github.com/vespa-engine</url>--> - <!-- <packaging>pom</packaging>--> - <groupId>com.yahoo.vespa</groupId> <artifactId>hosted-tenant-base</artifactId> <version>7-SNAPSHOT</version> @@ -42,8 +38,8 @@ <maven-compiler-plugin.version>3.8.0</maven-compiler-plugin.version> <maven-surefire-plugin.version>2.22.0</maven-surefire-plugin.version> <junit.version>5.4.2</junit.version> - <endpoint>https://api.vespa-external.aws.oath.cloud:4443</endpoint> <test.categories>!integration</test.categories> + <bundlePluginExtraTestProvidedDependencies/> </properties> <dependencyManagement> @@ -60,12 +56,14 @@ <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> <version>${junit.version}</version> + <scope>test</scope> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-engine</artifactId> <version>${junit.version}</version> + <scope>test</scope> </dependency> </dependencies> </dependencyManagement> @@ -82,17 +80,7 @@ <groupId>com.yahoo.vespa</groupId> <artifactId>container-test</artifactId> <version>${vespaversion}</version> - <scope>runtime</scope> - <exclusions> - <exclusion> - <groupId>org.apache.commons</groupId> - <artifactId>commons-exec</artifactId> - </exclusion> - <exclusion> - <groupId>commons-lang</groupId> - <artifactId>commons-lang</artifactId> - </exclusion> - </exclusions> + <scope>test</scope> </dependency> <dependency> @@ -101,117 +89,134 @@ <version>${test-framework.version}</version> <scope>test</scope> </dependency> + + <dependency> + <groupId>org.junit.jupiter</groupId> + <artifactId>junit-jupiter-engine</artifactId> + <scope>test</scope> + </dependency> </dependencies> <profiles> <profile> - <!-- Build *-fat-test.jar file that includes all non-test classes and resources - that are part of the class path during test and and test.jar that includes - all test classes and resources, and put it inside a zip: - 1. application classes and resources - 2. test classes and resources - 3. classes and resources in all dependencies of both (1) and (2) - 4. copy the fat-test-jar and test-jar to application-test/artifacts directory - 5. zip application-test --> - <id>fat-test-application</id> + <id>hosted-build-vespa-application</id> + <activation> + <file> + <!-- don't run this profile when building this module --> + <missing>is-base-pom-module.txt</missing> + </file> + </activation> <build> + <finalName>${project.artifactId}</finalName> <plugins> + <plugin> - <!-- dependencies, see (3) above --> <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-dependency-plugin</artifactId> - <version>3.1.1</version> - <executions> - <execution> - <!-- JAR-like dependencies --> - <id>unpack-dependencies</id> - <phase>prepare-package</phase> - <goals> - <goal>unpack-dependencies</goal> - </goals> - <configuration> - <includeTypes>jar,test-jar</includeTypes> - <outputDirectory>target/fat-test-classes</outputDirectory> - <!-- WARNING(2018-06-27): bcpkix-jdk15on-1.58.jar and - bcprov-jdk15on-1.58.jar are pulled in via - container-dev and both contains the same set of - bouncycastle signature files in META-INF: - BC1024KE.DSA, BC1024KE.SF, BC2048KE.DSA, and - BC2048KE.SF. By merging any of these two with any - other JAR file like we're doing here, the signatures - are wrong. Worse, what we're doing is WRONG but not - yet fatal. + <artifactId>maven-surefire-plugin</artifactId> + <version>${maven-surefire-plugin.version}</version> + <configuration> + <groups>${test.categories}</groups> + <redirectTestOutputToFile>false</redirectTestOutputToFile> + <trimStackTrace>false</trimStackTrace> + <systemPropertyVariables> + <application>${application}</application> + <tenant>${tenant}</tenant> + <instance>${instance}</instance> + <environment>${environment}</environment> + <region>${region}</region> + <endpoint>${endpoint}</endpoint> + <apiKeyFile>${apiKeyFile}</apiKeyFile> + <apiCertificateFile>${apiCertificateFile}</apiCertificateFile> + <dataPlaneKeyFile>${dataPlaneKeyFile}</dataPlaneKeyFile> + <dataPlaneCertificateFile>${dataPlaneCertificateFile}</dataPlaneCertificateFile> + </systemPropertyVariables> + </configuration> + </plugin> - The symptom of this happening is that the tester fails - to load the SystemTest class(!?), and subsequently - tries to run all test-like files in the fat test JAR. + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-report-plugin</artifactId> + <version>${maven-surefire-plugin.version}</version> + <configuration> + <reportsDirectory>${env.TEST_DIR}</reportsDirectory> + </configuration> + </plugin> - The solution is to exclude such files. This happens - automatically with maven-assembly-plugin. --> - <excludes>META-INF/*.SF,META-INF/*.DSA</excludes> - </configuration> - </execution> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-enforcer-plugin</artifactId> + <version>3.0.0-M2</version> + <executions> <execution> - <!-- non-JAR-like dependencies --> - <id>non-jar-dependencies</id> - <phase>prepare-package</phase> + <id>enforce-java</id> <goals> - <goal>copy-dependencies</goal> + <goal>enforce</goal> </goals> <configuration> - <excludeTypes>jar,test-jar</excludeTypes> - <outputDirectory>target/fat-test-classes</outputDirectory> + <rules> + <requireJavaVersion> + <version>[11, )</version> + </requireJavaVersion> + <requireMavenVersion> + <version>[3.5, )</version> + </requireMavenVersion> + </rules> </configuration> </execution> </executions> </plugin> + <plugin> - <artifactId>maven-resources-plugin</artifactId> - <version>3.1.0</version> + <groupId>com.yahoo.vespa</groupId> + <artifactId>bundle-plugin</artifactId> + <version>${vespaversion}</version> + <extensions>true</extensions> + <configuration> + <testProvidedArtifacts> + ${bundlePluginExtraTestProvidedDependencies}, + com.yahoo.vespa:tenant-cd-api, + com.yahoo.vespa:container-test, + org.junit.jupiter:junit-jupiter-api, + !com.yahoo.vespa:application + </testProvidedArtifacts> + </configuration> <executions> <execution> - <id>copy-resources</id> + <id>generate-test-bundle-osgi-manifest</id> <phase>prepare-package</phase> <goals> - <goal>copy-resources</goal> + <goal>generate-test-bundle-osgi-manifest</goal> </goals> - <configuration> - <outputDirectory>target/fat-test-classes</outputDirectory> - <resources> - <!-- application classes and resources, see 1. above --> - <resource> - <directory>target/classes</directory> - </resource> - </resources> - </configuration> </execution> - </executions> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-jar-plugin</artifactId> - <version>3.1.0</version> - <executions> <execution> - <id>fat-test-jar</id> + <id>assemble-test-bundle</id> <phase>package</phase> <goals> - <goal>jar</goal> + <goal>assemble-test-bundle</goal> </goals> - <configuration> - <classesDirectory>target/fat-test-classes</classesDirectory> - <classifier>fat-test</classifier> - </configuration> </execution> + </executions> + </plugin> + + <plugin> + <groupId>com.yahoo.vespa</groupId> + <artifactId>vespa-application-maven-plugin</artifactId> + <version>${vespaversion}</version> + <executions> <execution> - <id>test-jar</id> - <phase>package</phase> <goals> - <goal>test-jar</goal> + <goal>packageApplication</goal> </goals> </execution> </executions> </plugin> + + <plugin> + <groupId>com.yahoo.vespa</groupId> + <artifactId>vespa-maven-plugin</artifactId> + <version>${vespaversion}</version> + </plugin> + <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> @@ -224,17 +229,8 @@ </goals> <configuration> <tasks> - <!-- copy fat test-jar to application-test artifacts directory, see 4. above --> - <copy file="target/${project.artifactId}-fat-test.jar" - todir="target/application-test/artifacts/" /> - - <!-- copy slim test-jar to application-test artifacts directory, see 4. above --> - <copy file="target/${project.artifactId}-tests.jar" - todir="target/application-test/artifacts/" /> - - <!-- zip application-test, see 5. above --> - <zip destfile="target/application-test.zip" - basedir="target/application-test/" /> + <copy file="target/${project.artifactId}-tests.jar" todir="target/application-test/artifacts/" /> + <zip destfile="target/application-test.zip" basedir="target/application-test/" /> </tasks> </configuration> </execution> @@ -270,70 +266,9 @@ </profiles> <build> - <finalName>${project.artifactId}</finalName> - <pluginManagement> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-surefire-plugin</artifactId> - <version>${maven-surefire-plugin.version}</version> - <configuration> - <groups>${test.categories}</groups> - <redirectTestOutputToFile>false</redirectTestOutputToFile> - <trimStackTrace>false</trimStackTrace> - <systemPropertyVariables> - <application>${application}</application> - <tenant>${tenant}</tenant> - <instance>${instance}</instance> - <environment>${environment}</environment> - <region>${region}</region> - <endpoint>${endpoint}</endpoint> - <apiKeyFile>${apiKeyFile}</apiKeyFile> - <apiCertificateFile>${apiCertificateFile}</apiCertificateFile> - <dataPlaneKeyFile>${dataPlaneKeyFile}</dataPlaneKeyFile> - <dataPlaneCertificateFile>${dataPlaneCertificateFile}</dataPlaneCertificateFile> - </systemPropertyVariables> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-surefire-report-plugin</artifactId> - <version>${maven-surefire-plugin.version}</version> - <configuration> - <reportsDirectory>${env.TEST_DIR}</reportsDirectory> - </configuration> - </plugin> - </plugins> - </pluginManagement> - <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-enforcer-plugin</artifactId> - <version>3.0.0-M2</version> - <executions> - <execution> - <id>enforce-java</id> - <goals> - <goal>enforce</goal> - </goals> - <configuration> - <rules> - <requireJavaVersion> - <version>[11, )</version> - </requireJavaVersion> - <requireMavenVersion> - <version>[3.5, )</version> - </requireMavenVersion> - </rules> - </configuration> - </execution> - </executions> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>${maven-compiler-plugin.version}</version> <configuration> @@ -347,42 +282,6 @@ </compilerArgs> </configuration> </plugin> - - <plugin> - <groupId>com.yahoo.vespa</groupId> - <artifactId>vespa-maven-plugin</artifactId> - <version>${vespaversion}</version> - </plugin> - - <plugin> - <groupId>com.yahoo.vespa</groupId> - <artifactId>vespa-application-maven-plugin</artifactId> - <version>${vespaversion}</version> - <executions> - <execution> - <goals> - <goal>packageApplication</goal> - </goals> - </execution> - </executions> - </plugin> - - <plugin> - <groupId>com.yahoo.vespa</groupId> - <artifactId>bundle-plugin</artifactId> - <version>${vespaversion}</version> - <extensions>true</extensions> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-surefire-plugin</artifactId> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-surefire-report-plugin</artifactId> - </plugin> </plugins> </build> </project> |