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
[](https://github.com/bonitasoft/bonita-engine/actions/workflows/build.yml)
[](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
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 │ │
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[](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.