aboutsummaryrefslogtreecommitdiffstats
path: root/bundle-plugin-test/integration-test/src/test/java/com/yahoo
diff options
context:
space:
mode:
Diffstat (limited to 'bundle-plugin-test/integration-test/src/test/java/com/yahoo')
-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.java72
2 files changed, 0 insertions, 244 deletions
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 66f36e32f39..00000000000
--- a/bundle-plugin-test/integration-test/src/test/java/com/yahoo/container/plugin/ExportPackageVersionTest.java
+++ /dev/null
@@ -1,72 +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;
- private static String bundleVersion;
-
- @BeforeClass
- public static void setup() {
- try {
- File componentJar = findBundleJar("artifact-version-for-exports");
- mainAttributes = new JarFile(componentJar).getManifest().getMainAttributes();
- bundleVersion = mainAttributes.getValue("Bundle-Version");
-
- } 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 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");
-
- // TODO: This test should have checked for a fixed version of the dependency bundle, different than the main bundle version.
- // See comment in the dependency bundle's pom.xml for why this is not the case.
- assertThat(exportPackage, containsString("ai.vespa.noversion_dep;version=" + bundleVersion));
- }
-
- @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"));
- }
-
-}