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

lprimak pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/shiro-site.git


The following commit(s) were added to refs/heads/main by this push:
     new dac7d849c Add FlowLogix depchain as easier-than-BOM Shiro-Jakarta-EE 
dependencies (#219) (#260)
dac7d849c is described below

commit dac7d849c8c71c256cbd6d43c7ee43f9b2a515c0
Author: Ganesh Patil <[email protected]>
AuthorDate: Wed Jan 14 04:43:41 2026 +0530

    Add FlowLogix depchain as easier-than-BOM Shiro-Jakarta-EE dependencies 
(#219) (#260)
    
    * docs(security): add Security Model documentation
    
    - Created src/site/content/security-model.adoc with detailed explanation
    - Covers trust boundaries, authentication, authorization guarantees
    - Includes session management and cryptography security considerations
    - Documents operator responsibilities and deployment recommendations
    - Follows existing site documentation style and AsciiDoc format
    
    * Add FlowLogix depchain as alternative to BOM for Shiro-Jakarta-EE (#219)
    
    This commit introduces documentation for the FlowLogix dependency chain
    as a simpler alternative to managing Apache Shiro Jakarta EE dependencies
    using the traditional BOM approach.
    
    Changes:
    - Add dependency-chain.adoc with complete documentation covering:
      - Maven and Gradle configuration examples
      - Comparison with traditional BOM approach
      - Complete example project
      - Migration guide from BOM to dependency chain
    - Update jakarta-ee.adoc to reference the dependency chain option
      as the recommended approach alongside existing BOM documentation
    
    The FlowLogix shiro-jakarta dependency chain bundles all required
    Shiro Jakarta EE modules (shiro-core, shiro-web, shiro-jakarta-ee,
    shiro-cdi, shiro-jaxrs) with the correct jakarta classifier, plus
    required dependencies like OmniFaces, in a single dependency.
    
    Resolves: #219
    
    ---------
    
    Co-authored-by: Lenny Primak <[email protected]>
---
 src/site/content/dependency-chain.adoc | 192 +++++++++++++++++++++++++++++++++
 src/site/content/jakarta-ee.adoc       |  25 ++++-
 2 files changed, 216 insertions(+), 1 deletion(-)

diff --git a/src/site/content/dependency-chain.adoc 
b/src/site/content/dependency-chain.adoc
new file mode 100644
index 000000000..117627bad
--- /dev/null
+++ b/src/site/content/dependency-chain.adoc
@@ -0,0 +1,192 @@
+= Using FlowLogix Dependency Chains with Apache Shiro
+:jbake-date: 2026-01-03 00:00:00
+:jbake-type: page
+:jbake-status: published
+:jbake-tags: documentation, jakarta-ee, dependencies, integrations
+:idprefix:
+:icons: font
+
+Managing Apache Shiro dependencies in Jakarta EE projects can be simplified 
using the FlowLogix Dependency Chains. This approach provides a cleaner 
alternative to managing the BOM (Bill of Materials) directly, reducing 
configuration complexity and common errors.
+
+== What is the FlowLogix Dependency Chain?
+
+FlowLogix provides pre-configured Maven dependency chains that bundle related 
dependencies together. For Apache Shiro with Jakarta EE, the `shiro-jakarta` 
module includes all necessary Shiro components with the correct Jakarta 
classifier, eliminating the need to declare each dependency individually.
+
+== Why Use Dependency Chains Instead of BOM?
+
+Traditional BOM usage requires importing the BOM in `<dependencyManagement>` 
and then declaring each individual dependency. This approach can lead to:
+
+* Forgetting to include required transitive dependencies
+* Inconsistent versions when mixing dependencies
+* Verbose configuration with multiple dependency declarations
+* Missing the `jakarta` classifier on artifacts
+
+The dependency chain approach bundles everything you need in a single 
dependency, automatically including:
+
+* `shiro-core` (jakarta classifier)
+* `shiro-web` (jakarta classifier)
+* `shiro-jakarta-ee` (jakarta classifier)
+* `shiro-cdi` (jakarta classifier)
+* `shiro-jaxrs` (jakarta classifier)
+* `commons-configuration2`
+* `omnifaces`
+
+== Maven Configuration
+
+=== Using the Dependency Chain (Recommended)
+
+Add a single dependency to include all Shiro Jakarta EE components:
+
+[source,xml]
+----
+<dependencies>
+    <dependency>
+        <groupId>com.flowlogix.depchain</groupId>
+        <artifactId>shiro-jakarta</artifactId>
+        <version>11</version>
+        <type>pom</type>
+    </dependency>
+</dependencies>
+----
+
+=== Comparison with Traditional BOM Approach
+
+For reference, the traditional BOM approach requires significantly more 
configuration:
+
+[source,xml]
+----
+<!-- Traditional BOM Approach (more verbose) -->
+<dependencyManagement>
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.shiro</groupId>
+            <artifactId>shiro-bom</artifactId>
+            <version>${shiro.version}</version>
+            <scope>import</scope>
+            <type>pom</type>
+        </dependency>
+    </dependencies>
+</dependencyManagement>
+
+<dependencies>
+    <dependency>
+        <groupId>org.apache.shiro</groupId>
+        <artifactId>shiro-jakarta-ee</artifactId>
+        <classifier>jakarta</classifier>
+    </dependency>
+    <dependency>
+        <groupId>org.apache.shiro</groupId>
+        <artifactId>shiro-cdi</artifactId>
+        <classifier>jakarta</classifier>
+    </dependency>
+    <dependency>
+        <groupId>org.apache.shiro</groupId>
+        <artifactId>shiro-core</artifactId>
+        <classifier>jakarta</classifier>
+    </dependency>
+    <dependency>
+        <groupId>org.apache.shiro</groupId>
+        <artifactId>shiro-web</artifactId>
+        <classifier>jakarta</classifier>
+    </dependency>
+    <dependency>
+        <groupId>org.omnifaces</groupId>
+        <artifactId>omnifaces</artifactId>
+        <version>LATEST</version>
+    </dependency>
+</dependencies>
+----
+
+== Gradle Configuration
+
+=== Using the Dependency Chain
+
+[source,groovy]
+----
+dependencies {
+    implementation platform('com.flowlogix.depchain:shiro-jakarta:11')
+}
+----
+
+For Kotlin DSL:
+
+[source,kotlin]
+----
+dependencies {
+    implementation(platform("com.flowlogix.depchain:shiro-jakarta:11"))
+}
+----
+
+== Version Information
+
+The FlowLogix dependency chain version corresponds to the major release of 
FlowLogix components:
+
+* Version 11: Compatible with Java 17-25+ and Jakarta EE 11
+* Version 10: Compatible with Java 17+ and Jakarta EE 10
+
+Check the 
https://central.sonatype.com/search?q=com.flowlogix.depchain&sort=published[Maven
 Central] for the latest available version.
+
+== Additional Resources
+
+* https://docs.flowlogix.com/depchains[FlowLogix Dependency Chains 
Documentation]
+* https://github.com/flowlogix/flowlogix[FlowLogix GitHub Repository]
+* link:jakarta-ee.html[Apache Shiro Jakarta EE Integration Guide]
+
+== Complete Example Project
+
+Here is a minimal `pom.xml` for a Jakarta EE web application with Shiro 
security:
+
+[source,xml]
+----
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0";
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
+         https://maven.apache.org/xsd/maven-4.0.0.xsd";>
+    <modelVersion>4.0.0</modelVersion>
+
+    <groupId>com.example</groupId>
+    <artifactId>shiro-jakarta-demo</artifactId>
+    <version>1.0-SNAPSHOT</version>
+    <packaging>war</packaging>
+
+    <properties>
+        <maven.compiler.source>17</maven.compiler.source>
+        <maven.compiler.target>17</maven.compiler.target>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    </properties>
+
+    <dependencies>
+        <!-- Jakarta EE API -->
+        <dependency>
+            <groupId>jakarta.platform</groupId>
+            <artifactId>jakarta.jakartaee-api</artifactId>
+            <version>10.0.0</version>
+            <scope>provided</scope>
+        </dependency>
+
+        <!-- Shiro Jakarta EE - All-in-one dependency -->
+        <dependency>
+            <groupId>com.flowlogix.depchain</groupId>
+            <artifactId>shiro-jakarta</artifactId>
+            <version>11</version>
+            <type>pom</type>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <finalName>${project.artifactId}</finalName>
+    </build>
+</project>
+----
+
+== Migrating from BOM to Dependency Chain
+
+To migrate an existing project from the traditional BOM approach:
+
+1. Remove the `shiro-bom` import from `<dependencyManagement>`
+2. Remove individual Shiro dependency declarations
+3. Add the single `shiro-jakarta` dependency chain
+4. Remove any manually specified `jakarta` classifiers
+
+The dependency chain automatically handles classifier configuration and 
ensures all required components are included with compatible versions.
\ No newline at end of file
diff --git a/src/site/content/jakarta-ee.adoc b/src/site/content/jakarta-ee.adoc
index b785cb70f..bb78ace91 100644
--- a/src/site/content/jakarta-ee.adoc
+++ b/src/site/content/jakarta-ee.adoc
@@ -39,7 +39,30 @@ Jakarta EE module depends on CDI and Jax-RS submodules to 
fully integrate with t
 In addition to all Shiro annotations, Jakarta EE module allows to specify 
Jakarta EE security annotations such as `@RolesAllowed`, `@DenyAll` and 
`@PermitAll` on your beans
 
 === How to use Jakarta 9+ (jakarta.* namespace)
-Use the Shiro artifacts with Jakarta classifiers:
+
+There are two approaches to include Shiro Jakarta EE dependencies in your 
project:
+
+==== Option 1: FlowLogix Dependency Chain (Recommended)
+
+The simplest approach is to use the FlowLogix dependency chain, which bundles 
all required Shiro Jakarta EE components in a single dependency:
+
+[source,xml]
+----
+<dependencies>
+    <dependency>
+        <groupId>com.flowlogix.depchain</groupId>
+        <artifactId>shiro-jakarta</artifactId>
+        <version>11</version>
+        <type>pom</type>
+    </dependency>
+</dependencies>
+----
+
+This approach automatically includes all Shiro modules (`shiro-core`, 
`shiro-web`, `shiro-jakarta-ee`, `shiro-cdi`, `shiro-jaxrs`) with the correct 
Jakarta classifier, plus required dependencies like OmniFaces. See the 
link:dependency-chain.html[Dependency Chain Guide] for more details, Gradle 
examples, and migration instructions.
+
+==== Option 2: Traditional BOM with Individual Dependencies
+
+Alternatively, use the Shiro artifacts with Jakarta classifiers directly:
 [source,xml]
 ----
 <dependency>

Reply via email to