Re: Why get rid of the rewriter?

2019-09-12 Thread Justin Edelson
+1 great summary.

On Tue, Sep 10, 2019 at 12:37 PM Stefan Seifert 
wrote:

> i try to write a first summary:
>
> - we have good use cases for a rewriter in general, but are unhappy with
> the current implementation and it's way of configuration. the whole thing
> is a bit "alien" to the other parts of sling.
>
> - a new rewriter implementation should be performant and with up-to-date
> support for modern HTML. ideally something like SAX for HTML (not
> XML/XHTML). this would not cover other use cases producing something other
> than HTML, though. perhaps there are libraries out there that can be built
> upon. should also provide modular support, e.g. rewriting only the output
> of a single component or text fragment. maybe someone can come up with a
> proposal.
>
> - we have to keep the old rewriter for backward compatibility because it
> was used a lot in the past, but do not plan to maintain it further and
> probably will remove it from the sling starter as well. mark it as
> deprecated or contrib.
>
> - we do no longer want to use the rewriter for link validation and
> externalization, but support this as aspect in another, more appropriate
> way (with some basic support or hooks/SPIs from Sling itself, the rest is
> more up to upstream layers). we have currently only very rough ideas here,
> a proposal needs to be draftet as well.
>
> stefan
>
> >-Original Message-
> >From: Jason E Bailey [mailto:jason.bai...@24601.org]
> >Sent: Tuesday, September 10, 2019 6:09 PM
> >To: dev@sling.apache.org
> >Subject: Re: Why get rid of the rewriter?
> >
> >I'm positive towards the concept of the rewriter, a utility that provides
> >centralized features that addresses cross-cutting concerns with user
> >generated content.
> >
> >I'm not a fan of the current implementation of the rewriter.
> >
> >1.  As Ruben pointed out, as of HTML5  html doesn't have anything to do
> >with XML. There is no concept of namespace in HTML now. There is no self
> >closing tag. There may not be an end tag. There is a concept of implied
> >parent tags.
> >
> >2. TagSoup, which is currently used to parse the HTML, requires  fully
> >cached content and will attempt to validate the content and add to it,
> >where appropriate. Which isn't necessary.
> >
> >3. The Rewriter requires the pipeline configuration to be in a specific
> >place with a specific name which is inflexible and contrary to other tools
> >we use.
> >
> >
> >The point being that I would prefer to have the rewriter implementation
> >deprecated in favor of a more up to date solution then having the concept
> >of the rewriter deprecated.
> >
> >
> >
> >--
> >Jason
> >
> >On Tue, Sep 10, 2019, at 8:56 AM, Ruben Reusser wrote:
> >> As was pointed out before the rewriter is used in a lot of projects for
> >> other things than rewriting links (in our case we use it a lot to inject
> >> legal disclaimers or content fragment models)
> >>
> >> The bigger problem however is that it assumes hml == xml and hence can
> >not
> >> deal with attributes with no value
> >>
> >> Ruben
> >>
> >> On Tue, Sep 10, 2019 at 5:12 AM Bertrand Delacretaz
> >
> >> wrote:
> >>
> >> > Hi,
> >> >
> >> > On Mon, Sep 9, 2019 at 3:07 PM Jason E Bailey  wrote:
> >> > > ...Can anyone summarize why we are getting rid of it?...
> >> >
> >> > I'm not sure if we need to "get rid" of that module, even if some
> >> > portion of Sling users stops using it.
> >> >
> >> > The proposal at [1] says the rewriter should be "deprecated and no
> >> > longer used", which is apparently what was discussed at the adaptTo
> >> > round table or hackathon.
> >> >
> >> > If people still find the module useful I think it''s fine to move it
> >> > to "contrib" status instead of deprecating. As long as there's a
> >> > reasonable expectation that the module will be maintained I think
> >> > that's a realistic status, but our guarantees are weak for contrib
> >> > modules so there's no pressure.
> >> >
> >> > And if other modules provide better ways of doing similar things, link
> >> > to them from the rewriter's docs.
> >> >
> >> > -Bertrand
> >> >
> >> > [1]
> >> >
> >
> https://lists.apache.org/thread.html/c80093524461d7203fa9799b79ebbf6bfd1bb3
> >f9795865f4aaf3cd4a@%3Cdev.sling.apache.org%3E
> >> >
> >>
> >>
> >> --
> >> thank you
> >>
> >> Ruben Reusser
> >> CTO, headwire.com, Inc
> >>
>
>
>


Re: Why get rid of the rewriter?

2019-09-12 Thread Julian Sedding
@Stefan: thanks for the summary. +1 IMHO that captures the main points
of the discussion well.

Regards
Julian

On Tue, Sep 10, 2019 at 6:37 PM Stefan Seifert  wrote:
>
> i try to write a first summary:
>
> - we have good use cases for a rewriter in general, but are unhappy with the 
> current implementation and it's way of configuration. the whole thing is a 
> bit "alien" to the other parts of sling.
>
> - a new rewriter implementation should be performant and with up-to-date 
> support for modern HTML. ideally something like SAX for HTML (not XML/XHTML). 
> this would not cover other use cases producing something other than HTML, 
> though. perhaps there are libraries out there that can be built upon. should 
> also provide modular support, e.g. rewriting only the output of a single 
> component or text fragment. maybe someone can come up with a proposal.
>
> - we have to keep the old rewriter for backward compatibility because it was 
> used a lot in the past, but do not plan to maintain it further and probably 
> will remove it from the sling starter as well. mark it as deprecated or 
> contrib.
>
> - we do no longer want to use the rewriter for link validation and 
> externalization, but support this as aspect in another, more appropriate way 
> (with some basic support or hooks/SPIs from Sling itself, the rest is more up 
> to upstream layers). we have currently only very rough ideas here, a proposal 
> needs to be draftet as well.
>
> stefan
>
> >-Original Message-
> >From: Jason E Bailey [mailto:jason.bai...@24601.org]
> >Sent: Tuesday, September 10, 2019 6:09 PM
> >To: dev@sling.apache.org
> >Subject: Re: Why get rid of the rewriter?
> >
> >I'm positive towards the concept of the rewriter, a utility that provides
> >centralized features that addresses cross-cutting concerns with user
> >generated content.
> >
> >I'm not a fan of the current implementation of the rewriter.
> >
> >1.  As Ruben pointed out, as of HTML5  html doesn't have anything to do
> >with XML. There is no concept of namespace in HTML now. There is no self
> >closing tag. There may not be an end tag. There is a concept of implied
> >parent tags.
> >
> >2. TagSoup, which is currently used to parse the HTML, requires  fully
> >cached content and will attempt to validate the content and add to it,
> >where appropriate. Which isn't necessary.
> >
> >3. The Rewriter requires the pipeline configuration to be in a specific
> >place with a specific name which is inflexible and contrary to other tools
> >we use.
> >
> >
> >The point being that I would prefer to have the rewriter implementation
> >deprecated in favor of a more up to date solution then having the concept
> >of the rewriter deprecated.
> >
> >
> >
> >--
> >Jason
> >
> >On Tue, Sep 10, 2019, at 8:56 AM, Ruben Reusser wrote:
> >> As was pointed out before the rewriter is used in a lot of projects for
> >> other things than rewriting links (in our case we use it a lot to inject
> >> legal disclaimers or content fragment models)
> >>
> >> The bigger problem however is that it assumes hml == xml and hence can
> >not
> >> deal with attributes with no value
> >>
> >> Ruben
> >>
> >> On Tue, Sep 10, 2019 at 5:12 AM Bertrand Delacretaz
> >
> >> wrote:
> >>
> >> > Hi,
> >> >
> >> > On Mon, Sep 9, 2019 at 3:07 PM Jason E Bailey  wrote:
> >> > > ...Can anyone summarize why we are getting rid of it?...
> >> >
> >> > I'm not sure if we need to "get rid" of that module, even if some
> >> > portion of Sling users stops using it.
> >> >
> >> > The proposal at [1] says the rewriter should be "deprecated and no
> >> > longer used", which is apparently what was discussed at the adaptTo
> >> > round table or hackathon.
> >> >
> >> > If people still find the module useful I think it''s fine to move it
> >> > to "contrib" status instead of deprecating. As long as there's a
> >> > reasonable expectation that the module will be maintained I think
> >> > that's a realistic status, but our guarantees are weak for contrib
> >> > modules so there's no pressure.
> >> >
> >> > And if other modules provide better ways of doing similar things, link
> >> > to them from the rewriter's docs.
> >> >
> >> > -Bertrand
> >> >
> >> > [1]
> >> >
> >https://lists.apache.org/thread.html/c80093524461d7203fa9799b79ebbf6bfd1bb3
> >f9795865f4aaf3cd4a@%3Cdev.sling.apache.org%3E
> >> >
> >>
> >>
> >> --
> >> thank you
> >>
> >> Ruben Reusser
> >> CTO, headwire.com, Inc
> >>
>
>


