package com.lifiti.portlet;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import java.util.zip.ZipInputStream;
import javax.portlet.ActionRequest;
import javax.portlet.ActionResponse;
import javax.portlet.Portlet;
import javax.portlet.PortletException;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.activiti.engine.repository.DeploymentBuilder;
import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.repository.ProcessDefinitionQuery;
import org.osgi.service.component.annotations.Component;
import com.liferay.portal.kernel.servlet.ServletResponseUtil;
import com.liferay.portal.kernel.upload.UploadPortletRequest;
import com.liferay.portal.kernel.util.ParamUtil;
import com.liferay.portal.kernel.util.PortalUtil;
import com.lifiti.util.ActivitiUtils;
import com.lifiti.util.FilenameUtils;
@Component(immediate = true, property = { "com.liferay.portlet.display-category=category.sample",
"com.liferay.portlet.instanceable=true", "javax.portlet.display-name=Process List",
"javax.portlet.init-param.template-path=/", "javax.portlet.init-param.view-template=/process/processList.jsp",
"javax.portlet.resource-bundle=content.Language",
"javax.portlet.security-role-ref=power-user,user" }, service = Portlet.class)
public class ProcessListPortlet extends BpmBasePortlet {
@Override
public void render(RenderRequest request, RenderResponse response) throws PortletException, IOException {
List<ProcessDefinition> processDefinitionList = repositoryService.createProcessDefinitionQuery().list();
request.setAttribute("processDefinitionList", processDefinitionList);
super.render(request, response);
}
public void deployUploadAction(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception{
UploadPortletRequest upr = PortalUtil.getUploadPortletRequest(actionRequest);
String fileFieldName = "file";
if (upr.getSize(fileFieldName) == 0)
{
throw new Exception("空文件!");
}
String fileName = upr.getFileName(fileFieldName);
try {
// 得到输入流(字节流)对象
InputStream fileInputStream = upr.getFileAsStream(fileFieldName);//file.getInputStream();
// 文件的扩展名
String extension = FilenameUtils.getExtension(fileName);
// zip或者bar类型的文件用ZipInputStream方式部署
DeploymentBuilder deployment = repositoryService.createDeployment();
if (extension.equals("zip") || extension.equals("bar")) {
ZipInputStream zip = new ZipInputStream(fileInputStream);
deployment.addZipInputStream(zip);
} else if (extension.equals("xml")){
// xml类型的文件
deployment.addInputStream(fileName, fileInputStream);
}
deployment.deploy();
_log.info(fileName +" deploy success!");
} catch (Exception e) {
_log.error(fileName + " error on deploy process, because of file input stream");
}
String message = "BPMN file upload success!";
actionRequest.setAttribute("RETURN_MESSAGE", message);
}
public void imageAction(ActionRequest actionRequest, ActionResponse actionResponse) {
System.out.println("$$$$ begin $$$$ ");
processEngine = ActivitiUtils.getProcessEngine();
repositoryService = processEngine.getRepositoryService();
String processDefinitionId = ParamUtil.getString(actionRequest, "pdid");
String diagramResourceName = ParamUtil.getString(actionRequest, "diagramResourceName");
System.out.println("$$$$ pdid = $$$$ " + processDefinitionId);
System.out.println("$$$$ diagramResourceName = $$$$ " + diagramResourceName);
ProcessDefinitionQuery pdq = repositoryService.createProcessDefinitionQuery();
ProcessDefinition pd = pdq.processDefinitionId(processDefinitionId).singleResult();
// 通过接口读取
InputStream resourceAsStream = repositoryService.getResourceAsStream(pd.getDeploymentId(), diagramResourceName);
HttpServletResponse httpServletResponse = (HttpServletResponse) PortalUtil
.getHttpServletResponse(actionResponse);
HttpServletRequest httpServletRequest = (HttpServletRequest) PortalUtil.getHttpServletRequest(actionRequest);
// 另存输出
//ByteArrayOutputStream baos;
try {
// baos = inputStream2ByteArrayOutputStream(resourceAsStream);
httpServletResponse.reset();
httpServletResponse.setHeader("Expires", "0");
httpServletResponse.setHeader("Pragma", "public");
httpServletResponse.setHeader("cache-Control", "must-revalidate,post-check=0,pre-check=0");
httpServletResponse.setHeader("Content-disposition", "inline=filename=temp.png");
httpServletResponse.setContentType("image/png");
// httpServletResponse.setContentLength(baos.size());
ServletResponseUtil.sendFile(httpServletRequest, httpServletResponse, "temp.png", resourceAsStream,
"image/png");
// ServletResponseUtil.sendFile(httpServletRequest,
// httpServletResponse,
// "temp.png", baos.toByteArray());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
com.lifiti.bpmV0.2.rar (95个子文件)
bin
content
Language.properties 753B
META-INF
resources
process
viewResource.jsp 33B
processList.jsp 2KB
deploy.jsp 511B
bpmn.jsp 119B
view.jsp 123B
init.jsp 469B
com
lifiti
upload
search
constants
BpmPortalKeys.class 538B
BpmWebKeys.class 430B
EngineConfig.class 566B
portlet
BpmBasePortlet.class 2KB
FirstPortlet.class 5KB
RenderCommand
BPMNRenderCommand.class 4KB
DeployCommand.class 1KB
ViewResourceRenderCommand.class 5KB
DeployPortlet.class 662B
ActionCommand
DeployUploadAction.class 2KB
ProcessListPortlet.class 7KB
asset
messaging
download
application
notifications
util
FilenameUtils.class 654B
ActivitiUtils.class 1KB
IdentifyHelper.class 5KB
RepositoryHelper.class 4KB
MapUtil.class 2KB
ProcessHelper.class 3KB
RuntimeHelper.class 3KB
xmlOutput.png 56KB
.settings
org.eclipse.buildship.core.prefs 397B
org.eclipse.core.resources.prefs 110B
src
engine.properties 423B
log4j.properties 690B
db.properties 0B
main
resources
content
Language.properties 753B
META-INF
resources
process
viewResource.jsp 33B
processList.jsp 2KB
deploy.jsp 511B
bpmn.jsp 119B
view.jsp 123B
init.jsp 469B
java
com
lifiti
upload
search
constants
BpmPortalKeys.java 300B
BpmWebKeys.java 243B
EngineConfig.java 341B
portlet
FirstPortlet.java 4KB
DeployPortlet.java 483B
ProcessListPortlet.java 5KB
BpmBasePortlet.java 2KB
RenderCommand
ViewResourceRenderCommand.java 4KB
BPMNRenderCommand.java 4KB
DeployCommand.java 701B
ActionCommand
DeployUploadAction.java 1KB
asset
messaging
download
application
notifications
util
IdentifyHelper.java 3KB
ProcessHelper.java 2KB
MapUtil.java 555B
ActivitiUtils.java 1KB
RuntimeHelper.java 2KB
FilenameUtils.java 289B
RepositoryHelper.java 4KB
activiti.cfg.xml 1KB
applicationContext.xml 1KB
deploy4.png 28KB
.project 691B
home.png 52KB
deploy1.png 31KB
.classpath 672B
.gitignore 15B
deploy3.png 38KB
bnd.bnd 57B
deploy2.png 7KB
build
resources
main
content
Language.properties 753B
META-INF
resources
process
viewResource.jsp 33B
processList.jsp 2KB
deploy.jsp 511B
bpmn.jsp 119B
view.jsp 123B
init.jsp 469B
dependency-cache
tmp
jar
MANIFEST.MF 3KB
compileJava
emptySourcePathRef
compileJSP
autoUpdateXml
classes
main
com
lifiti
constants
BpmPortalKeys.class 538B
BpmWebKeys.class 430B
EngineConfig.class 566B
portlet
BpmBasePortlet.class 2KB
FirstPortlet.class 5KB
RenderCommand
BPMNRenderCommand.class 4KB
DeployCommand.class 1KB
ViewResourceRenderCommand.class 5KB
DeployPortlet.class 662B
ActionCommand
DeployUploadAction.class 2KB
ProcessListPortlet.class 7KB
util
FilenameUtils.class 654B
ActivitiUtils.class 1KB
IdentifyHelper.class 5KB
RepositoryHelper.class 4KB
MapUtil.class 2KB
ProcessHelper.class 3KB
RuntimeHelper.class 3KB
libs
com.lifiti.bpm-1.0.0.jar 32KB
build.gradle 2KB
共 95 条
- 1
资源评论
- 天外来客0010012016-12-23不错,很有帮助,参考价值
昕友软件
- 粉丝: 91
- 资源: 12
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功