Sfoglia il codice sorgente

Merge branch 'feature/dumpRestore' into 'develop'

修改了main方法里面直接使用IOUtils,修改dumpRestore的提示信息.

See merge request o2oa/o2oa!544
o2null 5 anni fa
parent
commit
8c91e8ae84
13 ha cambiato i file con 30 aggiunte e 38 eliminazioni
  1. 4 4
      o2server/x_base_core_project/src/main/java/com/x/base/core/container/FactorDistributionPolicy.java
  2. 0 1
      o2server/x_console/src/main/java/com/x/server/console/Main.java
  3. 7 4
      o2server/x_console/src/main/java/com/x/server/console/action/DumpData.java
  4. 1 2
      o2server/x_console/src/main/java/com/x/server/console/action/RestoreData.java
  5. 6 8
      o2server/x_console/src/main/java/com/x/server/console/server/JettySeverTools.java
  6. 0 2
      o2server/x_message_assemble_communicate/src/main/java/com/x/message/assemble/communicate/jaxrs/connector/ActionCreate.java
  7. 0 2
      o2server/x_message_assemble_communicate/src/main/webapp/describe/sources/com/x/message/assemble/communicate/jaxrs/connector/ActionCreate.java
  8. 1 1
      o2server/x_message_core_entity/src/main/java/com/x/message/core/entity/Instant.java
  9. 1 1
      o2server/x_message_core_entity/src/main/java/com/x/message/core/entity/Message.java
  10. 7 1
      o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/factory/element/ApplicationDictItemFactory.java
  11. 1 10
      o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/work/ActionCreate.java
  12. 1 1
      o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/work/ActionCreateForce.java
  13. 1 1
      o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/work/ActionCreateWithApplicationProcess.java

+ 4 - 4
o2server/x_base_core_project/src/main/java/com/x/base/core/container/FactorDistributionPolicy.java

@@ -3,22 +3,22 @@ package com.x.base.core.container;
 import java.util.List;
 import java.util.Random;
 
+import com.x.base.core.entity.JpaObject;
+
 import org.apache.commons.beanutils.PropertyUtils;
 import org.apache.openjpa.slice.DistributionPolicy;
 
