Search in sources :

Example 1 with DeleteDeploymentFailListener

use of org.camunda.bpm.engine.impl.persistence.deploy.DeleteDeploymentFailListener in project camunda-bpm-platform by camunda.

the class DeleteDeploymentCmd method execute.

public Void execute(final CommandContext commandContext) {
    ensureNotNull("deploymentId", deploymentId);
    for (CommandChecker checker : commandContext.getProcessEngineConfiguration().getCommandCheckers()) {
        checker.checkDeleteDeployment(deploymentId);
    }
    UserOperationLogManager logManager = commandContext.getOperationLogManager();
    List<PropertyChange> propertyChanges = Arrays.asList(new PropertyChange("cascade", null, cascade));
    logManager.logDeploymentOperation(UserOperationLogEntry.OPERATION_TYPE_DELETE, deploymentId, propertyChanges);
    commandContext.getDeploymentManager().deleteDeployment(deploymentId, cascade, skipCustomListeners, skipIoMappings);
    ProcessApplicationReference processApplicationReference = Context.getProcessEngineConfiguration().getProcessApplicationManager().getProcessApplicationForDeployment(deploymentId);
    DeleteDeploymentFailListener listener = new DeleteDeploymentFailListener(deploymentId, processApplicationReference, Context.getProcessEngineConfiguration().getCommandExecutorTxRequiresNew());
    try {
        commandContext.runWithoutAuthorization(new Callable<Void>() {

            public Void call() throws Exception {
                new UnregisterProcessApplicationCmd(deploymentId, false).execute(commandContext);
                new UnregisterDeploymentCmd(Collections.singleton(deploymentId)).execute(commandContext);
                return null;
            }
        });
    } finally {
        try {
            commandContext.getTransactionContext().addTransactionListener(TransactionState.ROLLED_BACK, listener);
        } catch (Exception e) {
            TX_LOG.debugTransactionOperation("Could not register transaction synchronization. Probably the TX has already been rolled back by application code.");
            listener.execute(commandContext);
        }
    }
    return null;
}
Also used : UserOperationLogManager(org.camunda.bpm.engine.impl.persistence.entity.UserOperationLogManager) ProcessApplicationReference(org.camunda.bpm.application.ProcessApplicationReference) PropertyChange(org.camunda.bpm.engine.impl.persistence.entity.PropertyChange) DeleteDeploymentFailListener(org.camunda.bpm.engine.impl.persistence.deploy.DeleteDeploymentFailListener) CommandChecker(org.camunda.bpm.engine.impl.cfg.CommandChecker)

Aggregations

ProcessApplicationReference (org.camunda.bpm.application.ProcessApplicationReference)1 CommandChecker (org.camunda.bpm.engine.impl.cfg.CommandChecker)1 DeleteDeploymentFailListener (org.camunda.bpm.engine.impl.persistence.deploy.DeleteDeploymentFailListener)1 PropertyChange (org.camunda.bpm.engine.impl.persistence.entity.PropertyChange)1 UserOperationLogManager (org.camunda.bpm.engine.impl.persistence.entity.UserOperationLogManager)1