@@ -270,43 +270,72 @@ def getGeoSpatialPlugin() {
270270 }
271271}
272272
273+ // fetch from the feature-build artifact for now (linux/x64 only; for local dev pass -PanalyticsEngineZip=/path instead).
274+ ext. pluginVersion = opensearch_version. tokenize(' -' )[0 ]
275+ ext. featureBuildBase = " https://ci.opensearch.org/ci/dbc/feature-build-opensearch/feature-datafusion/latest/linux/x64/tar/builds/opensearch/plugins"
276+ ext. analyticsEngineZipDest = " ${ buildDir} /distributions/analytics-engine-${ pluginVersion} -SNAPSHOT.zip"
277+ ext. arrowFlightRpcZipDest = " ${ buildDir} /distributions/arrow-flight-rpc-${ pluginVersion} -SNAPSHOT.zip"
278+
279+ task downloadAnalyticsEngineZip (type : Download ) {
280+ src " ${ featureBuildBase} /1-analytics-engine-${ pluginVersion} .zip"
281+ dest analyticsEngineZipDest
282+ overwrite false
283+ onlyIfModified true
284+ onlyIf { ! project. findProperty(' analyticsEngineZip' ) }
285+ }
286+
287+ task downloadArrowFlightRpcZip (type : Download ) {
288+ src " ${ featureBuildBase} /0-arrow-flight-rpc-${ pluginVersion} .zip"
289+ dest arrowFlightRpcZipDest
290+ overwrite false
291+ onlyIfModified true
292+ onlyIf { ! project. findProperty(' arrowFlightRpcZip' ) }
293+ }
294+
273295def getAnalyticsEnginePlugin () {
274- provider { (RegularFile ) (() -> file(" ${ rootDir} /libs/analytics-engine-3.7.0-SNAPSHOT.zip" )) }
296+ provider { (RegularFile ) (() -> file(project. findProperty(' analyticsEngineZip' ) ?: analyticsEngineZipDest)) }
297+ }
298+
299+ def getArrowFlightRpcPlugin () {
300+ provider { (RegularFile ) (() -> file(project. findProperty(' arrowFlightRpcZip' ) ?: arrowFlightRpcZipDest)) }
275301}
276302
277303testClusters {
278304 integTest {
279305 testDistribution = ' archive'
280306 plugin(getJobSchedulerPlugin())
281307 plugin(getGeoSpatialPlugin())
282- plugin(getAnalyticsEnginePlugin())
283308 plugin " :opensearch-sql-plugin"
284309 setting " plugins.query.datasources.encryption.masterkey" , " 1234567812345678"
285310 }
286311 yamlRestTest {
287312 testDistribution = ' archive'
288313 plugin(getJobSchedulerPlugin())
289314 plugin(getGeoSpatialPlugin())
290- plugin(getAnalyticsEnginePlugin())
291315 plugin " :opensearch-sql-plugin"
292316 setting " plugins.query.datasources.encryption.masterkey" , " 1234567812345678"
293317 }
294318 remoteCluster {
295319 testDistribution = ' archive'
296320 plugin(getJobSchedulerPlugin())
297321 plugin(getGeoSpatialPlugin())
298- plugin(getAnalyticsEnginePlugin())
299322 plugin " :opensearch-sql-plugin"
300323 }
301324 integTestWithSecurity {
302325 testDistribution = ' archive'
303326 plugin(getJobSchedulerPlugin())
304- plugin(getAnalyticsEnginePlugin())
305327 plugin " :opensearch-sql-plugin"
306328 }
307329 remoteIntegTestWithSecurity {
308330 testDistribution = ' archive'
309331 plugin(getJobSchedulerPlugin())
332+ plugin " :opensearch-sql-plugin"
333+ }
334+ // Smoke test: verify sql loads cleanly alongside analytics-engine.
335+ analyticsEngineCompat {
336+ testDistribution = ' archive'
337+ plugin(getJobSchedulerPlugin())
338+ plugin(getArrowFlightRpcPlugin())
310339 plugin(getAnalyticsEnginePlugin())
311340 plugin " :opensearch-sql-plugin"
312341 }
@@ -360,9 +389,17 @@ task stopPrometheus(type: KillProcessTask) {
360389
361390stopPrometheus. mustRunAfter startPrometheus
362391
392+ task analyticsEngineCompatIT (type : RestIntegTestTask ) {
393+ useCluster testClusters. analyticsEngineCompat
394+ dependsOn downloadAnalyticsEngineZip, downloadArrowFlightRpcZip
395+ systemProperty ' tests.security.manager' , ' false'
396+ filter {
397+ includeTestsMatching ' org.opensearch.sql.plugin.AnalyticsEngineCompatIT'
398+ }
399+ }
400+
363401task integJdbcTest (type : RestIntegTestTask ) {
364402 testClusters. findAll {c -> c. clusterName == " integJdbcTest" }. first(). with {
365- plugin(getAnalyticsEnginePlugin())
366403 plugin " :opensearch-sql-plugin"
367404 }
368405
0 commit comments