You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by kw...@apache.org on 2020/03/06 07:30:33 UTC
svn commit: r1874873 - in
/jackrabbit/commons/filevault-package-maven-plugin/trunk: ./
src/main/java/org/apache/jackrabbit/filevault/maven/packaging/
Author: kwin
Date: Fri Mar 6 07:30:33 2020
New Revision: 1874873
URL: http://svn.apache.org/viewvc?rev=1874873&view=rev
Log:
JCRVLT-415 call validator for empty folders as well
Modified:
jackrabbit/commons/filevault-package-maven-plugin/trunk/pom.xml
jackrabbit/commons/filevault-package-maven-plugin/trunk/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/ValidateFilesMojo.java
jackrabbit/commons/filevault-package-maven-plugin/trunk/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/ValidatePackageMojo.java
jackrabbit/commons/filevault-package-maven-plugin/trunk/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/ValidationHelper.java
Modified: jackrabbit/commons/filevault-package-maven-plugin/trunk/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/commons/filevault-package-maven-plugin/trunk/pom.xml?rev=1874873&r1=1874872&r2=1874873&view=diff
==============================================================================
--- jackrabbit/commons/filevault-package-maven-plugin/trunk/pom.xml (original)
+++ jackrabbit/commons/filevault-package-maven-plugin/trunk/pom.xml Fri Mar 6 07:30:33 2020
@@ -45,7 +45,7 @@
<slf4j.version>1.7.5</slf4j.version>
<jackrabbit.version>2.20.0</jackrabbit.version>
<oak.version>1.20.0</oak.version>
- <filevault.version>3.4.2</filevault.version>
+ <filevault.version>3.4.3-SNAPSHOT</filevault.version>
</properties>
<prerequisites>
Modified: jackrabbit/commons/filevault-package-maven-plugin/trunk/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/ValidateFilesMojo.java
URL: http://svn.apache.org/viewvc/jackrabbit/commons/filevault-package-maven-plugin/trunk/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/ValidateFilesMojo.java?rev=1874873&r1=1874872&r2=1874873&view=diff
==============================================================================
--- jackrabbit/commons/filevault-package-maven-plugin/trunk/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/ValidateFilesMojo.java (original)
+++ jackrabbit/commons/filevault-package-maven-plugin/trunk/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/ValidateFilesMojo.java Fri Mar 6 07:30:33 2020
@@ -202,23 +202,46 @@ public class ValidateFilesMojo extends A
scanner.scan();
getLog().info("Scanning baseDir '" + baseDir + "'...");
for (String relativeFile : scanner.getIncludedFiles()) {
- File absoluteFile = new File(baseDir, relativeFile);
- validationHelper.clearPreviousValidationMessages(buildContext, absoluteFile);
- getLog().debug("Validating file '" + absoluteFile + "'...");
- try (InputStream input = new FileInputStream(absoluteFile)) {
- final Collection<ValidationViolation> messages;
- if (isMetaInf) {
- messages = executor.validateMetaInf(input, Paths.get(relativeFile), baseDir.toPath());
- } else {
- messages = executor.validateJcrRoot(input, Paths.get(relativeFile), baseDir.toPath());
- }
- validationHelper.printMessages(messages, getLog(), buildContext, project.getBasedir().toPath());
- } catch (FileNotFoundException e) {
- getLog().error("Could not find file " + absoluteFile, e);
- } catch (IOException e) {
- getLog().error("Could not validate file " + absoluteFile, e);
- }
+ validateFile(executor, baseDir, isMetaInf, relativeFile);
}
+ for (String relativeFile : scanner.getIncludedDirectories()) {
+ validateFolder(executor, baseDir, isMetaInf, relativeFile);
+ }
+ }
+
+
+ private void validateFile(ValidationExecutor executor, File baseDir, boolean isMetaInf, String relativeFile) {
+ File absoluteFile = new File(baseDir, relativeFile);
+ validationHelper.clearPreviousValidationMessages(buildContext, absoluteFile);
+ getLog().debug("Validating file '" + absoluteFile + "'...");
+ try (InputStream input = new FileInputStream(absoluteFile)) {
+ validateInputStream(executor, input, baseDir, isMetaInf, relativeFile);
+ } catch (FileNotFoundException e) {
+ getLog().error("Could not find file " + absoluteFile, e);
+ } catch (IOException e) {
+ getLog().error("Could not validate file " + absoluteFile, e);
+ }
+ }
+
+ private void validateFolder(ValidationExecutor executor, File baseDir, boolean isMetaInf, String relativeFile) {
+ File absoluteFile = new File(baseDir, relativeFile);
+ validationHelper.clearPreviousValidationMessages(buildContext, absoluteFile);
+ getLog().debug("Validating folder '" + absoluteFile + "'...");
+ try {
+ validateInputStream(executor, null, baseDir, isMetaInf, relativeFile);
+ } catch (IOException e) {
+ getLog().error("Could not validate folder " + absoluteFile, e);
+ }
+ }
+
+ private void validateInputStream(ValidationExecutor executor, InputStream input, File baseDir, boolean isMetaInf, String relativeFile) throws IOException {
+ final Collection<ValidationViolation> messages;
+ if (isMetaInf) {
+ messages = executor.validateMetaInf(input, Paths.get(relativeFile), baseDir.toPath());
+ } else {
+ messages = executor.validateJcrRoot(input, Paths.get(relativeFile), baseDir.toPath());
+ }
+ validationHelper.printMessages(messages, getLog(), buildContext, project.getBasedir().toPath());
}
/**
Modified: jackrabbit/commons/filevault-package-maven-plugin/trunk/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/ValidatePackageMojo.java
URL: http://svn.apache.org/viewvc/jackrabbit/commons/filevault-package-maven-plugin/trunk/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/ValidatePackageMojo.java?rev=1874873&r1=1874872&r2=1874873&view=diff
==============================================================================
--- jackrabbit/commons/filevault-package-maven-plugin/trunk/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/ValidatePackageMojo.java (original)
+++ jackrabbit/commons/filevault-package-maven-plugin/trunk/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/ValidatePackageMojo.java Fri Mar 6 07:30:33 2020
@@ -41,6 +41,7 @@ import org.apache.maven.plugins.annotati
import org.apache.maven.plugins.annotations.Mojo;
import org.apache.maven.plugins.annotations.Parameter;
import org.apache.maven.plugins.annotations.ResolutionScope;
+import org.jetbrains.annotations.Nullable;
import org.xml.sax.SAXException;
@@ -103,6 +104,7 @@ public class ValidatePackageMojo extends
ValidationExecutor executor) throws IOException, SAXException, ParserConfigurationException {
for (Archive.Entry childEntry : entry.getChildren()) {
if (childEntry.isDirectory()) {
+ validateInputStream(null, entryPath.resolve(childEntry.getName()), packagePath, context, executor);
validateEntry(archive, childEntry, entryPath.resolve(childEntry.getName()), packagePath, context, executor);
} else {
try (InputStream input = archive.openInputStream(childEntry)) {
@@ -112,7 +114,7 @@ public class ValidatePackageMojo extends
}
}
- private void validateInputStream(InputStream inputStream, Path entryPath, Path packagePath, ArchiveValidationContextImpl context,
+ private void validateInputStream(@Nullable InputStream inputStream, Path entryPath, Path packagePath, ArchiveValidationContextImpl context,
ValidationExecutor executor) throws IOException, SAXException, ParserConfigurationException {
Collection<ValidationViolation> messages = new LinkedList<>();
if (entryPath.startsWith(Constants.META_INF)) {
@@ -123,7 +125,7 @@ public class ValidatePackageMojo extends
messages.addAll(executor.validateJcrRoot(inputStream, relativeJcrPath, packagePath.resolve(Constants.ROOT_DIR)));
// in case this is a subpackage
- if (entryPath.getFileName().toString().endsWith(VaultMojo.PACKAGE_EXT)) {
+ if (inputStream != null && entryPath.getFileName().toString().endsWith(VaultMojo.PACKAGE_EXT)) {
Path subPackagePath = context.getPackageRootPath().resolve(entryPath);
getLog().info("Start validating sub package '" + subPackagePath + "'...");
// can't use archive.getSubPackage because that holds the wrong metadata
Modified: jackrabbit/commons/filevault-package-maven-plugin/trunk/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/ValidationHelper.java
URL: http://svn.apache.org/viewvc/jackrabbit/commons/filevault-package-maven-plugin/trunk/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/ValidationHelper.java?rev=1874873&r1=1874872&r2=1874873&view=diff
==============================================================================
--- jackrabbit/commons/filevault-package-maven-plugin/trunk/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/ValidationHelper.java (original)
+++ jackrabbit/commons/filevault-package-maven-plugin/trunk/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/ValidationHelper.java Fri Mar 6 07:30:33 2020
@@ -121,7 +121,7 @@ public class ValidationHelper {
StringBuilder message = new StringBuilder("ValidationViolation: ");
message.append("\"").append(getMessage(violation)).append("\"");
if (violation.getFilePath() != null) {
- message.append(", filePath=").append(baseDirectory.relativize(violation.getFilePath()));
+ message.append(", filePath=").append(baseDirectory.relativize(violation.getAbsoluteFilePath()));
}
if (violation.getNodePath() != null) {
message.append(", nodePath=").append(violation.getNodePath());