roo00 7 лет назад
Родитель
Сommit
6070e26ef2
100 измененных файлов с 2174 добавлено и 2558 удалено
  1. 5 0
      o2server/x_attendance_assemble_control/src/main/webapp/WEB-INF/web.xml
  2. 23 15
      o2server/x_base_core_project/src/main/java/com/x/base/core/entity/tools/EnhancePersistenceXmlWriter.java
  3. 39 17
      o2server/x_base_core_project/src/main/java/com/x/base/core/entity/tools/PersistenceXmlWriter.java
  4. 9 0
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/AbstractContext.java
  5. 19 10
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/Application.java
  6. 31 7
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/Applications.java
  7. 0 143
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/AssembleA.java
  8. 1 122
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/AssembleC.java
  9. 1 122
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/AssembleM.java
  10. 0 120
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/CompileA.java
  11. 0 111
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/CompileC.java
  12. 1 112
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/CompileM.java
  13. 23 0
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/Dependency.java
  14. 10 2
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/Deployable.java
  15. 1 165
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/ServiceC.java
  16. 1 165
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/ServiceM.java
  17. 16 14
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/annotation/Describe.java
  18. 14 1
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/annotation/Module.java
  19. 8 0
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/annotation/ModuleCategory.java
  20. 8 0
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/annotation/ModuleType.java
  21. 0 7
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/build/CreateConfigSample.java
  22. 17 17
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/cache/ApplicationCache.java
  23. 137 18
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/config/Config.java
  24. 0 14
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/config/CreateSample.java
  25. 34 1
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/schedule/ReportToCenter.java
  26. 58 58
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_attendance_assemble_control.java
  27. 5 0
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_attendance_core_entity.java
  28. 5 0
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_base_core_project.java
  29. 86 51
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_bbs_assemble_control.java
  30. 5 0
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_bbs_core_entity.java
  31. 54 44
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_calendar_assemble_control.java
  32. 5 0
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_calendar_core_entity.java
  33. 39 72
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_cms_assemble_control.java
  34. 5 0
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_cms_core_entity.java
  35. 44 43
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_collaboration_assemble_websocket.java
  36. 5 0
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_collaboration_core_entity.java
  37. 5 0
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_collaboration_core_message.java
  38. 27 30
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_collaboration_service_message.java
  39. 24 37
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_component_assemble_control.java
  40. 5 0
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_component_core_entity.java
  41. 48 34
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_file_assemble_control.java
  42. 5 0
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_file_core_entity.java
  43. 36 18
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_general_assemble_control.java
  44. 5 0
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_general_core_entity.java
  45. 49 33
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_hotpic_assemble_control.java
  46. 5 0
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_hotpic_core_entity.java
  47. 32 43
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_meeting_assemble_control.java
  48. 5 0
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_meeting_core_entity.java
  49. 27 20
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_message_assemble_communicate.java
  50. 5 0
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_message_core_entity.java
  51. 38 41
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_mind_assemble_control.java
  52. 5 0
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_mind_core_entity.java
  53. 72 63
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_okr_assemble_control.java
  54. 5 0
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_okr_core_entity.java
  55. 28 21
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_organization_assemble_authentication.java
  56. 35 47
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_organization_assemble_control.java
  57. 22 39
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_organization_assemble_custom.java
  58. 32 38
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_organization_assemble_express.java
  59. 35 46
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_organization_assemble_personal.java
  60. 5 0
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_organization_core_entity.java
  61. 5 0
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_organization_core_express.java
  62. 32 29
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_portal_assemble_designer.java
  63. 30 26
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_portal_assemble_surface.java
  64. 6 1
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_portal_core_entity.java
  65. 89 67
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_processplatform_assemble_bam.java
  66. 100 72
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_processplatform_assemble_designer.java
  67. 100 72
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_processplatform_assemble_surface.java
  68. 5 0
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_processplatform_core_entity.java
  69. 102 58
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_processplatform_service_processing.java
  70. 94 51
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_program_center.java
  71. 5 0
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_program_center_core_entity.java
  72. 66 44
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_query_assemble_designer.java
  73. 71 42
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_query_assemble_surface.java
  74. 6 1
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_query_core_entity.java
  75. 5 0
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_query_core_express.java
  76. 70 41
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_query_service_processing.java
  77. 0 72
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_report_assemble_control.java
  78. 0 5
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_report_core_entity.java
  79. 5 0
      o2server/x_bbs_assemble_control/src/main/webapp/WEB-INF/web.xml
  80. 7 2
      o2server/x_calendar_assemble_control/src/main/webapp/WEB-INF/web.xml
  81. 5 0
      o2server/x_cms_assemble_control/src/main/webapp/WEB-INF/web.xml
  82. 5 0
      o2server/x_file_assemble_control/src/main/webapp/WEB-INF/web.xml
  83. 7 2
      o2server/x_general_assemble_control/src/main/webapp/WEB-INF/web.xml
  84. 7 2
      o2server/x_hotpic_assemble_control/src/main/webapp/WEB-INF/web.xml
  85. 7 2
      o2server/x_meeting_assemble_control/src/main/webapp/WEB-INF/web.xml
  86. 7 2
      o2server/x_message_assemble_communicate/src/main/webapp/WEB-INF/web.xml
  87. 5 0
      o2server/x_mind_assemble_control/src/main/webapp/WEB-INF/web.xml
  88. 5 0
      o2server/x_okr_assemble_control/src/main/webapp/WEB-INF/web.xml
  89. 5 0
      o2server/x_organization_assemble_control/src/main/webapp/WEB-INF/web.xml
  90. 5 0
      o2server/x_organization_assemble_custom/src/main/webapp/WEB-INF/web.xml
  91. 5 0
      o2server/x_organization_assemble_express/src/main/webapp/WEB-INF/web.xml
  92. 5 0
      o2server/x_organization_assemble_personal/src/main/webapp/WEB-INF/web.xml
  93. 8 2
      o2server/x_portal_assemble_designer/src/main/webapp/WEB-INF/web.xml
  94. 1 0
      o2server/x_portal_assemble_designer/x_portal_assemble_designer.xml
  95. 8 2
      o2server/x_portal_assemble_surface/src/main/webapp/WEB-INF/web.xml
  96. 5 0
      o2server/x_processplatform_service_processing/src/main/webapp/WEB-INF/web.xml
  97. 4 0
      o2server/x_program_center/src/main/webapp/WEB-INF/web.xml
  98. 8 2
      o2server/x_query_assemble_designer/src/main/webapp/WEB-INF/web.xml
  99. 5 0
      o2server/x_query_assemble_surface/src/main/webapp/WEB-INF/web.xml
  100. 5 0
      o2server/x_query_service_processing/src/main/webapp/WEB-INF/web.xml

+ 5 - 0
o2server/x_attendance_assemble_control/src/main/webapp/WEB-INF/web.xml

@@ -2,4 +2,9 @@
 <web-app id="x_attendance_assemble_control"
 	metadata-complete="false" version="3.0">
 	<display-name>x_attendance_assemble_control</display-name>
+	<context-param>
+		<param-name>project</param-name>
+		<param-value>com.x.base.core.project.x_attendance_assemble_control
+		</param-value>
+	</context-param>
 </web-app>

+ 23 - 15
o2server/x_base_core_project/src/main/java/com/x/base/core/entity/tools/EnhancePersistenceXmlWriter.java

@@ -3,11 +3,11 @@ package com.x.base.core.entity.tools;
 import java.io.File;
 import java.io.FileWriter;
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.Comparator;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
+import java.util.stream.Collectors;
 
 import javax.persistence.Entity;
 import javax.persistence.MappedSuperclass;
@@ -19,11 +19,11 @@ import org.dom4j.QName;
 import org.dom4j.io.OutputFormat;
 import org.dom4j.io.XMLWriter;
 
-import com.x.base.core.project.Packages;
 import com.x.base.core.project.tools.MainTools;
 
