diff --git a/activiti-engine/pom.xml b/activiti-engine/pom.xml index 8ef83a3fba860d5f4b1c8a8c21eef22447dbbb50..9f5974cafa1f9d52688db786c0337ffd788c9954 100644 --- a/activiti-engine/pom.xml +++ b/activiti-engine/pom.xml @@ -18,6 +18,10 @@ org.activiti.api activiti-api-runtime-shared + + org.activiti.core.common + activiti-project-model + org.activiti activiti-bpmn-converter @@ -180,4 +184,4 @@ - \ No newline at end of file + diff --git a/activiti-engine/src/main/java/org/activiti/engine/impl/bpmn/deployer/BpmnDeployer.java b/activiti-engine/src/main/java/org/activiti/engine/impl/bpmn/deployer/BpmnDeployer.java index 016ce0947183433cce410ee3a04272469bf4ca68..cccf704ca2e5abed8aab1ee5d1d40233d7c027f0 100755 --- a/activiti-engine/src/main/java/org/activiti/engine/impl/bpmn/deployer/BpmnDeployer.java +++ b/activiti-engine/src/main/java/org/activiti/engine/impl/bpmn/deployer/BpmnDeployer.java @@ -168,22 +168,38 @@ public class BpmnDeployer implements Deployer { Map mapNewToOldProcessDefinitions) { CommandContext commandContext = Context.getCommandContext(); - for (ProcessDefinitionEntity processDefinition : parsedDeployment.getAllProcessDefinitions()) { - int version = 1; - - ProcessDefinitionEntity latest = mapNewToOldProcessDefinitions.get(processDefinition); - if (latest != null) { - version = latest.getVersion() + 1; + if(parsedDeployment.getDeployment().getProjectReleaseVersion() != null){ + Integer version = parsedDeployment.getDeployment().getVersion(); + for (ProcessDefinitionEntity processDefinition : parsedDeployment.getAllProcessDefinitions()) { + processDefinition.setVersion(version); + processDefinition.setId(getIdForNewProcessDefinition(processDefinition)); + + if (commandContext.getProcessEngineConfiguration().getEventDispatcher().isEnabled()) { + commandContext.getProcessEngineConfiguration().getEventDispatcher().dispatchEvent(ActivitiEventBuilder.createEntityEvent(ActivitiEventType.ENTITY_CREATED, + processDefinition)); + } } + }else{ - processDefinition.setVersion(version); - processDefinition.setId(getIdForNewProcessDefinition(processDefinition)); + for (ProcessDefinitionEntity processDefinition : parsedDeployment.getAllProcessDefinitions()) { + int version = 1; - if (commandContext.getProcessEngineConfiguration().getEventDispatcher().isEnabled()) { - commandContext.getProcessEngineConfiguration().getEventDispatcher().dispatchEvent(ActivitiEventBuilder.createEntityEvent(ActivitiEventType.ENTITY_CREATED, - processDefinition)); + ProcessDefinitionEntity latest = mapNewToOldProcessDefinitions.get(processDefinition); + if (latest != null) { + version = latest.getVersion() + 1; + } + + processDefinition.setVersion(version); + processDefinition.setId(getIdForNewProcessDefinition(processDefinition)); + + if (commandContext.getProcessEngineConfiguration().getEventDispatcher().isEnabled()) { + commandContext.getProcessEngineConfiguration().getEventDispatcher().dispatchEvent(ActivitiEventBuilder.createEntityEvent(ActivitiEventType.ENTITY_CREATED, + processDefinition)); + } } } + + } /** diff --git a/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/DeployCmd.java b/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/DeployCmd.java index 7f2ab83e424d6dc260d25af0ac447cc439da6982..cf7e06d8255d82108f37c16b5067f25bdb1511f2 100644 --- a/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/DeployCmd.java +++ b/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/DeployCmd.java @@ -52,7 +52,10 @@ public class DeployCmd implements Command, Serializable { deployment.setDeploymentTime(commandContext.getProcessEngineConfiguration().getClock().getCurrentTime()); - if (deploymentBuilder.isDuplicateFilterEnabled()) { + setProjectReleaseVersion(deployment); + deployment.setVersion(1); + + if (deploymentBuilder.isDuplicateFilterEnabled()) { List existingDeployments = new ArrayList(); if (deployment.getTenantId() == null || ProcessEngineConfiguration.NO_TENANT_ID.equals(deployment.getTenantId())) { @@ -74,14 +77,19 @@ public class DeployCmd implements Command, Serializable { existingDeployment = (DeploymentEntity) existingDeployments.get(0); } - if ((existingDeployment != null) && !deploymentsDiffer(deployment, existingDeployment)) { - return existingDeployment; - } + if (existingDeployment != null) { + if (!deploymentsDiffer(deployment, + existingDeployment)) { + return existingDeployment; + } else { + deployment.setVersion(existingDeployment.getVersion() + 1); + } + } } deployment.setNew(true); - // Save the data + // Save the data commandContext.getDeploymentEntityManager().insert(deployment); if (commandContext.getProcessEngineConfiguration().getEventDispatcher().isEnabled()) { @@ -107,32 +115,47 @@ public class DeployCmd implements Command, Serializable { return deployment; } - protected boolean deploymentsDiffer(DeploymentEntity deployment, DeploymentEntity saved) { - - if (deployment.getResources() == null || saved.getResources() == null) { - return true; + private void setProjectReleaseVersion(DeploymentEntity deployment) { + if (deploymentBuilder.hasProjectManifestSet()) { + deployment.setProjectReleaseVersion(deploymentBuilder.getProjectManifest().getVersion()); + } } - Map resources = deployment.getResources(); - Map savedResources = saved.getResources(); + protected boolean deploymentsDiffer(DeploymentEntity deployment, + DeploymentEntity saved) { + + if (deploymentBuilder.hasProjectManifestSet()) { - for (String resourceName : resources.keySet()) { - ResourceEntity savedResource = savedResources.get(resourceName); + return !deployment.getProjectReleaseVersion().equals(saved.getProjectReleaseVersion()); + } else { - if (savedResource == null) - return true; + if (deployment.getResources() == null || saved.getResources() == null) { + return true; + } - if (!savedResource.isGenerated()) { - ResourceEntity resource = resources.get(resourceName); + Map resources = deployment.getResources(); + Map savedResources = saved.getResources(); - byte[] bytes = resource.getBytes(); - byte[] savedBytes = savedResource.getBytes(); - if (!Arrays.equals(bytes, savedBytes)) { - return true; + for (String resourceName : resources.keySet()) { + ResourceEntity savedResource = savedResources.get(resourceName); + + if (savedResource == null) { + return true; + } + + if (!savedResource.isGenerated()) { + ResourceEntity resource = resources.get(resourceName); + + byte[] bytes = resource.getBytes(); + byte[] savedBytes = savedResource.getBytes(); + if (!Arrays.equals(bytes, + savedBytes)) { + return true; + } + } + } + return false; } - } - } - return false; } protected void scheduleProcessDefinitionActivation(CommandContext commandContext, DeploymentEntity deployment) { diff --git a/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/entity/DeploymentEntity.java b/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/entity/DeploymentEntity.java index 768428a11d9639e4e4c7eb654f7b2bc467e42ca8..343dd72f9d20a28e9fbf283ca8f9135a3cc8259d 100644 --- a/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/entity/DeploymentEntity.java +++ b/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/entity/DeploymentEntity.java @@ -55,4 +55,12 @@ public interface DeploymentEntity extends Deployment, Entity { void setEngineVersion(String engineVersion); -} \ No newline at end of file + Integer getVersion(); + + void setVersion(Integer version); + + String getProjectReleaseVersion(); + + void setProjectReleaseVersion(String projectReleaseVersion); + +} diff --git a/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/entity/DeploymentEntityImpl.java b/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/entity/DeploymentEntityImpl.java index f3a2c0690867728bd4d72238f3c303d0110e88c2..03d95bd696cc08dd3b86cc06066bc57524a525a3 100644 --- a/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/entity/DeploymentEntityImpl.java +++ b/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/entity/DeploymentEntityImpl.java @@ -38,8 +38,10 @@ public class DeploymentEntityImpl extends AbstractEntityNoRevision implements De protected Map resources; protected Date deploymentTime; protected boolean isNew; + protected Integer version; + private String projectReleaseVersion; - // Backwards compatibility + // Backwards compatibility protected String engineVersion; /** @@ -168,6 +170,22 @@ public class DeploymentEntityImpl extends AbstractEntityNoRevision implements De this.engineVersion = engineVersion; } + public Integer getVersion(){ + return version; + } + + public void setVersion(Integer version){ + this.version = version; + } + + public String getProjectReleaseVersion() { + return projectReleaseVersion; + } + + public void setProjectReleaseVersion(String projectReleaseVersion) { + this.projectReleaseVersion = projectReleaseVersion; + } + // common methods ////////////////////////////////////////////////////////// @Override @@ -175,4 +193,4 @@ public class DeploymentEntityImpl extends AbstractEntityNoRevision implements De return "DeploymentEntity[id=" + id + ", name=" + name + "]"; } -} \ No newline at end of file +} diff --git a/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/entity/ProcessDefinitionEntityImpl.java b/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/entity/ProcessDefinitionEntityImpl.java index 0cd5273c6e4f85d0a157e5368c5bd0393c4de7d7..498a9eb7918e9b5a55e345527b2062a60eb9dd10 100644 --- a/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/entity/ProcessDefinitionEntityImpl.java +++ b/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/entity/ProcessDefinitionEntityImpl.java @@ -48,7 +48,7 @@ public class ProcessDefinitionEntityImpl extends AbstractEntity implements Proce protected List definitionIdentityLinkEntities = new ArrayList(); protected IOSpecification ioSpecification; - // Backwards compatibility + // Backwards compatibility protected String engineVersion; public Object getPersistentState() { diff --git a/activiti-engine/src/main/java/org/activiti/engine/impl/repository/DeploymentBuilderImpl.java b/activiti-engine/src/main/java/org/activiti/engine/impl/repository/DeploymentBuilderImpl.java index b450062d2347bc1730b1d99a1e6712ce323ed698..7876014e06236ca968fd69a20ab8a68d48c3b820 100644 --- a/activiti-engine/src/main/java/org/activiti/engine/impl/repository/DeploymentBuilderImpl.java +++ b/activiti-engine/src/main/java/org/activiti/engine/impl/repository/DeploymentBuilderImpl.java @@ -24,6 +24,7 @@ import java.util.zip.ZipInputStream; import org.activiti.bpmn.converter.BpmnXMLConverter; import org.activiti.bpmn.model.BpmnModel; +import org.activiti.core.common.project.model.ProjectManifest; import org.activiti.engine.ActivitiException; import org.activiti.engine.ActivitiIllegalArgumentException; import org.activiti.engine.impl.RepositoryServiceImpl; @@ -55,6 +56,7 @@ public class DeploymentBuilderImpl implements DeploymentBuilder, Serializable { protected boolean isDuplicateFilterEnabled; protected Date processDefinitionsActivationDate; protected Map deploymentProperties = new HashMap<>(); + private ProjectManifest projectManifest; public DeploymentBuilderImpl(RepositoryServiceImpl repositoryService) { this(repositoryService, @@ -82,6 +84,19 @@ public class DeploymentBuilderImpl implements DeploymentBuilder, Serializable { return this; } + public DeploymentBuilder setProjectManifest(ProjectManifest projectManifest) { + this.projectManifest = projectManifest; + return this; + } + + public ProjectManifest getProjectManifest(){ + return this.projectManifest; + } + + public boolean hasProjectManifestSet(){ + return this.projectManifest != null; + } + @Override public DeploymentBuilder addInputStream(String resourceName, Resource resource) { diff --git a/activiti-engine/src/main/java/org/activiti/engine/repository/Deployment.java b/activiti-engine/src/main/java/org/activiti/engine/repository/Deployment.java index a61d21925d455e25f628758f3348ab9ba8f39c4b..21e1701d9c8ff55aefced7618d6214e11fa10953 100644 --- a/activiti-engine/src/main/java/org/activiti/engine/repository/Deployment.java +++ b/activiti-engine/src/main/java/org/activiti/engine/repository/Deployment.java @@ -44,4 +44,8 @@ public interface Deployment { String getTenantId(); + Integer getVersion(); + + String getProjectReleaseVersion(); + } diff --git a/activiti-engine/src/main/java/org/activiti/engine/repository/DeploymentBuilder.java b/activiti-engine/src/main/java/org/activiti/engine/repository/DeploymentBuilder.java index 947d2c41cb58960d44f44267d4255b3ea1a0a1a7..016cc81065d0266d483edfa622d5134c5ff71674 100644 --- a/activiti-engine/src/main/java/org/activiti/engine/repository/DeploymentBuilder.java +++ b/activiti-engine/src/main/java/org/activiti/engine/repository/DeploymentBuilder.java @@ -17,6 +17,7 @@ import java.util.Date; import java.util.zip.ZipInputStream; import org.activiti.bpmn.model.BpmnModel; +import org.activiti.core.common.project.model.ProjectManifest; import org.activiti.engine.api.internal.Internal; import org.springframework.core.io.Resource; @@ -48,6 +49,8 @@ public interface DeploymentBuilder { DeploymentBuilder addBpmnModel(String resourceName, BpmnModel bpmnModel); + DeploymentBuilder setProjectManifest(ProjectManifest projectManifest); + /** * If called, no XML schema validation against the BPMN 2.0 XSD. * diff --git a/activiti-engine/src/main/resources/org/activiti/db/create/activiti.h2.create.engine.sql b/activiti-engine/src/main/resources/org/activiti/db/create/activiti.h2.create.engine.sql index d116bdcc488de2219932dbb9cba2f246b8c97973..38928a503d56a4170009d389ceb9aed22c58027e 100644 --- a/activiti-engine/src/main/resources/org/activiti/db/create/activiti.h2.create.engine.sql +++ b/activiti-engine/src/main/resources/org/activiti/db/create/activiti.h2.create.engine.sql @@ -32,6 +32,8 @@ create table ACT_RE_DEPLOYMENT ( TENANT_ID_ varchar(255) default '', DEPLOY_TIME_ timestamp, ENGINE_VERSION_ varchar(255), + VERSION_ integer, + PROJECT_RELEASE_VERSION_ varchar(255), primary key (ID_) ); diff --git a/activiti-engine/src/main/resources/org/activiti/db/create/activiti.postgres.create.engine.sql b/activiti-engine/src/main/resources/org/activiti/db/create/activiti.postgres.create.engine.sql index 1b35c9008114e38b34e73ab9b387c40ad3680fc1..323924a98ac1d5fb8608048dbad94010fd345378 100644 --- a/activiti-engine/src/main/resources/org/activiti/db/create/activiti.postgres.create.engine.sql +++ b/activiti-engine/src/main/resources/org/activiti/db/create/activiti.postgres.create.engine.sql @@ -32,6 +32,8 @@ create table ACT_RE_DEPLOYMENT ( TENANT_ID_ varchar(255) default '', DEPLOY_TIME_ timestamp, ENGINE_VERSION_ varchar(255), + VERSION_ integer, + PROJECT_RELEASE_VERSION_ varchar(255), primary key (ID_) ); diff --git a/activiti-engine/src/main/resources/org/activiti/db/mapping/entity/Deployment.xml b/activiti-engine/src/main/resources/org/activiti/db/mapping/entity/Deployment.xml index 6e7b2fe5e9e8da97e78789585747419387d5d8dc..d2bca82a248f286f7d617ad144be8a57be47112b 100644 --- a/activiti-engine/src/main/resources/org/activiti/db/mapping/entity/Deployment.xml +++ b/activiti-engine/src/main/resources/org/activiti/db/mapping/entity/Deployment.xml @@ -7,8 +7,8 @@ - insert into ${prefix}ACT_RE_DEPLOYMENT(ID_, NAME_, CATEGORY_, KEY_, TENANT_ID_, DEPLOY_TIME_, ENGINE_VERSION_) - values(#{id, jdbcType=VARCHAR}, #{name, jdbcType=VARCHAR}, #{category, jdbcType=VARCHAR}, #{key, jdbcType=VARCHAR}, #{tenantId, jdbcType=VARCHAR}, #{deploymentTime, jdbcType=TIMESTAMP}, #{engineVersion, jdbcType=VARCHAR}) + insert into ${prefix}ACT_RE_DEPLOYMENT(ID_, NAME_, CATEGORY_, KEY_, TENANT_ID_, DEPLOY_TIME_, ENGINE_VERSION_, VERSION_, PROJECT_RELEASE_VERSION_) + values(#{id, jdbcType=VARCHAR}, #{name, jdbcType=VARCHAR}, #{category, jdbcType=VARCHAR}, #{key, jdbcType=VARCHAR}, #{tenantId, jdbcType=VARCHAR}, #{deploymentTime, jdbcType=TIMESTAMP}, #{engineVersion, jdbcType=VARCHAR}, #{version, jdbcType=INTEGER}, #{projectReleaseVersion, jdbcType=VARCHAR}) @@ -20,7 +20,9 @@ #{deployment.category, jdbcType=VARCHAR}, #{deployment.key, jdbcType=VARCHAR}, #{deployment.tenantId, jdbcType=VARCHAR}, - #{deployment.deploymentTime, jdbcType=TIMESTAMP}) + #{deployment.deploymentTime, jdbcType=TIMESTAMP}), + #{version, jdbcType=INTEGER}, + #{projectReleaseVersion, jdbcType=VARCHAR} @@ -33,7 +35,9 @@ #{deployment.category, jdbcType=VARCHAR}, #{deployment.key, jdbcType=VARCHAR}, #{deployment.tenantId, jdbcType=VARCHAR}, - #{deployment.deploymentTime, jdbcType=TIMESTAMP}) + #{deployment.deploymentTime, jdbcType=TIMESTAMP}), + #{version, jdbcType=INTEGER}, + #{projectReleaseVersion, jdbcType=VARCHAR} SELECT * FROM dual @@ -44,7 +48,8 @@ update ${prefix}ACT_RE_DEPLOYMENT set CATEGORY_ = #{category, jdbcType=VARCHAR}, KEY_ = #{key, jdbcType=VARCHAR}, - TENANT_ID_ = #{tenantId, jdbcType=VARCHAR} + TENANT_ID_ = #{tenantId, jdbcType=VARCHAR}, + VERSION_ = #{version, jdbcType=INTEGER} where ID_ = #{id, jdbcType=VARCHAR} @@ -64,6 +69,8 @@ + + @@ -176,4 +183,4 @@ ${sql} - \ No newline at end of file + diff --git a/activiti-engine/src/main/resources/org/activiti/db/mapping/entity/ProcessDefinition.xml b/activiti-engine/src/main/resources/org/activiti/db/mapping/entity/ProcessDefinition.xml index b03ff035cd820e35694bc1ed662282a44ace5fa0..d808442bb07cd09eea9839779633005136a8bd1d 100644 --- a/activiti-engine/src/main/resources/org/activiti/db/mapping/entity/ProcessDefinition.xml +++ b/activiti-engine/src/main/resources/org/activiti/db/mapping/entity/ProcessDefinition.xml @@ -327,4 +327,4 @@ - \ No newline at end of file + diff --git a/activiti-spring-boot-starter/src/main/java/org/activiti/spring/boot/ProcessEngineAutoConfiguration.java b/activiti-spring-boot-starter/src/main/java/org/activiti/spring/boot/ProcessEngineAutoConfiguration.java index b60980ca17e272574ffc1e09259f0f4cc277c739..90e49d820f14862ff3f6a630019dcb4b319cc5ea 100644 --- a/activiti-spring-boot-starter/src/main/java/org/activiti/spring/boot/ProcessEngineAutoConfiguration.java +++ b/activiti-spring-boot-starter/src/main/java/org/activiti/spring/boot/ProcessEngineAutoConfiguration.java @@ -23,6 +23,7 @@ import javax.sql.DataSource; import org.activiti.api.process.model.events.ProcessDeployedEvent; import org.activiti.api.process.runtime.events.listener.ProcessRuntimeEventListener; import org.activiti.api.runtime.shared.identity.UserGroupManager; +import org.activiti.core.common.spring.project.ProjectModelService; import org.activiti.engine.RepositoryService; import org.activiti.engine.cfg.ProcessEngineConfigurator; import org.activiti.engine.impl.event.EventSubscriptionPayloadMappingProvider; @@ -70,10 +71,11 @@ public class ProcessEngineAutoConfiguration extends AbstractProcessEngineAutoCon SpringAsyncExecutor springAsyncExecutor, ActivitiProperties activitiProperties, ProcessDefinitionResourceFinder processDefinitionResourceFinder, + ProjectModelService projectModelService, @Autowired(required = false) List processEngineConfigurationConfigurers, @Autowired(required = false) List processEngineConfigurators) throws IOException { - SpringProcessEngineConfiguration conf = new SpringProcessEngineConfiguration(); + SpringProcessEngineConfiguration conf = new SpringProcessEngineConfiguration(projectModelService); conf.setConfigurators(processEngineConfigurators); configureProcessDefinitionResources(processDefinitionResourceFinder, conf); diff --git a/activiti-spring-boot-starter/src/test/java/org/activiti/spring/boot/ApplicationUpgradeIT.java b/activiti-spring-boot-starter/src/test/java/org/activiti/spring/boot/ApplicationUpgradeIT.java new file mode 100644 index 0000000000000000000000000000000000000000..9e0a4be305881d7d75cb951c44a0c5c8afa5d80a --- /dev/null +++ b/activiti-spring-boot-starter/src/test/java/org/activiti/spring/boot/ApplicationUpgradeIT.java @@ -0,0 +1,50 @@ +package org.activiti.spring.boot; + +import org.activiti.core.common.project.model.ProjectManifest; +import org.activiti.engine.RepositoryService; +import org.activiti.engine.repository.Deployment; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +import static org.assertj.core.api.Assertions.assertThat; + +@RunWith(SpringRunner.class) +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE) +public class ApplicationUpgradeIT { + + @Autowired + private RepositoryService repositoryService; + + @Test + public void should_UpdateDeploymentVersion_When_ManifestIsPresent() { + + ProjectManifest projectManifest = new ProjectManifest(); + projectManifest.setVersion("7"); + + + Deployment deployment1 = repositoryService.createDeployment() + .setProjectManifest(projectManifest) + .enableDuplicateFiltering() + .name("deploymentName") + .deploy(); + + assertThat(deployment1.getVersion()).isEqualTo(1); + assertThat(deployment1.getProjectReleaseVersion()).isEqualTo("7"); + + projectManifest.setVersion("17"); + + Deployment deployment2 = repositoryService.createDeployment() + .setProjectManifest(projectManifest) + .enableDuplicateFiltering() + .name("deploymentName") + .deploy(); + + assertThat(deployment2.getProjectReleaseVersion()).isEqualTo("17"); + assertThat(deployment2.getVersion()).isEqualTo(2); + + } + +} diff --git a/activiti-spring-boot-starter/src/test/java/org/activiti/spring/boot/ProcessEngineAutoConfigurationTest.java b/activiti-spring-boot-starter/src/test/java/org/activiti/spring/boot/ProcessEngineAutoConfigurationTest.java index fe4bb0a39582ea6665721f4dca77261a333029b0..ca34704c905e28c07f0921c4a49a3e415feb9980 100644 --- a/activiti-spring-boot-starter/src/test/java/org/activiti/spring/boot/ProcessEngineAutoConfigurationTest.java +++ b/activiti-spring-boot-starter/src/test/java/org/activiti/spring/boot/ProcessEngineAutoConfigurationTest.java @@ -16,6 +16,7 @@ package org.activiti.spring.boot; +import org.activiti.core.common.spring.project.ProjectModelService; import org.activiti.spring.SpringProcessEngineConfiguration; import org.activiti.spring.boot.process.validation.AsyncPropertyValidator; import org.activiti.validation.ProcessValidator; @@ -24,8 +25,9 @@ import org.assertj.core.api.Condition; import org.junit.Before; import org.junit.Test; import org.mockito.InjectMocks; +import org.mockito.Mock; -import static org.assertj.core.api.Assertions.*; +import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.MockitoAnnotations.initMocks; public class ProcessEngineAutoConfigurationTest { @@ -33,6 +35,9 @@ public class ProcessEngineAutoConfigurationTest { @InjectMocks private ProcessEngineAutoConfiguration processEngineAutoConfiguration; + @Mock + private ProjectModelService projectModelServiceMock; + @Before public void setUp() { initMocks(this); @@ -43,7 +48,7 @@ public class ProcessEngineAutoConfigurationTest { //given ActivitiProperties activitiProperties = new ActivitiProperties(); activitiProperties.setAsyncExecutorActivate(false); - SpringProcessEngineConfiguration conf = new SpringProcessEngineConfiguration(); + SpringProcessEngineConfiguration conf = new SpringProcessEngineConfiguration(projectModelServiceMock); //when processEngineAutoConfiguration.addAsyncPropertyValidator(activitiProperties, @@ -65,7 +70,7 @@ public class ProcessEngineAutoConfigurationTest { //given ActivitiProperties activitiProperties = new ActivitiProperties(); activitiProperties.setAsyncExecutorActivate(true); - SpringProcessEngineConfiguration conf = new SpringProcessEngineConfiguration(); + SpringProcessEngineConfiguration conf = new SpringProcessEngineConfiguration(projectModelServiceMock); //when processEngineAutoConfiguration.addAsyncPropertyValidator(activitiProperties, @@ -76,4 +81,4 @@ public class ProcessEngineAutoConfigurationTest { assertThat(processValidator).isNull(); } -} \ No newline at end of file +} diff --git a/activiti-spring-boot-starter/src/test/resources/application.properties b/activiti-spring-boot-starter/src/test/resources/application.properties index f090485838fdcbed11b0d97267529d83e3f66bb0..9a95999c052d686ec40a539d26c6404c54bc5e47 100644 --- a/activiti-spring-boot-starter/src/test/resources/application.properties +++ b/activiti-spring-boot-starter/src/test/resources/application.properties @@ -1 +1 @@ -spring.application.name=my-app \ No newline at end of file +spring.application.name=my-app diff --git a/activiti-spring-boot-starter/src/test/resources/default-app.json b/activiti-spring-boot-starter/src/test/resources/default-app.json new file mode 100644 index 0000000000000000000000000000000000000000..518220b9d00789865c99925a5c3cdb00f23bf118 --- /dev/null +++ b/activiti-spring-boot-starter/src/test/resources/default-app.json @@ -0,0 +1,10 @@ +{ + "createdBy": "superadminuser", + "creationDate": "2019-08-16T15:58:46.056+0000", + "lastModifiedBy": "qa-modeler-1", + "lastModifiedDate": "2019-08-16T16:03:41.941+0000", + "id": "c519a458-539f-4385-a937-2edfb4045eb9", + "name": "projectA", + "description": "", + "version": "1" +} diff --git a/activiti-spring/pom.xml b/activiti-spring/pom.xml index 22be4bdbe406ab4c923d27ea525204d6058c424e..d521c7ebff1216b0f9c9ced8b445901e060d44f1 100644 --- a/activiti-spring/pom.xml +++ b/activiti-spring/pom.xml @@ -31,6 +31,10 @@ org.activiti.api activiti-api-runtime-shared + + org.activiti.core.common + activiti-spring-project + org.springframework spring-beans diff --git a/activiti-spring/src/main/java/org/activiti/spring/SpringProcessEngineConfiguration.java b/activiti-spring/src/main/java/org/activiti/spring/SpringProcessEngineConfiguration.java index efded0e99eb645d137e626a12204cf0b8b736e34..816fc3598c5c4886797daaa82c538248417cde37 100644 --- a/activiti-spring/src/main/java/org/activiti/spring/SpringProcessEngineConfiguration.java +++ b/activiti-spring/src/main/java/org/activiti/spring/SpringProcessEngineConfiguration.java @@ -13,6 +13,7 @@ package org.activiti.spring; +import org.activiti.core.common.spring.project.ProjectModelService; import org.activiti.engine.ActivitiException; import org.activiti.engine.ProcessEngine; import org.activiti.engine.ProcessEngineConfiguration; @@ -39,6 +40,8 @@ import org.springframework.transaction.PlatformTransactionManager; import javax.sql.DataSource; import java.util.ArrayList; import java.util.Collection; +import java.util.HashMap; +import java.util.Map; /** @@ -54,15 +57,21 @@ public class SpringProcessEngineConfiguration extends ProcessEngineConfiguration protected String deploymentMode = "default"; protected ApplicationContext applicationContext; protected Integer transactionSynchronizationAdapterOrder = null; - private Collection deploymentStrategies = new ArrayList(); + private Collection deploymentStrategies = new ArrayList<>(); + private DefaultAutoDeploymentStrategy defaultAutoDeploymentStrategy; - public SpringProcessEngineConfiguration() { - this.transactionsExternallyManaged = true; - deploymentStrategies.add(new DefaultAutoDeploymentStrategy()); - deploymentStrategies.add(new SingleResourceAutoDeploymentStrategy()); - deploymentStrategies.add(new ResourceParentFolderAutoDeploymentStrategy()); - deploymentStrategies.add(new FailOnNoProcessAutoDeploymentStrategy()); - deploymentStrategies.add(new NeverFailAutoDeploymentStrategy()); + public SpringProcessEngineConfiguration() { + this(null); + } + + public SpringProcessEngineConfiguration(ProjectModelService projectModelService) { + this.transactionsExternallyManaged = true; + defaultAutoDeploymentStrategy = new DefaultAutoDeploymentStrategy(projectModelService); + deploymentStrategies.add(defaultAutoDeploymentStrategy); + deploymentStrategies.add(new SingleResourceAutoDeploymentStrategy(projectModelService)); + deploymentStrategies.add(new ResourceParentFolderAutoDeploymentStrategy(projectModelService)); + deploymentStrategies.add(new FailOnNoProcessAutoDeploymentStrategy(projectModelService)); + deploymentStrategies.add(new NeverFailAutoDeploymentStrategy(projectModelService)); } @Override @@ -181,14 +190,14 @@ public class SpringProcessEngineConfiguration extends ProcessEngineConfiguration * @return the deployment strategy to use for the mode. Never null */ protected AutoDeploymentStrategy getAutoDeploymentStrategy(final String mode) { - AutoDeploymentStrategy result = new DefaultAutoDeploymentStrategy(); - for (final AutoDeploymentStrategy strategy : deploymentStrategies) { - if (strategy.handlesMode(mode)) { - result = strategy; - break; + AutoDeploymentStrategy result = defaultAutoDeploymentStrategy; + for (final AutoDeploymentStrategy strategy : deploymentStrategies) { + if (strategy.handlesMode(mode)) { + result = strategy; + break; + } } - } - return result; + return result; } } diff --git a/activiti-spring/src/main/java/org/activiti/spring/autodeployment/AbstractAutoDeploymentStrategy.java b/activiti-spring/src/main/java/org/activiti/spring/autodeployment/AbstractAutoDeploymentStrategy.java index 165b2d2d5ba6c2fce0d761c22341a53edef5e67e..bca551eef8dbec035dbff8579dec95ae5bd5b884 100644 --- a/activiti-spring/src/main/java/org/activiti/spring/autodeployment/AbstractAutoDeploymentStrategy.java +++ b/activiti-spring/src/main/java/org/activiti/spring/autodeployment/AbstractAutoDeploymentStrategy.java @@ -18,8 +18,10 @@ import java.util.List; import org.activiti.bpmn.converter.BpmnXMLConverter; import org.activiti.bpmn.model.BpmnModel; +import org.activiti.core.common.spring.project.ProjectModelService; import org.activiti.engine.RepositoryService; import org.activiti.engine.impl.util.io.InputStreamSource; +import org.activiti.engine.repository.DeploymentBuilder; import org.activiti.validation.ValidationError; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; @@ -37,6 +39,12 @@ public abstract class AbstractAutoDeploymentStrategy implements AutoDeploymentSt protected static final Logger LOGGER = LoggerFactory.getLogger(AbstractAutoDeploymentStrategy.class); + private ProjectModelService projectModelService; + + public AbstractAutoDeploymentStrategy(ProjectModelService projectModelService) { + this.projectModelService = projectModelService; + } + /** * Gets the deployment mode this strategy handles. * @@ -111,4 +119,15 @@ public abstract class AbstractAutoDeploymentStrategy implements AutoDeploymentSt } return true; } + + protected DeploymentBuilder loadProjectManifest(DeploymentBuilder deploymentBuilder) { + if (projectModelService != null && projectModelService.hasProjectManifest()) { + try { + deploymentBuilder.setProjectManifest(projectModelService.loadProjectManifest()); + } catch (IOException e) { + LOGGER.warn("Manifest of application not found. Project release version will not be set for deployment."); + } + } + return deploymentBuilder; + } } diff --git a/activiti-spring/src/main/java/org/activiti/spring/autodeployment/DefaultAutoDeploymentStrategy.java b/activiti-spring/src/main/java/org/activiti/spring/autodeployment/DefaultAutoDeploymentStrategy.java index 6494a1c54896a33da9b71fe2bec823d21a1ef1be..43ab85de72e5c1b074705a2115fc5110ca5b9e2e 100644 --- a/activiti-spring/src/main/java/org/activiti/spring/autodeployment/DefaultAutoDeploymentStrategy.java +++ b/activiti-spring/src/main/java/org/activiti/spring/autodeployment/DefaultAutoDeploymentStrategy.java @@ -1,9 +1,9 @@ /* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -13,43 +13,48 @@ package org.activiti.spring.autodeployment; +import org.activiti.core.common.spring.project.ProjectModelService; import org.activiti.engine.RepositoryService; import org.activiti.engine.repository.DeploymentBuilder; import org.springframework.core.io.Resource; /** * Default implementation of {@link AutoDeploymentStrategy} that groups all {@link Resource}s into a single deployment. This implementation is equivalent to the previously used implementation. - * - */ public class DefaultAutoDeploymentStrategy extends AbstractAutoDeploymentStrategy { - /** - * The deployment mode this strategy handles. - */ - public static final String DEPLOYMENT_MODE = "default"; + /** + * The deployment mode this strategy handles. + */ + public static final String DEPLOYMENT_MODE = "default"; + + public DefaultAutoDeploymentStrategy(ProjectModelService projectModelService) { + super(projectModelService); + } - @Override - protected String getDeploymentMode() { - return DEPLOYMENT_MODE; - } + @Override + protected String getDeploymentMode() { + return DEPLOYMENT_MODE; + } - @Override - public void deployResources(final String deploymentNameHint, final Resource[] resources, final RepositoryService repositoryService) { + @Override + public void deployResources(final String deploymentNameHint, + final Resource[] resources, + final RepositoryService repositoryService) { - // Create a single deployment for all resources using the name hint as - // the - // literal name - final DeploymentBuilder deploymentBuilder = repositoryService.createDeployment().enableDuplicateFiltering().name(deploymentNameHint); + // Create a single deployment for all resources using the name hint as + // the + // literal name - for (final Resource resource : resources) { - final String resourceName = determineResourceName(resource); + DeploymentBuilder deploymentBuilder = repositoryService.createDeployment().enableDuplicateFiltering().name(deploymentNameHint); - deploymentBuilder.addInputStream(resourceName, - resource); - } + for (final Resource resource : resources) { + final String resourceName = determineResourceName(resource); - deploymentBuilder.deploy(); + deploymentBuilder.addInputStream(resourceName, + resource); + } - } + loadProjectManifest(deploymentBuilder).deploy(); + } } diff --git a/activiti-spring/src/main/java/org/activiti/spring/autodeployment/FailOnNoProcessAutoDeploymentStrategy.java b/activiti-spring/src/main/java/org/activiti/spring/autodeployment/FailOnNoProcessAutoDeploymentStrategy.java index ad0ec35f5ef8ee09d13cf4159b48ed51b03e702c..0d8395421378e55d4a6dd017cdcd9ebfecd55117 100644 --- a/activiti-spring/src/main/java/org/activiti/spring/autodeployment/FailOnNoProcessAutoDeploymentStrategy.java +++ b/activiti-spring/src/main/java/org/activiti/spring/autodeployment/FailOnNoProcessAutoDeploymentStrategy.java @@ -1,5 +1,8 @@ package org.activiti.spring.autodeployment; +import java.io.IOException; + +import org.activiti.core.common.spring.project.ProjectModelService; import org.activiti.engine.ActivitiException; import org.activiti.engine.RepositoryService; import org.activiti.engine.repository.DeploymentBuilder; @@ -13,6 +16,10 @@ public class FailOnNoProcessAutoDeploymentStrategy extends AbstractAutoDeploymen public static final String DEPLOYMENT_MODE = "fail-on-no-process"; + public FailOnNoProcessAutoDeploymentStrategy(ProjectModelService projectModelService) { + super(projectModelService); + } + @Override protected String getDeploymentMode() { return DEPLOYMENT_MODE; @@ -20,7 +27,7 @@ public class FailOnNoProcessAutoDeploymentStrategy extends AbstractAutoDeploymen @Override public void deployResources(String deploymentNameHint, Resource[] resources, RepositoryService repositoryService) { - final DeploymentBuilder deploymentBuilder = repositoryService.createDeployment().enableDuplicateFiltering() + DeploymentBuilder deploymentBuilder = repositoryService.createDeployment().enableDuplicateFiltering() .name(deploymentNameHint); int validProcessCount = 0; @@ -36,6 +43,8 @@ public class FailOnNoProcessAutoDeploymentStrategy extends AbstractAutoDeploymen } } + deploymentBuilder = loadProjectManifest(deploymentBuilder); + if (validProcessCount != 0) { deploymentBuilder.deploy(); } else { diff --git a/activiti-spring/src/main/java/org/activiti/spring/autodeployment/NeverFailAutoDeploymentStrategy.java b/activiti-spring/src/main/java/org/activiti/spring/autodeployment/NeverFailAutoDeploymentStrategy.java index 0b29a598ce3ffd32b0524d626432c134d80bfdd3..b21ea8a411b2ba723b3e043a1cec22e3df5bf77d 100644 --- a/activiti-spring/src/main/java/org/activiti/spring/autodeployment/NeverFailAutoDeploymentStrategy.java +++ b/activiti-spring/src/main/java/org/activiti/spring/autodeployment/NeverFailAutoDeploymentStrategy.java @@ -1,5 +1,6 @@ package org.activiti.spring.autodeployment; +import org.activiti.core.common.spring.project.ProjectModelService; import org.activiti.engine.RepositoryService; import org.activiti.engine.repository.DeploymentBuilder; import org.slf4j.Logger; @@ -12,6 +13,10 @@ public class NeverFailAutoDeploymentStrategy extends AbstractAutoDeploymentStrat public static final String DEPLOYMENT_MODE = "never-fail"; + public NeverFailAutoDeploymentStrategy(ProjectModelService projectModelService) { + super(projectModelService); + } + @Override protected String getDeploymentMode() { return DEPLOYMENT_MODE; @@ -19,7 +24,7 @@ public class NeverFailAutoDeploymentStrategy extends AbstractAutoDeploymentStrat @Override public void deployResources(String deploymentNameHint, Resource[] resources, RepositoryService repositoryService) { - final DeploymentBuilder deploymentBuilder = repositoryService.createDeployment().enableDuplicateFiltering() + DeploymentBuilder deploymentBuilder = repositoryService.createDeployment().enableDuplicateFiltering() .name(deploymentNameHint); int validProcessCount = 0; @@ -35,6 +40,8 @@ public class NeverFailAutoDeploymentStrategy extends AbstractAutoDeploymentStrat } } + deploymentBuilder = loadProjectManifest(deploymentBuilder); + if (validProcessCount != 0) { deploymentBuilder.deploy(); } diff --git a/activiti-spring/src/main/java/org/activiti/spring/autodeployment/ResourceParentFolderAutoDeploymentStrategy.java b/activiti-spring/src/main/java/org/activiti/spring/autodeployment/ResourceParentFolderAutoDeploymentStrategy.java index 31527680ca17e6a8cbc2af5d211bec381e833e73..521518db8995c26c061d74a99afcf829927bf667 100644 --- a/activiti-spring/src/main/java/org/activiti/spring/autodeployment/ResourceParentFolderAutoDeploymentStrategy.java +++ b/activiti-spring/src/main/java/org/activiti/spring/autodeployment/ResourceParentFolderAutoDeploymentStrategy.java @@ -20,8 +20,11 @@ import java.util.Map; import java.util.Map.Entry; import java.util.Set; +import org.activiti.core.common.spring.project.ProjectModelService; import org.activiti.engine.RepositoryService; import org.activiti.engine.repository.DeploymentBuilder; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.core.io.Resource; /** @@ -39,6 +42,10 @@ public class ResourceParentFolderAutoDeploymentStrategy extends AbstractAutoDepl private static final String DEPLOYMENT_NAME_PATTERN = "%s.%s"; + public ResourceParentFolderAutoDeploymentStrategy(ProjectModelService projectModelService) { + super(projectModelService); + } + @Override protected String getDeploymentMode() { return DEPLOYMENT_MODE; @@ -56,7 +63,7 @@ public class ResourceParentFolderAutoDeploymentStrategy extends AbstractAutoDepl final String deploymentName = determineDeploymentName(deploymentNameHint, group.getKey()); - final DeploymentBuilder deploymentBuilder = repositoryService.createDeployment().enableDuplicateFiltering().name(deploymentName); + DeploymentBuilder deploymentBuilder = repositoryService.createDeployment().enableDuplicateFiltering().name(deploymentName); for (final Resource resource : group.getValue()) { final String resourceName = determineResourceName(resource); @@ -64,7 +71,8 @@ public class ResourceParentFolderAutoDeploymentStrategy extends AbstractAutoDepl deploymentBuilder.addInputStream(resourceName, resource); } - deploymentBuilder.deploy(); + + loadProjectManifest(deploymentBuilder).deploy(); } } diff --git a/activiti-spring/src/main/java/org/activiti/spring/autodeployment/SingleResourceAutoDeploymentStrategy.java b/activiti-spring/src/main/java/org/activiti/spring/autodeployment/SingleResourceAutoDeploymentStrategy.java index 99045af5a5535afb43ffbdea0b2e2cf8606806d2..fd0cd4ac5a80d8cb72ec6fb5442c78c747d8a3ca 100644 --- a/activiti-spring/src/main/java/org/activiti/spring/autodeployment/SingleResourceAutoDeploymentStrategy.java +++ b/activiti-spring/src/main/java/org/activiti/spring/autodeployment/SingleResourceAutoDeploymentStrategy.java @@ -13,6 +13,8 @@ package org.activiti.spring.autodeployment; + +import org.activiti.core.common.spring.project.ProjectModelService; import org.activiti.engine.RepositoryService; import org.activiti.engine.repository.DeploymentBuilder; import org.springframework.core.io.Resource; @@ -29,7 +31,11 @@ public class SingleResourceAutoDeploymentStrategy extends AbstractAutoDeployment */ public static final String DEPLOYMENT_MODE = "single-resource"; - @Override + public SingleResourceAutoDeploymentStrategy(ProjectModelService projectModelService) { + super(projectModelService); + } + + @Override protected String getDeploymentMode() { return DEPLOYMENT_MODE; } @@ -48,7 +54,8 @@ public class SingleResourceAutoDeploymentStrategy extends AbstractAutoDeployment deploymentBuilder.addInputStream(resourceName, resource); - deploymentBuilder.deploy(); + loadProjectManifest(deploymentBuilder).deploy(); + } } diff --git a/activiti-spring/src/test/java/org/activiti/spring/test/autodeployment/AbstractAutoDeploymentStrategyTest.java b/activiti-spring/src/test/java/org/activiti/spring/test/autodeployment/AbstractAutoDeploymentStrategyTest.java index dd7c53686b10f5abad8bbd2f0caec3adc29f3f87..3e0ec007ab4ad85a6c3132088df080e585074c82 100644 --- a/activiti-spring/src/test/java/org/activiti/spring/test/autodeployment/AbstractAutoDeploymentStrategyTest.java +++ b/activiti-spring/src/test/java/org/activiti/spring/test/autodeployment/AbstractAutoDeploymentStrategyTest.java @@ -16,9 +16,11 @@ package org.activiti.spring.test.autodeployment; import java.io.File; import java.io.InputStream; +import org.activiti.core.common.spring.project.ProjectModelService; import org.activiti.engine.RepositoryService; import org.activiti.engine.repository.Deployment; import org.activiti.engine.repository.DeploymentBuilder; +import org.activiti.spring.SpringProcessEngineConfiguration; import org.junit.Before; import org.mockito.Mock; import org.springframework.core.io.ByteArrayResource; @@ -73,6 +75,9 @@ public class AbstractAutoDeploymentStrategyTest { @Mock private Deployment deploymentMock; + @Mock + protected ProjectModelService projectModelServiceMock; + protected final String deploymentNameHint = "nameHint"; protected final String resourceName1 = "resourceName1.bpmn"; @@ -111,4 +116,4 @@ public class AbstractAutoDeploymentStrategyTest { when(deploymentBuilderMock.deploy()).thenReturn(deploymentMock); } -} \ No newline at end of file +} diff --git a/activiti-spring/src/test/java/org/activiti/spring/test/autodeployment/DefaultAutoDeploymentStrategyTest.java b/activiti-spring/src/test/java/org/activiti/spring/test/autodeployment/DefaultAutoDeploymentStrategyTest.java index 2f5a3a31ba03204ed36e40bb8ceaba06db801595..a55e707d2b30677196cbc206cf8f499422733e97 100644 --- a/activiti-spring/src/test/java/org/activiti/spring/test/autodeployment/DefaultAutoDeploymentStrategyTest.java +++ b/activiti-spring/src/test/java/org/activiti/spring/test/autodeployment/DefaultAutoDeploymentStrategyTest.java @@ -38,7 +38,7 @@ public class DefaultAutoDeploymentStrategyTest extends AbstractAutoDeploymentStr @Before public void before() throws Exception { super.before(); - deploymentStrategy = new DefaultAutoDeploymentStrategy(); + deploymentStrategy = new DefaultAutoDeploymentStrategy(projectModelServiceMock); } @Test @@ -106,4 +106,4 @@ public class DefaultAutoDeploymentStrategyTest extends AbstractAutoDeploymentStr resources, repositoryServiceMock); } -} \ No newline at end of file +} diff --git a/activiti-spring/src/test/java/org/activiti/spring/test/autodeployment/FailOnNoProcessAutoDeploymentStrategyTest.java b/activiti-spring/src/test/java/org/activiti/spring/test/autodeployment/FailOnNoProcessAutoDeploymentStrategyTest.java index b07a53d651027b4dbfab306147499fe15e41f6b5..9c402c8859c7b4ab5dadc6645c489ce1e4cef1be 100644 --- a/activiti-spring/src/test/java/org/activiti/spring/test/autodeployment/FailOnNoProcessAutoDeploymentStrategyTest.java +++ b/activiti-spring/src/test/java/org/activiti/spring/test/autodeployment/FailOnNoProcessAutoDeploymentStrategyTest.java @@ -39,7 +39,7 @@ public class FailOnNoProcessAutoDeploymentStrategyTest extends SpringActivitiTes @Test public void testValidResources() { final Resource[] resources = new Resource[]{new ClassPathResource(validName1)}; - FailOnNoProcessAutoDeploymentStrategy deploymentStrategy = new FailOnNoProcessAutoDeploymentStrategy(); + FailOnNoProcessAutoDeploymentStrategy deploymentStrategy = new FailOnNoProcessAutoDeploymentStrategy(null); deploymentStrategy.deployResources(nameHint, resources, repositoryService); assertEquals(1, repositoryService.createDeploymentQuery().count()); } @@ -47,7 +47,7 @@ public class FailOnNoProcessAutoDeploymentStrategyTest extends SpringActivitiTes @Test public void testInvalidResources() { final Resource[] resources = new Resource[]{new ClassPathResource(validName1), new ClassPathResource(invalidName1), new ClassPathResource(invalidName2)}; - FailOnNoProcessAutoDeploymentStrategy deploymentStrategy = new FailOnNoProcessAutoDeploymentStrategy(); + FailOnNoProcessAutoDeploymentStrategy deploymentStrategy = new FailOnNoProcessAutoDeploymentStrategy(null); deploymentStrategy.deployResources(nameHint, resources, repositoryService); assertEquals(1, repositoryService.createDeploymentQuery().count()); } @@ -55,7 +55,7 @@ public class FailOnNoProcessAutoDeploymentStrategyTest extends SpringActivitiTes @Test public void testWithParsingErrorResources() { final Resource[] resources = new Resource[]{new ClassPathResource(validName1), new ClassPathResource(invalidName1)}; - FailOnNoProcessAutoDeploymentStrategy deploymentStrategy = new FailOnNoProcessAutoDeploymentStrategy(); + FailOnNoProcessAutoDeploymentStrategy deploymentStrategy = new FailOnNoProcessAutoDeploymentStrategy(null); deploymentStrategy.deployResources(nameHint, resources, repositoryService); assertEquals(1, repositoryService.createDeploymentQuery().count()); } @@ -63,7 +63,7 @@ public class FailOnNoProcessAutoDeploymentStrategyTest extends SpringActivitiTes @Test public void testWithValidationErrorResources() { final Resource[] resources = new Resource[]{new ClassPathResource(validName1), new ClassPathResource(invalidName2)}; - FailOnNoProcessAutoDeploymentStrategy deploymentStrategy = new FailOnNoProcessAutoDeploymentStrategy(); + FailOnNoProcessAutoDeploymentStrategy deploymentStrategy = new FailOnNoProcessAutoDeploymentStrategy(null); deploymentStrategy.deployResources(nameHint, resources, repositoryService); assertEquals(1, repositoryService.createDeploymentQuery().count()); } @@ -71,7 +71,7 @@ public class FailOnNoProcessAutoDeploymentStrategyTest extends SpringActivitiTes @Test public void testOnlyInvalidResources() { final Resource[] resources = new Resource[]{new ClassPathResource(invalidName1)}; - FailOnNoProcessAutoDeploymentStrategy deploymentStrategy = new FailOnNoProcessAutoDeploymentStrategy(); + FailOnNoProcessAutoDeploymentStrategy deploymentStrategy = new FailOnNoProcessAutoDeploymentStrategy(null); try { deploymentStrategy.deployResources(nameHint, resources, repositoryService); } catch (ActivitiException e) { @@ -81,4 +81,4 @@ public class FailOnNoProcessAutoDeploymentStrategyTest extends SpringActivitiTes } fail(); } -} \ No newline at end of file +} diff --git a/activiti-spring/src/test/java/org/activiti/spring/test/autodeployment/NeverFailAutoDeploymentStrategyTest.java b/activiti-spring/src/test/java/org/activiti/spring/test/autodeployment/NeverFailAutoDeploymentStrategyTest.java index a08117817f515d8ab7f6dc26a0c5190da47353cb..1b36b9a6790e6f3c604753ac2d59fca3b3c9e35f 100644 --- a/activiti-spring/src/test/java/org/activiti/spring/test/autodeployment/NeverFailAutoDeploymentStrategyTest.java +++ b/activiti-spring/src/test/java/org/activiti/spring/test/autodeployment/NeverFailAutoDeploymentStrategyTest.java @@ -38,7 +38,7 @@ public class NeverFailAutoDeploymentStrategyTest extends SpringActivitiTestCase @Test public void testValidResources() { final Resource[] resources = new Resource[]{new ClassPathResource(validName1)}; - NeverFailAutoDeploymentStrategy deploymentStrategy = new NeverFailAutoDeploymentStrategy(); + NeverFailAutoDeploymentStrategy deploymentStrategy = new NeverFailAutoDeploymentStrategy(null); deploymentStrategy.deployResources(nameHint, resources, repositoryService); assertEquals(1, repositoryService.createDeploymentQuery().count()); } @@ -46,7 +46,7 @@ public class NeverFailAutoDeploymentStrategyTest extends SpringActivitiTestCase @Test public void testInvalidResources() { final Resource[] resources = new Resource[]{new ClassPathResource(validName1), new ClassPathResource(invalidName1), new ClassPathResource(invalidName2)}; - NeverFailAutoDeploymentStrategy deploymentStrategy = new NeverFailAutoDeploymentStrategy(); + NeverFailAutoDeploymentStrategy deploymentStrategy = new NeverFailAutoDeploymentStrategy(null); deploymentStrategy.deployResources(nameHint, resources, repositoryService); assertEquals(1, repositoryService.createDeploymentQuery().count()); } @@ -54,7 +54,7 @@ public class NeverFailAutoDeploymentStrategyTest extends SpringActivitiTestCase @Test public void testWithParsingErrorResources() { final Resource[] resources = new Resource[]{new ClassPathResource(validName1), new ClassPathResource(invalidName1)}; - NeverFailAutoDeploymentStrategy deploymentStrategy = new NeverFailAutoDeploymentStrategy(); + NeverFailAutoDeploymentStrategy deploymentStrategy = new NeverFailAutoDeploymentStrategy(null); deploymentStrategy.deployResources(nameHint, resources, repositoryService); assertEquals(1, repositoryService.createDeploymentQuery().count()); } @@ -62,7 +62,7 @@ public class NeverFailAutoDeploymentStrategyTest extends SpringActivitiTestCase @Test public void testWithValidationErrorResources() { final Resource[] resources = new Resource[]{new ClassPathResource(validName1), new ClassPathResource(invalidName2)}; - NeverFailAutoDeploymentStrategy deploymentStrategy = new NeverFailAutoDeploymentStrategy(); + NeverFailAutoDeploymentStrategy deploymentStrategy = new NeverFailAutoDeploymentStrategy(null); deploymentStrategy.deployResources(nameHint, resources, repositoryService); assertEquals(1, repositoryService.createDeploymentQuery().count()); } @@ -70,8 +70,8 @@ public class NeverFailAutoDeploymentStrategyTest extends SpringActivitiTestCase @Test public void testOnlyInvalidResources() { final Resource[] resources = new Resource[]{new ClassPathResource(invalidName1)}; - NeverFailAutoDeploymentStrategy deploymentStrategy = new NeverFailAutoDeploymentStrategy(); + NeverFailAutoDeploymentStrategy deploymentStrategy = new NeverFailAutoDeploymentStrategy(null); deploymentStrategy.deployResources(nameHint, resources, repositoryService); assertEquals(0, repositoryService.createDeploymentQuery().count()); } -} \ No newline at end of file +} diff --git a/activiti-spring/src/test/java/org/activiti/spring/test/autodeployment/ResourceParentFolderAutoDeploymentStrategyTest.java b/activiti-spring/src/test/java/org/activiti/spring/test/autodeployment/ResourceParentFolderAutoDeploymentStrategyTest.java index 53cd90834cd5238f127dc96a913c65e850115016..2eea0131a3b727d7c2c542f03ec0858d70ace7ae 100644 --- a/activiti-spring/src/test/java/org/activiti/spring/test/autodeployment/ResourceParentFolderAutoDeploymentStrategyTest.java +++ b/activiti-spring/src/test/java/org/activiti/spring/test/autodeployment/ResourceParentFolderAutoDeploymentStrategyTest.java @@ -51,7 +51,7 @@ public class ResourceParentFolderAutoDeploymentStrategyTest extends AbstractAuto @Before public void before() throws Exception { super.before(); - deploymentStrategy = new ResourceParentFolderAutoDeploymentStrategy(); + deploymentStrategy = new ResourceParentFolderAutoDeploymentStrategy(projectModelServiceMock); assertNotNull(deploymentStrategy); when(parentFile1Mock.getName()).thenReturn(parentFilename1); @@ -197,4 +197,4 @@ public class ResourceParentFolderAutoDeploymentStrategyTest extends AbstractAuto verify(deploymentBuilderMock).deploy(); } -} \ No newline at end of file +} diff --git a/activiti-spring/src/test/java/org/activiti/spring/test/autodeployment/SingleResourceAutoDeploymentStrategyTest.java b/activiti-spring/src/test/java/org/activiti/spring/test/autodeployment/SingleResourceAutoDeploymentStrategyTest.java index 0ef1e7f57240b90519aeff16b0ed1f6e995f01f9..21c4cf42ca845aa88d7ecbaf103c6d43e0926e75 100644 --- a/activiti-spring/src/test/java/org/activiti/spring/test/autodeployment/SingleResourceAutoDeploymentStrategyTest.java +++ b/activiti-spring/src/test/java/org/activiti/spring/test/autodeployment/SingleResourceAutoDeploymentStrategyTest.java @@ -37,7 +37,7 @@ public class SingleResourceAutoDeploymentStrategyTest extends AbstractAutoDeploy @Before public void before() throws Exception { super.before(); - deploymentStrategy = new SingleResourceAutoDeploymentStrategy(); + deploymentStrategy = new SingleResourceAutoDeploymentStrategy(projectModelServiceMock); assertNotNull(deploymentStrategy); } @@ -110,4 +110,4 @@ public class SingleResourceAutoDeploymentStrategyTest extends AbstractAutoDeploy never()).deploy(); } -} \ No newline at end of file +}