This is an automated email from the ASF dual-hosted git repository. pauls pushed a commit to branch issues/SLING-10934 in repository https://gitbox.apache.org/repos/asf/sling-scriptingbundle-maven-plugin.git
commit 91fee55c414df1a3df6307c3ce53b52e41076572 Author: Karl Pauls <[email protected]> AuthorDate: Mon Nov 22 00:44:29 2021 +0100 SLING-10934: add the resourcelabel as a selector if it is the main script and has a method. --- .../plugin/processor/FileProcessor.java | 7 +++-- .../plugin/processor/FileProcessorTest.java | 33 ++++++++++++++++++++++ 2 files changed, 38 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/apache/sling/scriptingbundle/plugin/processor/FileProcessor.java b/src/main/java/org/apache/sling/scriptingbundle/plugin/processor/FileProcessor.java index 514b681..d7d1dbf 100644 --- a/src/main/java/org/apache/sling/scriptingbundle/plugin/processor/FileProcessor.java +++ b/src/main/java/org/apache/sling/scriptingbundle/plugin/processor/FileProcessor.java @@ -188,8 +188,11 @@ public class FileProcessor { if (scriptEngine != null) { String scriptName = script.getName(); Set<String> searchPathProcessesResourceTypes = processSearchPathResourceTypes(resourceType); - if (scriptName != null && !resourceType.getResourceLabel().equals(scriptName)) { - selectors.add(script.getName()); + if (scriptName != null) { + if (!resourceType.getResourceLabel().equals(scriptName) + || script.getRequestMethod() != null) { + selectors.add(script.getName()); + } } Optional<ProvidedResourceTypeCapability> extendsCapability = Optional.empty(); if (selectors.isEmpty() && StringUtils.isEmpty(script.getRequestExtension()) && diff --git a/src/test/java/org/apache/sling/scriptingbundle/plugin/processor/FileProcessorTest.java b/src/test/java/org/apache/sling/scriptingbundle/plugin/processor/FileProcessorTest.java index fc1c57e..6b38dfe 100644 --- a/src/test/java/org/apache/sling/scriptingbundle/plugin/processor/FileProcessorTest.java +++ b/src/test/java/org/apache/sling/scriptingbundle/plugin/processor/FileProcessorTest.java @@ -125,6 +125,39 @@ public class FileProcessorTest { } @Test + public void testMainScriptSelector() { + Path resourceTypeFolder = Paths.get("apps", "my", "resource", "test"); + Path script = Paths.get("apps", "my", "resource", "test", "test.POST.html"); + processor.processScriptFile(resourceTypeFolder, script, MY_RESOURCE_TYPE, providedCapabilities, false); + + Assert.assertEquals(1, providedCapabilities.size()); + + ProvidedResourceTypeCapability expectedProvidedCapability1 = ProvidedResourceTypeCapability.builder() + .withResourceTypes(new HashSet<>(Arrays.asList("my/resource", "/apps/my/resource"))) + .withRequestMethod("POST") + .withSelectors(Arrays.asList("test")) + .withScriptEngine("htl") + .withScriptExtension("html") + .build(); + + Assert.assertEquals(new HashSet<>(Arrays.asList(expectedProvidedCapability1)), providedCapabilities); + + Path script2 = Paths.get("apps", "my", "resource", "test", "POST.html"); + processor.processScriptFile(resourceTypeFolder, script2, MY_RESOURCE_TYPE, providedCapabilities, false); + + Assert.assertEquals(2, providedCapabilities.size()); + + ProvidedResourceTypeCapability expectedProvidedCapability2 = ProvidedResourceTypeCapability.builder() + .withResourceTypes(new HashSet<>(Arrays.asList("my/resource", "/apps/my/resource"))) + .withRequestMethod("POST") + .withScriptEngine("htl") + .withScriptExtension("html") + .build(); + + Assert.assertEquals(new HashSet<>(Arrays.asList(expectedProvidedCapability1, expectedProvidedCapability2)), providedCapabilities); + } + + @Test public void testScriptUnknownExtension() { Path resourceTypeFolder = Paths.get("scripts", "apps", "my", "resource", "2.0"); Path script = Paths.get("scripts", "apps", "my", "resource", "2.0", "selectorb", "selectora.POST.abc");
