You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2015/09/23 19:10:48 UTC

svn commit: r1704900 - in /sling/trunk/samples/slingshot/src/main: java/org/apache/sling/sample/slingshot/comments/impl/ java/org/apache/sling/sample/slingshot/impl/ java/org/apache/sling/sample/slingshot/ratings/impl/ resources/SLING-INF/content/libs/...

Author: cziegeler
Date: Wed Sep 23 17:10:47 2015
New Revision: 1704900

URL: http://svn.apache.org/viewvc?rev=1704900&view=rev
Log:
Make slingshot sample work with JR2 again

Modified:
    sling/trunk/samples/slingshot/src/main/java/org/apache/sling/sample/slingshot/comments/impl/CommentPostServlet.java
    sling/trunk/samples/slingshot/src/main/java/org/apache/sling/sample/slingshot/impl/SetupService.java
    sling/trunk/samples/slingshot/src/main/java/org/apache/sling/sample/slingshot/ratings/impl/RatingPostServlet.java
    sling/trunk/samples/slingshot/src/main/java/org/apache/sling/sample/slingshot/ratings/impl/RatingsServiceImpl.java
    sling/trunk/samples/slingshot/src/main/resources/SLING-INF/content/libs/slingshot/Component/trail.html.jsp

Modified: sling/trunk/samples/slingshot/src/main/java/org/apache/sling/sample/slingshot/comments/impl/CommentPostServlet.java
URL: http://svn.apache.org/viewvc/sling/trunk/samples/slingshot/src/main/java/org/apache/sling/sample/slingshot/comments/impl/CommentPostServlet.java?rev=1704900&r1=1704899&r2=1704900&view=diff
==============================================================================
--- sling/trunk/samples/slingshot/src/main/java/org/apache/sling/sample/slingshot/comments/impl/CommentPostServlet.java (original)
+++ sling/trunk/samples/slingshot/src/main/java/org/apache/sling/sample/slingshot/comments/impl/CommentPostServlet.java Wed Sep 23 17:10:47 2015
@@ -17,6 +17,8 @@
 package org.apache.sling.sample.slingshot.comments.impl;
 
 import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
 
 import javax.servlet.ServletException;
 
@@ -33,6 +35,7 @@ import org.apache.sling.sample.slingshot
 import org.apache.sling.sample.slingshot.comments.Comment;
 import org.apache.sling.sample.slingshot.comments.CommentsService;
 import org.apache.sling.sample.slingshot.comments.CommentsUtil;
+import org.apache.sling.sample.slingshot.impl.InternalConstants;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -64,7 +67,12 @@ public class CommentPostServlet extends
         // save comment
         ResourceResolver resolver = null;
         try {
-            resolver = factory.getServiceResourceResolver(null);
+            // TODO - switch to service user with Oak
+            final Map<String, Object> authInfo = new HashMap<String, Object>();
+            authInfo.put(ResourceResolverFactory.USER, InternalConstants.SERVICE_USER_NAME);
+            authInfo.put(ResourceResolverFactory.PASSWORD, InternalConstants.SERVICE_USER_NAME.toCharArray());
+            resolver = factory.getResourceResolver(authInfo);
+//          resolver = factory.getServiceResourceResolver(null);
 
             final Resource reqResource = resolver.getResource(request.getResource().getPath());
 
@@ -83,9 +91,9 @@ public class CommentPostServlet extends
         }
 
         // send redirect at the end
-        final String path = request.getResource().getParent().getPath();
+        final String path = request.getResource().getPath();
 
-        response.sendRedirect(request.getContextPath() + path + ".html");
+        response.sendRedirect(resolver.map(request.getContextPath() + path + ".html"));
     }
 
 }

Modified: sling/trunk/samples/slingshot/src/main/java/org/apache/sling/sample/slingshot/impl/SetupService.java
URL: http://svn.apache.org/viewvc/sling/trunk/samples/slingshot/src/main/java/org/apache/sling/sample/slingshot/impl/SetupService.java?rev=1704900&r1=1704899&r2=1704900&view=diff
==============================================================================
--- sling/trunk/samples/slingshot/src/main/java/org/apache/sling/sample/slingshot/impl/SetupService.java (original)
+++ sling/trunk/samples/slingshot/src/main/java/org/apache/sling/sample/slingshot/impl/SetupService.java Wed Sep 23 17:10:47 2015
@@ -92,20 +92,14 @@ public class SetupService {
 
         // create default slingshot users
         for(final String principalId : USERS) {
+            // user home
             final String resourcePath = SlingshotConstants.APP_ROOT_PATH + "/users/" + principalId;
-
-            final Map<String, String> privileges = new HashMap<String, String>();
-            privileges.put(Privilege.JCR_ALL, "granted");
-
             modifyAce(session, resourcePath, principalId, Privilege.JCR_ALL, true);
 
             // ugc path
             final String ugcPath = resourcePath + "/ugc";
-            privileges.clear();
-            privileges.put(Privilege.JCR_ALL, "granted");
-
-            modifyAce(session, ugcPath, InternalConstants.SERVICE_USER_NAME,
-                    Privilege.JCR_ALL, true);
+            modifyAce(session, ugcPath,
+                    InternalConstants.SERVICE_USER_NAME, Privilege.JCR_ALL, true);
         }
     }
 

