All Classes and Interfaces

Class
Description
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Abstract class to allow to search server object and convert them to client object
 
 
 
The base class for our Mapped Diagnostic Contexts (MDC).
 
 
 
Wraps a Bonita job.
 
 
 
 
 
 
 
Mapping for a document
Abstract class to allow to search server object and convert them to client object
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
This command starts the process in the specified activity (if you need to specify several activities as start points, please, use MultipleStartPointsProcessCommand).
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Main entry point to deploy an ApplicationArchive.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Interface for all ArchivedPersistentObject.
 
 
 
 
 
 
 
 
AssignmentOperationExecutorStrategy is the default Bonita strategy to execute data assignment operations
 
 
 
Default implementation backed to a slf4j logger.
 
 
 
Represent a rule to execute to grant access or not.
 
 
author Emmanuel Duchastenier
 
 
Used to identify API methods that can be called if the maintenance mode is enabled.
Used to identify API methods that can be called if a Node is not started.
 
 
 
 
Utility class to convert a value to a specific type if compatible.
 
 
 
 
 
 
 
Represents a Bonita configuration property.
 
This is the interface we use to wrap the ThreadPool that execute works
A factory to create executor service that will be given to the WorkService
Retrieve configuration files from database and from classpath
 
 
 
Annotation to be used on fields to inject a property value from the environment.
Spring BeanPostProcessor that parses BonitaProperty and sets the value of the annotated field.
 
 
A runnable that notifies a listener of its state
Custom Quartz scheduler implementation that exposes the internal QuartzScheduler.
 
 
simply hold a cached thread pool executor to handle common asynchronous tasks
 
 
 
 
 
 
 
 
 
 
Factory to construct works
Service allowing to broadcast a call made on services to the other nodes of a Cluster
This implementation does nothing, to be used in a single node environment.
 
 
Handles the resolution of Process Dependencies.
 
 
 
 
 
 
Represents a Evaluation Context to reference / retrieve Business Data.
 
 
 
 
 
 
 
 
The BusinessDataRepository service allows to manage Business Data operations.
Aspect to handle events for business data repository operations.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
- APPLICATION - | - GLOBAL - | - ------- TENANT ------ - | | | - PROCESS1 - PROCESS2 - PROCESS3
 
 
 
 
 
 
 
 
 
 
 
A command is a class that is called from the API and executed on the server side.
It is used to extend the engine behavior.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Adding context information about Connector definition and instance to exception for better logging
 
 
Log connector execution time when the connector took more than the configured threshold
 
Execute connectors directly
 
 
 
 
 
Contains the instantiated connector and its result It is used to give make the connector service return both the instantiated connector and its result in order to be able to call disconnect on it in the execute operation method
 
This service wraps the connector service and add engine variables like apiAccessor, engineExecutionContext.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Validate that a value is assignable to a given contract type
Validate tasks inputs according to given contract
Contract validator factory - might be replaced by a spring configuration
 
 
 
 
 
 
 
 
 
 
 
 
 
Install custom application if one exists under a specific folder.
 
 
 
Indicates that a Bonita API method handles transactions itself, and thus does not need to use the generic transaction mechanism.
 
 
 
 
 
 
 
 
 
General mechanism for lookup is to look in specific flow node to search a data instance.
 
Deprecated.
 
Deprecated.
DateConverter is now used.
 
 
 
Identical to RegexFileFilter, but accept files based on the complete file path and name, not only its name.
 
 
Use ThreadPoolExecutor as ExecutorService The handling of threads relies on the JVM The rules to create new thread are: - If the number of threads is less than the corePoolSize, create a new Thread to run a new task.
This is the default engine clock that return the real system time
 
 
Service used to import default provided living applications at startup, such as: Bonita Admin Application Bonita User Application
 
Update provided profiles from profiles.xml from classpath
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Helper class that set/get/update document on API level (it uses the process definition)
 
Updates of creates a document of the process.
Handles document lists this operation accepts only a List of DocumentValue
 
 
 
 
 
CompilationProgress which do nothing Used by JdtCompiler
 
 
 
 
 
 
 
The EngineClock give the current time to the engine.
 
 
 
