You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by an...@apache.org on 2021/09/02 06:39:02 UTC

[sling-org-apache-sling-feature-cpconverter] branch SLING-10780 created (now 2e609df)

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

angela pushed a change to branch SLING-10780
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-feature-cpconverter.git.


      at 2e609df  SLING-10780 - AbstractConfigurationEntryHandler - sonar findings

This branch includes the following new commits:

     new 2e609df  SLING-10780 - AbstractConfigurationEntryHandler - sonar findings

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


[sling-org-apache-sling-feature-cpconverter] 01/01: SLING-10780 - AbstractConfigurationEntryHandler - sonar findings

Posted by an...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

angela pushed a commit to branch SLING-10780
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-feature-cpconverter.git

commit 2e609dfffc63c87a0ca3527037ea0e18c7914b62
Author: angela <an...@adobe.com>
AuthorDate: Thu Sep 2 08:38:51 2021 +0200

    SLING-10780 - AbstractConfigurationEntryHandler - sonar findings
---
 .../AbstractConfigurationEntryHandler.java         | 49 ++++++++++++----------
 .../handlers/DefaultEntryHandlersManager.java      |  2 +-
 .../handlers/ConfigEntryHandlerTest.java           |  4 +-
 3 files changed, 30 insertions(+), 25 deletions(-)

diff --git a/src/main/java/org/apache/sling/feature/cpconverter/handlers/AbstractConfigurationEntryHandler.java b/src/main/java/org/apache/sling/feature/cpconverter/handlers/AbstractConfigurationEntryHandler.java
index 2d2daf8..4b61ecc 100644
--- a/src/main/java/org/apache/sling/feature/cpconverter/handlers/AbstractConfigurationEntryHandler.java
+++ b/src/main/java/org/apache/sling/feature/cpconverter/handlers/AbstractConfigurationEntryHandler.java
@@ -34,12 +34,12 @@ abstract class AbstractConfigurationEntryHandler extends AbstractRegexEntryHandl
 
     private boolean enforceConfigurationBelowConfigFolder;
     
-    // SLING-10469 - regexp to catch configs and poetential sibling .dir folders that would carry the node properties from an export that would need to be ignored as well
-    public AbstractConfigurationEntryHandler(@NotNull String extension) {
+    // SLING-10469 - regexp to catch configs and potential sibling .dir folders that would carry the node properties from an export that would need to be ignored as well
+    AbstractConfigurationEntryHandler(@NotNull String extension) {
         super("/jcr_root/(?:apps|libs)/.+/(?<foldername>config|install)(\\.(?<runmode>[^/]+))?(.*)/(?<pid>[^\\/]*)\\." + extension + ("(?<dir>.dir(/\\.content\\.xml)?)?$"));
     }
 
-    void setEnforceConfgurationBelowConfigFolder(boolean enforceConfigurationBelowConfigFolder) {
+    void setEnforceConfigurationBelowConfigFolder(boolean enforceConfigurationBelowConfigFolder) {
         this.enforceConfigurationBelowConfigFolder = enforceConfigurationBelowConfigFolder;
     }
 
@@ -55,25 +55,7 @@ abstract class AbstractConfigurationEntryHandler extends AbstractRegexEntryHandl
                 // SLING-10469  - preventing invalid results as the corresponding configuration will be stripped from the resulting package causing the constraints of nt:file not to be satisfied (missing binary)
                 logger.info("{} is only a dir folder next to config - removing.", path);
             } else {
-                String pid = matcher.group("pid");
-    
-                int idx = pid.lastIndexOf('/');
-                if (idx != -1) {
-                    pid = pid.substring(idx + 1);
-                }
-                String factoryPid = null;
-                String id;
-                int n = pid.indexOf('~');
-                if (n == -1) {
-                    n = pid.indexOf('-');
-                }
-                if (n > 0) {
-                    factoryPid = pid.substring(0, n);
-                    id = factoryPid.concat("~").concat(pid.substring(n + 1));
-                } else {
-                    id = pid;
-                }
-        
+                String id = extractId(matcher);
                 logger.info("Processing configuration '{}'.", id);
         
                 Dictionary<String, Object> configurationProperties;
@@ -106,6 +88,29 @@ abstract class AbstractConfigurationEntryHandler extends AbstractRegexEntryHandl
         }
     }
 