-import com.x.base.core.entity.SliceJpaObject;
-
 public class FactorDistributionPolicy implements DistributionPolicy {
 
 	private Random random = new Random();
 
 	public String distribute(Object pc, List<String> slices, Object context) {
 		try {
-			Object o = PropertyUtils.getProperty(pc, SliceJpaObject.distributeFactor_FIELDNAME);
+			Object o = PropertyUtils.getProperty(pc,JpaObject.distributeFactor_FIELDNAME);
 			Integer factor = null;
 			if (null == o) {
 				factor = random.nextInt(1000);
-				PropertyUtils.setProperty(pc, SliceJpaObject.distributeFactor_FIELDNAME, factor);
+				PropertyUtils.setProperty(pc, JpaObject.distributeFactor_FIELDNAME, factor);
 			} else {
 				factor = (Integer) o;
 			}

+ 0 - 1
o2server/x_console/src/main/java/com/x/server/console/Main.java

@@ -64,7 +64,6 @@ public class Main {
 			slf4jOtherImplOn = true;
 		}
 		org.slf4j.impl.StaticLoggerBinder.getSingleton();
-		System.out.println("logger:" + org.slf4j.LoggerFactory.getLogger(Main.class));
 		SystemOutErrorSideCopyBuilder.start();
 		ResourceFactory.bind();
 		CommandFactory.printStartHelp();

+ 7 - 4
o2server/x_console/src/main/java/com/x/server/console/action/DumpData.java

@@ -77,9 +77,9 @@ public class DumpData {
 					persistence.getName(), PersistenceXmlHelper.properties(cls.getName(), Config.slice().getEnable()));
 			EntityManager em = emf.createEntityManager();
 			try {
-				logger.print("dump data({}/{}): {}, count: {}.", (i + 1), classNames.size(), cls.getName(),
-						this.estimateCount(em, cls));
-				this.dump(cls, em);
+				long estimateCount = this.estimateCount(em, cls);
+				logger.print("dump data({}/{}): {}, count: {}.", (i + 1), classNames.size(), cls.getName(), estimateCount);
+				this.dump(cls, em, estimateCount);
 			} finally {
 				em.close();
 				emf.close();
@@ -104,7 +104,7 @@ public class DumpData {
 		return this.catalog.values().stream().mapToInt(Integer::intValue).sum();
 	}
 
-	private <T> void dump(Class<T> cls, EntityManager em)
+	private <T> void dump(Class<T> cls, EntityManager em, long total)
 			throws IOException, IllegalAccessException, InvocationTargetException, NoSuchMethodException {
 		/** 创建最终存储文件的目录 */
 		File directory = new File(dir, cls.getName());
@@ -114,6 +114,8 @@ public class DumpData {
 		String id = "";
 		List<T> list = null;
 		int count = 0;
+		int loop = 1;
+		int btach = (int) ((total + 0.0) / containerEntity.dumpSize());
 		do {
 			list = this.list(em, cls, id, containerEntity.dumpSize());
 			if (ListTools.isNotEmpty(list)) {
@@ -121,6 +123,7 @@ public class DumpData {
 				id = BeanUtils.getProperty(list.get(list.size() - 1), JpaObject.id_FIELDNAME);
 				File file = new File(directory, count + ".json");
 				FileUtils.write(file, pureGsonDateFormated.toJson(list), DefaultCharset.charset);
+				logger.print("dumping {}/{} part of data:{}.", loop, btach, cls.getName());
 			}
 			em.clear();
 		} while (ListTools.isNotEmpty(list));

+ 1 - 2
o2server/x_console/src/main/java/com/x/server/console/action/RestoreData.java

@@ -133,7 +133,7 @@ public class RestoreData {
 		File file = null;
 		for (int i = 0; i < files.size(); i++) {
 			file = files.get(i);
-			System.out.println("restoring " + (i + 1) + "/" + files.size() + " part of data: " + cls.getName() + ".");
+			logger.print("restoring {}/{} part of data:{}.", (i + 1),  files.size(), cls.getName());
 			JsonArray raws = this.convert(file);
 			em.getTransaction().begin();
 			for (JsonElement o : raws) {
@@ -143,7 +143,6 @@ public class RestoreData {
 			}
 			em.getTransaction().commit();
 			em.clear();
-			Runtime.getRuntime().gc();
 		}
 		System.out.println("restore data: " + cls.getName() + " completed, count: " + count + ".");
 		return count;

+ 6 - 8
o2server/x_console/src/main/java/com/x/server/console/server/JettySeverTools.java

@@ -37,14 +37,13 @@ public abstract class JettySeverTools {
 		config.setSendServerVersion(true);
 		config.setSendDateHeader(false);
 
-		ServerConnector sslConnector = new ServerConnector(server,
+		ServerConnector https = new ServerConnector(server,
 				new SslConnectionFactory(sslContextFactory, HttpVersion.HTTP_1_1.asString()),
 				new HttpConnectionFactory(config));
-		/* 添加到32,压力测试 */
-		sslConnector.setAcceptQueueSize(32);
-		sslConnector.setIdleTimeout(30000);
-		sslConnector.setPort(port);
-		server.addConnector(sslConnector);
+		https.setAcceptQueueSize(-1);
+		https.setIdleTimeout(30000);
+		https.setPort(port);
+		server.addConnector(https);
 	}
 
 	protected static void addHttpConnector(Server server, Integer port) throws Exception {
@@ -55,8 +54,7 @@ public abstract class JettySeverTools {
 		config.setSendServerVersion(true);
 		config.setSendDateHeader(false);
 		ServerConnector http = new ServerConnector(server, new HttpConnectionFactory(config));
-		/* 添加到32,压力测试 */
-		http.setAcceptQueueSize(32);
+		http.setAcceptQueueSize(-1);
 		http.setIdleTimeout(30000);
 		http.setPort(port);
 		server.addConnector(http);

+ 0 - 2
o2server/x_message_assemble_communicate/src/main/java/com/x/message/assemble/communicate/jaxrs/connector/ActionCreate.java

@@ -50,7 +50,6 @@ class ActionCreate extends BaseAction {
 				}
 			}
 			Instant instant = this.instant(effectivePerson, business, wi, new ArrayList<>(consumersV2.keySet()));
-			logger.info("生成消息。,,,consumersV2 "+ consumersV2.size());
 			if (!consumersV2.isEmpty()) {
 				for (String consumer : consumersV2.keySet()) {
 					Wi cpwi = wi;
@@ -88,7 +87,6 @@ class ActionCreate extends BaseAction {
 						logger.warn("执行消息发送脚本[{}]方法异常:{}", func, e.getMessage());
 					}
 					Message message = null;
-					logger.info("这里是生成消息对象,consumer:"+consumer);
 					switch (Objects.toString(consumer, "")) {
 					case MessageConnector.CONSUME_WS:
 						message = this.wsMessage(effectivePerson, business, cpwi, instant);

+ 0 - 2
o2server/x_message_assemble_communicate/src/main/webapp/describe/sources/com/x/message/assemble/communicate/jaxrs/connector/ActionCreate.java

@@ -50,7 +50,6 @@ class ActionCreate extends BaseAction {
 				}
 			}
 			Instant instant = this.instant(effectivePerson, business, wi, new ArrayList<>(consumersV2.keySet()));
-			logger.info("生成消息。,,,consumersV2 "+ consumersV2.size());
 			if (!consumersV2.isEmpty()) {
 				for (String consumer : consumersV2.keySet()) {
 					Wi cpwi = wi;
@@ -88,7 +87,6 @@ class ActionCreate extends BaseAction {
 						logger.warn("执行消息发送脚本[{}]方法异常:{}", func, e.getMessage());
 					}
 					Message message = null;
-					logger.info("这里是生成消息对象,consumer:"+consumer);
 					switch (Objects.toString(consumer, "")) {
 					case MessageConnector.CONSUME_WS:
 						message = this.wsMessage(effectivePerson, business, cpwi, instant);

+ 1 - 1
o2server/x_message_core_entity/src/main/java/com/x/message/core/entity/Instant.java

@@ -27,7 +27,7 @@ import com.x.base.core.entity.annotation.ContainerEntity;
 import com.x.base.core.project.annotation.FieldDescribe;
 
 @Entity
-@ContainerEntity(dumpSize = 1000, type = ContainerEntity.Type.content, reference = ContainerEntity.Reference.strong)
+@ContainerEntity(dumpSize = 1000, type = ContainerEntity.Type.log, reference = ContainerEntity.Reference.soft)
 @Table(name = PersistenceProperties.Instant.table, uniqueConstraints = {
 		@UniqueConstraint(name = PersistenceProperties.Instant.table + JpaObject.IndexNameMiddle
 				+ JpaObject.DefaultUniqueConstraintSuffix, columnNames = { JpaObject.IDCOLUMN,

+ 1 - 1
o2server/x_message_core_entity/src/main/java/com/x/message/core/entity/Message.java

@@ -20,7 +20,7 @@ import com.x.base.core.entity.annotation.ContainerEntity;
 import com.x.base.core.project.annotation.FieldDescribe;
 
 @Entity
-@ContainerEntity(dumpSize = 1000, type = ContainerEntity.Type.content, reference = ContainerEntity.Reference.strong)
+@ContainerEntity(dumpSize = 1000, type = ContainerEntity.Type.log, reference = ContainerEntity.Reference.soft)
 @Table(name = PersistenceProperties.Message.table, uniqueConstraints = {
 		@UniqueConstraint(name = PersistenceProperties.Message.table + JpaObject.IndexNameMiddle
 				+ JpaObject.DefaultUniqueConstraintSuffix, columnNames = { JpaObject.IDCOLUMN,

+ 7 - 1
o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/factory/element/ApplicationDictItemFactory.java

@@ -14,6 +14,8 @@ import com.x.processplatform.assemble.surface.Business;
 import com.x.processplatform.core.entity.element.ApplicationDictItem;
 import com.x.processplatform.core.entity.element.ApplicationDictItem_;
 
+import org.apache.commons.lang3.StringUtils;
+
 public class ApplicationDictItemFactory extends AbstractFactory {
 
 	public ApplicationDictItemFactory(Business abstractBusiness) throws Exception {
@@ -52,7 +54,11 @@ public class ApplicationDictItemFactory extends AbstractFactory {
 		CriteriaQuery<ApplicationDictItem> cq = cb.createQuery(ApplicationDictItem.class);
 		Root<ApplicationDictItem> root = cq.from(ApplicationDictItem.class);
 		Predicate p = cb.equal(root.get(ApplicationDictItem_.bundle), applicationDict);
-		p = cb.and(p, cb.equal(root.get("path0"), path0));
+		if (StringUtils.isEmpty(path0)) {
+			p = cb.and(p, cb.or(cb.equal(root.get(ApplicationDictItem_.path0), path0), cb.isNull(root.get(ApplicationDictItem_.path0))));
+		} else {
+			p = cb.and(p, cb.equal(root.get(ApplicationDictItem_.path0), path0));
+		}
 		p = cb.and(p, cb.equal(root.get("path1"), path1));
 		p = cb.and(p, cb.equal(root.get("path2"), path2));
 		p = cb.and(p, cb.equal(root.get("path3"), path3));

+ 1 - 10
o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/work/ActionCreate.java

@@ -111,7 +111,7 @@ class ActionCreate extends BaseAction {
 			}
 			/* 驱动工作,使用非队列方式 */
 			ThisApplication.context().applications().putQuery(x_processplatform_service_processing.class,
-					Applications.joinQueryUri("work", workId, "prcocssing", "nonblocking"), null, processFlag);
+					Applications.joinQueryUri("work", workId, "processing", "nonblocking"), null);
 		} else {
 			/* 如果是草稿,准备后面的直接打开 */
 			workId = lastestWorkId;
@@ -196,15 +196,6 @@ class ActionCreate extends BaseAction {
 
 		private static final long serialVersionUID = 1307569946729101786L;
 
-		// private static List<String> Includes = ListTools.toList("createTime",
-		// "updateTime", "completed", "fromActivity",
-		// "fromActivityType", "fromActivityName", "fromActivityToken",
-		// "fromTime", "arrivedActivity",
-		// "arrivedActivityType", "arrivedActivityName", "arrivedActivityToken",
-		// "arrivedTime", "route",
-		// "routeName", "work", "workCompleted", "connected", "splitting",
-		// "splitTokenList", "processingType");
-
 		static WrapCopier<WorkLog, Wo> copier = WrapCopierFactory.wo(WorkLog.class, Wo.class, null,
 				JpaObject.FieldsInvisible);
 

+ 1 - 1
o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/work/ActionCreateForce.java

@@ -103,7 +103,7 @@ class ActionCreateForce extends BaseAction {
 			}
 			/* 驱动工作,使用非队列方式 */
 			ThisApplication.context().applications().putQuery(x_processplatform_service_processing.class,
-					Applications.joinQueryUri("work", workId, "prcocssing", "nonblocking"), null, processFlag);
+					Applications.joinQueryUri("work", workId, "processing", "nonblocking"), null, processFlag);
 		} else {
 			/* 如果是草稿,准备后面的直接打开 */
 			workId = lastestWorkId;

+ 1 - 1
o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/work/ActionCreateWithApplicationProcess.java

@@ -117,7 +117,7 @@ class ActionCreateWithApplicationProcess extends BaseAction {
 			}
 			/* 驱动工作,使用非队列方式 */
 			ThisApplication.context().applications().putQuery(x_processplatform_service_processing.class,
-					Applications.joinQueryUri("work", workId, "prcocssing", "nonblocking"), null,processFlag);
+					Applications.joinQueryUri("work", workId, "processing", "nonblocking"), null,processFlag);
 		} else {
 			/* 如果是草稿,准备后面的直接打开 */
 			workId = lastestWorkId;