You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by fm...@apache.org on 2008/05/19 11:08:49 UTC

svn commit: r657767 - in /incubator/sling/trunk/servlets/post/src/main/java/org/apache/sling/servlets/post: AbstractSlingPostOperation.java impl/helper/NodeNameGenerator.java impl/operations/ModifyOperation.java

Author: fmeschbe
Date: Mon May 19 02:08:49 2008
New Revision: 657767

URL: http://svn.apache.org/viewvc?rev=657767&view=rev
Log:
SLING-394:
  - Check for correct list of prefix (not just /) in AbstractSlingPostOperation
  - Only consider prefix parameter for node name generation

Modified:
    incubator/sling/trunk/servlets/post/src/main/java/org/apache/sling/servlets/post/AbstractSlingPostOperation.java
    incubator/sling/trunk/servlets/post/src/main/java/org/apache/sling/servlets/post/impl/helper/NodeNameGenerator.java
    incubator/sling/trunk/servlets/post/src/main/java/org/apache/sling/servlets/post/impl/operations/ModifyOperation.java

Modified: incubator/sling/trunk/servlets/post/src/main/java/org/apache/sling/servlets/post/AbstractSlingPostOperation.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/servlets/post/src/main/java/org/apache/sling/servlets/post/AbstractSlingPostOperation.java?rev=657767&r1=657766&r2=657767&view=diff
==============================================================================
--- incubator/sling/trunk/servlets/post/src/main/java/org/apache/sling/servlets/post/AbstractSlingPostOperation.java (original)
+++ incubator/sling/trunk/servlets/post/src/main/java/org/apache/sling/servlets/post/AbstractSlingPostOperation.java Mon May 19 02:08:49 2008
@@ -182,8 +182,8 @@
      */
     protected boolean hasItemPathPrefix(String name) {
         return name.startsWith(SlingPostConstants.ITEM_PREFIX_ABSOLUTE)
-            || name.startsWith(SlingPostConstants.ITEM_PREFIX_ABSOLUTE)
-            || name.startsWith(SlingPostConstants.ITEM_PREFIX_ABSOLUTE);
+            || name.startsWith(SlingPostConstants.ITEM_PREFIX_RELATIVE_CURRENT)
+            || name.startsWith(SlingPostConstants.ITEM_PREFIX_RELATIVE_PARENT);
     }
 
     /**

Modified: incubator/sling/trunk/servlets/post/src/main/java/org/apache/sling/servlets/post/impl/helper/NodeNameGenerator.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/servlets/post/src/main/java/org/apache/sling/servlets/post/impl/helper/NodeNameGenerator.java?rev=657767&r1=657766&r2=657767&view=diff
==============================================================================
--- incubator/sling/trunk/servlets/post/src/main/java/org/apache/sling/servlets/post/impl/helper/NodeNameGenerator.java (original)
+++ incubator/sling/trunk/servlets/post/src/main/java/org/apache/sling/servlets/post/impl/helper/NodeNameGenerator.java Mon May 19 02:08:49 2008
@@ -51,9 +51,12 @@
      * Get a "nice" node name, if possible, based on given request
      *
      * @param parameters the request parameters
+     * @param requirePrefix <code>true</code> if the parameter names for
+     *      properties requires a prefix
      * @return a nice node name
      */
-    public String getNodeName(RequestParameterMap parameters) {
+    public String getNodeName(RequestParameterMap parameters,
+            boolean requirePrefix) {
         String valueToUse = null;
         boolean doFilter = true;
 
@@ -77,19 +80,19 @@
                 }
             }
 
-            if ( valueToUse == null ) {
-                for(String param : parameterNames) {
-                    if(valueToUse != null) {
+            if (valueToUse == null) {
+                for (String param : parameterNames) {
+                    if (valueToUse != null) {
                         break;
                     }
-                    RequestParameter[] pp = parameters.get(param);
-                    if (pp == null) {
-                        pp = parameters.get(SlingPostConstants.ITEM_PREFIX_RELATIVE_CURRENT + param);
+                    if (requirePrefix) {
+                        param = SlingPostConstants.ITEM_PREFIX_RELATIVE_CURRENT.concat(param);
                     }
-                    if (pp!=null) {
-                        for(RequestParameter p : pp) {
+                    final RequestParameter[] pp = parameters.get(param);
+                    if (pp != null) {
+                        for (RequestParameter p : pp) {
                             valueToUse = p.getString();
-                            if(valueToUse != null && valueToUse.length() > 0) {
+                            if (valueToUse != null && valueToUse.length() > 0) {
                                 break;
                             }
                             valueToUse = null;

Modified: incubator/sling/trunk/servlets/post/src/main/java/org/apache/sling/servlets/post/impl/operations/ModifyOperation.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/servlets/post/src/main/java/org/apache/sling/servlets/post/impl/operations/ModifyOperation.java?rev=657767&r1=657766&r2=657767&view=diff
==============================================================================
--- incubator/sling/trunk/servlets/post/src/main/java/org/apache/sling/servlets/post/impl/operations/ModifyOperation.java (original)
+++ incubator/sling/trunk/servlets/post/src/main/java/org/apache/sling/servlets/post/impl/operations/ModifyOperation.java Mon May 19 02:08:49 2008
@@ -157,7 +157,8 @@
         // If the path ends with a *, create a node under its parent, with
         // a generated node name
         basePath += "/"
-            + nodeNameGenerator.getNodeName(request.getRequestParameterMap());
+            + nodeNameGenerator.getNodeName(request.getRequestParameterMap(),
+                requireItemPathPrefix(request));
 
         // if resulting path exists, add a suffix until it's not the case
         // anymore