Re: Why get rid of the rewriter?

2019-09-12 Thread Julian Sedding
@Konrad: I guess it boils down to rich-text processing again. So you
could argue that each component should explicitly process all its
rich-text properties explicitly and dump into a data-structure held in
a request attribute. It would be possible, but it would be much more
invasive than post-processing the markup, especially if the capability
is to be retrofitted in an application with 100+ existing components,
many of which would have rich-text properties.

Regards
Julian

On Tue, Sep 10, 2019 at 5:09 PM Konrad Windszus  wrote:
>
> Why can footnotes not be added as request attributes (either just as a 
> numeric counter or a complex object depending on the use case)?
>
> > On 10. Sep 2019, at 16:55, Julian Sedding  wrote:
> >
> > Another real-world use-case that was nicely solved using the rewriter
> > is footnotes. Footnotes are collected by a rewriter and consecutive
> > numbers injected into the markup. At the end of a page all collected
> > footnote's texts were then rendered.
> >
> > Off the top of my head I cannot name another elegant solution for this 
> > problem.
> >
> > Granted there is extra processing due to serialising -> parsing ->
> > serialising. However, I have yet to encounter a real world scenario
> > where this performance cost becomes a performance problem.
> >
> > HTL question: could HTL be (easily) modified to generate SAX events
> > instead of rendering the markup directly? That should (for HTL) allow
> > getting rid of the processing overhead. Just a thought on how to solve
> > the underlying issue while keeping the rewriter (maybe by allowing it
> > to be hooked in differently).
> >
> > Regards
> > Julian
> >
> >
> >
> >
> >
> >
> >
> > On Tue, Sep 10, 2019 at 4:35 PM Konrad Windszus  wrote:
> >>
> >> The new url rewriter SPI will be perfectly supporting AOP.
> >> Konrad
> >>
> >>> Am 10.09.2019 um 16:09 schrieb Justin Edelson :
> >>>
> >>> I see that the same assumptions are being made here that were made a year
> >>> ago when this was discussed. I would strongly caution against assuming 
> >>> that
> >>> the "aspect developer" and the "script developer" are the same person or
> >>> even work for the same organization. The value of AOP programming styles,
> >>> such as that used by the rewriter, is that these roles do not need to be
> >>> aware of each other.
> >>>
> >>> Agree 100% that AEM should change how link rewriting is done. But that's
> >>> not really Sling's concern per se with respect to the rewriter. Sling's
> >>> concern should be (1) whether or not AOP has value in a component-based
> >>> system (I think the answer here is a clear "yes") and (2) what the right
> >>> programming model is to support AOP. To Reuben's point, it is certainly
> >>> possible that SAX is the wrong programming model (I personally don't 
> >>> agree,
> >>> but I have a very soft spot for SAX). But the answer to that IMO is to
> >>> define a better programming model, not jump to the conclusion that AOP
> >>> doesn't have value.
> >>>
> >>> Cheers,
> >>> Justin
> >>>
> >>> On Tue, Sep 10, 2019 at 9:54 AM Carsten Ziegeler 
> >>> wrote:
> >>>
>  The rewriter is a generic solution (for xhtml) which works independent
>  of the scripting engine used. However, with engines like HTL which knows
>  about HTML and has all the contextual information about the html
>  elements, it is way more efficient to do any transformation whether its
>  link transformations or anything else already during that step.
>  Reparsing with a rather expensive XML processing pipeline is flexible
>  but also slows down the rendering unnecessary.
> 
>  Carsten
> 
> > Am 10.09.2019 um 14:56 schrieb Ruben Reusser:
> > As was pointed out before the rewriter is used in a lot of projects for
> > other things than rewriting links (in our case we use it a lot to inject
> > legal disclaimers or content fragment models)
> >
> > The bigger problem however is that it assumes hml == xml and hence can
>  not
> > deal with attributes with no value
> >
> > Ruben
> >
> > On Tue, Sep 10, 2019 at 5:12 AM Bertrand Delacretaz <
>  bdelacre...@apache.org>
> > wrote:
> >
> >> Hi,
> >>
> >>> On Mon, Sep 9, 2019 at 3:07 PM Jason E Bailey  wrote:
> >>> ...Can anyone summarize why we are getting rid of it?...
> >>
> >> I'm not sure if we need to "get rid" of that module, even if some
> >> portion of Sling users stops using it.
> >>
> >> The proposal at [1] says the rewriter should be "deprecated and no
> >> longer used", which is apparently what was discussed at the adaptTo
> >> round table or hackathon.
> >>
> >> If people still find the module useful I think it''s fine to move it
> >> to "contrib" status instead of deprecating. As long as there's a
> >> reasonable expectation that the module will be maintained I think
> >> that's a realistic status, but our guarantees are weak for 

Re: Why get rid of the rewriter?

2019-09-12 Thread Justin Edelson
... for urls, not for markup in general.

On Tue, Sep 10, 2019 at 10:35 AM Konrad Windszus  wrote:

> The new url rewriter SPI will be perfectly supporting AOP.
> Konrad
>
> > Am 10.09.2019 um 16:09 schrieb Justin Edelson  >:
> >
> > I see that the same assumptions are being made here that were made a year
> > ago when this was discussed. I would strongly caution against assuming
> that
> > the "aspect developer" and the "script developer" are the same person or
> > even work for the same organization. The value of AOP programming styles,
> > such as that used by the rewriter, is that these roles do not need to be
> > aware of each other.
> >
> > Agree 100% that AEM should change how link rewriting is done. But that's
> > not really Sling's concern per se with respect to the rewriter. Sling's
> > concern should be (1) whether or not AOP has value in a component-based
> > system (I think the answer here is a clear "yes") and (2) what the right
> > programming model is to support AOP. To Reuben's point, it is certainly
> > possible that SAX is the wrong programming model (I personally don't
> agree,
> > but I have a very soft spot for SAX). But the answer to that IMO is to
> > define a better programming model, not jump to the conclusion that AOP
> > doesn't have value.
> >
> > Cheers,
> > Justin
> >
> > On Tue, Sep 10, 2019 at 9:54 AM Carsten Ziegeler 
> > wrote:
> >
> >> The rewriter is a generic solution (for xhtml) which works independent
> >> of the scripting engine used. However, with engines like HTL which knows
> >> about HTML and has all the contextual information about the html
> >> elements, it is way more efficient to do any transformation whether its
> >> link transformations or anything else already during that step.
> >> Reparsing with a rather expensive XML processing pipeline is flexible
> >> but also slows down the rendering unnecessary.
> >>
> >> Carsten
> >>
> >>> Am 10.09.2019 um 14:56 schrieb Ruben Reusser:
> >>> As was pointed out before the rewriter is used in a lot of projects for
> >>> other things than rewriting links (in our case we use it a lot to
> inject
> >>> legal disclaimers or content fragment models)
> >>>
> >>> The bigger problem however is that it assumes hml == xml and hence can
> >> not
> >>> deal with attributes with no value
> >>>
> >>> Ruben
> >>>
> >>> On Tue, Sep 10, 2019 at 5:12 AM Bertrand Delacretaz <
> >> bdelacre...@apache.org>
> >>> wrote:
> >>>
>  Hi,
> 
> > On Mon, Sep 9, 2019 at 3:07 PM Jason E Bailey 
> wrote:
> > ...Can anyone summarize why we are getting rid of it?...
> 
>  I'm not sure if we need to "get rid" of that module, even if some
>  portion of Sling users stops using it.
> 
>  The proposal at [1] says the rewriter should be "deprecated and no
>  longer used", which is apparently what was discussed at the adaptTo
>  round table or hackathon.
> 
>  If people still find the module useful I think it''s fine to move it
>  to "contrib" status instead of deprecating. As long as there's a
>  reasonable expectation that the module will be maintained I think
>  that's a realistic status, but our guarantees are weak for contrib
>  modules so there's no pressure.
> 
>  And if other modules provide better ways of doing similar things, link
>  to them from the rewriter's docs.
> 
>  -Bertrand
> 
>  [1]
> 
> >>
> https://lists.apache.org/thread.html/c80093524461d7203fa9799b79ebbf6bfd1bb3f9795865f4aaf3cd4a@%3Cdev.sling.apache.org%3E
> 
> >>>
> >>>
> >>
> >> --
> >> --
> >> Carsten Ziegeler
> >> Adobe Research Switzerland
> >> cziege...@apache.org
> >>
>
>


Re: Why get rid of the rewriter?

2019-09-10 Thread Carsten Ziegeler
Sounds good to me, now for the rewriter I would like to have something 
more special geared towards html thank a generic thing like SAX. So 
basically instead of getting the information that the element name is 
"a" and then you have to figure out that this is a link, you already get 
the information this is a "LINK" or a "SRC" or whatever.


Regards
Carsten

Am 10.09.2019 um 18:37 schrieb Stefan Seifert:

i try to write a first summary:

- we have good use cases for a rewriter in general, but are unhappy with the current 
implementation and it's way of configuration. the whole thing is a bit "alien" 
to the other parts of sling.

- a new rewriter implementation should be performant and with up-to-date 
support for modern HTML. ideally something like SAX for HTML (not XML/XHTML). 
this would not cover other use cases producing something other than HTML, 
though. perhaps there are libraries out there that can be built upon. should 
also provide modular support, e.g. rewriting only the output of a single 
component or text fragment. maybe someone can come up with a proposal.

- we have to keep the old rewriter for backward compatibility because it was 
used a lot in the past, but do not plan to maintain it further and probably 
will remove it from the sling starter as well. mark it as deprecated or contrib.

- we do no longer want to use the rewriter for link validation and 
externalization, but support this as aspect in another, more appropriate way 
(with some basic support or hooks/SPIs from Sling itself, the rest is more up 
to upstream layers). we have currently only very rough ideas here, a proposal 
needs to be draftet as well.

stefan


-Original Message-
From: Jason E Bailey [mailto:jason.bai...@24601.org]
Sent: Tuesday, September 10, 2019 6:09 PM
To: dev@sling.apache.org
Subject: Re: Why get rid of the rewriter?

I'm positive towards the concept of the rewriter, a utility that provides
centralized features that addresses cross-cutting concerns with user
generated content.

I'm not a fan of the current implementation of the rewriter.

1.  As Ruben pointed out, as of HTML5  html doesn't have anything to do
with XML. There is no concept of namespace in HTML now. There is no self
closing tag. There may not be an end tag. There is a concept of implied
parent tags.

2. TagSoup, which is currently used to parse the HTML, requires  fully
cached content and will attempt to validate the content and add to it,
where appropriate. Which isn't necessary.

3. The Rewriter requires the pipeline configuration to be in a specific
place with a specific name which is inflexible and contrary to other tools
we use.


The point being that I would prefer to have the rewriter implementation
deprecated in favor of a more up to date solution then having the concept
of the rewriter deprecated.



--
Jason

On Tue, Sep 10, 2019, at 8:56 AM, Ruben Reusser wrote:

As was pointed out before the rewriter is used in a lot of projects for
other things than rewriting links (in our case we use it a lot to inject
legal disclaimers or content fragment models)

The bigger problem however is that it assumes hml == xml and hence can

not

deal with attributes with no value

Ruben

On Tue, Sep 10, 2019 at 5:12 AM Bertrand Delacretaz



wrote:


Hi,

On Mon, Sep 9, 2019 at 3:07 PM Jason E Bailey  wrote:

...Can anyone summarize why we are getting rid of it?...


I'm not sure if we need to "get rid" of that module, even if some
portion of Sling users stops using it.

The proposal at [1] says the rewriter should be "deprecated and no
longer used", which is apparently what was discussed at the adaptTo
round table or hackathon.

If people still find the module useful I think it''s fine to move it
to "contrib" status instead of deprecating. As long as there's a
reasonable expectation that the module will be maintained I think
that's a realistic status, but our guarantees are weak for contrib
modules so there's no pressure.

And if other modules provide better ways of doing similar things, link
to them from the rewriter's docs.

-Bertrand

[1]


https://lists.apache.org/thread.html/c80093524461d7203fa9799b79ebbf6bfd1bb3
f9795865f4aaf3cd4a@%3Cdev.sling.apache.org%3E





--
thank you

Ruben Reusser
CTO, headwire.com, Inc






--
--
Carsten Ziegeler
Adobe Research Switzerland
cziege...@apache.org


Re: Why get rid of the rewriter?

2019-09-10 Thread Jason E Bailey
+1 for the summary

--
Jason

