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-scriptingbundle-maven-plugin.git
The following commit(s) were added to refs/heads/master by this push:
new 603a3b9 SLING-9346 - Skip files for which a script engine mapping
doesn't exist
603a3b9 is described below
commit 603a3b95ec7ebbb85d9f9246d249f4963a4a7794
Author: Radu Cotescu <[email protected]>
AuthorDate: Thu Apr 9 10:19:27 2020 +0200
SLING-9346 - Skip files for which a script engine mapping doesn't exist
---
.../maven/plugin/FileProcessor.java | 96 ++++++++++++----------
.../maven/plugin/PathOnlyScriptAnalyser.java | 54 ++++++------
.../capability/ProvidedScriptCapability.java | 6 +-
3 files changed, 84 insertions(+), 72 deletions(-)
diff --git
a/src/main/java/org/apache/sling/scriptingbundle/maven/plugin/FileProcessor.java
b/src/main/java/org/apache/sling/scriptingbundle/maven/plugin/FileProcessor.java
index f78f5d2..fc94c9b 100644
---
a/src/main/java/org/apache/sling/scriptingbundle/maven/plugin/FileProcessor.java
+++
b/src/main/java/org/apache/sling/scriptingbundle/maven/plugin/FileProcessor.java
@@ -29,6 +29,7 @@ import java.util.Map;
import java.util.Optional;
import java.util.Set;
+import org.apache.commons.io.FilenameUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.maven.plugin.logging.Log;
import org.apache.sling.scripting.bundle.tracker.ResourceType;
@@ -114,56 +115,63 @@ public class FileProcessor {
void processScriptFile(@NotNull Path resourceTypeDirectory, @NotNull Path
scriptPath,
@NotNull ResourceType resourceType,
@NotNull Set<ProvidedResourceTypeCapability> providedCapabilities) {
- Path scriptFile = scriptPath.getFileName();
- if (scriptFile != null) {
- Path relativeResourceTypeFolder =
resourceTypeDirectory.relativize(scriptPath);
- int pathSegments = relativeResourceTypeFolder.getNameCount();
- LinkedHashSet<String> selectors = new LinkedHashSet<>();
- if (pathSegments > 1) {
- for (int i = 0; i < pathSegments - 1; i++) {
-
selectors.add(relativeResourceTypeFolder.getName(i).toString());
- }
- }
- String scriptFileName = scriptFile.toString();
- Script script = Script.parseScript(scriptFileName);
- if (script != null) {
- String scriptEngine =
scriptEngineMappings.get(script.getScriptExtension());
- if (scriptEngine != null) {
- String scriptName = script.getName();
- Set<String> searchPathProcessesResourceTypes =
processSearchPathResourceTypes(resourceType);
- if (scriptName != null &&
!resourceType.getResourceLabel().equals(scriptName)) {
- selectors.add(script.getName());
+ String filePath = scriptPath.toString();
+ String extension = FilenameUtils.getExtension(filePath);
+ if (StringUtils.isNotEmpty(extension) &&
scriptEngineMappings.containsKey(extension)) {
+ Path scriptFile = scriptPath.getFileName();
+ if (scriptFile != null) {
+ Path relativeResourceTypeFolder =
resourceTypeDirectory.relativize(scriptPath);
+ int pathSegments = relativeResourceTypeFolder.getNameCount();
+ LinkedHashSet<String> selectors = new LinkedHashSet<>();
+ if (pathSegments > 1) {
+ for (int i = 0; i < pathSegments - 1; i++) {
+
selectors.add(relativeResourceTypeFolder.getName(i).toString());
}
- Optional<ProvidedResourceTypeCapability> extendsCapability
= Optional.empty();
- if (selectors.isEmpty() &&
StringUtils.isEmpty(script.getRequestExtension()) &&
StringUtils.isEmpty(script.getRequestMethod())) {
- extendsCapability =
-
providedCapabilities.stream().filter(capability ->
StringUtils.isNotEmpty(capability.getExtendsResourceType()) &&
-
capability.getResourceTypes().equals(searchPathProcessesResourceTypes) &&
- capability.getSelectors().isEmpty() &&
StringUtils.isEmpty(capability.getRequestExtension()) &&
-
StringUtils.isEmpty(capability.getRequestMethod())).findAny();
+ }
+ String scriptFileName = scriptFile.toString();
+ Script script = Script.parseScript(scriptFileName);
+ if (script != null) {
+ String scriptEngine =
scriptEngineMappings.get(script.getScriptExtension());
+ if (scriptEngine != null) {
+ String scriptName = script.getName();
+ Set<String> searchPathProcessesResourceTypes =
processSearchPathResourceTypes(resourceType);
+ if (scriptName != null &&
!resourceType.getResourceLabel().equals(scriptName)) {
+ selectors.add(script.getName());
+ }
+ Optional<ProvidedResourceTypeCapability>
extendsCapability = Optional.empty();
+ if (selectors.isEmpty() &&
StringUtils.isEmpty(script.getRequestExtension()) &&
+
StringUtils.isEmpty(script.getRequestMethod())) {
+ extendsCapability =
+ providedCapabilities.stream()
+ .filter(capability ->
StringUtils.isNotEmpty(capability.getExtendsResourceType()) &&
+
capability.getResourceTypes().equals(searchPathProcessesResourceTypes) &&
+
capability.getSelectors().isEmpty() &&
+
StringUtils.isEmpty(capability.getRequestExtension()) &&
+
StringUtils.isEmpty(capability.getRequestMethod())).findAny();
+ }
+ ProvidedResourceTypeCapability.Builder builder =
ProvidedResourceTypeCapability.builder()
+
.withResourceTypes(searchPathProcessesResourceTypes)
+ .withVersion(resourceType.getVersion())
+ .withSelectors(selectors)
+
.withRequestExtension(script.getRequestExtension())
+ .withRequestMethod(script.getRequestMethod())
+ .withScriptEngine(scriptEngine)
+
.withScriptExtension(script.getScriptExtension());
+ extendsCapability.ifPresent(capability -> {
+
builder.withExtendsResourceType(capability.getExtendsResourceType());
+ providedCapabilities.remove(capability);
+ }
+ );
+ providedCapabilities.add(builder.build());
+ } else {
+ log.warn(String.format("Cannot find a script engine
mapping for script %s.", scriptPath.toString()));
}
- ProvidedResourceTypeCapability.Builder builder =
ProvidedResourceTypeCapability.builder()
-
.withResourceTypes(searchPathProcessesResourceTypes)
- .withVersion(resourceType.getVersion())
- .withSelectors(selectors)
- .withRequestExtension(script.getRequestExtension())
- .withRequestMethod(script.getRequestMethod())
- .withScriptEngine(scriptEngine)
- .withScriptExtension(script.getScriptExtension());
- extendsCapability.ifPresent(capability -> {
-
builder.withExtendsResourceType(capability.getExtendsResourceType());
- providedCapabilities.remove(capability);
- }
- );
- providedCapabilities.add(builder.build());
} else {
- log.warn(String.format("Cannot find a script engine
mapping for script %s.", scriptPath.toString()));
+ log.warn(String.format("File %s does not denote a
script.", scriptPath.toString()));
}
} else {
- log.warn(String.format("File %s does not denote a script.",
scriptPath.toString()));
+ log.warn(String.format("Skipping path %s since it has 0
elements.", scriptPath.toString()));
}
- } else {
- log.warn(String.format("Skipping path %s since it has 0
elements.", scriptPath.toString()));
}
}
diff --git
a/src/main/java/org/apache/sling/scriptingbundle/maven/plugin/PathOnlyScriptAnalyser.java
b/src/main/java/org/apache/sling/scriptingbundle/maven/plugin/PathOnlyScriptAnalyser.java
index a59db74..cdb6099 100644
---
a/src/main/java/org/apache/sling/scriptingbundle/maven/plugin/PathOnlyScriptAnalyser.java
+++
b/src/main/java/org/apache/sling/scriptingbundle/maven/plugin/PathOnlyScriptAnalyser.java
@@ -27,6 +27,8 @@ import java.util.Map;
import java.util.Set;
import java.util.function.Predicate;
+import org.apache.commons.io.FilenameUtils;
+import org.apache.commons.lang3.StringUtils;
import org.apache.maven.plugin.logging.Log;
import org.apache.sling.scriptingbundle.maven.plugin.capability.Capabilities;
import
org.apache.sling.scriptingbundle.maven.plugin.capability.ProvidedScriptCapability;
@@ -50,36 +52,38 @@ public class PathOnlyScriptAnalyser {
public @NotNull Capabilities getProvidedScriptCapability(@NotNull Path
file) {
if (Files.isRegularFile(file) && file.startsWith(scriptsDirectory)) {
- boolean useFile = true;
- Path parent = file.getParent();
- Path loopParent = parent;
- while (useFile && loopParent != null &&
!loopParent.equals(scriptsDirectory)) {
- useFile = isNotAResourceTypeFolder.test(loopParent);
- loopParent = loopParent.getParent();
- }
- if (parent != null && useFile) {
- Path fileName = file.getFileName();
- if (fileName != null) {
- String name = fileName.toString();
- int dotLastIndex = name.lastIndexOf('.');
- if (dotLastIndex > -1 && dotLastIndex != name.length() -
1) {
- String scriptPath = "/" +
scriptsDirectory.relativize(file).toString();
- ProvidedScriptCapability providedScriptCapability =
-
ProvidedScriptCapability.builder(scriptEngineMappings).withPath(scriptPath).build();
- Path requires =
parent.resolve(MetadataMojo.REQUIRES_FILE);
- Set<RequiredResourceTypeCapability>
requiredCapabilities = new HashSet<>();
- if (Files.exists(requires)) {
- fileProcessor.processRequiresFile(requires,
requiredCapabilities);
+ String filePath = file.toString();
+ String extension = FilenameUtils.getExtension(filePath);
+ if (StringUtils.isNotEmpty(extension) &&
scriptEngineMappings.containsKey(extension)) {
+ boolean useFile = true;
+ Path parent = file.getParent();
+ Path loopParent = parent;
+ while (useFile && loopParent != null &&
!loopParent.equals(scriptsDirectory)) {
+ useFile = isNotAResourceTypeFolder.test(loopParent);
+ loopParent = loopParent.getParent();
+ }
+ if (parent != null && useFile) {
+ Path fileName = file.getFileName();
+ if (fileName != null) {
+ String name = fileName.toString();
+ int dotLastIndex = name.lastIndexOf('.');
+ if (dotLastIndex > -1 && dotLastIndex != name.length()
- 1) {
+ String scriptPath = "/" +
scriptsDirectory.relativize(file).toString();
+ ProvidedScriptCapability providedScriptCapability =
+
ProvidedScriptCapability.builder(scriptEngineMappings).withPath(scriptPath).build();
+ Path requires =
parent.resolve(MetadataMojo.REQUIRES_FILE);
+ Set<RequiredResourceTypeCapability>
requiredCapabilities = new HashSet<>();
+ if (Files.exists(requires)) {
+ fileProcessor.processRequiresFile(requires,
requiredCapabilities);
+ }
+ return new Capabilities(Collections.emptySet(),
+ new
HashSet<>(Arrays.asList(providedScriptCapability)),
+ requiredCapabilities);
}
- return new Capabilities(Collections.emptySet(),
- new
HashSet<>(Arrays.asList(providedScriptCapability)),
- requiredCapabilities);
}
}
}
}
return Capabilities.EMPTY;
}
-
-
}
diff --git
a/src/main/java/org/apache/sling/scriptingbundle/maven/plugin/capability/ProvidedScriptCapability.java
b/src/main/java/org/apache/sling/scriptingbundle/maven/plugin/capability/ProvidedScriptCapability.java
index d7e157a..63c04f1 100644
---
a/src/main/java/org/apache/sling/scriptingbundle/maven/plugin/capability/ProvidedScriptCapability.java
+++
b/src/main/java/org/apache/sling/scriptingbundle/maven/plugin/capability/ProvidedScriptCapability.java
@@ -90,12 +90,12 @@ public class ProvidedScriptCapability {
throw new IllegalStateException(String.format("Path %s does
not seem to have an extension.", path));
}
String extension = path.substring(lastDotIndex + 1);
- String scripEngine = scriptEngineMappings.get(extension);
- if (StringUtils.isEmpty(scripEngine)) {
+ String scriptEngine = scriptEngineMappings.get(extension);
+ if (StringUtils.isEmpty(scriptEngine)) {
throw new IllegalStateException(String.format("Path %s does
not seem to have an extension mapped to a script engine.",
path));
}
- return new ProvidedScriptCapability(path, extension, scripEngine);
+ return new ProvidedScriptCapability(path, extension, scriptEngine);
}
public ProvidedScriptCapability.Builder withPath(String path) {