diff options
author | gjoranv <gjoranv@gmail.com> | 2023-09-15 13:28:34 +0200 |
---|---|---|
committer | gjoranv <gjoranv@gmail.com> | 2023-09-15 13:29:39 +0200 |
commit | 8d39c67dbfa0374f0faac324213f5e5d0952c0f0 (patch) | |
tree | bb9d9ecd1ecfb7f692a855fff5b38c6ab08248c0 /bundle-plugin-test | |
parent | 10564519750903d8683258a2f10e0561d3932727 (diff) |
Add test bundle emulating a vespa bundle using a non-public api.
Diffstat (limited to 'bundle-plugin-test')
8 files changed, 56 insertions, 3 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 index a9b482377fa..9645ee91f3a 100644 --- 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 @@ -123,7 +123,7 @@ public class BundleTest { assertNotNull(nonPublicApiAttribute); var nonPublicApi = Arrays.stream(nonPublicApiAttribute.split(",")).collect(Collectors.toSet()); - var expected = List.of("ai.vespa.lib.non_public", "com.yahoo.lib.non_public", "com.yahoo.non_public"); + var expected = List.of("ai.vespa.internal", "ai.vespa.lib.non_public", "com.yahoo.lib.non_public", "com.yahoo.non_public"); assertEquals(expected.size(), nonPublicApi.size()); expected.forEach(pkg -> assertTrue(nonPublicApi.contains(pkg), "Non-public api did not contain %s".formatted(pkg))); } diff --git a/bundle-plugin-test/integration-test/src/test/java/com/yahoo/container/plugin/NonPublicApiDetectionTest.java b/bundle-plugin-test/integration-test/src/test/java/com/yahoo/container/plugin/NonPublicApiDetectionTest.java index 046f26432ac..ad6a2798376 100644 --- a/bundle-plugin-test/integration-test/src/test/java/com/yahoo/container/plugin/NonPublicApiDetectionTest.java +++ b/bundle-plugin-test/integration-test/src/test/java/com/yahoo/container/plugin/NonPublicApiDetectionTest.java @@ -41,7 +41,8 @@ public class NonPublicApiDetectionTest { assertNotNull(nonPublicApiAttribute); var usedNonPublicApi = Arrays.stream(nonPublicApiAttribute.split(",")).collect(Collectors.toSet()); - assertEquals(2, usedNonPublicApi.size()); + assertEquals(3, usedNonPublicApi.size()); + assertTrue(usedNonPublicApi.contains("ai.vespa.internal")); assertTrue(usedNonPublicApi.contains("ai.vespa.lib.non_public")); assertTrue(usedNonPublicApi.contains("com.yahoo.lib.non_public")); } diff --git a/bundle-plugin-test/test-bundles/export-packages-lib/src/main/java/ai/vespa/internal/Foo.java b/bundle-plugin-test/test-bundles/export-packages-lib/src/main/java/ai/vespa/internal/Foo.java new file mode 100644 index 00000000000..ed955a7a779 --- /dev/null +++ b/bundle-plugin-test/test-bundles/export-packages-lib/src/main/java/ai/vespa/internal/Foo.java @@ -0,0 +1,5 @@ +package ai.vespa.internal; + +public interface Foo { + +} diff --git a/bundle-plugin-test/test-bundles/export-packages-lib/src/main/java/ai/vespa/internal/package-info.java b/bundle-plugin-test/test-bundles/export-packages-lib/src/main/java/ai/vespa/internal/package-info.java new file mode 100644 index 00000000000..9814b033acd --- /dev/null +++ b/bundle-plugin-test/test-bundles/export-packages-lib/src/main/java/ai/vespa/internal/package-info.java @@ -0,0 +1,5 @@ +// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +@ExportPackage +package ai.vespa.internal; + +import com.yahoo.osgi.annotation.ExportPackage; diff --git a/bundle-plugin-test/test-bundles/non-public-api-usage/pom.xml b/bundle-plugin-test/test-bundles/non-public-api-usage/pom.xml index 2a621fd97c2..fb52368d186 100644 --- a/bundle-plugin-test/test-bundles/non-public-api-usage/pom.xml +++ b/bundle-plugin-test/test-bundles/non-public-api-usage/pom.xml @@ -22,6 +22,12 @@ <version>${project.version}</version> <scope>provided</scope> </dependency> + + <dependency> + <groupId>com.yahoo.vespa.bundle-plugin</groupId> + <artifactId>vespa-jar-using-non-public-api</artifactId> + <version>${project.version}</version> + </dependency> </dependencies> <build> diff --git a/bundle-plugin-test/test-bundles/pom.xml b/bundle-plugin-test/test-bundles/pom.xml index 71c0e549be6..4fced129d2e 100644 --- a/bundle-plugin-test/test-bundles/pom.xml +++ b/bundle-plugin-test/test-bundles/pom.xml @@ -51,8 +51,9 @@ <module>artifact-version-for-exports</module> <module>artifact-version-for-exports-dep</module> <module>export-packages-lib</module> - <module>non-public-api-usage</module> <module>main</module> + <module>non-public-api-usage</module> + <module>vespa-jar-using-non-public-api</module> </modules> <dependencies> diff --git a/bundle-plugin-test/test-bundles/vespa-jar-using-non-public-api/pom.xml b/bundle-plugin-test/test-bundles/vespa-jar-using-non-public-api/pom.xml new file mode 100644 index 00000000000..18b44fcad23 --- /dev/null +++ b/bundle-plugin-test/test-bundles/vespa-jar-using-non-public-api/pom.xml @@ -0,0 +1,27 @@ +<?xml version="1.0"?> +<!-- Copyright Yahoo. 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>test-bundles</artifactId> + <version>8-SNAPSHOT</version> + <relativePath>../pom.xml</relativePath> + </parent> + <artifactId>vespa-jar-using-non-public-api</artifactId> + <version>8-SNAPSHOT</version> + <packaging>jar</packaging> + + <dependencies> + <dependency> + <groupId>com.yahoo.vespa.bundle-plugin</groupId> + <artifactId>export-packages-lib</artifactId> + <version>${project.version}</version> + <scope>provided</scope> + </dependency> + </dependencies> + +</project> diff --git a/bundle-plugin-test/test-bundles/vespa-jar-using-non-public-api/src/main/java/ai/vespa/using_non_public_api/UsingNonPublicApiPackage.java b/bundle-plugin-test/test-bundles/vespa-jar-using-non-public-api/src/main/java/ai/vespa/using_non_public_api/UsingNonPublicApiPackage.java new file mode 100644 index 00000000000..1234ae40920 --- /dev/null +++ b/bundle-plugin-test/test-bundles/vespa-jar-using-non-public-api/src/main/java/ai/vespa/using_non_public_api/UsingNonPublicApiPackage.java @@ -0,0 +1,8 @@ +// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package ai.vespa.using_non_public_api; + +public class UsingNonPublicApiPackage { + + ai.vespa.internal.Foo non_public_vespa = null; + +} |