Versionable Java Libraries

External Resources of type Java Class Libraries can be defined as versionable or non-versionable to define how the Engine handles the library at runtime.

Versionable libraries

Versionable libraries are those that may change as processes evolve. Consequently, it is required that each version of the process to be tied to a specific version of the library. Libraries should be tagged as versionable when the goal is to prevent an update to the library from affecting the behavior of an old version of the process or of a different process that depends on the same components. They could be thought of as integral pieces of a project in the same way the component catalog or processes are.

In general, all new Java classes you write specifically for your BPM project should be tagged as versionable.

In particular, all Java types used as process instance variables should be set as versionable to avoid potential compatibility problems at runtime.

Non-versionable libraries

Non-versionable libraries, are those that don't typically change over time. Or, if they do, the intention is for them to affect all versions of all processes deployed in the Engine.

In general, those infrastructure Java libraries or extensions to the BPM system needed to support the execution of processes should be tagged as non-versionable.

For example, libraries for third-party JDBC drivers should be tagged as non-versionable.

Related concepts
Java Class Library