Browse Source

增加liteflow-springboot-starter

bryan.zhang 6 years ago
parent
commit
6c3eaedbec
65 changed files with 342 additions and 193 deletions
  1. 88 0
      liteflow-core/pom.xml
  2. 0 0
      liteflow-core/src/main/java/com/thebeastshop/liteflow/core/FlowExecutor.java
  3. 0 0
      liteflow-core/src/main/java/com/thebeastshop/liteflow/core/NodeComponent.java
  4. 0 0
      liteflow-core/src/main/java/com/thebeastshop/liteflow/core/NodeCondComponent.java
  5. 0 0
      liteflow-core/src/main/java/com/thebeastshop/liteflow/entity/config/Chain.java
  6. 0 0
      liteflow-core/src/main/java/com/thebeastshop/liteflow/entity/config/Condition.java
  7. 0 0
      liteflow-core/src/main/java/com/thebeastshop/liteflow/entity/config/Node.java
  8. 0 0
      liteflow-core/src/main/java/com/thebeastshop/liteflow/entity/config/ThenCondition.java
  9. 0 0
      liteflow-core/src/main/java/com/thebeastshop/liteflow/entity/config/WhenCondition.java
  10. 0 0
      liteflow-core/src/main/java/com/thebeastshop/liteflow/entity/data/AbsSlot.java
  11. 0 0
      liteflow-core/src/main/java/com/thebeastshop/liteflow/entity/data/CmpStep.java
  12. 0 0
      liteflow-core/src/main/java/com/thebeastshop/liteflow/entity/data/CmpStepType.java
  13. 0 0
      liteflow-core/src/main/java/com/thebeastshop/liteflow/entity/data/DataBus.java
  14. 0 0
      liteflow-core/src/main/java/com/thebeastshop/liteflow/entity/data/DefaultSlot.java
  15. 0 0
      liteflow-core/src/main/java/com/thebeastshop/liteflow/entity/data/Slot.java
  16. 0 0
      liteflow-core/src/main/java/com/thebeastshop/liteflow/entity/monitor/CompStatistics.java
  17. 0 0
      liteflow-core/src/main/java/com/thebeastshop/liteflow/exception/ChainNotFoundException.java
  18. 0 0
      liteflow-core/src/main/java/com/thebeastshop/liteflow/exception/ComponentNotAccessException.java
  19. 0 0
      liteflow-core/src/main/java/com/thebeastshop/liteflow/exception/FlowExecutorNotInitException.java
  20. 0 0
      liteflow-core/src/main/java/com/thebeastshop/liteflow/exception/FlowSystemException.java
  21. 0 0
      liteflow-core/src/main/java/com/thebeastshop/liteflow/exception/NoAvailableSlotException.java
  22. 0 0
      liteflow-core/src/main/java/com/thebeastshop/liteflow/exception/ParseException.java
  23. 0 0
      liteflow-core/src/main/java/com/thebeastshop/liteflow/flow/FlowBus.java
  24. 0 0
      liteflow-core/src/main/java/com/thebeastshop/liteflow/monitor/MonitorBus.java
  25. 0 0
      liteflow-core/src/main/java/com/thebeastshop/liteflow/parser/ClassXmlFlowParser.java
  26. 0 0
      liteflow-core/src/main/java/com/thebeastshop/liteflow/parser/LocalXmlFlowParser.java
  27. 0 0
      liteflow-core/src/main/java/com/thebeastshop/liteflow/parser/RegexEntity.java
  28. 0 0
      liteflow-core/src/main/java/com/thebeastshop/liteflow/parser/XmlFlowParser.java
  29. 0 0
      liteflow-core/src/main/java/com/thebeastshop/liteflow/parser/ZookeeperXmlFlowParser.java
  30. 0 0
      liteflow-core/src/main/java/com/thebeastshop/liteflow/spring/ComponentScaner.java
  31. 0 0
      liteflow-core/src/main/java/com/thebeastshop/liteflow/util/Dom4JReader.java
  32. 0 0
      liteflow-core/src/main/java/com/thebeastshop/liteflow/util/IOUtil.java
  33. 0 0
      liteflow-core/src/main/java/com/thebeastshop/liteflow/util/LOGOPrinter.java
  34. 0 0
      liteflow-core/src/main/java/com/thebeastshop/liteflow/util/LimitQueue.java
  35. 0 0
      liteflow-core/src/test/java/com/thebeastshop/liteflow/test/TestMain.java
  36. 0 0
      liteflow-core/src/test/java/com/thebeastshop/liteflow/test/TestWithSpringMain.java
  37. 0 0
      liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/AComponent.java
  38. 0 0
      liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/BComponent.java
  39. 0 0
      liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/CComponent.java
  40. 0 0
      liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/CondComponent.java
  41. 0 0
      liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/DComponent.java
  42. 0 0
      liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/EComponent.java
  43. 0 0
      liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/FComponent.java
  44. 0 0
      liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/GComponent.java
  45. 0 0
      liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/HComponent.java
  46. 0 0
      liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/M1Component.java
  47. 0 0
      liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/M2Component.java
  48. 0 0
      liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/M3Component.java
  49. 0 0
      liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/MComponent.java
  50. 0 0
      liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/P1Component.java
  51. 0 0
      liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/P2Component.java
  52. 0 0
      liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/PComponent.java
  53. 0 0
      liteflow-core/src/test/resources/config/flow.xml
  54. 0 0
      liteflow-core/src/test/resources/log4j.xml
  55. 0 0
      liteflow-core/src/test/resources/spring-test.xml
  56. 32 0
      liteflow-spring-boot-starter/pom.xml
  57. 40 0
      liteflow-spring-boot-starter/src/main/java/com/thebeastshop/liteflow/springboot/LiteflowAutoConfiguration.java
  58. 19 0
      liteflow-spring-boot-starter/src/main/java/com/thebeastshop/liteflow/springboot/LiteflowProperty.java
  59. 3 0
      liteflow-spring-boot-starter/src/main/resources/META-INF/spring.factories
  60. 1 1
      liteflow-test/pom.xml
  61. 1 1
      liteflow-test/src/main/resources/application.properties
  62. 0 150
      liteflow/pom.xml
  63. 0 39
      liteflow/src/main/java/com/thebeastshop/liteflow/spring/FlowContextInitializer.java
  64. 0 2
      liteflow/src/main/resources/META-INF/spring.factories
  65. 158 0
      pom.xml