-import io.github.lukehutch.fastclasspathscanner.FastClasspathScanner;
-import io.github.lukehutch.fastclasspathscanner.scanner.ScanResult;
+import io.github.classgraph.ClassGraph;
+import io.github.classgraph.ClassInfo;
+import io.github.classgraph.ScanResult;
 
 public class EnhancePersistenceXmlWriter {
 	public static void main(String[] args) throws Exception {
@@ -60,18 +60,26 @@ public class EnhancePersistenceXmlWriter {
 	}
 
 	private static List<Class<?>> scanEnhanceClass() throws Exception {
-		FastClasspathScanner scanner = new FastClasspathScanner(Packages.PREFIX);
-		ScanResult scanResult = scanner.scan();
-		List<Class<?>> sortedList = new ArrayList<Class<?>>();
-		for (String str : scanResult.getNamesOfClassesWithAnnotationsAnyOf(MappedSuperclass.class, Entity.class)) {
-			sortedList.add(Class.forName(str));
-		}
-		Collections.sort(sortedList, new Comparator<Class<?>>() {
-			public int compare(Class<?> c1, Class<?> c2) {
-				return c1.getCanonicalName().compareTo(c2.getCanonicalName());
+		List<Class<?>> list = new ArrayList<Class<?>>();
+		try (ScanResult scanResult = new ClassGraph().enableAnnotationInfo().scan()) {
+			List<ClassInfo> classInfos = scanResult.getClassesWithAnnotation(Entity.class.getName());
+			for (ClassInfo info : classInfos) {
+				list.add(Class.forName(info.getName()));
 			}
-		});
-		return sortedList;
+			return list.stream().sorted(Comparator.comparing(Class::getName)).collect(Collectors.toList());
+		}
+//		FastClasspathScanner scanner = new FastClasspathScanner(Packages.PREFIX);
+//		ScanResult scanResult = scanner.scan();
+//		List<Class<?>> sortedList = new ArrayList<Class<?>>();
+//		for (String str : scanResult.getNamesOfClassesWithAnnotationsAnyOf(MappedSuperclass.class, Entity.class)) {
+//			sortedList.add(Class.forName(str));
+//		}
+//		Collections.sort(sortedList, new Comparator<Class<?>>() {
+//			public int compare(Class<?> c1, Class<?> c2) {
+//				return c1.getCanonicalName().compareTo(c2.getCanonicalName());
+//			}
+//		});
+//		return sortedList;
 	}
 
 	private static Set<Class<?>> scanMappedSuperclass(Class<?> clz) throws Exception {

+ 39 - 17
o2server/x_base_core_project/src/main/java/com/x/base/core/entity/tools/PersistenceXmlWriter.java

@@ -3,8 +3,6 @@ package com.x.base.core.entity.tools;
 import java.io.File;
 import java.io.FileWriter;
 import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
 import java.util.HashSet;
 import java.util.LinkedHashMap;
 import java.util.List;
@@ -15,7 +13,6 @@ import java.util.Set;
 import javax.persistence.MappedSuperclass;
 
 import org.apache.commons.lang3.StringUtils;
-import org.apache.commons.lang3.reflect.FieldUtils;
 import org.apache.openjpa.persistence.PersistenceProviderImpl;
 import org.dom4j.Document;
 import org.dom4j.DocumentHelper;
@@ -24,8 +21,14 @@ import org.dom4j.QName;
 import org.dom4j.io.OutputFormat;
 import org.dom4j.io.XMLWriter;
 
+import com.x.base.core.project.Deployable;
+import com.x.base.core.project.annotation.Module;
 import com.x.base.core.project.tools.MainTools;
 
+import io.github.classgraph.ClassGraph;
+import io.github.classgraph.ClassInfo;
+import io.github.classgraph.ScanResult;
+
 public class PersistenceXmlWriter {
 
 	public static void main(String[] args) throws Exception {
@@ -70,25 +73,44 @@ public class PersistenceXmlWriter {
 		}
 	}
 
-	@SuppressWarnings("unchecked")
 	private static List<Class<?>> scanContainerEntity(String project) throws Exception {
-		Set<Class<?>> ces = new HashSet<>();
-		String className = "com.x.base.core.project." + project;
-		Class<?> cls = Class.forName(className);
-		for (String str : (List<String>) FieldUtils.readStaticField(cls, "containerEntities")) {
-			if (StringUtils.isNotEmpty(str)) {
-				ces.add(Class.forName(str));
+		List<Class<?>> list = new ArrayList<>();
+		try (ScanResult scanResult = new ClassGraph().enableAnnotationInfo().scan()) {
+			List<ClassInfo> classInfos = scanResult.getClassesWithAnnotation(Module.class.getName());
+			for (ClassInfo info : classInfos) {
+				if (StringUtils.equals(info.getSimpleName(), project)) {
+					Class<?> cls = Class.forName(info.getName());
+					Deployable deployable = (Deployable) cls.newInstance();
+					for (String str: deployable.dependency().containerEntities) {
+						if (StringUtils.isNotEmpty(str)) {
+							list.add(Class.forName(str));
+						}
+					}
+				}
 			}
+			return list;
 		}
-		List<Class<?>> sortedList = new ArrayList<Class<?>>(ces);
-		Collections.sort(sortedList, new Comparator<Class<?>>() {
-			public int compare(Class<?> c1, Class<?> c2) {
-				return c1.getCanonicalName().compareTo(c2.getCanonicalName());
-			}
-		});
-		return sortedList;
 	}
 
+//	@SuppressWarnings("unchecked")
+//	private static List<Class<?>> scanContainerEntity(String project) throws Exception {
+//		Set<Class<?>> ces = new HashSet<>();
+//		String className = "com.x.base.core.project." + project;
+//		Class<?> cls = Class.forName(className);
+//		for (String str : (List<String>) FieldUtils.readStaticField(cls, "containerEntities")) {
+//			if (StringUtils.isNotEmpty(str)) {
+//				ces.add(Class.forName(str));
+//			}
+//		}
+//		List<Class<?>> sortedList = new ArrayList<Class<?>>(ces);
+//		Collections.sort(sortedList, new Comparator<Class<?>>() {
+//			public int compare(Class<?> c1, Class<?> c2) {
+//				return c1.getCanonicalName().compareTo(c2.getCanonicalName());
+//			}
+//		});
+//		return sortedList;
+//	}
+
 	private static Set<Class<?>> scanMappedSuperclass(Class<?> clz) throws Exception {
 		Set<Class<?>> set = new HashSet<Class<?>>();
 		set.add(clz);

+ 9 - 0
o2server/x_base_core_project/src/main/java/com/x/base/core/project/AbstractContext.java

@@ -1,13 +1,22 @@
 package com.x.base.core.project;
 
+import com.x.base.core.project.annotation.Module;
+
 public abstract class AbstractContext {
 	/** Applications资源 */
 	protected volatile Applications applications;
 
+	protected static final String INITPARAMETER_PORJECT = "project";
+
 	public Applications applications() {
 		synchronized (this) {
 			return this.applications;
 		}
 	}
 
+	protected static String getName(Class<?> clz) throws Exception {
+		Module module = clz.getAnnotation(Module.class);
+		return module.name();
+	}
+
 }

+ 19 - 10
o2server/x_base_core_project/src/main/java/com/x/base/core/project/Application.java

@@ -11,10 +11,11 @@ public class Application extends GsonPropertyObject {
 
 	private String name;
 	private String node;
-	private String context;
+	private String contextPath;
 	private Integer port;
 	private String token;
 	private Boolean sslEnable;
+	private Dependency dependency;
 
 	private String proxyHost;
 	private Integer proxyPort;
@@ -32,7 +33,7 @@ public class Application extends GsonPropertyObject {
 			buffer.append("http://").append(StringUtils.isNotEmpty(node) ? node : "127.0.0.1")
 					.append(port == 80 ? "" : (":" + port));
 		}
-		buffer.append(context + "/jaxrs/");
+		buffer.append(contextPath + "/jaxrs/");
 		return buffer.toString();
 
 	}
@@ -69,14 +70,6 @@ public class Application extends GsonPropertyObject {
 		this.reportDate = reportDate;
 	}
 
-	public String getContext() {
-		return context;
-	}
-
-	public void setContext(String context) {
-		this.context = context;
-	}
-
 	public void setProxyPort(Integer proxyPort) {
 		this.proxyPort = proxyPort;
 	}
@@ -117,4 +110,20 @@ public class Application extends GsonPropertyObject {
 		this.node = node;
 	}
 
+	public String getContextPath() {
+		return contextPath;
+	}
+
+	public void setContextPath(String contextPath) {
+		this.contextPath = contextPath;
+	}
+
+	public Dependency getDependency() {
+		return dependency;
+	}
+
+	public void setDependency(Dependency dependency) {
+		this.dependency = dependency;
+	}
+
 }

+ 31 - 7
o2server/x_base_core_project/src/main/java/com/x/base/core/project/Applications.java

@@ -36,8 +36,8 @@ public class Applications extends ConcurrentHashMap<String, CopyOnWriteArrayList
 		this.token = token;
 	}
 
-	public Application get(Class<?> clz, String token) throws Exception {
-		List<Application> list = this.get(clz.getName());
+	public Application get(String className, String token) throws Exception {
+		List<Application> list = this.get(className);
 		if (null != list) {
 			for (Application application : list) {
 				if (StringUtils.equals(token, application.getToken())) {
@@ -52,11 +52,20 @@ public class Applications extends ConcurrentHashMap<String, CopyOnWriteArrayList
 		return this.get(clz.getName());
 	}
 
-	public void add(Class<?> applicationClass, Application application) throws Exception {
-		CopyOnWriteArrayList<Application> list = this.get(applicationClass.getName());
+//	public void add(Class<?> applicationClass, Application application) throws Exception {
+//		CopyOnWriteArrayList<Application> list = this.get(applicationClass.getName());
+//		if (null == list) {
+//			list = new CopyOnWriteArrayList<Application>();
+//			this.put(applicationClass.getName(), list);
+//		}
+//		list.add(application);
+//	}
+
+	public void add(String className, Application application) throws Exception {
+		CopyOnWriteArrayList<Application> list = this.get(className);
 		if (null == list) {
 			list = new CopyOnWriteArrayList<Application>();
-			this.put(applicationClass.getName(), list);
+			this.put(className, list);
 		}
 		list.add(application);
 	}
@@ -177,9 +186,9 @@ public class Applications extends ConcurrentHashMap<String, CopyOnWriteArrayList
 		return this.putQuery(false, cls, uri, body);
 	}
 
-	public Application randomWithWeight(Class<?> clz) throws Exception {
+	public Application randomWithWeight(String className) throws Exception {
 		List<Application> availabeApplications = new ArrayList<>();
-		List<Application> list = this.get(clz.getName());
+		List<Application> list = this.get(className);
 		if (null != list) {
 			for (Application app : list) {
 				availabeApplications.add(app);
@@ -204,6 +213,10 @@ public class Applications extends ConcurrentHashMap<String, CopyOnWriteArrayList
 		throw new Exception("randomWithWeight error.");
 	}
 
+	public Application randomWithWeight(Class<?> clz) throws Exception {
+		return this.randomWithWeight(clz.getName());
+	}
+
 	public static String joinQueryUri(String... parts) {
 		return Stream.of(parts).map(s -> {
 			try {
@@ -215,4 +228,15 @@ public class Applications extends ConcurrentHashMap<String, CopyOnWriteArrayList
 		}).collect(Collectors.joining("/"));
 	}
 
+	public List<String> listContainEntity(String name) {
+		List<String> os = new ArrayList<>();
+		this.entrySet().stream().forEach(o -> {
+			if (!o.getValue().isEmpty()) {
+				if (o.getValue().get(0).getDependency().containerEntities.contains(name)) {
+					os.add(o.getKey());
+				}
+			}
+		});
+		return os;
+	}
 }

+ 0 - 143
o2server/x_base_core_project/src/main/java/com/x/base/core/project/AssembleA.java

@@ -1,148 +1,5 @@
 package com.x.base.core.project;
 
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.commons.io.FileUtils;
-import org.apache.commons.io.filefilter.WildcardFileFilter;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.commons.lang3.reflect.FieldUtils;
-
-import com.x.base.core.project.tools.JarTools;
-
-import io.github.lukehutch.fastclasspathscanner.FastClasspathScanner;
-import io.github.lukehutch.fastclasspathscanner.scanner.ScanResult;
-
 public abstract class AssembleA extends Deployable {
 
-	public static <T extends AssembleA> List<Class<T>> dependWith(Class<?> cls) throws Exception {
-		List<Class<T>> os = new ArrayList<>();
-		ScanResult scan = new FastClasspathScanner(AssembleA.class.getPackage().getName()).scan();
-		List<String> names = scan.getNamesOfSubclassesOf(AssembleA.class);
-		for (String name : names) {
-			Class<T> c = (Class<T>) Class.forName(name);
-			List<Class<?>> dependents = (List<Class<?>>) FieldUtils.readStaticField(c, "dependents");
-			if (dependents.contains(cls)) {
-				os.add(c);
-			}
-		}
-		return os;
-	}
-
-	private File concreteStructure(String distPath, String repositoryPath) throws Exception {
-		File dir = new File(distPath, this.getName());
-		FileUtils.forceMkdir(dir);
-		FileUtils.cleanDirectory(dir);
-		File webInf = new File(dir, "WEB-INF");
-		FileUtils.forceMkdir(webInf);
-		File lib = new File(webInf, "lib");
-		FileUtils.forceMkdir(lib);
-		File classes = new File(webInf, "classes");
-		FileUtils.forceMkdir(classes);
-		File metaInf = new File(classes, "META-INF");
-		FileUtils.forceMkdir(metaInf);
-		this.copyPersistence(metaInf, repositoryPath);
-		this.copyJar(lib, repositoryPath);
-		this.extractZip(dir, repositoryPath);
-		this.createWebXml(webInf);
-		return dir;
-	}
-
-	// private void createCenterServerFile(File metaInf, String host, Integer
-	// port, String cipher) throws Exception {
-	// TreeMap<String, Object> map = new TreeMap<>();
-	// map.put("host", StringUtils.trimToEmpty(host));
-	// map.put("port", null != port ? port : 30080);
-	// map.put("cipher", cipher);
-	// FileUtils.writeStringToFile(new File(metaInf, "centerServer.json"),
-	// XGsonBuilder.toJson(map));
-	// }
-	//
-	// private void createConfigFile(File metaInf, String
-	// configApplicationServer) throws Exception {
-	// TreeMap<String, Object> map = new TreeMap<>();
-	// map.put("applicationServer",
-	// StringUtils.trimToEmpty(configApplicationServer));
-	// FileUtils.writeStringToFile(new File(metaInf, "config.json"),
-	// XGsonBuilder.toJson(map));
-	// }
-
-	private void copyJar(File lib, String repositoryPath) throws Exception {
-		File repositoryLib = new File(repositoryPath);
-		FileUtils.copyDirectory(repositoryLib, lib, new WildcardFileFilter("x_base_core*.jar"));
-		FileUtils.copyDirectory(repositoryLib, lib, new WildcardFileFilter("x_common_core*.jar"));
-		FileUtils.copyDirectory(new File(repositoryLib, "openjpa"), lib, new WildcardFileFilter("*.jar"));
-		FileUtils.copyDirectory(new File(repositoryLib, "ehcache"), lib, new WildcardFileFilter("*.jar"));
-		FileUtils.copyDirectory(new File(repositoryLib, "slf4j"), lib, new WildcardFileFilter("*.jar"));
-	}
-
-	private void copyPersistence(File metaInf, String repositoryPath) throws Exception {
-		FileUtils.copyFile(new File(repositoryPath, "x_persistence_" + this.getName() + ".xml"),
-				new File(metaInf, "x_persistence.xml"), false);
-	}
-
-	private void createWebXml(File webInf) throws Exception {
-		String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<web-app id=\"" + this.getName()
-				+ "\" metadata-complete=\"false\" version=\"3.0\">" + "<display-name>" + this.getName()
-				+ "</display-name>";
-		// xml += druid_servlet;
-		// xml += druid_servlet_mapping;
-		// xml += druid_filter;
-		// xml += druid_filter_mapping;
-		xml += "</web-app>";
-		File file = new File(webInf, "web.xml");
-		FileUtils.writeStringToFile(file, xml, "UTF-8");
-	}
-
-	// private void extractJar(File classes, String repositoryPath) throws
-	// Exception {
-	// File repositoryLib = new File(repositoryPath);
-	// Collection<File> files = FileUtils.listFiles(repositoryLib,
-	// new WildcardFileFilter(this.getName() + "-4.0.0.jar"), null);
-	// JarTools.unjar(files.iterator().next(), "", classes, true);
-	// }
-
-	private void extractZip(File dir, String repositoryPath) throws Exception {
-		File file = new File(repositoryPath, this.getName() + ".zip");
-		JarTools.unjar(file, "", dir, true);
-	}
-
-	@Override
-	public String pack(String distPath, String repositoryPath) throws Exception {
-		File dir = this.concreteStructure(distPath, repositoryPath);
-		custom(dir, repositoryPath);
-		File war = new File(distPath, this.getName() + ".war");
-		JarTools.jar(dir, war);
-		return war.getAbsolutePath();
-	}
-
-	protected abstract void custom(File dir, String repositoryPath) throws Exception;
-
-	protected String getName() {
-		return StringUtils.replace(this.getClass().getSimpleName(), ".", "_");
-	}
-
-	public class Argument {
-
-		private String distPath;
-		private String repositoryPath;
-
-		public String getDistPath() {
-			return distPath;
-		}
-
-		public void setDistPath(String distPath) {
-			this.distPath = distPath;
-		}
-
-		public String getRepositoryPath() {
-			return repositoryPath;
-		}
-
-		public void setRepositoryPath(String repositoryPath) {
-			this.repositoryPath = repositoryPath;
-		}
-
-	}
 }

+ 1 - 122
o2server/x_base_core_project/src/main/java/com/x/base/core/project/AssembleC.java

@@ -1,126 +1,5 @@
 package com.x.base.core.project;
 
-import java.io.File;
-
-import org.apache.commons.io.FileUtils;
-import org.apache.commons.io.filefilter.WildcardFileFilter;
-import org.apache.commons.lang3.StringUtils;
-
-import com.x.base.core.project.tools.JarTools;
-
 public abstract class AssembleC extends Deployable {
-
-	private File concreteStructure(String distPath, String repositoryPath) throws Exception {
-		File dir = new File(distPath, this.getName());
-		FileUtils.forceMkdir(dir);
-		FileUtils.cleanDirectory(dir);
-		File webInf = new File(dir, "WEB-INF");
-		FileUtils.forceMkdir(webInf);
-		File lib = new File(webInf, "lib");
-		FileUtils.forceMkdir(lib);
-		File classes = new File(webInf, "classes");
-		FileUtils.forceMkdir(classes);
-		File metaInf = new File(classes, "META-INF");
-		FileUtils.forceMkdir(metaInf);
-		this.copyPersistence(metaInf, repositoryPath);
-		this.copyJar(lib, repositoryPath);
-		this.extractZip(dir, repositoryPath);
-		this.createWebXml(webInf);
-		return dir;
-	}
-
-	// private void createCenterServerFile(File metaInf, String host, Integer
-	// port, String cipher) throws Exception {
-	// TreeMap<String, Object> map = new TreeMap<>();
-	// map.put("host", StringUtils.trimToEmpty(host));
-	// map.put("port", null != port ? port : 30080);
-	// map.put("cipher", cipher);
-	// FileUtils.writeStringToFile(new File(metaInf, "centerServer.json"),
-	// XGsonBuilder.toJson(map));
-	// }
-	//
-	// private void createConfigFile(File metaInf, String
-	// configApplicationServer) throws Exception {
-	// TreeMap<String, Object> map = new TreeMap<>();
-	// map.put("applicationServer",
-	// StringUtils.trimToEmpty(configApplicationServer));
-	// FileUtils.writeStringToFile(new File(metaInf, "config.json"),
-	// XGsonBuilder.toJson(map));
-	// }
-
-	private void copyJar(File lib, String repositoryPath) throws Exception {
-		File repositoryLib = new File(repositoryPath);
-		FileUtils.copyDirectory(repositoryLib, lib, new WildcardFileFilter("x_base_core*.jar"));
-		FileUtils.copyDirectory(repositoryLib, lib, new WildcardFileFilter("x_common_core*.jar"));
-		FileUtils.copyDirectory(new File(repositoryLib, "openjpa"), lib, new WildcardFileFilter("*.jar"));
-		FileUtils.copyDirectory(new File(repositoryLib, "ehcache"), lib, new WildcardFileFilter("*.jar"));
-		FileUtils.copyDirectory(new File(repositoryLib, "slf4j"), lib, new WildcardFileFilter("*.jar"));
-	}
-
-	private void copyPersistence(File metaInf, String repositoryPath) throws Exception {
-		FileUtils.copyFile(new File(repositoryPath, "x_persistence_" + this.getName() + ".xml"),
-				new File(metaInf, "x_persistence.xml"), false);
-	}
-
-	private void createWebXml(File webInf) throws Exception {
-		String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<web-app id=\"" + this.getName()
-				+ "\" metadata-complete=\"false\" version=\"3.0\">" + "<display-name>" + this.getName()
-				+ "</display-name>";
-		// xml += druid_servlet;
-		// xml += druid_servlet_mapping;
-		// xml += druid_filter;
-		// xml += druid_filter_mapping;
-		xml += "</web-app>";
-		File file = new File(webInf, "web.xml");
-		FileUtils.writeStringToFile(file, xml, "UTF-8");
-	}
-
-	// private void extractJar(File classes, String repositoryPath) throws
-	// Exception {
-	// File repositoryLib = new File(repositoryPath);
-	// Collection<File> files = FileUtils.listFiles(repositoryLib,
-	// new WildcardFileFilter(this.getName() + "-4.0.0.jar"), null);
-	// JarTools.unjar(files.iterator().next(), "", classes, true);
-	// }
-
-	private void extractZip(File dir, String repositoryPath) throws Exception {
-		File file = new File(repositoryPath, this.getName() + ".zip");
-		JarTools.unjar(file, "", dir, true);
-	}
-
-	@Override
-	public String pack(String distPath, String repositoryPath) throws Exception {
-		File dir = this.concreteStructure(distPath, repositoryPath);
-		// custom(dir, repositoryPath);
-		File war = new File(distPath, this.getName() + ".war");
-		JarTools.jar(dir, war);
-		return war.getAbsolutePath();
-	}
-
-	protected String getName() {
-		return StringUtils.replace(this.getClass().getSimpleName(), ".", "_");
-	}
-
-	public class Argument {
-
-		private String distPath;
-		private String repositoryPath;
-
-		public String getDistPath() {
-			return distPath;
-		}
-
-		public void setDistPath(String distPath) {
-			this.distPath = distPath;
-		}
-
-		public String getRepositoryPath() {
-			return repositoryPath;
-		}
-
-		public void setRepositoryPath(String repositoryPath) {
-			this.repositoryPath = repositoryPath;
-		}
-
-	}
+	
 }

+ 1 - 122
o2server/x_base_core_project/src/main/java/com/x/base/core/project/AssembleM.java

@@ -1,126 +1,5 @@
 package com.x.base.core.project;
 
-import java.io.File;
-
-import org.apache.commons.io.FileUtils;
-import org.apache.commons.io.filefilter.WildcardFileFilter;
-import org.apache.commons.lang3.StringUtils;
-
-import com.x.base.core.project.tools.JarTools;
-
 public abstract class AssembleM extends Deployable {
 
-	private File concreteStructure(String distPath, String repositoryPath) throws Exception {
-		File dir = new File(distPath, this.getName());
-		FileUtils.forceMkdir(dir);
-		FileUtils.cleanDirectory(dir);
-		File webInf = new File(dir, "WEB-INF");
-		FileUtils.forceMkdir(webInf);
-		File lib = new File(webInf, "lib");
-		FileUtils.forceMkdir(lib);
-		File classes = new File(webInf, "classes");
-		FileUtils.forceMkdir(classes);
-		File metaInf = new File(classes, "META-INF");
-		FileUtils.forceMkdir(metaInf);
-		this.copyPersistence(metaInf, repositoryPath);
-		this.copyJar(lib, repositoryPath);
-		this.extractZip(dir, repositoryPath);
-		this.createWebXml(webInf);
-		return dir;
-	}
-
-	// private void createCenterServerFile(File metaInf, String host, Integer
-	// port, String cipher) throws Exception {
-	// TreeMap<String, Object> map = new TreeMap<>();
-	// map.put("host", StringUtils.trimToEmpty(host));
-	// map.put("port", null != port ? port : 30080);
-	// map.put("cipher", cipher);
-	// FileUtils.writeStringToFile(new File(metaInf, "centerServer.json"),
-	// XGsonBuilder.toJson(map));
-	// }
-	//
-	// private void createConfigFile(File metaInf, String
-	// configApplicationServer) throws Exception {
-	// TreeMap<String, Object> map = new TreeMap<>();
-	// map.put("applicationServer",
-	// StringUtils.trimToEmpty(configApplicationServer));
-	// FileUtils.writeStringToFile(new File(metaInf, "config.json"),
-	// XGsonBuilder.toJson(map));
-	// }
-
-	private void copyJar(File lib, String repositoryPath) throws Exception {
-		File repositoryLib = new File(repositoryPath);
-		FileUtils.copyDirectory(repositoryLib, lib, new WildcardFileFilter("x_base_core*.jar"));
-		FileUtils.copyDirectory(repositoryLib, lib, new WildcardFileFilter("x_common_core*.jar"));
-		FileUtils.copyDirectory(new File(repositoryLib, "openjpa"), lib, new WildcardFileFilter("*.jar"));
-		FileUtils.copyDirectory(new File(repositoryLib, "ehcache"), lib, new WildcardFileFilter("*.jar"));
-		FileUtils.copyDirectory(new File(repositoryLib, "slf4j"), lib, new WildcardFileFilter("*.jar"));
-	}
-
-	private void copyPersistence(File metaInf, String repositoryPath) throws Exception {
-		FileUtils.copyFile(new File(repositoryPath, "x_persistence_" + this.getName() + ".xml"),
-				new File(metaInf, "x_persistence.xml"), false);
-	}
-
-	private void createWebXml(File webInf) throws Exception {
-		String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<web-app id=\"" + this.getName()
-				+ "\" metadata-complete=\"false\" version=\"3.0\">" + "<display-name>" + this.getName()
-				+ "</display-name>";
-		// xml += druid_servlet;
-		// xml += druid_servlet_mapping;
-		// xml += druid_filter;
-		// xml += druid_filter_mapping;
-		xml += "</web-app>";
-		File file = new File(webInf, "web.xml");
-		FileUtils.writeStringToFile(file, xml, "UTF-8");
-	}
-
-	// private void extractJar(File classes, String repositoryPath) throws
-	// Exception {
-	// File repositoryLib = new File(repositoryPath);
-	// Collection<File> files = FileUtils.listFiles(repositoryLib,
-	// new WildcardFileFilter(this.getName() + "-4.0.0.jar"), null);
-	// JarTools.unjar(files.iterator().next(), "", classes, true);
-	// }
-
-	private void extractZip(File dir, String repositoryPath) throws Exception {
-		File file = new File(repositoryPath, this.getName() + ".zip");
-		JarTools.unjar(file, "", dir, true);
-	}
-
-	@Override
-	public String pack(String distPath, String repositoryPath) throws Exception {
-		File dir = this.concreteStructure(distPath, repositoryPath);
-		//custom(dir, repositoryPath);
-		File war = new File(distPath, this.getName() + ".war");
-		JarTools.jar(dir, war);
-		return war.getAbsolutePath();
-	}
-
-	protected String getName() {
-		return StringUtils.replace(this.getClass().getSimpleName(), ".", "_");
-	}
-
-	public class Argument {
-
-		private String distPath;
-		private String repositoryPath;
-
-		public String getDistPath() {
-			return distPath;
-		}
-
-		public void setDistPath(String distPath) {
-			this.distPath = distPath;
-		}
-
-		public String getRepositoryPath() {
-			return repositoryPath;
-		}
-
-		public void setRepositoryPath(String repositoryPath) {
-			this.repositoryPath = repositoryPath;
-		}
-
-	}
-}
+}

+ 0 - 120
o2server/x_base_core_project/src/main/java/com/x/base/core/project/CompileA.java

@@ -1,125 +1,5 @@
 package com.x.base.core.project;
 
-import java.util.List;
-
-import org.apache.commons.lang3.StringUtils;
-
-import com.x.base.core.project.gson.XGsonBuilder;
-import com.x.base.core.project.tools.ListTools;
-
-import io.github.lukehutch.fastclasspathscanner.FastClasspathScanner;
-import io.github.lukehutch.fastclasspathscanner.scanner.ScanResult;
-
 public class CompileA {
-	public static void main(String[] args) throws Exception {
-		String str = StringUtils.replace(args[0], "\\", "/");
-		Argument arg = XGsonBuilder.instance().fromJson(str, Argument.class);
-		compileAll(arg);
-
-	}
-
-	public static void compileAll(Argument arg) throws Exception {
-		ScanResult scanResult = new FastClasspathScanner(Packages.PREFIX).scan();
-		if (arg.getIncludeCore()) {
-			for (String str : scanResult.getNamesOfSubclassesOf(CoreA.class)) {
-				Class<?> clz = Class.forName(str);
-				String name = clz.getSimpleName();
-				if (ListTools.nullToEmpty(arg.getExcludes()).contains(name)) {
-					System.out.println("skip name:" + name + ".");
-					continue;
-				}
-				System.out.println("compile name:" + name + ".");
-				Compile.compile(name, arg.getRootPath() + "/" + name);
-			}
-		}
-		if (arg.getIncludeService()) {
-			for (String str : scanResult.getNamesOfSubclassesOf(ServiceA.class)) {
-				Class<?> clz = Class.forName(str);
-				String name = clz.getSimpleName();
-				if (ListTools.nullToEmpty(arg.getExcludes()).contains(name)) {
-					System.out.println("skip name:" + name + ".");
-					continue;
-				}
-				System.out.println("compile name:" + name + ".");
-				Compile.compile(name, arg.getRootPath() + "/" + name);
-			}
-		}
-		if (arg.getIncludeAssemble()) {
-			for (String str : scanResult.getNamesOfSubclassesOf(AssembleA.class)) {
-				Class<?> clz = Class.forName(str);
-				String name = clz.getSimpleName();
-				if (ListTools.nullToEmpty(arg.getExcludes()).contains(name)) {
-					System.out.println("skip name:" + name + ".");
-					continue;
-				}
-				System.out.println("compile name:" + name + ".");
-				Compile.compile(name, arg.getRootPath() + "/" + name);
-			}
-		}
-//		if (arg.includeCenter) {
-//			String name = x_program_center.class.getSimpleName();
-//			System.out.println("compile name:" + name + ".");
-//			Compile.compile(name, arg.getRootPath() + "/" + name);
-//		}
-	}
-
-	public class Argument {
-
-		private String rootPath;
-		private Boolean includeAssemble;
-		private Boolean includeCore;
-		private Boolean includeService;
-	//private Boolean includeCenter;
-
-		private List<String> excludes;
-
-		public Boolean getIncludeAssemble() {
-			return includeAssemble;
-		}
-
-		public void setIncludeAssemble(Boolean includeAssemble) {
-			this.includeAssemble = includeAssemble;
-		}
-
-		public Boolean getIncludeCore() {
-			return includeCore;
-		}
-
-		public void setIncludeCore(Boolean includeCore) {
-			this.includeCore = includeCore;
-		}
-
-		public Boolean getIncludeService() {
-			return includeService;
-		}
-
-		public void setIncludeService(Boolean includeService) {
-			this.includeService = includeService;
-		}
-//
-//		public Boolean getIncludeCenter() {
-//			return includeCenter;
-//		}
-//
-//		public void setIncludeCenter(Boolean includeCenter) {
-//			this.includeCenter = includeCenter;
-//		}
-
-		public String getRootPath() {
-			return rootPath;
-		}
-
-		public void setRootPath(String rootPath) {
-			this.rootPath = rootPath;
-		}
-
-		public List<String> getExcludes() {
-			return excludes;
-		}
-
-		public void setExcludes(List<String> excludes) {
-			this.excludes = excludes;
-		}
 
-	}
 }

+ 0 - 111
o2server/x_base_core_project/src/main/java/com/x/base/core/project/CompileC.java

@@ -1,116 +1,5 @@
 package com.x.base.core.project;
 
-import java.util.List;
-
-import org.apache.commons.lang3.StringUtils;
-
-import com.x.base.core.project.gson.XGsonBuilder;
-import com.x.base.core.project.tools.ListTools;
-
-import io.github.lukehutch.fastclasspathscanner.FastClasspathScanner;
-import io.github.lukehutch.fastclasspathscanner.scanner.ScanResult;
-
 public class CompileC {
-	public static void main(String[] args) throws Exception {
-		String str = StringUtils.replace(args[0], "\\", "/");
-		Argument arg = XGsonBuilder.instance().fromJson(str, Argument.class);
-		compileAll(arg);
-
-	}
-
-	public static void compileAll(Argument arg) throws Exception {
-		ScanResult scanResult = new FastClasspathScanner(Packages.PREFIX).scan();
-		if (arg.getIncludeCore()) {
-			for (String str : scanResult.getNamesOfSubclassesOf(CoreC.class)) {
-				Class<?> clz = Class.forName(str);
-				String name = clz.getSimpleName();
-				if (ListTools.nullToEmpty(arg.getExcludes()).contains(name)) {
-					System.out.println("skip name:" + name + ".");
-					continue;
-				}
-				System.out.println("compile name:" + name + ".");
-				Compile.compile(name, arg.getRootPath() + "/" + name);
-			}
-		}
-		if (arg.getIncludeService()) {
-			for (String str : scanResult.getNamesOfSubclassesOf(ServiceC.class)) {
-				Class<?> clz = Class.forName(str);
-				String name = clz.getSimpleName();
-				if (ListTools.nullToEmpty(arg.getExcludes()).contains(name)) {
-					System.out.println("skip name:" + name + ".");
-					continue;
-				}
-				System.out.println("compile name:" + name + ".");
-				Compile.compile(name, arg.getRootPath() + "/" + name);
-			}
-		}
-		if (arg.getIncludeAssemble()) {
-			for (String str : scanResult.getNamesOfSubclassesOf(AssembleC.class)) {
-				Class<?> clz = Class.forName(str);
-				String name = clz.getSimpleName();
-				if (ListTools.nullToEmpty(arg.getExcludes()).contains(name)) {
-					System.out.println("skip name:" + name + ".");
-					continue;
-				}
-				System.out.println("compile name:" + name + ".");
-				Compile.compile(name, arg.getRootPath() + "/" + name);
-			}
-		}
-		// if (arg.includeCenter) {
-		// String name = x_program_center.class.getSimpleName();
-		// System.out.println("compile name:" + name + ".");
-		// Compile.compile(name, arg.getRootPath() + "/" + name);
-		// }
-	}
-
-	public class Argument {
-
-		private String rootPath;
-		private Boolean includeAssemble;
-		private Boolean includeCore;
-		private Boolean includeService;
-
-		private List<String> excludes;
-
-		public Boolean getIncludeAssemble() {
-			return includeAssemble;
-		}
-
-		public void setIncludeAssemble(Boolean includeAssemble) {
-			this.includeAssemble = includeAssemble;
-		}
-
-		public Boolean getIncludeCore() {
-			return includeCore;
-		}
-
-		public void setIncludeCore(Boolean includeCore) {
-			this.includeCore = includeCore;
-		}
-
-		public Boolean getIncludeService() {
-			return includeService;
-		}
-
-		public void setIncludeService(Boolean includeService) {
-			this.includeService = includeService;
-		}
-
-		public String getRootPath() {
-			return rootPath;
-		}
-
-		public void setRootPath(String rootPath) {
-			this.rootPath = rootPath;
-		}
-
-		public List<String> getExcludes() {
-			return excludes;
-		}
-
-		public void setExcludes(List<String> excludes) {
-			this.excludes = excludes;
-		}
 
-	}
 }

+ 1 - 112
o2server/x_base_core_project/src/main/java/com/x/base/core/project/CompileM.java

@@ -1,116 +1,5 @@
 package com.x.base.core.project;
 
-import java.util.List;
-
-import org.apache.commons.lang3.StringUtils;
-
-import com.x.base.core.project.gson.XGsonBuilder;
-import com.x.base.core.project.tools.ListTools;
-
-import io.github.lukehutch.fastclasspathscanner.FastClasspathScanner;
-import io.github.lukehutch.fastclasspathscanner.scanner.ScanResult;
-
 public class CompileM {
-	public static void main(String[] args) throws Exception {
-		String str = StringUtils.replace(args[0], "\\", "/");
-		Argument arg = XGsonBuilder.instance().fromJson(str, Argument.class);
-		compileAll(arg);
-
-	}
-
-	public static void compileAll(Argument arg) throws Exception {
-		ScanResult scanResult = new FastClasspathScanner(Packages.PREFIX).scan();
-		if (arg.getIncludeCore()) {
-			for (String str : scanResult.getNamesOfSubclassesOf(CoreC.class)) {
-				Class<?> clz = Class.forName(str);
-				String name = clz.getSimpleName();
-				if (ListTools.nullToEmpty(arg.getExcludes()).contains(name)) {
-					System.out.println("skip name:" + name + ".");
-					continue;
-				}
-				System.out.println("compile name:" + name + ".");
-				Compile.compile(name, arg.getRootPath() + "/" + name);
-			}
-		}
-		if (arg.getIncludeService()) {
-			for (String str : scanResult.getNamesOfSubclassesOf(ServiceC.class)) {
-				Class<?> clz = Class.forName(str);
-				String name = clz.getSimpleName();
-				if (ListTools.nullToEmpty(arg.getExcludes()).contains(name)) {
-					System.out.println("skip name:" + name + ".");
-					continue;
-				}
-				System.out.println("compile name:" + name + ".");
-				Compile.compile(name, arg.getRootPath() + "/" + name);
-			}
-		}
-		if (arg.getIncludeAssemble()) {
-			for (String str : scanResult.getNamesOfSubclassesOf(AssembleC.class)) {
-				Class<?> clz = Class.forName(str);
-				String name = clz.getSimpleName();
-				if (ListTools.nullToEmpty(arg.getExcludes()).contains(name)) {
-					System.out.println("skip name:" + name + ".");
-					continue;
-				}
-				System.out.println("compile name:" + name + ".");
-				Compile.compile(name, arg.getRootPath() + "/" + name);
-			}
-		}
-		// if (arg.includeCenter) {
-		// String name = x_program_center.class.getSimpleName();
-		// System.out.println("compile name:" + name + ".");
-		// Compile.compile(name, arg.getRootPath() + "/" + name);
-		// }
-	}
-
-	public class Argument {
-
-		private String rootPath;
-		private Boolean includeAssemble;
-		private Boolean includeCore;
-		private Boolean includeService;
-
-		private List<String> excludes;
-
-		public Boolean getIncludeAssemble() {
-			return includeAssemble;
-		}
-
-		public void setIncludeAssemble(Boolean includeAssemble) {
-			this.includeAssemble = includeAssemble;
-		}
-
-		public Boolean getIncludeCore() {
-			return includeCore;
-		}
-
-		public void setIncludeCore(Boolean includeCore) {
-			this.includeCore = includeCore;
-		}
-
-		public Boolean getIncludeService() {
-			return includeService;
-		}
-
-		public void setIncludeService(Boolean includeService) {
-			this.includeService = includeService;
-		}
-
-		public String getRootPath() {
-			return rootPath;
-		}
-
-		public void setRootPath(String rootPath) {
-			this.rootPath = rootPath;
-		}
-
-		public List<String> getExcludes() {
-			return excludes;
-		}
-
-		public void setExcludes(List<String> excludes) {
-			this.excludes = excludes;
-		}
-
-	}
+	 
 }

+ 23 - 0
o2server/x_base_core_project/src/main/java/com/x/base/core/project/Dependency.java

@@ -0,0 +1,23 @@
+package com.x.base.core.project;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class Dependency {
+
+	public Dependency() {
+		this.customJars = new ArrayList<String>();
+		this.storeJars = new ArrayList<String>();
+		this.containerEntities = new ArrayList<String>();
+		this.storageTypes = new ArrayList<String>();
+	}
+
+	public List<String> customJars = new ArrayList<>();
+
+	public List<String> storeJars = new ArrayList<>();
+
+	public List<String> containerEntities = new ArrayList<>();
+
+	public List<String> storageTypes = new ArrayList<>();
+
+}

+ 10 - 2
o2server/x_base_core_project/src/main/java/com/x/base/core/project/Deployable.java

@@ -2,11 +2,19 @@ package com.x.base.core.project;
 
 public abstract class Deployable extends Compilable {
 
+	public Deployable() {
+		this.dependency = new Dependency();
+	}
+
+	protected Dependency dependency;
+
+	public Dependency dependency() {
+		return this.dependency;
+	}
+
 	protected static final String druid_servlet = "<servlet><servlet-name>DruidStatView</servlet-name><servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class></servlet>";
 	protected static final String druid_servlet_mapping = "<servlet-mapping><servlet-name>DruidStatView</servlet-name><url-pattern>/druid/*</url-pattern></servlet-mapping>";
 	protected static final String druid_filter = "<filter><filter-name>DruidWebStatFilter</filter-name><filter-class>com.alibaba.druid.support.http.WebStatFilter</filter-class><init-param><param-name>exclusions</param-name><param-value>*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*</param-value></init-param></filter>";
 	protected static final String druid_filter_mapping = "<filter-mapping><filter-name>DruidWebStatFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>";
 
-	public abstract String pack(String distPath, String repositoryPath) throws Exception;
-
 }

+ 1 - 165
o2server/x_base_core_project/src/main/java/com/x/base/core/project/ServiceC.java

@@ -1,169 +1,5 @@
 package com.x.base.core.project;
 
-import java.io.File;
-import java.util.Collection;
-import java.util.TreeMap;
-
-import org.apache.commons.io.FileUtils;
-import org.apache.commons.io.filefilter.WildcardFileFilter;
-import org.apache.commons.lang3.StringUtils;
-
-import com.x.base.core.project.gson.XGsonBuilder;
-import com.x.base.core.project.tools.JarTools;
-
 public abstract class ServiceC extends Deployable {
-	private File concreteStructure(String distPath, String repositoryPath) throws Exception {
-		File dir = new File(distPath, this.getName());
-		FileUtils.forceMkdir(dir);
-		FileUtils.cleanDirectory(dir);
-		File webInf = new File(dir, "WEB-INF");
-		FileUtils.forceMkdir(webInf);
-		File lib = new File(webInf, "lib");
-		FileUtils.forceMkdir(lib);
-		File classes = new File(webInf, "classes");
-		FileUtils.forceMkdir(classes);
-		File metaInf = new File(classes, "META-INF");
-		FileUtils.forceMkdir(metaInf);
-		this.copyPersistence(metaInf, repositoryPath);
-		this.copyJar_independent(lib, repositoryPath);
-		this.extractJar(classes, repositoryPath);
-		this.extractZip(dir, repositoryPath);
-		this.createWebXml(webInf);
-		return dir;
-	}
-
-	private void createCenterServerFile(File metaInf, String host, Integer port, String cipher) throws Exception {
-		TreeMap<String, Object> map = new TreeMap<>();
-		map.put("host", StringUtils.trimToEmpty(host));
-		map.put("port", null != port ? port : 20080);
-		map.put("cipher", cipher);
-		FileUtils.writeStringToFile(new File(metaInf, "centerServer.json"), XGsonBuilder.toJson(map));
-	}
-
-	private void createConfigFile(File metaInf, String configApplicationServer) throws Exception {
-		TreeMap<String, Object> map = new TreeMap<>();
-		map.put("applicationServer", StringUtils.trimToEmpty(configApplicationServer));
-		FileUtils.writeStringToFile(new File(metaInf, "config.json"), XGsonBuilder.toJson(map));
-	}
-
-	private void copyJar_independent(File lib, String repositoryPath) throws Exception {
-		File repositoryLib = new File(repositoryPath);
-		FileUtils.copyDirectory(repositoryLib, lib, new WildcardFileFilter("x_base_core*.jar"));
-		FileUtils.copyDirectory(repositoryLib, lib, new WildcardFileFilter("x_common_core*.jar"));
-		FileUtils.copyDirectory(new File(repositoryLib, "openjpa"), lib, new WildcardFileFilter("*.jar"));
-		FileUtils.copyDirectory(new File(repositoryLib, "ehcache"), lib, new WildcardFileFilter("*.jar"));
-		FileUtils.copyDirectory(new File(repositoryLib, "slf4j"), lib, new WildcardFileFilter("*.jar"));
-	}
-
-	private void copyPersistence(File metaInf, String repositoryPath) throws Exception {
-		FileUtils.copyFile(new File(repositoryPath, "x_persistence_" + this.getName() + ".xml"),
-				new File(metaInf, "x_persistence.xml"), false);
-	}
-
-	private void createWebXml(File webInf) throws Exception {
-		String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<web-app id=\"" + this.getName()
-				+ "\" metadata-complete=\"false\" version=\"3.0\">" + "<display-name>" + this.getName()
-				+ "</display-name>";
-		xml += druid_servlet;
-		xml += druid_servlet_mapping;
-		xml += druid_filter;
-		xml += druid_filter_mapping;
-		xml += "</web-app>";
-		File file = new File(webInf, "web.xml");
-		FileUtils.writeStringToFile(file, xml, "UTF-8");
-	}
-
-	private void extractJar(File classes, String repositoryPath) throws Exception {
-		File repositoryLib = new File(repositoryPath);
-		Collection<File> files = FileUtils.listFiles(repositoryLib, new WildcardFileFilter(this.getName() + "*.jar"),
-				null);
-		JarTools.unjar(files.iterator().next(), "", classes, true);
-	}
-
-	private void extractZip(File dir, String repositoryPath) throws Exception {
-		File file = new File(repositoryPath, this.getName() + ".zip");
-		JarTools.unjar(file, "", dir, true);
-	}
-
-	@Override
-	public String pack(String distPath, String repositoryPath) throws Exception {
-		File dir = this.concreteStructure(distPath, repositoryPath);
-		custom(dir, repositoryPath);
-		File war = new File(distPath, this.getName() + ".war");
-		JarTools.jar(dir, war);
-		return war.getAbsolutePath();
-	}
-
-	protected abstract void custom(File dir, String repositoryPath) throws Exception;
-
-	protected String getName() {
-		return StringUtils.replace(this.getClass().getSimpleName(), ".", "_");
-	}
-
-	public class Argument {
-		private String distPath;
-		private String repositoryPath;
-		private String resourcesPath;
-		private String centerHost;
-		private Integer centerPort;
-		private String centerCipher;
-		private String configApplicationServer;
-
-		public String getDistPath() {
-			return distPath;
-		}
-
-		public void setDistPath(String distPath) {
-			this.distPath = distPath;
-		}
-
-		public String getRepositoryPath() {
-			return repositoryPath;
-		}
-
-		public void setRepositoryPath(String repositoryPath) {
-			this.repositoryPath = repositoryPath;
-		}
-
-		public String getResourcesPath() {
-			return resourcesPath;
-		}
-
-		public void setResourcesPath(String resourcesPath) {
-			this.resourcesPath = resourcesPath;
-		}
-
-		public String getCenterHost() {
-			return centerHost;
-		}
-
-		public void setCenterHost(String centerHost) {
-			this.centerHost = centerHost;
-		}
-
-		public Integer getCenterPort() {
-			return centerPort;
-		}
-
-		public void setCenterPort(Integer centerPort) {
-			this.centerPort = centerPort;
-		}
-
-		public String getCenterCipher() {
-			return centerCipher;
-		}
-
-		public void setCenterCipher(String centerCipher) {
-			this.centerCipher = centerCipher;
-		}
-
-		public String getConfigApplicationServer() {
-			return configApplicationServer;
-		}
-
-		public void setConfigApplicationServer(String configApplicationServer) {
-			this.configApplicationServer = configApplicationServer;
-		}
-
-	}
+	 
 }

+ 1 - 165
o2server/x_base_core_project/src/main/java/com/x/base/core/project/ServiceM.java

@@ -1,169 +1,5 @@
 package com.x.base.core.project;
 
-import java.io.File;
-import java.util.Collection;
-import java.util.TreeMap;
-
-import org.apache.commons.io.FileUtils;
-import org.apache.commons.io.filefilter.WildcardFileFilter;
-import org.apache.commons.lang3.StringUtils;
-
-import com.x.base.core.project.gson.XGsonBuilder;
-import com.x.base.core.project.tools.JarTools;
-
 public abstract class ServiceM extends Deployable {
-	private File concreteStructure(String distPath, String repositoryPath) throws Exception {
-		File dir = new File(distPath, this.getName());
-		FileUtils.forceMkdir(dir);
-		FileUtils.cleanDirectory(dir);
-		File webInf = new File(dir, "WEB-INF");
-		FileUtils.forceMkdir(webInf);
-		File lib = new File(webInf, "lib");
-		FileUtils.forceMkdir(lib);
-		File classes = new File(webInf, "classes");
-		FileUtils.forceMkdir(classes);
-		File metaInf = new File(classes, "META-INF");
-		FileUtils.forceMkdir(metaInf);
-		this.copyPersistence(metaInf, repositoryPath);
-		this.copyJar_independent(lib, repositoryPath);
-		this.extractJar(classes, repositoryPath);
-		this.extractZip(dir, repositoryPath);
-		this.createWebXml(webInf);
-		return dir;
-	}
-
-	private void createCenterServerFile(File metaInf, String host, Integer port, String cipher) throws Exception {
-		TreeMap<String, Object> map = new TreeMap<>();
-		map.put("host", StringUtils.trimToEmpty(host));
-		map.put("port", null != port ? port : 20080);
-		map.put("cipher", cipher);
-		FileUtils.writeStringToFile(new File(metaInf, "centerServer.json"), XGsonBuilder.toJson(map));
-	}
-
-	private void createConfigFile(File metaInf, String configApplicationServer) throws Exception {
-		TreeMap<String, Object> map = new TreeMap<>();
-		map.put("applicationServer", StringUtils.trimToEmpty(configApplicationServer));
-		FileUtils.writeStringToFile(new File(metaInf, "config.json"), XGsonBuilder.toJson(map));
-	}
-
-	private void copyJar_independent(File lib, String repositoryPath) throws Exception {
-		File repositoryLib = new File(repositoryPath);
-		FileUtils.copyDirectory(repositoryLib, lib, new WildcardFileFilter("x_base_core*.jar"));
-		FileUtils.copyDirectory(repositoryLib, lib, new WildcardFileFilter("x_common_core*.jar"));
-		FileUtils.copyDirectory(new File(repositoryLib, "openjpa"), lib, new WildcardFileFilter("*.jar"));
-		FileUtils.copyDirectory(new File(repositoryLib, "ehcache"), lib, new WildcardFileFilter("*.jar"));
-		FileUtils.copyDirectory(new File(repositoryLib, "slf4j"), lib, new WildcardFileFilter("*.jar"));
-	}
-
-	private void copyPersistence(File metaInf, String repositoryPath) throws Exception {
-		FileUtils.copyFile(new File(repositoryPath, "x_persistence_" + this.getName() + ".xml"),
-				new File(metaInf, "x_persistence.xml"), false);
-	}
-
-	private void createWebXml(File webInf) throws Exception {
-		String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<web-app id=\"" + this.getName()
-				+ "\" metadata-complete=\"false\" version=\"3.0\">" + "<display-name>" + this.getName()
-				+ "</display-name>";
-		xml += druid_servlet;
-		xml += druid_servlet_mapping;
-		xml += druid_filter;
-		xml += druid_filter_mapping;
-		xml += "</web-app>";
-		File file = new File(webInf, "web.xml");
-		FileUtils.writeStringToFile(file, xml, "UTF-8");
-	}
-
-	private void extractJar(File classes, String repositoryPath) throws Exception {
-		File repositoryLib = new File(repositoryPath);
-		Collection<File> files = FileUtils.listFiles(repositoryLib, new WildcardFileFilter(this.getName() + "*.jar"),
-				null);
-		JarTools.unjar(files.iterator().next(), "", classes, true);
-	}
-
-	private void extractZip(File dir, String repositoryPath) throws Exception {
-		File file = new File(repositoryPath, this.getName() + ".zip");
-		JarTools.unjar(file, "", dir, true);
-	}
-
-	@Override
-	public String pack(String distPath, String repositoryPath) throws Exception {
-		File dir = this.concreteStructure(distPath, repositoryPath);
-		custom(dir, repositoryPath);
-		File war = new File(distPath, this.getName() + ".war");
-		JarTools.jar(dir, war);
-		return war.getAbsolutePath();
-	}
-
-	protected abstract void custom(File dir, String repositoryPath) throws Exception;
-
-	protected String getName() {
-		return StringUtils.replace(this.getClass().getSimpleName(), ".", "_");
-	}
-
-	public class Argument {
-		private String distPath;
-		private String repositoryPath;
-		private String resourcesPath;
-		private String centerHost;
-		private Integer centerPort;
-		private String centerCipher;
-		private String configApplicationServer;
-
-		public String getDistPath() {
-			return distPath;
-		}
-
-		public void setDistPath(String distPath) {
-			this.distPath = distPath;
-		}
-
-		public String getRepositoryPath() {
-			return repositoryPath;
-		}
-
-		public void setRepositoryPath(String repositoryPath) {
-			this.repositoryPath = repositoryPath;
-		}
-
-		public String getResourcesPath() {
-			return resourcesPath;
-		}
-
-		public void setResourcesPath(String resourcesPath) {
-			this.resourcesPath = resourcesPath;
-		}
-
-		public String getCenterHost() {
-			return centerHost;
-		}
-
-		public void setCenterHost(String centerHost) {
-			this.centerHost = centerHost;
-		}
-
-		public Integer getCenterPort() {
-			return centerPort;
-		}
-
-		public void setCenterPort(Integer centerPort) {
-			this.centerPort = centerPort;
-		}
-
-		public String getCenterCipher() {
-			return centerCipher;
-		}
-
-		public void setCenterCipher(String centerCipher) {
-			this.centerCipher = centerCipher;
-		}
-
-		public String getConfigApplicationServer() {
-			return configApplicationServer;
-		}
-
-		public void setConfigApplicationServer(String configApplicationServer) {
-			this.configApplicationServer = configApplicationServer;
-		}
-
-	}
+	 
 }

+ 16 - 14
o2server/x_base_core_project/src/main/java/com/x/base/core/project/annotation/Describe.java

@@ -48,8 +48,9 @@ import com.x.base.core.project.logger.LoggerFactory;
 import com.x.base.core.project.tools.DefaultCharset;
 import com.x.base.core.project.tools.ListTools;
 
-import io.github.lukehutch.fastclasspathscanner.FastClasspathScanner;
-import io.github.lukehutch.fastclasspathscanner.scanner.ScanResult;
+import io.github.classgraph.ClassGraph;
+import io.github.classgraph.ClassInfo;
+import io.github.classgraph.ScanResult;
 
 public class Describe {
 
@@ -90,24 +91,25 @@ public class Describe {
 		} else {
 			pack = "com." + name.replaceAll("_", ".");
 		}
-		ScanResult scanResult = new FastClasspathScanner(pack).scan();
-		SetUniqueList<Class<?>> classes = SetUniqueList.setUniqueList(new ArrayList<Class<?>>());
-		for (String str : scanResult.getNamesOfClassesWithAnnotationsAllOf(ApplicationPath.class)) {
-			Class<?> applicationPathClass = ClassUtils.getClass(str);
-			for (Class<?> o : (Set<Class<?>>) MethodUtils.invokeMethod(applicationPathClass.newInstance(),
-					"getClasses")) {
-				Path path = o.getAnnotation(Path.class);
-				JaxrsDescribe jaxrsDescribe = o.getAnnotation(JaxrsDescribe.class);
-				if (null != path && null != jaxrsDescribe) {
-					classes.add(o);
+		try (ScanResult scanResult = new ClassGraph().whitelistPackages(pack).enableAllInfo().scan()) {
+			SetUniqueList<Class<?>> classes = SetUniqueList.setUniqueList(new ArrayList<Class<?>>());
+			for (ClassInfo info : scanResult.getClassesWithAnnotation(ApplicationPath.class.getName())) {
+				Class<?> applicationPathClass = ClassUtils.getClass(info.getName());
+				for (Class<?> o : (Set<Class<?>>) MethodUtils.invokeMethod(applicationPathClass.newInstance(),
+						"getClasses")) {
+					Path path = o.getAnnotation(Path.class);
+					JaxrsDescribe jaxrsDescribe = o.getAnnotation(JaxrsDescribe.class);
+					if (null != path && null != jaxrsDescribe) {
+						classes.add(o);
+					}
 				}
 			}
+			return classes;
 		}
-		return classes;
 	}
 
 	private JaxrsClass jaxrsClass(Class<?> clz) throws Exception {
-		System.out.println("describe class:" + clz.getName());
+		logger.print("describe class:{}.", clz.getName());
 		JaxrsDescribe jaxrsDescribe = clz.getAnnotation(JaxrsDescribe.class);
 		JaxrsClass jaxrsClass = new JaxrsClass();
 		jaxrsClass.setClassName(clz.getName());

+ 14 - 1
o2server/x_base_core_project/src/main/java/com/x/base/core/project/annotation/Module.java

@@ -8,6 +8,7 @@ import java.lang.annotation.Target;
 
 /**
  * 标记所有可启动模块
+ * 
  * @author zhour
  *
  */
@@ -15,5 +16,17 @@ import java.lang.annotation.Target;
 @Target(ElementType.TYPE)
 @Inherited
 public @interface Module {
-	String name() default "";
+
+	public static final String PARAMETER_TYPE = "type";
+
+	public static final String PARAMETER_NAME = "name";
+
+	public static final String PARAMETER_CATEGORY = "category";
+
+	public ModuleType type();
+
+	public ModuleCategory category();
+
+	public String name();
+
 }

+ 8 - 0
o2server/x_base_core_project/src/main/java/com/x/base/core/project/annotation/ModuleCategory.java

@@ -0,0 +1,8 @@
+package com.x.base.core.project.annotation;
+
+public enum ModuleCategory {
+
+	CUSTOM, OFFICIAL;
+
+	public static int lengh = 16;
+}

+ 8 - 0
o2server/x_base_core_project/src/main/java/com/x/base/core/project/annotation/ModuleType.java

@@ -0,0 +1,8 @@
+package com.x.base.core.project.annotation;
+
+public enum ModuleType {
+
+	BASE, CENTER, ENTITY, EXPRESS, ASSEMBLE, SERVICE;
+
+	public static int lengh = 16;
+}

+ 0 - 7
o2server/x_base_core_project/src/main/java/com/x/base/core/project/build/CreateConfigSample.java

@@ -17,7 +17,6 @@ import org.apache.commons.lang3.reflect.FieldUtils;
 import org.apache.commons.lang3.reflect.MethodUtils;
 
 import com.google.gson.JsonElement;
-import com.x.base.core.project.Packages;
 import com.x.base.core.project.annotation.FieldDescribe;
 import com.x.base.core.project.config.AppStyle;
 import com.x.base.core.project.config.CenterServer;
@@ -43,10 +42,6 @@ import com.x.base.core.project.gson.XGsonBuilder;
 import com.x.base.core.project.logger.Logger;
 import com.x.base.core.project.logger.LoggerFactory;
 import com.x.base.core.project.tools.DefaultCharset;
-import com.x.base.core.project.tools.FileTools;
-
-import io.github.lukehutch.fastclasspathscanner.FastClasspathScanner;
-import io.github.lukehutch.fastclasspathscanner.scanner.ScanResult;
 
 public class CreateConfigSample {
 
@@ -55,8 +50,6 @@ public class CreateConfigSample {
 	public static void main(String... args) throws Exception {
 		File base = new File(args[0]);
 		File dir = new File(base, "configSample");
-		FastClasspathScanner scanner = new FastClasspathScanner(Packages.PREFIX);
-		ScanResult scanResult = scanner.scan();
 		List<Class<?>> classes = new ArrayList<Class<?>>();
 		classes.add(AppStyle.class);
 		classes.add(CenterServer.class);

+ 17 - 17
o2server/x_base_core_project/src/main/java/com/x/base/core/project/cache/ApplicationCache.java

@@ -7,19 +7,19 @@ import java.util.concurrent.ConcurrentHashMap;
 
 import org.apache.commons.lang3.ArrayUtils;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.commons.lang3.reflect.FieldUtils;
 
 import com.x.base.core.entity.JpaObject;
 import com.x.base.core.project.AssembleA;
-import com.x.base.core.project.Packages;
+import com.x.base.core.project.Deployable;
 import com.x.base.core.project.ServiceA;
 import com.x.base.core.project.config.Config;
 import com.x.base.core.project.connection.CipherConnectionAction;
 import com.x.base.core.project.jaxrs.WrapClearCacheRequest;
 import com.x.base.core.project.tools.ListTools;
 
-import io.github.lukehutch.fastclasspathscanner.FastClasspathScanner;
-import io.github.lukehutch.fastclasspathscanner.scanner.ScanResult;
+import io.github.classgraph.ClassGraph;
+import io.github.classgraph.ClassInfo;
+import io.github.classgraph.ScanResult;
 import net.sf.ehcache.Cache;
 import net.sf.ehcache.CacheManager;
 import net.sf.ehcache.Ehcache;
@@ -120,20 +120,20 @@ public class ApplicationCache extends AbstractApplicationCache {
 	}
 
 	private ApplicationCache() {
-		try {
-			List<String> classes = new ArrayList<>();
-			ScanResult scanResult = new FastClasspathScanner(Packages.PREFIX).scan();
-			classes.addAll(scanResult.getNamesOfSubclassesOf(AssembleA.class));
-			classes.addAll(scanResult.getNamesOfSubclassesOf(ServiceA.class));
-			for (String o : classes) {
-				Class<?> clz = Class.forName(o);
-				for (String str : (List<String>) FieldUtils.readStaticField(clz, "containerEntities")) {
-					List<Class<?>> list = incidenceMap.get(str);
-					if (null == list) {
-						list = new ArrayList<Class<?>>();
-						incidenceMap.put(str, list);
+		try (ScanResult scanResult = new ClassGraph().enableAllInfo().scan()) {
+			List<ClassInfo> list = new ArrayList<>();
+			list.addAll(scanResult.getSubclasses(AssembleA.class.getName()));
+			list.addAll(scanResult.getSubclasses(ServiceA.class.getName()));
+			for (ClassInfo info : list) {
+				Class<?> clz = Class.forName(info.getName());
+				Deployable deployable = (Deployable) clz.newInstance();
+				for (String str : deployable.dependency().containerEntities) {
+					List<Class<?>> os = incidenceMap.get(str);
+					if (null == os) {
+						os = new ArrayList<Class<?>>();
+						incidenceMap.put(str, os);
 					}
-					list.add(clz);
+					os.add(clz);
 				}
 			}
 			manager = createCacheManager();

+ 137 - 18
o2server/x_base_core_project/src/main/java/com/x/base/core/project/config/Config.java

@@ -18,15 +18,15 @@ import org.apache.commons.lang3.StringUtils;
 import org.eclipse.jetty.http.MimeTypes;
 
 import com.x.base.core.entity.annotation.ContainerEntity;
-import com.x.base.core.project.Packages;
 import com.x.base.core.project.x_program_center;
 import com.x.base.core.project.tools.BaseTools;
 import com.x.base.core.project.tools.Host;
 import com.x.base.core.project.tools.ListTools;
 import com.x.base.core.project.tools.NumberTools;
 
-import io.github.lukehutch.fastclasspathscanner.FastClasspathScanner;
-import io.github.lukehutch.fastclasspathscanner.scanner.ScanResult;
+import io.github.classgraph.ClassGraph;
+import io.github.classgraph.ClassInfo;
+import io.github.classgraph.ScanResult;
 
 public class Config {
 
@@ -36,7 +36,6 @@ public class Config {
 	}
 
 	public static final String PATH_VERSION = "version.o2";
-	public static final String PATH_CONFIG = "config";
 	public static final String PATH_LOCAL_NODE = "local/node.cfg";
 	public static final String PATH_CONFIG_TOKEN = "config/token.json";
 	public static final String PATH_CONFIG_EXTERNALDATASOURCES = "config/externalDataSources.json";
@@ -64,11 +63,126 @@ public class Config {
 	public static final String PATH_CONFIG_LOGLEVEL = "config/logLevel.json";
 	public static final String PATH_COMMONS_INITIALSCRIPTTEXT = "commons/initialScriptText.js";
 	public static final String PATH_COMMONS_MOOTOOLSSCRIPTTEXT = "commons/mooToolsScriptText.js";
-	public static final String PATH_LOCAL_TEMP = "local/temp";
+
+	public static final String DIR_COMMONS = "commons";
+	public static final String DIR_COMMONS_EXT = "commons/ext";
+	public static final String DIR_CONFIG = "config";
+	public static final String DIR_CUSTOM = "custom";
+	public static final String DIR_CUSTOM_JARS = "custom/jars";
+	public static final String DIR_DYNAMIC = "dynamic";
+	public static final String DIR_DYNAMIC_JARS = "dynamic/jars";
+	public static final String DIR_LOCAL = "local";
+	public static final String DIR_LOCAL_TEMP = "local/temp";
+	public static final String DIR_LOCAL_TEMP_CLASSES = "local/temp/classes";
+	public static final String DIR_LOGS = "logs";
+	public static final String DIR_SERVERS = "servers";
+	public static final String DIR_SERVERS_APPLICATIONSERVER = "servers/applicationServer";
+	public static final String DIR_SERVERS_APPLICATIONSERVER_WEBAPPS = "servers/applicationServer/webapps";
+	public static final String DIR_SERVERS_APPLICATIONSERVER_WORK = "servers/applicationServer/work";
+	public static final String DIR_SERVERS_CENTERSERVER = "servers/centerServer";
+	public static final String DIR_SERVERS_CENTERSERVER_WEBAPPS = "servers/centerServer/webapps";
+	public static final String DIR_SERVERS_CENTERSERVER_WORK = "servers/centerServer/work";
+	public static final String DIR_SERVERS_WEBSERVER = "servers/webServer";
+	public static final String DIR_STORE = "store";
+	public static final String DIR_STORE_JARS = "store/jars";
 
 	private static final String DEFAULT_PUBLIC_KEY = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCWcVZIS57VeOUzi8c01WKvwJK9uRe6hrGTUYmF6J/pI6/UvCbdBWCoErbzsBZOElOH8Sqal3vsNMVLjPYClfoDyYDaUlakP3ldfnXJzAFJVVubF53KadG+fwnh9ZMvxdh7VXVqRL3IQBDwGgzX4rmSK+qkUJjc3OkrNJPB7LLD8QIDAQAB";
 	private static final String DEFAULT_PRIVATE_KEY = "MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBAJZxVkhLntV45TOLxzTVYq/Akr25F7qGsZNRiYXon+kjr9S8Jt0FYKgStvOwFk4SU4fxKpqXe+w0xUuM9gKV+gPJgNpSVqQ/eV1+dcnMAUlVW5sXncpp0b5/CeH1ky/F2HtVdWpEvchAEPAaDNfiuZIr6qRQmNzc6Ss0k8HsssPxAgMBAAECgYAWtRy05NUgm5Lc6Og0jVDL/mEnydxPBy2ectwzHh2k7wIHNi8XhUxFki2TMqzrM9Dv3/LySpMl4AE3mhs34LNPy6F+MwyF5X7j+2Y6MflJyeb9HNyT++viysQneoOEiOk3ghxF2/GPjpiEF79wSp+1YKTxRAyq7ypV3t35fGOOEQJBANLDPWl8b5c3lrcz/dTamMjHbVamEyX43yzQOphzkhYsz4pruATzTxU+z8/zPdEqHcWWV39CP3xu3EYNcAhxJW8CQQC2u7PF5Xb1xYRCsmIPssFxil64vvdUadSxl7GLAgjQ9ULyYWB24KObCEzLnPcT8Pf2Q0YQOixxa/78FuzmgbyfAkA7ZFFV/H7lugB6t+f7p24OhkRFep9CwBMD6dnZRBgSr6X8d8ZvfrD2Z7DgBMeSva+OEoOtlNmXExZ3lynO9zN5AkAVczEmIMp3DSl6XtAuAZC9kD2QODJ2QToLYsAfjiyUwsWKCC43piTuVOoW2KUUPSwOR1VZIEsJQWEcHGDQqhgHAkAeZ7a6dVRZFdBwKA0ADjYCufAW2cIYiVDQBJpgB+kiLQflusNOCBK0FT3lg8BdUSy2D253Ih6l3lbaM/4M7DFQ";
 
+	public static File dir_commons() throws Exception {
+		return new File(base(), DIR_COMMONS);
+	}
+
+	public static File dir_commons_ext() throws Exception {
+		return new File(base(), DIR_COMMONS_EXT);
+	}
+
+	public static File dir_config() throws Exception {
+		return new File(base(), DIR_CONFIG);
+	}
+
+	public static File dir_custom() throws Exception {
+		return new File(base(), DIR_CUSTOM);
+	}
+
+	public static File dir_custom_jars() throws Exception {
+		return new File(base(), DIR_CUSTOM_JARS);
+	}
+
+	public static File dir_dynamic() throws Exception {
+		return new File(base(), DIR_DYNAMIC);
+	}
+
+	public static File dir_dynamic_jars() throws Exception {
+		return dir_dynamic_jars(false);
+	}
+
+	public static File dir_dynamic_jars(Boolean force) throws Exception {
+		File dir = new File(base(), DIR_DYNAMIC_JARS);
+		if (force) {
+			if ((!dir.exists()) || dir.isFile()) {
+				FileUtils.forceMkdir(dir);
+			}
+		}
+		return dir;
+	}
+
+	public static File dir_local() throws Exception {
+		return new File(base(), DIR_LOCAL);
+	}
+
+	public static File dir_local_temp() throws Exception {
+		return new File(base(), DIR_LOCAL_TEMP);
+	}
+
+	public static File dir_local_temp_classes() throws Exception {
+		return new File(base(), DIR_LOCAL_TEMP_CLASSES);
+	}
+
+	public static File dir_logs() throws Exception {
+		return new File(base(), DIR_LOGS);
+	}
+
+	public static File dir_servers() throws Exception {
+		return new File(base(), DIR_SERVERS);
+	}
+
+	public static File dir_servers_applicationServer() throws Exception {
+		return new File(base(), DIR_SERVERS_APPLICATIONSERVER);
+	}
+
+	public static File dir_servers_applicationServer_webapps() throws Exception {
+		return new File(base(), DIR_SERVERS_APPLICATIONSERVER_WEBAPPS);
+	}
+
+	public static File dir_servers_applicationServer_work() throws Exception {
+		return new File(base(), DIR_SERVERS_APPLICATIONSERVER_WORK);
+	}
+
+	public static File dir_servers_centerServer() throws Exception {
+		return new File(base(), DIR_SERVERS_CENTERSERVER);
+	}
+
+	public static File dir_servers_centerServer_webapps() throws Exception {
+		return new File(base(), DIR_SERVERS_CENTERSERVER_WEBAPPS);
+	}
+
+	public static File dir_servers_centerServer_work() throws Exception {
+		return new File(base(), DIR_SERVERS_CENTERSERVER_WORK);
+	}
+
+	public static File dir_servers_webServer() throws Exception {
+		return new File(base(), DIR_SERVERS_WEBSERVER);
+	}
+
+	public static File dir_store() throws Exception {
+		return new File(base(), DIR_STORE);
+	}
+
+	public static File dir_store_jars() throws Exception {
+		return new File(base(), DIR_STORE_JARS);
+	}
+
 	public static void flush() {
 		if (null != INSTANCE) {
 			synchronized (Config.class) {
@@ -136,14 +250,12 @@ public class Config {
 			synchronized (Config.class) {
 				if (null == instance().nodes) {
 					Nodes nodes = new Nodes();
-					String base = BaseTools.getBasePath();
 					FileFilter fileFilter = new WildcardFileFilter("node_*.json");
-					File dir = new File(base, PATH_CONFIG);
-					File[] files = dir.listFiles(fileFilter);
+					File[] files = dir_config().listFiles(fileFilter);
 					if (null != files && files.length > 0) {
 						for (File o : files) {
 							String name = StringUtils.substringBetween(o.getName(), "node_", ".json");
-							Node node = BaseTools.readObject(PATH_CONFIG + "/" + o.getName(), Node.class);
+							Node node = BaseTools.readObject(DIR_CONFIG + "/" + o.getName(), Node.class);
 							if (StringUtils.isNotEmpty(name) && BooleanUtils.isTrue(node.getEnable())) {
 								nodes.put(name, node);
 							}
@@ -202,7 +314,7 @@ public class Config {
 				if (null == instance().publicKey) {
 					File file = new File(Config.base(), PATH_CONFIG_PUBLICKEY);
 					if (file.exists() && file.isFile()) {
-						instance().publicKey = FileUtils.readFileToString(file);
+						instance().publicKey = FileUtils.readFileToString(file, "utf-8");
 					} else {
 						instance().publicKey = DEFAULT_PUBLIC_KEY;
 					}
@@ -220,7 +332,7 @@ public class Config {
 				if (null == instance().privateKey) {
 					File file = new File(Config.base(), PATH_CONFIG_PRIVATEKEY);
 					if (file.exists() && file.isFile()) {
-						instance().privateKey = FileUtils.readFileToString(file);
+						instance().privateKey = FileUtils.readFileToString(file, "utf-8");
 					} else {
 						instance().privateKey = DEFAULT_PRIVATE_KEY;
 					}
@@ -608,13 +720,20 @@ public class Config {
 	}
 
 	private static List<Class<?>> dataMappingsScanEntities() throws Exception {
-		ScanResult scanResult = new FastClasspathScanner(Packages.PREFIX).scan();
-		List<String> names = scanResult.getNamesOfClassesWithAnnotation(ContainerEntity.class);
-		List<Class<?>> list = new ArrayList<>();
-		for (String str : names) {
-			list.add(Class.forName(str));
-		}
-		return list;
+		try (ScanResult scanResult = new ClassGraph().enableAllInfo().scan()) {
+			List<Class<?>> list = new ArrayList<>();
+			for (ClassInfo info : scanResult.getClassesWithAnnotation(ContainerEntity.class.getName())) {
+				Class<?> clz = Class.forName(info.getName());
+				list.add(clz);
+			}
+			return list;
+		}
+//		ScanResult scanResult = new FastClasspathScanner(Packages.PREFIX).scan();
+//		List<String> names = scanResult.getNamesOfClassesWithAnnotation(ContainerEntity.class);
+//		List<Class<?>> list = new ArrayList<>();
+//		for (String str : names) {
+//			list.add(Class.forName(str));
+//		}
 	}
 
 	public static Node currentNode() throws Exception {

+ 0 - 14
o2server/x_base_core_project/src/main/java/com/x/base/core/project/config/CreateSample.java

@@ -19,7 +19,6 @@ import org.apache.commons.lang3.reflect.FieldUtils;
 import org.junit.Test;
 
 import com.google.gson.JsonElement;
-import com.x.base.core.project.Packages;
 import com.x.base.core.project.annotation.FieldDescribe;
 import com.x.base.core.project.gson.XGsonBuilder;
 import com.x.base.core.project.logger.Logger;
@@ -27,32 +26,19 @@ import com.x.base.core.project.logger.LoggerFactory;
 import com.x.base.core.project.tools.DefaultCharset;
 import com.x.base.core.project.tools.FileTools;
 
-import io.github.lukehutch.fastclasspathscanner.FastClasspathScanner;
-import io.github.lukehutch.fastclasspathscanner.scanner.ScanResult;
-
 public class CreateSample {
 
 	private static Logger logger = LoggerFactory.getLogger(CreateSample.class);
 
 	@Test
 	public void test() throws Exception {
-		FastClasspathScanner scanner = new FastClasspathScanner(Packages.PREFIX);
-		ScanResult scanResult = scanner.scan();
 		List<Class<?>> classes = new ArrayList<Class<?>>();
-		// for (String str : scanResult.getNamesOfSubclassesOf(ConfigObject.class)) {
-		// Class<? extends ConfigObject> cls = (Class<? extends ConfigObject>)
-		// Class.forName(str);
-		// if (!cls.isMemberClass()) {
-		// classes.add(cls);
-		// }
-		// }
 		classes.add(AppStyle.class);
 		classes.add(CenterServer.class);
 		classes.add(Collect.class);
 		classes.add(Dingding.class);
 		classes.add(DumpRestoreData.class);
 		classes.add(DumpRestoreStorage.class);
-		// classes.add(ExternalDataSources.class);
 		classes.add(LogLevel.class);
 		classes.add(Meeting.class);
 		classes.add(Messages.class);

+ 34 - 1
o2server/x_base_core_project/src/main/java/com/x/base/core/project/schedule/ReportToCenter.java

@@ -9,6 +9,7 @@ import org.quartz.JobExecutionContext;
 import org.quartz.JobExecutionException;
 
 import com.x.base.core.project.Context;
+import com.x.base.core.project.Dependency;
 import com.x.base.core.project.config.Config;
 import com.x.base.core.project.connection.ActionResponse;
 import com.x.base.core.project.connection.CipherConnectionAction;
@@ -18,6 +19,8 @@ public class ReportToCenter implements Job {
 
 	public static int INTERVAL = 45;
 
+	private static final String DATAMAP_ATTRIBUTE_CONTEXT = "context";
+
 	private Context context;
 
 	public ReportToCenter() {
@@ -34,7 +37,7 @@ public class ReportToCenter implements Job {
 
 	@Override
 	public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
-		this.context = (Context) jobExecutionContext.getMergedJobDataMap().get("context");
+		this.context = (Context) jobExecutionContext.getMergedJobDataMap().get(DATAMAP_ATTRIBUTE_CONTEXT);
 		Echo echo = this.send(context);
 		this.updateApplications(context, echo.getApplicationsToken());
 	}
@@ -61,22 +64,28 @@ public class ReportToCenter implements Job {
 	private Report conreteReport(Context context) throws Exception {
 		Report report = new Report();
 		report.setClassName(context.clazz().getName());
+		report.setContextPath(context.contextPath());
+		report.setName(context.name());
 		report.setNode(Config.node());
 		report.setToken(context.token());
 		report.setWeight(context.weight());
 		report.setSslEnable(context.sslEnable());
 		report.setScheduleLocalRequestList(context.getScheduleLocalRequestList());
 		report.setScheduleRequestList(context.getScheduleRequestList());
+		report.setDependency(context.clazzInstance().dependency());
 		return report;
 	}
 
 	public static class Report extends GsonPropertyObject {
 
 		private String className;
+		private String name;
+		private String contextPath;
 		private String node;
 		private String token;
 		private Integer weight;
 		private Boolean sslEnable;
+		private Dependency dependency;
 
 		private List<ScheduleLocalRequest> scheduleLocalRequestList = new ArrayList<>();
 
@@ -166,6 +175,30 @@ public class ReportToCenter implements Job {
 			this.scheduleRequestList = scheduleRequestList;
 		}
 
+		public String getContextPath() {
+			return contextPath;
+		}
+
+		public void setContextPath(String contextPath) {
+			this.contextPath = contextPath;
+		}
+
+		public Dependency getDependency() {
+			return dependency;
+		}
+
+		public void setDependency(Dependency dependency) {
+			this.dependency = dependency;
+		}
+
+		public String getName() {
+			return name;
+		}
+
+		public void setName(String name) {
+			this.name = name;
+		}
+
 	}
 
 	public static class Echo extends GsonPropertyObject {

+ 58 - 58
o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_attendance_assemble_control.java

@@ -1,68 +1,68 @@
 package com.x.base.core.project;
 
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.commons.lang3.StringUtils;
-
-import com.x.base.core.entity.StorageType;
-import com.x.base.core.project.gson.XGsonBuilder;
+import com.x.base.core.project.annotation.Module;
+import com.x.base.core.project.annotation.ModuleCategory;
+import com.x.base.core.project.annotation.ModuleType;
 
+@Module(type = ModuleType.ASSEMBLE, category = ModuleCategory.OFFICIAL, name = "考勤")
 public class x_attendance_assemble_control extends AssembleA {
 
-	public static final String name = "考勤";
-	public static List<String> containerEntities = new ArrayList<>();
-	public static List<StorageType> usedStorageTypes = new ArrayList<>();
-	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
-
-	static {
-		
-		containerEntities.add("com.x.attendance.entity.AttendanceAdmin");
-		containerEntities.add("com.x.attendance.entity.AttendanceAppealInfo");
-		containerEntities.add("com.x.attendance.entity.AttendanceDetail");
-		containerEntities.add("com.x.attendance.entity.AttendanceDetailMobile");
-		containerEntities.add("com.x.attendance.entity.AttendanceEmployeeConfig");
-		containerEntities.add("com.x.attendance.entity.AttendanceImportFileInfo");
-		containerEntities.add("com.x.attendance.entity.AttendanceScheduleSetting");
-		containerEntities.add("com.x.attendance.entity.AttendanceSetting");
-		containerEntities.add("com.x.attendance.entity.AttendanceSelfHoliday");
-		containerEntities.add("com.x.attendance.entity.AttendanceStatisticalCycle");
-		containerEntities.add("com.x.attendance.entity.AttendanceStatisticRequireLog");
-		containerEntities.add("com.x.attendance.entity.AttendanceWorkDayConfig");
-		containerEntities.add("com.x.attendance.entity.AttendanceWorkPlace");
-		containerEntities.add("com.x.attendance.entity.StatisticPersonForMonth");
-		containerEntities.add("com.x.attendance.entity.StatisticTopUnitForDay");
-		containerEntities.add("com.x.attendance.entity.StatisticTopUnitForMonth");
-		containerEntities.add("com.x.attendance.entity.StatisticUnitForDay");
-		containerEntities.add("com.x.attendance.entity.StatisticUnitForMonth");
-
-		dependents.add(x_base_core_project.class);
-		dependents.add(x_organization_core_entity.class);
-		dependents.add(x_organization_core_express.class);
-		dependents.add(x_attendance_core_entity.class);
-		dependents.add(x_collaboration_core_message.class);
+	public x_attendance_assemble_control() {
+		super();
+		dependency.containerEntities.add("com.x.attendance.entity.AttendanceAdmin");
+		dependency.containerEntities.add("com.x.attendance.entity.AttendanceAppealInfo");
+		dependency.containerEntities.add("com.x.attendance.entity.AttendanceDetail");
+		dependency.containerEntities.add("com.x.attendance.entity.AttendanceDetailMobile");
+		dependency.containerEntities.add("com.x.attendance.entity.AttendanceEmployeeConfig");
+		dependency.containerEntities.add("com.x.attendance.entity.AttendanceImportFileInfo");
+		dependency.containerEntities.add("com.x.attendance.entity.AttendanceScheduleSetting");
+		dependency.containerEntities.add("com.x.attendance.entity.AttendanceSetting");
+		dependency.containerEntities.add("com.x.attendance.entity.AttendanceSelfHoliday");
+		dependency.containerEntities.add("com.x.attendance.entity.AttendanceStatisticalCycle");
+		dependency.containerEntities.add("com.x.attendance.entity.AttendanceStatisticRequireLog");
+		dependency.containerEntities.add("com.x.attendance.entity.AttendanceWorkDayConfig");
+		dependency.containerEntities.add("com.x.attendance.entity.AttendanceWorkPlace");
+		dependency.containerEntities.add("com.x.attendance.entity.StatisticPersonForMonth");
+		dependency.containerEntities.add("com.x.attendance.entity.StatisticTopUnitForDay");
+		dependency.containerEntities.add("com.x.attendance.entity.StatisticTopUnitForMonth");
+		dependency.containerEntities.add("com.x.attendance.entity.StatisticUnitForDay");
+		dependency.containerEntities.add("com.x.attendance.entity.StatisticUnitForMonth");
+		dependency.storeJars.add(x_attendance_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_organization_core_express.class.getSimpleName());
+		dependency.storeJars.add(x_organization_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_collaboration_core_message.class.getSimpleName());
 	}
 
-	protected void custom(File lib, String xLib) throws Exception {
-		// File xLibDir = new File(xLib);
-		// File libDir = new File(lib, "WEB-INF/lib");
-		// for (Class<? extends Compilable> clz : dependents) {
-		// FileUtils.copyDirectory(xLibDir, libDir, new
-		// NameFileFilter(clz.getSimpleName() + "-" + VERSION + ".jar"));
-		// }
-	}
+//	public static final Dependency dependency = new Dependency();
+//
+//	static {
+//		dependency.containerEntities.add("com.x.attendance.entity.AttendanceAdmin");
+//		dependency.containerEntities.add("com.x.attendance.entity.AttendanceAppealInfo");
+//		dependency.containerEntities.add("com.x.attendance.entity.AttendanceDetail");
+//		dependency.containerEntities.add("com.x.attendance.entity.AttendanceDetailMobile");
+//		dependency.containerEntities.add("com.x.attendance.entity.AttendanceEmployeeConfig");
+//		dependency.containerEntities.add("com.x.attendance.entity.AttendanceImportFileInfo");
+//		dependency.containerEntities.add("com.x.attendance.entity.AttendanceScheduleSetting");
+//		dependency.containerEntities.add("com.x.attendance.entity.AttendanceSetting");
+//		dependency.containerEntities.add("com.x.attendance.entity.AttendanceSelfHoliday");
+//		dependency.containerEntities.add("com.x.attendance.entity.AttendanceStatisticalCycle");
+//		dependency.containerEntities.add("com.x.attendance.entity.AttendanceStatisticRequireLog");
+//		dependency.containerEntities.add("com.x.attendance.entity.AttendanceWorkDayConfig");
+//		dependency.containerEntities.add("com.x.attendance.entity.AttendanceWorkPlace");
+//		dependency.containerEntities.add("com.x.attendance.entity.StatisticPersonForMonth");
+//		dependency.containerEntities.add("com.x.attendance.entity.StatisticTopUnitForDay");
+//		dependency.containerEntities.add("com.x.attendance.entity.StatisticTopUnitForMonth");
+//		dependency.containerEntities.add("com.x.attendance.entity.StatisticUnitForDay");
+//		dependency.containerEntities.add("com.x.attendance.entity.StatisticUnitForMonth");
+//		dependency.storeJars.add(x_attendance_core_entity.class.getSimpleName());
+//		dependency.storeJars.add(x_organization_core_express.class.getSimpleName());
+//		dependency.storeJars.add(x_organization_core_entity.class.getSimpleName());
+//		dependency.storeJars.add(x_collaboration_core_message.class.getSimpleName());
+//	}
 
-	public static void main(String[] args) {
-		try {
-			String str = args[0];
-			str = StringUtils.replace(str, "\\", "/");
-			Argument arg = XGsonBuilder.instance().fromJson(str, Argument.class);
-			x_attendance_assemble_control o = new x_attendance_assemble_control();
-			o.pack(arg.getDistPath(), arg.getRepositoryPath());
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
+//	public static final String name = "考勤";
+//	public static List<String> containerEntities = new ArrayList<>();
+//	public static List<StorageType> usedStorageTypes = new ArrayList<>();
+//	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
 
 }

+ 5 - 0
o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_attendance_core_entity.java

@@ -1,5 +1,10 @@
 package com.x.base.core.project;
 
+import com.x.base.core.project.annotation.Module;
+import com.x.base.core.project.annotation.ModuleCategory;
+import com.x.base.core.project.annotation.ModuleType;
+
+@Module(type = ModuleType.ENTITY, category = ModuleCategory.OFFICIAL, name = "考勤实体类")
 public class x_attendance_core_entity extends CoreA {
 
 }

+ 5 - 0
o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_base_core_project.java

@@ -1,5 +1,10 @@
 package com.x.base.core.project;
 
+import com.x.base.core.project.annotation.Module;
+import com.x.base.core.project.annotation.ModuleCategory;
+import com.x.base.core.project.annotation.ModuleType;
+
+@Module(type = ModuleType.BASE, category = ModuleCategory.OFFICIAL,name="基础")
 public class x_base_core_project extends CoreA {
 
 }

+ 86 - 51
o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_bbs_assemble_control.java

@@ -1,62 +1,97 @@
 package com.x.base.core.project;
 
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.commons.lang3.StringUtils;
-
 import com.x.base.core.entity.StorageType;
-import com.x.base.core.project.gson.XGsonBuilder;
+import com.x.base.core.project.annotation.Module;
+import com.x.base.core.project.annotation.ModuleCategory;
+import com.x.base.core.project.annotation.ModuleType;
 
+@Module(type = ModuleType.ASSEMBLE, category = ModuleCategory.OFFICIAL, name = "论坛")
 public class x_bbs_assemble_control extends AssembleA {
 
-	public static final String name = "论坛";
-	public static List<String> containerEntities = new ArrayList<>();
-	public static List<StorageType> usedStorageTypes = new ArrayList<>();
-	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
-
-	static {
-		containerEntities.add("com.x.bbs.entity.BBSForumInfo");
-		containerEntities.add("com.x.bbs.entity.BBSSectionInfo");
-		containerEntities.add("com.x.bbs.entity.BBSSubjectInfo");
-		containerEntities.add("com.x.bbs.entity.BBSSubjectContent");
-		containerEntities.add("com.x.bbs.entity.BBSSubjectInfo");
-		containerEntities.add("com.x.bbs.entity.BBSReplyInfo");
-		containerEntities.add("com.x.bbs.entity.BBSSubjectAttachment");
-		containerEntities.add("com.x.bbs.entity.BBSOperationRecord");
-		containerEntities.add("com.x.bbs.entity.BBSUserInfo");
-		containerEntities.add("com.x.bbs.entity.BBSUserRole");
-		containerEntities.add("com.x.bbs.entity.BBSRoleInfo");
-		containerEntities.add("com.x.bbs.entity.BBSPermissionRole");
-		containerEntities.add("com.x.bbs.entity.BBSPermissionInfo");
-		containerEntities.add("com.x.bbs.entity.BBSConfigSetting");
-
-		containerEntities.add("com.x.bbs.entity.BBSVoteRecord");
-		containerEntities.add("com.x.bbs.entity.BBSVoteOption");
-		containerEntities.add("com.x.bbs.entity.BBSVoteOptionGroup");
-		containerEntities.add("com.x.bbs.entity.BBSSubjectVoteResult");
-		usedStorageTypes.add(StorageType.bbs);
-		dependents.add(x_base_core_project.class);
-		dependents.add(x_organization_core_entity.class);
-		dependents.add(x_organization_core_express.class);
-		dependents.add(x_bbs_core_entity.class);
-		dependents.add(x_collaboration_core_message.class);
+	public x_bbs_assemble_control() {
+		super();
+		dependency.containerEntities.add("com.x.bbs.entity.BBSForumInfo");
+		dependency.containerEntities.add("com.x.bbs.entity.BBSSectionInfo");
+		dependency.containerEntities.add("com.x.bbs.entity.BBSSubjectInfo");
+		dependency.containerEntities.add("com.x.bbs.entity.BBSSubjectContent");
+		dependency.containerEntities.add("com.x.bbs.entity.BBSReplyInfo");
+		dependency.containerEntities.add("com.x.bbs.entity.BBSSubjectAttachment");
+		dependency.containerEntities.add("com.x.bbs.entity.BBSOperationRecord");
+		dependency.containerEntities.add("com.x.bbs.entity.BBSUserInfo");
+		dependency.containerEntities.add("com.x.bbs.entity.BBSUserRole");
+		dependency.containerEntities.add("com.x.bbs.entity.BBSRoleInfo");
+		dependency.containerEntities.add("com.x.bbs.entity.BBSPermissionRole");
+		dependency.containerEntities.add("com.x.bbs.entity.BBSPermissionInfo");
+		dependency.containerEntities.add("com.x.bbs.entity.BBSConfigSetting");
+		dependency.containerEntities.add("com.x.bbs.entity.BBSVoteRecord");
+		dependency.containerEntities.add("com.x.bbs.entity.BBSVoteOption");
+		dependency.containerEntities.add("com.x.bbs.entity.BBSVoteOptionGroup");
+		dependency.containerEntities.add("com.x.bbs.entity.BBSSubjectVoteResult");
+		dependency.storageTypes.add(StorageType.bbs.toString());
+		dependency.storeJars.add(x_bbs_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_organization_core_express.class.getSimpleName());
+		dependency.storeJars.add(x_organization_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_collaboration_core_message.class.getSimpleName());
 	}
 
-	protected void custom(File lib, String xLib) throws Exception {
-	}
+//	public static final Dependency dependency = new Dependency();
+//
+//	static {
+//		dependency.containerEntities.add("com.x.bbs.entity.BBSForumInfo");
+//		dependency.containerEntities.add("com.x.bbs.entity.BBSSectionInfo");
+//		dependency.containerEntities.add("com.x.bbs.entity.BBSSubjectInfo");
+//		dependency.containerEntities.add("com.x.bbs.entity.BBSSubjectContent");
+//		dependency.containerEntities.add("com.x.bbs.entity.BBSSubjectInfo");
+//		dependency.containerEntities.add("com.x.bbs.entity.BBSReplyInfo");
+//		dependency.containerEntities.add("com.x.bbs.entity.BBSSubjectAttachment");
+//		dependency.containerEntities.add("com.x.bbs.entity.BBSOperationRecord");
+//		dependency.containerEntities.add("com.x.bbs.entity.BBSUserInfo");
+//		dependency.containerEntities.add("com.x.bbs.entity.BBSUserRole");
+//		dependency.containerEntities.add("com.x.bbs.entity.BBSRoleInfo");
+//		dependency.containerEntities.add("com.x.bbs.entity.BBSPermissionRole");
+//		dependency.containerEntities.add("com.x.bbs.entity.BBSPermissionInfo");
+//		dependency.containerEntities.add("com.x.bbs.entity.BBSConfigSetting");
+//		dependency.containerEntities.add("com.x.bbs.entity.BBSVoteRecord");
+//		dependency.containerEntities.add("com.x.bbs.entity.BBSVoteOption");
+//		dependency.containerEntities.add("com.x.bbs.entity.BBSVoteOptionGroup");
+//		dependency.containerEntities.add("com.x.bbs.entity.BBSSubjectVoteResult");
+//		dependency.storageTypes.add(StorageType.bbs.toString());
+//		dependency.storeJars.add(x_bbs_core_entity.class.getName());
+//		dependency.storeJars.add(x_organization_core_express.class.getName());
+//		dependency.storeJars.add(x_organization_core_entity.class.getName());
+//		dependency.storeJars.add(x_collaboration_core_message.class.getName());
+//	}
 
-	public static void main(String[] args) {
-		try {
-			String str = args[0];
-			str = StringUtils.replace(str, "\\", "/");
-			Argument arg = XGsonBuilder.instance().fromJson(str, Argument.class);
-			x_bbs_assemble_control o = new x_bbs_assemble_control();
-			o.pack(arg.getDistPath(), arg.getRepositoryPath());
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
+//	public static final String name = "论坛";
+//	public static List<String> containerEntities = new ArrayList<>();
+//	public static List<StorageType> usedStorageTypes = new ArrayList<>();
+//	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
+//
+//	static {
+//		containerEntities.add("com.x.bbs.entity.BBSForumInfo");
+//		containerEntities.add("com.x.bbs.entity.BBSSectionInfo");
+//		containerEntities.add("com.x.bbs.entity.BBSSubjectInfo");
+//		containerEntities.add("com.x.bbs.entity.BBSSubjectContent");
+//		containerEntities.add("com.x.bbs.entity.BBSSubjectInfo");
+//		containerEntities.add("com.x.bbs.entity.BBSReplyInfo");
+//		containerEntities.add("com.x.bbs.entity.BBSSubjectAttachment");
+//		containerEntities.add("com.x.bbs.entity.BBSOperationRecord");
+//		containerEntities.add("com.x.bbs.entity.BBSUserInfo");
+//		containerEntities.add("com.x.bbs.entity.BBSUserRole");
+//		containerEntities.add("com.x.bbs.entity.BBSRoleInfo");
+//		containerEntities.add("com.x.bbs.entity.BBSPermissionRole");
+//		containerEntities.add("com.x.bbs.entity.BBSPermissionInfo");
+//		containerEntities.add("com.x.bbs.entity.BBSConfigSetting");
+//		containerEntities.add("com.x.bbs.entity.BBSVoteRecord");
+//		containerEntities.add("com.x.bbs.entity.BBSVoteOption");
+//		containerEntities.add("com.x.bbs.entity.BBSVoteOptionGroup");
+//		containerEntities.add("com.x.bbs.entity.BBSSubjectVoteResult");
+//		usedStorageTypes.add(StorageType.bbs);
+//		dependents.add(x_base_core_project.class);
+//		dependents.add(x_organization_core_entity.class);
+//		dependents.add(x_organization_core_express.class);
+//		dependents.add(x_bbs_core_entity.class);
+//		dependents.add(x_collaboration_core_message.class);
+//	}
 
 }

+ 5 - 0
o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_bbs_core_entity.java

@@ -1,5 +1,10 @@
 package com.x.base.core.project;
 
+import com.x.base.core.project.annotation.Module;
+import com.x.base.core.project.annotation.ModuleCategory;
+import com.x.base.core.project.annotation.ModuleType;
+
+@Module(type = ModuleType.ENTITY, category = ModuleCategory.OFFICIAL, name = "论坛实体类")
 public class x_bbs_core_entity extends CoreA {
 
 }

+ 54 - 44
o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_calendar_assemble_control.java

@@ -1,55 +1,65 @@
 package com.x.base.core.project;
 
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.commons.lang3.StringUtils;
-
 import com.x.base.core.entity.StorageType;
-import com.x.base.core.project.gson.XGsonBuilder;
+import com.x.base.core.project.annotation.Module;
+import com.x.base.core.project.annotation.ModuleCategory;
+import com.x.base.core.project.annotation.ModuleType;
 
+@Module(type = ModuleType.ASSEMBLE, category = ModuleCategory.OFFICIAL, name = "日程管理")
 public class x_calendar_assemble_control extends AssembleA {
 
-	public static final String name = "日程管理";
-	public static List<String> containerEntities = new ArrayList<>();
-	public static List<StorageType> usedStorageTypes = new ArrayList<>();
-	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
-
-	static {
-		containerEntities.add("com.x.calendar.core.entity.Calendar");
-		containerEntities.add("com.x.calendar.core.entity.Calendar_Event");
-		containerEntities.add("com.x.calendar.core.entity.Calendar_EventRepeatMaster");
-		containerEntities.add("com.x.calendar.core.entity.Calendar_Setting");
-		containerEntities.add("com.x.calendar.core.entity.Calendar_SettingLobValue");
-
-		usedStorageTypes.add(StorageType.calendar);
-
-		dependents.add(x_base_core_project.class);
-		dependents.add(x_organization_core_entity.class);
-		dependents.add(x_organization_core_express.class);
-		dependents.add(x_calendar_core_entity.class);
+	public x_calendar_assemble_control() {
+		super();
+		dependency.containerEntities.add("com.x.calendar.core.entity.Calendar");
+		dependency.containerEntities.add("com.x.calendar.core.entity.Calendar_Event");
+		dependency.containerEntities.add("com.x.calendar.core.entity.Calendar_EventRepeatMaster");
+		dependency.containerEntities.add("com.x.calendar.core.entity.Calendar_Setting");
+		dependency.containerEntities.add("com.x.calendar.core.entity.Calendar_SettingLobValue");
+		dependency.storageTypes.add(StorageType.calendar.toString());
+		dependency.storeJars.add(x_organization_core_express.class.getSimpleName());
+		dependency.storeJars.add(x_organization_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_calendar_core_entity.class.getSimpleName());
 	}
 
-	protected void custom(File lib, String xLib) throws Exception {
-		// File xLibDir = new File(xLib);
-		// File libDir = new File(lib, "WEB-INF/lib");
-		// for (Class<? extends Compilable> clz : dependents) {
-		// FileUtils.copyDirectory(xLibDir, libDir, new
-		// NameFileFilter(clz.getSimpleName() + "-" + VERSION + ".jar"));
-		// }
-	}
+//	public static final Dependency dependency = new Dependency();
+//
+//	static {
+//		dependency.containerEntities.add("com.x.calendar.core.entity.Calendar");
+//		dependency.containerEntities.add("com.x.calendar.core.entity.Calendar_Event");
+//		dependency.containerEntities.add("com.x.calendar.core.entity.Calendar_EventRepeatMaster");
+//		dependency.containerEntities.add("com.x.calendar.core.entity.Calendar_Setting");
+//		dependency.containerEntities.add("com.x.calendar.core.entity.Calendar_SettingLobValue");
+//		dependency.storageTypes.add(StorageType.calendar.toString());
+//		dependency.storeJars.add(x_bbs_core_entity.class.getName());
+//		dependency.storeJars.add(x_organization_core_express.class.getName());
+//		dependency.storeJars.add(x_organization_core_entity.class.getName());
+//		dependency.storeJars.add(x_collaboration_core_message.class.getName());
+//	}
 
-	public static void main(String[] args) {
-		try {
-			String str = args[0];
-			str = StringUtils.replace(str, "\\", "/");
-			Argument arg = XGsonBuilder.instance().fromJson(str, Argument.class);
-			x_calendar_assemble_control o = new x_calendar_assemble_control();
-			o.pack(arg.getDistPath(), arg.getRepositoryPath());
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
+//	public static final String name = "日程管理";
+//	public static List<String> containerEntities = new ArrayList<>();
+//	public static List<StorageType> usedStorageTypes = new ArrayList<>();
+//	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
+//
+//	static {
+//		containerEntities.add("com.x.calendar.core.entity.Calendar");
+//		containerEntities.add("com.x.calendar.core.entity.Calendar_Event");
+//		containerEntities.add("com.x.calendar.core.entity.Calendar_EventRepeatMaster");
+//		containerEntities.add("com.x.calendar.core.entity.Calendar_Setting");
+//		containerEntities.add("com.x.calendar.core.entity.Calendar_SettingLobValue");
+//
+//		usedStorageTypes.add(StorageType.calendar);
+//
+//		dependents.add(x_base_core_project.class);
+//		dependents.add(x_organization_core_entity.class);
+//		dependents.add(x_organization_core_express.class);
+//		dependents.add(x_calendar_core_entity.class);
+//	}
+
+//	protected void custom(File lib, String xLib) throws Exception {
+//	}
+//
+//	public static void main(String[] args) {
+//	}
 
 }

+ 5 - 0
o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_calendar_core_entity.java

@@ -1,5 +1,10 @@
 package com.x.base.core.project;
 
+import com.x.base.core.project.annotation.Module;
+import com.x.base.core.project.annotation.ModuleCategory;
+import com.x.base.core.project.annotation.ModuleType;
+
+@Module(type = ModuleType.ENTITY, category = ModuleCategory.OFFICIAL,name="日程管理实体类")
 public class x_calendar_core_entity extends CoreA {
 
 }

+ 39 - 72
o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_cms_assemble_control.java

@@ -1,81 +1,48 @@
 package com.x.base.core.project;
 
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.commons.lang3.StringUtils;
-
 import com.x.base.core.entity.StorageType;
-import com.x.base.core.project.gson.XGsonBuilder;
+import com.x.base.core.project.annotation.Module;
+import com.x.base.core.project.annotation.ModuleCategory;
+import com.x.base.core.project.annotation.ModuleType;
 
+@Module(type = ModuleType.ASSEMBLE, category = ModuleCategory.OFFICIAL, name = "内容管理")
 public class x_cms_assemble_control extends AssembleA {
 
-	public static final String name = "内容管理";
-	public static List<String> containerEntities = new ArrayList<>();
-	public static List<StorageType> usedStorageTypes = new ArrayList<>();
-	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
-
-	static {
-		containerEntities.add("com.x.cms.core.entity.element.AppDict");
-		containerEntities.add("com.x.cms.core.entity.element.AppDictItem");
-		containerEntities.add("com.x.cms.core.entity.element.Form");
-		containerEntities.add("com.x.cms.core.entity.element.FormField");
-		containerEntities.add("com.x.cms.core.entity.element.QueryView");
-		containerEntities.add("com.x.cms.core.entity.element.Script");
-		containerEntities.add("com.x.cms.core.entity.element.TemplateForm");
-		containerEntities.add("com.x.cms.core.entity.element.View");
-		containerEntities.add("com.x.cms.core.entity.element.ViewCategory");
-		containerEntities.add("com.x.cms.core.entity.element.ViewFieldConfig");
-
-		containerEntities.add("com.x.cms.core.entity.AppInfo");
-		containerEntities.add("com.x.cms.core.entity.CategoryInfo");
-		containerEntities.add("com.x.cms.core.entity.CategoryExt");
-		containerEntities.add("com.x.cms.core.entity.Document");
-		containerEntities.add("com.x.cms.core.entity.DocumentViewRecord");
-		containerEntities.add("com.x.cms.core.entity.FileInfo");
-		containerEntities.add("com.x.cms.core.entity.Log");
-		containerEntities.add("com.x.cms.core.entity.Review");
-
-		containerEntities.add("com.x.processplatform.core.entity.content.Attachment");
-		containerEntities.add("com.x.query.core.entity.Item");
-		containerEntities.add("com.x.query.core.entity.View");
-
-		containerEntities.add("com.x.cms.core.entity.AppCategoryAdmin");
-		containerEntities.add("com.x.cms.core.entity.AppCategoryPermission");
-		containerEntities.add("com.x.cms.core.entity.DocumentPermission");
-
-		usedStorageTypes.add(StorageType.cms);
-		usedStorageTypes.add(StorageType.processPlatform);
-
-		dependents.add(x_base_core_project.class);
-		dependents.add(x_processplatform_core_entity.class);
-		dependents.add(x_organization_core_entity.class);
-		dependents.add(x_organization_core_express.class);
-		dependents.add(x_cms_core_entity.class);
-		dependents.add(x_query_core_entity.class);
-		dependents.add(x_query_core_express.class);
-	}
-
-	protected void custom(File lib, String xLib) throws Exception {
-		// File xLibDir = new File(xLib);
-		// File libDir = new File(lib, "WEB-INF/lib");
-		// for (Class<? extends Compilable> clz : dependents) {
-		// FileUtils.copyDirectory(xLibDir, libDir, new
-		// NameFileFilter(clz.getSimpleName() + "-" + VERSION + ".jar"));
-		// }
-	}
-
-	public static void main(String[] args) {
-		try {
-			String str = args[0];
-			str = StringUtils.replace(str, "\\", "/");
-			Argument arg = XGsonBuilder.instance().fromJson(str, Argument.class);
-			x_cms_assemble_control o = new x_cms_assemble_control();
-			o.pack(arg.getDistPath(), arg.getRepositoryPath());
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
+	public x_cms_assemble_control() {
+		super();
+		dependency.containerEntities.add("com.x.cms.core.entity.element.AppDict");
+		dependency.containerEntities.add("com.x.cms.core.entity.element.AppDictItem");
+		dependency.containerEntities.add("com.x.cms.core.entity.element.Form");
+		dependency.containerEntities.add("com.x.cms.core.entity.element.FormField");
+		dependency.containerEntities.add("com.x.cms.core.entity.element.QueryView");
+		dependency.containerEntities.add("com.x.cms.core.entity.element.Script");
+		dependency.containerEntities.add("com.x.cms.core.entity.element.TemplateForm");
+		dependency.containerEntities.add("com.x.cms.core.entity.element.View");
+		dependency.containerEntities.add("com.x.cms.core.entity.element.ViewCategory");
+		dependency.containerEntities.add("com.x.cms.core.entity.element.ViewFieldConfig");
+		dependency.containerEntities.add("com.x.cms.core.entity.AppInfo");
+		dependency.containerEntities.add("com.x.cms.core.entity.CategoryInfo");
+		dependency.containerEntities.add("com.x.cms.core.entity.CategoryExt");
+		dependency.containerEntities.add("com.x.cms.core.entity.Document");
+		dependency.containerEntities.add("com.x.cms.core.entity.DocumentViewRecord");
+		dependency.containerEntities.add("com.x.cms.core.entity.FileInfo");
+		dependency.containerEntities.add("com.x.cms.core.entity.Log");
+		dependency.containerEntities.add("com.x.cms.core.entity.Review");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.content.Attachment");
+		dependency.containerEntities.add("com.x.query.core.entity.Item");
+		dependency.containerEntities.add("com.x.query.core.entity.View");
+		dependency.containerEntities.add("com.x.cms.core.entity.AppCategoryAdmin");
+		dependency.containerEntities.add("com.x.cms.core.entity.AppCategoryPermission");
+		dependency.containerEntities.add("com.x.cms.core.entity.DocumentPermission");
+
+		dependency.storageTypes.add(StorageType.cms.toString());
+		dependency.storageTypes.add(StorageType.processPlatform.toString());
+		dependency.storeJars.add(x_processplatform_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_organization_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_organization_core_express.class.getSimpleName());
+		dependency.storeJars.add(x_cms_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_query_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_query_core_express.class.getSimpleName());
 	}
 
 }

+ 5 - 0
o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_cms_core_entity.java

@@ -1,5 +1,10 @@
 package com.x.base.core.project;
 
+import com.x.base.core.project.annotation.Module;
+import com.x.base.core.project.annotation.ModuleCategory;
+import com.x.base.core.project.annotation.ModuleType;
+
+@Module(type = ModuleType.ENTITY, category = ModuleCategory.OFFICIAL,name="内容管理实体类")
 public class x_cms_core_entity extends CoreA {
 
 }

+ 44 - 43
o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_collaboration_assemble_websocket.java

@@ -1,52 +1,53 @@
 package com.x.base.core.project;
 
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.commons.lang3.StringUtils;
-
-import com.x.base.core.entity.StorageType;
-import com.x.base.core.project.gson.XGsonBuilder;
+import com.x.base.core.project.annotation.Module;
+import com.x.base.core.project.annotation.ModuleCategory;
+import com.x.base.core.project.annotation.ModuleType;
 
+@Module(type = ModuleType.ASSEMBLE, category = ModuleCategory.OFFICIAL, name = "协作")
 public class x_collaboration_assemble_websocket extends AssembleA {
 
-	public static final String name = "协作";
-	public static List<String> containerEntities = new ArrayList<>();
-	public static List<StorageType> usedStorageTypes = new ArrayList<>();
-	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
-
-	static {
-        containerEntities.add("com.x.collaboration.core.entity.SMSMessage");
-		containerEntities.add("com.x.collaboration.core.entity.Notification");
-		containerEntities.add("com.x.collaboration.core.entity.Dialog");
-		containerEntities.add("com.x.collaboration.core.entity.Talk");
-		dependents.add(x_base_core_project.class);
-		dependents.add(x_collaboration_core_message.class);
-		dependents.add(x_collaboration_core_entity.class);
-		dependents.add(x_collaboration_service_message.class);
-		dependents.add(x_organization_core_express.class);
+	public x_collaboration_assemble_websocket() {
+		super();
+		dependency.containerEntities.add("com.x.collaboration.core.entity.SMSMessage");
+		dependency.containerEntities.add("com.x.collaboration.core.entity.Notification");
+		dependency.containerEntities.add("com.x.collaboration.core.entity.Dialog");
+		dependency.containerEntities.add("com.x.collaboration.core.entity.Talk");
+		dependency.storeJars.add(x_collaboration_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_collaboration_core_message.class.getSimpleName());
+		dependency.storeJars.add(x_collaboration_service_message.class.getSimpleName());
+		dependency.storeJars.add(x_organization_core_express.class.getSimpleName());
 	}
 
-	protected void custom(File lib, String xLib) throws Exception {
-		// File xLibDir = new File(xLib);
-		// File libDir = new File(lib, "WEB-INF/lib");
-		// for (Class<? extends Compilable> clz : dependents) {
-		// FileUtils.copyDirectory(xLibDir, libDir, new
-		// NameFileFilter(clz.getSimpleName() + "-" + VERSION + ".jar"));
-		// }
-	}
-
-	public static void main(String[] args) {
-		try {
-			String str = args[0];
-			str = StringUtils.replace(str, "\\", "/");
-			Argument arg = XGsonBuilder.instance().fromJson(str, Argument.class);
-			x_collaboration_assemble_websocket o = new x_collaboration_assemble_websocket();
-			o.pack(arg.getDistPath(), arg.getRepositoryPath());
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
+//	public static final Dependency dependency = new Dependency();
+//
+//	static {
+//
+//		dependency.containerEntities.add("com.x.collaboration.core.entity.SMSMessage");
+//		dependency.containerEntities.add("com.x.collaboration.core.entity.Notification");
+//		dependency.containerEntities.add("com.x.collaboration.core.entity.Dialog");
+//		dependency.containerEntities.add("com.x.collaboration.core.entity.Talk");
+//
+////		dependency.storageTypes.add(StorageType.cms.toString());
+////		dependency.storageTypes.add(StorageType.processPlatform.toString());
+//		dependency.storeJars.add(x_collaboration_core_entity.class.getSimpleName());
+//		dependency.storeJars.add(x_collaboration_core_message.class.getSimpleName());
+//		dependency.storeJars.add(x_collaboration_service_message.class.getSimpleName());
+//		dependency.storeJars.add(x_organization_core_express.class.getSimpleName());
+//	}
+
+//	public static final String name = "协作";
+//	public static List<String> containerEntities = new ArrayList<>();
+//	public static List<StorageType> usedStorageTypes = new ArrayList<>();
+//	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
+//
+//	static {
+//
+//		dependents.add(x_base_core_project.class);
+//		dependents.add(x_collaboration_core_message.class);
+//		dependents.add(x_collaboration_core_entity.class);
+//		dependents.add(x_collaboration_service_message.class);
+//		dependents.add(x_organization_core_express.class);
+//	}
 
 }

+ 5 - 0
o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_collaboration_core_entity.java

@@ -1,5 +1,10 @@
 package com.x.base.core.project;
 
+import com.x.base.core.project.annotation.Module;
+import com.x.base.core.project.annotation.ModuleCategory;
+import com.x.base.core.project.annotation.ModuleType;
+
+@Module(type = ModuleType.ENTITY, category = ModuleCategory.OFFICIAL, name = "协作实体类")
 public class x_collaboration_core_entity extends CoreA {
 
 }

+ 5 - 0
o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_collaboration_core_message.java

@@ -1,5 +1,10 @@
 package com.x.base.core.project;
 
+import com.x.base.core.project.annotation.Module;
+import com.x.base.core.project.annotation.ModuleCategory;
+import com.x.base.core.project.annotation.ModuleType;
+
+@Module(type = ModuleType.EXPRESS, category = ModuleCategory.OFFICIAL, name = "协作接口")
 public class x_collaboration_core_message extends CoreA {
 
 }

+ 27 - 30
o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_collaboration_service_message.java

@@ -7,41 +7,38 @@ import java.util.List;
 import org.apache.commons.lang3.StringUtils;
 
 import com.x.base.core.entity.StorageType;
+import com.x.base.core.project.annotation.Module;
+import com.x.base.core.project.annotation.ModuleCategory;
+import com.x.base.core.project.annotation.ModuleType;
 import com.x.base.core.project.gson.XGsonBuilder;
 
+@Module(type = ModuleType.SERVICE, category = ModuleCategory.OFFICIAL, name = "协作服务")
 public class x_collaboration_service_message extends ServiceA {
 
-	public static final String name = "协作服务";
-	public static List<String> containerEntities = new ArrayList<>();
-	public static List<StorageType> usedStorageTypes = new ArrayList<>();
-	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
-
-	static {
-		dependents.add(x_base_core_project.class);
-		dependents.add(x_collaboration_core_message.class);
-		dependents.add(x_organization_core_express.class);
-		dependents.add(x_collaboration_core_entity.class);
-	}
-
-	protected void custom(File lib, String xLib) throws Exception {
-		// File xLibDir = new File(xLib);
-		// File libDir = new File(lib, "WEB-INF/lib");
-		// for (Class<? extends Compilable> clz : dependents) {
-		// FileUtils.copyDirectory(xLibDir, libDir, new
-		// NameFileFilter(clz.getSimpleName() + "-" + VERSION + ".jar"));
-		// }
+	public x_collaboration_service_message() {
+		super();
+		dependency.storeJars.add(x_organization_core_express.class.getSimpleName());
+		dependency.storeJars.add(x_organization_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_collaboration_core_message.class.getSimpleName());
 	}
 
-	public static void main(String[] args) {
-		try {
-			String str = args[0];
-			str = StringUtils.replace(str, "\\", "/");
-			Argument arg = XGsonBuilder.instance().fromJson(str, Argument.class);
-			x_collaboration_service_message o = new x_collaboration_service_message();
-			o.pack(arg.getDistPath(), arg.getRepositoryPath());
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
+//	public static final Dependency dependency = new Dependency();
+//
+//	static {
+//		dependency.storeJars.add(x_organization_core_express.class.getSimpleName());
+//		dependency.storeJars.add(x_organization_core_entity.class.getSimpleName());
+//		dependency.storeJars.add(x_collaboration_core_message.class.getSimpleName());
+//	}
+//	public static final String name = "协作服务";
+//	public static List<String> containerEntities = new ArrayList<>();
+//	public static List<StorageType> usedStorageTypes = new ArrayList<>();
+//	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
+//
+//	static {
+//		dependents.add(x_base_core_project.class);
+//		dependents.add(x_collaboration_core_message.class);
+//		dependents.add(x_organization_core_express.class);
+//		dependents.add(x_collaboration_core_entity.class);
+//	}
 
 }

+ 24 - 37
o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_component_assemble_control.java

@@ -1,45 +1,32 @@
 package com.x.base.core.project;
 
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.commons.lang3.StringUtils;
-
-import com.x.base.core.entity.StorageType;
-import com.x.base.core.project.gson.XGsonBuilder;
+import com.x.base.core.project.annotation.Module;
+import com.x.base.core.project.annotation.ModuleCategory;
+import com.x.base.core.project.annotation.ModuleType;
 
+@Module(type = ModuleType.ASSEMBLE, category = ModuleCategory.OFFICIAL, name = "组件")
 public class x_component_assemble_control extends AssembleA {
 
-	public static final String name = "组件";
-	public static List<String> containerEntities = new ArrayList<>();
-	public static List<StorageType> usedStorageTypes = new ArrayList<>();
-	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
-
-	static {
-		containerEntities.add("com.x.component.core.entity.Component");
-		dependents.add(x_base_core_project.class);
-		dependents.add(x_component_core_entity.class);
+	public x_component_assemble_control() {
+		super();
+		dependency.containerEntities.add("com.x.component.core.entity.Component");
+		dependency.storeJars.add(x_component_core_entity.class.getSimpleName());
 	}
 
-	protected void custom(File lib, String xLib) throws Exception {
-		// File xLibDir = new File(xLib);
-		// File libDir = new File(lib, "WEB-INF/lib");
-		// for (Class<? extends Compilable> clz : dependents) {
-		// FileUtils.copyDirectory(xLibDir, libDir, new
-		// NameFileFilter(clz.getSimpleName() + "-" + VERSION + ".jar"));
-		// }
-	}
-
-	public static void main(String[] args) {
-		try {
-			String str = args[0];
-			str = StringUtils.replace(str, "\\", "/");
-			Argument arg = XGsonBuilder.instance().fromJson(str, Argument.class);
-			x_component_assemble_control o = new x_component_assemble_control();
-			o.pack(arg.getDistPath(), arg.getRepositoryPath());
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
+//	public static final Dependency dependency = new Dependency();
+//
+//	static {
+//		dependency.containerEntities.add("com.x.component.core.entity.Component");
+//		dependency.storeJars.add(x_component_core_entity.class.getSimpleName());
+//	}
+//	public static final String name = "组件";
+//	public static List<String> containerEntities = new ArrayList<>();
+//	public static List<StorageType> usedStorageTypes = new ArrayList<>();
+//	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
+//
+//	static {
+//		containerEntities.add("com.x.component.core.entity.Component");
+//		dependents.add(x_base_core_project.class);
+//		dependents.add(x_component_core_entity.class);
+//	}
 }

+ 5 - 0
o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_component_core_entity.java

@@ -1,4 +1,9 @@
 package com.x.base.core.project;
 
+import com.x.base.core.project.annotation.Module;
+import com.x.base.core.project.annotation.ModuleCategory;
+import com.x.base.core.project.annotation.ModuleType;
+
+@Module(type = ModuleType.ENTITY, category = ModuleCategory.OFFICIAL, name = "协作实体类")
 public class x_component_core_entity extends CoreA {
 }

+ 48 - 34
o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_file_assemble_control.java

@@ -7,47 +7,61 @@ import java.util.List;
 import org.apache.commons.lang3.StringUtils;
 
 import com.x.base.core.entity.StorageType;
+import com.x.base.core.project.annotation.Module;
+import com.x.base.core.project.annotation.ModuleCategory;
+import com.x.base.core.project.annotation.ModuleType;
 import com.x.base.core.project.gson.XGsonBuilder;
 
+@Module(type = ModuleType.ASSEMBLE, category = ModuleCategory.OFFICIAL, name = "云文件")
 public class x_file_assemble_control extends AssembleA {
-
-	public static final String name = "云文件";
-	public static List<String> containerEntities = new ArrayList<>();
-	public static List<StorageType> usedStorageTypes = new ArrayList<>();
-	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
-
-	static {
-		containerEntities.add("com.x.file.core.entity.personal.Folder");
-		containerEntities.add("com.x.file.core.entity.personal.Attachment");
-		containerEntities.add("com.x.file.core.entity.open.File");
-		usedStorageTypes.add(StorageType.file);
-		dependents.add(x_base_core_project.class);
-		dependents.add(x_collaboration_core_entity.class);
-		dependents.add(x_collaboration_core_message.class);
-		dependents.add(x_file_core_entity.class);
-		dependents.add(x_organization_core_entity.class);
-		dependents.add(x_organization_core_express.class);
+	
+	public x_file_assemble_control() {
+		super();
+		dependency.containerEntities.add("com.x.file.core.entity.personal.Folder");
+		dependency.containerEntities.add("com.x.file.core.entity.personal.Attachment");
+		dependency.containerEntities.add("com.x.file.core.entity.open.File");
+		dependency.storageTypes.add(StorageType.file.toString());
+		dependency.storeJars.add(x_collaboration_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_collaboration_core_message.class.getSimpleName());
+		dependency.storeJars.add(x_file_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_organization_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_organization_core_express.class.getSimpleName());
 	}
 
+//	public static final Dependency dependency = new Dependency();
+//
+//	static {
+//		dependency.containerEntities.add("com.x.file.core.entity.personal.Folder");
+//		dependency.containerEntities.add("com.x.file.core.entity.personal.Attachment");
+//		dependency.containerEntities.add("com.x.file.core.entity.open.File");
+//		dependency.storageTypes.add(StorageType.file.toString());
+//		dependency.storeJars.add(x_collaboration_core_entity.class.getSimpleName());
+//		dependency.storeJars.add(x_collaboration_core_message.class.getSimpleName());
+//		dependency.storeJars.add(x_file_core_entity.class.getSimpleName());
+//		dependency.storeJars.add(x_organization_core_entity.class.getSimpleName());
+//		dependency.storeJars.add(x_organization_core_express.class.getSimpleName());
+//	}
+//
+//	public static final String name = "云文件";
+//	public static List<String> containerEntities = new ArrayList<>();
+//	public static List<StorageType> usedStorageTypes = new ArrayList<>();
+//	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
+//
+//	static {
+//		containerEntities.add("com.x.file.core.entity.personal.Folder");
+//		containerEntities.add("com.x.file.core.entity.personal.Attachment");
+//		containerEntities.add("com.x.file.core.entity.open.File");
+//		usedStorageTypes.add(StorageType.file);
+//		dependents.add(x_base_core_project.class);
+//		dependents.add(x_collaboration_core_entity.class);
+//		dependents.add(x_collaboration_core_message.class);
+//		dependents.add(x_file_core_entity.class);
+//		dependents.add(x_organization_core_entity.class);
+//		dependents.add(x_organization_core_express.class);
+//	}
+
 	protected void custom(File lib, String xLib) throws Exception {
-		// File xLibDir = new File(xLib);
-		// File libDir = new File(lib, "WEB-INF/lib");
-		// for (Class<? extends Compilable> clz : dependents) {
-		// FileUtils.copyDirectory(xLibDir, libDir, new
-		// NameFileFilter(clz.getSimpleName() + "-" + VERSION + ".jar"));
-		// }
-	}
 
-	public static void main(String[] args) {
-		try {
-			String str = args[0];
-			str = StringUtils.replace(str, "\\", "/");
-			Argument arg = XGsonBuilder.instance().fromJson(str, Argument.class);
-			x_file_assemble_control o = new x_file_assemble_control();
-			o.pack(arg.getDistPath(), arg.getRepositoryPath());
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
 	}
 
 }

+ 5 - 0
o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_file_core_entity.java

@@ -1,5 +1,10 @@
 package com.x.base.core.project;
 
+import com.x.base.core.project.annotation.Module;
+import com.x.base.core.project.annotation.ModuleCategory;
+import com.x.base.core.project.annotation.ModuleType;
+
+@Module(type = ModuleType.ENTITY, category = ModuleCategory.OFFICIAL,name="云文件实体类")
 public class x_file_core_entity extends CoreA {
 
 }

+ 36 - 18
o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_general_assemble_control.java

@@ -1,30 +1,48 @@
 package com.x.base.core.project;
 
 import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.commons.lang3.StringUtils;
 
 import com.x.base.core.entity.StorageType;
-import com.x.base.core.project.gson.XGsonBuilder;
+import com.x.base.core.project.annotation.Module;
+import com.x.base.core.project.annotation.ModuleCategory;
+import com.x.base.core.project.annotation.ModuleType;
 
+@Module(type = ModuleType.ASSEMBLE, category = ModuleCategory.OFFICIAL, name = "公共模块")
 public class x_general_assemble_control extends AssembleA {
-
-	public static final String name = "公共模块";
-	public static List<String> containerEntities = new ArrayList<>();
-	public static List<StorageType> usedStorageTypes = new ArrayList<>();
-	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
-
-	static {
-		containerEntities.add("com.x.general.core.entity.area.District");
-		usedStorageTypes.add(StorageType.file);
-		dependents.add(x_base_core_project.class);
-		dependents.add(x_collaboration_core_entity.class);
-		dependents.add(x_collaboration_core_message.class);
-		dependents.add(x_general_core_entity.class);
+	
+	public x_general_assemble_control() {
+		super();
+		dependency.containerEntities.add("com.x.general.core.entity.area.District");
+		dependency.storageTypes.add(StorageType.file.toString());
+		dependency.storeJars.add(x_collaboration_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_collaboration_core_message.class.getSimpleName());
+		dependency.storeJars.add(x_general_core_entity.class.getSimpleName());
 	}
 
+//	public static final Dependency dependency = new Dependency();
+//
+//	static {
+//		dependency.containerEntities.add("com.x.general.core.entity.area.District");
+//		dependency.storageTypes.add(StorageType.file.toString());
+//		dependency.storeJars.add(x_collaboration_core_entity.class.getSimpleName());
+//		dependency.storeJars.add(x_collaboration_core_message.class.getSimpleName());
+//		dependency.storeJars.add(x_general_core_entity.class.getSimpleName());
+//	}
+
+//	public static final String name = "公共模块";
+//	public static List<String> containerEntities = new ArrayList<>();
+//	public static List<StorageType> usedStorageTypes = new ArrayList<>();
+//	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
+//
+//	static {
+//		containerEntities.add("com.x.general.core.entity.area.District");
+//		usedStorageTypes.add(StorageType.file);
+//		dependents.add(x_base_core_project.class);
+//		dependents.add(x_collaboration_core_entity.class);
+//		dependents.add(x_collaboration_core_message.class);
+//		dependents.add(x_general_core_entity.class);
+//	}
+
 	protected void custom(File lib, String xLib) throws Exception {
 	}
 

+ 5 - 0
o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_general_core_entity.java

@@ -1,5 +1,10 @@
 package com.x.base.core.project;
 
+import com.x.base.core.project.annotation.Module;
+import com.x.base.core.project.annotation.ModuleCategory;
+import com.x.base.core.project.annotation.ModuleType;
+
+@Module(type = ModuleType.ENTITY, category = ModuleCategory.OFFICIAL,name="公共实体类")
 public class x_general_core_entity extends CoreA {
 
 }

+ 49 - 33
o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_hotpic_assemble_control.java

@@ -1,47 +1,63 @@
 package com.x.base.core.project;
 
 import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.commons.lang3.StringUtils;
 
 import com.x.base.core.entity.StorageType;
-import com.x.base.core.project.gson.XGsonBuilder;
+import com.x.base.core.project.annotation.Module;
+import com.x.base.core.project.annotation.ModuleCategory;
+import com.x.base.core.project.annotation.ModuleType;
 
+@Module(type = ModuleType.ASSEMBLE, category = ModuleCategory.OFFICIAL, name = "热点图片")
 public class x_hotpic_assemble_control extends AssembleA {
 
-	public static final String name = "热点图片";
-	public static List<String> containerEntities = new ArrayList<>();
-	public static List<StorageType> usedStorageTypes = new ArrayList<>();
-	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
-
-	static {
-		containerEntities.add("com.x.hotpic.entity.HotPictureInfo");
-		containerEntities.add("com.x.bbs.entity.BBSSubjectInfo");
-		containerEntities.add("com.x.cms.core.entity.Document");
-		dependents.add(x_base_core_project.class);
-		dependents.add(x_organization_core_entity.class);
-		dependents.add(x_organization_core_express.class);
-		dependents.add(x_hotpic_core_entity.class);
-		dependents.add(x_collaboration_core_message.class);
-		dependents.add(x_cms_core_entity.class);
-		dependents.add(x_bbs_core_entity.class);
+	public x_hotpic_assemble_control() {
+		super();
+		dependency.containerEntities.add("com.x.hotpic.entity.HotPictureInfo");
+		dependency.containerEntities.add("com.x.bbs.entity.BBSSubjectInfo");
+		dependency.containerEntities.add("com.x.cms.core.entity.Document");
+		dependency.storageTypes.add(StorageType.file.toString());
+		dependency.storeJars.add(x_organization_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_organization_core_express.class.getSimpleName());
+		dependency.storeJars.add(x_hotpic_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_collaboration_core_message.class.getSimpleName());
+		dependency.storeJars.add(x_cms_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_bbs_core_entity.class.getSimpleName());
 	}
 
-	protected void custom(File lib, String xLib) throws Exception {
-	}
+//	public static final Dependency dependency = new Dependency();
+//
+//	static {
+//		dependency.containerEntities.add("com.x.hotpic.entity.HotPictureInfo");
+//		dependency.containerEntities.add("com.x.bbs.entity.BBSSubjectInfo");
+//		dependency.containerEntities.add("com.x.cms.core.entity.Document");
+//		dependency.storageTypes.add(StorageType.file.toString());
+//		dependency.storeJars.add(x_organization_core_entity.class.getSimpleName());
+//		dependency.storeJars.add(x_organization_core_express.class.getSimpleName());
+//		dependency.storeJars.add(x_hotpic_core_entity.class.getSimpleName());
+//		dependency.storeJars.add(x_collaboration_core_message.class.getSimpleName());
+//		dependency.storeJars.add(x_cms_core_entity.class.getSimpleName());
+//		dependency.storeJars.add(x_bbs_core_entity.class.getSimpleName());
+//	}
+
+//	public static final String name = "热点图片";
+//	public static List<String> containerEntities = new ArrayList<>();
+//	public static List<StorageType> usedStorageTypes = new ArrayList<>();
+//	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
+//
+//	static {
+//		containerEntities.add("com.x.hotpic.entity.HotPictureInfo");
+//		containerEntities.add("com.x.bbs.entity.BBSSubjectInfo");
+//		containerEntities.add("com.x.cms.core.entity.Document");
+//		dependents.add(x_base_core_project.class);
+//		dependents.add(x_organization_core_entity.class);
+//		dependents.add(x_organization_core_express.class);
+//		dependents.add(x_hotpic_core_entity.class);
+//		dependents.add(x_collaboration_core_message.class);
+//		dependents.add(x_cms_core_entity.class);
+//		dependents.add(x_bbs_core_entity.class);
+//	}
 
-	public static void main(String[] args) {
-		try {
-			String str = args[0];
-			str = StringUtils.replace(str, "\\", "/");
-			Argument arg = XGsonBuilder.instance().fromJson(str, Argument.class);
-			x_hotpic_assemble_control o = new x_hotpic_assemble_control();
-			o.pack(arg.getDistPath(), arg.getRepositoryPath());
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
+	protected void custom(File lib, String xLib) throws Exception {
 	}
 
 }

+ 5 - 0
o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_hotpic_core_entity.java

@@ -1,5 +1,10 @@
 package com.x.base.core.project;
 
+import com.x.base.core.project.annotation.Module;
+import com.x.base.core.project.annotation.ModuleCategory;
+import com.x.base.core.project.annotation.ModuleType;
+
+@Module(type = ModuleType.ENTITY, category = ModuleCategory.OFFICIAL,name="热点图片实体类")
 public class x_hotpic_core_entity extends CoreA {
 
 }

+ 32 - 43
o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_meeting_assemble_control.java

@@ -1,53 +1,42 @@
 package com.x.base.core.project;
 
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.commons.lang3.StringUtils;
-
 import com.x.base.core.entity.StorageType;
-import com.x.base.core.project.gson.XGsonBuilder;
+import com.x.base.core.project.annotation.Module;
+import com.x.base.core.project.annotation.ModuleCategory;
+import com.x.base.core.project.annotation.ModuleType;
 
+@Module(type = ModuleType.ASSEMBLE, category = ModuleCategory.OFFICIAL, name = "会议管理")
 public class x_meeting_assemble_control extends AssembleA {
 
-	public static final String name = "会议管理";
-	public static List<String> containerEntities = new ArrayList<>();
-	public static List<StorageType> usedStorageTypes = new ArrayList<>();
-	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
-
-	static {
-		containerEntities.add("com.x.meeting.core.entity.Building");
-		containerEntities.add("com.x.meeting.core.entity.Room");
-		containerEntities.add("com.x.meeting.core.entity.Meeting");
-		containerEntities.add("com.x.meeting.core.entity.Attachment");
-		usedStorageTypes.add(StorageType.meeting);
-		dependents.add(x_base_core_project.class);
-		dependents.add(x_organization_core_express.class);
-		dependents.add(x_organization_core_entity.class);
-		dependents.add(x_meeting_core_entity.class);
-		dependents.add(x_collaboration_core_message.class);
+	public x_meeting_assemble_control() {
+		super();
+		dependency.containerEntities.add("com.x.meeting.core.entity.Building");
+		dependency.containerEntities.add("com.x.meeting.core.entity.Room");
+		dependency.containerEntities.add("com.x.meeting.core.entity.Meeting");
+		dependency.containerEntities.add("com.x.meeting.core.entity.Attachment");
+		dependency.storageTypes.add(StorageType.meeting.toString());
+		dependency.storeJars.add(x_organization_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_organization_core_express.class.getSimpleName());
+		dependency.storeJars.add(x_meeting_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_collaboration_core_message.class.getSimpleName());
 	}
 
-	protected void custom(File lib, String xLib) throws Exception {
-		// File xLibDir = new File(xLib);
-		// File libDir = new File(lib, "WEB-INF/lib");
-		// for (Class<? extends Compilable> clz : dependents) {
-		// FileUtils.copyDirectory(xLibDir, libDir, new
-		// NameFileFilter(clz.getSimpleName() + "-" + VERSION + ".jar"));
-		// }
-	}
-
-	public static void main(String[] args) {
-		try {
-			String str = args[0];
-			str = StringUtils.replace(str, "\\", "/");
-			Argument arg = XGsonBuilder.instance().fromJson(str, Argument.class);
-			x_meeting_assemble_control o = new x_meeting_assemble_control();
-			o.pack(arg.getDistPath(), arg.getRepositoryPath());
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
+//	public static final String name = "会议管理";
+//	public static List<String> containerEntities = new ArrayList<>();
+//	public static List<StorageType> usedStorageTypes = new ArrayList<>();
+//	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
+//
+//	static {
+//		containerEntities.add("com.x.meeting.core.entity.Building");
+//		containerEntities.add("com.x.meeting.core.entity.Room");
+//		containerEntities.add("com.x.meeting.core.entity.Meeting");
+//		containerEntities.add("com.x.meeting.core.entity.Attachment");
+//		usedStorageTypes.add(StorageType.meeting);
+//		dependents.add(x_base_core_project.class);
+//		dependents.add(x_organization_core_express.class);
+//		dependents.add(x_organization_core_entity.class);
+//		dependents.add(x_meeting_core_entity.class);
+//		dependents.add(x_collaboration_core_message.class);
+//	}
 
 }

+ 5 - 0
o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_meeting_core_entity.java

@@ -1,5 +1,10 @@
 package com.x.base.core.project;
 
+import com.x.base.core.project.annotation.Module;
+import com.x.base.core.project.annotation.ModuleCategory;
+import com.x.base.core.project.annotation.ModuleType;
+
+@Module(type = ModuleType.ENTITY, category = ModuleCategory.OFFICIAL,name="会议管理实体类")
 public class x_meeting_core_entity extends CoreA {
 
 }

+ 27 - 20
o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_message_assemble_communicate.java

@@ -1,29 +1,36 @@
 package com.x.base.core.project;
 
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import com.x.base.core.entity.StorageType;
+import com.x.base.core.project.annotation.Module;
+import com.x.base.core.project.annotation.ModuleCategory;
+import com.x.base.core.project.annotation.ModuleType;
 
+@Module(type = ModuleType.ASSEMBLE, category = ModuleCategory.OFFICIAL, name = "消息通讯")
 public class x_message_assemble_communicate extends AssembleA {
 
-	public static final String name = "消息通讯";
-	public static List<String> containerEntities = new ArrayList<>();
-	public static List<StorageType> usedStorageTypes = new ArrayList<>();
-	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
-
-	static {
-		containerEntities.add("com.x.message.core.entity.Message");
-		containerEntities.add("com.x.message.core.entity.Mass");
-		dependents.add(x_base_core_project.class);
-		dependents.add(x_message_core_entity.class);
-		dependents.add(x_meeting_core_entity.class);
-		dependents.add(x_processplatform_core_entity.class);
-		dependents.add(x_organization_core_express.class);
+	public x_message_assemble_communicate() {
+		super();
+		dependency.containerEntities.add("com.x.message.core.entity.Message");
+		dependency.containerEntities.add("com.x.message.core.entity.Mass");
+		dependency.storeJars.add(x_message_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_meeting_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_processplatform_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_organization_core_express.class.getSimpleName());
 	}
 
-	protected void custom(File lib, String xLib) throws Exception {
-	}
+//	public static final String name = "消息通讯";
+//	public static List<String> containerEntities = new ArrayList<>();
+//	public static List<StorageType> usedStorageTypes = new ArrayList<>();
+//	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
+//
+//	static {
+//		containerEntities.add("com.x.message.core.entity.Message");
+//		containerEntities.add("com.x.message.core.entity.Mass");
+//		dependents.add(x_base_core_project.class);
+//		dependents.add(x_message_core_entity.class);
+//		dependents.add(x_meeting_core_entity.class);
+//		dependents.add(x_processplatform_core_entity.class);
+//		dependents.add(x_organization_core_express.class);
+//	}
+//
 
 }

+ 5 - 0
o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_message_core_entity.java

@@ -1,5 +1,10 @@
 package com.x.base.core.project;
 
+import com.x.base.core.project.annotation.Module;
+import com.x.base.core.project.annotation.ModuleCategory;
+import com.x.base.core.project.annotation.ModuleType;
+
+@Module(type = ModuleType.ENTITY, category = ModuleCategory.OFFICIAL,name= "消息通讯实体类")
 public class x_message_core_entity extends CoreA {
 
 }

+ 38 - 41
o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_mind_assemble_control.java

@@ -1,50 +1,47 @@
 package com.x.base.core.project;
 
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.commons.lang3.StringUtils;
-
-import com.x.base.core.entity.StorageType;
-import com.x.base.core.project.gson.XGsonBuilder;
+import com.x.base.core.project.annotation.Module;
+import com.x.base.core.project.annotation.ModuleCategory;
+import com.x.base.core.project.annotation.ModuleType;
 
+@Module(type = ModuleType.ASSEMBLE, category = ModuleCategory.OFFICIAL, name = "脑图")
 public class x_mind_assemble_control extends AssembleA {
 
-	public static final String name = "脑图";
-	public static List<String> containerEntities = new ArrayList<>();
-	public static List<StorageType> usedStorageTypes = new ArrayList<>();
-	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
-
-	static {
-		containerEntities.add("com.x.mind.entity.MindBaseInfo");
-		containerEntities.add("com.x.mind.entity.MindContentInfo");
-		containerEntities.add("com.x.mind.entity.MindFolderInfo");
-		containerEntities.add("com.x.mind.entity.MindIconInfo");
-		containerEntities.add("com.x.mind.entity.MindRecycleInfo");
-		containerEntities.add("com.x.mind.entity.MindShareRecord");
-		containerEntities.add("com.x.mind.entity.MindVersionInfo");
-		containerEntities.add("com.x.mind.entity.MindVersionContent");
-		dependents.add(x_base_core_project.class);
-		dependents.add(x_organization_core_entity.class);
-		dependents.add(x_organization_core_express.class);
-		dependents.add(x_mind_core_entity.class);
-		dependents.add(x_collaboration_core_message.class);
+	public x_mind_assemble_control() {
+		super();
+		dependency.containerEntities.add("com.x.mind.entity.MindBaseInfo");
+		dependency.containerEntities.add("com.x.mind.entity.MindContentInfo");
+		dependency.containerEntities.add("com.x.mind.entity.MindFolderInfo");
+		dependency.containerEntities.add("com.x.mind.entity.MindIconInfo");
+		dependency.containerEntities.add("com.x.mind.entity.MindRecycleInfo");
+		dependency.containerEntities.add("com.x.mind.entity.MindShareRecord");
+		dependency.containerEntities.add("com.x.mind.entity.MindVersionInfo");
+		dependency.containerEntities.add("com.x.mind.entity.MindVersionContent");
+		dependency.storeJars.add(x_organization_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_organization_core_express.class.getSimpleName());
+		dependency.storeJars.add(x_mind_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_collaboration_core_message.class.getSimpleName());
 	}
 
-	protected void custom(File lib, String xLib) throws Exception {
-	}
-
-	public static void main(String[] args) {
-		try {
-			String str = args[0];
-			str = StringUtils.replace(str, "\\", "/");
-			Argument arg = XGsonBuilder.instance().fromJson(str, Argument.class);
-			x_mind_assemble_control o = new x_mind_assemble_control();
-			o.pack(arg.getDistPath(), arg.getRepositoryPath());
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
+//	public static final String name = "脑图";
+//	public static List<String> containerEntities = new ArrayList<>();
+//	public static List<StorageType> usedStorageTypes = new ArrayList<>();
+//	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
+//
+//	static {
+//		containerEntities.add("com.x.mind.entity.MindBaseInfo");
+//		containerEntities.add("com.x.mind.entity.MindContentInfo");
+//		containerEntities.add("com.x.mind.entity.MindFolderInfo");
+//		containerEntities.add("com.x.mind.entity.MindIconInfo");
+//		containerEntities.add("com.x.mind.entity.MindRecycleInfo");
+//		containerEntities.add("com.x.mind.entity.MindShareRecord");
+//		containerEntities.add("com.x.mind.entity.MindVersionInfo");
+//		containerEntities.add("com.x.mind.entity.MindVersionContent");
+//		dependents.add(x_base_core_project.class);
+//		dependents.add(x_organization_core_entity.class);
+//		dependents.add(x_organization_core_express.class);
+//		dependents.add(x_mind_core_entity.class);
+//		dependents.add(x_collaboration_core_message.class);
+//	}
 
 }

+ 5 - 0
o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_mind_core_entity.java

@@ -1,5 +1,10 @@
 package com.x.base.core.project;
 
+import com.x.base.core.project.annotation.Module;
+import com.x.base.core.project.annotation.ModuleCategory;
+import com.x.base.core.project.annotation.ModuleType;
+
+@Module(type = ModuleType.ENTITY, category = ModuleCategory.OFFICIAL,name="脑图实体类")
 public class x_mind_core_entity extends CoreA {
 
 }

+ 72 - 63
o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_okr_assemble_control.java

@@ -1,73 +1,82 @@
 package com.x.base.core.project;
 
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.commons.lang3.StringUtils;
-
 import com.x.base.core.entity.StorageType;
-import com.x.base.core.project.gson.XGsonBuilder;
+import com.x.base.core.project.annotation.Module;
+import com.x.base.core.project.annotation.ModuleCategory;
+import com.x.base.core.project.annotation.ModuleType;
 
+@Module(type = ModuleType.ASSEMBLE, category = ModuleCategory.OFFICIAL, name = "OKR")
 public class x_okr_assemble_control extends AssembleA {
 
-	public static final String name = "OKR";
-	public static List<String> containerEntities = new ArrayList<>();
-	public static List<StorageType> usedStorageTypes = new ArrayList<>();
-	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
-
-	static {
-		containerEntities.add("com.x.okr.entity.OkrAttachmentFileInfo");
-		containerEntities.add("com.x.okr.entity.OkrCenterWorkInfo");
-		containerEntities.add("com.x.okr.entity.OkrConfigSecretary");
-		containerEntities.add("com.x.okr.entity.OkrConfigSystem");
-		containerEntities.add("com.x.okr.entity.OkrConfigWorkLevel");
-		containerEntities.add("com.x.okr.entity.OkrConfigWorkType");
-		containerEntities.add("com.x.okr.entity.OkrTask");
-		containerEntities.add("com.x.okr.entity.OkrTaskHandled");
-		containerEntities.add("com.x.okr.entity.OkrWorkAuthorizeRecord");
-		containerEntities.add("com.x.okr.entity.OkrWorkBaseInfo");
-		containerEntities.add("com.x.okr.entity.OkrWorkDetailInfo");
-		containerEntities.add("com.x.okr.entity.OkrWorkDynamics");
-		containerEntities.add("com.x.okr.entity.OkrWorkPerson");
-		containerEntities.add("com.x.okr.entity.OkrWorkReportBaseInfo");
-		containerEntities.add("com.x.okr.entity.OkrWorkReportDetailInfo");
-		containerEntities.add("com.x.okr.entity.OkrWorkReportPersonLink");
-		containerEntities.add("com.x.okr.entity.OkrWorkReportProcessLog");		
-		containerEntities.add("com.x.okr.entity.OkrWorkChat");
-		containerEntities.add("com.x.okr.entity.OkrStatisticReportContent");
-		containerEntities.add("com.x.okr.entity.OkrStatisticReportStatus");
-		containerEntities.add("com.x.okr.entity.OkrUserInfo");
-		containerEntities.add("com.x.okr.entity.OkrErrorSystemIdentityInfo");
-		containerEntities.add("com.x.okr.entity.OkrErrorIdentityRecords");
-		containerEntities.add("com.x.okr.entity.OkrWorkAppraiseInfo");
-		usedStorageTypes.add(StorageType.okr);
-		dependents.add(x_base_core_project.class);
-		dependents.add(x_organization_core_entity.class);
-		dependents.add(x_organization_core_express.class);
-		dependents.add(x_okr_core_entity.class);
-		dependents.add(x_collaboration_core_message.class);
+	public x_okr_assemble_control() {
+		super();
+		dependency.containerEntities.add("com.x.okr.entity.OkrAttachmentFileInfo");
+		dependency.containerEntities.add("com.x.okr.entity.OkrCenterWorkInfo");
+		dependency.containerEntities.add("com.x.okr.entity.OkrConfigSecretary");
+		dependency.containerEntities.add("com.x.okr.entity.OkrConfigSystem");
+		dependency.containerEntities.add("com.x.okr.entity.OkrConfigWorkLevel");
+		dependency.containerEntities.add("com.x.okr.entity.OkrConfigWorkType");
+		dependency.containerEntities.add("com.x.okr.entity.OkrTask");
+		dependency.containerEntities.add("com.x.okr.entity.OkrTaskHandled");
+		dependency.containerEntities.add("com.x.okr.entity.OkrWorkAuthorizeRecord");
+		dependency.containerEntities.add("com.x.okr.entity.OkrWorkBaseInfo");
+		dependency.containerEntities.add("com.x.okr.entity.OkrWorkDetailInfo");
+		dependency.containerEntities.add("com.x.okr.entity.OkrWorkDynamics");
+		dependency.containerEntities.add("com.x.okr.entity.OkrWorkPerson");
+		dependency.containerEntities.add("com.x.okr.entity.OkrWorkReportBaseInfo");
+		dependency.containerEntities.add("com.x.okr.entity.OkrWorkReportDetailInfo");
+		dependency.containerEntities.add("com.x.okr.entity.OkrWorkReportPersonLink");
+		dependency.containerEntities.add("com.x.okr.entity.OkrWorkReportProcessLog");
+		dependency.containerEntities.add("com.x.okr.entity.OkrWorkChat");
+		dependency.containerEntities.add("com.x.okr.entity.OkrStatisticReportContent");
+		dependency.containerEntities.add("com.x.okr.entity.OkrStatisticReportStatus");
+		dependency.containerEntities.add("com.x.okr.entity.OkrUserInfo");
+		dependency.containerEntities.add("com.x.okr.entity.OkrErrorSystemIdentityInfo");
+		dependency.containerEntities.add("com.x.okr.entity.OkrErrorIdentityRecords");
+		dependency.containerEntities.add("com.x.okr.entity.OkrWorkAppraiseInfo");
+		dependency.storageTypes.add(StorageType.okr.toString());
+		dependency.storeJars.add(x_organization_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_organization_core_express.class.getSimpleName());
+		dependency.storeJars.add(x_okr_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_collaboration_core_message.class.getSimpleName());
 	}
 
-	protected void custom(File lib, String xLib) throws Exception {
-		// File xLibDir = new File(xLib);
-		// File libDir = new File(lib, "WEB-INF/lib");
-		// for (Class<? extends Compilable> clz : dependents) {
-		// FileUtils.copyDirectory(xLibDir, libDir, new
-		// NameFileFilter(clz.getSimpleName() + "-" + VERSION + ".jar"));
-		// }
-	}
-
-	public static void main(String[] args) {
-		try {
-			String str = args[0];
-			str = StringUtils.replace(str, "\\", "/");
-			Argument arg = XGsonBuilder.instance().fromJson(str, Argument.class);
-			x_okr_assemble_control o = new x_okr_assemble_control();
-			o.pack(arg.getDistPath(), arg.getRepositoryPath());
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
+//	public static final String name = "OKR";
+//	public static List<String> containerEntities = new ArrayList<>();
+//	public static List<StorageType> usedStorageTypes = new ArrayList<>();
+//	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
+//
+//	static {
+//		containerEntities.add("com.x.okr.entity.OkrAttachmentFileInfo");
+//		containerEntities.add("com.x.okr.entity.OkrCenterWorkInfo");
+//		containerEntities.add("com.x.okr.entity.OkrConfigSecretary");
+//		containerEntities.add("com.x.okr.entity.OkrConfigSystem");
+//		containerEntities.add("com.x.okr.entity.OkrConfigWorkLevel");
+//		containerEntities.add("com.x.okr.entity.OkrConfigWorkType");
+//		containerEntities.add("com.x.okr.entity.OkrTask");
+//		containerEntities.add("com.x.okr.entity.OkrTaskHandled");
+//		containerEntities.add("com.x.okr.entity.OkrWorkAuthorizeRecord");
+//		containerEntities.add("com.x.okr.entity.OkrWorkBaseInfo");
+//		containerEntities.add("com.x.okr.entity.OkrWorkDetailInfo");
+//		containerEntities.add("com.x.okr.entity.OkrWorkDynamics");
+//		containerEntities.add("com.x.okr.entity.OkrWorkPerson");
+//		containerEntities.add("com.x.okr.entity.OkrWorkReportBaseInfo");
+//		containerEntities.add("com.x.okr.entity.OkrWorkReportDetailInfo");
+//		containerEntities.add("com.x.okr.entity.OkrWorkReportPersonLink");
+//		containerEntities.add("com.x.okr.entity.OkrWorkReportProcessLog");
+//		containerEntities.add("com.x.okr.entity.OkrWorkChat");
+//		containerEntities.add("com.x.okr.entity.OkrStatisticReportContent");
+//		containerEntities.add("com.x.okr.entity.OkrStatisticReportStatus");
+//		containerEntities.add("com.x.okr.entity.OkrUserInfo");
+//		containerEntities.add("com.x.okr.entity.OkrErrorSystemIdentityInfo");
+//		containerEntities.add("com.x.okr.entity.OkrErrorIdentityRecords");
+//		containerEntities.add("com.x.okr.entity.OkrWorkAppraiseInfo");
+//		usedStorageTypes.add(StorageType.okr);
+//		dependents.add(x_base_core_project.class);
+//		dependents.add(x_organization_core_entity.class);
+//		dependents.add(x_organization_core_express.class);
+//		dependents.add(x_okr_core_entity.class);
+//		dependents.add(x_collaboration_core_message.class);
+//	}
 
 }

+ 5 - 0
o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_okr_core_entity.java

@@ -1,5 +1,10 @@
 package com.x.base.core.project;
 
+import com.x.base.core.project.annotation.Module;
+import com.x.base.core.project.annotation.ModuleCategory;
+import com.x.base.core.project.annotation.ModuleType;
+
+@Module(type = ModuleType.ENTITY, category = ModuleCategory.OFFICIAL, name = "OKR实体类")
 public class x_okr_core_entity extends CoreA {
 
 }

+ 28 - 21
o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_organization_assemble_authentication.java

@@ -1,30 +1,37 @@
 package com.x.base.core.project;
 
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import com.x.base.core.entity.StorageType;
+import com.x.base.core.project.annotation.Module;
+import com.x.base.core.project.annotation.ModuleCategory;
+import com.x.base.core.project.annotation.ModuleType;
 
+@Module(type = ModuleType.ASSEMBLE, category = ModuleCategory.OFFICIAL, name = "组织管理认证")
 public class x_organization_assemble_authentication extends AssembleA {
 
-	public static final String name = "组织管理认证";
-	public static List<String> containerEntities = new ArrayList<>();
-	public static List<StorageType> usedStorageTypes = new ArrayList<>();
-	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
-
-	static {
-		containerEntities.add("com.x.organization.core.entity.Person");
-		containerEntities.add("com.x.organization.core.entity.Identity");
-		containerEntities.add("com.x.organization.core.entity.Role");
-		containerEntities.add("com.x.organization.core.entity.Bind");
-		containerEntities.add("com.x.organization.core.entity.OauthCode");
-		dependents.add(x_base_core_project.class);
-		dependents.add(x_organization_core_entity.class);
-		dependents.add(x_organization_core_express.class);
+	public x_organization_assemble_authentication() {
+		super();
+		dependency.containerEntities.add("com.x.organization.core.entity.Person");
+		dependency.containerEntities.add("com.x.organization.core.entity.Identity");
+		dependency.containerEntities.add("com.x.organization.core.entity.Role");
+		dependency.containerEntities.add("com.x.organization.core.entity.Bind");
+		dependency.containerEntities.add("com.x.organization.core.entity.OauthCode");
+		dependency.storeJars.add(x_organization_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_organization_core_express.class.getSimpleName());
 	}
 
-	protected void custom(File lib, String xLib) throws Exception {
-	}
+//	public static final String name = "组织管理认证";
+//	public static List<String> containerEntities = new ArrayList<>();
+//	public static List<StorageType> usedStorageTypes = new ArrayList<>();
+//	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
+//
+//	static {
+//		containerEntities.add("com.x.organization.core.entity.Person");
+//		containerEntities.add("com.x.organization.core.entity.Identity");
+//		containerEntities.add("com.x.organization.core.entity.Role");
+//		containerEntities.add("com.x.organization.core.entity.Bind");
+//		containerEntities.add("com.x.organization.core.entity.OauthCode");
+//		dependents.add(x_base_core_project.class);
+//		dependents.add(x_organization_core_entity.class);
+//		dependents.add(x_organization_core_express.class);
+//	}
 
 }

+ 35 - 47
o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_organization_assemble_control.java

@@ -1,54 +1,42 @@
 package com.x.base.core.project;
 
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.commons.lang3.StringUtils;
-
-import com.x.base.core.entity.StorageType;
-import com.x.base.core.project.gson.XGsonBuilder;
+import com.x.base.core.project.annotation.Module;
+import com.x.base.core.project.annotation.ModuleCategory;
+import com.x.base.core.project.annotation.ModuleType;
 
+@Module(type = ModuleType.ASSEMBLE, category = ModuleCategory.OFFICIAL, name = "组织管理")
 public class x_organization_assemble_control extends AssembleA {
-
-	public static final String name = "组织管理";
-	public static List<String> containerEntities = new ArrayList<>();
-	public static List<StorageType> usedStorageTypes = new ArrayList<>();
-	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
-
-	static {
-		containerEntities.add("com.x.organization.core.entity.Group");
-		containerEntities.add("com.x.organization.core.entity.Custom");
-		containerEntities.add("com.x.organization.core.entity.Role");
-		containerEntities.add("com.x.organization.core.entity.Person");
-		containerEntities.add("com.x.organization.core.entity.Identity");
-		containerEntities.add("com.x.organization.core.entity.PersonAttribute");
-		containerEntities.add("com.x.organization.core.entity.Unit");
-		containerEntities.add("com.x.organization.core.entity.UnitAttribute");
-		containerEntities.add("com.x.organization.core.entity.UnitDuty");
-		dependents.add(x_base_core_project.class);
-		dependents.add(x_organization_core_entity.class);
-	}
-
-	protected void custom(File lib, String xLib) throws Exception {
-		// File xLibDir = new File(xLib);
-		// File libDir = new File(lib, "WEB-INF/lib");
-		// for (Class<? extends Compilable> clz : dependents) {
-		// FileUtils.copyDirectory(xLibDir, libDir, new
-		// NameFileFilter(clz.getSimpleName() + "-" + VERSION + ".jar"));
-		// }
-	}
-
-	public static void main(String[] args) {
-		try {
-			String str = args[0];
-			str = StringUtils.replace(str, "\\", "/");
-			Argument arg = XGsonBuilder.instance().fromJson(str, Argument.class);
-			x_organization_assemble_control o = new x_organization_assemble_control();
-			o.pack(arg.getDistPath(), arg.getRepositoryPath());
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
+	
+	public x_organization_assemble_control() {
+		super();
+		dependency.containerEntities.add("com.x.organization.core.entity.Group");
+		dependency.containerEntities.add("com.x.organization.core.entity.Custom");
+		dependency.containerEntities.add("com.x.organization.core.entity.Role");
+		dependency.containerEntities.add("com.x.organization.core.entity.Person");
+		dependency.containerEntities.add("com.x.organization.core.entity.Identity");
+		dependency.containerEntities.add("com.x.organization.core.entity.PersonAttribute");
+		dependency.containerEntities.add("com.x.organization.core.entity.Unit");
+		dependency.containerEntities.add("com.x.organization.core.entity.UnitAttribute");
+		dependency.containerEntities.add("com.x.organization.core.entity.UnitDuty");
+		dependency.storeJars.add(x_organization_core_entity.class.getSimpleName());
 	}
 
+//	public static final String name = "组织管理";
+//	public static List<String> containerEntities = new ArrayList<>();
+//	public static List<StorageType> usedStorageTypes = new ArrayList<>();
+//	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
+//
+//	static {
+//		containerEntities.add("com.x.organization.core.entity.Group");
+//		containerEntities.add("com.x.organization.core.entity.Custom");
+//		containerEntities.add("com.x.organization.core.entity.Role");
+//		containerEntities.add("com.x.organization.core.entity.Person");
+//		containerEntities.add("com.x.organization.core.entity.Identity");
+//		containerEntities.add("com.x.organization.core.entity.PersonAttribute");
+//		containerEntities.add("com.x.organization.core.entity.Unit");
+//		containerEntities.add("com.x.organization.core.entity.UnitAttribute");
+//		containerEntities.add("com.x.organization.core.entity.UnitDuty");
+//		dependents.add(x_base_core_project.class);
+//		dependents.add(x_organization_core_entity.class);
+//	}
 }

+ 22 - 39
o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_organization_assemble_custom.java

@@ -1,48 +1,31 @@
 package com.x.base.core.project;
 
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.commons.lang3.StringUtils;
-
-import com.x.base.core.entity.StorageType;
-import com.x.base.core.project.gson.XGsonBuilder;
+import com.x.base.core.project.annotation.Module;
+import com.x.base.core.project.annotation.ModuleCategory;
+import com.x.base.core.project.annotation.ModuleType;
 
+@Module(type = ModuleType.ASSEMBLE, category = ModuleCategory.OFFICIAL, name = "布局")
 public class x_organization_assemble_custom extends AssembleA {
 
-	public static final String name = "布局";
-	public static List<String> containerEntities = new ArrayList<>();
-	public static List<StorageType> usedStorageTypes = new ArrayList<>();
-	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
-
-	static {
-		containerEntities.add("com.x.organization.core.entity.Custom");
-		containerEntities.add("com.x.organization.core.entity.Person");
-		containerEntities.add("com.x.organization.core.entity.Definition");
-		dependents.add(x_base_core_project.class);
-		dependents.add(x_organization_core_entity.class);
+	public x_organization_assemble_custom() {
+		super();
+		dependency.containerEntities.add("com.x.organization.core.entity.Custom");
+		dependency.containerEntities.add("com.x.organization.core.entity.Person");
+		dependency.containerEntities.add("com.x.organization.core.entity.Definition");
+		dependency.storeJars.add(x_organization_core_entity.class.getSimpleName());
 	}
 
-	protected void custom(File lib, String xLib) throws Exception {
-		// File xLibDir = new File(xLib);
-		// File libDir = new File(lib, "WEB-INF/lib");
-		// for (Class<? extends Compilable> clz : dependents) {
-		// FileUtils.copyDirectory(xLibDir, libDir, new
-		// NameFileFilter(clz.getSimpleName() + "-" + VERSION + ".jar"));
-		// }
-	}
-
-	public static void main(String[] args) {
-		try {
-			String str = args[0];
-			str = StringUtils.replace(str, "\\", "/");
-			Argument arg = XGsonBuilder.instance().fromJson(str, Argument.class);
-			x_organization_assemble_custom o = new x_organization_assemble_custom();
-			o.pack(arg.getDistPath(), arg.getRepositoryPath());
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
+//	public static final String name = "布局";
+//	public static List<String> containerEntities = new ArrayList<>();
+//	public static List<StorageType> usedStorageTypes = new ArrayList<>();
+//	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
+//
+//	static {
+//		containerEntities.add("com.x.organization.core.entity.Custom");
+//		containerEntities.add("com.x.organization.core.entity.Person");
+//		containerEntities.add("com.x.organization.core.entity.Definition");
+//		dependents.add(x_base_core_project.class);
+//		dependents.add(x_organization_core_entity.class);
+//	}
 
 }

+ 32 - 38
o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_organization_assemble_express.java

@@ -1,47 +1,41 @@
 package com.x.base.core.project;
 
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.commons.lang3.StringUtils;
-
-import com.x.base.core.entity.StorageType;
-import com.x.base.core.project.gson.XGsonBuilder;
+import com.x.base.core.project.annotation.Module;
+import com.x.base.core.project.annotation.ModuleCategory;
+import com.x.base.core.project.annotation.ModuleType;
 
+@Module(type = ModuleType.ASSEMBLE, category = ModuleCategory.OFFICIAL, name = "组织管理接口服务")
 public class x_organization_assemble_express extends AssembleA {
 
-	public static final String name = "组织管理查询";
-	public static List<String> containerEntities = new ArrayList<>();
-	public static List<StorageType> usedStorageTypes = new ArrayList<>();
-	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
-
-	static {
-		containerEntities.add("com.x.organization.core.entity.Group");
-		containerEntities.add("com.x.organization.core.entity.Role");
-		containerEntities.add("com.x.organization.core.entity.Person");
-		containerEntities.add("com.x.organization.core.entity.PersonAttribute");
-		containerEntities.add("com.x.organization.core.entity.Identity");
-		containerEntities.add("com.x.organization.core.entity.Unit");
-		containerEntities.add("com.x.organization.core.entity.UnitAttribute");
-		containerEntities.add("com.x.organization.core.entity.UnitDuty");
-		dependents.add(x_base_core_project.class);
-		dependents.add(x_organization_core_entity.class);
+	public x_organization_assemble_express() {
+		super();
+		dependency.containerEntities.add("com.x.organization.core.entity.Group");
+		dependency.containerEntities.add("com.x.organization.core.entity.Role");
+		dependency.containerEntities.add("com.x.organization.core.entity.Person");
+		dependency.containerEntities.add("com.x.organization.core.entity.PersonAttribute");
+		dependency.containerEntities.add("com.x.organization.core.entity.Identity");
+		dependency.containerEntities.add("com.x.organization.core.entity.Unit");
+		dependency.containerEntities.add("com.x.organization.core.entity.UnitAttribute");
+		dependency.containerEntities.add("com.x.organization.core.entity.UnitDuty");
+		dependency.storeJars.add(x_organization_core_entity.class.getSimpleName());
 	}
 
-	protected void custom(File lib, String xLib) throws Exception {
-	}
-
-	public static void main(String[] args) {
-		try {
-			String str = args[0];
-			str = StringUtils.replace(str, "\\", "/");
-			Argument arg = XGsonBuilder.instance().fromJson(str, Argument.class);
-			x_organization_assemble_express o = new x_organization_assemble_express();
-			o.pack(arg.getDistPath(), arg.getRepositoryPath());
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
+//	public static final String name = "组织管理查询";
+//	public static List<String> containerEntities = new ArrayList<>();
+//	public static List<StorageType> usedStorageTypes = new ArrayList<>();
+//	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
+//
+//	static {
+//		containerEntities.add("com.x.organization.core.entity.Group");
+//		containerEntities.add("com.x.organization.core.entity.Role");
+//		containerEntities.add("com.x.organization.core.entity.Person");
+//		containerEntities.add("com.x.organization.core.entity.PersonAttribute");
+//		containerEntities.add("com.x.organization.core.entity.Identity");
+//		containerEntities.add("com.x.organization.core.entity.Unit");
+//		containerEntities.add("com.x.organization.core.entity.UnitAttribute");
+//		containerEntities.add("com.x.organization.core.entity.UnitDuty");
+//		dependents.add(x_base_core_project.class);
+//		dependents.add(x_organization_core_entity.class);
+//	}
 
 }

+ 35 - 46
o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_organization_assemble_personal.java

@@ -1,54 +1,43 @@
 package com.x.base.core.project;
 
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.commons.lang3.StringUtils;
-
-import com.x.base.core.entity.StorageType;
-import com.x.base.core.project.gson.XGsonBuilder;
+import com.x.base.core.project.annotation.Module;
+import com.x.base.core.project.annotation.ModuleCategory;
+import com.x.base.core.project.annotation.ModuleType;
 
+@Module(type = ModuleType.ASSEMBLE, category = ModuleCategory.OFFICIAL, name = "组织管理个人")
 public class x_organization_assemble_personal extends AssembleA {
-
-	public static final String name = "组织管理个人";
-	public static List<String> containerEntities = new ArrayList<>();
-	public static List<StorageType> usedStorageTypes = new ArrayList<>();
-	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
-
-	static {
-		containerEntities.add("com.x.organization.core.entity.Group");
-		containerEntities.add("com.x.organization.core.entity.Role");
-		containerEntities.add("com.x.organization.core.entity.Person");
-		containerEntities.add("com.x.organization.core.entity.PersonAttribute");
-		containerEntities.add("com.x.organization.core.entity.Identity");
-		containerEntities.add("com.x.organization.core.entity.Unit");
-		containerEntities.add("com.x.organization.core.entity.UnitAttribute");
-		containerEntities.add("com.x.organization.core.entity.UnitDuty");
-		dependents.add(x_base_core_project.class);
-		dependents.add(x_organization_core_entity.class);
-		dependents.add(x_organization_core_express.class);
+	
+	public x_organization_assemble_personal() {
+		super();
+		dependency.containerEntities.add("com.x.organization.core.entity.Group");
+		dependency.containerEntities.add("com.x.organization.core.entity.Role");
+		dependency.containerEntities.add("com.x.organization.core.entity.Person");
+		dependency.containerEntities.add("com.x.organization.core.entity.PersonAttribute");
+		dependency.containerEntities.add("com.x.organization.core.entity.Identity");
+		dependency.containerEntities.add("com.x.organization.core.entity.Unit");
+		dependency.containerEntities.add("com.x.organization.core.entity.UnitAttribute");
+		dependency.containerEntities.add("com.x.organization.core.entity.UnitDuty");
+		dependency.storeJars.add(x_organization_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_organization_core_express.class.getSimpleName());
 	}
 
-	protected void custom(File lib, String xLib) throws Exception {
-		// File xLibDir = new File(xLib);
-		// File libDir = new File(lib, "WEB-INF/lib");
-		// for (Class<? extends Compilable> clz : dependents) {
-		// FileUtils.copyDirectory(xLibDir, libDir, new
-		// NameFileFilter(clz.getSimpleName() + "-" + VERSION + ".jar"));
-		// }
-	}
-
-	public static void main(String[] args) {
-		try {
-			String str = args[0];
-			str = StringUtils.replace(str, "\\", "/");
-			Argument arg = XGsonBuilder.instance().fromJson(str, Argument.class);
-			x_organization_assemble_personal o = new x_organization_assemble_personal();
-			o.pack(arg.getDistPath(), arg.getRepositoryPath());
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
+//	public static final String name = "组织管理个人";
+//	public static List<String> containerEntities = new ArrayList<>();
+//	public static List<StorageType> usedStorageTypes = new ArrayList<>();
+//	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
+//
+//	static {
+//		containerEntities.add("com.x.organization.core.entity.Group");
+//		containerEntities.add("com.x.organization.core.entity.Role");
+//		containerEntities.add("com.x.organization.core.entity.Person");
+//		containerEntities.add("com.x.organization.core.entity.PersonAttribute");
+//		containerEntities.add("com.x.organization.core.entity.Identity");
+//		containerEntities.add("com.x.organization.core.entity.Unit");
+//		containerEntities.add("com.x.organization.core.entity.UnitAttribute");
+//		containerEntities.add("com.x.organization.core.entity.UnitDuty");
+//		dependents.add(x_base_core_project.class);
+//		dependents.add(x_organization_core_entity.class);
+//		dependents.add(x_organization_core_express.class);
+//	}
 
 }

+ 5 - 0
o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_organization_core_entity.java

@@ -1,5 +1,10 @@
 package com.x.base.core.project;
 
+import com.x.base.core.project.annotation.Module;
+import com.x.base.core.project.annotation.ModuleCategory;
+import com.x.base.core.project.annotation.ModuleType;
+
+@Module(type = ModuleType.ENTITY, category = ModuleCategory.OFFICIAL,name="组织管理实体类")
 public class x_organization_core_entity extends CoreA {
 
 }

+ 5 - 0
o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_organization_core_express.java

@@ -1,5 +1,10 @@
 package com.x.base.core.project;
 
+import com.x.base.core.project.annotation.Module;
+import com.x.base.core.project.annotation.ModuleCategory;
+import com.x.base.core.project.annotation.ModuleType;
+
+@Module(type = ModuleType.EXPRESS, category = ModuleCategory.OFFICIAL, name = "组织管理接口")
 public class x_organization_core_express extends CoreA {
 
 }

+ 32 - 29
o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_portal_assemble_designer.java

@@ -1,38 +1,41 @@
 package com.x.base.core.project;
 
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.commons.lang3.StringUtils;
-
-import com.x.base.core.entity.StorageType;
-import com.x.base.core.project.gson.XGsonBuilder;
+import com.x.base.core.project.annotation.Module;
+import com.x.base.core.project.annotation.ModuleCategory;
+import com.x.base.core.project.annotation.ModuleType;
 
+@Module(type = ModuleType.ASSEMBLE, category = ModuleCategory.OFFICIAL, name = "门户设计")
 public class x_portal_assemble_designer extends AssembleA {
 
-	public static final String name = "门户设计";
-	public static List<String> containerEntities = new ArrayList<>();
-	public static List<StorageType> usedStorageTypes = new ArrayList<>();
-	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
-
-	static {
-		containerEntities.add("com.x.portal.core.entity.Portal");
-		containerEntities.add("com.x.portal.core.entity.Widget");
-		containerEntities.add("com.x.portal.core.entity.Page");
-		containerEntities.add("com.x.portal.core.entity.Script");
-		containerEntities.add("com.x.portal.core.entity.File");
-		containerEntities.add("com.x.portal.core.entity.TemplatePage");
-		dependents.add(x_base_core_project.class);
-		dependents.add(x_organization_core_entity.class);
-		dependents.add(x_organization_core_express.class);
-		dependents.add(x_portal_core_entity.class);
+	public x_portal_assemble_designer() {
+		super();
+		dependency.containerEntities.add("com.x.portal.core.entity.Portal");
+		dependency.containerEntities.add("com.x.portal.core.entity.Widget");
+		dependency.containerEntities.add("com.x.portal.core.entity.Page");
+		dependency.containerEntities.add("com.x.portal.core.entity.Script");
+		dependency.containerEntities.add("com.x.portal.core.entity.File");
+		dependency.containerEntities.add("com.x.portal.core.entity.TemplatePage");
+		dependency.storeJars.add(x_organization_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_organization_core_express.class.getSimpleName());
+		dependency.storeJars.add(x_portal_core_entity.class.getSimpleName());
 	}
 
-	protected void custom(File lib, String xLib) throws Exception {
-	}
-
-	public static void main(String[] args) {
-	}
+//	public static final String name = "门户设计";
+//	public static List<String> containerEntities = new ArrayList<>();
+//	public static List<StorageType> usedStorageTypes = new ArrayList<>();
+//	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
+//
+//	static {
+//		containerEntities.add("com.x.portal.core.entity.Portal");
+//		containerEntities.add("com.x.portal.core.entity.Widget");
+//		containerEntities.add("com.x.portal.core.entity.Page");
+//		containerEntities.add("com.x.portal.core.entity.Script");
+//		containerEntities.add("com.x.portal.core.entity.File");
+//		containerEntities.add("com.x.portal.core.entity.TemplatePage");
+//		dependents.add(x_base_core_project.class);
+//		dependents.add(x_organization_core_entity.class);
+//		dependents.add(x_organization_core_express.class);
+//		dependents.add(x_portal_core_entity.class);
+//	}
 
 }

+ 30 - 26
o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_portal_assemble_surface.java

@@ -1,34 +1,38 @@
 package com.x.base.core.project;
 
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import com.x.base.core.entity.StorageType;
+import com.x.base.core.project.annotation.Module;
+import com.x.base.core.project.annotation.ModuleCategory;
+import com.x.base.core.project.annotation.ModuleType;
 
+@Module(type = ModuleType.ASSEMBLE, category = ModuleCategory.OFFICIAL, name = "门户")
 public class x_portal_assemble_surface extends AssembleA {
 
-	public static final String name = "门户";
-	public static List<String> containerEntities = new ArrayList<>();
-	public static List<StorageType> usedStorageTypes = new ArrayList<>();
-	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
-
-	static {
-		containerEntities.add("com.x.portal.core.entity.Portal");
-		containerEntities.add("com.x.portal.core.entity.Widget");
-		containerEntities.add("com.x.portal.core.entity.Page");
-		containerEntities.add("com.x.portal.core.entity.Script");
-		containerEntities.add("com.x.portal.core.entity.File");
-		dependents.add(x_base_core_project.class);
-		dependents.add(x_organization_core_entity.class);
-		dependents.add(x_organization_core_express.class);
-		dependents.add(x_portal_core_entity.class);
-	}
-
-	protected void custom(File lib, String xLib) throws Exception {
-	}
-
-	public static void main(String[] args) {
+	public x_portal_assemble_surface() {
+		super();
+		dependency.containerEntities.add("com.x.portal.core.entity.Portal");
+		dependency.containerEntities.add("com.x.portal.core.entity.Widget");
+		dependency.containerEntities.add("com.x.portal.core.entity.Page");
+		dependency.containerEntities.add("com.x.portal.core.entity.Script");
+		dependency.containerEntities.add("com.x.portal.core.entity.File");
+		dependency.storeJars.add(x_organization_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_organization_core_express.class.getSimpleName());
+		dependency.storeJars.add(x_portal_core_entity.class.getSimpleName());
 	}
 
+//	public static final String name = "门户";
+//	public static List<String> containerEntities = new ArrayList<>();
+//	public static List<StorageType> usedStorageTypes = new ArrayList<>();
+//	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
+//
+//	static {
+//		containerEntities.add("com.x.portal.core.entity.Portal");
+//		containerEntities.add("com.x.portal.core.entity.Widget");
+//		containerEntities.add("com.x.portal.core.entity.Page");
+//		containerEntities.add("com.x.portal.core.entity.Script");
+//		containerEntities.add("com.x.portal.core.entity.File");
+//		dependents.add(x_base_core_project.class);
+//		dependents.add(x_organization_core_entity.class);
+//		dependents.add(x_organization_core_express.class);
+//		dependents.add(x_portal_core_entity.class);
+//	}
 }

+ 6 - 1
o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_portal_core_entity.java

@@ -1,5 +1,10 @@
 package com.x.base.core.project;
 
+import com.x.base.core.project.annotation.Module;
+import com.x.base.core.project.annotation.ModuleCategory;
+import com.x.base.core.project.annotation.ModuleType;
+
+@Module(type = ModuleType.ENTITY, category = ModuleCategory.OFFICIAL,name="门户实体类")
 public class x_portal_core_entity extends CoreA {
- 
+
 }

+ 89 - 67
o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_processplatform_assemble_bam.java

@@ -1,76 +1,98 @@
 package com.x.base.core.project;
 
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.commons.lang3.StringUtils;
-
-import com.x.base.core.entity.StorageType;
-import com.x.base.core.project.gson.XGsonBuilder;
+import com.x.base.core.project.annotation.Module;
+import com.x.base.core.project.annotation.ModuleCategory;
+import com.x.base.core.project.annotation.ModuleType;
 
+@Module(type = ModuleType.ASSEMBLE, category = ModuleCategory.OFFICIAL, name = "流程监控")
 public class x_processplatform_assemble_bam extends AssembleA {
 
-	public static final String name = "流程监控";
-	public static List<String> containerEntities = new ArrayList<>();
-	public static List<StorageType> usedStorageTypes = new ArrayList<>();
-	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
-
-	static {
-		containerEntities.add("com.x.processplatform.core.entity.content.Attachment");
-		containerEntities.add("com.x.processplatform.core.entity.content.Read");
-		containerEntities.add("com.x.processplatform.core.entity.content.ReadCompleted");
-		containerEntities.add("com.x.processplatform.core.entity.content.Review");
-		containerEntities.add("com.x.processplatform.core.entity.content.SerialNumber");
-		containerEntities.add("com.x.processplatform.core.entity.content.Task");
-		containerEntities.add("com.x.processplatform.core.entity.content.TaskCompleted");
-		containerEntities.add("com.x.processplatform.core.entity.content.Work");
-		containerEntities.add("com.x.processplatform.core.entity.content.WorkCompleted");
-		containerEntities.add("com.x.processplatform.core.entity.content.WorkLog");
-		containerEntities.add("com.x.processplatform.core.entity.element.Agent");
-		containerEntities.add("com.x.processplatform.core.entity.element.Application");
-		containerEntities.add("com.x.processplatform.core.entity.element.ApplicationDict");
-		containerEntities.add("com.x.processplatform.core.entity.element.ApplicationDictItem");
-		// containerEntities.add("com.x.processplatform.core.entity.element.ApplicationDictLobItem");
-		containerEntities.add("com.x.processplatform.core.entity.element.Begin");
-		containerEntities.add("com.x.processplatform.core.entity.element.Cancel");
-		containerEntities.add("com.x.processplatform.core.entity.element.Choice");
-		containerEntities.add("com.x.processplatform.core.entity.element.Delay");
-		containerEntities.add("com.x.processplatform.core.entity.element.Embed");
-		containerEntities.add("com.x.processplatform.core.entity.element.End");
-		containerEntities.add("com.x.processplatform.core.entity.element.Form");
-		containerEntities.add("com.x.processplatform.core.entity.element.Invoke");
-		containerEntities.add("com.x.processplatform.core.entity.element.Manual");
-		containerEntities.add("com.x.processplatform.core.entity.element.Merge");
-		containerEntities.add("com.x.processplatform.core.entity.element.Message");
-		containerEntities.add("com.x.processplatform.core.entity.element.Parallel");
-		containerEntities.add("com.x.processplatform.core.entity.element.Process");
-		containerEntities.add("com.x.processplatform.core.entity.element.Route");
-		containerEntities.add("com.x.processplatform.core.entity.element.Script");
-		containerEntities.add("com.x.processplatform.core.entity.element.Service");
-		containerEntities.add("com.x.processplatform.core.entity.element.Split");
-		containerEntities.add("com.x.processplatform.core.entity.element.QueryView");
-		containerEntities.add("com.x.query.core.entity.Item");
-		dependents.add(x_base_core_project.class);
-		dependents.add(x_organization_core_entity.class);
-		dependents.add(x_organization_core_express.class);
-		dependents.add(x_processplatform_core_entity.class);
-		dependents.add(x_query_core_entity.class);
+	public x_processplatform_assemble_bam() {
+		super();
+		dependency.containerEntities.add("com.x.processplatform.core.entity.content.Attachment");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.content.Read");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.content.ReadCompleted");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.content.Review");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.content.SerialNumber");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.content.Task");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.content.TaskCompleted");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.content.Work");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.content.WorkCompleted");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.content.WorkLog");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Agent");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Application");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.ApplicationDict");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.ApplicationDictItem");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Begin");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Cancel");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Choice");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Delay");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Embed");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.End");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Form");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Invoke");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Manual");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Merge");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Message");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Parallel");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Process");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Route");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Script");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Service");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Split");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.QueryView");
+		dependency.containerEntities.add("com.x.query.core.entity.Item");
+		dependency.storeJars.add(x_organization_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_organization_core_express.class.getSimpleName());
+		dependency.storeJars.add(x_portal_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_processplatform_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_query_core_entity.class.getSimpleName());
 	}
 
-	protected void custom(File lib, String xLib) throws Exception {
-	}
-
-	public static void main(String[] args) {
-		try {
-			String str = args[0];
-			str = StringUtils.replace(str, "\\", "/");
-			Argument arg = XGsonBuilder.instance().fromJson(str, Argument.class);
-			x_processplatform_assemble_bam o = new x_processplatform_assemble_bam();
-			o.pack(arg.getDistPath(), arg.getRepositoryPath());
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
+//	public static final String name = "流程监控";
+//	public static List<String> containerEntities = new ArrayList<>();
+//	public static List<StorageType> usedStorageTypes = new ArrayList<>();
+//	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
+//
+//	static {
+//		containerEntities.add("com.x.processplatform.core.entity.content.Attachment");
+//		containerEntities.add("com.x.processplatform.core.entity.content.Read");
+//		containerEntities.add("com.x.processplatform.core.entity.content.ReadCompleted");
+//		containerEntities.add("com.x.processplatform.core.entity.content.Review");
+//		containerEntities.add("com.x.processplatform.core.entity.content.SerialNumber");
+//		containerEntities.add("com.x.processplatform.core.entity.content.Task");
+//		containerEntities.add("com.x.processplatform.core.entity.content.TaskCompleted");
+//		containerEntities.add("com.x.processplatform.core.entity.content.Work");
+//		containerEntities.add("com.x.processplatform.core.entity.content.WorkCompleted");
+//		containerEntities.add("com.x.processplatform.core.entity.content.WorkLog");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Agent");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Application");
+//		containerEntities.add("com.x.processplatform.core.entity.element.ApplicationDict");
+//		containerEntities.add("com.x.processplatform.core.entity.element.ApplicationDictItem");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Begin");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Cancel");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Choice");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Delay");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Embed");
+//		containerEntities.add("com.x.processplatform.core.entity.element.End");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Form");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Invoke");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Manual");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Merge");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Message");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Parallel");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Process");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Route");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Script");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Service");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Split");
+//		containerEntities.add("com.x.processplatform.core.entity.element.QueryView");
+//		containerEntities.add("com.x.query.core.entity.Item");
+//		dependents.add(x_base_core_project.class);
+//		dependents.add(x_organization_core_entity.class);
+//		dependents.add(x_organization_core_express.class);
+//		dependents.add(x_processplatform_core_entity.class);
+//		dependents.add(x_query_core_entity.class);
+//	}
 
 }

+ 100 - 72
o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_processplatform_assemble_designer.java

@@ -1,82 +1,110 @@
 package com.x.base.core.project;
 
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.commons.lang3.StringUtils;
-
 import com.x.base.core.entity.StorageType;
-import com.x.base.core.project.gson.XGsonBuilder;
+import com.x.base.core.project.annotation.Module;
+import com.x.base.core.project.annotation.ModuleCategory;
+import com.x.base.core.project.annotation.ModuleType;
 
+@Module(type = ModuleType.ASSEMBLE, category = ModuleCategory.OFFICIAL, name = "流程设计")
 public class x_processplatform_assemble_designer extends AssembleA {
 
-	public static final String name = "流程设计";
-	public static List<String> containerEntities = new ArrayList<>();
-	public static List<StorageType> usedStorageTypes = new ArrayList<>();
-	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
-
-	static {
-		containerEntities.add("com.x.processplatform.core.entity.content.Attachment");
-		containerEntities.add("com.x.processplatform.core.entity.content.Read");
-		containerEntities.add("com.x.processplatform.core.entity.content.ReadCompleted");
-		containerEntities.add("com.x.processplatform.core.entity.content.Review");
-		containerEntities.add("com.x.processplatform.core.entity.content.Hint");
-		containerEntities.add("com.x.processplatform.core.entity.content.SerialNumber");
-		containerEntities.add("com.x.processplatform.core.entity.content.Task");
-		containerEntities.add("com.x.processplatform.core.entity.content.TaskCompleted");
-		containerEntities.add("com.x.processplatform.core.entity.content.Work");
-		containerEntities.add("com.x.processplatform.core.entity.content.WorkCompleted");
-		containerEntities.add("com.x.processplatform.core.entity.content.WorkLog");
-		containerEntities.add("com.x.processplatform.core.entity.element.Invoke");
-		containerEntities.add("com.x.processplatform.core.entity.element.Message");
-		containerEntities.add("com.x.processplatform.core.entity.element.Split");
-		containerEntities.add("com.x.processplatform.core.entity.element.File");
-		containerEntities.add("com.x.processplatform.core.entity.element.Form");
-		containerEntities.add("com.x.processplatform.core.entity.element.FormField");
-		containerEntities.add("com.x.processplatform.core.entity.element.TemplateForm");
-		containerEntities.add("com.x.processplatform.core.entity.element.Application");
-		containerEntities.add("com.x.processplatform.core.entity.element.Script");
-		containerEntities.add("com.x.processplatform.core.entity.element.Merge");
-		containerEntities.add("com.x.processplatform.core.entity.element.Agent");
-		containerEntities.add("com.x.processplatform.core.entity.element.Process");
-		containerEntities.add("com.x.processplatform.core.entity.element.Choice");
-		containerEntities.add("com.x.processplatform.core.entity.element.Delay");
-		containerEntities.add("com.x.processplatform.core.entity.element.Parallel");
-		containerEntities.add("com.x.processplatform.core.entity.element.Begin");
-		containerEntities.add("com.x.processplatform.core.entity.element.Cancel");
-		containerEntities.add("com.x.processplatform.core.entity.element.Embed");
-		containerEntities.add("com.x.processplatform.core.entity.element.Service");
-		containerEntities.add("com.x.processplatform.core.entity.element.Manual");
-		containerEntities.add("com.x.processplatform.core.entity.element.Route");
-		containerEntities.add("com.x.processplatform.core.entity.element.End");
-		containerEntities.add("com.x.processplatform.core.entity.element.ApplicationDict");
-		containerEntities.add("com.x.processplatform.core.entity.element.ApplicationDictItem");
-		containerEntities.add("com.x.processplatform.core.entity.element.QueryView");
-		containerEntities.add("com.x.processplatform.core.entity.element.QueryStat");
-		containerEntities.add("com.x.query.core.entity.Item");
-		usedStorageTypes.add(StorageType.processPlatform);
-		dependents.add(x_base_core_project.class);
-		dependents.add(x_organization_core_entity.class);
-		dependents.add(x_organization_core_express.class);
-		dependents.add(x_processplatform_core_entity.class);
-		dependents.add(x_query_core_entity.class);
+	public x_processplatform_assemble_designer() {
+		super();
+		dependency.containerEntities.add("com.x.processplatform.core.entity.content.Attachment");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.content.Read");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.content.ReadCompleted");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.content.Review");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.content.Hint");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.content.SerialNumber");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.content.Task");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.content.TaskCompleted");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.content.Work");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.content.WorkCompleted");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.content.WorkLog");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Invoke");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Message");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Split");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.File");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Form");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.FormField");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.TemplateForm");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Application");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Script");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Merge");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Agent");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Process");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Choice");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Delay");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Parallel");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Begin");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Cancel");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Embed");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Service");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Manual");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Route");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.End");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.ApplicationDict");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.ApplicationDictItem");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.QueryView");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.QueryStat");
+		dependency.containerEntities.add("com.x.query.core.entity.Item");
+		dependency.storageTypes.add(StorageType.processPlatform.toString());
+		dependency.storeJars.add(x_organization_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_organization_core_express.class.getSimpleName());
+		dependency.storeJars.add(x_processplatform_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_query_core_entity.class.getSimpleName());
 	}
 
-	protected void custom(File lib, String xLib) throws Exception {
-
-	}
-
-	public static void main(String[] args) {
-		try {
-			String str = args[0];
-			str = StringUtils.replace(str, "\\", "/");
-			Argument arg = XGsonBuilder.instance().fromJson(str, Argument.class);
-			x_processplatform_assemble_designer o = new x_processplatform_assemble_designer();
-			o.pack(arg.getDistPath(), arg.getRepositoryPath());
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
+//	public static final String name = "流程设计";
+//	public static List<String> containerEntities = new ArrayList<>();
+//	public static List<StorageType> usedStorageTypes = new ArrayList<>();
+//	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
+//
+//	static {
+//		containerEntities.add("com.x.processplatform.core.entity.content.Attachment");
+//		containerEntities.add("com.x.processplatform.core.entity.content.Read");
+//		containerEntities.add("com.x.processplatform.core.entity.content.ReadCompleted");
+//		containerEntities.add("com.x.processplatform.core.entity.content.Review");
+//		containerEntities.add("com.x.processplatform.core.entity.content.Hint");
+//		containerEntities.add("com.x.processplatform.core.entity.content.SerialNumber");
+//		containerEntities.add("com.x.processplatform.core.entity.content.Task");
+//		containerEntities.add("com.x.processplatform.core.entity.content.TaskCompleted");
+//		containerEntities.add("com.x.processplatform.core.entity.content.Work");
+//		containerEntities.add("com.x.processplatform.core.entity.content.WorkCompleted");
+//		containerEntities.add("com.x.processplatform.core.entity.content.WorkLog");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Invoke");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Message");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Split");
+//		containerEntities.add("com.x.processplatform.core.entity.element.File");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Form");
+//		containerEntities.add("com.x.processplatform.core.entity.element.FormField");
+//		containerEntities.add("com.x.processplatform.core.entity.element.TemplateForm");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Application");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Script");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Merge");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Agent");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Process");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Choice");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Delay");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Parallel");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Begin");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Cancel");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Embed");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Service");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Manual");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Route");
+//		containerEntities.add("com.x.processplatform.core.entity.element.End");
+//		containerEntities.add("com.x.processplatform.core.entity.element.ApplicationDict");
+//		containerEntities.add("com.x.processplatform.core.entity.element.ApplicationDictItem");
+//		containerEntities.add("com.x.processplatform.core.entity.element.QueryView");
+//		containerEntities.add("com.x.processplatform.core.entity.element.QueryStat");
+//		containerEntities.add("com.x.query.core.entity.Item");
+//		usedStorageTypes.add(StorageType.processPlatform);
+//		dependents.add(x_base_core_project.class);
+//		dependents.add(x_organization_core_entity.class);
+//		dependents.add(x_organization_core_express.class);
+//		dependents.add(x_processplatform_core_entity.class);
+//		dependents.add(x_query_core_entity.class);
+//	}
 
 }

+ 100 - 72
o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_processplatform_assemble_surface.java

@@ -1,81 +1,109 @@
 package com.x.base.core.project;
 
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.commons.lang3.StringUtils;
-
 import com.x.base.core.entity.StorageType;
-import com.x.base.core.project.gson.XGsonBuilder;
+import com.x.base.core.project.annotation.Module;
+import com.x.base.core.project.annotation.ModuleCategory;
+import com.x.base.core.project.annotation.ModuleType;
 
+@Module(type = ModuleType.ASSEMBLE, category = ModuleCategory.OFFICIAL, name = "流程")
 public class x_processplatform_assemble_surface extends AssembleA {
-
-	public static final String name = "流程";
-	public static List<String> containerEntities = new ArrayList<>();
-	public static List<StorageType> usedStorageTypes = new ArrayList<>();
-	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
-
-	static {
-		containerEntities.add("com.x.processplatform.core.entity.content.Attachment");
-		containerEntities.add("com.x.processplatform.core.entity.content.Read");
-		containerEntities.add("com.x.processplatform.core.entity.content.ReadCompleted");
-		containerEntities.add("com.x.processplatform.core.entity.content.Review");
-		containerEntities.add("com.x.processplatform.core.entity.content.Hint");
-		containerEntities.add("com.x.processplatform.core.entity.content.SerialNumber");
-		containerEntities.add("com.x.processplatform.core.entity.content.Task");
-		containerEntities.add("com.x.processplatform.core.entity.content.TaskCompleted");
-		containerEntities.add("com.x.processplatform.core.entity.content.Work");
-		containerEntities.add("com.x.processplatform.core.entity.content.WorkCompleted");
-		containerEntities.add("com.x.processplatform.core.entity.content.WorkLog");
-		containerEntities.add("com.x.processplatform.core.entity.element.Agent");
-		containerEntities.add("com.x.processplatform.core.entity.element.Application");
-		containerEntities.add("com.x.processplatform.core.entity.element.ApplicationDict");
-		containerEntities.add("com.x.processplatform.core.entity.element.ApplicationDictItem");
-		// containerEntities.add("com.x.processplatform.core.entity.element.ApplicationDictLobItem");
-		containerEntities.add("com.x.processplatform.core.entity.element.Begin");
-		containerEntities.add("com.x.processplatform.core.entity.element.Cancel");
-		containerEntities.add("com.x.processplatform.core.entity.element.Choice");
-		containerEntities.add("com.x.processplatform.core.entity.element.Delay");
-		containerEntities.add("com.x.processplatform.core.entity.element.Embed");
-		containerEntities.add("com.x.processplatform.core.entity.element.End");
-		containerEntities.add("com.x.processplatform.core.entity.element.File");
-		containerEntities.add("com.x.processplatform.core.entity.element.Form");
-		containerEntities.add("com.x.processplatform.core.entity.element.FormField");
-		containerEntities.add("com.x.processplatform.core.entity.element.Invoke");
-		containerEntities.add("com.x.processplatform.core.entity.element.Manual");
-		containerEntities.add("com.x.processplatform.core.entity.element.Merge");
-		containerEntities.add("com.x.processplatform.core.entity.element.Message");
-		containerEntities.add("com.x.processplatform.core.entity.element.Parallel");
-		containerEntities.add("com.x.processplatform.core.entity.element.Process");
-		containerEntities.add("com.x.processplatform.core.entity.element.Route");
-		containerEntities.add("com.x.processplatform.core.entity.element.Script");
-		containerEntities.add("com.x.processplatform.core.entity.element.Service");
-		containerEntities.add("com.x.processplatform.core.entity.element.Split");
-		containerEntities.add("com.x.processplatform.core.entity.element.QueryView");
-		containerEntities.add("com.x.processplatform.core.entity.element.QueryStat");
-		containerEntities.add("com.x.query.core.entity.Item");
-		usedStorageTypes.add(StorageType.processPlatform);
-		dependents.add(x_base_core_project.class);
-		dependents.add(x_organization_core_entity.class);
-		dependents.add(x_organization_core_express.class);
-		dependents.add(x_processplatform_core_entity.class);
-		dependents.add(x_query_core_entity.class);
+	
+	public x_processplatform_assemble_surface() {
+		super();
+		dependency.containerEntities.add("com.x.processplatform.core.entity.content.Attachment");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.content.Read");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.content.ReadCompleted");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.content.Review");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.content.Hint");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.content.SerialNumber");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.content.Task");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.content.TaskCompleted");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.content.Work");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.content.WorkCompleted");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.content.WorkLog");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Agent");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Application");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.ApplicationDict");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.ApplicationDictItem");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Begin");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Cancel");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Choice");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Delay");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Embed");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.End");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.File");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Form");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.FormField");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Invoke");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Manual");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Merge");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Message");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Parallel");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Process");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Route");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Script");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Service");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Split");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.QueryView");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.QueryStat");
+		dependency.containerEntities.add("com.x.query.core.entity.Item");
+		dependency.storageTypes.add(StorageType.processPlatform.toString());
+		dependency.storeJars.add(x_organization_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_organization_core_express.class.getSimpleName());
+		dependency.storeJars.add(x_processplatform_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_query_core_entity.class.getSimpleName());
 	}
 
-	protected void custom(File lib, String xLib) throws Exception {
-	}
-
-	public static void main(String[] args) {
-		try {
-			String str = args[0];
-			str = StringUtils.replace(str, "\\", "/");
-			Argument arg = XGsonBuilder.instance().fromJson(str, Argument.class);
-			x_processplatform_assemble_surface o = new x_processplatform_assemble_surface();
-			o.pack(arg.getDistPath(), arg.getRepositoryPath());
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
+//	public static final String name = "流程";
+//	public static List<String> containerEntities = new ArrayList<>();
+//	public static List<StorageType> usedStorageTypes = new ArrayList<>();
+//	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
+//
+//	static {
+//		containerEntities.add("com.x.processplatform.core.entity.content.Attachment");
+//		containerEntities.add("com.x.processplatform.core.entity.content.Read");
+//		containerEntities.add("com.x.processplatform.core.entity.content.ReadCompleted");
+//		containerEntities.add("com.x.processplatform.core.entity.content.Review");
+//		containerEntities.add("com.x.processplatform.core.entity.content.Hint");
+//		containerEntities.add("com.x.processplatform.core.entity.content.SerialNumber");
+//		containerEntities.add("com.x.processplatform.core.entity.content.Task");
+//		containerEntities.add("com.x.processplatform.core.entity.content.TaskCompleted");
+//		containerEntities.add("com.x.processplatform.core.entity.content.Work");
+//		containerEntities.add("com.x.processplatform.core.entity.content.WorkCompleted");
+//		containerEntities.add("com.x.processplatform.core.entity.content.WorkLog");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Agent");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Application");
+//		containerEntities.add("com.x.processplatform.core.entity.element.ApplicationDict");
+//		containerEntities.add("com.x.processplatform.core.entity.element.ApplicationDictItem");
+//		// containerEntities.add("com.x.processplatform.core.entity.element.ApplicationDictLobItem");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Begin");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Cancel");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Choice");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Delay");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Embed");
+//		containerEntities.add("com.x.processplatform.core.entity.element.End");
+//		containerEntities.add("com.x.processplatform.core.entity.element.File");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Form");
+//		containerEntities.add("com.x.processplatform.core.entity.element.FormField");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Invoke");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Manual");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Merge");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Message");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Parallel");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Process");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Route");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Script");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Service");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Split");
+//		containerEntities.add("com.x.processplatform.core.entity.element.QueryView");
+//		containerEntities.add("com.x.processplatform.core.entity.element.QueryStat");
+//		containerEntities.add("com.x.query.core.entity.Item");
+//		usedStorageTypes.add(StorageType.processPlatform);
+//		dependents.add(x_base_core_project.class);
+//		dependents.add(x_organization_core_entity.class);
+//		dependents.add(x_organization_core_express.class);
+//		dependents.add(x_processplatform_core_entity.class);
+//		dependents.add(x_query_core_entity.class);
+//	}
 
 }

+ 5 - 0
o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_processplatform_core_entity.java

@@ -1,5 +1,10 @@
 package com.x.base.core.project;
 
+import com.x.base.core.project.annotation.Module;
+import com.x.base.core.project.annotation.ModuleCategory;
+import com.x.base.core.project.annotation.ModuleType;
+
+@Module(type = ModuleType.ENTITY, category = ModuleCategory.OFFICIAL,name="流程实体类")
 public class x_processplatform_core_entity extends CoreA {
 
 }

+ 102 - 58
o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_processplatform_service_processing.java

@@ -1,67 +1,111 @@
 package com.x.base.core.project;
 
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
 import com.x.base.core.entity.StorageType;
+import com.x.base.core.project.annotation.Module;
+import com.x.base.core.project.annotation.ModuleCategory;
+import com.x.base.core.project.annotation.ModuleType;
 
+@Module(type = ModuleType.SERVICE, category = ModuleCategory.OFFICIAL, name = "流程服务")
 public class x_processplatform_service_processing extends ServiceA {
-
-	public static final String name = "流程驱动";
-	public static List<String> containerEntities = new ArrayList<>();
-	public static List<StorageType> usedStorageTypes = new ArrayList<>();
-	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
-
-	static {
-		containerEntities.add("com.x.processplatform.core.entity.content.Attachment");
-		containerEntities.add("com.x.processplatform.core.entity.content.TaskCompleted");
-		containerEntities.add("com.x.processplatform.core.entity.content.ReadCompleted");
-		containerEntities.add("com.x.processplatform.core.entity.content.Review");
-		containerEntities.add("com.x.processplatform.core.entity.content.Hint");
-		containerEntities.add("com.x.processplatform.core.entity.content.WorkCompleted");
-		containerEntities.add("com.x.processplatform.core.entity.content.WorkLog");
-		containerEntities.add("com.x.processplatform.core.entity.content.Task");
-		containerEntities.add("com.x.processplatform.core.entity.content.Work");
-		containerEntities.add("com.x.processplatform.core.entity.content.Read");
-		containerEntities.add("com.x.processplatform.core.entity.content.SerialNumber");
-		containerEntities.add("com.x.processplatform.core.entity.element.End");
-		containerEntities.add("com.x.processplatform.core.entity.element.Application");
-		containerEntities.add("com.x.processplatform.core.entity.element.ApplicationDict");
-		containerEntities.add("com.x.processplatform.core.entity.element.ApplicationDictItem");
-		// containerEntities.add("com.x.processplatform.core.entity.element.ApplicationDictLobItem");
-		containerEntities.add("com.x.processplatform.core.entity.element.Script");
-		containerEntities.add("com.x.processplatform.core.entity.element.Cancel");
-		containerEntities.add("com.x.processplatform.core.entity.element.Merge");
-		containerEntities.add("com.x.processplatform.core.entity.element.Route");
-		containerEntities.add("com.x.processplatform.core.entity.element.Choice");
-		containerEntities.add("com.x.processplatform.core.entity.element.Invoke");
-		containerEntities.add("com.x.processplatform.core.entity.element.Manual");
-		containerEntities.add("com.x.processplatform.core.entity.element.Parallel");
-		containerEntities.add("com.x.processplatform.core.entity.element.Begin");
-		containerEntities.add("com.x.processplatform.core.entity.element.Split");
-		containerEntities.add("com.x.processplatform.core.entity.element.Message");
-		containerEntities.add("com.x.processplatform.core.entity.element.Process");
-		containerEntities.add("com.x.processplatform.core.entity.element.Service");
-		containerEntities.add("com.x.processplatform.core.entity.element.Agent");
-		containerEntities.add("com.x.processplatform.core.entity.element.Delay");
-		containerEntities.add("com.x.processplatform.core.entity.element.File");
-		containerEntities.add("com.x.processplatform.core.entity.element.Form");
-		containerEntities.add("com.x.processplatform.core.entity.element.FormField");
-		containerEntities.add("com.x.processplatform.core.entity.element.Embed");
-		containerEntities.add("com.x.processplatform.core.entity.log.ProcessingError");
-		containerEntities.add("com.x.query.core.entity.Item");
-		usedStorageTypes.add(StorageType.processPlatform);
-		dependents.add(x_base_core_project.class);
-		dependents.add(x_organization_core_entity.class);
-		dependents.add(x_organization_core_express.class);
-		dependents.add(x_processplatform_core_entity.class);
-		dependents.add(x_collaboration_core_entity.class);
-		dependents.add(x_collaboration_core_message.class);
-		dependents.add(x_query_core_entity.class);
+	
+	public x_processplatform_service_processing() {
+		super();
+		dependency.containerEntities.add("com.x.processplatform.core.entity.content.Attachment");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.content.TaskCompleted");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.content.ReadCompleted");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.content.Review");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.content.Hint");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.content.WorkCompleted");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.content.WorkLog");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.content.Task");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.content.Work");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.content.Read");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.content.SerialNumber");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.End");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Application");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.ApplicationDict");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.ApplicationDictItem");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Script");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Cancel");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Merge");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Route");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Choice");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Invoke");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Manual");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Parallel");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Begin");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Split");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Message");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Process");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Service");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Agent");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Delay");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.File");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Form");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.FormField");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.element.Embed");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.log.ProcessingError");
+		dependency.containerEntities.add("com.x.query.core.entity.Item");
+		dependency.storageTypes.add(StorageType.processPlatform.toString());
+		dependency.storeJars.add(x_organization_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_organization_core_express.class.getSimpleName());
+		dependency.storeJars.add(x_processplatform_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_collaboration_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_collaboration_core_message.class.getSimpleName());
+		dependency.storeJars.add(x_query_core_entity.class.getSimpleName());
 	}
 
-	protected void custom(File lib, String xLib) throws Exception {
-	}
+//	public static final String name = "流程驱动";
+//	public static List<String> containerEntities = new ArrayList<>();
+//	public static List<StorageType> usedStorageTypes = new ArrayList<>();
+//	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
+//
+//	static {
+//		containerEntities.add("com.x.processplatform.core.entity.content.Attachment");
+//		containerEntities.add("com.x.processplatform.core.entity.content.TaskCompleted");
+//		containerEntities.add("com.x.processplatform.core.entity.content.ReadCompleted");
+//		containerEntities.add("com.x.processplatform.core.entity.content.Review");
+//		containerEntities.add("com.x.processplatform.core.entity.content.Hint");
+//		containerEntities.add("com.x.processplatform.core.entity.content.WorkCompleted");
+//		containerEntities.add("com.x.processplatform.core.entity.content.WorkLog");
+//		containerEntities.add("com.x.processplatform.core.entity.content.Task");
+//		containerEntities.add("com.x.processplatform.core.entity.content.Work");
+//		containerEntities.add("com.x.processplatform.core.entity.content.Read");
+//		containerEntities.add("com.x.processplatform.core.entity.content.SerialNumber");
+//		containerEntities.add("com.x.processplatform.core.entity.element.End");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Application");
+//		containerEntities.add("com.x.processplatform.core.entity.element.ApplicationDict");
+//		containerEntities.add("com.x.processplatform.core.entity.element.ApplicationDictItem");
+//		// containerEntities.add("com.x.processplatform.core.entity.element.ApplicationDictLobItem");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Script");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Cancel");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Merge");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Route");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Choice");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Invoke");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Manual");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Parallel");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Begin");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Split");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Message");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Process");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Service");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Agent");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Delay");
+//		containerEntities.add("com.x.processplatform.core.entity.element.File");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Form");
+//		containerEntities.add("com.x.processplatform.core.entity.element.FormField");
+//		containerEntities.add("com.x.processplatform.core.entity.element.Embed");
+//		containerEntities.add("com.x.processplatform.core.entity.log.ProcessingError");
+//		containerEntities.add("com.x.query.core.entity.Item");
+//		usedStorageTypes.add(StorageType.processPlatform);
+//		dependents.add(x_base_core_project.class);
+//		dependents.add(x_organization_core_entity.class);
+//		dependents.add(x_organization_core_express.class);
+//		dependents.add(x_processplatform_core_entity.class);
+//		dependents.add(x_collaboration_core_entity.class);
+//		dependents.add(x_collaboration_core_message.class);
+//		dependents.add(x_query_core_entity.class);
+//	}
 
 }

+ 94 - 51
o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_program_center.java

@@ -1,57 +1,100 @@
 package com.x.base.core.project;
 
-import java.util.ArrayList;
-import java.util.List;
-
-import com.x.base.core.entity.StorageType;
+import com.x.base.core.project.annotation.Module;
+import com.x.base.core.project.annotation.ModuleCategory;
+import com.x.base.core.project.annotation.ModuleType;
 
+@Module(type = ModuleType.CENTER, category = ModuleCategory.OFFICIAL, name = "中心")
 public class x_program_center extends AssembleC {
-
-	public static final String name = "中心";
-	public static List<String> containerEntities = new ArrayList<>();
-	public static List<StorageType> usedStorageTypes = new ArrayList<>();
-	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
-
-	static {
-		containerEntities.add("com.x.program.center.core.entity.Agent");
-		containerEntities.add("com.x.program.center.core.entity.Invoke");
-		containerEntities.add("com.x.program.center.core.entity.Captcha");
-		containerEntities.add("com.x.program.center.core.entity.Code");
-		containerEntities.add("com.x.program.center.core.entity.PromptErrorLog");
-		containerEntities.add("com.x.program.center.core.entity.UnexpectedErrorLog");
-		containerEntities.add("com.x.program.center.core.entity.Structure");
-		containerEntities.add("com.x.program.center.core.entity.WarnLog");
-		containerEntities.add("com.x.program.center.core.entity.validation.Meta");
-		containerEntities.add("com.x.portal.core.entity.Page");
-		containerEntities.add("com.x.portal.core.entity.Portal");
-		containerEntities.add("com.x.organization.core.entity.Group");
-		containerEntities.add("com.x.organization.core.entity.Custom");
-		containerEntities.add("com.x.organization.core.entity.Role");
-		containerEntities.add("com.x.organization.core.entity.Person");
-		containerEntities.add("com.x.organization.core.entity.Identity");
-		containerEntities.add("com.x.organization.core.entity.PersonAttribute");
-		containerEntities.add("com.x.organization.core.entity.Unit");
-		containerEntities.add("com.x.organization.core.entity.UnitAttribute");
-		containerEntities.add("com.x.organization.core.entity.UnitDuty");
-		containerEntities.add("com.x.general.core.entity.area.District");
-		containerEntities.add("com.x.program.center.core.entity.Schedule");
-		containerEntities.add("com.x.program.center.core.entity.ScheduleLocal");
-		containerEntities.add("com.x.program.center.core.entity.ScheduleLog");
-		dependents.add(x_base_core_project.class);
-		dependents.add(x_organization_core_express.class);
-		dependents.add(x_program_center_core_entity.class);
-		dependents.add(x_attendance_core_entity.class);
-		dependents.add(x_cms_core_entity.class);
-		dependents.add(x_collaboration_core_entity.class);
-		dependents.add(x_component_core_entity.class);
-		dependents.add(x_file_core_entity.class);
-		dependents.add(x_meeting_core_entity.class);
-		dependents.add(x_okr_core_entity.class);
-		dependents.add(x_organization_core_entity.class);
-		dependents.add(x_processplatform_core_entity.class);
-		dependents.add(x_message_core_entity.class);
-		dependents.add(x_query_core_entity.class);
-		dependents.add(x_portal_core_entity.class);
-		dependents.add(x_general_core_entity.class);
+	
+	public x_program_center() {
+		super();
+		dependency.containerEntities.add("com.x.program.center.core.entity.Agent");
+		dependency.containerEntities.add("com.x.program.center.core.entity.Invoke");
+		dependency.containerEntities.add("com.x.program.center.core.entity.Captcha");
+		dependency.containerEntities.add("com.x.program.center.core.entity.Code");
+		dependency.containerEntities.add("com.x.program.center.core.entity.PromptErrorLog");
+		dependency.containerEntities.add("com.x.program.center.core.entity.UnexpectedErrorLog");
+		dependency.containerEntities.add("com.x.program.center.core.entity.Structure");
+		dependency.containerEntities.add("com.x.program.center.core.entity.WarnLog");
+		dependency.containerEntities.add("com.x.program.center.core.entity.validation.Meta");
+		dependency.containerEntities.add("com.x.portal.core.entity.Page");
+		dependency.containerEntities.add("com.x.portal.core.entity.Portal");
+		dependency.containerEntities.add("com.x.organization.core.entity.Group");
+		dependency.containerEntities.add("com.x.organization.core.entity.Custom");
+		dependency.containerEntities.add("com.x.organization.core.entity.Role");
+		dependency.containerEntities.add("com.x.organization.core.entity.Person");
+		dependency.containerEntities.add("com.x.organization.core.entity.Identity");
+		dependency.containerEntities.add("com.x.organization.core.entity.PersonAttribute");
+		dependency.containerEntities.add("com.x.organization.core.entity.Unit");
+		dependency.containerEntities.add("com.x.organization.core.entity.UnitAttribute");
+		dependency.containerEntities.add("com.x.organization.core.entity.UnitDuty");
+		dependency.containerEntities.add("com.x.general.core.entity.area.District");
+		dependency.containerEntities.add("com.x.program.center.core.entity.Schedule");
+		dependency.containerEntities.add("com.x.program.center.core.entity.ScheduleLocal");
+		dependency.containerEntities.add("com.x.program.center.core.entity.ScheduleLog");
+		dependency.storeJars.add(x_organization_core_express.class.getSimpleName());
+		dependency.storeJars.add(x_program_center_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_attendance_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_cms_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_collaboration_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_component_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_file_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_meeting_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_okr_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_organization_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_processplatform_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_message_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_query_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_portal_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_general_core_entity.class.getSimpleName());
 	}
+
+//	public static final String name = "中心";
+//	public static List<String> containerEntities = new ArrayList<>();
+//	public static List<StorageType> usedStorageTypes = new ArrayList<>();
+//	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
+//
+//	static {
+//		containerEntities.add("com.x.program.center.core.entity.Agent");
+//		containerEntities.add("com.x.program.center.core.entity.Invoke");
+//		containerEntities.add("com.x.program.center.core.entity.Captcha");
+//		containerEntities.add("com.x.program.center.core.entity.Code");
+//		containerEntities.add("com.x.program.center.core.entity.PromptErrorLog");
+//		containerEntities.add("com.x.program.center.core.entity.UnexpectedErrorLog");
+//		containerEntities.add("com.x.program.center.core.entity.Structure");
+//		containerEntities.add("com.x.program.center.core.entity.WarnLog");
+//		containerEntities.add("com.x.program.center.core.entity.validation.Meta");
+//		containerEntities.add("com.x.portal.core.entity.Page");
+//		containerEntities.add("com.x.portal.core.entity.Portal");
+//		containerEntities.add("com.x.organization.core.entity.Group");
+//		containerEntities.add("com.x.organization.core.entity.Custom");
+//		containerEntities.add("com.x.organization.core.entity.Role");
+//		containerEntities.add("com.x.organization.core.entity.Person");
+//		containerEntities.add("com.x.organization.core.entity.Identity");
+//		containerEntities.add("com.x.organization.core.entity.PersonAttribute");
+//		containerEntities.add("com.x.organization.core.entity.Unit");
+//		containerEntities.add("com.x.organization.core.entity.UnitAttribute");
+//		containerEntities.add("com.x.organization.core.entity.UnitDuty");
+//		containerEntities.add("com.x.general.core.entity.area.District");
+//		containerEntities.add("com.x.program.center.core.entity.Schedule");
+//		containerEntities.add("com.x.program.center.core.entity.ScheduleLocal");
+//		containerEntities.add("com.x.program.center.core.entity.ScheduleLog");
+//		dependents.add(x_base_core_project.class);
+//		dependents.add(x_organization_core_express.class);
+//		dependents.add(x_program_center_core_entity.class);
+//		dependents.add(x_attendance_core_entity.class);
+//		dependents.add(x_cms_core_entity.class);
+//		dependents.add(x_collaboration_core_entity.class);
+//		dependents.add(x_component_core_entity.class);
+//		dependents.add(x_file_core_entity.class);
+//		dependents.add(x_meeting_core_entity.class);
+//		dependents.add(x_okr_core_entity.class);
+//		dependents.add(x_organization_core_entity.class);
+//		dependents.add(x_processplatform_core_entity.class);
+//		dependents.add(x_message_core_entity.class);
+//		dependents.add(x_query_core_entity.class);
+//		dependents.add(x_portal_core_entity.class);
+//		dependents.add(x_general_core_entity.class);
+//	}
 }

+ 5 - 0
o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_program_center_core_entity.java

@@ -1,5 +1,10 @@
 package com.x.base.core.project;
 
+import com.x.base.core.project.annotation.Module;
+import com.x.base.core.project.annotation.ModuleCategory;
+import com.x.base.core.project.annotation.ModuleType;
+
+@Module(type = ModuleType.ENTITY, category = ModuleCategory.OFFICIAL,name="中心实体类")
 public class x_program_center_core_entity extends CoreC {
 
 }

+ 66 - 44
o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_query_assemble_designer.java

@@ -1,53 +1,75 @@
 package com.x.base.core.project;
 
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
 import com.x.base.core.entity.StorageType;
+import com.x.base.core.project.annotation.Module;
+import com.x.base.core.project.annotation.ModuleCategory;
+import com.x.base.core.project.annotation.ModuleType;
 
+@Module(type = ModuleType.ASSEMBLE, category = ModuleCategory.OFFICIAL, name = "数据查询设计")
 public class x_query_assemble_designer extends AssembleA {
-
-	public static final String name = "数据查询设计";
-	public static List<String> containerEntities = new ArrayList<>();
-	public static List<StorageType> usedStorageTypes = new ArrayList<>();
-	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
-
-	static {
-		containerEntities.add("com.x.query.core.entity.Item");
-		containerEntities.add("com.x.query.core.entity.Query");
-		containerEntities.add("com.x.query.core.entity.View");
-		containerEntities.add("com.x.query.core.entity.Stat");
-		containerEntities.add("com.x.query.core.entity.Reveal");
-		containerEntities.add("com.x.query.core.entity.neural.Entry");
-		containerEntities.add("com.x.query.core.entity.neural.InText");
-		containerEntities.add("com.x.query.core.entity.neural.OutText");
-		containerEntities.add("com.x.query.core.entity.neural.InValue");
-		containerEntities.add("com.x.query.core.entity.neural.OutValue");
-		containerEntities.add("com.x.query.core.entity.neural.Model");
-		containerEntities.add("com.x.processplatform.core.entity.content.Review");
-		containerEntities.add("com.x.processplatform.core.entity.content.Work");
-		containerEntities.add("com.x.processplatform.core.entity.content.WorkCompleted");
-		containerEntities.add("com.x.processplatform.core.entity.content.Attachment");
-		containerEntities.add("com.x.cms.core.entity.Document");
-		containerEntities.add("com.x.cms.core.entity.AppInfo");
-		containerEntities.add("com.x.cms.core.entity.CategoryInfo");
-		usedStorageTypes.add(StorageType.processPlatform);
-		// usedStorageTypes.add(StorageType.cms);
-		dependents.add(x_base_core_project.class);
-		dependents.add(x_query_core_entity.class);
-		dependents.add(x_organization_core_entity.class);
-		dependents.add(x_organization_core_express.class);
-		dependents.add(x_processplatform_core_entity.class);
-		dependents.add(x_cms_core_entity.class);
-		dependents.add(x_query_core_express.class);
+	
+	public x_query_assemble_designer() {
+		super();
+		dependency.containerEntities.add("com.x.query.core.entity.Item");
+		dependency.containerEntities.add("com.x.query.core.entity.Query");
+		dependency.containerEntities.add("com.x.query.core.entity.View");
+		dependency.containerEntities.add("com.x.query.core.entity.Stat");
+		dependency.containerEntities.add("com.x.query.core.entity.Reveal");
+		dependency.containerEntities.add("com.x.query.core.entity.neural.Entry");
+		dependency.containerEntities.add("com.x.query.core.entity.neural.InText");
+		dependency.containerEntities.add("com.x.query.core.entity.neural.OutText");
+		dependency.containerEntities.add("com.x.query.core.entity.neural.InValue");
+		dependency.containerEntities.add("com.x.query.core.entity.neural.OutValue");
+		dependency.containerEntities.add("com.x.query.core.entity.neural.Model");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.content.Review");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.content.Work");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.content.WorkCompleted");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.content.Attachment");
+		dependency.containerEntities.add("com.x.cms.core.entity.Document");
+		dependency.containerEntities.add("com.x.cms.core.entity.AppInfo");
+		dependency.containerEntities.add("com.x.cms.core.entity.CategoryInfo");
+		dependency.storageTypes.add(StorageType.processPlatform.toString());
+		dependency.storeJars.add(x_query_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_organization_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_organization_core_express.class.getSimpleName());
+		dependency.storeJars.add(x_processplatform_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_cms_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_query_core_express.class.getSimpleName());
 	}
 
-	public static void main(String[] args) {
-	}
-
-	protected void custom(File dir, String repositoryPath) throws Exception {
-
-	}
+//	public static final String name = "数据查询设计";
+//	public static List<String> containerEntities = new ArrayList<>();
+//	public static List<StorageType> usedStorageTypes = new ArrayList<>();
+//	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
+//
+//	static {
+//		containerEntities.add("com.x.query.core.entity.Item");
+//		containerEntities.add("com.x.query.core.entity.Query");
+//		containerEntities.add("com.x.query.core.entity.View");
+//		containerEntities.add("com.x.query.core.entity.Stat");
+//		containerEntities.add("com.x.query.core.entity.Reveal");
+//		containerEntities.add("com.x.query.core.entity.neural.Entry");
+//		containerEntities.add("com.x.query.core.entity.neural.InText");
+//		containerEntities.add("com.x.query.core.entity.neural.OutText");
+//		containerEntities.add("com.x.query.core.entity.neural.InValue");
+//		containerEntities.add("com.x.query.core.entity.neural.OutValue");
+//		containerEntities.add("com.x.query.core.entity.neural.Model");
+//		containerEntities.add("com.x.processplatform.core.entity.content.Review");
+//		containerEntities.add("com.x.processplatform.core.entity.content.Work");
+//		containerEntities.add("com.x.processplatform.core.entity.content.WorkCompleted");
+//		containerEntities.add("com.x.processplatform.core.entity.content.Attachment");
+//		containerEntities.add("com.x.cms.core.entity.Document");
+//		containerEntities.add("com.x.cms.core.entity.AppInfo");
+//		containerEntities.add("com.x.cms.core.entity.CategoryInfo");
+//		usedStorageTypes.add(StorageType.processPlatform);
+//		// usedStorageTypes.add(StorageType.cms);
+//		dependents.add(x_base_core_project.class);
+//		dependents.add(x_query_core_entity.class);
+//		dependents.add(x_organization_core_entity.class);
+//		dependents.add(x_organization_core_express.class);
+//		dependents.add(x_processplatform_core_entity.class);
+//		dependents.add(x_cms_core_entity.class);
+//		dependents.add(x_query_core_express.class);
+//	}
 
 }

+ 71 - 42
o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_query_assemble_surface.java

@@ -1,51 +1,80 @@
 package com.x.base.core.project;
 
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
 import com.x.base.core.entity.StorageType;
+import com.x.base.core.project.annotation.Module;
+import com.x.base.core.project.annotation.ModuleCategory;
+import com.x.base.core.project.annotation.ModuleType;
 
+@Module(type = ModuleType.ASSEMBLE, category = ModuleCategory.OFFICIAL, name = "数据查询")
 public class x_query_assemble_surface extends AssembleA {
-
-	public static final String name = "数据查询";
-	public static List<String> containerEntities = new ArrayList<>();
-	public static List<StorageType> usedStorageTypes = new ArrayList<>();
-	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
-
-	static {
-		containerEntities.add("com.x.query.core.entity.Item");
-		containerEntities.add("com.x.query.core.entity.Query");
-		containerEntities.add("com.x.query.core.entity.View");
-		containerEntities.add("com.x.query.core.entity.Stat");
-		containerEntities.add("com.x.query.core.entity.Reveal");
-		containerEntities.add("com.x.query.core.entity.segment.Word");
-		containerEntities.add("com.x.query.core.entity.segment.Entry");
-		containerEntities.add("com.x.query.core.entity.neural.Entry");
-		containerEntities.add("com.x.query.core.entity.neural.InText");
-		containerEntities.add("com.x.query.core.entity.neural.OutText");
-		containerEntities.add("com.x.query.core.entity.neural.InValue");
-		containerEntities.add("com.x.query.core.entity.neural.OutValue");
-		containerEntities.add("com.x.query.core.entity.neural.Model");
-		containerEntities.add("com.x.processplatform.core.entity.content.Review");
-		containerEntities.add("com.x.processplatform.core.entity.content.Work");
-		containerEntities.add("com.x.processplatform.core.entity.content.WorkCompleted");
-		containerEntities.add("com.x.processplatform.core.entity.content.Attachment");
-		containerEntities.add("com.x.cms.core.entity.Document");
-		containerEntities.add("com.x.cms.core.entity.AppInfo");
-		containerEntities.add("com.x.cms.core.entity.CategoryInfo");
-		usedStorageTypes.add(StorageType.processPlatform);
-		usedStorageTypes.add(StorageType.cms);
-		dependents.add(x_base_core_project.class);
-		dependents.add(x_query_core_entity.class);
-		dependents.add(x_organization_core_entity.class);
-		dependents.add(x_organization_core_express.class);
-		dependents.add(x_processplatform_core_entity.class);
-		dependents.add(x_cms_core_entity.class);
-		dependents.add(x_query_core_express.class);
+	
+	public x_query_assemble_surface() {
+		super();
+		dependency.containerEntities.add("com.x.query.core.entity.Item");
+		dependency.containerEntities.add("com.x.query.core.entity.Query");
+		dependency.containerEntities.add("com.x.query.core.entity.View");
+		dependency.containerEntities.add("com.x.query.core.entity.Stat");
+		dependency.containerEntities.add("com.x.query.core.entity.Reveal");
+		dependency.containerEntities.add("com.x.query.core.entity.segment.Word");
+		dependency.containerEntities.add("com.x.query.core.entity.segment.Entry");
+		dependency.containerEntities.add("com.x.query.core.entity.neural.Entry");
+		dependency.containerEntities.add("com.x.query.core.entity.neural.InText");
+		dependency.containerEntities.add("com.x.query.core.entity.neural.OutText");
+		dependency.containerEntities.add("com.x.query.core.entity.neural.InValue");
+		dependency.containerEntities.add("com.x.query.core.entity.neural.OutValue");
+		dependency.containerEntities.add("com.x.query.core.entity.neural.Model");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.content.Review");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.content.Work");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.content.WorkCompleted");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.content.Attachment");
+		dependency.containerEntities.add("com.x.cms.core.entity.Document");
+		dependency.containerEntities.add("com.x.cms.core.entity.AppInfo");
+		dependency.containerEntities.add("com.x.cms.core.entity.CategoryInfo");
+		dependency.storageTypes.add(StorageType.processPlatform.toString());
+		dependency.storageTypes.add(StorageType.cms.toString());
+		dependency.storeJars.add(x_query_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_organization_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_organization_core_express.class.getSimpleName());
+		dependency.storeJars.add(x_processplatform_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_cms_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_query_core_express.class.getSimpleName());
 	}
 
-	protected void custom(File lib, String xLib) throws Exception {
-	}
+//	public static final String name = "数据查询";
+//	public static List<String> containerEntities = new ArrayList<>();
+//	public static List<StorageType> usedStorageTypes = new ArrayList<>();
+//	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
+//
+//	static {
+//		containerEntities.add("com.x.query.core.entity.Item");
+//		containerEntities.add("com.x.query.core.entity.Query");
+//		containerEntities.add("com.x.query.core.entity.View");
+//		containerEntities.add("com.x.query.core.entity.Stat");
+//		containerEntities.add("com.x.query.core.entity.Reveal");
+//		containerEntities.add("com.x.query.core.entity.segment.Word");
+//		containerEntities.add("com.x.query.core.entity.segment.Entry");
+//		containerEntities.add("com.x.query.core.entity.neural.Entry");
+//		containerEntities.add("com.x.query.core.entity.neural.InText");
+//		containerEntities.add("com.x.query.core.entity.neural.OutText");
+//		containerEntities.add("com.x.query.core.entity.neural.InValue");
+//		containerEntities.add("com.x.query.core.entity.neural.OutValue");
+//		containerEntities.add("com.x.query.core.entity.neural.Model");
+//		containerEntities.add("com.x.processplatform.core.entity.content.Review");
+//		containerEntities.add("com.x.processplatform.core.entity.content.Work");
+//		containerEntities.add("com.x.processplatform.core.entity.content.WorkCompleted");
+//		containerEntities.add("com.x.processplatform.core.entity.content.Attachment");
+//		containerEntities.add("com.x.cms.core.entity.Document");
+//		containerEntities.add("com.x.cms.core.entity.AppInfo");
+//		containerEntities.add("com.x.cms.core.entity.CategoryInfo");
+//		usedStorageTypes.add(StorageType.processPlatform);
+//		usedStorageTypes.add(StorageType.cms);
+//		dependents.add(x_base_core_project.class);
+//		dependents.add(x_query_core_entity.class);
+//		dependents.add(x_organization_core_entity.class);
+//		dependents.add(x_organization_core_express.class);
+//		dependents.add(x_processplatform_core_entity.class);
+//		dependents.add(x_cms_core_entity.class);
+//		dependents.add(x_query_core_express.class);
+//	}
 
 }

+ 6 - 1
o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_query_core_entity.java

@@ -1,5 +1,10 @@
 package com.x.base.core.project;
 
+import com.x.base.core.project.annotation.Module;
+import com.x.base.core.project.annotation.ModuleCategory;
+import com.x.base.core.project.annotation.ModuleType;
+
+@Module(type = ModuleType.ENTITY, category = ModuleCategory.OFFICIAL,name="数据查询实体类")
 public class x_query_core_entity extends CoreA {
- 
+
 }

+ 5 - 0
o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_query_core_express.java

@@ -1,5 +1,10 @@
 package com.x.base.core.project;
 
+import com.x.base.core.project.annotation.Module;
+import com.x.base.core.project.annotation.ModuleCategory;
+import com.x.base.core.project.annotation.ModuleType;
+
+@Module(type = ModuleType.EXPRESS, category = ModuleCategory.OFFICIAL,name="数据查询接口")
 public class x_query_core_express extends CoreA {
 
 }

+ 70 - 41
o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_query_service_processing.java

@@ -1,51 +1,80 @@
 package com.x.base.core.project;
 
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
 import com.x.base.core.entity.StorageType;
+import com.x.base.core.project.annotation.Module;
+import com.x.base.core.project.annotation.ModuleCategory;
+import com.x.base.core.project.annotation.ModuleType;
 
+@Module(type = ModuleType.SERVICE, category = ModuleCategory.OFFICIAL, name = "数据查询服务")
 public class x_query_service_processing extends ServiceA {
 
-	public static final String name = "数据处理";
-	public static List<String> containerEntities = new ArrayList<>();
-	public static List<StorageType> usedStorageTypes = new ArrayList<>();
-	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
-
-	static {
-		containerEntities.add("com.x.query.core.entity.Item");
-		containerEntities.add("com.x.query.core.entity.Query");
-		containerEntities.add("com.x.query.core.entity.View");
-		containerEntities.add("com.x.query.core.entity.Stat");
-		containerEntities.add("com.x.query.core.entity.Reveal");
-		containerEntities.add("com.x.query.core.entity.segment.Word");
-		containerEntities.add("com.x.query.core.entity.segment.Entry");
-		containerEntities.add("com.x.query.core.entity.neural.Entry");
-		containerEntities.add("com.x.query.core.entity.neural.InText");
-		containerEntities.add("com.x.query.core.entity.neural.OutText");
-		containerEntities.add("com.x.query.core.entity.neural.InValue");
-		containerEntities.add("com.x.query.core.entity.neural.OutValue");
-		containerEntities.add("com.x.query.core.entity.neural.Model");
-		containerEntities.add("com.x.processplatform.core.entity.content.Review");
-		containerEntities.add("com.x.processplatform.core.entity.content.Work");
-		containerEntities.add("com.x.processplatform.core.entity.content.WorkCompleted");
-		containerEntities.add("com.x.processplatform.core.entity.content.Attachment");
-		containerEntities.add("com.x.cms.core.entity.Document");
-		containerEntities.add("com.x.cms.core.entity.FileInfo");
-		containerEntities.add("com.x.cms.core.entity.AppInfo");
-		containerEntities.add("com.x.cms.core.entity.CategoryInfo");
-		usedStorageTypes.add(StorageType.processPlatform);
-		usedStorageTypes.add(StorageType.cms);
-		dependents.add(x_base_core_project.class);
-		dependents.add(x_query_core_entity.class);
-		dependents.add(x_organization_core_entity.class);
-		dependents.add(x_organization_core_express.class);
-		dependents.add(x_processplatform_core_entity.class);
-		dependents.add(x_cms_core_entity.class);
+	public x_query_service_processing() {
+		super();
+		dependency.containerEntities.add("com.x.query.core.entity.Item");
+		dependency.containerEntities.add("com.x.query.core.entity.Query");
+		dependency.containerEntities.add("com.x.query.core.entity.View");
+		dependency.containerEntities.add("com.x.query.core.entity.Stat");
+		dependency.containerEntities.add("com.x.query.core.entity.Reveal");
+		dependency.containerEntities.add("com.x.query.core.entity.segment.Word");
+		dependency.containerEntities.add("com.x.query.core.entity.segment.Entry");
+		dependency.containerEntities.add("com.x.query.core.entity.neural.Entry");
+		dependency.containerEntities.add("com.x.query.core.entity.neural.InText");
+		dependency.containerEntities.add("com.x.query.core.entity.neural.OutText");
+		dependency.containerEntities.add("com.x.query.core.entity.neural.InValue");
+		dependency.containerEntities.add("com.x.query.core.entity.neural.OutValue");
+		dependency.containerEntities.add("com.x.query.core.entity.neural.Model");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.content.Review");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.content.Work");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.content.WorkCompleted");
+		dependency.containerEntities.add("com.x.processplatform.core.entity.content.Attachment");
+		dependency.containerEntities.add("com.x.cms.core.entity.Document");
+		dependency.containerEntities.add("com.x.cms.core.entity.FileInfo");
+		dependency.containerEntities.add("com.x.cms.core.entity.AppInfo");
+		dependency.containerEntities.add("com.x.cms.core.entity.CategoryInfo");
+		dependency.storageTypes.add(StorageType.processPlatform.toString());
+		dependency.storageTypes.add(StorageType.cms.toString());
+		dependency.storeJars.add(x_query_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_organization_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_organization_core_express.class.getSimpleName());
+		dependency.storeJars.add(x_processplatform_core_entity.class.getSimpleName());
+		dependency.storeJars.add(x_cms_core_entity.class.getSimpleName());
 	}
 
-	protected void custom(File lib, String xLib) throws Exception {
-	}
+//	public static final String name = "数据处理";
+//	public static List<String> containerEntities = new ArrayList<>();
+//	public static List<StorageType> usedStorageTypes = new ArrayList<>();
+//	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
+//
+//	static {
+//		containerEntities.add("com.x.query.core.entity.Item");
+//		containerEntities.add("com.x.query.core.entity.Query");
+//		containerEntities.add("com.x.query.core.entity.View");
+//		containerEntities.add("com.x.query.core.entity.Stat");
+//		containerEntities.add("com.x.query.core.entity.Reveal");
+//		containerEntities.add("com.x.query.core.entity.segment.Word");
+//		containerEntities.add("com.x.query.core.entity.segment.Entry");
+//		containerEntities.add("com.x.query.core.entity.neural.Entry");
+//		containerEntities.add("com.x.query.core.entity.neural.InText");
+//		containerEntities.add("com.x.query.core.entity.neural.OutText");
+//		containerEntities.add("com.x.query.core.entity.neural.InValue");
+//		containerEntities.add("com.x.query.core.entity.neural.OutValue");
+//		containerEntities.add("com.x.query.core.entity.neural.Model");
+//		containerEntities.add("com.x.processplatform.core.entity.content.Review");
+//		containerEntities.add("com.x.processplatform.core.entity.content.Work");
+//		containerEntities.add("com.x.processplatform.core.entity.content.WorkCompleted");
+//		containerEntities.add("com.x.processplatform.core.entity.content.Attachment");
+//		containerEntities.add("com.x.cms.core.entity.Document");
+//		containerEntities.add("com.x.cms.core.entity.FileInfo");
+//		containerEntities.add("com.x.cms.core.entity.AppInfo");
+//		containerEntities.add("com.x.cms.core.entity.CategoryInfo");
+//		usedStorageTypes.add(StorageType.processPlatform);
+//		usedStorageTypes.add(StorageType.cms);
+//		dependents.add(x_base_core_project.class);
+//		dependents.add(x_query_core_entity.class);
+//		dependents.add(x_organization_core_entity.class);
+//		dependents.add(x_organization_core_express.class);
+//		dependents.add(x_processplatform_core_entity.class);
+//		dependents.add(x_cms_core_entity.class);
+//	}
 
 }

+ 0 - 72
o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_report_assemble_control.java

@@ -1,72 +0,0 @@
-package com.x.base.core.project;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.commons.lang3.StringUtils;
-
-import com.x.base.core.entity.StorageType;
-import com.x.base.core.project.gson.XGsonBuilder;
-
-public class x_report_assemble_control extends AssembleA {
-
-	public static final String name = "汇报管理";
-	public static List<String> containerEntities = new ArrayList<>();
-	public static List<StorageType> usedStorageTypes = new ArrayList<>();
-	public static List<Class<? extends Compilable>> dependents = new ArrayList<>();
-
-	static {
-		containerEntities.add("com.x.report.core.entity.Report_C_WorkPlanNext");
-		containerEntities.add("com.x.report.core.entity.Report_C_WorkPlanNextDetail");
-		containerEntities.add("com.x.report.core.entity.Report_C_WorkPlan");
-		containerEntities.add("com.x.report.core.entity.Report_C_WorkPlanDetail");
-		containerEntities.add("com.x.report.core.entity.Report_C_WorkProg");
-		containerEntities.add("com.x.report.core.entity.Report_C_WorkProgDetail");
-		containerEntities.add("com.x.report.core.entity.Report_I_Base");
-		containerEntities.add("com.x.report.core.entity.Report_I_Detail");
-        containerEntities.add("com.x.report.core.entity.Report_I_WorkInfo");
-		containerEntities.add("com.x.report.core.entity.Report_I_WorkInfoDetail");
-		containerEntities.add("com.x.report.core.entity.Report_I_WorkTag");
-		containerEntities.add("com.x.report.core.entity.Report_I_WorkTagUnit");
-		containerEntities.add("com.x.report.core.entity.Report_P_Permission");
-        containerEntities.add("com.x.report.core.entity.Report_P_MeasureInfo");
-		containerEntities.add("com.x.report.core.entity.Report_P_Profile");
-		containerEntities.add("com.x.report.core.entity.Report_P_ProfileDetail");
-		containerEntities.add("com.x.report.core.entity.Report_R_CreateTime");
-		containerEntities.add("com.x.report.core.entity.Report_R_View");
-		containerEntities.add("com.x.report.core.entity.Report_S_Setting");
-		containerEntities.add("com.x.report.core.entity.Report_S_SettingLobValue");
-		containerEntities.add("com.x.report.core.entity.Report_I_Ext_Content");
-		containerEntities.add("com.x.report.core.entity.Report_I_Ext_ContentDetail");
-		
-		usedStorageTypes.add( StorageType.report );
-		
-		dependents.add(x_base_core_project.class);
-		dependents.add(x_report_core_entity.class);
-		dependents.add(x_organization_core_entity.class);
-		dependents.add(x_organization_core_express.class);
-	}
-
-	protected void custom(File lib, String xLib) throws Exception {
-		// File xLibDir = new File(xLib);
-		// File libDir = new File(lib, "WEB-INF/lib");
-		// for (Class<? extends Compilable> clz : dependents) {
-		// FileUtils.copyDirectory(xLibDir, libDir, new
-		// NameFileFilter(clz.getSimpleName() + "-" + VERSION + ".jar"));
-		// }
-	}
-
-	public static void main(String[] args) {
-		try {
-			String str = args[0];
-			str = StringUtils.replace(str, "\\", "/");
-			Argument arg = XGsonBuilder.instance().fromJson(str, Argument.class);
-			x_report_assemble_control o = new x_report_assemble_control();
-			o.pack(arg.getDistPath(), arg.getRepositoryPath());
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
-
-}

+ 0 - 5
o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_report_core_entity.java

@@ -1,5 +0,0 @@
-package com.x.base.core.project;
-
-public class x_report_core_entity extends CoreA {
-
-}

+ 5 - 0
o2server/x_bbs_assemble_control/src/main/webapp/WEB-INF/web.xml

@@ -2,4 +2,9 @@
 <web-app id="x_bbs_assemble_control" metadata-complete="false"
 	version="3.0">
 	<display-name>x_bbs_assemble_control</display-name>
+	<context-param>
+		<param-name>project</param-name>
+		<param-value>com.x.base.core.project.x_bbs_assemble_control
+		</param-value>
+	</context-param>
 </web-app>

+ 7 - 2
o2server/x_calendar_assemble_control/src/main/webapp/WEB-INF/web.xml

@@ -1,5 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<web-app id="x_calendar_assemble_control" metadata-complete="false"
-	version="3.0">
+<web-app id="x_calendar_assemble_control"
+	metadata-complete="false" version="3.0">
 	<display-name>x_calendar_assemble_control</display-name>
+	<context-param>
+		<param-name>project</param-name>
+		<param-value>com.x.base.core.project.x_calendar_assemble_control
+		</param-value>
+	</context-param>
 </web-app>

+ 5 - 0
o2server/x_cms_assemble_control/src/main/webapp/WEB-INF/web.xml

@@ -2,4 +2,9 @@
 <web-app id="x_cms_assemble_control" metadata-complete="false"
 	version="3.0">
 	<display-name>x_cms_assemble_control</display-name>
+	<context-param>
+		<param-name>project</param-name>
+		<param-value>com.x.base.core.project.x_cms_assemble_control
+		</param-value>
+	</context-param>
 </web-app>

+ 5 - 0
o2server/x_file_assemble_control/src/main/webapp/WEB-INF/web.xml

@@ -2,4 +2,9 @@
 <web-app id="x_file_assemble_control" metadata-complete="false"
 	version="3.0">
 	<display-name>x_file_assemble_control</display-name>
+	<context-param>
+		<param-name>project</param-name>
+		<param-value>com.x.base.core.project.x_file_assemble_control
+		</param-value>
+	</context-param>
 </web-app>

+ 7 - 2
o2server/x_general_assemble_control/src/main/webapp/WEB-INF/web.xml

@@ -1,5 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<web-app id="x_general_assemble_control" metadata-complete="false"
-	version="3.0">
+<web-app id="x_general_assemble_control"
+	metadata-complete="false" version="3.0">
 	<display-name>x_general_assemble_control</display-name>
+	<context-param>
+		<param-name>project</param-name>
+		<param-value>com.x.base.core.project.x_general_assemble_control
+		</param-value>
+	</context-param>
 </web-app>

+ 7 - 2
o2server/x_hotpic_assemble_control/src/main/webapp/WEB-INF/web.xml

@@ -1,5 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<web-app id="x_hotpic_assemble_control" metadata-complete="false"
-	version="3.0">
+<web-app id="x_hotpic_assemble_control"
+	metadata-complete="false" version="3.0">
 	<display-name>x_hotpic_assemble_control</display-name>
+	<context-param>
+		<param-name>project</param-name>
+		<param-value>com.x.base.core.project.x_hotpic_assemble_control
+		</param-value>
+	</context-param>
 </web-app>

+ 7 - 2
o2server/x_meeting_assemble_control/src/main/webapp/WEB-INF/web.xml

@@ -1,5 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<web-app id="x_meeting_assemble_control" metadata-complete="false"
-	version="3.0">
+<web-app id="x_meeting_assemble_control"
+	metadata-complete="false" version="3.0">
 	<display-name>x_meeting_assemble_control</display-name>
+	<context-param>
+		<param-name>project</param-name>
+		<param-value>com.x.base.core.project.x_meeting_assemble_control
+		</param-value>
+	</context-param>
 </web-app>

+ 7 - 2
o2server/x_message_assemble_communicate/src/main/webapp/WEB-INF/web.xml

@@ -1,5 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<web-app id="x_message_assemble_communicate" metadata-complete="false"
-	version="3.0">
+<web-app id="x_message_assemble_communicate"
+	metadata-complete="false" version="3.0">
 	<display-name>x_message_assemble_communicate</display-name>
+	<context-param>
+		<param-name>project</param-name>
+		<param-value>com.x.base.core.project.x_message_assemble_communicate
+		</param-value>
+	</context-param>
 </web-app>

+ 5 - 0
o2server/x_mind_assemble_control/src/main/webapp/WEB-INF/web.xml

@@ -2,4 +2,9 @@
 <web-app id="x_mind_assemble_control" metadata-complete="false"
 	version="3.0">
 	<display-name>x_mind_assemble_control</display-name>
+	<context-param>
+		<param-name>project</param-name>
+		<param-value>com.x.base.core.project.x_mind_assemble_control
+		</param-value>
+	</context-param>
 </web-app>

+ 5 - 0
o2server/x_okr_assemble_control/src/main/webapp/WEB-INF/web.xml

@@ -2,4 +2,9 @@
 <web-app id="x_okr_assemble_control" metadata-complete="false"
 	version="3.0">
 	<display-name>x_okr_assemble_control</display-name>
+	<context-param>
+		<param-name>project</param-name>
+		<param-value>com.x.base.core.project.x_okr_assemble_control
+		</param-value>
+	</context-param>
 </web-app>

+ 5 - 0
o2server/x_organization_assemble_control/src/main/webapp/WEB-INF/web.xml

@@ -2,4 +2,9 @@
 <web-app id="x_organization_assemble_control"
 	metadata-complete="false" version="3.0">
 	<display-name>x_organization_assemble_control</display-name>
+		<context-param>
+		<param-name>project</param-name>
+		<param-value>com.x.base.core.project.x_organization_assemble_control
+		</param-value>
+	</context-param>
 </web-app>

+ 5 - 0
o2server/x_organization_assemble_custom/src/main/webapp/WEB-INF/web.xml

@@ -2,4 +2,9 @@
 <web-app id="x_organization_assemble_custom"
 	metadata-complete="false" version="3.0">
 	<display-name>x_organization_assemble_custom</display-name>
+	<context-param>
+		<param-name>project</param-name>
+		<param-value>com.x.base.core.project.x_organization_assemble_custom
+		</param-value>
+	</context-param>
 </web-app>

+ 5 - 0
o2server/x_organization_assemble_express/src/main/webapp/WEB-INF/web.xml

@@ -2,4 +2,9 @@
 <web-app id="x_organization_assemble_express"
 	metadata-complete="false" version="3.0">
 	<display-name>x_organization_assemble_express</display-name>
+	<context-param>
+		<param-name>project</param-name>
+		<param-value>com.x.base.core.project.x_organization_assemble_express
+		</param-value>
+	</context-param>
 </web-app>

+ 5 - 0
o2server/x_organization_assemble_personal/src/main/webapp/WEB-INF/web.xml

@@ -2,4 +2,9 @@
 <web-app id="x_organization_assemble_personal"
 	metadata-complete="false" version="3.0">
 	<display-name>x_organization_assemble_personal</display-name>
+	<context-param>
+		<param-name>project</param-name>
+		<param-value>com.x.base.core.project.x_organization_assemble_personal
+		</param-value>
+	</context-param>
 </web-app>

+ 8 - 2
o2server/x_portal_assemble_designer/src/main/webapp/WEB-INF/web.xml

@@ -1,4 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<web-app id="x_portal_assemble_designer" metadata-complete="false" version="3.0">
-  <display-name>x_portal_assemble_designer</display-name>
+<web-app id="x_portal_assemble_designer"
+	metadata-complete="false" version="3.0">
+	<display-name>x_portal_assemble_designer</display-name>
+	<context-param>
+		<param-name>project</param-name>
+		<param-value>com.x.base.core.project.x_portal_assemble_designer
+		</param-value>
+	</context-param>
 </web-app>

+ 1 - 0
o2server/x_portal_assemble_designer/x_portal_assemble_designer.xml

@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><Configure class="org.eclipse.jetty.webapp.WebAppContext"><Set name="contextPath">/x_portal_assemble_designer</Set><Set name="war">D:\O2\o2oa\o2server\store\x_portal_assemble_designer.war</Set><Set name="extraClasspath">D:\O2\o2oa\o2server\store\jars\x_base_core_project.jar;D:\O2\o2oa\o2server\commons\ext\ehcache-2.10.3.jar;D:\O2\o2oa\o2server\commons\ext\jetty-all-9.4.10.v20180503-uber.jar;D:\O2\o2oa\o2server\commons\ext\jul-to-slf4j-1.7.25.jar;D:\O2\o2oa\o2server\commons\ext\openjpa-3.0.1-SNAPSHOT.jar;D:\O2\o2oa\o2server\commons\ext\quartz-2.3.0.jar;D:\O2\o2oa\o2server\commons\ext\slf4j-api-1.7.25.jar;D:\O2\o2oa\o2server\commons\ext\slf4j-simple-1.7.25.jar;D:\O2\o2oa\o2server\store\jars\x_organization_core_entity.jar;D:\O2\o2oa\o2server\store\jars\x_organization_core_express.jar;D:\O2\o2oa\o2server\store\jars\x_portal_core_entity.jar</Set><Set name="tempDirectory">D:\O2\o2oa\o2server\servers\applicationServer\work\x_portal_assemble_designer</Set></Configure>

+ 8 - 2
o2server/x_portal_assemble_surface/src/main/webapp/WEB-INF/web.xml

@@ -1,4 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<web-app id="x_portal_assemble_surface" metadata-complete="false" version="3.0">
-  <display-name>x_portal_assemble_surface</display-name>
+<web-app id="x_portal_assemble_surface"
+	metadata-complete="false" version="3.0">
+	<display-name>x_portal_assemble_surface</display-name>
+	<context-param>
+		<param-name>project</param-name>
+		<param-value>com.x.base.core.project.x_portal_assemble_surface
+		</param-value>
+	</context-param>
 </web-app>

+ 5 - 0
o2server/x_processplatform_service_processing/src/main/webapp/WEB-INF/web.xml

@@ -1,4 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <web-app id="x_processplatform_assemble_designer" metadata-complete="false" version="3.0">
   <display-name>x_processplatform_service_processing</display-name>
+  	<context-param>
+		<param-name>project</param-name>
+		<param-value>com.x.base.core.project.x_processplatform_service_processing
+		</param-value>
+	</context-param>
 </web-app>

+ 4 - 0
o2server/x_program_center/src/main/webapp/WEB-INF/web.xml

@@ -2,4 +2,8 @@
 <web-app id="x_program_center" metadata-complete="false"
 	version="3.0">
 	<display-name>x_program_center</display-name>
+	<context-param>
+		<param-name>project</param-name>
+		<param-value>com.x.base.core.project.x_program_center</param-value>
+	</context-param>
 </web-app>

+ 8 - 2
o2server/x_query_assemble_designer/src/main/webapp/WEB-INF/web.xml

@@ -1,4 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<web-app id="x_query_assemble_designer" metadata-complete="false" version="3.0">
-  <display-name>x_query_assemble_designer</display-name>
+<web-app id="x_query_assemble_designer"
+	metadata-complete="false" version="3.0">
+	<display-name>x_query_assemble_designer</display-name>
+	<context-param>
+		<param-name>project</param-name>
+		<param-value>com.x.base.core.project.x_query_assemble_designer
+		</param-value>
+	</context-param>
 </web-app>

+ 5 - 0
o2server/x_query_assemble_surface/src/main/webapp/WEB-INF/web.xml

@@ -2,4 +2,9 @@
 <web-app id="x_query_assemble_surface" metadata-complete="false"
 	version="3.0">
 	<display-name>x_query_assemble_surface</display-name>
+	<context-param>
+		<param-name>project</param-name>
+		<param-value>com.x.base.core.project.x_query_assemble_surface
+		</param-value>
+	</context-param>
 </web-app>

+ 5 - 0
o2server/x_query_service_processing/src/main/webapp/WEB-INF/web.xml

@@ -2,4 +2,9 @@
 <web-app id="x_query_service_processing"
 	metadata-complete="false" version="3.0">
 	<display-name>x_query_service_processing</display-name>
+	<context-param>
+		<param-name>project</param-name>
+		<param-value>com.x.base.core.project.x_query_service_processing
+		</param-value>
+	</context-param>
 </web-app>

Некоторые файлы не были показаны из-за большого количества измененных файлов