You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ra...@apache.org on 2020/03/24 11:48:29 UTC
[sling-org-apache-sling-scripting-bundle-tracker] branch master
updated: SLING-9252 - Optimise request dispatching for inheriting resource
types
This is an automated email from the ASF dual-hosted git repository.
radu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-scripting-bundle-tracker.git
The following commit(s) were added to refs/heads/master by this push:
new 1776151 SLING-9252 - Optimise request dispatching for inheriting resource types
1776151 is described below
commit 17761511b879fd03caa668349f979843a9b31ca2
Author: Radu Cotescu <ra...@apache.org>
AuthorDate: Tue Mar 24 12:48:18 2020 +0100
SLING-9252 - Optimise request dispatching for inheriting resource types
---
.../tracker/internal/BundledScriptTracker.java | 23 ++++++++++++----------
1 file changed, 13 insertions(+), 10 deletions(-)
diff --git a/src/main/java/org/apache/sling/scripting/bundle/tracker/internal/BundledScriptTracker.java b/src/main/java/org/apache/sling/scripting/bundle/tracker/internal/BundledScriptTracker.java
index 13ce403..540efde 100644
--- a/src/main/java/org/apache/sling/scripting/bundle/tracker/internal/BundledScriptTracker.java
+++ b/src/main/java/org/apache/sling/scripting/bundle/tracker/internal/BundledScriptTracker.java
@@ -152,25 +152,28 @@ public class BundledScriptTracker implements BundleTrackerCustomizer<List<Servic
List<ServiceRegistration<Servlet>> regs = new ArrayList<>();
LinkedHashSet<TypeProvider> wiredProviders = new LinkedHashSet<>();
wiredProviders.add(new TypeProvider(resourceTypeCapability.getResourceTypes(), bundle));
- String extendedResourceType = resourceTypeCapability.getExtendedResourceType();
- if (StringUtils.isNotEmpty(extendedResourceType)) {
- BundleWire extendedWire = null;
+ String extendedResourceTypeString = resourceTypeCapability.getExtendedResourceType();
+ if (StringUtils.isNotEmpty(extendedResourceTypeString)) {
+ Bundle providingBundle = null;
+ ResourceType extendedResourceType = null;
ResourceTypeCapability extendedCapability = null;
- LOGGER.debug("Bundle {} extends resource type {} through {}.", bundle.getSymbolicName(), extendedResourceType,
- resourceTypesRegistrationValue);
for (BundleWire wire : bundleWiring.getRequiredWires(NS_SLING_RESOURCE_TYPE)) {
ResourceTypeCapability wiredCapability =
ResourceTypeCapability.fromBundleCapability(wire.getCapability());
for (ResourceType resourceType : wiredCapability.getResourceTypes()) {
- if (extendedResourceType.equals(resourceType.getType()) && wiredCapability.getSelectors().isEmpty()) {
- extendedWire = wire;
+ if (extendedResourceTypeString.equals(resourceType.getType()) && wiredCapability.getSelectors().isEmpty()) {
+ providingBundle = wire.getProvider().getBundle();
extendedCapability = wiredCapability;
+ extendedResourceType = resourceType;
+ LOGGER.debug("Bundle {} extends resource type {} through {}.", bundle.getSymbolicName(),
+ extendedResourceType.toString(), resourceTypesRegistrationValue);
+ break;
}
}
}
- if (extendedWire != null) {
- wiredProviders.add(new TypeProvider(extendedCapability.getResourceTypes(), extendedWire.getProvider().getBundle()));
- properties.put(ServletResolverConstants.SLING_SERVLET_RESOURCE_SUPER_TYPE, extendedResourceType);
+ if (providingBundle != null) {
+ wiredProviders.add(new TypeProvider(extendedCapability.getResourceTypes(), providingBundle));
+ properties.put(ServletResolverConstants.SLING_SERVLET_RESOURCE_SUPER_TYPE, extendedResourceType.toString());
}
}
populateWiredProviders(wiredProviders);