Hi Herman I think the request is reasonable and the diff you shared looks fine.
Can you please create a JIRA issue to track this improvement, update your commits to reference the JIRA ID and submit a PR? Thanks! Regards Julian On Mon, 30 Jun 2025 at 09:31, Herman Ciechanowiec <her...@ciechanowiec.eu> wrote: > > Hi Jörg, > > Thank you for the quick reply. Here is a more detailed explanation of the > problem we are trying to solve: > > The core issue is that the > `org.apache.jackrabbit.oak.spi.security.authentication.external.impl.jmx.SynchronizationMBean` > for Oak's external authentication is unavailable in a standard Apache Sling > application based on the Apache Sling Starter ( > https://github.com/apache/sling-org-apache-sling-starter). This MBean is > essential for monitoring and managing external user synchronization. > > Here's a breakdown of the situation: > > 1. We have an instance of > `org.apache.jackrabbit.oak.spi.security.authentication.external.impl.ExternalLoginModuleFactory` > configured. > 2. Upon initialization, each `ExternalLoginModuleFactory` instance > registers its own `SynchronizationMBean` as a JMX MBean. However, this > registration only occurs if a > `org.apache.jackrabbit.oak.api.ContentRepository` service is registered in > the OSGi container. If no `ContentRepository` service is present, the > `SynchronizationMBean` is not registered ( > https://github.com/apache/jackrabbit-oak/blob/b5c317af752b3c421c9d341a7cfca407dff29af5/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/ExternalLoginModuleFactory.java#L203-L206 > ). > 3. A standard Apache Sling application based on the Apache Sling Starter > does not register a `ContentRepository` service. You are correct that > `org.apache.sling.jcr.api.SlingRepository` provides similar functionality. > However, from the perspective of the `ExternalLoginModuleFactory`, this > does not matter because it specifically requires a `ContentRepository` > service for the MBean registration, and `SlingRepository` is not a > `ContentRepository` service neither delivers registration for that service. > 4. Consequently, no `SynchronizationMBean` instances are registered as JMX > MBeans in a standard Apache Sling application. > > To solve this, we propose introducing a `ContentRepository` service > registration as demonstrated in this proof of concept: > https://github.com/apache/sling-org-apache-sling-jcr-oak-server/compare/master...ciechanowiec:sling-org-apache-sling-jcr-oak-server:poc-content-repo-registration > . > > Do you think this is the correct approach? If so, I would be happy to > submit a pull request. > > On 2025/06/30 05:49:00 Jörg Hoh wrote: > > Hi Herman, > > > > can you outline what problem you are trying to solve? > > > > Isn't the SlingRepository service ( > > > https://sling.apache.org/apidocs/sling13/org/apache/sling/jcr/api/SlingRepository.html > ) > > providing exactly the same functionality as the Oak ContentRepository (( > > > https://github.com/apache/jackrabbit-oak/blob/trunk/oak-api/src/main/java/org/apache/jackrabbit/oak/api/ContentRepository.java > > )? > > > > Jörg > > > > > > > > > > Am Fr., 27. Juni 2025 um 17:42 Uhr schrieb Herman Ciechanowiec < > > her...@ciechanowiec.eu>: > > > > > Dear Apache Sling Team, > > > > > > Jackrabbit Oak has internal dependencies on the > > > org.apache.jackrabbit.oak.api.ContentRepository service. For instance, > the > > > registration of > > > > > > > org.apache.jackrabbit.oak.spi.security.authentication.external.impl.jmx.SynchronizationMBean > > > will not occur if a ContentRepository service is unavailable (see link > > > < > > > > https://github.com/apache/jackrabbit-oak/blob/b5c317af752b3c421c9d341a7cfca407dff29af5/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/ExternalLoginModuleFactory.java#L203-L206 > > > > > > > ). > > > > > > However, the sling-org-apache-sling-jcr-oak-server bundle, which is > > > responsible for repository initialization and initializes the > > > ContentRepository object, does not register it as a ContentRepository > > > service type. > > > > > > What are your thoughts on changing this as demonstrated in my proof of > > > concept: link > > > < > > > > https://github.com/apache/sling-org-apache-sling-jcr-oak-server/compare/master...ciechanowiec:sling-org-apache-sling-jcr-oak-server:poc-content-repo-registration > > > >? > > > The change appears to be very simple, and I can submit a pull request > once > > > I receive confirmation that it is worth considering. > > > Kind regards, > > > > > > Herman Ciechanowiec > > > her...@ciechanowiec.eu > > > > > > > > > -- > > https://cqdump.joerghoh.de > > > > Kind regards, > > Herman Ciechanowiec > her...@ciechanowiec.eu