提交 007e406a 编写于 作者: F Frederik Heremans

Applied 6f10b859f7db1ca4918aa40235d6271afaba8225 (5.7-alf) to master

Added beforeDeploy() on DeploymentFilter
上级 a9a20b54
......@@ -15,6 +15,7 @@ package org.activiti.explorer.ui.management.deployment;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.repository.Deployment;
import org.activiti.engine.repository.DeploymentBuilder;
import org.activiti.engine.repository.DeploymentQuery;
import org.activiti.explorer.ui.management.deployment.DeploymentListQuery.DeploymentListitem;
......@@ -42,5 +43,9 @@ public class DefaultDeploymentFilter implements DeploymentFilter {
public DeploymentListitem createItem(Deployment deployment) {
return new DeploymentListitem(deployment);
}
public void beforeDeploy(DeploymentBuilder deployment) {
// Nothing special needs to be done with the deployment, by default
}
}
......@@ -15,12 +15,14 @@ package org.activiti.explorer.ui.management.deployment;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.repository.Deployment;
import org.activiti.engine.repository.DeploymentBuilder;
import org.activiti.engine.repository.DeploymentQuery;
import org.activiti.explorer.ui.management.deployment.DeploymentListQuery.DeploymentListitem;
/**
* Class used in {@link DeploymentListQuery} for filtering.
* Class used in {@link DeploymentListQuery} for filtering and consulted right before
* a new {@link Deployment} is about to be deployed through the UI.
*
* @author Frederik Heremans
*/
......@@ -42,4 +44,10 @@ public interface DeploymentFilter {
* @return item representing the deployment
*/
DeploymentListitem createItem(Deployment deployment);
}
/**
* Called right before the deployment, created in the UI, is deployed to the
* API. This allows to ad additional artifacts or alter deployment properties.
*/
void beforeDeploy(DeploymentBuilder deployment);
}
\ No newline at end of file
......@@ -76,21 +76,24 @@ public class DeploymentUploadReceiver implements Receiver, FinishedListener {
protected void deployUploadedFile() {
DeploymentBuilder deploymentBuilder = repositoryService.createDeployment().name(fileName);
DeploymentFilter deploymentFilter = ExplorerApp.get().getComponentFactory(DeploymentFilterFactory.class).create();
try {
try {
if (fileName.endsWith(".bpmn20.xml") || fileName.endsWith(".bpmn")) {
validFile = true;
deployment = deploymentBuilder
.addInputStream(fileName, new ByteArrayInputStream(outputStream.toByteArray()))
.deploy();
deploymentBuilder.addInputStream(fileName, new ByteArrayInputStream(outputStream.toByteArray()));
} else if (fileName.endsWith(".bar") || fileName.endsWith(".zip")) {
validFile = true;
deployment = deploymentBuilder
.addZipInputStream(new ZipInputStream(new ByteArrayInputStream(outputStream.toByteArray())))
.deploy();
deploymentBuilder.addZipInputStream(new ZipInputStream(new ByteArrayInputStream(outputStream.toByteArray())));
} else {
notificationManager.showErrorNotification(Messages.DEPLOYMENT_UPLOAD_INVALID_FILE,
i18nManager.getMessage(Messages.DEPLOYMENT_UPLOAD_INVALID_FILE_EXPLANATION));
i18nManager.getMessage(Messages.DEPLOYMENT_UPLOAD_INVALID_FILE_EXPLANATION));
}
// If the deployment is valid, run it through the beforeDeploy and actually deploy it in Activiti
if(validFile) {
deploymentFilter.beforeDeploy(deploymentBuilder);
deployment = deploymentBuilder.deploy();
}
} catch (ActivitiException e) {
String errorMsg = e.getMessage().replace(System.getProperty("line.separator"), "<br/>");
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册