On Tue, Sep 10, 2019, at 12:37 PM, Stefan Seifert wrote:
> i try to write a first summary:
> 
> - we have good use cases for a rewriter in general, but are unhappy 
> with the current implementation and it's way of configuration. the 
> whole thing is a bit "alien" to the other parts of sling.
> 
> - a new rewriter implementation should be performant and with 
> up-to-date support for modern HTML. ideally something like SAX for HTML 
> (not XML/XHTML). this would not cover other use cases producing 
> something other than HTML, though. perhaps there are libraries out 
> there that can be built upon. should also provide modular support, e.g. 
> rewriting only the output of a single component or text fragment. maybe 
> someone can come up with a proposal.
> 
> - we have to keep the old rewriter for backward compatibility because 
> it was used a lot in the past, but do not plan to maintain it further 
> and probably will remove it from the sling starter as well. mark it as 
> deprecated or contrib.
> 
> - we do no longer want to use the rewriter for link validation and 
> externalization, but support this as aspect in another, more 
> appropriate way (with some basic support or hooks/SPIs from Sling 
> itself, the rest is more up to upstream layers). we have currently only 
> very rough ideas here, a proposal needs to be draftet as well.
> 
> stefan
> 
> >-Original Message-
> >From: Jason E Bailey [mailto:jason.bai...@24601.org]
> >Sent: Tuesday, September 10, 2019 6:09 PM
> >To: dev@sling.apache.org
> >Subject: Re: Why get rid of the rewriter?
> >
> >I'm positive towards the concept of the rewriter, a utility that provides
> >centralized features that addresses cross-cutting concerns with user
> >generated content.
> >
> >I'm not a fan of the current implementation of the rewriter.
> >
> >1.  As Ruben pointed out, as of HTML5  html doesn't have anything to do
> >with XML. There is no concept of namespace in HTML now. There is no self
> >closing tag. There may not be an end tag. There is a concept of implied
> >parent tags.
> >
> >2. TagSoup, which is currently used to parse the HTML, requires  fully
> >cached content and will attempt to validate the content and add to it,
> >where appropriate. Which isn't necessary.
> >
> >3. The Rewriter requires the pipeline configuration to be in a specific
> >place with a specific name which is inflexible and contrary to other tools
> >we use.
> >
> >
> >The point being that I would prefer to have the rewriter implementation
> >deprecated in favor of a more up to date solution then having the concept
> >of the rewriter deprecated.
> >
> >
> >
> >--
> >Jason
> >
> >On Tue, Sep 10, 2019, at 8:56 AM, Ruben Reusser wrote:
> >> As was pointed out before the rewriter is used in a lot of projects for
> >> other things than rewriting links (in our case we use it a lot to inject
> >> legal disclaimers or content fragment models)
> >>
> >> The bigger problem however is that it assumes hml == xml and hence can
> >not
> >> deal with attributes with no value
> >>
> >> Ruben
> >>
> >> On Tue, Sep 10, 2019 at 5:12 AM Bertrand Delacretaz
> >
> >> wrote:
> >>
> >> > Hi,
> >> >
> >> > On Mon, Sep 9, 2019 at 3:07 PM Jason E Bailey  wrote:
> >> > > ...Can anyone summarize why we are getting rid of it?...
> >> >
> >> > I'm not sure if we need to "get rid" of that module, even if some
> >> > portion of Sling users stops using it.
> >> >
> >> > The proposal at [1] says the rewriter should be "deprecated and no
> >> > longer used", which is apparently what was discussed at the adaptTo
> >> > round table or hackathon.
> >> >
> >> > If people still find the module useful I think it''s fine to move it
> >> > to "contrib" status instead of deprecating. As long as there's a
> >> > reasonable expectation that the module will be maintained I think
> >> > that's a realistic status, but our guarantees are weak for contrib
> >> > modules so there's no pressure.
> >> >
> >> > And if other modules provide better ways of doing similar things, link
> >> > to them from the rewriter's docs.
> >> >
> >> > -Bertrand
> >> >
> >> > [1]
> >> >
> >https://lists.apache.org/thread.html/c80093524461d7203fa9799b79ebbf6bfd1bb3
> >f9795865f4aaf3cd4a@%3Cdev.sling.apache.org%3E
> >> >
> >>
> >>
> >> --
> >> thank you
> >>
> >> Ruben Reusser
> >> CTO, headwire.com, Inc
> >>
> 
> 
>


RE: Why get rid of the rewriter?

2019-09-10 Thread Stefan Seifert
i try to write a first summary:

- we have good use cases for a rewriter in general, but are unhappy with the 
current implementation and it's way of configuration. the whole thing is a bit 
"alien" to the other parts of sling.

- a new rewriter implementation should be performant and with up-to-date 
support for modern HTML. ideally something like SAX for HTML (not XML/XHTML). 
this would not cover other use cases producing something other than HTML, 
though. perhaps there are libraries out there that can be built upon. should 
also provide modular support, e.g. rewriting only the output of a single 
component or text fragment. maybe someone can come up with a proposal.

- we have to keep the old rewriter for backward compatibility because it was 
used a lot in the past, but do not plan to maintain it further and probably 
will remove it from the sling starter as well. mark it as deprecated or contrib.

- we do no longer want to use the rewriter for link validation and 
externalization, but support this as aspect in another, more appropriate way 
(with some basic support or hooks/SPIs from Sling itself, the rest is more up 
to upstream layers). we have currently only very rough ideas here, a proposal 
needs to be draftet as well.

stefan

>-Original Message-
>From: Jason E Bailey [mailto:jason.bai...@24601.org]
>Sent: Tuesday, September 10, 2019 6:09 PM
>To: dev@sling.apache.org
>Subject: Re: Why get rid of the rewriter?
>
>I'm positive towards the concept of the rewriter, a utility that provides
>centralized features that addresses cross-cutting concerns with user
>generated content.
>
>I'm not a fan of the current implementation of the rewriter.
>
>1.  As Ruben pointed out, as of HTML5  html doesn't have anything to do
>with XML. There is no concept of namespace in HTML now. There is no self
>closing tag. There may not be an end tag. There is a concept of implied
>parent tags.
>
>2. TagSoup, which is currently used to parse the HTML, requires  fully
>cached content and will attempt to validate the content and add to it,
>where appropriate. Which isn't necessary.
>
>3. The Rewriter requires the pipeline configuration to be in a specific
>place with a specific name which is inflexible and contrary to other tools
>we use.
>
>
>The point being that I would prefer to have the rewriter implementation
>deprecated in favor of a more up to date solution then having the concept
>of the rewriter deprecated.
>
>
>
>--
>Jason
>
>On Tue, Sep 10, 2019, at 8:56 AM, Ruben Reusser wrote:
>> As was pointed out before the rewriter is used in a lot of projects for
>> other things than rewriting links (in our case we use it a lot to inject
>> legal disclaimers or content fragment models)
>>
>> The bigger problem however is that it assumes hml == xml and hence can
>not
>> deal with attributes with no value
>>
>> Ruben
>>
>> On Tue, Sep 10, 2019 at 5:12 AM Bertrand Delacretaz
>
>> wrote:
>>
>> > Hi,
>> >
>> > On Mon, Sep 9, 2019 at 3:07 PM Jason E Bailey  wrote:
>> > > ...Can anyone summarize why we are getting rid of it?...
>> >
>> > I'm not sure if we need to "get rid" of that module, even if some
>> > portion of Sling users stops using it.
>> >
>> > The proposal at [1] says the rewriter should be "deprecated and no
>> > longer used", which is apparently what was discussed at the adaptTo
>> > round table or hackathon.
>> >
>> > If people still find the module useful I think it''s fine to move it
>> > to "contrib" status instead of deprecating. As long as there's a
>> > reasonable expectation that the module will be maintained I think
>> > that's a realistic status, but our guarantees are weak for contrib
>> > modules so there's no pressure.
>> >
>> > And if other modules provide better ways of doing similar things, link
>> > to them from the rewriter's docs.
>> >
>> > -Bertrand
>> >
>> > [1]
>> >
>https://lists.apache.org/thread.html/c80093524461d7203fa9799b79ebbf6bfd1bb3
>f9795865f4aaf3cd4a@%3Cdev.sling.apache.org%3E
>> >
>>
>>
>> --
>> thank you
>>
>> Ruben Reusser
>> CTO, headwire.com, Inc
>>




Re: Why get rid of the rewriter?

2019-09-10 Thread Jason E Bailey
I'm positive towards the concept of the rewriter, a utility that provides 
centralized features that addresses cross-cutting concerns with user generated 
content.

I'm not a fan of the current implementation of the rewriter.

1.  As Ruben pointed out, as of HTML5  html doesn't have anything to do with 
XML. There is no concept of namespace in HTML now. There is no self closing 
tag. There may not be an end tag. There is a concept of implied parent tags. 

2. TagSoup, which is currently used to parse the HTML, requires  fully cached 
content and will attempt to validate the content and add to it, where 
appropriate. Which isn't necessary.

3. The Rewriter requires the pipeline configuration to be in a specific place 
with a specific name which is inflexible and contrary to other tools we use.


The point being that I would prefer to have the rewriter implementation 
deprecated in favor of a more up to date solution then having the concept of 
the rewriter deprecated.



--
Jason

On Tue, Sep 10, 2019, at 8:56 AM, Ruben Reusser wrote:
> As was pointed out before the rewriter is used in a lot of projects for
> other things than rewriting links (in our case we use it a lot to inject
> legal disclaimers or content fragment models)
> 
> The bigger problem however is that it assumes hml == xml and hence can not
> deal with attributes with no value
> 
> Ruben
> 
> On Tue, Sep 10, 2019 at 5:12 AM Bertrand Delacretaz 
> wrote:
> 
> > Hi,
> >
> > On Mon, Sep 9, 2019 at 3:07 PM Jason E Bailey  wrote:
> > > ...Can anyone summarize why we are getting rid of it?...
> >
> > I'm not sure if we need to "get rid" of that module, even if some
> > portion of Sling users stops using it.
> >
> > The proposal at [1] says the rewriter should be "deprecated and no
> > longer used", which is apparently what was discussed at the adaptTo
> > round table or hackathon.
> >
> > If people still find the module useful I think it''s fine to move it
> > to "contrib" status instead of deprecating. As long as there's a
> > reasonable expectation that the module will be maintained I think
> > that's a realistic status, but our guarantees are weak for contrib
> > modules so there's no pressure.
> >
> > And if other modules provide better ways of doing similar things, link
> > to them from the rewriter's docs.
> >
> > -Bertrand
> >
> > [1]
> > https://lists.apache.org/thread.html/c80093524461d7203fa9799b79ebbf6bfd1bb3f9795865f4aaf3cd4a@%3Cdev.sling.apache.org%3E
> >
> 
> 
> -- 
> thank you
> 
> Ruben Reusser
> CTO, headwire.com, Inc
>


Re: Why get rid of the rewriter?

2019-09-10 Thread Konrad Windszus
Why can footnotes not be added as request attributes (either just as a numeric 
counter or a complex object depending on the use case)?

> On 10. Sep 2019, at 16:55, Julian Sedding  wrote:
> 
> Another real-world use-case that was nicely solved using the rewriter
> is footnotes. Footnotes are collected by a rewriter and consecutive
> numbers injected into the markup. At the end of a page all collected
> footnote's texts were then rendered.
> 
> Off the top of my head I cannot name another elegant solution for this 
> problem.
> 
> Granted there is extra processing due to serialising -> parsing ->
> serialising. However, I have yet to encounter a real world scenario
> where this performance cost becomes a performance problem.
> 
> HTL question: could HTL be (easily) modified to generate SAX events
> instead of rendering the markup directly? That should (for HTL) allow
> getting rid of the processing overhead. Just a thought on how to solve
> the underlying issue while keeping the rewriter (maybe by allowing it
> to be hooked in differently).
> 
> Regards
> Julian
> 
> 
> 
> 
> 
> 
> 
> On Tue, Sep 10, 2019 at 4:35 PM Konrad Windszus  wrote:
>> 
>> The new url rewriter SPI will be perfectly supporting AOP.
>> Konrad
>> 
>>> Am 10.09.2019 um 16:09 schrieb Justin Edelson :
>>> 
>>> I see that the same assumptions are being made here that were made a year
>>> ago when this was discussed. I would strongly caution against assuming that
>>> the "aspect developer" and the "script developer" are the same person or
>>> even work for the same organization. The value of AOP programming styles,
>>> such as that used by the rewriter, is that these roles do not need to be
>>> aware of each other.
>>> 
>>> Agree 100% that AEM should change how link rewriting is done. But that's
>>> not really Sling's concern per se with respect to the rewriter. Sling's
>>> concern should be (1) whether or not AOP has value in a component-based
>>> system (I think the answer here is a clear "yes") and (2) what the right
>>> programming model is to support AOP. To Reuben's point, it is certainly
>>> possible that SAX is the wrong programming model (I personally don't agree,
>>> but I have a very soft spot for SAX). But the answer to that IMO is to
>>> define a better programming model, not jump to the conclusion that AOP
>>> doesn't have value.
>>> 
>>> Cheers,
>>> Justin
>>> 
>>> On Tue, Sep 10, 2019 at 9:54 AM Carsten Ziegeler 
>>> wrote:
>>> 
 The rewriter is a generic solution (for xhtml) which works independent
 of the scripting engine used. However, with engines like HTL which knows
 about HTML and has all the contextual information about the html
 elements, it is way more efficient to do any transformation whether its
 link transformations or anything else already during that step.
 Reparsing with a rather expensive XML processing pipeline is flexible
 but also slows down the rendering unnecessary.
 
 Carsten
 
> Am 10.09.2019 um 14:56 schrieb Ruben Reusser:
> As was pointed out before the rewriter is used in a lot of projects for
> other things than rewriting links (in our case we use it a lot to inject
> legal disclaimers or content fragment models)
> 
> The bigger problem however is that it assumes hml == xml and hence can
 not
> deal with attributes with no value
> 
> Ruben
> 
> On Tue, Sep 10, 2019 at 5:12 AM Bertrand Delacretaz <
 bdelacre...@apache.org>
> wrote:
> 
>> Hi,
>> 
>>> On Mon, Sep 9, 2019 at 3:07 PM Jason E Bailey  wrote:
>>> ...Can anyone summarize why we are getting rid of it?...
>> 
>> I'm not sure if we need to "get rid" of that module, even if some
>> portion of Sling users stops using it.
>> 
>> The proposal at [1] says the rewriter should be "deprecated and no
>> longer used", which is apparently what was discussed at the adaptTo
>> round table or hackathon.
>> 
>> If people still find the module useful I think it''s fine to move it
>> to "contrib" status instead of deprecating. As long as there's a
>> reasonable expectation that the module will be maintained I think
>> that's a realistic status, but our guarantees are weak for contrib
>> modules so there's no pressure.
>> 
>> And if other modules provide better ways of doing similar things, link
>> to them from the rewriter's docs.
>> 
>> -Bertrand
>> 
>> [1]
>> 
 https://lists.apache.org/thread.html/c80093524461d7203fa9799b79ebbf6bfd1bb3f9795865f4aaf3cd4a@%3Cdev.sling.apache.org%3E
>> 
> 
> 
 
 --
 --
 Carsten Ziegeler
 Adobe Research Switzerland
 cziege...@apache.org
 
>> 



Re: Why get rid of the rewriter?

2019-09-10 Thread Julian Sedding
Another real-world use-case that was nicely solved using the rewriter
is footnotes. Footnotes are collected by a rewriter and consecutive
numbers injected into the markup. At the end of a page all collected
footnote's texts were then rendered.

Off the top of my head I cannot name another elegant solution for this problem.

Granted there is extra processing due to serialising -> parsing ->
serialising. However, I have yet to encounter a real world scenario
where this performance cost becomes a performance problem.

HTL question: could HTL be (easily) modified to generate SAX events
instead of rendering the markup directly? That should (for HTL) allow
getting rid of the processing overhead. Just a thought on how to solve
the underlying issue while keeping the rewriter (maybe by allowing it
to be hooked in differently).

Regards
Julian