+ 88 - 0
liteflow-core/pom.xml

@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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">
+	<groupId>com.thebeastshop</groupId>
+    <artifactId>liteflow-core</artifactId>
+    <packaging>jar</packaging>
+    <modelVersion>4.0.0</modelVersion>
+    <version>2.1.0</version>
+
+    <parent>
+		<groupId>com.thebeastshop</groupId>
+		<artifactId>liteflow</artifactId>
+		<version>2.1.0</version>
+	</parent>
+
+	<dependencies>
+		<dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-lang3</artifactId>
+        </dependency>
+        <dependency>
+			<groupId>org.apache.commons</groupId>
+			<artifactId>commons-collections4</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>commons-io</groupId>
+			<artifactId>commons-io</artifactId>
+		</dependency>
+        <dependency>
+			<groupId>org.springframework</groupId>
+			<artifactId>spring-beans</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.springframework</groupId>
+			<artifactId>spring-context</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.springframework</groupId>
+			<artifactId>spring-aop</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.springframework</groupId>
+			<artifactId>spring-expression</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.springframework</groupId>
+			<artifactId>spring-test</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.slf4j</groupId>
+			<artifactId>slf4j-api</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>com.alibaba</groupId>
+			<artifactId>fastjson</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>dom4j</groupId>
+			<artifactId>dom4j</artifactId>
+		</dependency>
+		<dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+        </dependency>
+        <dependency>
+        	<groupId>commons-logging</groupId>
+        	<artifactId>commons-logging</artifactId>
+        </dependency>
+		<dependency>
+			<groupId>org.apache.curator</groupId>
+			<artifactId>curator-framework</artifactId>
+			<exclusions>
+				<exclusion>
+					<artifactId>log4j</artifactId>
+					<groupId>log4j</groupId>
+				</exclusion>
+				<exclusion>
+					<artifactId>slf4j-api</artifactId>
+					<groupId>org.slf4j</groupId>
+				</exclusion>
+			</exclusions>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.curator</groupId>
+			<artifactId>curator-recipes</artifactId>
+		</dependency>
+	</dependencies>
+</project>

