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

lzljs3620320 pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/paimon-trino.git


The following commit(s) were added to refs/heads/main by this push:
     new 17c94a8  Flatten paimon-trino-440 to top level (#92)
17c94a8 is described below

commit 17c94a820bdf55f316384ac49339cce2e20694e2
Author: YeJunHao <[email protected]>
AuthorDate: Wed Nov 27 15:01:29 2024 +0800

    Flatten paimon-trino-440 to top level (#92)
---
 .github/workflows/ci-jdk21.yml                     |   2 +-
 .github/workflows/publish_snapshot_jdk21.yml       |   2 +-
 .scalafmt.conf                                     |  70 +++
 .../trino/DecimalUtils.java => copyright.txt       |  13 -
 paimon-trino-440/pom.xml                           | 234 ---------
 .../paimon/trino/TrinoTransactionHandle.java       |  22 -
 .../trino/fileio/TrinoDirectoryFileStatus.java     |  56 ---
 .../paimon/trino/fileio/TrinoFileIOLoader.java     |  47 --
 .../paimon/trino/fileio/TrinoFileStatus.java       |  58 ---
 pom.xml                                            | 548 +++++++--------------
 .../src => src}/main/assembly/paimon.xml           |   0
 .../org/apache/paimon/trino/ClassLoaderUtils.java  |   0
 .../java/org/apache/paimon/trino/DecimalUtils.java |   0
 .../apache/paimon/trino/DirectTrinoPageSource.java |   0
 .../org/apache/paimon/trino/EncodingUtils.java     |   0
 .../org/apache/paimon/trino/FieldNameUtils.java    |   0
 .../trino/FixedBucketTableShuffleFunction.java     |   0
 .../org/apache/paimon/trino/TrinoColumnHandle.java |   0
 .../org/apache/paimon/trino/TrinoConnector.java    |   0
 .../apache/paimon/trino/TrinoConnectorFactory.java |   0
 .../apache/paimon/trino/TrinoFilterConverter.java  |   0
 .../apache/paimon/trino/TrinoFilterExtractor.java  |   0
 .../paimon/trino/TrinoMergePageSourceWrapper.java  |   0
 .../org/apache/paimon/trino/TrinoMergeSink.java    |   0
 .../apache/paimon/trino/TrinoMergeTableHandle.java |   0
 .../org/apache/paimon/trino/TrinoMetadata.java     |   0
 .../apache/paimon/trino/TrinoMetadataFactory.java  |   0
 .../java/org/apache/paimon/trino/TrinoModule.java  |   0
 .../trino/TrinoNodePartitioningProvider.java       |   0
 .../apache/paimon/trino/TrinoOrcDataSource.java    |  28 +-
 .../org/apache/paimon/trino/TrinoPageSink.java     |   0
 .../apache/paimon/trino/TrinoPageSinkProvider.java |   0
 .../org/apache/paimon/trino/TrinoPageSource.java   |   0
 .../paimon/trino/TrinoPageSourceProvider.java      |   0
 .../paimon/trino/TrinoPageSourceWrapper.java       |  28 +-
 .../paimon/trino/TrinoPartitioningHandle.java      |   0
 .../java/org/apache/paimon/trino/TrinoPlugin.java  |   0
 .../java/org/apache/paimon/trino/TrinoRow.java     |   0
 .../paimon/trino/TrinoSessionProperties.java       |   0
 .../java/org/apache/paimon/trino/TrinoSplit.java   |   0
 .../org/apache/paimon/trino/TrinoSplitManager.java |   0
 .../org/apache/paimon/trino/TrinoSplitSource.java  |   0
 .../org/apache/paimon/trino/TrinoTableHandle.java  |   0
 .../apache/paimon/trino/TrinoTableOptionUtils.java |   0
 .../org/apache/paimon/trino/TrinoTableOptions.java |   0
 .../paimon/trino/TrinoTransactionHandle.java       |  13 +-
 .../org/apache/paimon/trino/TrinoTypeUtils.java    |   0
 .../apache/paimon/trino/catalog/TrinoCatalog.java  |  28 +-
 .../trino/fileio/PositionOutputStreamWrapper.java  |  28 +-
 .../trino/fileio/TrinoDirectoryFileStatus.java     |  41 +-
 .../apache/paimon/trino/fileio/TrinoFileIO.java    |  28 +-
 .../paimon/trino/fileio/TrinoFileIOLoader.java     |  29 +-
 .../paimon/trino/fileio/TrinoFileStatus.java       |  43 +-
 .../trino/fileio/TrinoInputStreamWrapper.java      |  28 +-
 .../META-INF/services/io.trino.spi.Plugin          |   0
 .../apache/paimon/trino/SimpleTableTestHelper.java |   0
 .../apache/paimon/trino/TrinoColumnHandleTest.java |   2 +-
 .../paimon/trino/TrinoConnectorFactoryTest.java    |   2 +-
 .../paimon/trino/TrinoDistributedQueryTest.java    |   2 +-
 .../paimon/trino/TrinoFilterConverterTest.java     |   4 +-
 .../paimon/trino/TrinoFilterExtractorTest.java     |   2 +-
 .../java/org/apache/paimon/trino/TrinoITCase.java  |   2 +-
 .../paimon/trino/TrinoPartitioningHandleTest.java  |   2 +-
 .../org/apache/paimon/trino/TrinoPluginTest.java   |   2 +-
 .../org/apache/paimon/trino/TrinoQueryRunner.java  |   0
 .../java/org/apache/paimon/trino/TrinoRowTest.java |   2 +-
 .../org/apache/paimon/trino/TrinoSplitTest.java    |   2 +-
 .../apache/paimon/trino/TrinoTableHandleTest.java  |   2 +-
 .../org/apache/paimon/trino/TrinoTestUtils.java    |   0
 .../org/apache/paimon/trino/TrinoTypeTest.java     |   4 +-
 .../test/resources/log4j2-test.properties          |   0
 71 files changed, 417 insertions(+), 957 deletions(-)

diff --git a/.github/workflows/ci-jdk21.yml b/.github/workflows/ci-jdk21.yml
index 434aeb0..9b792d4 100644
--- a/.github/workflows/ci-jdk21.yml
+++ b/.github/workflows/ci-jdk21.yml
@@ -49,4 +49,4 @@ jobs:
           EOF
       - name: Build
         run: |
-          mvn clean install -P '!toolchain' -pl paimon-trino-440
+          mvn clean install -P '!toolchain' -Papache-build
diff --git a/.github/workflows/publish_snapshot_jdk21.yml 
b/.github/workflows/publish_snapshot_jdk21.yml
index 627d893..fc30eb0 100644
--- a/.github/workflows/publish_snapshot_jdk21.yml
+++ b/.github/workflows/publish_snapshot_jdk21.yml
@@ -81,6 +81,6 @@ jobs:
           echo "<password>$ASF_PASSWORD</password>" >> $tmp_settings
           echo "</server></servers></settings>" >> $tmp_settings
           
-          mvn --settings $tmp_settings clean deploy -Dgpg.skip -Drat.skip 
-DskipTests -Papache-release -pl paimon-trino-440
+          mvn --settings $tmp_settings clean deploy -Dgpg.skip -Drat.skip 
-DskipTests -Papache-build
           
           rm $tmp_settings
diff --git a/.scalafmt.conf b/.scalafmt.conf
new file mode 100644
index 0000000..6335c0e
--- /dev/null
+++ b/.scalafmt.conf
@@ -0,0 +1,70 @@
+runner.dialect = scala212
+
+# Version is required to make sure IntelliJ picks the right version
+version = 3.4.3
+preset = default
+
+# Max column
+maxColumn = 100
+
+# This parameter simply says the .stripMargin method was not redefined by the 
user to assign
+# special meaning to indentation preceding the | character. Hence, that 
indentation can be modified.
+assumeStandardLibraryStripMargin = true
+align.stripMargin = true
+
+# Align settings
+align.preset = none
+align.closeParenSite = false
+align.openParenCallSite = false
+danglingParentheses.defnSite = false
+danglingParentheses.callSite = false
+danglingParentheses.ctrlSite = true
+danglingParentheses.tupleSite = false
+align.openParenCallSite = false
+align.openParenDefnSite = false
+align.openParenTupleSite = false
+
+# Newlines
+newlines.alwaysBeforeElseAfterCurlyIf = false
+newlines.beforeCurlyLambdaParams = multiline # Newline before lambda params
+newlines.afterCurlyLambdaParams = squash # No newline after lambda params
+newlines.inInterpolation = "avoid"
+newlines.avoidInResultType = true
+optIn.annotationNewlines = true
+
+# Scaladoc
+docstrings.style = Asterisk # Javadoc style
+docstrings.removeEmpty = true
+docstrings.oneline = fold
+docstrings.forceBlankLineBefore = true
+
+# Indentation
+indent.extendSite = 2 # This makes sure extend is not indented as the ctor 
parameters
+
+# Rewrites
+rewrite.rules = [AvoidInfix, Imports, RedundantBraces, SortModifiers]
+
+# Imports
+rewrite.imports.sort = scalastyle
+rewrite.imports.groups = [
+    ["org.apache.paimon\\..*"],
+    ["org.apache.paimon.shade\\..*"],
+    [".*"],
+    ["javax\\..*"],
+    ["java\\..*"],
+    ["scala\\..*"]
+]
+rewrite.imports.contiguousGroups = no
+importSelectors = singleline # Imports in a single line, like IntelliJ
+
+# Remove redundant braces in string interpolation.
+rewrite.redundantBraces.stringInterpolation = true
+rewrite.redundantBraces.defnBodies = false
+rewrite.redundantBraces.generalExpressions = false
+rewrite.redundantBraces.ifElseExpressions = false
+rewrite.redundantBraces.methodBodies = false
+rewrite.redundantBraces.includeUnitMethods = false
+rewrite.redundantBraces.maxBreaks = 1
+
+# Remove trailing commas
+rewrite.trailingCommas.style = "never"
diff --git 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/DecimalUtils.java 
b/copyright.txt
similarity index 75%
copy from 
paimon-trino-440/src/main/java/org/apache/paimon/trino/DecimalUtils.java
copy to copyright.txt
index 467b03c..e5cdfe9 100644
--- a/paimon-trino-440/src/main/java/org/apache/paimon/trino/DecimalUtils.java
+++ b/copyright.txt
@@ -16,16 +16,3 @@
  * limitations under the License.
  */
 
-package org.apache.paimon.trino;
-
-import io.trino.spi.type.Int128;
-
-import java.math.BigInteger;
-
-/** Utils for decimal. */
-public class DecimalUtils {
-
-    public static BigInteger toBigInteger(Object value) {
-        return ((Int128) value).toBigInteger();
-    }
-}
diff --git a/paimon-trino-440/pom.xml b/paimon-trino-440/pom.xml
deleted file mode 100644
index 7be8f4b..0000000
--- a/paimon-trino-440/pom.xml
+++ /dev/null
@@ -1,234 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-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.
--->
-<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>
-        <artifactId>paimon-trino</artifactId>
-        <groupId>org.apache.paimon</groupId>
-        <version>1.0-SNAPSHOT</version>
-    </parent>
-
-    <packaging>jar</packaging>
-
-    <artifactId>paimon-trino-440</artifactId>
-    <name>Paimon : Trino : 440</name>
-
-    <properties>
-        <target.java.version>21</target.java.version>
-        <jdk.test.version>21</jdk.test.version>
-        <trino.version>440</trino.version>
-        <airlift.version>241</airlift.version>
-        <slice.version>2.2</slice.version>
-        
<maven.toolchains.plugin.version>3.1.0</maven.toolchains.plugin.version>
-        <hadoop.apache.version>3.2.0-18</hadoop.apache.version>
-    </properties>
-
-    <dependencies>
-        <dependency>
-            <groupId>io.trino.hadoop</groupId>
-            <artifactId>hadoop-apache</artifactId>
-            <version>${hadoop.apache.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>io.trino</groupId>
-            <artifactId>trino-plugin-toolkit</artifactId>
-            <version>${trino.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>io.trino</groupId>
-            <artifactId>trino-spi</artifactId>
-            <version>${trino.version}</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.openjdk.jol</groupId>
-                    <artifactId>jol-core</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-
-        <dependency>
-            <groupId>io.trino</groupId>
-            <artifactId>trino-hdfs</artifactId>
-            <version>${trino.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>io.trino</groupId>
-            <artifactId>trino-hive</artifactId>
-            <version>${trino.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>io.airlift</groupId>
-            <artifactId>bootstrap</artifactId>
-            <version>${airlift.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>io.airlift</groupId>
-            <artifactId>configuration</artifactId>
-            <version>${airlift.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>io.airlift</groupId>
-            <artifactId>slice</artifactId>
-            <version>${slice.version}</version>
-            <scope>provided</scope>
-        </dependency>
-
-        <!-- for testing -->
-        <dependency>
-            <groupId>io.trino</groupId>
-            <artifactId>trino-client</artifactId>
-            <version>${trino.version}</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>io.trino</groupId>
-            <artifactId>trino-main</artifactId>
-            <version>${trino.version}</version>
-            <scope>test</scope>
-            <exclusions>
-                <exclusion>
-                    <groupId>log4j</groupId>
-                    <artifactId>log4j</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>org.slf4j</groupId>
-                    <artifactId>slf4j-log4j12</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-
-        <dependency>
-            <groupId>io.trino</groupId>
-            <artifactId>trino-testing</artifactId>
-            <version>${trino.version}</version>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-toolchains-plugin</artifactId>
-                <version>${maven.toolchains.plugin.version}</version>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>toolchain</goal>
-                        </goals>
-                    </execution>
-                </executions>
-                <configuration>
-                    <toolchains>
-                        <jdk>
-                            <version>${jdk.test.version}</version>
-                        </jdk>
-                    </toolchains>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <version>3.8.0</version>
-                <configuration>
-                    <source>${target.java.version}</source>
-                    <target>${target.java.version}</target>
-                    <testSource>${jdk.test.version}</testSource>
-                    <testTarget>${jdk.test.version}</testTarget>
-                    <testRelease>${jdk.test.version}</testRelease>
-                    <!-- The semantics of this option are reversed, see 
MCOMPILER-209. -->
-                    
<useIncrementalCompilation>false</useIncrementalCompilation>
-                    <compilerArgs>
-                        <!-- Prevents recompilation due to missing 
package-info.class, see MCOMPILER-205 -->
-                        <arg>-Xpkginfo:always</arg>
-                    </compilerArgs>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-jar-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>test-jar</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-shade-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>shade-paimon</id>
-                        <phase>package</phase>
-                        <goals>
-                            <goal>shade</goal>
-                        </goals>
-                        <configuration>
-                            <artifactSet>
-                                <includes combine.children="append">
-                                    
<include>org.apache.paimon:paimon-bundle</include>
-                                    <include>com.google.guava:guava</include>
-                                    
<include>org.xerial.snappy:snappy-java</include>
-                                    <include>org.slf4j:slf4j-api</include>
-                                    
<include>org.apache.logging.log4j:log4j-api</include>
-                                    
<include>org.apache.logging.log4j:log4j-core</include>
-                                    
<include>org.apache.logging.log4j:log4j-slf4j-impl</include>
-                                    
<include>org.apache.logging.log4j:log4j-1.2-api</include>
-                                    
<include>org.apache.commons:commons-lang3</include>
-                                </includes>
-                            </artifactSet>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-assembly-plugin</artifactId>
-                <version>2.5.5</version>
-                <configuration>
-                    <descriptors>
-                        <descriptor>src/main/assembly/paimon.xml</descriptor>
-                    </descriptors>
-                </configuration>
-                <executions>
-                    <execution>
-                        <phase>package</phase>
-                        <goals>
-                            <goal>attached</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
-</project>
\ No newline at end of file
diff --git 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoTransactionHandle.java
 
b/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoTransactionHandle.java
deleted file mode 100644
index fe22488..0000000
--- 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoTransactionHandle.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * Licensed 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.paimon.trino;
-
-import io.trino.spi.connector.ConnectorTransactionHandle;
-
-/** An empty transaction handle. */
-public enum TrinoTransactionHandle implements ConnectorTransactionHandle {
-    INSTANCE
-}
diff --git 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/fileio/TrinoDirectoryFileStatus.java
 
b/paimon-trino-440/src/main/java/org/apache/paimon/trino/fileio/TrinoDirectoryFileStatus.java
deleted file mode 100644
index b37ebe8..0000000
--- 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/fileio/TrinoDirectoryFileStatus.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- *
- *  * 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.paimon.trino.fileio;
-
-import org.apache.paimon.fs.FileStatus;
-import org.apache.paimon.fs.Path;
-
-/** File status for directory. */
-public class TrinoDirectoryFileStatus implements FileStatus {
-
-    private final Path path;
-
-    public TrinoDirectoryFileStatus(Path path) {
-        this.path = path;
-    }
-
-    @Override
-    public long getLen() {
-        // can't get len by trino file system
-        return -1;
-    }
-
-    @Override
-    public boolean isDir() {
-        return true;
-    }
-
-    @Override
-    public Path getPath() {
-        return path;
-    }
-
-    @Override
-    public long getModificationTime() {
-        // can't get modification time by trino file system
-        return -1;
-    }
-}
diff --git 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/fileio/TrinoFileIOLoader.java
 
b/paimon-trino-440/src/main/java/org/apache/paimon/trino/fileio/TrinoFileIOLoader.java
deleted file mode 100644
index e891cfa..0000000
--- 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/fileio/TrinoFileIOLoader.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- *
- *  * 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.paimon.trino.fileio;
-
-import org.apache.paimon.fs.FileIO;
-import org.apache.paimon.fs.FileIOLoader;
-import org.apache.paimon.fs.Path;
-
-import io.trino.filesystem.TrinoFileSystem;
-
-/** Trino file io loader for paimon. */
-public class TrinoFileIOLoader implements FileIOLoader {
-
-    private final TrinoFileSystem trinoFileSystem;
-
-    public TrinoFileIOLoader(TrinoFileSystem trinoFileSystem) {
-        this.trinoFileSystem = trinoFileSystem;
-    }
-
-    @Override
-    public String getScheme() {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public FileIO load(Path path) {
-        return new TrinoFileIO(trinoFileSystem, path);
-    }
-}
diff --git 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/fileio/TrinoFileStatus.java
 
b/paimon-trino-440/src/main/java/org/apache/paimon/trino/fileio/TrinoFileStatus.java
deleted file mode 100644
index a3fdacf..0000000
--- 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/fileio/TrinoFileStatus.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- *
- *  * 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.paimon.trino.fileio;
-
-import org.apache.paimon.fs.FileStatus;
-import org.apache.paimon.fs.Path;
-
-/** File status for trino file. */
-public class TrinoFileStatus implements FileStatus {
-
-    private final long len;
-    private final Path path;
-    private final long modificationTmie;
-
-    public TrinoFileStatus(long len, Path path, long modificationTmie) {
-        this.len = len;
-        this.path = path;
-        this.modificationTmie = modificationTmie;
-    }
-
-    @Override
-    public long getLen() {
-        return len;
-    }
-
-    @Override
-    public boolean isDir() {
-        return false;
-    }
-
-    @Override
-    public Path getPath() {
-        return path;
-    }
-
-    @Override
-    public long getModificationTime() {
-        return modificationTmie;
-    }
-}
diff --git a/pom.xml b/pom.xml
index d137d6f..20693a3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -21,33 +21,14 @@ under the License.
          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>
-    <modules>
-        <module>paimon-trino-440</module>
-    </modules>
-
     <parent>
-        <groupId>org.apache</groupId>
-        <artifactId>apache</artifactId>
-        <version>23</version>
+        <groupId>org.apache.paimon</groupId>
+        <artifactId>paimon-parent</artifactId>
+        <version>1.0-SNAPSHOT</version>
     </parent>
 
-    <groupId>org.apache.paimon</groupId>
-    <artifactId>paimon-trino</artifactId>
-    <name>Paimon : Trino</name>
-    <version>1.0-SNAPSHOT</version>
-
-    <packaging>pom</packaging>
-
-    <url>https://paimon.apache.org</url>
-    <inceptionYear>2023</inceptionYear>
-
-    <licenses>
-        <license>
-            <name>The Apache Software License, Version 2.0</name>
-            <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
-            <distribution>repo</distribution>
-        </license>
-    </licenses>
+    <artifactId>paimon-trino-${trino.version}</artifactId>
+    <name>Paimon : Trino : ${trino.version}</name>
 
     <scm>
         <url>https://github.com/apache/paimon-trino</url>
@@ -57,9 +38,15 @@ under the License.
 
     <properties>
         <paimon.version>1.0-SNAPSHOT</paimon.version>
-        <target.java.version>11</target.java.version>
+        <target.java.version>21</target.java.version>
+        <jdk.test.version>21</jdk.test.version>
+        <trino.version>440</trino.version>
+        <airlift.version>241</airlift.version>
+        <slice.version>2.2</slice.version>
+        
<maven.toolchains.plugin.version>3.1.0</maven.toolchains.plugin.version>
+        <hadoop.apache.version>3.2.0-18</hadoop.apache.version>
         <junit5.version>5.8.1</junit5.version>
-        <slf4j.version>2.0.7</slf4j.version>
+        <slf4j.version>2.0.13</slf4j.version>
         <guava.version>31.1-jre</guava.version>
         <commons-lang3.version>3.3.2</commons-lang3.version>
         <findbugs.version>1.3.9</findbugs.version>
@@ -67,25 +54,6 @@ under the License.
         <maven.compiler.version>3.10.1</maven.compiler.version>
         <spotless.version>2.43.0</spotless.version>
         <spotless.delimiter>package</spotless.delimiter>
-        <spotless.license.header>
-            /*
-            * 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.
-            */
-        </spotless.license.header>
     </properties>
 
     <dependencies>
@@ -106,15 +74,98 @@ under the License.
         </dependency>
 
         <dependency>
-            <groupId>org.junit.jupiter</groupId>
-            <artifactId>junit-jupiter</artifactId>
-            <version>${junit5.version}</version>
+            <groupId>io.trino.hadoop</groupId>
+            <artifactId>hadoop-apache</artifactId>
+            <version>${hadoop.apache.version}</version>
+        </dependency>
+
+        <dependency>
+            <groupId>io.trino</groupId>
+            <artifactId>trino-plugin-toolkit</artifactId>
+            <version>${trino.version}</version>
+        </dependency>
+
+        <dependency>
+            <groupId>io.trino</groupId>
+            <artifactId>trino-spi</artifactId>
+            <version>${trino.version}</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.openjdk.jol</groupId>
+                    <artifactId>jol-core</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+
+        <dependency>
+            <groupId>io.trino</groupId>
+            <artifactId>trino-hdfs</artifactId>
+            <version>${trino.version}</version>
+        </dependency>
+
+        <dependency>
+            <groupId>io.trino</groupId>
+            <artifactId>trino-hive</artifactId>
+            <version>${trino.version}</version>
+        </dependency>
+
+        <dependency>
+            <groupId>io.airlift</groupId>
+            <artifactId>bootstrap</artifactId>
+            <version>${airlift.version}</version>
         </dependency>
 
+        <dependency>
+            <groupId>io.airlift</groupId>
+            <artifactId>configuration</artifactId>
+            <version>${airlift.version}</version>
+        </dependency>
+
+        <dependency>
+            <groupId>io.airlift</groupId>
+            <artifactId>slice</artifactId>
+            <version>${slice.version}</version>
+            <scope>provided</scope>
+        </dependency>
+
+        <!-- for testing -->
+        <dependency>
+            <groupId>io.trino</groupId>
+            <artifactId>trino-client</artifactId>
+            <version>${trino.version}</version>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>io.trino</groupId>
+            <artifactId>trino-main</artifactId>
+            <version>${trino.version}</version>
+            <scope>test</scope>
+            <exclusions>
+                <exclusion>
+                    <groupId>log4j</groupId>
+                    <artifactId>log4j</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.slf4j</groupId>
+                    <artifactId>slf4j-log4j12</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+
+        <dependency>
+            <groupId>io.trino</groupId>
+            <artifactId>trino-testing</artifactId>
+            <version>${trino.version}</version>
+            <scope>test</scope>
+        </dependency>
+
+        <!-- log and util-->
         <dependency>
             <groupId>com.google.guava</groupId>
             <artifactId>guava</artifactId>
             <version>${guava.version}</version>
+            <scope>test</scope>
         </dependency>
 
         <dependency>
@@ -147,7 +198,6 @@ under the License.
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-compiler-plugin</artifactId>
-                <version>${maven.compiler.version}</version>
             </plugin>
 
             <plugin>
@@ -164,119 +214,40 @@ under the License.
                     <java>
                         <googleJavaFormat>
                             <version>1.17.0</version>
+                            <style>AOSP</style>
                         </googleJavaFormat>
-                    </java>
-                </configuration>
-            </plugin>
 
+                        <!-- \# refers to the static imports -->
+                        <importOrder>
+                            
<order>org.apache.paimon,org.apache.paimon.shaded,,javax,java,scala,\#</order>
+                        </importOrder>
 
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <version>3.8.0</version>
-                <configuration>
-                    <source>${target.java.version}</source>
-                    <target>${target.java.version}</target>
-                    <!-- The semantics of this option are reversed, see 
MCOMPILER-209. -->
-                    
<useIncrementalCompilation>false</useIncrementalCompilation>
-                    <compilerArgs>
-                        <!-- Prevents recompilation due to missing 
package-info.class, see MCOMPILER-205 -->
-                        <arg>-Xpkginfo:always</arg>
-                    </compilerArgs>
+                        <removeUnusedImports/>
+                    </java>
                 </configuration>
             </plugin>
 
             <plugin>
-                <groupId>org.apache.rat</groupId>
-                <artifactId>apache-rat-plugin</artifactId>
-                <version>0.15</version>
-                <inherited>false</inherited>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-source-plugin</artifactId>
+                <version>3.2.1</version>
                 <executions>
                     <execution>
-                        <phase>verify</phase>
+                        <id>attach-sources</id>
                         <goals>
-                            <goal>check</goal>
+                            <goal>jar-no-fork</goal>
                         </goals>
                     </execution>
                 </executions>
-                <configuration>
-                    <excludeSubProjects>false</excludeSubProjects>
-                    <numUnapprovedLicenses>0</numUnapprovedLicenses>
-                    <licenses>
-                        <!-- Enforce this license:
-                          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.
-                        -->
-                        <license 
implementation="org.apache.rat.analysis.license.SimplePatternBasedLicense">
-                            <licenseFamilyCategory>AL2</licenseFamilyCategory>
-                            <licenseFamilyName>Apache License 
2.0</licenseFamilyName>
-                            <notes/>
-                            <patterns>
-                                <pattern>Licensed to the Apache Software 
Foundation (ASF) under one</pattern>
-                            </patterns>
-                        </license>
-                    </licenses>
-                    <licenseFamilies>
-                        <licenseFamily 
implementation="org.apache.rat.license.SimpleLicenseFamily">
-                            <familyName>Apache License 2.0</familyName>
-                        </licenseFamily>
-                    </licenseFamilies>
-                    <excludes>
-                        <!-- Additional files like .gitignore etc.-->
-                        <exclude>**/.*/**</exclude>
-                        <exclude>**/*.prefs</exclude>
-                        <exclude>**/*.log</exclude>
-                        <!-- Administrative files in the main trunk. -->
-                        <exclude>**/README.md</exclude>
-                        <exclude>**/CODE_OF_CONDUCT.md</exclude>
-                        <exclude>.github/**</exclude>
-                        <!-- IDE files. -->
-                        <exclude>**/*.iml</exclude>
-                        <exclude>**/.idea/**</exclude>
-                        <!-- Generated content -->
-                        <exclude>**/target/**</exclude>
-                        <exclude>docs/static/font-awesome/**</exclude>
-                        <exclude>docs/resources/**</exclude>
-                        <exclude>docs/public/**</exclude>
-                        <exclude>docs/themes/book/**</exclude>
-                        <exclude>docs/assets/github.css</exclude>
-                        <exclude>docs/static/js/anchor.min.js</exclude>
-                        <exclude>docs/layouts/shortcodes/generated/**</exclude>
-                        <exclude>**/*.svg</exclude>
-                        <exclude>**/dependency-reduced-pom.xml</exclude>
-                        <!-- Bundled license files -->
-                        <exclude>**/LICENSE*</exclude>
-                        <!-- artifacts created during release process -->
-                        <exclude>release/**</exclude>
-                        <!-- antlr grammar files -->
-                        <exclude>paimon-common/src/main/antlr4/**</exclude>
-                        <!-- Test files -->
-                        
<exclude>paimon-common/src/test/resources/codesplit/**</exclude>
-                    </excludes>
-                </configuration>
             </plugin>
 
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-source-plugin</artifactId>
-                <version>3.2.1</version>
+                <artifactId>maven-jar-plugin</artifactId>
                 <executions>
                     <execution>
-                        <id>attach-sources</id>
                         <goals>
-                            <goal>jar-no-fork</goal>
+                            <goal>test-jar</goal>
                         </goals>
                     </execution>
                 </executions>
@@ -284,259 +255,84 @@ under the License.
 
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-enforcer-plugin</artifactId>
+                <artifactId>maven-shade-plugin</artifactId>
                 <executions>
                     <execution>
-                        <id>enforce-maven</id>
-                        <goals>
-                            <goal>enforce</goal>
-                        </goals>
-                        <configuration>
-                            <rules>
-                                <requireMavenVersion>
-                                    <!-- enforce at least mvn version 3.1.1 
(see FLINK-12447) -->
-                                    <version>[3.1.1,)</version>
-                                </requireMavenVersion>
-                               <!-- <requireJavaVersion>
-                                    <version>${target.java.version}</version>
-                                </requireJavaVersion>-->
-                            </rules>
-                        </configuration>
-                    </execution>
-                    <execution>
-                        <id>ban-unsafe-snakeyaml</id>
+                        <id>shade-paimon</id>
+                        <phase>package</phase>
                         <goals>
-                            <goal>enforce</goal>
+                            <goal>shade</goal>
                         </goals>
                         <configuration>
-                            <rules>
-                                <bannedDependencies>
-                                    <excludes>
-                                        
<exclude>org.yaml:snakeyaml:(,1.26]</exclude>
-                                    </excludes>
-                                    <includes>
-                                        <!-- Snakeyaml is pulled in by many 
modules without using it in production,
-                                          so there's no benefit in us 
investing time into bumping these. -->
-                                        
<include>org.yaml:snakeyaml:(,1.26]:*:test</include>
-                                    </includes>
-                                </bannedDependencies>
-                            </rules>
+                            <artifactSet>
+                                <includes combine.children="append">
+                                    
<include>org.apache.paimon:paimon-bundle</include>
+                                    <include>com.google.guava:guava</include>
+                                    
<include>org.xerial.snappy:snappy-java</include>
+                                    <include>org.slf4j:slf4j-api</include>
+                                    
<include>org.apache.logging.log4j:log4j-api</include>
+                                    
<include>org.apache.logging.log4j:log4j-core</include>
+                                    
<include>org.apache.logging.log4j:log4j-slf4j-impl</include>
+                                    
<include>org.apache.logging.log4j:log4j-1.2-api</include>
+                                    
<include>org.apache.commons:commons-lang3</include>
+                                </includes>
+                            </artifactSet>
                         </configuration>
                     </execution>
+                </executions>
+            </plugin>
+
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-assembly-plugin</artifactId>
+                <version>2.5.5</version>
+                <configuration>
+                    <descriptors>
+                        <descriptor>src/main/assembly/paimon.xml</descriptor>
+                    </descriptors>
+                </configuration>
+                <executions>
                     <execution>
-                        <id>ban-unsafe-jackson</id>
+                        <phase>package</phase>
                         <goals>
-                            <goal>enforce</goal>
+                            <goal>attached</goal>
                         </goals>
-                        <configuration>
-                            <rules>
-                                <bannedDependencies>
-                                    <excludes>
-                                        
<exclude>com.fasterxml.jackson*:*:(,2.7.0]</exclude>
-                                    </excludes>
-                                </bannedDependencies>
-                            </rules>
-                        </configuration>
                     </execution>
+                </executions>
+            </plugin>
+
+            <plugin>
+                <groupId>org.commonjava.maven.plugins</groupId>
+                <artifactId>directory-maven-plugin</artifactId>
+                <version>1.0</version>
+                <executions>
                     <execution>
-                        <id>forbid-log4j-1</id>
+                        <id>directories</id>
                         <goals>
-                            <goal>enforce</goal>
+                            <goal>directory-of</goal>
                         </goals>
-                        <configuration>
-                            <rules>
-                                <bannedDependencies>
-                                    <excludes>
-                                        <exclude>log4j:log4j</exclude>
-                                        
<exclude>org.slf4j:slf4j-log4j12</exclude>
-                                    </excludes>
-                                </bannedDependencies>
-                            </rules>
-                        </configuration>
-                    </execution>
-                    <execution>
-                        <id>dependency-convergence</id>
-                        <!-- disabled by default as it interacts badly with 
shade-plugin -->
                         <phase>none</phase>
-                        <goals>
-                            <goal>enforce</goal>
-                        </goals>
-                        <configuration>
-                            <rules>
-                                <dependencyConvergence/>
-                            </rules>
-                        </configuration>
                     </execution>
                 </executions>
             </plugin>
         </plugins>
-        <pluginManagement>
-            <plugins>
-                <plugin>
-                    <groupId>org.codehaus.mojo</groupId>
-                    <artifactId>build-helper-maven-plugin</artifactId>
-                    <version>1.7</version>
-                </plugin>
-
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-compiler-plugin</artifactId>
-                    <version>3.8.0</version>
-                    <configuration>
-                        <source>${target.java.version}</source>
-                        <target>${target.java.version}</target>
-                        <!-- The semantics of this option are reversed, see 
MCOMPILER-209. -->
-                        
<useIncrementalCompilation>false</useIncrementalCompilation>
-                        <compilerArgs>
-                            <!-- Prevents recompilation due to missing 
package-info.class, see MCOMPILER-205 -->
-                            <arg>-Xpkginfo:always</arg>
-                        </compilerArgs>
-                    </configuration>
-                </plugin>
-
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-checkstyle-plugin</artifactId>
-                    <version>2.17</version>
-                    <dependencies>
-                        <dependency>
-                            <groupId>com.puppycrawl.tools</groupId>
-                            <artifactId>checkstyle</artifactId>
-                            <!-- Note: match version with 
docs/flinkDev/ide_setup.md -->
-                            <version>8.14</version>
-                        </dependency>
-                    </dependencies>
-                    <executions>
-                        <execution>
-                            <id>validate</id>
-                            <phase>validate</phase>
-                            <goals>
-                                <goal>check</goal>
-                            </goals>
-                        </execution>
-                    </executions>
-                    <configuration>
-                        
<suppressionsLocation>/tools/maven/suppressions.xml</suppressionsLocation>
-                        
<includeTestSourceDirectory>true</includeTestSourceDirectory>
-                        
<configLocation>/tools/maven/checkstyle.xml</configLocation>
-                        <logViolationsToConsole>true</logViolationsToConsole>
-                        <failOnViolation>true</failOnViolation>
-                    </configuration>
-                </plugin>
-
-                <plugin>
-                    <groupId>com.diffplug.spotless</groupId>
-                    <artifactId>spotless-maven-plugin</artifactId>
-                    <version>${spotless.version}</version>
-                    <configuration>
-                        <java>
-                            <googleJavaFormat>
-                                <version>1.7</version>
-                                <style>AOSP</style>
-                            </googleJavaFormat>
-
-                            <!-- \# refers to the static imports -->
-                            <importOrder>
-                                
<order>org.apache.paimon,org.apache.paimon.shaded,,javax,java,scala,\#</order>
-                            </importOrder>
-
-                            <removeUnusedImports/>
-                        </java>
-                    </configuration>
-                    <executions>
-                        <execution>
-                            <id>spotless-check</id>
-                            <phase>validate</phase>
-                            <goals>
-                                <goal>check</goal>
-                            </goals>
-                        </execution>
-                    </executions>
-                </plugin>
-
-
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-javadoc-plugin</artifactId>
-                    <version>2.9.1</version><!--$NO-MVN-MAN-VER$-->
-                    <configuration>
-                        <quiet>true</quiet>
-                        <detectOfflineLinks>false</detectOfflineLinks>
-                        <additionalJOptions combine.children="append">
-                            
<additionalJOption>-Xdoclint:none</additionalJOption>
-                        </additionalJOptions>
-                    </configuration>
-                </plugin>
-
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-enforcer-plugin</artifactId>
-                    <version>3.0.0-M1</version>
-                </plugin>
-
-                <!-- Pin the version of the maven shade plugin -->
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-shade-plugin</artifactId>
-                    <version>3.4.1</version>
-                </plugin>
-
-                <!-- configure scala style -->
-                <plugin>
-                    <groupId>org.scalastyle</groupId>
-                    <artifactId>scalastyle-maven-plugin</artifactId>
-                    <version>1.0.0</version>
-                    <executions>
-                        <execution>
-                            <goals>
-                                <goal>check</goal>
-                            </goals>
-                        </execution>
-                    </executions>
-                    <configuration>
-                        <verbose>false</verbose>
-                        <failOnViolation>true</failOnViolation>
-                        
<includeTestSourceDirectory>true</includeTestSourceDirectory>
-                        <failOnWarning>false</failOnWarning>
-                        
<sourceDirectory>${basedir}/src/main/scala</sourceDirectory>
-                        
<testSourceDirectory>${basedir}/src/test/scala</testSourceDirectory>
-                        
<outputFile>${project.basedir}/target/scalastyle-output.xml</outputFile>
-                        <inputEncoding>UTF-8</inputEncoding>
-                        <outputEncoding>UTF-8</outputEncoding>
-                    </configuration>
-                </plugin>
-
-                <plugin>
-                    <!-- Inherited from Apache parent, but not actually used. 
Disable to reduce noise. -->
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-site-plugin</artifactId>
-                    <executions>
-                        <execution>
-                            <id>attach-descriptor</id>
-                            <phase>none</phase>
-                        </execution>
-                    </executions>
-                </plugin>
-
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-remote-resources-plugin</artifactId>
-                    <version>1.7.0</version>
-                    <executions>
-                        <execution>
-                            <goals>
-                                <goal>process</goal>
-                            </goals>
-                            <configuration>
-                                <resourceBundles>
-                                    
<resourceBundle>org.apache.apache.resources:apache-incubator-disclaimer-resource-bundle:1.5</resourceBundle>
-                                </resourceBundles>
-                            </configuration>
-                        </execution>
-                    </executions>
-                </plugin>
-            </plugins>
-        </pluginManagement>
     </build>
+    <profiles>
+        <profile>
+            <id>apache-build</id>
+            <repositories>
+                <repository>
+                    <id>apache-releases</id>
+                    <name>apache releases</name>
+                    
<url>https://repository.apache.org/content/repositories/releases/</url>
+                </repository>
+                <repository>
+                    <id>apache-snapshots</id>
+                    <name>apache snapshots</name>
+                    
<url>https://repository.apache.org/content/repositories/snapshots/</url>
+                </repository>
+            </repositories>
+        </profile>
+    </profiles>
 
 </project>
diff --git a/paimon-trino-440/src/main/assembly/paimon.xml 
b/src/main/assembly/paimon.xml
similarity index 100%
rename from paimon-trino-440/src/main/assembly/paimon.xml
rename to src/main/assembly/paimon.xml
diff --git 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/ClassLoaderUtils.java 
b/src/main/java/org/apache/paimon/trino/ClassLoaderUtils.java
similarity index 100%
rename from 
paimon-trino-440/src/main/java/org/apache/paimon/trino/ClassLoaderUtils.java
rename to src/main/java/org/apache/paimon/trino/ClassLoaderUtils.java
diff --git 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/DecimalUtils.java 
b/src/main/java/org/apache/paimon/trino/DecimalUtils.java
similarity index 100%
copy from 
paimon-trino-440/src/main/java/org/apache/paimon/trino/DecimalUtils.java
copy to src/main/java/org/apache/paimon/trino/DecimalUtils.java
diff --git 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/DirectTrinoPageSource.java
 b/src/main/java/org/apache/paimon/trino/DirectTrinoPageSource.java
similarity index 100%
rename from 
paimon-trino-440/src/main/java/org/apache/paimon/trino/DirectTrinoPageSource.java
rename to src/main/java/org/apache/paimon/trino/DirectTrinoPageSource.java
diff --git 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/EncodingUtils.java 
b/src/main/java/org/apache/paimon/trino/EncodingUtils.java
similarity index 100%
rename from 
paimon-trino-440/src/main/java/org/apache/paimon/trino/EncodingUtils.java
rename to src/main/java/org/apache/paimon/trino/EncodingUtils.java
diff --git 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/FieldNameUtils.java 
b/src/main/java/org/apache/paimon/trino/FieldNameUtils.java
similarity index 100%
rename from 
paimon-trino-440/src/main/java/org/apache/paimon/trino/FieldNameUtils.java
rename to src/main/java/org/apache/paimon/trino/FieldNameUtils.java
diff --git 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/FixedBucketTableShuffleFunction.java
 b/src/main/java/org/apache/paimon/trino/FixedBucketTableShuffleFunction.java
similarity index 100%
rename from 
paimon-trino-440/src/main/java/org/apache/paimon/trino/FixedBucketTableShuffleFunction.java
rename to 
src/main/java/org/apache/paimon/trino/FixedBucketTableShuffleFunction.java
diff --git 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoColumnHandle.java 
b/src/main/java/org/apache/paimon/trino/TrinoColumnHandle.java
similarity index 100%
rename from 
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoColumnHandle.java
rename to src/main/java/org/apache/paimon/trino/TrinoColumnHandle.java
diff --git 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoConnector.java 
b/src/main/java/org/apache/paimon/trino/TrinoConnector.java
similarity index 100%
rename from 
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoConnector.java
rename to src/main/java/org/apache/paimon/trino/TrinoConnector.java
diff --git 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoConnectorFactory.java
 b/src/main/java/org/apache/paimon/trino/TrinoConnectorFactory.java
similarity index 100%
rename from 
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoConnectorFactory.java
rename to src/main/java/org/apache/paimon/trino/TrinoConnectorFactory.java
diff --git 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoFilterConverter.java
 b/src/main/java/org/apache/paimon/trino/TrinoFilterConverter.java
similarity index 100%
rename from 
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoFilterConverter.java
rename to src/main/java/org/apache/paimon/trino/TrinoFilterConverter.java
diff --git 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoFilterExtractor.java
 b/src/main/java/org/apache/paimon/trino/TrinoFilterExtractor.java
similarity index 100%
rename from 
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoFilterExtractor.java
rename to src/main/java/org/apache/paimon/trino/TrinoFilterExtractor.java
diff --git 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoMergePageSourceWrapper.java
 b/src/main/java/org/apache/paimon/trino/TrinoMergePageSourceWrapper.java
similarity index 100%
rename from 
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoMergePageSourceWrapper.java
rename to src/main/java/org/apache/paimon/trino/TrinoMergePageSourceWrapper.java
diff --git 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoMergeSink.java 
b/src/main/java/org/apache/paimon/trino/TrinoMergeSink.java
similarity index 100%
rename from 
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoMergeSink.java
rename to src/main/java/org/apache/paimon/trino/TrinoMergeSink.java
diff --git 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoMergeTableHandle.java
 b/src/main/java/org/apache/paimon/trino/TrinoMergeTableHandle.java
similarity index 100%
copy from 
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoMergeTableHandle.java
copy to src/main/java/org/apache/paimon/trino/TrinoMergeTableHandle.java
diff --git 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoMetadata.java 
b/src/main/java/org/apache/paimon/trino/TrinoMetadata.java
similarity index 100%
rename from 
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoMetadata.java
rename to src/main/java/org/apache/paimon/trino/TrinoMetadata.java
diff --git 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoMetadataFactory.java
 b/src/main/java/org/apache/paimon/trino/TrinoMetadataFactory.java
similarity index 100%
rename from 
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoMetadataFactory.java
rename to src/main/java/org/apache/paimon/trino/TrinoMetadataFactory.java
diff --git 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoModule.java 
b/src/main/java/org/apache/paimon/trino/TrinoModule.java
similarity index 100%
rename from 
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoModule.java
rename to src/main/java/org/apache/paimon/trino/TrinoModule.java
diff --git 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoNodePartitioningProvider.java
 b/src/main/java/org/apache/paimon/trino/TrinoNodePartitioningProvider.java
similarity index 100%
rename from 
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoNodePartitioningProvider.java
rename to 
src/main/java/org/apache/paimon/trino/TrinoNodePartitioningProvider.java
diff --git 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoOrcDataSource.java
 b/src/main/java/org/apache/paimon/trino/TrinoOrcDataSource.java
similarity index 58%
rename from 
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoOrcDataSource.java
rename to src/main/java/org/apache/paimon/trino/TrinoOrcDataSource.java
index 250366c..7710eba 100644
--- 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoOrcDataSource.java
+++ b/src/main/java/org/apache/paimon/trino/TrinoOrcDataSource.java
@@ -1,21 +1,19 @@
 /*
+ * 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
  *
- *  * 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.
+ *     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.paimon.trino;
diff --git 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoPageSink.java 
b/src/main/java/org/apache/paimon/trino/TrinoPageSink.java
similarity index 100%
rename from 
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoPageSink.java
rename to src/main/java/org/apache/paimon/trino/TrinoPageSink.java
diff --git 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoPageSinkProvider.java
 b/src/main/java/org/apache/paimon/trino/TrinoPageSinkProvider.java
similarity index 100%
rename from 
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoPageSinkProvider.java
rename to src/main/java/org/apache/paimon/trino/TrinoPageSinkProvider.java
diff --git 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoPageSource.java 
b/src/main/java/org/apache/paimon/trino/TrinoPageSource.java
similarity index 100%
rename from 
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoPageSource.java
rename to src/main/java/org/apache/paimon/trino/TrinoPageSource.java
diff --git 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoPageSourceProvider.java
 b/src/main/java/org/apache/paimon/trino/TrinoPageSourceProvider.java
similarity index 100%
rename from 
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoPageSourceProvider.java
rename to src/main/java/org/apache/paimon/trino/TrinoPageSourceProvider.java
diff --git 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoPageSourceWrapper.java
 b/src/main/java/org/apache/paimon/trino/TrinoPageSourceWrapper.java
similarity index 77%
rename from 
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoPageSourceWrapper.java
rename to src/main/java/org/apache/paimon/trino/TrinoPageSourceWrapper.java
index 2b03285..e0c0b81 100644
--- 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoPageSourceWrapper.java
+++ b/src/main/java/org/apache/paimon/trino/TrinoPageSourceWrapper.java
@@ -1,21 +1,19 @@
 /*
+ * 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
  *
- *  * 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.
+ *     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.paimon.trino;
diff --git 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoPartitioningHandle.java
 b/src/main/java/org/apache/paimon/trino/TrinoPartitioningHandle.java
similarity index 100%
rename from 
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoPartitioningHandle.java
rename to src/main/java/org/apache/paimon/trino/TrinoPartitioningHandle.java
diff --git 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoPlugin.java 
b/src/main/java/org/apache/paimon/trino/TrinoPlugin.java
similarity index 100%
copy from 
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoPlugin.java
copy to src/main/java/org/apache/paimon/trino/TrinoPlugin.java
diff --git 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoRow.java 
b/src/main/java/org/apache/paimon/trino/TrinoRow.java
similarity index 100%
rename from paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoRow.java
rename to src/main/java/org/apache/paimon/trino/TrinoRow.java
diff --git 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoSessionProperties.java
 b/src/main/java/org/apache/paimon/trino/TrinoSessionProperties.java
similarity index 100%
rename from 
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoSessionProperties.java
rename to src/main/java/org/apache/paimon/trino/TrinoSessionProperties.java
diff --git 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoSplit.java 
b/src/main/java/org/apache/paimon/trino/TrinoSplit.java
similarity index 100%
rename from 
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoSplit.java
rename to src/main/java/org/apache/paimon/trino/TrinoSplit.java
diff --git 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoSplitManager.java 
b/src/main/java/org/apache/paimon/trino/TrinoSplitManager.java
similarity index 100%
rename from 
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoSplitManager.java
rename to src/main/java/org/apache/paimon/trino/TrinoSplitManager.java
diff --git 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoSplitSource.java 
b/src/main/java/org/apache/paimon/trino/TrinoSplitSource.java
similarity index 100%
rename from 
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoSplitSource.java
rename to src/main/java/org/apache/paimon/trino/TrinoSplitSource.java
diff --git 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoTableHandle.java 
b/src/main/java/org/apache/paimon/trino/TrinoTableHandle.java
similarity index 100%
rename from 
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoTableHandle.java
rename to src/main/java/org/apache/paimon/trino/TrinoTableHandle.java
diff --git 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoTableOptionUtils.java
 b/src/main/java/org/apache/paimon/trino/TrinoTableOptionUtils.java
similarity index 100%
rename from 
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoTableOptionUtils.java
rename to src/main/java/org/apache/paimon/trino/TrinoTableOptionUtils.java
diff --git 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoTableOptions.java 
b/src/main/java/org/apache/paimon/trino/TrinoTableOptions.java
similarity index 100%
rename from 
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoTableOptions.java
rename to src/main/java/org/apache/paimon/trino/TrinoTableOptions.java
diff --git 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/DecimalUtils.java 
b/src/main/java/org/apache/paimon/trino/TrinoTransactionHandle.java
similarity index 78%
rename from 
paimon-trino-440/src/main/java/org/apache/paimon/trino/DecimalUtils.java
rename to src/main/java/org/apache/paimon/trino/TrinoTransactionHandle.java
index 467b03c..91e1830 100644
--- a/paimon-trino-440/src/main/java/org/apache/paimon/trino/DecimalUtils.java
+++ b/src/main/java/org/apache/paimon/trino/TrinoTransactionHandle.java
@@ -18,14 +18,9 @@
 
 package org.apache.paimon.trino;
 
-import io.trino.spi.type.Int128;
+import io.trino.spi.connector.ConnectorTransactionHandle;
 
-import java.math.BigInteger;
-
-/** Utils for decimal. */
-public class DecimalUtils {
-
-    public static BigInteger toBigInteger(Object value) {
-        return ((Int128) value).toBigInteger();
-    }
+/** An empty transaction handle. */
+public enum TrinoTransactionHandle implements ConnectorTransactionHandle {
+    INSTANCE
 }
diff --git 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoTypeUtils.java 
b/src/main/java/org/apache/paimon/trino/TrinoTypeUtils.java
similarity index 100%
rename from 
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoTypeUtils.java
rename to src/main/java/org/apache/paimon/trino/TrinoTypeUtils.java
diff --git 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/catalog/TrinoCatalog.java
 b/src/main/java/org/apache/paimon/trino/catalog/TrinoCatalog.java
similarity index 89%
rename from 
paimon-trino-440/src/main/java/org/apache/paimon/trino/catalog/TrinoCatalog.java
rename to src/main/java/org/apache/paimon/trino/catalog/TrinoCatalog.java
index f5153b9..debafbc 100644
--- 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/catalog/TrinoCatalog.java
+++ b/src/main/java/org/apache/paimon/trino/catalog/TrinoCatalog.java
@@ -1,21 +1,19 @@
 /*
+ * 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
  *
- *  * 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.
+ *     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.paimon.trino.catalog;
diff --git 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/fileio/PositionOutputStreamWrapper.java
 b/src/main/java/org/apache/paimon/trino/fileio/PositionOutputStreamWrapper.java
similarity index 61%
rename from 
paimon-trino-440/src/main/java/org/apache/paimon/trino/fileio/PositionOutputStreamWrapper.java
rename to 
src/main/java/org/apache/paimon/trino/fileio/PositionOutputStreamWrapper.java
index e342eb3..300d9a5 100644
--- 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/fileio/PositionOutputStreamWrapper.java
+++ 
b/src/main/java/org/apache/paimon/trino/fileio/PositionOutputStreamWrapper.java
@@ -1,21 +1,19 @@
 /*
+ * 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
  *
- *  * 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.
+ *     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.paimon.trino.fileio;
diff --git 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoMergeTableHandle.java
 b/src/main/java/org/apache/paimon/trino/fileio/TrinoDirectoryFileStatus.java
similarity index 55%
copy from 
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoMergeTableHandle.java
copy to 
src/main/java/org/apache/paimon/trino/fileio/TrinoDirectoryFileStatus.java
index 901d6fa..90304be 100644
--- 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoMergeTableHandle.java
+++ b/src/main/java/org/apache/paimon/trino/fileio/TrinoDirectoryFileStatus.java
@@ -16,26 +16,39 @@
  * limitations under the License.
  */
 
-package org.apache.paimon.trino;
+package org.apache.paimon.trino.fileio;
 
-import com.fasterxml.jackson.annotation.JsonCreator;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import io.trino.spi.connector.ConnectorMergeTableHandle;
-import io.trino.spi.connector.ConnectorTableHandle;
+import org.apache.paimon.fs.FileStatus;
+import org.apache.paimon.fs.Path;
 
-/** Trino {@link ConnectorMergeTableHandle}. */
-public class TrinoMergeTableHandle implements ConnectorMergeTableHandle {
+/** File status for directory. */
+public class TrinoDirectoryFileStatus implements FileStatus {
 
-    private final TrinoTableHandle tableHandle;
+    private final Path path;
 
-    @JsonCreator
-    public TrinoMergeTableHandle(@JsonProperty("tableHandle") TrinoTableHandle 
tableHandle) {
-        this.tableHandle = tableHandle;
+    public TrinoDirectoryFileStatus(Path path) {
+        this.path = path;
     }
 
     @Override
-    @JsonProperty
-    public ConnectorTableHandle getTableHandle() {
-        return tableHandle;
+    public long getLen() {
+        // can't get len by trino file system
+        return -1;
+    }
+
+    @Override
+    public boolean isDir() {
+        return true;
+    }
+
+    @Override
+    public Path getPath() {
+        return path;
+    }
+
+    @Override
+    public long getModificationTime() {
+        // can't get modification time by trino file system
+        return -1;
     }
 }
diff --git 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/fileio/TrinoFileIO.java
 b/src/main/java/org/apache/paimon/trino/fileio/TrinoFileIO.java
similarity index 88%
rename from 
paimon-trino-440/src/main/java/org/apache/paimon/trino/fileio/TrinoFileIO.java
rename to src/main/java/org/apache/paimon/trino/fileio/TrinoFileIO.java
index 48d1f68..da6d911 100644
--- 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/fileio/TrinoFileIO.java
+++ b/src/main/java/org/apache/paimon/trino/fileio/TrinoFileIO.java
@@ -1,21 +1,19 @@
 /*
+ * 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
  *
- *  * 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.
+ *     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.paimon.trino.fileio;
diff --git 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoPlugin.java 
b/src/main/java/org/apache/paimon/trino/fileio/TrinoFileIOLoader.java
similarity index 55%
rename from 
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoPlugin.java
rename to src/main/java/org/apache/paimon/trino/fileio/TrinoFileIOLoader.java
index 8e6c39c..aba6597 100644
--- a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoPlugin.java
+++ b/src/main/java/org/apache/paimon/trino/fileio/TrinoFileIOLoader.java
@@ -16,17 +16,30 @@
  * limitations under the License.
  */
 
-package org.apache.paimon.trino;
+package org.apache.paimon.trino.fileio;
 
-import io.trino.spi.Plugin;
-import io.trino.spi.connector.ConnectorFactory;
+import org.apache.paimon.fs.FileIO;
+import org.apache.paimon.fs.FileIOLoader;
+import org.apache.paimon.fs.Path;
 
-import java.util.Collections;
+import io.trino.filesystem.TrinoFileSystem;
+
+/** Trino file io loader for paimon. */
+public class TrinoFileIOLoader implements FileIOLoader {
+
+    private final TrinoFileSystem trinoFileSystem;
+
+    public TrinoFileIOLoader(TrinoFileSystem trinoFileSystem) {
+        this.trinoFileSystem = trinoFileSystem;
+    }
+
+    @Override
+    public String getScheme() {
+        throw new UnsupportedOperationException();
+    }
 
-/** Trino {@link Plugin}. */
-public class TrinoPlugin implements Plugin {
     @Override
-    public Iterable<ConnectorFactory> getConnectorFactories() {
-        return Collections.singletonList(new TrinoConnectorFactory());
+    public FileIO load(Path path) {
+        return new TrinoFileIO(trinoFileSystem, path);
     }
 }
diff --git 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoMergeTableHandle.java
 b/src/main/java/org/apache/paimon/trino/fileio/TrinoFileStatus.java
similarity index 52%
rename from 
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoMergeTableHandle.java
rename to src/main/java/org/apache/paimon/trino/fileio/TrinoFileStatus.java
index 901d6fa..8de780b 100644
--- 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoMergeTableHandle.java
+++ b/src/main/java/org/apache/paimon/trino/fileio/TrinoFileStatus.java
@@ -16,26 +16,41 @@
  * limitations under the License.
  */
 
-package org.apache.paimon.trino;
+package org.apache.paimon.trino.fileio;
 
-import com.fasterxml.jackson.annotation.JsonCreator;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import io.trino.spi.connector.ConnectorMergeTableHandle;
-import io.trino.spi.connector.ConnectorTableHandle;
+import org.apache.paimon.fs.FileStatus;
+import org.apache.paimon.fs.Path;
 
-/** Trino {@link ConnectorMergeTableHandle}. */
-public class TrinoMergeTableHandle implements ConnectorMergeTableHandle {
+/** File status for trino file. */
+public class TrinoFileStatus implements FileStatus {
 
-    private final TrinoTableHandle tableHandle;
+    private final long len;
+    private final Path path;
+    private final long modificationTmie;
 
-    @JsonCreator
-    public TrinoMergeTableHandle(@JsonProperty("tableHandle") TrinoTableHandle 
tableHandle) {
-        this.tableHandle = tableHandle;
+    public TrinoFileStatus(long len, Path path, long modificationTmie) {
+        this.len = len;
+        this.path = path;
+        this.modificationTmie = modificationTmie;
     }
 
     @Override
-    @JsonProperty
-    public ConnectorTableHandle getTableHandle() {
-        return tableHandle;
+    public long getLen() {
+        return len;
+    }
+
+    @Override
+    public boolean isDir() {
+        return false;
+    }
+
+    @Override
+    public Path getPath() {
+        return path;
+    }
+
+    @Override
+    public long getModificationTime() {
+        return modificationTmie;
     }
 }
diff --git 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/fileio/TrinoInputStreamWrapper.java
 b/src/main/java/org/apache/paimon/trino/fileio/TrinoInputStreamWrapper.java
similarity index 74%
rename from 
paimon-trino-440/src/main/java/org/apache/paimon/trino/fileio/TrinoInputStreamWrapper.java
rename to 
src/main/java/org/apache/paimon/trino/fileio/TrinoInputStreamWrapper.java
index 292ae2e..b7de679 100644
--- 
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/fileio/TrinoInputStreamWrapper.java
+++ b/src/main/java/org/apache/paimon/trino/fileio/TrinoInputStreamWrapper.java
@@ -1,21 +1,19 @@
 /*
+ * 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
  *
- *  * 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.
+ *     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.paimon.trino.fileio;
diff --git 
a/paimon-trino-440/src/main/resources/META-INF/services/io.trino.spi.Plugin 
b/src/main/resources/META-INF/services/io.trino.spi.Plugin
similarity index 100%
rename from 
paimon-trino-440/src/main/resources/META-INF/services/io.trino.spi.Plugin
rename to src/main/resources/META-INF/services/io.trino.spi.Plugin
diff --git 
a/paimon-trino-440/src/test/java/org/apache/paimon/trino/SimpleTableTestHelper.java
 b/src/test/java/org/apache/paimon/trino/SimpleTableTestHelper.java
similarity index 100%
rename from 
paimon-trino-440/src/test/java/org/apache/paimon/trino/SimpleTableTestHelper.java
rename to src/test/java/org/apache/paimon/trino/SimpleTableTestHelper.java
diff --git 
a/paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoColumnHandle.java
 b/src/test/java/org/apache/paimon/trino/TrinoColumnHandleTest.java
similarity index 98%
rename from 
paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoColumnHandle.java
rename to src/test/java/org/apache/paimon/trino/TrinoColumnHandleTest.java
index 686d9cb..e4d7408 100644
--- 
a/paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoColumnHandle.java
+++ b/src/test/java/org/apache/paimon/trino/TrinoColumnHandleTest.java
@@ -32,7 +32,7 @@ import static 
io.trino.type.InternalTypeManager.TESTING_TYPE_MANAGER;
 import static org.assertj.core.api.Assertions.assertThat;
 
 /** Test for {@link TrinoColumnHandle}. */
-public class TestTrinoColumnHandle {
+public class TrinoColumnHandleTest {
 
     @Test
     public void testTrinoColumnHandle() {
diff --git 
a/paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoConnectorFactory.java
 b/src/test/java/org/apache/paimon/trino/TrinoConnectorFactoryTest.java
similarity index 97%
rename from 
paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoConnectorFactory.java
rename to src/test/java/org/apache/paimon/trino/TrinoConnectorFactoryTest.java
index 0241e60..7ab4f58 100644
--- 
a/paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoConnectorFactory.java
+++ b/src/test/java/org/apache/paimon/trino/TrinoConnectorFactoryTest.java
@@ -31,7 +31,7 @@ import java.util.Map;
 import static org.assertj.core.api.Assertions.assertThat;
 
 /** Test for {@link TrinoConnectorFactory}. */
-public class TestTrinoConnectorFactory {
+public class TrinoConnectorFactoryTest {
 
     @TempDir java.nio.file.Path tempFile;
 
diff --git 
a/paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoDistributedQuery.java
 b/src/test/java/org/apache/paimon/trino/TrinoDistributedQueryTest.java
similarity index 99%
rename from 
paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoDistributedQuery.java
rename to src/test/java/org/apache/paimon/trino/TrinoDistributedQueryTest.java
index f6ff250..a6e67d0 100644
--- 
a/paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoDistributedQuery.java
+++ b/src/test/java/org/apache/paimon/trino/TrinoDistributedQueryTest.java
@@ -24,7 +24,7 @@ import io.trino.testing.AbstractDistributedEngineOnlyQueries;
 import io.trino.testing.QueryRunner;
 
 /** The test of TrinoDistributedQuery. */
-public class TestTrinoDistributedQuery extends 
AbstractDistributedEngineOnlyQueries {
+public class TrinoDistributedQueryTest extends 
AbstractDistributedEngineOnlyQueries {
 
     @Override
     protected QueryRunner createQueryRunner() throws Exception {
diff --git 
a/paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoFilterConverter.java
 b/src/test/java/org/apache/paimon/trino/TrinoFilterConverterTest.java
similarity index 99%
rename from 
paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoFilterConverter.java
rename to src/test/java/org/apache/paimon/trino/TrinoFilterConverterTest.java
index d75a1c8..4f1c4f0 100644
--- 
a/paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoFilterConverter.java
+++ b/src/test/java/org/apache/paimon/trino/TrinoFilterConverterTest.java
@@ -7,7 +7,7 @@
  * "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
+ *     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,
@@ -48,7 +48,7 @@ import static 
io.trino.spi.type.TimestampWithTimeZoneType.createTimestampWithTim
 import static org.assertj.core.api.Assertions.assertThat;
 
 /** Test for {@link TrinoFilterConverter}. */
-public class TestTrinoFilterConverter {
+public class TrinoFilterConverterTest {
 
     @Test
     public void testAll() {
diff --git 
a/paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoFilterExtractor.java
 b/src/test/java/org/apache/paimon/trino/TrinoFilterExtractorTest.java
similarity index 98%
rename from 
paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoFilterExtractor.java
rename to src/test/java/org/apache/paimon/trino/TrinoFilterExtractorTest.java
index 186750b..9b86f30 100644
--- 
a/paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoFilterExtractor.java
+++ b/src/test/java/org/apache/paimon/trino/TrinoFilterExtractorTest.java
@@ -21,7 +21,7 @@ package org.apache.paimon.trino;
 import org.junit.jupiter.api.Test;
 
 /** The test of TestTrinoFilterExtractor. */
-public class TestTrinoFilterExtractor {
+public class TrinoFilterExtractorTest {
 
     @Test
     public void testExtractTrinoColumnHandleForExpressionFilter() {
diff --git 
a/paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoITCase.java 
b/src/test/java/org/apache/paimon/trino/TrinoITCase.java
similarity index 99%
rename from 
paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoITCase.java
rename to src/test/java/org/apache/paimon/trino/TrinoITCase.java
index 538b592..1d460c4 100644
--- 
a/paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoITCase.java
+++ b/src/test/java/org/apache/paimon/trino/TrinoITCase.java
@@ -70,7 +70,7 @@ import static org.apache.paimon.data.BinaryString.fromString;
 import static org.assertj.core.api.Assertions.assertThat;
 
 /** ITCase for trino connector. */
-public class TestTrinoITCase extends AbstractTestQueryFramework {
+public class TrinoITCase extends AbstractTestQueryFramework {
 
     private static final String CATALOG = "paimon";
     private static final String DB = "default";
diff --git 
a/paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoPartitioningHandle.java
 b/src/test/java/org/apache/paimon/trino/TrinoPartitioningHandleTest.java
similarity index 97%
rename from 
paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoPartitioningHandle.java
rename to src/test/java/org/apache/paimon/trino/TrinoPartitioningHandleTest.java
index 7d97c7c..a358a42 100644
--- 
a/paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoPartitioningHandle.java
+++ b/src/test/java/org/apache/paimon/trino/TrinoPartitioningHandleTest.java
@@ -26,7 +26,7 @@ import org.junit.jupiter.api.Test;
 import static org.assertj.core.api.Assertions.assertThat;
 
 /** Test for {@link TrinoPartitioningHandle}. */
-public class TestTrinoPartitioningHandle {
+public class TrinoPartitioningHandleTest {
 
     private final JsonCodec<TrinoPartitioningHandle> codec =
             JsonCodec.jsonCodec(TrinoPartitioningHandle.class);
diff --git 
a/paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoPlugin.java 
b/src/test/java/org/apache/paimon/trino/TrinoPluginTest.java
similarity index 98%
rename from 
paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoPlugin.java
rename to src/test/java/org/apache/paimon/trino/TrinoPluginTest.java
index 38709d9..b37d090 100644
--- 
a/paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoPlugin.java
+++ b/src/test/java/org/apache/paimon/trino/TrinoPluginTest.java
@@ -34,7 +34,7 @@ import static 
org.apache.paimon.shade.guava30.com.google.common.collect.Iterable
 import static org.assertj.core.api.Assertions.assertThat;
 
 /** Test for {@link TrinoPlugin}. */
-public class TestTrinoPlugin {
+public class TrinoPluginTest {
     @Test
     public void testCreatePrestoConnector() throws IOException {
         String warehouse =
diff --git 
a/paimon-trino-440/src/test/java/org/apache/paimon/trino/TrinoQueryRunner.java 
b/src/test/java/org/apache/paimon/trino/TrinoQueryRunner.java
similarity index 100%
rename from 
paimon-trino-440/src/test/java/org/apache/paimon/trino/TrinoQueryRunner.java
rename to src/test/java/org/apache/paimon/trino/TrinoQueryRunner.java
diff --git 
a/paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoRow.java 
b/src/test/java/org/apache/paimon/trino/TrinoRowTest.java
similarity index 99%
rename from 
paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoRow.java
rename to src/test/java/org/apache/paimon/trino/TrinoRowTest.java
index 580a93d..3bd4535 100644
--- a/paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoRow.java
+++ b/src/test/java/org/apache/paimon/trino/TrinoRowTest.java
@@ -48,7 +48,7 @@ import static 
io.trino.type.DateTimes.MICROSECONDS_PER_MILLISECOND;
 import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
 
 /** Test for {@link TrinoRow}. */
-public class TestTrinoRow {
+public class TrinoRowTest {
 
     @Test
     void test() {
diff --git 
a/paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoSplit.java 
b/src/test/java/org/apache/paimon/trino/TrinoSplitTest.java
similarity index 98%
rename from 
paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoSplit.java
rename to src/test/java/org/apache/paimon/trino/TrinoSplitTest.java
index bb433d5..f7bcb32 100644
--- a/paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoSplit.java
+++ b/src/test/java/org/apache/paimon/trino/TrinoSplitTest.java
@@ -26,7 +26,7 @@ import java.util.Arrays;
 import static org.assertj.core.api.Assertions.assertThat;
 
 /** Test for {@link TrinoSplit}. */
-public class TestTrinoSplit {
+public class TrinoSplitTest {
 
     private final JsonCodec<TrinoSplit> codec = 
JsonCodec.jsonCodec(TrinoSplit.class);
 
diff --git 
a/paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoTableHandle.java
 b/src/test/java/org/apache/paimon/trino/TrinoTableHandleTest.java
similarity index 98%
rename from 
paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoTableHandle.java
rename to src/test/java/org/apache/paimon/trino/TrinoTableHandleTest.java
index a5fe539..9737d7f 100644
--- 
a/paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoTableHandle.java
+++ b/src/test/java/org/apache/paimon/trino/TrinoTableHandleTest.java
@@ -29,7 +29,7 @@ import java.util.OptionalLong;
 import static org.assertj.core.api.Assertions.assertThat;
 
 /** Test for {@link TrinoTableHandle}. */
-public class TestTrinoTableHandle {
+public class TrinoTableHandleTest {
 
     private final JsonCodec<TrinoTableHandle> codec = 
JsonCodec.jsonCodec(TrinoTableHandle.class);
 
diff --git 
a/paimon-trino-440/src/test/java/org/apache/paimon/trino/TrinoTestUtils.java 
b/src/test/java/org/apache/paimon/trino/TrinoTestUtils.java
similarity index 100%
rename from 
paimon-trino-440/src/test/java/org/apache/paimon/trino/TrinoTestUtils.java
rename to src/test/java/org/apache/paimon/trino/TrinoTestUtils.java
diff --git 
a/paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoType.java 
b/src/test/java/org/apache/paimon/trino/TrinoTypeTest.java
similarity index 99%
rename from 
paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoType.java
rename to src/test/java/org/apache/paimon/trino/TrinoTypeTest.java
index 476b1bb..f2a5de0 100644
--- a/paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoType.java
+++ b/src/test/java/org/apache/paimon/trino/TrinoTypeTest.java
@@ -7,7 +7,7 @@
  * "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
+ *     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,
@@ -53,7 +53,7 @@ import java.util.Objects;
 import static org.assertj.core.api.Assertions.assertThat;
 
 /** Test for {@link TrinoTypeUtils}. */
-public class TestTrinoType {
+public class TrinoTypeTest {
 
     @Test
     public void testFromPaimonType() {
diff --git a/paimon-trino-440/src/test/resources/log4j2-test.properties 
b/src/test/resources/log4j2-test.properties
similarity index 100%
rename from paimon-trino-440/src/test/resources/log4j2-test.properties
rename to src/test/resources/log4j2-test.properties

Reply via email to