This is an automated email from the ASF dual-hosted git repository.

diqiu50 pushed a commit to branch trino-irc-1.3
in repository https://gitbox.apache.org/repos/asf/gravitino.git

commit 3557943b8388fc9726cff77bfad02b3bcb57d149
Author: yuhui <[email protected]>
AuthorDate: Mon Aug 24 16:08:13 2026 +0000

    [Cherry-pick to branch-1.3] fix(trino): share Starburst AI model classes
    
    (cherry picked from commit 0d2fd6162049d08a7cb736bbb2a2748684d04816)
---
 .../connector/GravitinoConnectorPluginManager.java | 21 +++++++-------
 .../TestGravitinoConnectorPluginManager.java       | 32 ++++++++++++++++++++++
 2 files changed, 42 insertions(+), 11 deletions(-)

diff --git 
a/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/GravitinoConnectorPluginManager.java
 
b/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/GravitinoConnectorPluginManager.java
index ccf59b8e59..9d0d736014 100644
--- 
a/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/GravitinoConnectorPluginManager.java
+++ 
b/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/GravitinoConnectorPluginManager.java
@@ -53,6 +53,15 @@ public class GravitinoConnectorPluginManager {
 
   private static final String PLUGIN_NAME_PREFIX = "gravitino-";
   private static final String PLUGIN_CLASSLOADER_CLASS_NAME = 
"io.trino.server.PluginClassLoader";
+  static final List<String> PARENT_FIRST_PACKAGES =
+      List.of(
+          "io.trino.spi.",
+          "com.fasterxml.jackson.annotation.",
+          "io.airlift.slice.",
+          "org.openjdk.jol.",
+          "io.opentelemetry.api.",
+          "io.opentelemetry.context.",
+          "io.starburst.ai.model.");
 
   private static volatile GravitinoConnectorPluginManager instance;
 
@@ -175,17 +184,7 @@ public class GravitinoConnectorPluginManager {
       String classLoaderName = PLUGIN_NAME_PREFIX + pluginName;
       // Load Trino SPI package and other dependencies refer to 
io.trino.server.PluginClassLoader
       Object pluginClassLoader =
-          constructor.newInstance(
-              classLoaderName,
-              urls,
-              appClassloader,
-              List.of(
-                  "io.trino.spi.",
-                  "com.fasterxml.jackson.annotation.",
-                  "io.airlift.slice.",
-                  "org.openjdk.jol.",
-                  "io.opentelemetry.api.",
-                  "io.opentelemetry.context."));
+          constructor.newInstance(classLoaderName, urls, appClassloader, 
PARENT_FIRST_PACKAGES);
 
       ServiceLoader<Plugin> serviceLoader =
           ServiceLoader.load(Plugin.class, (ClassLoader) pluginClassLoader);
diff --git 
a/trino-connector/trino-connector/src/test/java/org/apache/gravitino/trino/connector/TestGravitinoConnectorPluginManager.java
 
b/trino-connector/trino-connector/src/test/java/org/apache/gravitino/trino/connector/TestGravitinoConnectorPluginManager.java
new file mode 100644
index 0000000000..99a6718804
--- /dev/null
+++ 
b/trino-connector/trino-connector/src/test/java/org/apache/gravitino/trino/connector/TestGravitinoConnectorPluginManager.java
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.gravitino.trino.connector;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+import org.junit.jupiter.api.Test;
+
+class TestGravitinoConnectorPluginManager {
+
+  @Test
+  void testStarburstAiModelUsesApplicationClassLoader() {
+    assertThat(GravitinoConnectorPluginManager.PARENT_FIRST_PACKAGES)
+        .contains("io.starburst.ai.model.");
+  }
+}

Reply via email to