[ https://issues.apache.org/jira/browse/SLING-9999?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17275984#comment-17275984 ]
Oliver Lietz commented on SLING-9999: ------------------------------------- [~karlpauls], [~radu], The whole discussion here and your behavior is quite weird. You have added an additional dependency and changed several mature bundles without a discussion on dev@. Why was there no discussion on dev@ for this major change affecting several mature bundles? I didn't want to be rude, but honestly the package name {{o.a.s.servlets.resolver.bundle.tracker}} does NOT make sense AT ALL. {{tracker}} is an implementation detail irrelevant for most of the classes. The Bundle API package does NOT reference Servlets {{resolver}} but {{script}}s/{{scripting}}: {noformat} grep -R resolve bundle | wc -l 0 {noformat} {noformat} grep -R script bundle | grep -v "package org.apache.sling.scripting.api.bundle" | wc -l 19 {noformat} {noformat} grep -R script bundle | grep -v "package org.apache.sling.scripting.api.bundle" bundle/BundledRenderUnitFinder.java: * bundles for the class or script capable of providing a rendering for resource type chain. bundle/BundledRenderUnit.java:import javax.script.ScriptException; bundle/BundledRenderUnit.java: * A {@code BundledRenderUnit} represents a pre-packaged script or precompiled script (Java class) that will be executed in order to bundle/BundledRenderUnit.java: * context of a {@link javax.script.ScriptEngine}, the provider module should add the current executing unit into the {@link bundle/BundledRenderUnit.java: * javax.script.ScriptEngine}'s {@link javax.script.ScriptContext} using the {@link #VARIABLE} key. bundle/BundledRenderUnit.java: * The variable available in the {@link javax.script.Bindings} associated to a {@link org.apache.sling.api.SlingHttpServletRequest} if bundle/BundledRenderUnit.java: * In case this {@code BundledRenderUnit} wraps a precompiled script, this method will return an instance of that object. bundle/BundledRenderUnit.java: * @return a precompiled unit, if {@code this} unit wraps a precompiled script; {@code null} otherwise bundle/BundledRenderUnit.java: * Returns the name of {@code this BundledRenderUnit}. This can be the name of the wrapped script or precompiled script. bundle/BundledRenderUnit.java: * Retrieves an OSGi runtime dependency of the wrapped script identified by the passed {@code className} parameter. bundle/BundledRenderUnit.java: * Retrieves multiple instances of an OSGi runtime dependency of the wrapped script identified by the passed {@code className} bundle/BundledRenderUnit.java: * This method will execute / evaluate the wrapped script or precompiled script with the given request. bundle/BundledRenderUnit.java: * This method will return an input stream if {@code this} unit is backed by a script that can be interpreted. bundle/BundledRenderUnit.java: * @return an {@link InputStream} providing the source code of the backing script; if {@code this} unit is backed by a precompiled bundle/BundledRenderUnit.java: * script (essentially a Java class), then this method will return {@code null} bundle/BundledRenderUnitCapability.java: * Returns the script engine short name which can be used to evaluate the {@link BundledRenderUnit} described by this capability. bundle/BundledRenderUnitCapability.java: * @return the script engine short name which can be used to evaluate the {@link BundledRenderUnit} described by this capability. bundle/BundledRenderUnitCapability.java: * Returns the original's script extension that was used to generate this capability. bundle/BundledRenderUnitCapability.java: * @return the original's script extension that was used to generate this capability. {noformat} Why do you think {{o.a.s.servlets.resolver.bundle.tracker}} is a meaningful package name? Why do you think the very generic class [ResourceType|https://github.com/apache/sling-org-apache-sling-api/blob/02cb7f1bbc4836865afd7e9964d3be1380daf734/src/main/java/org/apache/sling/api/resource/type/ResourceType.java] should not live in {{o.a.s.api.resource.type}} but instead in {{o.a.s.servlets.resolver.bundle.tracker}}? Only in your latest comments you insist to revert the changes where in the beginning of the discussion it looked like an option. [~karlpauls], My main motivation is to have proper/meaningful package and class names AND no cyclic dependencies which could lead to all kinds of issues. So please stop blaming the resolver in Karaf. It just disclosed an issue you introduced. The [behavior can be configured|https://karaf.apache.org/manual/latest/#_feature_and_resolver] but if the OSGi Spec says this behavior is wrong I'm more than happy to restart the discussion for Karaf 5. The package version of the Bundle API is still below 1.0 so moving it around *now* is fine (adhering to Semantic Versioning specification). The latest changes/addition from [~radu] are again a quick workaround. We should try to keep module and root package names in sync. > 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: Radu Cotescu > Priority: Major > Fix For: Scripting Bundle Maven Plugin 0.2.4, Scripting Core > 2.3.6, Servlets Resolver 2.7.14, Servlets Resolver API 1.0.0, Scripting JSP > 2.5.2, Scripting HTL Engine 1.4.8-1.4.0 > > > 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)