You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ss...@apache.org on 2017/03/20 17:16:47 UTC

svn commit: r1787813 - in /sling/trunk/bundles/extensions/caconfig: impl/src/main/java/org/apache/sling/caconfig/impl/ impl/src/main/java/org/apache/sling/caconfig/impl/def/ impl/src/main/java/org/apache/sling/caconfig/management/impl/ impl/src/test/ja...

Author: sseifert
Date: Mon Mar 20 17:16:46 2017
New Revision: 1787813

URL: http://svn.apache.org/viewvc?rev=1787813&view=rev
Log:
SLING-6669 use resource path instead of resource object for getConfigName* methods in ConfigurationPersistenceStrategy2 SPI

Modified:
    sling/trunk/bundles/extensions/caconfig/impl/src/main/java/org/apache/sling/caconfig/impl/ConfigurationBuilderImpl.java
    sling/trunk/bundles/extensions/caconfig/impl/src/main/java/org/apache/sling/caconfig/impl/ConfigurationPersistenceStrategyBridge.java
    sling/trunk/bundles/extensions/caconfig/impl/src/main/java/org/apache/sling/caconfig/impl/def/DefaultConfigurationPersistenceStrategy.java
    sling/trunk/bundles/extensions/caconfig/impl/src/main/java/org/apache/sling/caconfig/management/impl/ConfigurationDataImpl.java
    sling/trunk/bundles/extensions/caconfig/impl/src/main/java/org/apache/sling/caconfig/management/impl/ConfigurationPersistenceStrategyMultiplexerImpl.java
    sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationPersistenceStrategyMultiplexerImplTest.java
    sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/management/impl/CustomConfigurationPersistenceStrategy.java
    sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/management/impl/CustomConfigurationPersistenceStrategy2.java
    sling/trunk/bundles/extensions/caconfig/spi/src/main/java/org/apache/sling/caconfig/spi/ConfigurationPersistenceStrategy2.java

