This is an automated email from the ASF dual-hosted git repository.

sseifert pushed a commit to branch feature/parent-62
in repository 
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-repoinit-filevault-validator.git

commit e65afebb022f570cb31f98e4953051f2e04bddbf
Author: Stefan Seifert <[email protected]>
AuthorDate: Mon Feb 24 20:17:42 2025 +0100

    SLING-12670 apply spotless formatting
---
 pom.xml                                            |  29 ++---
 .../filevault/validator/RepoInitValidator.java     | 130 +++++++++++++--------
 .../validator/RepoInitValidatorFactory.java        |  27 ++---
 3 files changed, 108 insertions(+), 78 deletions(-)

diff --git a/pom.xml b/pom.xml
index 971cca9..74d4c6f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
 <!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements. See the NOTICE file distributed with this
@@ -16,6 +17,12 @@
 -->
 <project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
https://maven.apache.org/xsd/maven-4.0.0.xsd";>
     <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.sling</groupId>
+        <artifactId>sling</artifactId>
+        <version>62</version>
+    </parent>
     <groupId>org.apache.sling</groupId>
     <artifactId>org.apache.sling.repoinit.filevault.validator</artifactId>
     <version>1.0.1-SNAPSHOT</version>
@@ -23,24 +30,18 @@
     <name>Apache Sling Repoinit FileVault Validator</name>
     <description>FileVault validator which validates RepoInit OSGi 
configurations</description>
 
-    <parent>
-        <groupId>org.apache.sling</groupId>
-        <artifactId>sling</artifactId>
-        <version>62</version>
-    </parent>
+    <scm>
+        
<connection>scm:git:https://gitbox.apache.org/repos/asf/sling-org-apache-sling-repoinit-filevault-validator.git</connection>
+        
<developerConnection>scm:git:https://gitbox.apache.org/repos/asf/sling-org-apache-sling-repoinit-filevault-validator.git</developerConnection>
+        <tag>HEAD</tag>
+        
<url>https://github.com/apache/sling-org-apache-sling-repoinit-filevault-validator.git</url>
+    </scm>
 
     <properties>
         <sling.java.version>8</sling.java.version>
         
<project.build.outputTimestamp>2025-02-24T00:00:00Z</project.build.outputTimestamp>
     </properties>
 
-     <scm>
-        
<connection>scm:git:https://gitbox.apache.org/repos/asf/sling-org-apache-sling-repoinit-filevault-validator.git</connection>
-        
<developerConnection>scm:git:https://gitbox.apache.org/repos/asf/sling-org-apache-sling-repoinit-filevault-validator.git</developerConnection>
-        
<url>https://github.com/apache/sling-org-apache-sling-repoinit-filevault-validator.git</url>
-      <tag>HEAD</tag>
-  </scm>
-
     <dependencies>
         <dependency>
             <groupId>org.apache.jackrabbit.vault</groupId>
@@ -100,7 +101,7 @@
             <scope>provided</scope>
         </dependency>
     </dependencies>
-    
+
     <build>
         <plugins>
             <plugin>
@@ -134,4 +135,4 @@
             </plugin>
         </plugins>
     </build>
-</project>
\ No newline at end of file
+</project>
diff --git 
a/src/main/java/org/apache/sling/repoinit/filevault/validator/RepoInitValidator.java
 
b/src/main/java/org/apache/sling/repoinit/filevault/validator/RepoInitValidator.java
index cdb15d9..e994b8f 100644
--- 
a/src/main/java/org/apache/sling/repoinit/filevault/validator/RepoInitValidator.java
+++ 
b/src/main/java/org/apache/sling/repoinit/filevault/validator/RepoInitValidator.java
@@ -1,18 +1,20 @@
 /*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with this
- * work for additional information regarding copyright ownership. The ASF
- * licenses this file to You under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
  *
- * http://www.apache.org/licenses/LICENSE-2.0
+ *   http://www.apache.org/licenses/LICENSE-2.0
  *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations 
under
- * the License.
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
  */
 package org.apache.sling.repoinit.filevault.validator;
 
