From 9b2b7615f93c9f019c9b00435842ed86b86a8e1d Mon Sep 17 00:00:00 2001 From: Andriy Redko Date: Wed, 9 Apr 2025 21:03:12 -0400 Subject: [PATCH 1/3] Fix build due to phasing off SecurityManager usage in favor of Java Agent Signed-off-by: Andriy Redko --- build.gradle | 28 ++++++++++++++++++- .../plugin-metadata/plugin-security.policy | 4 +++ 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index c35e711..4741dce 100644 --- a/build.gradle +++ b/build.gradle @@ -91,9 +91,18 @@ opensearchplugin { noticeFile rootProject.file('NOTICE') } +configurations { + agent +} + + dependencies { api "com.github.luben:zstd-jni:1.5.6-1" api "com.intel.qat:qat-java:1.1.1" + + agent "org.opensearch:opensearch-agent-bootstrap:${opensearch_version}" + agent "org.opensearch:opensearch-agent:${opensearch_version}" + agent "net.bytebuddy:byte-buddy:1.17.5" } allprojects { @@ -196,17 +205,24 @@ tasks.named("testingConventions").configure { } } +internalClusterTest { + dependsOn "prepareAgent" + jvmArgs += ["-javaagent:" + project.layout.buildDirectory.file("agent/opensearch-agent-${opensearch_version}.jar").get()] +} + integTest { description = "Run tests against a cluster" testClassesDirs = sourceSets.integTest.output.classesDirs classpath = sourceSets.integTest.runtimeClasspath - dependsOn "bundlePlugin" + dependsOn "bundlePlugin", "prepareAgent" systemProperty 'tests.security.manager', 'true' systemProperty "https", System.getProperty("https") systemProperty "user", System.getProperty("user") systemProperty "password", System.getProperty("password") + + jvmArgs += ["-javaagent:" + project.layout.buildDirectory.file("agent/opensearch-agent-${opensearch_version}.jar").get()] } testClusters.integTest { @@ -232,3 +248,13 @@ task updateVersion { ant.replaceregexp(file:'build.gradle', match: '"opensearch.version", "\\d.*"', replace: '"opensearch.version", "' + newVersion.tokenize('-')[0] + '-SNAPSHOT"', flags:'g', byline:true) } } + +task prepareAgent(type: Copy) { + from(configurations.agent) + into "$buildDir/agent" +} + +tasks.test { + dependsOn prepareAgent + jvmArgs += ["-javaagent:" + project.layout.buildDirectory.file("agent/opensearch-agent-${opensearch_version}.jar").get()] +} diff --git a/src/main/plugin-metadata/plugin-security.policy b/src/main/plugin-metadata/plugin-security.policy index 5b3cac1..c9a13f2 100644 --- a/src/main/plugin-metadata/plugin-security.policy +++ b/src/main/plugin-metadata/plugin-security.policy @@ -6,6 +6,10 @@ * compatible open source license. */ +grant { + permission java.net.NetPermission "accessUnixDomainSocket"; +} + grant codeBase "${codebase.zstd-jni}" { permission java.lang.RuntimePermission "loadLibrary.*"; }; From 50b67096efd96c432319067c2a0b2a515b2385dd Mon Sep 17 00:00:00 2001 From: Andriy Redko Date: Thu, 10 Apr 2025 08:14:56 -0400 Subject: [PATCH 2/3] Address code review comments Signed-off-by: Andriy Redko --- build.gradle | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/build.gradle b/build.gradle index 4741dce..e429eca 100644 --- a/build.gradle +++ b/build.gradle @@ -95,14 +95,13 @@ configurations { agent } - dependencies { api "com.github.luben:zstd-jni:1.5.6-1" api "com.intel.qat:qat-java:1.1.1" agent "org.opensearch:opensearch-agent-bootstrap:${opensearch_version}" agent "org.opensearch:opensearch-agent:${opensearch_version}" - agent "net.bytebuddy:byte-buddy:1.17.5" + agent "net.bytebuddy:byte-buddy:${versions.bytebuddy}" } allprojects { @@ -205,24 +204,17 @@ tasks.named("testingConventions").configure { } } -internalClusterTest { - dependsOn "prepareAgent" - jvmArgs += ["-javaagent:" + project.layout.buildDirectory.file("agent/opensearch-agent-${opensearch_version}.jar").get()] -} - integTest { description = "Run tests against a cluster" testClassesDirs = sourceSets.integTest.output.classesDirs classpath = sourceSets.integTest.runtimeClasspath - dependsOn "bundlePlugin", "prepareAgent" + dependsOn "bundlePlugin" systemProperty 'tests.security.manager', 'true' systemProperty "https", System.getProperty("https") systemProperty "user", System.getProperty("user") systemProperty "password", System.getProperty("password") - - jvmArgs += ["-javaagent:" + project.layout.buildDirectory.file("agent/opensearch-agent-${opensearch_version}.jar").get()] } testClusters.integTest { @@ -254,7 +246,7 @@ task prepareAgent(type: Copy) { into "$buildDir/agent" } -tasks.test { +tasks.withType(Test) { dependsOn prepareAgent jvmArgs += ["-javaagent:" + project.layout.buildDirectory.file("agent/opensearch-agent-${opensearch_version}.jar").get()] } From 78a5c6aeb2603fc14afd415e708b894810d148ad Mon Sep 17 00:00:00 2001 From: Andriy Redko Date: Thu, 10 Apr 2025 14:41:07 -0400 Subject: [PATCH 3/3] Revert changes to plugin-security.policy Signed-off-by: Andriy Redko --- src/main/plugin-metadata/plugin-security.policy | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/main/plugin-metadata/plugin-security.policy b/src/main/plugin-metadata/plugin-security.policy index c9a13f2..5b3cac1 100644 --- a/src/main/plugin-metadata/plugin-security.policy +++ b/src/main/plugin-metadata/plugin-security.policy @@ -6,10 +6,6 @@ * compatible open source license. */ -grant { - permission java.net.NetPermission "accessUnixDomainSocket"; -} - grant codeBase "${codebase.zstd-jni}" { permission java.lang.RuntimePermission "loadLibrary.*"; };