+ 0 - 0
liteflow/src/main/java/com/thebeastshop/liteflow/core/FlowExecutor.java → liteflow-core/src/main/java/com/thebeastshop/liteflow/core/FlowExecutor.java


+ 0 - 0
liteflow/src/main/java/com/thebeastshop/liteflow/core/NodeComponent.java → liteflow-core/src/main/java/com/thebeastshop/liteflow/core/NodeComponent.java


+ 0 - 0
liteflow/src/main/java/com/thebeastshop/liteflow/core/NodeCondComponent.java → liteflow-core/src/main/java/com/thebeastshop/liteflow/core/NodeCondComponent.java


+ 0 - 0
liteflow/src/main/java/com/thebeastshop/liteflow/entity/config/Chain.java → liteflow-core/src/main/java/com/thebeastshop/liteflow/entity/config/Chain.java


+ 0 - 0
liteflow/src/main/java/com/thebeastshop/liteflow/entity/config/Condition.java → liteflow-core/src/main/java/com/thebeastshop/liteflow/entity/config/Condition.java


+ 0 - 0
liteflow/src/main/java/com/thebeastshop/liteflow/entity/config/Node.java → liteflow-core/src/main/java/com/thebeastshop/liteflow/entity/config/Node.java


+ 0 - 0
liteflow/src/main/java/com/thebeastshop/liteflow/entity/config/ThenCondition.java → liteflow-core/src/main/java/com/thebeastshop/liteflow/entity/config/ThenCondition.java


+ 0 - 0
liteflow/src/main/java/com/thebeastshop/liteflow/entity/config/WhenCondition.java → liteflow-core/src/main/java/com/thebeastshop/liteflow/entity/config/WhenCondition.java


+ 0 - 0
liteflow/src/main/java/com/thebeastshop/liteflow/entity/data/AbsSlot.java → liteflow-core/src/main/java/com/thebeastshop/liteflow/entity/data/AbsSlot.java


+ 0 - 0
liteflow/src/main/java/com/thebeastshop/liteflow/entity/data/CmpStep.java → liteflow-core/src/main/java/com/thebeastshop/liteflow/entity/data/CmpStep.java


+ 0 - 0
liteflow/src/main/java/com/thebeastshop/liteflow/entity/data/CmpStepType.java → liteflow-core/src/main/java/com/thebeastshop/liteflow/entity/data/CmpStepType.java


+ 0 - 0
liteflow/src/main/java/com/thebeastshop/liteflow/entity/data/DataBus.java → liteflow-core/src/main/java/com/thebeastshop/liteflow/entity/data/DataBus.java


+ 0 - 0
liteflow/src/main/java/com/thebeastshop/liteflow/entity/data/DefaultSlot.java → liteflow-core/src/main/java/com/thebeastshop/liteflow/entity/data/DefaultSlot.java


+ 0 - 0
liteflow/src/main/java/com/thebeastshop/liteflow/entity/data/Slot.java → liteflow-core/src/main/java/com/thebeastshop/liteflow/entity/data/Slot.java


+ 0 - 0
liteflow/src/main/java/com/thebeastshop/liteflow/entity/monitor/CompStatistics.java → liteflow-core/src/main/java/com/thebeastshop/liteflow/entity/monitor/CompStatistics.java


+ 0 - 0
liteflow/src/main/java/com/thebeastshop/liteflow/exception/ChainNotFoundException.java → liteflow-core/src/main/java/com/thebeastshop/liteflow/exception/ChainNotFoundException.java


+ 0 - 0
liteflow/src/main/java/com/thebeastshop/liteflow/exception/ComponentNotAccessException.java → liteflow-core/src/main/java/com/thebeastshop/liteflow/exception/ComponentNotAccessException.java


+ 0 - 0
liteflow/src/main/java/com/thebeastshop/liteflow/exception/FlowExecutorNotInitException.java → liteflow-core/src/main/java/com/thebeastshop/liteflow/exception/FlowExecutorNotInitException.java


+ 0 - 0
liteflow/src/main/java/com/thebeastshop/liteflow/exception/FlowSystemException.java → liteflow-core/src/main/java/com/thebeastshop/liteflow/exception/FlowSystemException.java


+ 0 - 0
liteflow/src/main/java/com/thebeastshop/liteflow/exception/NoAvailableSlotException.java → liteflow-core/src/main/java/com/thebeastshop/liteflow/exception/NoAvailableSlotException.java