Initialize the engine and create/start or not the platform based on bonita-platform.xml properties used are: platform.create -- create the platform on startup node.start -- start the platform (node) on startup node.stop -- stop the platform (node) on shutdown
 
Allows the execution of an action against an Object that is instance of Entity or List
 
 
 
Wrapper over entity getter method
Wrapper over entity getter method
Do not ignore property annotated with JsonIgnore as we manage this with a links property instead.
Interface to be implemented by classes that need access to the EntityManagerFactory.
 
 
 
Represent an enum which enum values can be convertible to other types.
 
 
 
 
 
 
 
 
 
 
Strategy to handle one kind of event: TIMER, ERROR, SIGNAL or MESSAGE
 
 
 
 
This is the manager of all the events triggered by other services.
 
Handle event depending on its type TODO * Move all code that instantiate process/execute flow node after a event was triggered here + make it call reachedCatchEvent * For event sub process: the instantiate process must cancel all activities then instantiate the process * the instantiate event subprocess method is like the start of the process executor but with less things: factorise it * check that there is no execution issues with event sub process (add more test) * add test for each kind of start event in event sub process * try to trigger event subprocess with multiple events
Utility methods to get maps that match process as wanted
 
 
 
 
 
 
 
 
 
Work that is responsible of executing a flow node.
 
 
 
 
 
 
 
 
 
 
An experimental SPI that can be used but might change in any version of Bonita.
 
 
 
Allow to evaluate one kind of expression the kind of expression that this evaluator is responsible for is define by the ExpressionExecutorStrategy.getExpressionKind() Client implements this interface in order to add a new kind of expression
 
Used to identify a kind of expression e.g.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Report incident in a log file located inside the bonita home Is a tenant service must be declared in tenant part
 
 
 
 
 
 
This is a fixed clock with some methods to change this fixed time Only used for testing purpose
 
Adding context information about Flow Node & Process definition and instance to exception for better logging
 
 
 
Created by Vincent Elcrin Date: 17/12/13 Time: 17:34
 
 
 
 
 
 
Recover flow nodes
 
 
Default implementation of the activity state manager.
For a given flow node type, this class maintains the supported flow node states and the sequence and transitions from one state to another.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Returns the most recent archived process instance from the archives.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Hibernate implementation of the persistence service
 
 
 
 
 
 
 
 
 
 
 
This service allow to manage the users and organizations and membership and the relations between them.
Default implementation of the Identity service
This implementation does not serialize fields by calling the JsonGenerator.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Service that report incidents to an administrator
 
 
 
 
 
 
 
 
 
 
 
 
to tell the engine that a setter is used to inject services
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
This Rule authorizes a user, if this user is the manager of another user involved in the given process instance.
 
 
 
 
 
 
Invokes a method on a Java Object.
This stategy is not used directly, BusinessDataJavaMethodOperationExecutorStrategy is first executed and then delegate to that one.
 
Compiler based on JDTCompiler
 
 
 
List all possible change of elements of the scheduler service
 
 
 
 
 
Some of these methods are enriched with aspects to throw events.
 
 
 
 
 
Tells the engine how to retrieve and update a left operand having the specified type e.g.
 
 
 
 
 
 
 
 
 
Evaluate a list of SExpression, represented by the SExpression.getDependencies() method.
 
 
 
Abstract class to regroup common code used by subclasses to import living applications.
 
 
Use to login on the platform when inside the same JVM
 
Transactional work that lock the process instance This work try to lock a process instance, if it can't be locked before the end of the TIMEOUT, we reschedule the fill stack of work on the work service.
This service allows to synchronize access to a resource using ReadWrite lock pattern.
 
 
 
 
 
This class is for Add call to techinalLoggerService.log with severity TRACE in all Service Implementation public method
 
This API gives access to maintenance administration tasks.
Modified version of the default implementation, with the following change: For case overview, also authorize access for a manager of a user involved in the case.
Service used to import provided living applications that are mandatory for the platform to start, such as: Bonita Super Admin Application Bonita Application Directory
 
 
 