On Tue, Sep 10, 2019 at 4:35 PM Konrad Windszus  wrote:
>
> The new url rewriter SPI will be perfectly supporting AOP.
> Konrad
>
> > Am 10.09.2019 um 16:09 schrieb Justin Edelson :
> >
> > I see that the same assumptions are being made here that were made a year
> > ago when this was discussed. I would strongly caution against assuming that
> > the "aspect developer" and the "script developer" are the same person or
> > even work for the same organization. The value of AOP programming styles,
> > such as that used by the rewriter, is that these roles do not need to be
> > aware of each other.
> >
> > Agree 100% that AEM should change how link rewriting is done. But that's
> > not really Sling's concern per se with respect to the rewriter. Sling's
> > concern should be (1) whether or not AOP has value in a component-based
> > system (I think the answer here is a clear "yes") and (2) what the right
> > programming model is to support AOP. To Reuben's point, it is certainly
> > possible that SAX is the wrong programming model (I personally don't agree,
> > but I have a very soft spot for SAX). But the answer to that IMO is to
> > define a better programming model, not jump to the conclusion that AOP
> > doesn't have value.
> >
> > Cheers,
> > Justin
> >
> > On Tue, Sep 10, 2019 at 9:54 AM Carsten Ziegeler 
> > wrote:
> >
> >> The rewriter is a generic solution (for xhtml) which works independent
> >> of the scripting engine used. However, with engines like HTL which knows
> >> about HTML and has all the contextual information about the html
> >> elements, it is way more efficient to do any transformation whether its
> >> link transformations or anything else already during that step.
> >> Reparsing with a rather expensive XML processing pipeline is flexible
> >> but also slows down the rendering unnecessary.
> >>
> >> Carsten
> >>
> >>> Am 10.09.2019 um 14:56 schrieb Ruben Reusser:
> >>> As was pointed out before the rewriter is used in a lot of projects for
> >>> other things than rewriting links (in our case we use it a lot to inject
> >>> legal disclaimers or content fragment models)
> >>>
> >>> The bigger problem however is that it assumes hml == xml and hence can
> >> not
> >>> deal with attributes with no value
> >>>
> >>> Ruben
> >>>
> >>> On Tue, Sep 10, 2019 at 5:12 AM Bertrand Delacretaz <
> >> bdelacre...@apache.org>
> >>> wrote:
> >>>
>  Hi,
> 
> > On Mon, Sep 9, 2019 at 3:07 PM Jason E Bailey  wrote:
> > ...Can anyone summarize why we are getting rid of it?...
> 
>  I'm not sure if we need to "get rid" of that module, even if some
>  portion of Sling users stops using it.
> 
>  The proposal at [1] says the rewriter should be "deprecated and no
>  longer used", which is apparently what was discussed at the adaptTo
>  round table or hackathon.
> 
>  If people still find the module useful I think it''s fine to move it
>  to "contrib" status instead of deprecating. As long as there's a
>  reasonable expectation that the module will be maintained I think
>  that's a realistic status, but our guarantees are weak for contrib
>  modules so there's no pressure.
> 
>  And if other modules provide better ways of doing similar things, link
>  to them from the rewriter's docs.
> 
>  -Bertrand
> 
>  [1]
> 
> >> https://lists.apache.org/thread.html/c80093524461d7203fa9799b79ebbf6bfd1bb3f9795865f4aaf3cd4a@%3Cdev.sling.apache.org%3E
> 
> >>>
> >>>
> >>
> >> --
> >> --
> >> Carsten Ziegeler
> >> Adobe Research Switzerland
> >> cziege...@apache.org
> >>
>


Re: Why get rid of the rewriter?

2019-09-10 Thread Konrad Windszus
The new url rewriter SPI will be perfectly supporting AOP.
Konrad

> Am 10.09.2019 um 16:09 schrieb Justin Edelson :
> 
> I see that the same assumptions are being made here that were made a year
> ago when this was discussed. I would strongly caution against assuming that
> the "aspect developer" and the "script developer" are the same person or
> even work for the same organization. The value of AOP programming styles,
> such as that used by the rewriter, is that these roles do not need to be
> aware of each other.
> 
> Agree 100% that AEM should change how link rewriting is done. But that's
> not really Sling's concern per se with respect to the rewriter. Sling's
> concern should be (1) whether or not AOP has value in a component-based
> system (I think the answer here is a clear "yes") and (2) what the right
> programming model is to support AOP. To Reuben's point, it is certainly
> possible that SAX is the wrong programming model (I personally don't agree,
> but I have a very soft spot for SAX). But the answer to that IMO is to
> define a better programming model, not jump to the conclusion that AOP
> doesn't have value.
> 
> Cheers,
> Justin
> 
> On Tue, Sep 10, 2019 at 9:54 AM Carsten Ziegeler 
> wrote:
> 
>> The rewriter is a generic solution (for xhtml) which works independent
>> of the scripting engine used. However, with engines like HTL which knows
>> about HTML and has all the contextual information about the html
>> elements, it is way more efficient to do any transformation whether its
>> link transformations or anything else already during that step.
>> Reparsing with a rather expensive XML processing pipeline is flexible
>> but also slows down the rendering unnecessary.
>> 
>> Carsten
>> 
>>> Am 10.09.2019 um 14:56 schrieb Ruben Reusser:
>>> As was pointed out before the rewriter is used in a lot of projects for
>>> other things than rewriting links (in our case we use it a lot to inject
>>> legal disclaimers or content fragment models)
>>> 
>>> The bigger problem however is that it assumes hml == xml and hence can
>> not
>>> deal with attributes with no value
>>> 
>>> Ruben
>>> 
>>> On Tue, Sep 10, 2019 at 5:12 AM Bertrand Delacretaz <
>> bdelacre...@apache.org>
>>> wrote:
>>> 
 Hi,
 
> On Mon, Sep 9, 2019 at 3:07 PM Jason E Bailey  wrote:
> ...Can anyone summarize why we are getting rid of it?...
 
 I'm not sure if we need to "get rid" of that module, even if some
 portion of Sling users stops using it.
 
 The proposal at [1] says the rewriter should be "deprecated and no
 longer used", which is apparently what was discussed at the adaptTo
 round table or hackathon.
 
 If people still find the module useful I think it''s fine to move it
 to "contrib" status instead of deprecating. As long as there's a
 reasonable expectation that the module will be maintained I think
 that's a realistic status, but our guarantees are weak for contrib
 modules so there's no pressure.
 
 And if other modules provide better ways of doing similar things, link
 to them from the rewriter's docs.
 
 -Bertrand
 
 [1]
 
>> https://lists.apache.org/thread.html/c80093524461d7203fa9799b79ebbf6bfd1bb3f9795865f4aaf3cd4a@%3Cdev.sling.apache.org%3E
 
>>> 
>>> 
>> 
>> --
>> --
>> Carsten Ziegeler
>> Adobe Research Switzerland
>> cziege...@apache.org
>> 



Re: Why get rid of the rewriter?

2019-09-10 Thread Justin Edelson
I see that the same assumptions are being made here that were made a year
ago when this was discussed. I would strongly caution against assuming that
the "aspect developer" and the "script developer" are the same person or
even work for the same organization. The value of AOP programming styles,
such as that used by the rewriter, is that these roles do not need to be
aware of each other.

Agree 100% that AEM should change how link rewriting is done. But that's
not really Sling's concern per se with respect to the rewriter. Sling's
concern should be (1) whether or not AOP has value in a component-based
system (I think the answer here is a clear "yes") and (2) what the right
programming model is to support AOP. To Reuben's point, it is certainly
possible that SAX is the wrong programming model (I personally don't agree,
but I have a very soft spot for SAX). But the answer to that IMO is to
define a better programming model, not jump to the conclusion that AOP
doesn't have value.

Cheers,
Justin

On Tue, Sep 10, 2019 at 9:54 AM Carsten Ziegeler 
wrote:

> The rewriter is a generic solution (for xhtml) which works independent
> of the scripting engine used. However, with engines like HTL which knows
> about HTML and has all the contextual information about the html
> elements, it is way more efficient to do any transformation whether its
> link transformations or anything else already during that step.
> Reparsing with a rather expensive XML processing pipeline is flexible
> but also slows down the rendering unnecessary.
>
> Carsten
>
> Am 10.09.2019 um 14:56 schrieb Ruben Reusser:
> > As was pointed out before the rewriter is used in a lot of projects for
> > other things than rewriting links (in our case we use it a lot to inject
> > legal disclaimers or content fragment models)
> >
> > The bigger problem however is that it assumes hml == xml and hence can
> not
> > deal with attributes with no value
> >
> > Ruben
> >
> > On Tue, Sep 10, 2019 at 5:12 AM Bertrand Delacretaz <
> bdelacre...@apache.org>
> > wrote:
> >
> >> Hi,
> >>
> >> On Mon, Sep 9, 2019 at 3:07 PM Jason E Bailey  wrote:
> >>> ...Can anyone summarize why we are getting rid of it?...
> >>
> >> I'm not sure if we need to "get rid" of that module, even if some
> >> portion of Sling users stops using it.
> >>
> >> The proposal at [1] says the rewriter should be "deprecated and no
> >> longer used", which is apparently what was discussed at the adaptTo
> >> round table or hackathon.
> >>
> >> If people still find the module useful I think it''s fine to move it
> >> to "contrib" status instead of deprecating. As long as there's a
> >> reasonable expectation that the module will be maintained I think
> >> that's a realistic status, but our guarantees are weak for contrib
> >> modules so there's no pressure.
> >>
> >> And if other modules provide better ways of doing similar things, link
> >> to them from the rewriter's docs.
> >>
> >> -Bertrand
> >>
> >> [1]
> >>
> https://lists.apache.org/thread.html/c80093524461d7203fa9799b79ebbf6bfd1bb3f9795865f4aaf3cd4a@%3Cdev.sling.apache.org%3E
> >>
> >
> >
>
> --
> --
> Carsten Ziegeler
> Adobe Research Switzerland
> cziege...@apache.org
>


