diff --git a/docs/documentation/examples/index.md b/docs/documentation/examples/index.md
index 9db00e6d..df6a4d5c 100644
--- a/docs/documentation/examples/index.md
+++ b/docs/documentation/examples/index.md
@@ -9,4 +9,4 @@ Completed the [Getting Started Guides](../../get-started/index.md)? Now discover
This page collects links to hands-on examples around Operaton.
-* [Examples](https://github.com/operaton/operaton-bpm-examples) (on GitHub)
+* [Operaton Examples](https://github.com/operaton/operaton-examples) (on GitHub)
diff --git a/docs/documentation/installation/full/tomcat/index.md b/docs/documentation/installation/full/tomcat/index.md
index 3c5ba450..4d42b6b1 100644
--- a/docs/documentation/installation/full/tomcat/index.md
+++ b/docs/documentation/installation/full/tomcat/index.md
@@ -12,6 +12,6 @@ menu:
---
-This document describes the installation of the [Full Distribution](../../../introduction/downloading-operaton.md#full-distribution) for [Apache Tomcat Application Server](http://tomcat.apache.org/).
+This document describes the installation of the [Full Distribution](../../../introduction/downloading-operaton.md#full-distribution) for [Apache Tomcat Application Server](https://tomcat.apache.org/).
There are different options for installing the Full Distribution:
diff --git a/docs/documentation/installation/full/tomcat/manual.md b/docs/documentation/installation/full/tomcat/manual.md
index 1e52e9bd..9bf6d937 100644
--- a/docs/documentation/installation/full/tomcat/manual.md
+++ b/docs/documentation/installation/full/tomcat/manual.md
@@ -7,7 +7,7 @@ description: "Manually install and configure the Full Distribution on a vanilla
---
## Install the Full Distribution on a Tomcat Application Server manually
-This section describes how you can install Operaton and its components on a vanilla [Apache Tomcat](http://tomcat.apache.org/), if you are not able to use the pre-packaged Tomcat distribution. In addition, download the matching Tomcat distribution from the [Operaton GitHub releases](https://github.com/operaton/operaton/releases) to fetch the required Operaton modules. Release assets are attached to version tags such as `v$PLATFORM_VERSION`; snapshot assets are published as GitHub prereleases with tags such as `2.2.0-SNAPSHOT`.
+This section describes how you can install Operaton and its components on a vanilla [Apache Tomcat](https://tomcat.apache.org/), if you are not able to use the pre-packaged Tomcat distribution. In addition, download the matching Tomcat distribution from the [Operaton GitHub releases](https://github.com/operaton/operaton/releases) to fetch the required Operaton modules. Release assets are attached to version tags such as `v$PLATFORM_VERSION`; snapshot assets are published as GitHub prereleases with tags such as `2.2.0-SNAPSHOT`.
:::note[Reading the Guide]
Throughout this guide we will use a number of variables to denote common path names and constants:
@@ -30,8 +30,8 @@ The above workaround is not guaranteed to work for cases with bean references be
The following test scenarios fail on Tomcat 10:
-* [CallActivityContextSwitchTest](https://github.com/operaton/operaton-bpm-platform/blob/f37877b822dabcbf3cee5806bd5833d18cdcb543/qa/integration-tests-engine/src/test/java/org/operaton/bpm/integrationtest/functional/context/CallActivityContextSwitchTest.java)
-* [CdiBeanCallActivityResolutionTest](https://github.com/operaton/operaton-bpm-platform/blob/f37877b822dabcbf3cee5806bd5833d18cdcb543/qa/integration-tests-engine/src/test/java/org/operaton/bpm/integrationtest/functional/cdi/CdiBeanCallActivityResolutionTest.java)
+* [CallActivityContextSwitchTest](https://github.com/operaton/operaton/blob/main/qa/integration-tests-engine/src/test/java/org/operaton/bpm/integrationtest/functional/context/CallActivityContextSwitchTest.java)
+* [CdiBeanCallActivityResolutionTest](https://github.com/operaton/operaton/blob/main/qa/integration-tests-engine/src/test/java/org/operaton/bpm/integrationtest/functional/cdi/CdiBeanCallActivityResolutionTest.java)
:::
diff --git a/docs/documentation/installation/full/wildfly/index.md b/docs/documentation/installation/full/wildfly/index.md
index bb22ffe0..8ee1c88e 100644
--- a/docs/documentation/installation/full/wildfly/index.md
+++ b/docs/documentation/installation/full/wildfly/index.md
@@ -12,6 +12,6 @@ menu:
---
-This document describes the installation of the [Full Distribution](../../../introduction/downloading-operaton.md#full-distribution) for [WildFly Application Server](http://www.wildfly.org).
+This document describes the installation of the [Full Distribution](../../../introduction/downloading-operaton.md#full-distribution) for [WildFly Application Server](https://www.wildfly.org/).
There are different options for installing the Full Distribution:
diff --git a/docs/documentation/installation/full/wildfly/manual.md b/docs/documentation/installation/full/wildfly/manual.md
index 8688898c..52e6681b 100644
--- a/docs/documentation/installation/full/wildfly/manual.md
+++ b/docs/documentation/installation/full/wildfly/manual.md
@@ -7,7 +7,7 @@ description: "Install and configure the Full Distribution on a vanilla WildFly A
---
## Install the Full Distribution on a WildFly Application Server manually
-This document describes the installation of Operaton and its components on a vanilla [WildFly Application Server](http://www.wildfly.org) or JBoss EAP 7 / 8.
+This document describes the installation of Operaton and its components on a vanilla [WildFly Application Server](https://www.wildfly.org/) or JBoss EAP 7 / 8.
:::note[Reading this Guide]
This guide uses a number of variables to denote common path names and constants:
@@ -137,8 +137,8 @@ typically `bin`.
Using H2 as a database is ideal for development purposes but is not recommended for usage in a productive environment.
These links point you to resources for other databases:
-* [How to configure an Oracle database](http://www.ironjacamar.org/doc/userguide/1.0/en-US/html_single/#ex_datasources_oracle)
-* [How to configure a MySQL database](http://www.ironjacamar.org/doc/userguide/1.0/en-US/html_single/#ex_datasources_mysql)
+* [How to configure an Oracle database](https://www.ironjacamar.org/doc/userguide/1.0/en-US/html_single/#ex_datasources_oracle)
+* [How to configure a MySQL database](https://www.ironjacamar.org/doc/userguide/1.0/en-US/html_single/#ex_datasources_mysql)
### Optional Components
@@ -260,7 +260,6 @@ See one of the following ways to fix this:
2. Exclude implicitly added JAX-RS dependencies.
* Add a `jboss-deployment-structure.xml` file to you application in the WEB-INF folder.
* Exclude the JAX-RS subsystem and add the Jackson dependencies, with the version which is used by the Operaton Spin Plugin.
- * This solution is also shown in the [Jackson Annotation Example for WildFly](https://github.com/operaton/operaton-bpm-examples/blob/master/wildfly/jackson-annotations) in the Operaton example repository.
See this [Forum Post](https://forum.operaton.org/t/operaton-json-marshalling-and-jsonignore/271/19) for other approaches and information.
diff --git a/docs/documentation/introduction/architecture.md b/docs/documentation/introduction/architecture.md
index f608613a..8c0a9d66 100644
--- a/docs/documentation/introduction/architecture.md
+++ b/docs/documentation/introduction/architecture.md
@@ -15,7 +15,7 @@ Operaton can be used both as a standalone process engine server or embedded insi

-* [Process Engine Public API](../user-guide/process-engine/process-engine-api.md): Service-oriented API allowing Java applications to interact with the process engine. The different responsibilities of the process engine (i.e., Process Repository, Runtime Process Interaction, Task Management, ...) are separated into individual services. The public API features a [command-style access pattern](http://en.wikipedia.org/wiki/Command_pattern): Threads entering the process engine are routed through a Command Interceptor which is used for setting up Thread Context such as Transactions.
+* [Process Engine Public API](../user-guide/process-engine/process-engine-api.md): Service-oriented API allowing Java applications to interact with the process engine. The different responsibilities of the process engine (i.e., Process Repository, Runtime Process Interaction, Task Management, ...) are separated into individual services. The public API features a [command-style access pattern](https://en.wikipedia.org/wiki/Command_pattern): Threads entering the process engine are routed through a Command Interceptor which is used for setting up Thread Context such as Transactions.
* **BPMN 2.0 Core Engine**: This is the core of the process engine. It features a lightweight execution engine for graph structures (PVM - Process Virtual Machine), a BPMN 2.0 parser which transforms BPMN 2.0 XML files into Java Objects and a set of BPMN Behavior implementations (providing the implementation for BPMN 2.0 constructs such as Gateways or Service Tasks).
* [Job Executor](../user-guide/process-engine/the-job-executor.md): The Job Executor is responsible for processing asynchronous background work such as Timers or asynchronous continuations in a process.
* **The Persistence Layer**: The process engine features a persistence layer responsible for persisting process instance state to a relational database. We use the MyBatis mapping engine for object relational mapping.
@@ -99,14 +99,13 @@ The Operaton web applications are based on a RESTful architecture.
Frameworks used:
-* [JAX-RS](https://jax-rs-spec.java.net) based REST API
-* [AngularJS](http://angularjs.org)
-* [RequireJS](http://requirejs.org)
-* [jQuery](http://jquery.com)
-* [Twitter Bootstrap](http://getbootstrap.com)
+* [JAX-RS / Jakarta REST](https://jakarta.ee/specifications/restful-ws/) based REST API
+* [AngularJS](https://angularjs.org)
+* [RequireJS](https://requirejs.org)
+* [jQuery](https://jquery.com)
+* [Twitter Bootstrap](https://getbootstrap.com)
Additional custom frameworks developed by Operaton hackers:
-* [operaton-bpmn.js](https://github.com/operaton/operaton-bpmn.js): Operaton BPMN 2.0 JavaScript libraries
* [ngDefine](https://github.com/Nikku/requirejs-angular-define): integration of AngularJS into RequireJS powered applications
* [angular-data-depend](https://github.com/Nikku/angular-data-depend): toolkit for implementing complex, data heavy AngularJS applications
diff --git a/docs/documentation/introduction/index.md b/docs/documentation/introduction/index.md
index 2c323957..e50d07a1 100644
--- a/docs/documentation/introduction/index.md
+++ b/docs/documentation/introduction/index.md
@@ -30,7 +30,7 @@ To give you an overview of Operaton, the following illustration shows the most i
## Modeler
* [Operaton Modeler](../modeling-bpmn/index.md): Modeling tool for BPMN 2.0 and CMMN 1.1 diagrams as well as DMN 1.3 decision tables.
-* [bpmn.io](http://bpmn.io/): Open-source project for the modeling framework and toolkits.
+* [bpmn.io](https://bpmn.io/): Open-source project for the modeling framework and toolkits.
## Web Applications
diff --git a/docs/documentation/introduction/public-api.md b/docs/documentation/introduction/public-api.md
index 38ecccde..2d1cac37 100644
--- a/docs/documentation/introduction/public-api.md
+++ b/docs/documentation/introduction/public-api.md
@@ -40,4 +40,4 @@ HTTP API (REST API):
## Backwards Compatibility for Public API
-The Operaton versioning scheme follows the MAJOR.MINOR.PATCH pattern put forward by [Semantic Versioning](http://semver.org/). Operaton will maintain public API backwards compatibility for MINOR version updates. Example: Update from version `7.1.x` to `7.2.x` will not break the public API.
+The Operaton versioning scheme follows the MAJOR.MINOR.PATCH pattern put forward by [Semantic Versioning](https://semver.org/). Operaton will maintain public API backwards compatibility for MINOR version updates. Example: Update from version `7.1.x` to `7.2.x` will not break the public API.
diff --git a/docs/documentation/introduction/third-party-libraries/index.md b/docs/documentation/introduction/third-party-libraries/index.md
index bcbbb981..ed41ee77 100644
--- a/docs/documentation/introduction/third-party-libraries/index.md
+++ b/docs/documentation/introduction/third-party-libraries/index.md
@@ -15,12 +15,3 @@ This section covers third party libraries and their use in Operaton. It provides
For selected third-party libraries that we consider especially noteworthy, this page describes their license terms and use in the Operaton artifacts.
For legal reference and any other license-related aspects please refer to [Licences](../licenses.md).
-
-
-## Web Applications (Cockpit, Tasklist, Admin)
-
-### XLTS for AngularJS
-
-Starting with versions 7.18.0-alpha2, 7.17.2, 7.16.9, 7.15.15, the Operaton web applications use a set of third-party libraries referred to as *XLTS for AngularJS* (technical names: `angular`, `angular-animate`, `angular-cookies`, `angular-loader`, `angular-mocks`, `angular-resource`, `angular-route`, `angular-sanitize`, `angular-touch`). XLTS for AngularJS follows a proprietary license called *EULA for the downstream recipient of XLTS for AngularJS* (short *XLTS for AngularJS – EULA*) that you can find [here](https://xlts.dev/angularjs/downstream-eula).
-
-This license imposes restrictions around distributing and reverse-engineering XLTS for AngularJS independently of Operaton artifacts. The license does otherwise not restrict how you can use and distribute the Operaton artifacts that include XLTS for AngularJS. You can find our rationale for using this library in [our blog post on ensuring the long-term maintenance of Operaton](https://camunda.com/blog/2022/02/ensuring-continuous-support-of-angularjs-in-operaton-platform-7-17/).
diff --git a/docs/documentation/reference/bpmn20/custom-extensions/extension-attributes.md b/docs/documentation/reference/bpmn20/custom-extensions/extension-attributes.md
index c1a00f67..253a39c5 100644
--- a/docs/documentation/reference/bpmn20/custom-extensions/extension-attributes.md
+++ b/docs/documentation/reference/bpmn20/custom-extensions/extension-attributes.md
@@ -823,7 +823,7 @@ The following attributes are extension attributes for the `camunda` namespace `h
| Possible Values |
- An expression which evaluates to a java.util.Date, java.util.String (ISO 8601 formatted) or null, e.g., ```${dateVariable```
+ An expression which evaluates to a java.util.Date, java.util.String (ISO 8601 formatted) or null, e.g., ```${dateVariable```
|
@@ -1112,7 +1112,7 @@ The following attributes are extension attributes for the `camunda` namespace `h
| Possible Values |
- An expression which evaluates to a java.util.Date, java.util.String (ISO 8601 formatted) or null, e.g., ```${dateVariable```
+ An expression which evaluates to a java.util.Date, java.util.String (ISO 8601 formatted) or null, e.g., ```${dateVariable```
|
diff --git a/docs/documentation/reference/bpmn20/events/timer-events.md b/docs/documentation/reference/bpmn20/events/timer-events.md
index 771f8cf0..d5c5df3d 100644
--- a/docs/documentation/reference/bpmn20/events/timer-events.md
+++ b/docs/documentation/reference/bpmn20/events/timer-events.md
@@ -39,7 +39,7 @@ Example:
### Time Duration
-To specify how long the timer should run before it is fired, a timeDuration can be specified as a sub-element of timerEventDefinition. It is possible to define the duration in two different [ISO 8601 Durations](http://en.wikipedia.org/wiki/ISO_8601#Durations) formats:
+To specify how long the timer should run before it is fired, a timeDuration can be specified as a sub-element of timerEventDefinition. It is possible to define the duration in two different [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) formats:
- PnYnMnDTnHnMnS
- PnW
@@ -55,7 +55,7 @@ Example (interval lasting 10 days):
### Time Cycle
-Specifies repeating intervals, which can be useful for starting process periodically, or for sending multiple reminders for overdue user tasks. A time cycle element can be in two formats. One option is the format of recurring [time duration](#time-duration), as specified by the [ISO 8601 Repeating Intervals](http://en.wikipedia.org/wiki/ISO_8601#Repeating_intervals) standard.
+Specifies repeating intervals, which can be useful for starting process periodically, or for sending multiple reminders for overdue user tasks. A time cycle element can be in two formats. One option is the format of recurring [time duration](#time-duration), as specified by the [ISO 8601 Repeating Intervals](https://en.wikipedia.org/wiki/ISO_8601#Repeating_intervals) standard.
Example (3 repeating intervals, each lasting 10 hours):
@@ -71,7 +71,7 @@ Additionally, you can specify a time cycle using cron expressions, the example b
0 0/5 * * * ?
```
-Please see the CronTrigger Tutorial for additional information about using cron expressions.
+Please see the CronTrigger Tutorial for additional information about using cron expressions.
Note: The first symbol denotes seconds, not minutes as in normal Unix cron.
diff --git a/docs/documentation/reference/cmmn11/custom-extensions/operaton-attributes.md b/docs/documentation/reference/cmmn11/custom-extensions/operaton-attributes.md
index 2390f800..a5c11b46 100644
--- a/docs/documentation/reference/cmmn11/custom-extensions/operaton-attributes.md
+++ b/docs/documentation/reference/cmmn11/custom-extensions/operaton-attributes.md
@@ -386,7 +386,7 @@ The following attributes are extension attributes for the `operaton` namespace `
| Possible Values |
- An expression which evaluates to a java.util.Date, java.util.String (ISO 8601 formatted) or null, e.g., ```${dueDate```
+ An expression which evaluates to a java.util.Date, java.util.String (ISO 8601 formatted) or null, e.g., ```${dueDate```
|
diff --git a/docs/documentation/reference/forms/embedded-forms/controls/date-inputs.md b/docs/documentation/reference/forms/embedded-forms/controls/date-inputs.md
index 48ddb223..4dc8febb 100644
--- a/docs/documentation/reference/forms/embedded-forms/controls/date-inputs.md
+++ b/docs/documentation/reference/forms/embedded-forms/controls/date-inputs.md
@@ -41,7 +41,7 @@ The Form SDK itself does not provide any custom components or widgets. As such i
Inside Operaton Tasklist, datepicker support is provided through Angular UI.
:::
-You can use the [Angular UI datepicker](http://angular-ui.github.io/bootstrap/)
+You can use the [Angular UI datepicker](https://angular-ui.github.io/bootstrap/)
directive to offer a datepicker for the date input field. The complete markup of the input field
including the datepicker button is shown below.
diff --git a/docs/documentation/reference/forms/embedded-forms/integrate/full-examples.md b/docs/documentation/reference/forms/embedded-forms/integrate/full-examples.md
index 0ad918e8..381ebc75 100644
--- a/docs/documentation/reference/forms/embedded-forms/integrate/full-examples.md
+++ b/docs/documentation/reference/forms/embedded-forms/integrate/full-examples.md
@@ -10,7 +10,6 @@ menu:
---
-Full examples of how to integrate the Forms SDK in a custom application can be found in the [Operaton Examples Repository](https://github.com/operaton/operaton-bpm-examples) on GitHub.
+Current form examples are maintained in the [Operaton Examples Repository](https://github.com/operaton/operaton-examples) on GitHub.
-* [Example for standalone usage of the SDK](https://github.com/operaton/operaton-bpm-examples/tree/master/sdk-js/browser-forms)
-* [Example for standalone usage of the SDK with AngularJS Integration](https://github.com/operaton/operaton-bpm-examples/tree/master/sdk-js/browser-forms-angular)
+* [User task forms example](https://github.com/operaton/operaton-examples/tree/main/examples/user-task-forms)
diff --git a/docs/documentation/reference/forms/embedded-forms/integrate/getting-a-distribution.md b/docs/documentation/reference/forms/embedded-forms/integrate/getting-a-distribution.md
index b5c6f0a0..70e2eef4 100644
--- a/docs/documentation/reference/forms/embedded-forms/integrate/getting-a-distribution.md
+++ b/docs/documentation/reference/forms/embedded-forms/integrate/getting-a-distribution.md
@@ -10,19 +10,14 @@ menu:
---
-# Manual Download
+# Source
-The Forms SDK library can be downloaded from
-[GitHub](https://github.com/operaton/bower-operaton-bpm-sdk-js/releases).
+The Forms SDK source is maintained in the
+[Operaton repository](https://github.com/operaton/operaton/tree/main/webapps/frontend/operaton-bpm-sdk-js).
-
-# Bower
-
-Alternatively, the Forms SDK can be installed using the Bower package manager:
-
-```
-bower install operaton-bpm-sdk-js --save
-```
+Operaton does not currently publish a standalone Bower package or a separate Bower release repository.
+Use the SDK files from your Operaton distribution, or build them from the source tree when embedding
+forms in a custom application.
# Dependency Management
diff --git a/docs/documentation/reference/rest/overview/authentication.md b/docs/documentation/reference/rest/overview/authentication.md
index 5e4cb923..a0a84b99 100644
--- a/docs/documentation/reference/rest/overview/authentication.md
+++ b/docs/documentation/reference/rest/overview/authentication.md
@@ -6,7 +6,7 @@ sidebar_position: 10
---
-The REST API ships with an implementation of [HTTP Basic Authentication](http://en.wikipedia.org/wiki/Basic_access_authentication). By default it is switched off, but can be activated by adding a servlet filter as follows:
+The REST API ships with an implementation of [HTTP Basic Authentication](https://en.wikipedia.org/wiki/Basic_access_authentication). By default it is switched off, but can be activated by adding a servlet filter as follows:
```xml
@@ -38,7 +38,7 @@ The authentication provider is exchangeable. You can implement the interface `or
The authentication filter works fine whenever the JAX-RS application containing the REST API is deployed as a servlet. This is not necessarily the case. One such case we are aware of is with some types of RESTEasy deployments:
-RESTEasy allows deployment of a JAX-RS application as a servlet filter (see the [RESTEasy docs](http://docs.jboss.org/resteasy/docs/2.3.5.Final/userguide/html/Installation_Configuration.html#filter)). If you choose this method to deploy the REST API application, which we also do in the Tomcat distribution, the authentication filter requires an extra init-param named `rest-url-pattern-prefix`. The value has to correspond to the servlet path (see [HttpServletRequest#getServletPath()](http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html#getServletPath%28%29)) as in the case that the JAX-RS application is deployed as a servlet.
+RESTEasy allows deployment of a JAX-RS application as a servlet filter (see the [RESTEasy docs](https://docs.jboss.org/resteasy/docs/2.3.5.Final/userguide/html/Installation_Configuration.html#filter)). If you choose this method to deploy the REST API application, which we also do in the Tomcat distribution, the authentication filter requires an extra init-param named `rest-url-pattern-prefix`. The value has to correspond to the servlet path (see [HttpServletRequest#getServletPath()](https://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html#getServletPath%28%29)) as in the case that the JAX-RS application is deployed as a servlet.
Example: If the RESTEasy configuration is
diff --git a/docs/documentation/reference/rest/overview/hal.md b/docs/documentation/reference/rest/overview/hal.md
index 73823d00..3cb75a69 100644
--- a/docs/documentation/reference/rest/overview/hal.md
+++ b/docs/documentation/reference/rest/overview/hal.md
@@ -11,7 +11,7 @@ menu:
---
The REST API provides some resources in an additional media type. The
-[HAL](http://stateless.co/hal_specification.html) media type `application/hal+json` describes a format which contains
+[HAL](https://datatracker.ietf.org/doc/html/draft-kelly-json-hal-08) media type `application/hal+json` describes a format which contains
links and information about other resources. This allows us to embed the
process definition or assignee of a task directly into the response, which in turn
reduces the number of necessary requests to gather all information about a
diff --git a/docs/documentation/reference/rest/overview/index.md b/docs/documentation/reference/rest/overview/index.md
index 988744eb..06792911 100644
--- a/docs/documentation/reference/rest/overview/index.md
+++ b/docs/documentation/reference/rest/overview/index.md
@@ -354,4 +354,4 @@ You can look up the meaning of all built-in codes and learn how to add custom co
## Authentication
-The REST API ships with an implementation of [HTTP Basic Authentication](http://en.wikipedia.org/wiki/Basic_access_authentication). By default it is switched off (in the rest-api web application and therefore also in the pre-built Operaton distributions). You can activate it by adding a servlet filter as described in the [Authentication](authentication.md) section.
+The REST API ships with an implementation of [HTTP Basic Authentication](https://en.wikipedia.org/wiki/Basic_access_authentication). By default it is switched off (in the rest-api web application and therefore also in the pre-built Operaton distributions). You can activate it by adding a servlet filter as described in the [Authentication](authentication.md) section.
diff --git a/docs/documentation/reference/spin/json/03-querying-json.md b/docs/documentation/reference/spin/json/03-querying-json.md
index d68aa040..cf0a4f66 100644
--- a/docs/documentation/reference/spin/json/03-querying-json.md
+++ b/docs/documentation/reference/spin/json/03-querying-json.md
@@ -10,7 +10,7 @@ menu:
---
-The JSON datatype supports querying with the [JSONPath](http://goessner.net/articles/JsonPath/) query language.
+The JSON datatype supports querying with the [JSONPath](https://goessner.net/articles/JsonPath/) query language.
## Querying an Element
diff --git a/docs/documentation/reference/spin/json/05-configuring-json.md b/docs/documentation/reference/spin/json/05-configuring-json.md
index a421e76c..20a8cc00 100644
--- a/docs/documentation/reference/spin/json/05-configuring-json.md
+++ b/docs/documentation/reference/spin/json/05-configuring-json.md
@@ -10,6 +10,6 @@ menu:
---
-Spin can be configured to change JSON parsing, writing and mapping settings, for example to tolerate documents that are not strictly compliant to the standard. Spin uses [Jackson](http://wiki.fasterxml.com/JacksonHome) to handle JSON. The JSON data format therefore uses an instance of `com.fasterxml.jackson.databind.ObjectMapper` that can be configured using Spin's [configuration mechanism](../../../reference/spin/extending-spin.md#configuring-data-formats).
+Spin can be configured to change JSON parsing, writing and mapping settings, for example to tolerate documents that are not strictly compliant to the standard. Spin uses [Jackson](https://github.com/FasterXML/jackson) to handle JSON. The JSON data format therefore uses an instance of `com.fasterxml.jackson.databind.ObjectMapper` that can be configured using Spin's [configuration mechanism](../../../reference/spin/extending-spin.md#configuring-data-formats).
The data format class to register a configurator for is `org.operaton.spin.impl.json.jackson.format.JacksonJsonDataFormat`. An instance of this class provides a setter for an `ObjectMapper` that can be used to replace the default object mapper. This logic goes into a configurator class that implements the interface `org.operaton.spin.spi.DataFormatConfigurator`. Please refer to the [Jackson's documentation](https://fasterxml.github.io/jackson-databind/javadoc/2.4/) on what configuration options are available.
diff --git a/docs/documentation/reference/spin/xml/06-configuring-xml.md b/docs/documentation/reference/spin/xml/06-configuring-xml.md
index af5efdb4..628b1d1d 100644
--- a/docs/documentation/reference/spin/xml/06-configuring-xml.md
+++ b/docs/documentation/reference/spin/xml/06-configuring-xml.md
@@ -20,7 +20,7 @@ the `JAXBContext`. Spin uses and caches the context to improve performance.
The data format class to register a configurator for is `org.operaton.spin.impl.xml.dom.format.DomXmlDataFormat`.
An instance of this class provides setter methods (for the entities mentioned above) that can be used to replace the
-default object mapper. Refer to the [JDK documentation](http://docs.oracle.com/javase/8/docs/api/) on what
+default object mapper. Refer to the [JDK documentation](https://docs.oracle.com/javase/8/docs/api/) on what
configuration can be applied.
## Safe XML processing
diff --git a/docs/documentation/user-guide/dmn-engine/embed.md b/docs/documentation/user-guide/dmn-engine/embed.md
index a45ca0b5..a74a2a94 100644
--- a/docs/documentation/user-guide/dmn-engine/embed.md
+++ b/docs/documentation/user-guide/dmn-engine/embed.md
@@ -327,19 +327,19 @@ configuration.setScriptEngineResolver(new MyScriptEngineResolver());
The DMN engine uses [SLF4J] as logging API. The `operaton-dmn-engine` artifact
does not have a dependency to any of the existing [SLF4J] backends. This means that
-you can choose which backend you want to use. One example would be [LOGBack], or
+you can choose which backend you want to use. One example would be [Logback], or
if you want to use Java util logging, you could use the `slf4j-jdk14` artifact.
For more information on how to configure and use SLF4J, please refer to the
[user manual].
[evaluation listener]: DmnDecisionTableEvaluationListener Interface
-[DMN model API]: https://github.com/operaton/operaton-dmn-model
+[DMN model API]: ../model-api/dmn-model-api/
[data types]: ../../user-guide/dmn-engine/data-types.md
[hit policies]: ../reference/dmn/decision-table/hit-policy.md
-[SLF4J]: http://www.slf4j.org/
-[LOGBack]: http://logback.qos.ch/
-[user manual]: http://www.slf4j.org/manual.html
+[SLF4J]: https://www.slf4j.org/
+[Logback]: https://logback.qos.ch/
+[user manual]: https://www.slf4j.org/manual.html
[DMN decision table]: ../reference/dmn/decision-table/index.md
[DMN decision literal expression]: ../reference/dmn/decision-literal-expression/index.md
[expressions]: ../../user-guide/dmn-engine/expressions-and-scripts.md
diff --git a/docs/documentation/user-guide/dmn-engine/evaluate-decisions.md b/docs/documentation/user-guide/dmn-engine/evaluate-decisions.md
index 09787062..92a3dafa 100644
--- a/docs/documentation/user-guide/dmn-engine/evaluate-decisions.md
+++ b/docs/documentation/user-guide/dmn-engine/evaluate-decisions.md
@@ -244,7 +244,7 @@ decisionResult.getSingleEntry();
```
Note that the decision can also be evaluated using the
-evaluateDecisionTable() method if it is implemented as [decision table]. In this case, evaluation returns a DmnDecisionTableResult which is semantically equal and provides the same methods as a
+evaluateDecisionTable() method if it is implemented as [decision table]. In this case, evaluation returns a DmnDecisionTableResult which is semantically equal and provides the same methods as a
`DmnDecisionResult`.
### Decisions with Required Decisions
diff --git a/docs/documentation/user-guide/dmn-engine/expressions-and-scripts.md b/docs/documentation/user-guide/dmn-engine/expressions-and-scripts.md
index 0509947e..fdcd5947 100644
--- a/docs/documentation/user-guide/dmn-engine/expressions-and-scripts.md
+++ b/docs/documentation/user-guide/dmn-engine/expressions-and-scripts.md
@@ -203,11 +203,11 @@ the script engine before using it.
[decision table]: ../../reference/dmn/decision-table/index.md
[decision literal expression]: ../../reference/dmn/decision-literal-expression/index.md
-[juel]: http://juel.sourceforge.net/
+[juel]: https://juel.sourceforge.net/
[EL]: https://jakarta.ee/specifications/expression-language/4.0/
-[DMN 1.2]: http://www.omg.org/spec/DMN/
-[Rhino]: https://developer.mozilla.org/de/docs/Rhino
-[Nashorn]: https://blogs.oracle.com/nashorn/
+[DMN 1.2]: https://www.omg.org/spec/DMN/
+[Rhino]: https://rhino.github.io/
+[Nashorn]: https://openjdk.org/projects/nashorn/
[JSR-223]: https://www.jcp.org/en/jsr/detail?id=223
[default EL]: ../../user-guide/dmn-engine/embed.md#change-default-expression-languages
[configure EL]: ../../user-guide/dmn-engine/embed.md#customize-expression-and-script-resolving
diff --git a/docs/documentation/user-guide/ext-client/spring-boot-starter.md b/docs/documentation/user-guide/ext-client/spring-boot-starter.md
index 5d9be4c3..8b208be3 100644
--- a/docs/documentation/user-guide/ext-client/spring-boot-starter.md
+++ b/docs/documentation/user-guide/ext-client/spring-boot-starter.md
@@ -16,7 +16,7 @@ your `pom.xml` file:
```
-Please check out our [External Task Client Spring Boot Starter Examples](https://github.com/operaton/operaton-bpm-examples/tree/{{}}#external-task-client-spring-boot).
+Please check out the current [external task worker example](https://github.com/operaton/operaton-examples/tree/main/examples/external-task-worker).
The Client can subscribe to one or more topic names that are defined in your BPMN process model.
When the execution waits in an External Task, the Client executes your custom business logic.
diff --git a/docs/documentation/user-guide/logging.md b/docs/documentation/user-guide/logging.md
index 7775e83a..b1f76cbd 100644
--- a/docs/documentation/user-guide/logging.md
+++ b/docs/documentation/user-guide/logging.md
@@ -121,7 +121,7 @@ An example using Logback could look as follows
```
By adding the `context:[%X]` to your configuration, all values that are present in the MDC at the time the log statement is created will be displayed.
-Please refer to the manual of your logging framework for further information on how to access the MDC, e.g. the [Logback documentation](http://logback.qos.ch/manual/layouts.html#mdc).
+Please refer to the manual of your logging framework for further information on how to access the MDC, e.g. the [Logback documentation](https://logback.qos.ch/manual/layouts.html#mdc).
## Logging Categories
@@ -309,7 +309,7 @@ Here is an example of how the server log will look like:
25-Nov-2019 15:17:17.076 FINE [thread-2] o.a.i.l.j.BaseJdbcLogger.debug ==> Parameters: 2(Integer), Dev-Department(String), DEV(String), development(String), 1(Integer)
```
-To enable the logging for a specific database entity, please provide the namespace of the MyBatis mapper ([all mappers](https://github.com/operaton/operaton/tree/master/engine/src/main/resources/org/operaton/bpm/engine/impl/mapping/entity)). Usually it is the full class name of that entity, e.g.:
+To enable the logging for a specific database entity, please provide the namespace of the MyBatis mapper ([all mappers](https://github.com/operaton/operaton/tree/main/engine/src/main/resources/org/operaton/bpm/engine/impl/mapping/entity)). Usually it is the full class name of that entity, e.g.:
* `org.operaton.bpm.engine.impl.batch.BatchEntity`
* `org.operaton.bpm.engine.impl.persistence.entity.JobEntity`
@@ -341,7 +341,7 @@ The server log will contain logs similar to:
25-Nov-2019 15:45:27.706 FINE [Thread-6] o.c.c.l.BaseLogger.logDebug ENGINE-13006 Finishing command -------------------- AcquireJobsCmd ----------------------
```
-Find more information for Diagnosing the Job Executor in this blog post - [The Job Executor: What Is Going on in My Process Engine?](https://blog.camunda.com/post/2019/10/job-executor-what-is-going-on-in-my-process-engine/).
+For more background on job acquisition and execution, see [The Job Executor](process-engine/the-job-executor.md).
#### Diagnosing Deadlocks
@@ -398,7 +398,7 @@ List of modules still using Java Util Logging:
* operaton-engine-rest
* Wildfly Subsystems
-[slf4j]: http://www.slf4j.org/
-[log4j]: http://logging.apache.org/log4j/
-[logback]: http://logback.qos.ch/
-[slf4j-backends]: http://www.slf4j.org/manual.html#projectDep
+[slf4j]: https://www.slf4j.org/
+[log4j]: https://logging.apache.org/log4j/2.x/
+[logback]: https://logback.qos.ch/
+[slf4j-backends]: https://www.slf4j.org/manual.html#projectDep
diff --git a/docs/documentation/user-guide/model-api/bpmn-model-api/fluent-builder-api.md b/docs/documentation/user-guide/model-api/bpmn-model-api/fluent-builder-api.md
index ba368da3..f7da63f7 100644
--- a/docs/documentation/user-guide/model-api/bpmn-model-api/fluent-builder-api.md
+++ b/docs/documentation/user-guide/model-api/bpmn-model-api/fluent-builder-api.md
@@ -11,7 +11,7 @@ menu:
---
To create simple BPMN processes we provide a fluent builder API. With this API you can easily create basic
-processes in a few lines of code. In the [generate process fluent api](https://github.com/operaton/operaton-bpm-examples/tree/master/bpmn-model-api/generate-process-fluent-api) quickstart we
+processes in a few lines of code. In the [generate process fluent API](https://github.com/operaton/operaton-examples/tree/main/examples/bpmn-model-api-generate) quickstart we
demonstrate how to create a rather complex process with 5 tasks and 2 gateways within less than 50 lines of code.
The fluent builder API is not nearly complete but provides you with the following basic elements:
diff --git a/docs/documentation/user-guide/operaton-bpm-run.md b/docs/documentation/user-guide/operaton-bpm-run.md
index 3e110d8e..27f8b1e1 100644
--- a/docs/documentation/user-guide/operaton-bpm-run.md
+++ b/docs/documentation/user-guide/operaton-bpm-run.md
@@ -9,7 +9,7 @@ This guide gives an introduction to Operaton Run, a pre-packaged, lightweight di
## Prerequisites and audience
-To use this guide, you should at least know what Operaton is and what it does. Check out the [Get Started guides](https://docs.operaton.org/get-started/quick-start/) if you have never used Operaton before. The [Installation guide](../installation/operaton-bpm-run.md) is also worth looking at if you are completely new to Operaton.
+To use this guide, you should at least know what Operaton is and what it does. Check out the [Get Started guides](/docs/get-started/quick-start/) if you have never used Operaton before. The [Installation guide](../installation/operaton-bpm-run.md) is also worth looking at if you are completely new to Operaton.
This guide will teach you about Operaton Run and how to configure it. It can serve as a reference page for configuration and operation options. It will not give you a step-by-step guide on how to install Operaton Run. Head over to the [Installation guide](../installation/operaton-bpm-run.md) for details on how to install and start Operaton Run.
@@ -176,7 +176,7 @@ Deployments via the restref page="createDeployment" text="REST API" tag="Deploym
Just like all the other distros, you can tailor Operaton Run to your needs. To do this, you only have to edit one of the [configuration files](#choose-between-default-and-production-configuration) that you can find in the configuration folder.
:::note[Note:]
-Operaton Run is based on the [Operaton Spring Boot Starter](https://github.com/operaton/operaton/tree/master/spring-boot-starter).
+Operaton Run is based on the [Operaton Spring Boot Starter](https://github.com/operaton/operaton/tree/main/spring-boot-starter).
All [configuration properties](spring-boot-integration/configuration.mdx#operaton-engine-properties) from the operaton-spring-boot-starter are available to customize Operaton Run.
:::
diff --git a/docs/documentation/user-guide/process-engine/connectors.md b/docs/documentation/user-guide/process-engine/connectors.md
index a15e565c..0e720e92 100644
--- a/docs/documentation/user-guide/process-engine/connectors.md
+++ b/docs/documentation/user-guide/process-engine/connectors.md
@@ -11,7 +11,7 @@ menu:
---
-With the dependency [operaton-connect](https://github.com/operaton/operaton/tree/master/connect), the process engine supports simple
+With the dependency [operaton-connect](https://github.com/operaton/operaton/tree/main/connect), the process engine supports simple
connectors. Currently the following connector implementations exist:
@@ -126,7 +126,7 @@ This artifact contains the HTTP and SOAP connectors as well as their dependencie
To use a connector, you have to add the Operaton extension element [connector](../../reference/bpmn20/custom-extensions/extension-elements.md#connector). The connector is configured by a unique [connectorId](../../reference/bpmn20/custom-extensions/extension-elements.md#connectorid), which specifies the used connector implementation. The ids of the currently supported connectors can be found at the beginning of this section. Additionally, an [input/output mapping](../process-engine/variables.md#inputoutput-variable-mapping) is used to configure the connector. The required input parameters and the available output parameters depend on the connector implementation. Additional input parameters can also be provided to be used within the connector.
-As an example, a shortened configuration of the Operaton SOAP connector implementation is shown. A complete [example](https://github.com/operaton/operaton-bpm-examples/tree/master/servicetask/soap-service) can be found in the [Operaton examples repository](https://github.com/operaton/operaton-bpm-examples) on GitHub.
+As an example, a shortened configuration of the Operaton SOAP connector implementation is shown. A current [connector example](https://github.com/operaton/operaton-examples/tree/main/examples/integration-connectors) can be found in the Operaton examples repository on GitHub.
```xml
@@ -155,4 +155,4 @@ As an example, a shortened configuration of the Operaton SOAP connector implemen
```
-A full [example](https://github.com/operaton/operaton-bpm-examples/tree/master/servicetask/rest-service) of the REST connector can also be found in the [Operaton examples repository](https://github.com/operaton/operaton-bpm-examples) on GitHub.
+A current [connector example](https://github.com/operaton/operaton-examples/tree/main/examples/integration-connectors) can also be found in the Operaton examples repository on GitHub.
diff --git a/docs/documentation/user-guide/process-engine/database/database-configuration.md b/docs/documentation/user-guide/process-engine/database/database-configuration.md
index 2d836a90..531108c8 100644
--- a/docs/documentation/user-guide/process-engine/database/database-configuration.md
+++ b/docs/documentation/user-guide/process-engine/database/database-configuration.md
@@ -16,7 +16,7 @@ There are two ways to configure the database that the Operaton engine will use.
* `jdbcUsername`: username to connect to the database.
* `jdbcPassword`: password to connect to the database.
-Note that the engine uses [Apache MyBatis](http://www.mybatis.org/) internally for persistence.
+Note that the engine uses [Apache MyBatis](https://mybatis.org/mybatis-3/) internally for persistence.
The data source that is constructed based on the provided JDBC properties will have the default MyBatis connection pool settings. The following attributes can optionally be set to tweak that connection pool (taken from the MyBatis documentation):
diff --git a/docs/documentation/user-guide/process-engine/decisions/decision-service.md b/docs/documentation/user-guide/process-engine/decisions/decision-service.md
index e028a29a..58f4d3a5 100644
--- a/docs/documentation/user-guide/process-engine/decisions/decision-service.md
+++ b/docs/documentation/user-guide/process-engine/decisions/decision-service.md
@@ -102,7 +102,7 @@ Note that the decision result also provides methods to get typed output entries.
A complete list of all methods can be found in the [Java Docs](https://docs.operaton.org/reference/latest/javadoc/org/operaton/bpm/dmn/engine/DmnDecisionResult.html).
If the decision is implemented as [decision table] then it can also be evaluated using one of the
-evaluateDecisionTable methods. In this case, the evaluation returns a DmnDecisionTableResult which is semantically equal and provide the same methods as a
+evaluateDecisionTable methods. In this case, the evaluation returns a DmnDecisionTableResult which is semantically equal and provide the same methods as a
`DmnDecisionResult`.
## History of Evaluated Decisions
diff --git a/docs/documentation/user-guide/process-engine/diagnostics-data.md b/docs/documentation/user-guide/process-engine/diagnostics-data.md
index 93094d8b..fa4d9033 100644
--- a/docs/documentation/user-guide/process-engine/diagnostics-data.md
+++ b/docs/documentation/user-guide/process-engine/diagnostics-data.md
@@ -11,7 +11,7 @@ menu:
---
Diagnostics data is constantly collected and can be collected only by you. This allows you to access the collected data through the Java and REST APIs of Operaton.
-Being able to easily access the collected data is helpful when asking for help in our [forum](https://forum.operaton.org/) or when opening issues in our [issue tracker](https://app.camunda.com/jira) as it contains many of the information that are usually necessary to understand your Operaton setup.
+Being able to easily access the collected data is helpful when asking for help in our [forum](https://forum.operaton.org/) or when opening issues in our [issue tracker](https://github.com/operaton/operaton/issues), as it contains much of the information that is usually necessary to understand your Operaton setup.
## How to access the data
@@ -116,4 +116,4 @@ The counts are collected from the start of the engine or the last reported time
## Source code
-In case you want further details, you can have a look at the implementation of the diagnostics topic in [our codebase](https://github.com/operaton/operaton/blob/master/engine/src/main/java/org/operaton/bpm/engine/impl/diagnostics/DiagnosticsCollector.java). The link leads you to the current `master` version of the feature.
+In case you want further details, you can have a look at the implementation of the diagnostics topic in [our codebase](https://github.com/operaton/operaton/blob/main/engine/src/main/java/org/operaton/bpm/engine/impl/diagnostics/DiagnosticsCollector.java). The link leads you to the current `main` version of the feature.
diff --git a/docs/documentation/user-guide/process-engine/error-handling.md b/docs/documentation/user-guide/process-engine/error-handling.md
index c32189a8..bc61c8ad 100644
--- a/docs/documentation/user-guide/process-engine/error-handling.md
+++ b/docs/documentation/user-guide/process-engine/error-handling.md
@@ -84,7 +84,7 @@ for (Job failedJob : failedJobs) {
### Explicit Modeling
-Of course you can always explicitly model a retry mechanism as pointed out in [Where is the retry in BPMN 2.0](http://www.bpm-guide.de/2012/06/15/where-is-the-retry-in-bpmn-2-0/):
+Of course you can always explicitly model a retry mechanism:
Retry Mechanism
diff --git a/docs/documentation/user-guide/process-engine/expression-language.md b/docs/documentation/user-guide/process-engine/expression-language.md
index 3e9d9637..46fa0278 100644
--- a/docs/documentation/user-guide/process-engine/expression-language.md
+++ b/docs/documentation/user-guide/process-engine/expression-language.md
@@ -361,7 +361,7 @@ Special built-in context functions are available while evaluating expressions:
DateTime |
Returns a Joda-Time DateTime object of the current date. Please see the
- Joda-Time
+ Joda-Time
documentation for all available functions.
|
@@ -387,7 +387,7 @@ If the Operaton Spin process engine plugin is activated, the Spin functions `S`,
[JakartaEL](https://jakarta.ee/specifications/expression-language/4.0/)
-[JUEL](http://juel.sourceforge.net/)
+[JUEL](https://juel.sourceforge.net/)
[official documentation](https://jakarta.ee/specifications/expression-language/4.0/jakarta-expression-language-spec-4.0.html)
[variables](#availability-of-variables-and-functions-inside-expression-language)
[Spring](../spring-framework-integration/index.md)
diff --git a/docs/documentation/user-guide/process-engine/history/custom-implementation.md b/docs/documentation/user-guide/process-engine/history/custom-implementation.md
index ed5a6ca3..1aa8ea05 100644
--- a/docs/documentation/user-guide/process-engine/history/custom-implementation.md
+++ b/docs/documentation/user-guide/process-engine/history/custom-implementation.md
@@ -86,8 +86,6 @@ handles such history events. If the method returns `false`, the engine will not
any history events of this type again. This means that if your history level only wants to generate the history
event for some instances of an event it must still return `true` if `entity` is `null`.
-Please have a look at this [complete example][2] to get a better overview.
-
### Removal time inheritance
Historic instances inherit the removal time from the respective historic top-level
instance. If the custom history level is configured in a way, so that the historic top-level instance is not written,
@@ -115,5 +113,4 @@ public boolean isHistoryEventProduced(HistoryEventType eventType, Object entity)
-[1]: http://docs.operaton.org/latest/api-references/javadoc/org/operaton/bpm/engine/impl/history/event/HistoryEventTypes.html
-[2]: https://github.com/operaton/operaton-bpm-examples/tree/master/process-engine-plugin/custom-history-level
\ No newline at end of file
+[1]: https://docs.operaton.org/reference/latest/javadoc/org/operaton/bpm/engine/impl/history/event/HistoryEventTypes.html
diff --git a/docs/documentation/user-guide/process-engine/multi-tenancy.md b/docs/documentation/user-guide/process-engine/multi-tenancy.md
index 2d27bb76..31cd1dd5 100644
--- a/docs/documentation/user-guide/process-engine/multi-tenancy.md
+++ b/docs/documentation/user-guide/process-engine/multi-tenancy.md
@@ -28,10 +28,7 @@ Note that transparent tenant separation is not implemented for all APIs. For exa
It is also possible for all tenants to share the same process and decision definitions without deploying them for each tenant. Shared definitions can simplify management of the deployments in case of a larger amount of tenants.
:::note[Examples]
-Find [examples on GitHub](https://github.com/operaton/operaton-bpm-examples) that show how to use tenant-identifiers with
-
-* [Embedded Process Engine](https://github.com/operaton/operaton-bpm-examples/tree/master/multi-tenancy/tenant-identifier-embedded)
-* [Shared Process Engine](https://github.com/operaton/operaton-bpm-examples/tree/master/multi-tenancy/tenant-identifier-shared)
+Find a current [multi-tenancy example](https://github.com/operaton/operaton-examples/tree/main/examples/multi-tenancy) on GitHub that shows tenant identifiers with a shared engine.
:::
@@ -341,10 +338,6 @@ Then, when a new instance is created by a particular tenant, it should be only
This can be achieved by a usage pattern we call "Shared Definitions".
By the term *usage pattern* we mean that it is not a feature of Operaton per se but rather a specific way to use it to achieve the desired behavior.
-:::note[Example]
-You can find an [example](https://github.com/operaton/operaton-bpm-examples/tree/master/multi-tenancy/tenant-identifier-shared-definitions) on [GitHub](https://github.com/operaton/operaton-bpm-examples) that shows how to use shared definitions.
-:::
-
### Deploy a Shared Definition
Deploying a shared definition is just a "regular" deployment not assigning a Tenant Id to the deployment:
@@ -451,11 +444,10 @@ So far, we have seen that shared resources are a useful pattern if tenants have
A common pattern of how to deal with this is to extract the tenant-specific behavior in a separate process which is then invoked using a call activity. Tenant specific decision logic (i.e., decision tables) using a business rules task are also common.
-To realize this, the call activity or business rule task needs to select the correct definition to invoke based on the tenant id of the current process instance. The [Shared Resources Example](https://github.com/operaton/operaton-bpm-examples/tree/master/multi-tenancy/tenant-identifier-shared-definitions) shows how to achieve this.
+To realize this, the call activity or business rule task needs to select the correct definition to invoke based on the tenant id of the current process instance.
See also:
-* [Shared Resources Example](https://github.com/operaton/operaton-bpm-examples/tree/master/multi-tenancy/tenant-identifier-shared-definitions)
* [Called Element Tenant Id](../../reference/bpmn20/subprocesses/call-activity.md#calledelement-tenant-id)
* [Case Tenant Id](../../reference/bpmn20/subprocesses/call-activity.md#case-tenant-id) for call activities.
* [Decision Ref Tenant Id](../../reference/bpmn20/tasks/business-rule-task.md#decisionref-tenant-id) for business rule tasks.
@@ -468,10 +460,6 @@ Multi-Tenancy can be achieved by providing one process engine per tenant. Each p
The process engines can run on the same server so that all share the same computational resources such as a data source (when isolating via schemas or tables) or a thread pool for asynchronous job execution.
-:::note[Tutorial]
- You can see the [example](https://github.com/operaton/operaton-bpm-examples/tree/master/multi-tenancy/schema-isolation) how to implement multi-tenancy with data isolation by schemas.
-:::
-
### Configure the Process Engines
The process engines can be configured in a configuration file or via Java API. Each engine should have a name that is related to a tenant such that it can be identified based on the tenant. For example, each engine can be named after the tenant it serves. See the [Process Engine Bootstrapping](../process-engine/process-engine-bootstrapping.md) section for details.
diff --git a/docs/documentation/user-guide/process-engine/process-diagram-api.md b/docs/documentation/user-guide/process-engine/process-diagram-api.md
index dd5cceb0..9d185af7 100644
--- a/docs/documentation/user-guide/process-engine/process-diagram-api.md
+++ b/docs/documentation/user-guide/process-engine/process-diagram-api.md
@@ -13,9 +13,7 @@ menu:
A BPMN process diagram is a formidable place to visualize information around your process. We recommend to use JavaScript libraries to display process diagrams and enrich them with additional information.
-In our web applications [Cockpit](../../webapps/cockpit/index.md) and [Tasklist](../../webapps/tasklist/index.md), we use [bpmn.io](http://bpmn.io/), a toolkit for rendering BPMN 2.0 process models directly in the browser. It allows adding additional information to the diagram and includes ways for user interaction. Although bpmn.io is still under development, its API is rather stable.
-
-The previous JavaScript BPMN renderer can still be found at [operaton-bpmn.js](https://github.com/operaton/operaton-bpmn.js), but it is not actively developed anymore.
+In our web applications [Cockpit](../../webapps/cockpit/index.md) and [Tasklist](../../webapps/tasklist/index.md), we use [bpmn.io](https://bpmn.io/), a toolkit for rendering BPMN 2.0 process models directly in the browser. It allows adding additional information to the diagram and includes ways for user interaction. Although bpmn.io is still under development, its API is rather stable.
Process Diagram Rendering
@@ -40,4 +38,4 @@ viewer.importXML(xml, function(err) {
});
```
-Alternatively, you can use the [bpmn-viewer widget](https://github.com/operaton/operaton/blob/master/webapps/frontend/operaton-commons-ui/lib/widgets/bpmn-viewer/cam-widget-bpmn-viewer.html) from the Operaton commons UI.
+Alternatively, you can use the [bpmn-viewer widget](https://github.com/operaton/operaton/blob/main/webapps/frontend/operaton-commons-ui/lib/widgets/bpmn-viewer/cam-widget-bpmn-viewer.html) from the Operaton commons UI.
diff --git a/docs/documentation/user-guide/process-engine/templating.md b/docs/documentation/user-guide/process-engine/templating.md
index f68b1a3d..b7b43ce6 100644
--- a/docs/documentation/user-guide/process-engine/templating.md
+++ b/docs/documentation/user-guide/process-engine/templating.md
@@ -20,7 +20,7 @@ box:
* [FreeMarker][freemarker]
The script engine Freemarker wrapper implementation can be found in the
-[operaton-bpmn-platform](https://github.com/operaton/operaton/tree/master/freemarker-template-engine) repository.
+[Operaton repository](https://github.com/operaton/operaton/tree/main/freemarker-template-engine).
The following template engines are provided as optional community extensions:
@@ -28,9 +28,6 @@ The following template engines are provided as optional community extensions:
* [Saxon XQuery](https://www.saxonica.com/html/documentation12/using-xquery/)
* [Saxon XSLT](https://www.saxonica.com/html/documentation12/using-xsl/)
-The script engine wrapper implementations can be found in the
-[operaton-template-engines-jsr223][operaton-template-engines-jsr223] community hub repository.
-
## Install a Template Engine
### Install a Template Engine for an Embedded Process Engine
@@ -93,7 +90,7 @@ classpath. The procedure for this depends on the application server. In Apache T
libraries have to be added to the shared `lib/` folder.
:::note
- [FreeMarker](http://freemarker.org/) is pre-installed in the Operaton pre-packaged distribution.
+ [FreeMarker](https://freemarker.apache.org/) is pre-installed in the Operaton pre-packaged distribution.
:::
@@ -194,13 +191,7 @@ attribute.
Finally, the input of the transformation must be mapped using the special variable `operaton_source`
using a `` mapping.
-A [full example of the XSLT Template Engine][xslt-example] in Operaton can be found in the
-examples' repository.
-
-
-[freemarker]: http://freemarker.org/
-[velocity]: http://velocity.apache.org/
-[operaton-template-engines-jsr223]: https://github.com/operaton-community-hub/operaton-template-engines-jsr223
+[freemarker]: https://freemarker.apache.org/
+[velocity]: https://velocity.apache.org/
[use-scripts]: ../process-engine/scripting.md
[script-source]: ../process-engine/scripting.md#script-source
-[xslt-example]: https://github.com/operaton/operaton-bpm-examples/tree/master/scripttask/xslt-scripttask
diff --git a/docs/documentation/user-guide/runtime-container-integration/jboss.md b/docs/documentation/user-guide/runtime-container-integration/jboss.md
index 48793e3d..b3f7e2b0 100644
--- a/docs/documentation/user-guide/runtime-container-integration/jboss.md
+++ b/docs/documentation/user-guide/runtime-container-integration/jboss.md
@@ -12,7 +12,7 @@ menu:
---
:::note[Installation Guide]
- If you [download a full distribution](http://operaton.org/download/), the Operaton WildFly subsystem is readily installed into the application server.
+ If you [download a full distribution](../../introduction/downloading-operaton.md#full-distribution), the Operaton WildFly subsystem is readily installed into the application server.
[Read the installation guide](../../installation/full/wildfly/index.md) to learn how to install the Operaton WildFly subsystem into your WildFly Server.
:::
@@ -175,7 +175,7 @@ The restrictions which apply for [providing a custom process engine configuratio
To externalize environment specific parts of the configuration, it is possible to reference system properties using Ant-style expressions (i.e., `${PROPERTY_KEY}`).
Expression resolution is supported for all elements and attributes except for the `name` attribute on the elements `process-engine` and `job-acquisition`.
-System properties may be set via command line (`-D`option). Read more on expressions in the documentation for [WildFly](http://docs.wildfly.org/23/Extending_WildFly.html#expressions).
+System properties may be set via command line (`-D`option). Read more on expressions in the documentation for [WildFly](https://docs.wildfly.org/23/Extending_WildFly.html#expressions).
### Example
@@ -211,7 +211,7 @@ A declarative mechanism like `@Resource` could be
```
:::warning[Look Up a Process Engine From JNDI Using Spring]
- On WildFly, Spring users should always [create a resource-ref for the process engine in web.xml](#manage-service-dependencies) and then lookup the local name in the `java:comp/env/` namespace. [For an example, see this Quickstart](https://github.com/operaton/operaton-bpm-examples/tree/master/deployment/spring-wildfly-non-pa)
+ On WildFly, Spring users should always [create a resource-ref for the process engine in web.xml](#manage-service-dependencies) and then lookup the local name in the `java:comp/env/` namespace.
:::
diff --git a/docs/documentation/user-guide/runtime-container-integration/tomcat.md b/docs/documentation/user-guide/runtime-container-integration/tomcat.md
index 7ed81f20..fca6b5e2 100644
--- a/docs/documentation/user-guide/runtime-container-integration/tomcat.md
+++ b/docs/documentation/user-guide/runtime-container-integration/tomcat.md
@@ -14,7 +14,7 @@ menu:
## JNDI Bindings
-To use the JNDI Bindings for Operaton Services on Apache Tomcat you have to add the file `META-INF/context.xml` to your process application and add the following ResourceLinks ([Tomcat 9](http://tomcat.apache.org/tomcat-9.0-doc/config/context.html#Resource_Links), [Tomcat 10.1](https://tomcat.apache.org/tomcat-10.1-doc/config/context.html#Resource_Links)):
+To use the JNDI Bindings for Operaton Services on Apache Tomcat you have to add the file `META-INF/context.xml` to your process application and add the following ResourceLinks ([Tomcat 9](https://tomcat.apache.org/tomcat-9.0-doc/config/context.html#Resource_Links), [Tomcat 10.1](https://tomcat.apache.org/tomcat-10.1-doc/config/context.html#Resource_Links)):
```xml
diff --git a/docs/documentation/user-guide/security.md b/docs/documentation/user-guide/security.md
index 628af8da..238a8e08 100644
--- a/docs/documentation/user-guide/security.md
+++ b/docs/documentation/user-guide/security.md
@@ -10,9 +10,9 @@ menu:
---
-This page provides an overview of how to secure a Operaton installation. For Operaton's security policy, a list of security notices and a guide how to report vulnerabilities, please visit the [general security documentation](/security).
+This page provides an overview of how to secure an Operaton installation. For Operaton's security policy, a list of security notices and a guide to reporting vulnerabilities, please visit the [general security documentation](/security).
-In order to secure a Operaton installation, Operaton itself must be configured correctly and it must be integrated correctly into its environment. This section also identifies areas where we consider security issues to be relevant for the specific Operaton product and listed those in the subsequent sections. Compliance for those areas is ensured based on common industry best practices and influenced by security requirements of standards like OWASP Top 10 and others
+To secure an Operaton installation, Operaton itself must be configured correctly and it must be integrated correctly into its environment. This section also identifies areas where we consider security issues to be relevant for the specific Operaton product and lists them in the subsequent sections. Compliance for those areas is ensured based on common industry best practices and influenced by security requirements of standards like OWASP Top 10 and others.
## Deployment Options and Components
@@ -24,7 +24,7 @@ There are different ways of using Operaton and different components are provided
* Web applications (Cockpit, Tasklist, ...): similar considerations to the REST API apply.
-Keep in mind that it is not recommended to use the pre-packaged distribution in production environment rather install the full distribution manually (for example [Tomcat manual installation](https://docs.operaton.org/docs/documentation/installation/full/tomcat/manual/)).
+Keep in mind that it is not recommended to use the pre-packaged distribution in production environments. Install the full distribution manually instead, for example with the [Tomcat manual installation](../installation/full/tomcat/manual.md).
:::warning[Security Consideration]
The pre-packaged distribution is intended for users who want a getting started experience. In case
@@ -164,7 +164,7 @@ To prevent this:
1. Use group instead of user authorizations when possible.
2. Complete tasks that were assigned to to-be-deleted users.
3. Delete user authorizations via Admin web app or APIs.
-4. Don't allow to reuse an id of a deleted user.
+4. Don't allow reuse of the id of a deleted user.
### Spring Security OAuth2
@@ -207,8 +207,8 @@ standard.
Since version 7.11, a [built-in password policy](../user-guide/process-engine/password-policy.md#built-in-password-policy)
can be enabled that requires passwords to follow specific rules. However, you can achieve a much higher
level of security by implementing a more sophisticated custom password policy (e.g., with the help of
-[Password Topology Blacklisting] (https://blog.korelogic.com/blog/2014/04/04/pathwell_topologies),
-also see the [OWASP guide] (https://github.com/OWASP/CheatSheetSeries/blob/7d94e9a29174b8fd76235ca60f47245d1f34df1e/cheatsheets/Authentication_Cheat_Sheet.md#password-complexity)
+[Password Topology Blacklisting](https://blog.korelogic.com/blog/2014/04/04/pathwell_topologies),
+also see the [OWASP guide](https://cheatsheetseries.owasp.org/cheatsheets/Authentication_Cheat_Sheet.html#password-complexity)
on password complexity).
You can find more information on how to enable the base password policy and how to implement a custom password policy in our [User Guide](../user-guide/process-engine/password-policy.md).
@@ -258,12 +258,12 @@ To ensure full security, please consult the documentation about [Cookie Security
### XML Security
Operaton handles many XML files containing configurations of process engines, definitions of process models and more. In order to mitigate possible vulnerabilities that can be introduced by XML files, the following measures are activated by default:
-* Prevention against XML eXternal Entity (XXE) injections according to [OWASP](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/XML_External_Entity_Prevention_Cheat_Sheet.md)
+* Prevention against XML eXternal Entity (XXE) injections according to [OWASP](https://cheatsheetseries.owasp.org/cheatsheets/XML_External_Entity_Prevention_Cheat_Sheet.html)
* Feature Secure Processing (FSP) of XML files according to [Oracle](https://docs.oracle.com/javase/8/docs/api/javax/xml/XMLConstants.html#FEATURE_SECURE_PROCESSING) which introduces [limits](https://docs.oracle.com/javase/tutorial/jaxp/limits/limits.html) for several XML properties
If the limitations on XML files introduced by XXE prevention need to be removed, XXE processing can be enabled via `enableXxeProcessing` in the [process engine configuration](../reference/deployment-descriptors/tags/process-engine.mdx#enableXxeProcessing).
-FSP itself can not be disabled in the engine. All properties that are influenced by this can however be configured in the environment via system properties and the `jaxp.properties` file. See the [Oracle documentation](https://docs.oracle.com/javase/tutorial/jaxp/limits/using.html) on how to determine the right limits and how to set them.
+FSP itself cannot be disabled in the engine. All properties that are influenced by this can however be configured in the environment via system properties and the `jaxp.properties` file. See the [Oracle documentation](https://docs.oracle.com/javase/tutorial/jaxp/limits/using.html) on how to determine the right limits and how to set them.
Since BPMN schema validation requires external XSD documents, the property `http://javax.xml.XMLConstants/property/accessExternalSchema` is by default configured to value `all`, which enables referencing XML schemas by any supported protocol. This can be overridden via the system property `javax.xml.accessExternalSchema`, however a value set via `jaxp.properties` does not take effect.
@@ -287,7 +287,7 @@ about the several headers, the defaults and how to configure the HTTP headers ac
Process variables can be submitted as Java objects using the JDK built-in `application/x-java-serialized-object` data format, JSON or XML along with a Java class name via the Operaton REST API and web applications.
On server side, they can then be deserialized into Java objects, so that Java code can work with them in a native way. See [Operaton Spin](../user-guide/data-formats/configuring-spin-integration.md) for details and this restref page="putLocalExecutionVariable" text="REST API endpoint" tag="Execution for an example.
-If an attacker can access these endpoints, they can exploit so-called _serialization gadgets_, i.e. classes that run vulnerable code during deserialization resulting in remote code execution in the general case. For example, consider a class constructor that makes a REST request based on a field value. An attacker could submit a forged variable value so that during deserialization, when the constructor is called, the application server would make an arbitrary REST request to a destination of the attacker's choice. For details, see [OWASP's description of Deserialization of untrusted data](https://www.owasp.org/index.php/Deserialization_of_untrusted_data).
+If an attacker can access these endpoints, they can exploit so-called _serialization gadgets_, i.e. classes that run vulnerable code during deserialization resulting in remote code execution in the general case. For example, consider a class constructor that makes a REST request based on a field value. An attacker could submit a forged variable value so that during deserialization, when the constructor is called, the application server would make an arbitrary REST request to a destination of the attacker's choice. For details, see [OWASP's description of Deserialization of untrusted data](https://owasp.org/www-community/vulnerabilities/Deserialization_of_untrusted_data).
### Java objects using the JDK built-in `application/x-java-serialized-object` data format
@@ -305,7 +305,7 @@ In case you want to rely on allowed package and class names from the engine conf
An implementation of this interface registered as validator will be provided with the defined packages and classes from the engine configuration upon initialization of the engine via `#setAllowedClasses` and `#setAllowedPackages`.
:::note[Jackson Type Whitelisting]
- Spin's JSON implementation is based on Jackson. If you configure Operaton Spin to deserialize polymorphic classes based on type information included in the JSON itself (i.e. where the JSON contains explicit class names), we strongly recommend to additionally enable Jackson's [Whitelisting feature](https://medium.com/@cowtowncoder/jackson-2-10-safe-default-typing-2d018f0ce2ba) starting with version 2.10. Operaton's whitelisting feature does not cover this case.
+ Spin's JSON implementation is based on Jackson. If you configure Operaton Spin to deserialize polymorphic classes based on type information included in the JSON itself (i.e. where the JSON contains explicit class names), we strongly recommend to additionally enable Jackson's [PolymorphicTypeValidator feature](https://github.com/FasterXML/jackson/wiki/Jackson-Release-2.10#safe-default-typing) starting with version 2.10. Operaton's whitelisting feature does not cover this case.
:::
### User operation log settings for synchronous operations affecting multiple entities
@@ -376,7 +376,7 @@ When it comes to error handling, from a security perspective, the top goal is to
from obtaining technical details about the system, which for example, a stack trace could reveal
(see OWASP's [Improper Error Handling article] for more information).
-[Improper Error Handling article]: https://www.owasp.org/index.php/Improper_Error_Handling
+[Improper Error Handling article]: https://owasp.org/www-community/Improper_Error_Handling
In this section, we describe what we do to prevent disclosing technical details about the system.
@@ -412,10 +412,9 @@ Please find below external documentation on how to configure your application se
* [Servlet Container Configuration](https://docs.jboss.org/author/display/WFLY/Undertow%20subsystem%20configuration.html#108626010_Undertowsubsystemconfiguration-Servletcontainerconfiguration)
* [Model Reference](https://wildscribe.github.io/WildFly/12.0/subsystem/undertow/servlet-container/index.html#attr-stack-trace-on-error)
* JBoss EAP 7.0+: Official Documentation
- * [Servlet Container Configuration](https://access.redhat.com/documentation/en-us/red_hat_jboss_enterprise_application_platform/7.0/html/configuration_guide/reference_material#idm139812627222560)
- * [Model Refernce](https://wildscribe.github.io/JBoss%20EAP/7.0/subsystem/undertow/servlet-container/index.html#attr-stack-trace-on-error)
+ * [Servlet Container Configuration](https://docs.redhat.com/en/documentation/red_hat_jboss_enterprise_application_platform/7.0/html/configuration_guide/reference_material)
+ * [Model Reference](https://wildscribe.github.io/JBoss%20EAP/7.0/subsystem/undertow/servlet-container/index.html#attr-stack-trace-on-error)
* Operaton Run/Spring Boot 2.3+
* Official Documentation
* [Javadocs about ErrorProperties.IncludeStacktrace](https://docs.spring.io/spring-boot/docs/2.3.0.RELEASE/api/org/springframework/boot/autoconfigure/web/ErrorProperties.IncludeStacktrace.html)
- * Alternative Resources
- * [Error Handling on Baeldung](https://www.baeldung.com/spring-boot-configure-tomcat#2-error-handling)
+ * [Common application properties](https://docs.spring.io/spring-boot/appendix/application-properties/index.html)
diff --git a/docs/documentation/user-guide/spring-boot-integration/rest-api.md b/docs/documentation/user-guide/spring-boot-integration/rest-api.md
index c2154b5c..cf12ca56 100644
--- a/docs/documentation/user-guide/spring-boot-integration/rest-api.md
+++ b/docs/documentation/user-guide/spring-boot-integration/rest-api.md
@@ -23,7 +23,7 @@ To enable the [REST API](../../reference/rest/index.md) you can use the followin
By default the application path is `engine-rest`, so without any further configuration you can access the api at `http://localhost:8080/engine-rest`.
-Because we use jersey, one can use spring boot's [common application properties](http://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html).
+Because we use jersey, one can use Spring Boot's [common application properties](https://docs.spring.io/spring-boot/appendix/application-properties/index.html).
For example, to change the application path, use
```properties
spring.jersey.application-path=myapplicationpath
diff --git a/docs/documentation/user-guide/task-forms/jsf-task-forms.md b/docs/documentation/user-guide/task-forms/jsf-task-forms.md
index 07d26003..493d43d1 100644
--- a/docs/documentation/user-guide/task-forms/jsf-task-forms.md
+++ b/docs/documentation/user-guide/task-forms/jsf-task-forms.md
@@ -19,8 +19,6 @@ The required CDI beans for this functionality are currently not available in [Qu
If you add JSF forms as described below, you can easily use them as
[external task forms](../task-forms/index.md#external-task-forms).
-A working example can be found in the [examples repository](https://github.com/operaton/operaton-bpm-examples/tree/master/usertask/task-form-external-jsf).
-
The BPMN process used for this example is shown in the image below:
Task Form Process
@@ -232,7 +230,7 @@ Note that the command button doesn't have to be on the same form, you might have
## Styling your Task Forms
-We use [Twitter Bootstrap](http://getbootstrap.com/) in our tasklist - so best add this to your Process Application as well and you can easily polish your UI:
+We use [Twitter Bootstrap](https://getbootstrap.com/) in our tasklist - so best add this to your Process Application as well and you can easily polish your UI:
Tasklist Start Forms layouted
diff --git a/docs/documentation/webapps/admin/configuration.md b/docs/documentation/webapps/admin/configuration.md
index 3b261094..88ac0c1e 100644
--- a/docs/documentation/webapps/admin/configuration.md
+++ b/docs/documentation/webapps/admin/configuration.md
@@ -56,7 +56,7 @@ export default {
## Localization
Admin can be localized. Operaton maintains English and German translation files.
-You can find and download community maintained translation files at the [Operaton webapp translations repository](https://github.com/operaton/operaton-webapp-translations).
+You can find the current Admin locale files in the [Operaton repository](https://github.com/operaton/operaton/tree/main/webapps/frontend/public/app/admin/locales).
The localization of Admin is contained in the `app/admin/locales/` directory. This
directory contains a separate localization file for every available language. The file name
@@ -156,7 +156,7 @@ If disabled, the metrics can still be displayed on-demand via a checkbox.
## Advanced styles customization
In addition to the basic `user-styles.css` file, you can edit the source style and layout files
-using [less](http://lesscss.org/) to change the overall appearance of Admin.
+using [less](https://lesscss.org/) to change the overall appearance of Admin.
To customize the interface with `less`, start by having a look
at the variables defined in the following files:
diff --git a/docs/documentation/webapps/admin/plugins.md b/docs/documentation/webapps/admin/plugins.md
index 092579ec..6b4de5a3 100644
--- a/docs/documentation/webapps/admin/plugins.md
+++ b/docs/documentation/webapps/admin/plugins.md
@@ -21,7 +21,7 @@ For further details about the concepts behind plugins, please read the [Cockpit
:::warning[Difference between Cockpit and Admin plugins:]
* To publish the plugin with Admin, its class name must be put into a file called ```org.operaton.bpm.admin.plugin.spi.AdminPlugin``` that resides in the directory ```META-INF/services```.
- * The plugin mechanism of Admin does not allow to provide additional SQL queries by using [MyBatis](http://www.mybatis.org/) mappings.
+ * The plugin mechanism of Admin does not allow providing additional SQL queries by using [MyBatis](https://mybatis.org/mybatis-3/) mappings.
:::
@@ -57,4 +57,4 @@ properties: {
}
```
-You can find examples of [Admin dashboard plugins here](https://github.com/operaton/operaton/tree/master/webapps/frontend/ui/admin/plugins/base/app/views/dashboard).
+You can find examples of [Admin dashboard plugins here](https://github.com/operaton/operaton/tree/main/webapps/frontend/ui/admin/plugins/base/app/views/dashboard).
diff --git a/docs/documentation/webapps/cockpit/extend/configuration.md b/docs/documentation/webapps/cockpit/extend/configuration.md
index ff7fa891..1fb0c408 100644
--- a/docs/documentation/webapps/cockpit/extend/configuration.md
+++ b/docs/documentation/webapps/cockpit/extend/configuration.md
@@ -55,7 +55,7 @@ export default {
## Localization
Cockpit can be localized. Operaton maintains English and German translation files.
-You can find and download community maintained translation files at the [Operaton webapp translations repository](https://github.com/operaton/operaton-webapp-translations).
+You can find the current Cockpit locale files in the [Operaton repository](https://github.com/operaton/operaton/tree/main/webapps/frontend/public/app/cockpit/locales).
The localization of Cockpit is contained in the `app/cockpit/locales/` directory. This
directory contains a separate localization file for every available language. The file name
@@ -99,8 +99,6 @@ export default {
```
This includes a `custom-module/module.js` file. The path is relative to the `app/cockpit` folder in the Operaton webapp .war file.
-You can find a complete example about how to use `customScripts` to develop a Cockpit Plugin in the [Operaton examples repository](https://github.com/operaton/operaton-bpm-examples/tree/master/cockpit/cockpit-cats).
-
## BPMN Diagram Viewer (bpmn.js)
The diagram viewer (bpmn.js) can be either customized by moddle extensions or
@@ -121,8 +119,6 @@ export default {
}
```
-You can find an example on how to add an additional bpmn.js module to Cockpit in the [Operaton examples repository](https://github.com/operaton/operaton-bpm-examples/tree/master/cockpit/cockpit-bpmn-js-module).
-
### Moddle Extensions
The BPMN moddle can be extended by adding a `moddleExtensions` property. Each moddle extension has a unique name (key)
and a path (value) to the JSON file of the moddle extension. The path is relative to the `app/cockpit` folder in the
@@ -259,4 +255,4 @@ export default = {
// …
previewHtml: false
};
-```
\ No newline at end of file
+```
diff --git a/docs/documentation/webapps/cockpit/extend/plugins.md b/docs/documentation/webapps/cockpit/extend/plugins.md
index 2d3ac2f0..f24cd5d2 100644
--- a/docs/documentation/webapps/cockpit/extend/plugins.md
+++ b/docs/documentation/webapps/cockpit/extend/plugins.md
@@ -24,7 +24,7 @@ Cockpit defines a plugin concept to add own functionality without being forced t
A Cockpit plugin is a maven jar project that is included in the Cockpit webapplication as a library dependency. It provides a server-side and a client-side extension to Cockpit.
-On the server-side, it can extend Cockpit with custom SQL queries and JAX-RS resource classes. Queries (defined via [MyBatis](http://www.mybatis.org/)) may be used to squeeze additional intel out of an engine database or to execute custom engine operations. JAX-RS resources on the other hand extend the Cockpit API and expose data to the client-side part of the plugin.
+On the server-side, it can extend Cockpit with custom SQL queries and JAX-RS resource classes. Queries (defined via [MyBatis](https://mybatis.org/mybatis-3/)) may be used to squeeze additional intel out of an engine database or to execute custom engine operations. JAX-RS resources on the other hand extend the Cockpit API and expose data to the client-side part of the plugin.
On the client-side a plugin may include Javascript modules to extend the Cockpit webapplication. Via those modules a plugin provides custom views.
@@ -66,7 +66,7 @@ As runtime relevant resource it defines
1. a plugin main class
2. a `META-INF/services` entry that publishes the plugin to Cockpit
-3. a plugin root [JAX-RS](https://jax-rs-spec.java.net/) resource that wires the server-side API.
+3. a plugin root [JAX-RS](https://jakarta.ee/specifications/restful-ws/) resource that wires the server-side API.
When you want to include a frontend module in your plugin, you can use `AbstractCockpitPluginRootResource` as the plug-in resources base class.
This allows you to serve static client-side resources under the `/static` path.
Per convention, these resources must reside in a `/plugin-webapp/$plugin_id` directory absolute to the classpath root.
@@ -76,15 +76,11 @@ As runtime relevant resource it defines
The default implementation contains two predefined assets: `app/plugin.js` and `app/plugin.css`.
4. other resources that are part of the server-side API
5. data transfer objects used by the resources
-6. mapping files that provide additional Cockpit queries as [MyBatis](http://www.mybatis.org/) mappings
+6. mapping files that provide additional Cockpit queries as [MyBatis](https://mybatis.org/mybatis-3/) mappings
7. resource directory from which client-side plugin assets are served as static files
8. a js file that exports a frontend module. This file must be named `plugin.js` and be located in the `app` directory of the plugin asset directory
9. a css file that contains the style definitions for the client-side plugin. This file must be named `plugin.css` and be located in the `app` directory of the plugin asset directory
-:::note[Related Example]
- [How to develop a Cockpit plugin](https://github.com/operaton/operaton-bpm-examples/tree/master/cockpit/cockpit-fullstack-count-processes)
-:::
-
### Structure of a Frontend Module
A frontend module always follows the same structure. This is how a sample `plugin.js` could look like:
@@ -157,7 +153,7 @@ Plugins created for Operaton.13 or earlier can be included for compatibility. To
Please note that all Plugins with this prefix will be included using the 7.13 plugin mechanism. You cannot create new Plugins with IDs starting with `legacy`.
-For more details about legacy Plugins, check out the legacy [Plugin documentation](https://docs.operaton.org/docs/documentation/webapps/cockpit/extend/plugins/). Please note that this link will take you to the documentation of Operaton.
+For more details about legacy Plugins, see the plugin points below.
## Plugin points
@@ -166,8 +162,6 @@ To configure where you place your plugin, enter the ID into the `pluginPoint` at
Plugin Points describe where a Plugin will be rendered and define which additional data is passed into the second argument of the render function.
-For more information on creating and configuring your own plugin, please see [How to develop a Cockpit plugin](https://github.com/operaton/operaton-bpm-examples/tree/master/cockpit/cockpit-fullstack-count-processes).
-
### Data
**Data Plugin Points** have a `#result` function that gets the response data as a promise of a called REST endpoint passed.
diff --git a/docs/documentation/webapps/tasklist/configuration.md b/docs/documentation/webapps/tasklist/configuration.md
index 22566681..7672acad 100644
--- a/docs/documentation/webapps/tasklist/configuration.md
+++ b/docs/documentation/webapps/tasklist/configuration.md
@@ -19,7 +19,7 @@ available:
Dates can be configured by specifying a `dateFormat` object. The values of the properties of this
object must be strings representing date formats in accordance with
-[moment.js](http://momentjs.com). Following date formats are used within Tasklist:
+[moment.js](https://momentjs.com). Following date formats are used within Tasklist:
* `monthName` represents the name of a month (e.g., January).
* `day` represents the number of a day in a month (1..31).
@@ -45,7 +45,7 @@ export default {
## Localization
Tasklist can be localized. Operaton maintains English and German translation files.
-You can find and download community maintained translation files at the [Operaton webapp translations repository](https://github.com/operaton/operaton-webapp-translations).
+You can find the current Tasklist locale files in the [Operaton repository](https://github.com/operaton/operaton/tree/main/webapps/frontend/public/app/tasklist/locales).
The localization of Tasklist is contained in the `app/tasklist/locales/` directory. This
directory contains a separate localization file for every available language. The file name
@@ -90,10 +90,6 @@ export default {
```
This includes a `custom-module/module.js` file. The path is relative to the `app/tasklist` folder in the Operaton webapp .war file.
-You can find a complete example about how to use `customScripts` to develop a Tasklist Plugin in the [Operaton examples repository](https://github.com/operaton/operaton-bpm-examples/tree/master/tasklist/cats-plugin).
-
-
-
## Shortcuts
If you want to change the keyboard shortcuts for certain tasklist operations, you can change the key-combination and the description of the shortcuts in the `shortcuts` section of the config file.
@@ -183,7 +179,7 @@ export default {
## Advanced Styles Customization
In addition to the basic `user-styles.css` file, you can edit the source style- and layout files
-using [less](http://lesscss.org/) to change the overall appearance of Tasklist.
+using [Less](https://lesscss.org/) to change the overall appearance of Tasklist.
If you want to customize the interface with `less`, you should probably start by having a look
at the variables defined in the following files:
diff --git a/docs/documentation/webapps/tasklist/filters.md b/docs/documentation/webapps/tasklist/filters.md
index cecc018c..f8da3902 100644
--- a/docs/documentation/webapps/tasklist/filters.md
+++ b/docs/documentation/webapps/tasklist/filters.md
@@ -24,7 +24,7 @@ In Tasklist, you can create and select filters. You can use these filters to cre
## Expressions in Filters
-Several of the filter criteria accept expressions as values. These expressions are written in [JUEL](http://juel.sourceforge.net/). In filters which are related to times and dates, you can use the dateTime class, which returns a [Joda-Time](http://www.joda.org/joda-time/) DateTime object.
+Several of the filter criteria accept expressions as values. These expressions are written in [JUEL](https://juel.sourceforge.net/). In filters which are related to times and dates, you can use the dateTime class, which returns a [Joda-Time](https://www.joda.org/joda-time/) DateTime object.
:::warning[Security Consideration]
Filter expressions can be abused to execute arbitrary code when the query is evaluated. It is therefore required that any user authorized to create filters is trusted in this respect. The default behavior of evaluating filter expressions can be deactivated in the process engine configuration. See the section on security considerations for custom code for details.
@@ -188,7 +188,7 @@ In the table below we list some of the more common and useful filters that you c
Due After
- The specified date in accordance with ISO 8601 (e.g., 2015-01-01T00:00:01)
+ The specified date in accordance with ISO 8601 (e.g., 2015-01-01T00:00:01)
|
@@ -256,4 +256,4 @@ In the table below we list some of the more common and useful filters that you c
-```
\ No newline at end of file
+```
diff --git a/docs/documentation/webapps/tasklist/tasklist-plugins.md b/docs/documentation/webapps/tasklist/tasklist-plugins.md
index 281b246d..f31dd257 100644
--- a/docs/documentation/webapps/tasklist/tasklist-plugins.md
+++ b/docs/documentation/webapps/tasklist/tasklist-plugins.md
@@ -20,7 +20,7 @@ For further details about the concepts behind plugins, please read the [Cockpit
:::warning[Difference between Cockpit and Tasklist plugins:]
* To publish the plugin with Tasklist, its class name must be put into a file called ```org.operaton.bpm.tasklist.plugin.spi.TasklistPlugin``` that resides in the directory ```META-INF/services```.
- * The plugin mechanism of Tasklist does not allow to provide additional SQL queries by using [MyBatis](http://www.mybatis.org/) mappings.
+ * The plugin mechanism of Tasklist does not allow providing additional SQL queries by using [MyBatis](https://mybatis.org/mybatis-3/) mappings.
:::
## Plugin Points
@@ -94,5 +94,5 @@ var ViewConfig = [ 'ViewsProvider', function(ViewsProvider) {
For more information on creating and configuring your own plugin, please have a look at the following examples:
-* [How to build the server side](https://github.com/operaton/operaton/tree/master/webapps/assembly/src/main/java/org/operaton/bpm/tasklist/impl/plugin)
-* [How to build the client side](https://github.com/operaton/operaton/tree/master/webapps/frontend/ui/tasklist/plugins/standaloneTask/app)
+* [How to build the server side](https://github.com/operaton/operaton/tree/main/webapps/assembly/src/main/java/org/operaton/bpm/tasklist/impl/plugin)
+* [How to build the client side](https://github.com/operaton/operaton/tree/main/webapps/frontend/ui/tasklist/plugins/standaloneTask/app)
diff --git a/docs/get-started/dmn/index.md b/docs/get-started/dmn/index.md
index 8a6f16e3..4eea611d 100644
--- a/docs/get-started/dmn/index.md
+++ b/docs/get-started/dmn/index.md
@@ -11,7 +11,7 @@ description: "Learn how to create a DMN 1.3 decision table using the Operaton Mo
This tutorial guides you through modeling your first DMN 1.3 decision table and executing it with the Operaton Platform.
:::note[Standalone DMN engine]
-Note that it is also possible to use the DMN engine independently from the Operaton Platform. Please refer to the [User Guide](/docs/documentation/user-guide/dmn-engine/embed/) and the [Example](https://github.com/operaton/operaton-bpm-examples/tree/master/dmn-engine/dmn-engine-java-main-method) for more details.
+Note that it is also possible to use the DMN engine independently from the Operaton Platform. Please refer to the [User Guide](/docs/documentation/user-guide/dmn-engine/embed/) and the [DMN decision example](https://github.com/operaton/operaton-examples/tree/main/examples/dmn-decision) for more details.
:::
You will be guided through the following steps: