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

cziegeler pushed a commit to branch master
in repository 
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-jcr-jackrabbit-base.git


The following commit(s) were added to refs/heads/master by this push:
     new c7ddaa3  docs: update AGENTS.md and README.md with clarifications and 
new commands (#5)
c7ddaa3 is described below

commit c7ddaa3326b9339365e41fdc941dd2b2c80c3763
Author: Carsten Ziegeler <[email protected]>
AuthorDate: Thu Jul 16 17:58:23 2026 +0200

    docs: update AGENTS.md and README.md with clarifications and new commands 
(#5)
    
    Co-authored-by: Maia <maia@noreply>
---
 AGENTS.md | 37 ++++++++++++++++++++-----------------
 README.md | 12 ++++++++++++
 2 files changed, 32 insertions(+), 17 deletions(-)

diff --git a/AGENTS.md b/AGENTS.md
index 8bab4d6..7198f69 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -1,6 +1,6 @@
 # Project Overview
 
-`org.apache.sling.jcr.jackrabbit.base` is an OSGi bundle providing Jackrabbit 
utility classes for Apache Sling. It bridges Jackrabbit's internal 
configuration and security APIs with the OSGi service registry. Key components: 
`OsgiBeanFactory` (OSGi-aware Jackrabbit bean factory), `DelegatingLoginModule` 
(JAAS login delegation), `DelegatingPrincipalProviderRegistry`, 
`MultiplexingAuthorizableAction`, and `PrincipalProviderTracker`. No web layer 
— pure OSGi/JCR integration library.
+`org.apache.sling.jcr.jackrabbit.base` is an OSGi bundle providing Jackrabbit 
utility classes for Apache Sling. It bridges Jackrabbit configuration and 
security extension points with the OSGi service registry. Key components: 
`OsgiBeanFactory` (OSGi-aware Jackrabbit bean factory), `DelegatingLoginModule` 
(JAAS login delegation), `DelegatingPrincipalProviderRegistry`, 
`MultiplexingAuthorizableAction`, and `PrincipalProviderTracker`. No web layer 
— pure OSGi/JCR integration library.
 
 # Core Commands
 
@@ -11,7 +11,7 @@ mvn clean install
 # Compile only
 mvn compile
 
-# Run full test suite
+# Run tests
 mvn test
 
 # Run a single test class
@@ -26,22 +26,25 @@ mvn spotless:apply
 # Check formatting without modifying
 mvn spotless:check
 
-# Verify OSGi baseline compliance
+# Full verification (includes parent build checks)
 mvn verify
+
+# License header compliance
+mvn apache-rat:check
 ```
 
 # Project Layout
 
-```
+```text
 pom.xml                          # Maven build descriptor; inherits 
sling-bundle-parent:66
 src/
   main/
     java/
       org/apache/sling/jcr/jackrabbit/base/
         config/
-          OsgiBeanFactory.java   # OSGi-aware BeanFactory for Jackrabbit 
repository config
+          OsgiBeanFactory.java                    # OSGi-aware BeanFactory for 
repository config
         security/
-          DelegatingLoginModule.java             # Delegates JAAS login to 
OSGi-registered modules
+          DelegatingLoginModule.java             # Delegates JAAS login to 
OSGi or Jackrabbit fallback
           DelegatingPrincipalProviderRegistry.java
           MultiplexingAuthorizableAction.java    # Fans out authorizable 
actions to OSGi services
           PrincipalProviderTracker.java          # Tracks OSGi principal 
provider services
@@ -49,32 +52,33 @@ src/
 target/                          # Build output; not committed
 ```
 
-No `src/test/` directory — currently no tests.
+No `src/test/` directory currently exists.
 
 # Development Patterns & Constraints
 
 - **Java version**: Java 8 source compatibility (`sling.java.version=8`). Do 
not use Java 9+ APIs.
-- **Code style**: Google Java Format (enforced by Spotless, inherited from 
`sling-bundle-parent`). Run `mvn spotless:apply` before committing.
+- **Code style**: Google Java Format (enforced by Spotless via the parent 
POM). Run `mvn spotless:apply` before committing.
 - **Indentation**: 2 spaces (Google style).
-- **OSGi**: OSGi R6/R7 annotations (`org.osgi.service.component.annotations`). 
Do not use Felix SCR annotations.
+- **OSGi integration style**: This module uses 
`BundleContext`/`ServiceTracker` APIs directly for service tracking and 
registration (not Declarative Services components).
 - **Imports**: No wildcard imports. Static imports only for 
constants/utilities where idiomatic.
-- **Logging**: SLF4J only (`org.slf4j.Logger`/`LoggerFactory`). No 
`java.util.logging` or Log4j direct usage.
+- **Logging**: SLF4J only (`org.slf4j.Logger`/`LoggerFactory`).
 - **License headers**: Every `.java` file must carry the Apache 2.0 license 
header. RAT check (`mvn apache-rat:check`) enforces this.
-- **Dependencies**: All dependencies declared `provided` (OSGi container 
supplies them at runtime) or `test`. Do not add `compile`-scope runtime deps 
without discussion.
-- **Animal Sniffer**: `animal-sniffer-maven-plugin` checks Java 8 API 
compliance on every build.
+- **Dependencies**: Runtime dependencies are `provided` (container-supplied); 
test-only dependencies use `test` scope.
+- **Animal Sniffer**: `animal-sniffer-maven-plugin` enforces Java 8 API 
compatibility.
 - **OSGi versioning**: Use `@org.osgi.annotation.versioning` on exported 
packages (`package-info.java`).
 
 # Git Workflow
 
 - Mirrors Apache Sling conventions: 
[https://sling.apache.org/contributing.html](https://sling.apache.org/contributing.html)
 - Main branch: `master`
-- Commit messages: start with a short imperative summary (≤72 chars), 
reference Jira issue where applicable (e.g., `SLING-12345 Fix 
DelegatingLoginModule NPE`).
+- Commit messages: short imperative summary (≤72 chars), reference Jira issue 
where applicable (e.g., `SLING-12345 Fix DelegatingLoginModule NPE`).
 - Contributions via GitHub PRs against this repo; CI runs via Jenkins 
(`slingOsgiBundleBuild()` pipeline function).
 - Do not push directly to `master` without review.
 
 # Testing Guidelines
 
 - Framework: JUnit 4 (`junit:junit`, test scope).
+- Test logging backend: `org.slf4j:slf4j-simple` (test scope).
 - Test files go in `src/test/java/` mirroring the main package structure.
 - Run all tests: `mvn test`
 - Run one test: `mvn test -Dtest=ClassName` or `mvn test 
-Dtest=ClassName#methodName`
@@ -85,14 +89,13 @@ No `src/test/` directory — currently no tests.
 
 - **No OSGi runtime in tests**: There is no embedded OSGi framework for tests. 
Mock `BundleContext` and related OSGi interfaces manually or with Mockito.
 - **Jackrabbit 2.x, not Oak**: This bundle targets `jackrabbit-core:2.5.2` 
(Jackrabbit 2, not Apache Jackrabbit Oak). APIs differ substantially from Oak.
-- **Spotless fail on CI**: Formatting is checked during `verify`. Always run 
`mvn spotless:apply` before pushing — raw format mismatches will break the 
Jenkins build.
+- **Spotless fail on CI**: Formatting is checked during `verify`. Always run 
`mvn spotless:apply` before pushing.
 - **RAT check**: Missing or malformed license headers fail the build. Any new 
file needs the ASF license block.
-- **`bnd.baseline.fail.on.missing=false`**: OSGi semantic versioning baseline 
check is relaxed (no baseline artifact yet). Enable carefully when releasing.
-- **Animal Sniffer**: Importing any API added after Java 8 (e.g., 
`java.util.Optional.ifPresentOrElse`) will fail the build silently at the 
sniffer phase — check carefully when upgrading utilities.
+- **`bnd.baseline.fail.on.missing=false`**: OSGi semantic versioning baseline 
checking is relaxed when a baseline artifact is missing.
+- **Animal Sniffer**: Importing any API added after Java 8 (for example 
`java.util.Optional.ifPresentOrElse`) fails the build in the sniffer phase.
 
 # Security
 
 <!-- sling-security-default:start -->
 The threat model for this project is 
https://github.com/apache/sling/blob/master/docs/threat-model.md .
 <!-- sling-security-default:end -->
-
diff --git a/README.md b/README.md
index 67e2fb1..5448fec 100644
--- a/README.md
+++ b/README.md
@@ -37,6 +37,9 @@ mvn compile
 # Run tests
 mvn test
 
+# Build without tests
+mvn install -DskipTests
+
 # Check formatting
 mvn spotless:check
 
@@ -45,17 +48,23 @@ mvn spotless:apply
 
 # Full verification (includes integration checks from parent build)
 mvn verify
+
+# License header compliance
+mvn apache-rat:check
 ```
 
 ## Requirements and Dependencies
 
 * Java 8 (`sling.java.version=8`)
+* Maven build parent: `org.apache.sling:sling-bundle-parent:66`
 * Apache Jackrabbit Core `2.5.2` (provided)
 * JCR API (`javax.jcr:jcr`, provided)
 * OSGi APIs (`org.osgi.framework`, `org.osgi.util.tracker`,
   `org.osgi.annotation.versioning`, provided)
 * SLF4J API (provided)
 * JUnit 4 and `slf4j-simple` for tests
+* Animal Sniffer Maven Plugin 
(`org.codehaus.mojo:animal-sniffer-maven-plugin:1.24`)
+  enforces Java 8 API compatibility
 
 ## Source Layout
 
@@ -68,4 +77,7 @@ src/main/java/org/apache/sling/jcr/jackrabbit/base/
     DelegatingPrincipalProviderRegistry.java
     MultiplexingAuthorizableAction.java
     PrincipalProviderTracker.java
+    package-info.java
 ```
+
+There is currently no `src/test/java/` tree in this module.

Reply via email to