These constants are used as logging keys for Mapped Diagnostic Context (MDC).
Provides usefull methods for working with MDC.
Like Callable but throwing a checked exception
Like Callable but throwing 2 checked exceptions
Like Callable but throwing 3 checked exceptions
Like Callable but throwing 4 checked exceptions
Like Runnable but throwing a checked exception
Like Runnable but throwing 2 checked exceptions
Like Runnable but throwing 3 checked exceptions
Like Runnable but throwing 4 checked exceptions
A ThreadPoolExecutor that transmits the MDC to the executing thread
 
 
 
 
 
 
 
 
 
Resets all "In Progress" BPMN Message couples so that they can be triggered again on next cron.
 
 
 
 
This command starts the process in the specified activity(ies).
 
This class allow to provide a configuration for the current node We should be able to have one different per node
 
 
 
 
 
 
 
 
Work that notify a container that a flow node is in completed state e.g.
 
Represents null value returned by NullCheckingUtil.findNull(Object...).
Deprecated.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
It's used when we check if the queries who return a list have an "Order by" clause.
 
 
 
 
 
 
 
 
Service that allows to map an arbitrary String key to a (Custom) Page or URL.
 
 
 
 
 
 
 
 
Retrieve a String parameter from the ParameterService.
 
 
 
 
 
ExpressionExecutorStrategy to evaluate a 'Pattern', that is a String message into which some parameters are replaced by their values.
Utility methods to get maps that match process as wanted
 
 
 
Permission service implementation
 
 
Interface for all PersistentObject.
 
 
 
 
 
Listen to events happening to all classloaders (all tenants, platform-wide)
 
 
 
 
Provides runtime information about the platform.
 
Updates the platform information using directly the PersistenceService
 
 
 
 
Handle the lifecycle of the platform: start, stop.
 
 
 
 
 
 
 
 
 
 
Spring event published when the Bonita Platform has finished to start.
 
 
Make search case insensitive in postgres by using `ilike` instead of `like`
 
 
 
 
 
 
Adding context information about Process definition to exception for better logging
 
 
 
 
 
 
This class handles the continuation of unfinished process instances passed as parameter in ProcessesRecover.execute(RecoveryMonitor, List) method.
 
 
 
Adding context information about Process definition and instance to exception for better logging
 
 
 
 
 
 
 
 
 
 
 
Define rules to be executed before the start of a process, right after its creation.
 
 
 
 
 
 
 
 
 
Import profiles with mapping using Policy
Handles storage and retrieval of profile temporary md5 file.
 
 
 
 
This is a hack to let Quartz access datasource beans from SprigContext Quartz support custom connection providers but not non primitive parameters for them
This is a hack to let Quartz access datasource beans from SprigContext Quartz support custom connection providers but not non primitive parameters for them
This is a hack to let Quartz access datasource beans from SprigContext Quartz support custom connection providers but not non primitive parameters for them
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
The Recovery handler is responsible for recovering all candidate elements at Engine startup.
The RecoveryScheduler is responsible to trigger the recovery mechanism periodically.
Responsible to recover from incidents like database or network outage.
 
 
 
 
 
 
Transaction content to remove a list of categories from a Process definition.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
author Emmanuel Duchastenier
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Thrown when access to a given page or URL is not allowed for a given key.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Exception indicating an error occurred during CRUD (Create, Read, Update, Delete) operations on business data.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Thrown by a Command when something unexpected happens during execution.
 
 
 
 
 
 
 
Thrown by a Command that is called using insufficient or wrong parameters.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Adapter to execute client connector objects in the server side
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
User contact info: can be personal or professional contact information.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Thrown when the SContractDefinition is not fulfilled.
 
 
 
 
 
 
 
Identity related exception indicating that the SCustomUserInfoDefinition already exists
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
This exception is thrown if a SDataInstance is not well formed.
 
 
 
Represent the deletion of a persisted element
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
A document list is a named element that define a list of document on a process It contains 0 or more document and have a name to reference it in the process instance It is initialized when the process start using the SDocumentListDefinition.getExpression() expression
 
Mapping for a document
 
 
 
 
 
 
 
 
 
 
 
 
 
SearchApplications<E extends org.bonitasoft.engine.business.application.IApplication>
 
