Re: Rewriter: resource structure forcing a dependency on OSGI services

2023-07-15 Thread Roy Teeuwen
Hey,

What is the reasoning around making this a JCR node in the first place? Why not 
make it an OSGi configuration instead?

I often had the same issue where the specific parser was not live yet as OSGi 
service, but the configuration already exists in the repo so I get the message 
that you stated 

Greets,
Roy

> On 14 Jul 2023, at 09:51, Jörg Hoh  wrote:
> 
> Hi,
> 
> I want to bring up a topic, which has caused me headaches for quite some
> time.
> 
> We have a rewriter configuration, which is stored within in the Sling
> Repository, and which is picked up any request. But we often see messages
> like this in the logs:
> 
> org.apache.sling.engine.impl.SlingRequestProcessorImpl service:
> Uncaught SlingException
> java.io.IOException: Unable to get component of class 'interface
> org.apache.sling.rewriter.Transformer' with type 'externallinks'.
> 
> This is normally caused by the requested rewriter not being present and
> should vanish as soon as that service is present. But I also have seen
> cases, that the instance was not getting up because of this; *at least
> that's my impression, I have not closely analyzed it. (I hoped that this
> problem of instances not starting up properly was fixed with SSLING-11317,
> but I spotted this behavior afterwards as well.)
> 
> The problem is the dependency of a repository structure to an OSGI service,
> which we cannot model with the means of OSGI (at least I am not aware of
> that); it will be always a polling mechanism to see if the service is
> present, and fail with an exception if not.
> 
> Are you aware of a way to change this dependency and make it more
> OSGI-aware, and not starting the relevant parts of the sling engine if the
> requested rewriter is not present?
> 
> Jörg
> 
> 
> -- 
> Cheers,
> Jörg Hoh,
> 
> https://cqdump.joerghoh.de
> Twitter: @joerghoh



Rewriter: resource structure forcing a dependency on OSGI services

2023-07-14 Thread Jörg Hoh
Hi,

I want to bring up a topic, which has caused me headaches for quite some
time.

We have a rewriter configuration, which is stored within in the Sling
Repository, and which is picked up any request. But we often see messages
like this in the logs:

org.apache.sling.engine.impl.SlingRequestProcessorImpl service:
Uncaught SlingException
java.io.IOException: Unable to get component of class 'interface
org.apache.sling.rewriter.Transformer' with type 'externallinks'.

This is normally caused by the requested rewriter not being present and
should vanish as soon as that service is present. But I also have seen
cases, that the instance was not getting up because of this; *at least
that's my impression, I have not closely analyzed it. (I hoped that this
problem of instances not starting up properly was fixed with SSLING-11317,
but I spotted this behavior afterwards as well.)

The problem is the dependency of a repository structure to an OSGI service,
which we cannot model with the means of OSGI (at least I am not aware of
that); it will be always a polling mechanism to see if the service is
present, and fail with an exception if not.

Are you aware of a way to change this dependency and make it more
OSGI-aware, and not starting the relevant parts of the sling engine if the
requested rewriter is not present?

Jörg


-- 
Cheers,
Jörg Hoh,

https://cqdump.joerghoh.de
Twitter: @joerghoh