+ 0 - 0
liteflow/src/main/java/com/thebeastshop/liteflow/exception/ParseException.java → liteflow-core/src/main/java/com/thebeastshop/liteflow/exception/ParseException.java


+ 0 - 0
liteflow/src/main/java/com/thebeastshop/liteflow/flow/FlowBus.java → liteflow-core/src/main/java/com/thebeastshop/liteflow/flow/FlowBus.java


+ 0 - 0
liteflow/src/main/java/com/thebeastshop/liteflow/monitor/MonitorBus.java → liteflow-core/src/main/java/com/thebeastshop/liteflow/monitor/MonitorBus.java


+ 0 - 0
liteflow/src/main/java/com/thebeastshop/liteflow/parser/ClassXmlFlowParser.java → liteflow-core/src/main/java/com/thebeastshop/liteflow/parser/ClassXmlFlowParser.java


+ 0 - 0
liteflow/src/main/java/com/thebeastshop/liteflow/parser/LocalXmlFlowParser.java → liteflow-core/src/main/java/com/thebeastshop/liteflow/parser/LocalXmlFlowParser.java


+ 0 - 0
liteflow/src/main/java/com/thebeastshop/liteflow/parser/RegexEntity.java → liteflow-core/src/main/java/com/thebeastshop/liteflow/parser/RegexEntity.java


+ 0 - 0
liteflow/src/main/java/com/thebeastshop/liteflow/parser/XmlFlowParser.java → liteflow-core/src/main/java/com/thebeastshop/liteflow/parser/XmlFlowParser.java


+ 0 - 0
liteflow/src/main/java/com/thebeastshop/liteflow/parser/ZookeeperXmlFlowParser.java → liteflow-core/src/main/java/com/thebeastshop/liteflow/parser/ZookeeperXmlFlowParser.java


+ 0 - 0
liteflow/src/main/java/com/thebeastshop/liteflow/spring/ComponentScaner.java → liteflow-core/src/main/java/com/thebeastshop/liteflow/spring/ComponentScaner.java


+ 0 - 0
liteflow/src/main/java/com/thebeastshop/liteflow/util/Dom4JReader.java → liteflow-core/src/main/java/com/thebeastshop/liteflow/util/Dom4JReader.java


+ 0 - 0
liteflow/src/main/java/com/thebeastshop/liteflow/util/IOUtil.java → liteflow-core/src/main/java/com/thebeastshop/liteflow/util/IOUtil.java


+ 0 - 0
liteflow/src/main/java/com/thebeastshop/liteflow/util/LOGOPrinter.java → liteflow-core/src/main/java/com/thebeastshop/liteflow/util/LOGOPrinter.java


+ 0 - 0
liteflow/src/main/java/com/thebeastshop/liteflow/util/LimitQueue.java → liteflow-core/src/main/java/com/thebeastshop/liteflow/util/LimitQueue.java


+ 0 - 0
liteflow/src/test/java/com/thebeastshop/liteflow/test/TestMain.java → liteflow-core/src/test/java/com/thebeastshop/liteflow/test/TestMain.java


+ 0 - 0
liteflow/src/test/java/com/thebeastshop/liteflow/test/TestWithSpringMain.java → liteflow-core/src/test/java/com/thebeastshop/liteflow/test/TestWithSpringMain.java


+ 0 - 0
liteflow/src/test/java/com/thebeastshop/liteflow/test/component/AComponent.java → liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/AComponent.java


+ 0 - 0
liteflow/src/test/java/com/thebeastshop/liteflow/test/component/BComponent.java → liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/BComponent.java


+ 0 - 0
liteflow/src/test/java/com/thebeastshop/liteflow/test/component/CComponent.java → liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/CComponent.java


+ 0 - 0
liteflow/src/test/java/com/thebeastshop/liteflow/test/component/CondComponent.java → liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/CondComponent.java


+ 0 - 0
liteflow/src/test/java/com/thebeastshop/liteflow/test/component/DComponent.java → liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/DComponent.java


+ 0 - 0
liteflow/src/test/java/com/thebeastshop/liteflow/test/component/EComponent.java → liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/EComponent.java


+ 0 - 0
liteflow/src/test/java/com/thebeastshop/liteflow/test/component/FComponent.java → liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/FComponent.java