@@ -57,14 +59,16 @@ public class RepoInitValidator implements 
DocumentViewXmlValidator, GenericJcrDa
 
     private static final String SLING_OSGI_CONFIG_NODETYPE = 
"sling:OsgiConfig";
 
-    private static final String OSGI_CONFIG_NAME = 
"org\\.apache\\.sling\\.jcr\\.repoinit\\.RepositoryInitializer([~-]).*";
+    private static final String OSGI_CONFIG_NAME =
+            
"org\\.apache\\.sling\\.jcr\\.repoinit\\.RepositoryInitializer([~-]).*";
 
     private static final Pattern OSGI_CONFIG_NODE_NAME_PATTERN = 
Pattern.compile(OSGI_CONFIG_NAME);
 
     /**
      * 
https://sling.apache.org/documentation/bundles/configuration-installer-factory.html#configuration-serialization-formats
      */
-    private static final Pattern OSGI_CONFIG_FILE_NAME_PATTERN = 
Pattern.compile(OSGI_CONFIG_NAME + "\\.(config|cfg\\.json|cfg)");
+    private static final Pattern OSGI_CONFIG_FILE_NAME_PATTERN =
+            Pattern.compile(OSGI_CONFIG_NAME + "\\.(config|cfg\\.json|cfg)");
 
     enum OsgiConfigurationSerialization {
         CFG,
@@ -84,15 +88,24 @@ public class RepoInitValidator implements 
DocumentViewXmlValidator, GenericJcrDa
     }
 
     @Override
