From f6a3b336decb9588a25053a680a97f135e3c87b9 Mon Sep 17 00:00:00 2001
From: SerLiunx-ctrl <17689543@qq.com>
Date: Sun, 23 Mar 2025 19:16:12 +0800
Subject: [PATCH] =?UTF-8?q?change:=20=E8=B0=83=E6=95=B4=E5=B7=A5=E7=A8=8B?=
=?UTF-8?q?=E7=BB=93=E6=9E=84.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 5 +++++
state-management-core/pom.xml | 22 +++++++++++++++++++
.../core}/exception/StateException.java | 2 +-
.../core}/machine/AbstractStateMachine.java | 10 ++++-----
.../core}/machine/ConcurrentStateMachine.java | 2 +-
.../DefaultConcurrentStateMachine.java | 4 ++--
.../core}/machine/StandardStateMachine.java | 4 ++--
.../core}/machine/StateMachine.java | 7 +++---
.../core}/machine/StateMachineBuilder.java | 6 ++---
.../core}/machine/StateMachineContext.java | 11 ++++------
.../core}/machine/StateMachineType.java | 2 +-
.../core}/machine/handler/StateHandler.java | 2 +-
.../handler/StateHandlerProcessParams.java | 2 +-
.../machine/handler/StateHandlerRegistry.java | 2 +-
.../machine/handler/StateHandlerWrapper.java | 2 +-
.../core}/manager/AbstractStateManager.java | 2 +-
.../manager/BidirectionalStateManager.java | 2 +-
.../BreakageUnidirectionalStateManager.java | 4 ++--
.../core}/manager/CircleStateManager.java | 2 +-
.../DefaultBidirectionalStateManager.java | 2 +-
.../DefaultUnidirectionalStateManager.java | 2 +-
.../core}/manager/StandardStateManager.java | 2 +-
.../core}/manager/StateManager.java | 2 +-
.../manager/UnidirectionalStateManager.java | 2 +-
.../CountableRejectedExecutionHandler.java | 2 +-
...aultCountableRejectedExecutionHandler.java | 2 +-
.../core}/support/ExecutorUtils.java | 2 +-
.../core}/support/NamedThreadFactory.java | 2 +-
.../serliunx/statemanagement/MachineTest.java | 8 +++----
.../serliunx/statemanagement/ManagerTest.java | 6 ++---
.../statemanagement/support/PrinterEvent.java | 0
.../statemanagement/support/PrinterState.java | 0
32 files changed, 74 insertions(+), 51 deletions(-)
create mode 100644 state-management-core/pom.xml
rename {src/main/java/com/serliunx/statemanagement => state-management-core/src/main/java/com/serliunx/statemanagement/core}/exception/StateException.java (91%)
rename {src/main/java/com/serliunx/statemanagement => state-management-core/src/main/java/com/serliunx/statemanagement/core}/machine/AbstractStateMachine.java (96%)
rename {src/main/java/com/serliunx/statemanagement => state-management-core/src/main/java/com/serliunx/statemanagement/core}/machine/ConcurrentStateMachine.java (95%)
rename {src/main/java/com/serliunx/statemanagement => state-management-core/src/main/java/com/serliunx/statemanagement/core}/machine/DefaultConcurrentStateMachine.java (97%)
rename {src/main/java/com/serliunx/statemanagement => state-management-core/src/main/java/com/serliunx/statemanagement/core}/machine/StandardStateMachine.java (89%)
rename {src/main/java/com/serliunx/statemanagement => state-management-core/src/main/java/com/serliunx/statemanagement/core}/machine/StateMachine.java (93%)
rename {src/main/java/com/serliunx/statemanagement => state-management-core/src/main/java/com/serliunx/statemanagement/core}/machine/StateMachineBuilder.java (97%)
rename {src/main/java/com/serliunx/statemanagement => state-management-core/src/main/java/com/serliunx/statemanagement/core}/machine/StateMachineContext.java (80%)
rename {src/main/java/com/serliunx/statemanagement => state-management-core/src/main/java/com/serliunx/statemanagement/core}/machine/StateMachineType.java (84%)
rename {src/main/java/com/serliunx/statemanagement => state-management-core/src/main/java/com/serliunx/statemanagement/core}/machine/handler/StateHandler.java (85%)
rename {src/main/java/com/serliunx/statemanagement => state-management-core/src/main/java/com/serliunx/statemanagement/core}/machine/handler/StateHandlerProcessParams.java (93%)
rename {src/main/java/com/serliunx/statemanagement => state-management-core/src/main/java/com/serliunx/statemanagement/core}/machine/handler/StateHandlerRegistry.java (71%)
rename {src/main/java/com/serliunx/statemanagement => state-management-core/src/main/java/com/serliunx/statemanagement/core}/machine/handler/StateHandlerWrapper.java (94%)
rename {src/main/java/com/serliunx/statemanagement => state-management-core/src/main/java/com/serliunx/statemanagement/core}/manager/AbstractStateManager.java (98%)
rename {src/main/java/com/serliunx/statemanagement => state-management-core/src/main/java/com/serliunx/statemanagement/core}/manager/BidirectionalStateManager.java (92%)
rename {src/main/java/com/serliunx/statemanagement => state-management-core/src/main/java/com/serliunx/statemanagement/core}/manager/BreakageUnidirectionalStateManager.java (95%)
rename {src/main/java/com/serliunx/statemanagement => state-management-core/src/main/java/com/serliunx/statemanagement/core}/manager/CircleStateManager.java (89%)
rename {src/main/java/com/serliunx/statemanagement => state-management-core/src/main/java/com/serliunx/statemanagement/core}/manager/DefaultBidirectionalStateManager.java (95%)
rename {src/main/java/com/serliunx/statemanagement => state-management-core/src/main/java/com/serliunx/statemanagement/core}/manager/DefaultUnidirectionalStateManager.java (96%)
rename {src/main/java/com/serliunx/statemanagement => state-management-core/src/main/java/com/serliunx/statemanagement/core}/manager/StandardStateManager.java (90%)
rename {src/main/java/com/serliunx/statemanagement => state-management-core/src/main/java/com/serliunx/statemanagement/core}/manager/StateManager.java (93%)
rename {src/main/java/com/serliunx/statemanagement => state-management-core/src/main/java/com/serliunx/statemanagement/core}/manager/UnidirectionalStateManager.java (95%)
rename {src/main/java/com/serliunx/statemanagement => state-management-core/src/main/java/com/serliunx/statemanagement/core}/support/CountableRejectedExecutionHandler.java (91%)
rename {src/main/java/com/serliunx/statemanagement => state-management-core/src/main/java/com/serliunx/statemanagement/core}/support/DefaultCountableRejectedExecutionHandler.java (94%)
rename {src/main/java/com/serliunx/statemanagement => state-management-core/src/main/java/com/serliunx/statemanagement/core}/support/ExecutorUtils.java (94%)
rename {src/main/java/com/serliunx/statemanagement => state-management-core/src/main/java/com/serliunx/statemanagement/core}/support/NamedThreadFactory.java (92%)
rename {src => state-management-core/src}/test/java/com/serliunx/statemanagement/MachineTest.java (87%)
rename {src => state-management-core/src}/test/java/com/serliunx/statemanagement/ManagerTest.java (79%)
rename {src => state-management-core/src}/test/java/com/serliunx/statemanagement/support/PrinterEvent.java (100%)
rename {src => state-management-core/src}/test/java/com/serliunx/statemanagement/support/PrinterState.java (100%)
diff --git a/pom.xml b/pom.xml
index f83cd8a..af0f0b3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -7,6 +7,11 @@
com.serliunx
state-management
1.0.0-alpha
+ pom
+
+
+ state-management-core
+
8
diff --git a/state-management-core/pom.xml b/state-management-core/pom.xml
new file mode 100644
index 0000000..9c7e575
--- /dev/null
+++ b/state-management-core/pom.xml
@@ -0,0 +1,22 @@
+
+
+ 4.0.0
+
+
+ com.serliunx
+ state-management
+ 1.0.0-alpha
+
+
+ jar
+ state-management-core
+
+
+ 8
+ 8
+ UTF-8
+
+
+
\ No newline at end of file
diff --git a/src/main/java/com/serliunx/statemanagement/exception/StateException.java b/state-management-core/src/main/java/com/serliunx/statemanagement/core/exception/StateException.java
similarity index 91%
rename from src/main/java/com/serliunx/statemanagement/exception/StateException.java
rename to state-management-core/src/main/java/com/serliunx/statemanagement/core/exception/StateException.java
index f5db758..f591989 100644
--- a/src/main/java/com/serliunx/statemanagement/exception/StateException.java
+++ b/state-management-core/src/main/java/com/serliunx/statemanagement/core/exception/StateException.java
@@ -1,4 +1,4 @@
-package com.serliunx.statemanagement.exception;
+package com.serliunx.statemanagement.core.exception;
/**
* @author SerLiunx
diff --git a/src/main/java/com/serliunx/statemanagement/machine/AbstractStateMachine.java b/state-management-core/src/main/java/com/serliunx/statemanagement/core/machine/AbstractStateMachine.java
similarity index 96%
rename from src/main/java/com/serliunx/statemanagement/machine/AbstractStateMachine.java
rename to state-management-core/src/main/java/com/serliunx/statemanagement/core/machine/AbstractStateMachine.java
index 2df3eec..d2e6dd9 100644
--- a/src/main/java/com/serliunx/statemanagement/machine/AbstractStateMachine.java
+++ b/state-management-core/src/main/java/com/serliunx/statemanagement/core/machine/AbstractStateMachine.java
@@ -1,9 +1,9 @@
-package com.serliunx.statemanagement.machine;
+package com.serliunx.statemanagement.core.machine;
-import com.serliunx.statemanagement.machine.handler.StateHandler;
-import com.serliunx.statemanagement.machine.handler.StateHandlerProcessParams;
-import com.serliunx.statemanagement.machine.handler.StateHandlerWrapper;
-import com.serliunx.statemanagement.manager.AbstractStateManager;
+import com.serliunx.statemanagement.core.machine.handler.StateHandler;
+import com.serliunx.statemanagement.core.machine.handler.StateHandlerProcessParams;
+import com.serliunx.statemanagement.core.machine.handler.StateHandlerWrapper;
+import com.serliunx.statemanagement.core.manager.AbstractStateManager;
import java.util.List;
import java.util.Map;
diff --git a/src/main/java/com/serliunx/statemanagement/machine/ConcurrentStateMachine.java b/state-management-core/src/main/java/com/serliunx/statemanagement/core/machine/ConcurrentStateMachine.java
similarity index 95%
rename from src/main/java/com/serliunx/statemanagement/machine/ConcurrentStateMachine.java
rename to state-management-core/src/main/java/com/serliunx/statemanagement/core/machine/ConcurrentStateMachine.java
index cc3cfa8..f1d1ee3 100644
--- a/src/main/java/com/serliunx/statemanagement/machine/ConcurrentStateMachine.java
+++ b/state-management-core/src/main/java/com/serliunx/statemanagement/core/machine/ConcurrentStateMachine.java
@@ -1,4 +1,4 @@
-package com.serliunx.statemanagement.machine;
+package com.serliunx.statemanagement.core.machine;
/**
* 基本行为与{@link StateMachine} 一致, 最大不同是切换状态不再使用直接的锁机制, 具体由实现类决定
diff --git a/src/main/java/com/serliunx/statemanagement/machine/DefaultConcurrentStateMachine.java b/state-management-core/src/main/java/com/serliunx/statemanagement/core/machine/DefaultConcurrentStateMachine.java
similarity index 97%
rename from src/main/java/com/serliunx/statemanagement/machine/DefaultConcurrentStateMachine.java
rename to state-management-core/src/main/java/com/serliunx/statemanagement/core/machine/DefaultConcurrentStateMachine.java
index 4e80863..6e6da4d 100644
--- a/src/main/java/com/serliunx/statemanagement/machine/DefaultConcurrentStateMachine.java
+++ b/state-management-core/src/main/java/com/serliunx/statemanagement/core/machine/DefaultConcurrentStateMachine.java
@@ -1,6 +1,6 @@
-package com.serliunx.statemanagement.machine;
+package com.serliunx.statemanagement.core.machine;
-import com.serliunx.statemanagement.machine.handler.StateHandlerWrapper;
+import com.serliunx.statemanagement.core.machine.handler.StateHandlerWrapper;
import java.util.List;
import java.util.Map;
diff --git a/src/main/java/com/serliunx/statemanagement/machine/StandardStateMachine.java b/state-management-core/src/main/java/com/serliunx/statemanagement/core/machine/StandardStateMachine.java
similarity index 89%
rename from src/main/java/com/serliunx/statemanagement/machine/StandardStateMachine.java
rename to state-management-core/src/main/java/com/serliunx/statemanagement/core/machine/StandardStateMachine.java
index 143a201..cf62f6d 100644
--- a/src/main/java/com/serliunx/statemanagement/machine/StandardStateMachine.java
+++ b/state-management-core/src/main/java/com/serliunx/statemanagement/core/machine/StandardStateMachine.java
@@ -1,6 +1,6 @@
-package com.serliunx.statemanagement.machine;
+package com.serliunx.statemanagement.core.machine;
-import com.serliunx.statemanagement.machine.handler.StateHandlerWrapper;
+import com.serliunx.statemanagement.core.machine.handler.StateHandlerWrapper;
import java.util.List;
import java.util.Map;
diff --git a/src/main/java/com/serliunx/statemanagement/machine/StateMachine.java b/state-management-core/src/main/java/com/serliunx/statemanagement/core/machine/StateMachine.java
similarity index 93%
rename from src/main/java/com/serliunx/statemanagement/machine/StateMachine.java
rename to state-management-core/src/main/java/com/serliunx/statemanagement/core/machine/StateMachine.java
index 84a8c6a..8658927 100644
--- a/src/main/java/com/serliunx/statemanagement/machine/StateMachine.java
+++ b/state-management-core/src/main/java/com/serliunx/statemanagement/core/machine/StateMachine.java
@@ -1,6 +1,7 @@
-package com.serliunx.statemanagement.machine;
+package com.serliunx.statemanagement.core.machine;
-import com.serliunx.statemanagement.manager.BidirectionalStateManager;
+import com.serliunx.statemanagement.core.manager.StateManager;
+import com.serliunx.statemanagement.core.manager.BidirectionalStateManager;
/**
* 状态机定义
@@ -18,7 +19,7 @@ import com.serliunx.statemanagement.manager.BidirectionalStateManager;
* @since 2024/12/28
* @see StateMachineBuilder
* @see BidirectionalStateManager
- * @see com.serliunx.statemanagement.manager.StateManager
+ * @see StateManager
*/
public interface StateMachine extends BidirectionalStateManager, AutoCloseable {
diff --git a/src/main/java/com/serliunx/statemanagement/machine/StateMachineBuilder.java b/state-management-core/src/main/java/com/serliunx/statemanagement/core/machine/StateMachineBuilder.java
similarity index 97%
rename from src/main/java/com/serliunx/statemanagement/machine/StateMachineBuilder.java
rename to state-management-core/src/main/java/com/serliunx/statemanagement/core/machine/StateMachineBuilder.java
index 087a4cf..e138147 100644
--- a/src/main/java/com/serliunx/statemanagement/machine/StateMachineBuilder.java
+++ b/state-management-core/src/main/java/com/serliunx/statemanagement/core/machine/StateMachineBuilder.java
@@ -1,7 +1,7 @@
-package com.serliunx.statemanagement.machine;
+package com.serliunx.statemanagement.core.machine;
-import com.serliunx.statemanagement.machine.handler.StateHandler;
-import com.serliunx.statemanagement.machine.handler.StateHandlerWrapper;
+import com.serliunx.statemanagement.core.machine.handler.StateHandler;
+import com.serliunx.statemanagement.core.machine.handler.StateHandlerWrapper;
import java.util.*;
import java.util.concurrent.Executor;
diff --git a/src/main/java/com/serliunx/statemanagement/machine/StateMachineContext.java b/state-management-core/src/main/java/com/serliunx/statemanagement/core/machine/StateMachineContext.java
similarity index 80%
rename from src/main/java/com/serliunx/statemanagement/machine/StateMachineContext.java
rename to state-management-core/src/main/java/com/serliunx/statemanagement/core/machine/StateMachineContext.java
index 6487bd2..3501b12 100644
--- a/src/main/java/com/serliunx/statemanagement/machine/StateMachineContext.java
+++ b/state-management-core/src/main/java/com/serliunx/statemanagement/core/machine/StateMachineContext.java
@@ -1,15 +1,12 @@
-package com.serliunx.statemanagement.machine;
+package com.serliunx.statemanagement.core.machine;
-import com.serliunx.statemanagement.machine.handler.StateHandlerWrapper;
-import com.serliunx.statemanagement.support.DefaultCountableRejectedExecutionHandler;
-import com.serliunx.statemanagement.support.ExecutorUtils;
+import com.serliunx.statemanagement.core.support.DefaultCountableRejectedExecutionHandler;
+import com.serliunx.statemanagement.core.machine.handler.StateHandlerWrapper;
+import com.serliunx.statemanagement.core.support.ExecutorUtils;
import java.util.List;
import java.util.Map;
import java.util.concurrent.Executor;
-import java.util.concurrent.RejectedExecutionHandler;
-import java.util.concurrent.ThreadPoolExecutor;
-import java.util.concurrent.atomic.AtomicInteger;
import java.util.function.Consumer;
/**
diff --git a/src/main/java/com/serliunx/statemanagement/machine/StateMachineType.java b/state-management-core/src/main/java/com/serliunx/statemanagement/core/machine/StateMachineType.java
similarity index 84%
rename from src/main/java/com/serliunx/statemanagement/machine/StateMachineType.java
rename to state-management-core/src/main/java/com/serliunx/statemanagement/core/machine/StateMachineType.java
index ac9ea0b..e00659b 100644
--- a/src/main/java/com/serliunx/statemanagement/machine/StateMachineType.java
+++ b/state-management-core/src/main/java/com/serliunx/statemanagement/core/machine/StateMachineType.java
@@ -1,4 +1,4 @@
-package com.serliunx.statemanagement.machine;
+package com.serliunx.statemanagement.core.machine;
/**
* 状态机类型
diff --git a/src/main/java/com/serliunx/statemanagement/machine/handler/StateHandler.java b/state-management-core/src/main/java/com/serliunx/statemanagement/core/machine/handler/StateHandler.java
similarity index 85%
rename from src/main/java/com/serliunx/statemanagement/machine/handler/StateHandler.java
rename to state-management-core/src/main/java/com/serliunx/statemanagement/core/machine/handler/StateHandler.java
index b5a3278..1ef6c35 100644
--- a/src/main/java/com/serliunx/statemanagement/machine/handler/StateHandler.java
+++ b/state-management-core/src/main/java/com/serliunx/statemanagement/core/machine/handler/StateHandler.java
@@ -1,4 +1,4 @@
-package com.serliunx.statemanagement.machine.handler;
+package com.serliunx.statemanagement.core.machine.handler;
/**
* 状态处理器
diff --git a/src/main/java/com/serliunx/statemanagement/machine/handler/StateHandlerProcessParams.java b/state-management-core/src/main/java/com/serliunx/statemanagement/core/machine/handler/StateHandlerProcessParams.java
similarity index 93%
rename from src/main/java/com/serliunx/statemanagement/machine/handler/StateHandlerProcessParams.java
rename to state-management-core/src/main/java/com/serliunx/statemanagement/core/machine/handler/StateHandlerProcessParams.java
index 9f1c2bb..9c43ab6 100644
--- a/src/main/java/com/serliunx/statemanagement/machine/handler/StateHandlerProcessParams.java
+++ b/state-management-core/src/main/java/com/serliunx/statemanagement/core/machine/handler/StateHandlerProcessParams.java
@@ -1,4 +1,4 @@
-package com.serliunx.statemanagement.machine.handler;
+package com.serliunx.statemanagement.core.machine.handler;
/**
* 状态处理器入参
diff --git a/src/main/java/com/serliunx/statemanagement/machine/handler/StateHandlerRegistry.java b/state-management-core/src/main/java/com/serliunx/statemanagement/core/machine/handler/StateHandlerRegistry.java
similarity index 71%
rename from src/main/java/com/serliunx/statemanagement/machine/handler/StateHandlerRegistry.java
rename to state-management-core/src/main/java/com/serliunx/statemanagement/core/machine/handler/StateHandlerRegistry.java
index 6485f07..c18826f 100644
--- a/src/main/java/com/serliunx/statemanagement/machine/handler/StateHandlerRegistry.java
+++ b/state-management-core/src/main/java/com/serliunx/statemanagement/core/machine/handler/StateHandlerRegistry.java
@@ -1,4 +1,4 @@
-package com.serliunx.statemanagement.machine.handler;
+package com.serliunx.statemanagement.core.machine.handler;
/**
* @author SerLiunx
diff --git a/src/main/java/com/serliunx/statemanagement/machine/handler/StateHandlerWrapper.java b/state-management-core/src/main/java/com/serliunx/statemanagement/core/machine/handler/StateHandlerWrapper.java
similarity index 94%
rename from src/main/java/com/serliunx/statemanagement/machine/handler/StateHandlerWrapper.java
rename to state-management-core/src/main/java/com/serliunx/statemanagement/core/machine/handler/StateHandlerWrapper.java
index 58c26f1..a84d85f 100644
--- a/src/main/java/com/serliunx/statemanagement/machine/handler/StateHandlerWrapper.java
+++ b/state-management-core/src/main/java/com/serliunx/statemanagement/core/machine/handler/StateHandlerWrapper.java
@@ -1,4 +1,4 @@
-package com.serliunx.statemanagement.machine.handler;
+package com.serliunx.statemanagement.core.machine.handler;
import java.util.concurrent.Executor;
diff --git a/src/main/java/com/serliunx/statemanagement/manager/AbstractStateManager.java b/state-management-core/src/main/java/com/serliunx/statemanagement/core/manager/AbstractStateManager.java
similarity index 98%
rename from src/main/java/com/serliunx/statemanagement/manager/AbstractStateManager.java
rename to state-management-core/src/main/java/com/serliunx/statemanagement/core/manager/AbstractStateManager.java
index b96615c..c5cc924 100644
--- a/src/main/java/com/serliunx/statemanagement/manager/AbstractStateManager.java
+++ b/state-management-core/src/main/java/com/serliunx/statemanagement/core/manager/AbstractStateManager.java
@@ -1,4 +1,4 @@
-package com.serliunx.statemanagement.manager;
+package com.serliunx.statemanagement.core.manager;
import java.util.Arrays;
import java.util.List;
diff --git a/src/main/java/com/serliunx/statemanagement/manager/BidirectionalStateManager.java b/state-management-core/src/main/java/com/serliunx/statemanagement/core/manager/BidirectionalStateManager.java
similarity index 92%
rename from src/main/java/com/serliunx/statemanagement/manager/BidirectionalStateManager.java
rename to state-management-core/src/main/java/com/serliunx/statemanagement/core/manager/BidirectionalStateManager.java
index c5e0b67..d5d1024 100644
--- a/src/main/java/com/serliunx/statemanagement/manager/BidirectionalStateManager.java
+++ b/state-management-core/src/main/java/com/serliunx/statemanagement/core/manager/BidirectionalStateManager.java
@@ -1,4 +1,4 @@
-package com.serliunx.statemanagement.manager;
+package com.serliunx.statemanagement.core.manager;
/**
* 双向流转的状态管理器
diff --git a/src/main/java/com/serliunx/statemanagement/manager/BreakageUnidirectionalStateManager.java b/state-management-core/src/main/java/com/serliunx/statemanagement/core/manager/BreakageUnidirectionalStateManager.java
similarity index 95%
rename from src/main/java/com/serliunx/statemanagement/manager/BreakageUnidirectionalStateManager.java
rename to state-management-core/src/main/java/com/serliunx/statemanagement/core/manager/BreakageUnidirectionalStateManager.java
index 0073e98..31d710d 100644
--- a/src/main/java/com/serliunx/statemanagement/manager/BreakageUnidirectionalStateManager.java
+++ b/state-management-core/src/main/java/com/serliunx/statemanagement/core/manager/BreakageUnidirectionalStateManager.java
@@ -1,6 +1,6 @@
-package com.serliunx.statemanagement.manager;
+package com.serliunx.statemanagement.core.manager;
-import com.serliunx.statemanagement.exception.StateException;
+import com.serliunx.statemanagement.core.exception.StateException;
import java.util.List;
diff --git a/src/main/java/com/serliunx/statemanagement/manager/CircleStateManager.java b/state-management-core/src/main/java/com/serliunx/statemanagement/core/manager/CircleStateManager.java
similarity index 89%
rename from src/main/java/com/serliunx/statemanagement/manager/CircleStateManager.java
rename to state-management-core/src/main/java/com/serliunx/statemanagement/core/manager/CircleStateManager.java
index c6e86f1..9a0e644 100644
--- a/src/main/java/com/serliunx/statemanagement/manager/CircleStateManager.java
+++ b/state-management-core/src/main/java/com/serliunx/statemanagement/core/manager/CircleStateManager.java
@@ -1,4 +1,4 @@
-package com.serliunx.statemanagement.manager;
+package com.serliunx.statemanagement.core.manager;
/**
* 将指定状态管理器标记为循环的状态管理器
diff --git a/src/main/java/com/serliunx/statemanagement/manager/DefaultBidirectionalStateManager.java b/state-management-core/src/main/java/com/serliunx/statemanagement/core/manager/DefaultBidirectionalStateManager.java
similarity index 95%
rename from src/main/java/com/serliunx/statemanagement/manager/DefaultBidirectionalStateManager.java
rename to state-management-core/src/main/java/com/serliunx/statemanagement/core/manager/DefaultBidirectionalStateManager.java
index b288725..bea622a 100644
--- a/src/main/java/com/serliunx/statemanagement/manager/DefaultBidirectionalStateManager.java
+++ b/state-management-core/src/main/java/com/serliunx/statemanagement/core/manager/DefaultBidirectionalStateManager.java
@@ -1,4 +1,4 @@
-package com.serliunx.statemanagement.manager;
+package com.serliunx.statemanagement.core.manager;
import java.util.List;
diff --git a/src/main/java/com/serliunx/statemanagement/manager/DefaultUnidirectionalStateManager.java b/state-management-core/src/main/java/com/serliunx/statemanagement/core/manager/DefaultUnidirectionalStateManager.java
similarity index 96%
rename from src/main/java/com/serliunx/statemanagement/manager/DefaultUnidirectionalStateManager.java
rename to state-management-core/src/main/java/com/serliunx/statemanagement/core/manager/DefaultUnidirectionalStateManager.java
index 1e13604..3bb1a5a 100644
--- a/src/main/java/com/serliunx/statemanagement/manager/DefaultUnidirectionalStateManager.java
+++ b/state-management-core/src/main/java/com/serliunx/statemanagement/core/manager/DefaultUnidirectionalStateManager.java
@@ -1,4 +1,4 @@
-package com.serliunx.statemanagement.manager;
+package com.serliunx.statemanagement.core.manager;
import java.util.List;
diff --git a/src/main/java/com/serliunx/statemanagement/manager/StandardStateManager.java b/state-management-core/src/main/java/com/serliunx/statemanagement/core/manager/StandardStateManager.java
similarity index 90%
rename from src/main/java/com/serliunx/statemanagement/manager/StandardStateManager.java
rename to state-management-core/src/main/java/com/serliunx/statemanagement/core/manager/StandardStateManager.java
index 0e1c2b1..e6644f2 100644
--- a/src/main/java/com/serliunx/statemanagement/manager/StandardStateManager.java
+++ b/state-management-core/src/main/java/com/serliunx/statemanagement/core/manager/StandardStateManager.java
@@ -1,4 +1,4 @@
-package com.serliunx.statemanagement.manager;
+package com.serliunx.statemanagement.core.manager;
import java.util.List;
diff --git a/src/main/java/com/serliunx/statemanagement/manager/StateManager.java b/state-management-core/src/main/java/com/serliunx/statemanagement/core/manager/StateManager.java
similarity index 93%
rename from src/main/java/com/serliunx/statemanagement/manager/StateManager.java
rename to state-management-core/src/main/java/com/serliunx/statemanagement/core/manager/StateManager.java
index dcada0b..ecf1328 100644
--- a/src/main/java/com/serliunx/statemanagement/manager/StateManager.java
+++ b/state-management-core/src/main/java/com/serliunx/statemanagement/core/manager/StateManager.java
@@ -1,4 +1,4 @@
-package com.serliunx.statemanagement.manager;
+package com.serliunx.statemanagement.core.manager;
/**
* 状态管理器
diff --git a/src/main/java/com/serliunx/statemanagement/manager/UnidirectionalStateManager.java b/state-management-core/src/main/java/com/serliunx/statemanagement/core/manager/UnidirectionalStateManager.java
similarity index 95%
rename from src/main/java/com/serliunx/statemanagement/manager/UnidirectionalStateManager.java
rename to state-management-core/src/main/java/com/serliunx/statemanagement/core/manager/UnidirectionalStateManager.java
index d2d9f62..df57740 100644
--- a/src/main/java/com/serliunx/statemanagement/manager/UnidirectionalStateManager.java
+++ b/state-management-core/src/main/java/com/serliunx/statemanagement/core/manager/UnidirectionalStateManager.java
@@ -1,4 +1,4 @@
-package com.serliunx.statemanagement.manager;
+package com.serliunx.statemanagement.core.manager;
/**
* 单向流转的状态管理器
diff --git a/src/main/java/com/serliunx/statemanagement/support/CountableRejectedExecutionHandler.java b/state-management-core/src/main/java/com/serliunx/statemanagement/core/support/CountableRejectedExecutionHandler.java
similarity index 91%
rename from src/main/java/com/serliunx/statemanagement/support/CountableRejectedExecutionHandler.java
rename to state-management-core/src/main/java/com/serliunx/statemanagement/core/support/CountableRejectedExecutionHandler.java
index 0854a60..a6d2aa0 100644
--- a/src/main/java/com/serliunx/statemanagement/support/CountableRejectedExecutionHandler.java
+++ b/state-management-core/src/main/java/com/serliunx/statemanagement/core/support/CountableRejectedExecutionHandler.java
@@ -1,4 +1,4 @@
-package com.serliunx.statemanagement.support;
+package com.serliunx.statemanagement.core.support;
import java.util.concurrent.RejectedExecutionHandler;
diff --git a/src/main/java/com/serliunx/statemanagement/support/DefaultCountableRejectedExecutionHandler.java b/state-management-core/src/main/java/com/serliunx/statemanagement/core/support/DefaultCountableRejectedExecutionHandler.java
similarity index 94%
rename from src/main/java/com/serliunx/statemanagement/support/DefaultCountableRejectedExecutionHandler.java
rename to state-management-core/src/main/java/com/serliunx/statemanagement/core/support/DefaultCountableRejectedExecutionHandler.java
index f23748d..2cfb7ee 100644
--- a/src/main/java/com/serliunx/statemanagement/support/DefaultCountableRejectedExecutionHandler.java
+++ b/state-management-core/src/main/java/com/serliunx/statemanagement/core/support/DefaultCountableRejectedExecutionHandler.java
@@ -1,4 +1,4 @@
-package com.serliunx.statemanagement.support;
+package com.serliunx.statemanagement.core.support;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.atomic.AtomicLong;
diff --git a/src/main/java/com/serliunx/statemanagement/support/ExecutorUtils.java b/state-management-core/src/main/java/com/serliunx/statemanagement/core/support/ExecutorUtils.java
similarity index 94%
rename from src/main/java/com/serliunx/statemanagement/support/ExecutorUtils.java
rename to state-management-core/src/main/java/com/serliunx/statemanagement/core/support/ExecutorUtils.java
index e3ff2df..3f9f986 100644
--- a/src/main/java/com/serliunx/statemanagement/support/ExecutorUtils.java
+++ b/state-management-core/src/main/java/com/serliunx/statemanagement/core/support/ExecutorUtils.java
@@ -1,4 +1,4 @@
-package com.serliunx.statemanagement.support;
+package com.serliunx.statemanagement.core.support;
import java.util.concurrent.*;
diff --git a/src/main/java/com/serliunx/statemanagement/support/NamedThreadFactory.java b/state-management-core/src/main/java/com/serliunx/statemanagement/core/support/NamedThreadFactory.java
similarity index 92%
rename from src/main/java/com/serliunx/statemanagement/support/NamedThreadFactory.java
rename to state-management-core/src/main/java/com/serliunx/statemanagement/core/support/NamedThreadFactory.java
index 7b12e7d..27c5ed9 100644
--- a/src/main/java/com/serliunx/statemanagement/support/NamedThreadFactory.java
+++ b/state-management-core/src/main/java/com/serliunx/statemanagement/core/support/NamedThreadFactory.java
@@ -1,4 +1,4 @@
-package com.serliunx.statemanagement.support;
+package com.serliunx.statemanagement.core.support;
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.atomic.AtomicInteger;
diff --git a/src/test/java/com/serliunx/statemanagement/MachineTest.java b/state-management-core/src/test/java/com/serliunx/statemanagement/MachineTest.java
similarity index 87%
rename from src/test/java/com/serliunx/statemanagement/MachineTest.java
rename to state-management-core/src/test/java/com/serliunx/statemanagement/MachineTest.java
index 4b40116..6dbb254 100644
--- a/src/test/java/com/serliunx/statemanagement/MachineTest.java
+++ b/state-management-core/src/test/java/com/serliunx/statemanagement/MachineTest.java
@@ -1,14 +1,12 @@
package com.serliunx.statemanagement;
-import com.serliunx.statemanagement.machine.ConcurrentStateMachine;
-import com.serliunx.statemanagement.machine.StateMachine;
-import com.serliunx.statemanagement.machine.StateMachineBuilder;
+import com.serliunx.statemanagement.core.machine.ConcurrentStateMachine;
+import com.serliunx.statemanagement.core.machine.StateMachine;
+import com.serliunx.statemanagement.core.machine.StateMachineBuilder;
import com.serliunx.statemanagement.support.PrinterEvent;
import com.serliunx.statemanagement.support.PrinterState;
import org.junit.Test;
-import java.util.concurrent.Executors;
-
/**
* 状态机测试
*
diff --git a/src/test/java/com/serliunx/statemanagement/ManagerTest.java b/state-management-core/src/test/java/com/serliunx/statemanagement/ManagerTest.java
similarity index 79%
rename from src/test/java/com/serliunx/statemanagement/ManagerTest.java
rename to state-management-core/src/test/java/com/serliunx/statemanagement/ManagerTest.java
index 954d73c..784e27b 100644
--- a/src/test/java/com/serliunx/statemanagement/ManagerTest.java
+++ b/state-management-core/src/test/java/com/serliunx/statemanagement/ManagerTest.java
@@ -1,8 +1,8 @@
package com.serliunx.statemanagement;
-import com.serliunx.statemanagement.manager.BreakageUnidirectionalStateManager;
-import com.serliunx.statemanagement.manager.DefaultUnidirectionalStateManager;
-import com.serliunx.statemanagement.manager.UnidirectionalStateManager;
+import com.serliunx.statemanagement.core.manager.BreakageUnidirectionalStateManager;
+import com.serliunx.statemanagement.core.manager.DefaultUnidirectionalStateManager;
+import com.serliunx.statemanagement.core.manager.UnidirectionalStateManager;
import com.serliunx.statemanagement.support.PrinterState;
import org.junit.Test;
diff --git a/src/test/java/com/serliunx/statemanagement/support/PrinterEvent.java b/state-management-core/src/test/java/com/serliunx/statemanagement/support/PrinterEvent.java
similarity index 100%
rename from src/test/java/com/serliunx/statemanagement/support/PrinterEvent.java
rename to state-management-core/src/test/java/com/serliunx/statemanagement/support/PrinterEvent.java
diff --git a/src/test/java/com/serliunx/statemanagement/support/PrinterState.java b/state-management-core/src/test/java/com/serliunx/statemanagement/support/PrinterState.java
similarity index 100%
rename from src/test/java/com/serliunx/statemanagement/support/PrinterState.java
rename to state-management-core/src/test/java/com/serliunx/statemanagement/support/PrinterState.java