From 31fb88cbbad81a0356c8266b999cd5b1be640ca6 Mon Sep 17 00:00:00 2001 From: Prudhvi Godithi Date: Fri, 24 Jan 2025 16:24:09 -0800 Subject: [PATCH] Refactor bootstrap for JPMS support Signed-off-by: Prudhvi Godithi --- CHANGELOG-3.0.md | 1 + .../opensearch/gradle/precommit/JarHellTask.java | 2 +- .../gradle/precommit/ThirdPartyAuditTask.java | 2 +- .../opensearch/gradle/test/TestClasspathUtils.java | 2 +- .../opensearch/plugins/InstallPluginCommand.java | 2 +- .../opensearch/{ => common}/bootstrap/JarHell.java | 2 +- .../{ => common}/bootstrap/JdkJarHellCheck.java | 2 +- .../{ => common}/bootstrap/package-info.java | 2 +- .../{ => common}/bootstrap/JarHellTests.java | 2 +- .../{ => common}/bootstrap/duplicate-classes.jar | Bin .../bootstrap/duplicate-xmlbeans-classes.jar | Bin .../org/opensearch/ingest/attachment/TikaImpl.java | 2 +- .../java/org/opensearch/bootstrap/Bootstrap.java | 1 + .../java/org/opensearch/bootstrap/Security.java | 1 + .../java/org/opensearch/plugins/PluginInfo.java | 2 +- .../java/org/opensearch/plugins/PluginsService.java | 2 +- .../resources/org/opensearch/bootstrap/test.policy | 0 .../org/opensearch/plugins/PluginsServiceTests.java | 2 +- .../opensearch/bootstrap/BootstrapForTesting.java | 1 + 19 files changed, 16 insertions(+), 12 deletions(-) rename libs/common/src/main/java/org/opensearch/{ => common}/bootstrap/JarHell.java (99%) rename libs/common/src/main/java/org/opensearch/{ => common}/bootstrap/JdkJarHellCheck.java (98%) rename libs/common/src/main/java/org/opensearch/{ => common}/bootstrap/package-info.java (85%) rename libs/common/src/test/java/org/opensearch/{ => common}/bootstrap/JarHellTests.java (99%) rename libs/common/src/test/resources/org/opensearch/{ => common}/bootstrap/duplicate-classes.jar (100%) rename libs/common/src/test/resources/org/opensearch/{ => common}/bootstrap/duplicate-xmlbeans-classes.jar (100%) rename {libs/common/src/test => server/src/main}/resources/org/opensearch/bootstrap/test.policy (100%) diff --git a/CHANGELOG-3.0.md b/CHANGELOG-3.0.md index 5d16c117d98fa..727684b9542b4 100644 --- a/CHANGELOG-3.0.md +++ b/CHANGELOG-3.0.md @@ -27,6 +27,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), - Add task completion count in search backpressure stats API ([#10028](https://github.com/opensearch-project/OpenSearch/pull/10028/)) - Deprecate CamelCase `PathHierarchy` tokenizer name in favor to lowercase `path_hierarchy` ([#10894](https://github.com/opensearch-project/OpenSearch/pull/10894)) - Breaking change: Do not request "search_pipelines" metrics by default in NodesInfoRequest ([#12497](https://github.com/opensearch-project/OpenSearch/pull/12497)) +- Refactor `:libs` module `bootstrap` package to eliminate top level split packages [#17117](https://github.com/opensearch-project/OpenSearch/pull/17117)) ### Deprecated diff --git a/buildSrc/src/main/java/org/opensearch/gradle/precommit/JarHellTask.java b/buildSrc/src/main/java/org/opensearch/gradle/precommit/JarHellTask.java index ebe0b25a3a685..47ad8cc524a3b 100644 --- a/buildSrc/src/main/java/org/opensearch/gradle/precommit/JarHellTask.java +++ b/buildSrc/src/main/java/org/opensearch/gradle/precommit/JarHellTask.java @@ -63,7 +63,7 @@ public JarHellTask(Project project) { public void runJarHellCheck() { LoggedExec.javaexec(project, spec -> { spec.environment("CLASSPATH", getClasspath().getAsPath()); - spec.getMainClass().set("org.opensearch.bootstrap.JarHell"); + spec.getMainClass().set("org.opensearch.common.bootstrap.JarHell"); }); } diff --git a/buildSrc/src/main/java/org/opensearch/gradle/precommit/ThirdPartyAuditTask.java b/buildSrc/src/main/java/org/opensearch/gradle/precommit/ThirdPartyAuditTask.java index 2ed801b7fb9c6..70a1ed478ff63 100644 --- a/buildSrc/src/main/java/org/opensearch/gradle/precommit/ThirdPartyAuditTask.java +++ b/buildSrc/src/main/java/org/opensearch/gradle/precommit/ThirdPartyAuditTask.java @@ -94,7 +94,7 @@ public class ThirdPartyAuditTask extends DefaultTask { CliMain.EXIT_VIOLATION, CliMain.EXIT_UNSUPPORTED_JDK ); - private static final String JDK_JAR_HELL_MAIN_CLASS = "org.opensearch.bootstrap.JdkJarHellCheck"; + private static final String JDK_JAR_HELL_MAIN_CLASS = "org.opensearch.common.bootstrap.JdkJarHellCheck"; private Set missingClassExcludes = new TreeSet<>(); diff --git a/buildSrc/src/testFixtures/java/org/opensearch/gradle/test/TestClasspathUtils.java b/buildSrc/src/testFixtures/java/org/opensearch/gradle/test/TestClasspathUtils.java index ec9a5fb157ccc..84362966d7300 100644 --- a/buildSrc/src/testFixtures/java/org/opensearch/gradle/test/TestClasspathUtils.java +++ b/buildSrc/src/testFixtures/java/org/opensearch/gradle/test/TestClasspathUtils.java @@ -48,7 +48,7 @@ public class TestClasspathUtils { public static void setupJarJdkClasspath(File projectRoot) { try { URL originLocation = TestClasspathUtils.class.getClassLoader() - .loadClass("org.opensearch.bootstrap.JdkJarHellCheck") + .loadClass("org.opensearch.common.bootstrap.JdkJarHellCheck") .getProtectionDomain() .getCodeSource() .getLocation(); diff --git a/distribution/tools/plugin-cli/src/main/java/org/opensearch/plugins/InstallPluginCommand.java b/distribution/tools/plugin-cli/src/main/java/org/opensearch/plugins/InstallPluginCommand.java index 511d6974085aa..d5a0102ba86af 100644 --- a/distribution/tools/plugin-cli/src/main/java/org/opensearch/plugins/InstallPluginCommand.java +++ b/distribution/tools/plugin-cli/src/main/java/org/opensearch/plugins/InstallPluginCommand.java @@ -52,12 +52,12 @@ import org.bouncycastle.openpgp.operator.jcajce.JcaPGPContentVerifierBuilderProvider; import org.opensearch.Build; import org.opensearch.Version; -import org.opensearch.bootstrap.JarHell; import org.opensearch.cli.EnvironmentAwareCommand; import org.opensearch.cli.ExitCodes; import org.opensearch.cli.Terminal; import org.opensearch.cli.UserException; import org.opensearch.common.SuppressForbidden; +import org.opensearch.common.bootstrap.JarHell; import org.opensearch.common.collect.Tuple; import org.opensearch.common.hash.MessageDigests; import org.opensearch.common.util.io.IOUtils; diff --git a/libs/common/src/main/java/org/opensearch/bootstrap/JarHell.java b/libs/common/src/main/java/org/opensearch/common/bootstrap/JarHell.java similarity index 99% rename from libs/common/src/main/java/org/opensearch/bootstrap/JarHell.java rename to libs/common/src/main/java/org/opensearch/common/bootstrap/JarHell.java index fc5e364241d12..470b92aaa2fab 100644 --- a/libs/common/src/main/java/org/opensearch/bootstrap/JarHell.java +++ b/libs/common/src/main/java/org/opensearch/common/bootstrap/JarHell.java @@ -30,7 +30,7 @@ * GitHub history for details. */ -package org.opensearch.bootstrap; +package org.opensearch.common.bootstrap; import org.opensearch.common.SuppressForbidden; import org.opensearch.common.io.PathUtils; diff --git a/libs/common/src/main/java/org/opensearch/bootstrap/JdkJarHellCheck.java b/libs/common/src/main/java/org/opensearch/common/bootstrap/JdkJarHellCheck.java similarity index 98% rename from libs/common/src/main/java/org/opensearch/bootstrap/JdkJarHellCheck.java rename to libs/common/src/main/java/org/opensearch/common/bootstrap/JdkJarHellCheck.java index 97b323975db0a..2a25f32b363c6 100644 --- a/libs/common/src/main/java/org/opensearch/bootstrap/JdkJarHellCheck.java +++ b/libs/common/src/main/java/org/opensearch/common/bootstrap/JdkJarHellCheck.java @@ -29,7 +29,7 @@ * GitHub history for details. */ -package org.opensearch.bootstrap; +package org.opensearch.common.bootstrap; import org.opensearch.common.SuppressForbidden; diff --git a/libs/common/src/main/java/org/opensearch/bootstrap/package-info.java b/libs/common/src/main/java/org/opensearch/common/bootstrap/package-info.java similarity index 85% rename from libs/common/src/main/java/org/opensearch/bootstrap/package-info.java rename to libs/common/src/main/java/org/opensearch/common/bootstrap/package-info.java index f522b1bb91444..8d05b614b7f38 100644 --- a/libs/common/src/main/java/org/opensearch/bootstrap/package-info.java +++ b/libs/common/src/main/java/org/opensearch/common/bootstrap/package-info.java @@ -7,4 +7,4 @@ */ /** Contains JarHell Classes */ -package org.opensearch.bootstrap; +package org.opensearch.common.bootstrap; diff --git a/libs/common/src/test/java/org/opensearch/bootstrap/JarHellTests.java b/libs/common/src/test/java/org/opensearch/common/bootstrap/JarHellTests.java similarity index 99% rename from libs/common/src/test/java/org/opensearch/bootstrap/JarHellTests.java rename to libs/common/src/test/java/org/opensearch/common/bootstrap/JarHellTests.java index d1851850e78e1..549c4bd652e2f 100644 --- a/libs/common/src/test/java/org/opensearch/bootstrap/JarHellTests.java +++ b/libs/common/src/test/java/org/opensearch/common/bootstrap/JarHellTests.java @@ -30,7 +30,7 @@ * GitHub history for details. */ -package org.opensearch.bootstrap; +package org.opensearch.common.bootstrap; import org.opensearch.common.io.PathUtils; import org.opensearch.core.common.Strings; diff --git a/libs/common/src/test/resources/org/opensearch/bootstrap/duplicate-classes.jar b/libs/common/src/test/resources/org/opensearch/common/bootstrap/duplicate-classes.jar similarity index 100% rename from libs/common/src/test/resources/org/opensearch/bootstrap/duplicate-classes.jar rename to libs/common/src/test/resources/org/opensearch/common/bootstrap/duplicate-classes.jar diff --git a/libs/common/src/test/resources/org/opensearch/bootstrap/duplicate-xmlbeans-classes.jar b/libs/common/src/test/resources/org/opensearch/common/bootstrap/duplicate-xmlbeans-classes.jar similarity index 100% rename from libs/common/src/test/resources/org/opensearch/bootstrap/duplicate-xmlbeans-classes.jar rename to libs/common/src/test/resources/org/opensearch/common/bootstrap/duplicate-xmlbeans-classes.jar diff --git a/plugins/ingest-attachment/src/main/java/org/opensearch/ingest/attachment/TikaImpl.java b/plugins/ingest-attachment/src/main/java/org/opensearch/ingest/attachment/TikaImpl.java index fe783e5ddb675..d999d20537485 100644 --- a/plugins/ingest-attachment/src/main/java/org/opensearch/ingest/attachment/TikaImpl.java +++ b/plugins/ingest-attachment/src/main/java/org/opensearch/ingest/attachment/TikaImpl.java @@ -41,8 +41,8 @@ import org.apache.tika.parser.ParserDecorator; import org.opensearch.SpecialPermission; import org.opensearch.bootstrap.FilePermissionUtils; -import org.opensearch.bootstrap.JarHell; import org.opensearch.common.SuppressForbidden; +import org.opensearch.common.bootstrap.JarHell; import org.opensearch.common.io.PathUtils; import java.io.ByteArrayInputStream; diff --git a/server/src/main/java/org/opensearch/bootstrap/Bootstrap.java b/server/src/main/java/org/opensearch/bootstrap/Bootstrap.java index 4e167d10b99fa..95498f2bcbcd1 100644 --- a/server/src/main/java/org/opensearch/bootstrap/Bootstrap.java +++ b/server/src/main/java/org/opensearch/bootstrap/Bootstrap.java @@ -47,6 +47,7 @@ import org.opensearch.cli.UserException; import org.opensearch.common.PidFile; import org.opensearch.common.SuppressForbidden; +import org.opensearch.common.bootstrap.JarHell; import org.opensearch.common.inject.CreationException; import org.opensearch.common.logging.LogConfigurator; import org.opensearch.common.logging.Loggers; diff --git a/server/src/main/java/org/opensearch/bootstrap/Security.java b/server/src/main/java/org/opensearch/bootstrap/Security.java index 563a026109059..acf2d7ec6a5ac 100644 --- a/server/src/main/java/org/opensearch/bootstrap/Security.java +++ b/server/src/main/java/org/opensearch/bootstrap/Security.java @@ -34,6 +34,7 @@ import org.opensearch.cli.Command; import org.opensearch.common.SuppressForbidden; +import org.opensearch.common.bootstrap.JarHell; import org.opensearch.common.io.PathUtils; import org.opensearch.common.settings.Setting; import org.opensearch.common.settings.Settings; diff --git a/server/src/main/java/org/opensearch/plugins/PluginInfo.java b/server/src/main/java/org/opensearch/plugins/PluginInfo.java index 4ff699e8017ba..323e061aea567 100644 --- a/server/src/main/java/org/opensearch/plugins/PluginInfo.java +++ b/server/src/main/java/org/opensearch/plugins/PluginInfo.java @@ -36,8 +36,8 @@ import com.fasterxml.jackson.core.json.JsonReadFeature; import org.opensearch.Version; -import org.opensearch.bootstrap.JarHell; import org.opensearch.common.annotation.PublicApi; +import org.opensearch.common.bootstrap.JarHell; import org.opensearch.common.xcontent.json.JsonXContentParser; import org.opensearch.core.common.Strings; import org.opensearch.core.common.io.stream.StreamInput; diff --git a/server/src/main/java/org/opensearch/plugins/PluginsService.java b/server/src/main/java/org/opensearch/plugins/PluginsService.java index 9bc1f1334122e..72b8ada94a0d1 100644 --- a/server/src/main/java/org/opensearch/plugins/PluginsService.java +++ b/server/src/main/java/org/opensearch/plugins/PluginsService.java @@ -43,7 +43,7 @@ import org.opensearch.OpenSearchException; import org.opensearch.Version; import org.opensearch.action.admin.cluster.node.info.PluginsAndModules; -import org.opensearch.bootstrap.JarHell; +import org.opensearch.common.bootstrap.JarHell; import org.opensearch.common.collect.Tuple; import org.opensearch.common.inject.Module; import org.opensearch.common.lifecycle.LifecycleComponent; diff --git a/libs/common/src/test/resources/org/opensearch/bootstrap/test.policy b/server/src/main/resources/org/opensearch/bootstrap/test.policy similarity index 100% rename from libs/common/src/test/resources/org/opensearch/bootstrap/test.policy rename to server/src/main/resources/org/opensearch/bootstrap/test.policy diff --git a/server/src/test/java/org/opensearch/plugins/PluginsServiceTests.java b/server/src/test/java/org/opensearch/plugins/PluginsServiceTests.java index f5702fa1a7ade..cb549eafc0d21 100644 --- a/server/src/test/java/org/opensearch/plugins/PluginsServiceTests.java +++ b/server/src/test/java/org/opensearch/plugins/PluginsServiceTests.java @@ -38,7 +38,7 @@ import org.apache.lucene.util.Constants; import org.opensearch.LegacyESVersion; import org.opensearch.Version; -import org.opensearch.bootstrap.JarHell; +import org.opensearch.common.bootstrap.JarHell; import org.opensearch.common.collect.Tuple; import org.opensearch.common.io.PathUtils; import org.opensearch.common.settings.Settings; diff --git a/test/framework/src/main/java/org/opensearch/bootstrap/BootstrapForTesting.java b/test/framework/src/main/java/org/opensearch/bootstrap/BootstrapForTesting.java index 933385dedcf49..76c7ce0628aac 100644 --- a/test/framework/src/main/java/org/opensearch/bootstrap/BootstrapForTesting.java +++ b/test/framework/src/main/java/org/opensearch/bootstrap/BootstrapForTesting.java @@ -39,6 +39,7 @@ import org.apache.lucene.tests.util.LuceneTestCase; import org.opensearch.common.Booleans; import org.opensearch.common.SuppressForbidden; +import org.opensearch.common.bootstrap.JarHell; import org.opensearch.common.io.PathUtils; import org.opensearch.common.network.IfConfig; import org.opensearch.common.network.NetworkAddress;