Modified: sling/trunk/bundles/extensions/caconfig/impl/src/main/java/org/apache/sling/caconfig/impl/ConfigurationBuilderImpl.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/caconfig/impl/src/main/java/org/apache/sling/caconfig/impl/ConfigurationBuilderImpl.java?rev=1787813&r1=1787812&r2=1787813&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/caconfig/impl/src/main/java/org/apache/sling/caconfig/impl/ConfigurationBuilderImpl.java (original)
+++ sling/trunk/bundles/extensions/caconfig/impl/src/main/java/org/apache/sling/caconfig/impl/ConfigurationBuilderImpl.java Mon Mar 20 17:16:46 2017
@@ -282,11 +282,12 @@ class ConfigurationBuilderImpl implement
             return ConfigurationProxy.get(resource, clazz, new ChildResolver() {
                 private ConfigurationBuilder getConfiguration(String nestedConfigName) {
                     String childName;
+                    String relatedConfigPath = resource != null ? resource.getPath() : null;
                     if (isCollection) {
-                        childName = configurationPersistenceStrategy.getCollectionItemConfigName(configName, resource) + "/" + nestedConfigName;
+                        childName = configurationPersistenceStrategy.getCollectionItemConfigName(configName, relatedConfigPath) + "/" + nestedConfigName;
                     }
                     else {
-                        childName = configurationPersistenceStrategy.getConfigName(configName, resource) + "/" + nestedConfigName;
+                        childName = configurationPersistenceStrategy.getConfigName(configName, relatedConfigPath) + "/" + nestedConfigName;
                     }
                     return configurationResolver.get(contentResource).name(childName);
                 }

Modified: sling/trunk/bundles/extensions/caconfig/impl/src/main/java/org/apache/sling/caconfig/impl/ConfigurationPersistenceStrategyBridge.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/caconfig/impl/src/main/java/org/apache/sling/caconfig/impl/ConfigurationPersistenceStrategyBridge.java?rev=1787813&r1=1787812&r2=1787813&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/caconfig/impl/src/main/java/org/apache/sling/caconfig/impl/ConfigurationPersistenceStrategyBridge.java (original)
+++ sling/trunk/bundles/extensions/caconfig/impl/src/main/java/org/apache/sling/caconfig/impl/ConfigurationPersistenceStrategyBridge.java Mon Mar 20 17:16:46 2017
@@ -167,17 +167,17 @@ public final class ConfigurationPersiste
         }
 
         @Override
-        public String getConfigName(String configName, Resource relatedConfigResource) {
+        public String getConfigName(String configName, String relatedConfigPath) {
             return delegate.getResourcePath(configName);
         }
 
         @Override
-        public String getCollectionParentConfigName(String configName, Resource relatedConfigResource) {
+        public String getCollectionParentConfigName(String configName, String relatedConfigPath) {
             return delegate.getResourcePath(configName);
         }
 
         @Override
-        public String getCollectionItemConfigName(String configName, Resource relatedConfigResource) {
+        public String getCollectionItemConfigName(String configName, String relatedConfigPath) {
             return delegate.getResourcePath(configName);
         }
 

Modified: sling/trunk/bundles/extensions/caconfig/impl/src/main/java/org/apache/sling/caconfig/impl/def/DefaultConfigurationPersistenceStrategy.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/caconfig/impl/src/main/java/org/apache/sling/caconfig/impl/def/DefaultConfigurationPersistenceStrategy.java?rev=1787813&r1=1787812&r2=1787813&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/caconfig/impl/src/main/java/org/apache/sling/caconfig/impl/def/DefaultConfigurationPersistenceStrategy.java (original)
+++ sling/trunk/bundles/extensions/caconfig/impl/src/main/java/org/apache/sling/caconfig/impl/def/DefaultConfigurationPersistenceStrategy.java Mon Mar 20 17:16:46 2017
@@ -121,7 +121,7 @@ public class DefaultConfigurationPersist
     }
 
     @Override
-    public String getConfigName(String configName, Resource relatedConfigResource) {
+    public String getConfigName(String configName, String relatedConfigPath) {
         if (!config.enabled()) {
             return null;
         }
@@ -129,7 +129,7 @@ public class DefaultConfigurationPersist
     }
 
     @Override
-    public String getCollectionParentConfigName(String configName, Resource relatedConfigResource) {
+    public String getCollectionParentConfigName(String configName, String relatedConfigPath) {
         if (!config.enabled()) {
             return null;
         }
@@ -137,7 +137,7 @@ public class DefaultConfigurationPersist
     }
 
     @Override
-    public String getCollectionItemConfigName(String configName, Resource relatedConfigResource) {
+    public String getCollectionItemConfigName(String configName, String relatedConfigPath) {
         if (!config.enabled()) {
             return null;
         }

Modified: sling/trunk/bundles/extensions/caconfig/impl/src/main/java/org/apache/sling/caconfig/management/impl/ConfigurationDataImpl.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/caconfig/impl/src/main/java/org/apache/sling/caconfig/management/impl/ConfigurationDataImpl.java?rev=1787813&r1=1787812&r2=1787813&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/caconfig/impl/src/main/java/org/apache/sling/caconfig/management/impl/ConfigurationDataImpl.java (original)
+++ sling/trunk/bundles/extensions/caconfig/impl/src/main/java/org/apache/sling/caconfig/management/impl/ConfigurationDataImpl.java Mon Mar 20 17:16:46 2017
@@ -175,14 +175,15 @@ final class ConfigurationDataImpl implem
         for (PropertyMetadata<?> propertyMetadata : configMetadata.getPropertyMetadata().values()) {
             if (propertyMetadata.isNestedConfiguration()) {
                 ConfigurationMetadata nestedConfigMetadata = propertyMetadata.getConfigurationMetadata();
+                String relatedConfigPath = resolvedConfigurationResource != null ? resolvedConfigurationResource.getPath() : null;
                 String nestedConfigName;
                 if (configResourceCollection) {
-                    nestedConfigName = configurationPersistenceStrategy.getCollectionParentConfigName(configName, resolvedConfigurationResource)
-                            + "/" + configurationPersistenceStrategy.getCollectionItemConfigName(getCollectionItemName(), resolvedConfigurationResource)
+                    nestedConfigName = configurationPersistenceStrategy.getCollectionParentConfigName(configName, relatedConfigPath)
+                            + "/" + configurationPersistenceStrategy.getCollectionItemConfigName(getCollectionItemName(), relatedConfigPath)
                             + "/" + nestedConfigMetadata.getName();
                 }
                 else {
-                    nestedConfigName = configurationPersistenceStrategy.getConfigName(configName, resolvedConfigurationResource) + "/" + nestedConfigMetadata.getName();
+                    nestedConfigName = configurationPersistenceStrategy.getConfigName(configName, relatedConfigPath) + "/" + nestedConfigMetadata.getName();
                 }
                 if (propertyMetadata.getType().equals(ConfigurationMetadata.class)) {
                     ConfigurationData configData = configurationManager.getConfiguration(contextResource, nestedConfigName);

Modified: sling/trunk/bundles/extensions/caconfig/impl/src/main/java/org/apache/sling/caconfig/management/impl/ConfigurationPersistenceStrategyMultiplexerImpl.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/caconfig/impl/src/main/java/org/apache/sling/caconfig/management/impl/ConfigurationPersistenceStrategyMultiplexerImpl.java?rev=1787813&r1=1787812&r2=1787813&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/caconfig/impl/src/main/java/org/apache/sling/caconfig/management/impl/ConfigurationPersistenceStrategyMultiplexerImpl.java (original)
+++ sling/trunk/bundles/extensions/caconfig/impl/src/main/java/org/apache/sling/caconfig/management/impl/ConfigurationPersistenceStrategyMultiplexerImpl.java Mon Mar 20 17:16:46 2017
@@ -130,9 +130,9 @@ public class ConfigurationPersistenceStr
     }
 
     @Override
-    public String getConfigName(String configName, Resource relatedConfigResource) {
+    public String getConfigName(String configName, String relatedConfigPath) {
         for (ConfigurationPersistenceStrategy2 item : items) {
-            String result = item.getConfigName(configName, relatedConfigResource);
+            String result = item.getConfigName(configName, relatedConfigPath);
             if (result != null) {
                 return result;
             }
@@ -141,9 +141,9 @@ public class ConfigurationPersistenceStr
     }
 
     @Override
-    public String getCollectionParentConfigName(String configName, Resource relatedConfigResource) {
+    public String getCollectionParentConfigName(String configName, String relatedConfigPath) {
         for (ConfigurationPersistenceStrategy2 item : items) {
-            String result = item.getCollectionParentConfigName(configName, relatedConfigResource);
+            String result = item.getCollectionParentConfigName(configName, relatedConfigPath);
             if (result != null) {
                 return result;
             }
@@ -152,9 +152,9 @@ public class ConfigurationPersistenceStr
     }
 
     @Override
-    public String getCollectionItemConfigName(String configName, Resource relatedConfigResource) {
+    public String getCollectionItemConfigName(String configName, String relatedConfigPath) {
         for (ConfigurationPersistenceStrategy2 item : items) {
-            String result = item.getCollectionItemConfigName(configName, relatedConfigResource);
+            String result = item.getCollectionItemConfigName(configName, relatedConfigPath);
             if (result != null) {
                 return result;
             }

Modified: sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationPersistenceStrategyMultiplexerImplTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationPersistenceStrategyMultiplexerImplTest.java?rev=1787813&r1=1787812&r2=1787813&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationPersistenceStrategyMultiplexerImplTest.java (original)
+++ sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationPersistenceStrategyMultiplexerImplTest.java Mon Mar 20 17:16:46 2017
@@ -142,15 +142,15 @@ public class ConfigurationPersistenceStr
                 return resource1.getPath();
             }
             @Override
-            public String getConfigName(String configName, Resource relatedConfigResource) {
+            public String getConfigName(String configName, String relatedConfigPath) {
                 return resource1.getPath();
             }
             @Override
-            public String getCollectionParentConfigName(String configName, Resource relatedConfigResource) {
+            public String getCollectionParentConfigName(String configName, String relatedConfigPath) {
                 return resource1.getPath();
             }
             @Override
-            public String getCollectionItemConfigName(String configName, Resource relatedConfigResource) {
+            public String getCollectionItemConfigName(String configName, String relatedConfigPath) {
                 return resource1.getPath();
             }
             @Override

Modified: sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/management/impl/CustomConfigurationPersistenceStrategy.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/management/impl/CustomConfigurationPersistenceStrategy.java?rev=1787813&r1=1787812&r2=1787813&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/management/impl/CustomConfigurationPersistenceStrategy.java (original)
+++ sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/management/impl/CustomConfigurationPersistenceStrategy.java Mon Mar 20 17:16:46 2017
@@ -74,17 +74,17 @@ public class CustomConfigurationPersiste
     }
 
     @Override
-    public String getConfigName(String configName, Resource relatedConfigResource) {
+    public String getConfigName(String configName, String relatedConfigPath) {
         return configName + "/" + CHILD_NODE_NAME;
     }
 
     @Override
-    public String getCollectionParentConfigName(String configName, Resource relatedConfigResource) {
+    public String getCollectionParentConfigName(String configName, String relatedConfigPath) {
         return configName;
     }
 
     @Override
-    public String getCollectionItemConfigName(String configName, Resource relatedConfigResource) {
+    public String getCollectionItemConfigName(String configName, String relatedConfigPath) {
         return configName + "/" + CHILD_NODE_NAME;
     }
     

Modified: sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/management/impl/CustomConfigurationPersistenceStrategy2.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/management/impl/CustomConfigurationPersistenceStrategy2.java?rev=1787813&r1=1787812&r2=1787813&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/management/impl/CustomConfigurationPersistenceStrategy2.java (original)
+++ sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/management/impl/CustomConfigurationPersistenceStrategy2.java Mon Mar 20 17:16:46 2017
@@ -100,7 +100,7 @@ public class CustomConfigurationPersiste
     }
 
     @Override
-    public String getConfigName(String configName, Resource relatedConfigResource) {
+    public String getConfigName(String configName, String relatedConfigPath) {
         if (containsJcrContent(configName)) {
             return configName;
         }
@@ -110,7 +110,7 @@ public class CustomConfigurationPersiste
     }
 
     @Override
-    public String getCollectionParentConfigName(String configName, Resource relatedConfigResource) {
+    public String getCollectionParentConfigName(String configName, String relatedConfigPath) {
         if (containsJcrContent(configName)) {
             return configName;
         }
@@ -120,7 +120,7 @@ public class CustomConfigurationPersiste
     }
 
     @Override
-    public String getCollectionItemConfigName(String configName, Resource relatedConfigResource) {
+    public String getCollectionItemConfigName(String configName, String relatedConfigPath) {
         return configName;
     }
     

Modified: sling/trunk/bundles/extensions/caconfig/spi/src/main/java/org/apache/sling/caconfig/spi/ConfigurationPersistenceStrategy2.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/caconfig/spi/src/main/java/org/apache/sling/caconfig/spi/ConfigurationPersistenceStrategy2.java?rev=1787813&r1=1787812&r2=1787813&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/caconfig/spi/src/main/java/org/apache/sling/caconfig/spi/ConfigurationPersistenceStrategy2.java (original)
+++ sling/trunk/bundles/extensions/caconfig/spi/src/main/java/org/apache/sling/caconfig/spi/ConfigurationPersistenceStrategy2.java Mon Mar 20 17:16:46 2017
@@ -84,31 +84,31 @@ public interface ConfigurationPersistenc
      * Allows the strategy to transform the given configuration name for nested configurations according to it's persistent strategies,
      * e.g. fetching the data from a child resource instead of the given resource. 
      * @param configName Configuration name
-     * @param relatedConfigResource A configuration resource that was resolved in context of this configuration name.
+     * @param relatedConfigPath Path of a configuration resource that was resolved in context of this configuration name.
      *     This can be used to detect if the persistence strategy supports the configuration location. If null it should be assumed that it matches.
      * @return Transformed configuration name. If null is returned this strategy does not support the given configuration resource path.
      */
-    @CheckForNull String getConfigName(@Nonnull String configName, @CheckForNull Resource relatedConfigResource);
+    @CheckForNull String getConfigName(@Nonnull String configName, @CheckForNull String relatedConfigPath);
     
     /**
      * Allows the strategy to transform the given configuration name for nested configurations according to it's persistent strategies,
      * e.g. fetching the data from a child resource instead of the given resource. 
      * @param configName Configuration name
-     * @param relatedConfigResource A configuration resource that was resolved in context of this configuration name.
+     * @param relatedConfigPath Path of a configuration resource that was resolved in context of this configuration name.
      *     This can be used to detect if the persistence strategy supports the configuration location. If null it should be assumed that it matches.
      * @return Transformed configuration name. If null is returned this strategy does not support the given configuration resource path.
      */
-    @CheckForNull String getCollectionParentConfigName(@Nonnull String configName, @CheckForNull Resource relatedConfigResource);
+    @CheckForNull String getCollectionParentConfigName(@Nonnull String configName, @CheckForNull String relatedConfigPath);
 
     /**
      * Allows the strategy to transform the given configuration name for nested configurations according to it's persistent strategies,
      * e.g. fetching the data from a child resource instead of the given resource. 
      * @param configName Configuration name
-     * @param relatedConfigResource A configuration resource that was resolved in context of this configuration name.
+     * @param relatedConfigPath Path of a configuration resource that was resolved in context of this configuration name.
      *     This can be used to detect if the persistence strategy supports the configuration location. If null it should be assumed that it matches.
      * @return Transformed configuration name. If null is returned this strategy does not support the given configuration resource path.
      */
-    @CheckForNull String getCollectionItemConfigName(@Nonnull String configName, @CheckForNull Resource relatedConfigResource);
+    @CheckForNull String getCollectionItemConfigName(@Nonnull String configName, @CheckForNull String relatedConfigPath);
     
     /**
      * Stores configuration data for a singleton configuration resource.