提交 dee2aed2 编写于 作者: O o2null

Merge branch 'feature/中心服务用到的文件缓存改为存储到附件' into 'wrdp'

[中心服务]文件缓存改为附件存储、平台配置文件保存修改

See merge request o2oa/o2oa!2269
......@@ -20,7 +20,6 @@ import com.x.program.center.jaxrs.config.ConfigAction;
import com.x.program.center.jaxrs.datastructure.DataStructureAction;
import com.x.program.center.jaxrs.dingding.DingdingAction;
import com.x.program.center.jaxrs.distribute.DistributeAction;
import com.x.program.center.jaxrs.edit.EditConfigAction;
import com.x.program.center.jaxrs.input.InputAction;
import com.x.program.center.jaxrs.invoke.InvokeAction;
import com.x.program.center.jaxrs.jest.JestAction;
......@@ -73,7 +72,6 @@ public class ActionApplication extends AbstractActionApplication {
classes.add(OutputAction.class);
classes.add(InputAction.class);
classes.add(MarketAction.class);
classes.add(EditConfigAction.class);
return classes;
}
}
package com.x.program.center.jaxrs;
import javax.servlet.annotation.WebFilter;
import com.x.base.core.project.jaxrs.CipherManagerJaxrsFilter;
@WebFilter(urlPatterns = "/jaxrs/editconfig/*", asyncSupported = true)
public class EditConfigJaxrsFilter extends CipherManagerJaxrsFilter {
}
package com.x.program.center.jaxrs.edit;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileFilter;
import java.net.Socket;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.filefilter.WildcardFileFilter;
import org.apache.commons.lang3.StringUtils;
package com.x.program.center.jaxrs.config;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
......@@ -28,6 +12,20 @@ import com.x.base.core.project.logger.Logger;
import com.x.base.core.project.logger.LoggerFactory;
import com.x.base.core.project.tools.Crypto;
import com.x.base.core.project.tools.DefaultCharset;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.filefilter.WildcardFileFilter;
import org.apache.commons.lang3.StringUtils;
import javax.servlet.http.HttpServletRequest;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileFilter;
import java.net.Socket;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
public class ActionList extends BaseAction {
private static Logger logger = LoggerFactory.getLogger(ActionList.class);
......
package com.x.program.center.jaxrs.edit;
package com.x.program.center.jaxrs.config;
import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.net.Socket;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.io.FileUtils;
import com.google.gson.Gson;
import com.google.gson.JsonElement;
import com.x.base.core.project.annotation.FieldDescribe;
import com.x.base.core.project.config.Config;
import com.x.base.core.project.config.Nodes;
import com.x.base.core.project.gson.GsonPropertyObject;
import com.x.base.core.project.gson.XGsonBuilder;
import com.x.base.core.project.http.ActionResult;
import com.x.base.core.project.http.EffectivePerson;
import com.x.base.core.project.logger.Logger;
import com.x.base.core.project.logger.LoggerFactory;
import com.x.base.core.project.tools.Crypto;
import com.x.base.core.project.tools.DefaultCharset;
import com.x.program.center.jaxrs.command.ActionCommand.Wi;
import com.x.program.center.jaxrs.command.ActionCommand.Wo;
import org.apache.commons.io.FileUtils;
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
public class ActionOpen extends BaseAction {
private static Logger logger = LoggerFactory.getLogger(ActionOpen.class);
......
package com.x.program.center.jaxrs.edit;
package com.x.program.center.jaxrs.config;
import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.net.Socket;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.io.FileUtils;
import org.glassfish.jersey.media.multipart.FormDataContentDisposition;
import com.google.gson.Gson;
import com.google.gson.JsonElement;
import com.x.base.core.project.annotation.FieldDescribe;
import com.x.base.core.project.config.Config;
......@@ -32,8 +12,15 @@ import com.x.base.core.project.logger.Logger;
import com.x.base.core.project.logger.LoggerFactory;
import com.x.base.core.project.tools.Crypto;
import com.x.base.core.project.tools.DefaultCharset;
import com.x.program.center.jaxrs.command.ActionCommand.Wi;
import com.x.program.center.jaxrs.command.ActionCommand.Wo;
import org.apache.commons.io.FileUtils;
import javax.servlet.http.HttpServletRequest;
import java.io.*;
import java.net.Socket;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
public class ActionSave extends BaseAction {
private static Logger logger = LoggerFactory.getLogger(ActionSave.class);
......@@ -41,30 +28,17 @@ public class ActionSave extends BaseAction {
ActionResult<Wo> result = new ActionResult<>();
Wi wi = this.convertToWrapIn(jsonElement, Wi.class);
Wo wo = new Wo();
String curServer = request.getLocalAddr();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String fileName = wi.getFileName();
if(fileName == null) {
wo.setTime(df.format(new Date()));
wo.setStatus("failure");
wo.setMessage("文件名为null");
result.setData(wo);
return result;
throw new ExceptionNameEmpty();
}
String data = wi.getFileContent();
if(fileName.equalsIgnoreCase("node_127.0.0.1.json")) {
fileName = "node_"+ curServer +".json";
}
if(!Config.nodes().centerServers().first().getValue().getConfigApiEnable()) {
wo.setTime(df.format(new Date()));
wo.setStatus("failure");
wo.setMessage("禁止编辑");
result.setData(wo);
return result;
throw new ExceptionModifyConfig();
}
File configFold = new File(Config.base(),Config.DIR_CONFIG);
......@@ -86,16 +60,16 @@ public class ActionSave extends BaseAction {
Nodes nodes = Config.nodes();
//同步config文件
for (String node : nodes.keySet()){
//其他服务器
if(!node.equalsIgnoreCase(curServer)) {
if(!node.equalsIgnoreCase("127.0.0.1")) {
if(nodes.get(node).getApplication().getEnable() || nodes.get(node).getCenter().getEnable()){
boolean Syncflag = executeSyncFile(Config.DIR_CONFIG+"/"+fileName , node ,nodes.get(node).nodeAgentPort());
}
}
if(nodes.get(node).getApplication().getEnable() || nodes.get(node).getCenter().getEnable()){
boolean Syncflag = executeSyncFile(Config.DIR_CONFIG+"/"+fileName , node ,nodes.get(node).nodeAgentPort());
}
}
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}
this.configFlush(effectivePerson);
wo.setTime(df.format(new Date()));
wo.setStatus("success");
......
......@@ -3,12 +3,14 @@ package com.x.program.center.jaxrs.config;
import java.util.List;
import com.x.base.core.project.Applications;
import com.x.base.core.project.cache.ApplicationCache;
import com.x.base.core.project.config.Config;
import com.x.base.core.project.connection.CipherConnectionAction;
import com.x.base.core.project.gson.GsonPropertyObject;
import com.x.base.core.project.http.EffectivePerson;
import com.x.base.core.project.jaxrs.StandardJaxrsAction;
import com.x.program.center.ThisApplication;
import net.sf.ehcache.Ehcache;
class BaseAction extends StandardJaxrsAction {
public static class AbstractWoProxy extends GsonPropertyObject {
......@@ -150,4 +152,37 @@ class BaseAction extends StandardJaxrsAction {
});
}
public static Ehcache cacheLog = ApplicationCache.instance().getCache(CacheLogObject.class);
public static class CacheLogObject extends GsonPropertyObject {
private String userToken;
private String node;
private long lastPoint;
public long getLastPoint() {
return lastPoint;
}
public void setLastPoint(long lastPoint) {
this.lastPoint = lastPoint;
}
public String getNode() {
return node;
}
public void setNode(String node) {
this.node = node;
}
public String getUserToken() {
return userToken;
}
public void setUserToken(String userToken) {
this.userToken = userToken;
}
}
}
package com.x.program.center.jaxrs.config;
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.*;
import javax.ws.rs.container.AsyncResponse;
import javax.ws.rs.container.Suspended;
import javax.ws.rs.core.Context;
......@@ -254,4 +250,55 @@ public class ConfigAction extends StandardJaxrsAction {
asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
}
@JaxrsMethodDescribe(value = "获取所有配置文件信息", action = ActionList.class)
@GET
@Path("list")
@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
@Consumes(MediaType.APPLICATION_JSON)
public void getList(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request) {
EffectivePerson effectivePerson = this.effectivePerson(request);
ActionResult<ActionList.Wo> result = new ActionResult<>();
try {
result = new ActionList().execute(request,effectivePerson);
} catch (Exception e) {
e.printStackTrace();
result.error(e);
}
asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
}
@JaxrsMethodDescribe(value = "打开config文件", action = ActionOpen.class)
@POST
@Path("open")
@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
@Consumes(MediaType.APPLICATION_JSON)
public void open(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request, JsonElement jsonElement) {
EffectivePerson effectivePerson = this.effectivePerson(request);
ActionResult<ActionOpen.Wo> result = new ActionResult<>();
try {
result = new ActionOpen().execute(request,effectivePerson, jsonElement);
} catch (Exception e) {
e.printStackTrace();
result.error(e);
}
asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
}
@JaxrsMethodDescribe(value = "保存config文件", action = ActionSave.class)
@POST
@Path("save")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
public void save(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request, JsonElement jsonElement) {
ActionResult<ActionSave.Wo> result = new ActionResult<>();
EffectivePerson effectivePerson = this.effectivePerson(request);
try {
result = new ActionSave().execute(request , effectivePerson, jsonElement);
} catch (Exception e) {
logger.error(e, effectivePerson, request, null);
result.error(e);
}
asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
}
}
\ No newline at end of file
package com.x.program.center.jaxrs.config;
import com.x.base.core.project.exception.PromptException;
class ExceptionNameEmpty extends PromptException {
private static final long serialVersionUID = -3287459468603291619L;
ExceptionNameEmpty() {
super("名称不能为空.");
}
}
package com.x.program.center.jaxrs.edit;
import com.x.base.core.project.cache.ApplicationCache;
import com.x.base.core.project.gson.GsonPropertyObject;
import com.x.base.core.project.jaxrs.StandardJaxrsAction;
import net.sf.ehcache.Ehcache;
abstract class BaseAction extends StandardJaxrsAction {
public static Ehcache cacheLog = ApplicationCache.instance().getCache(CacheLogObject.class);
public static class CacheLogObject extends GsonPropertyObject {
private String userToken;
private String node;
private long lastPoint;
public long getLastPoint() {
return lastPoint;
}
public void setLastPoint(long lastPoint) {
this.lastPoint = lastPoint;
}
public String getNode() {
return node;
}
public void setNode(String node) {
this.node = node;
}
public String getUserToken() {
return userToken;
}
public void setUserToken(String userToken) {
this.userToken = userToken;
}
}
}
package com.x.program.center.jaxrs.edit;
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.container.AsyncResponse;
import javax.ws.rs.container.Suspended;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import com.google.gson.JsonElement;
import com.x.base.core.project.annotation.JaxrsDescribe;
import com.x.base.core.project.annotation.JaxrsMethodDescribe;
import com.x.base.core.project.http.ActionResult;
import com.x.base.core.project.http.EffectivePerson;
import com.x.base.core.project.http.HttpMediaType;
import com.x.base.core.project.jaxrs.ResponseFactory;
import com.x.base.core.project.jaxrs.StandardJaxrsAction;
import com.x.base.core.project.logger.Logger;
import com.x.base.core.project.logger.LoggerFactory;
@Path("editconfig")
@JaxrsDescribe("编辑配置文件")
public class EditConfigAction<Wo> extends StandardJaxrsAction{
private static Logger logger = LoggerFactory.getLogger(EditConfigAction.class);
@JaxrsMethodDescribe(value = "获取所有配置文件信息", action = ActionList.class)
@GET
@Path("list")
@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
@Consumes(MediaType.APPLICATION_JSON)
public void getList(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request) {
EffectivePerson effectivePerson = this.effectivePerson(request);
ActionResult<ActionList.Wo> result = new ActionResult<>();
try {
result = (ActionResult<ActionList.Wo>) new ActionList().execute(request,effectivePerson);
} catch (Exception e) {
e.printStackTrace();
result.error(e);
}
asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
}
@JaxrsMethodDescribe(value = "打开config文件", action = ActionOpen.class)
@POST
@Path("open")
@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
@Consumes(MediaType.APPLICATION_JSON)
public void open(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request, JsonElement jsonElement) {
EffectivePerson effectivePerson = this.effectivePerson(request);
ActionResult<ActionOpen.Wo> result = new ActionResult<>();
try {
result = new ActionOpen().execute(request,effectivePerson, jsonElement);
} catch (Exception e) {
e.printStackTrace();
result.error(e);
}
asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
}
@JaxrsMethodDescribe(value = "保存config文件", action = ActionSave.class)
@POST
@Path("save")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
public void save(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request, JsonElement jsonElement) {
ActionResult<ActionSave.Wo> result = new ActionResult<>();
EffectivePerson effectivePerson = this.effectivePerson(request);
try {
result = new ActionSave().execute(request , effectivePerson, jsonElement);
} catch (Exception e) {
logger.error(e, effectivePerson, request, null);
result.error(e);
}
asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
}
}
\ No newline at end of file
......@@ -3,10 +3,15 @@ package com.x.program.center.jaxrs.module;
import java.util.ArrayList;
import java.util.List;
import com.x.base.core.project.cache.CacheManager;
import com.x.base.core.container.EntityManagerContainer;
import com.x.base.core.container.factory.EntityManagerContainerFactory;
import com.x.base.core.entity.annotation.CheckPersistType;
import com.x.base.core.project.config.Config;
import com.x.base.core.project.config.StorageMapping;
import com.x.base.core.project.connection.CipherConnectionAction;
import com.x.program.center.core.entity.Structure;
import com.x.program.center.core.entity.wrap.WrapServiceModule;
import org.apache.commons.lang3.StringUtils;
import org.glassfish.jersey.media.multipart.FormDataContentDisposition;
import com.google.gson.JsonElement;
......@@ -16,8 +21,6 @@ import com.x.base.core.project.x_portal_assemble_designer;
import com.x.base.core.project.x_processplatform_assemble_designer;
import com.x.base.core.project.x_query_assemble_designer;
import com.x.base.core.project.annotation.FieldDescribe;
import com.x.base.core.project.cache.Cache.CacheCategory;
import com.x.base.core.project.cache.Cache.CacheKey;
import com.x.base.core.project.connection.ActionResponse;
import com.x.base.core.project.gson.GsonPropertyObject;
import com.x.base.core.project.gson.XGsonBuilder;
......@@ -26,7 +29,6 @@ import com.x.base.core.project.http.EffectivePerson;
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.StringTools;
import com.x.cms.core.entity.element.wrap.WrapCms;
import com.x.portal.core.entity.wrap.WrapPortal;
import com.x.processplatform.core.entity.element.wrap.WrapProcessPlatform;
......@@ -38,20 +40,29 @@ class ActionCompareUpload extends BaseAction {
private static Logger logger = LoggerFactory.getLogger(ActionCompareUpload.class);
ActionResult<Wo> execute(EffectivePerson effectivePerson, byte[] bytes, FormDataContentDisposition disposition)
ActionResult<Wo> execute(EffectivePerson effectivePerson, byte[] bytes, String fileName, FormDataContentDisposition disposition)
throws Exception {
logger.debug(effectivePerson, "name: {}.", disposition.getName());
ActionResult<Wo> result = new ActionResult<>();
Wo wo = new Wo();
String json = new String(bytes, DefaultCharset.charset);
WrapModule module = XGsonBuilder.instance().fromJson(json, WrapModule.class);
CacheObject cacheObject = new CacheObject();
cacheObject.setModule(module);
String flag = StringTools.uniqueToken();
CacheCategory cacheCategory = new CacheCategory(CacheObject.class);
CacheKey cacheKey = new CacheKey(flag);
CacheManager.put(cacheCategory, cacheKey, cacheObject);
wo.setFlag(flag);
if (StringUtils.isEmpty(fileName)) {
fileName = this.fileName(disposition);
}
if(fileName.indexOf(".")==-1){
fileName = fileName + ".xapp";
}
try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
StorageMapping mapping = ThisApplication.context().storageMappings().random(Structure.class);
Structure structure = new Structure(mapping.getName(), fileName);
structure.saveContent(mapping, bytes, fileName);
emc.beginTransaction(Structure.class);
emc.persist(structure, CheckPersistType.all);
emc.commit();
wo.setFlag(structure.getId());
}
for (WrapProcessPlatform o : module.getProcessPlatformList()) {
ActionResponse r = ThisApplication.context().applications().putQuery(effectivePerson.getDebugger(),
x_processplatform_assemble_designer.class, Applications.joinQueryUri("input", "compare"), o);
......
......@@ -5,7 +5,11 @@ import java.util.List;
import java.util.Optional;
import com.x.base.core.project.config.Config;
import com.x.base.core.project.config.StorageMapping;
import com.x.base.core.project.connection.CipherConnectionAction;
import com.x.base.core.project.gson.XGsonBuilder;
import com.x.base.core.project.tools.DefaultCharset;
import com.x.program.center.core.entity.Structure;
import com.x.program.center.core.entity.wrap.WrapServiceModule;
import org.apache.commons.lang3.StringUtils;
......@@ -40,263 +44,286 @@ public class ActionWrite extends BaseAction {
private static Logger logger = LoggerFactory.getLogger(ActionWrite.class);
ActionResult<Wo> execute(EffectivePerson effectivePerson, String flag, JsonElement jsonElement) throws Exception {
try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
Wi wi = this.convertToWrapIn(jsonElement, Wi.class);
Wo wo = new Wo();
ActionResult<Wo> result = new ActionResult<>();
CacheCategory cacheCategory = new CacheCategory(CacheObject.class);
CacheKey cacheKey = new CacheKey(flag);
Optional<?> optional = CacheManager.get(cacheCategory, cacheKey);
if (!optional.isPresent()) {
throw new ExceptionFlagNotExist(flag);
}
Wi wi = this.convertToWrapIn(jsonElement, Wi.class);
Wo wo = new Wo();
ActionResult<Wo> result = new ActionResult<>();
CacheCategory cacheCategory = new CacheCategory(CacheObject.class);
CacheKey cacheKey = new CacheKey(flag);
Optional<?> optional = CacheManager.get(cacheCategory, cacheKey);
WrapModule module;
String name = "";
if (optional.isPresent()) {
CacheObject cacheObject = (CacheObject) optional.get();
WrapModule module = cacheObject.getModule();
List<WrapPair> replaces = new ArrayList<>();
for (WiCommand cmd : wi.getProcessPlatformList()) {
WrapProcessPlatform o = module.getProcessPlatform(cmd.getId());
if (null != o) {
switch (cmd.getMethod()) {
case "create":
replaces.addAll(ThisApplication.context().applications()
.putQuery(x_processplatform_assemble_designer.class,
Applications.joinQueryUri("input", "prepare", "create"), o)
.getDataAsList(WrapPair.class));
break;
case "cover":
replaces.addAll(ThisApplication.context().applications()
.putQuery(x_processplatform_assemble_designer.class,
Applications.joinQueryUri("input", "prepare", "cover"), o)
.getDataAsList(WrapPair.class));
break;
default:
break;
}
module = cacheObject.getModule();
}else{
try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
Structure structure = emc.find(flag, Structure.class);
if(structure!=null){
StorageMapping gfMapping = ThisApplication.context().storageMappings().get(Structure.class,
structure.getStorage());
String json = new String(structure.readContent(gfMapping), DefaultCharset.charset);
module = XGsonBuilder.instance().fromJson(json, WrapModule.class);
name = structure.getName();
structure.deleteContent(gfMapping);
emc.beginTransaction(Structure.class);
emc.delete(Structure.class, structure.getId());
emc.commit();
}else{
throw new ExceptionFlagNotExist(flag);
}
}
for (WiCommand cmd : wi.getCmsList()) {
WrapCms o = module.getCms(cmd.getId());
if (null != o) {
switch (cmd.getMethod()) {
case "create":
replaces.addAll(ThisApplication.context().applications()
.putQuery(x_cms_assemble_control.class,
Applications.joinQueryUri("input", "prepare", "create"), o)
.getDataAsList(WrapPair.class));
break;
case "cover":
replaces.addAll(ThisApplication.context().applications()
.putQuery(x_cms_assemble_control.class,
Applications.joinQueryUri("input", "prepare", "cover"), o)
.getDataAsList(WrapPair.class));
break;
default:
break;
}
}
if(StringUtils.isNotBlank(name)) {
logger.print("开始安装模块:{}", name);
}
List<WrapPair> replaces = new ArrayList<>();
for (WiCommand cmd : wi.getProcessPlatformList()) {
WrapProcessPlatform o = module.getProcessPlatform(cmd.getId());
if (null != o) {
switch (cmd.getMethod()) {
case "create":
replaces.addAll(ThisApplication.context().applications()
.putQuery(x_processplatform_assemble_designer.class,
Applications.joinQueryUri("input", "prepare", "create"), o)
.getDataAsList(WrapPair.class));
break;
case "cover":
replaces.addAll(ThisApplication.context().applications()
.putQuery(x_processplatform_assemble_designer.class,
Applications.joinQueryUri("input", "prepare", "cover"), o)
.getDataAsList(WrapPair.class));
break;
default:
break;
}
}
for (WiCommand cmd : wi.getPortalList()) {
WrapPortal o = module.getPortal(cmd.getId());
if (null != o) {
switch (cmd.getMethod()) {
case "create":
replaces.addAll(ThisApplication.context().applications()
.putQuery(x_portal_assemble_designer.class,
Applications.joinQueryUri("input", "prepare", "create"), o)
.getDataAsList(WrapPair.class));
break;
case "cover":
replaces.addAll(ThisApplication.context().applications()
.putQuery(x_portal_assemble_designer.class,
Applications.joinQueryUri("input", "prepare", "cover"), o)
.getDataAsList(WrapPair.class));
break;
default:
break;
}
}
for (WiCommand cmd : wi.getCmsList()) {
WrapCms o = module.getCms(cmd.getId());
if (null != o) {
switch (cmd.getMethod()) {
case "create":
replaces.addAll(ThisApplication.context().applications()
.putQuery(x_cms_assemble_control.class,
Applications.joinQueryUri("input", "prepare", "create"), o)
.getDataAsList(WrapPair.class));
break;
case "cover":
replaces.addAll(ThisApplication.context().applications()
.putQuery(x_cms_assemble_control.class,
Applications.joinQueryUri("input", "prepare", "cover"), o)
.getDataAsList(WrapPair.class));
break;
default:
break;
}
}
for (WiCommand cmd : wi.getQueryList()) {
WrapQuery o = module.getQuery(cmd.getId());
if (null != o) {
switch (cmd.getMethod()) {
}
for (WiCommand cmd : wi.getPortalList()) {
WrapPortal o = module.getPortal(cmd.getId());
if (null != o) {
switch (cmd.getMethod()) {
case "create":
replaces.addAll(ThisApplication.context().applications()
.putQuery(x_portal_assemble_designer.class,
Applications.joinQueryUri("input", "prepare", "create"), o)
.getDataAsList(WrapPair.class));
break;
case "cover":
replaces.addAll(ThisApplication.context().applications()
.putQuery(x_portal_assemble_designer.class,
Applications.joinQueryUri("input", "prepare", "cover"), o)
.getDataAsList(WrapPair.class));
break;
default:
break;
}
}
}
for (WiCommand cmd : wi.getQueryList()) {
WrapQuery o = module.getQuery(cmd.getId());
if (null != o) {
switch (cmd.getMethod()) {
case "create":
replaces.addAll(ThisApplication.context().applications()
.putQuery(x_query_assemble_designer.class,
Applications.joinQueryUri("input", "prepare", "create"), o)
.getDataAsList(WrapPair.class));
break;
case "cover":
replaces.addAll(ThisApplication.context().applications()
.putQuery(x_query_assemble_designer.class,
Applications.joinQueryUri("input", "prepare", "cover"), o)
.getDataAsList(WrapPair.class));
break;
default:
break;
}
}
}
for (WiCommand cmd : wi.getServiceModuleList()) {
WrapServiceModule o = module.getServiceModule(cmd.getId());
if (null != o) {
switch (cmd.getMethod()) {
case "create":
replaces.addAll(ThisApplication.context().applications()
.putQuery(x_query_assemble_designer.class,
Applications.joinQueryUri("input", "prepare", "create"), o)
replaces.addAll(CipherConnectionAction.put(false,
Config.url_x_program_center_jaxrs("input", "prepare", "create"), o)
.getDataAsList(WrapPair.class));
break;
case "cover":
replaces.addAll(ThisApplication.context().applications()
.putQuery(x_query_assemble_designer.class,
Applications.joinQueryUri("input", "prepare", "cover"), o)
replaces.addAll(CipherConnectionAction.put(false,
Config.url_x_program_center_jaxrs("input", "prepare", "cover"), o)
.getDataAsList(WrapPair.class));
break;
default:
break;
}
}
}
for (WiCommand cmd : wi.getServiceModuleList()) {
WrapServiceModule o = module.getServiceModule(cmd.getId());
if (null != o) {
switch (cmd.getMethod()) {
case "create":
replaces.addAll(CipherConnectionAction.put(false,
Config.url_x_program_center_jaxrs("input", "prepare", "create"), o)
.getDataAsList(WrapPair.class));
break;
case "cover":
replaces.addAll(CipherConnectionAction.put(false,
Config.url_x_program_center_jaxrs("input", "prepare", "cover"), o)
.getDataAsList(WrapPair.class));
break;
default:
break;
}
}
for (WiCommand cmd : wi.getProcessPlatformList()) {
WrapProcessPlatform o = module.getProcessPlatform(cmd.getId());
if (null != o) {
String json = gson.toJson(o);
for (WrapPair re : replaces) {
json = StringUtils.replace(json, re.getFirst(), re.getSecond());
}
WrapProcessPlatform obj = gson.fromJson(json, WrapProcessPlatform.class);
switch (cmd.getMethod()) {
case "create":
wo.getProcessPlatformList()
.add(ThisApplication.context().applications()
.putQuery(x_processplatform_assemble_designer.class,
Applications.joinQueryUri("input", "create"), obj)
.getData(WoId.class).getId());
break;
case "cover":
wo.getProcessPlatformList()
.add(ThisApplication.context().applications()
.putQuery(x_processplatform_assemble_designer.class,
Applications.joinQueryUri("input", "cover"), obj)
.getData(WoId.class).getId());
break;
default:
break;
}
}
for (WiCommand cmd : wi.getProcessPlatformList()) {
WrapProcessPlatform o = module.getProcessPlatform(cmd.getId());
if (null != o) {
String json = gson.toJson(o);
for (WrapPair re : replaces) {
json = StringUtils.replace(json, re.getFirst(), re.getSecond());
}
WrapProcessPlatform obj = gson.fromJson(json, WrapProcessPlatform.class);
switch (cmd.getMethod()) {
case "create":
wo.getProcessPlatformList()
.add(ThisApplication.context().applications()
.putQuery(x_processplatform_assemble_designer.class,
Applications.joinQueryUri("input", "create"), obj)
.getData(WoId.class).getId());
break;
case "cover":
wo.getProcessPlatformList()
.add(ThisApplication.context().applications()
.putQuery(x_processplatform_assemble_designer.class,
Applications.joinQueryUri("input", "cover"), obj)
.getData(WoId.class).getId());
break;
default:
break;
}
}
for (WiCommand cmd : wi.getCmsList()) {
WrapCms o = module.getCms(cmd.getId());
if (null != o) {
String json = gson.toJson(o);
for (WrapPair re : replaces) {
json = StringUtils.replace(json, re.getFirst(), re.getSecond());
}
WrapCms obj = gson.fromJson(json, WrapCms.class);
switch (cmd.getMethod()) {
case "create":
wo.getCmsList()
.add(ThisApplication.context().applications()
.putQuery(x_cms_assemble_control.class,
Applications.joinQueryUri("input", "create"), obj)
.getData(WoId.class).getId());
break;
case "cover":
wo.getCmsList()
.add(ThisApplication.context().applications()
.putQuery(x_cms_assemble_control.class,
Applications.joinQueryUri("input", "cover"), obj)
.getData(WoId.class).getId());
break;
default:
break;
}
}
for (WiCommand cmd : wi.getCmsList()) {
WrapCms o = module.getCms(cmd.getId());
if (null != o) {
String json = gson.toJson(o);
for (WrapPair re : replaces) {
json = StringUtils.replace(json, re.getFirst(), re.getSecond());
}
WrapCms obj = gson.fromJson(json, WrapCms.class);
switch (cmd.getMethod()) {
case "create":
wo.getCmsList()
.add(ThisApplication.context().applications()
.putQuery(x_cms_assemble_control.class,
Applications.joinQueryUri("input", "create"), obj)
.getData(WoId.class).getId());
break;
case "cover":
wo.getCmsList()
.add(ThisApplication.context().applications()
.putQuery(x_cms_assemble_control.class,
Applications.joinQueryUri("input", "cover"), obj)
.getData(WoId.class).getId());
break;
default:
break;
}
}
for (WiCommand cmd : wi.getPortalList()) {
WrapPortal o = module.getPortal(cmd.getId());
if (null != o) {
String json = gson.toJson(o);
for (WrapPair re : replaces) {
json = StringUtils.replace(json, re.getFirst(), re.getSecond());
}
WrapPortal obj = gson.fromJson(json, WrapPortal.class);
switch (cmd.getMethod()) {
case "create":
wo.getPortalList()
.add(ThisApplication.context().applications()
.putQuery(x_portal_assemble_designer.class,
Applications.joinQueryUri("input", "create"), obj)
.getData(WoId.class).getId());
break;
case "cover":
wo.getPortalList()
.add(ThisApplication.context().applications()
.putQuery(x_portal_assemble_designer.class,
Applications.joinQueryUri("input", "cover"), obj)
.getData(WoId.class).getId());
break;
default:
break;
}
}
for (WiCommand cmd : wi.getPortalList()) {
WrapPortal o = module.getPortal(cmd.getId());
if (null != o) {
String json = gson.toJson(o);
for (WrapPair re : replaces) {
json = StringUtils.replace(json, re.getFirst(), re.getSecond());
}
WrapPortal obj = gson.fromJson(json, WrapPortal.class);
switch (cmd.getMethod()) {
case "create":
wo.getPortalList()
.add(ThisApplication.context().applications()
.putQuery(x_portal_assemble_designer.class,
Applications.joinQueryUri("input", "create"), obj)
.getData(WoId.class).getId());
break;
case "cover":
wo.getPortalList()
.add(ThisApplication.context().applications()
.putQuery(x_portal_assemble_designer.class,
Applications.joinQueryUri("input", "cover"), obj)
.getData(WoId.class).getId());
break;
default:
break;
}
}
for (WiCommand cmd : wi.getQueryList()) {
WrapQuery o = module.getQuery(cmd.getId());
if (null != o) {
String json = gson.toJson(o);
for (WrapPair re : replaces) {
json = StringUtils.replace(json, re.getFirst(), re.getSecond());
}
WrapQuery obj = gson.fromJson(json, WrapQuery.class);
switch (cmd.getMethod()) {
case "create":
wo.getQueryList()
.add(ThisApplication.context().applications()
.putQuery(x_query_assemble_designer.class,
Applications.joinQueryUri("input", "create"), obj)
.getData(WoId.class).getId());
break;
case "cover":
wo.getQueryList()
.add(ThisApplication.context().applications()
.putQuery(x_query_assemble_designer.class,
Applications.joinQueryUri("input", "cover"), obj)
.getData(WoId.class).getId());
break;
default:
break;
}
}
for (WiCommand cmd : wi.getQueryList()) {
WrapQuery o = module.getQuery(cmd.getId());
if (null != o) {
String json = gson.toJson(o);
for (WrapPair re : replaces) {
json = StringUtils.replace(json, re.getFirst(), re.getSecond());
}
WrapQuery obj = gson.fromJson(json, WrapQuery.class);
switch (cmd.getMethod()) {
}
for (WiCommand cmd : wi.getServiceModuleList()) {
WrapServiceModule o = module.getServiceModule(cmd.getId());
if (null != o) {
String json = gson.toJson(o);
for (WrapPair re : replaces) {
json = StringUtils.replace(json, re.getFirst(), re.getSecond());
}
WrapServiceModule obj = gson.fromJson(json, WrapServiceModule.class);
switch (cmd.getMethod()) {
case "create":
wo.getQueryList()
.add(ThisApplication.context().applications()
.putQuery(x_query_assemble_designer.class,
Applications.joinQueryUri("input", "create"), obj)
wo.getServiceModuleList()
.add(CipherConnectionAction.put(false,
Config.url_x_program_center_jaxrs("input", "create"), obj)
.getData(WoId.class).getId());
break;
case "cover":
wo.getQueryList()
.add(ThisApplication.context().applications()
.putQuery(x_query_assemble_designer.class,
Applications.joinQueryUri("input", "cover"), obj)
wo.getServiceModuleList()
.add(CipherConnectionAction.put(false,
Config.url_x_program_center_jaxrs("input", "cover"), obj)
.getData(WoId.class).getId());
break;
default:
break;
}
}
}
for (WiCommand cmd : wi.getServiceModuleList()) {
WrapServiceModule o = module.getServiceModule(cmd.getId());
if (null != o) {
String json = gson.toJson(o);
for (WrapPair re : replaces) {
json = StringUtils.replace(json, re.getFirst(), re.getSecond());
}
WrapServiceModule obj = gson.fromJson(json, WrapServiceModule.class);
switch (cmd.getMethod()) {
case "create":
wo.getServiceModuleList()
.add(CipherConnectionAction.put(false,
Config.url_x_program_center_jaxrs("input", "create"), obj)
.getData(WoId.class).getId());
break;
case "cover":
wo.getServiceModuleList()
.add(CipherConnectionAction.put(false,
Config.url_x_program_center_jaxrs("input", "cover"), obj)
.getData(WoId.class).getId());
break;
default:
break;
}
}
}
result.setData(wo);
return result;
}
if(StringUtils.isNotBlank(name)) {
logger.print("完成安装模块:{}", name);
}
result.setData(wo);
return result;
}
public static class Wi extends GsonPropertyObject {
......
......@@ -90,11 +90,12 @@ public class ModuleAction extends StandardJaxrsAction {
@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
public void compareUpload(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
@FormDataParam(FILE_FIELD) final byte[] bytes,
@JaxrsParameterDescribe("附件名称") @FormDataParam(FILENAME_FIELD) String fileName,
@JaxrsParameterDescribe(".xapp文件") @FormDataParam(FILE_FIELD) final FormDataContentDisposition disposition) {
ActionResult<ActionCompareUpload.Wo> result = new ActionResult<>();
EffectivePerson effectivePerson = this.effectivePerson(request);
try {
result = new ActionCompareUpload().execute(effectivePerson, bytes, disposition);
result = new ActionCompareUpload().execute(effectivePerson, bytes, fileName, disposition);
} catch (Exception e) {
logger.error(e, effectivePerson, request, null);
result.error(e);
......
......@@ -166,7 +166,7 @@ public class Structure extends StorageObject {
public static final String name_FIELDNAME = "name";
@FieldDescribe("名称.")
@Column(length = JpaObject.length_255B, name = ColumnNamePrefix + name_FIELDNAME)
@CheckPersist(allowEmpty = false, simplyString = true)
@CheckPersist(allowEmpty = false)
@Index(name = TABLE + IndexNameMiddle + name_FIELDNAME)
private String name;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册