SearchApplicationsOfUser<E extends org.bonitasoft.engine.business.application.IApplication>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Search Waiting events Parameters -> searchOptions: the searchOptions
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
This class load the server api implementation configured using the property `serverApi`.
This class is in charge of calling APIs while adding behavior: It sets the classloader to the one from platform or tenant When the method is NOT annotated with NoSessionRequired, it verifies that the given session is valid, is on the right scope (tenant or platform), and renew it When the method is NOT annotated with CustomTransactions, it opens a transaction When the method is deprecated, it print a warning When the method or class is NOT annotated with AvailableInMaintenanceMode, it verifies the maintenance mode is disabled When the method or class is annotated with AvailableInMaintenanceMode and onlyAvailableInMaintenanceMode is set to true, it verifies the maintenance mode is enabled When the method is NOT annotated with AvailableOnStoppedNode, it verifies the platform is running
 
 
 
 
 
Wrap the technical logger service to be available to client extensions
 
 
 
Main entry point to access services and api implementation of the engine ServiceAccessors and APIAccessResolver classes can be overridden in the configuration under the name `serviceAccessors` and `apiAccessResolver`
This is the main entry point to the engine services
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
To define the context of an exception in the message.
when something went wrong during an execution
 
 
 
 
 
 
 
 
 
 
FIXME: this class is only used in tests.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
An unexpected error happened during the execution of the flow node The flow node might be in an inconsistent state
 
 
 
 
 
Represents flownode state counters for a given process instance.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
SHandler<T extends SEvent>
 
 
 
 
 
 
 
 
 
 
 
 
 
Exception related to the identity module
 
 
 
 
 
 
 
 
Listens to events occurring on a single tenant-level classloader.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Thrown when the evaluation of the condition of the connector instance is invalid.
 
 
content of the page is not valid
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Exception happening during a life cycle operation such as start/stop of tenant services
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
author Emmanuel Duchastenier
 
 
 
 
 
 
Used to get pending activities of a user.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Exception related to the platform module
 
 
 
 
 
 
 
 
 
Exception related to the platform module
 
 
 
 
 
 
 
 
 
 
Exception related to the platform module
Spring bean accessor that get its configuration from configuration file in classpath and in database
 
 
 
 
 
 
 
author Emmanuel Duchastenier
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Thread start when the engine is ready.
 
 
 
 
 
 
 
This is code that are returned by state when they are execute DONE is when the state is finished and executed correctly EXECUTING when there is still work to be done on the state (so the state must not change)
Interface of a scheduled job.
 
Exception related to the platform module
Exception related to the platform module
Exception related to the platform module
Exception related to the platform module
Exception related to the platform module
Exception related to the platform module
Exception related to the platform module
 
 
 
Exception related to the platform module
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
String manipulation utilitary class.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Thrown when a process fails to deploy because of V6 form presence in the bar to deploy.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Happens when a work could not be executed because its preconditions where not met.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
result of the execution of a task using the broadcast service
 
 
 
 
 
 
 
 
Handles the restart of elements when the tenant is started (strategy is different in cluster)
 
 
 
 
 
 
 
 
Handles the lifecycle of tenant services: start, stop, (pause, resume -> will be removed) Does not handle state of the tenant in database
 
 
 
 
 
Store and access the current session id of the current thread
 
 
 
 
Job factory that inject the transaction service Must modify this to inject the configuration service instead
 
 
 
 
 
 
 
 
 
 
 
 
Specify what to do when some job were not triggered in time.
 
 
A work that wrap an other work in a transaction
This work manages the transaction in its handleFailure method.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
This UserFilterService implementation injects, in method #executeFilter(long, SUserFilterDefinition, Map, ClassLoader) a new expression to access the APIAccessor for User filters.
 
 
 
List all possible change of elements of the identity service
 
 
 
 
 
 
 
 
 
 
Used to identify tenant-level API methods that require taking a functional lock when they are called.
 
 
 
 
 
 
this a callback called when a work finish.
Trigger the asynchronous execution of a work
 
This service allows register the execution of a work at the end of the current transaction
Directly calls the WorkExecutorService
 
 
 
 
 
 
 
 
 
 
Supported return types are: java.lang.String java.lang.Double java.lang.Boolean java.lang.Long java.lang.Integer java.lang.Float org.w3c.dom.Node org.w3c.dom.NodeList