flowable / flowable-engine

A compact and highly efficient workflow and Business Process Management (BPM) platform for developers, system admins and business users.
https://www.flowable.org
Apache License 2.0
7.98k stars 2.62k forks source link

Flowable Spring Boot Starter Rest .zip file deployment #2541

Open Robinyo opened 4 years ago

Robinyo commented 4 years ago

Describe the bug I have an application that uses Flowable’s Spring Boot Starter Rest.

pom.xml:

  ...

    <dependency>
      <groupId>org.flowable</groupId>
      <artifactId>flowable-spring-boot-starter-rest</artifactId>
      <version>${flowable.version}</version>
    </dependency>

    <dependency>
      <groupId>org.flowable</groupId>
      <artifactId>flowable-ldap</artifactId>
      <version>${flowable.version}</version>
    </dependency>

  ...

If I place a .zip file in the default location (i.e., /resources/apps) the processes are successfully deployed. However, the associated forms are not deployed.

If I place a .bpmn file in the default location (i.e., /resources/processes) and the associated forms (.json) in the default location (i.e., /resources/forms). The processes are successfully deployed, however, the associated forms are not deployed.

Expected behaviour That the processes and the associated forms are deployed.

Ref: Flowable Spring Boot Starter .zip file deployment

filiphr commented 4 years ago

@Robinyo are you sure that you have the correct .zip file? There are 2 different zip files that can be exported from the Modeler. One is the zip file for sharing the app between different modeler instances. The other one is a bar file that has the app which is identical to the one published via the publish button in the modeler. The structure of the correct zip (or bar) file should be flat, there shouldn't be folders in it. If there are folders you have the wrong app file.

Additionally, forms should end with .form for them to be picked up from the default location (i.e. /resources/forms). This is configured via:

https://github.com/flowable/flowable-engine/blob/dc64ba5562abd4582b557eefa00a963e5761b7dd/modules/flowable-spring-boot/flowable-spring-boot-starters/flowable-spring-boot-autoconfigure/src/main/java/org/flowable/spring/boot/form/FlowableFormProperties.java#L46

Robinyo commented 4 years ago

Hey @filiphr

You are correct 👍

I need to update my post: Flowable OAuth2 Resource Server

I was placing a .zip file rather than a .bar file in the /apps folder.

Screen Shot 2020-08-07 at 08 08 28

In my defence: Flowable Application Properties

flowable.process-definition-location-prefix=classpath*:/processes/
flowable.cmmn.resource-location=classpath*:/cases/
flowable.dmn.resource-location=classpath*:/dmn/
flowable.form.resource-location=classpath*:/forms/

There is no entry for .bar files?

In the Spring Boot - Getting Started section of the BPMN Users Guide:

Also:

Any BPMN 2.0 process definitions in the processes folder will be automatically deployed. Create a folder processes and add a dummy process definition (named one-task-process.bpmn20.xml) to this folder. The content of this file is shown below.

Any CMMN 1.1 case definitions in the cases folder will be automatically deployed.

Any DMN 1.1 dmn definitions in the dmn folder will be automatically deployed.

Any Form definitions in the forms folder will be automatically deployed.

It doesn't mention .bar files and the /apps folder?

https://flowable.com/open-source/docs/bpmn/ch06-Deployment/

In the Spring Boot - Deployment section of the BPMN Users Guide it discusses deploying .bar files programmatically. It would be great if you could add a section that discusses how .bar files are deployed from the default resource location (i.e., /apps):

2020-08-06 21:54:26.031  INFO 1 --- [           main] o.s.s.c.ThreadPoolTaskScheduler          : Initializing ExecutorService
2020-08-06 21:54:26.067  INFO 1 --- [           main] o.f.a.engine.impl.deployer.AppDeployer   : Processing app resource hr-app.app
2020-08-06 21:54:26.265  INFO 1 --- [           main] o.f.e.c.impl.deployer.BpmnDeployer       : BpmnDeployer: processing resource leave-application-process.bpmn
2020-08-06 21:54:28.624  INFO 1 --- [           main] o.f.form.engine.deployer.FormDeployer    : FormDeployer: processing resource form-leave-application-form.form
2020-08-06 21:54:28.977  INFO 1 --- [           main] o.f.j.s.i.a.AbstractAsyncExecutor        : Starting up the async job executor [org.flowable.spring.job.service.SpringAsyncExecutor].
filiphr commented 4 years ago

Maybe it is not in the documentation, but it is in the source code. e.g. FlowableAppProperties.

It doesn't have to be a bar file. You can always rename the downloaded .bar into a .zip and it'll work.

Would you like to provide a PR with the improvements to the docs?

Robinyo commented 4 years ago

-> Would you like to provide a PR with the improvements to the docs?

Maybe :)

I found the wiki however it isn't clear as to where (which repo) the docs are located?

paulhh commented 4 years ago

We use Docusaurus for the docs, and the source is here. It's written in Markdown (files in the docs directory), so if it's adding text to an existing file, that's pretty much all that's needed.

We're using v1 of Docusaurus and to run and test you'll need Node.js and ideally yarn (see here). Then just run yarn start in the website directory. But if it's just editing an existing markdown file, you probably don't need to worry about that. Adding new section requires a bit more fun.

Cheers Paul.