+ 0 - 0
liteflow/src/test/java/com/thebeastshop/liteflow/test/component/GComponent.java → liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/GComponent.java


+ 0 - 0
liteflow/src/test/java/com/thebeastshop/liteflow/test/component/HComponent.java → liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/HComponent.java


+ 0 - 0
liteflow/src/test/java/com/thebeastshop/liteflow/test/component/M1Component.java → liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/M1Component.java


+ 0 - 0
liteflow/src/test/java/com/thebeastshop/liteflow/test/component/M2Component.java → liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/M2Component.java


+ 0 - 0
liteflow/src/test/java/com/thebeastshop/liteflow/test/component/M3Component.java → liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/M3Component.java


+ 0 - 0
liteflow/src/test/java/com/thebeastshop/liteflow/test/component/MComponent.java → liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/MComponent.java


+ 0 - 0
liteflow/src/test/java/com/thebeastshop/liteflow/test/component/P1Component.java → liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/P1Component.java


+ 0 - 0
liteflow/src/test/java/com/thebeastshop/liteflow/test/component/P2Component.java → liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/P2Component.java


+ 0 - 0
liteflow/src/test/java/com/thebeastshop/liteflow/test/component/PComponent.java → liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/PComponent.java


+ 0 - 0
liteflow/src/test/resources/config/flow.xml → liteflow-core/src/test/resources/config/flow.xml


+ 0 - 0
liteflow/src/test/resources/log4j.xml → liteflow-core/src/test/resources/log4j.xml


+ 0 - 0
liteflow/src/test/resources/spring-test.xml → liteflow-core/src/test/resources/spring-test.xml


+ 32 - 0
liteflow-spring-boot-starter/pom.xml

