aboutsummaryrefslogtreecommitdiffstats
path: root/bundle-plugin-test/integration-test
diff options
context:
space:
mode:
authorgjoranv <gjoranv@gmail.com>2019-10-22 12:25:07 +0200
committerGitHub <noreply@github.com>2019-10-22 12:25:07 +0200
commitf6563753903259c99e8a3ca98a2b437220742dfd (patch)
tree37c957f6276d211172d26854aa1c8de4da82739e /bundle-plugin-test/integration-test
parent9197d19c98cf6e81164851c672183c50e1e00409 (diff)
Revert "Gjoranv/artifact version for exports2"
Diffstat (limited to 'bundle-plugin-test/integration-test')
-rw-r--r--bundle-plugin-test/integration-test/pom.xml92
-rw-r--r--bundle-plugin-test/integration-test/src/test/java/com/yahoo/container/plugin/BundleTest.java172
-rw-r--r--bundle-plugin-test/integration-test/src/test/java/com/yahoo/container/plugin/ExportPackageVersionTest.java68
3 files changed, 0 insertions, 332 deletions
diff --git a/bundle-plugin-test/integration-test/pom.xml b/bundle-plugin-test/integration-test/pom.xml
deleted file mode 100644
index 42d3b0e4d62..00000000000
--- a/bundle-plugin-test/integration-test/pom.xml
+++ /dev/null
@@ -1,92 +0,0 @@
-<?xml version="1.0"?>
-<!-- Copyright 2019 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.bundle-plugin</groupId>
- <artifactId>bundle-plugin-test</artifactId>
- <version>7-SNAPSHOT</version>
- <relativePath>../pom.xml</relativePath>
- </parent>
- <artifactId>integration-test</artifactId>
- <version>7-SNAPSHOT</version>
- <packaging>jar</packaging>
-
- <dependencies>
- <dependency>
- <groupId>com.yahoo.vespa</groupId>
- <artifactId>config</artifactId>
- <version>${project.version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>com.yahoo.vespa</groupId>
- <artifactId>vespajlib</artifactId>
- <version>${project.version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.maven</groupId>
- <artifactId>maven-artifact</artifactId>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>com.yahoo.vespa.bundle-plugin</groupId>
- <artifactId>main</artifactId>
- <classifier>bundle</classifier>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>com.yahoo.vespa.bundle-plugin</groupId>
- <artifactId>artifact-version-for-exports</artifactId>
- <classifier>bundle</classifier>
- <version>${project.version}</version>
- </dependency>
- </dependencies>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <configuration>
- <redirectTestOutputToFile>${test.hide}</redirectTestOutputToFile>
- <systemPropertyVariables>
- <test.bundle.path>${project.build.directory}/dependency</test.bundle.path>
- </systemPropertyVariables>
- <trimStackTrace>false</trimStackTrace>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <executions>
- <execution>
- <id>copy-dependencies</id>
- <phase>process-test-classes</phase>
- <goals>
- <goal>copy-dependencies</goal>
- </goals>
- <configuration>
- <includeScope>compile</includeScope>
- <excludeTransitive>true</excludeTransitive>
- <stripVersion>true</stripVersion>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- </plugin>
- </plugins>
- </build>
-</project>
diff --git a/bundle-plugin-test/integration-test/src/test/java/com/yahoo/container/plugin/BundleTest.java b/bundle-plugin-test/integration-test/src/test/java/com/yahoo/container/plugin/BundleTest.java
deleted file mode 100644
index 3c0379952fa..00000000000
--- a/bundle-plugin-test/integration-test/src/test/java/com/yahoo/container/plugin/BundleTest.java
+++ /dev/null
@@ -1,172 +0,0 @@
-// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package com.yahoo.container.plugin;
-
-import com.yahoo.osgi.maven.ProjectBundleClassPaths;
-import com.yahoo.vespa.config.VespaVersion;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.TemporaryFolder;
-
-import java.io.File;
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.util.Collection;
-import java.util.jar.Attributes;
-import java.util.jar.JarFile;
-import java.util.jar.Manifest;
-import java.util.zip.ZipEntry;
-
-import static com.yahoo.osgi.maven.ProjectBundleClassPaths.CLASSPATH_MAPPINGS_FILENAME;
-import static java.nio.file.StandardCopyOption.REPLACE_EXISTING;
-import static org.hamcrest.CoreMatchers.allOf;
-import static org.hamcrest.CoreMatchers.anyOf;
-import static org.hamcrest.CoreMatchers.containsString;
-import static org.hamcrest.CoreMatchers.endsWith;
-import static org.hamcrest.CoreMatchers.hasItems;
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertThat;
-
-/**
- * Verifies the bundle jar file built and its manifest.
- *
- * @author Tony Vaagenes
- */
-public class BundleTest {
- static final String TEST_BUNDLE_PATH = System.getProperty("test.bundle.path", ".") + "/";
-
- private JarFile jarFile;
- private Attributes mainAttributes;
-
- @Before
- public void setup() {
- try {
- File componentJar = findBundleJar("main");
- jarFile = new JarFile(componentJar);
- Manifest manifest = jarFile.getManifest();
- mainAttributes = manifest.getMainAttributes();
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- }
-
- static File findBundleJar(String bundleName) {
- Path bundlePath = Paths.get(TEST_BUNDLE_PATH, bundleName + "-bundle.jar");
- if (! Files.exists(bundlePath)) {
- throw new RuntimeException("Failed finding component jar file: " + bundlePath);
- }
-
- return bundlePath.toFile();
- }
-
- @Test
- public void require_that_bundle_version_is_added_to_manifest() {
- String bundleVersion = mainAttributes.getValue("Bundle-Version");
-
- // Because of snapshot builds, we can only verify the major version.
- int majorBundleVersion = Integer.valueOf(bundleVersion.substring(0, bundleVersion.indexOf('.')));
- assertThat(majorBundleVersion, is(VespaVersion.major));
- }
-
- @Test
- public void require_that_bundle_symbolic_name_matches_pom_artifactId() {
- assertThat(mainAttributes.getValue("Bundle-SymbolicName"), is("main"));
- }
-
- @Test
- public void require_that_manifest_contains_inferred_imports() {
- String importPackage = mainAttributes.getValue("Import-Package");
-
- // From SimpleSearcher
- assertThat(importPackage, containsString("com.yahoo.prelude.hitfield"));
- assertThat(importPackage, containsString("org.json"));
-
- // From SimpleSearcher2
- assertThat(importPackage, containsString("com.yahoo.processing"));
- assertThat(importPackage, containsString("com.yahoo.metrics.simple"));
- assertThat(importPackage, containsString("com.google.inject"));
- }
-
- @Test
- public void require_that_manifest_contains_manual_imports() {
- String importPackage = mainAttributes.getValue("Import-Package");
-
- assertThat(importPackage, containsString("manualImport.withoutVersion"));
- assertThat(importPackage, containsString("manualImport.withVersion;version=\"12.3.4\""));
-
- for (int i=1; i<=2; ++i)
- assertThat(importPackage, containsString("multiple.packages.with.the.same.version" + i + ";version=\"[1,2)\""));
- }
-
- @Test
- public void require_that_manifest_contains_exports() {
- String exportPackage = mainAttributes.getValue("Export-Package");
- assertThat(exportPackage, containsString("com.yahoo.test;version=1.2.3.RELEASE"));
- }
-
- @Test
- // TODO: use another jar than jrt, which now pulls in a lot of dependencies that pollute the manifest of the
- // generated bundle. (It's compile scoped in pom.xml to be added to the bundle-cp.)
- public void require_that_manifest_contains_bundle_class_path() {
- String bundleClassPath = mainAttributes.getValue("Bundle-ClassPath");
- assertThat(bundleClassPath, containsString(".,"));
- // If bundle-plugin-test is compiled in a mvn command that also built jrt,
- // the jrt artifact is jrt.jar, otherwise the installed and versioned artifact
- // is used: jrt-7-SNAPSHOT.jar.
- assertThat(bundleClassPath, anyOf(
- containsString("dependencies/jrt-7-SNAPSHOT.jar"),
- containsString("dependencies/jrt.jar")));
- }
-
- @Test
- public void require_that_component_jar_file_contains_compile_artifacts() {
- ZipEntry versionedEntry = jarFile.getEntry("dependencies/jrt-7-SNAPSHOT.jar");
- ZipEntry unversionedEntry = jarFile.getEntry("dependencies/jrt.jar");
- if (versionedEntry == null) {
- assertNotNull(unversionedEntry);
- } else {
- assertNull(unversionedEntry);
- }
- }
-
-
- @Test
- public void require_that_web_inf_url_is_propagated_to_the_manifest() {
- String webInfUrl = mainAttributes.getValue("WebInfUrl");
- assertThat(webInfUrl, containsString("/WEB-INF/web.xml"));
- }
-
- // TODO Vespa 8: Remove, the classpath mappings file is only needed for jersey resources to work in the application test framework.
- // When this test is removed, also remove the maven-resources-plugin from the 'main' test bundle's pom.
- @Rule
- public TemporaryFolder tempFolder = new TemporaryFolder();
- @SuppressWarnings("unchecked")
- @Test
- public void bundle_class_path_mappings_are_generated() throws Exception {
- ZipEntry classpathMappingsEntry = jarFile.getEntry(CLASSPATH_MAPPINGS_FILENAME);
-
- assertNotNull(
- "Could not find " + CLASSPATH_MAPPINGS_FILENAME + " in the test bundle",
- classpathMappingsEntry);
-
- Path mappingsFile = tempFolder.newFile(CLASSPATH_MAPPINGS_FILENAME).toPath();
- Files.copy(jarFile.getInputStream(classpathMappingsEntry), mappingsFile, REPLACE_EXISTING);
-
- ProjectBundleClassPaths bundleClassPaths = ProjectBundleClassPaths.load(mappingsFile);
-
- assertThat(bundleClassPaths.mainBundle.bundleSymbolicName, is("main"));
-
- Collection<String> mainBundleClassPaths = bundleClassPaths.mainBundle.classPathElements;
-
- assertThat(mainBundleClassPaths,
- hasItems(
- endsWith("target/classes"),
- anyOf(
- allOf(containsString("jrt"), containsString(".jar"), containsString("m2/repository")),
- containsString("jrt/target/jrt.jar"))));
- }
-}
diff --git a/bundle-plugin-test/integration-test/src/test/java/com/yahoo/container/plugin/ExportPackageVersionTest.java b/bundle-plugin-test/integration-test/src/test/java/com/yahoo/container/plugin/ExportPackageVersionTest.java
deleted file mode 100644
index 46f8dd61576..00000000000
--- a/bundle-plugin-test/integration-test/src/test/java/com/yahoo/container/plugin/ExportPackageVersionTest.java
+++ /dev/null
@@ -1,68 +0,0 @@
-// Copyright 2019 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package com.yahoo.container.plugin;
-
-import org.junit.BeforeClass;
-import org.junit.Test;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.jar.Attributes;
-import java.util.jar.JarFile;
-
-import static com.yahoo.container.plugin.BundleTest.findBundleJar;
-import static org.hamcrest.CoreMatchers.containsString;
-import static org.hamcrest.CoreMatchers.not;
-import static org.junit.Assert.assertThat;
-
-/**
- * Verifies that the 'useArtifactVersionForExportPackages' setting for the bundle-plugin works as intended.
- *
- * @author gjoranv
- */
-public class ExportPackageVersionTest {
-
- private static Attributes mainAttributes;
-
- @BeforeClass
- public static void setup() {
- try {
- File componentJar = findBundleJar("artifact-version-for-exports");
- mainAttributes = new JarFile(componentJar).getManifest().getMainAttributes();
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- }
-
- @Test
- public void artifact_version_without_qualifier_is_used_as_export_version() {
- // Bundle-Version is artifact version without qualifier
- String bundleVersion = mainAttributes.getValue("Bundle-Version");
- String expectedExport = "ai.vespa.noversion;version=" + bundleVersion;
-
- String exportPackage = mainAttributes.getValue("Export-Package");
- assertThat(exportPackage, containsString(expectedExport));
-
- // Verify that there is no qualifier
- assertThat(exportPackage, not(containsString(expectedExport + ".")));
- }
-
- @Test
- public void explicit_version_in_ExportPackage_annotation_overrides_artifact_version() {
- String exportPackage = mainAttributes.getValue("Export-Package");
- assertThat(exportPackage, containsString("ai.vespa.explicitversion;version=2.4.6.RELEASE"));
- }
-
- @Test
- public void artifact_version_of_dependency_is_used_as_export_version_for_package_in_compile_scoped_dependency() {
- String exportPackage = mainAttributes.getValue("Export-Package");
- // Verify against the artifact version from the test bundle's pom.
- assertThat(exportPackage, containsString("ai.vespa.noversion_dep;version=3.2.1"));
- }
-
- @Test
- public void explicit_version_in_ExportPackage_annotation_overrides_artifact_version_of_compile_scoped_dependency() {
- String exportPackage = mainAttributes.getValue("Export-Package");
- assertThat(exportPackage, containsString("ai.vespa.explicitversion_dep;version=3.6.9.RELEASE"));
- }
-
-}