use of org.camunda.bpm.engine.impl.persistence.entity.DeploymentEntity in project camunda-bpm-platform by camunda.
the class ResourceDefinitionCache method resolveDefinition.
public T resolveDefinition(T definition) {
String definitionId = definition.getId();
String deploymentId = definition.getDeploymentId();
T cachedDefinition = cache.get(definitionId);
if (cachedDefinition == null) {
synchronized (this) {
cachedDefinition = cache.get(definitionId);
if (cachedDefinition == null) {
DeploymentEntity deployment = Context.getCommandContext().getDeploymentManager().findDeploymentById(deploymentId);
deployment.setNew(false);
cacheDeployer.deployOnlyGivenResourcesOfDeployment(deployment, definition.getResourceName(), definition.getDiagramResourceName());
cachedDefinition = cache.get(definitionId);
}
}
checkInvalidDefinitionWasCached(deploymentId, definitionId, cachedDefinition);
}
if (cachedDefinition != null) {
cachedDefinition.updateModifiableFieldsFromEntity(definition);
}
return cachedDefinition;
}
use of org.camunda.bpm.engine.impl.persistence.entity.DeploymentEntity in project camunda-bpm-platform by camunda.
the class DeployCmd method doExecute.
protected DeploymentWithDefinitions doExecute(final CommandContext commandContext) {
DeploymentManager deploymentManager = commandContext.getDeploymentManager();
Set<String> deploymentIds = getAllDeploymentIds(deploymentBuilder);
if (!deploymentIds.isEmpty()) {
String[] deploymentIdArray = deploymentIds.toArray(new String[deploymentIds.size()]);
List<DeploymentEntity> deployments = deploymentManager.findDeploymentsByIds(deploymentIdArray);
ensureDeploymentsWithIdsExists(deploymentIds, deployments);
}
checkCreateAndReadDeployments(commandContext, deploymentIds);
// set deployment name if it should retrieved from an existing deployment
String nameFromDeployment = deploymentBuilder.getNameFromDeployment();
setDeploymentName(nameFromDeployment, deploymentBuilder, commandContext);
// get resources to re-deploy
List<ResourceEntity> resources = getResources(deploymentBuilder, commandContext);
// .. and add them the builder
addResources(resources, deploymentBuilder);
Collection<String> resourceNames = deploymentBuilder.getResourceNames();
if (resourceNames == null || resourceNames.isEmpty()) {
throw new NotValidException("No deployment resources contained to deploy.");
}
// perform deployment
DeploymentWithDefinitions deployment = commandContext.runWithoutAuthorization(new Callable<DeploymentWithDefinitions>() {
@Override
public DeploymentWithDefinitions call() throws Exception {
acquireExclusiveLock(commandContext);
DeploymentEntity deployment = initDeployment();
Map<String, ResourceEntity> resourcesToDeploy = resolveResourcesToDeploy(commandContext, deployment);
Map<String, ResourceEntity> resourcesToIgnore = new HashMap<String, ResourceEntity>(deployment.getResources());
resourcesToIgnore.keySet().removeAll(resourcesToDeploy.keySet());
if (!resourcesToDeploy.isEmpty()) {
LOG.debugCreatingNewDeployment();
deployment.setResources(resourcesToDeploy);
deploy(deployment);
} else {
LOG.usingExistingDeployment();
deployment = getExistingDeployment(commandContext, deployment.getName());
}
scheduleProcessDefinitionActivation(commandContext, deployment);
if (deploymentBuilder instanceof ProcessApplicationDeploymentBuilder) {
// for process application deployments, job executor registration is managed by
// process application manager
Set<String> processesToRegisterFor = retrieveProcessKeysFromResources(resourcesToIgnore);
ProcessApplicationRegistration registration = registerProcessApplication(commandContext, deployment, processesToRegisterFor);
return new ProcessApplicationDeploymentImpl(deployment, registration);
} else {
registerWithJobExecutor(commandContext, deployment);
}
return deployment;
}
});
createUserOperationLog(deploymentBuilder, deployment, commandContext);
return deployment;
}
use of org.camunda.bpm.engine.impl.persistence.entity.DeploymentEntity in project camunda-bpm-platform by camunda.
the class DeployCmd method ensureDeploymentsWithIdsExists.
protected void ensureDeploymentsWithIdsExists(Set<String> expected, List<DeploymentEntity> actual) {
Map<String, DeploymentEntity> deploymentMap = new HashMap<String, DeploymentEntity>();
for (DeploymentEntity deployment : actual) {
deploymentMap.put(deployment.getId(), deployment);
}
List<String> missingDeployments = getMissingElements(expected, deploymentMap);
if (!missingDeployments.isEmpty()) {
StringBuilder builder = new StringBuilder();
builder.append("The following deployments are not found by id: ");
boolean first = true;
for (String missingDeployment : missingDeployments) {
if (!first) {
builder.append(", ");
} else {
first = false;
}
builder.append(missingDeployment);
}
throw new NotFoundException(builder.toString());
}
}
use of org.camunda.bpm.engine.impl.persistence.entity.DeploymentEntity in project camunda-bpm-platform by camunda.
the class CaseHandlerTest method setUp.
@Before
public void setUp() {
context = new CmmnHandlerContext();
DeploymentEntity deployment = new DeploymentEntity();
deployment.setId("aDeploymentId");
context.setDeployment(deployment);
context.setModel(modelInstance);
}
use of org.camunda.bpm.engine.impl.persistence.entity.DeploymentEntity in project camunda-bpm-platform by camunda.
the class CmmnTransformerTest method setup.
@Before
public void setup() {
CmmnTransformer transformerWrapper = new CmmnTransformer(null, new DefaultCmmnElementHandlerRegistry(), null);
transformer = new CmmnTransform(transformerWrapper);
deployment = new DeploymentEntity();
deployment.setId("aDeploymentId");
transformer.setDeployment(deployment);
modelInstance = Cmmn.createEmptyModel();
definitions = modelInstance.newInstance(Definitions.class);
definitions.setTargetNamespace("http://camunda.org/examples");
modelInstance.setDefinitions(definitions);
caseDefinition = createElement(definitions, "aCaseDefinition", Case.class);
casePlanModel = createElement(caseDefinition, "aCasePlanModel", CasePlanModel.class);
}
Aggregations