@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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">
+    <parent>
+        <artifactId>liteflow</artifactId>
+        <groupId>com.thebeastshop</groupId>
+        <version>2.1.0</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>liteflow-spring-boot-starter</artifactId>
+
+    <dependencies>
+        <dependency>
+            <groupId>com.thebeastshop</groupId>
+            <artifactId>liteflow-core</artifactId>
+            <version>${project.parent.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-autoconfigure</artifactId>
+            <version>2.0.5.RELEASE</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-configuration-processor</artifactId>
+            <version>2.0.5.RELEASE</version>
+        </dependency>
+    </dependencies>
+
+</project>

+ 40 - 0
liteflow-spring-boot-starter/src/main/java/com/thebeastshop/liteflow/springboot/LiteflowAutoConfiguration.java

@@ -0,0 +1,40 @@
+package com.thebeastshop.liteflow.springboot;
+
+import com.google.common.collect.Lists;
+import com.thebeastshop.liteflow.core.FlowExecutor;
+import com.thebeastshop.liteflow.spring.ComponentScaner;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
+import org.springframework.core.env.Environment;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+@Configuration
+@ConditionalOnProperty(name = "liteflow.ruleSource")
+public class LiteflowAutoConfiguration {
+
+    @Bean
+    public ComponentScaner componentScaner(){
+        return new ComponentScaner();
+    }
+
+    @Bean
+    public FlowExecutor flowExecutor(LiteflowProperty property){
+        if(StringUtils.isNotBlank(property.getRuleSource())){
+            List<String> ruleList = Lists.newArrayList(property.getRuleSource().split(","));
+            FlowExecutor flowExecutor = new FlowExecutor();
+            flowExecutor.setRulePath(ruleList);
+            return flowExecutor;
+        }else{
+            return null;
+        }
+    }
+}

+ 19 - 0
liteflow-spring-boot-starter/src/main/java/com/thebeastshop/liteflow/springboot/LiteflowProperty.java

@@ -0,0 +1,19 @@
+package com.thebeastshop.liteflow.springboot;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class LiteflowProperty {
+
+    @Value("${liteflow.ruleSource}")
+    private String ruleSource;
+
+    public String getRuleSource() {
+        return ruleSource;
+    }
+
+    public void setRuleSource(String ruleSource) {
+        this.ruleSource = ruleSource;
+    }
+}

+ 3 - 0
liteflow-spring-boot-starter/src/main/resources/META-INF/spring.factories

@@ -0,0 +1,3 @@
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+  com.thebeastshop.liteflow.springboot.LiteflowProperty,\
+  com.thebeastshop.liteflow.springboot.LiteflowAutoConfiguration

+ 1 - 1
liteflow-test/pom.xml

@@ -25,7 +25,7 @@
 
         <dependency>
             <groupId>com.thebeastshop</groupId>
-            <artifactId>liteflow</artifactId>
+            <artifactId>liteflow-spring-boot-starter</artifactId>
             <version>2.1.0</version>
         </dependency>
 

+ 1 - 1
liteflow-test/src/main/resources/application.properties

@@ -1 +1 @@
-liteFlow.ruleSource=config/flow.xml
+liteflow.ruleSource=config/flow.xml

+ 0 - 150
liteflow/pom.xml

@@ -1,150 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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">
-	<groupId>com.thebeastshop</groupId>
-    <artifactId>liteflow</artifactId>
-    <packaging>jar</packaging>
-    <modelVersion>4.0.0</modelVersion>
-    <version>2.1.0</version>
-
-    <properties>
-    	<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-		<java.version>1.8</java.version>
-		<commons.lang3.version>3.4</commons.lang3.version>
-		<commons-collections.version>4.1</commons-collections.version>
-		<commons-io.version>2.4</commons-io.version>
-		<commons-logging.version>1.2</commons-logging.version>
-		<spring.version>5.0.9.RELEASE</spring.version>
-		<org.slf4j.version>1.7.21</org.slf4j.version>
-		<log4j.version>1.2.17</log4j.version>
-		<log4j-slf4j.version>1.7.5</log4j-slf4j.version>
-		<slf4j.version>1.7.13</slf4j.version>
-		<fastjson.version>1.2.7</fastjson.version>
-		<dom4j.version>1.6.1</dom4j.version>
-		<curator.version>2.12.0</curator.version>
-		<junit.version>4.12</junit.version>
-    </properties>
-
-	<dependencies>
-		<dependency>
-            <groupId>org.apache.commons</groupId>
-            <artifactId>commons-lang3</artifactId>
-            <version>${commons.lang3.version}</version>
-        </dependency>
-        <dependency>
-			<groupId>org.apache.commons</groupId>
-			<artifactId>commons-collections4</artifactId>
-			<version>${commons-collections.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>commons-io</groupId>
-			<artifactId>commons-io</artifactId>
-			<version>${commons-io.version}</version>
-		</dependency>
-        <dependency>
-			<groupId>org.springframework</groupId>
-			<artifactId>spring-beans</artifactId>
-			<version>${spring.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>org.springframework</groupId>
-			<artifactId>spring-context</artifactId>
-			<version>${spring.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>org.springframework</groupId>
-			<artifactId>spring-aop</artifactId>
-			<version>${spring.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>org.springframework</groupId>
-			<artifactId>spring-expression</artifactId>
-			<version>${spring.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>org.springframework</groupId>
-			<artifactId>spring-test</artifactId>
-			<version>${spring.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>org.slf4j</groupId>
-			<artifactId>slf4j-api</artifactId>
-			<version>${org.slf4j.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>com.alibaba</groupId>
-			<artifactId>fastjson</artifactId>
-			<version>${fastjson.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>dom4j</groupId>
-			<artifactId>dom4j</artifactId>
-			<version>${dom4j.version}</version>
-		</dependency>
-		<dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <version>${junit.version}</version>
-        </dependency>
-        <dependency>
-        	<groupId>commons-logging</groupId>
-        	<artifactId>commons-logging</artifactId>
-        	<version>${commons-logging.version}</version>
-        </dependency>
-		<dependency>
-			<groupId>org.apache.curator</groupId>
-			<artifactId>curator-framework</artifactId>
-			<version>${curator.version}</version>
-			<exclusions>
-				<exclusion>
-					<artifactId>log4j</artifactId>
-					<groupId>log4j</groupId>
-				</exclusion>
-				<exclusion>
-					<artifactId>slf4j-api</artifactId>
-					<groupId>org.slf4j</groupId>
-				</exclusion>
-			</exclusions>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.curator</groupId>
-			<artifactId>curator-recipes</artifactId>
-			<version>${curator.version}</version>
-		</dependency>
-	</dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <configuration>
-                    <encoding>UTF-8</encoding>
-                    <source>${java.version}</source>
-                    <target>${java.version}</target>
-                </configuration>
-            </plugin>
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-surefire-plugin</artifactId>
-				<version>2.18.1</version>
-				<configuration>
-					<skipTests>true</skipTests>
-				</configuration>
-			</plugin>
-        </plugins>
-    </build>
-
-	<distributionManagement>
-		<repository>
-			<id>nexus-releases</id>
-			<name>nexus-releases</name>
-			<url>http://118.178.236.200:8087/nexus/content/repositories/thirdparty</url>
-		</repository>
-		<snapshotRepository>
-			<id>nexus-snapshots</id>
-			<name>nexus-snapshots</name>
-			<url>http://118.178.236.200:8087/nexus/content/repositories/snapshots</url>
-		</snapshotRepository>
-	</distributionManagement>
-</project>

+ 0 - 39
liteflow/src/main/java/com/thebeastshop/liteflow/spring/FlowContextInitializer.java

@@ -1,39 +0,0 @@
-package com.thebeastshop.liteflow.spring;
-
-import com.thebeastshop.liteflow.core.FlowExecutor;
-import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
-import org.springframework.beans.factory.support.BeanDefinitionBuilder;
-import org.springframework.beans.factory.support.DefaultListableBeanFactory;
-import org.springframework.context.ApplicationContextInitializer;
-import org.springframework.context.ConfigurableApplicationContext;
-import org.springframework.core.env.ConfigurableEnvironment;
-import org.springframework.core.env.PropertySource;
-
-import java.util.Arrays;
-import java.util.Iterator;
-
-public class FlowContextInitializer implements ApplicationContextInitializer<ConfigurableApplicationContext> {
-
-    private final static String LITEFLOW_PROPERTY = "liteFlow.ruleSource";
-
-    @Override
-    public void initialize(ConfigurableApplicationContext context) {
-        ConfigurableEnvironment environment = context.getEnvironment();
-
-        Iterator<PropertySource<?>> it = environment.getPropertySources().iterator();
-        while (it.hasNext()){
-            PropertySource propertySource = it.next();
-            if(propertySource.containsProperty(LITEFLOW_PROPERTY)){
-                //注册scaner
-                DefaultListableBeanFactory factory = (DefaultListableBeanFactory)context.getBeanFactory();
-                BeanDefinitionBuilder beanDefinitionBuilder = BeanDefinitionBuilder.genericBeanDefinition(ComponentScaner.class);
-                factory.registerBeanDefinition("componentScaner", beanDefinitionBuilder.getRawBeanDefinition());
-                //注册flowExecutor
-                String rulePath = (String)propertySource.getProperty(LITEFLOW_PROPERTY);
-                beanDefinitionBuilder = BeanDefinitionBuilder.genericBeanDefinition(FlowExecutor.class);
-                beanDefinitionBuilder.addPropertyValue("rulePath",Arrays.asList(rulePath.split(",")));
-                factory.registerBeanDefinition("flowExecutor", beanDefinitionBuilder.getRawBeanDefinition());
-            }
-        }
-    }
-}

+ 0 - 2
liteflow/src/main/resources/META-INF/spring.factories

@@ -1,2 +0,0 @@
-org.springframework.context.ApplicationContextInitializer=\
-  com.thebeastshop.liteflow.spring.FlowContextInitializer

+ 158 - 0
pom.xml

@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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">
+	<groupId>com.thebeastshop</groupId>
+    <artifactId>liteflow</artifactId>
+    <packaging>pom</packaging>
+    <modelVersion>4.0.0</modelVersion>
+    <version>2.1.0</version>
+
+    <properties>
+    	<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+		<java.version>1.8</java.version>
+		<commons.lang3.version>3.4</commons.lang3.version>
+		<commons-collections.version>4.1</commons-collections.version>
+		<commons-io.version>2.4</commons-io.version>
+		<commons-logging.version>1.2</commons-logging.version>
+		<spring.version>5.0.9.RELEASE</spring.version>
+		<org.slf4j.version>1.7.21</org.slf4j.version>
+		<log4j.version>1.2.17</log4j.version>
+		<log4j-slf4j.version>1.7.5</log4j-slf4j.version>
+		<slf4j.version>1.7.13</slf4j.version>
+		<fastjson.version>1.2.7</fastjson.version>
+		<dom4j.version>1.6.1</dom4j.version>
+		<curator.version>2.12.0</curator.version>
+		<junit.version>4.12</junit.version>
+    </properties>
+
+    <dependencyManagement>
+		<dependencies>
+			<dependency>
+	            <groupId>org.apache.commons</groupId>
+	            <artifactId>commons-lang3</artifactId>
+	            <version>${commons.lang3.version}</version>
+	        </dependency>
+	        <dependency>
+				<groupId>org.apache.commons</groupId>
+				<artifactId>commons-collections4</artifactId>
+				<version>${commons-collections.version}</version>
+			</dependency>
+			<dependency>
+				<groupId>commons-io</groupId>
+				<artifactId>commons-io</artifactId>
+				<version>${commons-io.version}</version>
+			</dependency>
+	        <dependency>
+				<groupId>org.springframework</groupId>
+				<artifactId>spring-beans</artifactId>
+				<version>${spring.version}</version>
+			</dependency>
+			<dependency>
+				<groupId>org.springframework</groupId>
+				<artifactId>spring-context</artifactId>
+				<version>${spring.version}</version>
+			</dependency>
+			<dependency>
+				<groupId>org.springframework</groupId>
+				<artifactId>spring-aop</artifactId>
+				<version>${spring.version}</version>
+			</dependency>
+			<dependency>
+				<groupId>org.springframework</groupId>
+				<artifactId>spring-expression</artifactId>
+				<version>${spring.version}</version>
+			</dependency>
+			<dependency>
+				<groupId>org.springframework</groupId>
+				<artifactId>spring-test</artifactId>
+				<version>${spring.version}</version>
+			</dependency>
+			<dependency>
+				<groupId>org.slf4j</groupId>
+				<artifactId>slf4j-api</artifactId>
+				<version>${org.slf4j.version}</version>
+			</dependency>
+			<dependency>
+				<groupId>com.alibaba</groupId>
+				<artifactId>fastjson</artifactId>
+				<version>${fastjson.version}</version>
+			</dependency>
+			<dependency>
+				<groupId>dom4j</groupId>
+				<artifactId>dom4j</artifactId>
+				<version>${dom4j.version}</version>
+			</dependency>
+			<dependency>
+	            <groupId>junit</groupId>
+	            <artifactId>junit</artifactId>
+	            <version>${junit.version}</version>
+	        </dependency>
+	        <dependency>
+	        	<groupId>commons-logging</groupId>
+	        	<artifactId>commons-logging</artifactId>
+	        	<version>${commons-logging.version}</version>
+	        </dependency>
+			<dependency>
+				<groupId>org.apache.curator</groupId>
+				<artifactId>curator-framework</artifactId>
+				<version>${curator.version}</version>
+				<exclusions>
+					<exclusion>
+						<artifactId>log4j</artifactId>
+						<groupId>log4j</groupId>
+					</exclusion>
+					<exclusion>
+						<artifactId>slf4j-api</artifactId>
+						<groupId>org.slf4j</groupId>
+					</exclusion>
+				</exclusions>
+			</dependency>
+			<dependency>
+				<groupId>org.apache.curator</groupId>
+				<artifactId>curator-recipes</artifactId>
+				<version>${curator.version}</version>
+			</dependency>
+		</dependencies>
+	</dependencyManagement>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <encoding>UTF-8</encoding>
+                    <source>${java.version}</source>
+                    <target>${java.version}</target>
+                </configuration>
+            </plugin>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-surefire-plugin</artifactId>
+				<version>2.18.1</version>
+				<configuration>
+					<skipTests>true</skipTests>
+				</configuration>
+			</plugin>
+        </plugins>
+    </build>
+
+    <modules>
+        <module>liteflow-core</module>
+		<module>liteflow-test</module>
+		<module>liteflow-spring-boot-starter</module>
+	</modules>
+
+	<distributionManagement>
+		<repository>
+			<id>nexus-releases</id>
+			<name>nexus-releases</name>
+			<url>http://118.178.236.200:8087/nexus/content/repositories/thirdparty</url>
+		</repository>
+		<snapshotRepository>
+			<id>nexus-snapshots</id>
+			<name>nexus-snapshots</name>
+			<url>http://118.178.236.200:8087/nexus/content/repositories/snapshots</url>
+		</snapshotRepository>
+	</distributionManagement>
+</project>