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/04/09 08:20:04 UTC
[sling-scriptingbundle-maven-plugin] branch master updated:
SLING-9346 - Skip files for which a script engine mapping doesn't exist
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 <ra...@apache.org>
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) {