[ 
https://issues.apache.org/jira/browse/SLING-9999?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17264489#comment-17264489
 ] 

Karl Pauls commented on SLING-9999:
-----------------------------------

[~olli], I don't see how the servlets.resolver depends on the scripting. That 
is only an issue for the Karaf resolver because it likes to take into account 
requirements with effective:=active (which frameworks do not). Besides, it is 
on javax.scripting which isn't necessarily coming from the sling scripting. 
From a module layer perspective, it doesn't depend on it. 

Your changes, however, introduce a real dependency from the servlets.resolver 
to the scripting. In other words, your are trading a (possibly optional) 
dependency from the scripting on the servlets.resolver for a dependency of the 
servlets.resolver on the scripting. As it is effectively an SPI interface of 
the servlets.resolver that seems a little backward and I seem to remember that 
there where some places where we currently use the servlets.resolver without 
the scripting (I think in some integration tests). 

That said, I think your option number 3 would make it the least invasive (btw. 
your options above seem to miss the option that was proposed before to just 
make the dependency from the scripting on the package optional). Effectively, 
we would introduce a new servlets.resolver.api bundle with the SPI package in 
it and we could keep it in the namespace it is in now (which would still mean 
we would have to revert your commits). 

> Remove cyclic dependency between scripting and servlets features
> ----------------------------------------------------------------
>
>                 Key: SLING-9999
>                 URL: https://issues.apache.org/jira/browse/SLING-9999
>             Project: Sling
>          Issue Type: Improvement
>          Components: API, Karaf, Scripting, Servlets, Starter
>            Reporter: Oliver Lietz
>            Assignee: Oliver Lietz
>            Priority: Major
>
> Before {{org.apache.sling.scripting.core.impl.bundled}} and 
> {{org.apache.sling.servlets.resolver.bundle}} were added the dependency 
> chains were e.g.
> {{sling-servlets}} → {{sling-scripting}} → {{sling}}
> {{sling-scripting-jsp}} → {{sling-scripting}} → {{sling}}
> Currently several _scripting_ modules depend on 
> {{org.apache.sling.servlets.resolver.bundle.tracker}}.
> h2. Move _Bundle_ API to Scripting and Resource packages (modules)
> ||Actual Package (Module)||Target Package (Module)||
> |*{{org.apache.sling.servlets.resolver.bundle.tracker.BundledRenderUnit}}* 
> ({{org.apache.sling.servlets.resolver}})|*{{org.apache.sling.scripting.api.bundle.BundledRenderUnit}}*
>  ({{org.apache.sling.scripting.api}})|
> |*{{org.apache.sling.servlets.resolver.bundle.tracker. 
> BundledRenderUnitCapability}}* 
> ({{org.apache.sling.servlets.resolver}})|*{{org.apache.sling.scripting.api.bundle.BundledRenderUnitCapability}}*
>  ({{org.apache.sling.scripting.api}})|
> |*{{org.apache.sling.servlets.resolver.bundle.tracker.BundledRenderUnitFinder}}*
>  
> ({{org.apache.sling.servlets.resolver}})|*{{org.apache.sling.scripting.api.bundle.BundledRenderUnitFinder}}*
>  ({{org.apache.sling.scripting.api}})|
> |*{{org.apache.sling.servlets.resolver.bundle.tracker.ResourceType}}* 
> ({{org.apache.sling.servlets.resolver}})|*{{org.apache.sling.api.resource.type.ResourceType}}*
>  ({{org.apache.sling.api}})|
> |*{{org.apache.sling.servlets.resolver.bundle.tracker.TypeProvider}}* 
> ({{org.apache.sling.servlets.resolver}})|*{{org.apache.sling.scripting.api.bundle.TypeProvider}}*
>  (_*{color:#ff8b00}class name?{color}*_) ({{org.apache.sling.scripting.api}})|
> ----
> ||Module||Commits||Status||
> |{{org.apache.sling.api}}|[02cb7f1|https://github.com/apache/sling-org-apache-sling-api/commit/02cb7f1bbc4836865afd7e9964d3be1380daf734]|(/)|
> |{{org.apache.sling.scripting.api}}|[d38759d|https://github.com/apache/sling-org-apache-sling-scripting-api/commit/d38759dbd3d4159f70ea54bff23b037be8d07cd6]|(/)|
> |{{org.apache.sling.scripting.core}}|[b2f368a|https://github.com/apache/sling-org-apache-sling-scripting-core/commit/b2f368a90a087979c34d8072fe529675971234fe],
>  
> [1467cfa|https://github.com/apache/sling-org-apache-sling-scripting-core/commit/1467cfa6a3fe4c77a628d078f9d944ce4cc42eb1]|(/)|
> |{{org.apache.sling.scripting.jsp}}|[ccdb902|https://github.com/apache/sling-org-apache-sling-scripting-jsp/commit/ccdb90266f254bb2143a5d870725a8f4b28d4d8b]|(/)|
> |{{org.apache.sling.scripting.sightly}}|[1567894|https://github.com/apache/sling-org-apache-sling-scripting-sightly/commit/1567894f6c1835a317c01e6c5b5987a260a74757],
>  
> [b2f57cd|https://github.com/apache/sling-org-apache-sling-scripting-sightly/commit/b2f57cd43d7d961fcf194cf7bf61b1c79f343d44]|(/)|
> |{{org.apache.sling.servlets.resolver}}|[8262ce6|https://github.com/apache/sling-org-apache-sling-servlets-resolver/commit/8262ce63725b9ab93c1d3eb07ace6b02d79acc65]|(!)
>  probably more classes which should be living in a scripting module|



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to