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

liugddx pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/incubator-seatunnel.git


The following commit(s) were added to refs/heads/dev by this push:
     new 7a9cd574f add imap factory (#3792)
7a9cd574f is described below

commit 7a9cd574f19cc41cb9e36803cfae23e21eb2f523
Author: Guangdong Liu <[email protected]>
AuthorDate: Mon Jan 16 23:16:44 2023 +0800

    add imap factory (#3792)
---
 .../engine/e2e/ClusterFaultToleranceIT.java        |  1 +
 .../engine/server/persistence/FileMapStore.java    | 17 ++++----
 .../imap/storage/api/IMapStorageFactory.java}      | 17 ++++----
 .../imap-storage-file/pom.xml                      |  2 +-
 .../engine/imap/storage/file/IMapFileStorage.java  |  0
 .../imap/storage/file/IMapFileStorageFactory.java  | 48 ++++++++++++++++++++++
 .../engine/imap/storage/file/bean/IMapData.java    |  0
 .../imap/storage/file/bean/IMapFileData.java       |  0
 .../imap/storage/file/common/FileConstants.java    |  0
 .../imap/storage/file/common/WALDataUtils.java     |  0
 .../engine/imap/storage/file/common/WALReader.java |  0
 .../engine/imap/storage/file/common/WALWriter.java |  0
 .../imap/storage/file/disruptor/FileWALEvent.java  |  0
 .../imap/storage/file/disruptor/WALDisruptor.java  |  0
 .../imap/storage/file/disruptor/WALEventType.java  |  0
 .../storage/file/disruptor/WALWorkHandler.java     |  0
 .../imap/storage/file/future/RequestFuture.java    |  0
 .../storage/file/future/RequestFutureCache.java    |  0
 .../storage/file/scheduler/SchedulerTaskInfo.java  |  0
 .../imap/storage/file/IMapFileStorageTest.java     |  0
 .../file/common/WALReaderAndWriterTest.java        |  0
 .../storage/file/disruptor/WALDisruptorTest.java   |  0
 .../{ => imap-storage-plugins}/pom.xml             | 24 +++++++----
 seatunnel-engine/seatunnel-engine-storage/pom.xml  |  6 +--
 24 files changed, 86 insertions(+), 29 deletions(-)

diff --git 
a/seatunnel-e2e/seatunnel-engine-e2e/connector-seatunnel-e2e-base/src/test/java/org/apache/seatunnel/engine/e2e/ClusterFaultToleranceIT.java
 
b/seatunnel-e2e/seatunnel-engine-e2e/connector-seatunnel-e2e-base/src/test/java/org/apache/seatunnel/engine/e2e/ClusterFaultToleranceIT.java
index b1d738579..743eeb6b1 100644
--- 
a/seatunnel-e2e/seatunnel-engine-e2e/connector-seatunnel-e2e-base/src/test/java/org/apache/seatunnel/engine/e2e/ClusterFaultToleranceIT.java
+++ 
b/seatunnel-e2e/seatunnel-engine-e2e/connector-seatunnel-e2e-base/src/test/java/org/apache/seatunnel/engine/e2e/ClusterFaultToleranceIT.java
@@ -654,6 +654,7 @@ public class ClusterFaultToleranceIT {
                 "        initial-mode: EAGER\n" +
                 "        factory-class-name: 
org.apache.seatunnel.engine.server.persistence.FileMapStoreFactory\n" +
                 "        properties:\n" +
+                "          type: hdfs\n" +
                 "          namespace: /tmp/seatunnel/imap\n" +
                 "          clusterName: seatunnel-clsuter\n" +
                 "          fs.defaultFS: file:///\n" +
diff --git 
a/seatunnel-engine/seatunnel-engine-server/src/main/java/org/apache/seatunnel/engine/server/persistence/FileMapStore.java
 
b/seatunnel-engine/seatunnel-engine-server/src/main/java/org/apache/seatunnel/engine/server/persistence/FileMapStore.java
index af6a7be1d..88428f665 100644
--- 
a/seatunnel-engine/seatunnel-engine-server/src/main/java/org/apache/seatunnel/engine/server/persistence/FileMapStore.java
+++ 
b/seatunnel-engine/seatunnel-engine-server/src/main/java/org/apache/seatunnel/engine/server/persistence/FileMapStore.java
@@ -17,17 +17,15 @@
 
 package org.apache.seatunnel.engine.server.persistence;
 
-import static 
org.apache.seatunnel.engine.imap.storage.file.common.FileConstants.FileInitProperties.HDFS_CONFIG_KEY;
-
+import org.apache.seatunnel.engine.common.utils.FactoryUtil;
 import org.apache.seatunnel.engine.imap.storage.api.IMapStorage;
-import org.apache.seatunnel.engine.imap.storage.file.IMapFileStorage;
+import org.apache.seatunnel.engine.imap.storage.api.IMapStorageFactory;
 
 import com.google.common.collect.Maps;
 import com.hazelcast.core.HazelcastInstance;
 import com.hazelcast.map.MapLoaderLifecycleSupport;
 import com.hazelcast.map.MapStore;
 import lombok.SneakyThrows;
-import org.apache.hadoop.conf.Configuration;
 
 import java.util.Collection;
 import java.util.Collections;
@@ -41,13 +39,12 @@ public class FileMapStore implements MapStore<Object, 
Object>, MapLoaderLifecycl
 
     @Override
     public void init(HazelcastInstance hazelcastInstance, Properties 
properties, String mapName) {
-        // TODO implemented by loading the factory
-        mapStorage = new IMapFileStorage();
+
         Map<String, Object> initMap = new 
HashMap<>(Maps.fromProperties(properties));
-        Configuration configuration = new Configuration();
-        configuration.set("fs.defaultFS", 
properties.getProperty("fs.defaultFS"));
-        initMap.put(HDFS_CONFIG_KEY, configuration);
-        mapStorage.initialize(initMap);
+        this.mapStorage =
+            
FactoryUtil.discoverFactory(Thread.currentThread().getContextClassLoader(), 
IMapStorageFactory.class,
+                    (String) initMap.get("type"))
+                .create(initMap);
 
     }
 
diff --git 
a/seatunnel-engine/seatunnel-engine-storage/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/scheduler/SchedulerTaskInfo.java
 
b/seatunnel-engine/seatunnel-engine-storage/imap-storage-api/src/main/java/org/apache/seatunnel/engine/imap/storage/api/IMapStorageFactory.java
similarity index 71%
copy from 
seatunnel-engine/seatunnel-engine-storage/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/scheduler/SchedulerTaskInfo.java
copy to 
seatunnel-engine/seatunnel-engine-storage/imap-storage-api/src/main/java/org/apache/seatunnel/engine/imap/storage/api/IMapStorageFactory.java
index 0fc0451d0..c6c53aed9 100644
--- 
a/seatunnel-engine/seatunnel-engine-storage/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/scheduler/SchedulerTaskInfo.java
+++ 
b/seatunnel-engine/seatunnel-engine-storage/imap-storage-api/src/main/java/org/apache/seatunnel/engine/imap/storage/api/IMapStorageFactory.java
@@ -18,15 +18,16 @@
  *
  */
 
-package org.apache.seatunnel.engine.imap.storage.file.scheduler;
+package org.apache.seatunnel.engine.imap.storage.api;
 
-import lombok.Builder;
-import lombok.Data;
+import 
org.apache.seatunnel.engine.imap.storage.api.exception.IMapStorageException;
 
-@Data
-@Builder
-public class SchedulerTaskInfo {
+import java.util.Map;
+
+public interface IMapStorageFactory {
+
+    String factoryIdentifier();
+
+    IMapStorage create(Map<String, Object> configuration) throws 
IMapStorageException;
 
-    private long scheduledTime;
-    private long latestTime;
 }
diff --git 
a/seatunnel-engine/seatunnel-engine-storage/imap-storage-file/pom.xml 
b/seatunnel-engine/seatunnel-engine-storage/imap-storage-plugins/imap-storage-file/pom.xml
similarity index 97%
rename from seatunnel-engine/seatunnel-engine-storage/imap-storage-file/pom.xml
rename to 
seatunnel-engine/seatunnel-engine-storage/imap-storage-plugins/imap-storage-file/pom.xml
index 39b555539..fba2d5603 100644
--- a/seatunnel-engine/seatunnel-engine-storage/imap-storage-file/pom.xml
+++ 
b/seatunnel-engine/seatunnel-engine-storage/imap-storage-plugins/imap-storage-file/pom.xml
@@ -22,7 +22,7 @@
          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";>
     <parent>
-        <artifactId>seatunnel-engine-storage</artifactId>
+        <artifactId>imap-storage-plugins</artifactId>
         <groupId>org.apache.seatunnel</groupId>
         <version>${revision}</version>
     </parent>
diff --git 
a/seatunnel-engine/seatunnel-engine-storage/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/IMapFileStorage.java
 
b/seatunnel-engine/seatunnel-engine-storage/imap-storage-plugins/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/IMapFileStorage.java
similarity index 100%
rename from 
seatunnel-engine/seatunnel-engine-storage/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/IMapFileStorage.java
rename to 
seatunnel-engine/seatunnel-engine-storage/imap-storage-plugins/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/IMapFileStorage.java
diff --git 
a/seatunnel-engine/seatunnel-engine-storage/imap-storage-plugins/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/IMapFileStorageFactory.java
 
b/seatunnel-engine/seatunnel-engine-storage/imap-storage-plugins/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/IMapFileStorageFactory.java
new file mode 100644
index 000000000..9920d3c3f
--- /dev/null
+++ 
b/seatunnel-engine/seatunnel-engine-storage/imap-storage-plugins/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/IMapFileStorageFactory.java
@@ -0,0 +1,48 @@
+/*
+ * 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.seatunnel.engine.imap.storage.file;
+
+import static 
org.apache.seatunnel.engine.imap.storage.file.common.FileConstants.FileInitProperties.HDFS_CONFIG_KEY;
+
+import org.apache.seatunnel.engine.imap.storage.api.IMapStorage;
+import org.apache.seatunnel.engine.imap.storage.api.IMapStorageFactory;
+import 
org.apache.seatunnel.engine.imap.storage.api.exception.IMapStorageException;
+
+import org.apache.hadoop.conf.Configuration;
+
+import java.util.Map;
+
+public class IMapFileStorageFactory implements IMapStorageFactory {
+    @Override
+    public String factoryIdentifier() {
+        return "hdfs";
+    }
+
+    @Override
+    public IMapStorage create(Map<String, Object> initMap) throws 
IMapStorageException {
+        IMapFileStorage iMapFileStorage = new IMapFileStorage();
+        Configuration configuration = new Configuration();
+        configuration.set("fs.defaultFS", (String) 
initMap.get("fs.defaultFS"));
+        initMap.put(HDFS_CONFIG_KEY, configuration);
+        iMapFileStorage.initialize(initMap);
+        return iMapFileStorage;
+    }
+}
diff --git 
a/seatunnel-engine/seatunnel-engine-storage/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/bean/IMapData.java
 
b/seatunnel-engine/seatunnel-engine-storage/imap-storage-plugins/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/bean/IMapData.java
similarity index 100%
rename from 
seatunnel-engine/seatunnel-engine-storage/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/bean/IMapData.java
rename to 
seatunnel-engine/seatunnel-engine-storage/imap-storage-plugins/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/bean/IMapData.java
diff --git 
a/seatunnel-engine/seatunnel-engine-storage/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/bean/IMapFileData.java
 
b/seatunnel-engine/seatunnel-engine-storage/imap-storage-plugins/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/bean/IMapFileData.java
similarity index 100%
rename from 
seatunnel-engine/seatunnel-engine-storage/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/bean/IMapFileData.java
rename to 
seatunnel-engine/seatunnel-engine-storage/imap-storage-plugins/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/bean/IMapFileData.java
diff --git 
a/seatunnel-engine/seatunnel-engine-storage/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/common/FileConstants.java
 
b/seatunnel-engine/seatunnel-engine-storage/imap-storage-plugins/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/common/FileConstants.java
similarity index 100%
rename from 
seatunnel-engine/seatunnel-engine-storage/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/common/FileConstants.java
rename to 
seatunnel-engine/seatunnel-engine-storage/imap-storage-plugins/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/common/FileConstants.java
diff --git 
a/seatunnel-engine/seatunnel-engine-storage/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/common/WALDataUtils.java
 
b/seatunnel-engine/seatunnel-engine-storage/imap-storage-plugins/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/common/WALDataUtils.java
similarity index 100%
rename from 
seatunnel-engine/seatunnel-engine-storage/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/common/WALDataUtils.java
rename to 
seatunnel-engine/seatunnel-engine-storage/imap-storage-plugins/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/common/WALDataUtils.java
diff --git 
a/seatunnel-engine/seatunnel-engine-storage/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/common/WALReader.java
 
b/seatunnel-engine/seatunnel-engine-storage/imap-storage-plugins/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/common/WALReader.java
similarity index 100%
rename from 
seatunnel-engine/seatunnel-engine-storage/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/common/WALReader.java
rename to 
seatunnel-engine/seatunnel-engine-storage/imap-storage-plugins/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/common/WALReader.java
diff --git 
a/seatunnel-engine/seatunnel-engine-storage/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/common/WALWriter.java
 
b/seatunnel-engine/seatunnel-engine-storage/imap-storage-plugins/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/common/WALWriter.java
similarity index 100%
rename from 
seatunnel-engine/seatunnel-engine-storage/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/common/WALWriter.java
rename to 
seatunnel-engine/seatunnel-engine-storage/imap-storage-plugins/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/common/WALWriter.java
diff --git 
a/seatunnel-engine/seatunnel-engine-storage/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/disruptor/FileWALEvent.java
 
b/seatunnel-engine/seatunnel-engine-storage/imap-storage-plugins/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/disruptor/FileWALEvent.java
similarity index 100%
rename from 
seatunnel-engine/seatunnel-engine-storage/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/disruptor/FileWALEvent.java
rename to 
seatunnel-engine/seatunnel-engine-storage/imap-storage-plugins/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/disruptor/FileWALEvent.java
diff --git 
a/seatunnel-engine/seatunnel-engine-storage/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/disruptor/WALDisruptor.java
 
b/seatunnel-engine/seatunnel-engine-storage/imap-storage-plugins/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/disruptor/WALDisruptor.java
similarity index 100%
rename from 
seatunnel-engine/seatunnel-engine-storage/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/disruptor/WALDisruptor.java
rename to 
seatunnel-engine/seatunnel-engine-storage/imap-storage-plugins/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/disruptor/WALDisruptor.java
diff --git 
a/seatunnel-engine/seatunnel-engine-storage/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/disruptor/WALEventType.java
 
b/seatunnel-engine/seatunnel-engine-storage/imap-storage-plugins/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/disruptor/WALEventType.java
similarity index 100%
rename from 
seatunnel-engine/seatunnel-engine-storage/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/disruptor/WALEventType.java
rename to 
seatunnel-engine/seatunnel-engine-storage/imap-storage-plugins/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/disruptor/WALEventType.java
diff --git 
a/seatunnel-engine/seatunnel-engine-storage/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/disruptor/WALWorkHandler.java
 
b/seatunnel-engine/seatunnel-engine-storage/imap-storage-plugins/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/disruptor/WALWorkHandler.java
similarity index 100%
rename from 
seatunnel-engine/seatunnel-engine-storage/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/disruptor/WALWorkHandler.java
rename to 
seatunnel-engine/seatunnel-engine-storage/imap-storage-plugins/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/disruptor/WALWorkHandler.java
diff --git 
a/seatunnel-engine/seatunnel-engine-storage/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/future/RequestFuture.java
 
b/seatunnel-engine/seatunnel-engine-storage/imap-storage-plugins/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/future/RequestFuture.java
similarity index 100%
rename from 
seatunnel-engine/seatunnel-engine-storage/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/future/RequestFuture.java
rename to 
seatunnel-engine/seatunnel-engine-storage/imap-storage-plugins/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/future/RequestFuture.java
diff --git 
a/seatunnel-engine/seatunnel-engine-storage/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/future/RequestFutureCache.java
 
b/seatunnel-engine/seatunnel-engine-storage/imap-storage-plugins/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/future/RequestFutureCache.java
similarity index 100%
rename from 
seatunnel-engine/seatunnel-engine-storage/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/future/RequestFutureCache.java
rename to 
seatunnel-engine/seatunnel-engine-storage/imap-storage-plugins/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/future/RequestFutureCache.java
diff --git 
a/seatunnel-engine/seatunnel-engine-storage/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/scheduler/SchedulerTaskInfo.java
 
b/seatunnel-engine/seatunnel-engine-storage/imap-storage-plugins/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/scheduler/SchedulerTaskInfo.java
similarity index 100%
rename from 
seatunnel-engine/seatunnel-engine-storage/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/scheduler/SchedulerTaskInfo.java
rename to 
seatunnel-engine/seatunnel-engine-storage/imap-storage-plugins/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/scheduler/SchedulerTaskInfo.java
diff --git 
a/seatunnel-engine/seatunnel-engine-storage/imap-storage-file/src/test/java/org/apache/seatunnel/engine/imap/storage/file/IMapFileStorageTest.java
 
b/seatunnel-engine/seatunnel-engine-storage/imap-storage-plugins/imap-storage-file/src/test/java/org/apache/seatunnel/engine/imap/storage/file/IMapFileStorageTest.java
similarity index 100%
rename from 
seatunnel-engine/seatunnel-engine-storage/imap-storage-file/src/test/java/org/apache/seatunnel/engine/imap/storage/file/IMapFileStorageTest.java
rename to 
seatunnel-engine/seatunnel-engine-storage/imap-storage-plugins/imap-storage-file/src/test/java/org/apache/seatunnel/engine/imap/storage/file/IMapFileStorageTest.java
diff --git 
a/seatunnel-engine/seatunnel-engine-storage/imap-storage-file/src/test/java/org/apache/seatunnel/engine/imap/storage/file/common/WALReaderAndWriterTest.java
 
b/seatunnel-engine/seatunnel-engine-storage/imap-storage-plugins/imap-storage-file/src/test/java/org/apache/seatunnel/engine/imap/storage/file/common/WALReaderAndWriterTest.java
similarity index 100%
rename from 
seatunnel-engine/seatunnel-engine-storage/imap-storage-file/src/test/java/org/apache/seatunnel/engine/imap/storage/file/common/WALReaderAndWriterTest.java
rename to 
seatunnel-engine/seatunnel-engine-storage/imap-storage-plugins/imap-storage-file/src/test/java/org/apache/seatunnel/engine/imap/storage/file/common/WALReaderAndWriterTest.java
diff --git 
a/seatunnel-engine/seatunnel-engine-storage/imap-storage-file/src/test/java/org/apache/seatunnel/engine/imap/storage/file/disruptor/WALDisruptorTest.java
 
b/seatunnel-engine/seatunnel-engine-storage/imap-storage-plugins/imap-storage-file/src/test/java/org/apache/seatunnel/engine/imap/storage/file/disruptor/WALDisruptorTest.java
similarity index 100%
rename from 
seatunnel-engine/seatunnel-engine-storage/imap-storage-file/src/test/java/org/apache/seatunnel/engine/imap/storage/file/disruptor/WALDisruptorTest.java
rename to 
seatunnel-engine/seatunnel-engine-storage/imap-storage-plugins/imap-storage-file/src/test/java/org/apache/seatunnel/engine/imap/storage/file/disruptor/WALDisruptorTest.java
diff --git a/seatunnel-engine/seatunnel-engine-storage/pom.xml 
b/seatunnel-engine/seatunnel-engine-storage/imap-storage-plugins/pom.xml
similarity index 72%
copy from seatunnel-engine/seatunnel-engine-storage/pom.xml
copy to seatunnel-engine/seatunnel-engine-storage/imap-storage-plugins/pom.xml
index 80c98a506..f0427d14a 100644
--- a/seatunnel-engine/seatunnel-engine-storage/pom.xml
+++ b/seatunnel-engine/seatunnel-engine-storage/imap-storage-plugins/pom.xml
@@ -22,19 +22,29 @@
          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";>
     <parent>
-        <artifactId>seatunnel-engine</artifactId>
         <groupId>org.apache.seatunnel</groupId>
+        <artifactId>seatunnel-engine-storage</artifactId>
         <version>${revision}</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>seatunnel-engine-storage</artifactId>
+    <artifactId>imap-storage-plugins</artifactId>
     <packaging>pom</packaging>
+
     <modules>
-        <module>checkpoint-storage-api</module>
-        <module>checkpoint-storage-plugins</module>
-        <module>imap-storage-api</module>
         <module>imap-storage-file</module>
     </modules>
-    
-</project>
\ No newline at end of file
+
+    <dependencies>
+        <dependency>
+            <groupId>com.google.auto.service</groupId>
+            <artifactId>auto-service</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.seatunnel</groupId>
+            <artifactId>imap-storage-api</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+    </dependencies>
+
+</project>
diff --git a/seatunnel-engine/seatunnel-engine-storage/pom.xml 
b/seatunnel-engine/seatunnel-engine-storage/pom.xml
index 80c98a506..311e1c62e 100644
--- a/seatunnel-engine/seatunnel-engine-storage/pom.xml
+++ b/seatunnel-engine/seatunnel-engine-storage/pom.xml
@@ -34,7 +34,7 @@
         <module>checkpoint-storage-api</module>
         <module>checkpoint-storage-plugins</module>
         <module>imap-storage-api</module>
-        <module>imap-storage-file</module>
+        <module>imap-storage-plugins</module>
     </modules>
-    
-</project>
\ No newline at end of file
+
+</project>

Reply via email to