-    public @Nullable Collection<ValidationMessage> validate(@NotNull 
DocViewNode2 node, @NotNull NodeContext nodeContext,
-            boolean isRoot) {
-        if 
(SLING_OSGI_CONFIG_NODETYPE.equals(node.getPrimaryType().orElse("")) && 
OSGI_CONFIG_NODE_NAME_PATTERN.matcher(Text.getName(nodeContext.getNodePath())).matches())
 {
-            Optional<DocViewProperty2> scriptsProperty = 
node.getProperty(NameFactoryImpl.getInstance().create(Name.NS_DEFAULT_URI, 
"scripts"));
+    public @Nullable Collection<ValidationMessage> validate(
+            @NotNull DocViewNode2 node, @NotNull NodeContext nodeContext, 
boolean isRoot) {
+        if (SLING_OSGI_CONFIG_NODETYPE.equals(node.getPrimaryType().orElse(""))
+                && OSGI_CONFIG_NODE_NAME_PATTERN
+                        .matcher(Text.getName(nodeContext.getNodePath()))
+                        .matches()) {
+            Optional<DocViewProperty2> scriptsProperty =
+                    
node.getProperty(NameFactoryImpl.getInstance().create(Name.NS_DEFAULT_URI, 
"scripts"));
             if (scriptsProperty.isPresent()) {
                 try {
-                    return 
validateStatements(scriptsProperty.get().getStringValues(), 
nodeContext.getFilePath().toString());
+                    return validateStatements(
+                            scriptsProperty.get().getStringValues(),
+                            nodeContext.getFilePath().toString());
                 } catch (IOException e) {
-                    return Collections.singleton(new 
ValidationMessage(ValidationMessageSeverity.ERROR, "IOException while parsing " 
+ nodeContext.getFilePath() +" : " + e.getMessage(), e));
+                    return Collections.singleton(new ValidationMessage(
+                            ValidationMessageSeverity.ERROR,
+                            "IOException while parsing " + 
nodeContext.getFilePath() + " : " + e.getMessage(),
+                            e));
                 }
             }
         }
@@ -101,9 +114,14 @@ public class RepoInitValidator implements 
DocumentViewXmlValidator, GenericJcrDa
 
     @Override
     @Nullable
-    public Collection<ValidationMessage> validateJcrData(@NotNull InputStream 
input, @NotNull Path filePath, @NotNull Path basePath,
-            @NotNull Map<String, Integer> nodePathsAndLineNumbers) throws 
IOException {
-        Map<String, Object> config = 
deserializeOsgiConfiguration(getType(filePath.getFileName().toString()), input);
+    public Collection<ValidationMessage> validateJcrData(
+            @NotNull InputStream input,
+            @NotNull Path filePath,
+            @NotNull Path basePath,
+            @NotNull Map<String, Integer> nodePathsAndLineNumbers)
+            throws IOException {
+        Map<String, Object> config =
+                
deserializeOsgiConfiguration(getType(filePath.getFileName().toString()), input);
         return validateConfig(config, filePath.toString());
     }
 
@@ -119,7 +137,8 @@ public class RepoInitValidator implements 
DocumentViewXmlValidator, GenericJcrDa
         } else if (fileName.endsWith(".cfg")) {
             return OsgiConfigurationSerialization.CFG;
         } else {
-            throw new IllegalArgumentException("Given file name " + fileName + 
" does not represent a known OSGi configuration serialization");
+            throw new IllegalArgumentException(
+                    "Given file name " + fileName + " does not represent a 
known OSGi configuration serialization");
         }
     }
 
@@ -129,41 +148,48 @@ public class RepoInitValidator implements 
DocumentViewXmlValidator, GenericJcrDa
         return OSGI_CONFIG_FILE_NAME_PATTERN.matcher(fileName).matches();
     }
 
-    Map<String, Object> deserializeOsgiConfiguration(@NotNull 
OsgiConfigurationSerialization serializationType, @NotNull InputStream input) 
throws IOException {
-        switch(serializationType) {
-        case CONFIG:
-            return 
convertToMap(org.apache.felix.cm.file.ConfigurationHandler.read(input));
-        case CFG:
-            Properties properties = new Properties();
-            properties.load(input);
-            return convertToMap(properties);
-        case CFG_JSON:
-            Reader reader = new InputStreamReader(input, 
StandardCharsets.UTF_8);
-            ConfigurationReader configReader = 
org.apache.felix.cm.json.Configurations.buildReader().build(reader);
-            return convertToMap(configReader.readConfiguration());
+    Map<String, Object> deserializeOsgiConfiguration(
+            @NotNull OsgiConfigurationSerialization serializationType, 
@NotNull InputStream input) throws IOException {
+        switch (serializationType) {
+            case CONFIG:
+                return 
convertToMap(org.apache.felix.cm.file.ConfigurationHandler.read(input));
+            case CFG:
+                Properties properties = new Properties();
+                properties.load(input);
+                return convertToMap(properties);
+            case CFG_JSON:
+                Reader reader = new InputStreamReader(input, 
StandardCharsets.UTF_8);
+                ConfigurationReader configReader =
+                        
org.apache.felix.cm.json.Configurations.buildReader().build(reader);
+                return convertToMap(configReader.readConfiguration());
         }
         return null;
     }
 
     private Collection<ValidationMessage> validateConfig(Map<String, Object> 
config, String source) throws IOException {
         // 
https://sling.apache.org/documentation/bundles/repository-initialization.html#providing-repoinit-statements-from-osgi-factory-configurations
-        // only evaluate scripts for now, references might have unresolvable 
URLs at the time of building 
(https://sling.apache.org/documentation/bundles/repository-initialization.html#references-to-urls-providing-raw-repoinit-statements)
+        // only evaluate scripts for now, references might have unresolvable 
URLs at the time of building
+        // 
(https://sling.apache.org/documentation/bundles/repository-initialization.html#references-to-urls-providing-raw-repoinit-statements)
         Object scripts = config.get("scripts");
         if (scripts == null) {
             return null;
         }
         if (scripts instanceof String[]) {
-            return validateStatements(Arrays.asList((String[])scripts), 
source);
+            return validateStatements(Arrays.asList((String[]) scripts), 
source);
         } else if (scripts instanceof String) {
-            return validateStatements((String)scripts, source);
+            return validateStatements((String) scripts, source);
         } else {
-            return Collections.singletonList(new 
ValidationMessage(ValidationMessageSeverity.ERROR, "OSGi config property 
'scripts' must be of type String or String[]"));
+            return Collections.singletonList(new ValidationMessage(
+                    ValidationMessageSeverity.ERROR,
+                    "OSGi config property 'scripts' must be of type String or 
String[]"));
         }
     }
 
-    private Collection<ValidationMessage> 
validateStatements(Collection<String> scripts, String source) throws 
IOException {
+    private Collection<ValidationMessage> 
validateStatements(Collection<String> scripts, String source)
+            throws IOException {
         List<ValidationMessage> validationMsgs = new ArrayList<>();
-        validationMsgs.add(new 
ValidationMessage(ValidationMessageSeverity.DEBUG, "Validating repoinit 
statements from " + source));
+        validationMsgs.add(new ValidationMessage(
+                ValidationMessageSeverity.DEBUG, "Validating repoinit 
statements from " + source));
         for (String statements : scripts) {
             validateStatements(statements).ifPresent(validationMsgs::add);
         }
@@ -172,7 +198,8 @@ public class RepoInitValidator implements 
DocumentViewXmlValidator, GenericJcrDa
 
     private Collection<ValidationMessage> validateStatements(String 
statements, String source) throws IOException {
         List<ValidationMessage> validationMsgs = new ArrayList<>();
-        validationMsgs.add(new 
ValidationMessage(ValidationMessageSeverity.DEBUG, "Validating repoinit 
statements from " + source));
+        validationMsgs.add(new ValidationMessage(
+                ValidationMessageSeverity.DEBUG, "Validating repoinit 
statements from " + source));
         validateStatements(statements).ifPresent(validationMsgs::add);
         return validationMsgs;
     }
@@ -181,22 +208,23 @@ public class RepoInitValidator implements 
DocumentViewXmlValidator, GenericJcrDa
         try (Reader reader = new StringReader(statements)) {
             parser.parse(reader);
         } catch (RepoInitParsingException e) {
-            return Optional.of(new 
ValidationMessage(ValidationMessageSeverity.ERROR, "Invalid repoinit 
statement(s) detected: " + e.getMessage(), e));
+            return Optional.of(new ValidationMessage(
+                    ValidationMessageSeverity.ERROR, "Invalid repoinit 
statement(s) detected: " + e.getMessage(), e));
         }
         return Optional.empty();
     }
 
     static Map<String, Object> convertToMap(Dictionary<String, ?> dictionary) {
         List<String> keys = Collections.list(dictionary.keys());
-        return keys.stream().collect(Collectors.toMap(Function.identity(), 
dictionary::get)); 
+        return keys.stream().collect(Collectors.toMap(Function.identity(), 
dictionary::get));
     }
 
     static Map<String, Object> convertToMap(Properties properties) {
-        return properties.entrySet().stream().collect(
-                Collectors.toMap(
-                  e -> String.valueOf(e.getKey()),
-                  e -> String.valueOf(e.getValue()),
-                  (prev, next) -> next, HashMap::new
-              ));
+        return properties.entrySet().stream()
+                .collect(Collectors.toMap(
+                        e -> String.valueOf(e.getKey()),
+                        e -> String.valueOf(e.getValue()),
+                        (prev, next) -> next,
+                        HashMap::new));
     }
 }
diff --git 
a/src/main/java/org/apache/sling/repoinit/filevault/validator/RepoInitValidatorFactory.java
 
b/src/main/java/org/apache/sling/repoinit/filevault/validator/RepoInitValidatorFactory.java
index f471750..4e23ce2 100644
--- 
a/src/main/java/org/apache/sling/repoinit/filevault/validator/RepoInitValidatorFactory.java
+++ 
b/src/main/java/org/apache/sling/repoinit/filevault/validator/RepoInitValidatorFactory.java
@@ -1,18 +1,20 @@
 /*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with this
- * work for additional information regarding copyright ownership. The ASF
- * licenses this file to You under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
  *
- * http://www.apache.org/licenses/LICENSE-2.0
+ *   http://www.apache.org/licenses/LICENSE-2.0
  *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations 
under
- * the License.
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
  */
 package org.apache.sling.repoinit.filevault.validator;
 
@@ -41,5 +43,4 @@ public class RepoInitValidatorFactory implements 
ValidatorFactory {
     public int getServiceRanking() {
         return 0;
     }
-
 }

Reply via email to