SLING-10934 - Bundled scripts in the form of <resourceLabel>.<METHOD>.<extension> override the Sling POST Servlet

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 @@
                     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 @@
     }
 
     @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");