Class 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 Detail

      • ManagementServiceImpl

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

      • 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
      • 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
      • 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.
      • 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
      • 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
      • 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.impl.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
      • 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