Re: Why get rid of the rewriter?

2019-09-10 Thread Carsten Ziegeler
The rewriter is a generic solution (for xhtml) which works independent 
of the scripting engine used. However, with engines like HTL which knows 
about HTML and has all the contextual information about the html 
elements, it is way more efficient to do any transformation whether its 
link transformations or anything else already during that step.
Reparsing with a rather expensive XML processing pipeline is flexible 
but also slows down the rendering unnecessary.


Carsten

Am 10.09.2019 um 14:56 schrieb Ruben Reusser:

As was pointed out before the rewriter is used in a lot of projects for
other things than rewriting links (in our case we use it a lot to inject
legal disclaimers or content fragment models)

The bigger problem however is that it assumes hml == xml and hence can not
deal with attributes with no value

Ruben

On Tue, Sep 10, 2019 at 5:12 AM Bertrand Delacretaz 
wrote:


Hi,

On Mon, Sep 9, 2019 at 3:07 PM Jason E Bailey  wrote:

...Can anyone summarize why we are getting rid of it?...


I'm not sure if we need to "get rid" of that module, even if some
portion of Sling users stops using it.

The proposal at [1] says the rewriter should be "deprecated and no
longer used", which is apparently what was discussed at the adaptTo
round table or hackathon.

If people still find the module useful I think it''s fine to move it
to "contrib" status instead of deprecating. As long as there's a
reasonable expectation that the module will be maintained I think
that's a realistic status, but our guarantees are weak for contrib
modules so there's no pressure.

And if other modules provide better ways of doing similar things, link
to them from the rewriter's docs.

-Bertrand

[1]
https://lists.apache.org/thread.html/c80093524461d7203fa9799b79ebbf6bfd1bb3f9795865f4aaf3cd4a@%3Cdev.sling.apache.org%3E






--
--
Carsten Ziegeler
Adobe Research Switzerland
cziege...@apache.org


Re: Why get rid of the rewriter?

2019-09-10 Thread Ruben Reusser
As was pointed out before the rewriter is used in a lot of projects for
other things than rewriting links (in our case we use it a lot to inject
legal disclaimers or content fragment models)

The bigger problem however is that it assumes hml == xml and hence can not
deal with attributes with no value

Ruben

On Tue, Sep 10, 2019 at 5:12 AM Bertrand Delacretaz 
wrote:

> Hi,
>
> On Mon, Sep 9, 2019 at 3:07 PM Jason E Bailey  wrote:
> > ...Can anyone summarize why we are getting rid of it?...
>
> I'm not sure if we need to "get rid" of that module, even if some
> portion of Sling users stops using it.
>
> The proposal at [1] says the rewriter should be "deprecated and no
> longer used", which is apparently what was discussed at the adaptTo
> round table or hackathon.
>
> If people still find the module useful I think it''s fine to move it
> to "contrib" status instead of deprecating. As long as there's a
> reasonable expectation that the module will be maintained I think
> that's a realistic status, but our guarantees are weak for contrib
> modules so there's no pressure.
>
> And if other modules provide better ways of doing similar things, link
> to them from the rewriter's docs.
>
> -Bertrand
>
> [1]
> https://lists.apache.org/thread.html/c80093524461d7203fa9799b79ebbf6bfd1bb3f9795865f4aaf3cd4a@%3Cdev.sling.apache.org%3E
>


-- 
thank you

Ruben Reusser
CTO, headwire.com, Inc


Re: Why get rid of the rewriter?

2019-09-10 Thread Bertrand Delacretaz
Hi,

On Mon, Sep 9, 2019 at 3:07 PM Jason E Bailey  wrote:
> ...Can anyone summarize why we are getting rid of it?...

I'm not sure if we need to "get rid" of that module, even if some
portion of Sling users stops using it.

The proposal at [1] says the rewriter should be "deprecated and no
longer used", which is apparently what was discussed at the adaptTo
round table or hackathon.

If people still find the module useful I think it''s fine to move it
to "contrib" status instead of deprecating. As long as there's a
reasonable expectation that the module will be maintained I think
that's a realistic status, but our guarantees are weak for contrib
modules so there's no pressure.

And if other modules provide better ways of doing similar things, link
to them from the rewriter's docs.

-Bertrand

[1] 
https://lists.apache.org/thread.html/c80093524461d7203fa9799b79ebbf6bfd1bb3f9795865f4aaf3cd4a@%3Cdev.sling.apache.org%3E


RE: Why get rid of the rewriter?

2019-09-10 Thread Stefan Seifert

>What is the solution for rewriting URLs contained within the output of a
>rich text editor? Similar to https://wcm.io/handler/richtext/? I hope that
>downstream implementers of Sling will provide a pathway for replacing the
>rewriter if it is removed. I would speculate this would result in a
>tremendous amount of work to fix / test on upgrade for many
>implementations.

yes, you still need solutions for rich text components, and there a post 
processing is valid - but only for the rich text this component outputs, with 
full awareness of the context and it's configuration.

stefan


Re: Why get rid of the rewriter?

2019-09-10 Thread Roy Teeuwen
I also used rewriting for various use cases ( for example creating disclaimer 
links at the bottom of the page based on whats on the page)

To be honest, its just a nice wrapper around a filter, if you would take it 
away, people would just create a filter on page level that captures the 
response and do all the stuff afterwards, so I dont see any difference / better 
way being proposed yet. But if there is a better way, wouldnt mind hearing it!



Van: Daniel Klco 
Verzonden: dinsdag, september 10, 2019 3:29 AM
Aan: dev@sling.apache.org
Onderwerp: Re: Why get rid of the rewriter?

What is the solution for rewriting URLs contained within the output of a
rich text editor? Similar to https://wcm.io/handler/richtext/? I hope that
downstream implementers of Sling will provide a pathway for replacing the
rewriter if it is removed. I would speculate this would result in a
tremendous amount of work to fix / test on upgrade for many
implementations.

I agree the AEM Link Checker is a bad idea, though I argue that has to do
more with the concept of removing links at runtime than the way it is
implemented.

While the rewriter is not the most efficient method, but it does give you
the ability to affect the entire page structure in one go vs. having to
handle it on a per-component, resource type or field basis. The problem I
see with most implementations of Sling using the rewriter is they do not
give enough control of how the rewriter operates. I've been using this with
the Sling CMS reference, for example to allow for whitelisting attributes
and elements on a per-site basis using Sling CA Configs:
https://github.com/apache/sling-org-apache-sling-app-cms/blob/master/docs/configure-site.md#rewrite-configuration


On Mon, Sep 9, 2019, 5:52 PM Stefan Seifert  wrote:

