Class ManagementServiceImpl

java.lang.Object
org.flowable.common.engine.impl.service.CommonServiceImpl<C>
org.flowable.common.engine.impl.service.CommonEngineServiceImpl<org.flowable.engine.impl.cfg.ProcessEngineConfigurationImpl>
org.flowable.engine.impl.ManagementServiceImpl
All Implemented Interfaces:
ManagementService

public class ManagementServiceImpl extends org.flowable.common.engine.impl.service.CommonEngineServiceImpl<org.flowable.engine.impl.cfg.ProcessEngineConfigurationImpl> implements ManagementService
Author:
Tom Baeyens, Joram Barrez, Falko Menge, Saeid Mizaei
  • Constructor Details

    • ManagementServiceImpl

      public ManagementServiceImpl(org.flowable.engine.impl.cfg.ProcessEngineConfigurationImpl processEngineConfiguration)
  • Method Details

    • getTableCount

      public Map<String,Long> getTableCount()
      Description copied from interface: ManagementService
      Get the mapping containing {table name, row count} entries of the database schema.
      Specified by:
      getTableCount in interface ManagementService
    • getTableName

      public String getTableName(Class<?> entityClass)
      Description copied from interface: ManagementService
      Gets the table name (including any configured prefix) for an entity like Task, Execution or the like.
      Specified by:
      getTableName in interface ManagementService
    • getTableName

      public String getTableName(Class<?> entityClass, boolean includePrefix)
      Description copied from interface: ManagementService
      Gets the table name for an entity like Task, Execution or the like.
      Specified by:
      getTableName in interface ManagementService
    • getTableMetaData

      public org.flowable.common.engine.api.management.TableMetaData getTableMetaData(String tableName)
      Description copied from interface: ManagementService
      Gets the metadata (column names, column types, etc.) of a certain table. Returns null when no table exists with the given name.
      Specified by:
      getTableMetaData in interface ManagementService
    • executeJob

      public void executeJob(String jobId)
      Description copied from interface: ManagementService
      Forced synchronous execution of a job (eg. for administration or testing). The job will be executed, even if the process definition and/or the process instance is in suspended state.
      Specified by:
      executeJob in interface ManagementService
      Parameters:
      jobId - id of the job to execute, cannot be null.
    • executeHistoryJob

      public void executeHistoryJob(String historyJobId)
      Description copied from interface: ManagementService
      Forced synchronous execution of a history job (eg. for administration or testing).
      Specified by:
      executeHistoryJob in interface ManagementService
      Parameters:
      historyJobId - id of the history job to execute, cannot be null.
    • getHistoryJobHistoryJson

      public String getHistoryJobHistoryJson(String historyJobId)
      Description copied from interface: ManagementService
      Get the advanced configuration (storing the history json data) of a HistoryJob.
      Specified by:
      getHistoryJobHistoryJson in interface ManagementService
      Parameters:
      historyJobId - id of the history job to execute, cannot be null.
    • moveTimerToExecutableJob

      public org.flowable.job.api.Job moveTimerToExecutableJob(String jobId)
      Description copied from interface: ManagementService
      Moves a timer job to the executable job table (eg. for administration or testing). The timer job will be moved, even if the process definition and/or the process instance is in suspended state.
      Specified by:
      moveTimerToExecutableJob in interface ManagementService
      Parameters:
      jobId - id of the timer job to move, cannot be null.
    • moveJobToDeadLetterJob

      public org.flowable.job.api.Job moveJobToDeadLetterJob(String jobId)
      Description copied from interface: ManagementService
      Moves a job to the dead letter job table (eg. for administration or testing). The job will be moved, even if the process definition and/or the process instance has retries left.
      Specified by:
      moveJobToDeadLetterJob in interface ManagementService
      Parameters:
      jobId - id of the job to move, cannot be null.
    • moveDeadLetterJobToExecutableJob

      public org.flowable.job.api.Job moveDeadLetterJobToExecutableJob(String jobId, int retries)
      Description copied from interface: ManagementService
      Moves a job that is in the dead letter job table back to be an executable job, and resetting the retries (as the retries was 0 when it was put into the dead letter job table).
      Specified by:
      moveDeadLetterJobToExecutableJob in interface ManagementService
      Parameters:
      jobId - id of the job to move, cannot be null.
      retries - the number of retries (value greater than 0) which will be set on the job.
    • moveDeadLetterJobToHistoryJob

      public org.flowable.job.api.HistoryJob moveDeadLetterJobToHistoryJob(String jobId, int retries)
      Description copied from interface: ManagementService
      Moves a job that is in the dead letter job table back to be a history job, and resetting the retries (as the retries was 0 when it was put into the dead letter job table).
      Specified by:
      moveDeadLetterJobToHistoryJob in interface ManagementService
      Parameters:
      jobId - id of the job to move, cannot be null.
      retries - the number of retries (value greater than 0) which will be set on the job.
    • bulkMoveDeadLetterJobs

      public void bulkMoveDeadLetterJobs(Collection<String> jobIds, int retries)
      Description copied from interface: ManagementService
      Moves a job that is in the dead letter job table back to be a history job, and resetting the retries (as the retries was 0 when it was put into the dead letter job table).
      Specified by:
      bulkMoveDeadLetterJobs in interface ManagementService
      Parameters:
      jobIds - ids of the jobs to move, cannot be null.
      retries - the number of retries (value greater than 0) which will be set on the jobs.
    • bulkMoveDeadLetterJobsToHistoryJobs

      public void bulkMoveDeadLetterJobsToHistoryJobs(Collection<String> jobIds, int retries)
      Description copied from interface: ManagementService
      Moves a job that is in the dead letter job table back to be a history job, and resetting the retries (as the retries was 0 when it was put into the dead letter job table).
      Specified by:
      bulkMoveDeadLetterJobsToHistoryJobs in interface ManagementService
      Parameters:
      jobIds - ids of the jobs to move, cannot be null.
      retries - the number of retries (value greater than 0) which will be set on the jobs.
    • moveSuspendedJobToExecutableJob

      public org.flowable.job.api.Job moveSuspendedJobToExecutableJob(String jobId)
      Description copied from interface: ManagementService
      Moves a suspended job from the suspended letter job table back to be an executable job. The retries are untouched.
      Specified by:
      moveSuspendedJobToExecutableJob in interface ManagementService
      Parameters:
      jobId - id of the job to move, cannot be null.
    • deleteJob

      public void deleteJob(String jobId)
      Description copied from interface: ManagementService
      Delete the job with the provided id.
      Specified by:
      deleteJob in interface ManagementService
      Parameters:
      jobId - id of the job to delete, cannot be null.
    • deleteTimerJob

      public void deleteTimerJob(String jobId)
      Description copied from interface: ManagementService
      Delete the timer job with the provided id.
      Specified by:
      deleteTimerJob in interface ManagementService
      Parameters:
      jobId - id of the timer job to delete, cannot be null.
    • deleteSuspendedJob

      public void deleteSuspendedJob(String jobId)
      Description copied from interface: ManagementService
      Delete the suspended job with the provided id.
      Specified by:
      deleteSuspendedJob in interface ManagementService
      Parameters:
      jobId - id of the suspended job to delete, cannot be null.
    • deleteDeadLetterJob

      public void deleteDeadLetterJob(String jobId)
      Description copied from interface: ManagementService
      Delete the dead letter job with the provided id.
      Specified by:
      deleteDeadLetterJob in interface ManagementService
      Parameters:
      jobId - id of the dead letter job to delete, cannot be null.
    • deleteExternalWorkerJob

      public void deleteExternalWorkerJob(String jobId)
      Description copied from interface: ManagementService
      Delete the external worker job with the provided id.
      Specified by:
      deleteExternalWorkerJob in interface ManagementService
      Parameters:
      jobId - id of the external worker job to delete, cannot be null.
    • deleteHistoryJob

      public void deleteHistoryJob(String jobId)
      Description copied from interface: ManagementService
      Delete the history job with the provided id.
      Specified by:
      deleteHistoryJob in interface ManagementService
      Parameters:
      jobId - id of the history job to delete, cannot be null.
    • setJobRetries

      public void setJobRetries(String jobId, int retries)
      Description copied from interface: ManagementService
      Sets the number of retries that a job has left. Whenever the JobExecutor fails to execute a job, this value is decremented. When it hits zero, the job is supposed to be dead and not retried again. In that case, this method can be used to increase the number of retries.
      Specified by:
      setJobRetries in interface ManagementService
      Parameters:
      jobId - id of the job to modify, cannot be null.
      retries - number of retries.
    • setTimerJobRetries

      public void setTimerJobRetries(String jobId, int retries)
      Description copied from interface: ManagementService
      Sets the number of retries that a timer job has left. Whenever the JobExecutor fails to execute a timer job, this value is decremented. When it hits zero, the job is supposed to be dead and not retried again. In that case, this method can be used to increase the number of retries.
      Specified by:
      setTimerJobRetries in interface ManagementService
      Parameters:
      jobId - id of the timer job to modify, cannot be null.
      retries - number of retries.
    • rescheduleTimeDateJob

      public org.flowable.job.api.Job rescheduleTimeDateJob(String jobId, String timeDate)
      Description copied from interface: ManagementService
      Reschedule a timer job with a time date.
      Specified by:
      rescheduleTimeDateJob in interface ManagementService
      Parameters:
      jobId - id of the timer job to reschedule, cannot be null.
      timeDate - A fixed date in ISO 8601 format, when job will be fired
    • rescheduleTimeDurationJob

      public org.flowable.job.api.Job rescheduleTimeDurationJob(String jobId, String timeDuration)
      Description copied from interface: ManagementService
      Reschedule a timer job with a time duration.
      Specified by:
      rescheduleTimeDurationJob in interface ManagementService
      Parameters:
      jobId - id of the timer job to reschedule, cannot be null.
      timeDuration - How long the timer should run before it is fired in ISO 8601 format. For example, PT10D means the timer will run for 10 days before it fires.
    • rescheduleTimeCycleJob

      public org.flowable.job.api.Job rescheduleTimeCycleJob(String jobId, String timeCycle)
      Description copied from interface: ManagementService
      Reschedule a timer job with a time cycle.
      Specified by:
      rescheduleTimeCycleJob in interface ManagementService
      Parameters:
      jobId - id of the timer job to reschedule, cannot be null.
      timeCycle - Specifies a repeating interval at which the timer will fire in ISO 8601 format. For example R3/PT10H means the timer will fire three timers in intervals of 10 hours.
    • rescheduleTimerJob

      public org.flowable.job.api.Job rescheduleTimerJob(String jobId, String timeDate, String timeDuration, String timeCycle, String endDate, String calendarName)
      Description copied from interface: ManagementService
      Reschedule a timer job.
      Specified by:
      rescheduleTimerJob in interface ManagementService
      Parameters:
      jobId - id of the timer job to reschedule, cannot be null.
      timeDate - A fixed date in ISO 8601 format, when job will be fired
      timeDuration - How long the timer should run before it is fired in ISO 8601 format. For example, PT10D means the timer will run for 10 days before it fires.
      timeCycle - Specifies a repeating interval at which the timer will fire in ISO 8601 format. For example R3/PT10H means the timer will fire three timers in intervals of 10 hours.
      endDate - The date at which the application will stop creating additional jobs. The value should be provided in ISO8601 format. For example "2015-02-25T16:42:11+00:00".
      calendarName - The name of a business calendar defined in the process engine configuration. If null the default business calendars is used.
    • createTablePageQuery

      public org.flowable.common.engine.api.management.TablePageQuery createTablePageQuery()
      Description copied from interface: ManagementService
      Creates a TablePageQuery that can be used to fetch TablePage containing specific sections of table row data.
      Specified by:
      createTablePageQuery in interface ManagementService
    • createJobQuery

      public org.flowable.job.api.JobQuery createJobQuery()
      Description copied from interface: ManagementService
      Returns a new JobQuery implementation, that can be used to dynamically query the jobs.
      Specified by:
      createJobQuery in interface ManagementService
    • createExternalWorkerJobQuery

      public org.flowable.job.api.ExternalWorkerJobQuery createExternalWorkerJobQuery()
      Description copied from interface: ManagementService
      Returns a new ExternalWorkerJobQuery implementation, that can be used to dynamically query the external worker jobs.
      Specified by:
      createExternalWorkerJobQuery in interface ManagementService
    • createTimerJobQuery

      public org.flowable.job.api.TimerJobQuery createTimerJobQuery()
      Description copied from interface: ManagementService
      Returns a new TimerJobQuery implementation, that can be used to dynamically query the timer jobs.
      Specified by:
      createTimerJobQuery in interface ManagementService
    • createSuspendedJobQuery

      public org.flowable.job.api.SuspendedJobQuery createSuspendedJobQuery()
      Description copied from interface: ManagementService
      Returns a new SuspendedJobQuery implementation, that can be used to dynamically query the suspended jobs.
      Specified by:
      createSuspendedJobQuery in interface ManagementService
    • createDeadLetterJobQuery

      public org.flowable.job.api.DeadLetterJobQuery createDeadLetterJobQuery()
      Description copied from interface: ManagementService
      Returns a new DeadLetterJobQuery implementation, that can be used to dynamically query the dead letter jobs.
      Specified by:
      createDeadLetterJobQuery in interface ManagementService
    • createHistoryJobQuery

      public org.flowable.job.api.HistoryJobQuery createHistoryJobQuery()
      Description copied from interface: ManagementService
      Returns a new HistoryJobQuery implementation, that can be used to dynamically query the history jobs.
      Specified by:
      createHistoryJobQuery in interface ManagementService
    • findJobByCorrelationId

      public org.flowable.job.api.Job findJobByCorrelationId(String jobCorrelationId)
      Description copied from interface: ManagementService
      Find a job by a correlation id.
      Specified by:
      findJobByCorrelationId in interface ManagementService
    • getJobExceptionStacktrace

      public String getJobExceptionStacktrace(String jobId)
      Description copied from interface: ManagementService
      Returns the full stacktrace of the exception that occurs when the job with the given id was last executed. Returns null when the job has no exception stacktrace.
      Specified by:
      getJobExceptionStacktrace in interface ManagementService
      Parameters:
      jobId - id of the job, cannot be null.
    • getTimerJobExceptionStacktrace

      public String getTimerJobExceptionStacktrace(String jobId)
      Description copied from interface: ManagementService
      Returns the full stacktrace of the exception that occurs when the TimerJobEntity with the given id was last executed. Returns null when the job has no exception stacktrace.
      Specified by:
      getTimerJobExceptionStacktrace in interface ManagementService
      Parameters:
      jobId - id of the job, cannot be null.
    • getSuspendedJobExceptionStacktrace

      public String getSuspendedJobExceptionStacktrace(String jobId)
      Description copied from interface: ManagementService
      Returns the full stacktrace of the exception that occurs when the SuspendedJobEntity with the given id was last executed. Returns null when the job has no exception stacktrace.
      Specified by:
      getSuspendedJobExceptionStacktrace in interface ManagementService
      Parameters:
      jobId - id of the job, cannot be null.
    • getDeadLetterJobExceptionStacktrace

      public String getDeadLetterJobExceptionStacktrace(String jobId)
      Description copied from interface: ManagementService
      Returns the full stacktrace of the exception that occurs when the DeadLetterJobEntity with the given id was last executed. Returns null when the job has no exception stacktrace.
      Specified by:
      getDeadLetterJobExceptionStacktrace in interface ManagementService
      Parameters:
      jobId - id of the job, cannot be null.
    • getExternalWorkerJobErrorDetails

      public String getExternalWorkerJobErrorDetails(String jobId)
      Description copied from interface: ManagementService
      Returns the full error details that were passed to the ExternalWorkerJobEntity when the job was last failed. Returns null when the job has no error details.
      Specified by:
      getExternalWorkerJobErrorDetails in interface ManagementService
      Parameters:
      jobId - id of the job, cannot be null.
    • handleHistoryCleanupTimerJob

      public void handleHistoryCleanupTimerJob()
      Specified by:
      handleHistoryCleanupTimerJob in interface ManagementService
    • getAllBatches

      public List<org.flowable.batch.api.Batch> getAllBatches()
      Specified by:
      getAllBatches in interface ManagementService
    • findBatchesBySearchKey

      public List<org.flowable.batch.api.Batch> findBatchesBySearchKey(String searchKey)
      Specified by:
      findBatchesBySearchKey in interface ManagementService
    • getBatchDocument

      public String getBatchDocument(String batchId)
      Specified by:
      getBatchDocument in interface ManagementService
    • getBatchPart

      public org.flowable.batch.api.BatchPart getBatchPart(String batchPartId)
      Specified by:
      getBatchPart in interface ManagementService
    • findBatchPartsByBatchId

      public List<org.flowable.batch.api.BatchPart> findBatchPartsByBatchId(String batchId)
      Specified by:
      findBatchPartsByBatchId in interface ManagementService
    • findBatchPartsByBatchIdAndStatus

      public List<org.flowable.batch.api.BatchPart> findBatchPartsByBatchIdAndStatus(String batchId, String status)
      Specified by:
      findBatchPartsByBatchIdAndStatus in interface ManagementService
    • getBatchPartDocument

      public String getBatchPartDocument(String batchPartId)
      Specified by:
      getBatchPartDocument in interface ManagementService
    • createBatchQuery

      public org.flowable.batch.api.BatchQuery createBatchQuery()
      Description copied from interface: ManagementService
      Returns a new BatchQuery implementation, that can be used to dynamically query the batches.
      Specified by:
      createBatchQuery in interface ManagementService
    • createBatchBuilder

      public org.flowable.batch.api.BatchBuilder createBatchBuilder()
      Specified by:
      createBatchBuilder in interface ManagementService
    • createBatchPartQuery

      public org.flowable.batch.api.BatchPartQuery createBatchPartQuery()
      Description copied from interface: ManagementService
      Returns a new BatchPartQuery implementation, that can be used to dynamically query the batch parts.
      Specified by:
      createBatchPartQuery in interface ManagementService
    • createBatchPartBuilder

      public org.flowable.batch.api.BatchPartBuilder createBatchPartBuilder(org.flowable.batch.api.Batch batch)
      Specified by:
      createBatchPartBuilder in interface ManagementService
    • deleteBatch

      public void deleteBatch(String batchId)
      Specified by:
      deleteBatch in interface ManagementService
    • getProperties

      public Map<String,String> getProperties()
      Description copied from interface: ManagementService
      get the list of properties.
      Specified by:
      getProperties in interface ManagementService
    • databaseSchemaUpgrade

      public String databaseSchemaUpgrade(Connection connection, String catalog, String schema)
      Description copied from interface: ManagementService
      programmatic schema update on a given connection returning feedback about what happened
      Specified by:
      databaseSchemaUpgrade in interface ManagementService
    • executeCommand

      public <T> T executeCommand(org.flowable.common.engine.impl.interceptor.Command<T> command)
      Description copied from interface: ManagementService
      Executes a given command with the default CommandConfig.
      Specified by:
      executeCommand in interface ManagementService
      Parameters:
      command - the command, cannot be null.
      Returns:
      the result of command execution
    • executeCommand

      public <T> T executeCommand(org.flowable.common.engine.impl.interceptor.CommandConfig config, org.flowable.common.engine.impl.interceptor.Command<T> command)
      Description copied from interface: ManagementService
      Executes a given command with the specified CommandConfig.
      Specified by:
      executeCommand in interface ManagementService
      Parameters:
      config - the command execution configuration, cannot be null.
      command - the command, cannot be null.
      Returns:
      the result of command execution
    • getLockManager

      public org.flowable.common.engine.api.lock.LockManager getLockManager(String lockName)
      Description copied from interface: ManagementService
      Acquire a lock manager for the requested lock. This is a stateless call, this means that every time a lock manager is requested a new one would be created. Make sure that you release the lock once you are done.
      Specified by:
      getLockManager in interface ManagementService
      Parameters:
      lockName - the name of the lock that is being requested
      Returns:
      the lock manager for the given lock
    • executeCustomSql

      public <MapperType, ResultType> ResultType executeCustomSql(org.flowable.common.engine.impl.cmd.CustomSqlExecution<MapperType,ResultType> customSqlExecution)
      Description copied from interface: ManagementService
      Executes the sql contained in the CustomSqlExecution parameter.
      Specified by:
      executeCustomSql in interface ManagementService
    • getEventLogEntries

      public List<EventLogEntry> getEventLogEntries(Long startLogNr, Long pageSize)
      Description copied from interface: ManagementService
      Returns a list of event log entries, describing everything the engine has processed. Note that the event logging must specifically must be enabled in the process engine configuration. Passing null as arguments will effectively fetch ALL event log entries. Be careful, as this list might be huge!
      Specified by:
      getEventLogEntries in interface ManagementService
    • getEventLogEntriesByProcessInstanceId

      public List<EventLogEntry> getEventLogEntriesByProcessInstanceId(String processInstanceId)
      Description copied from interface: ManagementService
      Returns a list of event log entries for a specific process instance id. Note that the event logging must specifically must be enabled in the process engine configuration. Passing null as arguments will effectively fetch ALL event log entries. Be careful, as this list might be huge!
      Specified by:
      getEventLogEntriesByProcessInstanceId in interface ManagementService
    • deleteEventLogEntry

      public void deleteEventLogEntry(long logNr)
      Description copied from interface: ManagementService
      Delete a EventLogEntry. Typically only used in testing, as deleting log entries defeats the whole purpose of keeping a log.
      Specified by:
      deleteEventLogEntry in interface ManagementService
    • createExternalWorkerJobAcquireBuilder

      public org.flowable.job.api.ExternalWorkerJobAcquireBuilder createExternalWorkerJobAcquireBuilder()
      Description copied from interface: ManagementService
      Create an ExternalWorkerJobAcquireBuilder that can be used to acquire jobs for an external worker.
      Specified by:
      createExternalWorkerJobAcquireBuilder in interface ManagementService
    • createExternalWorkerJobFailureBuilder

      public org.flowable.job.api.ExternalWorkerJobFailureBuilder createExternalWorkerJobFailureBuilder(String externalJobId, String workerId)
      Description copied from interface: ManagementService
      Create an ExternalWorkerJobFailureBuilder that can be used to fail an external worker job.
      Specified by:
      createExternalWorkerJobFailureBuilder in interface ManagementService
      Parameters:
      externalJobId - the id of the external worker job
      workerId - the id of the worker doing the action
    • createExternalWorkerCompletionBuilder

      public ExternalWorkerCompletionBuilder createExternalWorkerCompletionBuilder(String externalJobId, String workerId)
      Description copied from interface: ManagementService
      Create an ExternalWorkerCompletionBuilder that can be used to transition the status of the external worker job.
      Specified by:
      createExternalWorkerCompletionBuilder in interface ManagementService
    • unacquireExternalWorkerJob

      public void unacquireExternalWorkerJob(String jobId, String workerId)
      Description copied from interface: ManagementService
      Unaquire a locked external worker job.
      Specified by:
      unacquireExternalWorkerJob in interface ManagementService
    • unacquireAllExternalWorkerJobsForWorker

      public void unacquireAllExternalWorkerJobsForWorker(String workerId)
      Description copied from interface: ManagementService
      Unaquire all locked external worker jobs for worker.
      Specified by:
      unacquireAllExternalWorkerJobsForWorker in interface ManagementService
    • unacquireAllExternalWorkerJobsForWorker

      public void unacquireAllExternalWorkerJobsForWorker(String workerId, String tenantId)
      Description copied from interface: ManagementService
      Unaquire all locked external worker jobs for worker and tenant.
      Specified by:
      unacquireAllExternalWorkerJobsForWorker in interface ManagementService
    • createChangeTenantIdBuilder

      public org.flowable.common.engine.api.tenant.ChangeTenantIdBuilder createChangeTenantIdBuilder(String fromTenantId, String toTenantId)
      Description copied from interface: ManagementService
      Create a ChangeTenantIdBuilder that can be used to change the tenant id of the process instances and all the related instances. See BpmnChangeTenantIdEntityTypes for related instances.

      You must provide the source tenant id and the destination tenant id. All instances from the source tenant id in the BPMN scope will be changed to the target tenant id.

      Specified by:
      createChangeTenantIdBuilder in interface ManagementService