You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by to...@apache.org on 2015/10/08 11:41:07 UTC

svn commit: r1707465 - in /sling/trunk: bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/ bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/tree/params/ bundles/servlets/resolver/src/main/...

Author: tomekr
Date: Thu Oct  8 09:41:07 2015
New Revision: 1707465

URL: http://svn.apache.org/viewvc?rev=1707465&view=rev
Log:
SLING-5108 Various little performance improvements

Modified:
    sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrItemResource.java
    sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/tree/params/PathParser.java
    sling/trunk/bundles/servlets/resolver/src/main/java/org/apache/sling/servlets/resolver/internal/SlingServletResolver.java
    sling/trunk/contrib/extensions/resourcemerger/src/main/java/org/apache/sling/resourcemerger/impl/MergedResource.java

Modified: sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrItemResource.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrItemResource.java?rev=1707465&r1=1707464&r2=1707465&view=diff
==============================================================================
--- sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrItemResource.java (original)
+++ sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrItemResource.java Thu Oct  8 09:41:07 2015
@@ -28,6 +28,7 @@ import javax.jcr.PropertyType;
 import javax.jcr.RepositoryException;
 import javax.jcr.ValueFormatException;
 
+import org.apache.jackrabbit.JcrConstants;
 import org.apache.sling.api.resource.AbstractResource;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.resource.ResourceMetadata;
@@ -120,8 +121,13 @@ abstract class JcrItemResource<T extends
         }
 
         if (result == null || result.length() == 0) {
-            //result = node.getProperty("jcr:primaryType").getString();
-            result = node.getPrimaryNodeType().getName();
+            // Do not load the relatively expensive NodeType object unless necessary. See OAK-2441 for the reason why it
+            // cannot only use getProperty here.
+            if (node.hasProperty(JcrConstants.JCR_PRIMARYTYPE)) {
+                result = node.getProperty(JcrConstants.JCR_PRIMARYTYPE).getString();
+            } else {
+                result = node.getPrimaryNodeType().getName();
+            }
         }
 
         return result;

Modified: sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/tree/params/PathParser.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/tree/params/PathParser.java?rev=1707465&r1=1707464&r2=1707465&view=diff
==============================================================================
--- sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/tree/params/PathParser.java (original)
+++ sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/tree/params/PathParser.java Thu Oct  8 09:41:07 2015
@@ -73,13 +73,21 @@ class PathParser {
             return;
         }
 
+        // indexOf shortcut for the most common case
+        final int di = path.indexOf('.');
+        final int si = path.indexOf(';');
+        if (di == -1 && si == -1) {
+            return;
+        }
+
         final char[] chars = path.toCharArray();
         final ParametersParser parametersParser = new ParametersParser();
 
         ParserState state = ParserState.INIT;
         int paramsStart = -1, paramsEnd = -1;
 
-        for (int i = 0; i <= chars.length; i++) {
+        int i = (di != -1) ? ((si != -1) ? Math.min(di, si) : di) : si;
+        for (; i <= chars.length; i++) {
             final char c;
             if (i == chars.length) {
                 c = 0;

Modified: sling/trunk/bundles/servlets/resolver/src/main/java/org/apache/sling/servlets/resolver/internal/SlingServletResolver.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/servlets/resolver/src/main/java/org/apache/sling/servlets/resolver/internal/SlingServletResolver.java?rev=1707465&r1=1707464&r2=1707465&view=diff
==============================================================================
--- sling/trunk/bundles/servlets/resolver/src/main/java/org/apache/sling/servlets/resolver/internal/SlingServletResolver.java (original)
+++ sling/trunk/bundles/servlets/resolver/src/main/java/org/apache/sling/servlets/resolver/internal/SlingServletResolver.java Thu Oct  8 09:41:07 2015
@@ -228,7 +228,7 @@ public class SlingServletResolver
 
         // start tracking servlet resolution
         final RequestProgressTracker tracker = request.getRequestProgressTracker();
-        final String timerName = "resolveServlet(" + resource + ")";
+        final String timerName = "resolveServlet(" + resource.getPath() + ")";
         tracker.startTimer(timerName);
 
         final String type = resource.getResourceType();

Modified: sling/trunk/contrib/extensions/resourcemerger/src/main/java/org/apache/sling/resourcemerger/impl/MergedResource.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/resourcemerger/src/main/java/org/apache/sling/resourcemerger/impl/MergedResource.java?rev=1707465&r1=1707464&r2=1707465&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/resourcemerger/src/main/java/org/apache/sling/resourcemerger/impl/MergedResource.java (original)
+++ sling/trunk/contrib/extensions/resourcemerger/src/main/java/org/apache/sling/resourcemerger/impl/MergedResource.java Thu Oct  8 09:41:07 2015
@@ -177,7 +177,6 @@ public class MergedResource extends Abst
 
     @Override
     public String toString() {
-        return "MergedResource [path=" + this.path +
-               ", resources=" + this.metadata.get(MergedResourceConstants.METADATA_RESOURCES) + "]";
+        return "MergedResource [path=" + this.path + "]";
     }
 }



Re: svn commit: r1707465 - in /sling/trunk: bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/ bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/tree/params/ bundles/servlets/resolver/src/main/...

Posted by Carsten Ziegeler <cz...@apache.org>.
Hi,

I think we should really have a commit per module - and also an issue
per module and simply pack a bunch of totally different stuff in one
issue. This is really hard to track.

The patch down there removes important information from toString, please
revert

Thanks
Carsten

Am 08.10.15 um 11:41 schrieb tomekr@apache.org:
> Author: tomekr
> Date: Thu Oct  8 09:41:07 2015
> New Revision: 1707465
> 
...
> --- sling/trunk/contrib/extensions/resourcemerger/src/main/java/org/apache/sling/resourcemerger/impl/MergedResource.java (original)
> +++ sling/trunk/contrib/extensions/resourcemerger/src/main/java/org/apache/sling/resourcemerger/impl/MergedResource.java Thu Oct  8 09:41:07 2015
> @@ -177,7 +177,6 @@ public class MergedResource extends Abst
>  
>      @Override
>      public String toString() {
> -        return "MergedResource [path=" + this.path +
> -               ", resources=" + this.metadata.get(MergedResourceConstants.METADATA_RESOURCES) + "]";
> +        return "MergedResource [path=" + this.path + "]";
>      }
>  }
> 
> 
> 


-- 
Carsten Ziegeler
Adobe Research Switzerland
cziegeler@apache.org