Modified: sling/trunk/samples/slingshot/src/main/java/org/apache/sling/sample/slingshot/ratings/impl/RatingPostServlet.java
URL: http://svn.apache.org/viewvc/sling/trunk/samples/slingshot/src/main/java/org/apache/sling/sample/slingshot/ratings/impl/RatingPostServlet.java?rev=1704900&r1=1704899&r2=1704900&view=diff
==============================================================================
--- sling/trunk/samples/slingshot/src/main/java/org/apache/sling/sample/slingshot/ratings/impl/RatingPostServlet.java (original)
+++ sling/trunk/samples/slingshot/src/main/java/org/apache/sling/sample/slingshot/ratings/impl/RatingPostServlet.java Wed Sep 23 17:10:47 2015
@@ -18,6 +18,8 @@ package org.apache.sling.sample.slingsho
 
 import java.io.IOException;
 import java.io.PrintWriter;
+import java.util.HashMap;
+import java.util.Map;
 
 import javax.servlet.ServletException;
 
@@ -26,10 +28,12 @@ import org.apache.felix.scr.annotations.
 import org.apache.sling.api.SlingHttpServletRequest;
 import org.apache.sling.api.SlingHttpServletResponse;
 import org.apache.sling.api.resource.LoginException;
+import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.resource.ResourceResolver;
 import org.apache.sling.api.resource.ResourceResolverFactory;
 import org.apache.sling.api.servlets.SlingAllMethodsServlet;
 import org.apache.sling.sample.slingshot.SlingshotConstants;
+import org.apache.sling.sample.slingshot.impl.InternalConstants;
 import org.apache.sling.sample.slingshot.ratings.RatingsService;
 import org.apache.sling.sample.slingshot.ratings.RatingsUtil;
 import org.slf4j.Logger;
