summaryrefslogtreecommitdiffstats
path: root/bundle-plugin-test
diff options
context:
space:
mode:
authorgjoranv <gjoranv@gmail.com>2023-09-15 13:28:34 +0200
committergjoranv <gjoranv@gmail.com>2023-09-15 13:29:39 +0200
commit8d39c67dbfa0374f0faac324213f5e5d0952c0f0 (patch)
treebb9d9ecd1ecfb7f692a855fff5b38c6ab08248c0 /bundle-plugin-test
parent10564519750903d8683258a2f10e0561d3932727 (diff)
Add test bundle emulating a vespa bundle using a non-public api.
Diffstat (limited to 'bundle-plugin-test')
-rw-r--r--bundle-plugin-test/integration-test/src/test/java/com/yahoo/container/plugin/BundleTest.java2
-rw-r--r--bundle-plugin-test/integration-test/src/test/java/com/yahoo/container/plugin/NonPublicApiDetectionTest.java3
-rw-r--r--bundle-plugin-test/test-bundles/export-packages-lib/src/main/java/ai/vespa/internal/Foo.java5
-rw-r--r--bundle-plugin-test/test-bundles/export-packages-lib/src/main/java/ai/vespa/internal/package-info.java5
-rw-r--r--bundle-plugin-test/test-bundles/non-public-api-usage/pom.xml6
-rw-r--r--bundle-plugin-test/test-bundles/pom.xml3
-rw-r--r--bundle-plugin-test/test-bundles/vespa-jar-using-non-public-api/pom.xml27
-rw-r--r--bundle-plugin-test/test-bundles/vespa-jar-using-non-public-api/src/main/java/ai/vespa/using_non_public_api/UsingNonPublicApiPackage.java8
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;
+
+}