> yes, that's what we roughly outlined at [1]. of course that's still a lot
> of work to do to get rid of the rewriter, and when it's time it maybe still
> deprecated kept in in-place for more exotic use cases (like PDF generation).
>
> why / for what use cases do we want to get rid of it - my view:
>
> - the rewriter is currently (esp. in AEM) mainly used for checking
> validity of links in a post-processing step
> - that means AFTER the markup was generated by all the scripts, it is
> parsed again, link are identified by heuristics, and if a link seems to
> point to an internal page/resource, and this page/resource does not exist,
> the link is removed by the rewriter
> - this leads to several problems:
> - performance issue: why generating the markup and directly after parse
> it again to serialize it again?
> - responsibility/control issue: what should happen should if a link is
> invalid should rely in the control of the component/script that renders the
> link. sometimes only the anchor is unwrapped, but often more is happening,
> e.g. the whole teaser is hidden, the whole navigation entry is hidden etc.
> the rewriter cannot "know" these use cases.
> - link detection issue: because relying on heuristics it is never sure
> that the rewriter can detect all links. e.g. by default it cannot detect
> link in data attributes, link in javascript, link in JSON files etc.
> - that means the aspect of externalizing and validating links belongs into
> the business/framework logic, not in a post processing link rewriter.
>
> that's why we build the URL/link handler in wcm.io [2] - and i think in
> the long run sling should go in this direction as well (at least for the
> basic URL handling features). I known that lot's of sling-based application
> put all their complex link handling logic into customized rewriter
> pipelines, but imho this is the wrong place for it. see also [3] for some
> background information.
>
> stefan
>
> [1]
> https://lists.apache.org/thread.html/c80093524461d7203fa9799b79ebbf6bfd1bb3f9795865f4aaf3cd4a@%3Cdev.sling.apache.org%3E
> [2] https://wcm.io/handler/
> [3]
> https://adapt.to/2019/en/schedule/assets-and-links-in-aem-projects.html
>
>
> >-Original Message-----
> >From: Jason E Bailey [mailto:j...@apache.org]
> >Sent: Monday, September 9, 2019 3:07 PM
> >To: dev@sling.apache.org
> >Subject: Why get rid of the rewriter?
> >
> >I obviously missed the chat at the adaptTo() meetup.
> >
> >Can anyone summarize why we are getting rid of it? And the thought process
> >on replacing it?
> >
> >- Jason
>
>
>


Re: Why get rid of the rewriter?

2019-09-09 Thread Daniel Klco
What is the solution for rewriting URLs contained within the output of a
rich text editor? Similar to https://wcm.io/handler/richtext/? I hope that
downstream implementers of Sling will provide a pathway for replacing the
rewriter if it is removed. I would speculate this would result in a
tremendous amount of work to fix / test on upgrade for many
implementations.

I agree the AEM Link Checker is a bad idea, though I argue that has to do
more with the concept of removing links at runtime than the way it is
implemented.

While the rewriter is not the most efficient method, but it does give you
the ability to affect the entire page structure in one go vs. having to
handle it on a per-component, resource type or field basis. The problem I
see with most implementations of Sling using the rewriter is they do not
give enough control of how the rewriter operates. I've been using this with
the Sling CMS reference, for example to allow for whitelisting attributes
and elements on a per-site basis using Sling CA Configs:
https://github.com/apache/sling-org-apache-sling-app-cms/blob/master/docs/configure-site.md#rewrite-configuration


On Mon, Sep 9, 2019, 5:52 PM Stefan Seifert  wrote:

> yes, that's what we roughly outlined at [1]. of course that's still a lot
> of work to do to get rid of the rewriter, and when it's time it maybe still
> deprecated kept in in-place for more exotic use cases (like PDF generation).
>
> why / for what use cases do we want to get rid of it - my view:
>
> - the rewriter is currently (esp. in AEM) mainly used for checking
> validity of links in a post-processing step
> - that means AFTER the markup was generated by all the scripts, it is
> parsed again, link are identified by heuristics, and if a link seems to
> point to an internal page/resource, and this page/resource does not exist,
> the link is removed by the rewriter
> - this leads to several problems:
>   - performance issue: why generating the markup and directly after parse
> it again to serialize it again?
>   - responsibility/control issue: what should happen should if a link is
> invalid should rely in the control of the component/script that renders the
> link. sometimes only the anchor is unwrapped, but often more is happening,
> e.g. the whole teaser is hidden, the whole navigation entry is hidden etc.
> the rewriter cannot "know" these use cases.
>   - link detection issue: because relying on heuristics it is never sure
> that the rewriter can detect all links. e.g. by default it cannot detect
> link in data attributes, link in javascript, link in JSON files etc.
> - that means the aspect of externalizing and validating links belongs into
> the business/framework logic, not in a post processing link rewriter.
>
> that's why we build the URL/link handler in wcm.io [2] - and i think in
> the long run sling should go in this direction as well (at least for the
> basic URL handling features). I known that lot's of sling-based application
> put all their complex link handling logic into customized rewriter
> pipelines, but imho this is the wrong place for it. see also [3] for some
> background information.
>
> stefan
>
> [1]
> https://lists.apache.org/thread.html/c80093524461d7203fa9799b79ebbf6bfd1bb3f9795865f4aaf3cd4a@%3Cdev.sling.apache.org%3E
> [2] https://wcm.io/handler/
> [3]
> https://adapt.to/2019/en/schedule/assets-and-links-in-aem-projects.html
>
>
> >-Original Message-----
> >From: Jason E Bailey [mailto:j...@apache.org]
> >Sent: Monday, September 9, 2019 3:07 PM
> >To: dev@sling.apache.org
> >Subject: Why get rid of the rewriter?
> >
> >I obviously missed the chat at the adaptTo() meetup.
> >
> >Can anyone summarize why we are getting rid of it? And the thought process
> >on replacing it?
> >
> >- Jason
>
>
>


RE: Why get rid of the rewriter?

2019-09-09 Thread Stefan Seifert
yes, that's what we roughly outlined at [1]. of course that's still a lot of 
work to do to get rid of the rewriter, and when it's time it maybe still 
deprecated kept in in-place for more exotic use cases (like PDF generation).

why / for what use cases do we want to get rid of it - my view:

- the rewriter is currently (esp. in AEM) mainly used for checking validity of 
links in a post-processing step
- that means AFTER the markup was generated by all the scripts, it is parsed 
again, link are identified by heuristics, and if a link seems to point to an 
internal page/resource, and this page/resource does not exist, the link is 
removed by the rewriter
- this leads to several problems:
  - performance issue: why generating the markup and directly after parse it 
again to serialize it again?
  - responsibility/control issue: what should happen should if a link is 
invalid should rely in the control of the component/script that renders the 
link. sometimes only the anchor is unwrapped, but often more is happening, e.g. 
the whole teaser is hidden, the whole navigation entry is hidden etc. the 
rewriter cannot "know" these use cases.
  - link detection issue: because relying on heuristics it is never sure that 
the rewriter can detect all links. e.g. by default it cannot detect link in 
data attributes, link in javascript, link in JSON files etc.
- that means the aspect of externalizing and validating links belongs into the 
business/framework logic, not in a post processing link rewriter.

that's why we build the URL/link handler in wcm.io [2] - and i think in the 
long run sling should go in this direction as well (at least for the basic URL 
handling features). I known that lot's of sling-based application put all their 
complex link handling logic into customized rewriter pipelines, but imho this 
is the wrong place for it. see also [3] for some background information.

stefan

[1] 
https://lists.apache.org/thread.html/c80093524461d7203fa9799b79ebbf6bfd1bb3f9795865f4aaf3cd4a@%3Cdev.sling.apache.org%3E
[2] https://wcm.io/handler/
[3] https://adapt.to/2019/en/schedule/assets-and-links-in-aem-projects.html


>-Original Message-
>From: Jason E Bailey [mailto:j...@apache.org]
>Sent: Monday, September 9, 2019 3:07 PM
>To: dev@sling.apache.org
>Subject: Why get rid of the rewriter?
>
>I obviously missed the chat at the adaptTo() meetup.
>
>Can anyone summarize why we are getting rid of it? And the thought process
>on replacing it?
>
>- Jason




Why get rid of the rewriter?

2019-09-09 Thread Jason E Bailey
I obviously missed the chat at the adaptTo() meetup. 

Can anyone summarize why we are getting rid of it? And the thought process on 
replacing it?

- Jason