@@ -64,9 +68,17 @@ public class RatingPostServlet extends S
         // save rating
         ResourceResolver resolver = null;
         try {
-            resolver = factory.getServiceResourceResolver(null);
+            // TODO - switch to service user with Oak
+            final Map<String, Object> authInfo = new HashMap<String, Object>();
+            authInfo.put(ResourceResolverFactory.USER, InternalConstants.SERVICE_USER_NAME);
+            authInfo.put(ResourceResolverFactory.PASSWORD, InternalConstants.SERVICE_USER_NAME.toCharArray());
+            resolver = factory.getResourceResolver(authInfo);
+//            resolver = factory.getServiceResourceResolver(null);
+
+            final Resource reqResource = resolver.getResource(request.getResource().getPath());
+
+            ratingsService.setRating(reqResource, userId, Integer.valueOf(rating));
 
-            ratingsService.setRating(request.getResource(), userId, Integer.valueOf(rating));
         } catch ( final LoginException le ) {
             throw new ServletException("Unable to login", le);
         } finally {

Modified: sling/trunk/samples/slingshot/src/main/java/org/apache/sling/sample/slingshot/ratings/impl/RatingsServiceImpl.java
URL: http://svn.apache.org/viewvc/sling/trunk/samples/slingshot/src/main/java/org/apache/sling/sample/slingshot/ratings/impl/RatingsServiceImpl.java?rev=1704900&r1=1704899&r2=1704900&view=diff
==============================================================================
--- sling/trunk/samples/slingshot/src/main/java/org/apache/sling/sample/slingshot/ratings/impl/RatingsServiceImpl.java (original)
+++ sling/trunk/samples/slingshot/src/main/java/org/apache/sling/sample/slingshot/ratings/impl/RatingsServiceImpl.java Wed Sep 23 17:10:47 2015
@@ -21,6 +21,7 @@ import java.util.Map;
 
 import org.apache.felix.scr.annotations.Component;
 import org.apache.felix.scr.annotations.Service;
+import org.apache.sling.api.resource.ModifiableValueMap;
 import org.apache.sling.api.resource.PersistenceException;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.resource.ResourceResolver;
@@ -44,6 +45,7 @@ public class RatingsServiceImpl implemen
     /**
      * @see org.apache.sling.sample.slingshot.ratings.RatingsService#getRatingsResourcePath(org.apache.sling.api.resource.Resource)
      */
+    @Override
     public String getRatingsResourcePath(final Resource resource) {
         final String contentPath = SlingshotUtil.getContentPath(resource);
         if ( contentPath != null ) {
@@ -58,6 +60,7 @@ public class RatingsServiceImpl implemen
     /**
      * @see org.apache.sling.sample.slingshot.ratings.RatingsService#getRating(org.apache.sling.api.resource.Resource)
      */
+    @Override
     public int getRating(final Resource resource) {
         final String fullPath = getRatingsResourcePath(resource);
         int rating = 0;
@@ -82,6 +85,7 @@ public class RatingsServiceImpl implemen
     /**
      * @see org.apache.sling.sample.slingshot.ratings.RatingsService#getRating(org.apache.sling.api.resource.Resource, java.lang.String)
      */
+    @Override
     public int getRating(final Resource resource, final String userId) {
         final String fullPath = getRatingsResourcePath(resource);
         int rating = 0;
@@ -97,6 +101,7 @@ public class RatingsServiceImpl implemen
     /**
      * @see org.apache.sling.sample.slingshot.ratings.RatingsService#setRating(org.apache.sling.api.resource.Resource, java.lang.String, int)
      */
+    @Override
     public void setRating(final Resource resource, final String userId, final int rating)
     throws PersistenceException {
         final String ratingsPath = getRatingsResourcePath(resource) ;
@@ -106,10 +111,17 @@ public class RatingsServiceImpl implemen
         final Resource ratingsResource = ResourceUtil.getOrCreateResource(resource.getResourceResolver(),
                 ratingsPath, props, null, true);
 
-        props.clear();
-        props.put(ResourceResolver.PROPERTY_RESOURCE_TYPE, RatingsUtil.RESOURCETYPE_RATING);
-        props.put(RatingsUtil.PROPERTY_RATING, rating);
-        ResourceUtil.getOrCreateResource(resource.getResourceResolver(),
-                ratingsResource.getPath() + "/" + userId, props, null, false);
+        final Resource ratingRsrc = resource.getResourceResolver().getResource(ratingsResource, userId);
+        if ( ratingRsrc == null ) {
+            props.clear();
+            props.put(ResourceResolver.PROPERTY_RESOURCE_TYPE, RatingsUtil.RESOURCETYPE_RATING);
+            props.put(RatingsUtil.PROPERTY_RATING, rating);
+
+            resource.getResourceResolver().create(ratingsResource, userId, props);
+        } else {
+            final ModifiableValueMap mvm = ratingRsrc.adaptTo(ModifiableValueMap.class);
+            mvm.put(RatingsUtil.PROPERTY_RATING, rating);
+        }
+        resource.getResourceResolver().commit();
     }
 }

Modified: sling/trunk/samples/slingshot/src/main/resources/SLING-INF/content/libs/slingshot/Component/trail.html.jsp
URL: http://svn.apache.org/viewvc/sling/trunk/samples/slingshot/src/main/resources/SLING-INF/content/libs/slingshot/Component/trail.html.jsp?rev=1704900&r1=1704899&r2=1704900&view=diff
==============================================================================
--- sling/trunk/samples/slingshot/src/main/resources/SLING-INF/content/libs/slingshot/Component/trail.html.jsp (original)
+++ sling/trunk/samples/slingshot/src/main/resources/SLING-INF/content/libs/slingshot/Component/trail.html.jsp Wed Sep 23 17:10:47 2015
@@ -37,9 +37,11 @@
         String prefix = "../";
         boolean continueProcessing = true;
         do {
-            final ValueMap parentAttr = parent.getValueMap();
-            final String parentName = parent.getName();
-            parents.add(new Object[] {prefix + parentName, ResponseUtil.escapeXml(parentAttr.get(SlingshotConstants.PROPERTY_TITLE, parentName))});
+            if ( !parent.isResourceType(SlingshotConstants.RESOURCETYPE_CONTENT) ) {
+                final ValueMap parentAttr = parent.getValueMap();
+                final String parentName = parent.getName();
+                parents.add(new Object[] {prefix + parentName, ResponseUtil.escapeXml(parentAttr.get(SlingshotConstants.PROPERTY_TITLE, parentName))});
+            }
             if ( parent.isResourceType(SlingshotConstants.RESOURCETYPE_USER) ) {
                 continueProcessing = false;
             } else {