This is an automated email from the ASF dual-hosted git repository.

kwin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-site.git


The following commit(s) were added to refs/heads/master by this push:
     new a434627  SLING-9031, SLING-8548 document enhanced run mode support
a434627 is described below

commit a43462783e7b20ecc76f46191ded677cba1e4b28
Author: Konrad Windszus <[email protected]>
AuthorDate: Fri Sep 18 17:26:30 2020 +0200

    SLING-9031, SLING-8548 document enhanced run mode support
---
 .../bundles/file-installer-provider.md              |  6 ++++--
 .../documentation/bundles/jcr-installer-provider.md |  4 +++-
 .../sling-settings-org-apache-sling-settings.md     | 21 +++++++++++++++++++--
 3 files changed, 26 insertions(+), 5 deletions(-)

diff --git 
a/src/main/jbake/content/documentation/bundles/file-installer-provider.md 
b/src/main/jbake/content/documentation/bundles/file-installer-provider.md
index 174adc2..6d3cef8 100644
--- a/src/main/jbake/content/documentation/bundles/file-installer-provider.md
+++ b/src/main/jbake/content/documentation/bundles/file-installer-provider.md
@@ -32,9 +32,11 @@ Configurations are handled by the [Configuration Installer 
Factory](/documentati
 
 Custom artifacts are handled by the OSGi installer depending on the installed 
plugins. Have a look at the OSGi installer and its plugins for more information.
 
-## Runmode Support
+## Run Mode Support
 
-The file installer supports run modes for installing artifacts (added with 
[SLING-4478](https://issues.apache.org/jira/browse/SLING-4478)). Within the 
scanned directory, a folder prefixed with "install." and followed by one or 
more run modes (separated by ".") will only be considered if all the respective 
run modes are active. For example artifacts below a folder named 
`install.a1.dev` are only taken into account if the run modes `a1` and `dev` 
are both active. 
+The file installer supports run modes for installing artifacts (added with 
[SLING-4478](https://issues.apache.org/jira/browse/SLING-4478)). Within the 
scanned directory, a folder prefixed with `install.` and followed by one or 
more run modes (separated by `.`) will only be considered if all the respective 
run modes are active. For example artifacts below a folder named 
`install.a1.dev` are only taken into account if the run modes `a1` and `dev` 
are both active. 
+
+Since version 1.3.0 of the File Installer bundle 
([SLING-9031](https://issues.apache.org/jira/browse/SLING-9031) and 
[SLING-8548](https://issues.apache.org/jira/browse/SLING-8548)) advanced run 
mode support has been added, so that folder names in the form 
`install.[RUNMODESPEC]` are supported. `RUNMODESPEC` is defined in [Sling 
Settings](/documentation/bundles/sling-settings-org-apache-sling-settings.html#decisions-based-on-run-modes).
 
 You can even combine start level and run mode support. Just pay attention that 
the run mode foldername must be set on a direct child folder of 
`sling.fileinstall.dir` while the start level must be set directly on the 
parent folder of the artifact you want to install. E.g. 
`<sling.fileinstall.dir>/install.a1.dev/3/mybundle.jar` will only be considered 
if both run modes `a1` and `dev` are set. If this is the case then the 
according artifact will be installed in start level 3.
 
diff --git 
a/src/main/jbake/content/documentation/bundles/jcr-installer-provider.md 
b/src/main/jbake/content/documentation/bundles/jcr-installer-provider.md
index ae82646..8f59095 100644
--- a/src/main/jbake/content/documentation/bundles/jcr-installer-provider.md
+++ b/src/main/jbake/content/documentation/bundles/jcr-installer-provider.md
@@ -20,7 +20,9 @@ The JCR installer provider does not check or scan the 
artifacts itself, the dete
 
 The JCR installer supports [run 
modes](sling-settings-org-apache-sling-settings.html) for installing artifacts. 
By default folders named `install` are checked for artifacts. If Apache Sling 
is started with one (or more run modes), all folders named `install.[RUNMODE]` 
are scanned as well. To be precise, the folder name can be followed by any 
number of run modes separated by dot (`.`). For example, if started with run 
modes `dev`, `a1`, and `public`, folders like `install.dev`, `install.a [...]
 
-Artifacts from folders with a run mode get a higher priority. For example by 
default, an `install` folder underneath `/libs` gets the priority `50`. For 
each run mode in the folder name, this priority is increased by `1`, so 
`install.dev` has `51` and `install.a1.dev` has `52`.
+Since version 3.3.0 of the JCR Installer bundle 
([SLING-9031](https://issues.apache.org/jira/browse/SLING-9031) and 
[SLING-8548](https://issues.apache.org/jira/browse/SLING-8548)) advanced run 
mode support has been added, so that folder names in the form 
`install.[RUNMODESPEC]` are supported. `RUNMODESPEC` is defined in [Sling 
Settings](/documentation/bundles/sling-settings-org-apache-sling-settings.html#decisions-based-on-run-modes).
+
+Artifacts from folders with a run mode get a higher priority. For example by 
default, an `install` folder underneath `/libs` gets the priority `50`. For 
each matching run mode in the folder name, this priority is increased by `1`, 
so `install.dev` has `51` and `install.a1.dev` has `52`.
 
 ## Start Level Support
 
diff --git 
a/src/main/jbake/content/documentation/bundles/sling-settings-org-apache-sling-settings.md
 
b/src/main/jbake/content/documentation/bundles/sling-settings-org-apache-sling-settings.md
index 914d291..84859fb 100644
--- 
a/src/main/jbake/content/documentation/bundles/sling-settings-org-apache-sling-settings.md
+++ 
b/src/main/jbake/content/documentation/bundles/sling-settings-org-apache-sling-settings.md
@@ -17,7 +17,7 @@ The Sling Settings Bundle exposes the `SlingSettingsService` 
which allows access
 
 The new Sling Settings Bundle replaces the former `org.apache.sling.runmode` 
bundle and the `SlingSettingsService` previously provided by the Sling Engine 
bundle, as it also implements the run modes logic.
 
-## Selecting the active run modes
+# Selecting the active run modes
 The run modes are selected based on the `sling.run.modes` property (the 
"selection property"), specified in the Sling settings file or as a 
command-line parameter (which takes precedence), out of the valid run modes 
defined by the properties described below. The value is a String which contains 
a list of comma-separated run modes. If a run mode is given here which is not 
contained in any group of valid run modes (given in 
`sling.run.mode.install.options` or `sling.run.mode.options`) it i [...]
 
 Using `-Dsling.run.modes=foo,bar` on the JVM command-line, for example, 
activates the *foo* and *bar* run modes if that combination is valid.
@@ -65,7 +65,7 @@ User defined run modes (e.g. via property `sling.run.modes`) 
| Effectively activ
 
 Remember to look at the `RunModeImplTest` mentioned above for details, and 
feel free to enhance it with useful examples.
 
-### Getting the Run Modes of the Sling instance
+# Getting the Run Modes of the Sling instance
 
 The `SlingSettings` service provides the Run Modes of the running Sling 
instance as in this example:
 
@@ -80,3 +80,20 @@ The `SlingSettings` service provides the Run Modes of the 
running Sling instance
     }
        
 Getting run modes in this way is usually not needed, it's better to define 
bundles or configurations that are only valid in specific run modes, rather 
than making decisions in code based on run modes.
+
+# Decisions based on Run Modes
+
+Since version 1.4.0 
([SLING-9031](https://issues.apache.org/jira/browse/SLING-9031) and 
[SLING-8548](https://issues.apache.org/jira/browse/SLING-8548)) of the Sling 
Settings bundle there is support for checking a run mode spec against the 
currently active run modes.
+
+The run mode spec grammar is as follows
+
+    run mode spec ::= disjunctions
+    disjunctions ::= conjunctions { "," conjunctions }
+    conjunctions ::= conjunction { '.' conjunction }
+    conjunction ::= notrunmode | runmode
+    notrunmode ::= '-' runmode
+
+It supports OR (`,`) and AND (`.`) combinations of run modes and negations 
with `-` .
+
+Programmatically this can be used via 
`SlingSettings.getBestRunModeMatchCountFromSpec(String runModeSpec)`.
+

Reply via email to