+    @NotNull
+    private static String extractId(@NotNull Matcher matcher) {
+        String pid = matcher.group("pid");
+
+        int idx = pid.lastIndexOf('/');
+        if (idx != -1) {
+            pid = pid.substring(idx + 1);
+        }
+        
+        String id;
+        int n = pid.indexOf('~');
+        if (n == -1) {
+            n = pid.indexOf('-');
+        }
+        if (n > 0) {
+            String factoryPid = pid.substring(0, n);
+            id = factoryPid.concat("~").concat(pid.substring(n + 1));
+        } else {
+            id = pid;
+        }
+        return id;
+    }
+
     protected abstract @Nullable Dictionary<String, Object> parseConfiguration(@NotNull String name, @NotNull InputStream input) throws IOException, ConverterException;
 
 }
diff --git a/src/main/java/org/apache/sling/feature/cpconverter/handlers/DefaultEntryHandlersManager.java b/src/main/java/org/apache/sling/feature/cpconverter/handlers/DefaultEntryHandlersManager.java
index f84043d..4491625 100644
--- a/src/main/java/org/apache/sling/feature/cpconverter/handlers/DefaultEntryHandlersManager.java
+++ b/src/main/java/org/apache/sling/feature/cpconverter/handlers/DefaultEntryHandlersManager.java
@@ -43,7 +43,7 @@ public class DefaultEntryHandlersManager implements EntryHandlersManager {
                 entryHandler = entryHandler.withConfig(configs.get(entryHandler.getClass().getName()));
             }
             if (entryHandler instanceof AbstractConfigurationEntryHandler) {
-                ((AbstractConfigurationEntryHandler) entryHandler).setEnforceConfgurationBelowConfigFolder(enforceConfigurationsAndBundlesBelowProperFolder);
+                ((AbstractConfigurationEntryHandler) entryHandler).setEnforceConfigurationBelowConfigFolder(enforceConfigurationsAndBundlesBelowProperFolder);
             } else if (entryHandler instanceof BundleEntryHandler) {
                 ((BundleEntryHandler) entryHandler).setEnforceBundlesBelowInstallFolder(enforceConfigurationsAndBundlesBelowProperFolder);
                 ((BundleEntryHandler) entryHandler).setSlingInitialContentPolicy(slingInitialContentPolicy);
diff --git a/src/test/java/org/apache/sling/feature/cpconverter/handlers/ConfigEntryHandlerTest.java b/src/test/java/org/apache/sling/feature/cpconverter/handlers/ConfigEntryHandlerTest.java
index 004b15f..ba877df 100644
--- a/src/test/java/org/apache/sling/feature/cpconverter/handlers/ConfigEntryHandlerTest.java
+++ b/src/test/java/org/apache/sling/feature/cpconverter/handlers/ConfigEntryHandlerTest.java
@@ -127,7 +127,7 @@ public class ConfigEntryHandlerTest {
     @Test
     public void testConfigPathBelowInstallFolder() throws Exception {
         ConfigurationEntryHandler handler = new ConfigurationEntryHandler();
-        handler.setEnforceConfgurationBelowConfigFolder(true);
+        handler.setEnforceConfigurationBelowConfigFolder(true);
         Archive archive = Mockito.mock(Archive.class);
         Entry entry = Mockito.mock(Entry.class);
         Mockito.when(archive.openInputStream(entry)).thenReturn(new ByteArrayInputStream(new byte[0]));
@@ -139,7 +139,7 @@ public class ConfigEntryHandlerTest {
     @Test
     public void testConfigPathNoneConfigBelowInstallFolder() throws Exception {
         XmlConfigurationEntryHandler handler = new XmlConfigurationEntryHandler();
-        handler.setEnforceConfgurationBelowConfigFolder(true);
+        handler.setEnforceConfigurationBelowConfigFolder(true);
         Archive archive = Mockito.mock(Archive.class);
         Entry entry = Mockito.mock(Entry.class);
         Mockito.when(archive.openInputStream(entry)).thenReturn(new ByteArrayInputStream(new byte[0]));