Full Code of bonitasoft/bonita-engine for AI

dev 1734924ed557 cached
5459 files
24.0 MB
6.7M tokens
37249 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (27,078K chars total). Download the full file to get everything.
Repository: bonitasoft/bonita-engine
Branch: dev
Commit: 1734924ed557
Files: 5459
Total size: 24.0 MB

Directory structure:
gitextract_wsntd3xl/

├── .github/
│   └── workflows/
│       └── build.yml
├── .gitignore
├── LICENSE.txt
├── README.md
├── bonita-engine/
│   └── build.gradle
├── bonita-engine-spring-boot-starter/
│   ├── build.gradle
│   └── src/
│       ├── main/
│       │   ├── java/
│       │   │   └── org/
│       │   │       └── bonitasoft/
│       │   │           └── engine/
│       │   │               └── spring/
│       │   │                   └── autoconfigure/
│       │   │                       ├── BonitaEngineCommonAutoConfiguration.java
│       │   │                       ├── BonitaEngineEventListener.java
│       │   │                       ├── BonitaEngineServerAutoConfiguration.java
│       │   │                       └── properties/
│       │   │                           ├── BonitaDatabasesConfiguration.java
│       │   │                           └── BonitaEngineProperties.java
│       │   └── resources/
│       │       └── META-INF/
│       │           └── spring.factories
│       └── test/
│           └── java/
│               └── org/
│                   └── bonitasoft/
│                       └── engine/
│                           └── spring/
│                               └── autoconfigure/
│                                   ├── BonitaEngineAutoConfigurationTest.java
│                                   ├── BonitaEngineSpringBootStarterIT.java
│                                   └── ClientTestApplication.java
├── bonita-engine-standalone/
│   ├── build.gradle
│   └── src/
│       ├── main/
│       │   ├── java/
│       │   │   └── org/
│       │   │       └── bonitasoft/
│       │   │           └── engine/
│       │   │               ├── BonitaDataSourceInitializer.java
│       │   │               ├── BonitaDatabaseConfiguration.java
│       │   │               ├── BonitaEngine.java
│       │   │               ├── DatabaseUrlParser.java
│       │   │               ├── DatasourceConfiguration.java
│       │   │               ├── DefaultBonitaDatabaseConfigurations.java
│       │   │               ├── MemoryJNDISetup.java
│       │   │               ├── SimpleMemoryContext.java
│       │   │               ├── SimpleMemoryContextFactory.java
│       │   │               ├── SimpleNameParser.java
│       │   │               └── xa/
│       │   │                   ├── XAConnectionIsSameRMOverride.java
│       │   │                   ├── XADataSourceIsSameRMOverride.java
│       │   │                   └── XAResourceIsSameRMOverride.java
│       │   └── resources/
│       │       └── jbossts-properties.xml
│       └── test/
│           └── java/
│               └── org/
│                   └── bonitasoft/
│                       └── engine/
│                           ├── BonitaDataSourceInitializerTest.java
│                           ├── BonitaEngineTest.java
│                           └── DatabaseUrlParserTest.java
├── bonita-integration-tests/
│   ├── benchmarks/
│   │   ├── README.md
│   │   ├── build.gradle
│   │   └── src/
│   │       └── jmh/
│   │           └── java/
│   │               └── org/
│   │                   └── bonitasoft/
│   │                       └── engine/
│   │                           └── benchmarks/
│   │                               ├── PermissionCachingBenchmark.java
│   │                               └── TransactionSynchronizationBenchmark.java
│   ├── bonita-integration-tests-client/
│   │   ├── bonita-client-http.properties
│   │   ├── bonita-client-invalid.properties
│   │   ├── bonita-client-local.properties
│   │   ├── build.gradle
│   │   └── src/
│   │       ├── main/
│   │       │   ├── java/
│   │       │   │   └── org/
│   │       │   │       └── bonitasoft/
│   │       │   │           └── engine/
│   │       │   │               ├── CommonAPIIT.java
│   │       │   │               ├── PrintTestsStatusRule.java
│   │       │   │               ├── TestWithTechnicalUser.java
│   │       │   │               ├── TestWithUser.java
│   │       │   │               ├── business/
│   │       │   │               │   ├── application/
│   │       │   │               │   │   ├── TestWithCustomPage.java
│   │       │   │               │   │   └── TestWithLivingApplication.java
│   │       │   │               │   └── data/
│   │       │   │               │       ├── BusinessDataUpdateConnector.java
│   │       │   │               │       └── ClassloaderRefresher.java
│   │       │   │               ├── command/
│   │       │   │               │   └── helper/
│   │       │   │               │       ├── ProcessDeployer.java
│   │       │   │               │       ├── designer/
│   │       │   │               │       │   ├── BoundaryEvent.java
│   │       │   │               │       │   ├── Branch.java
│   │       │   │               │       │   ├── ConditionalTransition.java
│   │       │   │               │       │   ├── DefaultTransition.java
│   │       │   │               │       │   ├── EndEvent.java
│   │       │   │               │       │   ├── FlowNode.java
│   │       │   │               │       │   ├── Fragment.java
│   │       │   │               │       │   ├── Gateway.java
│   │       │   │               │       │   ├── Signal.java
│   │       │   │               │       │   ├── SimpleProcessDesigner.java
│   │       │   │               │       │   ├── StartEvent.java
│   │       │   │               │       │   ├── Transition.java
│   │       │   │               │       │   ├── Trigger.java
│   │       │   │               │       │   └── UserTask.java
│   │       │   │               │       └── expectation/
│   │       │   │               │           ├── DocumentExpectation.java
│   │       │   │               │           ├── ProcessExpectation.java
│   │       │   │               │           ├── StepExpectation.java
│   │       │   │               │           ├── TestUtils.java
│   │       │   │               │           └── VariableExpectation.java
│   │       │   │               ├── connectors/
│   │       │   │               │   ├── ConnectorExecutionIT.java
│   │       │   │               │   ├── DoNothingConnector.java
│   │       │   │               │   ├── FailingConnector.java
│   │       │   │               │   ├── TestConnector.java
│   │       │   │               │   ├── TestConnector2.java
│   │       │   │               │   ├── TestConnector3.java
│   │       │   │               │   ├── TestConnectorLongToExecute.java
│   │       │   │               │   ├── TestConnectorThatThrowException.java
│   │       │   │               │   ├── TestConnectorWithAPICall.java
│   │       │   │               │   ├── TestConnectorWithConnectedResource.java
│   │       │   │               │   ├── TestConnectorWithModifiedOutput.java
│   │       │   │               │   ├── TestConnectorWithNotSerializableOutput.java
│   │       │   │               │   ├── TestConnectorWithOutput.java
│   │       │   │               │   ├── TestExternalConnector.java
│   │       │   │               │   └── VariableStorage.java
│   │       │   │               ├── event/
│   │       │   │               │   └── AbstractEventIT.java
│   │       │   │               ├── filter/
│   │       │   │               │   └── user/
│   │       │   │               │       ├── GroupUserFilter.java
│   │       │   │               │       ├── TestFilter.java
│   │       │   │               │       ├── TestFilterThatThrowException.java
│   │       │   │               │       ├── TestFilterThatThrowNoClassDef.java
│   │       │   │               │       ├── TestFilterUsingActorName.java
│   │       │   │               │       └── TestFilterWithAutoAssign.java
│   │       │   │               ├── page/
│   │       │   │               │   └── PageAssert.java
│   │       │   │               ├── process/
│   │       │   │               │   ├── Employee.java
│   │       │   │               │   ├── Secretary.java
│   │       │   │               │   └── SetDueDateConnector.java
│   │       │   │               ├── search/
│   │       │   │               │   └── SlowConnector.java
│   │       │   │               └── util/
│   │       │   │                   ├── AssertionsUtils.java
│   │       │   │                   └── FunctionalMatcher.java
│   │       │   └── resources/
│   │       │       ├── custom-0.1.jar.bak
│   │       │       ├── mylibrary-jar.bak
│   │       │       ├── mylibrary2-jar.bak
│   │       │       ├── org/
│   │       │       │   └── bonitasoft/
│   │       │       │       └── engine/
│   │       │       │           ├── business/
│   │       │       │           │   ├── application/
│   │       │       │           │   │   ├── applicationWithUnavailableInfo.xml
│   │       │       │           │   │   └── applications.xml
│   │       │       │           │   └── data/
│   │       │       │           │       ├── BusinessDataUpdateConnector.def
│   │       │       │           │       ├── BusinessDataUpdateConnector.impl
│   │       │       │           │       ├── findByFirstNameAndLastNameNewOrder.json
│   │       │       │           │       ├── findByFirstNameFetchAddresses.json
│   │       │       │           │       ├── getBusinessDataByIdAddress.json
│   │       │       │           │       ├── getBusinessDataByIdEmployee.json
│   │       │       │           │       └── getEmployeeByPhoneNumber.json
│   │       │       │           ├── command/
│   │       │       │           │   ├── Employee.find.2.1.json
│   │       │       │           │   └── web/
│   │       │       │           │       └── profile/
│   │       │       │           │           ├── AllProfiles.xml
│   │       │       │           │           ├── RestoreDefaultProfiles.xml
│   │       │       │           │           └── deleteExistingProfile.xml
│   │       │       │           ├── connectors/
│   │       │       │           │   ├── APIAccessorConnector.impl
│   │       │       │           │   ├── TestConnector.def
│   │       │       │           │   ├── TestConnector.impl
│   │       │       │           │   ├── TestConnector2.impl
│   │       │       │           │   ├── TestConnector3.def
│   │       │       │           │   ├── TestConnector3.impl
│   │       │       │           │   ├── TestConnectorInJar.impl
│   │       │       │           │   ├── TestConnectorLongToExecute.impl
│   │       │       │           │   ├── TestConnectorThatThrowException.impl
│   │       │       │           │   ├── TestConnectorWithAPICall.impl
│   │       │       │           │   ├── TestConnectorWithConnectedResource.def
│   │       │       │           │   ├── TestConnectorWithConnectedResource.impl
│   │       │       │           │   ├── TestConnectorWithCustomType.impl
│   │       │       │           │   ├── TestConnectorWithModifiedOutput.impl
│   │       │       │           │   ├── TestConnectorWithNotSerializableOutput.def
│   │       │       │           │   ├── TestConnectorWithNotSerializableOutput.impl
│   │       │       │           │   ├── TestConnectorWithOutput.def
│   │       │       │           │   ├── TestConnectorWithOutput.impl
│   │       │       │           │   ├── TestExternalConnector.impl
│   │       │       │           │   ├── UnknownClassConnector.impl
│   │       │       │           │   ├── connector-in-jar.jar.bak
│   │       │       │           │   └── connector-with-custom-type.bak
│   │       │       │           ├── filter/
│   │       │       │           │   └── user/
│   │       │       │           │       ├── GroupUserFilter.impl
│   │       │       │           │       ├── TestFilter.def
│   │       │       │           │       ├── TestFilter.impl
│   │       │       │           │       ├── TestFilterThatThrowException.impl
│   │       │       │           │       ├── TestFilterThatThrowNoClassDef.impl
│   │       │       │           │       ├── TestFilterUsingActorName.impl
│   │       │       │           │       ├── TestFilterWithAutoAssign.impl
│   │       │       │           │       └── TestFilterWithClassNotFound.impl
│   │       │       │           ├── identity/
│   │       │       │           │   ├── ACME.xml
│   │       │       │           │   ├── OrganizationWithSpecialCharacters.xml
│   │       │       │           │   ├── complexOrganization.xml
│   │       │       │           │   ├── complexOrganizationWithBadGroup.xml
│   │       │       │           │   ├── hugeOrganization.xml
│   │       │       │           │   ├── mixOrganization.xml
│   │       │       │           │   ├── organizationFailOnDuplicates.xml
│   │       │       │           │   ├── organizationWithCycle.xml
│   │       │       │           │   ├── simpleOrganization.xml
│   │       │       │           │   ├── simpleOrganizationDuplicates1.xml
│   │       │       │           │   ├── simpleOrganizationDuplicates2.xml
│   │       │       │           │   └── simpleOrganizationNoDuplicates.xml
│   │       │       │           └── process/
│   │       │       │               └── actor/
│   │       │       │                   ├── actorMappingWithException.xml
│   │       │       │                   ├── complexActorMapping.xml
│   │       │       │                   ├── complexActorMapping2.xml
│   │       │       │                   ├── complexActorMappingWithUnkownGroup.xml
│   │       │       │                   └── simpleActorMapping.xml
│   │       │       ├── org.bonitasoft.complextypes.jar-bak
│   │       │       ├── org.bonitasoft.dfgdfg.bak
│   │       │       └── org.bonitasoft.plop.bak
│   │       └── test/
│   │           ├── java/
│   │           │   └── org/
│   │           │       └── bonitasoft/
│   │           │           └── engine/
│   │           │               ├── MultiThreadCallsIT.java
│   │           │               ├── RemoteEngineIT.java
│   │           │               ├── StringIndexIT.java
│   │           │               ├── activity/
│   │           │               │   ├── CallActivityIT.java
│   │           │               │   ├── ContractIT.java
│   │           │               │   ├── GetPossibleUsersOfPendingHumanTaskIT.java
│   │           │               │   ├── HumanTasksIT.java
│   │           │               │   ├── LoopIT.java
│   │           │               │   ├── ManualTasksIT.java
│   │           │               │   ├── MultiInstanceIT.java
│   │           │               │   ├── PendingTasksIT.java
│   │           │               │   ├── ReceiveTasksIT.java
│   │           │               │   ├── SendTaskIT.java
│   │           │               │   ├── UserTaskAssignationIT.java
│   │           │               │   └── work/
│   │           │               │       └── RetryWorkIT.java
│   │           │               ├── application/
│   │           │               │   └── ApplicationIT.java
│   │           │               ├── business/
│   │           │               │   ├── application/
│   │           │               │   │   ├── LivingApplicationIT.java
│   │           │               │   │   ├── LivingApplicationImportExportIT.java
│   │           │               │   │   ├── LivingApplicationMenuIT.java
│   │           │               │   │   └── LivingApplicationPageIT.java
│   │           │               │   └── data/
│   │           │               │       ├── BDMPostgreSQLTextFieldIT.java
│   │           │               │       ├── BDMUpdateIT.java
│   │           │               │       └── BDRepositoryIT.java
│   │           │               ├── client/
│   │           │               │   └── BonitaClientXMLTest.java
│   │           │               ├── command/
│   │           │               │   ├── AdvancedStartProcessCommandIT.java
│   │           │               │   ├── CommandIT.java
│   │           │               │   ├── ExecuteBDMQueryCommandIT.java
│   │           │               │   ├── ExecutionExceptionCommand.java
│   │           │               │   ├── IntegerCommand.java
│   │           │               │   ├── MultipleStartPointsProcessCommandIT.java
│   │           │               │   ├── NPECommand.java
│   │           │               │   ├── ParameterizationExceptionCommand.java
│   │           │               │   └── helper/
│   │           │               │       └── designer/
│   │           │               │           ├── BranchTest.java
│   │           │               │           ├── DesignerTestUtils.java
│   │           │               │           └── SimpleProcessDesignerTest.java
│   │           │               ├── connectors/
│   │           │               │   └── RemoteConnectorExecutionIT.java
│   │           │               ├── event/
│   │           │               │   ├── AbstractWaitingEventIT.java
│   │           │               │   ├── EndEventIT.java
│   │           │               │   ├── ErrorBoundaryEventIT.java
│   │           │               │   ├── ErrorEventSubProcessIT.java
│   │           │               │   ├── EventTriggerIT.java
│   │           │               │   ├── InterruptingTimerBoundaryEventIT.java
│   │           │               │   ├── MessageBoundaryEventIT.java
│   │           │               │   ├── MessageEventIT.java
│   │           │               │   ├── MessageEventSubProcessIT.java
│   │           │               │   ├── NonInterruptingTimerBoundaryEventIT.java
│   │           │               │   ├── SignalBoundaryEventIT.java
│   │           │               │   ├── SignalEventIT.java
│   │           │               │   ├── SignalEventSubProcessIT.java
│   │           │               │   ├── StartEventIT.java
│   │           │               │   ├── TimerBoundaryEventIT.java
│   │           │               │   ├── TimerEventIT.java
│   │           │               │   └── TimerEventSubProcessIT.java
│   │           │               ├── filter/
│   │           │               │   └── user/
│   │           │               │       └── UserFilterIT.java
│   │           │               ├── form/
│   │           │               │   └── FormMappingIT.java
│   │           │               ├── identity/
│   │           │               │   ├── CustomUserInfoIT.java
│   │           │               │   ├── GroupIT.java
│   │           │               │   ├── MembershipIT.java
│   │           │               │   ├── OrganizationIT.java
│   │           │               │   ├── RoleIT.java
│   │           │               │   └── UserIT.java
│   │           │               ├── login/
│   │           │               │   └── PlatformLoginAPIIT.java
│   │           │               ├── mdc/
│   │           │               │   ├── APICallLogIT.java
│   │           │               │   ├── ConnectorExecutionLogIT.java
│   │           │               │   ├── LogITUtil.java
│   │           │               │   └── ProcessExecutionLogIT.java
│   │           │               ├── operation/
│   │           │               │   └── OperationIT.java
│   │           │               ├── page/
│   │           │               │   └── PageAPIIT.java
│   │           │               ├── platform/
│   │           │               │   ├── PlatformIT.java
│   │           │               │   ├── PlatformLoginIT.java
│   │           │               │   └── command/
│   │           │               │       └── PlatformCommandIT.java
│   │           │               ├── process/
│   │           │               │   ├── EvaluateExpressionIT.java
│   │           │               │   ├── FlowPatternsIT.java
│   │           │               │   ├── GatewayExecutionIT.java
│   │           │               │   ├── GetProcessDefinitionIT.java
│   │           │               │   ├── ProcessCategoryIT.java
│   │           │               │   ├── ProcessDeletionIT.java
│   │           │               │   ├── ProcessDeploymentIT.java
│   │           │               │   ├── ProcessDescriptionIT.java
│   │           │               │   ├── ProcessExecutionIT.java
│   │           │               │   ├── ProcessManagementIT.java
│   │           │               │   ├── ProcessParameterIT.java
│   │           │               │   ├── ProcessResolutionIT.java
│   │           │               │   ├── ProcessWithExpressionIT.java
│   │           │               │   ├── StartProcessWithOperationsIT.java
│   │           │               │   ├── actor/
│   │           │               │   │   ├── ExportActorMappingIT.java
│   │           │               │   │   ├── ImportActorMappingIT.java
│   │           │               │   │   └── ProcessActorIT.java
│   │           │               │   ├── comment/
│   │           │               │   │   └── CommentIT.java
│   │           │               │   ├── data/
│   │           │               │   │   ├── ActivityDataDefinitionIT.java
│   │           │               │   │   ├── ActivityDataInstanceIT.java
│   │           │               │   │   ├── ProcessDataDefinitionIT.java
│   │           │               │   │   └── ProcessDataInstanceIT.java
│   │           │               │   ├── document/
│   │           │               │   │   └── DocumentIT.java
│   │           │               │   └── instance/
│   │           │               │       ├── AbortProcessInstanceIT.java
│   │           │               │       ├── AbstractProcessInstanceIT.java
│   │           │               │       ├── CancelProcessInstanceIT.java
│   │           │               │       ├── InvolvedInProcessInstanceIT.java
│   │           │               │       └── ProcessInstanceIT.java
│   │           │               ├── profile/
│   │           │               │   ├── AbstractProfileIT.java
│   │           │               │   ├── ProfileCommunityIT.java
│   │           │               │   ├── ProfileIT.java
│   │           │               │   └── ProfileMemberIT.java
│   │           │               ├── search/
│   │           │               │   ├── SearchActivityInstanceIT.java
│   │           │               │   ├── SearchCommentIT.java
│   │           │               │   ├── SearchProcessDefinitionIT.java
│   │           │               │   ├── SearchProcessDeploymentInfosCanBeStartedByIT.java
│   │           │               │   ├── SearchProcessDeploymentInfosCanBeStartedByUsersManagedByIT.java
│   │           │               │   ├── SearchProcessDeploymentInfosWithAssignedOrPendingHumanTasksForIT.java
│   │           │               │   ├── SearchProcessDeploymentInfosWithAssignedOrPendingHumanTasksIT.java
│   │           │               │   ├── SearchProcessDeploymentInfosWithAssignedOrPendingHumanTasksSupervisedByIT.java
│   │           │               │   ├── SearchProcessInstanceIT.java
│   │           │               │   └── SearchUncategorizedProcessDeploymentInfosCanBeStartedByIT.java
│   │           │               ├── supervisor/
│   │           │               │   ├── ProcessSupervisedIT.java
│   │           │               │   └── SupervisorIT.java
│   │           │               └── tenant/
│   │           │                   └── TenantMaintenanceIT.java
│   │           └── resources/
│   │               ├── application-to-test-permissions.xml
│   │               ├── logback-test.xml
│   │               └── org/
│   │                   └── bonitasoft/
│   │                       └── engine/
│   │                           ├── application/
│   │                           │   ├── superAdminApp.xml
│   │                           │   └── testApp.xml
│   │                           └── connectors/
│   │                               ├── TestConnector.xml
│   │                               └── TestConnector_Implementation.xml
│   ├── bonita-integration-tests-local/
│   │   ├── build.gradle
│   │   └── src/
│   │       ├── main/
│   │       │   ├── java/
│   │       │   │   └── org/
│   │       │   │       └── bonitasoft/
│   │       │   │           └── engine/
│   │       │   │               ├── bpm/
│   │       │   │               │   └── CommonBPMServicesTest.java
│   │       │   │               └── test/
│   │       │   │                   └── util/
│   │       │   │                       └── TestUtil.java
│   │       │   └── resources/
│   │       │       └── logback-test.xml
│   │       └── test/
│   │           ├── java/
│   │           │   └── org/
│   │           │       └── bonitasoft/
│   │           │           └── engine/
│   │           │               ├── CallableWithException.java
│   │           │               ├── DeleteEventTriggerInstanceIT.java
│   │           │               ├── MockQueriableLogSessionProviderImpl.java
│   │           │               ├── MockQueriableLoggerStrategy.java
│   │           │               ├── PageAPILocalIT.java
│   │           │               ├── RunnableWithException.java
│   │           │               ├── SQLUtils.java
│   │           │               ├── application/
│   │           │               │   └── installer/
│   │           │               │       ├── ApplicationInstallerIT.java
│   │           │               │       └── ApplicationInstallerUpdateIT.java
│   │           │               ├── archive/
│   │           │               │   ├── ArchiveServiceIT.java
│   │           │               │   └── model/
│   │           │               │       ├── TestLogBuilder.java
│   │           │               │       └── TestLogBuilderFactory.java
│   │           │               ├── authentication/
│   │           │               │   └── AuthenticationServiceIT.java
│   │           │               ├── bpm/
│   │           │               │   ├── ActorMappingServiceIT.java
│   │           │               │   ├── CategoryServiceIT.java
│   │           │               │   ├── DocumentServiceIT.java
│   │           │               │   ├── EventInstanceRepositoryIT.java
│   │           │               │   ├── GatewayExecutionLocalIT.java
│   │           │               │   ├── GatewayInstanceServiceIT.java
│   │           │               │   ├── NodeConfigurationIT.java
│   │           │               │   ├── OperationServiceIT.java
│   │           │               │   ├── ProcessDefinitionServiceIT.java
│   │           │               │   ├── ProcessInstanceServiceIT.java
│   │           │               │   ├── RecoveryMechanismIT.java
│   │           │               │   ├── SupervisorServiceIT.java
│   │           │               │   ├── connector/
│   │           │               │   │   ├── ConnectorExecutionsLocalIT.java
│   │           │               │   │   └── ConnectorInstanceServiceIT.java
│   │           │               │   ├── event/
│   │           │               │   │   ├── EventInstanceServiceIT.java
│   │           │               │   │   ├── LocalInterruptingTimerBoundaryEventIT.java
│   │           │               │   │   └── LocalTimerEventIT.java
│   │           │               │   ├── failure/
│   │           │               │   │   ├── FlowNodeFailureIT.java
│   │           │               │   │   └── ProcessInstanceFailureIT.java
│   │           │               │   ├── flownode/
│   │           │               │   │   └── FlowNodeInstanceServiceIT.java
│   │           │               │   └── process/
│   │           │               │       ├── AddCommentConnector.java
│   │           │               │       └── DeleteProcessInstancesIT.java
│   │           │               ├── business/
│   │           │               │   ├── application/
│   │           │               │   │   └── importer/
│   │           │               │   │       └── ApplicationImporterIT.java
│   │           │               │   └── data/
│   │           │               │       ├── BDRepositoryLocalIT.java
│   │           │               │       ├── DataRetentionBdmTrackingIT.java
│   │           │               │       └── TransactionTimeoutEntityManagerIT.java
│   │           │               ├── cache/
│   │           │               │   └── ehcache/
│   │           │               │       └── CacheConfigurationIT.java
│   │           │               ├── classloader/
│   │           │               │   ├── ClassLoaderIT.java
│   │           │               │   ├── ClassLoaderServiceIT.java
│   │           │               │   ├── GlobalClass1.java
│   │           │               │   ├── GlobalClass2.java
│   │           │               │   ├── GlobalClass3.java
│   │           │               │   ├── LocalClass1.java
│   │           │               │   ├── LocalClass2.java
│   │           │               │   ├── LocalClass3.java
│   │           │               │   ├── LocalClass4.java
│   │           │               │   ├── OnlyInPathClass1.java
│   │           │               │   └── SharedClass1.java
│   │           │               ├── command/
│   │           │               │   └── CommandServiceIT.java
│   │           │               ├── core/
│   │           │               │   └── form/
│   │           │               │       └── impl/
│   │           │               │           ├── FormMappingServiceIT.java
│   │           │               │           └── custom/
│   │           │               │               ├── CustomAuthorizationRuleMappingImpl.java
│   │           │               │               └── CustomIsProcessInitiatorRule.java
│   │           │               ├── data/
│   │           │               │   ├── instance/
│   │           │               │   │   ├── DataInstanceIntegrationLocalIT.java
│   │           │               │   │   ├── DataInstanceServiceIT.java
│   │           │               │   │   ├── LightEmployee.java
│   │           │               │   │   └── TransientDataInstanceServiceIT.java
│   │           │               │   └── model/
│   │           │               │       ├── Address.java
│   │           │               │       ├── Employee.java
│   │           │               │       └── LightEmployee.java
│   │           │               ├── dependency/
│   │           │               │   └── DependencyServiceIT.java
│   │           │               ├── expression/
│   │           │               │   └── ExpressionServiceIT.java
│   │           │               ├── identity/
│   │           │               │   └── IdentityServiceIT.java
│   │           │               ├── job/
│   │           │               │   ├── AddJobCommand.java
│   │           │               │   ├── JobExecutionIT.java
│   │           │               │   └── ThrowsExceptionJob.java
│   │           │               ├── login/
│   │           │               │   └── LoginAPIIT.java
│   │           │               ├── page/
│   │           │               │   └── PageMappingServiceIT.java
│   │           │               ├── persistence/
│   │           │               │   └── PersistenceIT.java
│   │           │               ├── platform/
│   │           │               │   ├── auth/
│   │           │               │   │   └── PlatformAuthenticationServiceIT.java
│   │           │               │   ├── command/
│   │           │               │   │   └── PlatformCommandServiceIT.java
│   │           │               │   └── login/
│   │           │               │       └── PlatformLoginServiceIT.java
│   │           │               ├── profile/
│   │           │               │   └── ProfileServiceIT.java
│   │           │               ├── recorder/
│   │           │               │   └── RecorderIT.java
│   │           │               ├── resources/
│   │           │               │   └── TenantResourcesServiceIT.java
│   │           │               ├── scheduler/
│   │           │               │   ├── impl/
│   │           │               │   │   ├── JobThatMayThrowErrorOrJobException.java
│   │           │               │   │   ├── SchedulerServiceIT.java
│   │           │               │   │   └── WaitForIncrementJobToHaveValue.java
│   │           │               │   ├── job/
│   │           │               │   │   ├── DoNothingJob.java
│   │           │               │   │   ├── GroupJob.java
│   │           │               │   │   ├── IncrementItselfJob.java
│   │           │               │   │   ├── IncrementVariableJob.java
│   │           │               │   │   ├── JobSemaphore.java
│   │           │               │   │   ├── ReleaseWaitersJob.java
│   │           │               │   │   ├── ThrowsExceptionJob.java
│   │           │               │   │   ├── UpdateVariable.java
│   │           │               │   │   └── VariableStorage.java
│   │           │               │   └── trigger/
│   │           │               │       └── UnixCronTriggerForTest.java
│   │           │               ├── session/
│   │           │               │   ├── PlatformSessionServiceIT.java
│   │           │               │   └── SessionServiceIT.java
│   │           │               ├── tenant/
│   │           │               │   └── TenantMaintenanceLocalIT.java
│   │           │               ├── test/
│   │           │               │   ├── APIMethodLocalIT.java
│   │           │               │   ├── BPMLocalIT.java
│   │           │               │   ├── BlockingConnector.java
│   │           │               │   ├── CommonAPILocalIT.java
│   │           │               │   ├── PermissionAPIIT.java
│   │           │               │   ├── ProcessArchiveIT.java
│   │           │               │   ├── ProcessWithExpressionLocalIT.java
│   │           │               │   └── TestHandler.java
│   │           │               └── work/
│   │           │                   └── WorkServiceIT.java
│   │           └── resources/
│   │               ├── applications-importer/
│   │               │   ├── mixedLegacyAndApplicationLinks.xml
│   │               │   ├── multipleApplicationLinks.xml
│   │               │   └── oneApplicationLink.xml
│   │               ├── org/
│   │               │   └── bonitasoft/
│   │               │       └── engine/
│   │               │           └── classloader/
│   │               │               ├── NotInPathGlobal.jar
│   │               │               ├── NotInPathLocal.jar
│   │               │               ├── NotInPathShared.jar
│   │               │               └── resource.txt
│   │               └── simple-app-1.0.0-SNAPSHOT-local.bconf
│   ├── bonita-integration-tests-web/
│   │   ├── build.gradle
│   │   └── src/
│   │       ├── main/
│   │       │   ├── java/
│   │       │   │   └── org/
│   │       │   │       └── bonitasoft/
│   │       │   │           ├── test/
│   │       │   │           │   └── toolkit/
│   │       │   │           │       ├── AbstractJUnitTest.java
│   │       │   │           │       ├── bpm/
│   │       │   │           │       │   ├── AbstractManualTask.java
│   │       │   │           │       │   ├── ProcessVariable.java
│   │       │   │           │       │   ├── TestActor.java
│   │       │   │           │       │   ├── TestCase.java
│   │       │   │           │       │   ├── TestCaseFactory.java
│   │       │   │           │       │   ├── TestCategory.java
│   │       │   │           │       │   ├── TestCategoryFactory.java
│   │       │   │           │       │   ├── TestHumanTask.java
│   │       │   │           │       │   ├── TestProcess.java
│   │       │   │           │       │   ├── TestProcessFactory.java
│   │       │   │           │       │   └── process/
│   │       │   │           │       │       ├── TestActorMemberFactory.java
│   │       │   │           │       │       ├── TestProcessConnector.java
│   │       │   │           │       │       └── TestProcessConnectorFactory.java
│   │       │   │           │       ├── exception/
│   │       │   │           │       │   ├── NextActivityIsNotAllowedStateException.java
│   │       │   │           │       │   ├── NoActivityLeftException.java
│   │       │   │           │       │   └── TestToolkitException.java
│   │       │   │           │       ├── organization/
│   │       │   │           │       │   ├── AdminUser.java
│   │       │   │           │       │   ├── IdentityAccessor.java
│   │       │   │           │       │   ├── TestGroup.java
│   │       │   │           │       │   ├── TestGroupFactory.java
│   │       │   │           │       │   ├── TestMembership.java
│   │       │   │           │       │   ├── TestMembershipFactory.java
│   │       │   │           │       │   ├── TestRole.java
│   │       │   │           │       │   ├── TestRoleFactory.java
│   │       │   │           │       │   ├── TestToolkitCtx.java
│   │       │   │           │       │   ├── TestUser.java
│   │       │   │           │       │   └── TestUserFactory.java
│   │       │   │           │       └── server/
│   │       │   │           │           ├── MockHttpServletRequest.java
│   │       │   │           │           ├── MockHttpServletResponse.java
│   │       │   │           │           └── MockHttpSession.java
│   │       │   │           └── web/
│   │       │   │               ├── rest/
│   │       │   │               │   └── server/
│   │       │   │               │       └── api/
│   │       │   │               │           └── page/
│   │       │   │               │               └── builder/
│   │       │   │               │                   └── PageItemBuilder.java
│   │       │   │               └── test/
│   │       │   │                   ├── AbstractConsoleTest.java
│   │       │   │                   └── AbstractJUnitWebTest.java
│   │       │   └── resources/
│   │       │       ├── logback.xml
│   │       │       └── org/
│   │       │           └── bonitasoft/
│   │       │               └── test/
│   │       │                   └── toolkit/
│   │       │                       └── connector/
│   │       │                           ├── TestConnector.impl
│   │       │                           └── TestConnector.java
│   │       └── test/
│   │           ├── java/
│   │           │   └── org/
│   │           │       └── bonitasoft/
│   │           │           ├── console/
│   │           │           │   └── common/
│   │           │           │       └── server/
│   │           │           │           ├── auth/
│   │           │           │           │   └── impl/
│   │           │           │           │       └── standard/
│   │           │           │           │           └── StandardAuthenticationManagerImplIT.java
│   │           │           │           └── filter/
│   │           │           │               └── PathTraversalProtectionIT.java
│   │           │           └── web/
│   │           │               └── rest/
│   │           │                   └── server/
│   │           │                       ├── WaitUntil.java
│   │           │                       ├── api/
│   │           │                       │   ├── application/
│   │           │                       │   │   └── APIApplicationIT.java
│   │           │                       │   ├── bpm/
│   │           │                       │   │   ├── cases/
│   │           │                       │   │   │   ├── APIArchivedCaseIT.java
│   │           │                       │   │   │   ├── APIArchivedCommentIT.java
│   │           │                       │   │   │   ├── APICaseDocumentAnotherIT.java
│   │           │                       │   │   │   ├── APICaseDocumentIT.java
│   │           │                       │   │   │   ├── APICaseIT.java
│   │           │                       │   │   │   ├── APICaseVariableIT.java
│   │           │                       │   │   │   └── APICommentIT.java
│   │           │                       │   │   ├── flownode/
│   │           │                       │   │   │   ├── APIActivityIT.java
│   │           │                       │   │   │   ├── APIHumanTaskIT.java
│   │           │                       │   │   │   ├── APITaskIT.java
│   │           │                       │   │   │   └── archive/
│   │           │                       │   │   │       ├── APIArchivedActivityIT.java
│   │           │                       │   │   │       └── APIArchivedHumanTaskIT.java
│   │           │                       │   │   └── process/
│   │           │                       │   │       ├── APIActorIntegrationIT.java
│   │           │                       │   │       ├── APIActorMemberIT.java
│   │           │                       │   │       ├── APICategoryIT.java
│   │           │                       │   │       ├── APIProcessCategoryIT.java
│   │           │                       │   │       ├── APIProcessConnectorDependencyIT.java
│   │           │                       │   │       ├── APIProcessConnectorIT.java
│   │           │                       │   │       ├── APIProcessIT.java
│   │           │                       │   │       └── APIProcessResolutionProblemIT.java
│   │           │                       │   ├── organization/
│   │           │                       │   │   ├── APIGroupIT.java
│   │           │                       │   │   ├── APIMembershipIT.java
│   │           │                       │   │   ├── APIPersonalContactDataIT.java
│   │           │                       │   │   ├── APIProfessionalContactDataIT.java
│   │           │                       │   │   ├── APIRoleIT.java
│   │           │                       │   │   ├── APIUserAnotherIT.java
│   │           │                       │   │   └── APIUserIT.java
│   │           │                       │   └── page/
│   │           │                       │       └── APIPageIT.java
│   │           │                       ├── datastore/
│   │           │                       │   └── bpm/
│   │           │                       │       ├── CommentDatastoreIntegrationIT.java
│   │           │                       │       ├── cases/
│   │           │                       │       │   ├── ArchivedCaseDatastoreIT.java
│   │           │                       │       │   └── CaseDatastoreIT.java
│   │           │                       │       └── flownode/
│   │           │                       │           └── HumanTaskDatastoreIT.java
│   │           │                       └── engineclient/
│   │           │                           ├── CaseEngineClientIT.java
│   │           │                           ├── HumanTaskEngineClientIT.java
│   │           │                           └── ProcessEngineClientIT.java
│   │           └── resources/
│   │               └── appLinkDescriptor.xml
│   ├── bonita-query-tests/
│   │   ├── build.gradle
│   │   └── src/
│   │       └── test/
│   │           ├── java/
│   │           │   └── org/
│   │           │       └── bonitasoft/
│   │           │           └── engine/
│   │           │               ├── application/
│   │           │               │   └── ApplicationQueriesTest.java
│   │           │               ├── core/
│   │           │               │   ├── contract/
│   │           │               │   │   └── data/
│   │           │               │   │       └── ContractDataTest.java
│   │           │               │   ├── form/
│   │           │               │   │   └── FormMappingTest.java
│   │           │               │   └── process/
│   │           │               │       └── instance/
│   │           │               │           └── model/
│   │           │               │               ├── ActorMappingTest.java
│   │           │               │               ├── ArchiveFlowNodeInstanceTest.java
│   │           │               │               ├── ArchiveProcessInstanceQueriesTest.java
│   │           │               │               ├── BPMEventQueriesTest.java
│   │           │               │               ├── CommentsTest.java
│   │           │               │               ├── ConnectorInstanceQueriesTest.java
│   │           │               │               ├── CustomUserInfoQueriesTest.java
│   │           │               │               ├── EventTriggerInstanceQueriesTest.java
│   │           │               │               ├── FlowNodeInstanceTest.java
│   │           │               │               ├── ProcessDefinitionQueriesTest.java
│   │           │               │               ├── ProcessDeploymentInfoQueriesTest.java
│   │           │               │               ├── ProcessInstanceQueriesTest.java
│   │           │               │               ├── RoleTest.java
│   │           │               │               ├── SADataInstanceQueriesTest.java
│   │           │               │               ├── SupervisorQueriesTest.java
│   │           │               │               ├── UserMembershipTest.java
│   │           │               │               └── UserTest.java
│   │           │               ├── document/
│   │           │               │   └── DocumentQueryTest.java
│   │           │               ├── page/
│   │           │               │   └── PageQueriesTest.java
│   │           │               ├── parameter/
│   │           │               │   └── ParameterTest.java
│   │           │               ├── platform/
│   │           │               │   ├── command/
│   │           │               │   │   └── model/
│   │           │               │   │       └── PlatformCommandTest.java
│   │           │               │   └── model/
│   │           │               │       └── impl/
│   │           │               │           └── PlatformTest.java
│   │           │               ├── profile/
│   │           │               │   └── ProfilesTest.java
│   │           │               ├── queriablelogger/
│   │           │               │   └── model/
│   │           │               │       └── QueriableLogTest.java
│   │           │               ├── resources/
│   │           │               │   ├── DependencyServiceQueriesTest.java
│   │           │               │   ├── ProcessResourceServiceQueriesTest.java
│   │           │               │   └── TenantResourceServiceQueriesTest.java
│   │           │               ├── scheduler/
│   │           │               │   └── SchedulerQueryTest.java
│   │           │               └── test/
│   │           │                   └── persistence/
│   │           │                       ├── TestLocalSessionFactoryBuilder.java
│   │           │                       ├── builder/
│   │           │                       │   ├── ActivityInstanceBuilder.java
│   │           │                       │   ├── ActorBuilder.java
│   │           │                       │   ├── ActorMemberBuilder.java
│   │           │                       │   ├── ApplicationBuilder.java
│   │           │                       │   ├── ApplicationMenuBuilder.java
│   │           │                       │   ├── ApplicationPageBuilder.java
│   │           │                       │   ├── BARResourceBuilder.java
│   │           │                       │   ├── BoundaryInstanceBuilder.java
│   │           │                       │   ├── CallActivityInstanceBuilder.java
│   │           │                       │   ├── ConnectorInstanceBuilder.java
│   │           │                       │   ├── CustomUserInfoDefinitionBuilder.java
│   │           │                       │   ├── CustomUserInfoValueBuilder.java
│   │           │                       │   ├── FlowNodeInstanceBuilder.java
│   │           │                       │   ├── GatewayInstanceBuilder.java
│   │           │                       │   ├── GroupBuilder.java
│   │           │                       │   ├── JobDescriptorBuilder.java
│   │           │                       │   ├── JobLogBuilder.java
│   │           │                       │   ├── LoopActivityInstanceBuilder.java
│   │           │                       │   ├── MessageInstanceBuilder.java
│   │           │                       │   ├── PageBuilder.java
│   │           │                       │   ├── PendingActivityMappingBuilder.java
│   │           │                       │   ├── PersistentObjectBuilder.java
│   │           │                       │   ├── ProcessInstanceBuilder.java
│   │           │                       │   ├── ProfileBuilder.java
│   │           │                       │   ├── ProfileMemberBuilder.java
│   │           │                       │   ├── RoleBuilder.java
│   │           │                       │   ├── SupervisorBuilder.java
│   │           │                       │   ├── TenantResourceBuilder.java
│   │           │                       │   ├── UserBuilder.java
│   │           │                       │   ├── UserMembershipBuilder.java
│   │           │                       │   ├── UserTaskInstanceBuilder.java
│   │           │                       │   ├── WaitingMessageEventBuilder.java
│   │           │                       │   └── archive/
│   │           │                       │       ├── ArchivedFlowNodeInstanceBuilder.java
│   │           │                       │       ├── ArchivedPersistentObjectBuilder.java
│   │           │                       │       └── ArchivedUserTaskInstanceBuilder.java
│   │           │                       ├── jdbc/
│   │           │                       │   └── JdbcRowMapper.java
│   │           │                       └── repository/
│   │           │                           ├── ApplicationRepository.java
│   │           │                           ├── BPMEventRepository.java
│   │           │                           ├── CommentRepository.java
│   │           │                           ├── ConnectorInstanceRepository.java
│   │           │                           ├── ContractDataRepository.java
│   │           │                           ├── CustomUserInfoRepository.java
│   │           │                           ├── DependencyRepository.java
│   │           │                           ├── DocumentRepository.java
│   │           │                           ├── FlowNodeInstanceRepository.java
│   │           │                           ├── JobRepository.java
│   │           │                           ├── PageRepository.java
│   │           │                           ├── PlatformRepository.java
│   │           │                           ├── ProcessDeploymentInfoRepository.java
│   │           │                           ├── ProcessInstanceRepository.java
│   │           │                           ├── ProcessResourceRepository.java
│   │           │                           ├── ProfileRepository.java
│   │           │                           ├── RoleRepository.java
│   │           │                           ├── SADataInstanceRepository.java
│   │           │                           ├── SupervisorRepository.java
│   │           │                           ├── TenantResourceRepository.java
│   │           │                           ├── TestRepository.java
│   │           │                           ├── UserMembershipRepository.java
│   │           │                           └── UserRepository.java
│   │           └── resources/
│   │               ├── datasource/
│   │               │   ├── datasource-dependency-h2.xml
│   │               │   └── datasource-dependency-postgres.xml
│   │               ├── logback-test.xml
│   │               └── testContext.xml
│   └── bonita-test-utils/
│       ├── build.gradle
│       └── src/
│           └── main/
│               ├── java/
│               │   └── org/
│               │       └── bonitasoft/
│               │           └── engine/
│               │               ├── connectors/
│               │               │   └── TestConnectorEngineExecutionContext.java
│               │               ├── matchers/
│               │               │   └── NameMatcher.java
│               │               └── test/
│               │                   ├── APITestUtil.java
│               │                   ├── BDMTestUtil.java
│               │                   ├── BuildTestUtil.java
│               │                   ├── CommonTestUtil.java
│               │                   ├── PlatformTestUtil.java
│               │                   ├── Repeat.java
│               │                   ├── RepeatRule.java
│               │                   ├── StartProcessUntilStep.java
│               │                   ├── TestStates.java
│               │                   ├── WaitUntil.java
│               │                   ├── check/
│               │                   │   ├── CheckNbAssignedTaskOf.java
│               │                   │   ├── CheckNbOfActivities.java
│               │                   │   ├── CheckNbOfArchivedActivities.java
│               │                   │   ├── CheckNbOfArchivedActivityInstances.java
│               │                   │   ├── CheckNbOfHumanTasks.java
│               │                   │   ├── CheckNbOfOpenActivities.java
│               │                   │   ├── CheckNbOfProcessInstances.java
│               │                   │   ├── CheckNbPendingTaskOf.java
│               │                   │   ├── CheckNbPendingTasksForUserUsingSearch.java
│               │                   │   └── CheckProcessInstanceIsArchived.java
│               │                   └── wait/
│               │                       ├── WaitForActivity.java
│               │                       ├── WaitForArchivedActivity.java
│               │                       ├── WaitForAssignedStep.java
│               │                       ├── WaitForCompletedArchivedStep.java
│               │                       ├── WaitForDataValue.java
│               │                       ├── WaitForEvent.java
│               │                       ├── WaitForFinalArchivedActivity.java
│               │                       ├── WaitForFlowNode.java
│               │                       ├── WaitForPendingTasks.java
│               │                       ├── WaitForStep.java
│               │                       └── WaitProcessToFinishAndBeArchived.java
│               └── resources/
│                   └── org/
│                       └── bonitasoft/
│                           └── engine/
│                               └── connectors/
│                                   ├── TestConnectorEngineExecutionContext.def
│                                   └── TestConnectorEngineExecutionContext.impl
├── bonita-test-api/
│   ├── build.gradle
│   └── src/
│       ├── main/
│       │   ├── java/
│       │   │   └── org/
│       │   │       └── bonitasoft/
│       │   │           └── engine/
│       │   │               └── test/
│       │   │                   ├── ClientEventUtil.java
│       │   │                   ├── TestDatabaseConfigurator.java
│       │   │                   ├── TestEngine.java
│       │   │                   ├── TestEngineImpl.java
│       │   │                   ├── http/
│       │   │                   │   ├── BonitaHttpServer.java
│       │   │                   │   └── JettyServer.java
│       │   │                   ├── internal/
│       │   │                   │   ├── EngineCommander.java
│       │   │                   │   └── EngineStarter.java
│       │   │                   └── junit/
│       │   │                       └── BonitaEngineRule.java
│       │   └── resources/
│       │       └── logback-test.xml
│       └── test/
│           └── java/
│               └── org/
│                   └── bonitasoft/
│                       └── engine/
│                           └── test/
│                               ├── TestEngineImplTest.java
│                               ├── internal/
│                               │   └── EngineStarterTest.java
│                               └── junit/
│                                   └── BonitaEngineRuleTest.java
├── bpm/
│   ├── bonita-api/
│   │   └── bonita-server-api-http/
│   │       ├── build.gradle
│   │       └── src/
│   │           ├── main/
│   │           │   └── java/
│   │           │       └── org/
│   │           │           └── bonitasoft/
│   │           │               └── engine/
│   │           │                   └── api/
│   │           │                       └── internal/
│   │           │                           └── servlet/
│   │           │                               ├── EngineInitializerListener.java
│   │           │                               ├── HttpAPIServlet.java
│   │           │                               ├── HttpAPIServletCall.java
│   │           │                               ├── ServletCall.java
│   │           │                               └── impl/
│   │           │                                   └── XmlConverter.java
│   │           └── test/
│   │               └── java/
│   │                   └── org/
│   │                       └── bonitasoft/
│   │                           └── engine/
│   │                               └── api/
│   │                                   └── internal/
│   │                                       └── servlet/
│   │                                           ├── EngineInitializerListenerTest.java
│   │                                           ├── HttpAPIServletCallTest.java
│   │                                           ├── HttpAPIServletTest.java
│   │                                           ├── ServletCallDeserializationFilterTest.java
│   │                                           └── impl/
│   │                                               └── XmlConverterTest.java
│   ├── bonita-client/
│   │   ├── build.gradle
│   │   └── src/
│   │       ├── main/
│   │       │   └── java/
│   │       │       └── org/
│   │       │           └── bonitasoft/
│   │       │               └── engine/
│   │       │                   ├── api/
│   │       │                   │   ├── APIClient.java
│   │       │                   │   ├── ApiAccessType.java
│   │       │                   │   ├── BonitaStackTraceElementConverter.java
│   │       │                   │   ├── HTTPServerAPI.java
│   │       │                   │   ├── PlatformAPIAccessor.java
│   │       │                   │   ├── TcpDestination.java
│   │       │                   │   ├── TenantAPIAccessor.java
│   │       │                   │   └── impl/
│   │       │                   │       ├── LocalServerAPIFactory.java
│   │       │                   │       └── XmlConverter.java
│   │       │                   ├── bdm/
│   │       │                   │   ├── BusinessObjectDAOFactory.java
│   │       │                   │   ├── BusinessObjectDaoCreationException.java
│   │       │                   │   └── package-info.java
│   │       │                   ├── exception/
│   │       │                   │   ├── UnableToReadBonitaClientConfiguration.java
│   │       │                   │   └── UnknownAPITypeException.java
│   │       │                   └── util/
│   │       │                       └── APITypeManager.java
│   │       └── test/
│   │           ├── java/
│   │           │   └── org/
│   │           │       └── bonitasoft/
│   │           │           └── engine/
│   │           │               ├── api/
│   │           │               │   ├── APIClientTest.java
│   │           │               │   ├── BusinessObjectDAOUsingAPIClientTest.java
│   │           │               │   ├── HTTPServerAPIIT.java
│   │           │               │   ├── HTTPServerAPITest.java
│   │           │               │   └── impl/
│   │           │               │       └── XmlConverterTest.java
│   │           │               ├── bar/
│   │           │               │   └── BusinessArchiveTest.java
│   │           │               ├── bdm/
│   │           │               │   ├── BusinessObjectDAOFactoryTest.java
│   │           │               │   ├── DummyDAO.java
│   │           │               │   └── DummyDAOImpl.java
│   │           │               └── util/
│   │           │                   └── APITypeManagerTest.java
│   │           └── resources/
│   │               ├── myRealm.properties
│   │               └── org/
│   │                   └── bonitasoft/
│   │                       └── engine/
│   │                           └── bar/
│   │                               ├── MyProcess--1.0.bar
│   │                               └── testBuy_a_mini_extended--6.1.bar
│   ├── bonita-common/
│   │   ├── build.gradle
│   │   └── src/
│   │       ├── main/
│   │       │   ├── java/
│   │       │   │   └── org/
│   │       │   │       └── bonitasoft/
│   │       │   │           └── engine/
│   │       │   │               ├── InvalidFileFormatException.java
│   │       │   │               ├── api/
│   │       │   │               │   ├── APIAccessor.java
│   │       │   │               │   ├── ApplicationAPI.java
│   │       │   │               │   ├── BusinessDataAPI.java
│   │       │   │               │   ├── CommandAPI.java
│   │       │   │               │   ├── CustomUserInfoAPI.java
│   │       │   │               │   ├── DocumentAPI.java
│   │       │   │               │   ├── Experimental.java
│   │       │   │               │   ├── GroupAPI.java
│   │       │   │               │   ├── IdentityAPI.java
│   │       │   │               │   ├── ImportError.java
│   │       │   │               │   ├── ImportStatus.java
│   │       │   │               │   ├── Internal.java
│   │       │   │               │   ├── Logger.java
│   │       │   │               │   ├── LoginAPI.java
│   │       │   │               │   ├── MaintenanceAPI.java
│   │       │   │               │   ├── MembershipAPI.java
│   │       │   │               │   ├── NoSessionRequired.java
│   │       │   │               │   ├── OrganizationAPI.java
│   │       │   │               │   ├── PageAPI.java
│   │       │   │               │   ├── PermissionAPI.java
│   │       │   │               │   ├── PlatformAPI.java
│   │       │   │               │   ├── PlatformCommandAPI.java
│   │       │   │               │   ├── PlatformLoginAPI.java
│   │       │   │               │   ├── ProcessAPI.java
│   │       │   │               │   ├── ProcessManagementAPI.java
│   │       │   │               │   ├── ProcessRuntimeAPI.java
│   │       │   │               │   ├── ProfileAPI.java
│   │       │   │               │   ├── RoleAPI.java
│   │       │   │               │   ├── TenantAdministrationAPI.java
│   │       │   │               │   ├── UserAPI.java
│   │       │   │               │   ├── impl/
│   │       │   │               │   │   └── ClientInterceptor.java
│   │       │   │               │   ├── internal/
│   │       │   │               │   │   ├── ServerAPI.java
│   │       │   │               │   │   ├── ServerWrappedException.java
│   │       │   │               │   │   └── package-info.java
│   │       │   │               │   ├── package-info.java
│   │       │   │               │   ├── permission/
│   │       │   │               │   │   ├── APICallContext.java
│   │       │   │               │   │   └── PermissionRule.java
│   │       │   │               │   ├── platform/
│   │       │   │               │   │   └── PlatformInformationAPI.java
│   │       │   │               │   └── result/
│   │       │   │               │       ├── ExecutionResult.java
│   │       │   │               │       ├── Status.java
│   │       │   │               │       ├── StatusCode.java
│   │       │   │               │       └── StatusContext.java
│   │       │   │               ├── bdm/
│   │       │   │               │   ├── BusinessObjectModelValidationException.java
│   │       │   │               │   ├── Entity.java
│   │       │   │               │   ├── dao/
│   │       │   │               │   │   └── BusinessObjectDAO.java
│   │       │   │               │   ├── lazy/
│   │       │   │               │   │   └── LazyLoaded.java
│   │       │   │               │   ├── serialization/
│   │       │   │               │   │   ├── BusinessDataObjectMapper.java
│   │       │   │               │   │   ├── CustomLocalDateDeserializer.java
│   │       │   │               │   │   ├── CustomLocalDateSerializer.java
│   │       │   │               │   │   ├── CustomLocalDateTimeDeserializer.java
│   │       │   │               │   │   ├── CustomLocalDateTimeSerializer.java
│   │       │   │               │   │   ├── CustomOffsetDateTimeDeserializer.java
│   │       │   │               │   │   └── CustomOffsetDateTimeSerializer.java
│   │       │   │               │   └── validator/
│   │       │   │               │       ├── BusinessObjectModelValidator.java
│   │       │   │               │       ├── UniqueNameValidator.java
│   │       │   │               │       ├── ValidationStatus.java
│   │       │   │               │       └── rule/
│   │       │   │               │           ├── BusinessObjectModelValidationRule.java
│   │       │   │               │           ├── BusinessObjectValidationRule.java
│   │       │   │               │           ├── FieldValidationRule.java
│   │       │   │               │           ├── IndexValidationRule.java
│   │       │   │               │           ├── MultipleAggregationToItselfValidationRule.java
│   │       │   │               │           ├── QueryParameterValidationRule.java
│   │       │   │               │           ├── QueryValidationRule.java
│   │       │   │               │           ├── SimpleFieldValidationRule.java
│   │       │   │               │           ├── UniqueConstraintValidationRule.java
│   │       │   │               │           ├── UniqueNameValidationRule.java
│   │       │   │               │           ├── UniqueSimpleNameValidationRule.java
│   │       │   │               │           ├── ValidationRule.java
│   │       │   │               │           └── composition/
│   │       │   │               │               ├── AggregationAndCompositionValidationRule.java
│   │       │   │               │               ├── CyclicCompositionValidationRule.java
│   │       │   │               │               └── UniquenessCompositionValidationRule.java
│   │       │   │               ├── bpm/
│   │       │   │               │   ├── ArchivedElement.java
│   │       │   │               │   ├── ArchivedRestElement.java
│   │       │   │               │   ├── BaseRestElement.java
│   │       │   │               │   ├── actor/
│   │       │   │               │   │   ├── ActorCriterion.java
│   │       │   │               │   │   ├── ActorInstance.java
│   │       │   │               │   │   ├── ActorMappingExportException.java
│   │       │   │               │   │   ├── ActorMappingImportException.java
│   │       │   │               │   │   ├── ActorNotFoundException.java
│   │       │   │               │   │   ├── ActorUpdater.java
│   │       │   │               │   │   └── impl/
│   │       │   │               │   │       └── ActorInstanceImpl.java
│   │       │   │               │   ├── businessdata/
│   │       │   │               │   │   ├── BusinessDataQueryMetadata.java
│   │       │   │               │   │   ├── BusinessDataQueryResult.java
│   │       │   │               │   │   └── impl/
│   │       │   │               │   │       ├── BusinessDataQueryMetadataImpl.java
│   │       │   │               │   │       └── BusinessDataQueryResultImpl.java
│   │       │   │               │   ├── category/
│   │       │   │               │   │   ├── Category.java
│   │       │   │               │   │   ├── CategoryCriterion.java
│   │       │   │               │   │   ├── CategoryNotFoundException.java
│   │       │   │               │   │   ├── CategoryUpdater.java
│   │       │   │               │   │   ├── impl/
│   │       │   │               │   │   │   └── CategoryImpl.java
│   │       │   │               │   │   └── package-info.java
│   │       │   │               │   ├── comment/
│   │       │   │               │   │   ├── ArchivedComment.java
│   │       │   │               │   │   ├── ArchivedCommentsSearchDescriptor.java
│   │       │   │               │   │   ├── Comment.java
│   │       │   │               │   │   ├── SearchCommentsDescriptor.java
│   │       │   │               │   │   ├── impl/
│   │       │   │               │   │   │   ├── ArchivedCommentImpl.java
│   │       │   │               │   │   │   └── CommentImpl.java
│   │       │   │               │   │   └── package-info.java
│   │       │   │               │   ├── connector/
│   │       │   │               │   │   ├── ArchiveConnectorInstancesSearchDescriptor.java
│   │       │   │               │   │   ├── ArchivedConnectorInstance.java
│   │       │   │               │   │   ├── ConnectorCriterion.java
│   │       │   │               │   │   ├── ConnectorDefinitionWithInputValues.java
│   │       │   │               │   │   ├── ConnectorExecutionException.java
│   │       │   │               │   │   ├── ConnectorImplementationDescriptor.java
│   │       │   │               │   │   ├── ConnectorInstance.java
│   │       │   │               │   │   ├── ConnectorInstanceCriterion.java
│   │       │   │               │   │   ├── ConnectorInstanceNotFoundException.java
│   │       │   │               │   │   ├── ConnectorInstanceWithFailureInfo.java
│   │       │   │               │   │   ├── ConnectorInstancesSearchDescriptor.java
│   │       │   │               │   │   ├── ConnectorNotFoundException.java
│   │       │   │               │   │   ├── ConnectorState.java
│   │       │   │               │   │   ├── ConnectorStateReset.java
│   │       │   │               │   │   ├── InvalidConnectorImplementationException.java
│   │       │   │               │   │   ├── InvalidEvaluationConnectorConditionException.java
│   │       │   │               │   │   └── impl/
│   │       │   │               │   │       ├── ArchivedConnectorInstanceImpl.java
│   │       │   │               │   │       ├── ConnectorDefinitionWithInputValuesImpl.java
│   │       │   │               │   │       ├── ConnectorInstanceImpl.java
│   │       │   │               │   │       └── ConnectorInstanceWithFailureInfoImpl.java
│   │       │   │               │   ├── contract/
│   │       │   │               │   │   └── ContractViolationException.java
│   │       │   │               │   ├── data/
│   │       │   │               │   │   ├── ArchivedDataInstance.java
│   │       │   │               │   │   ├── ArchivedDataNotFoundException.java
│   │       │   │               │   │   ├── DataInstance.java
│   │       │   │               │   │   ├── DataNotFoundException.java
│   │       │   │               │   │   └── impl/
│   │       │   │               │   │       ├── ArchivedDataInstanceImpl.java
│   │       │   │               │   │       ├── BlobDataInstanceImpl.java
│   │       │   │               │   │       ├── BooleanDataInstanceImpl.java
│   │       │   │               │   │       ├── DataInstanceImpl.java
│   │       │   │               │   │       ├── DateDataInstanceImpl.java
│   │       │   │               │   │       ├── DoubleDataInstanceImpl.java
│   │       │   │               │   │       ├── FloatDataInstanceImpl.java
│   │       │   │               │   │       ├── IntegerDataInstanceImpl.java
│   │       │   │               │   │       ├── LongDataInstanceImpl.java
│   │       │   │               │   │       ├── LongTextDataInstanceImpl.java
│   │       │   │               │   │       └── ShortTextDataInstanceImpl.java
│   │       │   │               │   ├── document/
│   │       │   │               │   │   ├── ArchivedDocument.java
│   │       │   │               │   │   ├── ArchivedDocumentNotFoundException.java
│   │       │   │               │   │   ├── ArchivedDocumentsSearchDescriptor.java
│   │       │   │               │   │   ├── DocumentAttachmentException.java
│   │       │   │               │   │   ├── DocumentCriterion.java
│   │       │   │               │   │   ├── DocumentException.java
│   │       │   │               │   │   ├── DocumentNotFoundException.java
│   │       │   │               │   │   ├── DocumentValue.java
│   │       │   │               │   │   ├── DocumentsSearchDescriptor.java
│   │       │   │               │   │   └── impl/
│   │       │   │               │   │       └── ArchivedDocumentImpl.java
│   │       │   │               │   ├── flownode/
│   │       │   │               │   │   ├── ActivityDefinitionNotFoundException.java
│   │       │   │               │   │   ├── ActivityExecutionException.java
│   │       │   │               │   │   ├── ActivityInstance.java
│   │       │   │               │   │   ├── ActivityInstanceCriterion.java
│   │       │   │               │   │   ├── ActivityInstanceNotFoundException.java
│   │       │   │               │   │   ├── ActivityInstanceSearchDescriptor.java
│   │       │   │               │   │   ├── ActivityStates.java
│   │       │   │               │   │   ├── ArchivedActivityInstance.java
│   │       │   │               │   │   ├── ArchivedActivityInstanceNotFoundException.java
│   │       │   │               │   │   ├── ArchivedActivityInstanceSearchDescriptor.java
│   │       │   │               │   │   ├── ArchivedAutomaticTaskInstance.java
│   │       │   │               │   │   ├── ArchivedCallActivityInstance.java
│   │       │   │               │   │   ├── ArchivedFlowElementInstance.java
│   │       │   │               │   │   ├── ArchivedFlowNodeInstance.java
│   │       │   │               │   │   ├── ArchivedFlowNodeInstanceNotFoundException.java
│   │       │   │               │   │   ├── ArchivedFlowNodeInstanceSearchDescriptor.java
│   │       │   │               │   │   ├── ArchivedGatewayInstance.java
│   │       │   │               │   │   ├── ArchivedHumanTaskInstance.java
│   │       │   │               │   │   ├── ArchivedHumanTaskInstanceSearchDescriptor.java
│   │       │   │               │   │   ├── ArchivedLoopActivityInstance.java
│   │       │   │               │   │   ├── ArchivedManualTaskInstance.java
│   │       │   │               │   │   ├── ArchivedMultiInstanceActivityInstance.java
│   │       │   │               │   │   ├── ArchivedReceiveTaskInstance.java
│   │       │   │               │   │   ├── ArchivedSendTaskInstance.java
│   │       │   │               │   │   ├── ArchivedSubProcessActivityInstance.java
│   │       │   │               │   │   ├── ArchivedTaskInstance.java
│   │       │   │               │   │   ├── ArchivedUserTaskInstance.java
│   │       │   │               │   │   ├── AutomaticTaskInstance.java
│   │       │   │               │   │   ├── BPMEventType.java
│   │       │   │               │   │   ├── BoundaryEventInstance.java
│   │       │   │               │   │   ├── CallActivityInstance.java
│   │       │   │               │   │   ├── CatchEventInstance.java
│   │       │   │               │   │   ├── EndEventInstance.java
│   │       │   │               │   │   ├── EventCriterion.java
│   │       │   │               │   │   ├── EventInstance.java
│   │       │   │               │   │   ├── EventTriggerInstance.java
│   │       │   │               │   │   ├── EventTriggerInstanceSearchDescriptor.java
│   │       │   │               │   │   ├── FlowElementInstance.java
│   │       │   │               │   │   ├── FlowElementInstanceSearchDescriptor.java
│   │       │   │               │   │   ├── FlowNodeExecutionException.java
│   │       │   │               │   │   ├── FlowNodeInstance.java
│   │       │   │               │   │   ├── FlowNodeInstanceNotFoundException.java
│   │       │   │               │   │   ├── FlowNodeInstanceSearchDescriptor.java
│   │       │   │               │   │   ├── FlowNodeType.java
│   │       │   │               │   │   ├── GatewayInstance.java
│   │       │   │               │   │   ├── HumanTaskInstance.java
│   │       │   │               │   │   ├── HumanTaskInstanceSearchDescriptor.java
│   │       │   │               │   │   ├── IntermediateCatchEventInstance.java
│   │       │   │               │   │   ├── IntermediateThrowEventInstance.java
│   │       │   │               │   │   ├── LoopActivityInstance.java
│   │       │   │               │   │   ├── ManualTaskInstance.java
│   │       │   │               │   │   ├── MultiInstanceActivityInstance.java
│   │       │   │               │   │   ├── ReceiveTaskInstance.java
│   │       │   │               │   │   ├── SendEventException.java
│   │       │   │               │   │   ├── SendTaskInstance.java
│   │       │   │               │   │   ├── StartEventInstance.java
│   │       │   │               │   │   ├── StateCategory.java
│   │       │   │               │   │   ├── SubProcessActivityInstance.java
│   │       │   │               │   │   ├── TaskInstance.java
│   │       │   │               │   │   ├── ThrowEventInstance.java
│   │       │   │               │   │   ├── TimerEventTriggerInstance.java
│   │       │   │               │   │   ├── TimerEventTriggerInstanceNotFoundException.java
│   │       │   │               │   │   ├── TimerEventTriggerInstanceSearchDescriptor.java
│   │       │   │               │   │   ├── UserTaskInstance.java
│   │       │   │               │   │   ├── UserTaskNotFoundException.java
│   │       │   │               │   │   ├── WaitingErrorEvent.java
│   │       │   │               │   │   ├── WaitingEvent.java
│   │       │   │               │   │   ├── WaitingEventSearchDescriptor.java
│   │       │   │               │   │   ├── WaitingMessageEvent.java
│   │       │   │               │   │   ├── WaitingSignalEvent.java
│   │       │   │               │   │   └── impl/
│   │       │   │               │   │       └── internal/
│   │       │   │               │   │           ├── ActivityInstanceImpl.java
│   │       │   │               │   │           ├── ArchivedActivityInstanceImpl.java
│   │       │   │               │   │           ├── ArchivedAutomaticTaskInstanceImpl.java
│   │       │   │               │   │           ├── ArchivedCallActivityInstanceImpl.java
│   │       │   │               │   │           ├── ArchivedFlowElementInstanceImpl.java
│   │       │   │               │   │           ├── ArchivedFlowNodeInstanceImpl.java
│   │       │   │               │   │           ├── ArchivedGatewayInstanceImpl.java
│   │       │   │               │   │           ├── ArchivedHumanTaskInstanceImpl.java
│   │       │   │               │   │           ├── ArchivedLoopActivityInstanceImpl.java
│   │       │   │               │   │           ├── ArchivedManualTaskInstanceImpl.java
│   │       │   │               │   │           ├── ArchivedMultiInstanceActivityInstanceImpl.java
│   │       │   │               │   │           ├── ArchivedReceiveTaskInstanceImpl.java
│   │       │   │               │   │           ├── ArchivedSendTaskInstanceImpl.java
│   │       │   │               │   │           ├── ArchivedSubProcessActivityInstanceImpl.java
│   │       │   │               │   │           ├── ArchivedUserTaskInstanceImpl.java
│   │       │   │               │   │           ├── AutomaticTaskInstanceImpl.java
│   │       │   │               │   │           ├── BoundaryEventInstanceImpl.java
│   │       │   │               │   │           ├── CallActivityInstanceImpl.java
│   │       │   │               │   │           ├── CatchEventInstanceImpl.java
│   │       │   │               │   │           ├── EndEventInstanceImpl.java
│   │       │   │               │   │           ├── EventInstanceImpl.java
│   │       │   │               │   │           ├── EventTriggerInstanceImpl.java
│   │       │   │               │   │           ├── FlowElementInstanceImpl.java
│   │       │   │               │   │           ├── FlowNodeInstanceImpl.java
│   │       │   │               │   │           ├── GatewayInstanceImpl.java
│   │       │   │               │   │           ├── HumanTaskInstanceImpl.java
│   │       │   │               │   │           ├── IntermediateCatchEventInstanceImpl.java
│   │       │   │               │   │           ├── IntermediateThrowEventInstanceImpl.java
│   │       │   │               │   │           ├── LoopActivityInstanceImpl.java
│   │       │   │               │   │           ├── ManualTaskInstanceImpl.java
│   │       │   │               │   │           ├── MultiInstanceActivityInstanceImpl.java
│   │       │   │               │   │           ├── ReceiveTaskInstanceImpl.java
│   │       │   │               │   │           ├── SendTaskInstanceImpl.java
│   │       │   │               │   │           ├── StartEventInstanceImpl.java
│   │       │   │               │   │           ├── SubProcessActivityInstanceImpl.java
│   │       │   │               │   │           ├── TaskInstanceImpl.java
│   │       │   │               │   │           ├── ThrowEventInstanceImpl.java
│   │       │   │               │   │           ├── TimerEventTriggerInstanceImpl.java
│   │       │   │               │   │           ├── UserTaskInstanceImpl.java
│   │       │   │               │   │           ├── WaitingErrorEventImpl.java
│   │       │   │               │   │           ├── WaitingEventImpl.java
│   │       │   │               │   │           ├── WaitingMessageEventImpl.java
│   │       │   │               │   │           └── WaitingSignalEventImpl.java
│   │       │   │               │   ├── parameter/
│   │       │   │               │   │   ├── ParameterCriterion.java
│   │       │   │               │   │   ├── ParameterInstance.java
│   │       │   │               │   │   └── impl/
│   │       │   │               │   │       └── ParameterImpl.java
│   │       │   │               │   ├── process/
│   │       │   │               │   │   ├── ActivationState.java
│   │       │   │               │   │   ├── ArchivedProcessInstance.java
│   │       │   │               │   │   ├── ArchivedProcessInstanceNotFoundException.java
│   │       │   │               │   │   ├── ArchivedProcessInstancesSearchDescriptor.java
│   │       │   │               │   │   ├── ConfigurationState.java
│   │       │   │               │   │   ├── IllegalProcessStateException.java
│   │       │   │               │   │   ├── Index.java
│   │       │   │               │   │   ├── Problem.java
│   │       │   │               │   │   ├── ProcessActivationException.java
│   │       │   │               │   │   ├── ProcessDefinitionNotFoundException.java
│   │       │   │               │   │   ├── ProcessDeployException.java
│   │       │   │               │   │   ├── ProcessDeploymentInfo.java
│   │       │   │               │   │   ├── ProcessDeploymentInfoCriterion.java
│   │       │   │               │   │   ├── ProcessDeploymentInfoSearchDescriptor.java
│   │       │   │               │   │   ├── ProcessDeploymentInfoUpdater.java
│   │       │   │               │   │   ├── ProcessEnablementException.java
│   │       │   │               │   │   ├── ProcessExecutionException.java
│   │       │   │               │   │   ├── ProcessExportException.java
│   │       │   │               │   │   ├── ProcessInstance.java
│   │       │   │               │   │   ├── ProcessInstanceCriterion.java
│   │       │   │               │   │   ├── ProcessInstanceNotFoundException.java
│   │       │   │               │   │   ├── ProcessInstanceSearchDescriptor.java
│   │       │   │               │   │   ├── ProcessInstanceState.java
│   │       │   │               │   │   ├── ProcessResourceNotFoundException.java
│   │       │   │               │   │   ├── V6FormDeployException.java
│   │       │   │               │   │   └── impl/
│   │       │   │               │   │       ├── ProcessInstanceUpdater.java
│   │       │   │               │   │       └── internal/
│   │       │   │               │   │           ├── ArchivedProcessInstanceImpl.java
│   │       │   │               │   │           ├── ProblemImpl.java
│   │       │   │               │   │           ├── ProcessDeploymentInfoImpl.java
│   │       │   │               │   │           └── ProcessInstanceImpl.java
│   │       │   │               │   └── supervisor/
│   │       │   │               │       ├── ProcessSupervisor.java
│   │       │   │               │       ├── ProcessSupervisorSearchDescriptor.java
│   │       │   │               │       ├── SupervisorNotFoundException.java
│   │       │   │               │       ├── impl/
│   │       │   │               │       │   └── ProcessSupervisorImpl.java
│   │       │   │               │       └── package-info.java
│   │       │   │               ├── business/
│   │       │   │               │   ├── application/
│   │       │   │               │   │   ├── AbstractApplicationCreator.java
│   │       │   │               │   │   ├── AbstractApplicationUpdater.java
│   │       │   │               │   │   ├── ApplicationCreator.java
│   │       │   │               │   │   ├── ApplicationField.java
│   │       │   │               │   │   ├── ApplicationImportPolicy.java
│   │       │   │               │   │   ├── ApplicationLinkCreator.java
│   │       │   │               │   │   ├── ApplicationLinkUpdater.java
│   │       │   │               │   │   ├── ApplicationMenuCreator.java
│   │       │   │               │   │   ├── ApplicationMenuField.java
│   │       │   │               │   │   ├── ApplicationMenuNotFoundException.java
│   │       │   │               │   │   ├── ApplicationMenuSearchDescriptor.java
│   │       │   │               │   │   ├── ApplicationMenuUpdater.java
│   │       │   │               │   │   ├── ApplicationNotFoundException.java
│   │       │   │               │   │   ├── ApplicationPageNotFoundException.java
│   │       │   │               │   │   ├── ApplicationPageSearchDescriptor.java
│   │       │   │               │   │   ├── ApplicationSearchDescriptor.java
│   │       │   │               │   │   ├── ApplicationUpdater.java
│   │       │   │               │   │   ├── CheckedApplicationFieldMap.java
│   │       │   │               │   │   └── InternalProfiles.java
│   │       │   │               │   └── data/
│   │       │   │               │       ├── BusinessDataCrudOperationException.java
│   │       │   │               │       ├── BusinessDataNotFoundException.java
│   │       │   │               │       ├── BusinessDataReference.java
│   │       │   │               │       ├── BusinessDataRepositoryDeploymentException.java
│   │       │   │               │       ├── BusinessDataRepositoryException.java
│   │       │   │               │       ├── InvalidBusinessDataModelException.java
│   │       │   │               │       ├── MultipleBusinessDataReference.java
│   │       │   │               │       ├── SimpleBusinessDataReference.java
│   │       │   │               │       ├── impl/
│   │       │   │               │       │   ├── BusinessDataReferenceImpl.java
│   │       │   │               │       │   ├── MultipleBusinessDataReferenceImpl.java
│   │       │   │               │       │   └── SimpleBusinessDataReferenceImpl.java
│   │       │   │               │       └── package-info.java
│   │       │   │               ├── command/
│   │       │   │               │   ├── CommandCriterion.java
│   │       │   │               │   ├── CommandDescriptor.java
│   │       │   │               │   ├── CommandDescriptorImpl.java
│   │       │   │               │   ├── CommandExecutionException.java
│   │       │   │               │   ├── CommandNotFoundException.java
│   │       │   │               │   ├── CommandParameterizationException.java
│   │       │   │               │   ├── CommandSearchDescriptor.java
│   │       │   │               │   ├── CommandUpdater.java
│   │       │   │               │   ├── DependencyNotFoundException.java
│   │       │   │               │   └── package-info.java
│   │       │   │               ├── connector/
│   │       │   │               │   ├── AbstractConnector.java
│   │       │   │               │   ├── Connector.java
│   │       │   │               │   ├── ConnectorException.java
│   │       │   │               │   ├── ConnectorValidationException.java
│   │       │   │               │   ├── EngineExecutionContext.java
│   │       │   │               │   └── sap/
│   │       │   │               │       └── SAPMonoDestinationDataProvider.java
│   │       │   │               ├── digest/
│   │       │   │               │   └── DigestUtils.java
│   │       │   │               ├── exception/
│   │       │   │               │   ├── APIImplementationNotFoundException.java
│   │       │   │               │   ├── AlreadyExistsException.java
│   │       │   │               │   ├── ApplicationInstallationException.java
│   │       │   │               │   ├── BonitaContextException.java
│   │       │   │               │   ├── BonitaException.java
│   │       │   │               │   ├── BonitaHomeConfigurationException.java
│   │       │   │               │   ├── BonitaHomeNotSetException.java
│   │       │   │               │   ├── BonitaRuntimeException.java
│   │       │   │               │   ├── ClassLoaderException.java
│   │       │   │               │   ├── ContractDataNotFoundException.java
│   │       │   │               │   ├── CreationException.java
│   │       │   │               │   ├── DeletionException.java
│   │       │   │               │   ├── ExceptionContext.java
│   │       │   │               │   ├── ExecutionException.java
│   │       │   │               │   ├── ExportException.java
│   │       │   │               │   ├── FormMappingNotFoundException.java
│   │       │   │               │   ├── ImportException.java
│   │       │   │               │   ├── IncorrectParameterException.java
│   │       │   │               │   ├── InvalidGroupNameException.java
│   │       │   │               │   ├── InvalidPageTokenException.java
│   │       │   │               │   ├── InvalidPageZipContentException.java
│   │       │   │               │   ├── InvalidPageZipInconsistentException.java
│   │       │   │               │   ├── InvalidPageZipMissingAPropertyException.java
│   │       │   │               │   ├── InvalidPageZipMissingIndexException.java
│   │       │   │               │   ├── InvalidPageZipMissingPropertiesException.java
│   │       │   │               │   ├── InvalidXMLException.java
│   │       │   │               │   ├── MissingServiceException.java
│   │       │   │               │   ├── NotFoundException.java
│   │       │   │               │   ├── NotSerializableException.java
│   │       │   │               │   ├── ProcessInstanceHierarchicalDeletionException.java
│   │       │   │               │   ├── RetrieveException.java
│   │       │   │               │   ├── SearchException.java
│   │       │   │               │   ├── ServerAPIException.java
│   │       │   │               │   ├── StackTraceTransformer.java
│   │       │   │               │   ├── TenantStatusException.java
│   │       │   │               │   ├── UnauthorizedAccessException.java
│   │       │   │               │   ├── UnavailableLockException.java
│   │       │   │               │   ├── UnknownElementType.java
│   │       │   │               │   ├── UpdateException.java
│   │       │   │               │   ├── UpdatingWithInvalidPageTokenException.java
│   │       │   │               │   ├── UpdatingWithInvalidPageZipContentException.java
│   │       │   │               │   └── package-info.java
│   │       │   │               ├── expression/
│   │       │   │               │   └── ExpressionEvaluationException.java
│   │       │   │               ├── filter/
│   │       │   │               │   ├── AbstractUserFilter.java
│   │       │   │               │   ├── UserFilter.java
│   │       │   │               │   └── UserFilterException.java
│   │       │   │               ├── form/
│   │       │   │               │   ├── FormMapping.java
│   │       │   │               │   └── FormMappingSearchDescriptor.java
│   │       │   │               ├── home/
│   │       │   │               │   ├── BonitaHome.java
│   │       │   │               │   └── package-info.java
│   │       │   │               ├── identity/
│   │       │   │               │   ├── ContactDataCreator.java
│   │       │   │               │   ├── ContactDataUpdater.java
│   │       │   │               │   ├── CustomUserInfoDefinitionCreator.java
│   │       │   │               │   ├── CustomUserInfoValueSearchDescriptor.java
│   │       │   │               │   ├── CustomUserInfoValueUpdater.java
│   │       │   │               │   ├── GroupCreator.java
│   │       │   │               │   ├── GroupCriterion.java
│   │       │   │               │   ├── GroupNotFoundException.java
│   │       │   │               │   ├── GroupSearchDescriptor.java
│   │       │   │               │   ├── GroupUpdater.java
│   │       │   │               │   ├── ImportPolicy.java
│   │       │   │               │   ├── InvalidOrganizationFileFormatException.java
│   │       │   │               │   ├── MembershipNotFoundException.java
│   │       │   │               │   ├── OrganizationExportException.java
│   │       │   │               │   ├── OrganizationImportException.java
│   │       │   │               │   ├── RoleCreator.java
│   │       │   │               │   ├── RoleCriterion.java
│   │       │   │               │   ├── RoleNotFoundException.java
│   │       │   │               │   ├── RoleSearchDescriptor.java
│   │       │   │               │   ├── RoleUpdater.java
│   │       │   │               │   ├── UserCreator.java
│   │       │   │               │   ├── UserCriterion.java
│   │       │   │               │   ├── UserMembershipCriterion.java
│   │       │   │               │   ├── UserNotFoundException.java
│   │       │   │               │   ├── UserSearchDescriptor.java
│   │       │   │               │   ├── UserUpdater.java
│   │       │   │               │   └── package-info.java
│   │       │   │               ├── io/
│   │       │   │               │   ├── FileContent.java
│   │       │   │               │   ├── FileOperations.java
│   │       │   │               │   ├── IOUtil.java
│   │       │   │               │   ├── IOUtils.java
│   │       │   │               │   └── PropertiesManager.java
│   │       │   │               ├── job/
│   │       │   │               │   ├── FailedJob.java
│   │       │   │               │   ├── impl/
│   │       │   │               │   │   └── FailedJobImpl.java
│   │       │   │               │   └── package-info.java
│   │       │   │               ├── maintenance/
│   │       │   │               │   ├── MaintenanceDetails.java
│   │       │   │               │   ├── MaintenanceDetailsNotFoundException.java
│   │       │   │               │   └── impl/
│   │       │   │               │       └── MaintenanceDetailsImpl.java
│   │       │   │               ├── page/
│   │       │   │               │   ├── AuthorizationRuleConstants.java
│   │       │   │               │   ├── ContentType.java
│   │       │   │               │   ├── Page.java
│   │       │   │               │   ├── PageCreator.java
│   │       │   │               │   ├── PageNotFoundException.java
│   │       │   │               │   ├── PageSearchDescriptor.java
│   │       │   │               │   ├── PageURL.java
│   │       │   │               │   ├── PageUpdater.java
│   │       │   │               │   ├── URLAdapterConstants.java
│   │       │   │               │   └── impl/
│   │       │   │               │       └── PageImpl.java
│   │       │   │               ├── platform/
│   │       │   │               │   ├── IllegalNodeStateException.java
│   │       │   │               │   ├── InvalidPlatformCredentialsException.java
│   │       │   │               │   ├── LoginException.java
│   │       │   │               │   ├── LogoutException.java
│   │       │   │               │   ├── NodeNotStartedException.java
│   │       │   │               │   ├── Platform.java
│   │       │   │               │   ├── PlatformLoginException.java
│   │       │   │               │   ├── PlatformLogoutException.java
│   │       │   │               │   ├── PlatformNotFoundException.java
│   │       │   │               │   ├── PlatformState.java
│   │       │   │               │   ├── StartNodeException.java
│   │       │   │               │   ├── StopNodeException.java
│   │       │   │               │   ├── UnknownUserException.java
│   │       │   │               │   ├── command/
│   │       │   │               │   │   └── package-info.java
│   │       │   │               │   ├── impl/
│   │       │   │               │   │   └── PlatformImpl.java
│   │       │   │               │   └── package-info.java
│   │       │   │               ├── profile/
│   │       │   │               │   ├── ProfileCriterion.java
│   │       │   │               │   ├── ProfileMemberCreator.java
│   │       │   │               │   ├── ProfileMemberNotFoundException.java
│   │       │   │               │   ├── ProfileMemberSearchDescriptor.java
│   │       │   │               │   ├── ProfileNotFoundException.java
│   │       │   │               │   └── ProfileSearchDescriptor.java
│   │       │   │               ├── search/
│   │       │   │               │   ├── Order.java
│   │       │   │               │   ├── SearchFilterOperation.java
│   │       │   │               │   ├── SearchOptions.java
│   │       │   │               │   ├── SearchOptionsBuilder.java
│   │       │   │               │   ├── SearchResult.java
│   │       │   │               │   ├── Sort.java
│   │       │   │               │   ├── impl/
│   │       │   │               │   │   ├── SearchFilter.java
│   │       │   │               │   │   ├── SearchOptionsImpl.java
│   │       │   │               │   │   ├── SearchResultImpl.java
│   │       │   │               │   │   └── package-info.java
│   │       │   │               │   └── package-info.java
│   │       │   │               ├── session/
│   │       │   │               │   ├── APISession.java
│   │       │   │               │   ├── InvalidSessionException.java
│   │       │   │               │   ├── PlatformSession.java
│   │       │   │               │   ├── Session.java
│   │       │   │               │   ├── SessionNotFoundException.java
│   │       │   │               │   ├── impl/
│   │       │   │               │   │   ├── APISessionImpl.java
│   │       │   │               │   │   ├── PlatformSessionImpl.java
│   │       │   │               │   │   └── SessionImpl.java
│   │       │   │               │   └── package-info.java
│   │       │   │               ├── tenant/
│   │       │   │               │   ├── TenantResource.java
│   │       │   │               │   ├── TenantResourceState.java
│   │       │   │               │   └── TenantResourceType.java
│   │       │   │               ├── util/
│   │       │   │               │   └── package-info.java
│   │       │   │               └── xml/
│   │       │   │                   ├── DocumentManager.java
│   │       │   │                   └── XStreamDenyList.java
│   │       │   └── javadoc/
│   │       │       ├── overview.html
│   │       │       └── stylesheet.css
│   │       ├── test/
│   │       │   ├── java/
│   │       │   │   └── org/
│   │       │   │       └── bonitasoft/
│   │       │   │           └── engine/
│   │       │   │               ├── api/
│   │       │   │               │   └── permission/
│   │       │   │               │       └── APICallContextTest.java
│   │       │   │               ├── bdm/
│   │       │   │               │   ├── serialization/
│   │       │   │               │   │   ├── BusinessDataObjectMapperTest.java
│   │       │   │               │   │   ├── CustomLocalDateDeserializerTest.java
│   │       │   │               │   │   ├── CustomLocalDateSerializerTest.java
│   │       │   │               │   │   ├── CustomLocalDateTimeDeserializerTest.java
│   │       │   │               │   │   ├── CustomLocalDateTimeSerializerTest.java
│   │       │   │               │   │   ├── CustomOffsetDateTimeDeserializerTest.java
│   │       │   │               │   │   ├── CustomOffsetDateTimeSerializerTest.java
│   │       │   │               │   │   └── model/
│   │       │   │               │   │       └── Invoice.java
│   │       │   │               │   └── validator/
│   │       │   │               │       ├── BusinessObjectModelValidatorTest.java
│   │       │   │               │       ├── UniqueNameValidatorTest.java
│   │       │   │               │       ├── ValidationStatusTest.java
│   │       │   │               │       └── rule/
│   │       │   │               │           ├── BusinessObjectModelValidationRuleTest.java
│   │       │   │               │           ├── BusinessObjectValidationRuleTest.java
│   │       │   │               │           ├── FieldValidationRuleTest.java
│   │       │   │               │           ├── IndexValidationRuleTest.java
│   │       │   │               │           ├── MultipleAggregationToItselfValidationRuleTest.java
│   │       │   │               │           ├── QueryParameterValidationRuleTest.java
│   │       │   │               │           ├── QueryValidationRuleTest.java
│   │       │   │               │           ├── SimpleFieldValidationRuleTest.java
│   │       │   │               │           ├── UniqueConstraintValidationRuleTest.java
│   │       │   │               │           ├── UniqueNameValidationRuleTest.java
│   │       │   │               │           ├── UniqueSimpleNameValidationRuleTest.java
│   │       │   │               │           ├── ValidationRuleTest.java
│   │       │   │               │           └── composition/
│   │       │   │               │               ├── AggregationAndCompositionValidationRuleTest.java
│   │       │   │               │               ├── CyclicCompositionValidationRuleTest.java
│   │       │   │               │               └── UniquenessCompositionValidationRuleTest.java
│   │       │   │               ├── bpm/
│   │       │   │               │   └── document/
│   │       │   │               │       └── DocumentValueTest.java
│   │       │   │               ├── business/
│   │       │   │               │   └── application/
│   │       │   │               │       ├── ApplicationLinkUpdaterTest.java
│   │       │   │               │       └── ApplicationUpdaterTest.java
│   │       │   │               ├── connector/
│   │       │   │               │   └── sap/
│   │       │   │               │       └── SAPMonoDestinationDataProviderTest.java
│   │       │   │               ├── digest/
│   │       │   │               │   └── DigestUtilsTest.java
│   │       │   │               ├── exception/
│   │       │   │               │   ├── BonitaExceptionTest.java
│   │       │   │               │   └── StackTraceTransformerTest.java
│   │       │   │               ├── expression/
│   │       │   │               │   └── ExpressionEvaluationExceptionTest.java
│   │       │   │               ├── filter/
│   │       │   │               │   └── AbstractUserFilterTest.java
│   │       │   │               ├── io/
│   │       │   │               │   └── FileOperationsTest.java
│   │       │   │               ├── page/
│   │       │   │               │   ├── PageCreatorTest.java
│   │       │   │               │   ├── PageUpdaterTest.java
│   │       │   │               │   └── impl/
│   │       │   │               │       ├── PageImplAssert.java
│   │       │   │               │       └── PageImplTest.java
│   │       │   │               ├── search/
│   │       │   │               │   └── impl/
│   │       │   │               │       └── SearchOptionsImplTest.java
│   │       │   │               └── util/
│   │       │   │                   └── IOUtilTest.java
│   │       │   └── resources/
│   │       │       ├── logback-test.xml
│   │       │       └── org/
│   │       │           └── bonitasoft/
│   │       │               └── engine/
│   │       │                   └── bdm/
│   │       │                       └── serialization/
│   │       │                           └── simpleInvoice.json
│   │       └── testFixtures/
│   │           └── java/
│   │               └── org/
│   │                   └── bonitasoft/
│   │                       └── engine/
│   │                           ├── bdm/
│   │                           │   └── validator/
│   │                           │       └── assertion/
│   │                           │           ├── RuleOfCondition.java
│   │                           │           └── ValidationStatusAssert.java
│   │                           └── io/
│   │                               └── FileAndContentUtils.java
│   ├── bonita-core/
│   │   ├── bonita-actor-mapping/
│   │   │   ├── build.gradle
│   │   │   └── src/
│   │   │       ├── main/
│   │   │       │   ├── java/
│   │   │       │   │   └── org/
│   │   │       │   │       └── bonitasoft/
│   │   │       │   │           └── engine/
│   │   │       │   │               └── actor/
│   │   │       │   │                   └── mapping/
│   │   │       │   │                       ├── ActorMappingService.java
│   │   │       │   │                       ├── SActorCreationException.java
│   │   │       │   │                       ├── SActorDeletionException.java
│   │   │       │   │                       ├── SActorMemberAlreadyExistsException.java
│   │   │       │   │                       ├── SActorMemberCreationException.java
│   │   │       │   │                       ├── SActorMemberDeletionException.java
│   │   │       │   │                       ├── SActorMemberNotFoundException.java
│   │   │       │   │                       ├── SActorNotFoundException.java
│   │   │       │   │                       ├── SActorUpdateException.java
│   │   │       │   │                       ├── impl/
│   │   │       │   │                       │   ├── ActorMappingServiceImpl.java
│   │   │       │   │                       │   ├── SActorLogBuilderFactoryImpl.java
│   │   │       │   │                       │   └── SActorLogBuilderImpl.java
│   │   │       │   │                       ├── model/
│   │   │       │   │                       │   ├── SActor.java
│   │   │       │   │                       │   ├── SActorFilter.java
│   │   │       │   │                       │   ├── SActorLogBuilder.java
│   │   │       │   │                       │   ├── SActorLogBuilderFactory.java
│   │   │       │   │                       │   ├── SActorMember.java
│   │   │       │   │                       │   ├── SActorUpdateBuilder.java
│   │   │       │   │                       │   ├── SActorUpdateBuilderFactory.java
│   │   │       │   │                       │   ├── SMemberType.java
│   │   │       │   │                       │   └── impl/
│   │   │       │   │                       │       ├── SActorUpdateBuilderFactoryImpl.java
│   │   │       │   │                       │       └── SActorUpdateBuilderImpl.java
│   │   │       │   │                       └── persistence/
│   │   │       │   │                           └── SelectDescriptorBuilder.java
│   │   │       │   └── resources/
│   │   │       │       └── org/
│   │   │       │           └── bonitasoft/
│   │   │       │               └── engine/
│   │   │       │                   └── actor/
│   │   │       │                       └── mapping/
│   │   │       │                           └── model/
│   │   │       │                               └── impl/
│   │   │       │                                   └── hibernate/
│   │   │       │                                       └── actor.queries.hbm.xml
│   │   │       └── test/
│   │   │           └── java/
│   │   │               └── org/
│   │   │                   └── bonitasoft/
│   │   │                       └── engine/
│   │   │                           └── actor/
│   │   │                               └── mapping/
│   │   │                                   └── impl/
│   │   │                                       └── ActorMappingServiceImplTest.java
│   │   ├── bonita-category/
│   │   │   ├── build.gradle
│   │   │   └── src/
│   │   │       ├── main/
│   │   │       │   ├── java/
│   │   │       │   │   └── org/
│   │   │       │   │       └── bonitasoft/
│   │   │       │   │           └── engine/
│   │   │       │   │               └── core/
│   │   │       │   │                   └── category/
│   │   │       │   │                       ├── CategoryService.java
│   │   │       │   │                       ├── SCategoryCriterion.java
│   │   │       │   │                       ├── exception/
│   │   │       │   │                       │   ├── SCategoryAlreadyExistsException.java
│   │   │       │   │                       │   ├── SCategoryCreationException.java
│   │   │       │   │                       │   ├── SCategoryDeletionException.java
│   │   │       │   │                       │   ├── SCategoryException.java
│   │   │       │   │                       │   ├── SCategoryInProcessAlreadyExistsException.java
│   │   │       │   │                       │   ├── SCategoryNotFoundException.java
│   │   │       │   │                       │   ├── SIndexOutOfRangeException.java
│   │   │       │   │                       │   └── SPageOutOfRangeException.java
│   │   │       │   │                       ├── impl/
│   │   │       │   │                       │   └── CategoryServiceImpl.java
│   │   │       │   │                       ├── model/
│   │   │       │   │                       │   ├── SCategory.java
│   │   │       │   │                       │   ├── SProcessCategoryMapping.java
│   │   │       │   │                       │   └── builder/
│   │   │       │   │                       │       ├── SCategoryLogBuilder.java
│   │   │       │   │                       │       ├── SCategoryLogBuilderFactory.java
│   │   │       │   │                       │       ├── SCategoryUpdateBuilder.java
│   │   │       │   │                       │       ├── SCategoryUpdateBuilderFactory.java
│   │   │       │   │                       │       ├── SProcessCategoryMappingBuilder.java
│   │   │       │   │                       │       ├── SProcessCategoryMappingBuilderFactory.java
│   │   │       │   │                       │       └── impl/
│   │   │       │   │                       │           ├── SCategoryLogBuilderFactoryImpl.java
│   │   │       │   │                       │           ├── SCategoryLogBuilderImpl.java
│   │   │       │   │                       │           ├── SCategoryLogIndexesMapper.java
│   │   │       │   │                       │           ├── SCategoryUpdateBuilderFactoryImpl.java
│   │   │       │   │                       │           ├── SCategoryUpdateBuilderImpl.java
│   │   │       │   │                       │           ├── SProcessCategoryMappingBuilderFactoryImpl.java
│   │   │       │   │                       │           └── SProcessCategoryMappingBuilderImpl.java
│   │   │       │   │                       └── persistence/
│   │   │       │   │                           └── SelectDescriptorBuilder.java
│   │   │       │   └── resources/
│   │   │       │       └── org/
│   │   │       │           └── bonitasoft/
│   │   │       │               └── engine/
│   │   │       │                   └── core/
│   │   │       │                       └── category/
│   │   │       │                           └── model/
│   │   │       │                               └── impl/
│   │   │       │                                   └── hibernate/
│   │   │       │                                       └── category.queries.hbm.xml
│   │   │       └── test/
│   │   │           └── java/
│   │   │               └── org/
│   │   │                   └── bonitasoft/
│   │   │                       └── engine/
│   │   │                           └── core/
│   │   │                               └── category/
│   │   │                                   └── impl/
│   │   │                                       └── CategoryServiceImplTest.java
│   │   ├── bonita-contract-data/
│   │   │   ├── build.gradle
│   │   │   └── src/
│   │   │       ├── main/
│   │   │       │   ├── java/
│   │   │       │   │   └── org/
│   │   │       │   │       └── bonitasoft/
│   │   │       │   │           └── engine/
│   │   │       │   │               └── core/
│   │   │       │   │                   └── contract/
│   │   │       │   │                       └── data/
│   │   │       │   │                           ├── ContractDataService.java
│   │   │       │   │                           ├── ContractDataServiceImpl.java
│   │   │       │   │                           ├── SAContractData.java
│   │   │       │   │                           ├── SAProcessContractData.java
│   │   │       │   │                           ├── SATaskContractData.java
│   │   │       │   │                           ├── SContractData.java
│   │   │       │   │                           ├── SContractDataCreationException.java
│   │   │       │   │                           ├── SContractDataDeletionException.java
│   │   │       │   │                           ├── SContractDataLogBuilder.java
│   │   │       │   │                           ├── SContractDataNotFoundException.java
│   │   │       │   │                           ├── SProcessContractData.java
│   │   │       │   │                           └── STaskContractData.java
│   │   │       │   └── resources/
│   │   │       │       └── org/
│   │   │       │           └── bonitasoft/
│   │   │       │               └── engine/
│   │   │       │                   └── core/
│   │   │       │                       └── contract/
│   │   │       │                           └── data/
│   │   │       │                               └── model/
│   │   │       │                                   └── impl/
│   │   │       │                                       └── hibernate/
│   │   │       │                                           └── contract.queries.hbm.xml
│   │   │       └── test/
│   │   │           └── java/
│   │   │               └── org/
│   │   │                   └── bonitasoft/
│   │   │                       └── engine/
│   │   │                           └── core/
│   │   │                               └── contract/
│   │   │                                   └── data/
│   │   │                                       ├── ContractDataServiceImplTest.java
│   │   │                                       ├── SAProcessContractDataTest.java
│   │   │                                       └── SATaskContractDataTest.java
│   │   ├── bonita-core-data/
│   │   │   ├── build.gradle
│   │   │   └── src/
│   │   │       ├── main/
│   │   │       │   └── java/
│   │   │       │       └── org/
│   │   │       │           └── bonitasoft/
│   │   │       │               └── engine/
│   │   │       │                   └── core/
│   │   │       │                       └── data/
│   │   │       │                           └── instance/
│   │   │       │                               ├── TransientDataService.java
│   │   │       │                               └── impl/
│   │   │       │                                   ├── TransientDataExpressionExecutorStrategy.java
│   │   │       │                                   └── TransientDataServiceImpl.java
│   │   │       └── test/
│   │   │           └── java/
│   │   │               └── org/
│   │   │                   └── bonitasoft/
│   │   │                       └── engine/
│   │   │                           └── core/
│   │   │                               └── data/
│   │   │                                   └── instance/
│   │   │                                       └── impl/
│   │   │                                           └── TransientDataServiceImplTest.java
│   │   ├── bonita-form-mapping/
│   │   │   ├── build.gradle
│   │   │   └── src/
│   │   │       ├── main/
│   │   │       │   ├── java/
│   │   │       │   │   └── org/
│   │   │       │   │       └── bonitasoft/
│   │   │       │   │           └── engine/
│   │   │       │   │               └── core/
│   │   │       │   │                   └── form/
│   │   │       │   │                       ├── AuthorizationRuleMapping.java
│   │   │       │   │                       ├── FormMappingKeyGenerator.java
│   │   │       │   │                       ├── FormMappingService.java
│   │   │       │   │                       ├── SFormMapping.java
│   │   │       │   │                       └── impl/
│   │   │       │   │                           ├── AuthorizationRuleMappingImpl.java
│   │   │       │   │                           ├── FormMappingKeyGeneratorImpl.java
│   │   │       │   │                           ├── FormMappingServiceImpl.java
│   │   │       │   │                           └── ManagerInvolvedAuthorizationRuleMappingImpl.java
│   │   │       │   └── resources/
│   │   │       │       └── org/
│   │   │       │           └── bonitasoft/
│   │   │       │               └── engine/
│   │   │       │                   └── core/
│   │   │       │                       └── form/
│   │   │       │                           └── impl/
│   │   │       │                               └── form-mapping.queries.hbm.xml
│   │   │       └── test/
│   │   │           └── java/
│   │   │               └── org/
│   │   │                   └── bonitasoft/
│   │   │                       └── engine/
│   │   │                           └── core/
│   │   │                               └── form/
│   │   │                                   └── impl/
│   │   │                                       ├── FormMappingKeyGeneratorImplTest.java
│   │   │                                       ├── FormMappingServiceImplTest.java
│   │   │                                       └── ManagerInvolvedAuthorizationRuleMappingImplTest.java
│   │   ├── bonita-home-server/
│   │   │   ├── build.gradle
│   │   │   └── src/
│   │   │       ├── main/
│   │   │       │   └── java/
│   │   │       │       └── org/
│   │   │       │           └── bonitasoft/
│   │   │       │               └── engine/
│   │   │       │                   └── home/
│   │   │       │                       ├── BonitaHomeServer.java
│   │   │       │                       ├── BonitaResource.java
│   │   │       │                       ├── ProfileStorage.java
│   │   │       │                       └── Util.java
│   │   │       └── test/
│   │   │           └── java/
│   │   │               └── org/
│   │   │                   └── bonitasoft/
│   │   │                       └── engine/
│   │   │                           └── home/
│   │   │                               ├── BonitaHomeServerTest.java
│   │   │                               ├── ProfileStorageTest.java
│   │   │                               └── UtilTest.java
│   │   ├── bonita-login/
│   │   │   ├── build.gradle
│   │   │   └── src/
│   │   │       ├── main/
│   │   │       │   └── java/
│   │   │       │       └── org/
│   │   │       │           └── bonitasoft/
│   │   │       │               └── engine/
│   │   │       │                   └── core/
│   │   │       │                       └── login/
│   │   │       │                           ├── LoginService.java
│   │   │       │                           ├── SLoginException.java
│   │   │       │                           ├── SecuredLoginServiceImpl.java
│   │   │       │                           └── TechnicalUser.java
│   │   │       └── test/
│   │   │           └── java/
│   │   │               └── org/
│   │   │                   └── bonitasoft/
│   │   │                       └── engine/
│   │   │                           └── core/
│   │   │                               └── login/
│   │   │                                   └── SecuredLoginServiceImplTest.java
│   │   ├── bonita-parameter/
│   │   │   ├── build.gradle
│   │   │   └── src/
│   │   │       ├── main/
│   │   │       │   ├── java/
│   │   │       │   │   └── org/
│   │   │       │   │       └── bonitasoft/
│   │   │       │   │           └── engine/
│   │   │       │   │               └── parameter/
│   │   │       │   │                   ├── OrderBy.java
│   │   │       │   │                   ├── ParameterService.java
│   │   │       │   │                   ├── ParameterServiceImpl.java
│   │   │       │   │                   ├── SOutOfBoundException.java
│   │   │       │   │                   ├── SParameter.java
│   │   │       │   │                   ├── SParameterNameNotFoundException.java
│   │   │       │   │                   └── SParameterProcessNotFoundException.java
│   │   │       │   └── resources/
│   │   │       │       └── org/
│   │   │       │           └── bonitasoft/
│   │   │       │               └── engine/
│   │   │       │                   └── parameter/
│   │   │       │                       └── parameter.queries.hbm.xml
│   │   │       └── test/
│   │   │           └── java/
│   │   │               └── org/
│   │   │                   └── bonitasoft/
│   │   │                       └── engine/
│   │   │                           └── parameter/
│   │   │                               └── ParameterServiceImplTest.java
│   │   ├── bonita-platform-login/
│   │   │   ├── build.gradle
│   │   │   └── src/
│   │   │       ├── main/
│   │   │       │   └── java/
│   │   │       │       └── org/
│   │   │       │           └── bonitasoft/
│   │   │       │               └── engine/
│   │   │       │                   └── core/
│   │   │       │                       └── platform/
│   │   │       │                           └── login/
│   │   │       │                               ├── PlatformLoginService.java
│   │   │       │                               ├── SInvalidPlatformCredentialsException.java
│   │   │       │                               ├── SPlatformLoginException.java
│   │   │       │                               └── impl/
│   │   │       │                                   └── PlatformLoginServiceImpl.java
│   │   │       └── test/
│   │   │           └── java/
│   │   │               └── org/
│   │   │                   └── bonitasoft/
│   │   │                       └── engine/
│   │   │                           └── core/
│   │   │                               └── platform/
│   │   │                                   └── login/
│   │   │                                       └── impl/
│   │   │                                           └── PlatformLoginServiceImplTest.java
│   │   ├── bonita-process-comment/
│   │   │   ├── build.gradle
│   │   │   └── src/
│   │   │       └── main/
│   │   │           ├── java/
│   │   │           │   └── org/
│   │   │           │       └── bonitasoft/
│   │   │           │           └── engine/
│   │   │           │               └── core/
│   │   │           │                   └── process/
│   │   │           │                       └── comment/
│   │   │           │                           ├── api/
│   │   │           │                           │   ├── SCommentAddException.java
│   │   │           │                           │   ├── SCommentDeletionException.java
│   │   │           │                           │   ├── SCommentException.java
│   │   │           │                           │   ├── SCommentNotFoundException.java
│   │   │           │                           │   ├── SCommentService.java
│   │   │           │                           │   ├── SystemCommentType.java
│   │   │           │                           │   └── impl/
│   │   │           │                           │       └── SCommentServiceImpl.java
│   │   │           │                           └── model/
│   │   │           │                               ├── SComment.java
│   │   │           │                               ├── SHumanComment.java
│   │   │           │                               ├── SSystemComment.java
│   │   │           │                               ├── archive/
│   │   │           │                               │   └── SAComment.java
│   │   │           │                               └── builder/
│   │   │           │                                   ├── SCommentLogBuilderFactory.java
│   │   │           │                                   └── impl/
│   │   │           │                                       └── SCommentLogBuilderFactoryImpl.java
│   │   │           └── resources/
│   │   │               └── org/
│   │   │                   └── bonitasoft/
│   │   │                       └── engine/
│   │   │                           └── core/
│   │   │                               └── process/
│   │   │                                   └── comment/
│   │   │                                       └── model/
│   │   │                                           └── impl/
│   │   │                                               └── hibernate/
│   │   │                                                   ├── archive.comment.queries.hbm.xml
│   │   │                                                   └── comment.queries.hbm.xml
│   │   ├── bonita-process-definition/
│   │   │   ├── build.gradle
│   │   │   └── src/
│   │   │       ├── main/
│   │   │       │   ├── java/
│   │   │       │   │   └── org/
│   │   │       │   │       └── bonitasoft/
│   │   │       │   │           └── engine/
│   │   │       │   │               └── core/
│   │   │       │   │                   ├── expression/
│   │   │       │   │                   │   └── control/
│   │   │       │   │                   │       ├── api/
│   │   │       │   │                   │       │   ├── ExpressionResolverService.java
│   │   │       │   │                   │       │   └── impl/
│   │   │       │   │                   │       │       └── ExpressionResolverServiceImpl.java
│   │   │       │   │                   │       └── model/
│   │   │       │   │                   │           └── SExpressionContext.java
│   │   │       │   │                   ├── operation/
│   │   │       │   │                   │   ├── LeftOperandHandler.java
│   │   │       │   │                   │   ├── OperationExecutorStrategy.java
│   │   │       │   │                   │   ├── OperationExecutorStrategyProvider.java
│   │   │       │   │                   │   ├── OperationResult.java
│   │   │       │   │                   │   ├── OperationService.java
│   │   │       │   │                   │   ├── exception/
│   │   │       │   │                   │   │   └── SOperationExecutionException.java
│   │   │       │   │                   │   ├── impl/
│   │   │       │   │                   │   │   ├── AssignmentOperationExecutorStrategy.java
│   │   │       │   │                   │   │   ├── ExternalDataLeftOperandHandler.java
│   │   │       │   │                   │   │   ├── JavaMethodOperationExecutorStrategy.java
│   │   │       │   │                   │   │   ├── LeftOperandIndexes.java
│   │   │       │   │                   │   │   ├── LeftOperandUpdateStatus.java
│   │   │       │   │                   │   │   ├── OperationServiceImpl.java
│   │   │       │   │                   │   │   ├── OperationsAnalyzer.java
│   │   │       │   │                   │   │   ├── PersistRightOperandResolver.java
│   │   │       │   │                   │   │   └── XpathUpdateQueryOperationExecutorStrategy.java
│   │   │       │   │                   │   └── model/
│   │   │       │   │                   │       ├── SLeftOperand.java
│   │   │       │   │                   │       ├── SOperation.java
│   │   │       │   │                   │       ├── SOperatorType.java
│   │   │       │   │                   │       ├── builder/
│   │   │       │   │                   │       │   ├── SLeftOperandBuilder.java
│   │   │       │   │                   │       │   ├── SLeftOperandBuilderFactory.java
│   │   │       │   │                   │       │   ├── SOperationBuilder.java
│   │   │       │   │                   │       │   ├── SOperationBuilderFactory.java
│   │   │       │   │                   │       │   └── impl/
│   │   │       │   │                   │       │       ├── SLeftOperandBuilderFactoryImpl.java
│   │   │       │   │                   │       │       ├── SLeftOperandBuilderImpl.java
│   │   │       │   │                   │       │       ├── SOperationBuilderFactoryImpl.java
│   │   │       │   │                   │       │       └── SOperationBuilderImpl.java
│   │   │       │   │                   │       └── impl/
│   │   │       │   │                   │           ├── SLeftOperandImpl.java
│   │   │       │   │                   │           └── SOperationImpl.java
│   │   │       │   │                   └── process/
│   │   │       │   │                       └── definition/
│   │   │       │   │                           ├── ProcessDefinitionService.java
│   │   │       │   │                           ├── ProcessDefinitionServiceImpl.java
│   │   │       │   │                           ├── exception/
│   │   │       │   │                           │   ├── SDeletingEnabledProcessException.java
│   │   │       │   │                           │   ├── SProcessDefinitionException.java
│   │   │       │   │                           │   ├── SProcessDefinitionNotFoundException.java
│   │   │       │   │                           │   ├── SProcessDeletionException.java
│   │   │       │   │                           │   ├── SProcessDeploymentInfoUpdateException.java
│   │   │       │   │                           │   ├── SProcessDisablementException.java
│   │   │       │   │                           │   └── SProcessEnablementException.java
│   │   │       │   │                           └── model/
│   │   │       │   │                               ├── SActivityDefinition.java
│   │   │       │   │                               ├── SActorDefinition.java
│   │   │       │   │                               ├── SAutomaticTaskDefinition.java
│   │   │       │   │                               ├── SBaseElement.java
│   │   │       │   │                               ├── SBoundaryEventNotFoundException.java
│   │   │       │   │                               ├── SBusinessDataDefinition.java
│   │   │       │   │                               ├── SCallActivityDefinition.java
│   │   │       │   │                               ├── SCallableElementType.java
│   │   │       │   │                               ├── SConnectorDefinition.java
│   │   │       │   │                               ├── SConstraintDefinition.java
│   │   │       │   │                               ├── SContextEntry.java
│   │   │       │   │                               ├── SContractDefinition.java
│   │   │       │   │                               ├── SDocumentDefinition.java
│   │   │       │   │                               ├── SDocumentListDefinition.java
│   │   │       │   │                               ├── SFlowElementContainerDefinition.java
│   │   │       │   │                               ├── SFlowNodeDefinition.java
│   │   │       │   │                               ├── SFlowNodeType.java
│   │   │       │   │                               ├── SGatewayDefinition.java
│   │   │       │   │                               ├── SGatewayType.java
│   │   │       │   │                               ├── SHumanTaskDefinition.java
│   │   │       │   │                               ├── SInputContainerDefinition.java
│   │   │       │   │                               ├── SInputDefinition.java
│   │   │       │   │                               ├── SLoopCharacteristics.java
│   │   │       │   │                               ├── SManualTaskDefinition.java
│   │   │       │   │                               ├── SMultiInstanceLoopCharacteristics.java
│   │   │       │   │                               ├── SNamedElement.java
│   │   │       │   │                               ├── SParameterDefinition.java
│   │   │       │   │                               ├── SProcessDefinition.java
│   │   │       │   │                               ├── SProcessDefinitionDeployInfo.java
│   │   │       │   │                               ├── SProcessDefinitionDesignContent.java
│   │   │       │   │                               ├── SReceiveTaskDefinition.java
│   │   │       │   │                               ├── SSendTaskDefinition.java
│   │   │       │   │                               ├── SStandardLoopCharacteristics.java
│   │   │       │   │                               ├── SSubProcessDefinition.java
│   │   │       │   │                               ├── STaskDefinition.java
│   │   │       │   │                               ├── STransitionDefinition.java
│   │   │       │   │                               ├── SType.java
│   │   │       │   │                               ├── SUserFilterDefinition.java
│   │   │       │   │                               ├── SUserTaskDefinition.java
│   │   │       │   │                               ├── TransitionState.java
│   │   │       │   │                               ├── builder/
│   │   │       │   │                               │   ├── SActorLogBuilder.java
│   │   │       │   │                               │   ├── SActorLogBuilderFactory.java
│   │   │       │   │                               │   ├── SBusinessDataDefinitionBuilder.java
│   │   │       │   │                               │   ├── SBusinessDataDefinitionBuilderFactory.java
│   │   │       │   │                               │   ├── SProcessDefinitionBuilder.java
│   │   │       │   │                               │   ├── SProcessDefinitionBuilderFactory.java
│   │   │       │   │                               │   ├── SProcessDefinitionDeployInfoUpdateBuilder.java
│   │   │       │   │                               │   ├── SProcessDefinitionDeployInfoUpdateBuilderFactory.java
│   │   │       │   │                               │   ├── SProcessDefinitionLogBuilder.java
│   │   │       │   │                               │   ├── SProcessDefinitionLogBuilderFactory.java
│   │   │       │   │                               │   ├── ServerModelConvertor.java
│   │   │       │   │                               │   ├── event/
│   │   │       │   │                               │   │   └── trigger/
│   │   │       │   │                               │   │       ├── SEndEventDefinitionBuilder.java
│   │   │       │   │                               │   │       ├── SEndEventDefinitionBuilderFactory.java
│   │   │       │   │                               │   │       ├── SThrowErrorEventTriggerDefinitionBuilder.java
│   │   │       │   │                               │   │       ├── SThrowErrorEventTriggerDefinitionBuilderFactory.java
│   │   │       │   │                               │   │       ├── SThrowMessageEventTriggerDefinitionBuilder.java
│   │   │       │   │                               │   │       ├── SThrowMessageEventTriggerDefinitionBuilderFactory.java
│   │   │       │   │                               │   │       ├── SThrowSignalEventTriggerDefinitionBuilder.java
│   │   │       │   │                               │   │       ├── SThrowSignalEventTriggerDefinitionBuilderFactory.java
│   │   │       │   │                               │   │       └── impl/
│   │   │       │   │                               │   │           ├── SEndEventDefinitionBuilderFactoryImpl.java
│   │   │       │   │                               │   │           ├── SEndEventDefinitionBuilderImpl.java
│   │   │       │   │                               │   │           ├── SThrowErrorEventTriggerDefinitionBuilderFactoryImpl.java
│   │   │       │   │                               │   │           ├── SThrowErrorEventTriggerDefinitionBuilderImpl.java
│   │   │       │   │                               │   │           ├── SThrowMessageEventTriggerDefinitionBuilderFactoryImpl.java
│   │   │       │   │                               │   │           ├── SThrowMessageEventTriggerDefinitionBuilderImpl.java
│   │   │       │   │                               │   │           ├── SThrowSignalEventTriggerDefinitionBuilderFactoryImpl.java
│   │   │       │   │                               │   │           └── SThrowSignalEventTriggerDefinitionBuilderImpl.java
│   │   │       │   │                               │   └── impl/
│   │   │       │   │                               │       ├── ProcessDefinitionLogIndexesMapper.java
│   │   │       │   │                               │       ├── SBusinessDataDefinitionBuilderFactoryImpl.java
│   │   │       │   │                               │       ├── SBusinessDataDefinitionBuilderImpl.java
│   │   │       │   │                               │       ├── SProcessDefinitionBuilderFactoryImpl.java
│   │   │       │   │                               │       ├── SProcessDefinitionBuilderImpl.java
│   │   │       │   │                               │       ├── SProcessDefinitionDeployInfoUpdateBuilderFactoryImpl.java
│   │   │       │   │                               │       ├── SProcessDefinitionDeployInfoUpdateBuilderImpl.java
│   │   │       │   │                               │       ├── SProcessDefinitionLogBuilderFactoryImpl.java
│   │   │       │   │                               │       └── SProcessDefinitionLogBuilderImpl.java
│   │   │       │   │                               ├── event/
│   │   │       │   │                               │   ├── SBoundaryEventDefinition.java
│   │   │       │   │                               │   ├── SCatchEventDefinition.java
│   │   │       │   │                               │   ├── SEndEventDefinition.java
│   │   │       │   │                               │   ├── SEventDefinition.java
│   │   │       │   │                               │   ├── SImplicitThrowEventDefinition.java
│   │   │       │   │                               │   ├── SIntermediateCatchEventDefinition.java
│   │   │       │   │                               │   ├── SIntermediateThrowEventDefinition.java
│   │   │       │   │                               │   ├── SStartEventDefinition.java
│   │   │       │   │                               │   ├── SThrowEventDefinition.java
│   │   │       │   │                               │   ├── impl/
│   │   │       │   │                               │   │   ├── SBoundaryEventDefinitionImpl.java
│   │   │       │   │                               │   │   ├── SCatchEventDefinitionImpl.java
│   │   │       │   │                               │   │   ├── SEndEventDefinitionImpl.java
│   │   │       │   │                               │   │   ├── SEventDefinitionImpl.java
│   │   │       │   │                               │   │   ├── SIntermediateCatchEventDefinitionImpl.java
│   │   │       │   │                               │   │   ├── SIntermediateThrowEventDefinitionImpl.java
│   │   │       │   │                               │   │   ├── SStartEventDefinitionImpl.java
│   │   │       │   │                               │   │   └── SThrowEventDefinitionImpl.java
│   │   │       │   │                               │   └── trigger/
│   │   │       │   │                               │       ├── SCatchErrorEventTriggerDefinition.java
│   │   │       │   │                               │       ├── SCatchMessageEventTriggerDefinition.java
│   │   │       │   │                               │       ├── SCatchSignalEventTriggerDefinition.java
│   │   │       │   │                               │       ├── SCorrelationDefinition.java
│   │   │       │   │                               │       ├── SErrorEventTriggerDefinition.java
│   │   │       │   │                               │       ├── SEventTriggerDefinition.java
│   │   │       │   │                               │       ├── SEventTriggerType.java
│   │   │       │   │                               │       ├── SMessageEventTriggerDefinition.java
│   │   │       │   │                               │       ├── SSignalEventTriggerDefinition.java
│   │   │       │   │                               │       ├── STerminateEventTriggerDefinition.java
│   │   │       │   │                               │       ├── SThrowErrorEventTriggerDefinition.java
│   │   │       │   │                               │       ├── SThrowMessageEventTriggerDefinition.java
│   │   │       │   │                               │       ├── SThrowSignalEventTriggerDefinition.java
│   │   │       │   │                               │       ├── STimerEventTriggerDefinition.java
│   │   │       │   │                               │       ├── STimerType.java
│   │   │       │   │                               │       └── impl/
│   │   │       │   │                               │           ├── SCatchErrorEventTriggerDefinitionImpl.java
│   │   │       │   │                               │           ├── SCatchMessageEventTriggerDefinitionImpl.java
│   │   │       │   │                               │           ├── SCatchSignalEventTriggerDefinitionImpl.java
│   │   │       │   │                               │           ├── SCorrelationDefinitionImpl.java
│   │   │       │   │                               │           ├── SErrorEventTriggerDefinitionImpl.java
│   │   │       │   │                               │           ├── SEventTriggerDefinitionImpl.java
│   │   │       │   │                               │           ├── SMessageEventTriggerDefinitionImpl.java
│   │   │       │   │                               │           ├── SSignalEventTriggerDefinitionImpl.java
│   │   │       │   │                               │           ├── STerminateEventTriggerDefinitionImpl.java
│   │   │       │   │                               │           ├── SThrowErrorEventTriggerDefinitionImpl.java
│   │   │       │   │                               │           ├── SThrowMessageEventTriggerDefinitionImpl.java
│   │   │       │   │                               │           ├── SThrowSignalEventTriggerDefinitionImpl.java
│   │   │       │   │                               │           └── STimerEventTriggerDefinitionImpl.java
│   │   │       │   │                               └── impl/
│   │   │       │   │                                   ├── SActivityDefinitionImpl.java
│   │   │       │   │                                   ├── SActorDefinitionImpl.java
│   │   │       │   │                                   ├── SAutomaticTaskDefinitionImpl.java
│   │   │       │   │                                   ├── SBaseElementImpl.java
│   │   │       │   │                                   ├── SBusinessDataDefinitionImpl.java
│   │   │       │   │                                   ├── SCallActivityDefinitionImpl.java
│   │   │       │   │                                   ├── SConnectorDefinitionImpl.java
│   │   │       │   │                                   ├── SConstraintDefinitionImpl.java
│   │   │       │   │                                   ├── SContextEntryImpl.java
│   │   │       │   │                                   ├── SContractDefinitionImpl.java
│   │   │       │   │                                   ├── SDocumentDefinitionImpl.java
│   │   │       │   │                                   ├── SDocumentListDefinitionImpl.java
│   │   │       │   │                                   ├── SFlowElementContainerDefinitionImpl.java
│   │   │       │   │                                   ├── SFlowNodeDefinitionImpl.java
│   │   │       │   │                                   ├── SGatewayDefinitionImpl.java
│   │   │       │   │                                   ├── SHumanTaskDefinitionImpl.java
│   │   │       │   │                                   ├── SInputDefinitionImpl.java
│   │   │       │   │                                   ├── SManualTaskDefinitionImpl.java
│   │   │       │   │                                   ├── SMultiInstanceLoopCharacteristicsImpl.java
│   │   │       │   │                                   ├── SNamedElementImpl.java
│   │   │       │   │                                   ├── SParameterDefinitionImpl.java
│   │   │       │   │                                   ├── SProcessDefinitionImpl.java
│   │   │       │   │                                   ├── SReceiveTaskDefinitionImpl.java
│   │   │       │   │                                   ├── SSendTaskDefinitionImpl.java
│   │   │       │   │                                   ├── SStandardLoopCharacteristicsImpl.java
│   │   │       │   │                                   ├── SSubProcessDefinitionImpl.java
│   │   │       │   │                                   ├── STransitionDefinitionImpl.java
│   │   │       │   │                                   ├── SUserFilterDefinitionImpl.java
│   │   │       │   │                                   └── SUserTaskDefinitionImpl.java
│   │   │       │   └── resources/
│   │   │       │       └── org/
│   │   │       │           └── bonitasoft/
│   │   │       │               └── engine/
│   │   │       │                   └── core/
│   │   │       │                       └── process/
│   │   │       │                           └── definition/
│   │   │       │                               └── model/
│   │   │       │                                   └── impl/
│   │   │       │                                       └── hibernate/
│   │   │       │                                           └── process.definition.queries.hbm.xml
│   │   │       └── test/
│   │   │           └── java/
│   │   │               └── org/
│   │   │                   └── bonitasoft/
│   │   │                       └── engine/
│   │   │                           └── core/
│   │   │                               ├── expression/
│   │   │                               │   └── control/
│   │   │                               │       ├── api/
│   │   │                               │       │   └── impl/
│   │   │                               │       │       └── ExpressionResolverServiceImplTest.java
│   │   │                               │       └── model/
│   │   │                               │           └── SExpressionContextTest.java
│   │   │                               ├── operation/
│   │   │                               │   └── impl/
│   │   │                               │       ├── AssignmentOperationExecutorStrategyTest.java
│   │   │                               │       ├── ExternalDataLeftOperandHandlerTest.java
│   │   │                               │       ├── JavaMethodOperationExecutorStrategyTest.java
│   │   │                               │       ├── LeftOperandIndexesTest.java
│   │   │                               │       ├── LeftOperandUpdateStatusTest.java
│   │   │                               │       ├── OperationMockBuilder.java
│   │   │                               │       ├── OperationServiceImplTest.java
│   │   │                               │       ├── OperationsAnalyzerTest.java
│   │   │                               │       ├── PersistRightOperandResolverTest.java
│   │   │                               │       └── XpathUpdateQueryOperationExecutorStrategyTest.java
│   │   │                               └── process/
│   │   │                                   └── definition/
│   │   │                                       ├── ProcessDefinitionServiceImplTest.java
│   │   │                                       └── model/
│   │   │                                           ├── STypeBooleanValidationTest.java
│   │   │                                           ├── STypeByteArrayValidationTest.java
│   │   │                                           ├── STypeDateValidationTest.java
│   │   │                                           ├── STypeDecimalValidationTest.java
│   │   │                                           ├── STypeIntegerValidationTest.java
│   │   │                                           ├── STypeLocalDateTest.java
│   │   │                                           ├── STypeLocalDateTimeTest.java
│   │   │                                           ├── STypeOffsetDateTimeTest.java
│   │   │                                           ├── STypeTextValidationTest.java
│   │   │                                           ├── builder/
│   │   │                                           │   ├── ServerModelConvertorTest.java
│   │   │                                           │   └── impl/
│   │   │                                           │       └── SBusinessDataDefinitionBuilderFactoryImplTest.java
│   │   │                                           ├── event/
│   │   │                                           │   └── impl/
│   │   │                                           │       ├── SBoundaryEventDefinitionImplTest.java
│   │   │                                           │       └── SStartEventDefinitionImplTest.java
│   │   │                                           └── impl/
│   │   │                                               ├── SCatchEventDefinitionImplTest.java
│   │   │                                               ├── SConstraintDefinitionImplTest.java
│   │   │                                               ├── SFlowNodeDefinitionImplTest.java
│   │   │                                               ├── SGatewayDefinitionImplTest.java
│   │   │                                               ├── SInputDefinitionImplTest.java
│   │   │                                               ├── SSubProcessDefinitionImplTest.java
│   │   │                                               ├── STransitionDefinitionImplTest.java
│   │   │                                               └── SUserTaskDefinitionImplTest.java
│   │   ├── bonita-process-engine/
│   │   │   ├── FlowStatesMapping.txt
│   │   │   ├── build.gradle
│   │   │   └── src/
│   │   │       ├── main/
│   │   │       │   ├── groovy/
│   │   │       │   │   └── org/
│   │   │       │   │       └── bonitasoft/
│   │   │       │   │           └── permissions/
│   │   │       │   │               ├── ActorMemberPermissionRule.groovy
│   │   │       │   │               ├── ActorPermissionRule.groovy
│   │   │       │   │               ├── ApplicationMenuPermissionRule.groovy
│   │   │       │   │               ├── ApplicationPermissionCommon.groovy
│   │   │       │   │               ├── ApplicationPermissionRule.groovy
│   │   │       │   │               ├── CaseContextPermissionRule.groovy
│   │   │       │   │               ├── CasePermissionRule.groovy
│   │   │       │   │               ├── CaseVariablePermissionRule.groovy
│   │   │       │   │               ├── CommentPermissionRule.groovy
│   │   │       │   │               ├── ConnectorInstancePermissionRule.groovy
│   │   │       │   │               ├── DocumentPermissionRule.groovy
│   │   │       │   │               ├── DownloadDocumentPermissionRule.groovy
│   │   │       │   │               ├── ProcessConfigurationPermissionRule.groovy
│   │   │       │   │               ├── ProcessConnectorDependencyPermissionRule.groovy
│   │   │       │   │               ├── ProcessInstantiationPermissionRule.groovy
│   │   │       │   │               ├── ProcessPermissionRule.groovy
│   │   │       │   │               ├── ProcessResolutionProblemPermissionRule.groovy
│   │   │       │   │               ├── ProcessSupervisorPermissionRule.groovy
│   │   │       │   │               ├── ProfilePermissionRule.groovy
│   │   │       │   │               ├── TaskExecutionPermissionRule.groovy
│   │   │       │   │               ├── TaskPermissionRule.groovy
│   │   │       │   │               └── UserPermissionRule.groovy
│   │   │       │   ├── java/
│   │   │       │   │   └── org/
│   │   │       │   │       └── bonitasoft/
│   │   │       │   │           └── engine/
│   │   │       │   │               ├── EngineConfiguration.java
│   │   │       │   │               ├── EngineInitializer.java
│   │   │       │   │               ├── LocalLoginMechanism.java
│   │   │       │   │               ├── SArchivingException.java
│   │   │       │   │               ├── api/
│   │   │       │   │               │   ├── impl/
│   │   │       │   │               │   │   ├── APIAccessorImpl.java
│   │   │       │   │               │   │   ├── APIUtils.java
│   │   │       │   │               │   │   ├── ApplicationAPIImpl.java
│   │   │       │   │               │   │   ├── AvailableInMaintenanceMode.java
│   │   │       │   │               │   │   ├── AvailableOnStoppedNode.java
│   │   │       │   │               │   │   ├── BusinessDataAPIImpl.java
│   │   │       │   │               │   │   ├── CommandAPIImpl.java
│   │   │       │   │               │   │   ├── CustomUserInfoAPIDelegate.java
│   │   │       │   │               │   │   ├── CustomUserInfoDefinitionAPIDelegate.java
│   │   │       │   │               │   │   ├── DocumentAPIImpl.java
│   │   │       │   │               │   │   ├── IdentityAPIImpl.java
│   │   │       │   │               │   │   ├── LoginAPIImpl.java
│   │   │       │   │               │   │   ├── MaintenanceAPIImpl.java
│   │   │       │   │               │   │   ├── OrderAndFields.java
│   │   │       │   │               │   │   ├── OrganizationAPIImpl.java
│   │   │       │   │               │   │   ├── PageAPIImpl.java
│   │   │       │   │               │   │   ├── PermissionAPIImpl.java
│   │   │       │   │               │   │   ├── PlatformAPIImpl.java
│   │   │       │   │               │   │   ├── PlatformCommandAPIImpl.java
│   │   │       │   │               │   │   ├── PlatformLoginAPIImpl.java
│   │   │       │   │               │   │   ├── ProcessAPIImpl.java
│   │   │       │   │               │   │   ├── ProcessConfigurationAPIImpl.java
│   │   │       │   │               │   │   ├── ProcessDeploymentAPIDelegate.java
│   │   │       │   │               │   │   ├── ProcessInvolvementDelegate.java
│   │   │       │   │               │   │   ├── ProcessManagementAPIImplDelegate.java
│   │   │       │   │               │   │   ├── ProcessStarter.java
│   │   │       │   │               │   │   ├── ProfileAPIImpl.java
│   │   │       │   │               │   │   ├── SCustomUserInfoValueAPI.java
│   │   │       │   │               │   │   ├── ServerAPIFactory.java
│   │   │       │   │               │   │   ├── ServerAPIImpl.java
│   │   │       │   │               │   │   ├── ServerAPIRuntimeException.java
│   │   │       │   │               │   │   ├── SessionInfos.java
│   │   │       │   │               │   │   ├── StarterThread.java
│   │   │       │   │               │   │   ├── TaskInvolvementDelegate.java
│   │   │       │   │               │   │   ├── TenantAdministrationAPIImpl.java
│   │   │       │   │               │   │   ├── WithLock.java
│   │   │       │   │               │   │   ├── application/
│   │   │       │   │               │   │   │   └── installer/
│   │   │       │   │               │   │   │       ├── ApplicationArchive.java
│   │   │       │   │               │   │   │       ├── ApplicationArchiveReader.java
│   │   │       │   │               │   │   │       ├── ApplicationInstaller.java
│   │   │       │   │               │   │   │       ├── ApplicationInstallerImpl.java
│   │   │       │   │               │   │   │       ├── CustomOrDefaultApplicationInstaller.java
│   │   │       │   │               │   │   │       └── detector/
│   │   │       │   │               │   │   │           ├── ArtifactDetector.java
│   │   │       │   │               │   │   │           ├── ArtifactTypeDetector.java
│   │   │       │   │               │   │   │           ├── BdmDetector.java
│   │   │       │   │               │   │   │           ├── CustomPageDetector.java
│   │   │       │   │               │   │   │           ├── IconDetector.java
│   │   │       │   │               │   │   │           ├── LayoutDetector.java
│   │   │       │   │               │   │   │           ├── LivingApplicationDetector.java
│   │   │       │   │               │   │   │           ├── OrganizationDetector.java
│   │   │       │   │               │   │   │           ├── PageAndFormDetector.java
│   │   │       │   │               │   │   │           ├── ProcessDetector.java
│   │   │       │   │               │   │   │           ├── ThemeDetector.java
│   │   │       │   │               │   │   │           └── XmlDetector.java
│   │   │       │   │               │   │   ├── connector/
│   │   │       │   │               │   │   │   ├── ConnectorResetStrategy.java
│   │   │       │   │               │   │   │   ├── ConnectorReseter.java
│   │   │       │   │               │   │   │   └── ResetAllFailedConnectorStrategy.java
│   │   │       │   │               │   │   ├── converter/
│   │   │       │   │               │   │   │   ├── ApplicationMenuModelConverter.java
│   │   │       │   │               │   │   │   ├── ApplicationModelConverter.java
│   │   │       │   │               │   │   │   ├── ApplicationPageModelConverter.java
│   │   │       │   │               │   │   │   └── PageModelConverter.java
│   │   │       │   │               │   │   ├── flownode/
│   │   │       │   │               │   │   │   └── FlowNodeRetrier.java
│   │   │       │   │               │   │   ├── livingapplication/
│   │   │       │   │               │   │   │   ├── LivingApplicationAPIDelegate.java
│   │   │       │   │               │   │   │   ├── LivingApplicationExporterDelegate.java
│   │   │       │   │               │   │   │   ├── LivingApplicationMenuAPIDelegate.java
│   │   │       │   │               │   │   │   └── LivingApplicationPageAPIDelegate.java
│   │   │       │   │               │   │   ├── organization/
│   │   │       │   │               │   │   │   └── OrganizationAPIDelegate.java
│   │   │       │   │               │   │   ├── page/
│   │   │       │   │               │   │   │   └── PageAPIDelegate.java
│   │   │       │   │               │   │   ├── platform/
│   │   │       │   │               │   │   │   └── PlatformInformationAPIImpl.java
│   │   │       │   │               │   │   ├── profile/
│   │   │       │   │               │   │   │   └── ProfileAPIDelegate.java
│   │   │       │   │               │   │   ├── resolver/
│   │   │       │   │               │   │   │   ├── ActorBusinessArchiveArtifactManager.java
│   │   │       │   │               │   │   │   ├── BARResourceArtifactManager.java
│   │   │       │   │               │   │   │   ├── BusinessArchiveArtifactManager.java
│   │   │       │   │               │   │   │   ├── BusinessArchiveArtifactsManager.java
│   │   │       │   │               │   │   │   ├── BusinessDataBusinessArchiveArtifactManager.java
│   │   │       │   │               │   │   │   ├── ClasspathArtifactManager.java
│   │   │       │   │               │   │   │   ├── ConnectorBusinessArchiveArtifactManager.java
│   │   │       │   │               │   │   │   ├── DocumentInitialValueArtifactManager.java
│   │   │       │   │               │   │   │   ├── ExternalResourceArtifactManager.java
│   │   │       │   │               │   │   │   ├── FormMappingAndPageArtifactManager.java
│   │   │       │   │               │   │   │   ├── ParameterBusinessArchiveArtifactManager.java
│   │   │       │   │               │   │   │   └── UserFilterBusinessArchiveArtifactManager.java
│   │   │       │   │               │   │   └── transaction/
│   │   │       │   │               │   │       ├── AbstractGetEntity.java
│   │   │       │   │               │   │       ├── CustomTransactions.java
│   │   │       │   │               │   │       ├── activity/
│   │   │       │   │               │   │       │   ├── GetActivityInstances.java
│   │   │       │   │               │   │       │   ├── GetArchivedActivityInstance.java
│   │   │       │   │               │   │       │   ├── GetArchivedActivityInstances.java
│   │   │       │   │               │   │       │   ├── GetContractOfUserTaskInstance.java
│   │   │       │   │               │   │       │   └── GetNumberOfActivityInstance.java
│   │   │       │   │               │   │       ├── actor/
│   │   │       │   │               │   │       │   ├── AddActor.java
│   │   │       │   │               │   │       │   ├── AddActorMember.java
│   │   │       │   │               │   │       │   ├── ExportActorMapping.java
│   │   │       │   │               │   │       │   ├── GetActor.java
│   │   │       │   │               │   │       │   ├── GetActorInitiators.java
│   │   │       │   │               │   │       │   ├── GetActorsByActorIds.java
│   │   │       │   │               │   │       │   ├── GetNumberOfActorMembers.java
│   │   │       │   │               │   │       │   ├── GetNumberOfActors.java
│   │   │       │   │               │   │       │   ├── GetNumberOfGroupsOfActor.java
│   │   │       │   │               │   │       │   ├── GetNumberOfMembershipsOfActor.java
│   │   │       │   │               │   │       │   ├── GetNumberOfRolesOfActor.java
│   │   │       │   │               │   │       │   ├── GetNumberOfUsersOfActor.java
│   │   │       │   │               │   │       │   ├── ImportActorMapping.java
│   │   │       │   │               │   │       │   └── RemoveActorMember.java
│   │   │       │   │               │   │       ├── application/
│   │   │       │   │               │   │       │   ├── SearchApplicationMenus.java
│   │   │       │   │               │   │       │   ├── SearchApplicationPages.java
│   │   │       │   │               │   │       │   ├── SearchApplications.java
│   │   │       │   │               │   │       │   └── SearchApplicationsOfUser.java
│   │   │       │   │               │   │       ├── category/
│   │   │       │   │               │   │       │   ├── CreateCategory.java
│   │   │       │   │               │   │       │   ├── DeleteSCategory.java
│   │   │       │   │               │   │       │   ├── GetCategories.java
│   │   │       │   │               │   │       │   ├── GetCategory.java
│   │   │       │   │               │   │       │   ├── GetNumberOfCategories.java
│   │   │       │   │               │   │       │   ├── GetNumberOfCategoriesOfProcess.java
│   │   │       │   │               │   │       │   ├── GetNumberOfCategoriesUnrelatedToProcess.java
│   │   │       │   │               │   │       │   ├── RemoveCategoriesFromProcessDefinition.java
│   │   │       │   │               │   │       │   ├── RemoveProcessDefinitionsOfCategory.java
│   │   │       │   │               │   │       │   └── UpdateCategory.java
│   │   │       │   │               │   │       ├── command/
│   │   │       │   │               │   │       │   ├── DeleteSCommand.java
│   │   │       │   │               │   │       │   └── GetCommands.java
│   │   │       │   │               │   │       ├── connector/
│   │   │       │   │               │   │       │   └── GetConnectorImplementation.java
│   │   │       │   │               │   │       ├── document/
│   │   │       │   │               │   │       │   └── GetDocumentByNameAtProcessInstantiation.java
│   │   │       │   │               │   │       ├── event/
│   │   │       │   │               │   │       │   └── GetEventInstances.java
│   │   │       │   │               │   │       ├── expression/
│   │   │       │   │               │   │       │   ├── AbstractEvaluateExpressionsInstance.java
│   │   │       │   │               │   │       │   ├── EntityMerger.java
│   │   │       │   │               │   │       │   ├── EvaluateExpression.java
│   │   │       │   │               │   │       │   ├── EvaluateExpressionsDefinitionLevel.java
│   │   │       │   │               │   │       │   ├── EvaluateExpressionsInstanceLevel.java
│   │   │       │   │               │   │       │   └── EvaluateExpressionsInstanceLevelAndArchived.java
│   │   │       │   │               │   │       ├── flownode/
│   │   │       │   │               │   │       │   ├── GetFlowNodeInstance.java
│   │   │       │   │               │   │       │   ├── SearchFlowNodeInstances.java
│   │   │       │   │               │   │       │   └── SetExpectedEndDate.java
│   │   │       │   │               │   │       ├── identity/
│   │   │       │   │               │   │       │   ├── AddUserMembership.java
│   │   │       │   │               │   │       │   ├── AddUserMemberships.java
│   │   │       │   │               │   │       │   ├── DeleteGroup.java
│   │   │       │   │               │   │       │   ├── DeleteGroups.java
│   │   │       │   │               │   │       │   ├── DeleteRole.java
│   │   │       │   │               │   │       │   ├── DeleteRoles.java
│   │   │       │   │               │   │       │   ├── DeleteUser.java
│   │   │       │   │               │   │       │   ├── DeleteUsers.java
│   │   │       │   │               │   │       │   ├── DeleteWithActorMembers.java
│   │   │       │   │               │   │       │   ├── GetGroups.java
│   │   │       │   │               │   │       │   ├── GetNumberOfInstance.java
│   │   │       │   │               │   │       │   ├── GetNumberOfUserMemberships.java
│   │   │       │   │               │   │       │   ├── GetNumberOfUsersInType.java
│   │   │       │   │               │   │       │   ├── GetRoles.java
│   │   │       │   │               │   │       │   ├── GetSContactInfo.java
│   │   │       │   │               │   │       │   ├── GetSUser.java
│   │   │       │   │               │   │       │   ├── GetUserMembership.java
│   │   │       │   │               │   │       │   ├── GetUserMembershipsOfGroup.java
│   │   │       │   │               │   │       │   ├── GetUserMembershipsOfRole.java
│   │   │       │   │               │   │       │   ├── UpdateGroup.java
│   │   │       │   │               │   │       │   └── UpdateMembershipByRoleIdAndGroupId.java
│   │   │       │   │               │   │       ├── page/
│   │   │       │   │               │   │       │   └── SearchPages.java
│   │   │       │   │               │   │       ├── platform/
│   │   │       │   │               │   │       │   ├── DeleteSPlatformCommand.java
│   │   │       │   │               │   │       │   ├── GetPlatformContent.java
│   │   │       │   │               │   │       │   ├── GetSPlatformCommands.java
│   │   │       │   │               │   │       │   └── UpdateSPlatformCommand.java
│   │   │       │   │               │   │       ├── process/
│   │   │       │   │               │   │       │   ├── AbstractGetProcessDeploymentInfo.java
│   │   │       │   │               │   │       │   ├── AddProcessDefinitionToCategory.java
│   │   │       │   │               │   │       │   ├── DisableProcess.java
│   │   │       │   │               │   │       │   ├── EnableProcess.java
│   │   │       │   │               │   │       │   ├── GetArchivedProcessInstanceList.java
│   │   │       │   │               │   │       │   ├── GetChildInstanceIdsOfProcessInstance.java
│   │   │       │   │               │   │       │   ├── GetLastArchivedProcessInstance.java
│   │   │       │   │               │   │       │   ├── GetLatestProcessDefinitionId.java
│   │   │       │   │               │   │       │   ├── GetNumberOfProcessDeploymentInfos.java
│   │   │       │   │               │   │       │   ├── GetNumberOfProcessDeploymentInfosUnrelatedToCategory.java
│   │   │       │   │               │   │       │   ├── GetNumberOfProcessInstance.java
│   │   │       │   │               │   │       │   ├── GetProcessDefinitionDeployInfos.java
│   │   │       │   │               │   │       │   ├── GetProcessDefinitionDeployInfosWithActorOnlyForGroup.java
│   │   │       │   │               │   │       │   ├── GetProcessDefinitionDeployInfosWithActorOnlyForGroups.java
│   │   │       │   │               │   │       │   ├── GetProcessDefinitionDeployInfosWithActorOnlyForRole.java
│   │   │       │   │               │   │       │   ├── GetProcessDefinitionDeployInfosWithActorOnlyForRoles.java
│   │   │       │   │               │   │       │   ├── GetProcessDefinitionDeployInfosWithActorOnlyForUser.java
│   │   │       │   │               │   │       │   ├── GetProcessDefinitionDeployInfosWithActorOnlyForUsers.java
│   │   │       │   │               │   │       │   ├── SetProcessInstanceState.java
│   │   │       │   │               │   │       │   └── UpdateProcessDeploymentInfo.java
│   │   │       │   │               │   │       ├── profile/
│   │   │       │   │               │   │       │   ├── CreateProfileMember.java
│   │   │       │   │               │   │       │   └── ProfileMemberUtils.java
│   │   │       │   │               │   │       └── task/
│   │   │       │   │               │   │           ├── AssignOrUnassignUserTask.java
│   │   │       │   │               │   │           ├── AssignUserTaskIfNotAssigned.java
│   │   │       │   │               │   │           ├── GetAssignedTasks.java
│   │   │       │   │               │   │           ├── GetHumanTaskInstance.java
│   │   │       │   │               │   │           ├── GetNumberOfOpenTasksForUsers.java
│   │   │       │   │               │   │           └── SetTaskPriority.java
│   │   │       │   │               │   └── utils/
│   │   │       │   │               │       └── VisibleForTesting.java
│   │   │       │   │               ├── authorization/
│   │   │       │   │               │   └── PermissionServiceImpl.java
│   │   │       │   │               ├── bar/
│   │   │       │   │               │   ├── BusinessArchiveService.java
│   │   │       │   │               │   └── BusinessArchiveServiceImpl.java
│   │   │       │   │               ├── bpm/
│   │   │       │   │               │   ├── contract/
│   │   │       │   │               │   │   └── validation/
│   │   │       │   │               │   │       ├── ConstraintsDefinitionHelper.java
│   │   │       │   │               │   │       ├── ContractConstraintsValidator.java
│   │   │       │   │               │   │       ├── ContractStructureValidator.java
│   │   │       │   │               │   │       ├── ContractTypeValidator.java
│   │   │       │   │               │   │       ├── ContractValidator.java
│   │   │       │   │               │   │       ├── ContractValidatorFactory.java
│   │   │       │   │               │   │       ├── ContractVariableHelper.java
│   │   │       │   │               │   │       ├── ErrorReporter.java
│   │   │       │   │               │   │       └── InputValidationException.java
│   │   │       │   │               │   ├── model/
│   │   │       │   │               │   │   └── impl/
│   │   │       │   │               │   │       └── BPMInstancesCreator.java
│   │   │       │   │               │   └── process/
│   │   │       │   │               │       └── impl/
│   │   │       │   │               │           └── ProcessInstanceBuilder.java
│   │   │       │   │               ├── business/
│   │   │       │   │               │   ├── application/
│   │   │       │   │               │   │   ├── converter/
│   │   │       │   │               │   │   │   ├── ApplicationMenuToNodeConverter.java
│   │   │       │   │               │   │   │   ├── ApplicationPageToNodeConverter.java
│   │   │       │   │               │   │   │   ├── ApplicationToNodeConverter.java
│   │   │       │   │               │   │   │   ├── ApplicationsToNodeContainerConverter.java
│   │   │       │   │               │   │   │   ├── NodeToApplicationConverter.java
│   │   │       │   │               │   │   │   ├── NodeToApplicationMenuConverter.java
│   │   │       │   │               │   │   │   └── NodeToApplicationPageConverter.java
│   │   │       │   │               │   │   ├── exporter/
│   │   │       │   │               │   │   │   ├── ApplicationContainerExporter.java
│   │   │       │   │               │   │   │   └── ApplicationExporter.java
│   │   │       │   │               │   │   └── importer/
│   │   │       │   │               │   │       ├── ApplicationImportStrategy.java
│   │   │       │   │               │   │       ├── ApplicationImporter.java
│   │   │       │   │               │   │       ├── ApplicationMenuImportResult.java
│   │   │       │   │               │   │       ├── ApplicationMenuImporter.java
│   │   │       │   │               │   │       ├── ApplicationPageImportResult.java
│   │   │       │   │               │   │       ├── ApplicationPageImporter.java
│   │   │       │   │               │   │       ├── ApplicationZipContent.java
│   │   │       │   │               │   │       ├── DefaultLivingApplicationImporter.java
│   │   │       │   │               │   │       ├── FailOnDuplicateApplicationImportStrategy.java
│   │   │       │   │               │   │       ├── ImportResult.java
│   │   │       │   │               │   │       ├── LivingApplicationImporter.java
│   │   │       │   │               │   │       ├── MandatoryLivingApplicationImporter.java
│   │   │       │   │               │   │       ├── ReplaceDuplicateApplicationImportStrategy.java
│   │   │       │   │               │   │       ├── StrategySelector.java
│   │   │       │   │               │   │       ├── UpdateNewerNonEditableApplicationStrategy.java
│   │   │       │   │               │   │       └── validator/
│   │   │       │   │               │   │           ├── ApplicationImportValidator.java
│   │   │       │   │               │   │           ├── ApplicationMenuCreatorValidator.java
│   │   │       │   │               │   │           ├── ApplicationTokenValidator.java
│   │   │       │   │               │   │           └── ValidationStatus.java
│   │   │       │   │               │   └── data/
│   │   │       │   │               │       ├── BusinessDataRetriever.java
│   │   │       │   │               │       ├── RefBusinessDataRetriever.java
│   │   │       │   │               │       └── converter/
│   │   │       │   │               │           └── BusinessDataModelConverter.java
│   │   │       │   │               ├── command/
│   │   │       │   │               │   ├── AbstractStartProcessCommand.java
│   │   │       │   │               │   ├── AdvancedStartProcessCommand.java
│   │   │       │   │               │   ├── BusinessDataCommandField.java
│   │   │       │   │               │   ├── Command.java
│   │   │       │   │               │   ├── DeletePlatformSessionCommand.java
│   │   │       │   │               │   ├── ExecuteBDMQueryCommand.java
│   │   │       │   │               │   ├── GetBusinessDataByIdCommand.java
│   │   │       │   │               │   ├── GetBusinessDataByIdsCommand.java
│   │   │       │   │               │   ├── GetBusinessDataByQueryCommand.java
│   │   │       │   │               │   ├── MultipleStartPointsProcessCommand.java
│   │   │       │   │               │   ├── RuntimeCommand.java
│   │   │       │   │               │   ├── SCommandExecutionException.java
│   │   │       │   │               │   ├── SCommandParameterizationException.java
│   │   │       │   │               │   ├── SGroupProfileMemberAlreadyExistsException.java
│   │   │       │   │               │   ├── SRoleProfileMemberAlreadyExistsException.java
│   │   │       │   │               │   ├── SUserMembershipProfileMemberAlreadyExistsException.java
│   │   │       │   │               │   ├── SUserProfileMemberAlreadyExistsException.java
│   │   │       │   │               │   └── system/
│   │   │       │   │               │       └── SearchWaitingEventsCommand.java
│   │   │       │   │               ├── connector/
│   │   │       │   │               │   ├── ConnectorAPIAccessorImpl.java
│   │   │       │   │               │   └── ConnectorServiceDecorator.java
│   │   │       │   │               ├── core/
│   │   │       │   │               │   ├── document/
│   │   │       │   │               │   │   └── api/
│   │   │       │   │               │   │       └── impl/
│   │   │       │   │               │   │           └── DocumentHelper.java
│   │   │       │   │               │   └── form/
│   │   │       │   │               │       ├── ExternalURLAdapter.java
│   │   │       │   │               │       └── LegacyURLAdapter.java
│   │   │       │   │               ├── data/
│   │   │       │   │               │   └── ParentContainerResolverImpl.java
│   │   │       │   │               ├── event/
│   │   │       │   │               │   └── PlatformStartedEvent.java
│   │   │       │   │               ├── execution/
│   │   │       │   │               │   ├── AdvancedStartProcessValidator.java
│   │   │       │   │               │   ├── ContainerExecutor.java
│   │   │       │   │               │   ├── ContainerRegistry.java
│   │   │       │   │               │   ├── EvaluateExpression.java
│   │   │       │   │               │   ├── Filter.java
│   │   │       │   │               │   ├── FlowElementExecutor.java
│   │   │       │   │               │   ├── FlowNodeExecutor.java
│   │   │       │   │               │   ├── FlowNodeExecutorImpl.java
│   │   │       │   │               │   ├── FlowNodeIdFilter.java
│   │   │       │   │               │   ├── FlowNodeNameFilter.java
│   │   │       │   │               │   ├── FlowNodeSelector.java
│   │   │       │   │               │   ├── FlowNodeStateManagerImpl.java
│   │   │       │   │               │   ├── ProcessExecutor.java
│   │   │       │   │               │   ├── ProcessExecutorImpl.java
│   │   │       │   │               │   ├── ProcessInstanceInterruptor.java
│   │   │       │   │               │   ├── ProcessStarterVerifier.java
│   │   │       │   │               │   ├── ProcessStarterVerifierImpl.java
│   │   │       │   │               │   ├── SIllegalStateTransition.java
│   │   │       │   │               │   ├── SNotSerializableException.java
│   │   │       │   │               │   ├── SUnreleasableTaskException.java
│   │   │       │   │               │   ├── StartFlowNodeFilter.java
│   │   │       │   │               │   ├── StateBehaviors.java
│   │   │       │   │               │   ├── TransitionEvaluator.java
│   │   │       │   │               │   ├── WaitingEventsInterrupter.java
│   │   │       │   │               │   ├── archive/
│   │   │       │   │               │   │   └── BPMArchiverService.java
│   │   │       │   │               │   ├── event/
│   │   │       │   │               │   │   ├── CoupleEventHandlerStrategy.java
│   │   │       │   │               │   │   ├── ErrorEventHandlerStrategy.java
│   │   │       │   │               │   │   ├── EventHandlerStrategy.java
│   │   │       │   │               │   │   ├── EventsHandler.java
│   │   │       │   │               │   │   ├── MessageEventHandlerStrategy.java
│   │   │       │   │               │   │   ├── OperationsWithContext.java
│   │   │       │   │               │   │   ├── SBPMEventHandlerException.java
│   │   │       │   │               │   │   ├── SignalEventHandlerStrategy.java
│   │   │       │   │               │   │   ├── TerminateEventHandlerStrategy.java
│   │   │       │   │               │   │   └── TimerEventHandlerStrategy.java
│   │   │       │   │               │   ├── flowmerger/
│   │   │       │   │               │   │   └── FlowNodeTransitionsWrapper.java
│   │   │       │   │               │   ├── handler/
│   │   │       │   │               │   │   ├── ArchiveProcessInstancesHandler.java
│   │   │       │   │               │   │   └── SProcessInstanceHandler.java
│   │   │       │   │               │   ├── job/
│   │   │       │   │               │   │   └── JobNameBuilder.java
│   │   │       │   │               │   ├── state/
│   │   │       │   │               │   │   ├── AbortedFlowNodeState.java
│   │   │       │   │               │   │   ├── AbortingActivityWithBoundaryState.java
│   │   │       │   │               │   │   ├── AbortingBoundaryAndIntermediateCatchEventState.java
│   │   │       │   │               │   │   ├── AbortingBoundaryEventsOnCompletingActivityState.java
│   │   │       │   │               │   │   ├── AbortingCallActivityState.java
│   │   │       │   │               │   │   ├── AbortingFlowNodeContainerState.java
│   │   │       │   │               │   │   ├── AbortingFlowNodeState.java
│   │   │       │   │               │   │   ├── AbortingReceiveTaskState.java
│   │   │       │   │               │   │   ├── AbortingSubTaskState.java
│   │   │       │   │               │   │   ├── CancelledFlowNodeState.java
│   │   │       │   │               │   │   ├── CancellingActivityWithBoundaryState.java
│   │   │       │   │               │   │   ├── CancellingBoundaryAndIntermediateCatchEventState.java
│   │   │       │   │               │   │   ├── CancellingCallActivityState.java
│   │   │       │   │               │   │   ├── CancellingFlowNodeContainerChildrenState.java
│   │   │       │   │               │   │   ├── CancellingFlowNodeState.java
│   │   │       │   │               │   │   ├── CancellingReceiveTaskState.java
│   │   │       │   │               │   │   ├── CompletedActivityState.java
│   │   │       │   │               │   │   ├── CompletingActivityState.java
│   │   │       │   │               │   │   ├── CompletingCallActivityState.java
│   │   │       │   │               │   │   ├── EndingCallActivityExceptionState.java
│   │   │       │   │               │   │   ├── EndingFlowNodeContainerExceptionState.java
│   │   │       │   │               │   │   ├── ExecutingAutomaticActivityState.java
│   │   │       │   │               │   │   ├── ExecutingBoundaryEventState.java
│   │   │       │   │               │   │   ├── ExecutingCallActivityState.java
│   │   │       │   │               │   │   ├── ExecutingFlowNodeState.java
│   │   │       │   │               │   │   ├── ExecutingLoopActivityState.java
│   │   │       │   │               │   │   ├── ExecutingMultiInstanceActivityState.java
│   │   │       │   │               │   │   ├── ExecutingThrowEventState.java
│   │   │       │   │               │   │   ├── FailedActivityState.java
│   │   │       │   │               │   │   ├── FlowNodeStateManager.java
│   │   │       │   │               │   │   ├── InitializingActivityState.java
│   │   │       │   │               │   │   ├── InitializingActivityWithBoundaryEventsState.java
│   │   │       │   │               │   │   ├── InitializingAndExecutingFlowNodeState.java
│   │   │       │   │               │   │   ├── InitializingBoundaryEventState.java
│   │   │       │   │               │   │   ├── InitializingLoopActivityState.java
│   │   │       │   │               │   │   ├── InitializingMultiInstanceActivityState.java
│   │   │       │   │               │   │   ├── InterruptingBoundaryAndIntermediateCatchEventState.java
│   │   │       │   │               │   │   ├── OnEnterAndFinishConnectorState.java
│   │   │       │   │               │   │   ├── OnEnterConnectorState.java
│   │   │       │   │               │   │   ├── OnEnterOrOnFinishConnectorState.java
│   │   │       │   │               │   │   ├── OnFinishConnectorState.java
│   │   │       │   │               │   │   ├── ReadyActivityState.java
│   │   │       │   │               │   │   ├── SkippedFlowNodeState.java
│   │   │       │   │               │   │   └── WaitingFlowNodeState.java
│   │   │       │   │               │   ├── transition/
│   │   │       │   │               │   │   ├── AutomaticTaskStates.java
│   │   │       │   │               │   │   ├── BoundaryEventStates.java
│   │   │       │   │               │   │   ├── CallActivityTaskStates.java
│   │   │       │   │               │   │   ├── DefaultTransitionGetter.java
│   │   │       │   │               │   │   ├── EndEventStates.java
│   │   │       │   │               │   │   ├── EvaluatedTransitions.java
│   │   │       │   │               │   │   ├── ExclusiveGatewayTransitionEvaluationStrategy.java
│   │   │       │   │               │   │   ├── FlowNodeStateSequences.java
│   │   │       │   │               │   │   ├── GatewaysStates.java
│   │   │       │   │               │   │   ├── ImplicitGatewayTransitionEvaluator.java
│   │   │       │   │               │   │   ├── InclusiveExclusiveTransitionEvaluator.java
│   │   │       │   │               │   │   ├── InclusiveGatewayTransitionEvaluationStrategy.java
│   │   │       │   │               │   │   ├── IntermediateCatchEventStates.java
│   │   │       │   │               │   │   ├── IntermediateThrowEventStates.java
│   │   │       │   │               │   │   ├── LoopActivityStates.java
│   │   │       │   │               │   │   ├── ManualTaskStates.java
│   │   │       │   │               │   │   ├── MultiInstanceActivityStates.java
│   │   │       │   │               │   │   ├── ParallelGatewayTransitionEvaluator.java
│   │   │       │   │               │   │   ├── ReceiveTaskStates.java
│   │   │       │   │               │   │   ├── STransitionConditionEvaluationException.java
│   │   │       │   │               │   │   ├── SendTaskStates.java
│   │   │       │   │               │   │   ├── StartEventStates.java
│   │   │       │   │               │   │   ├── SubProcessActivityTaskStates.java
│   │   │       │   │               │   │   ├── TransitionConditionEvaluator.java
│   │   │       │   │               │   │   ├── TransitionEvaluationStrategy.java
│   │   │       │   │               │   │   └── UserTaskStates.java
│   │   │       │   │               │   └── work/
│   │   │       │   │               │       ├── BPMWorkFactory.java
│   │   │       │   │               │       ├── ExecuteConnectorOfActivity.java
│   │   │       │   │               │       ├── ExecuteConnectorOfProcess.java
│   │   │       │   │               │       ├── ExecuteConnectorWork.java
│   │   │       │   │               │       ├── ExecuteFlowNodeWork.java
│   │   │       │   │               │       ├── ExecuteMessageCoupleWork.java
│   │   │       │   │               │       ├── FailedStateSetter.java
│   │   │       │   │               │       ├── InSessionBonitaWork.java
│   │   │       │   │               │       ├── LockProcessInstanceWork.java
│   │   │       │   │               │       ├── NotifyChildFinishedWork.java
│   │   │       │   │               │       ├── RestartException.java
│   │   │       │   │               │       ├── SetInFailCallable.java
│   │   │       │   │               │       ├── TenantAwareBonitaWork.java
│   │   │       │   │               │       ├── TxBonitaWork.java
│   │   │       │   │               │       ├── WrappingBonitaWork.java
│   │   │       │   │               │       └── failurewrapping/
│   │   │       │   │               │           ├── ConnectorDefinitionAndInstanceContextWork.java
│   │   │       │   │               │           ├── FlowNodeDefinitionAndInstanceContextWork.java
│   │   │       │   │               │           ├── MessageInstanceContextWork.java
│   │   │       │   │               │           ├── ProcessDefinitionContextWork.java
│   │   │       │   │               │           ├── ProcessInstanceContextWork.java
│   │   │       │   │               │           ├── TriggerSignalWork.java
│   │   │       │   │               │           └── TxInHandleFailureWrappingWork.java
│   │   │       │   │               ├── expression/
│   │   │       │   │               │   ├── BusinessDataExpressionExecutorStrategy.java
│   │   │       │   │               │   ├── BusinessDataReferenceExpressionExecutorStrategy.java
│   │   │       │   │               │   ├── BusinessObjectDAOExpressionStrategy.java
│   │   │       │   │               │   ├── CommonBusinessDataExpressionExecutorStrategy.java
│   │   │       │   │               │   ├── ContractInputExpressionExecutorStrategy.java
│   │   │       │   │               │   ├── DataExpressionExecutorStrategy.java
│   │   │       │   │               │   ├── DocumentListReferenceExpressionExecutorStrategy.java
│   │   │       │   │               │   ├── DocumentReferenceExpressionExecutorStrategy.java
│   │   │       │   │               │   ├── EngineConstantExpressionBuilder.java
│   │   │       │   │               │   ├── EngineConstantExpressionExecutorStrategy.java
│   │   │       │   │               │   ├── ParameterExpressionExecutorStrategy.java
│   │   │       │   │               │   └── QueryBusinessDataExpressionExecutorStrategy.java
│   │   │       │   │               ├── handler/
│   │   │       │   │               │   └── SchedulerServiceRestartHandler.java
│   │   │       │   │               ├── identity/
│   │   │       │   │               │   ├── CustomUserInfoDefinitionImporter.java
│   │   │       │   │               │   ├── CustomUserInfoValueImporter.java
│   │   │       │   │               │   ├── ExportOrganization.java
│   │   │       │   │               │   ├── ImportDuplicateInOrganizationException.java
│   │   │       │   │               │   ├── ImportOrganization.java
│   │   │       │   │               │   ├── ImportOrganizationFailOnDuplicatesStrategy.java
│   │   │       │   │               │   ├── ImportOrganizationIgnoreDuplicatesStrategy.java
│   │   │       │   │               │   ├── ImportOrganizationMergeDuplicatesStrategy.java
│   │   │       │   │               │   ├── ImportOrganizationStrategy.java
│   │   │       │   │               │   ├── SImportOrganizationException.java
│   │   │       │   │               │   └── UserImporter.java
│   │   │       │   │               ├── jobs/
│   │   │       │   │               │   ├── InternalJob.java
│   │   │       │   │               │   └── TriggerTimerEventJob.java
│   │   │       │   │               ├── log/
│   │   │       │   │               │   └── LogMessageBuilder.java
│   │   │       │   │               ├── message/
│   │   │       │   │               │   └── MessagesHandlingService.java
│   │   │       │   │               ├── operation/
│   │   │       │   │               │   ├── AbstractDocumentLeftOperandHandler.java
│   │   │       │   │               │   ├── BusinessDataAssignmentStrategy.java
│   │   │       │   │               │   ├── BusinessDataContext.java
│   │   │       │   │               │   ├── BusinessDataJavaMethodOperationExecutorStrategy.java
│   │   │       │   │               │   ├── BusinessDataLeftOperandHandler.java
│   │   │       │   │               │   ├── DataLeftOperandHandler.java
│   │   │       │   │               │   ├── DocumentLeftOperandHandler.java
│   │   │       │   │               │   ├── DocumentListLeftOperandHandler.java
│   │   │       │   │               │   ├── EntitiesActionsExecutor.java
│   │   │       │   │               │   ├── EntityAction.java
│   │   │       │   │               │   ├── MergeEntityAction.java
│   │   │       │   │               │   ├── SEntityActionExecutionException.java
│   │   │       │   │               │   ├── StringIndexLeftOperandHandler.java
│   │   │       │   │               │   ├── TransientDataLeftOperandHandler.java
│   │   │       │   │               │   └── UpdateDataRefAction.java
│   │   │       │   │               ├── page/
│   │   │       │   │               │   ├── AuthorizationRuleWithParameters.java
│   │   │       │   │               │   ├── IsActorInitiatorRule.java
│   │   │       │   │               │   ├── IsAdminRule.java
│   │   │       │   │               │   ├── IsInvolvedInProcessInstanceRule.java
│   │   │       │   │               │   ├── IsManagerOfUserInvolvedInProcessInstanceRule.java
│   │   │       │   │               │   ├── IsProcessInitiatorRule.java
│   │   │       │   │               │   ├── IsProcessOwnerRule.java
│   │   │       │   │               │   ├── IsTaskAvailableForUserRule.java
│   │   │       │   │               │   └── IsTaskPerformerRule.java
│   │   │       │   │               ├── platform/
│   │   │       │   │               │   ├── BroadcastServiceLocal.java
│   │   │       │   │               │   ├── PlatformManager.java
│   │   │       │   │               │   ├── PlatformStateProvider.java
│   │   │       │   │               │   ├── PlatformVersionChecker.java
│   │   │       │   │               │   └── configuration/
│   │   │       │   │               │       ├── NodeConfiguration.java
│   │   │       │   │               │       ├── NodeConfigurationImpl.java
│   │   │       │   │               │       └── datasource/
│   │   │       │   │               │           ├── QuartzConnectionProvider.java
│   │   │       │   │               │           ├── QuartzDataSourceAccessor.java
│   │   │       │   │               │           └── QuartzDataSourceAccessorProvider.java
│   │   │       │   │               ├── profile/
│   │   │       │   │               │   ├── DefaultProfilesUpdater.java
│   │   │       │   │               │   ├── DeleteExistingImportStrategy.java
│   │   │       │   │               │   ├── FailOnDuplicateImportStrategy.java
│   │   │       │   │               │   ├── IgnoreDuplicateImportStrategy.java
│   │   │       │   │               │   ├── ImportPolicy.java
│   │   │       │   │               │   ├── ProfileImportStrategy.java
│   │   │       │   │               │   ├── ProfilesExporter.java
│   │   │       │   │               │   ├── ProfilesImporter.java
│   │   │       │   │               │   ├── ReplaceDuplicateImportStrategy.java
│   │   │       │   │               │   ├── UpdateDefaultsAndCreateNewImportStrategy.java
│   │   │       │   │               │   └── UpdateDefaultsImportStrategy.java
│   │   │       │   │               ├── search/
│   │   │       │   │               │   ├── AbstractActivityInstanceSearchEntity.java
│   │   │       │   │               │   ├── AbstractArchiveActivityInstanceSearchEntity.java
│   │   │       │   │               │   ├── AbstractArchivedCommentsSearchEntity.java
│   │   │       │   │               │   ├── AbstractArchivedConnectorInstanceSearchEntity.java
│   │   │       │   │               │   ├── AbstractArchivedDocumentSearchEntity.java
│   │   │       │   │               │   ├── AbstractArchivedHumanTaskInstanceSearchEntity.java
│   │   │       │   │               │   ├── AbstractArchivedProcessInstanceSearchEntity.java
│   │   │       │   │               │   ├── AbstractCommandSearchEntity.java
│   │   │       │   │               │   ├── AbstractCommentSearchEntity.java
│   │   │       │   │               │   ├── AbstractDocumentSearchEntity.java
│   │   │       │   │               │   ├── AbstractGroupSearchEntity.java
│   │   │       │   │               │   ├── AbstractHumanTaskInstanceSearchEntity.java
│   │   │       │   │               │   ├── AbstractProcessDeploymentInfoSearchEntity.java
│   │   │       │   │               │   ├── AbstractProcessInstanceSearchEntity.java
│   │   │       │   │               │   ├── AbstractProfileSearchEntity.java
│   │   │       │   │               │   ├── AbstractRoleSearchEntity.java
│   │   │       │   │               │   ├── AbstractSearchEntity.java
│   │   │       │   │               │   ├── AbstractSupervisorSearchEntity.java
│   │   │       │   │               │   ├── AbstractUserSearchEntity.java
│   │   │       │   │               │   ├── BonitaReadFunction.java
│   │   │       │   │               │   ├── SPageOutOfRangeException.java
│   │   │       │   │               │   ├── SSearchException.java
│   │   │       │   │               │   ├── SearchCommands.java
│   │   │       │   │               │   ├── activity/
│   │   │       │   │               │   │   ├── SearchActivityInstances.java
│   │   │       │   │               │   │   └── SearchArchivedActivityInstances.java
│   │   │       │   │               │   ├── comment/
│   │   │       │   │               │   │   ├── SearchArchivedComments.java
│   │   │       │   │               │   │   ├── SearchComments.java
│   │   │       │   │               │   │   ├── SearchCommentsInvolvingUser.java
│   │   │       │   │               │   │   └── SearchCommentsManagedBy.java
│   │   │       │   │               │   ├── connector/
│   │   │       │   │               │   │   └── SearchArchivedConnectorInstance.java
│   │   │       │   │               │   ├── descriptor/
│   │   │       │   │               │   │   ├── FieldDescriptor.java
│   │   │       │   │               │   │   ├── SearchActivityInstanceDescriptor.java
│   │   │       │   │               │   │   ├── SearchApplicationDescriptor.java
│   │   │       │   │               │   │   ├── SearchApplicationMenuDescriptor.java
│   │   │       │   │               │   │   ├── SearchApplicationPageDescriptor.java
│   │   │       │   │               │   │   ├── SearchArchivedActivityInstanceDescriptor.java
│   │   │       │   │               │   │   ├── SearchArchivedCommentsDescriptor.java
│   │   │       │   │               │   │   ├── SearchArchivedConnectorInstanceDescriptor.java
│   │   │       │   │               │   │   ├── SearchArchivedDocumentDescriptor.java
│   │   │       │   │               │   │   ├── SearchArchivedFlowNodeInstanceDescriptor.java
│   │   │       │   │               │   │   ├── SearchArchivedHumanTaskInstanceDescriptor.java
│   │   │       │   │               │   │   ├── SearchArchivedProcessInstancesDescriptor.java
│   │   │       │   │               │   │   ├── SearchCommandDescriptor.java
│   │   │       │   │               │   │   ├── SearchCommentDescriptor.java
│   │   │       │   │               │   │   ├── SearchConnectorInstanceDescriptor.java
│   │   │       │   │               │   │   ├── SearchCustomUserInfoValueDescriptor.java
│   │   │       │   │               │   │   ├── SearchDocumentDescriptor.java
│   │   │       │   │               │   │   ├── SearchEntitiesDescriptor.java
│   │   │       │   │               │   │   ├── SearchEntityDescriptor.java
│   │   │       │   │               │   │   ├── SearchEventTriggerInstanceDescriptor.java
│   │   │       │   │               │   │   ├── SearchFlowNodeInstanceDescriptor.java
│   │   │       │   │               │   │   ├── SearchFormMappingDescriptor.java
│   │   │       │   │               │   │   ├── SearchGroupDescriptor.java
│   │   │       │   │               │   │   ├── SearchHumanTaskInstanceDescriptor.java
│   │   │       │   │               │   │   ├── SearchMessageInstanceDescriptor.java
│   │   │       │   │               │   │   ├── SearchPageDescriptor.java
│   │   │       │   │               │   │   ├── SearchProcessDefinitionsDescriptor.java
│   │   │       │   │               │   │   ├── SearchProcessInstanceDescriptor.java
│   │   │       │   │               │   │   ├── SearchProcessSupervisorDescriptor.java
│   │   │       │   │               │   │   ├── SearchProfileDescriptor.java
│   │   │       │   │               │   │   ├── SearchProfileMemberGroupDescriptor.java
│   │   │       │   │               │   │   ├── SearchProfileMemberRoleAndGroupDescriptor.java
│   │   │       │   │               │   │   ├── SearchProfileMemberRoleDescriptor.java
│   │   │       │   │               │   │   ├── SearchProfileMemberUserDescriptor.java
│   │   │       │   │               │   │   ├── SearchRoleDescriptor.java
│   │   │       │   │               │   │   ├── SearchUserDescriptor.java
│   │   │       │   │               │   │   └── SearchWaitingEventSerchDescriptor.java
│   │   │       │   │               │   ├── document/
│   │   │       │   │               │   │   ├── SearchArchivedDocuments.java
│   │   │       │   │               │   │   ├── SearchArchivedDocumentsSupervisedBy.java
│   │   │       │   │               │   │   ├── SearchDocuments.java
│   │   │       │   │               │   │   └── SearchDocumentsSupervisedBy.java
│   │   │       │   │               │   ├── events/
│   │   │       │   │               │   │   └── trigger/
│   │   │       │   │               │   │       ├── SearchTimerEventTriggerInstances.java
│   │   │       │   │               │   │       └── SearchWaitingEvents.java
│   │   │       │   │               │   ├── flownode/
│   │   │       │   │               │   │   ├── SearchArchivedFlowNodeInstances.java
│   │   │       │   │               │   │   └── SearchFlowNodeInstances.java
│   │   │       │   │               │   ├── form/
│   │   │       │   │               │   │   └── SearchFormMappings.java
│   │   │       │   │               │   ├── identity/
│   │   │       │   │               │   │   ├── SearchCustomUserInfoValues.java
│   │   │       │   │               │   │   ├── SearchGroups.java
│   │   │       │   │               │   │   ├── SearchRoles.java
│   │   │       │   │               │   │   ├── SearchUsers.java
│   │   │       │   │               │   │   ├── SearchUsersWhoCanExecutePendingHumanTaskDeploymentInfo.java
│   │   │       │   │               │   │   └── SearchUsersWhoCanStartProcessDeploymentInfo.java
│   │   │       │   │               │   ├── process/
│   │   │       │   │               │   │   ├── SearchArchivedProcessInstances.java
│   │   │       │   │               │   │   ├── SearchArchivedProcessInstancesInvolvingUser.java
│   │   │       │   │               │   │   ├── SearchArchivedProcessInstancesSupervisedBy.java
│   │   │       │   │               │   │   ├── SearchArchivedProcessInstancesWithoutSubProcess.java
│   │   │       │   │               │   │   ├── SearchFai

================================================
FILE CONTENTS
================================================

================================================
FILE: .github/workflows/build.yml
================================================
name: Build Bonita Community
on:
  push:
    branches:
      - dev
  pull_request:
    types: [opened, synchronize, reopened]
jobs:
  build:
    name: Build Bonita Community
    runs-on: ubuntu-latest
    steps:

      - uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Set up JDK 17
        uses: actions/setup-java@v4
        with:
          distribution: temurin
          java-version: 17

      - name: 🔧 Setup Gradle
        uses: gradle/actions/setup-gradle@v3
        with:
          cache-read-only: false

      - name: ⚙️ Run Community build & ✔️ unit tests
        run: ./gradlew build

      - name: Run Integration tests
        run: ./gradlew iT

      - name: 🚀 Publish Test Report
        uses: EnricoMi/publish-unit-test-result-action@v2
        if: always()
        with:
          files: '**/build/test-results/**/*.xml'


================================================
FILE: .gitignore
================================================
### virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*

### OSX template
.DS_Store
.AppleDouble
.LSOverride

### Maven template
target
pom.xml.tag
pom.xml.releaseBackup
pom.xml.versionsBackup
pom.xml.next
release.properties
dependency-reduced-pom.xml
buildNumber.properties
.mvn/timing.properties

### Intellij
*.iml
.idea
*.ipr
*.iws
.shelf

### Eclipse
.project
.settings
.classpath

### Temporary files
*.orig
**/bin
*.tmp
*~

### bonita template
engine-sp-it.exec
FILEPATH.*.db
Temporary*.java
generated
h2databasedir

### gradle
build
.gradle


================================================
FILE: LICENSE.txt
================================================
                  GNU LESSER GENERAL PUBLIC LICENSE
                       Version 2.1, February 1999

 Copyright (C) 1991, 1999 Free Software Foundation, Inc.
 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.

[This is the first released version of the Lesser GPL.  It also counts
 as the successor of the GNU Library Public License, version 2, hence
 the version number 2.1.]

                            Preamble

  The licenses for most software are designed to take away your
freedom to share and change it.  By contrast, the GNU General Public
Licenses are intended to guarantee your freedom to share and change
free software--to make sure the software is free for all its users.

  This license, the Lesser General Public License, applies to some
specially designated software packages--typically libraries--of the
Free Software Foundation and other authors who decide to use it.  You
can use it too, but we suggest you first think carefully about whether
this license or the ordinary General Public License is the better
strategy to use in any particular case, based on the explanations below.

  When we speak of free software, we are referring to freedom of use,
not price.  Our General Public Licenses are designed to make sure that
you have the freedom to distribute copies of free software (and charge
for this service if you wish); that you receive source code or can get
it if you want it; that you can change the software and use pieces of
it in new free programs; and that you are informed that you can do
these things.

  To protect your rights, we need to make restrictions that forbid
distributors to deny you these rights or to ask you to surrender these
rights.  These restrictions translate to certain responsibilities for
you if you distribute copies of the library or if you modify it.

  For example, if you distribute copies of the library, whether gratis
or for a fee, you must give the recipients all the rights that we gave
you.  You must make sure that they, too, receive or can get the source
code.  If you link other code with the library, you must provide
complete object files to the recipients, so that they can relink them
with the library after making changes to the library and recompiling
it.  And you must show them these terms so they know their rights.

  We protect your rights with a two-step method: (1) we copyright the
library, and (2) we offer you this license, which gives you legal
permission to copy, distribute and/or modify the library.

  To protect each distributor, we want to make it very clear that
there is no warranty for the free library.  Also, if the library is
modified by someone else and passed on, the recipients should know
that what they have is not the original version, so that the original
author's reputation will not be affected by problems that might be
introduced by others.

  Finally, software patents pose a constant threat to the existence of
any free program.  We wish to make sure that a company cannot
effectively restrict the users of a free program by obtaining a
restrictive license from a patent holder.  Therefore, we insist that
any patent license obtained for a version of the library must be
consistent with the full freedom of use specified in this license.

  Most GNU software, including some libraries, is covered by the
ordinary GNU General Public License.  This license, the GNU Lesser
General Public License, applies to certain designated libraries, and
is quite different from the ordinary General Public License.  We use
this license for certain libraries in order to permit linking those
libraries into non-free programs.

  When a program is linked with a library, whether statically or using
a shared library, the combination of the two is legally speaking a
combined work, a derivative of the original library.  The ordinary
General Public License therefore permits such linking only if the
entire combination fits its criteria of freedom.  The Lesser General
Public License permits more lax criteria for linking other code with
the library.

  We call this license the "Lesser" General Public License because it
does Less to protect the user's freedom than the ordinary General
Public License.  It also provides other free software developers Less
of an advantage over competing non-free programs.  These disadvantages
are the reason we use the ordinary General Public License for many
libraries.  However, the Lesser license provides advantages in certain
special circumstances.

  For example, on rare occasions, there may be a special need to
encourage the widest possible use of a certain library, so that it becomes
a de-facto standard.  To achieve this, non-free programs must be
allowed to use the library.  A more frequent case is that a free
library does the same job as widely used non-free libraries.  In this
case, there is little to gain by limiting the free library to free
software only, so we use the Lesser General Public License.

  In other cases, permission to use a particular library in non-free
programs enables a greater number of people to use a large body of
free software.  For example, permission to use the GNU C Library in
non-free programs enables many more people to use the whole GNU
operating system, as well as its variant, the GNU/Linux operating
system.

  Although the Lesser General Public License is Less protective of the
users' freedom, it does ensure that the user of a program that is
linked with the Library has the freedom and the wherewithal to run
that program using a modified version of the Library.

  The precise terms and conditions for copying, distribution and
modification follow.  Pay close attention to the difference between a
"work based on the library" and a "work that uses the library".  The
former contains code derived from the library, whereas the latter must
be combined with the library in order to run.

                  GNU LESSER GENERAL PUBLIC LICENSE
   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

  0. This License Agreement applies to any software library or other
program which contains a notice placed by the copyright holder or
other authorized party saying it may be distributed under the terms of
this Lesser General Public License (also called "this License").
Each licensee is addressed as "you".

  A "library" means a collection of software functions and/or data
prepared so as to be conveniently linked with application programs
(which use some of those functions and data) to form executables.

  The "Library", below, refers to any such software library or work
which has been distributed under these terms.  A "work based on the
Library" means either the Library or any derivative work under
copyright law: that is to say, a work containing the Library or a
portion of it, either verbatim or with modifications and/or translated
straightforwardly into another language.  (Hereinafter, translation is
included without limitation in the term "modification".)

  "Source code" for a work means the preferred form of the work for
making modifications to it.  For a library, complete source code means
all the source code for all modules it contains, plus any associated
interface definition files, plus the scripts used to control compilation
and installation of the library.

  Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope.  The act of
running a program using the Library is not restricted, and output from
such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it).  Whether that is true depends on what the Library does
and what the program that uses the Library does.

  1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
appropriate copyright notice and disclaimer of warranty; keep intact
all the notices that refer to this License and to the absence of any
warranty; and distribute a copy of this License along with the
Library.

  You may charge a fee for the physical act of transferring a copy,
and you may at your option offer warranty protection in exchange for a
fee.

  2. You may modify your copy or copies of the Library or any portion
of it, thus forming a work based on the Library, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:

    a) The modified work must itself be a software library.

    b) You must cause the files modified to carry prominent notices
    stating that you changed the files and the date of any change.

    c) You must cause the whole of the work to be licensed at no
    charge to all third parties under the terms of this License.

    d) If a facility in the modified Library refers to a function or a
    table of data to be supplied by an application program that uses
    the facility, other than as an argument passed when the facility
    is invoked, then you must make a good faith effort to ensure that,
    in the event an application does not supply such function or
    table, the facility still operates, and performs whatever part of
    its purpose remains meaningful.

    (For example, a function in a library to compute square roots has
    a purpose that is entirely well-defined independent of the
    application.  Therefore, Subsection 2d requires that any
    application-supplied function or table used by this function must
    be optional: if the application does not supply it, the square
    root function must still compute square roots.)

These requirements apply to the modified work as a whole.  If
identifiable sections of that work are not derived from the Library,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works.  But when you
distribute the same sections as part of a whole which is a work based
on the Library, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote
it.

Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Library.

In addition, mere aggregation of another work not based on the Library
with the Library (or with a work based on the Library) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.

  3. You may opt to apply the terms of the ordinary GNU General Public
License instead of this License to a given copy of the Library.  To do
this, you must alter all the notices that refer to this License, so
that they refer to the ordinary GNU General Public License, version 2,
instead of to this License.  (If a newer version than version 2 of the
ordinary GNU General Public License has appeared, then you can specify
that version instead if you wish.)  Do not make any other change in
these notices.

  Once this change is made in a given copy, it is irreversible for
that copy, so the ordinary GNU General Public License applies to all
subsequent copies and derivative works made from that copy.

  This option is useful when you wish to copy part of the code of
the Library into a program that is not a library.

  4. You may copy and distribute the Library (or a portion or
derivative of it, under Section 2) in object code or executable form
under the terms of Sections 1 and 2 above provided that you accompany
it with the complete corresponding machine-readable source code, which
must be distributed under the terms of Sections 1 and 2 above on a
medium customarily used for software interchange.

  If distribution of object code is made by offering access to copy
from a designated place, then offering equivalent access to copy the
source code from the same place satisfies the requirement to
distribute the source code, even though third parties are not
compelled to copy the source along with the object code.

  5. A program that contains no derivative of any portion of the
Library, but is designed to work with the Library by being compiled or
linked with it, is called a "work that uses the Library".  Such a
work, in isolation, is not a derivative work of the Library, and
therefore falls outside the scope of this License.

  However, linking a "work that uses the Library" with the Library
creates an executable that is a derivative of the Library (because it
contains portions of the Library), rather than a "work that uses the
library".  The executable is therefore covered by this License.
Section 6 states terms for distribution of such executables.

  When a "work that uses the Library" uses material from a header file
that is part of the Library, the object code for the work may be a
derivative work of the Library even though the source code is not.
Whether this is true is especially significant if the work can be
linked without the Library, or if the work is itself a library.  The
threshold for this to be true is not precisely defined by law.

  If such an object file uses only numerical parameters, data
structure layouts and accessors, and small macros and small inline
functions (ten lines or less in length), then the use of the object
file is unrestricted, regardless of whether it is legally a derivative
work.  (Executables containing this object code plus portions of the
Library will still fall under Section 6.)

  Otherwise, if the work is a derivative of the Library, you may
distribute the object code for the work under the terms of Section 6.
Any executables containing that work also fall under Section 6,
whether or not they are linked directly with the Library itself.

  6. As an exception to the Sections above, you may also combine or
link a "work that uses the Library" with the Library to produce a
work containing portions of the Library, and distribute that work
under terms of your choice, provided that the terms permit
modification of the work for the customer's own use and reverse
engineering for debugging such modifications.

  You must give prominent notice with each copy of the work that the
Library is used in it and that the Library and its use are covered by
this License.  You must supply a copy of this License.  If the work
during execution displays copyright notices, you must include the
copyright notice for the Library among them, as well as a reference
directing the user to the copy of this License.  Also, you must do one
of these things:

    a) Accompany the work with the complete corresponding
    machine-readable source code for the Library including whatever
    changes were used in the work (which must be distributed under
    Sections 1 and 2 above); and, if the work is an executable linked
    with the Library, with the complete machine-readable "work that
    uses the Library", as object code and/or source code, so that the
    user can modify the Library and then relink to produce a modified
    executable containing the modified Library.  (It is understood
    that the user who changes the contents of definitions files in the
    Library will not necessarily be able to recompile the application
    to use the modified definitions.)

    b) Use a suitable shared library mechanism for linking with the
    Library.  A suitable mechanism is one that (1) uses at run time a
    copy of the library already present on the user's computer system,
    rather than copying library functions into the executable, and (2)
    will operate properly with a modified version of the library, if
    the user installs one, as long as the modified version is
    interface-compatible with the version that the work was made with.

    c) Accompany the work with a written offer, valid for at
    least three years, to give the same user the materials
    specified in Subsection 6a, above, for a charge no more
    than the cost of performing this distribution.

    d) If distribution of the work is made by offering access to copy
    from a designated place, offer equivalent access to copy the above
    specified materials from the same place.

    e) Verify that the user has already received a copy of these
    materials or that you have already sent this user a copy.

  For an executable, the required form of the "work that uses the
Library" must include any data and utility programs needed for
reproducing the executable from it.  However, as a special exception,
the materials to be distributed need not include anything that is
normally distributed (in either source or binary form) with the major
components (compiler, kernel, and so on) of the operating system on
which the executable runs, unless that component itself accompanies
the executable.

  It may happen that this requirement contradicts the license
restrictions of other proprietary libraries that do not normally
accompany the operating system.  Such a contradiction means you cannot
use both them and the Library together in an executable that you
distribute.

  7. You may place library facilities that are a work based on the
Library side-by-side in a single library together with other library
facilities not covered by this License, and distribute such a combined
library, provided that the separate distribution of the work based on
the Library and of the other library facilities is otherwise
permitted, and provided that you do these two things:

    a) Accompany the combined library with a copy of the same work
    based on the Library, uncombined with any other library
    facilities.  This must be distributed under the terms of the
    Sections above.

    b) Give prominent notice with the combined library of the fact
    that part of it is a work based on the Library, and explaining
    where to find the accompanying uncombined form of the same work.

  8. You may not copy, modify, sublicense, link with, or distribute
the Library except as expressly provided under this License.  Any
attempt otherwise to copy, modify, sublicense, link with, or
distribute the Library is void, and will automatically terminate your
rights under this License.  However, parties who have received copies,
or rights, from you under this License will not have their licenses
terminated so long as such parties remain in full compliance.

  9. You are not required to accept this License, since you have not
signed it.  However, nothing else grants you permission to modify or
distribute the Library or its derivative works.  These actions are
prohibited by law if you do not accept this License.  Therefore, by
modifying or distributing the Library (or any work based on the
Library), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Library or works based on it.

  10. Each time you redistribute the Library (or any work based on the
Library), the recipient automatically receives a license from the
original licensor to copy, distribute, link with or modify the Library
subject to these terms and conditions.  You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties with
this License.

  11. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License.  If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Library at all.  For example, if a patent
license would not permit royalty-free redistribution of the Library by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Library.

If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply,
and the section as a whole is intended to apply in other circumstances.

It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system which is
implemented by public license practices.  Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.

This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.

  12. If the distribution and/or use of the Library is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Library under this License may add
an explicit geographical distribution limitation excluding those countries,
so that distribution is permitted only in or among countries not thus
excluded.  In such case, this License incorporates the limitation as if
written in the body of this License.

  13. The Free Software Foundation may publish revised and/or new
versions of the Lesser General Public License from time to time.
Such new versions will be similar in spirit to the present version,
but may differ in detail to address new problems or concerns.

Each version is given a distinguishing version number.  If the Library
specifies a version number of this License which applies to it and
"any later version", you have the option of following the terms and
conditions either of that version or of any later version published by
the Free Software Foundation.  If the Library does not specify a
license version number, you may choose any version ever published by
the Free Software Foundation.

  14. If you wish to incorporate parts of the Library into other free
programs whose distribution conditions are incompatible with these,
write to the author to ask for permission.  For software which is
copyrighted by the Free Software Foundation, write to the Free
Software Foundation; we sometimes make exceptions for this.  Our
decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.

                            NO WARRANTY

  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.

                     END OF TERMS AND CONDITIONS

           How to Apply These Terms to Your New Libraries

  If you develop a new library, and you want it to be of the greatest
possible use to the public, we recommend making it free software that
everyone can redistribute and change.  You can do so by permitting
redistribution under these terms (or, alternatively, under the terms of the
ordinary General Public License).

  To apply these terms, attach the following notices to the library.  It is
safest to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least the
"copyright" line and a pointer to where the full notice is found.

    <one line to give the library's name and a brief idea of what it does.>
    Copyright (C) <year>  <name of author>

    This library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser General Public
    License as published by the Free Software Foundation; either
    version 2.1 of the License, or (at your option) any later version.

    This library is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    Lesser General Public License for more details.

    You should have received a copy of the GNU Lesser General Public
    License along with this library; if not, write to the Free Software
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA

Also add information on how to contact you by electronic and paper mail.

You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the library, if
necessary.  Here is a sample; alter the names:

  Yoyodyne, Inc., hereby disclaims all copyright interest in the
  library `Frob' (a library for tweaking knobs) written by James Random Hacker.

  <signature of Ty Coon>, 1 April 1990
  Ty Coon, President of Vice

That's all there is to it!


================================================
FILE: README.md
================================================
# Bonita Engine

[![Build](https://github.com/bonitasoft/bonita-engine/actions/workflows/build.yml/badge.svg)](https://github.com/bonitasoft/bonita-engine/actions/workflows/build.yml)

[![Maven Central](https://maven-badges.herokuapp.com/maven-central/org.bonitasoft.engine/bonita-server/badge.svg)](https://maven-badges.herokuapp.com/maven-central/org.bonitasoft.engine/bonita-server)

Deploy, execute, manage applications made with Bonita Studio.


## Using the Engine

The engine is included as part of either [Bonita Studio][downloads] or [Bonita Runtime][downloads], and executes the BPMN process logic.
The engine can however be included as a standalone dependency in a custom Application, as explained [here][standalone]

## Running the Project

### Prerequisites
>     Java JDK 17 (to compile), and 17 (to run)

This project bundles the [Gradle Wrapper][wrapper], so the `gradlew` script is available at
the project root.

### Compiling

Just run the following Gradle command:
```
./gradlew build
```

To be able to successfully build other Bonita components that use the Engine, run:
```
 ./gradlew publishToMavenLocal
```
Among other things, it also generates the javadoc used by Bonita Studio.

The command above runs all unit tests. To skip them, add the `-x test`
option.

### Version
Version is declared in gradle.properties

To override the current version on build, use the parameter **-Pversion** like:

```
 ./gradlew -Pversion=7.9.3 <tasks>
```

### Extra repositories

repositories can be added using comma separated list of repositories
using property `extraRepositories` in format `repo_name::repo_url`

credentials can be passed using properties `repo_nameUsername` and
`repo_namePassword`

it can be configured using `-PextraRepositories=` or gradle.properties
file.

example of gradle properties set in `~/.gradle/gradle.properties`

```properties
extraRepositories=releases::https://repo1/releases,snapshots::https://repo2/snapshots/
releasesUsername=username
releasesPassword=password
snapshotsUsername=username
snapshotsPassword=password
```

The same can be done for publishing repository (single repo) using property `altDeploymentRepository`


### Running unit / integration tests

To run all **unit + integration tests** (on the default embedded H2
database), run the following command:
```bash
./gradlew test integrationTest
```

### Test Retry Configuration

The project uses the [Gradle Test Retry Plugin](https://plugins.gradle.org/plugin/org.gradle.test-retry) to automatically retry failed tests and detect flaky tests.

#### Default Retry Behavior

By default:
- Failed tests are retried up to **2 more times**
- Build fails if more than **6 tests** fail in one round
- Flaky tests (pass on retry) fail the build locally but not in CI
- Only applies to '*IT' test classes (tasks `integrationTest` and database's: `postgresDatabaseTest`, etc.)

#### Overriding Retry Settings

```bash
# Retry up to 5 times instead of 2
./gradlew integrationTest -PtestRetryMaxRetries=5

# Retry and allow up to 20 failures before stopping
./gradlew integrationTest -PtestRetryMaxRetries=5 -PtestRetryMaxFailures=20

# Disable retry (set to 0)
./gradlew integrationTest -PtestRetryMaxRetries=0

# Don't fail on flaky tests (tests that pass on retry). Example for database tests:
./gradlew postgresDatabaseTest -PtestRetryFailOnFlaky=false
```

#### Important Note

The test-retry plugin is designed to **detect** flaky tests, not to mask them. Always investigate and fix the root cause of flaky tests rather than just relying on retries.


## Project Structure
The project is composed of several modules. Unit tests are contained in the modules, integration tests are regrouped in bonita-integration-tests.

* `bonita-engine-spring-boot-starter` : Run the engine in standalone mode using Spring boot, see [documentation][standalone]
* `bonita-engine-standalone` : Run the engine in standalone programmatically, see [documentation][standalone]
* `bonita-test-api` : Junit Rule to include the engine in your tests
* `bpm` : Services related to bpm process execution
* `buildSrc` : Internal Gradle plugins used to build Bonita Engine
* `platform` : Services that handle the platform creation/configuration
* `services` : Generic services used by the engine

## How to contribute
In order to contribute to the project, read the [guide][guide].
To report an issue use the official [bugtracker][bugtracker].




[downloads]: https://www.ofelia.com/downloads
[standalone]: https://documentation.ofelia.com/bonita/latest/runtime/embed-engine
[guide]: https://github.com/bonitasoft/bonita-developer-resources/blob/master/CONTRIBUTING.MD
[wrapper]: https://docs.gradle.org/current/userguide/gradle_wrapper.html
[bugtracker]: https://bonita.atlassian.net/projects/BBPMC/issues


================================================
FILE: bonita-engine/build.gradle
================================================
import org.bonitasoft.engine.gradle.PomUtils

//this module is published to be imported as dependency management
plugins {
    id "io.spring.dependency-management" version "1.1.0"
}
dependencyManagement {
    dependencies {
        imports {
            mavenBom libs.jacksonBom.get() as String
            mavenBom libs.groovyBom.get() as String
            mavenBom libs.bonitaArtifactsModelBom.get() as String
        }
        dependencySet(group: 'org.slf4j', version: libs.versions.slf4jVersion.get()) {
            entry 'slf4j-api'
            entry 'slf4j-jdk14'
        }
        dependency libs.h2.get() as String
        dependency libs.ehCache.get() as String

        dependencySet(group: 'org.springframework', version: libs.versions.springVersion.get()) {
            entry 'spring-context'
            entry 'spring-core'
            entry 'spring-web'
        }
        dependencySet(group: "org.springframework.boot", version: libs.versions.springBootVersion.get()) {
            entry "spring-boot-starter-jdbc"
            entry "spring-boot-autoconfigure"
        }
        dependency(libs.hibernateCore.get() as String) {
            exclude 'org.jboss.spec.javax.transaction:jboss-transaction-api_1.2_spec'
        }
        dependency(libs.hibernateJCache.get() as String)
        dependency(libs.jcache.get() as String)
        dependency(libs.javaxPersistenceApi.get() as String)
        dependency libs.commonsIO.get() as String
        dependency libs.commonsFileUpload.get() as String
        dependency(libs.commonsBeanUtils.get() as String) {
            exclude 'commons-collections:commons-collections'
        }
        dependency(libs.commonsCLI.get() as String)
        dependency libs.commonsLang.get() as String
        dependency libs.commonsCollections.get() as String
        dependency libs.jakartaTransactionApi.get() as String
        dependency libs.javassist.get() as String
        dependencySet(group: 'org.apache.httpcomponents', version: libs.versions.httpComponentsVersion.get()) {
            entry 'httpclient'
            entry 'httpmime'
        }
        dependency libs.xstream.get() as String
        dependencySet(group: 'org.apache.tomcat', version: libs.versions.tomcatVersion.get()) {
            entry 'tomcat-dbcp'
            entry 'tomcat'
            entry 'tomcat-catalina'
        }
        dependencySet(group: 'org.apache.tomcat.embed', version: libs.versions.tomcatVersion.get()) {
            entry 'tomcat-embed-core'
        }
        dependency libs.narayanaJta.get() as String
        dependency libs.jakartaActivation.get() as String
        dependency(libs.quartz.get() as String)
        dependency(libs.eclipseCompiler.get() as String)
        dependency(libs.javaxAnnotations.get() as String)
        dependency(libs.micrometerCore.get() as String)
        dependency(libs.micrometerRegistryJmx.get() as String)
        dependency(libs.micrometerRegistryPrometheus.get() as String)
        dependency(libs.hazelcast.get() as String)
        dependency(libs.hazelcastSpring.get() as String)
        // declared here because it is used by web-extension and by distrib
        dependency(libs.jakartaServletApi.get() as String)
        // To be removed only when client projects (rest api extension) have all moved their deps to jakarta
        // Just keep a version managed to prevent client build breaks
        dependency(libs.javaxServletApi.get() as String)

        // Bonita engine dependencies:
        dependency "org.bonitasoft.engine:bonita-common:${project.version}"
        dependency "org.bonitasoft.engine:bonita-server:${project.version}"
        dependency "org.bonitasoft.engine:bonita-client:${project.version}"
        dependency "org.bonitasoft.engine:bonita-test-api:${project.version}"
        dependency "com.bonitasoft.engine:bonita-common-sp:${project.version}"
        dependency "com.bonitasoft.engine:bonita-server-sp:${project.version}"
        dependency "com.bonitasoft.engine:bonita-client-sp:${project.version}"

        // Web extensions dependencies:
        dependency "org.bonitasoft.console:bonita-web-server:${project.version}"
        dependency "org.bonitasoft.console:bonita-web-server-sp:${project.version}"
        dependency "org.bonitasoft.web:bonita-web-extensions:${project.version}"
        dependency "com.bonitasoft.web:bonita-web-extensions-sp:${project.version}"

        // Web layer specific dependencies:
        dependency(libs.xbeanClassloader.get() as String)
        dependency(libs.jakartaJstl.get() as String)
        dependency(libs.jakartaJstlApi.get() as String)
        dependency(libs.jgettext.get() as String)
        dependency(libs.urlrewritefilter.get() as String)
        dependency(libs.woodstoxCore.get() as String)
        dependency(libs.jsonSimple.get() as String)
        dependency(libs.keycloakSamlAdapterApiPublic.get() as String)
        dependency(libs.keycloakSamlServletFilterAdapter.get() as String) {
            exclude "org.bouncycastle:bcprov-jdk15on"
            exclude "org.bouncycastle:bcpkix-jdk15on"
            exclude "org.bouncycastle:bcutil-jdk15on"
            exclude "org.apache.santuario:xmlsec"
        }
        dependency(libs.keycloakAdapterCore.get() as String) {
            exclude "org.bouncycastle:bcprov-jdk15on"
        }
        dependency(libs.keycloakServletFilterAdapter.get() as String) {
            exclude "org.bouncycastle:bcprov-jdk15on"
        }
        dependency(libs.xmlsec.get() as String)
        dependency(libs.bouncyCastleBcprov.get() as String)
        dependency(libs.bouncyCastleBcpkix.get() as String)
        dependency(libs.bouncyCastleBcutil.get() as String)
        dependency(libs.spnego.get() as String)
    }
}
publishing {
    publications {
        maven(MavenPublication) {
            artifactId = 'bonita-engine'
            pom { pom ->
                name = "Bonita Engine"
                description = "Bonita Engine is a workflow engine which can be embedded inside your own applications"
                PomUtils.pomCommunityPublication(pom)
            }
        }
    }
}


================================================
FILE: bonita-engine-spring-boot-starter/build.gradle
================================================
import org.bonitasoft.engine.gradle.PomUtils

plugins {
    id 'java-library'
    id 'bonita-tests'
}

dependencies {
    api(project(":bpm:bonita-common"))
    api(project(":bpm:bonita-client"))

    api(libs.springBootStarter) {
        exclude(module: 'snakeyaml')
    }

    implementation(project(":bonita-engine-standalone"))
    implementation(project(":bpm:bonita-server"))

    annotationProcessor(libs.springBootConfigurationProcessor)

    testImplementation(libs.springBootTest)
    testImplementation(libs.assertj)
}

tasks.register("sourcesJar", Jar) {
    from sourceSets.main.allJava
    archiveClassifier = 'sources'
}

tasks.register("javadocJar", Jar) {
    from javadoc
    archiveClassifier = 'javadoc'
}

publishing {
    publications {
        mavenJava(MavenPublication) {
            from project.components.java
            artifact project.sourcesJar
            artifact project.javadocJar
            pom { pom ->
                name = "bonita-engine-spring-boot-starter"
                description = "bonita-engine-spring-boot-starter"
                PomUtils.pomCommunityPublication(pom)
            }
        }
    }
}


================================================
FILE: bonita-engine-spring-boot-starter/src/main/java/org/bonitasoft/engine/spring/autoconfigure/BonitaEngineCommonAutoConfiguration.java
================================================
/**
 * Copyright (C) 2019 Bonitasoft S.A.
 * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation
 * version 2.1 of the License.
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301, USA.
 **/
package org.bonitasoft.engine.spring.autoconfigure;

import org.bonitasoft.engine.spring.autoconfigure.properties.BonitaEngineProperties;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

@Configuration
@ComponentScan
@EnableConfigurationProperties(BonitaEngineProperties.class)
public class BonitaEngineCommonAutoConfiguration {

}


================================================
FILE: bonita-engine-spring-boot-starter/src/main/java/org/bonitasoft/engine/spring/autoconfigure/BonitaEngineEventListener.java
================================================
/**
 * Copyright (C) 2019 Bonitasoft S.A.
 * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation
 * version 2.1 of the License.
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301, USA.
 **/
package org.bonitasoft.engine.spring.autoconfigure;

import org.bonitasoft.engine.BonitaEngine;
import org.bonitasoft.engine.event.PlatformStartedEvent;
import org.springframework.beans.BeansException;
import org.springframework.boot.context.event.ApplicationReadyEvent;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.context.event.ContextClosedEvent;
import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component;

/**
 * @author Emmanuel Duchastenier
 */
@Component
public class BonitaEngineEventListener implements ApplicationContextAware {

    private ApplicationContext context;

    private BonitaEngine bonitaEngine;

    @EventListener
    public void handleApplicationReadyEvent(final ApplicationReadyEvent applicationReadyEvent) throws Exception {
        bonitaEngine = applicationReadyEvent.getApplicationContext().getBean(BonitaEngine.class);
        bonitaEngine.start();
        // notify any Bonita application that the runtime is ready to accept requests:
        applicationReadyEvent.getApplicationContext().publishEvent(new PlatformStartedEvent());
    }

    @EventListener
    public void handleContextStoppedEvent(final ContextClosedEvent contextClosedEvent) throws Exception {
        if (bonitaEngine != null && context == contextClosedEvent.getApplicationContext()) {
            bonitaEngine.stop();
        }
    }

    @Override
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        this.context = applicationContext;
    }
}


================================================
FILE: bonita-engine-spring-boot-starter/src/main/java/org/bonitasoft/engine/spring/autoconfigure/BonitaEngineServerAutoConfiguration.java
================================================
/**
 * Copyright (C) 2019 Bonitasoft S.A.
 * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation
 * version 2.1 of the License.
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301, USA.
 **/
package org.bonitasoft.engine.spring.autoconfigure;

import org.bonitasoft.engine.BonitaEngine;
import org.bonitasoft.engine.api.APIClient;
import org.bonitasoft.engine.spring.autoconfigure.properties.BonitaEngineProperties;
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.boot.autoconfigure.AutoConfigureOrder;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.Ordered;

@Configuration
@AutoConfigureBefore(BonitaEngineCommonAutoConfiguration.class)
@AutoConfigureOrder(Ordered.LOWEST_PRECEDENCE)
public class BonitaEngineServerAutoConfiguration {

    @Bean
    @ConditionalOnMissingBean
    BonitaEngine bonitaEngine(BonitaEngineProperties properties) {
        BonitaEngine instance = new BonitaEngine();
        instance.setBonitaDatabaseConfiguration(properties.getDatabase().getBonita());
        instance.setBusinessDataDatabaseConfiguration(properties.getDatabase().getBusinessData());
        return instance;
    }

    @Bean
    @ConditionalOnMissingBean
    APIClient bonitaClient() {
        return new APIClient();
    }

}


================================================
FILE: bonita-engine-spring-boot-starter/src/main/java/org/bonitasoft/engine/spring/autoconfigure/properties/BonitaDatabasesConfiguration.java
================================================
/**
 * Copyright (C) 2019 Bonitasoft S.A.
 * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation
 * version 2.1 of the License.
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301, USA.
 **/
package org.bonitasoft.engine.spring.autoconfigure.properties;

import org.bonitasoft.engine.BonitaDatabaseConfiguration;
import org.springframework.boot.context.properties.NestedConfigurationProperty;

public class BonitaDatabasesConfiguration {

    @NestedConfigurationProperty
    private BonitaDatabaseConfiguration bonita = new BonitaDatabaseConfiguration();
    @NestedConfigurationProperty
    private BonitaDatabaseConfiguration businessData = new BonitaDatabaseConfiguration();

    public BonitaDatabaseConfiguration getBonita() {
        return bonita;
    }

    public BonitaDatabaseConfiguration getBusinessData() {
        return businessData;
    }
}


================================================
FILE: bonita-engine-spring-boot-starter/src/main/java/org/bonitasoft/engine/spring/autoconfigure/properties/BonitaEngineProperties.java
================================================
/**
 * Copyright (C) 2019 Bonitasoft S.A.
 * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation
 * version 2.1 of the License.
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301, USA.
 **/
package org.bonitasoft.engine.spring.autoconfigure.properties;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.NestedConfigurationProperty;

@ConfigurationProperties(prefix = "org.bonitasoft.engine")
public class BonitaEngineProperties {

    @NestedConfigurationProperty
    private BonitaDatabasesConfiguration database = new BonitaDatabasesConfiguration();

    public BonitaDatabasesConfiguration getDatabase() {
        return database;
    }
}


================================================
FILE: bonita-engine-spring-boot-starter/src/main/resources/META-INF/spring.factories
================================================
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
  org.bonitasoft.engine.spring.autoconfigure.BonitaEngineServerAutoConfiguration,\
  org.bonitasoft.engine.spring.autoconfigure.BonitaEngineCommonAutoConfiguration

================================================
FILE: bonita-engine-spring-boot-starter/src/test/java/org/bonitasoft/engine/spring/autoconfigure/BonitaEngineAutoConfigurationTest.java
================================================
/**
 * Copyright (C) 2019 Bonitasoft S.A.
 * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation
 * version 2.1 of the License.
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301, USA.
 **/
package org.bonitasoft.engine.spring.autoconfigure;

import static org.assertj.core.api.Assertions.assertThat;

import org.bonitasoft.engine.BonitaDatabaseConfiguration;
import org.bonitasoft.engine.BonitaEngine;
import org.junit.Test;
import org.springframework.boot.autoconfigure.AutoConfigurations;
import org.springframework.boot.test.context.runner.ApplicationContextRunner;

public class BonitaEngineAutoConfigurationTest {

    private final ApplicationContextRunner contextRunner = new ApplicationContextRunner()
            .withConfiguration(AutoConfigurations.of(BonitaEngineCommonAutoConfiguration.class,
                    BonitaEngineServerAutoConfiguration.class));

    @Test
    public void should_configure_database_using_properties() {
        this.contextRunner
                .withPropertyValues(
                        "org.bonitasoft.engine.database.bonita.db-vendor=postgres",
                        "org.bonitasoft.engine.database.bonita.url=myServerUrl",
                        "org.bonitasoft.engine.database.bonita.driver-class-name=my.Driver",
                        "org.bonitasoft.engine.database.bonita.user=myUser",
                        "org.bonitasoft.engine.database.bonita.password=secret",
                        "org.bonitasoft.engine.database.bonita.datasource.max-pool-size=3",
                        "org.bonitasoft.engine.database.bonita.xa-datasource.max-pool-size=4",
                        "org.bonitasoft.engine.database.business-data.datasource.max-pool-size=5",
                        "org.bonitasoft.engine.database.business-data.xa-datasource.max-pool-size=6",
                        "org.bonitasoft.engine.database.business-data.db-vendor=mysql")
                .run((context) -> {
                    BonitaEngine engine = context.getBean(BonitaEngine.class);
                    BonitaDatabaseConfiguration bonitaDatabaseConfiguration = engine.getBonitaDatabaseConfiguration();
                    assertThat(bonitaDatabaseConfiguration.getDbVendor()).isEqualTo("postgres");
                    assertThat(bonitaDatabaseConfiguration.getUrl()).isEqualTo("myServerUrl");
                    assertThat(bonitaDatabaseConfiguration.getDriverClassName()).isEqualTo("my.Driver");
                    assertThat(bonitaDatabaseConfiguration.getUser()).isEqualTo("myUser");
                    assertThat(bonitaDatabaseConfiguration.getPassword()).isEqualTo("secret");
                    assertThat(bonitaDatabaseConfiguration.getDatasource().getMaxPoolSize()).isEqualTo(3);
                    assertThat(bonitaDatabaseConfiguration.getXaDatasource().getMaxPoolSize()).isEqualTo(4);
                    BonitaDatabaseConfiguration businessDataDatabaseConfiguration = engine
                            .getBusinessDataDatabaseConfiguration();
                    assertThat(businessDataDatabaseConfiguration.getDatasource().getMaxPoolSize()).isEqualTo(5);
                    assertThat(businessDataDatabaseConfiguration.getXaDatasource().getMaxPoolSize()).isEqualTo(6);
                    assertThat(
                            businessDataDatabaseConfiguration.getDbVendor())
                            .isEqualTo("mysql");
                });
    }

}


================================================
FILE: bonita-engine-spring-boot-starter/src/test/java/org/bonitasoft/engine/spring/autoconfigure/BonitaEngineSpringBootStarterIT.java
================================================
/**
 * Copyright (C) 2019 Bonitasoft S.A.
 * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation
 * version 2.1 of the License.
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301, USA.
 **/
package org.bonitasoft.engine.spring.autoconfigure;

import org.bonitasoft.engine.api.APIClient;
import org.bonitasoft.engine.platform.LoginException;
import org.junit.Test;
import org.springframework.boot.SpringApplication;
import org.springframework.context.ConfigurableApplicationContext;

public class BonitaEngineSpringBootStarterIT {

    @Test
    public void should_start_engine_when_application_starts() throws LoginException {
        final ConfigurableApplicationContext context = SpringApplication.run(ClientTestApplication.class);
        context.getBean(APIClient.class).login("install", "install");
        context.stop();
    }

}


================================================
FILE: bonita-engine-spring-boot-starter/src/test/java/org/bonitasoft/engine/spring/autoconfigure/ClientTestApplication.java
================================================
/**
 * Copyright (C) 2019 Bonitasoft S.A.
 * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation
 * version 2.1 of the License.
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301, USA.
 **/
package org.bonitasoft.engine.spring.autoconfigure;

import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * @author Emmanuel Duchastenier
 */
@SpringBootApplication
public class ClientTestApplication {

}


================================================
FILE: bonita-engine-standalone/build.gradle
================================================
import org.bonitasoft.engine.gradle.PomUtils

plugins {
    id "java-library"
}

dependencies {

    api(project(":bpm:bonita-client"))

    implementation(project(":bpm:bonita-server"))
    implementation(project(':platform:platform-resources'))

    implementation libs.springContext
    implementation libs.narayanaJta
    implementation libs.tomcatDbcp
    implementation libs.slf4jApi
    runtimeOnly libs.h2


    annotationProcessor libs.lombok
    compileOnly libs.lombok

    testImplementation libs.assertj
    testImplementation libs.systemRules

    // These 3 drivers are used for some specific tests:
    testImplementation(libs.postgresql)
    testImplementation(libs.mysql)
    testImplementation(libs.h2)

}

tasks.register("sourcesJar", Jar) {
    from sourceSets.main.allJava
    archiveClassifier = 'sources'
}

tasks.register("javadocJar", Jar) {
    from javadoc
    archiveClassifier = 'javadoc'
}

publishing {
    publications {
        mavenJava(MavenPublication) {
            from project.components.java
            artifact project.sourcesJar
            artifact project.javadocJar
            pom { pom ->
                name = "Bonita Engine Standalone"
                description = "Bonita Engine Standalone is the library to easily embed Bonita Engine is your applications"
                PomUtils.pomCommunityPublication(pom)
            }
        }
    }
}


================================================
FILE: bonita-engine-standalone/src/main/java/org/bonitasoft/engine/BonitaDataSourceInitializer.java
================================================
/**
 * Copyright (C) 2019 Bonitasoft S.A.
 * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation
 * version 2.1 of the License.
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301, USA.
 **/
package org.bonitasoft.engine;

import static org.bonitasoft.engine.xa.XADataSourceIsSameRMOverride.overrideSameRM;

import java.util.Collections;
import java.util.HashMap;
import java.util.Map;

import javax.naming.Reference;
import javax.naming.StringRefAddr;
import javax.naming.spi.ObjectFactory;
import javax.sql.XADataSource;
import javax.transaction.TransactionManager;

import org.apache.tomcat.dbcp.dbcp2.BasicDataSource;
import org.apache.tomcat.dbcp.dbcp2.managed.BasicManagedDataSource;

class BonitaDataSourceInitializer {

    private static final String H2 = "h2";
    private static final String MYSQL = "mysql";
    private static final String ORACLE = "oracle";
    private static final String POSTGRES = "postgres";
    private static final String SQLSERVER = "sqlserver";

    private static final Map<String, String> defaultDriver;
    private static final Map<String, String> defaultXADataSourceNames;
    private static final Map<String, String> defaultXADataSourceFactories;
    private static final Map<String, String> defaultTestQueries;

    static {
        HashMap<String, String> drivers = new HashMap<>();
        drivers.put(H2, "org.h2.Driver");
        drivers.put(MYSQL, "com.mysql.cj.jdbc.Driver");
        drivers.put(ORACLE, "oracle.jdbc.OracleDriver");
        drivers.put(POSTGRES, "org.postgresql.Driver");
        drivers.put(SQLSERVER, "com.microsoft.sqlserver.jdbc.SQLServerDriver");
        defaultDriver = Collections.unmodifiableMap(drivers);
        HashMap<String, String> xaDataSourceNames = new HashMap<>();
        xaDataSourceNames.put(H2, "org.h2.jdbcx.JdbcDataSource");
        xaDataSourceNames.put(MYSQL, "com.mysql.cj.jdbc.MysqlXADataSource");
        xaDataSourceNames.put(ORACLE, "oracle.jdbc.xa.client.OracleXADataSource");
        xaDataSourceNames.put(POSTGRES, "org.postgresql.xa.PGXADataSource");
        xaDataSourceNames.put(SQLSERVER, "com.microsoft.sqlserver.jdbc.SQLServerXADataSource");
        defaultXADataSourceNames = Collections.unmodifiableMap(xaDataSourceNames);
        HashMap<String, String> xaDataSourceFactories = new HashMap<>();
        xaDataSourceFactories.put(H2, "org.h2.jdbcx.JdbcDataSourceFactory");
        xaDataSourceFactories.put(MYSQL, "com.mysql.cj.jdbc.MysqlDataSourceFactory");
        xaDataSourceFactories.put(ORACLE, "oracle.jdbc.pool.OracleDataSourceFactory");
        xaDataSourceFactories.put(POSTGRES, "org.postgresql.xa.PGXADataSourceFactory");
        xaDataSourceFactories.put(SQLSERVER, "com.microsoft.sqlserver.jdbc.SQLServerDataSourceObjectFactory");
        defaultXADataSourceFactories = Collections.unmodifiableMap(xaDataSourceFactories);
        HashMap<String, String> testQueries = new HashMap<>();
        testQueries.put(H2, "SELECT 1");
        testQueries.put(MYSQL, "SELECT 1");
        testQueries.put(ORACLE, "SELECT 1 FROM DUAL");
        testQueries.put(POSTGRES, "SELECT 1");
        testQueries.put(SQLSERVER, "SELECT 1");
        defaultTestQueries = Collections.unmodifiableMap(testQueries);
    }

    BasicManagedDataSource createManagedDataSource(BonitaDatabaseConfiguration configuration,
            TransactionManager transactionManager) throws Exception {
        validate(configuration);
        String dbVendor = configuration.getDbVendor();
        String xaDatasourceClass = defaultXADataSourceNames.get(dbVendor);
        String xaDatasourceFactoryClass = defaultXADataSourceFactories.get(dbVendor);
        //create a 'native' xa datasources

        ObjectFactory datasourceFactory = (ObjectFactory) Class.forName(xaDatasourceFactoryClass).getConstructor()
                .newInstance();
        Reference reference = new Reference(xaDatasourceClass);
        String description = "RawDataSource of " + dbVendor;
        reference.add(new StringRefAddr("description", description));
        reference.add(new StringRefAddr("closeMethod", "close"));
        reference.add(new StringRefAddr("loginTimeout", "0"));
        if (dbVendor.equals(POSTGRES)) {
            DatabaseUrlParser.DatabaseMetadata metadata = DatabaseUrlParser.parsePostgresUrl(configuration.getUrl());
            reference.add(new StringRefAddr("serverName", metadata.getServerName()));
            reference.add(new StringRefAddr("portNumber", metadata.getPort()));
            reference.add(new StringRefAddr("databaseName", metadata.getDatabaseName()));
        } else if (dbVendor.equals(SQLSERVER)) {
            reference.add(new StringRefAddr("dataSourceURL", configuration.getUrl()));
            reference.add(new StringRefAddr("dataSourceDescription", description));
            reference.add(new StringRefAddr("class", xaDatasourceClass));
        } else {
            reference.add(new StringRefAddr("explicitUrl", "true"));
            reference.add(new StringRefAddr("url", configuration.getUrl()));
        }
        reference.add(new StringRefAddr("user", configuration.getUser()));
        reference.add(new StringRefAddr("password", configuration.getPassword()));

        XADataSource xaDataSource = (XADataSource) datasourceFactory.getObjectInstance(reference, null, null, null);

        BasicManagedDataSource bonitaDataSource = new BasicManagedDataSource();
        bonitaDataSource.setDefaultAutoCommit(false);
        bonitaDataSource.setRemoveAbandonedOnBorrow(true);
        bonitaDataSource.setRemoveAbandonedOnMaintenance(true);
        bonitaDataSource.setLogAbandoned(false);
        bonitaDataSource.setTestOnBorrow(true);
        bonitaDataSource.setValidationQuery(defaultTestQueries.get(dbVendor));
        bonitaDataSource.setTransactionManager(transactionManager);
        bonitaDataSource.setInitialSize(1);
        bonitaDataSource.setTestWhileIdle(false);
        bonitaDataSource.setTimeBetweenEvictionRunsMillis(60000);
        bonitaDataSource.setMinEvictableIdleTimeMillis(600000);
        if (dbVendor.equals(ORACLE)) {
            bonitaDataSource.setXaDataSourceInstance(overrideSameRM(xaDataSource));
        } else {
            bonitaDataSource.setXaDataSourceInstance(xaDataSource);

        }
        configureDatasource(configuration.getXaDatasource(), bonitaDataSource);
        return bonitaDataSource;
    }

    private String getDriverClassName(BonitaDatabaseConfiguration configuration, String driver) {
        String driverClassName;
        if (driver == null || driver.isEmpty()) {
            driverClassName = defaultDriver.get(configuration.getDbVendor());
        } else {
            driverClassName = driver;
        }
        return driverClassName;
    }

    private void validate(BonitaDatabaseConfiguration configuration) {
        checkNullOrEmpty(configuration.getDbVendor(), "dbVendor");
        if (!defaultDriver.containsKey(configuration.getDbVendor())) {
            throw new IllegalArgumentException(String.format("Database db vendor %s is invalid ( should be one of %s )",
                    configuration.getDbVendor(), defaultDriver.keySet()));
        }
        checkNullOrEmpty(configuration.getUrl(), "url");
        checkNullOrEmpty(configuration.getUser(), "user");
    }

    private static void checkNullOrEmpty(String field, String fieldName) {
        if (field == null || field.isEmpty()) {
            throw new IllegalArgumentException("Database " + fieldName + " not set");
        }
    }

    BasicDataSource createDataSource(BonitaDatabaseConfiguration configuration) {
        validate(configuration);
        BasicDataSource dataSource = new BasicDataSource();
        configureDatasource(configuration.getDatasource(), dataSource);
        dataSource.setInitialSize(1);
        dataSource.setDriverClassName(getDriverClassName(configuration, configuration.getDriverClassName()));
        dataSource.setUrl(configuration.getUrl());
        dataSource.setUsername(configuration.getUser());
        dataSource.setPassword(configuration.getPassword());
        return dataSource;
    }

    private void configureDatasource(DatasourceConfiguration configuration, BasicDataSource dataSource) {
        if (configuration != null && configuration.getMaxPoolSize() > 0) {
            dataSource.setMaxTotal(configuration.getMaxPoolSize());
        } else {
            dataSource.setMaxTotal(7);
        }
    }
}


================================================
FILE: bonita-engine-standalone/src/main/java/org/bonitasoft/engine/BonitaDatabaseConfiguration.java
================================================
/**
 * Copyright (C) 2019 Bonitasoft S.A.
 * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation
 * version 2.1 of the License.
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301, USA.
 **/
package org.bonitasoft.engine;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

@Data
@ToString(exclude = "password")
@NoArgsConstructor
@AllArgsConstructor
@Builder(toBuilder = true)
public class BonitaDatabaseConfiguration {

    private String driverClassName;
    private String url;
    private String dbVendor;
    private String user;
    private String password;
    private DatasourceConfiguration xaDatasource;
    private DatasourceConfiguration datasource;

    public boolean isEmpty() {
        return isNullOrEmpty(driverClassName) &&
                isNullOrEmpty(url) &&
                isNullOrEmpty(dbVendor) &&
                isNullOrEmpty(user) &&
                isNullOrEmpty(password);
    }

    private boolean isNullOrEmpty(String s) {
        return s == null || s.isEmpty();
    }

    /**
     * The name of the driver class, if the default one does not suit your needs
     *
     * @param driverClassName the name of the driver class to use
     */
    public void setDriverClassName(String driverClassName) {
        this.driverClassName = driverClassName;
    }

    /**
     * The URL to connect to the database
     *
     * @param url the URL to connect to the database
     */
    public void setUrl(String url) {
        this.url = url;
    }

    /**
     * The database vendor to use with Bonita Engine.
     * Supported values are h2, mysql, postgres, sqlserver, oracle. Default value, if not specified, is h2.
     *
     * @param dbVendor the database vendor to use with Bonita Engine
     */
    public void setDbVendor(String dbVendor) {
        this.dbVendor = dbVendor;
    }

    /**
     * The connection user name to use to access the Bonita database
     *
     * @param user the connection user name to use to access the Bonita database
     */
    public void setUser(String user) {
        this.user = user;
    }

    /**
     * The connection password corresponding to the specified user name
     *
     * @param password the connection password corresponding to the specified user name
     */
    public void setPassword(String password) {
        this.password = password;
    }
}


================================================
FILE: bonita-engine-standalone/src/main/java/org/bonitasoft/engine/BonitaEngine.java
================================================
/**
 * Copyright (C) 2019 Bonitasoft S.A.
 * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation
 * version 2.1 of the License.
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301, USA.
 **/
package org.bonitasoft.engine;

import java.util.Collections;
import java.util.HashMap;
import java.util.Map;

import javax.naming.NamingException;

import com.arjuna.ats.jta.TransactionManager;
import com.arjuna.ats.jta.UserTransaction;
import lombok.extern.slf4j.Slf4j;
import org.apache.tomcat.dbcp.dbcp2.BasicDataSource;
import org.apache.tomcat.dbcp.dbcp2.managed.BasicManagedDataSource;
import org.bonitasoft.engine.api.ApiAccessType;
import org.bonitasoft.engine.api.PlatformAPI;
import org.bonitasoft.engine.api.PlatformAPIAccessor;
import org.bonitasoft.engine.exception.BonitaHomeNotSetException;
import org.bonitasoft.engine.exception.ServerAPIException;
import org.bonitasoft.engine.exception.UnknownAPITypeException;
import org.bonitasoft.engine.platform.PlatformLoginException;
import org.bonitasoft.engine.platform.PlatformLogoutException;
import org.bonitasoft.engine.session.PlatformSession;
import org.bonitasoft.engine.session.SessionNotFoundException;
import org.bonitasoft.engine.util.APITypeManager;
import org.bonitasoft.platform.setup.PlatformSetup;
import org.bonitasoft.platform.setup.PlatformSetupAccessor;
import org.springframework.jndi.JndiTemplate;

@Slf4j
public class BonitaEngine {

    private final BonitaDataSourceInitializer bonitaDataSourceInitializer = new BonitaDataSourceInitializer();
    private boolean initialized;
    private BonitaDatabaseConfiguration bonitaDatabaseConfiguration;
    private BonitaDatabaseConfiguration businessDataDatabaseConfiguration;
    private MemoryJNDISetup memoryJNDISetup;
    private BasicManagedDataSource bonitaDataSource;
    private BasicManagedDataSource businessDataDataSource;
    private BasicDataSource bonitaSequenceManagerDataSource;
    private BasicDataSource notManagedBizDataSource;
    private javax.transaction.UserTransaction userTransaction;
    private javax.transaction.TransactionManager arjunaTransactionManager;
    public static final String BONITA_BDM_DB_VENDOR = PlatformSetup.BONITA_BDM_DB_VENDOR_PROPERTY;
    public static final String BONITA_DB_VENDOR = PlatformSetup.BONITA_DB_VENDOR_PROPERTY;

    public void initializeEnvironment() throws Exception {
        if (!initialized) {
            initialized = true;
            APITypeManager.setAPITypeAndParams(ApiAccessType.LOCAL, Collections.emptyMap());
            initializeBonitaDatabaseConfiguration();
            initializeBusinessDataDatabaseConfiguration();
            arjunaTransactionManager = TransactionManager.transactionManager();
            userTransaction = UserTransaction.userTransaction();
            bonitaDataSource = bonitaDataSourceInitializer.createManagedDataSource(bonitaDatabaseConfiguration,
                    arjunaTransactionManager);
            businessDataDataSource = bonitaDataSourceInitializer
                    .createManagedDataSource(businessDataDatabaseConfiguration, arjunaTransactionManager);
            bonitaSequenceManagerDataSource = bonitaDataSourceInitializer.createDataSource(bonitaDatabaseConfiguration);
            notManagedBizDataSource = bonitaDataSourceInitializer.createDataSource(businessDataDatabaseConfiguration);
            initializeJNDI();
        }
    }

    private void initializeBonitaDatabaseConfiguration() {
        if (bonitaDatabaseConfiguration == null || bonitaDatabaseConfiguration.isEmpty()) {
            bonitaDatabaseConfiguration = DefaultBonitaDatabaseConfigurations
                    .defaultConfiguration(System.getProperty(BONITA_DB_VENDOR, "h2"), "bonita");
        }
        setSystemPropertyIfNotSet(BONITA_DB_VENDOR, bonitaDatabaseConfiguration.getDbVendor());
        log.info("Using database configuration for bonita {}", bonitaDatabaseConfiguration);
    }

    private void initializeBusinessDataDatabaseConfiguration() {
        if (businessDataDatabaseConfiguration == null || businessDataDatabaseConfiguration.isEmpty()) {
            businessDataDatabaseConfiguration = DefaultBonitaDatabaseConfigurations
                    .defaultConfiguration(System.getProperty(BONITA_BDM_DB_VENDOR, "h2"), "business_data");
        }
        setSystemPropertyIfNotSet(BONITA_BDM_DB_VENDOR, businessDataDatabaseConfiguration.getDbVendor());
        log.info("Using database configuration for business data {}", businessDataDatabaseConfiguration);
    }

    private void setSystemPropertyIfNotSet(String systemPropertyName, String defaultValue) {
        String value = System.getProperty(systemPropertyName);
        if (value != null) {
            return;
        }
        System.setProperty(systemPropertyName, defaultValue);
    }

    private void initializeJNDI() throws NamingException {
        Map<String, Object> jndiMapping = new HashMap<>();
        jndiMapping.put("java:comp/env/bonitaDS", bonitaDataSource);
        jndiMapping.put("java:comp/env/bonitaSequenceManagerDS", bonitaSequenceManagerDataSource);
        jndiMapping.put("java:comp/env/BusinessDataDS", businessDataDataSource);
        jndiMapping.put("java:comp/env/NotManagedBizDataDS", notManagedBizDataSource);
        jndiMapping.put("java:comp/env/TransactionManager", arjunaTransactionManager);
        jndiMapping.put("java:comp/UserTransaction", userTransaction);
        JndiTemplate jndiTemplate = new JndiTemplate();
        memoryJNDISetup = new MemoryJNDISetup(jndiTemplate, jndiMapping);
        memoryJNDISetup.init();
    }

    public void start() throws Exception {
        initializeEnvironment();
        PlatformSetup platformSetup = getPlatformSetup();
        platformSetup.init();

        PlatformSession platformSession = loginOnPlatform();

        final PlatformAPI platformAPI = PlatformAPIAccessor.getPlatformAPI(platformSession);

        platformAPI.startNode();
        logoutFromPlatform(platformSession);
    }

    protected PlatformSetup getPlatformSetup() throws NamingException {
        return PlatformSetupAccessor.getInstance().getPlatformSetup();
    }

    private void logoutFromPlatform(PlatformSession platformSession)
            throws PlatformLogoutException, SessionNotFoundException, BonitaHomeNotSetException, ServerAPIException,
            UnknownAPITypeException {
        PlatformAPIAccessor.getPlatformLoginAPI().logout(platformSession);
    }

    private PlatformSession loginOnPlatform() throws PlatformLoginException {
        return new LocalLoginMechanism().login();
    }

    public void stop() throws Exception {
        PlatformSession platformSession = loginOnPlatform();
        final PlatformAPI platformAPI = PlatformAPIAccessor.getPlatformAPI(platformSession);
        if (platformAPI.isNodeStarted()) {
            platformAPI.stopNode();
        }
        logoutFromPlatform(platformSession);
        memoryJNDISetup.clean();
    }

    public BonitaDatabaseConfiguration getBonitaDatabaseConfiguration() {
        return bonitaDatabaseConfiguration;
    }

    public void setBonitaDatabaseConfiguration(BonitaDatabaseConfiguration database) {
        this.bonitaDatabaseConfiguration = database;
    }

    public BonitaDatabaseConfiguration getBusinessDataDatabaseConfiguration() {
        return businessDataDatabaseConfiguration;
    }

    public void setBusinessDataDatabaseConfiguration(BonitaDatabaseConfiguration businessDataDatabaseConfiguration) {
        this.businessDataDatabaseConfiguration = businessDataDatabaseConfiguration;
    }

    BasicManagedDataSource getBonitaDataSource() {
        return bonitaDataSource;
    }

    BasicManagedDataSource getBusinessDataDataSource() {
        return businessDataDataSource;
    }
}


================================================
FILE: bonita-engine-standalone/src/main/java/org/bonitasoft/engine/DatabaseUrlParser.java
================================================
/**
 * Copyright (C) 2020 Bonitasoft S.A.
 * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation
 * version 2.1 of the License.
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301, USA.
 **/
package org.bonitasoft.engine;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

import lombok.AllArgsConstructor;
import lombok.Data;

public class DatabaseUrlParser {

    @Data
    @AllArgsConstructor
    public static class DatabaseMetadata {

        private String serverName;
        private String port;
        private String databaseName;

    }

    public static DatabaseMetadata parsePostgresUrl(String url) {
        String regex = "jdbc:postgresql://([\\w\\d\\.-]+):(\\d+)/([\\w\\-_\\d]+).*";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(url);
        if (!matcher.find()) {
            throw new IllegalArgumentException(
                    "Unable to parse postgres url (no groups found): " + url + " using regex " + regex);
        }
        return new DatabaseMetadata(matcher.group(1), matcher.group(2), matcher.group(3));
    }
}


================================================
FILE: bonita-engine-standalone/src/main/java/org/bonitasoft/engine/DatasourceConfiguration.java
================================================
/**
 * Copyright (C) 2019 Bonitasoft S.A.
 * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation
 * version 2.1 of the License.
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301, USA.
 **/
package org.bonitasoft.engine;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class DatasourceConfiguration {

    /**
     * Maximum number of connections in the pool
     * Must be more than 0
     * Default value is 7
     */
    private int maxPoolSize;

}


================================================
FILE: bonita-engine-standalone/src/main/java/org/bonitasoft/engine/DefaultBonitaDatabaseConfigurations.java
================================================
/**
 * Copyright (C) 2019 Bonitasoft S.A.
 * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation
 * version 2.1 of the License.
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301, USA.
 **/
package org.bonitasoft.engine;

public class DefaultBonitaDatabaseConfigurations {

    private static BonitaDatabaseConfiguration defaultH2Configuration(String schemaName) {
        return BonitaDatabaseConfiguration.builder()
                .dbVendor("h2")
                .url("jdbc:h2:file:" + System.getProperty("org.bonitasoft.h2.database.dir", "./h2databasedir")
                        + "/" + schemaName + ";DB_CLOSE_ON_EXIT=FALSE;IGNORECASE=TRUE;AUTO_SERVER=TRUE")
                .user("bonita")
                .password("bpm").build();
    }

    private static BonitaDatabaseConfiguration defaultPostgresConfiguration(String schemaName) {
        return BonitaDatabaseConfiguration.builder()
                .dbVendor("postgres")
                .url("jdbc:postgresql://localhost:5432/" + schemaName)
                .user("bonita")
                .password("bpm").build();
    }

    private static BonitaDatabaseConfiguration defaultMysqlConfiguration(String schemaName) {
        return BonitaDatabaseConfiguration.builder()
                .dbVendor("mysql")
                .url("jdbc:mysql://localhost:3306/" + schemaName
                        + "?useUnicode=true&characterEncoding=UTF-8&useSSL=false&allowPublicKeyRetrieval=true")
                .user("bonita")
                .password("bpm").build();
    }

    private static BonitaDatabaseConfiguration defaultOracleConfiguration(String schemaName) {
        return BonitaDatabaseConfiguration.builder()
                .dbVendor("oracle")
                .url("jdbc:oracle:thin:@//localhost:1521/FREEPDB1?oracle.net.disableOob=true")
                .user(schemaName)
                .password("bpm").build();
    }

    private static BonitaDatabaseConfiguration defaultSqlserverConfiguration(String schemaName) {
        return BonitaDatabaseConfiguration.builder()
                .dbVendor("sqlserver")
                .url("jdbc:sqlserver://localhost:1433;database=" + schemaName)
                .user("bonita")
                .password("bpm").build();
    }

    public static BonitaDatabaseConfiguration defaultConfiguration(String dbVendor, String schemaName) {
        switch (dbVendor) {
            case "h2":
                //clone it
                return defaultH2Configuration(schemaName);
            case "postgres":
                return defaultPostgresConfiguration(schemaName);
            case "mysql":
                return defaultMysqlConfiguration(schemaName);
            case "oracle":
                return defaultOracleConfiguration(schemaName);
            case "sqlserver":
                return defaultSqlserverConfiguration(schemaName);
            default:
                throw new IllegalArgumentException("dbVendor " + dbVendor + " is not valid");
        }
    }

}


================================================
FILE: bonita-engine-standalone/src/main/java/org/bonitasoft/engine/MemoryJNDISetup.java
================================================
/**
 * Copyright (C) 2016 Bonitasoft S.A.
 * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation
 * version 2.1 of the License.
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301, USA.
 **/
package org.bonitasoft.engine;

import java.util.Map;

import javax.naming.Context;
import javax.naming.NameAlreadyBoundException;
import javax.naming.NamingException;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.jndi.JndiTemplate;

public class MemoryJNDISetup {

    private final JndiTemplate jndiTemplate;

    private final Map<String, Object> jndiMapping;

    private final Logger logger = LoggerFactory.getLogger(MemoryJNDISetup.class.getSimpleName());

    public MemoryJNDISetup(final JndiTemplate jndiTemplate, final Map<String, Object> jndiMapping) {
        super();
        if (System.getProperty(Context.INITIAL_CONTEXT_FACTORY) == null) {
            System.setProperty(Context.INITIAL_CONTEXT_FACTORY, "org.bonitasoft.engine.SimpleMemoryContextFactory");
        }
        System.setProperty(Context.URL_PKG_PREFIXES, "org.bonitasoft.engine");
        this.jndiTemplate = jndiTemplate;
        this.jndiMapping = jndiMapping;
    }

    public void init() throws NamingException {
        for (final Map.Entry<String, Object> addToJndi : jndiMapping.entrySet()) {
            logger.info("Binding " + addToJndi.getKey() + " @ " + addToJndi.getValue());
            try {

                jndiTemplate.bind(addToJndi.getKey(), addToJndi.getValue());
            } catch (NameAlreadyBoundException ignored) {
                logger.info(addToJndi.getKey() + " @ " + addToJndi.getValue() + " was already bound");
            }
        }
    }

    public void clean() throws NamingException {
        for (final Map.Entry<String, Object> removeFromJndi : jndiMapping.entrySet()) {
            logger.info("Unbinding " + removeFromJndi.getKey());
            jndiTemplate.unbind(removeFromJndi.getKey());
        }
    }

}


================================================
FILE: bonita-engine-standalone/src/main/java/org/bonitasoft/engine/SimpleMemoryContext.java
================================================
/**
 * Copyright (C) 2016 Bonitasoft S.A.
 * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation
 * version 2.1 of the License.
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301, USA.
 **/
package org.bonitasoft.engine;

import java.util.Hashtable;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

import javax.naming.Binding;
import javax.naming.Context;
import javax.naming.Name;
import javax.naming.NameAlreadyBoundException;
import javax.naming.NameClassPair;
import javax.naming.NameNotFoundException;
import javax.naming.NameParser;
import javax.naming.NamingEnumeration;
import javax.naming.NamingException;

/**
 * A JNDI context implementation that uses the memory as a dictionary of objects.
 */
public class SimpleMemoryContext implements Context {

    private static final String NOT_SUPPORTED_YET = "Not supported yet.";

    private final Map<String, Object> dictionary = new ConcurrentHashMap<String, Object>();

    public void clear() {
        dictionary.clear();
    }

    @Override
    public Object lookup(final Name name) throws NamingException {
        return lookup(name.toString());
    }

    @Override
    public Object lookup(final String name) throws NamingException {
        if (dictionary.containsKey(name)) {
            return dictionary.get(name);
        }
        throw new NameNotFoundException("Name " + name + " is not bound !");
    }

    @Override
    public void bind(final Name name, final Object o) throws NamingException {
        bind(name.toString(), o);
    }

    @Override
    public void bind(final String name, final Object o) throws NamingException {
        if (dictionary.containsKey(name)) {
            throw new NameAlreadyBoundException("Name " + name + " already bound!");
        }
        rebind(name, o);
    }

    @Override
    public void rebind(final Name name, final Object o) {
        rebind(name.toString(), o);
    }

    @Override
    public void rebind(final String name, final Object o) {
        dictionary.put(name, o);
    }

    @Override
    public void unbind(final Name name) throws NamingException {
        unbind(name.toString());
    }

    @Override
    public void unbind(final String name) throws NamingException {
        if (!dictionary.containsKey(name)) {
            throw new NameNotFoundException("No such name " + name + " is bound!");
        }
        dictionary.remove(name);
    }

    @Override
    public void rename(final Name oldName, final Name newName) throws NamingException {
        rename(oldName.toString(), newName.toString());
    }

    @Override
    public void rename(final String oldName, final String newName) throws NamingException {
        final Object object = lookup(oldName);
        bind(newName, object);
        unbind(oldName);
    }

    @Override
    public NamingEnumeration<NameClassPair> list(final Name name) {
        throw new UnsupportedOperationException(NOT_SUPPORTED_YET);
    }

    @Override
    public NamingEnumeration<NameClassPair> list(final String string) {
        throw new UnsupportedOperationException(NOT_SUPPORTED_YET);
    }

    @Override
    public NamingEnumeration<Binding> listBindings(final Name name) {
        throw new UnsupportedOperationException(NOT_SUPPORTED_YET);
    }

    @Override
    public NamingEnumeration<Binding> listBindings(final String string) {
        throw new UnsupportedOperationException(NOT_SUPPORTED_YET);
    }

    @Override
    public void destroySubcontext(final Name name) {
        destroySubcontext(name.toString());
    }

    @Override
    public void destroySubcontext(final String name) {
        dictionary.remove(name);
    }

    @Override
    public Context createSubcontext(final Name name) throws NamingException {
        return createSubcontext(name.toString());
    }

    @Override
    public Context createSubcontext(final String name) throws NamingException {
        final Context subContext = new SimpleMemoryContext();
        bind(name, subContext);
        return subContext;
    }

    @Override
    public Object lookupLink(final Name name) {
        throw new UnsupportedOperationException(NOT_SUPPORTED_YET);
    }

    @Override
    public Object lookupLink(final String string) {
        throw new UnsupportedOperationException(NOT_SUPPORTED_YET);
    }

    @Override
    public NameParser getNameParser(final Name name) {
        throw new UnsupportedOperationException(NOT_SUPPORTED_YET);
    }

    @Override
    public NameParser getNameParser(final String name) {
        return new SimpleNameParser(name);
    }

    @Override
    public Name composeName(final Name name, final Name name1) {
        throw new UnsupportedOperationException(NOT_SUPPORTED_YET);
    }

    @Override
    public String composeName(final String string, final String string1) {
        throw new UnsupportedOperationException(NOT_SUPPORTED_YET);
    }

    @Override
    public Object addToEnvironment(final String string, final Object o) {
        throw new UnsupportedOperationException(NOT_SUPPORTED_YET);
    }

    @Override
    public Object removeFromEnvironment(final String string) {
        throw new UnsupportedOperationException(NOT_SUPPORTED_YET);
    }

    @Override
    public Hashtable<?, ?> getEnvironment() {
        throw new UnsupportedOperationException(NOT_SUPPORTED_YET);
    }

    @Override
    public void close() {
        // Thread.dumpStack();
        // clear();
    }

    @Override
    public String getNameInNamespace() {
        throw new UnsupportedOperationException(NOT_SUPPORTED_YET);
    }
}


================================================
FILE: bonita-engine-standalone/src/main/java/org/bonitasoft/engine/SimpleMemoryContextFactory.java
================================================
/**
 * Copyright (C) 2016 Bonitasoft S.A.
 * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation
 * version 2.1 of the License.
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301, USA.
 **/
package org.bonitasoft.engine;

import java.util.Hashtable;

import javax.naming.Context;
import javax.naming.spi.InitialContextFactory;

/**
 * A factory of a naming context that uses the memory as dictionary of objects. Useful to tests
 * objects using JNDI to get dependencies.
 */
public class SimpleMemoryContextFactory implements InitialContextFactory {

    private static final SimpleMemoryContext context = new SimpleMemoryContext();

    @Override
    public Context getInitialContext(final Hashtable<?, ?> environment) {
        return context;
    }
}


================================================
FILE: bonita-engine-standalone/src/main/java/org/bonitasoft/engine/SimpleNameParser.java
================================================
/**
 * Copyright (C) 2016 Bonitasoft S.A.
 * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation
 * version 2.1 of the License.
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301, USA.
 **/
package org.bonitasoft.engine;

import javax.naming.CompositeName;
import javax.naming.Name;
import javax.naming.NameParser;
import javax.naming.NamingException;

public class SimpleNameParser implements NameParser {

    public SimpleNameParser(final String name) {
    }

    @Override
    public Name parse(final String name) throws NamingException {
        return new CompositeName(name);
    }

}


================================================
FILE: bonita-engine-standalone/src/main/java/org/bonitasoft/engine/xa/XAConnectionIsSameRMOverride.java
================================================
/**
 * Copyright (C) 2020 Bonitasoft S.A.
 * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation
 * version 2.1 of the License.
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301, USA.
 **/
package org.bonitasoft.engine.xa;

import java.sql.Connection;
import java.sql.SQLException;

import javax.sql.ConnectionEventListener;
import javax.sql.StatementEventListener;
import javax.sql.XAConnection;
import javax.transaction.xa.XAResource;

public class XAConnectionIsSameRMOverride implements XAConnection {

    private XAConnection xaConnection;

    private XAConnectionIsSameRMOverride(XAConnection xaConnection) {
        this.xaConnection = xaConnection;
    }

    static XAConnection overrideSameRM(XAConnection xaConnection) {
        return new XAConnectionIsSameRMOverride(xaConnection);
    }

    @Override
    public XAResource getXAResource() throws SQLException {
        return XAResourceIsSameRMOverride.overrideSameRM(xaConnection.getXAResource());
    }

    @Override
    public Connection getConnection() throws SQLException {
        return xaConnection.getConnection();
    }

    @Override
    public void close() throws SQLException {
        xaConnection.close();
    }

    @Override
    public void addConnectionEventListener(ConnectionEventListener listener) {
        xaConnection.addConnectionEventListener(listener);
    }

    @Override
    public void removeConnectionEventListener(ConnectionEventListener listener) {
        xaConnection.removeConnectionEventListener(listener);
    }

    @Override
    public void addStatementEventListener(StatementEventListener listener) {
        xaConnection.addStatementEventListener(listener);

    }

    @Override
    public void removeStatementEventListener(StatementEventListener listener) {
        xaConnection.removeStatementEventListener(listener);

    }
}


================================================
FILE: bonita-engine-standalone/src/main/java/org/bonitasoft/engine/xa/XADataSourceIsSameRMOverride.java
================================================
/**
 * Copyright (C) 2020 Bonitasoft S.A.
 * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation
 * version 2.1 of the License.
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301, USA.
 **/
package org.bonitasoft.engine.xa;

import java.io.PrintWriter;
import java.sql.SQLException;
import java.sql.SQLFeatureNotSupportedException;
import java.util.logging.Logger;

import javax.sql.XAConnection;
import javax.sql.XADataSource;

public class XADataSourceIsSameRMOverride implements XADataSource {

    private XADataSource xaDataSource;

    private XADataSourceIsSameRMOverride(XADataSource xaDataSource) {
        this.xaDataSource = xaDataSource;
    }

    public static XADataSource overrideSameRM(XADataSource xaDataSource) {
        return new XADataSourceIsSameRMOverride(xaDataSource);
    }

    @Override
    public XAConnection getXAConnection() throws SQLException {
        return XAConnectionIsSameRMOverride.overrideSameRM(xaDataSource.getXAConnection());
    }

    @Override
    public XAConnection getXAConnection(String user, String password) throws SQLException {
        return XAConnectionIsSameRMOverride.overrideSameRM(xaDataSource.getXAConnection(user, password));
    }

    @Override
    public PrintWriter getLogWriter() throws SQLException {
        return xaDataSource.getLogWriter();
    }

    @Override
    public void setLogWriter(PrintWriter out) throws SQLException {
        xaDataSource.setLogWriter(out);
    }

    @Override
    public void setLoginTimeout(int seconds) throws SQLException {
        xaDataSource.setLoginTimeout(seconds);
    }

    @Override
    public int getLoginTimeout() throws SQLException {
        return xaDataSource.getLoginTimeout();
    }

    @Override
    public Logger getParentLogger() throws SQLFeatureNotSupportedException {
        return xaDataSource.getParentLogger();
    }
}


================================================
FILE: bonita-engine-standalone/src/main/java/org/bonitasoft/engine/xa/XAResourceIsSameRMOverride.java
================================================
/**
 * Copyright (C) 2020 Bonitasoft S.A.
 * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation
 * version 2.1 of the License.
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301, USA.
 **/
package org.bonitasoft.engine.xa;

import javax.transaction.xa.XAException;
import javax.transaction.xa.XAResource;
import javax.transaction.xa.Xid;

public class XAResourceIsSameRMOverride implements XAResource {

    private XAResource xaResource;

    private XAResourceIsSameRMOverride(XAResource xaResource) {
        this.xaResource = xaResource;
    }

    static XAResource overrideSameRM(XAResource xaResource) {
        return new XAResourceIsSameRMOverride(xaResource);
    }

    @Override
    public void commit(Xid xid, boolean b) throws XAException {
        xaResource.commit(xid, b);
    }

    @Override
    public void end(Xid xid, int i) throws XAException {
        xaResource.end(xid, i);
    }

    @Override
    public void forget(Xid xid) throws XAException {
        xaResource.forget(xid);
    }

    @Override
    public int getTransactionTimeout() throws XAException {
        return xaResource.getTransactionTimeout();
    }

    @Override
    public boolean isSameRM(XAResource xaResource) throws XAException {
        // always returns false to make it work on oracle
        return false;
    }

    @Override
    public int prepare(Xid xid) throws XAException {
        return xaResource.prepare(xid);
    }

    @Override
    public Xid[] recover(int i) throws XAException {
        return xaResource.recover(i);
    }

    @Override
    public void rollback(Xid xid) throws XAException {
        xaResource.rollback(xid);
    }

    @Override
    public boolean setTransactionTimeout(int i) throws XAException {
        return xaResource.setTransactionTimeout(i);
    }

    @Override
    public void start(Xid xid, int i) throws XAException {
        xaResource.start(xid, i);
    }
}


================================================
FILE: bonita-engine-standalone/src/main/resources/jbossts-properties.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<!--
  JBoss, Home of Professional Open Source
  Copyright 2009, Red Hat Middleware LLC, and individual contributors
  as indicated by the @author tags.
  See the copyright.txt in the distribution for a
  full listing of individual contributors.
  This copyrighted material is made available to anyone wishing to use,
  modify, copy, or redistribute it subject to the terms and conditions
  of the GNU Lesser General Public License, v. 2.1.
  This program is distributed in the hope that it will be useful, but WITHOUT A
  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
  PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
  You should have received a copy of the GNU Lesser General Public License,
  v.2.1 along with this distribution; if not, write to the Free Software
  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
  MA  02110-1301, USA.

  (C) 2009,
  @author JBoss, a division of Red Hat.
-->
<properties>
    <!--
    This is the JBossTS configuration file for running ArjunaJTA.
    It should be called jbossts-properties.xml.
    You need a different version for ArjunaCore or JTS usage.

    ***************************

    Property values may be literals or be tokens of the form ${p1[,p2][:v]}
    in which case the token values are substituted for the values of the corresponding system
    properties as follows:

    - Any occurrence of ${p} with the System.getProperty(p) value.
    If there is no such property p defined, then the ${p} reference will remain unchanged.

    - If the property reference is of the form ${p:v} and there is no such property p,
    then the default value v will be returned.

    - If the property reference is of the form ${p1,p2} or ${p1,p2:v} then
    the primary and the secondary properties will be tried in turn, before
    returning either the unchanged input, or the default value.

    The property ${/} is replaced with System.getProperty("file.separator")
    value and the property ${:} is replaced with System.getProperty("path.separator").

    Note this substitution applies to property values only at the point they are read from
    the config file. Tokens in system properties won't be substituted.
    -->

    <!-- (default is YES) -->
    <entry key="CoordinatorEnvironmentBean.commitOnePhase">YES</entry>

    <!-- (default is 180 seconds) -->
    <entry key="com.arjuna.ats.arjuna.coordinator.defaultTimeout">${bonita.runtime.transaction.xa-timeout:180}</entry>

    <!-- default is under user.home - must be writable!) -->
    <entry key="com.arjuna.ats.arjuna.objectstore.objectStoreDir">${bonita.runtime.transaction.xa-store-directory:build/tx-object-store}</entry>

    <!-- (default is ON) -->
    <entry key="ObjectStoreEnvironmentBean.transactionSync">ON</entry>

    <!-- (Must be unique across all Arjuna instances.) -->
    <entry key="CoreEnvironmentBean.nodeIdentifier">1</entry>

    <!-- Which Xid types to recover -->
    <entry key="JTAEnvironmentBean.xaRecoveryNodes">1</entry>


    <!-- All of the 3 ways below to configure "userTransaction JNDI name" work: -->
    <entry key="JTAEnvironmentBean.userTransactionJNDIContext">java:comp/UserTransaction</entry>
    <!--<entry key="com.arjuna.ats.jta.utils.UTJNDIContext">java:comp/UserTransaction</entry>-->
    <!--<entry key="com.arjuna.ats.jta.common.JTAEnvironmentBean.userTransactionJNDIContext">java:comp/UserTransaction</entry>-->


    <entry key="JTAEnvironmentBean.xaResourceOrphanFilterClassNames">
        com.arjuna.ats.internal.jta.recovery.arjunacore.JTATransactionLogXAResourceOrphanFilter
        com.arjuna.ats.internal.jta.recovery.arjunacore.JTANodeNameXAResourceOrphanFilter
        com.arjuna.ats.internal.jta.recovery.arjunacore.SubordinationManagerXAResourceOrphanFilter
    </entry>

    <!--
      Base port number for determining a unique number to associate with an instance of the transaction service
      (which is needed in order to support multiple instances on the same machine).
      Use the value 0 to allow the system to select the first available port number.
      If the port number is non-zero and the port is in use then the value will be incremented until either a successful binding
      to the loopback address is created or until the the maximum number of ports (specified by the
      CoreEnvironmentBean.socketProcessIdMaxPorts property) have been tried or until the port number
      reaches the maximum possible port number.
    -->
    <entry key="CoreEnvironmentBean.socketProcessIdPort">0</entry>


    <!--
      Periodic recovery modules to use.  Invoked in the order they appear in the list.
         Check http://www.jboss.org/community/docs/DOC-10788 for more information
         on recovery modules and their configuration when running in various
         deployments.
    -->
    <entry key="RecoveryEnvironmentBean.recoveryModuleClassNames">
        com.arjuna.ats.internal.arjuna.recovery.AtomicActionRecoveryModule
        com.arjuna.ats.internal.txoj.recovery.TORecoveryModule
        com.arjuna.ats.internal.jta.recovery.arjunacore.SubordinateAtomicActionRecoveryModule
        com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule
    </entry>

    <!-- Expiry scanners to use (order of invocation is random). -->
    <entry key="RecoveryEnvironmentBean.expiryScannerClassNames">
        com.arjuna.ats.internal.arjuna.recovery.ExpiredTransactionStatusManagerScanner
    </entry>

    <!--
        Add the following to the set of expiryScannerClassNames above to move logs that cannot be completed by failure recovery.
            But be sure you know what you are doing and why!
             com.arjuna.ats.internal.arjuna.recovery.AtomicActionExpiryScanner
    -->

    <!--
      The address and port number on which the recovery manager listens
      If running within an AS then the address the AS is bound to (jboss.bind.address) takes precedence
    -->
    <entry key="RecoveryEnvironmentBean.recoveryPort">4712</entry>

    <entry key="RecoveryEnvironmentBean.recoveryAddress"></entry>

    <!--
      Use this to fix the port on which the TransactionStatusManager listens,
      The default behaviour is to use any free port.
    -->
    <entry key="RecoveryEnvironmentBean.transactionStatusManagerPort">0</entry>

    <!--
      Use this to fix the address on which the TransactionStatusManager binds,
      The default behaviour is to use the loopback address (ie localhost).
      If running within an AS then the address the AS is bound to (jboss.bind.address) takes precedence
    -->
    <entry key="RecoveryEnvironmentBean.transactionStatusManagerAddress"></entry>

    <!--
      For cases where the recovery manager is in process with the transaction manager and nothing else uses
      the ObjectStore, it is possible to disable the socket based recovery listener by setting this to NO.
      Caution: use of this property can allow multiple recovery processes to run on the same ObjectStore
      if you are not careful. That in turn can lead to incorrect transaction processing. Use with care.
    -->
    <entry key="RecoveryEnvironmentBean.recoveryListener">NO</entry>

</properties>


================================================
FILE: bonita-engine-standalone/src/test/java/org/bonitasoft/engine/BonitaDataSourceInitializerTest.java
================================================
/**
 * Copyright (C) 2019 Bonitasoft S.A.
 * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation
 * version 2.1 of the License.
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301, USA.
 **/
package org.bonitasoft.engine;

import static org.assertj.core.api.Assertions.assertThat;

import org.apache.tomcat.dbcp.dbcp2.BasicDataSource;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;

public class BonitaDataSourceInitializerTest {

    @Rule
    public ExpectedException expectedExceptions = ExpectedException.none();
    private BonitaDataSourceInitializer bonitaDataSourceInitializer = new BonitaDataSourceInitializer();

    @Test
    public void should_fail_to_create_datasource_if_some_field_are_not_set() {
        BonitaDatabaseConfiguration configuration = BonitaDatabaseConfiguration.builder()
                .dbVendor("postgres")
                .url("jdbc::postgres")
                .build();

        expectedExceptions.expect(IllegalArgumentException.class);
        expectedExceptions.expectMessage("Database user not se");

        bonitaDataSourceInitializer.createDataSource(configuration);
    }

    @Test
    public void should_fail_to_create_datasource_configuration_is_empty() {
        expectedExceptions.expect(IllegalArgumentException.class);
        expectedExceptions.expectMessage("Database dbVendor not set");

        bonitaDataSourceInitializer.createDataSource(new BonitaDatabaseConfiguration());
    }

    @Test
    public void should_fail_if_db_vendor_is_not_supported() {
        BonitaDatabaseConfiguration configuration = BonitaDatabaseConfiguration.builder()
                .dbVendor("toto")
                .url("jdbc::postgres")
                .build();

        expectedExceptions.expect(IllegalArgumentException.class);
        expectedExceptions.expectMessage("Database db vendor toto is invalid");

        bonitaDataSourceInitializer.createDataSource(configuration);
    }

    @Test
    public void should_create_datasource_with_configuration() {
        BonitaDatabaseConfiguration configuration = BonitaDatabaseConfiguration.builder()
                .dbVendor("postgres")
                .driverClassName("org.postgres.MyCustomDriver")
                .url("jdbc::postgres")
                .user("myUser")
                .password("secret")
                .build();

        BasicDataSource dataSource = bonitaDataSourceInitializer.createDataSource(configuration);

        assertThat(dataSource.getUrl()).isEqualTo("jdbc::postgres");
        assertThat(dataSource.getUsername()).isEqualTo("myUser");
        assertThat(dataSource.getDriverClassName()).isEqualTo("org.postgres.MyCustomDriver");
        assertThat(dataSource.getPassword()).isEqualTo("secret");
    }

    @Test
    public void should_provide_default_driver_according_to_dbVendor() {
        BonitaDatabaseConfiguration configuration = BonitaDatabaseConfiguration.builder()
                .dbVendor("mysql")
                .url("jdbc::localhost")
                .user("myUser")
                .build();

        BasicDataSource dataSource = bonitaDataSourceInitializer.createDataSource(configuration);

        assertThat(dataSource.getUrl()).isEqualTo("jdbc::localhost");
        assertThat(dataSource.getDriverClassName()).isEqualTo("com.mysql.cj.jdbc.Driver");
    }

    @Test
    public void should_set_pool_size_according_to_configuration() throws Exception {
        BonitaDatabaseConfiguration configuration = BonitaDatabaseConfiguration.builder()
                .dbVendor("mysql")
                .url("jdbc::localhost")
                .user("myUser")
                .xaDatasource(DatasourceConfiguration.builder().maxPoolSize(10).build())
                .datasource(DatasourceConfiguration.builder().maxPoolSize(5).build())
                .build();

        BasicDataSource dataSource = bonitaDataSourceInitializer.createDataSource(configuration);
        BasicDataSource managedDataSource = bonitaDataSourceInitializer.createManagedDataSource(configuration, null);

        assertThat(dataSource.getMaxTotal()).isEqualTo(5);
        assertThat(managedDataSource.getMaxTotal()).isEqualTo(10);
    }

}


================================================
FILE: bonita-engine-standalone/src/test/java/org/bonitasoft/engine/BonitaEngineTest.java
================================================
/**
 * Copyright (C) 2019 Bonitasoft S.A.
 * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation
 * version 2.1 of the License.
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301, USA.
 **/
package org.bonitasoft.engine;

import static org.assertj.core.api.Assertions.assertThat;

import org.h2.jdbcx.JdbcDataSource;
import org.junit.Rule;
import org.junit.Test;
import org.junit.contrib.java.lang.system.RestoreSystemProperties;
import org.junit.rules.TestRule;

public class BonitaEngineTest {

    @Rule
    public final TestRule restoreSystemProperties = new RestoreSystemProperties();

    @Test
    public void should_set_db_vendor_system_property_according_to_database_configuration() throws Exception {
        BonitaEngine bonitaEngine = newBonitaEngine();
        bonitaEngine.setBonitaDatabaseConfiguration(BonitaDatabaseConfiguration.builder()
                .dbVendor("postgres")
                .url("jdbc:postgresql://someServer:5433/bonitadb")
                .user("user")
                .build());

        bonitaEngine.initializeEnvironment();

        assertThat(System.getProperty(BonitaEngine.BONITA_DB_VENDOR)).isEqualTo("postgres");
    }

    @Test
    public void should_set_db_vendor_system_property_to_h2_by_default() throws Exception {
        BonitaEngine bonitaEngine = newBonitaEngine();

        bonitaEngine.initializeEnvironment();

        assertThat(System.getProperty(BonitaEngine.BONITA_DB_VENDOR)).isEqualTo("h2");
    }

    @Test
    public void should_configure_bonita_datasource_to_h2_by_default() throws Exception {
        BonitaEngine bonitaEngine = newBonitaEngine();

        bonitaEngine.initializeEnvironment();

        JdbcDataSource xaDataSourceInstance = (JdbcDataSource) bonitaEngine.getBonitaDataSource()
                .getXaDataSourceInstance();
        assertThat(xaDataSourceInstance.getURL()).contains("h2");
        assertThat(xaDataSourceInstance.getDescription()).contains("RawDataSource of h2");

    }

    private BonitaEngine newBonitaEngine() {
        return new BonitaEngine();
    }

}


================================================
FILE: bonita-engine-standalone/src/test/java/org/bonitasoft/engine/DatabaseUrlParserTest.java
================================================
/**
 * Copyright (C) 2020 Bonitasoft S.A.
 * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation
 * version 2.1 of the License.
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301, USA.
 **/
package org.bonitasoft.engine;

import static org.assertj.core.api.Assertions.assertThat;

import org.junit.Test;

public class DatabaseUrlParserTest {

    @Test
    public void should_parse_postgres_url() {
        String url = "jdbc:postgresql://localhost:32782/bonita";

        DatabaseUrlParser.DatabaseMetadata metadata = DatabaseUrlParser.parsePostgresUrl(url);

        assertThat(metadata.getDatabaseName()).isEqualTo("bonita");
        assertThat(metadata.getPort()).isEqualTo("32782");
        assertThat(metadata.getServerName()).isEqualTo("localhost");
    }

    @Test(expected = IllegalArgumentException.class)
    public void should_throw_exception_when_there_is_no_match() {
        String url = "jdbc:otherDb://localhost:32782/bonita";

        DatabaseUrlParser.parsePostgresUrl(url);
    }

}


================================================
FILE: bonita-integration-tests/benchmarks/README.md
================================================
Micro benchmarks
================


This module contains micro benchmark tests that can be written and run to verify the performance of precise parts of the code.


## Write a test

see example `org.bonitasoft.engine.benchmarks.TransactionSynchronizationBenchmark`

## Run tests

```
./gradlew jmh
```


================================================
FILE: bonita-integration-tests/benchmarks/build.gradle
================================================
plugins {
    id("me.champeau.jmh") version "0.7.3"
}

dependencies {
    api libs.assertj
    api libs.mockitoCore
    api project(':bonita-integration-tests:bonita-integration-tests-client')
    api project(':bpm:bonita-server')
    testRuntimeOnly libs.logback
}

jmh {
    duplicateClassesStrategy = DuplicatesStrategy.WARN
    iterations = 2
    threads = 1
    fork = 1
}

================================================
FILE: bonita-integration-tests/benchmarks/src/jmh/java/org/bonitasoft/engine/benchmarks/PermissionCachingBenchmark.java
================================================
/**
 * Copyright (C) 2020 Bonitasoft S.A.
 * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation
 * version 2.1 of the License.
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301, USA.
 **/
package org.bonitasoft.engine.benchmarks;

import org.bonitasoft.engine.authorization.properties.ConfigurationFilesManager;
import org.bonitasoft.engine.authorization.properties.ResourcesPermissionsMapping;
import org.bonitasoft.engine.cache.CacheService;
import org.bonitasoft.engine.service.ServiceAccessorSingleton;
import org.bonitasoft.engine.test.TestEngine;
import org.bonitasoft.engine.test.TestEngineImpl;
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.Scope;
import org.openjdk.jmh.annotations.Setup;
import org.openjdk.jmh.annotations.State;
import org.openjdk.jmh.annotations.TearDown;

@State(Scope.Benchmark)
public class PermissionCachingBenchmark {

    private TestEngine engine;
    private ResourcesPermissionsMapping resourcesPermissionsMapping;
    private CacheService cacheService;

    @Setup
    public void setup() throws Exception {
        engine = TestEngineImpl.getInstance();
        engine.start();
        cacheService = ServiceAccessorSingleton.getInstance().getCacheService();
        resourcesPermissionsMapping = new ResourcesPermissionsMapping(cacheService,
                new ConfigurationFilesManager());
    }

    @TearDown
    public void tearDown() throws Exception {
        engine.stop();
    }

    @Benchmark
    public void callPermissionWithCache() {
        resourcesPermissionsMapping.getResourcePermissions("GET", "bpm", "case");
    }

    @Benchmark
    public void callPermissionFromCache50times() {
        for (int i = 0; i < 50; i++) {
            resourcesPermissionsMapping.getResourcePermissions("GET", "bpm", "case");
        }
    }
}


================================================
FILE: bonita-integration-tests/benchmarks/src/jmh/java/org/bonitasoft/engine/benchmarks/TransactionSynchronizationBenchmark.java
================================================
/**
 * Copyright (C) 2020 Bonitasoft S.A.
 * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation
 * version 2.1 of the License.
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301, USA.
 **/
package org.bonitasoft.engine.benchmarks;

import java.util.Map;
import java.util.concurrent.CompletableFuture;

import org.bonitasoft.engine.execution.work.BPMWorkFactory;
import org.bonitasoft.engine.service.ServiceAccessor;
import org.bonitasoft.engine.service.ServiceAccessorSingleton;
import org.bonitasoft.engine.test.TestEngine;
import org.bonitasoft.engine.test.TestEngineImpl;
import org.bonitasoft.engine.transaction.UserTransactionService;
import org.bonitasoft.engine.work.BonitaWork;
import org.bonitasoft.engine.work.WorkDescriptor;
import org.bonitasoft.engine.work.WorkService;
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.Scope;
import org.openjdk.jmh.annotations.Setup;
import org.openjdk.jmh.annotations.State;
import org.openjdk.jmh.annotations.TearDown;

@State(Scope.Benchmark)
public class TransactionSynchronizationBenchmark {

    private TestEngine engine;
    private UserTransactionService userTransactionService;
    private WorkService workService;

    @Setup
    public void setup() throws Exception {
        engine = TestEngineImpl.getInstance();
        engine.start();
        final ServiceAccessor serviceAccessor = ServiceAccessorSingleton.getInstance();
        userTransactionService = serviceAccessor.getUserTransactionService();
        workService = serviceAccessor.getWorkService();
        BPMWorkFactory bpmWorkFactory = serviceAccessor.getBPMWorkFactory();
        bpmWorkFactory.addExtension("BENCHMARK_WORK", workDescriptor -> new BonitaWork() {

            @Override
            public String getDescription() {
                return "BENCHMARK_WORK";
            }

            @Override
            public CompletableFuture<Void> work(Map<String, Object> context) throws Exception {
                return CompletableFuture.completedFuture(null);
            }

            @Override
            public void handleFailure(Throwable e, Map<String, Object> context) throws Exception {

            }
        });
    }

    @TearDown
    public void tearDown() throws Exception {
        engine.stop();
    }

    @Benchmark
    public void register1000Works() throws Exception {
        userTransactionService.executeInTransaction(() -> {
            for (int i = 0; i < 1000; i++) {
                workService.registerWork(WorkDescriptor.create("BENCHMARK_WORK"));
            }
            return null;
        });
    }

    @Benchmark
    public void register1Works() throws Exception {
        userTransactionService.executeInTransaction(() -> {
            for (int i = 0; i < 1; i++) {
                workService.registerWork(WorkDescriptor.create("BENCHMARK_WORK"));
            }
            return null;
        });
    }

    @Benchmark
    public void register2Works() throws Exception {
        userTransactionService.executeInTransaction(() -> {
            for (int i = 0; i < 2; i++) {
                workService.registerWork(WorkDescriptor.create("BENCHMARK_WORK"));
            }
            return null;
        });
    }
}


================================================
FILE: bonita-integration-tests/bonita-integration-tests-client/bonita-client-http.properties
================================================
org.bonitasoft.engine.api-type=HTTP
org.bonitasoft.engine.api-type.server.url=127.255.0.123
org.bonitasoft.engine.api-type.application.name=MyBonitaInstallation


================================================
FILE: bonita-integration-tests/bonita-integration-tests-client/bonita-client-invalid.properties
================================================
org.bonitasoft.engine.api-type = InvalidType


================================================
FILE: bonita-integration-tests/bonita-integration-tests-client/bonita-client-local.properties
================================================
org.bonitasoft.engine.api-type = LOCAL


================================================
FILE: bonita-integration-tests/bonita-integration-tests-client/build.gradle
================================================
plugins {
    id("bonita-http-test")
    id("bonita-docker-database")
    id("bonita-tests")
}
dependencies {
    api project(':bonita-test-api')
    api libs.commonsIO
    api project(':bpm:bonita-common')
    api project(':bpm:bonita-client')
    api project(':bonita-integration-tests:bonita-test-utils')
    api libs.assertj
    api(libs.jsonUnit) {
        exclude(group: "org.slf4j", module: "slf4j-api")
    }
    api libs.systemRules
    api libs.concurrentUnit
    runtimeOnly libs.logback
    testImplementation project(':bpm:bonita-server')
    testImplementation testFixtures(project(':bpm:bonita-common'))
    testImplementation libs.awaitility
    testImplementation libs.xmlunit
    testImplementation libs.mockitoCore
    testImplementation libs.logback
}

test.doFirst {
    def emptyFile = new File("$project.buildDir/bonita_home_client_HTTP/engine-client/conf/bonita-client-custom.properties")
    emptyFile.getParentFile().mkdirs()
    emptyFile.text = ""
    copy {
        from file("$projectDir/bonita-client-http.properties")
        into file("$project.buildDir/bonita_home_client_HTTP/engine-client/work")
        rename 'bonita-client-http.properties', 'bonita-client-community.properties'
    }
    def invalidFile = new File("$project.buildDir/bonita_home_client_invalidAPIType/engine-client/conf/bonita-client-custom.properties")
    invalidFile.getParentFile().mkdirs()
    invalidFile.text = ""
    copy {
        from file("$projectDir/bonita-client-invalid.properties")
        into file("$project.buildDir/bonita_home_client_invalidAPIType/engine-client/work")
        rename 'bonita-client-invalid.properties', 'bonita-client-community.properties'
    }
}
group = 'org.bonitasoft.engine.test'
publishing {
    publications {
        mavenJava(MavenPublication) { from project.components.java }
    }
}

httpTests {
    integrationTestsSuite = "**/*IT.class"
}

databaseIntegrationTest { include "**/*IT.class" }

================================================
FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/CommonAPIIT.java
================================================
/**
 * Copyright (C) 2019 Bonitasoft S.A.
 * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation
 * version 2.1 of the License.
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301, USA.
 **/
package org.bonitasoft.engine;

import static org.junit.Assert.assertNotNull;

import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import org.apache.commons.io.IOUtils;
import org.assertj.core.api.Assertions;
import org.bonitasoft.engine.bpm.bar.BarResource;
import org.bonitasoft.engine.bpm.process.ProcessDefinition;
import org.bonitasoft.engine.bpm.process.impl.ProcessDefinitionBuilder;
import org.bonitasoft.engine.connectors.TestConnector;
import org.bonitasoft.engine.exception.BonitaException;
import org.bonitasoft.engine.filter.user.GroupUserFilter;
import org.bonitasoft.engine.filter.user.TestFilter;
import org.bonitasoft.engine.filter.user.TestFilterThatThrowException;
import org.bonitasoft.engine.filter.user.TestFilterUsingActorName;
import org.bonitasoft.engine.filter.user.TestFilterWithAutoAssign;
import org.bonitasoft.engine.identity.User;
import org.bonitasoft.engine.io.IOUtil;
import org.bonitasoft.engine.search.SearchOptionsBuilder;
import org.bonitasoft.engine.search.SearchResult;
import org.bonitasoft.engine.test.APITestUtil;
import org.bonitasoft.engine.test.junit.BonitaEngineRule;
import org.junit.Rule;
import org.junit.rules.TestRule;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public abstract class CommonAPIIT extends APITestUtil {

    @Rule
    public BonitaEngineRule bonitaEngineRule = BonitaEngineRule.create();

    private static final Logger LOGGER = LoggerFactory.getLogger(CommonAPIIT.class);

    @Rule
    public TestRule testWatcher = new PrintTestsStatusRule(LOGGER) {

        @Override
        public void clean() throws Exception {
            CommonAPIIT.this.clean();
        }
    };

    private void clean() throws BonitaException {
        loginWithTechnicalUser();
        cleanCommands();
        cleanProcessInstances();
        cleanApplications();
        cleanPages();
        cleanArchiveProcessInstances();
        cleanProcessDefinitions();
        cleanCategories();
        cleanUsers();
        cleanGroups();
        cleanRoles();
        cleanSupervisors();
        checkThereAreNoWaitingEventsLeft();
        cleanBdm();
        logout();
    }

    private void checkThereAreNoWaitingEventsLeft() throws BonitaException {
        SearchResult<?> searchResult = (SearchResult<?>) getCommandAPI()
                .execute("searchWaitingEventsCommand",
                        Collections.singletonMap("searchOptions", new SearchOptionsBuilder(0, 100).done()));
        Assertions.assertThat(searchResult.getResult()).hasSize(0);
    }

    public BarResource getResource(final String path, final String name) throws IOException {
        return getBarResource(path, name, CommonAPIIT.class);
    }

    public void addResource(final List<BarResource> resources, final String path, final String name)
            throws IOException {
        final BarResource barResource = getResource(path, name);
        resources.add(barResource);
    }

    protected ProcessDefinition deployProcessWithTestFilter(final ProcessDefinitionBuilder processDefinitionBuilder,
            final String actorName, final User user,
            final String filterName) throws BonitaException, IOException {
        final List<BarResource> userFilters = generateFilterImplementations(filterName);
        final List<BarResource> generateFilterDependencies = generateFilterDependencies();
        return deployAndEnableProcessWithActorAndUserFilter(processDefinitionBuilder, actorName, user,
                generateFilterDependencies, userFilters);
    }

    private List<BarResource> generateFilterImplementations(final String filterName) throws IOException {
        final List<BarResource> resources = new ArrayList<>(1);
        final InputStream inputStream = TestConnector.class.getClassLoader()
                .getResourceAsStream("org/bonitasoft/engine/filter/user/" + filterName + ".impl");
        final byte[] data = IOUtil.getAllContentFrom(inputStream);
        inputStream.close();
        resources.add(new BarResource(filterName + ".impl", data));
        return resources;
    }

    private List<BarResource> generateFilterDependencies() throws IOException {
        final List<BarResource> resources = new ArrayList<>(1);
        byte[] data = IOUtil.generateJar(TestFilterThatThrowException.class);
        resources.add(new BarResource("TestFilterThatThrowException.jar", data));
        data = IOUtil.generateJar(TestFilter.class);
        resources.add(new BarResource("TestFilter.jar", data));
        data = IOUtil.generateJar(TestFilterWithAutoAssign.class);
        resources.add(new BarResource("TestFilterWithAutoAssign.jar", data));
        data = IOUtil.generateJar(TestFilterUsingActorName.class);
        resources.add(new BarResource("TestFilterUsingActorName.jar", data));
        data = IOUtil.generateJar(GroupUserFilter.class);
        resources.add(new BarResource("TestGroupUserFilter.jar", data));
        return resources;
    }

    protected String getContentOfResource(final String name) {
        final InputStream stream = this.getClass().getResourceAsStream(name);
        assertNotNull(stream);
        try {
            try {
                return IOUtils.toString(stream);
            } finally {
                stream.close();
            }
        } catch (final IOException e) {
            throw new RuntimeException(e);
        }
    }

    @Override
    public BarResource getBarResource(String path, String name, Class<?> clazz) throws IOException {
        return super.getBarResource(path, name, clazz);
    }
}


================================================
FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/PrintTestsStatusRule.java
================================================
/**
 * Copyright (C) 2019 Bonitasoft S.A.
 * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation
 * version 2.1 of the License.
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301, USA.
 **/
package org.bonitasoft.engine;

import org.bonitasoft.engine.exception.BonitaRuntimeException;
import org.junit.rules.TestWatcher;
import org.junit.runner.Description;
import org.slf4j.Logger;

/**
 * @author Baptiste Mesta
 */
public abstract class PrintTestsStatusRule extends TestWatcher {

    private final Logger logger;

    public PrintTestsStatusRule(Logger logger) {

        this.logger = logger;
    }

    @Override
    public void starting(final Description d) {
        logger.warn("Starting test: {}.{}", d.getClassName(), d.getMethodName());
    }

    @Override
    public void failed(final Throwable e, final Description d) {
        logger.warn("Failed test: {}.{}", d.getClassName(), d.getMethodName(), e);
        try {
            clean();
        } catch (final Exception be) {
            logger.error("unable to clean db", be);
        } finally {
            logger.warn("------------------------------------------------------");
        }
    }

    @Override
    public void succeeded(final Description d) {
        logger.warn("Succeeded test: {}.{}", d.getClassName(), d.getMethodName());
        try {
            clean();
        } catch (final Exception e) {
            throw new BonitaRuntimeException(e);
        } finally {
            logger.warn("------------------------------------------------------");
        }
    }

    public abstract void clean() throws Exception;
}


================================================
FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/TestWithTechnicalUser.java
================================================
/**
 * Copyright (C) 2019 Bonitasoft S.A.
 * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation
 * version 2.1 of the License.
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301, USA.
 **/
package org.bonitasoft.engine;

import org.junit.After;
import org.junit.Before;

/**
 * @author Celine Souchet
 * @version 6.4.1
 * @since 6.4.1
 */
public class TestWithTechnicalUser extends CommonAPIIT {

    @Before
    public void before() throws Exception {
        loginWithTechnicalUser();
    }

    @After
    public void after() throws Exception {
        logout();
    }

}


================================================
FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/TestWithUser.java
================================================
/**
 * Copyright (C) 2019 Bonitasoft S.A.
 * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation
 * version 2.1 of the License.
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301, USA.
 **/
package org.bonitasoft.engine;

import org.bonitasoft.engine.identity.User;
import org.junit.After;
import org.junit.Before;

/**
 * @author Celine Souchet
 * @version 6.4.1
 * @since 6.4.1
 */
public class TestWithUser extends TestWithTechnicalUser {

    protected User user;

    @Override
    @Before
    public void before() throws Exception {
        super.before();
        user = createUser(USERNAME, PASSWORD);
        logout();
        loginOnDefaultTenantWith(USERNAME, PASSWORD);
    }

    @Override
    @After
    public void after() throws Exception {
        logout();
        loginWithTechnicalUser();
        deleteUser(USERNAME);
        super.after();
    }

}


================================================
FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/business/application/TestWithCustomPage.java
================================================
/**
 * Copyright (C) 2019 Bonitasoft S.A.
 * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation
 * version 2.1 of the License.
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301, USA.
 **/
package org.bonitasoft.engine.business.application;

import org.bonitasoft.engine.page.Page;
import org.bonitasoft.engine.page.PageCreator;
import org.junit.After;
import org.junit.Before;

/**
 * @author Elias Ricken de Medeiros
 */
public class TestWithCustomPage extends TestWithLivingApplication {

    private Page page;

    @Before
    public void setUp() throws Exception {
        super.setUp();
        page = createPage("custompage_MyPage");
    }

    @After
    public void tearDown() throws Exception {
        super.tearDown();
        loginWithTechnicalUser();
        if (page != null) {
            getPageAPI().deletePage(page.getId());
        }
        logout();
    }

    public Page getPage() {
        return page;
    }

    protected Page createPage(final String pageName) throws Exception {
        return getPageAPI().createPage(new PageCreator(pageName, "content.zip").setDisplayName(pageName),
                createTestPageContent(pageName, "no display name", "empty desc"));
    }

}


================================================
FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/business/application/TestWithLivingApplication.java
================================================
/**
 * Copyright (C) 2019 Bonitasoft S.A.
 * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation
 * version 2.1 of the License.
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301, USA.
 **/
package org.bonitasoft.engine.business.application;

import static org.assertj.core.api.Assertions.assertThat;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;

import org.bonitasoft.engine.CommonAPIIT;
import org.bonitasoft.engine.api.ImportStatus;
import org.bonitasoft.engine.exception.BonitaException;
import org.bonitasoft.engine.exception.SearchException;
import org.bonitasoft.engine.identity.User;
import org.bonitasoft.engine.page.Page;
import org.bonitasoft.engine.page.PageCreator;
import org.bonitasoft.engine.profile.Profile;
import org.bonitasoft.engine.profile.ProfileSearchDescriptor;
import org.bonitasoft.engine.search.Order;
import org.bonitasoft.engine.search.SearchOptionsBuilder;
import org.bonitasoft.engine.search.SearchResult;
import org.junit.After;
import org.junit.Before;

/**
 * @author Elias Ricken de Medeiros
 */
public class TestWithLivingApplication extends CommonAPIIT {

    static final String DEFAULT_LAYOUT_NAME = "custompage_layoutBonita";
    static final String DEFAULT_THEME_NAME = "custompage_themeBonita";
    private User user;

    @Before
    public void setUp() throws Exception {
        loginWithTechnicalUser();
        user = createUser("john", "bpm");
        logout();
        loginOnDefaultTenantWith("john", "bpm");
    }

    @After
    public void tearDown() throws Exception {
        final SearchResult<IApplication> searchResult = getLivingApplicationAPI()
                .searchIApplications(new SearchOptionsBuilder(0, 1000).done());
        for (final IApplication app : searchResult.getResult()) {
            getLivingApplicationAPI().deleteApplication(app.getId());
        }
        logoutThenlogin();
        deleteUser(user);
        logout();
    }

    protected Profile getProfileUser() throws SearchException {
        return getProfile("User");
    }

    Profile getProfileAdmin() throws SearchException {
        return getProfile("Administrator");
    }

    private Profile getProfile(String profileName) throws SearchException {
        SearchOptionsBuilder builder = new SearchOptionsBuilder(0, 1);
        builder.filter(ProfileSearchDescriptor.NAME, profileName);
        SearchResult<Profile> profileSearchResult = getProfileAPI().searchProfiles(builder.done());
        assertThat(profileSearchResult.getCount()).isEqualTo(1);
        Profile profile = profileSearchResult.getResult().get(0);
        return profile;
    }

    public User getUser() {
        return user;
    }

    protected Page createPage(final String pageName) throws Exception {
        return getPageAPI().createPage(new PageCreator(pageName, "content.zip").setDisplayName(pageName),
                createPageContent(pageName));
    }

    private byte[] createPageContent(final String pageName)
            throws BonitaException {
        try {
            final ByteArrayOutputStream baos = new ByteArrayOutputStream();
            final ZipOutputStream zos = new ZipOutputStream(baos);
            zos.putNextEntry(new ZipEntry("Index.groovy"));
            zos.write("return \"\";".getBytes());

            zos.putNextEntry(new ZipEntry("page.properties"));
            String s = "name=" + pageName + "\n"
                    + "displayName=no display name\n"
                    + "description=empty desc\n";
            zos.write(s.getBytes("UTF-8"));

            zos.closeEntry();
            return baos.toByteArray();
        } catch (final IOException e) {
            throw new BonitaException(e);
        }
    }

    protected SearchOptionsBuilder getAppSearchBuilderOrderByToken(final int startIndex, final int maxResults) {
        final SearchOptionsBuilder builder = new SearchOptionsBuilder(startIndex, maxResults);
        builder.sort(ApplicationSearchDescriptor.TOKEN, Order.ASC);
        return builder;
    }

    protected void assertIsAddOkStatus(final ImportStatus importStatus, String expectedToken) {
        assertThat(importStatus.getName()).isEqualTo(expectedToken);
        assertThat(importStatus.getStatus()).isEqualTo(ImportStatus.Status.ADDED);
        assertThat(importStatus.getErrors()).isEmpty();
    }

    protected SearchOptionsBuilder getAppSearchBuilderOrderById(final int startIndex, final int maxResults) {
        final SearchOptionsBuilder builder = new SearchOptionsBuilder(startIndex, maxResults);
        builder.sort(ApplicationSearchDescriptor.ID, Order.ASC);
        return builder;
    }

    protected void assertIsMarketingApplication(final Application app) {
        assertThat(app.getToken()).isEqualTo("My");
        assertThat(app.getVersion()).isEqualTo("2.0");
        assertThat(app.getDisplayName()).isEqualTo("Marketing");
        assertThat(app.getDescription()).isNull();
        assertThat(app.getIconPath()).isNull();
        assertThat(app.getState()).isEqualTo("ACTIVATED");
        assertThat(app.getProfileId()).isNull();
    }

    protected void assertIsHRApplication(final Profile profile, final Page layout, final Page theme,
            final Application app) {
        assertThat(app.getToken()).isEqualTo("HR-dashboard");
        assertThat(app.getVersion()).isEqualTo("2.0");
        assertThat(app.getDisplayName()).isEqualTo("My HR dashboard");
        assertThat(app.getDescription()).isEqualTo("This is the HR dashboard.");
        assertThat(app.getIconPath()).isEqualTo("/icon.jpg");
        assertThat(app.getState()).isEqualTo("ACTIVATED");
        assertThat(app.getProfileId()).isEqualTo(profile.getId());
        assertThat(app.getLayoutId()).isEqualTo(layout.getId());
        assertThat(app.getThemeId()).isEqualTo(theme.getId());
    }

    protected void assertIsMyNewCustomPage(final Page myPage, final Application hrApp,
            final ApplicationPage applicationPage) {
        assertThat(applicationPage.getApplicationId()).isEqualTo(hrApp.getId());
        assertThat(applicationPage.getToken()).isEqualTo("my-new-custom-page");
        assertThat(applicationPage.getPageId()).isEqualTo(myPage.getId());
    }

    protected void assertIsHrFollowUpMenu(final ApplicationMenu applicationMenu) {
        assertThat(applicationMenu.getParentId()).isNull();
        assertThat(applicationMenu.getDisplayName()).isEqualTo("HR follow-up");
        assertThat(applicationMenu.getApplicationPageId()).isNull();
    }

    protected void assertIsDailyHrFollowUpMenu(final ApplicationMenu applicationMenu, ApplicationMenu hrFollowUpMenu,
            ApplicationPage myNewCustomPage) {
        assertThat(applicationMenu.getParentId()).isEqualTo(hrFollowUpMenu.getId());
        assertThat(applicationMenu.getDisplayName()).isEqualTo("Daily HR follow-up");
        assertThat(applicationMenu.getApplicationPageId()).isEqualTo(myNewCustomPage.getId());
    }

    protected void assertIsEmptyMenu(final ApplicationMenu applicationMenu) {
        assertThat(applicationMenu.getParentId()).isNull();
        assertThat(applicationMenu.getDisplayName()).isEqualTo("Empty menu");
        assertThat(applicationMenu.getApplicationPageId()).isNull();
    }
}


================================================
FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/business/data/BusinessDataUpdateConnector.java
================================================
/**
 * Copyright (C) 2019 Bonitasoft S.A.
 * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation
 * version 2.1 of the License.
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301, USA.
 **/
package org.bonitasoft.engine.business.data;

import java.lang.reflect.Method;

import org.bonitasoft.engine.connector.AbstractConnector;
import org.bonitasoft.engine.connector.ConnectorException;

public class BusinessDataUpdateConnector extends AbstractConnector {

    @Override
    public void validateInputParameters() {
    }

    @Override
    protected void executeBusinessLogic() throws ConnectorException {
        final Object bizData = getInputParameter("bizData");
        try {
            Method method = bizData.getClass().getMethod("addToPhoneNumbers", String.class);
            method.invoke(bizData, "48665421");

            method = bizData.getClass().getMethod("setLastName", String.class);
            method.invoke(bizData, "Hakkinen");
            setOutputParameter("output1", bizData);
        } catch (final Exception e) {
            throw new ConnectorException(e);
        }
    }

}


================================================
FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/business/data/ClassloaderRefresher.java
================================================
/**
 * Copyright (C) 2019 Bonitasoft S.A.
 * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation
 * version 2.1 of the License.
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301, USA.
 **/
package org.bonitasoft.engine.business.data;

import java.io.File;
import java.io.IOException;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;

import org.apache.commons.io.FileUtils;
import org.bonitasoft.engine.io.IOUtils;

/**
 * @author Emmanuel Duchastenier
 */
public class ClassloaderRefresher {

    /**
     * @param clientZipContent
     * @param contextClassLoader
     * @param modelClass
     * @param fsFolderToPutJars
     * @return the newly created classloader with newly loaded class, if found.
     * @throws java.io.IOException
     * @throws java.net.MalformedURLException
     */
    public ClassLoader loadClientModelInClassloader(final byte[] clientZipContent, final ClassLoader contextClassLoader,
            final String modelClass,
            final File fsFolderToPutJars) throws IOException {
        final Map<String, byte[]> ressources = IOUtils.unzip(clientZipContent);
        final List<URL> urls = new ArrayList<>();
        for (final Entry<String, byte[]> e : ressources.entrySet()) {
            final File file = new File(fsFolderToPutJars, e.getKey());
            if (file.getName().endsWith(".jar")) {
                if (file.getName().contains("model")) {
                    try {
                        contextClassLoader.loadClass(modelClass);
                    } catch (final ClassNotFoundException e1) {
                        FileUtils.writeByteArrayToFile(file, e.getValue());
                        urls.add(file.toURI().toURL());
                    }
                }
                if (file.getName().contains("dao")) {
                    try {
                        contextClassLoader.loadClass(modelClass + "DAOImpl");
                    } catch (final ClassNotFoundException e1) {
                        FileUtils.writeByteArrayToFile(file, e.getValue());
                        urls.add(file.toURI().toURL());
                    }
                }
                if (file.getName().contains("javassist")) {
                    try {
                        contextClassLoader.loadClass("javassist.util.proxy.MethodFilter");
                    } catch (final ClassNotFoundException e1) {
                        FileUtils.writeByteArrayToFile(file, e.getValue());
                        urls.add(file.toURI().toURL());
                    }
                }
            }
        }
        ClassLoader classLoaderWithBDM = contextClassLoader;
        if (!urls.isEmpty()) {
            classLoaderWithBDM = new URLClassLoader(urls.toArray(new URL[0]), contextClassLoader);
        }
        return classLoaderWithBDM;
    }

}


================================================
FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/ProcessDeployer.java
================================================
/**
 * Copyright (C) 2019 Bonitasoft S.A.
 * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation
 * version 2.1 of the License.
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301, USA.
 **/
package org.bonitasoft.engine.command.helper;

import org.bonitasoft.engine.bpm.process.DesignProcessDefinition;
import org.bonitasoft.engine.bpm.process.InvalidProcessDefinitionException;
import org.bonitasoft.engine.bpm.process.ProcessDefinition;
import org.bonitasoft.engine.command.helper.designer.SimpleProcessDesigner;
import org.bonitasoft.engine.exception.BonitaException;

/**
 * Created by Vincent Elcrin
 * Date: 16/12/13
 * Time: 11:40
 */
public abstract class ProcessDeployer {

    ProcessDefinition processDefinition;

    public ProcessDefinition deploy(SimpleProcessDesigner design) throws BonitaException {
        try {
            return processDefinition = deploy(design.done());
        } catch (InvalidProcessDefinitionException e) {
            throw new BonitaException(e);
        }
    }

    public abstract ProcessDefinition deploy(DesignProcessDefinition design) throws BonitaException;

    public void clean() throws BonitaException {
        clean(processDefinition);
    }

    public abstract void clean(ProcessDefinition processDefinition) throws BonitaException;
}


================================================
FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/designer/BoundaryEvent.java
================================================
/**
 * Copyright (C) 2019 Bonitasoft S.A.
 * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation
 * version 2.1 of the License.
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301, USA.
 **/
package org.bonitasoft.engine.command.helper.designer;

import org.bonitasoft.engine.bpm.process.impl.ProcessDefinitionBuilder;
import org.bonitasoft.engine.bpm.process.impl.UserTaskDefinitionBuilder;

/**
 * @author Vincent Elcrin
 */
public class BoundaryEvent {

    private final String name;

    private final Fragment flowsOut;

    private Trigger trigger;

    Transition transition = new Transition();

    public BoundaryEvent(String name, Fragment flowsOut) {
        this.name = name;
        this.flowsOut = flowsOut;
    }

    public void attach(UserTaskDefinitionBuilder task, ProcessDefinitionBuilder builder) {
        trigger.listen(task.addBoundaryEvent(name));
        flowsOut.build(builder);
        transition.bind(name, flowsOut.getName(), builder);
    }

    public BoundaryEvent triggeredBy(Trigger trigger) {
        this.trigger = trigger;
        return this;
    }

}


================================================
FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/designer/Branch.java
================================================
/**
 * Copyright (C) 2019 Bonitasoft S.A.
 * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation
 * version 2.1 of the License.
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301, USA.
 **/
package org.bonitasoft.engine.command.helper.designer;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import org.bonitasoft.engine.bpm.process.impl.ProcessDefinitionBuilder;

/**
 * @author Vincent Elcrin
 */
public class Branch extends Fragment {

    private List<List<Fragment>> sequence = new ArrayList<List<Fragment>>();

    private Fragment origin;

    private String name;

    public Branch start(Fragment origin) {
        this.origin = origin;
        name = origin.getName();
        return this;
    }

    public Branch then(Fragment... targets) {
        assert origin != null : "Branch need to be started by calling start method";
        sequence.add(Arrays.asList(targets));
        name = targets[0].getName();
        return this;
    }

    @Override
    public String getName() {
        assert name != null;
        return name;
    }

    @Override
    public void bind(List<Fragment> sources, ProcessDefinitionBuilder builder) {
        super.bind(sources, builder);
    }

    @Override
    public void bind(String source, Transition transition, ProcessDefinitionBuilder builder) {
        transition.bind(source, origin.getName(), builder);
    }

    @Override
    public void build(ProcessDefinitionBuilder builder) {
        List<Fragment> sources = new ArrayList<Fragment>();
        origin.build(builder);
        sources.add(origin);
        for (List<Fragment> targets : sequence) {
            link(sources, targets, builder);
        }
    }

    private void link(List<Fragment> sources, List<Fragment> targets, ProcessDefinitionBuilder builder) {
        for (Fragment target : targets) {
            target.build(builder);
            target.bind(sources, builder);
        }
        sources.clear();
        sources.addAll(targets);
    }
}


================================================
FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/designer/ConditionalTransition.java
================================================
/**
 * Copyright (C) 2019 Bonitasoft S.A.
 * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation
 * version 2.1 of the License.
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301, USA.
 **/
package org.bonitasoft.engine.command.helper.designer;

import org.bonitasoft.engine.bpm.process.impl.ProcessDefinitionBuilder;
import org.bonitasoft.engine.expression.Expression;

/**
 * Created by vince on 1/28/14.
 */
public class ConditionalTransition extends Transition {

    private Fragment otherwise;

    private Expression expression;

    public ConditionalTransition(Expression expression) {
        this.expression = expression;
    }

    @Override
    public void bind(String source, String target, ProcessDefinitionBuilder builder) {
        builder.addTransition(source, target, expression);

        if (otherwise != null) {
            otherwise.build(builder);
            otherwise.bind(source, new DefaultTransition(), builder);
        }
    }

    public ConditionalTransition otherwise(Fragment otherwise) {
        this.otherwise = otherwise;
        return this;
    }
}


================================================
FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/designer/DefaultTransition.java
================================================
/**
 * Copyright (C) 2019 Bonitasoft S.A.
 * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation
 * version 2.1 of the License.
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301, USA.
 **/
package org.bonitasoft.engine.command.helper.designer;

import org.bonitasoft.engine.bpm.process.impl.ProcessDefinitionBuilder;
import org.bonitasoft.engine.expression.Expression;

public class DefaultTransition extends Transition {

    private ConditionalBranch branch;

    @Override
    public void bind(String source, String target, ProcessDefinitionBuilder builder) {
        builder.addDefaultTransition(source, target);
        if (branch != null) {
            branch.build(source, builder);
        }
    }

    public interface ConditionalBranch {

        void build(String source, ProcessDefinitionBuilder builder);

        DefaultTransition goingTo(Fragment then);
    }

    public ConditionalBranch toMeet(final Expression expression) {
        branch = new ConditionalBranch() {

            private Fragment then;

            public void build(String source, ProcessDefinitionBuilder builder) {
                then.build(builder);
                then.bind(source, new ConditionalTransition(expression), builder);
            }

            public DefaultTransition goingTo(Fragment then) {
                this.then = then;
                return DefaultTransition.this;
            }
        };
        return branch;
    }
}


================================================
FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/designer/EndEvent.java
================================================
/**
 * Copyright (C) 2019 Bonitasoft S.A.
 * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation
 * version 2.1 of the License.
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301, USA.
 **/
package org.bonitasoft.engine.command.helper.designer;

import org.bonitasoft.engine.bpm.process.impl.ProcessDefinitionBuilder;

/**
 * Created by Vincent Elcrin
 * Date: 16/12/13
 * Time: 11:46
 */
public class EndEvent extends FlowNode {

    public EndEvent(String name) {
        super(name);
    }

    @Override
    public void build(ProcessDefinitionBuilder builder) {
        builder.addEndEvent(getName());
    }

}


================================================
FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/designer/FlowNode.java
================================================
/**
 * Copyright (C) 2019 Bonitasoft S.A.
 * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation
 * version 2.1 of the License.
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301, USA.
 **/
package org.bonitasoft.engine.command.helper.designer;

import org.bonitasoft.engine.bpm.process.impl.ProcessDefinitionBuilder;

/**
 * @author Vincent Elcrin
 */
public abstract class FlowNode extends Fragment {

    private String name;

    protected FlowNode(String name) {
        this.name = name;
    }

    @Override
    public void bind(String source, Transition transition, ProcessDefinitionBuilder builder) {
        transition.bind(source, name, builder);
    }

    @Override
    public String getName() {
        return name;
    }
}


================================================
FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/designer/Fragment.java
================================================
/**
 * Copyright (C) 2019 Bonitasoft S.A.
 * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation
 * version 2.1 of the License.
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301, USA.
 **/
package org.bonitasoft.engine.command.helper.designer;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.bonitasoft.engine.bpm.process.impl.ProcessDefinitionBuilder;

/**
 * Created by Vincent Elcrin
 * Date: 16/12/13
 * Time: 14:20
 */
public abstract class Fragment {

    private final Map<String, Transition> transitions = new HashMap<String, Transition>();

    public Fragment when(final String step, final Transition transition) {
        transitions.put(step, transition);
        return this;
    }

    public void bind(final List<Fragment> sources, final ProcessDefinitionBuilder builder) {
        for (final Fragment source : sources) {
            Transition transition = transitions.get(source.getName());
            if (transition == null) {
                transition = new Transition();
            }
            bind(source.getName(), transition, builder);
        }
    }

    public abstract void bind(String source, Transition transition, ProcessDefinitionBuilder builder);

    public abstract void build(ProcessDefinitionBuilder builder);

    public abstract String getName();

}


================================================
FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/designer/Gateway.java
================================================
/**
 * Copyright (C) 2019 Bonitasoft S.A.
 * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation
 * version 2.1 of the License.
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301, USA.
 **/
package org.bonitasoft.engine.command.helper.designer;

import org.bonitasoft.engine.bpm.flownode.GatewayType;
import org.bonitasoft.engine.bpm.process.impl.ProcessDefinitionBuilder;

/**
 * Created by Vincent Elcrin
 * Date: 16/12/13
 * Time: 12:20
 */
public class Gateway extends FlowNode {

    private GatewayType type;

    public Gateway(String name, GatewayType type) {
        super(name);
        this.type = type;
    }

    @Override
    public void build(ProcessDefinitionBuilder builder) {
        builder.addGateway(getName(), type);
    }
}


================================================
FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/designer/Signal.java
================================================
/**
 * Copyright (C) 2019 Bonitasoft S.A.
 * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation
 * version 2.1 of the License.
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301, USA.
 **/
package org.bonitasoft.engine.command.helper.designer;

import org.bonitasoft.engine.bpm.process.impl.BoundaryEventDefinitionBuilder;

/**
 * @author Vincent Elcrin
 */
public class Signal implements Trigger {

    private String name;

    public Signal(String name) {
        this.name = name;
    }

    @Override
    public void listen(BoundaryEventDefinitionBuilder builder) {
        builder.addSignalEventTrigger(name);
    }
}


================================================
FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/designer/SimpleProcessDesigner.java
================================================
/**
 * Copyright (C) 2019 Bonitasoft S.A.
 * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation
 * version 2.1 of the License.
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301, USA.
 **/
package org.bonitasoft.engine.command.helper.designer;

import org.bonitasoft.engine.bpm.process.DesignProcessDefinition;
import org.bonitasoft.engine.bpm.process.InvalidProcessDefinitionException;
import org.bonitasoft.engine.bpm.process.impl.ProcessDefinitionBuilder;

/**
 * Created by Vincent Elcrin
 * Date: 16/12/13
 * Time: 18:38
 */
public class SimpleProcessDesigner {

    private final Branch branch;

    private ProcessDefinitionBuilder builder;

    public SimpleProcessDesigner(ProcessDefinitionBuilder builder) {
        this.builder = builder;
        this.branch = new Branch();
    }

    public SimpleProcessDesigner start() {
        startWith(new StartEvent("start"));
        return this;
    }

    public SimpleProcessDesigner startWith(StartEvent start) {
        branch.start(start);
        return this;
    }

    public SimpleProcessDesigner then(Fragment... targets) {
        branch.then(targets);
        return this;
    }

    public SimpleProcessDesigner end() {
        return then(new EndEvent("end"));
    }

    public DesignProcessDefinition done() throws InvalidProcessDefinitionException {
        branch.build(builder);
        return builder.done();
    }

}


================================================
FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/designer/StartEvent.java
================================================
/**
 * Copyright (C) 2019 Bonitasoft S.A.
 * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation
 * version 2.1 of the License.
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301, USA.
 **/
package org.bonitasoft.engine.command.helper.designer;

import org.bonitasoft.engine.bpm.process.impl.ProcessDefinitionBuilder;

/**
 * Created by Vincent Elcrin
 * Date: 16/12/13
 * Time: 11:45
 */
public class StartEvent extends FlowNode {

    public StartEvent(String name) {
        super(name);
    }

    @Override
    public void build(ProcessDefinitionBuilder builder) {
        builder.addStartEvent(getName());
    }
}


================================================
FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/designer/Transition.java
================================================
/**
 * Copyright (C) 2019 Bonitasoft S.A.
 * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation
 * version 2.1 of the License.
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301, USA.
 **/
package org.bonitasoft.engine.command.helper.designer;

import org.bonitasoft.engine.bpm.process.impl.ProcessDefinitionBuilder;
import org.bonitasoft.engine.expression.Expression;

/**
 * @author Vincent Elcrin
 */
public class Transition {

    public void bind(String source, String target, ProcessDefinitionBuilder builder) {
        builder.addTransition(source, target);
    }

    public static ConditionalTransition meet(Expression expression) {
        return new ConditionalTransition(expression);
    }

    public static DefaultTransition fails() {
        return new DefaultTransition();
    }
}


================================================
FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/designer/Trigger.java
================================================
/**
 * Copyright (C) 2019 Bonitasoft S.A.
 * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation
 * version 2.1 of the License.
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301, USA.
 **/
package org.bonitasoft.engine.command.helper.designer;

import org.bonitasoft.engine.bpm.process.impl.BoundaryEventDefinitionBuilder;

/**
 * @author Vincent Elcrin
 */
public interface Trigger {

    void listen(BoundaryEventDefinitionBuilder builder);
}


================================================
FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/designer/UserTask.java
================================================
/**
 * Copyright (C) 2019 Bonitasoft S.A.
 * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation
 * version 2.1 of the License.
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301, USA.
 **/
package org.bonitasoft.engine.command.helper.designer;

import org.bonitasoft.engine.bpm.process.impl.ProcessDefinitionBuilder;
import org.bonitasoft.engine.bpm.process.impl.UserTaskDefinitionBuilder;

/**
 * Created by Vincent Elcrin
 * Date: 16/12/13
 * Time: 11:43
 */
public class UserTask extends FlowNode {

    private String actor = "actor";

    private BoundaryEvent event;

    public UserTask(String name) {
        super(name);
    }

    @Override
    public void build(ProcessDefinitionBuilder builder) {
        UserTaskDefinitionBuilder task = builder.addUserTask(getName(), actor);
        if (event != null) {
            event.attach(task, builder);
        }
    }

    public UserTask with(BoundaryEvent event) {
        this.event = event;
        return this;
    }
}


================================================
FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/expectation/DocumentExpectation.java
================================================
/**
 * Copyright (C) 2019 Bonitasoft S.A.
 * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation
 * version 2.1 of the License.
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301, USA.
 **/
package org.bonitasoft.engine.command.helper.expectation;

import static org.junit.Assert.assertEquals;

import org.bonitasoft.engine.CommonAPIIT;
import org.bonitasoft.engine.bpm.document.Document;
import org.bonitasoft.engine.bpm.document.DocumentNotFoundException;
import org.bonitasoft.engine.bpm.process.ProcessInstance;

/**
 * @author Elias Ricken de Medeiros
 */
public class DocumentExpectation {

    private CommonAPIIT testCase;

    private ProcessInstance process;

    private String name;

    public DocumentExpectation(CommonAPIIT testCase, ProcessInstance process, String name) {
        this.testCase = testCase;
        this.process = process;
        this.name = name;
    }

    public void toBe(String variable) throws DocumentNotFoundException {
        Document document = testCase.getProcessAPI().getLastDocument(process.getId(), name);
        String storageId = document.getContentStorageId();
        assertEquals(variable, new String(testCase.getProcessAPI().getDocumentContent(storageId)));
    }

}


================================================
FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/expectation/ProcessExpectation.java
================================================
/**
 * Copyright (C) 2019 Bonitasoft S.A.
 * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation
 * version 2.1 of the License.
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301, USA.
 **/
package org.bonitasoft.engine.command.helper.expectation;

import org.bonitasoft.engine.CommonAPIIT;
import org.bonitasoft.engine.bpm.process.ProcessInstance;

/**
 * @author Vincent Elcrin
 */
public class ProcessExpectation {

    private CommonAPIIT testCase;

    private ProcessInstance process;

    public ProcessExpectation(CommonAPIIT testCase, ProcessInstance process) {
        this.testCase = testCase;
        this.process = process;
    }

    public void toFinish() throws Exception {
        testCase.waitForProcessToFinish(process.getId());
    }

}


================================================
FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/expectation/StepExpectation.java
================================================
/**
 * Copyright (C) 2019 Bonitasoft S.A.
 * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation
 * version 2.1 of the License.
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301, USA.
 **/
package org.bonitasoft.engine.command.helper.expectation;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;

import java.util.concurrent.TimeoutException;

import org.bonitasoft.engine.CommonAPIIT;
import org.bonitasoft.engine.bpm.flownode.ArchivedFlowNodeInstance;
import org.bonitasoft.engine.bpm.flownode.ArchivedFlowNodeInstanceSearchDescriptor;
import org.bonitasoft.engine.bpm.process.ProcessInstance;
import org.bonitasoft.engine.exception.SearchException;
import org.bonitasoft.engine.search.SearchOptionsBuilder;
import org.bonitasoft.engine.search.SearchResult;

/**
 * @author Vincent Elcrin
 */
public class StepExpectation {

    private CommonAPIIT testCase;

    private ProcessInstance process;

    private String[] steps;

    public StepExpectation(CommonAPIIT testCase, ProcessInstance process, String... steps) {
        this.testCase = testCase;
        this.process = process;
        this.steps = steps;
    }

    public void toBeReady() throws Exception {
        for (String step : steps) {
            isReady(step);
        }
    }

    public void toNotHaveArchives() throws Exception {
        for (String step : steps) {
            assertEquals(0, getArchives(step, false, null).getCount());
        }
    }

    public void toBeExecuted(int times) throws SearchException {
        for (String step : steps) {
            assertEquals(times, getArchives(step, true, "completed").getCount());
        }
    }

    public void toBeAborted() throws SearchException {
        for (String step : steps) {
            assertEquals(1, getArchives(step, true, "aborted").getCount());
        }
    }

    private void isReady(String step) throws Exception {
        try {
            testCase.waitForFlowNodeInReadyState(process, step, false);
        } catch (TimeoutException e) {
            fail(step + " is expected to be started.");
        }
    }

    private SearchResult<ArchivedFlowNodeInstance> getArchives(String step, boolean terminal, String state)
            throws SearchException {
        SearchOptionsBuilder builder = new SearchOptionsBuilder(0, 0);
        builder.filter(ArchivedFlowNodeInstanceSearchDescriptor.NAME, step);
        builder.filter(ArchivedFlowNodeInstanceSearchDescriptor.ROOT_PROCESS_INSTANCE_ID, process.getId());
        if (terminal) {
            builder.filter(ArchivedFlowNodeInstanceSearchDescriptor.TERMINAL, true);
        }
        if (state != null) {
            builder.filter(ArchivedFlowNodeInstanceSearchDescriptor.STATE_NAME, state);
        }
        return testCase.getProcessAPI().searchArchivedFlowNodeInstances(builder.done());
    }
}


================================================
FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/expectation/TestUtils.java
================================================
/**
 * Copyright (C) 2019 Bonitasoft S.A.
 * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation
 * version 2.1 of the License.
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301, USA.
 **/
package org.bonitasoft.engine.command.helper.expectation;

import org.bonitasoft.engine.CommonAPIIT;
import org.bonitasoft.engine.bpm.flownode.SendEventException;
import org.bonitasoft.engine.bpm.process.ProcessInstance;
import org.bonitasoft.engine.identity.User;

/**
 * Created by Vincent Elcrin
 * Date: 17/12/13
 * Time: 10:46
 */
public class TestUtils {

    private final CommonAPIIT testCase;

    public TestUtils(final CommonAPIIT testCase) {
        this.testCase = testCase;
    }

    public Process wrap(final ProcessInstance process) {
        return new Process(process);
    }

    public class Process {

        private final ProcessInsta
Download .txt
Showing preview only (644K chars total). Download the full file or copy to clipboard to get everything.
gitextract_wsntd3xl/

├── .github/
│   └── workflows/
│       └── build.yml
├── .gitignore
├── LICENSE.txt
├── README.md
├── bonita-engine/
│   └── build.gradle
├── bonita-engine-spring-boot-starter/
│   ├── build.gradle
│   └── src/
│       ├── main/
│       │   ├── java/
│       │   │   └── org/
│       │   │       └── bonitasoft/
│       │   │           └── engine/
│       │   │               └── spring/
│       │   │                   └── autoconfigure/
│       │   │                       ├── BonitaEngineCommonAutoConfiguration.java
│       │   │                       ├── BonitaEngineEventListener.java
│       │   │                       ├── BonitaEngineServerAutoConfiguration.java
│       │   │                       └── properties/
│       │   │                           ├── BonitaDatabasesConfiguration.java
│       │   │                           └── BonitaEngineProperties.java
│       │   └── resources/
│       │       └── META-INF/
│       │           └── spring.factories
│       └── test/
│           └── java/
│               └── org/
│                   └── bonitasoft/
│                       └── engine/
│                           └── spring/
│                               └── autoconfigure/
│                                   ├── BonitaEngineAutoConfigurationTest.java
│                                   ├── BonitaEngineSpringBootStarterIT.java
│                                   └── ClientTestApplication.java
├── bonita-engine-standalone/
│   ├── build.gradle
│   └── src/
│       ├── main/
│       │   ├── java/
│       │   │   └── org/
│       │   │       └── bonitasoft/
│       │   │           └── engine/
│       │   │               ├── BonitaDataSourceInitializer.java
│       │   │               ├── BonitaDatabaseConfiguration.java
│       │   │               ├── BonitaEngine.java
│       │   │               ├── DatabaseUrlParser.java
│       │   │               ├── DatasourceConfiguration.java
│       │   │               ├── DefaultBonitaDatabaseConfigurations.java
│       │   │               ├── MemoryJNDISetup.java
│       │   │               ├── SimpleMemoryContext.java
│       │   │               ├── SimpleMemoryContextFactory.java
│       │   │               ├── SimpleNameParser.java
│       │   │               └── xa/
│       │   │                   ├── XAConnectionIsSameRMOverride.java
│       │   │                   ├── XADataSourceIsSameRMOverride.java
│       │   │                   └── XAResourceIsSameRMOverride.java
│       │   └── resources/
│       │       └── jbossts-properties.xml
│       └── test/
│           └── java/
│               └── org/
│                   └── bonitasoft/
│                       └── engine/
│                           ├── BonitaDataSourceInitializerTest.java
│                           ├── BonitaEngineTest.java
│                           └── DatabaseUrlParserTest.java
├── bonita-integration-tests/
│   ├── benchmarks/
│   │   ├── README.md
│   │   ├── build.gradle
│   │   └── src/
│   │       └── jmh/
│   │           └── java/
│   │               └── org/
│   │                   └── bonitasoft/
│   │                       └── engine/
│   │                           └── benchmarks/
│   │                               ├── PermissionCachingBenchmark.java
│   │                               └── TransactionSynchronizationBenchmark.java
│   ├── bonita-integration-tests-client/
│   │   ├── bonita-client-http.properties
│   │   ├── bonita-client-invalid.properties
│   │   ├── bonita-client-local.properties
│   │   ├── build.gradle
│   │   └── src/
│   │       ├── main/
│   │       │   ├── java/
│   │       │   │   └── org/
│   │       │   │       └── bonitasoft/
│   │       │   │           └── engine/
│   │       │   │               ├── CommonAPIIT.java
│   │       │   │               ├── PrintTestsStatusRule.java
│   │       │   │               ├── TestWithTechnicalUser.java
│   │       │   │               ├── TestWithUser.java
│   │       │   │               ├── business/
│   │       │   │               │   ├── application/
│   │       │   │               │   │   ├── TestWithCustomPage.java
│   │       │   │               │   │   └── TestWithLivingApplication.java
│   │       │   │               │   └── data/
│   │       │   │               │       ├── BusinessDataUpdateConnector.java
│   │       │   │               │       └── ClassloaderRefresher.java
│   │       │   │               ├── command/
│   │       │   │               │   └── helper/
│   │       │   │               │       ├── ProcessDeployer.java
│   │       │   │               │       ├── designer/
│   │       │   │               │       │   ├── BoundaryEvent.java
│   │       │   │               │       │   ├── Branch.java
│   │       │   │               │       │   ├── ConditionalTransition.java
│   │       │   │               │       │   ├── DefaultTransition.java
│   │       │   │               │       │   ├── EndEvent.java
│   │       │   │               │       │   ├── FlowNode.java
│   │       │   │               │       │   ├── Fragment.java
│   │       │   │               │       │   ├── Gateway.java
│   │       │   │               │       │   ├── Signal.java
│   │       │   │               │       │   ├── SimpleProcessDesigner.java
│   │       │   │               │       │   ├── StartEvent.java
│   │       │   │               │       │   ├── Transition.java
│   │       │   │               │       │   ├── Trigger.java
│   │       │   │               │       │   └── UserTask.java
│   │       │   │               │       └── expectation/
│   │       │   │               │           ├── DocumentExpectation.java
│   │       │   │               │           ├── ProcessExpectation.java
│   │       │   │               │           ├── StepExpectation.java
│   │       │   │               │           ├── TestUtils.java
│   │       │   │               │           └── VariableExpectation.java
│   │       │   │               ├── connectors/
│   │       │   │               │   ├── ConnectorExecutionIT.java
│   │       │   │               │   ├── DoNothingConnector.java
│   │       │   │               │   ├── FailingConnector.java
│   │       │   │               │   ├── TestConnector.java
│   │       │   │               │   ├── TestConnector2.java
│   │       │   │               │   ├── TestConnector3.java
│   │       │   │               │   ├── TestConnectorLongToExecute.java
│   │       │   │               │   ├── TestConnectorThatThrowException.java
│   │       │   │               │   ├── TestConnectorWithAPICall.java
│   │       │   │               │   ├── TestConnectorWithConnectedResource.java
│   │       │   │               │   ├── TestConnectorWithModifiedOutput.java
│   │       │   │               │   ├── TestConnectorWithNotSerializableOutput.java
│   │       │   │               │   ├── TestConnectorWithOutput.java
│   │       │   │               │   ├── TestExternalConnector.java
│   │       │   │               │   └── VariableStorage.java
│   │       │   │               ├── event/
│   │       │   │               │   └── AbstractEventIT.java
│   │       │   │               ├── filter/
│   │       │   │               │   └── user/
│   │       │   │               │       ├── GroupUserFilter.java
│   │       │   │               │       ├── TestFilter.java
│   │       │   │               │       ├── TestFilterThatThrowException.java
│   │       │   │               │       ├── TestFilterThatThrowNoClassDef.java
│   │       │   │               │       ├── TestFilterUsingActorName.java
│   │       │   │               │       └── TestFilterWithAutoAssign.java
│   │       │   │               ├── page/
│   │       │   │               │   └── PageAssert.java
│   │       │   │               ├── process/
│   │       │   │               │   ├── Employee.java
│   │       │   │               │   ├── Secretary.java
│   │       │   │               │   └── SetDueDateConnector.java
│   │       │   │               ├── search/
│   │       │   │               │   └── SlowConnector.java
│   │       │   │               └── util/
│   │       │   │                   ├── AssertionsUtils.java
│   │       │   │                   └── FunctionalMatcher.java
│   │       │   └── resources/
│   │       │       ├── custom-0.1.jar.bak
│   │       │       ├── mylibrary-jar.bak
│   │       │       ├── mylibrary2-jar.bak
│   │       │       ├── org/
│   │       │       │   └── bonitasoft/
│   │       │       │       └── engine/
│   │       │       │           ├── business/
│   │       │       │           │   ├── application/
│   │       │       │           │   │   ├── applicationWithUnavailableInfo.xml
│   │       │       │           │   │   └── applications.xml
│   │       │       │           │   └── data/
│   │       │       │           │       ├── BusinessDataUpdateConnector.def
│   │       │       │           │       ├── BusinessDataUpdateConnector.impl
│   │       │       │           │       ├── findByFirstNameAndLastNameNewOrder.json
│   │       │       │           │       ├── findByFirstNameFetchAddresses.json
│   │       │       │           │       ├── getBusinessDataByIdAddress.json
│   │       │       │           │       ├── getBusinessDataByIdEmployee.json
│   │       │       │           │       └── getEmployeeByPhoneNumber.json
│   │       │       │           ├── command/
│   │       │       │           │   ├── Employee.find.2.1.json
│   │       │       │           │   └── web/
│   │       │       │           │       └── profile/
│   │       │       │           │           ├── AllProfiles.xml
│   │       │       │           │           ├── RestoreDefaultProfiles.xml
│   │       │       │           │           └── deleteExistingProfile.xml
│   │       │       │           ├── connectors/
│   │       │       │           │   ├── APIAccessorConnector.impl
│   │       │       │           │   ├── TestConnector.def
│   │       │       │           │   ├── TestConnector.impl
│   │       │       │           │   ├── TestConnector2.impl
│   │       │       │           │   ├── TestConnector3.def
│   │       │       │           │   ├── TestConnector3.impl
│   │       │       │           │   ├── TestConnectorInJar.impl
│   │       │       │           │   ├── TestConnectorLongToExecute.impl
│   │       │       │           │   ├── TestConnectorThatThrowException.impl
│   │       │       │           │   ├── TestConnectorWithAPICall.impl
│   │       │       │           │   ├── TestConnectorWithConnectedResource.def
│   │       │       │           │   ├── TestConnectorWithConnectedResource.impl
│   │       │       │           │   ├── TestConnectorWithCustomType.impl
│   │       │       │           │   ├── TestConnectorWithModifiedOutput.impl
│   │       │       │           │   ├── TestConnectorWithNotSerializableOutput.def
│   │       │       │           │   ├── TestConnectorWithNotSerializableOutput.impl
│   │       │       │           │   ├── TestConnectorWithOutput.def
│   │       │       │           │   ├── TestConnectorWithOutput.impl
│   │       │       │           │   ├── TestExternalConnector.impl
│   │       │       │           │   ├── UnknownClassConnector.impl
│   │       │       │           │   ├── connector-in-jar.jar.bak
│   │       │       │           │   └── connector-with-custom-type.bak
│   │       │       │           ├── filter/
│   │       │       │           │   └── user/
│   │       │       │           │       ├── GroupUserFilter.impl
│   │       │       │           │       ├── TestFilter.def
│   │       │       │           │       ├── TestFilter.impl
│   │       │       │           │       ├── TestFilterThatThrowException.impl
│   │       │       │           │       ├── TestFilterThatThrowNoClassDef.impl
│   │       │       │           │       ├── TestFilterUsingActorName.impl
│   │       │       │           │       ├── TestFilterWithAutoAssign.impl
│   │       │       │           │       └── TestFilterWithClassNotFound.impl
│   │       │       │           ├── identity/
│   │       │       │           │   ├── ACME.xml
│   │       │       │           │   ├── OrganizationWithSpecialCharacters.xml
│   │       │       │           │   ├── complexOrganization.xml
│   │       │       │           │   ├── complexOrganizationWithBadGroup.xml
│   │       │       │           │   ├── hugeOrganization.xml
│   │       │       │           │   ├── mixOrganization.xml
│   │       │       │           │   ├── organizationFailOnDuplicates.xml
│   │       │       │           │   ├── organizationWithCycle.xml
│   │       │       │           │   ├── simpleOrganization.xml
│   │       │       │           │   ├── simpleOrganizationDuplicates1.xml
│   │       │       │           │   ├── simpleOrganizationDuplicates2.xml
│   │       │       │           │   └── simpleOrganizationNoDuplicates.xml
│   │       │       │           └── process/
│   │       │       │               └── actor/
│   │       │       │                   ├── actorMappingWithException.xml
│   │       │       │                   ├── complexActorMapping.xml
│   │       │       │                   ├── complexActorMapping2.xml
│   │       │       │                   ├── complexActorMappingWithUnkownGroup.xml
│   │       │       │                   └── simpleActorMapping.xml
│   │       │       ├── org.bonitasoft.complextypes.jar-bak
│   │       │       ├── org.bonitasoft.dfgdfg.bak
│   │       │       └── org.bonitasoft.plop.bak
│   │       └── test/
│   │           ├── java/
│   │           │   └── org/
│   │           │       └── bonitasoft/
│   │           │           └── engine/
│   │           │               ├── MultiThreadCallsIT.java
│   │           │               ├── RemoteEngineIT.java
│   │           │               ├── StringIndexIT.java
│   │           │               ├── activity/
│   │           │               │   ├── CallActivityIT.java
│   │           │               │   ├── ContractIT.java
│   │           │               │   ├── GetPossibleUsersOfPendingHumanTaskIT.java
│   │           │               │   ├── HumanTasksIT.java
│   │           │               │   ├── LoopIT.java
│   │           │               │   ├── ManualTasksIT.java
│   │           │               │   ├── MultiInstanceIT.java
│   │           │               │   ├── PendingTasksIT.java
│   │           │               │   ├── ReceiveTasksIT.java
│   │           │               │   ├── SendTaskIT.java
│   │           │               │   ├── UserTaskAssignationIT.java
│   │           │               │   └── work/
│   │           │               │       └── RetryWorkIT.java
│   │           │               ├── application/
│   │           │               │   └── ApplicationIT.java
│   │           │               ├── business/
│   │           │               │   ├── application/
│   │           │               │   │   ├── LivingApplicationIT.java
│   │           │               │   │   ├── LivingApplicationImportExportIT.java
│   │           │               │   │   ├── LivingApplicationMenuIT.java
│   │           │               │   │   └── LivingApplicationPageIT.java
│   │           │               │   └── data/
│   │           │               │       ├── BDMPostgreSQLTextFieldIT.java
│   │           │               │       ├── BDMUpdateIT.java
│   │           │               │       └── BDRepositoryIT.java
│   │           │               ├── client/
│   │           │               │   └── BonitaClientXMLTest.java
│   │           │               ├── command/
│   │           │               │   ├── AdvancedStartProcessCommandIT.java
│   │           │               │   ├── CommandIT.java
│   │           │               │   ├── ExecuteBDMQueryCommandIT.java
│   │           │               │   ├── ExecutionExceptionCommand.java
│   │           │               │   ├── IntegerCommand.java
│   │           │               │   ├── MultipleStartPointsProcessCommandIT.java
│   │           │               │   ├── NPECommand.java
│   │           │               │   ├── ParameterizationExceptionCommand.java
│   │           │               │   └── helper/
│   │           │               │       └── designer/
│   │           │               │           ├── BranchTest.java
│   │           │               │           ├── DesignerTestUtils.java
│   │           │               │           └── SimpleProcessDesignerTest.java
│   │           │               ├── connectors/
│   │           │               │   └── RemoteConnectorExecutionIT.java
│   │           │               ├── event/
│   │           │               │   ├── AbstractWaitingEventIT.java
│   │           │               │   ├── EndEventIT.java
│   │           │               │   ├── ErrorBoundaryEventIT.java
│   │           │               │   ├── ErrorEventSubProcessIT.java
│   │           │               │   ├── EventTriggerIT.java
│   │           │               │   ├── InterruptingTimerBoundaryEventIT.java
│   │           │               │   ├── MessageBoundaryEventIT.java
│   │           │               │   ├── MessageEventIT.java
│   │           │               │   ├── MessageEventSubProcessIT.java
│   │           │               │   ├── NonInterruptingTimerBoundaryEventIT.java
│   │           │               │   ├── SignalBoundaryEventIT.java
│   │           │               │   ├── SignalEventIT.java
│   │           │               │   ├── SignalEventSubProcessIT.java
│   │           │               │   ├── StartEventIT.java
│   │           │               │   ├── TimerBoundaryEventIT.java
│   │           │               │   ├── TimerEventIT.java
│   │           │               │   └── TimerEventSubProcessIT.java
│   │           │               ├── filter/
│   │           │               │   └── user/
│   │           │               │       └── UserFilterIT.java
│   │           │               ├── form/
│   │           │               │   └── FormMappingIT.java
│   │           │               ├── identity/
│   │           │               │   ├── CustomUserInfoIT.java
│   │           │               │   ├── GroupIT.java
│   │           │               │   ├── MembershipIT.java
│   │           │               │   ├── OrganizationIT.java
│   │           │               │   ├── RoleIT.java
│   │           │               │   └── UserIT.java
│   │           │               ├── login/
│   │           │               │   └── PlatformLoginAPIIT.java
│   │           │               ├── mdc/
│   │           │               │   ├── APICallLogIT.java
│   │           │               │   ├── ConnectorExecutionLogIT.java
│   │           │               │   ├── LogITUtil.java
│   │           │               │   └── ProcessExecutionLogIT.java
│   │           │               ├── operation/
│   │           │               │   └── OperationIT.java
│   │           │               ├── page/
│   │           │               │   └── PageAPIIT.java
│   │           │               ├── platform/
│   │           │               │   ├── PlatformIT.java
│   │           │               │   ├── PlatformLoginIT.java
│   │           │               │   └── command/
│   │           │               │       └── PlatformCommandIT.java
│   │           │               ├── process/
│   │           │               │   ├── EvaluateExpressionIT.java
│   │           │               │   ├── FlowPatternsIT.java
│   │           │               │   ├── GatewayExecutionIT.java
│   │           │               │   ├── GetProcessDefinitionIT.java
│   │           │               │   ├── ProcessCategoryIT.java
│   │           │               │   ├── ProcessDeletionIT.java
│   │           │               │   ├── ProcessDeploymentIT.java
│   │           │               │   ├── ProcessDescriptionIT.java
│   │           │               │   ├── ProcessExecutionIT.java
│   │           │               │   ├── ProcessManagementIT.java
│   │           │               │   ├── ProcessParameterIT.java
│   │           │               │   ├── ProcessResolutionIT.java
│   │           │               │   ├── ProcessWithExpressionIT.java
│   │           │               │   ├── StartProcessWithOperationsIT.java
│   │           │               │   ├── actor/
│   │           │               │   │   ├── ExportActorMappingIT.java
│   │           │               │   │   ├── ImportActorMappingIT.java
│   │           │               │   │   └── ProcessActorIT.java
│   │           │               │   ├── comment/
│   │           │               │   │   └── CommentIT.java
│   │           │               │   ├── data/
│   │           │               │   │   ├── ActivityDataDefinitionIT.java
│   │           │               │   │   ├── ActivityDataInstanceIT.java
│   │           │               │   │   ├── ProcessDataDefinitionIT.java
│   │           │               │   │   └── ProcessDataInstanceIT.java
│   │           │               │   ├── document/
│   │           │               │   │   └── DocumentIT.java
│   │           │               │   └── instance/
│   │           │               │       ├── AbortProcessInstanceIT.java
│   │           │               │       ├── AbstractProcessInstanceIT.java
│   │           │               │       ├── CancelProcessInstanceIT.java
│   │           │               │       ├── InvolvedInProcessInstanceIT.java
│   │           │               │       └── ProcessInstanceIT.java
│   │           │               ├── profile/
│   │           │               │   ├── AbstractProfileIT.java
│   │           │               │   ├── ProfileCommunityIT.java
│   │           │               │   ├── ProfileIT.java
│   │           │               │   └── ProfileMemberIT.java
│   │           │               ├── search/
│   │           │               │   ├── SearchActivityInstanceIT.java
│   │           │               │   ├── SearchCommentIT.java
│   │           │               │   ├── SearchProcessDefinitionIT.java
│   │           │               │   ├── SearchProcessDeploymentInfosCanBeStartedByIT.java
│   │           │               │   ├── SearchProcessDeploymentInfosCanBeStartedByUsersManagedByIT.java
│   │           │               │   ├── SearchProcessDeploymentInfosWithAssignedOrPendingHumanTasksForIT.java
│   │           │               │   ├── SearchProcessDeploymentInfosWithAssignedOrPendingHumanTasksIT.java
│   │           │               │   ├── SearchProcessDeploymentInfosWithAssignedOrPendingHumanTasksSupervisedByIT.java
│   │           │               │   ├── SearchProcessInstanceIT.java
│   │           │               │   └── SearchUncategorizedProcessDeploymentInfosCanBeStartedByIT.java
│   │           │               ├── supervisor/
│   │           │               │   ├── ProcessSupervisedIT.java
│   │           │               │   └── SupervisorIT.java
│   │           │               └── tenant/
│   │           │                   └── TenantMaintenanceIT.java
│   │           └── resources/
│   │               ├── application-to-test-permissions.xml
│   │               ├── logback-test.xml
│   │               └── org/
│   │                   └── bonitasoft/
│   │                       └── engine/
│   │                           ├── application/
│   │                           │   ├── superAdminApp.xml
│   │                           │   └── testApp.xml
│   │                           └── connectors/
│   │                               ├── TestConnector.xml
│   │                               └── TestConnector_Implementation.xml
│   ├── bonita-integration-tests-local/
│   │   ├── build.gradle
│   │   └── src/
│   │       ├── main/
│   │       │   ├── java/
│   │       │   │   └── org/
│   │       │   │       └── bonitasoft/
│   │       │   │           └── engine/
│   │       │   │               ├── bpm/
│   │       │   │               │   └── CommonBPMServicesTest.java
│   │       │   │               └── test/
│   │       │   │                   └── util/
│   │       │   │                       └── TestUtil.java
│   │       │   └── resources/
│   │       │       └── logback-test.xml
│   │       └── test/
│   │           ├── java/
│   │           │   └── org/
│   │           │       └── bonitasoft/
│   │           │           └── engine/
│   │           │               ├── CallableWithException.java
│   │           │               ├── DeleteEventTriggerInstanceIT.java
│   │           │               ├── MockQueriableLogSessionProviderImpl.java
│   │           │               ├── MockQueriableLoggerStrategy.java
│   │           │               ├── PageAPILocalIT.java
│   │           │               ├── RunnableWithException.java
│   │           │               ├── SQLUtils.java
│   │           │               ├── application/
│   │           │               │   └── installer/
│   │           │               │       ├── ApplicationInstallerIT.java
│   │           │               │       └── ApplicationInstallerUpdateIT.java
│   │           │               ├── archive/
│   │           │               │   ├── ArchiveServiceIT.java
│   │           │               │   └── model/
│   │           │               │       ├── TestLogBuilder.java
│   │           │               │       └── TestLogBuilderFactory.java
│   │           │               ├── authentication/
│   │           │               │   └── AuthenticationServiceIT.java
│   │           │               ├── bpm/
│   │           │               │   ├── ActorMappingServiceIT.java
│   │           │               │   ├── CategoryServiceIT.java
│   │           │               │   ├── DocumentServiceIT.java
│   │           │               │   ├── EventInstanceRepositoryIT.java
│   │           │               │   ├── GatewayExecutionLocalIT.java
│   │           │               │   ├── GatewayInstanceServiceIT.java
│   │           │               │   ├── NodeConfigurationIT.java
│   │           │               │   ├── OperationServiceIT.java
│   │           │               │   ├── ProcessDefinitionServiceIT.java
│   │           │               │   ├── ProcessInstanceServiceIT.java
│   │           │               │   ├── RecoveryMechanismIT.java
│   │           │               │   ├── SupervisorServiceIT.java
│   │           │               │   ├── connector/
│   │           │               │   │   ├── ConnectorExecutionsLocalIT.java
│   │           │               │   │   └── ConnectorInstanceServiceIT.java
│   │           │               │   ├── event/
│   │           │               │   │   ├── EventInstanceServiceIT.java
│   │           │               │   │   ├── LocalInterruptingTimerBoundaryEventIT.java
│   │           │               │   │   └── LocalTimerEventIT.java
│   │           │               │   ├── failure/
│   │           │               │   │   ├── FlowNodeFailureIT.java
│   │           │               │   │   └── ProcessInstanceFailureIT.java
│   │           │               │   ├── flownode/
│   │           │               │   │   └── FlowNodeInstanceServiceIT.java
│   │           │               │   └── process/
│   │           │               │       ├── AddCommentConnector.java
│   │           │               │       └── DeleteProcessInstancesIT.java
│   │           │               ├── business/
│   │           │               │   ├── application/
│   │           │               │   │   └── importer/
│   │           │               │   │       └── ApplicationImporterIT.java
│   │           │               │   └── data/
│   │           │               │       ├── BDRepositoryLocalIT.java
│   │           │               │       ├── DataRetentionBdmTrackingIT.java
│   │           │               │       └── TransactionTimeoutEntityManagerIT.java
│   │           │               ├── cache/
│   │           │               │   └── ehcache/
│   │           │               │       └── CacheConfigurationIT.java
│   │           │               ├── classloader/
│   │           │               │   ├── ClassLoaderIT.java
│   │           │               │   ├── ClassLoaderServiceIT.java
│   │           │               │   ├── GlobalClass1.java
│   │           │               │   ├── GlobalClass2.java
│   │           │               │   ├── GlobalClass3.java
│   │           │               │   ├── LocalClass1.java
│   │           │               │   ├── LocalClass2.java
│   │           │               │   ├── LocalClass3.java
│   │           │               │   ├── LocalClass4.java
│   │           │               │   ├── OnlyInPathClass1.java
│   │           │               │   └── SharedClass1.java
│   │           │               ├── command/
│   │           │               │   └── CommandServiceIT.java
│   │           │               ├── core/
│   │           │               │   └── form/
│   │           │               │       └── impl/
│   │           │               │           ├── FormMappingServiceIT.java
│   │           │               │           └── custom/
│   │           │               │               ├── CustomAuthorizationRuleMappingImpl.java
│   │           │               │               └── CustomIsProcessInitiatorRule.java
│   │           │               ├── data/
│   │           │               │   ├── instance/
│   │           │               │   │   ├── DataInstanceIntegrationLocalIT.java
│   │           │               │   │   ├── DataInstanceServiceIT.java
│   │           │               │   │   ├── LightEmployee.java
│   │           │               │   │   └── TransientDataInstanceServiceIT.java
│   │           │               │   └── model/
│   │           │               │       ├── Address.java
│   │           │               │       ├── Employee.java
│   │           │               │       └── LightEmployee.java
│   │           │               ├── dependency/
│   │           │               │   └── DependencyServiceIT.java
│   │           │               ├── expression/
│   │           │               │   └── ExpressionServiceIT.java
│   │           │               ├── identity/
│   │           │               │   └── IdentityServiceIT.java
│   │           │               ├── job/
│   │           │               │   ├── AddJobCommand.java
│   │           │               │   ├── JobExecutionIT.java
│   │           │               │   └── ThrowsExceptionJob.java
│   │           │               ├── login/
│   │           │               │   └── LoginAPIIT.java
│   │           │               ├── page/
│   │           │               │   └── PageMappingServiceIT.java
│   │           │               ├── persistence/
│   │           │               │   └── PersistenceIT.java
│   │           │               ├── platform/
│   │           │               │   ├── auth/
│   │           │               │   │   └── PlatformAuthenticationServiceIT.java
│   │           │               │   ├── command/
│   │           │               │   │   └── PlatformCommandServiceIT.java
│   │           │               │   └── login/
│   │           │               │       └── PlatformLoginServiceIT.java
│   │           │               ├── profile/
│   │           │               │   └── ProfileServiceIT.java
│   │           │               ├── recorder/
│   │           │               │   └── RecorderIT.java
│   │           │               ├── resources/
│   │           │               │   └── TenantResourcesServiceIT.java
│   │           │               ├── scheduler/
│   │           │               │   ├── impl/
│   │           │               │   │   ├── JobThatMayThrowErrorOrJobException.java
│   │           │               │   │   ├── SchedulerServiceIT.java
│   │           │               │   │   └── WaitForIncrementJobToHaveValue.java
│   │           │               │   ├── job/
│   │           │               │   │   ├── DoNothingJob.java
│   │           │               │   │   ├── GroupJob.java
│   │           │               │   │   ├── IncrementItselfJob.java
│   │           │               │   │   ├── IncrementVariableJob.java
│   │           │               │   │   ├── JobSemaphore.java
│   │           │               │   │   ├── ReleaseWaitersJob.java
│   │           │               │   │   ├── ThrowsExceptionJob.java
│   │           │               │   │   ├── UpdateVariable.java
│   │           │               │   │   └── VariableStorage.java
│   │           │               │   └── trigger/
│   │           │               │       └── UnixCronTriggerForTest.java
│   │           │               ├── session/
│   │           │               │   ├── PlatformSessionServiceIT.java
│   │           │               │   └── SessionServiceIT.java
│   │           │               ├── tenant/
│   │           │               │   └── TenantMaintenanceLocalIT.java
│   │           │               ├── test/
│   │           │               │   ├── APIMethodLocalIT.java
│   │           │               │   ├── BPMLocalIT.java
│   │           │               │   ├── BlockingConnector.java
│   │           │               │   ├── CommonAPILocalIT.java
│   │           │               │   ├── PermissionAPIIT.java
│   │           │               │   ├── ProcessArchiveIT.java
│   │           │               │   ├── ProcessWithExpressionLocalIT.java
│   │           │               │   └── TestHandler.java
│   │           │               └── work/
│   │           │                   └── WorkServiceIT.java
│   │           └── resources/
│   │               ├── applications-importer/
│   │               │   ├── mixedLegacyAndApplicationLinks.xml
│   │               │   ├── multipleApplicationLinks.xml
│   │               │   └── oneApplicationLink.xml
│   │               ├── org/
│   │               │   └── bonitasoft/
│   │               │       └── engine/
│   │               │           └── classloader/
│   │               │               ├── NotInPathGlobal.jar
│   │               │               ├── NotInPathLocal.jar
│   │               │               ├── NotInPathShared.jar
│   │               │               └── resource.txt
│   │               └── simple-app-1.0.0-SNAPSHOT-local.bconf
│   ├── bonita-integration-tests-web/
│   │   ├── build.gradle
│   │   └── src/
│   │       ├── main/
│   │       │   ├── java/
│   │       │   │   └── org/
│   │       │   │       └── bonitasoft/
│   │       │   │           ├── test/
│   │       │   │           │   └── toolkit/
│   │       │   │           │       ├── AbstractJUnitTest.java
│   │       │   │           │       ├── bpm/
│   │       │   │           │       │   ├── AbstractManualTask.java
│   │       │   │           │       │   ├── ProcessVariable.java
│   │       │   │           │       │   ├── TestActor.java
│   │       │   │           │       │   ├── TestCase.java
│   │       │   │           │       │   ├── TestCaseFactory.java
│   │       │   │           │       │   ├── TestCategory.java
│   │       │   │           │       │   ├── TestCategoryFactory.java
│   │       │   │           │       │   ├── TestHumanTask.java
│   │       │   │           │       │   ├── TestProcess.java
│   │       │   │           │       │   ├── TestProcessFactory.java
│   │       │   │           │       │   └── process/
│   │       │   │           │       │       ├── TestActorMemberFactory.java
│   │       │   │           │       │       ├── TestProcessConnector.java
│   │       │   │           │       │       └── TestProcessConnectorFactory.java
│   │       │   │           │       ├── exception/
│   │       │   │           │       │   ├── NextActivityIsNotAllowedStateException.java
│   │       │   │           │       │   ├── NoActivityLeftException.java
│   │       │   │           │       │   └── TestToolkitException.java
│   │       │   │           │       ├── organization/
│   │       │   │           │       │   ├── AdminUser.java
│   │       │   │           │       │   ├── IdentityAccessor.java
│   │       │   │           │       │   ├── TestGroup.java
│   │       │   │           │       │   ├── TestGroupFactory.java
│   │       │   │           │       │   ├── TestMembership.java
│   │       │   │           │       │   ├── TestMembershipFactory.java
│   │       │   │           │       │   ├── TestRole.java
│   │       │   │           │       │   ├── TestRoleFactory.java
│   │       │   │           │       │   ├── TestToolkitCtx.java
│   │       │   │           │       │   ├── TestUser.java
│   │       │   │           │       │   └── TestUserFactory.java
│   │       │   │           │       └── server/
│   │       │   │           │           ├── MockHttpServletRequest.java
│   │       │   │           │           ├── MockHttpServletResponse.java
│   │       │   │           │           └── MockHttpSession.java
│   │       │   │           └── web/
│   │       │   │               ├── rest/
│   │       │   │               │   └── server/
│   │       │   │               │       └── api/
│   │       │   │               │           └── page/
│   │       │   │               │               └── builder/
│   │       │   │               │                   └── PageItemBuilder.java
│   │       │   │               └── test/
│   │       │   │                   ├── AbstractConsoleTest.java
│   │       │   │                   └── AbstractJUnitWebTest.java
│   │       │   └── resources/
│   │       │       ├── logback.xml
│   │       │       └── org/
│   │       │           └── bonitasoft/
│   │       │               └── test/
│   │       │                   └── toolkit/
│   │       │                       └── connector/
│   │       │                           ├── TestConnector.impl
│   │       │                           └── TestConnector.java
│   │       └── test/
│   │           ├── java/
│   │           │   └── org/
│   │           │       └── bonitasoft/
│   │           │           ├── console/
│   │           │           │   └── common/
│   │           │           │       └── server/
│   │           │           │           ├── auth/
│   │           │           │           │   └── impl/
│   │           │           │           │       └── standard/
│   │           │           │           │           └── StandardAuthenticationManagerImplIT.java
│   │           │           │           └── filter/
│   │           │           │               └── PathTraversalProtectionIT.java
│   │           │           └── web/
│   │           │               └── rest/
│   │           │                   └── server/
│   │           │                       ├── WaitUntil.java
│   │           │                       ├── api/
│   │           │                       │   ├── application/
│   │           │                       │   │   └── APIApplicationIT.java
│   │           │                       │   ├── bpm/
│   │           │                       │   │   ├── cases/
│   │           │                       │   │   │   ├── APIArchivedCaseIT.java
│   │           │                       │   │   │   ├── APIArchivedCommentIT.java
│   │           │                       │   │   │   ├── APICaseDocumentAnotherIT.java
│   │           │                       │   │   │   ├── APICaseDocumentIT.java
│   │           │                       │   │   │   ├── APICaseIT.java
│   │           │                       │   │   │   ├── APICaseVariableIT.java
│   │           │                       │   │   │   └── APICommentIT.java
│   │           │                       │   │   ├── flownode/
│   │           │                       │   │   │   ├── APIActivityIT.java
│   │           │                       │   │   │   ├── APIHumanTaskIT.java
│   │           │                       │   │   │   ├── APITaskIT.java
│   │           │                       │   │   │   └── archive/
│   │           │                       │   │   │       ├── APIArchivedActivityIT.java
│   │           │                       │   │   │       └── APIArchivedHumanTaskIT.java
│   │           │                       │   │   └── process/
│   │           │                       │   │       ├── APIActorIntegrationIT.java
│   │           │                       │   │       ├── APIActorMemberIT.java
│   │           │                       │   │       ├── APICategoryIT.java
│   │           │                       │   │       ├── APIProcessCategoryIT.java
│   │           │                       │   │       ├── APIProcessConnectorDependencyIT.java
│   │           │                       │   │       ├── APIProcessConnectorIT.java
│   │           │                       │   │       ├── APIProcessIT.java
│   │           │                       │   │       └── APIProcessResolutionProblemIT.java
│   │           │                       │   ├── organization/
│   │           │                       │   │   ├── APIGroupIT.java
│   │           │                       │   │   ├── APIMembershipIT.java
│   │           │                       │   │   ├── APIPersonalContactDataIT.java
│   │           │                       │   │   ├── APIProfessionalContactDataIT.java
│   │           │                       │   │   ├── APIRoleIT.java
│   │           │                       │   │   ├── APIUserAnotherIT.java
│   │           │                       │   │   └── APIUserIT.java
│   │           │                       │   └── page/
│   │           │                       │       └── APIPageIT.java
│   │           │                       ├── datastore/
│   │           │                       │   └── bpm/
│   │           │                       │       ├── CommentDatastoreIntegrationIT.java
│   │           │                       │       ├── cases/
│   │           │                       │       │   ├── ArchivedCaseDatastoreIT.java
│   │           │                       │       │   └── CaseDatastoreIT.java
│   │           │                       │       └── flownode/
│   │           │                       │           └── HumanTaskDatastoreIT.java
│   │           │                       └── engineclient/
│   │           │                           ├── CaseEngineClientIT.java
│   │           │                           ├── HumanTaskEngineClientIT.java
│   │           │                           └── ProcessEngineClientIT.java
│   │           └── resources/
│   │               └── appLinkDescriptor.xml
│   ├── bonita-query-tests/
│   │   ├── build.gradle
│   │   └── src/
│   │       └── test/
│   │           ├── java/
│   │           │   └── org/
│   │           │       └── bonitasoft/
│   │           │           └── engine/
│   │           │               ├── application/
│   │           │               │   └── ApplicationQueriesTest.java
│   │           │               ├── core/
│   │           │               │   ├── contract/
│   │           │               │   │   └── data/
│   │           │               │   │       └── ContractDataTest.java
│   │           │               │   ├── form/
│   │           │               │   │   └── FormMappingTest.java
│   │           │               │   └── process/
│   │           │               │       └── instance/
│   │           │               │           └── model/
│   │           │               │               ├── ActorMappingTest.java
│   │           │               │               ├── ArchiveFlowNodeInstanceTest.java
│   │           │               │               ├── ArchiveProcessInstanceQueriesTest.java
│   │           │               │               ├── BPMEventQueriesTest.java
│   │           │               │               ├── CommentsTest.java
│   │           │               │               ├── ConnectorInstanceQueriesTest.java
│   │           │               │               ├── CustomUserInfoQueriesTest.java
│   │           │               │               ├── EventTriggerInstanceQueriesTest.java
│   │           │               │               ├── FlowNodeInstanceTest.java
│   │           │               │               ├── ProcessDefinitionQueriesTest.java
│   │           │               │               ├── ProcessDeploymentInfoQueriesTest.java
│   │           │               │               ├── ProcessInstanceQueriesTest.java
│   │           │               │               ├── RoleTest.java
│   │           │               │               ├── SADataInstanceQueriesTest.java
│   │           │               │               ├── SupervisorQueriesTest.java
│   │           │               │               ├── UserMembershipTest.java
│   │           │               │               └── UserTest.java
│   │           │               ├── document/
│   │           │               │   └── DocumentQueryTest.java
│   │           │               ├── page/
│   │           │               │   └── PageQueriesTest.java
│   │           │               ├── parameter/
│   │           │               │   └── ParameterTest.java
│   │           │               ├── platform/
│   │           │               │   ├── command/
│   │           │               │   │   └── model/
│   │           │               │   │       └── PlatformCommandTest.java
│   │           │               │   └── model/
│   │           │               │       └── impl/
│   │           │               │           └── PlatformTest.java
│   │           │               ├── profile/
│   │           │               │   └── ProfilesTest.java
│   │           │               ├── queriablelogger/
│   │           │               │   └── model/
│   │           │               │       └── QueriableLogTest.java
│   │           │               ├── resources/
│   │           │               │   ├── DependencyServiceQueriesTest.java
│   │           │               │   ├── ProcessResourceServiceQueriesTest.java
│   │           │               │   └── TenantResourceServiceQueriesTest.java
│   │           │               ├── scheduler/
│   │           │               │   └── SchedulerQueryTest.java
│   │           │               └── test/
│   │           │                   └── persistence/
│   │           │                       ├── TestLocalSessionFactoryBuilder.java
│   │           │                       ├── builder/
│   │           │                       │   ├── ActivityInstanceBuilder.java
│   │           │                       │   ├── ActorBuilder.java
│   │           │                       │   ├── ActorMemberBuilder.java
│   │           │                       │   ├── ApplicationBuilder.java
│   │           │                       │   ├── ApplicationMenuBuilder.java
│   │           │                       │   ├── ApplicationPageBuilder.java
│   │           │                       │   ├── BARResourceBuilder.java
│   │           │                       │   ├── BoundaryInstanceBuilder.java
│   │           │                       │   ├── CallActivityInstanceBuilder.java
│   │           │                       │   ├── ConnectorInstanceBuilder.java
│   │           │                       │   ├── CustomUserInfoDefinitionBuilder.java
│   │           │                       │   ├── CustomUserInfoValueBuilder.java
│   │           │                       │   ├── FlowNodeInstanceBuilder.java
│   │           │                       │   ├── GatewayInstanceBuilder.java
│   │           │                       │   ├── GroupBuilder.java
│   │           │                       │   ├── JobDescriptorBuilder.java
│   │           │                       │   ├── JobLogBuilder.java
│   │           │                       │   ├── LoopActivityInstanceBuilder.java
│   │           │                       │   ├── MessageInstanceBuilder.java
│   │           │                       │   ├── PageBuilder.java
│   │           │                       │   ├── PendingActivityMappingBuilder.java
│   │           │                       │   ├── PersistentObjectBuilder.java
│   │           │                       │   ├── ProcessInstanceBuilder.java
│   │           │                       │   ├── ProfileBuilder.java
│   │           │                       │   ├── ProfileMemberBuilder.java
│   │           │                       │   ├── RoleBuilder.java
│   │           │                       │   ├── SupervisorBuilder.java
│   │           │                       │   ├── TenantResourceBuilder.java
│   │           │                       │   ├── UserBuilder.java
│   │           │                       │   ├── UserMembershipBuilder.java
│   │           │                       │   ├── UserTaskInstanceBuilder.java
│   │           │                       │   ├── WaitingMessageEventBuilder.java
│   │           │                       │   └── archive/
│   │           │                       │       ├── ArchivedFlowNodeInstanceBuilder.java
│   │           │                       │       ├── ArchivedPersistentObjectBuilder.java
│   │           │                       │       └── ArchivedUserTaskInstanceBuilder.java
│   │           │                       ├── jdbc/
│   │           │                       │   └── JdbcRowMapper.java
│   │           │                       └── repository/
│   │           │                           ├── ApplicationRepository.java
│   │           │                           ├── BPMEventRepository.java
│   │           │                           ├── CommentRepository.java
│   │           │                           ├── ConnectorInstanceRepository.java
│   │           │                           ├── ContractDataRepository.java
│   │           │                           ├── CustomUserInfoRepository.java
│   │           │                           ├── DependencyRepository.java
│   │           │                           ├── DocumentRepository.java
│   │           │                           ├── FlowNodeInstanceRepository.java
│   │           │                           ├── JobRepository.java
│   │           │                           ├── PageRepository.java
│   │           │                           ├── PlatformRepository.java
│   │           │                           ├── ProcessDeploymentInfoRepository.java
│   │           │                           ├── ProcessInstanceRepository.java
│   │           │                           ├── ProcessResourceRepository.java
│   │           │                           ├── ProfileRepository.java
│   │           │                           ├── RoleRepository.java
│   │           │                           ├── SADataInstanceRepository.java
│   │           │                           ├── SupervisorRepository.java
│   │           │                           ├── TenantResourceRepository.java
│   │           │                           ├── TestRepository.java
│   │           │                           ├── UserMembershipRepository.java
│   │           │                           └── UserRepository.java
│   │           └── resources/
│   │               ├── datasource/
│   │               │   ├── datasource-dependency-h2.xml
│   │               │   └── datasource-dependency-postgres.xml
│   │               ├── logback-test.xml
│   │               └── testContext.xml
│   └── bonita-test-utils/
│       ├── build.gradle
│       └── src/
│           └── main/
│               ├── java/
│               │   └── org/
│               │       └── bonitasoft/
│               │           └── engine/
│               │               ├── connectors/
│               │               │   └── TestConnectorEngineExecutionContext.java
│               │               ├── matchers/
│               │               │   └── NameMatcher.java
│               │               └── test/
│               │                   ├── APITestUtil.java
│               │                   ├── BDMTestUtil.java
│               │                   ├── BuildTestUtil.java
│               │                   ├── CommonTestUtil.java
│               │                   ├── PlatformTestUtil.java
│               │                   ├── Repeat.java
│               │                   ├── RepeatRule.java
│               │                   ├── StartProcessUntilStep.java
│               │                   ├── TestStates.java
│               │                   ├── WaitUntil.java
│               │                   ├── check/
│               │                   │   ├── CheckNbAssignedTaskOf.java
│               │                   │   ├── CheckNbOfActivities.java
│               │                   │   ├── CheckNbOfArchivedActivities.java
│               │                   │   ├── CheckNbOfArchivedActivityInstances.java
│               │                   │   ├── CheckNbOfHumanTasks.java
│               │                   │   ├── CheckNbOfOpenActivities.java
│               │                   │   ├── CheckNbOfProcessInstances.java
│               │                   │   ├── CheckNbPendingTaskOf.java
│               │                   │   ├── CheckNbPendingTasksForUserUsingSearch.java
│               │                   │   └── CheckProcessInstanceIsArchived.java
│               │                   └── wait/
│               │                       ├── WaitForActivity.java
│               │                       ├── WaitForArchivedActivity.java
│               │                       ├── WaitForAssignedStep.java
│               │                       ├── WaitForCompletedArchivedStep.java
│               │                       ├── WaitForDataValue.java
│               │                       ├── WaitForEvent.java
│               │                       ├── WaitForFinalArchivedActivity.java
│               │                       ├── WaitForFlowNode.java
│               │                       ├── WaitForPendingTasks.java
│               │                       ├── WaitForStep.java
│               │                       └── WaitProcessToFinishAndBeArchived.java
│               └── resources/
│                   └── org/
│                       └── bonitasoft/
│                           └── engine/
│                               └── connectors/
│                                   ├── TestConnectorEngineExecutionContext.def
│                                   └── TestConnectorEngineExecutionContext.impl
├── bonita-test-api/
│   ├── build.gradle
│   └── src/
│       ├── main/
│       │   ├── java/
│       │   │   └── org/
│       │   │       └── bonitasoft/
│       │   │           └── engine/
│       │   │               └── test/
│       │   │                   ├── ClientEventUtil.java
│       │   │                   ├── TestDatabaseConfigurator.java
│       │   │                   ├── TestEngine.java
│       │   │                   ├── TestEngineImpl.java
│       │   │                   ├── http/
│       │   │                   │   ├── BonitaHttpServer.java
│       │   │                   │   └── JettyServer.java
│       │   │                   ├── internal/
│       │   │                   │   ├── EngineCommander.java
│       │   │                   │   └── EngineStarter.java
│       │   │                   └── junit/
│       │   │                       └── BonitaEngineRule.java
│       │   └── resources/
│       │       └── logback-test.xml
│       └── test/
│           └── java/
│               └── org/
│                   └── bonitasoft/
│                       └── engine/
│                           └── test/
│                               ├── TestEngineImplTest.java
│                               ├── internal/
│                               │   └── EngineStarterTest.java
│                               └── junit/
│                                   └── BonitaEngineRuleTest.java
├── bpm/
│   ├── bonita-api/
│   │   └── bonita-server-api-http/
│   │       ├── build.gradle
│   │       └── src/
│   │           ├── main/
│   │           │   └── java/
│   │           │       └── org/
│   │           │           └── bonitasoft/
│   │           │               └── engine/
│   │           │                   └── api/
│   │           │                       └── internal/
│   │           │                           └── servlet/
│   │           │                               ├── EngineInitializerListener.java
│   │           │                               ├── HttpAPIServlet.java
│   │           │                               ├── HttpAPIServletCall.java
│   │           │                               ├── ServletCall.java
│   │           │                               └── impl/
│   │           │                                   └── XmlConverter.java
│   │           └── test/
│   │               └── java/
│   │                   └── org/
│   │                       └── bonitasoft/
│   │                           └── engine/
│   │                               └── api/
│   │                                   └── internal/
│   │                                       └── servlet/
│   │                                           ├── EngineInitializerListenerTest.java
│   │                                           ├── HttpAPIServletCallTest.java
│   │                                           ├── HttpAPIServletTest.java
│   │                                           ├── ServletCallDeserializationFilterTest.java
│   │                                           └── impl/
│   │                                               └── XmlConverterTest.java
│   ├── bonita-client/
│   │   ├── build.gradle
│   │   └── src/
│   │       ├── main/
│   │       │   └── java/
│   │       │       └── org/
│   │       │           └── bonitasoft/
│   │       │               └── engine/
│   │       │                   ├── api/
│   │       │                   │   ├── APIClient.java
│   │       │                   │   ├── ApiAccessType.java
│   │       │                   │   ├── BonitaStackTraceElementConverter.java
│   │       │                   │   ├── HTTPServerAPI.java
│   │       │                   │   ├── PlatformAPIAccessor.java
│   │       │                   │   ├── TcpDestination.java
│   │       │                   │   ├── TenantAPIAccessor.java
│   │       │                   │   └── impl/
│   │       │                   │       ├── LocalServerAPIFactory.java
│   │       │                   │       └── XmlConverter.java
│   │       │                   ├── bdm/
│   │       │                   │   ├── BusinessObjectDAOFactory.java
│   │       │                   │   ├── BusinessObjectDaoCreationException.java
│   │       │                   │   └── package-info.java
│   │       │                   ├── exception/
│   │       │                   │   ├── UnableToReadBonitaClientConfiguration.java
│   │       │                   │   └── UnknownAPITypeException.java
│   │       │                   └── util/
│   │       │                       └── APITypeManager.java
│   │       └── test/
│   │           ├── java/
│   │           │   └── org/
│   │           │       └── bonitasoft/
│   │           │           └── engine/
│   │           │               ├── api/
│   │           │               │   ├── APIClientTest.java
│   │           │               │   ├── BusinessObjectDAOUsingAPIClientTest.java
│   │           │               │   ├── HTTPServerAPIIT.java
│   │           │               │   ├── HTTPServerAPITest.java
│   │           │               │   └── impl/
│   │           │               │       └── XmlConverterTest.java
│   │           │               ├── bar/
│   │           │               │   └── BusinessArchiveTest.java
│   │           │               ├── bdm/
│   │           │               │   ├── BusinessObjectDAOFactoryTest.java
│   │           │               │   ├── DummyDAO.java
│   │           │               │   └── DummyDAOImpl.java
│   │           │               └── util/
│   │           │                   └── APITypeManagerTest.java
│   │           └── resources/
│   │               ├── myRealm.properties
│   │               └── org/
│   │                   └── bonitasoft/
│   │                       └── engine/
│   │                           └── bar/
│   │                               ├── MyProcess--1.0.bar
│   │                               └── testBuy_a_mini_extended--6.1.bar
│   ├── bonita-common/
│   │   ├── build.gradle
│   │   └── src/
│   │       ├── main/
│   │       │   ├── java/
│   │       │   │   └── org/
│   │       │   │       └── bonitasoft/
│   │       │   │           └── engine/
│   │       │   │               ├── InvalidFileFormatException.java
│   │       │   │               ├── api/
│   │       │   │               │   ├── APIAccessor.java
│   │       │   │               │   ├── ApplicationAPI.java
│   │       │   │               │   ├── BusinessDataAPI.java
│   │       │   │               │   ├── CommandAPI.java
│   │       │   │               │   ├── CustomUserInfoAPI.java
│   │       │   │               │   ├── DocumentAPI.java
│   │       │   │               │   ├── Experimental.java
│   │       │   │               │   ├── GroupAPI.java
│   │       │   │               │   ├── IdentityAPI.java
│   │       │   │               │   ├── ImportError.java
│   │       │   │               │   ├── ImportStatus.java
│   │       │   │               │   ├── Internal.java
│   │       │   │               │   ├── Logger.java
│   │       │   │               │   ├── LoginAPI.java
│   │       │   │               │   ├── MaintenanceAPI.java
│   │       │   │               │   ├── MembershipAPI.java
│   │       │   │               │   ├── NoSessionRequired.java
│   │       │   │               │   ├── OrganizationAPI.java
│   │       │   │               │   ├── PageAPI.java
│   │       │   │               │   ├── PermissionAPI.java
│   │       │   │               │   ├── PlatformAPI.java
│   │       │   │               │   ├── PlatformCommandAPI.java
│   │       │   │               │   ├── PlatformLoginAPI.java
│   │       │   │               │   ├── ProcessAPI.java
│   │       │   │               │   ├── ProcessManagementAPI.java
│   │       │   │               │   ├── ProcessRuntimeAPI.java
│   │       │   │               │   ├── ProfileAPI.java
│   │       │   │               │   ├── RoleAPI.java
│   │       │   │               │   ├── TenantAdministrationAPI.java
│   │       │   │               │   ├── UserAPI.java
│   │       │   │               │   ├── impl/
│   │       │   │               │   │   └── ClientInterceptor.java
│   │       │   │               │   ├── internal/
│   │       │   │               │   │   ├── ServerAPI.java
│   │       │   │               │   │   ├── ServerWrappedException.java
│   │       │   │               │   │   └── package-info.java
│   │       │   │               │   ├── package-info.java
│   │       │   │               │   ├── permission/
│   │       │   │               │   │   ├── APICallContext.java
│   │       │   │               │   │   └── PermissionRule.java
│   │       │   │               │   ├── platform/
│   │       │   │               │   │   └── PlatformInformationAPI.java
│   │       │   │               │   └── result/
│   │       │   │               │       ├── ExecutionResult.java
│   │       │   │               │       ├── Status.java
│   │       │   │               │       ├── StatusCode.java
│   │       │   │               │       └── StatusContext.java
│   │       │   │               ├── bdm/
│   │       │   │               │   ├── BusinessObjectModelValidationException.java
│   │       │   │               │   ├── Entity.java
│   │       │   │               │   ├── dao/
│   │       │   │               │   │   └── BusinessObjectDAO.java
│   │       │   │               │   ├── lazy/
│   │       │   │               │   │   └── LazyLoaded.java
│   │       │   │               │   ├── serialization/
│   │       │   │               │   │   ├── BusinessDataObjectMapper.java
│   │       │   │               │   │   ├── CustomLocalDateDeserializer.java
│   │       │   │               │   │   ├── CustomLocalDateSerializer.java
│   │       │   │               │   │   ├── CustomLocalDateTimeDeserializer.java
│   │       │   │               │   │   ├── CustomLocalDateTimeSerializer.java
│   │       │   │               │   │   ├── CustomOffsetDateTimeDeserializer.java
│   │       │   │               │   │   └── CustomOffsetDateTimeSerializer.java
│   │       │   │               │   └── validator/
│   │       │   │               │       ├── BusinessObjectModelValidator.java
│   │       │   │               │       ├── UniqueNameValidator.java
│   │       │   │               │       ├── ValidationStatus.java
│   │       │   │               │       └── rule/
│   │       │   │               │           ├── BusinessObjectModelValidationRule.java
│   │       │   │               │           ├── BusinessObjectValidationRule.java
│   │       │   │               │           ├── FieldValidationRule.java
│   │       │   │               │           ├── IndexValidationRule.java
│   │       │   │               │           ├── MultipleAggregationToItselfValidationRule.java
│   │       │   │               │           ├── QueryParameterValidationRule.java
│   │       │   │               │           ├── QueryValidationRule.java
│   │       │   │               │           ├── SimpleFieldValidationRule.java
│   │       │   │               │           ├── UniqueConstraintValidationRule.java
│   │       │   │               │           ├── UniqueNameValidationRule.java
│   │       │   │               │           ├── UniqueSimpleNameValidationRule.java
│   │       │   │               │           ├── ValidationRule.java
│   │       │   │               │           └── composition/
│   │       │   │               │               ├── AggregationAndCompositionValidationRule.java
│   │       │   │               │               ├── CyclicCompositionValidationRule.java
│   │       │   │               │               └── UniquenessCompositionValidationRule.java
│   │       │   │               ├── bpm/
│   │       │   │               │   ├── ArchivedElement.java
│   │       │   │               │   ├── ArchivedRestElement.java
│   │       │   │               │   ├── BaseRestElement.java
│   │       │   │               │   ├── actor/
│   │       │   │               │   │   ├── ActorCriterion.java
│   │       │   │               │   │   ├── ActorInstance.java
│   │       │   │               │   │   ├── ActorMappingExportException.java
│   │       │   │               │   │   ├── ActorMappingImportException.java
│   │       │   │               │   │   ├── ActorNotFoundException.java
│   │       │   │               │   │   ├── ActorUpdater.java
│   │       │   │               │   │   └── impl/
│   │       │   │               │   │       └── ActorInstanceImpl.java
│   │       │   │               │   ├── businessdata/
│   │       │   │               │   │   ├── BusinessDataQueryMetadata.java
│   │       │   │               │   │   ├── BusinessDataQueryResult.java
│   │       │   │               │   │   └── impl/
│   │       │   │               │   │       ├── BusinessDataQueryMetadataImpl.java
│   │       │   │               │   │       └── BusinessDataQueryResultImpl.java
│   │       │   │               │   ├── category/
│   │       │   │               │   │   ├── Category.java
│   │       │   │               │   │   ├── CategoryCriterion.java
│   │       │   │               │   │   ├── CategoryNotFoundException.java
│   │       │   │               │   │   ├── CategoryUpdater.java
│   │       │   │               │   │   ├── impl/
│   │       │   │               │   │   │   └── CategoryImpl.java
│   │       │   │               │   │   └── package-info.java
│   │       │   │               │   ├── comment/
│   │       │   │               │   │   ├── ArchivedComment.java
│   │       │   │               │   │   ├── ArchivedCommentsSearchDescriptor.java
│   │       │   │               │   │   ├── Comment.java
│   │       │   │               │   │   ├── SearchCommentsDescriptor.java
│   │       │   │               │   │   ├── impl/
│   │       │   │               │   │   │   ├── ArchivedCommentImpl.java
│   │       │   │               │   │   │   └── CommentImpl.java
│   │       │   │               │   │   └── package-info.java
│   │       │   │               │   ├── connector/
│   │       │   │               │   │   ├── ArchiveConnectorInstancesSearchDescriptor.java
│   │       │   │               │   │   ├── ArchivedConnectorInstance.java
│   │       │   │               │   │   ├── ConnectorCriterion.java
│   │       │   │               │   │   ├── ConnectorDefinitionWithInputValues.java
│   │       │   │               │   │   ├── ConnectorExecutionException.java
│   │       │   │               │   │   ├── ConnectorImplementationDescriptor.java
│   │       │   │               │   │   ├── ConnectorInstance.java
│   │       │   │               │   │   ├── ConnectorInstanceCriterion.java
│   │       │   │               │   │   ├── ConnectorInstanceNotFoundException.java
│   │       │   │               │   │   ├── ConnectorInstanceWithFailureInfo.java
│   │       │   │               │   │   ├── ConnectorInstancesSearchDescriptor.java
│   │       │   │               │   │   ├── ConnectorNotFoundException.java
│   │       │   │               │   │   ├── ConnectorState.java
│   │       │   │               │   │   ├── ConnectorStateReset.java
│   │       │   │               │   │   ├── InvalidConnectorImplementationException.java
│   │       │   │               │   │   ├── InvalidEvaluationConnectorConditionException.java
│   │       │   │               │   │   └── impl/
│   │       │   │               │   │       ├── ArchivedConnectorInstanceImpl.java
│   │       │   │               │   │       ├── ConnectorDefinitionWithInputValuesImpl.java
│   │       │   │               │   │       ├── ConnectorInstanceImpl.java
│   │       │   │               │   │       └── ConnectorInstanceWithFailureInfoImpl.java
│   │       │   │               │   ├── contract/
│   │       │   │               │   │   └── ContractViolationException.java
│   │       │   │               │   ├── data/
│   │       │   │               │   │   ├── ArchivedDataInstance.java
│   │       │   │               │   │   ├── ArchivedDataNotFoundException.java
│   │       │   │               │   │   ├── DataInstance.java
│   │       │   │               │   │   ├── DataNotFoundException.java
│   │       │   │               │   │   └── impl/
│   │       │   │               │   │       ├── ArchivedDataInstanceImpl.java
│   │       │   │               │   │       ├── BlobDataInstanceImpl.java
│   │       │   │               │   │       ├── BooleanDataInstanceImpl.java
│   │       │   │               │   │       ├── DataInstanceImpl.java
│   │       │   │               │   │       ├── DateDataInstanceImpl.java
│   │       │   │               │   │       ├── DoubleDataInstanceImpl.java
│   │       │   │               │   │       ├── FloatDataInstanceImpl.java
│   │       │   │               │   │       ├── IntegerDataInstanceImpl.java
│   │       │   │               │   │       ├── LongDataInstanceImpl.java
│   │       │   │               │   │       ├── LongTextDataInstanceImpl.java
│   │       │   │               │   │       └── ShortTextDataInstanceImpl.java
│   │       │   │               │   ├── document/
│   │       │   │               │   │   ├── ArchivedDocument.java
│   │       │   │               │   │   ├── ArchivedDocumentNotFoundException.java
│   │       │   │               │   │   ├── ArchivedDocumentsSearchDescriptor.java
│   │       │   │               │   │   ├── DocumentAttachmentException.java
│   │       │   │               │   │   ├── DocumentCriterion.java
│   │       │   │               │   │   ├── DocumentException.java
│   │       │   │               │   │   ├── DocumentNotFoundException.java
│   │       │   │               │   │   ├── DocumentValue.java
│   │       │   │               │   │   ├── DocumentsSearchDescriptor.java
│   │       │   │               │   │   └── impl/
│   │       │   │               │   │       └── ArchivedDocumentImpl.java
│   │       │   │               │   ├── flownode/
│   │       │   │               │   │   ├── ActivityDefinitionNotFoundException.java
│   │       │   │               │   │   ├── ActivityExecutionException.java
│   │       │   │               │   │   ├── ActivityInstance.java
│   │       │   │               │   │   ├── ActivityInstanceCriterion.java
│   │       │   │               │   │   ├── ActivityInstanceNotFoundException.java
│   │       │   │               │   │   ├── ActivityInstanceSearchDescriptor.java
│   │       │   │               │   │   ├── ActivityStates.java
│   │       │   │               │   │   ├── ArchivedActivityInstance.java
│   │       │   │               │   │   ├── ArchivedActivityInstanceNotFoundException.java
│   │       │   │               │   │   ├── ArchivedActivityInstanceSearchDescriptor.java
│   │       │   │               │   │   ├── ArchivedAutomaticTaskInstance.java
│   │       │   │               │   │   ├── ArchivedCallActivityInstance.java
│   │       │   │               │   │   ├── ArchivedFlowElementInstance.java
│   │       │   │               │   │   ├── ArchivedFlowNodeInstance.java
│   │       │   │               │   │   ├── ArchivedFlowNodeInstanceNotFoundException.java
│   │       │   │               │   │   ├── ArchivedFlowNodeInstanceSearchDescriptor.java
│   │       │   │               │   │   ├── ArchivedGatewayInstance.java
│   │       │   │               │   │   ├── ArchivedHumanTaskInstance.java
│   │       │   │               │   │   ├── ArchivedHumanTaskInstanceSearchDescriptor.java
│   │       │   │               │   │   ├── ArchivedLoopActivityInstance.java
│   │       │   │               │   │   ├── ArchivedManualTaskInstance.java
│   │       │   │               │   │   ├── ArchivedMultiInstanceActivityInstance.java
│   │       │   │               │   │   ├── ArchivedReceiveTaskInstance.java
│   │       │   │               │   │   ├── ArchivedSendTaskInstance.java
│   │       │   │               │   │   ├── ArchivedSubProcessActivityInstance.java
│   │       │   │               │   │   ├── ArchivedTaskInstance.java
│   │       │   │               │   │   ├── ArchivedUserTaskInstance.java
│   │       │   │               │   │   ├── AutomaticTaskInstance.java
│   │       │   │               │   │   ├── BPMEventType.java
│   │       │   │               │   │   ├── BoundaryEventInstance.java
│   │       │   │               │   │   ├── CallActivityInstance.java
│   │       │   │               │   │   ├── CatchEventInstance.java
│   │       │   │               │   │   ├── EndEventInstance.java
│   │       │   │               │   │   ├── EventCriterion.java
│   │       │   │               │   │   ├── EventInstance.java
│   │       │   │               │   │   ├── EventTriggerInstance.java
│   │       │   │               │   │   ├── EventTriggerInstanceSearchDescriptor.java
│   │       │   │               │   │   ├── FlowElementInstance.java
│   │       │   │               │   │   ├── FlowElementInstanceSearchDescriptor.java
│   │       │   │               │   │   ├── FlowNodeExecutionException.java
│   │       │   │               │   │   ├── FlowNodeInstance.java
│   │       │   │               │   │   ├── FlowNodeInstanceNotFoundException.java
│   │       │   │               │   │   ├── FlowNodeInstanceSearchDescriptor.java
│   │       │   │               │   │   ├── FlowNodeType.java
│   │       │   │               │   │   ├── GatewayInstance.java
│   │       │   │               │   │   ├── HumanTaskInstance.java
│   │       │   │               │   │   ├── HumanTaskInstanceSearchDescriptor.java
│   │       │   │               │   │   ├── IntermediateCatchEventInstance.java
│   │       │   │               │   │   ├── IntermediateThrowEventInstance.java
│   │       │   │               │   │   ├── LoopActivityInstance.java
│   │       │   │               │   │   ├── ManualTaskInstance.java
│   │       │   │               │   │   ├── MultiInstanceActivityInstance.java
│   │       │   │               │   │   ├── ReceiveTaskInstance.java
│   │       │   │               │   │   ├── SendEventException.java
│   │       │   │               │   │   ├── SendTaskInstance.java
│   │       │   │               │   │   ├── StartEventInstance.java
│   │       │   │               │   │   ├── StateCategory.java
│   │       │   │               │   │   ├── SubProcessActivityInstance.java
│   │       │   │               │   │   ├── TaskInstance.java
│   │       │   │               │   │   ├── ThrowEventInstance.java
│   │       │   │               │   │   ├── TimerEventTriggerInstance.java
│   │       │   │               │   │   ├── TimerEventTriggerInstanceNotFoundException.java
│   │       │   │               │   │   ├── TimerEventTriggerInstanceSearchDescriptor.java
│   │       │   │               │   │   ├── UserTaskInstance.java
│   │       │   │               │   │   ├── UserTaskNotFoundException.java
│   │       │   │               │   │   ├── WaitingErrorEvent.java
│   │       │   │               │   │   ├── WaitingEvent.java
│   │       │   │               │   │   ├── WaitingEventSearchDescriptor.java
│   │       │   │               │   │   ├── WaitingMessageEvent.java
│   │       │   │               │   │   ├── WaitingSignalEvent.java
│   │       │   │               │   │   └── impl/
│   │       │   │               │   │       └── internal/
│   │       │   │               │   │           ├── ActivityInstanceImpl.java
│   │       │   │               │   │           ├── ArchivedActivityInstanceImpl.java
│   │       │   │               │   │           ├── ArchivedAutomaticTaskInstanceImpl.java
│   │       │   │               │   │           ├── ArchivedCallActivityInstanceImpl.java
│   │       │   │               │   │           ├── ArchivedFlowElementInstanceImpl.java
│   │       │   │               │   │           ├── ArchivedFlowNodeInstanceImpl.java
│   │       │   │               │   │           ├── ArchivedGatewayInstanceImpl.java
│   │       │   │               │   │           ├── ArchivedHumanTaskInstanceImpl.java
│   │       │   │               │   │           ├── ArchivedLoopActivityInstanceImpl.java
│   │       │   │               │   │           ├── ArchivedManualTaskInstanceImpl.java
│   │       │   │               │   │           ├── ArchivedMultiInstanceActivityInstanceImpl.java
│   │       │   │               │   │           ├── ArchivedReceiveTaskInstanceImpl.java
│   │       │   │               │   │           ├── ArchivedSendTaskInstanceImpl.java
│   │       │   │               │   │           ├── ArchivedSubProcessActivityInstanceImpl.java
│   │       │   │               │   │           ├── ArchivedUserTaskInstanceImpl.java
│   │       │   │               │   │           ├── AutomaticTaskInstanceImpl.java
│   │       │   │               │   │           ├── BoundaryEventInstanceImpl.java
│   │       │   │               │   │           ├── CallActivityInstanceImpl.java
│   │       │   │               │   │           ├── CatchEventInstanceImpl.java
│   │       │   │               │   │           ├── EndEventInstanceImpl.java
│   │       │   │               │   │           ├── EventInstanceImpl.java
│   │       │   │               │   │           ├── EventTriggerInstanceImpl.java
│   │       │   │               │   │           ├── FlowElementInstanceImpl.java
│   │       │   │               │   │           ├── FlowNodeInstanceImpl.java
│   │       │   │               │   │           ├── GatewayInstanceImpl.java
│   │       │   │               │   │           ├── HumanTaskInstanceImpl.java
│   │       │   │               │   │           ├── IntermediateCatchEventInstanceImpl.java
│   │       │   │               │   │           ├── IntermediateThrowEventInstanceImpl.java
│   │       │   │               │   │           ├── LoopActivityInstanceImpl.java
│   │       │   │               │   │           ├── ManualTaskInstanceImpl.java
│   │       │   │               │   │           ├── MultiInstanceActivityInstanceImpl.java
│   │       │   │               │   │           ├── ReceiveTaskInstanceImpl.java
│   │       │   │               │   │           ├── SendTaskInstanceImpl.java
│   │       │   │               │   │           ├── StartEventInstanceImpl.java
│   │       │   │               │   │           ├── SubProcessActivityInstanceImpl.java
│   │       │   │               │   │           ├── TaskInstanceImpl.java
│   │       │   │               │   │           ├── ThrowEventInstanceImpl.java
│   │       │   │               │   │           ├── TimerEventTriggerInstanceImpl.java
│   │       │   │               │   │           ├── UserTaskInstanceImpl.java
│   │       │   │               │   │           ├── WaitingErrorEventImpl.java
│   │       │   │               │   │           ├── WaitingEventImpl.java
│   │       │   │               │   │           ├── WaitingMessageEventImpl.java
│   │       │   │               │   │           └── WaitingSignalEventImpl.java
│   │       │   │               │   ├── parameter/
│   │       │   │               │   │   ├── ParameterCriterion.java
│   │       │   │               │   │   ├── ParameterInstance.java
│   │       │   │               │   │   └── impl/
│   │       │   │               │   │       └── ParameterImpl.java
│   │       │   │               │   ├── process/
│   │       │   │               │   │   ├── ActivationState.java
│   │       │   │               │   │   ├── ArchivedProcessInstance.java
│   │       │   │               │   │   ├── ArchivedProcessInstanceNotFoundException.java
│   │       │   │               │   │   ├── ArchivedProcessInstancesSearchDescriptor.java
│   │       │   │               │   │   ├── ConfigurationState.java
│   │       │   │               │   │   ├── IllegalProcessStateException.java
│   │       │   │               │   │   ├── Index.java
│   │       │   │               │   │   ├── Problem.java
│   │       │   │               │   │   ├── ProcessActivationException.java
│   │       │   │               │   │   ├── ProcessDefinitionNotFoundException.java
│   │       │   │               │   │   ├── ProcessDeployException.java
│   │       │   │               │   │   ├── ProcessDeploymentInfo.java
│   │       │   │               │   │   ├── ProcessDeploymentInfoCriterion.java
│   │       │   │               │   │   ├── ProcessDeploymentInfoSearchDescriptor.java
│   │       │   │               │   │   ├── ProcessDeploymentInfoUpdater.java
│   │       │   │               │   │   ├── ProcessEnablementException.java
│   │       │   │               │   │   ├── ProcessExecutionException.java
│   │       │   │               │   │   ├── ProcessExportException.java
│   │       │   │               │   │   ├── ProcessInstance.java
│   │       │   │               │   │   ├── ProcessInstanceCriterion.java
│   │       │   │               │   │   ├── ProcessInstanceNotFoundException.java
│   │       │   │               │   │   ├── ProcessInstanceSearchDescriptor.java
│   │       │   │               │   │   ├── ProcessInstanceState.java
│   │       │   │               │   │   ├── ProcessResourceNotFoundException.java
│   │       │   │               │   │   ├── V6FormDeployException.java
│   │       │   │               │   │   └── impl/
│   │       │   │               │   │       ├── ProcessInstanceUpdater.java
│   │       │   │               │   │       └── internal/
│   │       │   │               │   │           ├── ArchivedProcessInstanceImpl.java
│   │       │   │               │   │           ├── ProblemImpl.java
│   │       │   │               │   │           ├── ProcessDeploymentInfoImpl.java
│   │       │   │               │   │           └── ProcessInstanceImpl.java
│   │       │   │               │   └── supervisor/
│   │       │   │               │       ├── ProcessSupervisor.java
│   │       │   │               │       ├── ProcessSupervisorSearchDescriptor.java
│   │       │   │               │       ├── SupervisorNotFoundException.java
│   │       │   │               │       ├── impl/
│   │       │   │               │       │   └── ProcessSupervisorImpl.java
│   │       │   │               │       └── package-info.java
│   │       │   │               ├── business/
│   │       │   │               │   ├── application/
│   │       │   │               │   │   ├── AbstractApplicationCreator.java
│   │       │   │               │   │   ├── AbstractApplicationUpdater.java
│   │       │   │               │   │   ├── ApplicationCreator.java
│   │       │   │               │   │   ├── ApplicationField.java
│   │       │   │               │   │   ├── ApplicationImportPolicy.java
│   │       │   │               │   │   ├── ApplicationLinkCreator.java
│   │       │   │               │   │   ├── ApplicationLinkUpdater.java
│   │       │   │               │   │   ├── ApplicationMenuCreator.java
│   │       │   │               │   │   ├── ApplicationMenuField.java
│   │       │   │               │   │   ├── ApplicationMenuNotFoundException.java
│   │       │   │               │   │   ├── ApplicationMenuSearchDescriptor.java
│   │       │   │               │   │   ├── ApplicationMenuUpdater.java
│   │       │   │               │   │   ├── ApplicationNotFoundException.java
│   │       │   │               │   │   ├── ApplicationPageNotFoundException.java
│   │       │   │               │   │   ├── ApplicationPageSearchDescriptor.java
│   │       │   │               │   │   ├── ApplicationSearchDescriptor.java
│   │       │   │               │   │   ├── ApplicationUpdater.java
│   │       │   │               │   │   ├── CheckedApplicationFieldMap.java
│   │       │   │               │   │   └── InternalProfiles.java
│   │       │   │               │   └── data/
│   │       │   │               │       ├── BusinessDataCrudOperationException.java
│   │       │   │               │       ├── BusinessDataNotFoundException.java
│   │       │   │               │       ├── BusinessDataReference.java
│   │       │   │               │       ├── BusinessDataRepositoryDeploymentException.java
│   │       │   │               │       ├── BusinessDataRepositoryException.java
│   │       │   │               │       ├── InvalidBusinessDataModelException.java
│   │       │   │               │       ├── MultipleBusinessDataReference.java
│   │       │   │               │       ├── SimpleBusinessDataReference.java
│   │       │   │               │       ├── impl/
│   │       │   │               │       │   ├── BusinessDataReferenceImpl.java
│   │       │   │               │       │   ├── MultipleBusinessDataReferenceImpl.java
│   │       │   │               │       │   └── SimpleBusinessDataReferenceImpl.java
│   │       │   │               │       └── package-info.java
│   │       │   │               ├── command/
│   │       │   │               │   ├── CommandCriterion.java
│   │       │   │               │   ├── CommandDescriptor.java
│   │       │   │               │   ├── CommandDescriptorImpl.java
│   │       │   │               │   ├── CommandExecutionException.java
│   │       │   │               │   ├── CommandNotFoundException.java
│   │       │   │               │   ├── CommandParameterizationException.java
│   │       │   │               │   ├── CommandSearchDescriptor.java
│   │       │   │               │   ├── CommandUpdater.java
│   │       │   │               │   ├── DependencyNotFoundException.java
│   │       │   │               │   └── package-info.java
│   │       │   │               ├── connector/
│   │       │   │               │   ├── AbstractConnector.java
│   │       │   │               │   ├── Connector.java
│   │       │   │               │   ├── ConnectorException.java
│   │       │   │               │   ├── ConnectorValidationException.java
│   │       │   │               │   ├── EngineExecutionContext.java
│   │       │   │               │   └── sap/
│   │       │   │               │       └── SAPMonoDestinationDataProvider.java
│   │       │   │               ├── digest/
│   │       │   │               │   └── DigestUtils.java
│   │       │   │               ├── exception/
│   │       │   │               │   ├── APIImplementationNotFoundException.java
│   │       │   │               │   ├── AlreadyExistsException.java
│   │       │   │               │   ├── ApplicationInstallationException.java
│   │       │   │               │   ├── BonitaContextException.java
│   │       │   │               │   ├── BonitaException.java
│   │       │   │               │   ├── BonitaHomeConfigurationException.java
│   │       │   │               │   ├── BonitaHomeNotSetException.java
│   │       │   │               │   ├── BonitaRuntimeException.java
│   │       │   │               │   ├── ClassLoaderException.java
│   │       │   │               │   ├── ContractDataNotFoundException.java
│   │       │   │               │   ├── CreationException.java
│   │       │   │               │   ├── DeletionException.java
│   │       │   │               │   ├── ExceptionContext.java
│   │       │   │               │   ├── ExecutionException.java
│   │       │   │               │   ├── ExportException.java
│   │       │   │               │   ├── FormMappingNotFoundException.java
│   │       │   │               │   ├── ImportException.java
│   │       │   │               │   ├── IncorrectParameterException.java
│   │       │   │               │   ├── InvalidGroupNameException.java
│   │       │   │               │   ├── InvalidPageTokenException.java
│   │       │   │               │   ├── InvalidPageZipContentException.java
│   │       │   │               │   ├── InvalidPageZipInconsistentException.java
│   │       │   │               │   ├── InvalidPageZipMissingAPropertyException.java
│   │       │   │               │   ├── InvalidPageZipMissingIndexException.java
│   │       │   │               │   ├── InvalidPageZipMissingPropertiesException.java
│   │       │   │               │   ├── InvalidXMLException.java
│   │       │   │               │   ├── MissingServiceException.java
│   │       │   │               │   ├── NotFoundException.java
│   │       │   │               │   ├── NotSerializableException.java
│   │       │   │               │   ├── ProcessInstanceHierarchicalDeletionException.java
│   │       │   │               │   ├── RetrieveException.java
│   │       │   │               │   ├── SearchException.java
│   │       │   │               │   ├── ServerAPIException.java
│   │       │   │               │   ├── StackTraceTransformer.java
│   │       │   │               │   ├── TenantStatusException.java
│   │       │   │               │   ├── UnauthorizedAccessException.java
│   │       │   │               │   ├── UnavailableLockException.java
│   │       │   │               │   ├── UnknownElementType.java
│   │       │   │               │   ├── UpdateException.java
│   │       │   │               │   ├── UpdatingWithInvalidPageTokenException.java
│   │       │   │               │   ├── UpdatingWithInvalidPageZipContentException.java
│   │       │   │               │   └── package-info.java
│   │       │   │               ├── expression/
│   │       │   │               │   └── ExpressionEvaluationException.java
│   │       │   │               ├── filter/
│   │       │   │               │   ├── AbstractUserFilter.java
│   │       │   │               │   ├── UserFilter.java
│   │       │   │               │   └── UserFilterException.java
│   │       │   │               ├── form/
│   │       │   │               │   ├── FormMapping.java
│   │       │   │               │   └── FormMappingSearchDescriptor.java
│   │       │   │               ├── home/
│   │       │   │               │   ├── BonitaHome.java
│   │       │   │               │   └── package-info.java
│   │       │   │               ├── identity/
│   │       │   │               │   ├── ContactDataCreator.java
│   │       │   │               │   ├── ContactDataUpdater.java
│   │       │   │               │   ├── CustomUserInfoDefinitionCreator.java
│   │       │   │               │   ├── CustomUserInfoValueSearchDescriptor.java
│   │       │   │               │   ├── CustomUserInfoValueUpdater.java
│   │       │   │               │   ├── GroupCreator.java
│   │       │   │               │   ├── GroupCriterion.java
│   │       │   │               │   ├── GroupNotFoundException.java
│   │       │   │               │   ├── GroupSearchDescriptor.java
│   │       │   │               │   ├── GroupUpdater.java
│   │       │   │               │   ├── ImportPolicy.java
│   │       │   │               │   ├── InvalidOrganizationFileFormatException.java
│   │       │   │               │   ├── MembershipNotFoundException.java
│   │       │   │               │   ├── OrganizationExportException.java
│   │       │   │               │   ├── OrganizationImportException.java
│   │       │   │               │   ├── RoleCreator.java
│   │       │   │               │   ├── RoleCriterion.java
│   │       │   │               │   ├── RoleNotFoundException.java
│   │       │   │               │   ├── RoleSearchDescriptor.java
│   │       │   │               │   ├── RoleUpdater.java
│   │       │   │               │   ├── UserCreator.java
│   │       │   │               │   ├── UserCriterion.java
│   │       │   │               │   ├── UserMembershipCriterion.java
│   │       │   │               │   ├── UserNotFoundException.java
│   │       │   │               │   ├── UserSearchDescriptor.java
│   │       │   │               │   ├── UserUpdater.java
│   │       │   │               │   └── package-info.java
│   │       │   │               ├── io/
│   │       │   │               │   ├── FileContent.java
│   │       │   │               │   ├── FileOperations.java
│   │       │   │               │   ├── IOUtil.java
│   │       │   │               │   ├── IOUtils.java
│   │       │   │               │   └── PropertiesManager.java
│   │       │   │               ├── job/
│   │       │   │               │   ├── FailedJob.java
│   │       │   │               │   ├── impl/
│   │       │   │               │   │   └── FailedJobImpl.java
│   │       │   │               │   └── package-info.java
│   │       │   │               ├── maintenance/
│   │       │   │               │   ├── MaintenanceDetails.java
│   │       │   │               │   ├── MaintenanceDetailsNotFoundException.java
│   │       │   │               │   └── impl/
│   │       │   │               │       └── MaintenanceDetailsImpl.java
│   │       │   │               ├── page/
│   │       │   │               │   ├── AuthorizationRuleConstants.java
│   │       │   │               │   ├── ContentType.java
│   │       │   │               │   ├── Page.java
│   │       │   │               │   ├── PageCreator.java
│   │       │   │               │   ├── PageNotFoundException.java
│   │       │   │               │   ├── PageSearchDescriptor.java
│   │       │   │               │   ├── PageURL.java
│   │       │   │               │   ├── PageUpdater.java
│   │       │   │               │   ├── URLAdapterConstants.java
│   │       │   │               │   └── impl/
│   │       │   │               │       └── PageImpl.java
│   │       │   │               ├── platform/
│   │       │   │               │   ├── IllegalNodeStateException.java
│   │       │   │               │   ├── InvalidPlatformCredentialsException.java
│   │       │   │               │   ├── LoginException.java
│   │       │   │               │   ├── LogoutException.java
│   │       │   │               │   ├── NodeNotStartedException.java
│   │       │   │               │   ├── Platform.java
│   │       │   │               │   ├── PlatformLoginException.java
│   │       │   │               │   ├── PlatformLogoutException.java
│   │       │   │               │   ├── PlatformNotFoundException.java
│   │       │   │               │   ├── PlatformState.java
│   │       │   │               │   ├── StartNodeException.java
│   │       │   │               │   ├── StopNodeException.java
│   │       │   │               │   ├── UnknownUserException.java
│   │       │   │               │   ├── command/
│   │       │   │               │   │   └── package-info.java
│   │       │   │               │   ├── impl/
│   │       │   │               │   │   └── PlatformImpl.java
│   │       │   │               │   └── package-info.java
│   │       │   │               ├── profile/
│   │       │   │               │   ├── ProfileCriterion.java
│   │       │   │               │   ├── ProfileMemberCreator.java
│   │       │   │               │   ├── ProfileMemberNotFoundException.java
│   │       │   │               │   ├── ProfileMemberSearchDescriptor.java
│   │       │   │               │   ├── ProfileNotFoundException.java
│   │       │   │               │   └── ProfileSearchDescriptor.java
│   │       │   │               ├── search/
│   │       │   │               │   ├── Order.java
│   │       │   │               │   ├── SearchFilterOperation.java
│   │       │   │               │   ├── SearchOptions.java
│   │       │   │               │   ├── SearchOptionsBuilder.java
│   │       │   │               │   ├── SearchResult.java
│   │       │   │               │   ├── Sort.java
│   │       │   │               │   ├── impl/
│   │       │   │               │   │   ├── SearchFilter.java
│   │       │   │               │   │   ├── SearchOptionsImpl.java
│   │       │   │               │   │   ├── SearchResultImpl.java
│   │       │   │               │   │   └── package-info.java
│   │       │   │               │   └── package-info.java
│   │       │   │               ├── session/
│   │       │   │               │   ├── APISession.java
│   │       │   │               │   ├── InvalidSessionException.java
│   │       │   │               │   ├── PlatformSession.java
│   │       │   │               │   ├── Session.java
│   │       │   │               │   ├── SessionNotFoundException.java
│   │       │   │               │   ├── impl/
│   │       │   │               │   │   ├── APISessionImpl.java
│   │       │   │               │   │   ├── PlatformSessionImpl.java
│   │       │   │               │   │   └── SessionImpl.java
│   │       │   │               │   └── package-info.java
│   │       │   │               ├── tenant/
│   │       │   │               │   ├── TenantResource.java
│   │       │   │               │   ├── TenantResourceState.java
│   │       │   │               │   └── TenantResourceType.java
│   │       │   │               ├── util/
│   │       │   │               │   └── package-info.java
│   │       │   │               └── xml/
│   │       │   │                   ├── DocumentManager.java
│   │       │   │                   └── XStreamDenyList.java
│   │       │   └── javadoc/
│   │       │       ├── overview.html
│   │       │       └── stylesheet.css
│   │       ├── test/
│   │       │   ├── java/
│   │       │   │   └── org/
│   │       │   │       └── bonitasoft/
│   │       │   │           └── engine/
│   │       │   │               ├── api/
│   │       │   │               │   └── permission/
│   │       │   │               │       └── APICallContextTest.java
│   │       │   │               ├── bdm/
│   │       │   │               │   ├── serialization/
│   │       │   │               │   │   ├── BusinessDataObjectMapperTest.java
│   │       │   │               │   │   ├── CustomLocalDateDeserializerTest.java
│   │       │   │               │   │   ├── CustomLocalDateSerializerTest.java
│   │       │   │               │   │   ├── CustomLocalDateTimeDeserializerTest.java
│   │       │   │               │   │   ├── CustomLocalDateTimeSerializerTest.java
│   │       │   │               │   │   ├── CustomOffsetDateTimeDeserializerTest.java
│   │       │   │               │   │   ├── CustomOffsetDateTimeSerializerTest.java
│   │       │   │               │   │   └── model/
│   │       │   │               │   │       └── Invoice.java
│   │       │   │               │   └── validator/
│   │       │   │               │       ├── BusinessObjectModelValidatorTest.java
│   │       │   │               │       ├── UniqueNameValidatorTest.java
│   │       │   │               │       ├── ValidationStatusTest.java
│   │       │   │               │       └── rule/
│   │       │   │               │           ├── BusinessObjectModelValidationRuleTest.java
│   │       │   │               │           ├── BusinessObjectValidationRuleTest.java
│   │       │   │               │           ├── FieldValidationRuleTest.java
│   │       │   │               │           ├── IndexValidationRuleTest.java
│   │       │   │               │           ├── MultipleAggregationToItselfValidationRuleTest.java
│   │       │   │               │           ├── QueryParameterValidationRuleTest.java
│   │       │   │               │           ├── QueryValidationRuleTest.java
│   │       │   │               │           ├── SimpleFieldValidationRuleTest.java
│   │       │   │               │           ├── UniqueConstraintValidationRuleTest.java
│   │       │   │               │           ├── UniqueNameValidationRuleTest.java
│   │       │   │               │           ├── UniqueSimpleNameValidationRuleTest.java
│   │       │   │               │           ├── ValidationRuleTest.java
│   │       │   │               │           └── composition/
│   │       │   │               │               ├── AggregationAndCompositionValidationRuleTest.java
│   │       │   │               │               ├── CyclicCompositionValidationRuleTest.java
│   │       │   │               │               └── UniquenessCompositionValidationRuleTest.java
│   │       │   │               ├── bpm/
│   │       │   │               │   └── document/
│   │       │   │               │       └── DocumentValueTest.java
│   │       │   │               ├── business/
│   │       │   │               │   └── application/
│   │       │   │               │       ├── ApplicationLinkUpdaterTest.java
│   │       │   │               │       └── ApplicationUpdaterTest.java
│   │       │   │               ├── connector/
│   │       │   │               │   └── sap/
│   │       │   │               │       └── SAPMonoDestinationDataProviderTest.java
│   │       │   │               ├── digest/
│   │       │   │               │   └── DigestUtilsTest.java
│   │       │   │               ├── exception/
│   │       │   │               │   ├── BonitaExceptionTest.java
│   │       │   │               │   └── StackTraceTransformerTest.java
│   │       │   │               ├── expression/
│   │       │   │               │   └── ExpressionEvaluationExceptionTest.java
│   │       │   │               ├── filter/
│   │       │   │               │   └── AbstractUserFilterTest.java
│   │       │   │               ├── io/
│   │       │   │               │   └── FileOperationsTest.java
│   │       │   │               ├── page/
│   │       │   │               │   ├── PageCreatorTest.java
│   │       │   │               │   ├── PageUpdaterTest.java
│   │       │   │               │   └── impl/
│   │       │   │               │       ├── PageImplAssert.java
│   │       │   │               │       └── PageImplTest.java
│   │       │   │               ├── search/
│   │       │   │               │   └── impl/
│   │       │   │               │       └── SearchOptionsImplTest.java
│   │       │   │               └── util/
│   │       │   │                   └── IOUtilTest.java
│   │       │   └── resources/
│   │       │       ├── logback-test.xml
│   │       │       └── org/
│   │       │           └── bonitasoft/
│   │       │               └── engine/
│   │       │                   └── bdm/
│   │       │                       └── serialization/
│   │       │                           └── simpleInvoice.json
│   │       └── testFixtures/
│   │           └── java/
│   │               └── org/
│   │                   └── bonitasoft/
│   │                       └── engine/
│   │                           ├── bdm/
│   │                           │   └── validator/
│   │                           │       └── assertion/
│   │                           │           ├── RuleOfCondition.java
│   │                           │           └── ValidationStatusAssert.java
│   │                           └── io/
│   │                               └── FileAndContentUtils.java
│   ├── bonita-core/
│   │   ├── bonita-actor-mapping/
│   │   │   ├── build.gradle
│   │   │   └── src/
│   │   │       ├── main/
│   │   │       │   ├── java/
│   │   │       │   │   └── org/
│   │   │       │   │       └── bonitasoft/
│   │   │       │   │           └── engine/
│   │   │       │   │               └── actor/
│   │   │       │   │                   └── mapping/
│   │   │       │   │                       ├── ActorMappingService.java
│   │   │       │   │                       ├── SActorCreationException.java
│   │   │       │   │                       ├── SActorDeletionException.java
│   │   │       │   │                       ├── SActorMemberAlreadyExistsException.java
│   │   │       │   │                       ├── SActorMemberCreationException.java
│   │   │       │   │                       ├── SActorMemberDeletionException.java
│   │   │       │   │                       ├── SActorMemberNotFoundException.java
│   │   │       │   │                       ├── SActorNotFoundException.java
│   │   │       │   │                       ├── SActorUpdateException.java
│   │   │       │   │                       ├── impl/
│   │   │       │   │                       │   ├── ActorMappingServiceImpl.java
│   │   │       │   │                       │   ├── SActorLogBuilderFactoryImpl.java
│   │   │       │   │                       │   └── SActorLogBuilderImpl.java
│   │   │       │   │                       ├── model/
│   │   │       │   │                       │   ├── SActor.java
│   │   │       │   │                       │   ├── SActorFilter.java
│   │   │       │   │                       │   ├── SActorLogBuilder.java
│   │   │       │   │                       │   ├── SActorLogBuilderFactory.java
│   │   │       │   │                       │   ├── SActorMember.java
│   │   │       │   │                       │   ├── SActorUpdateBuilder.java
│   │   │       │   │                       │   ├── SActorUpdateBuilderFactory.java
│   │   │       │   │                       │   ├── SMemberType.java
│   │   │       │   │                       │   └── impl/
│   │   │       │   │                       │       ├── SActorUpdateBuilderFactoryImpl.java
│   │   │       │   │                       │       └── SActorUpdateBuilderImpl.java
│   │   │       │   │                       └── persistence/
│   │   │       │   │                           └── SelectDescriptorBuilder.java
│   │   │       │   └── resources/
│   │   │       │       └── org/
│   │   │       │           └── bonitasoft/
│   │   │       │               └── engine/
│   │   │       │                   └── actor/
│   │   │       │                       └── mapping/
│   │   │       │                           └── model/
│   │   │       │                               └── impl/
│   │   │       │                                   └── hibernate/
│   │   │       │                                       └── actor.queries.hbm.xml
│   │   │       └── test/
│   │   │           └── java/
│   │   │               └── org/
│   │   │                   └── bonitasoft/
│   │   │                       └── engine/
│   │   │                           └── actor/
│   │   │                               └── mapping/
│   │   │                                   └── impl/
│   │   │                                       └── ActorMappingServiceImplTest.java
│   │   ├── bonita-category/
│   │   │   ├── build.gradle
│   │   │   └── src/
│   │   │       ├── main/
│   │   │       │   ├── java/
│   │   │       │   │   └── org/
│   │   │       │   │       └── bonitasoft/
│   │   │       │   │           └── engine/
│   │   │       │   │               └── core/
│   │   │       │   │                   └── category/
│   │   │       │   │                       ├── CategoryService.java
│   │   │       │   │                       ├── SCategoryCriterion.java
│   │   │       │   │                       ├── exception/
│   │   │       │   │                       │   ├── SCategoryAlreadyExistsException.java
│   │   │       │   │                       │   ├── SCategoryCreationException.java
│   │   │       │   │                       │   ├── SCategoryDeletionException.java
│   │   │       │   │                       │   ├── SCategoryException.java
│   │   │       │   │                       │   ├── SCategoryInProcessAlreadyExistsException.java
│   │   │       │   │                       │   ├── SCategoryNotFoundException.java
│   │   │       │   │                       │   ├── SIndexOutOfRangeException.java
│   │   │       │   │                       │   └── SPageOutOfRangeException.java
│   │   │       │   │                       ├── impl/
│   │   │       │   │                       │   └── CategoryServiceImpl.java
│   │   │       │   │                       ├── model/
│   │   │       │   │                       │   ├── SCategory.java
│   │   │       │   │                       │   ├── SProcessCategoryMapping.java
│   │   │       │   │                       │   └── builder/
│   │   │       │   │                       │       ├── SCategoryLogBuilder.java
│   │   │       │   │                       │       ├── SCategoryLogBuilderFactory.java
│   │   │       │   │                       │       ├── SCategoryUpdateBuilder.java
│   │   │       │   │                       │       ├── SCategoryUpdateBuilderFactory.java
│   │   │       │   │                       │       ├── SProcessCategoryMappingBuilder.java
│   │   │       │   │                       │       ├── SProcessCategoryMappingBuilderFactory.java
│   │   │       │   │                       │       └── impl/
│   │   │       │   │                       │           ├── SCategoryLogBuilderFactoryImpl.java
│   │   │       │   │                       │           ├── SCategoryLogBuilderImpl.java
│   │   │       │   │                       │           ├── SCategoryLogIndexesMapper.java
│   │   │       │   │                       │           ├── SCategoryUpdateBuilderFactoryImpl.java
│   │   │       │   │                       │           ├── SCategoryUpdateBuilderImpl.java
│   │   │       │   │                       │           ├── SProcessCategoryMappingBuilderFactoryImpl.java
│   │   │       │   │                       │           └── SProcessCategoryMappingBuilderImpl.java
│   │   │       │   │                       └── persistence/
│   │   │       │   │                           └── SelectDescriptorBuilder.java
│   │   │       │   └── resources/
│   │   │       │       └── org/
│   │   │       │           └── bonitasoft/
│   │   │       │               └── engine/
│   │   │       │                   └── core/
│   │   │       │                       └── category/
│   │   │       │                           └── model/
│   │   │       │                               └── impl/
│   │   │       │                                   └── hibernate/
│   │   │       │                                       └── category.queries.hbm.xml
│   │   │       └── test/
│   │   │           └── java/
│   │   │               └── org/
│   │   │                   └── bonitasoft/
│   │   │                       └── engine/
│   │   │                           └── core/
│   │   │                               └── category/
│   │   │                                   └── impl/
│   │   │                                       └── CategoryServiceImplTest.java
│   │   ├── bonita-contract-data/
│   │   │   ├── build.gradle
│   │   │   └── src/
│   │   │       ├── main/
│   │   │       │   ├── java/
│   │   │       │   │   └── org/
│   │   │       │   │       └── bonitasoft/
│   │   │       │   │           └── engine/
│   │   │       │   │               └── core/
│   │   │       │   │                   └── contract/
│   │   │       │   │                       └── data/
│   │   │       │   │                           ├── ContractDataService.java
│   │   │       │   │                           ├── ContractDataServiceImpl.java
│   │   │       │   │                           ├── SAContractData.java
│   │   │       │   │                           ├── SAProcessContractData.java
│   │   │       │   │                           ├── SATaskContractData.java
│   │   │       │   │                           ├── SContractData.java
│   │   │       │   │                           ├── SContractDataCreationException.java
│   │   │       │   │                           ├── SContractDataDeletionException.java
│   │   │       │   │                           ├── SContractDataLogBuilder.java
│   │   │       │   │                           ├── SContractDataNotFoundException.java
│   │   │       │   │                           ├── SProcessContractData.java
│   │   │       │   │                           └── STaskContractData.java
│   │   │       │   └── resources/
│   │   │       │       └── org/
│   │   │       │           └── bonitasoft/
│   │   │       │               └── engine/
│   │   │       │                   └── core/
│   │   │       │                       └── contract/
│   │   │       │                           └── data/
│   │   │       │                               └── model/
│   │   │       │                                   └── impl/
│   │   │       │                                       └── hibernate/
│   │   │       │                                           └── contract.queries.hbm.xml
│   │   │       └── test/
│   │   │           └── java/
│   │   │               └── org/
│   │   │                   └── bonitasoft/
│   │   │                       └── engine/
│   │   │                           └── core/
│   │   │                               └── contract/
│   │   │                                   └── data/
│   │   │                                       ├── ContractDataServiceImplTest.java
│   │   │                                       ├── SAProcessContractDataTest.java
│   │   │                                       └── SATaskContractDataTest.java
│   │   ├── bonita-core-data/
│   │   │   ├── build.gradle
│   │   │   └── src/
│   │   │       ├── main/
│   │   │       │   └── java/
│   │   │       │       └── org/
│   │   │       │           └── bonitasoft/
│   │   │       │               └── engine/
│   │   │       │                   └── core/
│   │   │       │                       └── data/
│   │   │       │                           └── instance/
│   │   │       │                               ├── TransientDataService.java
│   │   │       │                               └── impl/
│   │   │       │                                   ├── TransientDataExpressionExecutorStrategy.java
│   │   │       │                                   └── TransientDataServiceImpl.java
│   │   │       └── test/
│   │   │           └── java/
│   │   │               └── org/
│   │   │                   └── bonitasoft/
│   │   │                       └── engine/
│   │   │                           └── core/
│   │   │                               └── data/
│   │   │                                   └── instance/
│   │   │                                       └── impl/
│   │   │                                           └── TransientDataServiceImplTest.java
│   │   ├── bonita-form-mapping/
│   │   │   ├── build.gradle
│   │   │   └── src/
│   │   │       ├── main/
│   │   │       │   ├── java/
│   │   │       │   │   └── org/
│   │   │       │   │       └── bonitasoft/
│   │   │       │   │           └── engine/
│   │   │       │   │               └── core/
│   │   │       │   │                   └── form/
│   │   │       │   │                       ├── AuthorizationRuleMapping.java
│   │   │       │   │                       ├── FormMappingKeyGenerator.java
│   │   │       │   │                       ├── FormMappingService.java
│   │   │       │   │                       ├── SFormMapping.java
│   │   │       │   │                       └── impl/
│   │   │       │   │                           ├── AuthorizationRuleMappingImpl.java
│   │   │       │   │                           ├── FormMappingKeyGeneratorImpl.java
│   │   │       │   │                           ├── FormMappingServiceImpl.java
│   │   │       │   │                           └── ManagerInvolvedAuthorizationRuleMappingImpl.java
│   │   │       │   └── resources/
│   │   │       │       └── org/
│   │   │       │           └── bonitasoft/
│   │   │       │               └── engine/
│   │   │       │                   └── core/
│   │   │       │                       └── form/
│   │   │       │                           └── impl/
│   │   │       │                               └── form-mapping.queries.hbm.xml
│   │   │       └── test/
│   │   │           └── java/
│   │   │               └── org/
│   │   │                   └── bonitasoft/
│   │   │                       └── engine/
│   │   │                           └── core/
│   │   │                               └── form/
│   │   │                                   └── impl/
│   │   │                                       ├── FormMappingKeyGeneratorImplTest.java
│   │   │                                       ├── FormMappingServiceImplTest.java
│   │   │                                       └── ManagerInvolvedAuthorizationRuleMappingImplTest.java
│   │   ├── bonita-home-server/
│   │   │   ├── build.gradle
│   │   │   └── src/
│   │   │       ├── main/
│   │   │       │   └── java/
│   │   │       │       └── org/
│   │   │       │           └── bonitasoft/
│   │   │       │               └── engine/
│   │   │       │                   └── home/
│   │   │       │                       ├── BonitaHomeServer.java
│   │   │       │                       ├── BonitaResource.java
│   │   │       │                       ├── ProfileStorage.java
│   │   │       │                       └── Util.java
│   │   │       └── test/
│   │   │           └── java/
│   │   │               └── org/
│   │   │                   └── bonitasoft/
│   │   │                       └── engine/
│   │   │                           └── home/
│   │   │                               ├── BonitaHomeServerTest.java
│   │   │                               ├── ProfileStorageTest.java
│   │   │                               └── UtilTest.java
│   │   ├── bonita-login/
│   │   │   ├── build.gradle
│   │   │   └── src/
│   │   │       ├── main/
│   │   │       │   └── java/
│   │   │       │       └── org/
│   │   │       │           └── bonitasoft/
│   │   │       │               └── engine/
│   │   │       │                   └── core/
│   │   │       │                       └── login/
│   │   │       │                           ├── LoginService.java
│   │   │       │                           ├── SLoginException.java
│   │   │       │                           ├── SecuredLoginServiceImpl.java
│   │   │       │                           └── TechnicalUser.java
│   │   │       └── test/
│   │   │           └── java/
│   │   │               └── org/
│   │   │                   └── bonitasoft/
│   │   │                       └── engine/
│   │   │                           └── core/
│   │   │                               └── login/
│   │   │                                   └── SecuredLoginServiceImplTest.java
│   │   ├── bonita-parameter/
│   │   │   ├── build.gradle
│   │   │   └── src/
│   │   │       ├── main/
│   │   │       │   ├── java/
│   │   │       │   │   └── org/
│   │   │       │   │       └── bonitasoft/
│   │   │       │   │           └── engine/
│   │   │       │   │               └── parameter/
│   │   │       │   │                   ├── OrderBy.java
│   │   │       │   │                   ├── ParameterService.java
│   │   │       │   │                   ├── ParameterServiceImpl.java
│   │   │       │   │                   ├── SOutOfBoundException.java
│   │   │       │   │                   ├── SParameter.java
│   │   │       │   │                   ├── SParameterNameNotFoundException.java
│   │   │       │   │                   └── SParameterProcessNotFoundException.java
│   │   │       │   └── resources/
│   │   │       │       └── org/
│   │   │       │           └── bonitasoft/
│   │   │       │               └── engine/
│   │   │       │                   └── parameter/
│   │   │       │                       └── parameter.queries.hbm.xml
│   │   │       └── test/
│   │   │           └── java/
│   │   │               └── org/
│   │   │                   └── bonitasoft/
│   │   │                       └── engine/
│   │   │                           └── parameter/
│   │   │                               └── ParameterServiceImplTest.java
│   │   ├── bonita-platform-login/
│   │   │   ├── build.gradle
│   │   │   └── src/
│   │   │       ├── main/
│   │   │       │   └── java/
│   │   │       │       └── org/
│   │   │       │           └── bonitasoft/
│   │   │       │               └── engine/
│   │   │       │                   └── core/
│   │   │       │                       └── platform/
│   │   │       │                           └── login/
│   │   │       │                               ├── PlatformLoginService.java
│   │   │       │                               ├── SInvalidPlatformCredentialsException.java
│   │   │       │                               ├── SPlatformLoginException.java
│   │   │       │                               └── impl/
│   │   │       │                                   └── PlatformLoginServiceImpl.java
│   │   │       └── test/
│   │   │           └── java/
│   │   │               └── org/
│   │   │                   └── bonitasoft/
│   │   │                       └── engine/
│   │   │                           └── core/
│   │   │                               └── platform/
│   │   │                                   └── login/
│   │   │                                       └── impl/
│   │   │                                           └── PlatformLoginServiceImplTest.java
│   │   ├── bonita-process-comment/
│   │   │   ├── build.gradle
│   │   │   └── src/
│   │   │       └── main/
│   │   │           ├── java/
│   │   │           │   └── org/
│   │   │           │       └── bonitasoft/
│   │   │           │           └── engine/
│   │   │           │               └── core/
│   │   │           │                   └── process/
│   │   │           │                       └── comment/
│   │   │           │                           ├── api/
│   │   │           │                           │   ├── SCommentAddException.java
│   │   │           │                           │   ├── SCommentDeletionException.java
│   │   │           │                           │   ├── SCommentException.java
│   │   │           │                           │   ├── SCommentNotFoundException.java
│   │   │           │                           │   ├── SCommentService.java
│   │   │           │                           │   ├── SystemCommentType.java
│   │   │           │                           │   └── impl/
│   │   │           │                           │       └── SCommentServiceImpl.java
│   │   │           │                           └── model/
│   │   │           │                               ├── SComment.java
│   │   │           │                               ├── SHumanComment.java
│   │   │           │                               ├── SSystemComment.java
│   │   │           │                               ├── archive/
│   │   │           │                               │   └── SAComment.java
│   │   │           │                               └── builder/
│   │   │           │                                   ├── SCommentLogBuilderFactory.java
│   │   │           │                                   └── impl/
│   │   │           │                                       └── SCommentLogBuilderFactoryImpl.java
│   │   │           └── resources/
│   │   │               └── org/
│   │   │                   └── bonitasoft/
│   │   │                       └── engine/
│   │   │                           └── core/
│   │   │                               └── process/
│   │   │                                   └── comment/
│   │   │                                       └── model/
│   │   │                                           └── impl/
│   │   │                                               └── hibernate/
│   │   │                                                   ├── archive.comment.queries.hbm.xml
│   │   │                                                   └── comment.queries.hbm.xml
│   │   ├── bonita-process-definition/
│   │   │   ├── build.gradle
│   │   │   └── src/
│   │   │       ├── main/
│   │   │       │   ├── java/
│   │   │       │   │   └── org/
│   │   │       │   │       └── bonitasoft/
│   │   │       │   │           └── engine/
│   │   │       │   │               └── core/
│   │   │       │   │                   ├── expression/
│   │   │       │   │                   │   └── control/
│   │   │       │   │                   │       ├── api/
│   │   │       │   │                   │       │   ├── ExpressionResolverService.java
│   │   │       │   │                   │       │   └── impl/
│   │   │       │   │                   │       │       └── ExpressionResolverServiceImpl.java
│   │   │       │   │                   │       └── model/
│   │   │       │   │                   │           └── SExpressionContext.java
│   │   │       │   │                   ├── operation/
│   │   │       │   │                   │   ├── LeftOperandHandler.java
│   │   │       │   │                   │   ├── OperationExecutorStrategy.java
│   │   │       │   │                   │   ├── OperationExecutorStrategyProvider.java
│   │   │       │   │                   │   ├── OperationResult.java
│   │   │       │   │                   │   ├── OperationService.java
│   │   │       │   │                   │   ├── exception/
│   │   │       │   │                   │   │   └── SOperationExecutionException.java
│   │   │       │   │                   │   ├── impl/
│   │   │       │   │                   │   │   ├── AssignmentOperationExecutorStrategy.java
│   │   │       │   │                   │   │   ├── ExternalDataLeftOperandHandler.java
│   │   │       │   │                   │   │   ├── JavaMethodOperationExecutorStrategy.java
│   │   │       │   │                   │   │   ├── LeftOperandIndexes.java
│   │   │       │   │                   │   │   ├── LeftOperandUpdateStatus.java
│   │   │       │   │                   │   │   ├── OperationServiceImpl.java
│   │   │       │   │                   │   │   ├── OperationsAnalyzer.java
│   │   │       │   │                   │   │   ├── PersistRightOperandResolver.java
│   │   │       │   │                   │   │   └── XpathUpdateQueryOperationExecutorStrategy.java
│   │   │       │   │                   │   └── model/
│   │   │       │   │                   │       ├── SLeftOperand.java
│   │   │       │   │                   │       ├── SOperation.java
│   │   │       │   │                   │       ├── SOperatorType.java
│   │   │       │   │                   │       ├── builder/
│   │   │       │   │                   │       │   ├── SLeftOperandBuilder.java
│   │   │       │   │                   │       │   ├── SLeftOperandBuilderFactory.java
│   │   │       │   │                   │       │   ├── SOperationBuilder.java
│   │   │       │   │                   │       │   ├── SOperationBuilderFactory.java
│   │   │       │   │                   │       │   └── impl/
│   │   │       │   │                   │       │       ├── SLeftOperandBuilderFactoryImpl.java
│   │   │       │   │                   │       │       ├── SLeftOperandBuilderImpl.java
│   │   │       │   │                   │       │       ├── SOperationBuilderFactoryImpl.java
│   │   │       │   │                   │       │       └── SOperationBuilderImpl.java
│   │   │       │   │                   │       └── impl/
│   │   │       │   │                   │           ├── SLeftOperandImpl.java
│   │   │       │   │                   │           └── SOperationImpl.java
│   │   │       │   │                   └── process/
│   │   │       │   │                       └── definition/
│   │   │       │   │                           ├── ProcessDefinitionService.java
│   │   │       │   │                           ├── ProcessDefinitionServiceImpl.java
│   │   │       │   │                           ├── exception/
│   │   │       │   │                           │   ├── SDeletingEnabledProcessException.java
│   │   │       │   │                           │   ├── SProcessDefinitionException.java
│   │   │       │   │                           │   ├── SProcessDefinitionNotFoundException.java
│   │   │       │   │                           │   ├── SProcessDeletionException.java
│   │   │       │   │                           │   ├── SProcessDeploymentInfoUpdateException.java
│   │   │       │   │                           │   ├── SProcessDisablementException.java
│   │   │       │   │                           │   └── SProcessEnablementException.java
│   │   │       │   │                           └── model/
│   │   │       │   │                               ├── SActivityDefinition.java
│   │   │       │   │                               ├── SActorDefinition.java
│   │   │       │   │                               ├── SAutomaticTaskDefinition.java
│   │   │       │   │                               ├── SBaseElement.java
│   │   │       │   │                               ├── SBoundaryEventNotFoundException.java
│   │   │       │   │                               ├── SBusinessDataDefinition.java
│   │   │       │   │                               ├── SCallActivityDefinition.java
│   │   │       │   │                               ├── SCallableElementType.java
│   │   │       │   │                               ├── SConnectorDefinition.java
│   │   │       │   │                               ├── SConstraintDefinition.java
│   │   │       │   │                               ├── SContextEntry.java
│   │   │       │   │                               ├── SContractDefinition.java
│   │   │       │   │                               ├── SDocumentDefinition.java
│   │   │       │   │                               ├── SDocumentListDefinition.java
│   │   │       │   │                               ├── SFlowElementContainerDefinition.java
│   │   │       │   │                               ├── SFlowNodeDefinition.java
│   │   │       │   │                               ├── SFlowNodeType.java
│   │   │       │   │                               ├── SGatewayDefinition.java
│   │   │       │   │                               ├── SGatewayType.java
│   │   │       │   │                               ├── SHumanTaskDefinition.java
│   │   │       │   │                               ├── SInputContainerDefinition.java
│   │   │       │   │                               ├── SInputDefinition.java
│   │   │       │   │                               ├── SLoopCharacteristics.java
│   │   │       │   │                               ├── SManualTaskDefinition.java
│   │   │       │   │                               ├── SMultiInstanceLoopCharacteristics.java
│   │   │       │   │                               ├── SNamedElement.java
│   │   │       │   │                               ├── SParameterDefinition.java
│   │   │       │   │                               ├── SProcessDefinition.java
│   │   │       │   │                               ├── SProcessDefinitionDeployInfo.java
│   │   │       │   │                               ├── SProcessDefinitionDesignContent.java
│   │   │       │   │                               ├── SReceiveTaskDefinition.java
│   │   │       │   │                               ├── SSendTaskDefinition.java
│   │   │       │   │                               ├── SStandardLoopCharacteristics.java
│   │   │       │   │                               ├── SSubProcessDefinition.java
│   │   │       │   │                               ├── STaskDefinition.java
│   │   │       │   │                               ├── STransitionDefinition.java
│   │   │       │   │                               ├── SType.java
│   │   │       │   │                               ├── SUserFilterDefinition.java
│   │   │       │   │                               ├── SUserTaskDefinition.java
│   │   │       │   │                               ├── TransitionState.java
│   │   │       │   │                               ├── builder/
│   │   │       │   │                               │   ├── SActorLogBuilder.java
│   │   │       │   │                               │   ├── SActorLogBuilderFactory.java
│   │   │       │   │                               │   ├── SBusinessDataDefinitionBuilder.java
│   │   │       │   │                               │   ├── SBusinessDataDefinitionBuilderFactory.java
│   │   │       │   │                               │   ├── SProcessDefinitionBuilder.java
│   │   │       │   │                               │   ├── SProcessDefinitionBuilderFactory.java
│   │   │       │   │                               │   ├── SProcessDefinitionDeployInfoUpdateBuilder.java
│   │   │       │   │                               │   ├── SProcessDefinitionDeployInfoUpdateBuilderFactory.java
│   │   │       │   │                               │   ├── SProcessDefinitionLogBuilder.java
│   │   │       │   │                               │   ├── SProcessDefinitionLogBuilderFactory.java
│   │   │       │   │                               │   ├── ServerModelConvertor.java
│   │   │       │   │                               │   ├── event/
│   │   │       │   │                               │   │   └── trigger/
│   │   │       │   │                               │   │       ├── SEndEventDefinitionBuilder.java
│   │   │       │   │                               │   │       ├── SEndEventDefinitionBuilderFactory.java
│   │   │       │   │                               │   │       ├── SThrowErrorEventTriggerDefinitionBuilder.java
│   │   │       │   │                               │   │       ├── SThrowErrorEventTriggerDefinitionBuilderFactory.java
│   │   │       │   │                               │   │       ├── SThrowMessageEventTriggerDefinitionBuilder.java
│   │   │       │   │                               │   │       ├── SThrowMessageEventTriggerDefinitionBuilderFactory.java
│   │   │       │   │                               │   │       ├── SThrowSignalEventTriggerDefinitionBuilder.java
│   │   │       │   │                               │   │       ├── SThrowSignalEventTriggerDefinitionBuilderFactory.java
│   │   │       │   │                               │   │       └── impl/
│   │   │       │   │                               │   │           ├── SEndEventDefinitionBuilderFactoryImpl.java
│   │   │       │   │                               │   │           ├── SEndEventDefinitionBuilderImpl.java
│   │   │       │   │                               │   │           ├── SThrowErrorEventTriggerDefinitionBuilderFactoryImpl.java
│   │   │       │   │                               │   │           ├── SThrowErrorEventTriggerDefinitionBuilderImpl.java
│   │   │       │   │                               │   │           ├── SThrowMessageEventTriggerDefinitionBuilderFactoryImpl.java
│   │   │       │   │                               │   │           ├── SThrowMessageEventTriggerDefinitionBuilderImpl.java
│   │   │       │   │                               │   │           ├── SThrowSignalEventTriggerDefinitionBuilderFactoryImpl.java
│   │   │       │   │                               │   │           └── SThrowSignalEventTriggerDefinitionBuilderImpl.java
│   │   │       │   │                               │   └── impl/
│   │   │       │   │                               │       ├── ProcessDefinitionLogIndexesMapper.java
│   │   │       │   │                               │       ├── SBusinessDataDefinitionBuilderFactoryImpl.java
│   │   │       │   │                               │       ├── SBusinessDataDefinitionBuilderImpl.java
│   │   │       │   │                               │       ├── SProcessDefinitionBuilderFactoryImpl.java
│   │   │       │   │                               │       ├── SProcessDefinitionBuilderImpl.java
│   │   │       │   │                               │       ├── SProcessDefinitionDeployInfoUpdateBuilderFactoryImpl.java
│   │   │       │   │                               │       ├── SProcessDefinitionDeployInfoUpdateBuilderImpl.java
│   │   │       │   │                               │       ├── SProcessDefinitionLogBuilderFactoryImpl.java
│   │   │       │   │                               │       └── SProcessDefinitionLogBuilderImpl.java
│   │   │       │   │                               ├── event/
│   │   │       │   │                               │   ├── SBoundaryEventDefinition.java
│   │   │       │   │                               │   ├── SCatchEventDefinition.java
│   │   │       │   │                               │   ├── SEndEventDefinition.java
│   │   │       │   │                               │   ├── SEventDefinition.java
│   │   │       │   │                               │   ├── SImplicitThrowEventDefinition.java
│   │   │       │   │                               │   ├── SIntermediateCatchEventDefinition.java
│   │   │       │   │                               │   ├── SIntermediateThrowEventDefinition.java
│   │   │       │   │                               │   ├── SStartEventDefinition.java
│   │   │       │   │                               │   ├── SThrowEventDefinition.java
│   │   │       │   │                               │   ├── impl/
│   │   │       │   │                               │   │   ├── SBoundaryEventDefinitionImpl.java
│   │   │       │   │                               │   │   ├── SCatchEventDefinitionImpl.java
│   │   │       │   │                               │   │   ├── SEndEventDefinitionImpl.java
│   │   │       │   │                               │   │   ├── SEventDefinitionImpl.java
│   │   │       │   │                               │   │   ├── SIntermediateCatchEventDefinitionImpl.java
│   │   │       │   │                               │   │   ├── SIntermediateThrowEventDefinitionImpl.java
│   │   │       │   │                               │   │   ├── SStartEventDefinitionImpl.java
│   │   │       │   │                               │   │   └── SThrowEventDefinitionImpl.java
│   │   │       │   │                               │   └── trigger/
│   │   │       │   │                               │       ├── SCatchErrorEventTriggerDefinition.java
│   │   │       │   │                               │       ├── SCatchMessageEventTriggerDefinition.java
│   │   │       │   │                               │       ├── SCatchSignalEventTriggerDefinition.java
│   │   │       │   │                               │       ├── SCorrelationDefinition.java
│   │   │       │   │                               │       ├── SErrorEventTriggerDefinition.java
│   │   │       │   │                               │       ├── SEventTriggerDefinition.java
│   │   │       │   │                               │       ├── SEventTriggerType.java
│   │   │       │   │                               │       ├── SMessageEventTriggerDefinition.java
│   │   │       │   │                               │       ├── SSignalEventTriggerDefinition.java
│   │   │       │   │                               │       ├── STerminateEventTriggerDefinition.java
│   │   │       │   │                               │       ├── SThrowErrorEventTriggerDefinition.java
│   │   │       │   │                               │       ├── SThrowMessageEventTriggerDefinition.java
│   │   │       │   │                               │       ├── SThrowSignalEventTriggerDefinition.java
│   │   │       │   │                               │       ├── STimerEventTriggerDefinition.java
│   │   │       │   │                               │       ├── STimerType.java
│   │   │       │   │                               │       └── impl/
│   │   │       │   │                               │           ├── SCatchErrorEventTriggerDefinitionImpl.java
│   │   │       │   │                               │           ├── SCatchMessageEventTriggerDefinitionImpl.java
│   │   │       │   │                               │           ├── SCatchSignalEventTriggerDefinitionImpl.java
│   │   │       │   │                               │           ├── SCorrelationDefinitionImpl.java
│   │   │       │   │                               │           ├── SErrorEventTriggerDefinitionImpl.java
│   │   │       │   │                               │           ├── SEventTriggerDefinitionImpl.java
│   │   │       │   │                               │           ├── SMessageEventTriggerDefinitionImpl.java
│   │   │       │   │                               │           ├── SSignalEventTriggerDefinitionImpl.java
│   │   │       │   │                               │           ├── STerminateEventTriggerDefinitionImpl.java
│   │   │       │   │                               │           ├── SThrowErrorEventTriggerDefinitionImpl.java
│   │   │       │   │                               │           ├── SThrowMessageEventTriggerDefinitionImpl.java
│   │   │       │   │                               │           ├── SThrowSignalEventTriggerDefinitionImpl.java
│   │   │       │   │                               │           └── STimerEventTriggerDefinitionImpl.java
│   │   │       │   │                               └── impl/
│   │   │       │   │                                   ├── SActivityDefinitionImpl.java
│   │   │       │   │                                   ├── SActorDefinitionImpl.java
│   │   │       │   │                                   ├── SAutomaticTaskDefinitionImpl.java
│   │   │       │   │                                   ├── SBaseElementImpl.java
│   │   │       │   │                                   ├── SBusinessDataDefinitionImpl.java
│   │   │       │   │                                   ├── SCallActivityDefinitionImpl.java
│   │   │       │   │                                   ├── SConnectorDefinitionImpl.java
│   │   │       │   │                                   ├── SConstraintDefinitionImpl.java
│   │   │       │   │                                   ├── SContextEntryImpl.java
│   │   │       │   │                                   ├── SContractDefinitionImpl.java
│   │   │       │   │                                   ├── SDocumentDefinitionImpl.java
│   │   │       │   │                                   ├── SDocumentListDefinitionImpl.java
│   │   │       │   │                                   ├── SFlowElementContainerDefinitionImpl.java
│   │   │       │   │                                   ├── SFlowNodeDefinitionImpl.java
│   │   │       │   │                                   ├── SGatewayDefinitionImpl.java
│   │   │       │   │                                   ├── SHumanTaskDefinitionImpl.java
│   │   │       │   │                                   ├── SInputDefinitionImpl.java
│   │   │       │   │                                   ├── SManualTaskDefinitionImpl.java
│   │   │       │   │                                   ├── SMultiInstanceLoopCharacteristicsImpl.java
│   │   │       │   │                                   ├── SNamedElementImpl.java
│   │   │       │   │                                   ├── SParameterDefinitionImpl.java
│   │   │       │   │                                   ├── SProcessDefinitionImpl.java
│   │   │       │   │                                   ├── SReceiveTaskDefinitionImpl.java
│   │   │       │   │                                   ├── SSendTaskDefinitionImpl.java
│   │   │       │   │                                   ├── SStandardLoopCharacteristicsImpl.java
│   │   │       │   │                                   ├── SSubProcessDefinitionImpl.java
│   │   │       │   │                                   ├── STransitionDefinitionImpl.java
│   │   │       │   │                                   ├── SUserFilterDefinitionImpl.java
│   │   │       │   │                                   └── SUserTaskDefinitionImpl.java
│   │   │       │   └── resources/
│   │   │       │       └── org/
│   │   │       │           └── bonitasoft/
│   │   │       │               └── engine/
│   │   │       │                   └── core/
│   │   │       │                       └── process/
│   │   │       │                           └── definition/
│   │   │       │                               └── model/
│   │   │       │                                   └── impl/
│   │   │       │                                       └── hibernate/
│   │   │       │                                           └── process.definition.queries.hbm.xml
│   │   │       └── test/
│   │   │           └── java/
│   │   │               └── org/
│   │   │                   └── bonitasoft/
│   │   │                       └── engine/
│   │   │                           └── core/
│   │   │                               ├── expression/
│   │   │                               │   └── control/
│   │   │                               │       ├── api/
│   │   │                               │       │   └── impl/
│   │   │                               │       │       └── ExpressionResolverServiceImplTest.java
│   │   │                               │       └── model/
│   │   │                               │           └── SExpressionContextTest.java
│   │   │                               ├── operation/
│   │   │                               │   └── impl/
│   │   │                               │       ├── AssignmentOperationExecutorStrategyTest.java
│   │   │                               │       ├── ExternalDataLeftOperandHandlerTest.java
│   │   │                               │       ├── JavaMethodOperationExecutorStrategyTest.java
│   │   │                               │       ├── LeftOperandIndexesTest.java
│   │   │                               │       ├── LeftOperandUpdateStatusTest.java
│   │   │                               │       ├── OperationMockBuilder.java
│   │   │                               │       ├── OperationServiceImplTest.java
│   │   │                               │       ├── OperationsAnalyzerTest.java
│   │   │                               │       ├── PersistRightOperandResolverTest.java
│   │   │                               │       └── XpathUpdateQueryOperationExecutorStrategyTest.java
│   │   │                               └── process/
│   │   │                                   └── definition/
│   │   │                                       ├── ProcessDefinitionServiceImplTest.java
│   │   │                                       └── model/
│   │   │                                           ├── STypeBooleanValidationTest.java
│   │   │                                           ├── STypeByteArrayValidationTest.java
│   │   │                                           ├── STypeDateValidationTest.java
│   │   │                                           ├── STypeDecimalValidationTest.java
│   │   │                                           ├── STypeIntegerValidationTest.java
│   │   │                                           ├── STypeLocalDateTest.java
│   │   │                                           ├── STypeLocalDateTimeTest.java
│   │   │                                           ├── STypeOffsetDateTimeTest.java
│   │   │                                           ├── STypeTextValidationTest.java
│   │   │                                           ├── builder/
│   │   │                                           │   ├── ServerModelConvertorTest.java
│   │   │                                           │   └── impl/
│   │   │                                           │       └── SBusinessDataDefinitionBuilderFactoryImplTest.java
│   │   │                                           ├── event/
│   │   │                                           │   └── impl/
│   │   │                                           │       ├── SBoundaryEventDefinitionImplTest.java
│   │   │                                           │       └── SStartEventDefinitionImplTest.java
│   │   │                                           └── impl/
│   │   │                                               ├── SCatchEventDefinitionImplTest.java
│   │   │                                               ├── SConstraintDefinitionImplTest.java
│   │   │                                               ├── SFlowNodeDefinitionImplTest.java
│   │   │                                               ├── SGatewayDefinitionImplTest.java
│   │   │                                               ├── SInputDefinitionImplTest.java
│   │   │                                               ├── SSubProcessDefinitionImplTest.java
│   │   │                                               ├── STransitionDefinitionImplTest.java
│   │   │                                               └── SUserTaskDefinitionImplTest.java
│   │   ├── bonita-process-engine/
│   │   │   ├── FlowStatesMapping.txt
│   │   │   ├── build.gradle
│   │   │   └── src/
│   │   │       ├── main/
│   │   │       │   ├── groovy/
│   │   │       │   │   └── org/
│   │   │       │   │       └── bonitasoft/
│   │   │       │   │           └── permissions/
│   │   │       │   │               ├── ActorMemberPermissionRule.groovy
│   │   │       │   │               ├── ActorPermissionRule.groovy
│   │   │       │   │               ├── ApplicationMenuPermissionRule.groovy
│   │   │       │   │               ├── ApplicationPermissionCommon.groovy
│   │   │       │   │               ├── ApplicationPermissionRule.groovy
│   │   │       │   │               ├── CaseContextPermissionRule.groovy
│   │   │       │   │               ├── CasePermissionRule.groovy
│   │   │       │   │               ├── CaseVariablePermissionRule.groovy
│   │   │       │   │               ├── CommentPermissionRule.groovy
│   │   │       │   │               ├── ConnectorInstancePermissionRule.groovy
│   │   │       │   │               ├── DocumentPermissionRule.groovy
│   │   │       │   │               ├── DownloadDocumentPermissionRule.groovy
│   │   │       │   │               ├── ProcessConfigurationPermissionRule.groovy
│   │   │       │   │               ├── ProcessConnectorDependencyPermissionRule.groovy
│   │   │       │   │               ├── ProcessInstantiationPermissionRule.groovy
│   │   │       │   │               ├── ProcessPermissionRule.groovy
│   │   │       │   │               ├── ProcessResolutionProblemPermissionRule.groovy
│   │   │       │   │               ├── ProcessSupervisorPermissionRule.groovy
│   │   │       │   │               ├── ProfilePermissionRule.groovy
│   │   │       │   │               ├── TaskExecutionPermissionRule.groovy
│   │   │       │   │               ├── TaskPermissionRule.groovy
│   │   │       │   │               └── UserPermissionRule.groovy
│   │   │       │   ├── java/
│   │   │       │   │   └── org/
│   │   │       │   │       └── bonitasoft/
│   │   │       │   │           └── engine/
│   │   │       │   │               ├── EngineConfiguration.java
│   │   │       │   │               ├── EngineInitializer.java
│   │   │       │   │               ├── LocalLoginMechanism.java
│   │   │       │   │               ├── SArchivingException.java
│   │   │       │   │               ├── api/
│   │   │       │   │               │   ├── impl/
│   │   │       │   │               │   │   ├── APIAccessorImpl.java
│   │   │       │   │               │   │   ├── APIUtils.java
│   │   │       │   │               │   │   ├── ApplicationAPIImpl.java
│   │   │       │   │               │   │   ├── AvailableInMaintenanceMode.java
│   │   │       │   │               │   │   ├── AvailableOnStoppedNode.java
│   │   │       │   │               │   │   ├── BusinessDataAPIImpl.java
│   │   │       │   │               │   │   ├── CommandAPIImpl.java
│   │   │       │   │               │   │   ├── CustomUserInfoAPIDelegate.java
│   │   │       │   │               │   │   ├── CustomUserInfoDefinitionAPIDelegate.java
│   │   │       │   │               │   │   ├── DocumentAPIImpl.java
│   │   │       │   │               │   │   ├── IdentityAPIImpl.java
│   │   │       │   │               │   │   ├── LoginAPIImpl.java
│   │   │       │   │               │   │   ├── MaintenanceAPIImpl.java
│   │   │       │   │               │   │   ├── OrderAndFields.java
│   │   │       │   │               │   │   ├── OrganizationAPIImpl.java
│   │   │       │   │               │   │   ├── PageAPIImpl.java
│   │   │       │   │               │   │   ├── PermissionAPIImpl.java
│   │   │       │   │               │   │   ├── PlatformAPIImpl.java
│   │   │       │   │               │   │   ├── PlatformCommandAPIImpl.java
│   │   │       │   │               │   │   ├── PlatformLoginAPIImpl.java
│   │   │       │   │               │   │   ├── ProcessAPIImpl.java
│   │   │       │   │               │   │   ├── ProcessConfigurationAPIImpl.java
│   │   │       │   │               │   │   ├── ProcessDeploymentAPIDelegate.java
│   │   │       │   │               │   │   ├── ProcessInvolvementDelegate.java
│   │   │       │   │               │   │   ├── ProcessManagementAPIImplDelegate.java
│   │   │       │   │               │   │   ├── ProcessStarter.java
│   │   │       │   │               │   │   ├── ProfileAPIImpl.java
│   │   │       │   │               │   │   ├── SCustomUserInfoValueAPI.java
│   │   │       │   │               │   │   ├── ServerAPIFactory.java
│   │   │       │   │               │   │   ├── ServerAPIImpl.java
│   │   │       │   │               │   │   ├── ServerAPIRuntimeException.java
│   │   │       │   │               │   │   ├── SessionInfos.java
│   │   │       │   │               │   │   ├── StarterThread.java
│   │   │       │   │               │   │   ├── TaskInvolvementDelegate.java
│   │   │       │   │               │   │   ├── TenantAdministrationAPIImpl.java
│   │   │       │   │               │   │   ├── WithLock.java
│   │   │       │   │               │   │   ├── application/
│   │   │       │   │               │   │   │   └── installer/
│   │   │       │   │               │   │   │       ├── ApplicationArchive.java
│   │   │       │   │               │   │   │       ├── ApplicationArchiveReader.java
│   │   │       │   │               │   │   │       ├── ApplicationInstaller.java
│   │   │       │   │               │   │   │       ├── ApplicationInstallerImpl.java
│   │   │       │   │               │   │   │       ├── CustomOrDefaultApplicationInstaller.java
│   │   │       │   │               │   │   │       └── detector/
│   │   │       │   │               │   │   │           ├── ArtifactDetector.java
│   │   │       │   │               │   │   │           ├── ArtifactTypeDetector.java
│   │   │       │   │               │   │   │           ├── BdmDetector.java
│   │   │       │   │               │   │   │           ├── CustomPageDetector.java
│   │   │       │   │               │   │   │           ├── IconDetector.java
│   │   │       │   │               │   │   │           ├── LayoutDetector.java
│   │   │       │   │               │   │   │           ├── LivingApplicationDetector.java
│   │   │       │   │               │   │   │           ├── OrganizationDetector.java
│   │   │       │   │               │   │   │           ├── PageAndFormDetector.java
│   │   │       │   │               │   │   │           ├── ProcessDetector.java
│   │   │       │   │               │   │   │           ├── ThemeDetector.java
│   │   │       │   │               │   │   │           └── XmlDetector.java
│   │   │       │   │               │   │   ├── connector/
│   │   │       │   │               │   │   │   ├── ConnectorResetStrategy.java
│   │   │       │   │               │   │   │   ├── ConnectorReseter.java
│   │   │       │   │               │   │   │   └── ResetAllFailedConnectorStrategy.java
│   │   │       │   │               │   │   ├── converter/
│   │   │       │   │               │   │   │   ├── ApplicationMenuModelConverter.java
│   │   │       │   │               │   │   │   ├── ApplicationModelConverter.java
│   │   │       │   │               │   │   │   ├── ApplicationPageModelConverter.java
│   │   │       │   │               │   │   │   └── PageModelConverter.java
│   │   │       │   │               │   │   ├── flownode/
│   │   │       │   │               │   │   │   └── FlowNodeRetrier.java
│   │   │       │   │               │   │   ├── livingapplication/
│   │   │       │   │               │   │   │   ├── LivingApplicationAPIDelegate.java
│   │   │       │   │               │   │   │   ├── LivingApplicationExporterDelegate.java
│   │   │       │   │               │   │   │   ├── LivingApplicationMenuAPIDelegate.java
│   │   │       │   │               │   │   │   └── LivingApplicationPageAPIDelegate.java
│   │   │       │   │               │   │   ├── organization/
│   │   │       │   │               │   │   │   └── OrganizationAPIDelegate.java
│   │   │       │   │               │   │   ├── page/
│   │   │       │   │               │   │   │   └── PageAPIDelegate.java
│   │   │       │   │               │   │   ├── platform/
│   │   │       │   │               │   │   │   └── PlatformInformationAPIImpl.java
│   │   │       │   │               │   │   ├── profile/
│   │   │       │   │               │   │   │   └── ProfileAPIDelegate.java
│   │   │       │   │               │   │   ├── resolver/
│   │   │       │   │               │   │   │   ├── ActorBusinessArchiveArtifactManager.java
│   │   │       │   │               │   │   │   ├── BARResourceArtifactManager.java
│   │   │       │   │               │   │   │   ├── BusinessArchiveArtifactManager.java
│   │   │       │   │               │   │   │   ├── BusinessArchiveArtifactsManager.java
│   │   │       │   │               │   │   │   ├── BusinessDataBusinessArchiveArtifactManager.java
│   │   │       │   │               │   │   │   ├── ClasspathArtifactManager.java
│   │   │       │   │               │   │   │   ├── ConnectorBusinessArchiveArtifactManager.java
│   │   │       │   │               │   │   │   ├── DocumentInitialValueArtifactManager.java
│   │   │       │   │               │   │   │   ├── ExternalResourceArtifactManager.java
│   │   │       │   │               │   │   │   ├── FormMappingAndPageArtifactManager.java
│   │   │       │   │               │   │   │   ├── ParameterBusinessArchiveArtifactManager.java
│   │   │       │   │               │   │   │   └── UserFilterBusinessArchiveArtifactManager.java
│   │   │       │   │               │   │   └── transaction/
│   │   │       │   │               │   │       ├── AbstractGetEntity.java
│   │   │       │   │               │   │       ├── CustomTransactions.java
│   │   │       │   │               │   │       ├── activity/
│   │   │       │   │               │   │       │   ├── GetActivityInstances.java
│   │   │       │   │               │   │       │   ├── GetArchivedActivityInstance.java
│   │   │       │   │               │   │       │   ├── GetArchivedActivityInstances.java
│   │   │       │   │               │   │       │   ├── GetContractOfUserTaskInstance.java
│   │   │       │   │               │   │       │   └── GetNumberOfActivityInstance.java
│   │   │       │   │               │   │       ├── actor/
│   │   │       │   │               │   │       │   ├── AddActor.java
│   │   │       │   │               │   │       │   ├── AddActorMember.java
│   │   │       │   │               │   │       │   ├── ExportActorMapping.java
│   │   │       │   │               │   │       │   ├── GetActor.java
│   │   │       │   │               │   │       │   ├── GetActorInitiators.java
│   │   │       │   │               │   │       │   ├── GetActorsByActorIds.java
│   │   │       │   │               │   │       │   ├── GetNumberOfActorMembers.java
│   │   │       │   │               │   │       │   ├── GetNumberOfActors.java
│   │   │       │   │               │   │       │   ├── GetNumberOfGroupsOfActor.java
│   │   │       │   │               │   │       │   ├── GetNumberOfMembershipsOfActor.java
│   │   │       │   │               │   │       │   ├── GetNumberOfRolesOfActor.java
│   │   │       │   │               │   │       │   ├── GetNumberOfUsersOfActor.java
│   │   │       │   │               │   │       │   ├── ImportActorMapping.java
│   │   │       │   │               │   │       │   └── RemoveActorMember.java
│   │   │       │   │               │   │       ├── application/
│   │   │       │   │               │   │       │   ├── SearchApplicationMenus.java
│   │   │       │   │               │   │       │   ├── SearchApplicationPages.java
│   │   │       │   │               │   │       │   ├── SearchApplications.java
│   │   │       │   │               │   │       │   └── SearchApplicationsOfUser.java
│   │   │       │   │               │   │       ├── category/
│   │   │       │   │               │   │       │   ├── CreateCategory.java
│   │   │       │   │               │   │       │   ├── DeleteSCategory.java
│   │   │       │   │               │   │       │   ├── GetCategories.java
│   │   │       │   │               │   │       │   ├── GetCategory.java
│   │   │       │   │               │   │       │   ├── GetNumberOfCategories.java
│   │   │       │   │               │   │       │   ├── GetNumberOfCategoriesOfProcess.java
│   │   │       │   │               │   │       │   ├── GetNumberOfCategoriesUnrelatedToProcess.java
│   │   │       │   │               │   │       │   ├── RemoveCategoriesFromProcessDefinition.java
│   │   │       │   │               │   │       │   ├── RemoveProcessDefinitionsOfCategory.java
│   │   │       │   │               │   │       │   └── UpdateCategory.java
│   │   │       │   │               │   │       ├── command/
│   │   │       │   │               │   │       │   ├── DeleteSCommand.java
│   │   │       │   │               │   │       │   └── GetCommands.java
│   │   │       │   │               │   │       ├── connector/
│   │   │       │   │               │   │       │   └── GetConnectorImplementation.java
│   │   │       │   │               │   │       ├── document/
│   │   │       │   │               │   │       │   └── GetDocumentByNameAtProcessInstantiation.java
│   │   │       │   │               │   │       ├── event/
│   │   │       │   │               │   │       │   └── GetEventInstances.java
│   │   │       │   │               │   │       ├── expression/
│   │   │       │   │               │   │       │   ├── AbstractEvaluateExpressionsInstance.java
│   │   │       │   │               │   │       │   ├── EntityMerger.java
│   │   │       │   │               │   │       │   ├── EvaluateExpression.java
│   │   │       │   │               │   │       │   ├── EvaluateExpressionsDefinitionLevel.java
│   │   │       │   │               │   │       │   ├── EvaluateExpressionsInstanceLevel.java
│   │   │       │   │               │   │       │   └── EvaluateExpressionsInstanceLevelAndArchived.java
│   │   │       │   │               │   │       ├── flownode/
│   │   │       │   │               │   │       │   ├── GetFlowNodeInstance.java
│   │   │       │   │               │   │       │   ├── SearchFlowNodeInstances.java
│   │   │       │   │               │   │       │   └── SetExpectedEndDate.java
│   │   │       │   │               │   │       ├── identity/
│   │   │       │   │               │   │       │   ├── AddUserMembership.java
│   │   │       │   │               │   │       │   ├── AddUserMemberships.java
│   │   │       │   │               │   │       │   ├── DeleteGroup.java
│   │   │       │   │               │   │       │   ├── DeleteGroups.java
│   │   │       │   │               │   │       │   ├── DeleteRole.java
│   │   │       │   │               │   │       │   ├── DeleteRoles.java
│   │   │       │   │               │   │       │   ├── DeleteUser.java
│   │   │       │   │               │   │       │   ├── DeleteUsers.java
│   │   │       │   │               │   │       │   ├── DeleteWithActorMembers.java
│   │   │       │   │               │   │       │   ├── GetGroups.java
│   │   │       │   │               │   │       │   ├── GetNumberOfInstance.java
│   │   │       │   │               │   │       │   ├── GetNumberOfUserMemberships.java
│   │   │       │   │               │   │       │   ├── GetNumberOfUsersInType.java
│   │   │       │   │               │   │       │   ├── GetRoles.java
│   │   │       │   │               │   │       │   ├── GetSContactInfo.java
│   │   │       │   │               │   │       │   ├── GetSUser.java
│   │   │       │   │               │   │       │   ├── GetUserMembership.java
│   │   │       │   │               │   │       │   ├── GetUserMembershipsOfGroup.java
│   │   │       │   │               │   │       │   ├── GetUserMembershipsOfRole.java
│   │   │       │   │               │   │       │   ├── UpdateGroup.java
│   │   │       │   │               │   │       │   └── UpdateMembershipByRoleIdAndGroupId.java
│   │   │       │   │               │   │       ├── page/
│   │   │       │   │               │   │       │   └── SearchPages.java
│   │   │       │   │               │   │       ├── platform/
│   │   │       │   │               │   │       │   ├── DeleteSPlatformCommand.java
│   │   │       │   │               │   │       │   ├── GetPlatformContent.java
│   │   │       │   │               │   │       │   ├── GetSPlatformCommands.java
│   │   │       │   │               │   │       │   └── UpdateSPlatformCommand.java
│   │   │       │   │               │   │       ├── process/
│   │   │       │   │               │   │       │   ├── AbstractGetProcessDeploymentInfo.java
│   │   │       │   │               │   │       │   ├── AddProcessDefinitionToCategory.java
│   │   │       │   │               │   │       │   ├── DisableProcess.java
│   │   │       │   │               │   │       │   ├── EnableProcess.java
│   │   │       │   │               │   │       │   ├── GetArchivedProcessInstanceList.java
│   │   │       │   │               │   │       │   ├── GetChildInstanceIdsOfProcessInstance.java
│   │   │       │   │               │   │       │   ├── GetLastArchivedProcessInstance.java
│   │   │       │   │               │   │       │   ├── GetLatestProcessDefinitionId.java
│   │   │       │   │               │   │       │   ├── GetNumberOfProcessDeploymentInfos.java
│   │   │       │   │               │   │       │   ├── GetNumberOfProcessDeploymentInfosUnrelatedToCategory.java
│   │   │       │   │               │   │       │   ├── GetNumberOfProcessInstance.java
│   │   │       │   │               │   │       │   ├── GetProcessDefinitionDeployInfos.java
│   │   │       │   │               │   │       │   ├── GetProcessDefinitionDeployInfosWithActorOnlyForGroup.java
│   │   │       │   │               │   │       │   ├── GetProcessDefinitionDeployInfosWithActorOnlyForGroups.java
│   │   │       │   │               │   │       │   ├── GetProcessDefinitionDeployInfosWithActorOnlyForRole.java
│   │   │       │   │               │   │       │   ├── GetProcessDefinitionDeployInfosWithActorOnlyForRoles.java
│   │   │       │   │               │   │       │   ├── GetProcessDefinitionDeployInfosWithActorOnlyForUser.java
│   │   │       │   │               │   │       │   ├── GetProcessDefinitionDeployInfosWithActorOnlyForUsers.java
│   │   │       │   │               │   │       │   ├── SetProcessInstanceState.java
│   │   │       │   │               │   │       │   └── UpdateProcessDeploymentInfo.java
│   │   │       │   │               │   │       ├── profile/
│   │   │       │   │               │   │       │   ├── CreateProfileMember.java
│   │   │       │   │               │   │       │   └── ProfileMemberUtils.java
│   │   │       │   │               │   │       └── task/
│   │   │       │   │               │   │           ├── AssignOrUnassignUserTask.java
│   │   │       │   │               │   │           ├── AssignUserTaskIfNotAssigned.java
│   │   │       │   │               │   │           ├── GetAssignedTasks.java
│   │   │       │   │               │   │           ├── GetHumanTaskInstance.java
│   │   │       │   │               │   │           ├── GetNumberOfOpenTasksForUsers.java
│   │   │       │   │               │   │           └── SetTaskPriority.java
│   │   │       │   │               │   └── utils/
│   │   │       │   │               │       └── VisibleForTesting.java
│   │   │       │   │               ├── authorization/
│   │   │       │   │               │   └── PermissionServiceImpl.java
│   │   │       │   │               ├── bar/
│   │   │       │   │               │   ├── BusinessArchiveService.java
│   │   │       │   │               │   └── BusinessArchiveServiceImpl.java
│   │   │       │   │               ├── bpm/
│   │   │       │   │               │   ├── contract/
│   │   │       │   │               │   │   └── validation/
│   │   │       │   │               │   │       ├── ConstraintsDefinitionHelper.java
│   │   │       │   │               │   │       ├── ContractConstraintsValidator.java
│   │   │       │   │               │   │       ├── ContractStructureValidator.java
│   │   │       │   │               │   │       ├── ContractTypeValidator.java
│   │   │       │   │               │   │       ├── ContractValidator.java
│   │   │       │   │               │   │       ├── ContractValidatorFactory.java
│   │   │       │   │               │   │       ├── ContractVariableHelper.java
│   │   │       │   │               │   │       ├── ErrorReporter.java
│   │   │       │   │               │   │       └── InputValidationException.java
│   │   │       │   │               │   ├── model/
│   │   │       │   │               │   │   └── impl/
│   │   │       │   │               │   │       └── BPMInstancesCreator.java
│   │   │       │   │               │   └── process/
│   │   │       │   │               │       └── impl/
│   │   │       │   │               │           └── ProcessInstanceBuilder.java
│   │   │       │   │               ├── business/
│   │   │       │   │               │   ├── application/
│   │   │       │   │               │   │   ├── converter/
│   │   │       │   │               │   │   │   ├── ApplicationMenuToNodeConverter.java
│   │   │       │   │               │   │   │   ├── ApplicationPageToNodeConverter.java
│   │   │       │   │               │   │   │   ├── ApplicationToNodeConverter.java
│   │   │       │   │               │   │   │   ├── ApplicationsToNodeContainerConverter.java
│   │   │       │   │               │   │   │   ├── NodeToApplicationConverter.java
│   │   │       │   │               │   │   │   ├── NodeToApplicationMenuConverter.java
│   │   │       │   │               │   │   │   └── NodeToApplicationPageConverter.java
│   │   │       │   │               │   │   ├── exporter/
│   │   │       │   │               │   │   │   ├── ApplicationContainerExporter.java
│   │   │       │   │               │   │   │   └── ApplicationExporter.java
│   │   │       │   │               │   │   └── importer/
│   │   │       │   │               │   │       ├── ApplicationImportStrategy.java
│   │   │       │   │               │   │       ├── ApplicationImporter.java
│   │   │       │   │               │   │       ├── ApplicationMenuImportResult.java
│   │   │       │   │               │   │       ├── ApplicationMenuImporter.java
│   │   │       │   │               │   │       ├── ApplicationPageImportResult.java
│   │   │       │   │               │   │       ├── ApplicationPageImporter.java
│   │   │       │   │               │   │       ├── ApplicationZipContent.java
│   │   │       │   │               │   │       ├── DefaultLivingApplicationImporter.java
│   │   │       │   │               │   │       ├── FailOnDuplicateApplicationImportStrategy.java
│   │   │       │   │               │   │       ├── ImportResult.java
│   │   │       │   │               │   │       ├── LivingApplicationImporter.java
│   │   │       │   │               │   │       ├── MandatoryLivingApplicationImporter.java
│   │   │       │   │               │   │       ├── ReplaceDuplicateApplicationImportStrategy.java
│   │   │       │   │               │   │       ├── StrategySelector.java
│   │   │       │   │               │   │       ├── UpdateNewerNonEditableApplicationStrategy.java
│   │   │       │   │               │   │       └── validator/
│   │   │       │   │               │   │           ├── ApplicationImportValidator.java
│   │   │       │   │               │   │           ├── ApplicationMenuCreatorValidator.java
│   │   │       │   │               │   │           ├── ApplicationTokenValidator.java
│   │   │       │   │               │   │           └── ValidationStatus.java
│   │   │       │   │               │   └── data/
│   │   │       │   │               │       ├── BusinessDataRetriever.java
│   │   │       │   │               │       ├── RefBusinessDataRetriever.java
│   │   │       │   │               │       └── converter/
│   │   │       │   │               │           └── BusinessDataModelConverter.java
│   │   │       │   │               ├── command/
│   │   │       │   │               │   ├── AbstractStartProcessCommand.java
│   │   │       │   │               │   ├── AdvancedStartProcessCommand.java
│   │   │       │   │               │   ├── BusinessDataCommandField.java
│   │   │       │   │               │   ├── Command.java
│   │   │       │   │               │   ├── DeletePlatformSessionCommand.java
│   │   │       │   │               │   ├── ExecuteBDMQueryCommand.java
│   │   │       │   │               │   ├── GetBusinessDataByIdCommand.java
│   │   │       │   │               │   ├── GetBusinessDataByIdsCommand.java
│   │   │       │   │               │   ├── GetBusinessDataByQueryCommand.java
│   │   │       │   │               │   ├── MultipleStartPointsProcessCommand.java
│   │   │       │   │               │   ├── RuntimeCommand.java
│   │   │       │   │               │   ├── SCommandExecutionException.java
│   │   │       │   │               │   ├── SCommandParameterizationException.java
│   │   │       │   │               │   ├── SGroupProfileMemberAlreadyExistsException.java
│   │   │       │   │               │   ├── SRoleProfileMemberAlreadyExistsException.java
│   │   │       │   │               │   ├── SUserMembershipProfileMemberAlreadyExistsException.java
│   │   │       │   │               │   ├── SUserProfileMemberAlreadyExistsException.java
│   │   │       │   │               │   └── system/
│   │   │       │   │               │       └── SearchWaitingEventsCommand.java
│   │   │       │   │               ├── connector/
│   │   │       │   │               │   ├── ConnectorAPIAccessorImpl.java
│   │   │       │   │               │   └── ConnectorServiceDecorator.java
│   │   │       │   │               ├── core/
│   │   │       │   │               │   ├── document/
│   │   │       │   │               │   │   └── api/
│   │   │       │   │               │   │       └── impl/
│   │   │       │   │               │   │           └── DocumentHelper.java
│   │   │       │   │               │   └── form/
│   │   │       │   │               │       ├── ExternalURLAdapter.java
│   │   │       │   │               │       └── LegacyURLAdapter.java
│   │   │       │   │               ├── data/
│   │   │       │   │               │   └── ParentContainerResolverImpl.java
│   │   │       │   │               ├── event/
│   │   │       │   │               │   └── PlatformStartedEvent.java
│   │   │       │   │               ├── execution/
│   │   │       │   │               │   ├── AdvancedStartProcessValidator.java
│   │   │       │   │               │   ├── ContainerExecutor.java
│   │   │       │   │               │   ├── ContainerRegistry.java
│   │   │       │   │               │   ├── EvaluateExpression.java
│   │   │       │   │               │   ├── Filter.java
│   │   │       │   │               │   ├── FlowElementExecutor.java
│   │   │       │   │               │   ├── FlowNodeExecutor.java
│   │   │       │   │               │   ├── FlowNodeExecutorImpl.java
│   │   │       │   │               │   ├── FlowNodeIdFilter.java
│   │   │       │   │               │   ├── FlowNodeNameFilter.java
│   │   │       │   │               │   ├── FlowNodeSelector.java
│   │   │       │   │               │   ├── FlowNodeStateManagerImpl.java
│   │   │       │   │               │   ├── ProcessExecutor.java
│   │   │       │   │               │   ├── ProcessExecutorImpl.java
│   │   │       │   │               │   ├── ProcessInstanceInterruptor.java
│   │   │       │   │               │   ├── ProcessStarterVerifier.java
│   │   │       │   │               │   ├── ProcessStarterVerifierImpl.java
│   │   │       │   │               │   ├── SIllegalStateTransition.java
│   │   │       │   │               │   ├── SNotSerializableException.java
│   │   │       │   │               │   ├── SUnreleasableTaskException.java
│   │   │       │   │               │   ├── StartFlowNodeFilter.java
│   │   │       │   │               │   ├── StateBehaviors.java
│   │   │       │   │               │   ├── TransitionEvaluator.java
│   │   │       │   │               │   ├── WaitingEventsInterrupter.java
│   │   │       │   │               │   ├── archive/
│   │   │       │   │               │   │   └── BPMArchiverService.java
│   │   │       │   │               │   ├── event/
│   │   │       │   │               │   │   ├── CoupleEventHandlerStrategy.java
│   │   │       │   │               │   │   ├── ErrorEventHandlerStrategy.java
│   │   │       │   │               │   │   ├── EventHandlerStrategy.java
│   │   │       │   │               │   │   ├── EventsHandler.java
│   │   │       │   │               │   │   ├── MessageEventHandlerStrategy.java
│   │   │       │   │               │   │   ├── OperationsWithContext.java
│   │   │       │   │               │   │   ├── SBPMEventHandlerException.java
│   │   │       │   │               │   │   ├── SignalEventHandlerStrategy.java
│   │   │       │   │               │   │   ├── TerminateEventHandlerStrategy.java
│   │   │       │   │               │   │   └── TimerEventHandlerStrategy.java
│   │   │       │   │               │   ├── flowmerger/
│   │   │       │   │               │   │   └── FlowNodeTransitionsWrapper.java
│   │   │       │   │               │   ├── handler/
│   │   │       │   │               │   │   ├── ArchiveProcessInstancesHandler.java
│   │   │       │   │               │   │   └── SProcessInstanceHandler.java
│   │   │       │   │               │   ├── job/
│   │   │       │   │               │   │   └── JobNameBuilder.java
│   │   │       │   │               │   ├── state/
│   │   │       │   │               │   │   ├── AbortedFlowNodeState.java
│   │   │       │   │               │   │   ├── AbortingActivityWithBoundaryState.java
│   │   │       │   │               │   │   ├── AbortingBoundaryAndIntermediateCatchEventState.java
│   │   │       │   │               │   │   ├── AbortingBoundaryEventsOnCompletingActivityState.java
│   │   │       │   │               │   │   ├── AbortingCallActivityState.java
│   │   │       │   │               │   │   ├── AbortingFlowNodeContainerState.java
│   │   │       │   │               │   │   ├── AbortingFlowNodeState.java
│   │   │       │   │               │   │   ├── AbortingReceiveTaskState.java
│   │   │       │   │               │   │   ├── AbortingSubTaskState.java
│   │   │       │   │               │   │   ├── CancelledFlowNodeState.java
│   │   │       │   │               │   │   ├── CancellingActivityWithBoundaryState.java
│   │   │       │   │               │   │   ├── CancellingBoundaryAndIntermediateCatchEventState.java
│   │   │       │   │               │   │   ├── CancellingCallActivityState.java
│   │   │       │   │               │   │   ├── CancellingFlowNodeContainerChildrenState.java
│   │   │       │   │               │   │   ├── CancellingFlowNodeState.java
│   │   │       │   │               │   │   ├── CancellingReceiveTaskState.java
│   │   │       │   │               │   │   ├── CompletedActivityState.java
│   │   │       │   │               │   │   ├── CompletingActivityState.java
│   │   │       │   │               │   │   ├── CompletingCallActivityState.java
│   │   │       │   │               │   │   ├── EndingCallActivityExceptionState.java
│   │   │       │   │               │   │   ├── EndingFlowNodeContainerExceptionState.java
│   │   │       │   │               │   │   ├── ExecutingAutomaticActivityState.java
│   │   │       │   │               │   │   ├── ExecutingBoundaryEventState.java
│   │   │       │   │               │   │   ├── ExecutingCallActivityState.java
│   │   │       │   │               │   │   ├── ExecutingFlowNodeState.java
│   │   │       │   │               │   │   ├── ExecutingLoopActivityState.java
│   │   │       │   │               │   │   ├── ExecutingMultiInstanceActivityState.java
│   │   │       │   │               │   │   ├── ExecutingThrowEventState.java
│   │   │       │   │               │   │   ├── FailedActivityState.java
│   │   │       │   │               │   │   ├── FlowNodeStateManager.java
│   │   │       │   │               │   │   ├── InitializingActivityState.java
│   │   │       │   │               │   │   ├── InitializingActivityWithBoundaryEventsState.java
│   │   │       │   │               │   │   ├── InitializingAndExecutingFlowNodeState.java
│   │   │       │   │               │   │   ├── InitializingBoundaryEventState.java
│   │   │       │   │               │   │   ├── InitializingLoopActivityState.java
│   │   │       │   │               │   │   ├── InitializingMultiInstanceActivityState.java
│   │   │       │   │               │   │   ├── InterruptingBoundaryAndIntermediateCatchEventState.java
│   │   │       │   │               │   │   ├── OnEnterAndFinishConnectorState.java
│   │   │       │   │               │   │   ├── OnEnterConnectorState.java
│   │   │       │   │               │   │   ├── OnEnterOrOnFinishConnectorState.java
│   │   │       │   │               │   │   ├── OnFinishConnectorState.java
│   │   │       │   │               │   │   ├── ReadyActivityState.java
│   │   │       │   │               │   │   ├── SkippedFlowNodeState.java
│   │   │       │   │               │   │   └── WaitingFlowNodeState.java
│   │   │       │   │               │   ├── transition/
│   │   │       │   │               │   │   ├── AutomaticTaskStates.java
│   │   │       │   │               │   │   ├── BoundaryEventStates.java
│   │   │       │   │               │   │   ├── CallActivityTaskStates.java
│   │   │       │   │               │   │   ├── DefaultTransitionGetter.java
│   │   │       │   │               │   │   ├── EndEventStates.java
│   │   │       │   │               │   │   ├── EvaluatedTransitions.java
│   │   │       │   │               │   │   ├── ExclusiveGatewayTransitionEvaluationStrategy.java
│   │   │       │   │               │   │   ├── FlowNodeStateSequences.java
│   │   │       │   │               │   │   ├── GatewaysStates.java
│   │   │       │   │               │   │   ├── ImplicitGatewayTransitionEvaluator.java
│   │   │       │   │               │   │   ├── InclusiveExclusiveTransitionEvaluator.java
│   │   │       │   │               │   │   ├── InclusiveGatewayTransitionEvaluationStrategy.java
│   │   │       │   │               │   │   ├── IntermediateCatchEventStates.java
│   │   │       │   │               │   │   ├── IntermediateThrowEventStates.java
│   │   │       │   │               │   │   ├── LoopActivityStates.java
│   │   │       │   │               │   │   ├── ManualTaskStates.java
│   │   │       │   │               │   │   ├── MultiInstanceActivityStates.java
│   │   │       │   │               │   │   ├── ParallelGatewayTransitionEvaluator.java
│   │   │       │   │               │   │   ├── ReceiveTaskStates.java
│   │   │       │   │               │   │   ├── STransitionConditionEvaluationException.java
│   │   │       │   │               │   │   ├── SendTaskStates.java
│   │   │       │   │               │   │   ├── StartEventStates.java
│   │   │       │   │               │   │   ├── SubProcessActivityTaskStates.java
│   │   │       │   │               │   │   ├── TransitionConditionEvaluator.java
│   │   │       │   │               │   │   ├── TransitionEvaluationStrategy.java
│   │   │       │   │               │   │   └── UserTaskStates.java
│   │   │       │   │               │   └── work/
│   │   │       │   │               │       ├── BPMWorkFactory.java
│   │   │       │   │               │       ├── ExecuteConnectorOfActivity.java
│   │   │       │   │               │       ├── ExecuteConnectorOfProcess.java
│   │   │       │   │               │       ├── ExecuteConnectorWork.java
│   │   │       │   │               │       ├── ExecuteFlowNodeWork.java
│   │   │       │   │               │       ├── ExecuteMessageCoupleWork.java
│   │   │       │   │               │       ├── FailedStateSetter.java
│   │   │       │   │               │       ├── InSessionBonitaWork.java
│   │   │       │   │               │       ├── LockProcessInstanceWork.java
│   │   │       │   │               │       ├── NotifyChildFinishedWork.java
│   │   │       │   │               │       ├── RestartException.java
│   │   │       │   │               │       ├── SetInFailCallable.java
│   │   │       │   │               │       ├── TenantAwareBonitaWork.java
│   │   │       │   │               │       ├── TxBonitaWork.java
│   │   │       │   │               │       ├── WrappingBonitaWork.java
│   │   │       │   │               │       └── failurewrapping/
│   │   │       │   │               │           ├── ConnectorDefinitionAndInstanceContextWork.java
│   │   │       │   │               │           ├── FlowNodeDefinitionAndInstanceContextWork.java
│   │   │       │   │               │           ├── MessageInstanceContextWork.java
│   │   │       │   │               │           ├── ProcessDefinitionContextWork.java
│   │   │       │   │               │           ├── ProcessInstanceContextWork.java
│   │   │       │   │               │           ├── TriggerSignalWork.java
│   │   │       │   │               │           └── TxInHandleFailureWrappingWork.java
│   │   │       │   │               ├── expression/
│   │   │       │   │               │   ├── BusinessDataExpressionExecutorStrategy.java
│   │   │       │   │               │   ├── BusinessDataReferenceExpressionExecutorStrategy.java
│   │   │       │   │               │   ├── BusinessObjectDAOExpressionStrategy.java
│   │   │       │   │               │   ├── CommonBusinessDataExpressionExecutorStrategy.java
│   │   │       │   │               │   ├── ContractInputExpressionExecutorStrategy.java
│   │   │       │   │               │   ├── DataExpressionExecutorStrategy.java
│   │   │       │   │               │   ├── DocumentListReferenceExpressionExecutorStrategy.java
│   │   │       │   │               │   ├── DocumentReferenceExpressionExecutorStrategy.java
│   │   │       │   │               │   ├── EngineConstantExpressionBuilder.java
│   │   │       │   │               │   ├── EngineConstantExpressionExecutorStrategy.java
│   │   │       │   │               │   ├── ParameterExpressionExecutorStrategy.java
│   │   │       │   │               │   └── QueryBusinessDataExpressionExecutorStrategy.java
│   │   │       │   │               ├── handler/
│   │   │       │   │               │   └── SchedulerServiceRestartHandler.java
│   │   │       │   │               ├── identity/
│   │   │       │   │               │   ├── CustomUserInfoDefinitionImporter.java
│   │   │       │   │               │   ├── CustomUserInfoValueImporter.java
│   │   │       │   │               │   ├── ExportOrganization.java
│   │   │       │   │               │   ├── ImportDuplicateInOrganizationException.java
│   │   │       │   │               │   ├── ImportOrganization.java
│   │   │       │   │               │   ├── ImportOrganizationFailOnDuplicatesStrategy.java
│   │   │       │   │               │   ├── ImportOrganizationIgnoreDuplicatesStrategy.java
│   │   │       │   │               │   ├── ImportOrganizationMergeDuplicatesStrategy.java
│   │   │       │   │               │   ├── ImportOrganizationStrategy.java
│   │   │       │   │               │   ├── SImportOrganizationException.java
│   │   │       │   │               │   └── UserImporter.java
│   │   │       │   │               ├── jobs/
│   │   │       │   │               │   ├── InternalJob.java
│   │   │       │   │               │   └── TriggerTimerEventJob.java
│   │   │       │   │               ├── log/
│   │   │       │   │               │   └── LogMessageBuilder.java
│   │   │       │   │               ├── message/
│   │   │       │   │               │   └── MessagesHandlingService.java
│   │   │       │   │               ├── operation/
│   │   │       │   │               │   ├── AbstractDocumentLeftOperandHandler.java
│   │   │       │   │               │   ├── BusinessDataAssignmentStrategy.java
│   │   │       │   │               │   ├── BusinessDataContext.java
│   │   │       │   │               │   ├── BusinessDataJavaMethodOperationExecutorStrategy.java
│   │   │       │   │               │   ├── BusinessDataLeftOperandHandler.java
│   │   │       │   │               │   ├── DataLeftOperandHandler.java
│   │   │       │   │               │   ├── DocumentLeftOperandHandler.java
│   │   │       │   │               │   ├── DocumentListLeftOperandHandler.java
│   │   │       │   │               │   ├── EntitiesActionsExecutor.java
│   │   │       │   │               │   ├── EntityAction.java
│   │   │       │   │               │   ├── MergeEntityAction.java
│   │   │       │   │               │   ├── SEntityActionExecutionException.java
│   │   │       │   │               │   ├── StringIndexLeftOperandHandler.java
│   │   │       │   │               │   ├── TransientDataLeftOperandHandler.java
│   │   │       │   │               │   └── UpdateDataRefAction.java
│   │   │       │   │               ├── page/
│   │   │       │   │               │   ├── AuthorizationRuleWithParameters.java
│   │   │       │   │               │   ├── IsActorInitiatorRule.java
│   │   │       │   │               │   ├── IsAdminRule.java
│   │   │       │   │               │   ├── IsInvolvedInProcessInstanceRule.java
│   │   │       │   │               │   ├── IsManagerOfUserInvolvedInProcessInstanceRule.java
│   │   │       │   │               │   ├── IsProcessInitiatorRule.java
│   │   │       │   │               │   ├── IsProcessOwnerRule.java
│   │   │       │   │               │   ├── IsTaskAvailableForUserRule.java
│   │   │       │   │               │   └── IsTaskPerformerRule.java
│   │   │       │   │               ├── platform/
│   │   │       │   │               │   ├── BroadcastServiceLocal.java
│   │   │       │   │               │   ├── PlatformManager.java
│   │   │       │   │               │   ├── PlatformStateProvider.java
│   │   │       │   │               │   ├── PlatformVersionChecker.java
│   │   │       │   │               │   └── configuration/
│   │   │       │   │               │       ├── NodeConfiguration.java
│   │   │       │   │               │       ├── NodeConfigurationImpl.java
│   │   │       │   │               │       └── datasource/
│   │   │       │   │               │           ├── QuartzConnectionProvider.java
│   │   │       │   │               │           ├── QuartzDataSourceAccessor.java
│   │   │       │   │               │           └── QuartzDataSourceAccessorProvider.java
│   │   │       │   │               ├── profile/
│   │   │       │   │               │   ├── DefaultProfilesUpdater.java
│   │   │       │   │               │   ├── DeleteExistingImportStrategy.java
│   │   │       │   │               │   ├── FailOnDuplicateImportStrategy.java
│   │   │       │   │               │   ├── IgnoreDuplicateImportStrategy.java
│   │   │       │   │               │   ├── ImportPolicy.java
│   │   │       │   │               │   ├── ProfileImportStrategy.java
│   │   │       │   │               │   ├── ProfilesExporter.java
│   │   │       │   │               │   ├── ProfilesImporter.java
│   │   │       │   │               │   ├── ReplaceDuplicateImportStrategy.java
│   │   │       │   │               │   ├── UpdateDefaultsAndCreateNewImportStrategy.java
│   │   │       │   │               │   └── UpdateDefaultsImportStrategy.java
│   │   │       │   │               ├── search/
│   │   │       │   │               │   ├── AbstractActivityInstanceSearchEntity.java
│   │   │       │   │               │   ├── AbstractArchiveActivityInstanceSearchEntity.java
│   │   │       │   │               │   ├── AbstractArchivedCommentsSearchEntity.java
│   │   │       │   │               │   ├── AbstractArchivedConnectorInstanceSearchEntity.java
│   │   │       │   │               │   ├── AbstractArchivedDocumentSearchEntity.java
│   │   │       │   │               │   ├── AbstractArchivedHumanTaskInstanceSearchEntity.java
│   │   │       │   │               │   ├── AbstractArchivedProcessInstanceSearchEntity.java
│   │   │       │   │               │   ├── AbstractCommandSearchEntity.java
│   │   │       │   │               │   ├── AbstractCommentSearchEntity.java
│   │   │       │   │               │   ├── AbstractDocumentSearchEntity.java
│   │   │       │   │               │   ├── AbstractGroupSearchEntity.java
│   │   │       │   │               │   ├── AbstractHumanTaskInstanceSearchEntity.java
│   │   │       │   │               │   ├── AbstractProcessDeploymentInfoSearchEntity.java
│   │   │       │   │               │   ├── AbstractProcessInstanceSearchEntity.java
│   │   │       │   │               │   ├── AbstractProfileSearchEntity.java
│   │   │       │   │               │   ├── AbstractRoleSearchEntity.java
│   │   │       │   │               │   ├── AbstractSearchEntity.java
│   │   │       │   │               │   ├── AbstractSupervisorSearchEntity.java
│   │   │       │   │               │   ├── AbstractUserSearchEntity.java
│   │   │       │   │               │   ├── BonitaReadFunction.java
│   │   │       │   │               │   ├── SPageOutOfRangeException.java
│   │   │       │   │               │   ├── SSearchException.java
│   │   │       │   │               │   ├── SearchCommands.java
│   │   │       │   │               │   ├── activity/
│   │   │       │   │               │   │   ├── SearchActivityInstances.java
│   │   │       │   │               │   │   └── SearchArchivedActivityInstances.java
│   │   │       │   │               │   ├── comment/
│   │   │       │   │               │   │   ├── SearchArchivedComments.java
│   │   │       │   │               │   │   ├── SearchComments.java
│   │   │       │   │               │   │   ├── SearchCommentsInvolvingUser.java
│   │   │       │   │               │   │   └── SearchCommentsManagedBy.java
│   │   │       │   │               │   ├── connector/
│   │   │       │   │               │   │   └── SearchArchivedConnectorInstance.java
│   │   │       │   │               │   ├── descriptor/
│   │   │       │   │               │   │   ├── FieldDescriptor.java
│   │   │       │   │               │   │   ├── SearchActivityInstanceDescriptor.java
│   │   │       │   │               │   │   ├── SearchApplicationDescriptor.java
│   │   │       │   │               │   │   ├── SearchApplicationMenuDescriptor.java
│   │   │       │   │               │   │   ├── SearchApplicationPageDescriptor.java
│   │   │       │   │               │   │   ├── SearchArchivedActivityInstanceDescriptor.java
│   │   │       │   │               │   │   ├── SearchArchivedCommentsDescriptor.java
│   │   │       │   │               │   │   ├── SearchArchivedConnectorInstanceDescriptor.java
│   │   │       │   │               │   │   ├── SearchArchivedDocumentDescriptor.java
│   │   │       │   │               │   │   ├── SearchArchivedFlowNodeInstanceDescriptor.java
│   │   │       │   │               │   │   ├── SearchArchivedHumanTaskInstanceDescriptor.java
│   │   │       │   │               │   │   ├── SearchArchivedProcessInstancesDescriptor.java
│   │   │       │   │               │   │   ├── SearchCommandDescriptor.java
│   │   │       │   │               │   │   ├── SearchCommentDescriptor.java
│   │   │       │   │               │   │   ├── SearchConnectorInstanceDescriptor.java
│   │   │       │   │               │   │   ├── SearchCustomUserInfoValueDescriptor.java
│   │   │       │   │               │   │   ├── SearchDocumentDescriptor.java
│   │   │       │   │               │   │   ├── SearchEntitiesDescriptor.java
│   │   │       │   │               │   │   ├── SearchEntityDescriptor.java
│   │   │       │   │               │   │   ├── SearchEventTriggerInstanceDescriptor.java
│   │   │       │   │               │   │   ├── SearchFlowNodeInstanceDescriptor.java
│   │   │       │   │               │   │   ├── SearchFormMappingDescriptor.java
│   │   │       │   │               │   │   ├── SearchGroupDescriptor.java
│   │   │       │   │               │   │   ├── SearchHumanTaskInstanceDescriptor.java
│   │   │       │   │               │   │   ├── SearchMessageInstanceDescriptor.java
│   │   │       │   │               │   │   ├── SearchPageDescriptor.java
│   │   │       │   │               │   │   ├── SearchProcessDefinitionsDescriptor.java
│   │   │       │   │               │   │   ├── SearchProcessInstanceDescriptor.java
│   │   │       │   │               │   │   ├── SearchProcessSupervisorDescriptor.java
│   │   │       │   │               │   │   ├── SearchProfileDescriptor.java
│   │   │       │   │               │   │   ├── SearchProfileMemberGroupDescriptor.java
│   │   │       │   │               │   │   ├── SearchProfileMemberRoleAndGroupDescriptor.java
│   │   │       │   │               │   │   ├── SearchProfileMemberRoleDescriptor.java
│   │   │       │   │               │   │   ├── SearchProfileMemberUserDescriptor.java
│   │   │       │   │               │   │   ├── SearchRoleDescriptor.java
│   │   │       │   │               │   │   ├── SearchUserDescriptor.java
│   │   │       │   │               │   │   └── SearchWaitingEventSerchDescriptor.java
│   │   │       │   │               │   ├── document/
│   │   │       │   │               │   │   ├── SearchArchivedDocuments.java
│   │   │       │   │               │   │   ├── SearchArchivedDocumentsSupervisedBy.java
│   │   │       │   │               │   │   ├── SearchDocuments.java
│   │   │       │   │               │   │   └── SearchDocumentsSupervisedBy.java
│   │   │       │   │               │   ├── events/
│   │   │       │   │               │   │   └── trigger/
│   │   │       │   │               │   │       ├── SearchTimerEventTriggerInstances.java
│   │   │       │   │               │   │       └── SearchWaitingEvents.java
│   │   │       │   │               │   ├── flownode/
│   │   │       │   │               │   │   ├── SearchArchivedFlowNodeInstances.java
│   │   │       │   │               │   │   └── SearchFlowNodeInstances.java
│   │   │       │   │               │   ├── form/
│   │   │       │   │               │   │   └── SearchFormMappings.java
│   │   │       │   │               │   ├── identity/
│   │   │       │   │               │   │   ├── SearchCustomUserInfoValues.java
│   │   │       │   │               │   │   ├── SearchGroups.java
│   │   │       │   │               │   │   ├── SearchRoles.java
│   │   │       │   │               │   │   ├── SearchUsers.java
│   │   │       │   │               │   │   ├── SearchUsersWhoCanExecutePendingHumanTaskDeploymentInfo.java
│   │   │       │   │               │   │   └── SearchUsersWhoCanStartProcessDeploymentInfo.java
│   │   │       │   │               │   ├── process/
│   │   │       │   │               │   │   ├── SearchArchivedProcessInstances.java
│   │   │       │   │               │   │   ├── SearchArchivedProcessInstancesInvolvingUser.java
│   │   │       │   │               │   │   ├── SearchArchivedProcessInstancesSupervisedBy.java
│   │   │       │   │               │   │   ├── SearchArchivedProcessInstancesWithoutSubProcess.java
│   │   │       │   │               │   │   ├── SearchFailedProcessInstances.java
│   │   │       │   │               │   │   ├── SearchFailedProcessInstancesSupervisedBy.java
│   │
Download .txt
Showing preview only (3,837K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (37249 symbols across 4923 files)

FILE: bonita-engine-spring-boot-starter/src/main/java/org/bonitasoft/engine/spring/autoconfigure/BonitaEngineCommonAutoConfiguration.java
  class BonitaEngineCommonAutoConfiguration (line 21) | @Configuration

FILE: bonita-engine-spring-boot-starter/src/main/java/org/bonitasoft/engine/spring/autoconfigure/BonitaEngineEventListener.java
  class BonitaEngineEventListener (line 29) | @Component
    method handleApplicationReadyEvent (line 36) | @EventListener
    method handleContextStoppedEvent (line 44) | @EventListener
    method setApplicationContext (line 51) | @Override

FILE: bonita-engine-spring-boot-starter/src/main/java/org/bonitasoft/engine/spring/autoconfigure/BonitaEngineServerAutoConfiguration.java
  class BonitaEngineServerAutoConfiguration (line 26) | @Configuration
    method bonitaEngine (line 31) | @Bean
    method bonitaClient (line 40) | @Bean

FILE: bonita-engine-spring-boot-starter/src/main/java/org/bonitasoft/engine/spring/autoconfigure/properties/BonitaDatabasesConfiguration.java
  class BonitaDatabasesConfiguration (line 19) | public class BonitaDatabasesConfiguration {
    method getBonita (line 26) | public BonitaDatabaseConfiguration getBonita() {
    method getBusinessData (line 30) | public BonitaDatabaseConfiguration getBusinessData() {

FILE: bonita-engine-spring-boot-starter/src/main/java/org/bonitasoft/engine/spring/autoconfigure/properties/BonitaEngineProperties.java
  class BonitaEngineProperties (line 19) | @ConfigurationProperties(prefix = "org.bonitasoft.engine")
    method getDatabase (line 25) | public BonitaDatabasesConfiguration getDatabase() {

FILE: bonita-engine-spring-boot-starter/src/test/java/org/bonitasoft/engine/spring/autoconfigure/BonitaEngineAutoConfigurationTest.java
  class BonitaEngineAutoConfigurationTest (line 24) | public class BonitaEngineAutoConfigurationTest {
    method should_configure_database_using_properties (line 30) | @Test

FILE: bonita-engine-spring-boot-starter/src/test/java/org/bonitasoft/engine/spring/autoconfigure/BonitaEngineSpringBootStarterIT.java
  class BonitaEngineSpringBootStarterIT (line 22) | public class BonitaEngineSpringBootStarterIT {
    method should_start_engine_when_application_starts (line 24) | @Test

FILE: bonita-engine-spring-boot-starter/src/test/java/org/bonitasoft/engine/spring/autoconfigure/ClientTestApplication.java
  class ClientTestApplication (line 21) | @SpringBootApplication

FILE: bonita-engine-standalone/src/main/java/org/bonitasoft/engine/BonitaDataSourceInitializer.java
  class BonitaDataSourceInitializer (line 31) | class BonitaDataSourceInitializer {
    method createManagedDataSource (line 75) | BasicManagedDataSource createManagedDataSource(BonitaDatabaseConfigura...
    method getDriverClassName (line 130) | private String getDriverClassName(BonitaDatabaseConfiguration configur...
    method validate (line 140) | private void validate(BonitaDatabaseConfiguration configuration) {
    method checkNullOrEmpty (line 150) | private static void checkNullOrEmpty(String field, String fieldName) {
    method createDataSource (line 156) | BasicDataSource createDataSource(BonitaDatabaseConfiguration configura...
    method configureDatasource (line 168) | private void configureDatasource(DatasourceConfiguration configuration...

FILE: bonita-engine-standalone/src/main/java/org/bonitasoft/engine/BonitaDatabaseConfiguration.java
  class BonitaDatabaseConfiguration (line 22) | @Data
    method isEmpty (line 37) | public boolean isEmpty() {
    method isNullOrEmpty (line 45) | private boolean isNullOrEmpty(String s) {
    method setDriverClassName (line 54) | public void setDriverClassName(String driverClassName) {
    method setUrl (line 63) | public void setUrl(String url) {
    method setDbVendor (line 73) | public void setDbVendor(String dbVendor) {
    method setUser (line 82) | public void setUser(String user) {
    method setPassword (line 91) | public void setPassword(String password) {

FILE: bonita-engine-standalone/src/main/java/org/bonitasoft/engine/BonitaEngine.java
  class BonitaEngine (line 42) | @Slf4j
    method initializeEnvironment (line 59) | public void initializeEnvironment() throws Exception {
    method initializeBonitaDatabaseConfiguration (line 77) | private void initializeBonitaDatabaseConfiguration() {
    method initializeBusinessDataDatabaseConfiguration (line 86) | private void initializeBusinessDataDatabaseConfiguration() {
    method setSystemPropertyIfNotSet (line 95) | private void setSystemPropertyIfNotSet(String systemPropertyName, Stri...
    method initializeJNDI (line 103) | private void initializeJNDI() throws NamingException {
    method start (line 116) | public void start() throws Exception {
    method getPlatformSetup (line 129) | protected PlatformSetup getPlatformSetup() throws NamingException {
    method logoutFromPlatform (line 133) | private void logoutFromPlatform(PlatformSession platformSession)
    method loginOnPlatform (line 139) | private PlatformSession loginOnPlatform() throws PlatformLoginException {
    method stop (line 143) | public void stop() throws Exception {
    method getBonitaDatabaseConfiguration (line 153) | public BonitaDatabaseConfiguration getBonitaDatabaseConfiguration() {
    method setBonitaDatabaseConfiguration (line 157) | public void setBonitaDatabaseConfiguration(BonitaDatabaseConfiguration...
    method getBusinessDataDatabaseConfiguration (line 161) | public BonitaDatabaseConfiguration getBusinessDataDatabaseConfiguratio...
    method setBusinessDataDatabaseConfiguration (line 165) | public void setBusinessDataDatabaseConfiguration(BonitaDatabaseConfigu...
    method getBonitaDataSource (line 169) | BasicManagedDataSource getBonitaDataSource() {
    method getBusinessDataDataSource (line 173) | BasicManagedDataSource getBusinessDataDataSource() {

FILE: bonita-engine-standalone/src/main/java/org/bonitasoft/engine/DatabaseUrlParser.java
  class DatabaseUrlParser (line 22) | public class DatabaseUrlParser {
    class DatabaseMetadata (line 24) | @Data
    method parsePostgresUrl (line 34) | public static DatabaseMetadata parsePostgresUrl(String url) {

FILE: bonita-engine-standalone/src/main/java/org/bonitasoft/engine/DatasourceConfiguration.java
  class DatasourceConfiguration (line 21) | @Data

FILE: bonita-engine-standalone/src/main/java/org/bonitasoft/engine/DefaultBonitaDatabaseConfigurations.java
  class DefaultBonitaDatabaseConfigurations (line 16) | public class DefaultBonitaDatabaseConfigurations {
    method defaultH2Configuration (line 18) | private static BonitaDatabaseConfiguration defaultH2Configuration(Stri...
    method defaultPostgresConfiguration (line 27) | private static BonitaDatabaseConfiguration defaultPostgresConfiguratio...
    method defaultMysqlConfiguration (line 35) | private static BonitaDatabaseConfiguration defaultMysqlConfiguration(S...
    method defaultOracleConfiguration (line 44) | private static BonitaDatabaseConfiguration defaultOracleConfiguration(...
    method defaultSqlserverConfiguration (line 52) | private static BonitaDatabaseConfiguration defaultSqlserverConfigurati...
    method defaultConfiguration (line 60) | public static BonitaDatabaseConfiguration defaultConfiguration(String ...

FILE: bonita-engine-standalone/src/main/java/org/bonitasoft/engine/MemoryJNDISetup.java
  class MemoryJNDISetup (line 26) | public class MemoryJNDISetup {
    method MemoryJNDISetup (line 34) | public MemoryJNDISetup(final JndiTemplate jndiTemplate, final Map<Stri...
    method init (line 44) | public void init() throws NamingException {
    method clean (line 56) | public void clean() throws NamingException {

FILE: bonita-engine-standalone/src/main/java/org/bonitasoft/engine/SimpleMemoryContext.java
  class SimpleMemoryContext (line 33) | public class SimpleMemoryContext implements Context {
    method clear (line 39) | public void clear() {
    method lookup (line 43) | @Override
    method lookup (line 48) | @Override
    method bind (line 56) | @Override
    method bind (line 61) | @Override
    method rebind (line 69) | @Override
    method rebind (line 74) | @Override
    method unbind (line 79) | @Override
    method unbind (line 84) | @Override
    method rename (line 92) | @Override
    method rename (line 97) | @Override
    method list (line 104) | @Override
    method list (line 109) | @Override
    method listBindings (line 114) | @Override
    method listBindings (line 119) | @Override
    method destroySubcontext (line 124) | @Override
    method destroySubcontext (line 129) | @Override
    method createSubcontext (line 134) | @Override
    method createSubcontext (line 139) | @Override
    method lookupLink (line 146) | @Override
    method lookupLink (line 151) | @Override
    method getNameParser (line 156) | @Override
    method getNameParser (line 161) | @Override
    method composeName (line 166) | @Override
    method composeName (line 171) | @Override
    method addToEnvironment (line 176) | @Override
    method removeFromEnvironment (line 181) | @Override
    method getEnvironment (line 186) | @Override
    method close (line 191) | @Override
    method getNameInNamespace (line 197) | @Override

FILE: bonita-engine-standalone/src/main/java/org/bonitasoft/engine/SimpleMemoryContextFactory.java
  class SimpleMemoryContextFactory (line 25) | public class SimpleMemoryContextFactory implements InitialContextFactory {
    method getInitialContext (line 29) | @Override

FILE: bonita-engine-standalone/src/main/java/org/bonitasoft/engine/SimpleNameParser.java
  class SimpleNameParser (line 21) | public class SimpleNameParser implements NameParser {
    method SimpleNameParser (line 23) | public SimpleNameParser(final String name) {
    method parse (line 26) | @Override

FILE: bonita-engine-standalone/src/main/java/org/bonitasoft/engine/xa/XAConnectionIsSameRMOverride.java
  class XAConnectionIsSameRMOverride (line 24) | public class XAConnectionIsSameRMOverride implements XAConnection {
    method XAConnectionIsSameRMOverride (line 28) | private XAConnectionIsSameRMOverride(XAConnection xaConnection) {
    method overrideSameRM (line 32) | static XAConnection overrideSameRM(XAConnection xaConnection) {
    method getXAResource (line 36) | @Override
    method getConnection (line 41) | @Override
    method close (line 46) | @Override
    method addConnectionEventListener (line 51) | @Override
    method removeConnectionEventListener (line 56) | @Override
    method addStatementEventListener (line 61) | @Override
    method removeStatementEventListener (line 67) | @Override

FILE: bonita-engine-standalone/src/main/java/org/bonitasoft/engine/xa/XADataSourceIsSameRMOverride.java
  class XADataSourceIsSameRMOverride (line 24) | public class XADataSourceIsSameRMOverride implements XADataSource {
    method XADataSourceIsSameRMOverride (line 28) | private XADataSourceIsSameRMOverride(XADataSource xaDataSource) {
    method overrideSameRM (line 32) | public static XADataSource overrideSameRM(XADataSource xaDataSource) {
    method getXAConnection (line 36) | @Override
    method getXAConnection (line 41) | @Override
    method getLogWriter (line 46) | @Override
    method setLogWriter (line 51) | @Override
    method setLoginTimeout (line 56) | @Override
    method getLoginTimeout (line 61) | @Override
    method getParentLogger (line 66) | @Override

FILE: bonita-engine-standalone/src/main/java/org/bonitasoft/engine/xa/XAResourceIsSameRMOverride.java
  class XAResourceIsSameRMOverride (line 20) | public class XAResourceIsSameRMOverride implements XAResource {
    method XAResourceIsSameRMOverride (line 24) | private XAResourceIsSameRMOverride(XAResource xaResource) {
    method overrideSameRM (line 28) | static XAResource overrideSameRM(XAResource xaResource) {
    method commit (line 32) | @Override
    method end (line 37) | @Override
    method forget (line 42) | @Override
    method getTransactionTimeout (line 47) | @Override
    method isSameRM (line 52) | @Override
    method prepare (line 58) | @Override
    method recover (line 63) | @Override
    method rollback (line 68) | @Override
    method setTransactionTimeout (line 73) | @Override
    method start (line 78) | @Override

FILE: bonita-engine-standalone/src/test/java/org/bonitasoft/engine/BonitaDataSourceInitializerTest.java
  class BonitaDataSourceInitializerTest (line 23) | public class BonitaDataSourceInitializerTest {
    method should_fail_to_create_datasource_if_some_field_are_not_set (line 29) | @Test
    method should_fail_to_create_datasource_configuration_is_empty (line 42) | @Test
    method should_fail_if_db_vendor_is_not_supported (line 50) | @Test
    method should_create_datasource_with_configuration (line 63) | @Test
    method should_provide_default_driver_according_to_dbVendor (line 81) | @Test
    method should_set_pool_size_according_to_configuration (line 95) | @Test

FILE: bonita-engine-standalone/src/test/java/org/bonitasoft/engine/BonitaEngineTest.java
  class BonitaEngineTest (line 24) | public class BonitaEngineTest {
    method should_set_db_vendor_system_property_according_to_database_configuration (line 29) | @Test
    method should_set_db_vendor_system_property_to_h2_by_default (line 43) | @Test
    method should_configure_bonita_datasource_to_h2_by_default (line 52) | @Test
    method newBonitaEngine (line 65) | private BonitaEngine newBonitaEngine() {

FILE: bonita-engine-standalone/src/test/java/org/bonitasoft/engine/DatabaseUrlParserTest.java
  class DatabaseUrlParserTest (line 20) | public class DatabaseUrlParserTest {
    method should_parse_postgres_url (line 22) | @Test
    method should_throw_exception_when_there_is_no_match (line 33) | @Test(expected = IllegalArgumentException.class)

FILE: bonita-integration-tests/benchmarks/src/jmh/java/org/bonitasoft/engine/benchmarks/PermissionCachingBenchmark.java
  class PermissionCachingBenchmark (line 28) | @State(Scope.Benchmark)
    method setup (line 35) | @Setup
    method tearDown (line 44) | @TearDown
    method callPermissionWithCache (line 49) | @Benchmark
    method callPermissionFromCache50times (line 54) | @Benchmark

FILE: bonita-integration-tests/benchmarks/src/jmh/java/org/bonitasoft/engine/benchmarks/TransactionSynchronizationBenchmark.java
  class TransactionSynchronizationBenchmark (line 34) | @State(Scope.Benchmark)
    method setup (line 41) | @Setup
    method tearDown (line 68) | @TearDown
    method register1000Works (line 73) | @Benchmark
    method register1Works (line 83) | @Benchmark
    method register2Works (line 93) | @Benchmark

FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/CommonAPIIT.java
  class CommonAPIIT (line 47) | public abstract class CommonAPIIT extends APITestUtil {
    method clean (line 57) | @Override
    method clean (line 63) | private void clean() throws BonitaException {
    method checkThereAreNoWaitingEventsLeft (line 81) | private void checkThereAreNoWaitingEventsLeft() throws BonitaException {
    method getResource (line 88) | public BarResource getResource(final String path, final String name) t...
    method addResource (line 92) | public void addResource(final List<BarResource> resources, final Strin...
    method deployProcessWithTestFilter (line 98) | protected ProcessDefinition deployProcessWithTestFilter(final ProcessD...
    method generateFilterImplementations (line 107) | private List<BarResource> generateFilterImplementations(final String f...
    method generateFilterDependencies (line 117) | private List<BarResource> generateFilterDependencies() throws IOExcept...
    method getContentOfResource (line 132) | protected String getContentOfResource(final String name) {
    method getBarResource (line 146) | @Override

FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/PrintTestsStatusRule.java
  class PrintTestsStatusRule (line 24) | public abstract class PrintTestsStatusRule extends TestWatcher {
    method PrintTestsStatusRule (line 28) | public PrintTestsStatusRule(Logger logger) {
    method starting (line 33) | @Override
    method failed (line 38) | @Override
    method succeeded (line 50) | @Override
    method clean (line 62) | public abstract void clean() throws Exception;

FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/TestWithTechnicalUser.java
  class TestWithTechnicalUser (line 24) | public class TestWithTechnicalUser extends CommonAPIIT {
    method before (line 26) | @Before
    method after (line 31) | @After

FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/TestWithUser.java
  class TestWithUser (line 25) | public class TestWithUser extends TestWithTechnicalUser {
    method before (line 29) | @Override
    method after (line 38) | @Override

FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/business/application/TestWithCustomPage.java
  class TestWithCustomPage (line 24) | public class TestWithCustomPage extends TestWithLivingApplication {
    method setUp (line 28) | @Before
    method tearDown (line 34) | @After
    method getPage (line 44) | public Page getPage() {
    method createPage (line 48) | protected Page createPage(final String pageName) throws Exception {

FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/business/application/TestWithLivingApplication.java
  class TestWithLivingApplication (line 41) | public class TestWithLivingApplication extends CommonAPIIT {
    method setUp (line 47) | @Before
    method tearDown (line 55) | @After
    method getProfileUser (line 67) | protected Profile getProfileUser() throws SearchException {
    method getProfileAdmin (line 71) | Profile getProfileAdmin() throws SearchException {
    method getProfile (line 75) | private Profile getProfile(String profileName) throws SearchException {
    method getUser (line 84) | public User getUser() {
    method createPage (line 88) | protected Page createPage(final String pageName) throws Exception {
    method createPageContent (line 93) | private byte[] createPageContent(final String pageName)
    method getAppSearchBuilderOrderByToken (line 114) | protected SearchOptionsBuilder getAppSearchBuilderOrderByToken(final i...
    method assertIsAddOkStatus (line 120) | protected void assertIsAddOkStatus(final ImportStatus importStatus, St...
    method getAppSearchBuilderOrderById (line 126) | protected SearchOptionsBuilder getAppSearchBuilderOrderById(final int ...
    method assertIsMarketingApplication (line 132) | protected void assertIsMarketingApplication(final Application app) {
    method assertIsHRApplication (line 142) | protected void assertIsHRApplication(final Profile profile, final Page...
    method assertIsMyNewCustomPage (line 155) | protected void assertIsMyNewCustomPage(final Page myPage, final Applic...
    method assertIsHrFollowUpMenu (line 162) | protected void assertIsHrFollowUpMenu(final ApplicationMenu applicatio...
    method assertIsDailyHrFollowUpMenu (line 168) | protected void assertIsDailyHrFollowUpMenu(final ApplicationMenu appli...
    method assertIsEmptyMenu (line 175) | protected void assertIsEmptyMenu(final ApplicationMenu applicationMenu) {

FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/business/data/BusinessDataUpdateConnector.java
  class BusinessDataUpdateConnector (line 21) | public class BusinessDataUpdateConnector extends AbstractConnector {
    method validateInputParameters (line 23) | @Override
    method executeBusinessLogic (line 27) | @Override

FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/business/data/ClassloaderRefresher.java
  class ClassloaderRefresher (line 31) | public class ClassloaderRefresher {
    method loadClientModelInClassloader (line 42) | public ClassLoader loadClientModelInClassloader(final byte[] clientZip...

FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/ProcessDeployer.java
  class ProcessDeployer (line 27) | public abstract class ProcessDeployer {
    method deploy (line 31) | public ProcessDefinition deploy(SimpleProcessDesigner design) throws B...
    method deploy (line 39) | public abstract ProcessDefinition deploy(DesignProcessDefinition desig...
    method clean (line 41) | public void clean() throws BonitaException {
    method clean (line 45) | public abstract void clean(ProcessDefinition processDefinition) throws...

FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/designer/BoundaryEvent.java
  class BoundaryEvent (line 22) | public class BoundaryEvent {
    method BoundaryEvent (line 32) | public BoundaryEvent(String name, Fragment flowsOut) {
    method attach (line 37) | public void attach(UserTaskDefinitionBuilder task, ProcessDefinitionBu...
    method triggeredBy (line 43) | public BoundaryEvent triggeredBy(Trigger trigger) {

FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/designer/Branch.java
  class Branch (line 25) | public class Branch extends Fragment {
    method start (line 33) | public Branch start(Fragment origin) {
    method then (line 39) | public Branch then(Fragment... targets) {
    method getName (line 46) | @Override
    method bind (line 52) | @Override
    method bind (line 57) | @Override
    method build (line 62) | @Override
    method link (line 72) | private void link(List<Fragment> sources, List<Fragment> targets, Proc...

FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/designer/ConditionalTransition.java
  class ConditionalTransition (line 22) | public class ConditionalTransition extends Transition {
    method ConditionalTransition (line 28) | public ConditionalTransition(Expression expression) {
    method bind (line 32) | @Override
    method otherwise (line 42) | public ConditionalTransition otherwise(Fragment otherwise) {

FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/designer/DefaultTransition.java
  class DefaultTransition (line 19) | public class DefaultTransition extends Transition {
    method bind (line 23) | @Override
    type ConditionalBranch (line 31) | public interface ConditionalBranch {
      method build (line 33) | void build(String source, ProcessDefinitionBuilder builder);
      method goingTo (line 35) | DefaultTransition goingTo(Fragment then);
    method toMeet (line 38) | public ConditionalBranch toMeet(final Expression expression) {

FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/designer/EndEvent.java
  class EndEvent (line 23) | public class EndEvent extends FlowNode {
    method EndEvent (line 25) | public EndEvent(String name) {
    method build (line 29) | @Override

FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/designer/FlowNode.java
  class FlowNode (line 21) | public abstract class FlowNode extends Fragment {
    method FlowNode (line 25) | protected FlowNode(String name) {
    method bind (line 29) | @Override
    method getName (line 34) | @Override

FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/designer/Fragment.java
  class Fragment (line 27) | public abstract class Fragment {
    method when (line 31) | public Fragment when(final String step, final Transition transition) {
    method bind (line 36) | public void bind(final List<Fragment> sources, final ProcessDefinition...
    method bind (line 46) | public abstract void bind(String source, Transition transition, Proces...
    method build (line 48) | public abstract void build(ProcessDefinitionBuilder builder);
    method getName (line 50) | public abstract String getName();

FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/designer/Gateway.java
  class Gateway (line 24) | public class Gateway extends FlowNode {
    method Gateway (line 28) | public Gateway(String name, GatewayType type) {
    method build (line 33) | @Override

FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/designer/Signal.java
  class Signal (line 21) | public class Signal implements Trigger {
    method Signal (line 25) | public Signal(String name) {
    method listen (line 29) | @Override

FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/designer/SimpleProcessDesigner.java
  class SimpleProcessDesigner (line 25) | public class SimpleProcessDesigner {
    method SimpleProcessDesigner (line 31) | public SimpleProcessDesigner(ProcessDefinitionBuilder builder) {
    method start (line 36) | public SimpleProcessDesigner start() {
    method startWith (line 41) | public SimpleProcessDesigner startWith(StartEvent start) {
    method then (line 46) | public SimpleProcessDesigner then(Fragment... targets) {
    method end (line 51) | public SimpleProcessDesigner end() {
    method done (line 55) | public DesignProcessDefinition done() throws InvalidProcessDefinitionE...

FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/designer/StartEvent.java
  class StartEvent (line 23) | public class StartEvent extends FlowNode {
    method StartEvent (line 25) | public StartEvent(String name) {
    method build (line 29) | @Override

FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/designer/Transition.java
  class Transition (line 22) | public class Transition {
    method bind (line 24) | public void bind(String source, String target, ProcessDefinitionBuilde...
    method meet (line 28) | public static ConditionalTransition meet(Expression expression) {
    method fails (line 32) | public static DefaultTransition fails() {

FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/designer/Trigger.java
  type Trigger (line 21) | public interface Trigger {
    method listen (line 23) | void listen(BoundaryEventDefinitionBuilder builder);

FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/designer/UserTask.java
  class UserTask (line 24) | public class UserTask extends FlowNode {
    method UserTask (line 30) | public UserTask(String name) {
    method build (line 34) | @Override
    method with (line 42) | public UserTask with(BoundaryEvent event) {

FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/expectation/DocumentExpectation.java
  class DocumentExpectation (line 26) | public class DocumentExpectation {
    method DocumentExpectation (line 34) | public DocumentExpectation(CommonAPIIT testCase, ProcessInstance proce...
    method toBe (line 40) | public void toBe(String variable) throws DocumentNotFoundException {

FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/expectation/ProcessExpectation.java
  class ProcessExpectation (line 22) | public class ProcessExpectation {
    method ProcessExpectation (line 28) | public ProcessExpectation(CommonAPIIT testCase, ProcessInstance proces...
    method toFinish (line 33) | public void toFinish() throws Exception {

FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/expectation/StepExpectation.java
  class StepExpectation (line 32) | public class StepExpectation {
    method StepExpectation (line 40) | public StepExpectation(CommonAPIIT testCase, ProcessInstance process, ...
    method toBeReady (line 46) | public void toBeReady() throws Exception {
    method toNotHaveArchives (line 52) | public void toNotHaveArchives() throws Exception {
    method toBeExecuted (line 58) | public void toBeExecuted(int times) throws SearchException {
    method toBeAborted (line 64) | public void toBeAborted() throws SearchException {
    method isReady (line 70) | private void isReady(String step) throws Exception {
    method getArchives (line 78) | private SearchResult<ArchivedFlowNodeInstance> getArchives(String step...

FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/expectation/TestUtils.java
  class TestUtils (line 26) | public class TestUtils {
    method TestUtils (line 30) | public TestUtils(final CommonAPIIT testCase) {
    method wrap (line 34) | public Process wrap(final ProcessInstance process) {
    class Process (line 38) | public class Process {
      method Process (line 42) | Process(final ProcessInstance process) {
      method execute (line 46) | public void execute(final User behalf, final String... steps) throws...
      method expect (line 52) | public StepExpectation expect(final String... steps) {
      method isExpected (line 56) | public ProcessExpectation isExpected() {
      method expectVariable (line 60) | public VariableExpectation expectVariable(final String name) {
      method expectDocument (line 64) | public DocumentExpectation expectDocument(final String name) {
      method sendSignal (line 68) | public void sendSignal(final String name) throws SendEventException {

FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/expectation/VariableExpectation.java
  class VariableExpectation (line 27) | public class VariableExpectation {
    method VariableExpectation (line 35) | public VariableExpectation(CommonAPIIT testCase, ProcessInstance proce...
    method toBe (line 41) | public void toBe(Serializable variable) throws DataNotFoundException {

FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/connectors/ConnectorExecutionIT.java
  class ConnectorExecutionIT (line 39) | public abstract class ConnectorExecutionIT extends TestWithUser {
    method beforeTest (line 47) | @Before
    method afterTest (line 52) | @After
    method buildBarResourceForFilterWithAutoAssign (line 57) | private BarResource buildBarResourceForFilterWithAutoAssign() throws I...
    method deployProcessWithActorAndTestConnectorEngineExecutionContextAndFilterWithAutoAssign (line 65) | public ProcessDefinition deployProcessWithActorAndTestConnectorEngineE...
    method deployAndEnableProcessWithTestConnectorWithAPICall (line 82) | public ProcessDefinition deployAndEnableProcessWithTestConnectorWithAP...
    method deployProcessWithExternalTestConnector (line 90) | public ProcessDefinition deployProcessWithExternalTestConnector(
    method deployProcessWithActorAndTestConnectorWithConnectedResource (line 98) | public ProcessDefinition deployProcessWithActorAndTestConnectorWithCon...
    method deployProcessWithActorAndTestConnectorWithNotSerializableOutput (line 106) | public ProcessDefinition deployProcessWithActorAndTestConnectorWithNot...
    method deployProcessWithActorAndTestConnector3 (line 114) | public ProcessDefinition deployProcessWithActorAndTestConnector3(
    method deployProcessWithActorAndTestConnectorEngineExecutionContext (line 128) | public ProcessDefinition deployProcessWithActorAndTestConnectorEngineE...
    method deployProcessWithActorAndTestConnectorThatThrowException (line 136) | public ProcessDefinition deployProcessWithActorAndTestConnectorThatThr...
    method deployProcessWithActorAndTestConnectorThatThrowExceptionAndParameter (line 143) | public ProcessDefinition deployProcessWithActorAndTestConnectorThatThr...
    method deployProcessWithActorAndTestConnector (line 153) | public ProcessDefinition deployProcessWithActorAndTestConnector(
    method deployProcessWithActorAndTestConnectorAndParameter (line 159) | public ProcessDefinition deployProcessWithActorAndTestConnectorAndPara...
    method deployProcessWithActorAndTestConnectorAndParameter (line 167) | private ProcessDefinition deployProcessWithActorAndTestConnectorAndPar...
    method deployProcessWithActorAndTestConnectorWithOutput (line 182) | public ProcessDefinition deployProcessWithActorAndTestConnectorWithOut...
    method deployProcessWithActorAndTestConnectorWithOutputAndParameter (line 189) | public ProcessDefinition deployProcessWithActorAndTestConnectorWithOut...

FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/connectors/DoNothingConnector.java
  class DoNothingConnector (line 20) | public class DoNothingConnector extends AbstractConnector {
    method executeBusinessLogic (line 22) | @Override
    method validateInputParameters (line 27) | @Override

FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/connectors/FailingConnector.java
  class FailingConnector (line 20) | public class FailingConnector extends AbstractConnector {
    method executeBusinessLogic (line 22) | @Override
    method validateInputParameters (line 27) | @Override

FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/connectors/TestConnector.java
  class TestConnector (line 22) | public class TestConnector extends AbstractConnector {
    method validateInputParameters (line 26) | @Override
    method executeBusinessLogic (line 31) | @Override

FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/connectors/TestConnector2.java
  class TestConnector2 (line 21) | public class TestConnector2 extends AbstractConnector {
    method validateInputParameters (line 23) | @Override
    method executeBusinessLogic (line 27) | @Override

FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/connectors/TestConnector3.java
  class TestConnector3 (line 22) | public class TestConnector3 extends AbstractConnector {
    method validateInputParameters (line 32) | @Override
    method executeBusinessLogic (line 37) | @Override

FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/connectors/TestConnectorLongToExecute.java
  class TestConnectorLongToExecute (line 22) | public class TestConnectorLongToExecute extends AbstractConnector {
    method validateInputParameters (line 24) | @Override
    method executeBusinessLogic (line 28) | @Override

FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/connectors/TestConnectorThatThrowException.java
  class TestConnectorThatThrowException (line 23) | public class TestConnectorThatThrowException extends AbstractConnector {
    method validateInputParameters (line 39) | @Override
    method executeBusinessLogic (line 48) | @Override
    method connect (line 58) | @Override
    method disconnect (line 66) | @Override

FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/connectors/TestConnectorWithAPICall.java
  class TestConnectorWithAPICall (line 22) | public class TestConnectorWithAPICall extends AbstractConnector {
    method validateInputParameters (line 24) | @Override
    method executeBusinessLogic (line 28) | @Override

FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/connectors/TestConnectorWithConnectedResource.java
  class TestConnectorWithConnectedResource (line 24) | public class TestConnectorWithConnectedResource extends AbstractConnector {
    method TestConnectorWithConnectedResource (line 28) | public TestConnectorWithConnectedResource() {
    method validateInputParameters (line 32) | @Override
    method executeBusinessLogic (line 37) | @Override
    method connect (line 42) | @Override
    method disconnect (line 47) | @Override

FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/connectors/TestConnectorWithModifiedOutput.java
  class TestConnectorWithModifiedOutput (line 21) | public class TestConnectorWithModifiedOutput extends AbstractConnector {
    method validateInputParameters (line 23) | @Override
    method executeBusinessLogic (line 28) | @Override

FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/connectors/TestConnectorWithNotSerializableOutput.java
  class TestConnectorWithNotSerializableOutput (line 21) | public class TestConnectorWithNotSerializableOutput extends AbstractConn...
    method validateInputParameters (line 23) | @Override
    method executeBusinessLogic (line 28) | @Override

FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/connectors/TestConnectorWithOutput.java
  class TestConnectorWithOutput (line 21) | public class TestConnectorWithOutput extends AbstractConnector {
    method validateInputParameters (line 23) | @Override
    method executeBusinessLogic (line 28) | @Override

FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/connectors/TestExternalConnector.java
  class TestExternalConnector (line 21) | public class TestExternalConnector extends AbstractConnector {
    method validateInputParameters (line 25) | @Override
    method executeBusinessLogic (line 30) | @Override

FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/connectors/VariableStorage.java
  class VariableStorage (line 24) | public final class VariableStorage implements Serializable {
    method VariableStorage (line 30) | private VariableStorage() {
    class VariableStorageHolder (line 34) | private static class VariableStorageHolder {
    method getInstance (line 41) | public static VariableStorage getInstance() {
    method getInstance (line 45) | public static VariableStorage getInstance(final long tenantId) {
    method setVariable (line 54) | public synchronized void setVariable(final String name, final Object v...
    method getVariableValue (line 58) | public Object getVariableValue(final String name) {
    method getVariables (line 62) | public Map<String, Object> getVariables() {
    method clearAll (line 66) | public static void clearAll() {
    method clear (line 74) | public void clear() {

FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/event/AbstractEventIT.java
  class AbstractEventIT (line 65) | public abstract class AbstractEventIT extends TestWithUser {
    method deployAndEnableProcessWithBoundaryTimerEvent (line 127) | public ProcessDefinition deployAndEnableProcessWithBoundaryTimerEvent(...
    method deployAndEnableProcessWithBoundaryTimerEvent (line 155) | public ProcessDefinition deployAndEnableProcessWithBoundaryTimerEvent(...
    method deployAndEnableProcessWithBoundaryTimerEvent (line 184) | public ProcessDefinition deployAndEnableProcessWithBoundaryTimerEvent(...
    method deployAndEnableProcessWithBoundaryTimerEventOnHumanTask (line 206) | public ProcessDefinition deployAndEnableProcessWithBoundaryTimerEventO...
    method deployAndEnableProcessWithBoundaryTimerEventOnCallActivity (line 250) | public ProcessDefinition deployAndEnableProcessWithBoundaryTimerEventO...
    method deployAndEnableProcessMultiInstanceWithBoundaryEvent (line 301) | public ProcessDefinition deployAndEnableProcessMultiInstanceWithBounda...
    method deployAndEnableProcessWithBoundaryTimerEventOnLoopActivity (line 347) | public ProcessDefinition deployAndEnableProcessWithBoundaryTimerEventO...
    method waitForUserTasksAndExecuteIt (line 372) | protected void waitForUserTasksAndExecuteIt(final String taskName, fin...
    method executeRemainingParallelMultiInstances (line 380) | protected void executeRemainingParallelMultiInstances(final String tas...
    method deployAndEnableProcessWithInterruptingAndNonInterruptingTimer (line 394) | public ProcessDefinition deployAndEnableProcessWithInterruptingAndNonI...
    method deployAndEnableProcessWithEndThrowErrorEvent (line 426) | public ProcessDefinition deployAndEnableProcessWithEndThrowErrorEvent(...
    method deployAndEnableProcessWithBoundaryErrorEventOnCallActivity (line 444) | public ProcessDefinition deployAndEnableProcessWithBoundaryErrorEventO...
    method deployAndEnableSubProcessWhichThrowsAnErrorEvent (line 466) | public ProcessDefinition deployAndEnableSubProcessWhichThrowsAnErrorEv...
    method deployAndEnableMidProcessWhichContainsACallActivity (line 476) | public ProcessDefinition deployAndEnableMidProcessWhichContainsACallAc...
    method deployAndEnableProcessWithBoundaryErrorEventOnMICallActivity (line 490) | public ProcessDefinition deployAndEnableProcessWithBoundaryErrorEventO...
    method deployAndEnableProcessWithTimerEventSubProcess (line 510) | public ProcessDefinition deployAndEnableProcessWithTimerEventSubProces...
    method deployAndEnableProcessWithTimerEventSubProcessAndData (line 531) | public ProcessDefinition deployAndEnableProcessWithTimerEventSubProces...
    method deployAndEnableProcessWithErrorEventSubProcessAndData (line 559) | public ProcessDefinition deployAndEnableProcessWithErrorEventSubProces...
    method deployAndEnableProcessWithErrorEventSubProcessAndDataOnlyInRoot (line 590) | public ProcessDefinition deployAndEnableProcessWithErrorEventSubProces...
    method deployAndEnableProcessWithErrorEventSubProcessAndDataOnlyInSubProc (line 614) | public ProcessDefinition deployAndEnableProcessWithErrorEventSubProces...
    method deployAndEnableProcessWithErrorEventSubProcess (line 638) | public ProcessDefinition deployAndEnableProcessWithErrorEventSubProces...
    method deployAndEnableProcessWithTestConnectorThatThrowException (line 671) | public ProcessDefinition deployAndEnableProcessWithTestConnectorThatTh...
    method deployAndEnableProcessWithBoundaryMessageEvent (line 679) | public ProcessDefinition deployAndEnableProcessWithBoundaryMessageEven...
    method deployAndEnableProcessWithBoundarySignalEvent (line 701) | public ProcessDefinition deployAndEnableProcessWithBoundarySignalEvent...
    method deployAndEnableProcessWithBoundaryMessageEventOnLoopActivity (line 719) | public ProcessDefinition deployAndEnableProcessWithBoundaryMessageEven...
    method deployAndEnableSimpleProcess (line 750) | public ProcessDefinition deployAndEnableSimpleProcess(final String pro...
    method deployAndEnableProcessWithBoundaryMessageEventOnCallActivity (line 760) | public ProcessDefinition deployAndEnableProcessWithBoundaryMessageEven...
    method deployAndEnableProcessWithBoundaryMessageEventOnMultiInstance (line 778) | public ProcessDefinition deployAndEnableProcessWithBoundaryMessageEven...
    method deployAndEnableProcessWithCallActivity (line 799) | public ProcessDefinition deployAndEnableProcessWithCallActivity(final ...
    method deployAndEnableProcessWithMessageEventSubProcess (line 816) | public ProcessDefinition deployAndEnableProcessWithMessageEventSubProc...
    method deployAndEnableProcessWithMessageEventSubProcessAndData (line 822) | public ProcessDefinition deployAndEnableProcessWithMessageEventSubProc...
    method buildParentProcessDefinition (line 830) | public ProcessDefinitionBuilder buildParentProcessDefinition(final boo...
    method buildSubProcessDefinition (line 859) | public void buildSubProcessDefinition(final ProcessDefinitionBuilder b...
    method addCorrelations (line 891) | public void addCorrelations(final CatchMessageEventTriggerDefinitionBu...
    method addCorrelations (line 900) | public void addCorrelations(final ThrowMessageEventTriggerBuilder thro...
    method deployAndEnableProcessWithEndMessageEvent (line 909) | public ProcessDefinition deployAndEnableProcessWithEndMessageEvent(fin...
    method deployAndEnableProcessWithEndMessageEvent (line 914) | public ProcessDefinition deployAndEnableProcessWithEndMessageEvent(fin...
    method deployAndEnableProcessWithEndMessageEvent (line 924) | public ProcessDefinition deployAndEnableProcessWithEndMessageEvent(fin...
    method addMessageData (line 963) | public void addMessageData(final Map<String, String> messageData, fina...
    method addProcessData (line 980) | public void addProcessData(final Map<String, String> data, final Proce...
    method deployAndEnableProcessWithIntermediateThrowMessageEvent (line 988) | public ProcessDefinition deployAndEnableProcessWithIntermediateThrowMe...
    method deployAndEnableProcessWithIntermediateThrowMessageEvent (line 996) | public ProcessDefinition deployAndEnableProcessWithIntermediateThrowMe...
    method deployAndEnableProcessWithStartMessageEvent (line 1030) | public ProcessDefinition deployAndEnableProcessWithStartMessageEvent(f...
    method deployAndEnableProcessWithStartMessageEvent (line 1037) | public ProcessDefinition deployAndEnableProcessWithStartMessageEvent(f...
    method deployAndEnableProcessWithStartMessageEvent (line 1072) | public ProcessDefinition deployAndEnableProcessWithStartMessageEvent(f...
    method addOperations (line 1079) | public void addOperations(final CatchMessageEventTriggerDefinitionBuil...
    method deployAndEnableProcessWithIntermediateCatchMessageEvent (line 1088) | public ProcessDefinition deployAndEnableProcessWithIntermediateCatchMe...
    method deployAndEnableProcessWithIntermediateCatchMessageEvent (line 1095) | public ProcessDefinition deployAndEnableProcessWithIntermediateCatchMe...
    method deployAndEnableProcessWithIntraMessageEvent (line 1132) | public ProcessDefinition deployAndEnableProcessWithIntraMessageEvent(f...
    method deployAndEnableProcessWithIntraMessageEvent (line 1138) | public ProcessDefinition deployAndEnableProcessWithIntraMessageEvent(f...
    method deployAndEnableProcessWithIntermediateCatchMessageEventAnd1Correlation (line 1190) | public ProcessDefinition deployAndEnableProcessWithIntermediateCatchMe...
    method deployAndEnableProcessWithIntermediateCatchMessageEventAnd2Correlations (line 1202) | public ProcessDefinition deployAndEnableProcessWithIntermediateCatchMe...
    method deployAndEnableProcessWithEndMessageEventAndCorrelation (line 1219) | public ProcessDefinition deployAndEnableProcessWithEndMessageEventAndC...
    method deployAndEnableProcessWithBoundarySignalEventOnLoopActivity (line 1238) | public ProcessDefinition deployAndEnableProcessWithBoundarySignalEvent...
    method deployAndEnableProcessWithBoundarySignalEventOnCallActivity (line 1257) | public ProcessDefinition deployAndEnableProcessWithBoundarySignalEvent...
    method deployAndEnableProcessWithBoundarySignalEventOnMultiInstance (line 1277) | public ProcessDefinition deployAndEnableProcessWithBoundarySignalEvent...
    method deployAndEnableProcessWithSignalEventSubProcess (line 1297) | public ProcessDefinition deployAndEnableProcessWithSignalEventSubProce...
    method deployAndEnableProcessWithIntermediateCatchTimerEventAndUserTask (line 1306) | public ProcessDefinition deployAndEnableProcessWithIntermediateCatchTi...
    method deployAndEnableProcessWithStartTimerEventAndUserTask (line 1325) | public ProcessDefinition deployAndEnableProcessWithStartTimerEventAndU...
    method deployAndEnableProcessSendingMessageUsingVariableAsTarget (line 1342) | public ProcessDefinition deployAndEnableProcessSendingMessageUsingVari...

FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/filter/user/GroupUserFilter.java
  class GroupUserFilter (line 23) | public class GroupUserFilter extends AbstractUserFilter {
    method validateInputParameters (line 25) | @Override
    method filter (line 30) | @Override

FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/filter/user/TestFilter.java
  class TestFilter (line 24) | public class TestFilter extends AbstractUserFilter {
    method filter (line 26) | @Override
    method validateInputParameters (line 31) | @Override
    method shouldAutoAssignTaskIfSingleResult (line 36) | @Override

FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/filter/user/TestFilterThatThrowException.java
  class TestFilterThatThrowException (line 24) | public class TestFilterThatThrowException extends AbstractUserFilter {
    method TestFilterThatThrowException (line 26) | public TestFilterThatThrowException() {
    method filter (line 29) | @Override
    method validateInputParameters (line 37) | @Override
    method shouldAutoAssignTaskIfSingleResult (line 42) | @Override

FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/filter/user/TestFilterThatThrowNoClassDef.java
  class TestFilterThatThrowNoClassDef (line 24) | public class TestFilterThatThrowNoClassDef extends AbstractUserFilter {
    method TestFilterThatThrowNoClassDef (line 26) | public TestFilterThatThrowNoClassDef() {
    method filter (line 30) | @Override
    method validateInputParameters (line 36) | @Override
    method shouldAutoAssignTaskIfSingleResult (line 40) | @Override

FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/filter/user/TestFilterUsingActorName.java
  class TestFilterUsingActorName (line 25) | public class TestFilterUsingActorName extends AbstractUserFilter {
    method filter (line 27) | @Override
    method validateInputParameters (line 34) | @Override
    method shouldAutoAssignTaskIfSingleResult (line 39) | @Override

FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/filter/user/TestFilterWithAutoAssign.java
  class TestFilterWithAutoAssign (line 24) | public class TestFilterWithAutoAssign extends AbstractUserFilter {
    method filter (line 26) | @Override
    method validateInputParameters (line 31) | @Override
    method shouldAutoAssignTaskIfSingleResult (line 36) | @Override

FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/page/PageAssert.java
  class PageAssert (line 25) | public class PageAssert extends AbstractAssert<PageAssert, Page> {
    method PageAssert (line 32) | public PageAssert(Page actual) {
    method assertThat (line 44) | public static PageAssert assertThat(Page actual) {
    method hasContentName (line 55) | public PageAssert hasContentName(String contentName) {
    method hasContentType (line 79) | public PageAssert hasContentType(String contentType) {
    method hasDescription (line 103) | public PageAssert hasDescription(String description) {
    method hasDisplayName (line 127) | public PageAssert hasDisplayName(String displayName) {
    method hasInstallationDate (line 151) | public PageAssert hasInstallationDate(Date installationDate) {
    method hasInstalledBy (line 176) | public PageAssert hasInstalledBy(long installedBy) {
    method hasLastUpdatedBy (line 200) | public PageAssert hasLastUpdatedBy(long lastUpdatedBy) {
    method hasName (line 224) | public PageAssert hasName(String name) {
    method hasProcessDefinitionId (line 248) | public PageAssert hasProcessDefinitionId(Long processDefinitionId) {

FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/process/Employee.java
  class Employee (line 18) | public class Employee implements Comparable<Object>, Serializable {
    method Employee (line 28) | public Employee(final String name, final String firstName) {
    method Employee (line 34) | public Employee(final String name, final String firstName, final int e...
    method getName (line 40) | public String getName() {
    method getFirstName (line 44) | public String getFirstName() {
    method getExperience (line 48) | public int getExperience() {
    method compareTo (line 52) | @Override
    method hashCode (line 64) | @Override
    method equals (line 74) | @Override

FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/process/Secretary.java
  class Secretary (line 16) | public class Secretary extends Employee {
    method Secretary (line 20) | public Secretary(String name, String firstName) {
    method Secretary (line 24) | public Secretary(String name, String firstName, int experience) {

FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/process/SetDueDateConnector.java
  class SetDueDateConnector (line 23) | public class SetDueDateConnector extends AbstractConnector {
    method executeBusinessLogic (line 27) | @Override
    method validateInputParameters (line 37) | @Override

FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/search/SlowConnector.java
  class SlowConnector (line 22) | public class SlowConnector extends AbstractConnector {
    method validateInputParameters (line 26) | @Override
    method executeBusinessLogic (line 31) | @Override

FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/util/AssertionsUtils.java
  class AssertionsUtils (line 19) | public class AssertionsUtils {
    type Assertion (line 23) | @FunctionalInterface
      method assertThat (line 26) | void assertThat() throws Exception;
    type ExceptionHandler (line 30) | @FunctionalInterface
      method handle (line 33) | void handle(Exception e) throws Exception;
    method assertNoErrorAfterXAttemps (line 37) | public static void assertNoErrorAfterXAttemps(int attempts, Assertion ...

FILE: bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/util/FunctionalMatcher.java
  type FunctionalMatcher (line 19) | public interface FunctionalMatcher<T> extends Matcher {
    method isMatchting (line 21) | boolean isMatchting(T item);
    method matches (line 23) | @Override
    method describeMismatch (line 28) | @Override
    method _dont_implement_Matcher___instead_extend_BaseMatcher_ (line 33) | @Override
    method describeTo (line 38) | @Override

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/MultiThreadCallsIT.java
  class MultiThreadCallsIT (line 23) | public class MultiThreadCallsIT extends CommonAPIIT {
    class CallAPIMethodsThread (line 25) | class CallAPIMethodsThread extends Thread {
      method CallAPIMethodsThread (line 31) | public CallAPIMethodsThread() {
      method run (line 34) | @Override
      method getException (line 48) | public Exception getException() {
      method getMessage (line 52) | public String getMessage() {
    method supportMultiThreadingClients (line 60) | @Test

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/RemoteEngineIT.java
  class RemoteEngineIT (line 29) | public class RemoteEngineIT extends TestWithTechnicalUser {
    method check_remote_exception_is_given_to_client (line 35) | @Test

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/StringIndexIT.java
  class StringIndexIT (line 41) | public class StringIndexIT extends CommonAPIIT {
    method should_set_string_index_of_current_process_using_operation_in_called_process (line 43) | @Test
    method theStringIndex (line 92) | private LeftOperand theStringIndex(int index) {
    method should_initialize_string_index_in_call_activity (line 96) | @Test
    method stringConstant (line 125) | private Expression stringConstant(String value) throws InvalidExpressi...
    method should_be_able_to_initialize_a_search_index_using_a_business_data (line 129) | @Test
    method buildSimpleBom (line 167) | private BusinessObjectModel buildSimpleBom(final String boQualifiedNam...

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/activity/CallActivityIT.java
  class CallActivityIT (line 83) | @SuppressWarnings("javadoc")
    method before (line 92) | @Override
    method after (line 100) | @Override
    method getSimpleProcess (line 107) | private ProcessDefinition getSimpleProcess(final String ACTOR_NAME, fi...
    method buildProcessWithCallActivity (line 136) | private ProcessDefinition buildProcessWithCallActivity(final boolean a...
    method buildProcessWithCallActivity (line 176) | private ProcessDefinition buildProcessWithCallActivity(final String pr...
    method buildProcessWithCallActivity (line 182) | private ProcessDefinition buildProcessWithCallActivity(final String pr...
    method addDataOutputOperationIfNeed (line 188) | private void addDataOutputOperationIfNeed(final boolean addOutputOpera...
    method addDataInputOperationsIfNeed (line 203) | private void addDataInputOperationsIfNeed(final boolean addInputOperat...
    method callActivity (line 225) | @Test
    method callActivityWithDataInputOperations (line 235) | @Test
    method callActivityWithDataOutputOperations (line 244) | @Test
    method callActivityWithDataOutputOperationsAndTerminateEnd (line 253) | @Test
    method callActivityWithDataInputAndOutputOperationsAndVersion2 (line 262) | @Test
    method callActivityAndGatewayAndMessageAndIntermediateEvent (line 267) | @Test
    method callActivityAndGatewayAndMessageAndTask (line 372) | @Test
    method callActivityWithDataOutputAndOperationAreExecutedInTheGoodOrder (line 455) | @Test
    method executeCallAtivityUntilEndOfProcess (line 513) | private void executeCallAtivityUntilEndOfProcess(final boolean addInpu...
    method getStartOperations (line 581) | private List<Operation> getStartOperations() throws InvalidExpressionE...
    method checkOutputOperations (line 590) | private void checkOutputOperations(final boolean addOutputOperations, ...
    method checkDataInputOperations (line 602) | private void checkDataInputOperations(final boolean addInputOperations...
    method variableMultiLevelCallActivity (line 615) | private void variableMultiLevelCallActivity(final int nbLevel) throws ...
    method multiLevelCallActivity (line 654) | @Test
    method callUndeployedProcess (line 659) | @Test
    method callActivityInALoop (line 675) | private void callActivityInALoop(final int nbLoop) throws Exception {
    method callActivityInALoop (line 704) | @Test
    method getTargetProcessInstance (line 709) | private ProcessInstance getTargetProcessInstance(final ProcessDefiniti...
    method getArchivedCallActivityInstance (line 718) | @Test
    method callActivityUsingLastestVersion (line 748) | @Test
    method callActivityUsingUndeployedVersion (line 753) | @Test
    method callActivityUsingUndeployedProcess (line 765) | @Test
    method callActivityUsingDisabledProcess (line 777) | @Test
    method deleteProcessInstanceThatIsCalledByCallActivity (line 793) | @Test
    method deleteProcessDefinitionWithProcessInstanceThatIsCalledByCallActivity (line 824) | @Test(expected = DeletionException.class)
    method callActivityWithDependencies (line 848) | @Test
    method callActivityCheckAttributes (line 907) | @Test
    method callActivityTargetProcessExprIsNull (line 965) | @Test(expected = InvalidProcessDefinitionException.class)
    method callActivityTargetProcessWithJustHumanTask (line 986) | @Test
    method getProcessDefinitionIdFromActivityInstanceId (line 1038) | @Test
    method callActivityWithTaskUsingEngineExpressions (line 1081) | @Test
    method callActivityWithDataMappingAndConnectors (line 1122) | @Test
    method transfert_a_custom_data_and_contract_input_from_a_parent_process_to_a_child_and_vice_versa (line 1198) | @Test
    method buildBusinessArchive (line 1263) | private BusinessArchive buildBusinessArchive(final DesignProcessDefini...
    method callActivity_classloader_handling_on_child_process (line 1279) | @Test
    method should_abort_call_activity_when_sub_process_is_triggered (line 1342) | @Test
    method should_be_able_to_cancel_process_with_call_activity_calling_unknown_process (line 1368) | @Test

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/activity/ContractIT.java
  class ContractIT (line 69) | public class ContractIT extends CommonAPIIT {
    method beforeTest (line 75) | @Before
    method afterTest (line 83) | @After
    method shouldHandleContractInputsAtProcessLevel (line 89) | @Test
    method should_process_contract_work_with_event_sub_process (line 160) | @Test
    method should_getUserTaskContract_return_the_contract (line 191) | @Test
    method should_getUserTaskContract_return_contract_with_complex_inputs (line 223) | @Test
    method should_create_a_contract_with_special_char (line 267) | @Test
    method should_execute_a_contract_with_xml_tag_in_rule (line 275) | @Test
    method should_execute_a_contract_with_integer_in_decimal_or_long (line 298) | @Test
    method should_invalid_contract_throw_ContractViolationException (line 329) | @Test
    method should_valid_contract_with_invalid_operation_do_not_throw_exception (line 362) | @Test
    method use_a_multiple_complex_input_in_user_tasks (line 387) | @SuppressWarnings("unchecked")
    method createExpenseLine (line 477) | private Map<String, Serializable> createExpenseLine(final String expen...
    method use_a_multiple_simple_input_in_user_tasks (line 488) | @SuppressWarnings("unchecked")
    method should_execute_user_task_when_contract_is_valid (line 533) | @Test
    method execute_user_task_should_throw_UserTaskNotFoundException (line 562) | @Test
    method should_ContractIsNotValidException_keep_task_ready (line 589) | @Test
    method should_connector_use_input_values (line 617) | @Test
    method deployAndEnableProcessWithTestConnectorWithAPICall (line 678) | private ProcessDefinition deployAndEnableProcessWithTestConnectorWithA...
    method check_invalid_contract_with_special_char (line 686) | private void check_invalid_contract_with_special_char(final long input...

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/activity/GetPossibleUsersOfPendingHumanTaskIT.java
  class GetPossibleUsersOfPendingHumanTaskIT (line 39) | public class GetPossibleUsersOfPendingHumanTaskIT extends TestWithTechni...
    method before (line 53) | @Override
    method after (line 64) | @Override
    method getPossibleUsersOfTaskUserActor (line 75) | @Test
    method getPossibleUsersOfTaskUserActorWithoutMembership (line 97) | @Test
    method getPossibleUsersOfTaskRoleActor (line 115) | @Test
    method getPossibleUsersOfTaskGroupActor (line 137) | @Test
    method getPossibleUsersOfTaskShouldReturnAllUsersInThePaginationRange (line 159) | @Test
    method getPossibleUsersOfTaskSubGroupActor (line 190) | @Test
    method getPossibleUsersOfFilteredTask (line 222) | @Test
    method getPossibleUsersOfUnknownTask (line 260) | @Test
    method getPossibleUsersOfTaskDefinitionUserActor (line 266) | @Test
    method getPossibleUsersOfTaskDefinitionRoleActor (line 291) | @Test
    method getPossibleUsersOfTaskDefinitionGroupActor (line 312) | @Test
    method getPossibleUsersOfTaskDefinitionSubGroupActor (line 342) | @Test
    method getPossibleUsersOfUnknownProcessDefinition (line 373) | @Test
    method getPossibleUsersOfUnknownTaskDefinition (line 379) | @Test
    method getPossibleUsersOfSystemTaskDefinition (line 394) | @Test
    method getPossibleUsersOfTaskDefinitionWithAFilter (line 408) | @Test

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/activity/HumanTasksIT.java
  class HumanTasksIT (line 53) | public class HumanTasksIT extends TestWithUser {
    method cannotGetHumanTaskInstances (line 57) | @Test
    method can_creatte_FlowNodeInstance_with_several_non_ascii_characters (line 73) | @Test
    method getLastHumanTaskInstance (line 93) | @Test
    method taskExecutionFailureLogsPrettyMessage (line 132) | @Test
    method cannotGetLastHumanTaskInstance (line 158) | @Test(expected = NotFoundException.class)
    method getHumanTaskInstances (line 178) | @Test
    method getOneAssignedHumanTaskInstance (line 232) | @Test
    method getAssignedHumanTaskInstances (line 245) | @Test
    method getAssignedHumanTaskInstancesOrderByDates (line 303) | @Test
    method getHumanTaskInstance (line 355) | @Test
    method createProcessWithActorAndHumanTaskAndStringData (line 371) | private DesignProcessDefinition createProcessWithActorAndHumanTaskAndS...
    method createProcessAndAssignUserTask (line 378) | private ActivityInstance createProcessAndAssignUserTask(final User use...
    method setTaskPriority (line 396) | @Test
    method setState (line 421) | @Test
    method setStateShouldTerminateATaskWithBoundaryEvent (line 450) | @Test
    method setStateByName_should_remove_time_of_linked_boundary_events (line 488) | @Test
    method should_use_expression_to_compute_human_task_due_date (line 516) | @Test
    method should_use_activity_expression_context_when_evaluating_default_value_expression (line 572) | @Test

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/activity/LoopIT.java
  class LoopIT (line 53) | public class LoopIT extends TestWithUser {
    method afterTest (line 55) | @After
    method executeAStandardLoopUserTaskWhichDoesNotLoop (line 60) | @Test
    method executeAStandardLoopUserTask (line 83) | @Test
    method evaluateExpressionsOnLoopUserTask (line 100) | @Test
    method executeAStandardLoopWithMaxIteration (line 124) | @Test
    method executeAStandardLoopWithConditionUsingLoopCounter (line 149) | @Test
    method executeAStandardLoopWithConditionUsingDataUsingLoopCounter (line 174) | @Test
    method waitForUserTaskAndcheckPendingHumanTaskInstances (line 223) | private long waitForUserTaskAndcheckPendingHumanTaskInstances(final St...
    method executeAStandardLoopWithConditionUsingData (line 233) | @Test
    method abortProcessWithActiveLoopActivity (line 269) | @Test
    method deployAndEnableProcessWithLoopAndUserTaskInPararallelAndTerminateEvent (line 289) | private ProcessDefinition deployAndEnableProcessWithLoopAndUserTaskInP...

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/activity/ManualTasksIT.java
  class ManualTasksIT (line 36) | public class ManualTasksIT extends TestWithUser {
    method after (line 38) | @Override
    method executeProcessWithManualTask (line 45) | @Test
    method executeProcessWithManualTaskAndUserTask (line 85) | @Test

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/activity/MultiInstanceIT.java
  class MultiInstanceIT (line 86) | public class MultiInstanceIT extends TestWithUser {
    method before (line 100) | @Override
    method after (line 111) | @Override
    method executeAMultiInstanceUserTaskWhichCreate0Task (line 121) | @Test
    method executeAMultiInstanceUserTask (line 146) | @Test
    method searchMultiInstance (line 162) | @Test
    method executeAMultiInstanceWithLoopDataInputAndOutput (line 229) | @Test
    method executeAMultiInstanceWithLoopDataAs (line 238) | private List<?> executeAMultiInstanceWithLoopDataAs(final String input...
    method executeAMultiInstanceWithMaxIteration (line 300) | @Test
    method executeAMultiInstanceWithLoopDataOutputEmpty (line 322) | @Test
    method executeAMultiInstanceWithLoopDataOutputNull (line 331) | @Test
    method executeAMultiInstanceWithLoopDataOutputTooShort (line 340) | @Test
    method executeAMultiInstanceWithLoopDataOutputTooLong (line 349) | @Test
    method executeAMultiInstanceWithSameLoopDataAsInputAndOutput (line 359) | @Test
    method executeAMultiInstanceParallelWithLoopCardinalityUsingGroovyAndData (line 368) | @Test
    method executeAMultiInstanceParallelWithLoopCardinalityMoreThan20 (line 392) | @Test
    method executeAMultiInstanceParallelWithCompletionCondition (line 416) | @Test
    method remainingInstancesAreAbortedAfterCompletionCondition (line 438) | @Test
    method executeAMultiInstanceSequentialWithCompletionCondition (line 466) | @Test
    method abortAMultiInstanceSequential (line 487) | @Test
    method executeAMultiInstanceSequentialWithConpletionConditionTrue (line 518) | @Test
    method executeAMultiInstanceParallelWithConpletionConditionTrue (line 545) | @Test
    method executeAMultiInstanceWithCompletionConditionNumberOfCompletedInstances (line 576) | @Test
    method executeAMultiInstanceWithCompletionConditionNumberOfInstances (line 591) | @Test
    method executeAMultiInstanceWithCompletionConditionNumberOfTerminatedInstances (line 606) | @Test
    method executeAMultiInstanceWithCompletionConditionNumberOfActiveInstances (line 622) | @Test
    method executeAMultiInstanceParallelWithCompletionConditionNumberOfCompletedInstances (line 638) | @Test
    method executeAMultiInstanceParallelWithCompletionConditionNumberOfInstances (line 655) | @Test
    method executeAMultiInstanceParallelWithCompletionConditionNumberOfTerminatedInstances (line 672) | @Test
    method executeAMultiInstanceParallelWithCompletionConditionNumberOfActiveInstances (line 689) | @Test
    method executeTaskAfterMultiInstanceSequential (line 706) | @Test
    method executeTaskAfterMultiInstanceSequentialAuto (line 731) | @Test
    method executeTaskAfterMultiInstanceParallel (line 756) | @Test
    method executeTaskAfterMultiInstanceParallelAuto (line 781) | @Test
    method multiInstanceParallelWithSeveralUsers (line 806) | @Test
    method multiInstanceSequentialWithSeveralUsers (line 856) | @Test
    method multiInstanceSequentialWithSubProcess (line 968) | @Test
    method withMultiInstanceAttribute (line 1002) | private void withMultiInstanceAttribute(final String condition, final ...
    method withParallelMultiInstanceAttribute (line 1029) | private void withParallelMultiInstanceAttribute(final String condition,
    method checkPendingTaskSequentially (line 1056) | private void checkPendingTaskSequentially(final int loopMax, final Pro...
    method checkPendingTaskInParallel (line 1071) | private void checkPendingTaskInParallel(final int numberOfTask, final ...
    method multiInstanceVoteUseCase (line 1084) | @Test
    method deployProcessWithTestFilter (line 1128) | private ProcessDefinition deployProcessWithTestFilter(final String act...
    method generateFilterImplementations (line 1154) | private List<BarResource> generateFilterImplementations(final String f...
    method multiInstanceWithANullList_should_put_the_task_in_failed_state (line 1164) | @Test
    method should_not_create_instance_when_multi_instantiated_on_empty_list (line 1181) | @Test
    method multiInstance_with_a_define_instance_number_should_be_able_to_save_value_into_a_data_output_list (line 1216) | @Test
    method should_abort_children_of_multi_instance_when_skipping_the_multi_instance (line 1240) | @Test
    method should_cancel_multi_instance_with_call_activity_and_boundary (line 1266) | @Test

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/activity/PendingTasksIT.java
  class PendingTasksIT (line 56) | public class PendingTasksIT extends TestWithTechnicalUser {
    method before (line 64) | @Override
    method after (line 72) | @Override
    method searchMyAvailableHumanTasks (line 81) | @Test
    method searchMyAvailableHumanTasksWithActorFilters (line 152) | @Test
    method getPendingHumanTaskInstancesInTwoProcesses (line 239) | @Test
    method getPendingHumanTaskInstancePriorityAndExpectedEndDate (line 296) | @Test
    method taskAlreadyClaimedByMe (line 327) | @Test
    method taskAlreadyClaimedByOther (line 341) | @Test
    method searchTasksWithSpecialCharsInFreeText (line 361) | @Test
    method deployProcessWithUserTask (line 391) | private ProcessDefinition deployProcessWithUserTask(final User user1) ...
    method taskAlreadyReleased (line 399) | @Test
    method actorMappedToGroup (line 412) | @Test
    method actorMappedToDifferrentGroup (line 431) | @Test
    method actorMappedToGrandChildGroup (line 453) | @Test
    method actorMappedToChildGroup (line 479) | @Test
    method deployProcessMappedToGroup (line 501) | private ProcessDefinition deployProcessMappedToGroup(final Group mainG...
    method searchPossibleUsersOfTaskUserActor (line 520) | @Test
    method searchPossibleUsersOfTaskUserActorWithoutMembership (line 552) | @Test
    method searchPossibleUsersOfTaskRoleActor (line 586) | @Test
    method searchPossibleUsersOfTaskGroupActor (line 620) | @Test
    method searchPossibleUsersOfTaskShouldReturnAllUsersInThePaginationRange (line 654) | @Test
    method searchPossibleUsersOfTaskSubGroupActor (line 693) | @Test
    method searchPossibleUsersOfFilteredTask (line 740) | @Test
    method searchPossibleUsersShouldReturnThoseStartingWithSearchedNamed (line 786) | @Test
    method getPossibleUsersOfUnknownTask (line 834) | @Test
    method test (line 847) | @Test

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/activity/ReceiveTasksIT.java
  class ReceiveTasksIT (line 49) | public class ReceiveTasksIT extends TestWithUser {
    method noMessageSentSoReceiveProcessIsWaiting (line 60) | @SuppressWarnings("unchecked")
    method receiveMessageSentAfterReceiveProcessIsWaiting (line 94) | @SuppressWarnings("unchecked")
    method receiveMessageSentBeforeReceiveProcessIsEnabled (line 147) | @Test
    method receiveMessageSentTwice (line 194) | @Test
    method receiveMessageWithData (line 238) | @Test
    method cancelInstanceShouldDeleteWaitingEvents (line 276) | @SuppressWarnings("unchecked")
    method deployAndEnableProcessWithEndMessageEvent (line 318) | private ProcessDefinition deployAndEnableProcessWithEndMessageEvent(fi...
    method deployAndEnableProcessWithReceivedTask (line 350) | private ProcessDefinition deployAndEnableProcessWithReceivedTask(final...
    method addMessageData (line 398) | private void addMessageData(final Map<String, String> messageData, fin...
    method addProcessData (line 415) | private void addProcessData(final Map<String, String> data, final Proc...
    method addCorrelations (line 423) | private void addCorrelations(final List<Entry<Expression, Expression>>...
    method buildAssignOperation (line 432) | private Operation buildAssignOperation(final String dataInstanceName, ...

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/activity/SendTaskIT.java
  class SendTaskIT (line 55) | public class SendTaskIT extends AbstractEventIT {
    method deployAndEnableProcessWithSendTask (line 59) | private ProcessDefinition deployAndEnableProcessWithSendTask(final Str...
    method addMessageData (line 90) | private void addMessageData(final Map<String, String> messageData, fin...
    method deployAndEnableProcessWithMultiInstantiatedSendTask (line 106) | private ProcessDefinition deployAndEnableProcessWithMultiInstantiatedS...
    method buildAssignOperation (line 148) | private Operation buildAssignOperation(final String dataInstanceName, ...
    method dataTransferFromSendTaskToMessageIntermediateCatchEventWithTargetFlowNode (line 169) | @Test
    method dataTransferFromSendTaskToMessageIntermediateCatchEvent (line 239) | @Test
    method can_transfer_taskData_from_multi_instance_sendTask_to_messageStartEvent (line 284) | @Test

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/activity/UserTaskAssignationIT.java
  class UserTaskAssignationIT (line 46) | public class UserTaskAssignationIT extends TestWithTechnicalUser {
    method before (line 65) | @Override
    method after (line 78) | @Override
    method getAssignedHumanTasksWithStartedState (line 89) | @Test
    method cannotExecuteAnUnassignedTask (line 101) | @Test(expected = FlowNodeExecutionException.class)
    method assignUserTask (line 107) | @Test
    method canAssignTask2Times (line 117) | @Test
    method assignUserTaskSeveralTimes (line 125) | @Test
    method releaseUserTask (line 162) | @Test
    method assignUserTaskSeveralTimesByChangingLogin (line 179) | @Test
    method assignedDateUpdate (line 207) | @Test
    method lastUpdateDateUpdate (line 235) | @Test
    method deployAndEnableSimpleProcess (line 268) | private ProcessDefinition deployAndEnableSimpleProcess()
    method assignUserTaskIfNotAssigned (line 276) | @Test
    method shouldAssignAndUnassign (line 286) | @Test
    method shouldAssignAndAssignAgainToSameUser (line 294) | @Test
    method canNotAssignTask2TimestoDifferentUserIfAssigned (line 302) | @Test
    method shouldAssignTaskSeveralTimesToDifferentUsers (line 310) | @Test
    method shouldAssignUserTaskSeveralTimesByChangingLogin (line 347) | @Test
    method assignedDateUpdateIfNotAssigned (line 373) | @Test
    method assignUserTaskSeveralThreads (line 397) | @Test
    method assignUserTaskSeveralThreadsWithoutCheck (line 438) | @Test

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/activity/work/RetryWorkIT.java
  class RetryWorkIT (line 28) | public class RetryWorkIT extends CommonAPIIT {
    method before (line 30) | @Before
    method should_retry_exception_in_groovy_scripts (line 35) | @Test

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/application/ApplicationIT.java
  class ApplicationIT (line 35) | public class ApplicationIT extends TestWithTechnicalUser {
    method searchApplications_can_filter_by_user_id (line 37) | @Test
    method searchApplications_can_filter_by_user_id_and_process_display_name (line 112) | @Test
    method should_access_identity_api_using_default_application_permissions (line 144) | @Test

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/business/application/LivingApplicationIT.java
  class LivingApplicationIT (line 31) | public class LivingApplicationIT extends TestWithLivingApplication {
    method createApplication_returns_application_based_on_ApplicationCreator_information (line 33) | @Test
    method createApplicationLink_returns_application_based_on_ApplicationCreator_information (line 66) | @Test
    method createApplication_without_profile_should_have_null_profileId (line 95) | @Test
    method updateApplication_should_return_application_up_to_date (line 109) | @Test
    method updateApplicationLink_should_return_application_up_to_date (line 144) | @Test
    method getApplication_returns_application_with_the_given_id (line 180) | @Test
    method getApplicationByToken_returns_application_with_the_given_token (line 195) | @Test
    method deleteApplication_should_delete_application_with_the_given_id (line 210) | @Test
    method searchApplications_without_filter_return_all_elements_based_on_pagination (line 230) | @Test
    method searchApplications_can_filter_on_name (line 263) | @Test
    method searchApplications_can_filter_on_display_name (line 286) | @Test
    method searchApplications_can_filter_on_version (line 309) | @Test
    method searchApplications_can_filter_on_profileId (line 333) | @Test
    method searchApplications_can_use_search_term (line 363) | @Test
    method should_create_update_replace_icon_of_application (line 385) | @Test
    method should_throw_not_found_when_getting_icon_of_unknown_application (line 420) | @Test
    method buildSearchOptions (line 426) | private SearchOptions buildSearchOptions(String prefix, final int star...

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/business/application/LivingApplicationImportExportIT.java
  class LivingApplicationImportExportIT (line 34) | public class LivingApplicationImportExportIT extends TestWithLivingAppli...
    method buildSearchOptions (line 36) | private SearchOptions buildSearchOptions(final int startIndex, final i...
    method exportApplications_should_return_the_byte_content_of_xml_file_containing_selected_applications (line 40) | @Test
    method importApplications_should_create_all_applications_contained_by_xml_file_and_return_status_ok (line 94) | @Test
    method importApplications_should_create_applications_contained_by_xml_file_and_return_error_if_there_is_unavailable_info (line 158) | @Test
    method export_after_import_should_return_the_same_xml_file (line 227) | @Test

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/business/application/LivingApplicationMenuIT.java
  class LivingApplicationMenuIT (line 29) | public class LivingApplicationMenuIT extends TestWithCustomPage {
    method setUp (line 35) | @Override
    method tearDown (line 43) | @Override
    method createApplicationMenu_ApplicationPage_should_return_applicationMenu_based_on_creator_and_should_manage_indexes (line 52) | @Test
    method createApplicationMenu_with_applicationPage_should_return_ApplicationMenu_with_applicationPageId (line 81) | @Test
    method createApplicationMenu_with_parent_menu_should_return_ApplicationMenu_with_parentId_and_should_manage_indexes (line 95) | @Test
    method updateApplicationMenu_should_update_application_menu_based_on_updater (line 127) | @Test
    method updateApplicationMenu_index_should_organize_indexes_for_elements_having_the_same_parent (line 176) | @Test
    method getApplicationMenu_should_return_the_applicationMenu_identified_by_the_given_id (line 225) | @Test
    method deleteApplicationMenu_should_remove_the_applicationMenu_identified_by_the_given_id (line 240) | @Test
    method deleteApplicationMenu_should_remove_sub_menus (line 253) | @Test
    method deleteApplication_also_deletes_application_pages_and_applicationMenu (line 277) | @Test
    method deleteApplicationPage_also_deletes_related_applicationMenu (line 301) | @Test
    method verifyExists (line 327) | private void verifyExists(ApplicationMenu applicationMenu) throws Appl...
    method verifyExists (line 332) | private void verifyExists(ApplicationPage applicationPage) throws Appl...
    method verifyNotExists (line 337) | private void verifyNotExists(ApplicationMenu applicationMenu) {
    method verifyNotExists (line 346) | private void verifyNotExists(ApplicationPage applicationPage) {
    method searchApplicationMenus_without_filters_without_search_term_should_return_all_applicationMenues_pagged (line 355) | @Test
    method searchApplicationMenus_can_filter_on_displayname (line 381) | @Test
    method searchApplicationMenus_can_filter_on_index (line 403) | @Test
    method searchApplicationMenus_can_filter_on_applicationPageId (line 425) | @Test
    method searchApplicationMenus_can_filter_on_applicationId (line 449) | @Test
    method searchApplicationMenus_can_filter_on_parentId (line 476) | @Test
    method searchApplicationMenus_can_use_searchTerm (line 502) | @Test
    method buildSearchOptions (line 524) | private SearchOptionsBuilder buildSearchOptions(final int startIndex, ...
    method getApplicationMenuSearchBuilder (line 529) | private SearchOptionsBuilder getApplicationMenuSearchBuilder(final int...

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/business/application/LivingApplicationPageIT.java
  class LivingApplicationPageIT (line 33) | public class LivingApplicationPageIT extends TestWithCustomPage {
    method createApplicationPage_returns_applicationPage_based_on_the_given_parameters (line 35) | @Test
    method setApplicationHomePage_should_update_the_application_homePage (line 55) | @Test
    method updateApplication_should_update_home_page (line 74) | @Test
    method getApplicationPage_byNameAndAppName_returns_the_applicationPage_corresponding_to_the_given_parameters (line 97) | @Test
    method getApplicationPage_byId_returns_the_applicationPage_corresponding_to_the_given_Id (line 115) | @Test
    method deleteApplication_should_also_delete_related_applicationPage (line 131) | @Test
    method verifyNotExists (line 150) | private void verifyNotExists(ApplicationPage applicationPage) {
    method deleteApplicationPage_should_delete_applicationPage_with_the_given_id (line 159) | @Test
    method getApplicationHomePage_should_return_application_homePage (line 179) | @Test
    method searchApplicationPages_without_filters_and_search_term_should_return_all_applicationPages_pagged (line 198) | @Test
    method searchApplicationPages_can_filter_on_name (line 229) | @Test
    method searchApplicationPages_can_filter_on_applicationId (line 253) | @Test
    method searchApplicationPages_can_filter_on_pageId (line 280) | @Test
    method searchApplicationPages_can_filter_on_id (line 308) | @Test
    method buildSearchOptions (line 332) | private SearchOptions buildSearchOptions(String prefix, final int star...
    method getAllAccessiblePageForAProfile (line 337) | @Test

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/business/data/BDMPostgreSQLTextFieldIT.java
  class BDMPostgreSQLTextFieldIT (line 44) | public class BDMPostgreSQLTextFieldIT extends CommonAPIIT {
    method setUp (line 50) | @Before
    method cleanup (line 60) | @After
    method should_create_TEXT_column_for_TEXT_fields_in_postgresql (line 66) | @Test
    method verifyColumnType (line 101) | private void verifyColumnType(String tableName, String columnName, Str...
    method cleanAndUninstallBusinessDataModel (line 123) | private void cleanAndUninstallBusinessDataModel() throws Exception {
    method pauseTenantIfNeeded (line 133) | private void pauseTenantIfNeeded() throws Exception {
    method resumeTenant (line 139) | private void resumeTenant() throws Exception {

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/business/data/BDMUpdateIT.java
  class BDMUpdateIT (line 38) | public class BDMUpdateIT extends CommonAPIIT {
    method setUp (line 47) | @Before
    method should_change_single_aggregation_relation (line 55) | @Test
    method should_change_single_composition_relation (line 60) | @Test
    method should_change_multiple_aggregation_relation (line 65) | @Test
    method should_change_multiple_composition_relation (line 70) | @Test
    method checkSingleRelation (line 75) | protected void checkSingleRelation(RelationField.Type relationType) th...
    method checkMultipleRelation (line 92) | protected void checkMultipleRelation(RelationField.Type relationType) ...
    method resumeTenant (line 110) | protected void resumeTenant() throws Exception {
    method getBusinessObjectModel (line 116) | protected BusinessObjectModel getBusinessObjectModel(BusinessObject pa...
    method addChildBusinessObjects (line 123) | protected void addChildBusinessObjects(BusinessObjectModel businessObj...
    method getBusinessObject (line 128) | private BusinessObject getBusinessObject(String boName) {
    method getSingleRelationField (line 135) | private RelationField getSingleRelationField(BusinessObject businessOb...
    method getMultipleRelationField (line 139) | private RelationField getMultipleRelationField(BusinessObject business...
    method getRelationField (line 143) | private RelationField getRelationField(BusinessObject businessObject, ...
    method getSimpleField (line 155) | private SimpleField getSimpleField() {
    method uninstallBusinessDataModel (line 162) | private void uninstallBusinessDataModel() throws Exception {
    method pauseTenantIfNeeded (line 175) | private void pauseTenantIfNeeded() throws UpdateException {
    method ensureBDMIsInstalled (line 181) | private void ensureBDMIsInstalled(String bdmVersion) {

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/business/data/BDRepositoryIT.java
  class BDRepositoryIT (line 121) | public class BDRepositoryIT extends CommonAPIIT {
    method setUp (line 137) | @Before
    method tearDown (line 153) | @After
    method deploying_bdm_with_invalid_query_should_throw_a_BDM_deployment_exception (line 170) | @Test
    method deploying_a_bdm_with_unique_constraint_on_multiple_field_should_fail_and_allow_to_deploy_a_clean_bdm_afterwards (line 179) | @Test
    method deploying_bdm_after_process_should_put_process_in_resolved_state (line 212) | @Test
    method should_keep_old_bdm_in_case_of_update_bdm_error (line 231) | @Test
    method should_not_fail_when_resuming_tenant_during_install_of_bdm (line 318) | @Test
    method installAndVerifyBusinessDataModel (line 343) | private void installAndVerifyBusinessDataModel(final BusinessObjectMod...
    method verifyBdmIsWellDeployed (line 349) | private void verifyBdmIsWellDeployed() throws Exception {
    method deploySimpleProcessWithBusinessData (line 358) | private ProcessDefinition deploySimpleProcessWithBusinessData(final St...
    method shouldBeAbleToUpdateBusinessDataUsingBizDataJavaSetterOperation (line 372) | @Test
    method deployABDRAndCreateADefaultBusinessDataAndReuseReference (line 453) | @Test
    method deployABDRAndCreateABOAndUpdateThroughAGroovyScript (line 492) | @Test
    method updatingABOThroughAGroovyScriptShouldUpdateTheBO (line 525) | @Test
    method deployProcessWithWrongBusinessDataTypeShouldNotBeDeployable (line 576) | @Test(expected = ProcessEnablementException.class)
    method deployABDRAndExecuteAGroovyScriptWhichContainsAPOJOFromTheBDR (line 597) | @Test
    method createAnEmployeeWithARequiredFieldAtNullThrowsAnException (line 625) | @Test(expected = BonitaRuntimeException.class)
    method createAnEmployeeWithATooSmallFieldAtNullThrowsAnException (line 647) | @Test(expected = BonitaRuntimeException.class)
    method updateBusinessDataShouldWorkOutsideATransaction (line 669) | @Test
    method should_deploy_generate_client_bdm_zip (line 684) | @Test
    method listEntries (line 691) | private ArrayList<String> listEntries(byte[] clientBDMZip) throws IOEx...
    method should_undeploy_delete_generate_client_bdm_zip (line 702) | @Test
    method shouldBeAbleToRunDAOCallThroughGroovy (line 712) | @Test
    method should_use_factory_to_instantiate_dao_on_client_side (line 803) | @Test
    method should_use_apiClient_to_instantiate_dao_on_client_side (line 851) | @Test
    method should_retrieve_bdm_object_with_lazy_and_non_lazy_composition_objects_using_dao (line 904) | @Test
    method invokeMethod (line 960) | private Object invokeMethod(Object object, String method)
    method addEmployee (line 965) | private void addEmployee(final String firstName, final String lastName...
    method createNewEmployeeScriptContent (line 996) | private String createNewEmployeeScriptContent(final String firstName, ...
    method buildProcessThatUpdateBizDataInsideConnector (line 1024) | private ProcessDefinition buildProcessThatUpdateBizDataInsideConnector...
    method getEmployeeToString (line 1067) | private String getEmployeeToString(final String businessDataName, fina...
    method shouldBeAbleToCreate2BusinessDataUsingIntermixedBizDataJavaSetterOperations (line 1089) | @Test
    method shouldBeAbleToDeleteABusinessDataUsingOperation (line 1186) | @Test
    method assertCount (line 1228) | public void assertCount(final long processInstanceId) throws Exception {
    method deployABDRAndCreateAndUpdateAMultipleBusinessData (line 1240) | @Test
    method deployBDRAndCreateAndUpdateAInitiallyEmptyMultipleBusinessData (line 1283) | @Test
    method getEmployeesToString (line 1325) | private String getEmployeesToString(final String businessDataName, fin...
    method useMultipleBusinessDataInAUserTaskWithMultiInstance (line 1346) | @Test
    method firstNames (line 1381) | private String[] firstNames(final String employeeToString) {
    method lastNames (line 1387) | private String[] lastNames(final String employeeToString) {
    method useMultipleBusinessDataInACallActivityWithSequentialMultiInstance (line 1393) | @Test
    method useMultipleBusinessDataInACallActivityWithInDataMultiInstance (line 1444) | @Test
    method useMultipleBusinessDataInACallActivityWithOutDataMultiInstance (line 1498) | @Test
    method initializeBusinessDataInCalledProcessWithContractInput (line 1547) | @Test
    method should_return_the_list_of_entities_from_the_multiple_instance (line 1592) | @Test
    method getProcessBusinessDataReferencesShoulReturnTheListOfReferences (line 1665) | @Test
    method getBusinessDataCommand_should_return_json_entities (line 1681) | @Test
    method verifyCommandGetBusinessDataByIds (line 1740) | private void verifyCommandGetBusinessDataByIds(final SimpleBusinessDat...
    method verifyCommandGetBusinessDataById (line 1761) | private void verifyCommandGetBusinessDataById(final SimpleBusinessData...
    method verifyCommandGetQuery_findByFirstNameAndLastNameNewOrder (line 1791) | private void verifyCommandGetQuery_findByFirstNameAndLastNameNewOrder(...
    method verifyCommandGetQuery_getEmployeeByPhoneNumber (line 1821) | private void verifyCommandGetQuery_getEmployeeByPhoneNumber() throws E...
    method verifyCommandGetQuery_findByFirstNameFetchAddresses (line 1848) | private void verifyCommandGetQuery_findByFirstNameFetchAddresses() thr...
    method getBusinessDataByQuery (line 1864) | private BusinessDataQueryResult getBusinessDataByQuery(Map<String, Ser...
    method verifyCommandGetQuery_countEmployee (line 1880) | private void verifyCommandGetQuery_countEmployee() throws Exception {
    method verifyCommandGetQuery_findByHireDate (line 1899) | private void verifyCommandGetQuery_findByHireDate() throws Exception {
    method getResource (line 1920) | @Override
    method getJsonContent (line 1925) | private String getJsonContent(final String jsonFileName) throws IOExce...
    method deployABDRAndCreateInOperationAMultipleBusinessData (line 1931) | @Test
    method should_subprocess_get_bdm_from_parent_process_instance_when_using_task_loop (line 1968) | @Test
    method should_get_the_lazy_list_in_a_multiple_business_data (line 2038) | @Test
    method should_update_composition_entities (line 2084) | @Test
    method should_associate_the_right_address (line 2131) | @Test
    method should_associate_the_right_addresses (line 2189) | @Test
    method should_install_bdm_reevaluate_process_resolutions (line 2245) | @Test
    method should_handle_consecutive_calls (line 2279) | @Test
    method should_initialize_a_bo_with_empty_query_result (line 2337) | @Test
    method should_initialize_a_multiple_bo_with_empty_query_result (line 2376) | @Test
    method getNumberOfAddresses (line 2428) | public Long getNumberOfAddresses(final long processInstanceId) throws ...
    method getAddressAsAString (line 2440) | public String getAddressAsAString(final String addressName, final long...
    method getEmployeeAsAString (line 2454) | private String getEmployeeAsAString(final String businessDataName, fin...
    method evaluate_context_on_process_and_task (line 2480) | @Test
    method should_event_sub_process_only_start_element_in_the_event_sub_process (line 2547) | @Test
    method should_be_able_to_update_business_object_in_event_sub_process (line 2627) | @Test
    method getBusinessDataAsJson (line 2681) | private String getBusinessDataAsJson(SimpleBusinessDataReference myBus...
    method shouldRetrieveBDMObjectsInLeftOperandsInCatchMessages (line 2690) | @Test
    method should_connector_using_bdm_still_work_after_bdm_update (line 2747) | @Test
    method retrieveClientBDMModelJar (line 2799) | private Path retrieveClientBDMModelJar() throws BusinessDataRepository...
    method bomMyObjectWith2Fields (line 2807) | private BusinessObjectModel bomMyObjectWith2Fields() {
    method bomMyObjectWith1Field (line 2823) | private BusinessObjectModel bomMyObjectWith1Field() {
    class AddressRef (line 2835) | class AddressRef {
      method AddressRef (line 2843) | AddressRef(final String varName, final String street, final String c...
      method getExpression (line 2849) | public Expression getExpression() throws InvalidExpressionException {
      method getVarName (line 2853) | public String getVarName() {
      method getStreet (line 2857) | public String getStreet() {
      method getCity (line 2861) | public String getCity() {
      method getCreationOperation (line 2865) | public Operation getCreationOperation() throws InvalidExpressionExce...
    method buildBOMWithInvalidQuery (line 2883) | private BusinessObjectModel buildBOMWithInvalidQuery() {

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/client/BonitaClientXMLTest.java
  class BonitaClientXMLTest (line 36) | public class BonitaClientXMLTest {
    method tearDown (line 45) | @After
    method testGetAPIType (line 50) | @Test
    method testGetAPITypeParameters (line 56) | @Test
    method testCannotUseAnInvalidAPITypePlatForm (line 70) | @Test(expected = UnknownAPITypeException.class)
    method testCannotUseAnInvalidAPITypeTenants (line 76) | @Test(expected = UnknownAPITypeException.class)

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/command/AdvancedStartProcessCommandIT.java
  class AdvancedStartProcessCommandIT (line 58) | public class AdvancedStartProcessCommandIT extends TestWithUser {
    method afterTest (line 72) | @After
    method should_start_a_sequential_process (line 78) | @Test
    method should_start_a_sequential_process_with_variables (line 93) | @Test
    method should_be_able_to_start_a_sequential_process_with_a_document (line 113) | @Test
    method should_be_able_to_start_a_process_with_a_parallel_split (line 135) | @Test
    method should_be_able_to_start_a_process_with_an_exclusive_merge (line 151) | @Test
    method should_be_able_to_start_a_process_with_an_exclusive_split (line 168) | @Test
    method should_be_able_to_start_a_process_before_an_inclusive (line 188) | @Test
    method createSetDataOperation (line 206) | private Operation createSetDataOperation(final String name, final Stri...
    method getProcessDefinitionBuilder (line 211) | private ProcessDefinitionBuilder getProcessDefinitionBuilder() {
    method startProcess (line 219) | private TestUtils.Process startProcess(final long startedBy, final lon...
    method startProcess (line 224) | private TestUtils.Process startProcess(final long startedBy, final lon...
    method getProcessDeployer (line 241) | private ProcessDeployer getProcessDeployer() {
    method advancedStartProcessCommandWithConnectorOnEnterOnProcess (line 256) | @Test

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/command/CommandIT.java
  class CommandIT (line 35) | public class CommandIT extends TestWithTechnicalUser {
    method commandAlreadyExistsException (line 37) | @Test(expected = AlreadyExistsException.class)
    method commandNotFoundException (line 49) | @Test(expected = CommandNotFoundException.class)
    method executeUnknownCommand (line 54) | @Test(expected = CommandNotFoundException.class)
    method executeCommandWithParameters (line 61) | @Test
    method commandThrowsCommandParameterizationException (line 75) | @Test(expected = CommandParameterizationException.class)
    method commandThrowsCommandExecutionException (line 91) | @Test(expected = CommandExecutionException.class)
    method createCommand (line 107) | @Test
    method deleteCommand (line 122) | @Test
    method getCommandByName (line 148) | @Test
    method updateCommand (line 162) | @Test
    method getCommandsWithCommandCriterion (line 190) | @Test
    method testGetCommands (line 216) | @Test
    method getCommandById (line 238) | @Test
    method searchCommands (line 253) | @Test
    method searchCommandsWithApostrophe (line 336) | @Test
    method executeCommandById (line 366) | @Test
    method executeCommandThrowsANPE (line 385) | @Test(expected = BonitaRuntimeException.class)

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/command/ExecuteBDMQueryCommandIT.java
  class ExecuteBDMQueryCommandIT (line 64) | public class ExecuteBDMQueryCommandIT extends CommonAPIIT {
    method buildCustomBOM (line 95) | private BusinessObjectModel buildCustomBOM() {
    method initTestClass (line 130) | @BeforeClass
    method cleanTestClass (line 136) | @AfterClass
    method beforeTest (line 145) | @Before
    method loadClientJars (line 171) | private void loadClientJars() throws Exception {
    method cleanClassLoader_and_uninstall_bdm (line 180) | @After
    method should_execute_returns_empty_list (line 198) | @Test
    method should_execute_returns_employee_list (line 211) | @Test
    method getListFromQueryShouldLimitToMaxResults (line 224) | @Test
    method should_have_a_count_query (line 237) | @Test
    method should_have_query_metadata_on_auto_generated_queries (line 252) | @Test
    method should_return_count_result_when_executing_count_query (line 266) | @Test
    method should_have_query_metadata_on_custom_queries_with_related_count (line 276) | @Test
    method executeQuery (line 293) | private BusinessDataQueryResult executeQuery(String queryName, int sta...
    method should_have_results_but_no_query_metadata_when_count_is_not_available (line 310) | @Test
    method should_execute_returns_a_single_employee (line 322) | @Test
    method should_execute_throw_a_CommandExecutionException_if_result_is_not_single (line 344) | @Test(expected = CommandExecutionException.class)
    method should_execute_throw_BonitaRuntimeException_if_query_not_exists (line 355) | @Test(expected = BonitaRuntimeException.class)
    method addEmployee (line 363) | public void addEmployee(final String firstName, final String lastName,...
    method createNewEmployeeScriptContent (line 387) | private String createNewEmployeeScriptContent(final String firstName, ...
    method deserializeSimpleResult (line 428) | private Serializable deserializeSimpleResult(final byte[] result) thro...
    method deserializeListResult (line 434) | private List<?> deserializeListResult(final byte[] result) throws Exce...
    method getJsonContent (line 440) | private String getJsonContent(final String jsonFileName) throws IOExce...

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/command/ExecutionExceptionCommand.java
  class ExecutionExceptionCommand (line 24) | public class ExecutionExceptionCommand extends RuntimeCommand {
    method execute (line 26) | @Override

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/command/IntegerCommand.java
  class IntegerCommand (line 24) | public class IntegerCommand extends RuntimeCommand {
    method execute (line 26) | @Override

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/command/MultipleStartPointsProcessCommandIT.java
  class MultipleStartPointsProcessCommandIT (line 61) | public class MultipleStartPointsProcessCommandIT extends TestWithUser {
    method afterTest (line 75) | @After
    method should_start_a_sequential_process (line 81) | @Test
    method should_start_a_sequential_process_with_variables (line 97) | @Test
    method should_be_able_to_start_a_sequential_process_with_a_document (line 117) | @Test
    method should_be_able_to_start_a_process_before_a_parallel_merge (line 139) | @Test
    method should_be_able_to_start_a_process_before_consecutive_parallel_merges (line 159) | @Test
    method should_be_able_to_start_a_process_before_a_parallel_split (line 181) | @Test
    method should_be_able_to_start_a_process_before_an_exclusive_merge_with_only_one_active_branch (line 198) | @Test
    method should_be_able_to_start_a_process_before_an_exclusive_merge_with_execute_all_incoming_branches (line 217) | @Test
    method should_be_able_to_start_a_process_before_an_exclusive_merge_with_conditions (line 236) | @Test
    method should_be_able_to_start_a_process_before_an_exclusive_split (line 257) | @Test
    method should_be_able_to_start_a_process_before_an_inclusive (line 278) | @Test
    method should_be_able_to_start_before_an_inclusive_merge_with_all_incoming_branches (line 297) | @Test
    method should_be_able_to_start_before_an_inclusive_with_sub_set_of_incoming_branches (line 317) | @Test
    method should_be_able_to_start_an_inclusive_with_boundary (line 337) | @Test
    method createSetDataOperation (line 363) | private Operation createSetDataOperation(final String name, final Stri...
    method getProcessDefinitionBuilder (line 368) | private ProcessDefinitionBuilder getProcessDefinitionBuilder() {
    method startProcess (line 376) | private TestUtils.Process startProcess(final long startedBy, final lon...
    method startProcess (line 381) | private TestUtils.Process startProcess(final long startedBy, final lon...
    method startProcess (line 388) | private TestUtils.Process startProcess(final long startedBy, final lon...
    method getProcessDeployer (line 408) | private ProcessDeployer getProcessDeployer() {
    method advancedStartProcessCommandWithConnectorOnEnterOnProcess (line 423) | @Test
    method should_start_process_with_process_contract_input (line 455) | @Test

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/command/NPECommand.java
  class NPECommand (line 21) | public class NPECommand extends RuntimeCommand {
    method execute (line 23) | public Serializable execute(Map<String, Serializable> parameters, Serv...

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/command/ParameterizationExceptionCommand.java
  class ParameterizationExceptionCommand (line 24) | public class ParameterizationExceptionCommand extends RuntimeCommand {
    method execute (line 26) | @Override

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/command/helper/designer/BranchTest.java
  class BranchTest (line 29) | @RunWith(MockitoJUnitRunner.class)
    method bind_should_link_first_fragment_of_the_branch (line 35) | @Test
    method bind_should_link_last_fragment_of_the_branch (line 44) | @Test

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/command/helper/designer/DesignerTestUtils.java
  class DesignerTestUtils (line 29) | public class DesignerTestUtils {
    type Stringifier (line 31) | interface Stringifier<O> {
      method stringify (line 33) | String stringify(O object);
    method stringify (line 36) | public static <O> String stringify(Collection<O> items, Stringifier<O>...
    method getGateways (line 45) | public static String getGateways(final DesignProcessDefinition design) {
    method getActivities (line 59) | public static String getActivities(final DesignProcessDefinition desig...
    method getTransitions (line 73) | public static String getTransitions(final DesignProcessDefinition desi...
    method getTransitionName (line 87) | private static String getTransitionName(TransitionDefinition transitio...

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/command/helper/designer/SimpleProcessDesignerTest.java
  class SimpleProcessDesignerTest (line 32) | public class SimpleProcessDesignerTest {
    method should_be_able_to_design_a_linear_process (line 36) | @Test
    method should_be_able_to_design_a_process_with_a_gate (line 49) | @Test
    method should_be_able_to_design_a_process_with_parallel_activities (line 64) | @Test
    method should_be_able_to_design_a_process_multiple_incoming_conditions (line 76) | @Test
    method should_be_able_to_design_a_process_with_multiple_outgoing_conditions (line 95) | @Test
    method should_be_able_to_design_a_process_with_complex_branch (line 114) | @Test
    method should_be_able_to_design_a_process_with_complex_ (line 133) | @Test
    method createProcessDefinitionBuilder (line 152) | private ProcessDefinitionBuilder createProcessDefinitionBuilder() {

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/connectors/RemoteConnectorExecutionIT.java
  class RemoteConnectorExecutionIT (line 86) | @SuppressWarnings("javadoc")
    method executeConnectorWithJNDILookupAndAPICall (line 104) | @Test
    method executeConnectorOnFinishOfAnAutomaticActivityWithDataAsOutput (line 133) | @Test
    method executeConnectorOnFinishOfMultiInstancedActivity (line 170) | @Test
    method deployProcessWithConnectorOnMutiInstance (line 206) | private ProcessDefinition deployProcessWithConnectorOnMutiInstance(fin...
    method executeConnectorMultipleConnectorsOnOneActivity (line 264) | @Test
    method redeployProcessWithNoConnectorImplem (line 313) | @Test
    method executeConnectorOnProcessDefinition (line 337) | @Test
    method getConnectorInputParameters (line 382) | private Map<String, Expression> getConnectorInputParameters(final Stri...
    method getInputValues (line 388) | private Map<String, Map<String, Serializable>> getInputValues(final St...
    method executeConnectorInJar (line 401) | @Test
    method getNumberOfConnectorImplementationsWhenProcessDoesNotExists (line 423) | @Test
    method getConnectorImplementations (line 428) | @Test
    method longConnectorOutputStoredInProcessVariableShouldThrowANiceException (line 483) | @Test
    method executeConnectorThatThrowExceptionFailUserTask (line 512) | @Test
    method executeConnectorThatThrowExceptionFailAutomaticTaskOnEnter (line 522) | @Test
    method executeConnectorThatThrowExceptionFailAutomaticTaskOnFinish (line 533) | @Test
    method connectorThatThrowExceptionFailPolicyOnTaskInput (line 544) | @Test
    method connectorThatThrowExceptionIgnorePolicyOnTaskInput (line 574) | @Test
    method connectorThatThrowExceptionFailPolicyOnProcessInput (line 602) | @Test
    method connectorThatThrowExceptionErrorEventPolicyBoundaryOnTaskInput (line 632) | @Test
    method connectorThatThrowExceptionErrorEventPolicyBoundaryOnAutomaticTask (line 662) | @Test
    method connectorThatThrowExceptionErrorEventPolicyBoundaryOnReceiveTask (line 691) | @Test
    method connectorThatThrowExceptionErrorEventPolicyBoundaryOnSendTask (line 722) | @Test
    method connectorThatThrowExceptionErrorEventPolicyBoundaryOnTaskOutput (line 752) | @Test
    method ignoreErrorConnectorOnBoundaryWhenInputFail (line 783) | @Test
    method connectorThatThrowExceptionIgnorePolicyOnTaskOutput (line 808) | @Test
    method connectorThatThrowExceptionFailPolicyOnTaskOutput (line 834) | @Test
    method getFirst100ConnectorInstanceSearchOptions (line 863) | private SearchOptionsBuilder getFirst100ConnectorInstanceSearchOptions...
    method executeConnectorThatThrowRuntimeExceptionFailUserTaskOnEnter (line 873) | @Test
    method executeConnectorThatThrowRuntimeExceptionInConnectFailUserTaskOnEnter (line 884) | @Test
    method executeConnectorThatThrowRuntimeExceptionInDisconnectFailUserTaskOnEnter (line 895) | @Test
    method executeConnectorThatThrowRuntimeExceptionFailAutomaticTaskOnEnter (line 906) | @Test
    method connectorThatThrowRuntimeExceptionFailTask (line 917) | @Test
    method connectorThatThrowRuntimeExceptionFailProcess (line 928) | @Test
    method connectorThatThrowExceptionFailProcess (line 939) | @Test
    method connectorThatThrowExceptionIgnorePolicyOnTask (line 950) | @Test
    method connectorThatThrowExceptionIgnorePolicyOnProcess (line 961) | @Test
    method connectorThatThrowExceptionErrorEventPolicyWithEventSubProcessOnTask (line 972) | @Test
    method connectorThatThrowExceptionErrorEventPolicyWithEventSubProcessOnProcess (line 982) | @Test
    method getProcessWithConnectorThatThrowError (line 992) | private ProcessDefinition getProcessWithConnectorThatThrowError(final ...
    method getProcessWithConnectorThatThrowErrorOnUserTaskOnEnter (line 1048) | private ProcessDefinition getProcessWithConnectorThatThrowErrorOnUserT...
    method getProcessWithConnectorThatThrowErrorOnAutomaticTaskOnEnter (line 1054) | private ProcessDefinition getProcessWithConnectorThatThrowErrorOnAutom...
    method getProcessWithConnectorThatThrowErrorOnAutomaticTaskOnFinish (line 1060) | private ProcessDefinition getProcessWithConnectorThatThrowErrorOnAutom...
    method connectorThatThrowExceptionErrorEventPolicyBoundaryOnTaskShouldAbortCurrentTask (line 1066) | @Test
    method connectorThatThrowExceptionErrorEventPolicyNotCatchOnTask (line 1098) | @Test
    method connectorThatThrowExceptionErrorEventPolicyCallActivityOnTask (line 1123) | @Test
    method should_order_connectors_by_execution_order_when_no_filter_are_set (line 1169) | @Test
    method searchArchivedConnectorInstance (line 1208) | @Test
    method connectorWithExternalLibraryInInputAndOutput (line 1275) | @Test
    method executeConnectorOnProcessDefinitionWithOperations (line 1308) | @Test
    method executeConnectorWithConnectedResouce (line 1358) | @Test
    method deployProcessWithConnectorWithConnectedResources (line 1376) | private ProcessDefinition deployProcessWithConnectorWithConnectedResou...
    method executeConnectorOnEnterAfterUserFilter (line 1398) | @Test
    method getEngineExecutionContext (line 1442) | @Test
    method deployProcWithConnectorEngineExecContext (line 1459) | private ProcessDefinition deployProcWithConnectorEngineExecContext(fin...
    method executeConnectorWithInputExpressionUsingAPI (line 1481) | @Test
    method getConnectorWithFailureInformationOnConnectorExecution (line 1532) | @Test
    method deployAndEnableProcessWithFailingConnector (line 1557) | private ProcessDefinition deployAndEnableProcessWithFailingConnector()...
    method deployAndEnableProcessWithActorAndTestConnectorThatThrowException (line 1581) | public ProcessDefinition deployAndEnableProcessWithActorAndTestConnect...
    method should_be_able_to_execute_process_connector_without_flownode (line 1589) | @Test
    method should_put_connector_in_failed_even_when_retryable_exception_happens_while_evaluating_output_operations (line 1607) | @Test

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/event/AbstractWaitingEventIT.java
  class AbstractWaitingEventIT (line 32) | public abstract class AbstractWaitingEventIT extends AbstractEventIT {
    method checkNumberOfWaitingEvents (line 38) | protected void checkNumberOfWaitingEvents(final String errorMessage, f...
    method checkNumberOfWaitingEvents (line 53) | protected void checkNumberOfWaitingEvents(final String flowNodeName, f...
    method checkNumberOfWaitingEventsInProcess (line 67) | protected void checkNumberOfWaitingEventsInProcess(final String proces...

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/event/EndEventIT.java
  class EndEventIT (line 29) | public class EndEventIT extends AbstractEventIT {
    method executeStartAndEndEvents (line 31) | @Test
    method startEventCannotHaveIncomingTransition (line 50) | @Test(expected = InvalidProcessDefinitionException.class)
    method endEventCannotHaveOutgoingTransition (line 57) | @Test(expected = InvalidProcessDefinitionException.class)
    method terminateEndEventAlone (line 64) | @Test
    method executeStartAndEndEventWithTask (line 76) | @Test
    method terminateEndEventWithTasks (line 89) | @Test
    method terminateEndEventWithNotFinishedBranch (line 103) | @Test
    method terminateEndEvendWithNotFinishedBranch2 (line 122) | @Test
    method terminateEndEvendWithNotFinishedMultipleBranch (line 144) | @Test
    method terminateEventWithMultiInstanceParallel (line 167) | @Test
    method terminateEventWithMultiInstanceSequential (line 183) | @Test

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/event/ErrorBoundaryEventIT.java
  class ErrorBoundaryEventIT (line 33) | public class ErrorBoundaryEventIT extends AbstractEventIT {
    method errorBoundaryEventTriggeredNamedError (line 35) | @Test
    method errorBoundaryEventTriggeredCatchAllError (line 40) | @Test
    method executionWitherrorEventTriggered (line 45) | protected void executionWitherrorEventTriggered(final String catchErro...
    method errorBoundaryEventNotTriggered (line 83) | @Test
    method uncaughtThrowErrorEvent (line 107) | @Test
    method errorEventCaughtAtParentLevel2 (line 131) | @Test
    method errorEventTwoCatchErrorMatching (line 168) | @Test
    method errorCodeThrownBySubProcessShouldBeCatchByMainProcess (line 207) | @Test
    method processWithMIUserTaskWithErrorEvent_should_take_the_error_flow (line 222) | @Test

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/event/ErrorEventSubProcessIT.java
  class ErrorEventSubProcessIT (line 47) | public class ErrorEventSubProcessIT extends AbstractWaitingEventIT {
    method before (line 51) | @Override
    method after (line 58) | @Override
    method errorEventSubProcessTriggeredNamedError (line 65) | @Test
    method errorEventSubProcessTriggeredCatchAllErrors (line 70) | @Test
    method executeProcessTriggeringEventSubProcess (line 75) | private void executeProcessTriggeringEventSubProcess(final String catc...
    method errorEventSubProcessNotTriggered (line 109) | @Test
    method createSeveralInstances (line 133) | @Test
    method subProcessCanAccessParentData (line 150) | @Test
    method subProcessCanAccessParentDataEvenIfItDoesntHaveLocalData (line 167) | @Test
    method eventSubProcessWithDataAndRootProcessWithNoData (line 191) | @Test
    method checkEvaluateExpression (line 214) | private void checkEvaluateExpression(final ActivityInstance subStep, f...
    method checkRetrieveDataInstances (line 226) | private void checkRetrieveDataInstances(final ProcessInstance processI...
    method checkProcessDataInstance (line 236) | private void checkProcessDataInstance(final String dataName, final lon...
    method checkActivityDataInstance (line 242) | private void checkActivityDataInstance(final String dataName, final lo...
    method errorEventSubProcInsideTargetCallActivity (line 249) | @Test
    method processWithErrorEventSubProcAndCallActivity_must_be_finished_when_subProcess_is_finished (line 271) | @Test
    method should_catch_error_in_event_subprocess_when_process_is_disabled_and_then_cancel_it (line 301) | @Test

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/event/EventTriggerIT.java
  class EventTriggerIT (line 41) | public class EventTriggerIT extends AbstractEventIT {
    method searchTimerEventTriggerInstances (line 43) | @Test
    method updateTimerEventTriggerInstance (line 88) | @Test

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/event/InterruptingTimerBoundaryEventIT.java
  class InterruptingTimerBoundaryEventIT (line 28) | public class InterruptingTimerBoundaryEventIT extends AbstractEventIT {
    method timerBoundaryEventTriggered (line 30) | @Test
    method timerBoundaryEventWithScriptThatFail (line 48) | @Test
    method timerBoundaryEventTriggeredOnCallActivity (line 69) | @Test
    method timerBoundaryEventTriggeredOnSequentialMultiInstance (line 100) | @Test
    method timerBoundaryEventTriggeredOnParallelMultiInstance (line 123) | @Test
    method timerBoundaryEventTriggeredOnLoopActivity (line 149) | @Test
    method timerBoundaryEventTriggeredAndLongData (line 176) | @Test

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/event/MessageBoundaryEventIT.java
  class MessageBoundaryEventIT (line 43) | public class MessageBoundaryEventIT extends AbstractEventIT {
    method messageBoundaryEventTriggered (line 47) | @Test
    method messageBoundaryEventNotTriggered (line 83) | @Test
    method messageBoundaryEventOnCallActivityTriggered (line 101) | @Test
    method messageBoundaryEventOnCallActivityNotTriggered (line 128) | @Test
    method messageBoundaryEventTriggeredOnSequentialMultiInstance (line 156) | @Test
    method messageBoundaryEventNotTriggeredOnSequentialMultiInstance (line 181) | @Test
    method messageBoundaryEventTriggeredOnParallelMultiInstance (line 205) | @Test
    method messageBoundaryEventNotTriggeredOnParallelMultiInstance (line 235) | @Test
    method messageBoundaryEventTriggeredOnLoopActivity (line 261) | @Test
    method messageBoundaryEventNotTriggeredOnLoopActivity (line 285) | @Test
    method process_with_call_activity_aborted_by_boundary_event_should_complete_along_with_its_target_process (line 308) | @Test
    method process_with_call_activity_aborted_by_terminate_end_event_should_complete_along_with_its_target_process (line 339) | @Test
    method logAllProcesses (line 371) | protected void logAllProcesses() throws SearchException {

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/event/MessageEventIT.java
  class MessageEventIT (line 63) | @SuppressWarnings("javadoc")
    method messageStartEventMessageSentAfterEnable (line 71) | @Test
    method messageStartEventMessageSentAfterEnableWithNoTargetFlowNode (line 92) | @Test
    method messageStartEventMessageSentBeforeEnable (line 112) | @Test
    method messageIntermediateCatchEventMessageSentAfterCatch (line 136) | @Test
    method messageIntermediateCatchEventMessageSentBeforeCatch (line 155) | @Test
    method messageIntermediateCatchEventWithCorrelations (line 180) | @Test
    method messageIntermediateCatchEventWithoutCorrelations (line 248) | @Test
    method correlationKeyInWrongOrderShouldWork (line 287) | @Test
    method multipleCorrelationsKeys (line 338) | @Test
    method buildAssignOperation (line 384) | private Operation buildAssignOperation(final String dataInstanceName, ...
    method messageIntermediateThrowEventMessageSentAfterEnable (line 403) | @Test
    method messageIntermediateThrow2EventMessages (line 419) | @Test
    method dataTransferFromMessageEndEventToStartMessageEvent (line 464) | @Test
    method dataTransferFromMessageEndEventToMessageIntermediateCatchEvent (line 501) | @Test
    method messageSentProcessFinishBeforeReceiveProcessIsEnabled (line 548) | @Test
    method messageEventIntraProcess (line 572) | @Test
    method messageIntermediateCatchEventMessageMultiSend (line 594) | @Test
    method deleteProcessInstanceShouldDeleteWaitingEvents (line 619) | @Test
    method sendMessageViaAPIToStartMessageEvent (line 637) | @Test
    method sendMessage (line 650) | protected void sendMessage(final String messageName, final String targ...
    method sendMessage (line 660) | private void sendMessage(final String messageName, final String target...
    method sendMessageViaAPIToIntermediateMessageEvent (line 671) | @Test
    method sendMessageWithDataViaAPIToStartMessageEvent (line 689) | @Test
    method sendMessageTwiceTriggersTwoStartMessageEvents (line 716) | @Test
    method checkUserHasNoPendingTasks (line 735) | private void checkUserHasNoPendingTasks() {
    method sendMessageWithCorrelationViaAPIToIntermediateMessageEvent (line 741) | @Test
    method sendMessageWithDataViaAPIToIntermediateCatchMessageEvent (line 784) | @Test
    method should_be_able_to_send_a_good_message_even_after_sending_a_bad_one (line 815) | @Test
    method string (line 853) | private Expression string(String messageData) throws InvalidExpression...
    method sendMessageWithTooManyCorrelations (line 857) | @Test(expected = SendEventException.class)
    method sendMessageToTerminateProcessWithLoop (line 880) | @Test
    method can_use_a_variable_to_define_target_process (line 963) | @Test
    method can_delete_message_by_creationDate (line 983) | @Test

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/event/MessageEventSubProcessIT.java
  class MessageEventSubProcessIT (line 52) | public class MessageEventSubProcessIT extends AbstractWaitingEventIT {
    method messageEventSubProcessTransmitData (line 54) | @Test
    method messageEventSubProcessTriggered (line 121) | @Test
    method messageEventSubProcessTriggeredWithIntermediateThrowEvent (line 156) | @Test
    method messageEventSubProcessNotTriggered (line 237) | @Test
    method messageEventSubProcessTriggeredWithCorrelation (line 257) | @Test
    method messageEventSubProcessTriggeredWithCorrelationAndIntermediateThrowEvent (line 281) | @Test
    method createSeveralInstances (line 315) | @Test
    method subProcessCanAccessParentData (line 336) | @Test
    method checkProcessDataInstance (line 361) | private void checkProcessDataInstance(final String dataName, final lon...
    method checkActivityDataInstance (line 368) | private void checkActivityDataInstance(final String dataName, final lo...
    method messageEventSubProcInsideTargetCallActivity (line 376) | @Test

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/event/NonInterruptingTimerBoundaryEventIT.java
  class NonInterruptingTimerBoundaryEventIT (line 23) | public class NonInterruptingTimerBoundaryEventIT extends AbstractEventIT {
    method nonInterruptTimerBoundaryEventTriggered (line 25) | @Test
    method nonInterruptTimerBoundaryEventTriggeredOnCallActivity (line 53) | @Test
    method nonInterruptTimerBoundaryEventTriggeredOnSequentialMultiInstance (line 89) | @Test
    method nonInterruptTimerBoundaryEventTriggeredOnParallelMultiInstance (line 124) | @Test
    method nonInterruptTimerBoundaryEventTriggeredOnLoopActivity (line 155) | @Test

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/event/SignalBoundaryEventIT.java
  class SignalBoundaryEventIT (line 26) | public class SignalBoundaryEventIT extends AbstractEventIT {
    method signalBoundaryEventTriggered (line 28) | @Test
    method signalBoundaryEventNotTriggered (line 46) | @Test
    method signalBoundaryEventOnCallActivityTriggered (line 69) | @Test
    method signalBoundaryEventOnCallActivityNotTriggered (line 95) | @Test
    method signalBoundaryEventTriggeredOnSequentialMultiInstance (line 127) | @Test
    method signalBoundaryEventNotTriggeredOnSequentialMultiInstance (line 148) | @Test
    method signalBoundaryEventTriggeredOnParallelMultiInstance (line 176) | @Test
    method signalBoundaryEventNotTriggeredOnParallelMultiInstance (line 197) | @Test
    method signalBoundaryEventTriggeredOnLoopActivity (line 225) | @Test
    method signalBoundaryEventNotTriggeredOnLoopActivity (line 245) | @Test

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/event/SignalEventIT.java
  class SignalEventIT (line 31) | public class SignalEventIT extends AbstractEventIT {
    method sendSignal (line 33) | @Test
    method sendIntermediateCatchSignal (line 84) | @Test
    method sendIntermadiateThrowSignal (line 115) | @Test
    method sendSignalViaAPIToStartSignalEvent (line 146) | @Test
    method sendSignalViaAPIToIntermediateSignalEvent (line 164) | @Test

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/event/SignalEventSubProcessIT.java
  class SignalEventSubProcessIT (line 43) | public class SignalEventSubProcessIT extends AbstractWaitingEventIT {
    method evaluateExpressionsOnLoopUserTaskInSupProcess (line 45) | @Test
    method signalEventSubProcessTriggered (line 68) | @Test
    method signalEventSubProcessTriggeredWithIntermediateThrowEvent (line 107) | @Test
    method signalEventSubProcessNotTriggered (line 121) | @Test
    method createSeveralInstances (line 141) | @Test
    method subProcessCanAccessParentData (line 160) | @Test
    method checkProcessDataInstance (line 183) | private void checkProcessDataInstance(final String dataName, final lon...
    method checkActivityDataInstance (line 190) | private void checkActivityDataInstance(final String dataName, final lo...
    method signalEventSubProcInsideTargetCallActivity (line 198) | @Test
    method should_process_with_gateway_be_canceled_by_event_subprocess (line 224) | @Test

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/event/StartEventIT.java
  class StartEventIT (line 33) | public class StartEventIT extends TestWithUser {
    method executeSeveralStartEventsInSameProcessDefinition (line 35) | @Test

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/event/TimerBoundaryEventIT.java
  class TimerBoundaryEventIT (line 24) | public class TimerBoundaryEventIT extends AbstractEventIT {
    method nonInterruptingNotTrigerAfterInterruptingTriggering (line 26) | @Test
    method interruptingTrigerAfterNonInterruptingTriggering (line 54) | @Test

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/event/TimerEventIT.java
  class TimerEventIT (line 40) | public class TimerEventIT extends TestWithUser {
    method timerIntermediateCatchEventDuration (line 42) | @Test
    method timerIntermediateCatchEventDate (line 75) | @Test
    method timerStartEventDate (line 102) | @Test
    method timerStartEventDuration (line 123) | @Test
    method getEventInstance (line 135) | private EventInstance getEventInstance(final long processInstanceId, f...
    method checkIntermediateCatchEventInstance (line 150) | private void checkIntermediateCatchEventInstance(final EventInstance e...
    method checkEventInstance (line 156) | private void checkEventInstance(final EventInstance eventInstance, fin...
    method deployProcessWithTimerIntermediateCatchEventAndUserTask (line 164) | private ProcessDefinition deployProcessWithTimerIntermediateCatchEvent...
    method deployProcessWithTimerStartEventAndUserTask (line 183) | private ProcessDefinition deployProcessWithTimerStartEventAndUserTask(...

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/event/TimerEventSubProcessIT.java
  class TimerEventSubProcessIT (line 43) | public class TimerEventSubProcessIT extends AbstractEventIT {
    method timerEventSubProcessTriggered (line 45) | @Test
    method formatedDate (line 69) | private String formatedDate(final Date date) {
    method timerEventSubProcessNotTriggered (line 74) | @Test
    method testCreateSeveralInstances (line 87) | @Test
    method subProcessCanAccessParentData (line 99) | @Test
    method checkProcessDataInstance (line 120) | private void checkProcessDataInstance(final String dataName, final lon...
    method checkActivityDataInstance (line 127) | private void checkActivityDataInstance(final String dataName, final lo...
    method timerEventSubProcInsideTargetCallActivity (line 135) | @Test
    method should_be_able_to_init_timer_from_data_in_parent (line 158) | @Test

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/filter/user/UserFilterIT.java
  class UserFilterIT (line 59) | public class UserFilterIT extends TestWithTechnicalUser {
    method before (line 73) | @Override
    method after (line 84) | @Override
    method filterTask (line 94) | @Test
    method filterTaskWithUserFilterNotFound (line 121) | @Test
    method filterTaskWithUserFilterThatThrowException (line 146) | @Test
    method filterTaskWithAutoAssign (line 201) | @Test
    method filterTaskWithNullInput (line 234) | @Test
    method filterTaskUsingFilterName (line 250) | @Test
    method updateUserFilterAfterAUserDeletion (line 280) | @Test
    method unableToUpdateActorsOnAGateway (line 318) | @Test(expected = UpdateException.class)
    method doNotUpateAHumanTaskIfNoUserFilterIsDefined (line 345) | @Test
    method updateUserFilterAfterAUserAdd (line 371) | @Test

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/form/FormMappingIT.java
  class FormMappingIT (line 46) | public class FormMappingIT extends TestWithUser {
    method deployProcessesWithFormMappings (line 53) | @Test
    method deployProcessesWithV6FormMappingsFails (line 156) | @Test
    method resolvePageOrURLThrowsNotFoundExceptionForUndefinedFormMapping (line 178) | @Test
    method resolvePageOrURL_should_return_null_mapping_for_NONE (line 199) | @Test
    method deployProcessWithInternalPagesIncludedShouldBeResolved (line 222) | @Test
    method processWithEventSubProcess (line 270) | @Test

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/identity/CustomUserInfoIT.java
  class CustomUserInfoIT (line 32) | public class CustomUserInfoIT extends TestWithUser {
    method after (line 36) | @Override
    method createCustomUserInfoDefinition_should_return_the_new_created_object (line 48) | @Test
    method getCustomUserInfoDefinitions_return_objects_according_to_pagination_size_and_ordered_by_name_asc (line 62) | @Test
    method getCustomUserInfo_should_return_all_info_even_when_value_is_null (line 87) | @Test
    method setCustomUserInfoValue_should_delete_CustomUserInfoValue_when_set_to_null (line 107) | @Test
    method setCustomUserInfoValue_should_update_CustomUserInfoValue_when_one_already_exist (line 128) | @Test
    method deleteUserInfo (line 146) | private void deleteUserInfo(final List<CustomUserInfoDefinition> defin...
    method deleteCustomUserInfoDefinition_should_delete_definition_and_values_from_database (line 152) | @Test
    method deleteUser_should_delete_related_custom_user_info_value_from_database (line 171) | @Test
    method createDefinition (line 191) | private CustomUserInfoDefinition createDefinition(final String name) t...
    method getUserIdsWithCustomUserInfo_should_return_only_users_with_the_given_user_info (line 196) | @Test

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/identity/GroupIT.java
  class GroupIT (line 45) | public class GroupIT extends TestWithTechnicalUser {
    method before (line 51) | @Override
    method after (line 60) | @Override
    method getGroup (line 68) | @Test
    method getGroupByGroupNotFound (line 77) | @Test(expected = GroupNotFoundException.class)
    method getNumberOfGroups (line 82) | @Test
    method createGroupBygroupWithGroupAlreadyExistException (line 90) | @Test(expected = AlreadyExistsException.class)
    method getGroupByGroupName (line 100) | @Test
    method getGroups (line 111) | @Test
    method getGroupsByIDs (line 129) | @Test
    method getGroupsByIDsWithoutGroupNotFoundException (line 150) | public void getGroupsByIDsWithoutGroupNotFoundException() throws Bonit...
    method createGroupExistException (line 169) | @Test(expected = AlreadyExistsException.class)
    method createSubGroupExistException (line 174) | @Test(expected = AlreadyExistsException.class)
    method deleteGroup (line 184) | @Test
    method deleteGroupDeleteChildGroups (line 194) | @Test
    method deleteGroupDeleteChildGroupsRecursivly (line 215) | @Test
    method deleteGroupsChildrenAndParent (line 230) | @Test
    method deleteGroupNotFoundException (line 244) | @Test
    method deleteGroups (line 254) | @Test
    method deleteGroupsWithNotExistId (line 273) | @Test(expected = DeletionException.class)
    method updateGroup (line 290) | @Test
    method updateParentGroupPath (line 308) | @Test
    method when_update_group_with_empty_parent_path_it_is_set_to_null (line 337) | @Test
    method when_create_group_with_empty_parent_path_it_is_set_to_null (line 355) | @Test
    method updateGroupNameAlsoUpdateChildren (line 364) | @Test
    method should_throw_AlreadyExistException_when_update_group_with_group_name_already_exist (line 393) | @Test(expected = AlreadyExistsException.class)
    method should_updated_group_when_name_already_exist_but_path_dont_exist (line 405) | @Test
    method updateGroupNameAndParenthAlsoUpdateAllChildrenInfos (line 431) | @Test
    method updateGroupsNotFoundException (line 454) | @Test(expected = GroupNotFoundException.class)
    method getUsersInGroup (line 463) | @Test
    method getActiveUsersInGroup (line 504) | @Test
    method getInactiveUsersInGroup (line 544) | @Test
    method getNumberOfUsersInGroup (line 587) | @Test
    method getPaginatedGroupsWithGroupCriterion (line 613) | @Test
    method searchGroupUsingFilter (line 650) | @Test
    method searchGroupWithApostrophe (line 671) | @Test
    method checkCreatedByForGroup (line 693) | @Test
    method should_be_able_to_create_big_groups_hierarchy (line 702) | @Test
    method should_createGroup_with_icon_create_the_icon (line 720) | @Test
    method should_updateGroup_with_new_icon_create_a_new_icon (line 733) | @Test
    method should_deleteGroup_with_icon_delete_the_icon (line 750) | @Test
    method should_update_childrens_group_ParentPath_with_correct_value (line 762) | @Test
    method should_not_create_group_when_given_invalid_name (line 781) | @Test(expected = InvalidGroupNameException.class)
    method should_not_create_group_when_given_invalid_name_in_creator (line 787) | @Test(expected = InvalidGroupNameException.class)

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/identity/MembershipIT.java
  class MembershipIT (line 33) | public class MembershipIT extends TestWithTechnicalUser {
    method before (line 59) | @Override
    method after (line 66) | @Override
    method getUserMembershipsWithPageOutOfRangeException (line 73) | @Test
    method createUserMembershipWithoutUser (line 82) | @Test(expected = CreationException.class)
    method createUserMembershipWithoutRole (line 95) | @Test(expected = CreationException.class)
    method createUserMembershipWithoutGroup (line 107) | @Test(expected = CreationException.class)
    method addUserMembership (line 120) | @Test
    method addTwiceSameUserMembership (line 144) | @Test(expected = AlreadyExistsException.class)
    method getRoleIdAndGroupIdFromMembership (line 163) | @Test
    method getMembershipByMembershipId (line 184) | @Test
    method getAssignedByOnUserMembership (line 208) | @Test
    method getNumberOfUserMembershipsByUserId (line 244) | @Test
    method updateUserMemberships (line 250) | @Test
    method getUserMembershipsByRole (line 270) | @Test
    method getUserMembershipsByGroup (line 285) | @Test
    method getUserMembershipsOrderByRoleNameAsc (line 299) | @Test
    method getUserMembershipsOrderByRoleNameDesc (line 309) | @Test
    method getUserMembershipsByGroupNameAsc (line 319) | @Test
    method getUserMembershipsByGroupNameDesc (line 329) | @Test
    method getAssignedBy (line 339) | @Test
    method getUserMembershipsByAssignedDateAsc (line 346) | @Test
    method getUserMembershipsByAssignedDateDesc (line 356) | @Test
    method deleteUserMemberships (line 366) | @Test
    method deleteUserMembership (line 381) | @Test
    method deleteUserMembershipsByDeleteRole (line 398) | @Test
    method deleteUserMembershipsByDeleteGroup (line 416) | @Test
    method createTestedUserMemberships (line 434) | private void createTestedUserMemberships() throws BonitaException, Int...
    method deleteTestedUserMemberships (line 470) | private void deleteTestedUserMemberships() throws BonitaException {

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/identity/OrganizationIT.java
  class OrganizationIT (line 52) | public class OrganizationIT extends TestWithTechnicalUser {
    method importOrganization (line 97) | @Test
    method checkDefaultCustomUserInfoValues (line 114) | private void checkDefaultCustomUserInfoValues(final Map<String, Custom...
    method checkCustomUserInfoValuesAfterUpdate (line 120) | private void checkCustomUserInfoValuesAfterUpdate(final Map<String, Cu...
    method checkDefaultCustomUserInfoValueForSecondUser (line 127) | private void checkDefaultCustomUserInfoValueForSecondUser(
    method checkCustomUserInfoValueForSecondUserAfterUpdate (line 137) | private void checkCustomUserInfoValueForSecondUserAfterUpdate(
    method checkDefaultCustomUserInfoValueForFirstUser (line 149) | private void checkDefaultCustomUserInfoValueForFirstUser(
    method getCustomUserInfoValueSearchOptions (line 162) | private SearchOptions getCustomUserInfoValueSearchOptions(final User u...
    method checkCustomUserInfo (line 169) | private void checkCustomUserInfo(final CustomUserInfoValue customUserI...
    method checkDefaultCustomUserInfoDefinitions (line 176) | private Map<String, CustomUserInfoDefinition> checkDefaultCustomUserIn...
    method checkCustomUserInfoDefinitionsAfterUpdate (line 193) | private Map<String, CustomUserInfoDefinition> checkCustomUserInfoDefin...
    method checkCustomUserInfoDefinition (line 210) | private void checkCustomUserInfoDefinition(final String expectedName, ...
    method reImportUserMembershipDeleted (line 216) | @Test
    method importOrganization (line 239) | private void importOrganization(final String fileName) throws IOExcept...
    method importOrganizationWithEnabledAndDisabledUsers (line 245) | @Test
    method importComplexOrganization (line 279) | @Test
    method importOrganizationWithWarnings_return_no_warnings_on_good_XML (line 343) | @Test
    method importOrganizationWithWarnings_return_warnings_on_faulty_group_names (line 363) | @Test(expected = GroupNotFoundException.class)
    method importOrganizationWithWarnings_imports_the_correct_groups_if_the_incorrect_one_is_present (line 388) | @Test
    method importACMEOrganizationTwiceWithDefaultProfile (line 411) | @Test
    method should_not_update_existing_user_when_importing_organization_in_IGNORE_DUPLICATES (line 423) | @Test
    method importACMEOrganizationTwiceButRemoveGroupsAndRole (line 461) | @Test
    method importOrganizationWithOrganizationImportException (line 494) | @Test(expected = InvalidOrganizationFileFormatException.class)
    method importOrganizationFailRollBackToOldOrganization (line 509) | @Test(expected = OrganizationImportException.class)
    method importOrganizationWithCycle (line 551) | @Test
    method deleteOrganization (line 572) | @Test
    method cantDeleteOrganizationWhenProcessInstanceIsActive (line 630) | @Test(expected = DeletionException.class)
    method importOrganizationFailOnDuplicates (line 679) | @Test(expected = OrganizationImportException.class)
    method importOrganizationFailOnDuplicatesNoDuplicates (line 759) | @Test
    method importOrganizationMergeDuplicates (line 843) | @Test
    method checkMembershipAfterUpdate (line 864) | private void checkMembershipAfterUpdate() throws UserNotFoundException {
    method checkRolesAfterUpdate (line 896) | private void checkRolesAfterUpdate() throws RoleNotFoundException {
    method checkGroupsAfterUpdate (line 911) | private void checkGroupsAfterUpdate() throws GroupNotFoundException {
    method checkUsersAfterUpdate (line 925) | private void checkUsersAfterUpdate() throws UserNotFoundException {
    method importOrganizationMergeDuplicatesWithEnabledAndDisabledUsers (line 942) | @Test
    method importOrganizationIgnoreDuplicates (line 975) | @Test
    method importOrganizationIgnoreDuplicatesWithEnabledAndDisabledUsers (line 1068) | @Test
    method importOrganizationWithPolicy (line 1101) | private void importOrganizationWithPolicy(final String xmlFile, final ...
    method importAndCheckFirstSimpleOrganization (line 1108) | private void importAndCheckFirstSimpleOrganization() throws Exception {
    method checkDefaultMembership (line 1121) | private void checkDefaultMembership() throws UserNotFoundException {
    method checkDefaultRoles (line 1132) | private void checkDefaultRoles() throws RoleNotFoundException {
    method checkDefaultGroups (line 1144) | private void checkDefaultGroups() throws GroupNotFoundException {
    method checkDefaultUsers (line 1156) | private void checkDefaultUsers() throws UserNotFoundException {
    method exportOrganization (line 1168) | @Test
    method exportOrganizationWithSpecialCharacters (line 1233) | @Test
    method importAndExportOrganizationWithSpecialCharacters (line 1300) | @Test
    method exportAndImportOrganization (line 1337) | @Test
    method exportOrganizationWithDisabledUsers (line 1403) | @Test
    method exportOrganizationWithEnabledUsers (line 1419) | @Test
    method should_import_manager_of_user (line 1434) | @Test
    method should_import_update_manager_of_user (line 1452) | @Test
    method should_import_user_even_if_manager_is_unkown (line 1472) | @Test
    method removeJohnManagerNode (line 1494) | private String removeJohnManagerNode(String organization) throws Excep...

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/identity/RoleIT.java
  class RoleIT (line 36) | public class RoleIT extends TestWithTechnicalUser {
    method createRoleUsingTheRoleBuilder (line 38) | @Test
    method cannotCreateARoleWhichAlreadyExists (line 47) | @Test(expected = AlreadyExistsException.class)
    method cannotCreateANullRole (line 59) | @Test(expected = CreationException.class)
    method createARoleFail (line 64) | @Test(expected = CreationException.class)
    method getRoleByName (line 69) | @Test
    method cannotGetARoleByAnUnexistingName (line 80) | @Test(expected = RoleNotFoundException.class)
    method getAnEmptyListWhenNoRolesAreDefined (line 85) | @Test
    method getARole (line 91) | @Test
    method getRole (line 101) | @Test
    method roleNameAndDisplayNameShouldAccept255Chars (line 113) | @Test
    method roleNameShouldNotAccept256Chars (line 124) | @Test(expected = Exception.class)
    method roleDisplayNameShouldNotAccept256Chars (line 130) | @Test(expected = Exception.class)
    method getRolesByIDs (line 136) | @Test
    method getRolesByIDsWithoutRoleNotFoundException (line 157) | public void getRolesByIDsWithoutRoleNotFoundException() throws BonitaE...
    method cannotGetAnUnexistingRole (line 176) | @Test(expected = RoleNotFoundException.class)
    method getNumberOfRoles (line 181) | @Test
    method noRolesWhenThePageIndexIsOutOfRange (line 197) | @Test
    method deleteARole (line 203) | @Test
    method deleteRoles (line 210) | @Test
    method cannotDeleteARoleTwice (line 225) | @Test
    method canDeleteNoRole (line 233) | @Test
    method cannotDeleteNullRoles (line 239) | @Test(expected = DeletionException.class)
    method updateARole (line 244) | @Test
    method canontUpdateARoleWithANullUpdateDescriptor (line 260) | @Test(expected = UpdateException.class)
    method cannotUpdateARoleWithAnUnexistingRoleIdentifier (line 271) | @Test(expected = RoleNotFoundException.class)
    method getUsersOfARole (line 279) | @Test
    method getActiveUsersOfARole_should_return_all_active_users_of_the_role (line 308) | @Test
    method getInactiveUsersOfARole_should_return_all_inactive_users_of_the_role (line 341) | @Test
    method getNumberOfUsersInRole (line 373) | @Test
    method getPaginatedRolesWithRoleCriterion (line 397) | @Test
    method getRolesOnMultiPages (line 442) | @Test
    method cannotCreateTwoRoleWithTheSameName (line 478) | @Test(expected = AlreadyExistsException.class)
    method searchRoleUsingFilter (line 489) | @Test
    method searchRoleWithApostrophe (line 510) | @Test
    method getRolesFromIds (line 533) | @Test
    method checkCreatedByForRole (line 570) | @Test
    method should_createRole_with_icon_creates_the_icon (line 580) | @Test
    method should_updateRole_with_new_icon_create_a_new_icon (line 592) | @Test
    method should_deleteRole_with_icon_delete_the_icon (line 608) | @Test(expected = NotFoundException.class)

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/identity/UserIT.java
  class UserIT (line 48) | public class UserIT extends TestWithTechnicalUser {
    method unableToCallPlatformMethodOnStoppedNode (line 56) | @Test(expected = NodeNotStartedException.class)
    method cannotCreateAUserWithAnEmptyPassword (line 74) | @Test(expected = CreationException.class)
    method cannotCreateAUserWithAnEmptyUserName (line 81) | @Test(expected = CreationException.class)
    method cannotCreateAUserWithANullPassword (line 88) | @Test(expected = CreationException.class)
    method cannotCreateAUserWithANullUserName (line 94) | @Test(expected = CreationException.class)
    method createUserByUsernameAndPassword (line 100) | @Test
    method createEnabledUserByUsernameAndPassword (line 111) | @Test
    method createUserByUsernameAndPasswordException (line 123) | @Test(expected = AlreadyExistsException.class)
    method getFirstPageWithNoResult (line 138) | public void getFirstPageWithNoResult() {
    method createUserFailed (line 142) | @Test(expected = CreationException.class)
    method createUserUsingNullUser (line 147) | @Test(expected = CreationException.class)
    method createUserByAUser (line 152) | @Test
    method createEnabledUserByAUser (line 164) | @Test
    method createDisabledUserByAUser (line 173) | @Test
    method cannotCreateAUserWithANullUserNameUsingBuilder (line 184) | @Test(expected = CreationException.class)
    method cannotCreateAUserWithANullPasswordUsingBuilder (line 189) | @Test(expected = CreationException.class)
    method cannotCreateAUserWithAnEmptyUserNameUsingBuilder (line 194) | @Test(expected = CreationException.class)
    method cannotCreateAUserWithAnEmptyPasswordUsingBuilder (line 199) | @Test(expected = CreationException.class)
    method getUserByUsernameWithException (line 204) | @Test(expected = UserNotFoundException.class)
    method getUserByUsername (line 209) | @Test
    method getNumberOfUsers (line 218) | @Test
    method getUserById (line 230) | @Test
    method cannotGetTechUser (line 240) | @Test(expected = UserNotFoundException.class)
    method cannotGetTechUserInList (line 245) | @Test
    method getUserByIDWithUserNotFoundException (line 251) | @Test(expected = UserNotFoundException.class)
    method getUsersByIDs (line 261) | @Test
    method getUsersByIDsWithoutUserNotFoundException (line 281) | public void getUsersByIDsWithoutUserNotFoundException() throws BonitaE...
    method deleteUserByUserName (line 298) | @Test
    method deleteNonExistingUserByUserName (line 305) | @Test
    method deleteUserByUserNameWithUserDeletionException (line 313) | @Test(expected = DeletionException.class)
    method deleteUser (line 318) | @Test
    method testUserContactInfos (line 325) | @Test
    method deleteNonExistingUser (line 348) | @Test
    method deleteUsers (line 355) | @Test
    method deleteNonExistingUsers (line 368) | @Test
    method deleteUsersDeleteAllExistingOnesAndIgnoresOthers (line 373) | @Test
    method updateUser (line 384) | @Test
    method buildUserUpdater (line 403) | private UserUpdater buildUserUpdater() {
    method checkUser (line 417) | private void checkUser(final User updatedUser) {
    method buildUserUpdaterWithProContact (line 427) | private UserUpdater buildUserUpdaterWithProContact() {
    method buildUserUpdaterWithProAndPersoContact (line 434) | private UserUpdater buildUserUpdaterWithProAndPersoContact() {
    method buildProContactDataUpdater (line 443) | private ContactDataUpdater buildProContactDataUpdater() {
    method checkProUserContactData (line 460) | private void checkProUserContactData(final ContactData proData) {
    method buildPersoContactDataUpdater (line 475) | private ContactDataUpdater buildPersoContactDataUpdater() {
    method checkPersoUserContactData (line 492) | private void checkPersoUserContactData(final ContactData persoData) {
    method updateUserToBeEnabled (line 507) | @Test
    method updateUserToBeDisabled (line 525) | @Test
    method updateUserManager (line 542) | @Test
    method updateUserWithUserNotFoundException (line 556) | @Test(expected = UserNotFoundException.class)
    method updateUserWithUserUpdateException (line 565) | @Test(expected = UpdateException.class)
    method updateUserWithOnlyDataChanging (line 575) | @Test
    method getPaginatedUsersWithUserCriterion (line 597) | @Test
    method cannotCreateTwoUserWithTheSameUserName (line 649) | @Test(expected = AlreadyExistsException.class)
    method searchUserWithWrongSortKey (line 661) | @Test(expected = SearchException.class)
    method searchUser (line 669) | @Test
    method searchUserSortedById (line 716) | @Test
    method should_search_user_case_insensitively (line 739) | @Test
    method searchEnabledDisabledUsers (line 757) | @Test
    method searchUserUsingTerm (line 790) | @Test
    method searchUserWithApostrophe (line 809) | @Test
    method searchTermWithSpecialChars (line 829) | @Test
    method searchUsersInGroup (line 846) | @Test
    method searchUsersInRole (line 872) | @Test
    method searchUsersInRoleAndGroup (line 898) | @Test
    method searchTeamMembers (line 928) | @Test
    method searchUsersNotInTeam (line 947) | @Test
    method getUsersFromIdsShouldReturnUsersInTheRightOrder (line 972) | @Test
    method checkCreatedByForCreatedUser (line 999) | @Test
    method getUserIds (line 1011) | @Test
    method getUserWithProContactData (line 1029) | @Test
    method getUserWithoutProContactData (line 1044) | @Test
    method throwExceptionWhenGettingUnknownUserWithProContactData (line 1058) | @Test(expected = UserNotFoundException.class)
    method throwExceptionWhenGettingTechnicalUserWithProContactData (line 1063) | @Test(expected = UserNotFoundException.class)
    method can_create_user_with_255_char_in_fields (line 1068) | @Test
    method completeWithZeros (line 1101) | private String completeWithZeros(final String prefix) {
    method login_should_work_with_specific_characters (line 1105) | @Test
    method theTest (line 1119) | @Test
    method should_create_user_with_icon_create_the_icon (line 1149) | @Test
    method should_delete_user_delete_the_icon (line 1162) | @Test
    method should_update_user_create_a_new_icon (line 1180) | @Test
    method should_update_user_with_new_icon_create_a_new_icon (line 1194) | @Test
    method should_update_user_delete_the_icon (line 1211) | @Test
    method loginFailsUsingWrongUser (line 1230) | @Test(expected = LoginException.class)

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/login/PlatformLoginAPIIT.java
  class PlatformLoginAPIIT (line 34) | public class PlatformLoginAPIIT extends CommonAPIIT {
    method before (line 40) | @Before
    method testSessionNotFoundExceptionIsThrownAfterSessionDeletion (line 45) | @Test(expected = SessionNotFoundException.class)
    method deleteSession (line 57) | private void deleteSession(final long sessionId) throws Exception {

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/mdc/APICallLogIT.java
  class APICallLogIT (line 28) | public class APICallLogIT extends CommonAPIIT {
    method beforeTest (line 32) | @Before
    method apiCallAndInspectLogs (line 41) | @Test

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/mdc/ConnectorExecutionLogIT.java
  class ConnectorExecutionLogIT (line 41) | public class ConnectorExecutionLogIT extends CommonAPIIT {
    method afterTest (line 46) | @After
    method beforeTest (line 51) | @Before
    method executeConnectorAndInspectLogs (line 56) | @Test
    method executeFailedConnectorAndInspectLogs (line 94) | @Test
    method checkLogEntryContains (line 135) | private void checkLogEntryContains(Map<String, String> context) {

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/mdc/LogITUtil.java
  class LogITUtil (line 23) | public class LogITUtil {
    method checkLogEntryContains (line 31) | public static void checkLogEntryContains(String log, Map<String, Strin...
    method checkLogEntryContains (line 42) | public static void checkLogEntryContains(String log, Map<String, Strin...

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/mdc/ProcessExecutionLogIT.java
  class ProcessExecutionLogIT (line 54) | public class ProcessExecutionLogIT extends CommonAPIIT {
    method afterTest (line 59) | @After
    method beforeTest (line 64) | @Before
    method inspectTransactionIdInLogs (line 69) | @Test
    method failProcessWithExceptionAndInspectLogs (line 150) | @Test
    method executeProcessAndInspectLogs (line 190) | @Test
    method checkLogEntryContains (line 289) | private void checkLogEntryContains(Map<String, String> context) {
    method checkLogEntryContains (line 300) | private void checkLogEntryContains(Map<String, String> context, Collec...

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/operation/OperationIT.java
  class OperationIT (line 52) | public class OperationIT extends TestWithUser {
    method executeStringOperationOnData (line 54) | @Test
    method executeBooleanOperationOnData (line 66) | @Test
    method executeStringIndexOperation (line 78) | @Test
    method executeStringIndexOperationUsingData (line 131) | @Test
    method executeOperationWithNoExpression (line 165) | @Test(expected = InvalidProcessDefinitionException.class)
    method executeIntegerOperationOnData (line 180) | @Test
    method executeLongOperationOnData (line 192) | @Test
    method executeMultipleOperations (line 204) | @Test
    method executeMultipleOperationsWithSameData (line 227) | @Test
    method should_set_documents_with_operations (line 258) | @Test
    method createAndExecuteProcessWithOperations (line 337) | protected void createAndExecuteProcessWithOperations(final String proc...
    method updateAnAttributeOfAnXMLNodeOfADataUsingXPath (line 402) | @Test
    method setTheContentOfAnXMLNodeOfADataUsingXPath (line 411) | @Test
    method updateTheContentOfAnXMLNodeOfADataUsingXPath (line 420) | @Test
    method updateTheContentOfASubNodeOfAnXMLNodeOfADataUsingXPath (line 429) | @Test
    method removeAndCreateANewNodeOfAnXMLNodeOfADataUsingXPath (line 438) | @Test
    method updateTheContentOfAnXMLNodeOfADataWithIntegerValueUsingXPath (line 455) | @Test
    method updateAttributeAndContentWithNumericValueUsingXPath (line 461) | private void updateAttributeAndContentWithNumericValueUsingXPath(final...
    method updateTheContentOfAnXMLNodeOfADataWithBooleanValueUsingXPath (line 469) | @Test
    method updateTheContentOfAnXMLNodeOfADataWithLongValueUsingXPath (line 475) | @Test
    method updateTheContentOfAnXMLNodeOfADataWithDoubleValueUsingXPath (line 481) | @Test
    method executeProcessAndUpdateData (line 487) | private void executeProcessAndUpdateData(final String defaultValue, fi...
    method executeProcessAndUpdateData (line 495) | private void executeProcessAndUpdateData(final List<String> defaultVal...
    method executeProcessAndUpdateData (line 550) | private void executeProcessAndUpdateData(final String defaultValue, fi...
    method initializeAVariableUsingAPIAccessor (line 556) | @Test
    method updateAVariableUsingLoggedUser (line 583) | @Test
    method updateAVariableUsingAPIAccessor (line 609) | @Test
    method takeTransitionUsingAPIAccessor (line 642) | @Test
    method javaMethodOperationWithPrimitiveParameters (line 667) | @Test
    method executeJavaOperationWithCustomType (line 696) | @Test

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/page/PageAPIIT.java
  class PageAPIIT (line 59) | public class PageAPIIT extends CommonAPIIT {
    method before (line 73) | @Before
    method after (line 85) | @After
    method should_getPage_return_the_page (line 90) | @Test
    method updatePage_should_set_provided_field_to_false_if_provided_pages_are_modified (line 111) | @Test
    method updatePage_should_return_the_modified_page (line 133) | @Test
    method updateForm_with_existing_process_definitionId_should_fail (line 188) | @Test(expected = AlreadyExistsException.class)
    method updatePageContent_with_bad_content_should_fail (line 210) | @Test(expected = UpdatingWithInvalidPageZipContentException.class)
    method updatePageContent_should_update_page_from_properties_except_name (line 226) | @Test
    method should_update_content_return_the_modified_content (line 248) | @Test
    method should_create_page_use_content_type_in_properties (line 278) | @Test
    method should_create_a_page_and_delete_it_and_recreate_it_with_same_values (line 307) | @Test
    method should_getPage_by_name_return_the_page (line 331) | @Test
    method should_createPage_with_same_name_throw_already_exists (line 347) | @Test(expected = AlreadyExistsException.class)
    method should_createPage_with_invalid_name_InvalidPageTokenException (line 364) | @Test(expected = InvalidPageTokenException.class)
    method should_createPage_with_no_name_InvalidPageTokenException (line 381) | @Test(expected = InvalidPageTokenException.class)
    method should_createPage_with_invalid_content_InvalidPageZipContentException (line 398) | @Test
    method should_getPageContent_return_the_content (line 413) | @Test
    method should_throw_an_exception_if_the_page_content_does_not_exist (line 434) | @Test
    method checkPageContentContainsProperties (line 444) | private void checkPageContentContainsProperties(final byte[] content, ...
    method unzip (line 460) | private Map<String, String> unzip(final byte[] zipFile) throws Excepti...
    method deletePage_should_delete_the_page (line 478) | @Test(expected = PageNotFoundException.class)
    method should_duplicates_with_same_name_and_process_definitionId_throw_exception (line 494) | @Test(expected = AlreadyExistsException.class)
    method should_search_with_search_term (line 512) | @Test
    method generateUniquePageName (line 544) | private String generateUniquePageName(final int i) {
    method should_8_pages_search_5_first_results_give_5_first_results (line 548) | @Test
    method should_search_by_display_name (line 572) | @Test
    method should_search_by_content_type (line 607) | @Test
    method should_search_work_on_desc_order (line 648) | @Test
    method updatePageContent_and_deletePage_should_update_permissions (line 679) | @Test
    method should_search_work_with_processDefinitionId_set_to_null (line 745) | @Test

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/platform/PlatformIT.java
  class PlatformIT (line 48) | public class PlatformIT extends CommonAPIIT {
    method after (line 58) | @After
    method before (line 71) | @Before
    method clean (line 83) | @Override
    method isPlatformCreated (line 88) | @Test
    method getPlatformState (line 93) | @Test
    method callStopNodeTwice (line 105) | @Test
    method stopNodeAndStartNode (line 111) | @Test
    method restartPlatform (line 126) | private static void restartPlatform() throws StopNodeException, StartN...
    method should_have_processes_with_duration_timer_still_work_after_restart (line 131) | @Test

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/platform/PlatformLoginIT.java
  class PlatformLoginIT (line 23) | public class PlatformLoginIT extends CommonAPIIT {
    method login_with_bad_credentials_should_throw_InvalidPlatformCredentialsException (line 25) | @Test(expected = InvalidPlatformCredentialsException.class)
    method logout_with_bad_session_should_throw_SessionNotFound (line 30) | @Test(expected = SessionNotFoundException.class)

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/platform/command/PlatformCommandIT.java
  class PlatformCommandIT (line 33) | public class PlatformCommandIT extends CommonAPIIT {
    method before (line 39) | @Before
    method after (line 45) | @After
    method createPlatformCommand (line 50) | @Test
    method deletePlatformCommand (line 65) | @Test

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/process/EvaluateExpressionIT.java
  class EvaluateExpressionIT (line 54) | public class EvaluateExpressionIT extends TestWithUser {
    method before (line 67) | @Override
    method after (line 161) | @Override
    method createProcessDefinitionBuilderWithHumanAndAutomaticSteps (line 168) | private static ProcessDefinitionBuilder createProcessDefinitionBuilder...
    method cleanup (line 204) | private void cleanup(final long processDefinitionId) throws BonitaExce...
    method createAndDeployProcessDefinitionAndInstance (line 208) | private ProcessDefinition createAndDeployProcessDefinitionAndInstance(...
    method evaluateExpressionsAtProcessInstantiation (line 224) | @Test
    method evaluateExpressionsAtProcessInstantiationWithWrongProcessInstanceId (line 239) | @Test(expected = ExpressionEvaluationException.class)
    method evaluateExpressionsOnCompletedActivityInstance (line 244) | @Test
    method evaluateExpressionsOnCompletedActivityInstanceWithArchivedProcess (line 259) | @Test
    method evaluateExpressionsOnCompletedActivityInstanceInSubProcess (line 276) | @Test
    method evaluateExpressionsOnCompletedActivityInstanceWithWrongActivityInstanceId (line 300) | @Test(expected = ExpressionEvaluationException.class)
    method evaluateExpressionsOnCompletedProcessInstance (line 305) | @Test
    method evaluateExpressionsOnCompletedProcessInstanceAfterVariableUpdate (line 323) | @Test
    method evaluateExpressionsOnActivityInstance (line 344) | @Test
    method evaluateExpressionsOnActivityInstanceWithWrongActivityInstanceId (line 360) | @Test(expected = ExpressionEvaluationException.class)
    method evaluateAssigneeId (line 365) | @Test
    method evaluateExpressionsOnProcessInstanceWithInitialValues (line 384) | @Test
    method evaluateExpressionsOnProcessInstanceWithCurrentValues (line 402) | @Test
    method evaluateExpressionsOnProcessInstanceWithWrongProcessInstanceId (line 419) | @Test(expected = ExpressionEvaluationException.class)
    method evaluateExpressionsOnProcessInstanceWithNoExpressions (line 424) | @Test(expected = ExpressionEvaluationException.class)
    method evaluateExpressionsOnProcessDefinition (line 429) | @Test(expected = ExpressionEvaluationException.class)
    method evaluateExpressionsOnProcessDefinitionWithWrongProcessDefinitionId (line 444) | @Test(expected = ExpressionEvaluationException.class)
    method evaluatePatternExpression (line 449) | @Test

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/process/FlowPatternsIT.java
  class FlowPatternsIT (line 30) | public class FlowPatternsIT extends TestWithUser {
    method process_with_inclusive (line 32) | @Test
    method deployProcessWithInclusiveGateway (line 77) | ProcessDefinition deployProcessWithInclusiveGateway() throws Exception {
    method process_that_merge_different_branches (line 118) | @Test
    method process_with_branch_out (line 163) | @Test
    method inclusive_merge_with_no_start (line 201) | @Test

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/process/GatewayExecutionIT.java
  class GatewayExecutionIT (line 56) | public class GatewayExecutionIT extends TestWithUser {
    method archiveGatewayInstance (line 62) | @Test
    method processWithParallelGatewaySplit (line 132) | @Test
    method processWithParallelGatewayMerge (line 166) | @Test
    method processMultiMerge (line 198) | @Test
    method parallelWithConditionalTransitions (line 216) | @Test(expected = InvalidProcessDefinitionException.class)
    method exclusiveWithUnconditionalTransitions (line 235) | @Test
    method inclusiveWithUnconditionalTransitions (line 253) | @Test
    method linearProcessWith2UserTasks (line 271) | @Test
    method processWithExclusiveGatewayWith1InputAnd1Output (line 315) | @Test
    method processWithExclusiveAndInclusive (line 336) | @Test
    method exclusiveSplit1 (line 371) | @Test
    method exclusiveSplit1bis (line 393) | @Test
    method exclusiveSplit2 (line 415) | @Test
    method exclusiveSplit3 (line 437) | @Test
    method exclusiveSplitWithNoDefaultTransition (line 458) | @Test
    method exclusiveSplitWithNoDefaultTransitionFailThenRestart (line 479) | @Test
    method inclusiveSplit1 (line 528) | @Test
    method inclusiveSplit2 (line 550) | @Test
    method inclusiveSplit2WithDataAsCondition (line 572) | @Test
    method inclusiveSplit3 (line 607) | @Test
    method inclusiveSplitWithNoDefaultTransition (line 628) | @Test
    method inclusiveSplitThenInclusiveMerge (line 645) | @Test
    method parallelSplitThenInclusiveMerge (line 668) | @Test
    method notifyInclusiveGatewayThatABranchDied (line 710) | @Test
    method inclusiveGatewayWithNonInterruptingBoundary (line 760) | @Test
    method inclusiveSplitThenExclusiveMerge (line 807) | @Test
    method exclusiveThenInclusive (line 840) | @Test
    method exclusiveSplitThenExclusiveMerge (line 874) | @Test
    method parallelSplitThenExclusiveMerge (line 908) | @Test
    method inclusiveSplitThenParallelMerge (line 944) | @Test
    method exclusiveSplitThenParallelMerge (line 979) | @Test
    method activitySplitsToTrueTransitionEvenIfADefaultTransitionIsSet (line 1010) | @Test
    method activitySplitsToDefaultTransitionWhenAllTransitionsAreConditionalAndFalse (line 1023) | @Test
    method activitySplitsToDefaultTransitionAndNormalTransition (line 1036) | @Test
    method activitySplitsToTrueConditionTransitionAndNormalTransition (line 1049) | @Test
    method activitySplitsTo2NormalTransitions (line 1062) | @Test
    method activitySplitsTo2TrueTransitions (line 1072) | @Test
    method activitySplitsWithNormalAndFalseConditionnal (line 1085) | @Test
    method activitySplitsWith2FalseConditionnal (line 1096) | @Test
    method inputAndOutputTransitionsOfInclusiveGatewayShouldBeEvaluatedToTrue (line 1108) | @Test
    method assertJohnHasGotTheExpectedTaskPending (line 1119) | private void assertJohnHasGotTheExpectedTaskPending(final String actor...
    method createTrueAndFalseExpression (line 1169) | protected void createTrueAndFalseExpression() throws InvalidExpression...
    method manyTransitionsToGateway (line 1174) | @Test
    method tooManyTokens (line 1194) | @Test
    method processWithDiedBranchInclusive (line 1226) | @Test
    method processWithAlternativePathUsingExclusiveGatewayMergedByInclusive (line 1262) | @Test
    method processWithLoopAndInclusive (line 1306) | @Test
    method restartNodeShouldNotRestartGatewaysWithNotFullfilledMergingCondition (line 1344) | @Test
    method can_evaluate_transitions_with_logical_complement_expression_using_null_variable (line 1382) | @Test
    method can_evaluate_transitions_with_comparison_expression_using_null_variable (line 1416) | @Test
    method link_events_following_a_parallel_gateway_and_going_into_one_should_properly_activate_it (line 1452) | @Test
    method link_events_coming_from_the_same_node_and_going_into_an_inclusive_gateway_should_activate_it_only_once (line 1480) | @Test

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/process/GetProcessDefinitionIT.java
  class GetProcessDefinitionIT (line 52) | public class GetProcessDefinitionIT extends TestWithTechnicalUser {
    method getProcessDefinitionsUnrelatedToCategoryUserCanStart (line 68) | @Test
    method beforeSearchProcessDefinitionsUserCanStart (line 100) | private void beforeSearchProcessDefinitionsUserCanStart() throws Excep...
    method createProcessesDefForSearchProcessUserCanStart (line 152) | private void createProcessesDefForSearchProcessUserCanStart() throws E...
    method afterSearchProcessDefinitionsUserCanStart (line 218) | private void afterSearchProcessDefinitionsUserCanStart() throws Bonita...
    method getProcessesWithActorOnlyForUser (line 228) | @Test
    method getProcessesWithActorOnlyForUsers (line 271) | @Test
    method getProcessesWithActorOnlyRole (line 334) | @Test
    method getProcessesWithActorOnlyRoles (line 383) | @Test
    method getProcessesWithActorOnlyGroup (line 457) | @Test
    method getProcessesWithActorOnlyForGroups (line 523) | @Test
    method getProcessesWithActorWithParticularCases (line 584) | @Test
    method getPaginatedProcessesWithActorOnlyForUser (line 725) | @Test
    method getExistingDesignProcessDefinition (line 755) | @Test
    method getNotExistingDesignProcessDefinition (line 799) | @Test(expected = ProcessDefinitionNotFoundException.class)
    method deployProcessWithTestFilter (line 804) | private ProcessDefinition deployProcessWithTestFilter(final DesignProc...
    method generateFilterImplementations (line 837) | private List<BarResource> generateFilterImplementations(final String f...

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/process/ProcessCategoryIT.java
  class ProcessCategoryIT (line 47) | public class ProcessCategoryIT extends TestWithTechnicalUser {
    method before (line 61) | @Override
    method after (line 69) | @Override
    method createCategory (line 81) | @Test
    method createCategoryWithCreatorAsAnID (line 93) | @Test
    method createCategoryWithCategoryAlreadyExistException (line 108) | @Test(expected = AlreadyExistsException.class)
    method createCategoryWithCategoryCreationException (line 117) | @Test(expected = CreationException.class)
    method getNumberOfCategories (line 122) | @Test
    method getCategory (line 133) | @Test
    method getCategoryWithCategoryNotFoundException (line 147) | @Test(expected = CategoryNotFoundException.class)
    method getCategories (line 156) | @Test
    method updateCategory (line 187) | @Test
    method updateCategoryWithCategoryNotFoundException (line 204) | @Test(expected = CategoryNotFoundException.class)
    method updateCategoryWithCategoryUpdateException (line 213) | @Test(expected = UpdateException.class)
    method deleteCategory (line 218) | @Test(expected = CategoryNotFoundException.class)
    method deleteCategoryWithCategoryNotFoundException (line 225) | @Test(expected = DeletionException.class)
    method deleteCategoryWithCategoryDeletionException (line 230) | @Test(expected = DeletionException.class)
    method processDefinitionWithCategoryPagination (line 235) | @Test
    method removeSeveralCategoriesToProcessDefinition (line 246) | @Test
    method addSeveralCategoriesToProcessDefinition (line 280) | @Test
    method addProcessDefinitionToCategory (line 300) | @Test
    method addProcessDefinitionToUnknownCategory (line 319) | @Test(expected = CreationException.class)
    method addUnknowProcessDefinitionToCategory (line 328) | @Test(expected = CreationException.class)
    method addProcessDefinitionosToCategory (line 337) | @Test
    method getNumberOfCategoriesByProcessDefinition (line 358) | @Test
    method getNumberOfCategoriesOfInexistentProcess (line 374) | @Test
    method getNumberOfProcessesInCategory (line 380) | @Test
    method getNumberOfProcessesInCategoryWithInexistentCategory (line 396) | @Test
    method getProcessDeploymentInfosOfCategory (line 402) | @Test
    method getCategoriesOfProcessDefinition (line 441) | @Test
    method getCategoriesUnrelatedToProcessDefinition (line 476) | @Test
    method searchCategoriesNotOfProcessDefinition (line 508) | @Test
    method removeProcessDefinitionsOfCategory (line 544) | @Test
    method removeProcessDefinitionsOfUnknownCategoryDoesntThrowException (line 566) | @Test
    method removeProcessDefinitionFromCategory (line 574) | @Test
    method removeUnknowProcessDefinitionFromCategoryDontThrowsException (line 596) | @Test
    method getNumberOfUnCategoriedProcessesDefinitions (line 601) | @Test
    method getUnCategoriedProcesses (line 613) | @Test
    method generateCategory (line 639) | private List<Category> generateCategory(final int count, final String ...
    method generateProcessDefinition (line 649) | private List<ProcessDefinition> generateProcessDefinition(final int co...
    method cannotAddTheSameCategoryToAProcess (line 666) | @Test(expected = AlreadyExistsException.class)
    method cannotAddTheSameCategoryToAProcessList (line 683) | @Test(expected = AlreadyExistsException.class)
    method cannotAssociateTheSameCategoryTwiceWitAProcess (line 700) | @Test(expected = AlreadyExistsException.class)

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/process/ProcessDeletionIT.java
  class ProcessDeletionIT (line 59) | public class ProcessDeletionIT extends TestWithUser {
    method before (line 63) | @Override
    method after (line 70) | @Override
    method deployProcessWithSeveralOutGoingTransitions (line 77) | private ProcessDefinition deployProcessWithSeveralOutGoingTransitions(...
    method deleteProcessInstanceStopsCreatingNewActivities (line 90) | @Test
    method deleteProcessInstanceAlsoDeleteArchivedElements (line 105) | @Test
    method deleteArchivedProcessInstanceAlsoDeleteArchivedElements (line 123) | @Test
    method deleteArchivedProcessInstancesInAllStatesByIdsAlsoDeleteArchivedElements (line 136) | @Test
    method deleteArchivedProcessInstancesInAllStatesByIdAlsoDeleteArchivedElements (line 163) | @Test
    method startAndFinishProcess (line 186) | private ProcessInstance startAndFinishProcess(final ProcessDefinition ...
    method deleteProcessDefinitionStopsCreatingNewActivities (line 196) | @Test
    method deleteProcessInstanceAlsoDeleteChildrenProcesses (line 217) | @Test
    method deployAndEnableSimpleProcess (line 268) | private ProcessDefinition deployAndEnableSimpleProcess(final String pr...
    method deployAndEnableProcessWithCallActivity (line 281) | private ProcessDefinition deployAndEnableProcessWithCallActivity(final...
    method deleteProcessInstanceAlsoDeleteArchivedChildrenProcesses (line 300) | @Test
    method deleteArchivedProcessInstanceAndChildrenProcesses (line 352) | @Test
    method deleteProcessInstanceAlsoDeleteEventSubProcesses (line 406) | @Test
    method deployAndEnableProcessWithSignalEventSubProcess (line 437) | private ProcessDefinition deployAndEnableProcessWithSignalEventSubProc...
    method deleteJustProcessDefinition (line 459) | @Test(expected = DeletionException.class)
    method deleteProcessDefinition (line 501) | @Test
    method should_delete_archived_version_of_process_instance (line 518) | @Test
    method deleteArchivedProcessInstances (line 538) | @Test
    method deleteProcessInstanceAlsoDeleteDocuments (line 558) | @Test
    method deployAndEnableProcessWithDocument (line 582) | private ProcessDefinition deployAndEnableProcessWithDocument(final Str...
    method deleteProcessInstanceAlsoDeleteComments (line 598) | @Test
    method deleteProcessInstanceAndComments (line 621) | @Test
    method deleteArchivedProcessInstanceAndComments (line 647) | @Test
    method deleteShouldNotKeepResources (line 673) | @Test
    method deleteShouldNotModifyAnotherProcess (line 706) | @Test

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/process/ProcessDeploymentIT.java
  class ProcessDeploymentIT (line 55) | public class ProcessDeploymentIT extends TestWithUser {
    method deployProcessInDisabledState (line 60) | @Test
    method deployProcessFromFile (line 83) | @Test
    method deployProcessWithUTF8Characteres (line 111) | @Test
    method deployBigProcess (line 124) | @Test
    method deployProcess2Times (line 141) | @Test(expected = AlreadyExistsException.class)
    method exportBusinessArchiveWithAllArtifacts (line 156) | @Test

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/process/ProcessDescriptionIT.java
  class ProcessDescriptionIT (line 26) | public class ProcessDescriptionIT extends TestWithUser {
    method allInstanceDescriptions (line 28) | @Test

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/process/ProcessExecutionIT.java
  class ProcessExecutionIT (line 65) | public class ProcessExecutionIT extends TestWithUser {
    method ensureADeployWorksAfterAChangeInDependencies (line 78) | @Test
    method startProcessWithCurrentUser (line 96) | @Test
    method startProcessFor (line 113) | @Test
    method createAndExecuteProcessWithAutomaticSteps (line 149) | @Test
    method deleteUnknownProcess (line 162) | @Test
    method executeProcessWithNoActivities (line 168) | @Test
    method checkStartAndEndDate (line 185) | @Test
    method checkLastUpdateDateOfAnArchivedProcess (line 216) | @Test
    method checkProcessIsArchived (line 249) | @Test
    method getArchivedProcessInstanceById (line 300) | @Test
    method getArchivedProcessInstanceByIdNotFound (line 318) | @Test(expected = ArchivedProcessInstanceNotFoundException.class)
    method checkArchiveDate (line 323) | @Test
    method checkArchiveStartedBy (line 355) | @Test
    method activityDisplayDescriptionUndefined (line 376) | @Test
    method should_update_and_sort_due_date_with_null_values (line 395) | @Test
    method getHumanTaskInstanceSearchResult (line 449) | public SearchResult<HumanTaskInstance> getHumanTaskInstanceSearchResul...
    method updateDueDateOfUnknownTask (line 455) | @Test(expected = UpdateException.class)
    method should_be_able_to_set_due_date_with_connector (line 460) | @Test
    method executeTaskFor (line 483) | @Test
    method systemCommentsShouldBeAutoAddedAtTaskAssignment (line 526) | @Test

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/process/ProcessManagementIT.java
  class ProcessManagementIT (line 98) | public class ProcessManagementIT extends TestWithUser {
    method getProcessDeployInfo (line 100) | @Test
    method runDisabledProcess (line 130) | @Test(expected = ProcessActivationException.class)
    method disableProcess (line 152) | @Test
    method disableDisabledProcess (line 170) | @Test(expected = ProcessActivationException.class)
    method enableEnabledProcess (line 187) | @Test
    method deleteEnabledProcess (line 209) | @Test(expected = DeletionException.class)
    method deleteProcess (line 225) | @Test
    method getProcessesList (line 254) | @Test
    method createProcessWithNoName (line 279) | @Test(expected = InvalidProcessDefinitionException.class)
    method getArchivedActivityInstances (line 290) | @Test
    method getArchivedActivityInstancesOrderByName (line 312) | @Test
    method getArchivedActivityInstancesOrderByPagingCriterion (line 318) | private void getArchivedActivityInstancesOrderByPagingCriterion(final ...
    method getArchivedActivityInstancesOfAnUnknownProcess (line 367) | @Test
    method checkActivityInstancesWithOpenState (line 383) | @Test
    method openActivityInstancesOrder (line 440) | @Test
    method openActivityInstancesOrderByLastUpdate (line 446) | @Test
    method checkOpenActivityInstanceOrder (line 480) | private void checkOpenActivityInstanceOrder(final ActivityInstanceCrit...
    method getNumberOfOpenedActivityInstances (line 516) | @Test
    method getProcessDefinitionIdFromProcessInstanceId (line 537) | @Test
    method getProcessDefinitionIdFromActivityInstanceId (line 556) | @Test
    method getProcessResources (line 575) | @Test
    method getLatestProcessDefinitionId (line 616) | @Test
    method getLatestProcessDefinitionIdWithProcessInstanceNotFoundException (line 643) | @Test(expected = ProcessDefinitionNotFoundException.class)
    method getSupportedStates (line 649) | @Test
    method getActivityInstanceState (line 668) | @Test
    method getActivityInstancePaginated (line 684) | @Test
    method getProcessDefinitionIdByNameAndVersion (line 713) | @Test
    method getProcessDefinitionIdByNameAndVersionWithExcepton (line 729) | @Test(expected = ProcessDefinitionNotFoundException.class)
    method severalActivityUpdates (line 746) | @Test
    method updateActivityInstanceVariables (line 787) | @Test
    method updateActivityInstanceVariable (line 845) | @Test
    method cannotUpdateAnActivityInstanceVariable (line 868) | @Test(expected = UpdateException.class)
    method canExecuteTask (line 892) | @Test
    method getOneAssignedUserTaskInstanceOfProcessInstance (line 914) | @Test
    method getOneAssignedUserTaskInstanceOfProcessDefinition (line 928) | @Test
    method createProcessAndAssignUserTask (line 941) | private ActivityInstance createProcessAndAssignUserTask(final User use...
    method updateProcessDeploymentInfo (line 959) | @Test
    method updateProcessDisplayDescriptionToNull (line 1001) | @Test
    method updateProcessDeploymentInfoWithProcessDefinitionNotFoundException (line 1036) | @Test(expected = ProcessDefinitionNotFoundException.class)
    method updateProcessDeploymentInfoWithException (line 1057) | @Test(expected = UpdateException.class)
    method checkDataNameInProcess (line 1076) | @Test
    method checkProcessInstanceDataValue (line 1103) | @Test
    method getActivityReachedStateDate (line 1127) | @Test
    method checkOrderPriorityEnum (line 1157) | @Test
    method activityWithDisplayNameAndDescription (line 1166) | @Test
    method activityWithDisplayNameAndDescriptionAndNoAfterCompletion (line 1199) | @Test
    method activityWithNoDisplayNameAndDescription (line 1225) | @Test
    method getNumberOfOpenTasksForUsers (line 1248) | @Test
    method getNumberOfOverdueTasksForUsers (line 1296) | @Test
    method getProcessDefinitionsDeployInfo (line 1343) | @Test
    method getProcessDefinitionsFromIds (line 1369) | @Test
    method getProcessDefinitionsFromProcessInstanceIds (line 1431) | @Test
    method retryTask (line 1498) | @Test
    method retryTask_should_retry_failed_connectors_and_operations (line 1533) | @Test
    method deployProcessWithConnectorsAndOperationsThrowingException (line 1597) | private ProcessDefinition deployProcessWithConnectorsAndOperationsThro...
    method addTransition (line 1628) | private void addTransition(final String firstStepName, final String se...
    method addOperation (line 1639) | private void addOperation(final String watchingOperationsVar, final St...
    method addConnectors (line 1652) | private void addConnectors(final String watchingOnEnterVar, final Stri...
    method can_retryTask_twice (line 1669) | @Test
    method getArchivedConnectorInstances (line 1712) | private List<ArchivedConnectorInstance> getArchivedConnectorInstances(...
    method getArchiveCommentNotFound (line 1723) | @Test(expected = NotFoundException.class)
    method getProcessDeploymentInfosFromArchivedProcessInstanceIds (line 1728) | @Test
    method cantResolveDataInExpressionInDataDefaultValue (line 1765) | @Test
    method errorMessageWhileStartingProcessForClassCastToInteger (line 1791) | @Test
    method errorMessageWhileStartingProcessForClassCastToLong (line 1815) | @Test
    method errorMessageWhileStartingProcessForClassCastToDouble (line 1839) | @Test
    method createProcessDefinitionWithTwoHumanStepsAndDeployBusinessArchive (line 1865) | private List<Long> createProcessDefinitionWithTwoHumanStepsAndDeployBu...
    method createProcessWithActorAndHumanTaskAndStringData (line 1884) | private DesignProcessDefinition createProcessWithActorAndHumanTaskAndS...
    method startProcessUsingInitialVariableValues (line 1891) | @Test
    method purgeClassLoader_should_clean_the_classloader_of_the_process_definition_when_it_is_disabled_without_a_running_instance (line 1914) | @Test
    method getProcessInstancesWithLabelOnStringIndex (line 1930) | @Test
    method should_event_sub_process_do_not_have_search_index_of_parent (line 1974) | @Test
    method getProcessInstancesWithStringIndex (line 2019) | @Test

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/process/ProcessParameterIT.java
  class ProcessParameterIT (line 50) | public class ProcessParameterIT extends CommonAPIIT {
    method afterTest (line 52) | @After
    method beforeTest (line 57) | @Before
    method getNoParametersWhenAddingNoParameters (line 62) | @Test
    method getNumberOfParameters (line 78) | @Test
    method getNumberOfParametersThrowsAnExceptionBecauseTheProcessDoesNotExist (line 97) | @Test(expected = RetrieveException.class)
    method getNoParameters (line 102) | @Test
    method getParameters (line 119) | @Test
    method getParameter (line 149) | @Test
    method setProcessDataDefaultValueWithParameterValue (line 178) | @Test
    method deployWithNullParamAndFormMappings (line 213) | @Test
    method getParameterOfAnUnknownProcess (line 239) | @Test(expected = RetrieveException.class)
    method getUnknownParameter (line 244) | @Test(expected = NotFoundException.class)
    method sortParametersByNameAsc (line 271) | @Test
    method sortParametersByNameDesc (line 302) | @Test
    method getPageOne (line 333) | @Test
    method getPageTwo (line 362) | @Test
    method getPageTwoOutOfBound (line 391) | @Test
    method emptyParameterIsAValidValue (line 417) | @Test
    method resolvedDependencies (line 437) | @Test
    method showResolvedAndUnresolvedParameters (line 464) | @Test
    method testParametersAreWellTyped (line 496) | @Test

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/process/ProcessResolutionIT.java
  class ProcessResolutionIT (line 43) | public class ProcessResolutionIT extends TestWithTechnicalUser {
    method processNotFoundWhenGettingResolutionProblems (line 45) | @Test(expected = ProcessDefinitionNotFoundException.class)
    method noActorMapping (line 50) | @Test
    method resolveActorMapping (line 71) | @Test
    method deploy2ProcessWithSameDependency (line 128) | @Test
    method removeLastUserFromActorUnresolvesProcess (line 150) | @Test
    method deleteUserFromActorUnresolvesProcess (line 176) | @Test
    method deleteRoleFromActorUnresolvesProcess (line 200) | @Test
    method deleteGroupFromActorUnresolvesProcess (line 224) | @Test
    method noConnectorImplementation (line 248) | @Test

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/process/ProcessWithExpressionIT.java
  class ProcessWithExpressionIT (line 51) | public class ProcessWithExpressionIT extends TestWithUser {
    method executeProcessWithListExpression (line 53) | @Test
    method executeProcessWithListOfListOfExpression (line 64) | @Test
    method executeProcessWithScriptUsingApi (line 76) | @Test
    method executeProcessAndGetResultOfExpression (line 89) | private Serializable executeProcessAndGetResultOfExpression(final Expr...
    method executeProcessAndGetResultOfExpression (line 94) | private Serializable executeProcessAndGetResultOfExpression(final Expr...
    method evaluateGroovyScriptWithConnectorHavingDependencies (line 123) | @Test
    method evaluateGroovyScriptWithDifferentClassloader (line 153) | @Test
    method deployProcessWithScriptAndLibrary (line 182) | private ProcessDefinition deployProcessWithScriptAndLibrary(final BarR...
    method getMyLibrary (line 197) | private BarResource getMyLibrary() throws IOException {
    method getMyLibrary2 (line 204) | private BarResource getMyLibrary2() throws IOException {
    method evaluateConstantExpressionFromApi (line 211) | @Test
    method deployEmptyProcess (line 229) | private ProcessDefinition deployEmptyProcess() throws Exception {
    method evaluateInputExpressionFromApi (line 236) | @Test
    method evaluateGroovyExpressionFromApi (line 247) | @Test
    method evaluateGroovyWithDataProvidedExpressionFromApi (line 261) | @Test
    method evaluateEmbeddedListExpressions (line 277) | @SuppressWarnings("unchecked")
    method evaluateListExpression (line 303) | @Test
    method evaluateDataExpressionFromApiOnUnknownData (line 328) | @Test(expected = ExpressionEvaluationException.class)
    method evaluateGreaterThanComparationExpression (line 340) | @Test
    method evaluateLogicalComplementExpression (line 363) | @Test
    method evaluateGreaterThanOrEqualsComparisonExpression (line 382) | @Test
    method evaluateLessThanComparisonExpression (line 411) | @Test
    method evaluateLessThanOrEqualsComparisonExpression (line 437) | @Test
    method evaluateComparisonExpressionWithBoolean (line 466) | @Test
    method evaluateComparisonExpressionWithDouble (line 485) | @Test
    method evaluateComparisonExpressionWithLong (line 505) | @Test
    method evaluateComparisonExpressionWithLowerCaseString (line 525) | @Test
    method evaluateComparisonExpressionWithLowerCaseAndUpperCaseString (line 545) | @Test
    method runProcessWithScriptThatThrowExceptionFailTheTask (line 579) | @Test
    method processWithXPathExpression (line 596) | @Test
    method executeProcessWithAutomaticTasksAndTransitionFailed (line 615) | @Test
    method evaluateJavaMethodCallExpression (line 643) | @Test
    method evaluateJavaMethodCallExpressionTwice (line 659) | @Test

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/process/StartProcessWithOperationsIT.java
  class StartProcessWithOperationsIT (line 37) | public class StartProcessWithOperationsIT extends TestWithUser {
    method startProcessWithJavaOperations (line 39) | @Test

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/process/actor/ExportActorMappingIT.java
  class ExportActorMappingIT (line 38) | public class ExportActorMappingIT extends TestWithUser {
    method exportSimpleActorMapping (line 40) | @Test
    method exportActorMappingWithDeletedGroup (line 59) | @Test
    method exportActorMappingWithDeletedUser (line 76) | @Test
    method exportActorMappingWithDeletedMembership (line 93) | @Test
    method exportActorMappingWithDeletedSubGroup (line 121) | @Test
    method exportActorMappingWithDeletedRole (line 148) | @Test
    method exportcomplexActorMapping (line 165) | @Test

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/process/actor/ImportActorMappingIT.java
  class ImportActorMappingIT (line 53) | public class ImportActorMappingIT extends TestWithTechnicalUser {
    method after (line 57) | @Override
    method importSimpleActorMapping (line 70) | @Test
    method importComplexActorMapping (line 92) | @Test
    method importActorMappingWithWrongXMLFileBeforeDeploy (line 105) | @Test
    method importActorMappingWithWrongXMLFileAfterDeploy (line 112) | @Test(expected = ActorMappingImportException.class)
    method importActorMappingWithUnknownUserBeforeDeploy (line 119) | @Test
    method importActorMappingWithUnknownUserAfterDeploy (line 126) | @Test(expected = ActorMappingImportException.class)
    method importActorMappingWithUnknownGroupBeforeDeploy (line 133) | @Test
    method importActorMappingWithUnknownGroupAfterDeploy (line 145) | @Test(expected = ActorMappingImportException.class)
    method importActorMappingWithUnknownRoleBeforeDeploy (line 154) | @Test
    method importActorMappingWithUnknownRoleAfterDeploy (line 166) | @Test(expected = ActorMappingImportException.class)
    method importActorMappingWithUnknownMemberShipBeforeDeploy (line 175) | @Test
    method importActorMappingWithUnknownMemberShipAfterDeploy (line 187) | @Test(expected = ActorMappingImportException.class)
    method importActorMapping (line 196) | @Test
    method importActorMappingComputesProcessResolution (line 209) | @Test
    method createAndDeployProcessDefinitionWithImportedActorMapping (line 240) | private BusinessArchiveBuilder createAndDeployProcessDefinitionWithImp...
    method xmlToByteArray (line 258) | private byte[] xmlToByteArray(final String xmlFileName) throws IOExcep...
    method createProcessDefinitionBuilder (line 273) | private ProcessDefinitionBuilder createProcessDefinitionBuilder() {
    method checkProcessNotActivated (line 281) | private void checkProcessNotActivated(final BusinessArchiveBuilder bus...
    method checkProcessActivated (line 293) | private void checkProcessActivated(final BusinessArchiveBuilder busine...
    method createProcessDefinitionAndCheckActorMappingImportException (line 306) | private void createProcessDefinitionAndCheckActorMappingImportExceptio...
    method getAndCheckActors (line 321) | private void getAndCheckActors(final User user, final Group group, fin...
    method checkMembership (line 335) | private boolean checkMembership(final ActorMember actorMember, final l...
    method checkUser (line 339) | private boolean checkUser(final ActorMember actorMember, final long us...
    method checkGroup (line 343) | private boolean checkGroup(final ActorMember actorMember, final long g...
    method checkRole (line 347) | private boolean checkRole(final ActorMember actorMember, final long ro...

FILE: bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/process/actor/ProcessActorIT.java
  class ProcessActorIT (line 57) | public class ProcessActorIT extends TestWithUser {
    method after (line 59) | @Override
    method mapTwiceSameActorToAGroup (line 66) | @Test(expected = AlreadyExistsException.class)
    method mapActorToAlreadyMappedParentGroupShouldBeHandledSilently (line 81) | @Test
    method mapActorToAGroupAndGroupPlusRoleIsValid (line 105) | @Test
    method johnHasGotAPendingTask (line 125) | @Test
    method deployProcessWithActorMappingNotMatchingOrganization (line 152) | @Test
    method butJamesHasNoPendingTask (line 198) | @Test
    method eliasHasAssignedAndPendingUserTasks (line 221) | @Test
    method preparationBeforeTest (line 249) | private ProcessDefinition preparationBeforeTest(final String actorName...
    method getActor (line 267) | @Test
    method getActors (line 281) | @Test
    method getActorsByIds (line 321) | @Test
    method updateActor (line 358) | @Test
    method updateActorWithEmptyDescriptor (line 387) | @Test(expected = UpdateException.class)
    method updateActorWithNoDescriptor (line 393) | @Test(expected = UpdateException.class)
    method addActorMembers (line 398) | @Test
    method cantAddTwiceUserToActor (line 428) | @Test(expected = AlreadyExistsException.class)
    method cantAddTwiceRoleToActor (line 449) | @Test(expected = AlreadyExistsException.class)
    method cantAddTwiceGroupToActor (line 473) | @Test(expected = AlreadyExistsException.class)
    method cantAddTwiceMembershipToActor (line 497) | @Test(expected = AlreadyExistsException.class)
    method getNumberOfUsersOfActor (line 523) | @Test
    method getNumberOfRolesOfActor (line 563) | @Test
    method getNumberOfGroupsOfActor (line 601) | @Test
    method getNumberOfMembershipsOfActor (line 635) | @Test
    method getStartableProcessesForActors (line 679) | @Test
    method testIsAllowedToStartProcess (line 702) | @Test
    method deployAndEnableProcessWithHumanTask (line 723) | private ProcessDefinition deployAndEnableProcessWithHumanTask(final St...
    method userHasGotAPendingTaskFromGroup (line 744) | @Test
    method mapActorToASubGroup (line 764) | @Test
    method userHasGotAPendingTaskFromRole (line 784) | @Test
    method userHasGotAPendingTaskFromRoleAndGroup (line 805) | @Test
    method userDontGetAPendingTaskFromRoleOrGroupIfRoleAndGroupNeeded (line 827) | @Test
    method getNumberOfActors (line 871) | @Test
    method checkActors (line 913) | private ActorInstance checkActors(final String ACTOR_NAME, final Proce...
    method cleanUserGroupAndRole (line 921) | private void cleanUserGroupAnd
Copy disabled (too large) Download .json
Condensed preview — 5459 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (26,745K chars).
[
  {
    "path": ".github/workflows/build.yml",
    "chars": 872,
    "preview": "name: Build Bonita Community\non:\n  push:\n    branches:\n      - dev\n  pull_request:\n    types: [opened, synchronize, reop"
  },
  {
    "path": ".gitignore",
    "chars": 596,
    "preview": "### virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml\nhs_err_pid*\n\n### OSX template"
  },
  {
    "path": "LICENSE.txt",
    "chars": 26530,
    "preview": "                  GNU LESSER GENERAL PUBLIC LICENSE\n                       Version 2.1, February 1999\n\n Copyright (C) 19"
  },
  {
    "path": "README.md",
    "chars": 4787,
    "preview": "# Bonita Engine\n\n[![Build](https://github.com/bonitasoft/bonita-engine/actions/workflows/build.yml/badge.svg)](https://g"
  },
  {
    "path": "bonita-engine/build.gradle",
    "chars": 6114,
    "preview": "import org.bonitasoft.engine.gradle.PomUtils\n\n//this module is published to be imported as dependency management\nplugins"
  },
  {
    "path": "bonita-engine-spring-boot-starter/build.gradle",
    "chars": 1154,
    "preview": "import org.bonitasoft.engine.gradle.PomUtils\n\nplugins {\n    id 'java-library'\n    id 'bonita-tests'\n}\n\ndependencies {\n  "
  },
  {
    "path": "bonita-engine-spring-boot-starter/src/main/java/org/bonitasoft/engine/spring/autoconfigure/BonitaEngineCommonAutoConfiguration.java",
    "chars": 1270,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-engine-spring-boot-starter/src/main/java/org/bonitasoft/engine/spring/autoconfigure/BonitaEngineEventListener.java",
    "chars": 2430,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-engine-spring-boot-starter/src/main/java/org/bonitasoft/engine/spring/autoconfigure/BonitaEngineServerAutoConfiguration.java",
    "chars": 2044,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-engine-spring-boot-starter/src/main/java/org/bonitasoft/engine/spring/autoconfigure/properties/BonitaDatabasesConfiguration.java",
    "chars": 1450,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-engine-spring-boot-starter/src/main/java/org/bonitasoft/engine/spring/autoconfigure/properties/BonitaEngineProperties.java",
    "chars": 1312,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-engine-spring-boot-starter/src/main/resources/META-INF/spring.factories",
    "chars": 228,
    "preview": "org.springframework.boot.autoconfigure.EnableAutoConfiguration=\\\n  org.bonitasoft.engine.spring.autoconfigure.BonitaEngi"
  },
  {
    "path": "bonita-engine-spring-boot-starter/src/test/java/org/bonitasoft/engine/spring/autoconfigure/BonitaEngineAutoConfigurationTest.java",
    "chars": 4002,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-engine-spring-boot-starter/src/test/java/org/bonitasoft/engine/spring/autoconfigure/BonitaEngineSpringBootStarterIT.java",
    "chars": 1429,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-engine-spring-boot-starter/src/test/java/org/bonitasoft/engine/spring/autoconfigure/ClientTestApplication.java",
    "chars": 1009,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-engine-standalone/build.gradle",
    "chars": 1397,
    "preview": "import org.bonitasoft.engine.gradle.PomUtils\n\nplugins {\n    id \"java-library\"\n}\n\ndependencies {\n\n    api(project(\":bpm:b"
  },
  {
    "path": "bonita-engine-standalone/src/main/java/org/bonitasoft/engine/BonitaDataSourceInitializer.java",
    "chars": 9010,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-engine-standalone/src/main/java/org/bonitasoft/engine/BonitaDatabaseConfiguration.java",
    "chars": 3012,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-engine-standalone/src/main/java/org/bonitasoft/engine/BonitaEngine.java",
    "chars": 8341,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-engine-standalone/src/main/java/org/bonitasoft/engine/DatabaseUrlParser.java",
    "chars": 1697,
    "preview": "/**\n * Copyright (C) 2020 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-engine-standalone/src/main/java/org/bonitasoft/engine/DatasourceConfiguration.java",
    "chars": 1169,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-engine-standalone/src/main/java/org/bonitasoft/engine/DefaultBonitaDatabaseConfigurations.java",
    "chars": 3575,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-engine-standalone/src/main/java/org/bonitasoft/engine/MemoryJNDISetup.java",
    "chars": 2559,
    "preview": "/**\n * Copyright (C) 2016 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-engine-standalone/src/main/java/org/bonitasoft/engine/SimpleMemoryContext.java",
    "chars": 6161,
    "preview": "/**\n * Copyright (C) 2016 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-engine-standalone/src/main/java/org/bonitasoft/engine/SimpleMemoryContextFactory.java",
    "chars": 1346,
    "preview": "/**\n * Copyright (C) 2016 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-engine-standalone/src/main/java/org/bonitasoft/engine/SimpleNameParser.java",
    "chars": 1185,
    "preview": "/**\n * Copyright (C) 2016 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-engine-standalone/src/main/java/org/bonitasoft/engine/xa/XAConnectionIsSameRMOverride.java",
    "chars": 2434,
    "preview": "/**\n * Copyright (C) 2020 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-engine-standalone/src/main/java/org/bonitasoft/engine/xa/XADataSourceIsSameRMOverride.java",
    "chars": 2448,
    "preview": "/**\n * Copyright (C) 2020 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-engine-standalone/src/main/java/org/bonitasoft/engine/xa/XAResourceIsSameRMOverride.java",
    "chars": 2504,
    "preview": "/**\n * Copyright (C) 2020 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-engine-standalone/src/main/resources/jbossts-properties.xml",
    "chars": 7311,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE properties SYSTEM \"http://java.sun.com/dtd/properties.dtd\">\n<!--\n  JBos"
  },
  {
    "path": "bonita-engine-standalone/src/test/java/org/bonitasoft/engine/BonitaDataSourceInitializerTest.java",
    "chars": 4775,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-engine-standalone/src/test/java/org/bonitasoft/engine/BonitaEngineTest.java",
    "chars": 2654,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-engine-standalone/src/test/java/org/bonitasoft/engine/DatabaseUrlParserTest.java",
    "chars": 1596,
    "preview": "/**\n * Copyright (C) 2020 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/benchmarks/README.md",
    "chars": 302,
    "preview": "Micro benchmarks\n================\n\n\nThis module contains micro benchmark tests that can be written and run to verify the"
  },
  {
    "path": "bonita-integration-tests/benchmarks/build.gradle",
    "chars": 377,
    "preview": "plugins {\n    id(\"me.champeau.jmh\") version \"0.7.3\"\n}\n\ndependencies {\n    api libs.assertj\n    api libs.mockitoCore\n    "
  },
  {
    "path": "bonita-integration-tests/benchmarks/src/jmh/java/org/bonitasoft/engine/benchmarks/PermissionCachingBenchmark.java",
    "chars": 2416,
    "preview": "/**\n * Copyright (C) 2020 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/benchmarks/src/jmh/java/org/bonitasoft/engine/benchmarks/TransactionSynchronizationBenchmark.java",
    "chars": 3816,
    "preview": "/**\n * Copyright (C) 2020 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/bonita-client-http.properties",
    "chars": 161,
    "preview": "org.bonitasoft.engine.api-type=HTTP\norg.bonitasoft.engine.api-type.server.url=127.255.0.123\norg.bonitasoft.engine.api-ty"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/bonita-client-invalid.properties",
    "chars": 45,
    "preview": "org.bonitasoft.engine.api-type = InvalidType\n"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/bonita-client-local.properties",
    "chars": 39,
    "preview": "org.bonitasoft.engine.api-type = LOCAL\n"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/build.gradle",
    "chars": 1947,
    "preview": "plugins {\n    id(\"bonita-http-test\")\n    id(\"bonita-docker-database\")\n    id(\"bonita-tests\")\n}\ndependencies {\n    api pr"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/CommonAPIIT.java",
    "chars": 6412,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/PrintTestsStatusRule.java",
    "chars": 2197,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/TestWithTechnicalUser.java",
    "chars": 1168,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/TestWithUser.java",
    "chars": 1463,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/business/application/TestWithCustomPage.java",
    "chars": 1799,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/business/application/TestWithLivingApplication.java",
    "chars": 7883,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/business/data/BusinessDataUpdateConnector.java",
    "chars": 1698,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/business/data/ClassloaderRefresher.java",
    "chars": 3493,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/ProcessDeployer.java",
    "chars": 1885,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/designer/BoundaryEvent.java",
    "chars": 1683,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/designer/Branch.java",
    "chars": 2595,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/designer/ConditionalTransition.java",
    "chars": 1681,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/designer/DefaultTransition.java",
    "chars": 2031,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/designer/EndEvent.java",
    "chars": 1207,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/designer/FlowNode.java",
    "chars": 1330,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/designer/Fragment.java",
    "chars": 1922,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/designer/Gateway.java",
    "chars": 1339,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/designer/Signal.java",
    "chars": 1217,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/designer/SimpleProcessDesigner.java",
    "chars": 1986,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/designer/StartEvent.java",
    "chars": 1212,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/designer/Transition.java",
    "chars": 1390,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/designer/Trigger.java",
    "chars": 1038,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/designer/UserTask.java",
    "chars": 1574,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/expectation/DocumentExpectation.java",
    "chars": 1814,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/expectation/ProcessExpectation.java",
    "chars": 1349,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/expectation/StepExpectation.java",
    "chars": 3440,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/expectation/TestUtils.java",
    "chars": 2502,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/command/helper/expectation/VariableExpectation.java",
    "chars": 1639,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/connectors/ConnectorExecutionIT.java",
    "chars": 10898,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/connectors/DoNothingConnector.java",
    "chars": 1268,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/connectors/FailingConnector.java",
    "chars": 1307,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/connectors/TestConnector.java",
    "chars": 1327,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/connectors/TestConnector2.java",
    "chars": 1254,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/connectors/TestConnector3.java",
    "chars": 2114,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/connectors/TestConnectorLongToExecute.java",
    "chars": 1429,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/connectors/TestConnectorThatThrowException.java",
    "chars": 2815,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/connectors/TestConnectorWithAPICall.java",
    "chars": 1741,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/connectors/TestConnectorWithConnectedResource.java",
    "chars": 1541,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/connectors/TestConnectorWithModifiedOutput.java",
    "chars": 1275,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/connectors/TestConnectorWithNotSerializableOutput.java",
    "chars": 1184,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/connectors/TestConnectorWithOutput.java",
    "chars": 1227,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/connectors/TestExternalConnector.java",
    "chars": 1615,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/connectors/VariableStorage.java",
    "chars": 2621,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/event/AbstractEventIT.java",
    "chars": 79156,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/filter/user/GroupUserFilter.java",
    "chars": 1648,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/filter/user/TestFilter.java",
    "chars": 1348,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/filter/user/TestFilterThatThrowException.java",
    "chars": 1574,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/filter/user/TestFilterThatThrowNoClassDef.java",
    "chars": 1537,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/filter/user/TestFilterUsingActorName.java",
    "chars": 1478,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/filter/user/TestFilterWithAutoAssign.java",
    "chars": 1361,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/page/PageAssert.java",
    "chars": 10533,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/process/Employee.java",
    "chars": 3100,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/process/Secretary.java",
    "chars": 1135,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/process/SetDueDateConnector.java",
    "chars": 1674,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/search/SlowConnector.java",
    "chars": 1643,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/util/AssertionsUtils.java",
    "chars": 1843,
    "preview": "/**\n * Copyright (C) 2020 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/java/org/bonitasoft/engine/util/FunctionalMatcher.java",
    "chars": 1421,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/business/application/applicationWithUnavailableInfo.xml",
    "chars": 2128,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/business/application/applications.xml",
    "chars": 2378,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/business/data/BusinessDataUpdateConnector.def",
    "chars": 507,
    "preview": "<connectorDefinition>\n\t<version>1.0</version>\n\t<connectorId>org.bonitasoft.connector.BusinessDataUpdateConnector</connec"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/business/data/BusinessDataUpdateConnector.impl",
    "chars": 545,
    "preview": "<connectorImplementation>\n\n\t<definitionId>org.bonitasoft.connector.BusinessDataUpdateConnector</definitionId>\n\t<definiti"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/business/data/findByFirstNameAndLastNameNewOrder.json",
    "chars": 977,
    "preview": "[\n  {\n    \"persistenceId\": 1,\n    \"persistenceVersion\": 0,\n    \"persistenceId_string\": \"1\",\n    \"persistenceVersion_stri"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/business/data/findByFirstNameFetchAddresses.json",
    "chars": 972,
    "preview": "[\n  {\n    \"persistenceId\": 1,\n    \"persistenceVersion\": 0,\n    \"persistenceId_string\": \"1\",\n    \"persistenceVersion_stri"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/business/data/getBusinessDataByIdAddress.json",
    "chars": 297,
    "preview": "{\n  \"persistenceId\": 2,\n  \"persistenceVersion\": 0,\n  \"persistenceId_string\": \"2\",\n  \"persistenceVersion_string\": \"0\",\n  "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/business/data/getBusinessDataByIdEmployee.json",
    "chars": 887,
    "preview": "{\n  \"persistenceId\": 1,\n  \"persistenceVersion\": 0,\n  \"persistenceId_string\": \"1\",\n  \"persistenceVersion_string\": \"0\",\n  "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/business/data/getEmployeeByPhoneNumber.json",
    "chars": 974,
    "preview": "[\n  {\n    \"persistenceId\": 1,\n    \"persistenceVersion\": 0,\n    \"persistenceId_string\": \"1\",\n    \"persistenceVersion_stri"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/command/Employee.find.2.1.json",
    "chars": 358,
    "preview": "[\n  {\n    \"persistenceId\": \"${json-unit.ignore}\",\n    \"persistenceId_string\": \"${json-unit.ignore}\",\n    \"persistenceVer"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/command/web/profile/AllProfiles.xml",
    "chars": 847,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<profiles:profiles xmlns:profiles=\"http://documentation.bonitasoft.com/profile-xm"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/command/web/profile/RestoreDefaultProfiles.xml",
    "chars": 479,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<profiles:profiles xmlns:profiles=\"http://documentation.bonitasoft.com/profile-xm"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/command/web/profile/deleteExistingProfile.xml",
    "chars": 371,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<profiles:profiles xmlns:profiles=\"http://documentation.bonitasoft.com/profile-xm"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/connectors/APIAccessorConnector.impl",
    "chars": 490,
    "preview": "<connectorImplementation>\n\n\t<definitionId>org.bonitasoft.connector.APIAccessorConnector</definitionId>\n\t<definitionVersi"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/connectors/TestConnector.def",
    "chars": 444,
    "preview": "<connectorDefinition>\n\t<version>1.0</version>\n\t<connectorId>org.bonitasoft.connector.testConnector</connectorId>\n\t<icon>"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/connectors/TestConnector.impl",
    "chars": 543,
    "preview": "<connectorImplementation>\n\t\n\t<definitionId>org.bonitasoft.connector.testConnector</definitionId>\n\t<definitionVersion>1.0"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/connectors/TestConnector2.impl",
    "chars": 546,
    "preview": "<connectorImplementation>\n\t\n\t<definitionId>org.bonitasoft.connector.testConnector</definitionId>\n\t<definitionVersion>1.0"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/connectors/TestConnector3.def",
    "chars": 560,
    "preview": "<connectorDefinition>\n\t<version>1.0</version>\n\t<connectorId>org.bonitasoft.connector.testConnector3</connectorId>\n\t<icon"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/connectors/TestConnector3.impl",
    "chars": 546,
    "preview": "<connectorImplementation>\n\t\n\t<definitionId>org.bonitasoft.connector.testConnector3</definitionId>\n\t<definitionVersion>1."
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/connectors/TestConnectorInJar.impl",
    "chars": 326,
    "preview": "<connectorImplementation>\n\t\n\t<definitionId>connectorInJar</definitionId>\n\t<definitionVersion>1.0.0</definitionVersion>\n\t"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/connectors/TestConnectorLongToExecute.impl",
    "chars": 395,
    "preview": "<connectorImplementation>\n\t\n\t<definitionId>testConnectorLongToExecute</definitionId>\n\t<definitionVersion>1.0.0</definiti"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/connectors/TestConnectorThatThrowException.impl",
    "chars": 516,
    "preview": "<connectorImplementation>\n\t\n\t<definitionId>testConnectorThatThrowException</definitionId>\n\t<definitionVersion>1.0</defin"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/connectors/TestConnectorWithAPICall.impl",
    "chars": 550,
    "preview": "<connectorImplementation>\n\t\n\t<definitionId>org.bonitasoft.engine.connectors.TestConnectorWithAPICall</definitionId>\n\t<de"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/connectors/TestConnectorWithConnectedResource.def",
    "chars": 428,
    "preview": "<connectorDefinition>\n\t<version>1.0</version>\n\t<connectorId>org.bonitasoft.connector.testConnectorWithConnectedResource<"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/connectors/TestConnectorWithConnectedResource.impl",
    "chars": 570,
    "preview": "<connectorImplementation>\n\n\t<definitionId>org.bonitasoft.connector.testConnectorWithConnectedResource</definitionId>\n\t<d"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/connectors/TestConnectorWithCustomType.impl",
    "chars": 374,
    "preview": "<connectorImplementation>\n\t\n\t<definitionId>connectorWithCustomType</definitionId>\n\t<definitionVersion>1.0.0</definitionV"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/connectors/TestConnectorWithModifiedOutput.impl",
    "chars": 550,
    "preview": "<connectorImplementation>\n\n\t<definitionId>org.bonitasoft.connector.testConnectorWithOutput</definitionId>\n\t<definitionVe"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/connectors/TestConnectorWithNotSerializableOutput.def",
    "chars": 448,
    "preview": "<connectorDefinition>\n\t<version>1.0</version>\n\t<connectorId>org.bonitasoft.connector.testConnectorWithNotSerializableOut"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/connectors/TestConnectorWithNotSerializableOutput.impl",
    "chars": 585,
    "preview": "<connectorImplementation>\n\t<definitionId>org.bonitasoft.connector.testConnectorWithNotSerializableOutput</definitionId>\n"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/connectors/TestConnectorWithOutput.def",
    "chars": 505,
    "preview": "<connectorDefinition>\n\t<version>1.0</version>\n\t<connectorId>org.bonitasoft.connector.testConnectorWithOutput</connectorI"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/connectors/TestConnectorWithOutput.impl",
    "chars": 526,
    "preview": "<connectorImplementation>\n\n\t<definitionId>org.bonitasoft.connector.testConnectorWithOutput</definitionId>\n\t<definitionVe"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/connectors/TestExternalConnector.impl",
    "chars": 517,
    "preview": "<connectorImplementation>\n\n\t<definitionId>org.bonitasoft.connector.testExternalConnector</definitionId>\n\t<definitionVers"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/connectors/UnknownClassConnector.impl",
    "chars": 348,
    "preview": "<connectorImplementation>\n\n\t<definitionId>unkownClassConnectorDef</definitionId>\n\t<definitionVersion>1.0.0</definitionVe"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/filter/user/GroupUserFilter.impl",
    "chars": 511,
    "preview": "<connectorImplementation>\n\t<definitionId>org.bonitasoft.engine.filter.user.GroupUserFilter</definitionId>\n\t<definitionVe"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/filter/user/TestFilter.def",
    "chars": 448,
    "preview": "<connectorDefinition>\n\t<version>1.0</version>\n\t<connectorId>org.bonitasoft.engine.filter.user.testFilter</connectorId>\n\t"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/filter/user/TestFilter.impl",
    "chars": 491,
    "preview": "<connectorImplementation>\n\t<definitionId>org.bonitasoft.engine.filter.user.testFilter</definitionId>\n\t<definitionVersion"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/filter/user/TestFilterThatThrowException.impl",
    "chars": 367,
    "preview": "<connectorImplementation id=\"org.bonitasoft.engine.filter.user.testFilterThatThrowException\" version=\"1.0\"\n\tdefinitionId"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/filter/user/TestFilterThatThrowNoClassDef.impl",
    "chars": 370,
    "preview": "<connectorImplementation id=\"org.bonitasoft.engine.filter.user.testFilterThatThrowNoClassDef\" version=\"1.0\"\n\tdefinitionI"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/filter/user/TestFilterUsingActorName.impl",
    "chars": 547,
    "preview": "<connectorImplementation>\n\t<definitionId>org.bonitasoft.engine.filter.user.testFilterUsingActorName</definitionId>\n\t<def"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/filter/user/TestFilterWithAutoAssign.impl",
    "chars": 547,
    "preview": "<connectorImplementation>\n\t<definitionId>org.bonitasoft.engine.filter.user.testFilterWithAutoAssign</definitionId>\n\t<def"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/filter/user/TestFilterWithClassNotFound.impl",
    "chars": 343,
    "preview": "<connectorImplementation id=\"org.bonitasoft.engine.filter.user.testFilterWithClassNotFound\" version=\"1.0\"\n\tdefinitionId="
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/identity/ACME.xml",
    "chars": 21181,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<organization:Organization xmlns:organization=\"http://documentation.bonitasoft.co"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/identity/OrganizationWithSpecialCharacters.xml",
    "chars": 707,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<organization:Organization\n\txmlns:organization=\"http://documentation.bonitasoft.c"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/identity/complexOrganization.xml",
    "chars": 3011,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<organization:Organization xmlns:organization=\"http://documentation.bonitasoft.co"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/identity/complexOrganizationWithBadGroup.xml",
    "chars": 3431,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<organization:Organization xmlns:organization=\"http://documentation.bonitasoft.co"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/identity/hugeOrganization.xml",
    "chars": 454708,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<organization:Organization xmlns:organization=\"http://documentation.bonitasoft.co"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/identity/mixOrganization.xml",
    "chars": 533,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<organization:Organization xmlns:organization=\"http://documentation.bonitasoft.co"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/identity/organizationFailOnDuplicates.xml",
    "chars": 560,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<organization:Organization xmlns:organization=\"http://documentation.bonitasoft.co"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/identity/organizationWithCycle.xml",
    "chars": 743,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<organization:Organization xmlns:organization=\"http://documentation.bonitasoft.co"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/identity/simpleOrganization.xml",
    "chars": 2055,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<organization:Organization xmlns:organization=\"http://documentation.bonitasoft.co"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/identity/simpleOrganizationDuplicates1.xml",
    "chars": 1975,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<organization:Organization xmlns:organization=\"http://documentation.bonitasoft.co"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/identity/simpleOrganizationDuplicates2.xml",
    "chars": 1930,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<organization:Organization xmlns:organization=\"http://documentation.bonitasoft.co"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/identity/simpleOrganizationNoDuplicates.xml",
    "chars": 762,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<organization:Organization xmlns:organization=\"http://documentation.bonitasoft.co"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/process/actor/actorMappingWithException.xml",
    "chars": 280,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<actormappings:actorMappings xmlns:actormappings=\"http://www.bonitasoft.org/ns/ac"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/process/actor/complexActorMapping.xml",
    "chars": 583,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<actorMappings:actorMappings xmlns:actorMappings=\"http://www.bonitasoft.org/ns/ac"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/process/actor/complexActorMapping2.xml",
    "chars": 418,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<actormappings:actorMappings xmlns:actormappings=\"http://www.bonitasoft.org/ns/ac"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/process/actor/complexActorMappingWithUnkownGroup.xml",
    "chars": 416,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<actormappings:actorMappings xmlns:actormappings=\"http://www.bonitasoft.org/ns/ac"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/main/resources/org/bonitasoft/engine/process/actor/simpleActorMapping.xml",
    "chars": 360,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<actorMappings:actorMappings xmlns:actorMappings=\"http://www.bonitasoft.org/ns/ac"
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/MultiThreadCallsIT.java",
    "chars": 2579,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/RemoteEngineIT.java",
    "chars": 2339,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/StringIndexIT.java",
    "chars": 9486,
    "preview": "/**\n * Copyright (C) 2020 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/activity/CallActivityIT.java",
    "chars": 82392,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/activity/ContractIT.java",
    "chars": 39946,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/activity/GetPossibleUsersOfPendingHumanTaskIT.java",
    "chars": 21525,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/activity/HumanTasksIT.java",
    "chars": 33704,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/activity/LoopIT.java",
    "chars": 16686,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/activity/ManualTasksIT.java",
    "chars": 6336,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/activity/MultiInstanceIT.java",
    "chars": 69523,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/activity/PendingTasksIT.java",
    "chars": 45594,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/activity/ReceiveTasksIT.java",
    "chars": 24446,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/activity/SendTaskIT.java",
    "chars": 18367,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/activity/UserTaskAssignationIT.java",
    "chars": 21384,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/activity/work/RetryWorkIT.java",
    "chars": 2790,
    "preview": "/**\n * Copyright (C) 2020 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/application/ApplicationIT.java",
    "chars": 10406,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/business/application/LivingApplicationIT.java",
    "chars": 21482,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/business/application/LivingApplicationImportExportIT.java",
    "chars": 14257,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/business/application/LivingApplicationMenuIT.java",
    "chars": 25910,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/business/application/LivingApplicationPageIT.java",
    "chars": 18492,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/business/data/BDMPostgreSQLTextFieldIT.java",
    "chars": 6104,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/business/data/BDMUpdateIT.java",
    "chars": 8120,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/business/data/BDRepositoryIT.java",
    "chars": 166777,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/client/BonitaClientXMLTest.java",
    "chars": 3301,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/command/AdvancedStartProcessCommandIT.java",
    "chars": 13327,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/command/CommandIT.java",
    "chars": 18912,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/command/ExecuteBDMQueryCommandIT.java",
    "chars": 21456,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/command/ExecutionExceptionCommand.java",
    "chars": 1307,
    "preview": "/**\n * Copyright (C) 2011 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/command/IntegerCommand.java",
    "chars": 1280,
    "preview": "/**\n * Copyright (C) 2012 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/command/MultipleStartPointsProcessCommandIT.java",
    "chars": 23560,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/command/NPECommand.java",
    "chars": 1215,
    "preview": "/**\n * Copyright (C) 2024 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/command/ParameterizationExceptionCommand.java",
    "chars": 1336,
    "preview": "/**\n * Copyright (C) 2012 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/command/helper/designer/BranchTest.java",
    "chars": 1873,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/command/helper/designer/DesignerTestUtils.java",
    "chars": 3759,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/command/helper/designer/SimpleProcessDesignerTest.java",
    "chars": 7312,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/connectors/RemoteConnectorExecutionIT.java",
    "chars": 97881,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/event/AbstractWaitingEventIT.java",
    "chars": 3949,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/event/EndEventIT.java",
    "chars": 10417,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/event/ErrorBoundaryEventIT.java",
    "chars": 12997,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/event/ErrorEventSubProcessIT.java",
    "chars": 18086,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/event/EventTriggerIT.java",
    "chars": 6193,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/event/InterruptingTimerBoundaryEventIT.java",
    "chars": 9757,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/event/MessageBoundaryEventIT.java",
    "chars": 19008,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  },
  {
    "path": "bonita-integration-tests/bonita-integration-tests-client/src/test/java/org/bonitasoft/engine/event/MessageEventIT.java",
    "chars": 57453,
    "preview": "/**\n * Copyright (C) 2019 Bonitasoft S.A.\n * Bonitasoft, 32 rue Gustave Eiffel - 38000 Grenoble\n * This library is free "
  }
]

// ... and 5259 more files (download for full content)

About this extraction

This page contains the full source code of the bonitasoft/bonita-engine GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 5459 files (24.0 MB), approximately 6.7M tokens, and a symbol index with 37249 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!