Author: ate
Date: Wed Oct 10 12:47:40 2012
New Revision: 1396571
URL: http://svn.apache.org/viewvc?rev=1396571&view=rev
Log:
RAVE-696: rave-web-jcr and demo-portal
- update and alignment to latest changes in rave-web-hmvc (RAVE-694)
Added:
rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/routed-dispatcher-servlet.xml
- copied, changed from r1390464,
rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/nested-dispatcher-servlet.xml
Removed:
rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/nested-dispatcher-servlet.xml
Modified:
rave/sandbox/content-services/demo-portal/src/main/java/org/apache/rave/portal/web/mvc/controller/UserPageContentController.java
rave/sandbox/content-services/demo-portal/src/main/java/org/apache/rave/portal/web/mvc/controller/UserPageLayoutController.java
rave/sandbox/content-services/demo-portal/src/main/java/org/apache/rave/portal/web/mvc/controller/UserPageTabsController.java
rave/sandbox/content-services/demo-portal/src/main/java/org/apache/rave/portal/web/mvc/controller/UserProfileFormController.java
rave/sandbox/content-services/demo-portal/src/main/java/org/apache/rave/portal/web/mvc/interceptors/AuthenticatedUserInterceptor.java
rave/sandbox/content-services/demo-portal/src/main/java/org/apache/rave/portal/web/mvc/interceptors/MobileDeviceInterceptor.java
rave/sandbox/content-services/demo-portal/src/main/java/org/apache/rave/portal/web/mvc/interceptors/TopMenuInterceptor.java
rave/sandbox/content-services/demo-portal/src/main/java/org/apache/rave/portal/web/mvc/interceptors/UserPageInterceptor.java
rave/sandbox/content-services/demo-portal/src/main/java/org/apache/rave/portal/web/mvc/interceptors/UserProfileInterceptor.java
rave/sandbox/content-services/demo-portal/src/main/resources/page-config.json
rave/sandbox/content-services/demo-portal/src/main/resources/template-data.json
rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/freemarker/views/pages/footer.ftl
rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/freemarker/views/pages/taglibs.ftl
rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/jsp/views/pages/userprofile/page-form.jsp
rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/routes.xml
rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/web.xml
Modified:
rave/sandbox/content-services/demo-portal/src/main/java/org/apache/rave/portal/web/mvc/controller/UserPageContentController.java
URL:
http://svn.apache.org/viewvc/rave/sandbox/content-services/demo-portal/src/main/java/org/apache/rave/portal/web/mvc/controller/UserPageContentController.java?rev=1396571&r1=1396570&r2=1396571&view=diff
==============================================================================
---
rave/sandbox/content-services/demo-portal/src/main/java/org/apache/rave/portal/web/mvc/controller/UserPageContentController.java
(original)
+++
rave/sandbox/content-services/demo-portal/src/main/java/org/apache/rave/portal/web/mvc/controller/UserPageContentController.java
Wed Oct 10 12:47:40 2012
@@ -17,24 +17,22 @@
package org.apache.rave.portal.web.mvc.controller;
import org.apache.rave.portal.web.mvc.Named;
-import org.apache.rave.portal.web.mvc.NestedHandlerContext;
+import org.apache.rave.portal.web.mvc.PageFragmentContext;
import org.apache.rave.portal.web.mvc.Routed;
-import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
@Routed
-@Controller
public class UserPageContentController {
@Named
@RequestMapping
- public String render(NestedHandlerContext hc,
@ModelAttribute("mobileDevice") boolean mobileDevice) {
+ public String render(PageFragmentContext context,
@ModelAttribute("mobileDevice") boolean mobileDevice) {
if (mobileDevice) {
- return hc.getConfig().getViewName() + "-mobile";
+ return context.getFragmentViewName() + "-mobile";
}
else {
- return hc.getConfig().getViewName();
+ return context.getFragmentViewName();
}
}
}
Modified:
rave/sandbox/content-services/demo-portal/src/main/java/org/apache/rave/portal/web/mvc/controller/UserPageLayoutController.java
URL:
http://svn.apache.org/viewvc/rave/sandbox/content-services/demo-portal/src/main/java/org/apache/rave/portal/web/mvc/controller/UserPageLayoutController.java?rev=1396571&r1=1396570&r2=1396571&view=diff
==============================================================================
---
rave/sandbox/content-services/demo-portal/src/main/java/org/apache/rave/portal/web/mvc/controller/UserPageLayoutController.java
(original)
+++
rave/sandbox/content-services/demo-portal/src/main/java/org/apache/rave/portal/web/mvc/controller/UserPageLayoutController.java
Wed Oct 10 12:47:40 2012
@@ -18,14 +18,11 @@ package org.apache.rave.portal.web.mvc.c
import org.apache.rave.portal.model.Page;
import org.apache.rave.portal.web.mvc.Named;
-import org.apache.rave.portal.web.mvc.NestedHandlerContext;
import org.apache.rave.portal.web.mvc.Routed;
-import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
@Routed
-@Controller
public class UserPageLayoutController {
@Named
Modified:
rave/sandbox/content-services/demo-portal/src/main/java/org/apache/rave/portal/web/mvc/controller/UserPageTabsController.java
URL:
http://svn.apache.org/viewvc/rave/sandbox/content-services/demo-portal/src/main/java/org/apache/rave/portal/web/mvc/controller/UserPageTabsController.java?rev=1396571&r1=1396570&r2=1396571&view=diff
==============================================================================
---
rave/sandbox/content-services/demo-portal/src/main/java/org/apache/rave/portal/web/mvc/controller/UserPageTabsController.java
(original)
+++
rave/sandbox/content-services/demo-portal/src/main/java/org/apache/rave/portal/web/mvc/controller/UserPageTabsController.java
Wed Oct 10 12:47:40 2012
@@ -26,17 +26,15 @@ import org.apache.rave.portal.model.User
import org.apache.rave.portal.service.PageLayoutService;
import org.apache.rave.portal.service.PageService;
import org.apache.rave.portal.web.mvc.Named;
-import org.apache.rave.portal.web.mvc.NestedHandlerContext;
+import org.apache.rave.portal.web.mvc.PageFragmentContext;
import org.apache.rave.portal.web.mvc.Routed;
import org.apache.rave.portal.web.util.ModelKeys;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
@Routed
-@Controller
public class UserPageTabsController {
private PageService pageService;
@@ -50,14 +48,14 @@ public class UserPageTabsController {
@Named
@RequestMapping
- public String render(NestedHandlerContext hc,
@ModelAttribute("mobileDevice") boolean mobileDevice, @ModelAttribute User
user, Model model) {
+ public String render(PageFragmentContext context,
@ModelAttribute("mobileDevice") boolean mobileDevice, @ModelAttribute User
user, Model model) {
model.addAttribute(ModelKeys.PAGES,
getAllPagesForAuthenticatedUser(user));
model.addAttribute(ModelKeys.PAGE_LAYOUTS,
pageLayoutService.getAllUserSelectable());
if (mobileDevice) {
- return hc.getConfig().getViewName() + "-mobile";
+ return context.getFragmentViewName() + "-mobile";
}
else {
- return hc.getConfig().getViewName();
+ return context.getFragmentViewName();
}
}
Modified:
rave/sandbox/content-services/demo-portal/src/main/java/org/apache/rave/portal/web/mvc/controller/UserProfileFormController.java
URL:
http://svn.apache.org/viewvc/rave/sandbox/content-services/demo-portal/src/main/java/org/apache/rave/portal/web/mvc/controller/UserProfileFormController.java?rev=1396571&r1=1396570&r2=1396571&view=diff
==============================================================================
---
rave/sandbox/content-services/demo-portal/src/main/java/org/apache/rave/portal/web/mvc/controller/UserProfileFormController.java
(original)
+++
rave/sandbox/content-services/demo-portal/src/main/java/org/apache/rave/portal/web/mvc/controller/UserProfileFormController.java
Wed Oct 10 12:47:40 2012
@@ -23,22 +23,20 @@ import org.apache.rave.portal.model.User
import org.apache.rave.portal.service.UserService;
import org.apache.rave.portal.web.model.UserForm;
import org.apache.rave.portal.web.mvc.Named;
-import org.apache.rave.portal.web.mvc.NestedHandlerContext;
+import org.apache.rave.portal.web.mvc.PageFragmentContext;
import org.apache.rave.portal.web.mvc.Routed;
-import org.apache.rave.portal.web.util.ModelKeys;
-import org.apache.rave.portal.web.util.ViewNames;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.servlet.View;
+import org.springframework.web.servlet.view.RedirectView;
@Routed
-@Controller
public class UserProfileFormController {
private final Logger logger = LoggerFactory.getLogger(getClass());
@@ -52,9 +50,8 @@ public class UserProfileFormController {
@Named
@RequestMapping
- public String render(NestedHandlerContext hc, ModelMap model) {
- model.addAttribute("context", hc);
- return hc.getConfig().getViewName();
+ public String render(PageFragmentContext context, ModelMap model) {
+ return context.getFragmentViewName();
}
/**
@@ -66,7 +63,7 @@ public class UserProfileFormController {
* @return the view name of the user profile page
*/
@RequestMapping(method = RequestMethod.POST, value="/update")
- public String updateProfile(ModelMap model,
+ public View updateProfile(PageFragmentContext context, ModelMap model,
@RequestParam(required = false) Long
referringPageId,
@ModelAttribute("updatedUser") UserForm
updatedUser) {
@@ -84,10 +81,17 @@ public class UserProfileFormController {
//update the user profile
userService.updateUserProfile(user);
- //set about tag page as default page for the changes to be visible
- model.addAttribute(ModelKeys.USER_PROFILE, user);
- model.addAttribute(ModelKeys.REFERRING_PAGE_ID, referringPageId);
+ RedirectView view = new RedirectView();
+ view.setExposeModelAttributes(false);
+ view.setContextRelative(true);
+
+ if (referringPageId != null) {
+
view.setUrl(context.getRoutePath()+"?referringPageId="+referringPageId.toString());
+ }
+ else {
+ view.setUrl(context.getRoutePath());
+ }
- return ViewNames.REDIRECT + "app/person/" + user.getUsername();
+ return view;
}
}
Modified:
rave/sandbox/content-services/demo-portal/src/main/java/org/apache/rave/portal/web/mvc/interceptors/AuthenticatedUserInterceptor.java
URL:
http://svn.apache.org/viewvc/rave/sandbox/content-services/demo-portal/src/main/java/org/apache/rave/portal/web/mvc/interceptors/AuthenticatedUserInterceptor.java?rev=1396571&r1=1396570&r2=1396571&view=diff
==============================================================================
---
rave/sandbox/content-services/demo-portal/src/main/java/org/apache/rave/portal/web/mvc/interceptors/AuthenticatedUserInterceptor.java
(original)
+++
rave/sandbox/content-services/demo-portal/src/main/java/org/apache/rave/portal/web/mvc/interceptors/AuthenticatedUserInterceptor.java
Wed Oct 10 12:47:40 2012
@@ -20,16 +20,16 @@ import javax.servlet.http.HttpServletReq
import javax.servlet.http.HttpServletResponse;
import org.apache.rave.portal.service.UserService;
-import org.apache.rave.portal.web.mvc.HandlerContext;
-import org.apache.rave.portal.web.mvc.RoutedHandlerInterceptorAdapter;
-import org.apache.rave.portal.web.mvc.RoutedHandlerMethod;
+import org.apache.rave.portal.web.mvc.HandlerMethodContext;
+import org.apache.rave.portal.web.mvc.RoutedHandlerMethodInterceptorAdapter;
import org.apache.rave.portal.web.util.ModelKeys;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.ui.ExtendedModelMap;
+import org.springframework.web.method.HandlerMethod;
-public class AuthenticatedUserInterceptor extends
RoutedHandlerInterceptorAdapter {
+public class AuthenticatedUserInterceptor extends
RoutedHandlerMethodInterceptorAdapter {
private final Logger logger = LoggerFactory.getLogger(getClass());
@@ -41,7 +41,7 @@ public class AuthenticatedUserIntercepto
}
@Override
- protected boolean preHandle(HttpServletRequest request,
HttpServletResponse response, RoutedHandlerMethod handler, HandlerContext
context, ExtendedModelMap modelMap) throws Exception {
+ protected boolean preHandle(HttpServletRequest request,
HttpServletResponse response, HandlerMethod handler, HandlerMethodContext
context, ExtendedModelMap modelMap) throws Exception {
modelMap.put(ModelKeys.USER, userService.getAuthenticatedUser());
return true;
}
Modified:
rave/sandbox/content-services/demo-portal/src/main/java/org/apache/rave/portal/web/mvc/interceptors/MobileDeviceInterceptor.java
URL:
http://svn.apache.org/viewvc/rave/sandbox/content-services/demo-portal/src/main/java/org/apache/rave/portal/web/mvc/interceptors/MobileDeviceInterceptor.java?rev=1396571&r1=1396570&r2=1396571&view=diff
==============================================================================
---
rave/sandbox/content-services/demo-portal/src/main/java/org/apache/rave/portal/web/mvc/interceptors/MobileDeviceInterceptor.java
(original)
+++
rave/sandbox/content-services/demo-portal/src/main/java/org/apache/rave/portal/web/mvc/interceptors/MobileDeviceInterceptor.java
Wed Oct 10 12:47:40 2012
@@ -19,17 +19,20 @@ package org.apache.rave.portal.web.mvc.i
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import org.apache.rave.portal.web.mvc.HandlerContext;
-import org.apache.rave.portal.web.mvc.RoutedHandlerInterceptorAdapter;
-import org.apache.rave.portal.web.mvc.RoutedHandlerMethod;
+import org.apache.rave.portal.web.mvc.HandlerMethodContext;
+import org.apache.rave.portal.web.mvc.RoutedHandlerMethodInterceptorAdapter;
import org.springframework.mobile.device.DeviceUtils;
import org.springframework.ui.ExtendedModelMap;
+import org.springframework.web.method.HandlerMethod;
-public class MobileDeviceInterceptor extends RoutedHandlerInterceptorAdapter {
+public class MobileDeviceInterceptor extends
RoutedHandlerMethodInterceptorAdapter {
@Override
- protected boolean preHandle(HttpServletRequest request,
HttpServletResponse response, RoutedHandlerMethod handler, HandlerContext
context, ExtendedModelMap modelMap) throws Exception {
- modelMap.addAttribute("mobileDevice",
Boolean.valueOf(DeviceUtils.getCurrentDevice(request).isMobile()));
+ protected boolean preHandle(HttpServletRequest request,
HttpServletResponse response, HandlerMethod handler, HandlerMethodContext
context, ExtendedModelMap modelMap) throws Exception {
+ // only need mobileDevice detection when doing page rendering
+ if (context.isPageFragmentRenderRequest()) {
+ modelMap.addAttribute("mobileDevice",
Boolean.valueOf(DeviceUtils.getCurrentDevice(request).isMobile()));
+ }
return true;
}
}
Modified:
rave/sandbox/content-services/demo-portal/src/main/java/org/apache/rave/portal/web/mvc/interceptors/TopMenuInterceptor.java
URL:
http://svn.apache.org/viewvc/rave/sandbox/content-services/demo-portal/src/main/java/org/apache/rave/portal/web/mvc/interceptors/TopMenuInterceptor.java?rev=1396571&r1=1396570&r2=1396571&view=diff
==============================================================================
---
rave/sandbox/content-services/demo-portal/src/main/java/org/apache/rave/portal/web/mvc/interceptors/TopMenuInterceptor.java
(original)
+++
rave/sandbox/content-services/demo-portal/src/main/java/org/apache/rave/portal/web/mvc/interceptors/TopMenuInterceptor.java
Wed Oct 10 12:47:40 2012
@@ -16,7 +16,9 @@
*/
package org.apache.rave.portal.web.mvc.interceptors;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -28,14 +30,14 @@ import org.apache.rave.portal.model.User
import org.apache.rave.portal.service.UserService;
import org.apache.rave.portal.web.model.NavigationItem;
import org.apache.rave.portal.web.model.NavigationMenu;
-import org.apache.rave.portal.web.mvc.NestedHandlerContext;
-import org.apache.rave.portal.web.mvc.NestedHandlerInterceptorAdapter;
-import org.apache.rave.portal.web.mvc.NestedHandlerMethod;
+import org.apache.rave.portal.web.mvc.PageFragmentContext;
+import org.apache.rave.portal.web.mvc.RoutedPageInterceptorAdapter;
import org.apache.rave.portal.web.util.ModelKeys;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.ui.ExtendedModelMap;
+import org.springframework.web.method.HandlerMethod;
-public class TopMenuInterceptor extends NestedHandlerInterceptorAdapter {
+public class TopMenuInterceptor extends RoutedPageInterceptorAdapter {
private UserService userService;
@@ -45,9 +47,7 @@ public class TopMenuInterceptor extends
}
@Override
- protected boolean preHandle(HttpServletRequest request,
HttpServletResponse response, NestedHandlerMethod handler, NestedHandlerContext
context, final ExtendedModelMap modelMap) throws Exception {
-
- String mountPath = context.getMountPath();
+ protected boolean preHandle(HttpServletRequest request,
HttpServletResponse response, HandlerMethod handler, PageFragmentContext
context, ExtendedModelMap modelMap) throws Exception {
Long referringPageId = null;
@@ -59,25 +59,49 @@ public class TopMenuInterceptor extends
catch (NumberFormatException nfe) {}
}
- String referringPageQuery = referringPageId != null ?
"?referringPageId="+referringPageId.toString() : "";
- String pageBackPath = mountPath + (referringPageId != null ?
"/page/view/"+referringPageId.toString() : "/");
-
if (referringPageId != null) {
modelMap.addAttribute(ModelKeys.REFERRING_PAGE_ID,
referringPageId);
}
+
+ // only need to add menu when doing rendering page
+ if (context.isPageFragmentRenderRequest()) {
+ NavigationMenu menu = buildNavigationMenu(request, context,
modelMap, referringPageId);
+ modelMap.addAttribute(menu.getName(), menu);
+ }
+ return true;
+ }
+
+ protected NavigationMenu buildNavigationMenu(HttpServletRequest request,
PageFragmentContext context, ExtendedModelMap modelMap, Long referringPageId) {
+
NavigationMenu menu = new NavigationMenu("topnav");
+ String mountPath = context.getMountPath();
+
+ String referringPageQuery = referringPageId != null ?
"?referringPageId="+referringPageId.toString() : "";
+
+ String homePath = context.getRouteContext("homeRoute").getRoutePath();
+ String pageBackPath = homePath;
+
+ if (referringPageId != null) {
+ Map<String, String> pathVariables = new HashMap<String, String>();
+ pathVariables.put("pageId", referringPageId.toString());
+ pageBackPath =
context.getRouteContext("pageRoute").getRoutePath(pathVariables);
+ }
+
// if on userPage page
if (Boolean.parseBoolean(getConfigProperty(context, "topnav.userPage",
"false"))) {
if (referringPageId == null) {
- Page page = (Page)modelMap.get(ModelKeys.PAGE);
+ Page page = (Page)modelMap.get(ModelKeys.PAGE);
referringPageQuery =
"?referringPageId="+page.getId().toString();
}
User user = (User) modelMap.get(ModelKeys.USER);
if (user != null) {
- NavigationItem profile = new
NavigationItem("page.profile.title", getDisplayName(user), mountPath +
"/person/" + user.getUsername() + referringPageQuery);
+ Map<String, String> pathVariables = new HashMap<String,
String>();
+ pathVariables.put("username", user.getUsername());
+ String userProfilePath =
context.getRouteContext("userProfileRoute").getRoutePath(pathVariables);
+ NavigationItem profile = new
NavigationItem("page.profile.title", getDisplayName(user), userProfilePath +
referringPageQuery);
menu.addNavigationItem(profile);
}
PageUser pageUser = (PageUser)modelMap.get(ModelKeys.PAGE_USER);
@@ -122,7 +146,7 @@ public class TopMenuInterceptor extends
// if on admin page
if (Boolean.parseBoolean(getConfigProperty(context, "topnav.admin",
"false"))) {
- menu.addNavigationItem(new NavigationItem("page.general.back",
null, mountPath + "/"));
+ menu.addNavigationItem(new NavigationItem("page.general.back",
null, homePath));
}
else {
// link to admin for all others (if allowed: url security check
during rendering)
@@ -132,9 +156,7 @@ public class TopMenuInterceptor extends
// always can logout
menu.addNavigationItem(new NavigationItem("page.general.logout", null,
"/j_spring_security_logout"));
- modelMap.addAttribute(menu.getName(), menu);
-
- return true;
+ return menu;
}
protected String getDisplayName(User user) {
@@ -142,9 +164,9 @@ public class TopMenuInterceptor extends
return (displayName == null || "".equals(displayName)) ?
user.getUsername() : displayName;
}
- protected String getConfigProperty(NestedHandlerContext context, String
name, String defaultValue) {
+ protected String getConfigProperty(PageFragmentContext context, String
name, String defaultValue) {
// NB: properties retrieved from *only* the root config handler
- String value = context.getConfig().getProperty(name);
+ String value = context.getFragmentProperty(name);
return value != null ? value : defaultValue;
}
}
Modified:
rave/sandbox/content-services/demo-portal/src/main/java/org/apache/rave/portal/web/mvc/interceptors/UserPageInterceptor.java
URL:
http://svn.apache.org/viewvc/rave/sandbox/content-services/demo-portal/src/main/java/org/apache/rave/portal/web/mvc/interceptors/UserPageInterceptor.java?rev=1396571&r1=1396570&r2=1396571&view=diff
==============================================================================
---
rave/sandbox/content-services/demo-portal/src/main/java/org/apache/rave/portal/web/mvc/interceptors/UserPageInterceptor.java
(original)
+++
rave/sandbox/content-services/demo-portal/src/main/java/org/apache/rave/portal/web/mvc/interceptors/UserPageInterceptor.java
Wed Oct 10 12:47:40 2012
@@ -27,16 +27,16 @@ import org.apache.rave.portal.model.Page
import org.apache.rave.portal.model.PageUser;
import org.apache.rave.portal.model.User;
import org.apache.rave.portal.service.PageService;
-import org.apache.rave.portal.web.mvc.HandlerContext;
-import org.apache.rave.portal.web.mvc.RoutedHandlerInterceptorAdapter;
-import org.apache.rave.portal.web.mvc.RoutedHandlerMethod;
+import org.apache.rave.portal.web.mvc.HandlerMethodContext;
+import org.apache.rave.portal.web.mvc.RoutedHandlerMethodInterceptorAdapter;
import org.apache.rave.portal.web.util.ModelKeys;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.ui.ExtendedModelMap;
+import org.springframework.web.method.HandlerMethod;
-public class UserPageInterceptor extends RoutedHandlerInterceptorAdapter {
+public class UserPageInterceptor extends RoutedHandlerMethodInterceptorAdapter
{
private final Logger logger = LoggerFactory.getLogger(getClass());
@@ -48,7 +48,7 @@ public class UserPageInterceptor extends
}
@Override
- protected boolean preHandle(HttpServletRequest request,
HttpServletResponse response, RoutedHandlerMethod handler, HandlerContext
context, final ExtendedModelMap modelMap) throws Exception {
+ protected boolean preHandle(HttpServletRequest request,
HttpServletResponse response, HandlerMethod handler, HandlerMethodContext
context, ExtendedModelMap modelMap) throws Exception {
Map<String, String> uriTemplateVariables =
getUriTemplateVariables(request);
Long pageId = null;
User user = (User) modelMap.get(ModelKeys.USER);
Modified:
rave/sandbox/content-services/demo-portal/src/main/java/org/apache/rave/portal/web/mvc/interceptors/UserProfileInterceptor.java
URL:
http://svn.apache.org/viewvc/rave/sandbox/content-services/demo-portal/src/main/java/org/apache/rave/portal/web/mvc/interceptors/UserProfileInterceptor.java?rev=1396571&r1=1396570&r2=1396571&view=diff
==============================================================================
---
rave/sandbox/content-services/demo-portal/src/main/java/org/apache/rave/portal/web/mvc/interceptors/UserProfileInterceptor.java
(original)
+++
rave/sandbox/content-services/demo-portal/src/main/java/org/apache/rave/portal/web/mvc/interceptors/UserProfileInterceptor.java
Wed Oct 10 12:47:40 2012
@@ -25,16 +25,16 @@ import org.apache.rave.portal.model.Page
import org.apache.rave.portal.model.User;
import org.apache.rave.portal.service.PageService;
import org.apache.rave.portal.service.UserService;
-import org.apache.rave.portal.web.mvc.HandlerContext;
-import org.apache.rave.portal.web.mvc.RoutedHandlerInterceptorAdapter;
-import org.apache.rave.portal.web.mvc.RoutedHandlerMethod;
+import org.apache.rave.portal.web.mvc.HandlerMethodContext;
+import org.apache.rave.portal.web.mvc.RoutedHandlerMethodInterceptorAdapter;
import org.apache.rave.portal.web.util.ModelKeys;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.ui.ExtendedModelMap;
+import org.springframework.web.method.HandlerMethod;
-public class UserProfileInterceptor extends RoutedHandlerInterceptorAdapter {
+public class UserProfileInterceptor extends
RoutedHandlerMethodInterceptorAdapter {
private final Logger logger = LoggerFactory.getLogger(getClass());
@@ -48,7 +48,7 @@ public class UserProfileInterceptor exte
}
@Override
- protected boolean preHandle(HttpServletRequest request,
HttpServletResponse response, RoutedHandlerMethod handler, HandlerContext
context, final ExtendedModelMap modelMap) throws Exception {
+ protected boolean preHandle(HttpServletRequest request,
HttpServletResponse response, HandlerMethod handler, HandlerMethodContext
context, ExtendedModelMap modelMap) throws Exception {
Map<String, String> uriTemplateVariables =
getUriTemplateVariables(request);
User user = null;
if (uriTemplateVariables.get("userid") != null) {
Modified:
rave/sandbox/content-services/demo-portal/src/main/resources/page-config.json
URL:
http://svn.apache.org/viewvc/rave/sandbox/content-services/demo-portal/src/main/resources/page-config.json?rev=1396571&r1=1396570&r2=1396571&view=diff
==============================================================================
---
rave/sandbox/content-services/demo-portal/src/main/resources/page-config.json
(original)
+++
rave/sandbox/content-services/demo-portal/src/main/resources/page-config.json
Wed Oct 10 12:47:40 2012
@@ -2,46 +2,51 @@
"jcr:primaryType":"rave:folder",
"routes":{
"jcr:primaryType":"raveconfig:routes",
- "r1":{
+ "homeRoute":{
"jcr:primaryType":"raveconfig:route",
"path":"/",
- "component":"/userPage"
+ "component":"/userPage",
+ "referenceId":"homeRoute"
},
- "r2":{
+ "r1":{
"jcr:primaryType":"raveconfig:route",
"path":"/page",
"component":"/userPage"
},
- "r3":{
+ "r2":{
"jcr:primaryType":"raveconfig:route",
"path":"/page/view",
"component":"/userPage"
},
- "r4":{
+ "pageRoute":{
"jcr:primaryType":"raveconfig:route",
"path":"/page/view/{pageId}",
- "component":"/userPage"
+ "component":"/userPage",
+ "referenceId":"pageRoute"
},
- "userProfileName":{
+ "userProfileRoute":{
"jcr:primaryType":"raveconfig:route",
"path":"/person/{username:.*}",
- "component":"/userProfile"
+ "component":"/userProfile",
+ "referenceId":"userProfileRoute"
},
- "userProfileId":{
+ "r3":{
"jcr:primaryType":"raveconfig:route",
- "path":"/person/id/{userId:.*}",
+ "path":"/person/id/{userid:.*}",
"component":"/userProfile"
},
- "r5":{
- "jcr:primaryType":"raveconfig:route",
- "path":"/dynapi/rest/widgets",
- "component":"org.apache.rave.portal.web.mvc.api.rest.DynWidgetApi"
- },
- "binaries":{
+ "binariesRoute":{
"jcr:primaryType":"raveconfig:route",
"path":"/binaries",
"prop.contentPathPrefix":"/binaries",
-
"component":"org.apache.rave.portal.web.mvc.view.BinaryRepositoryController"
+
"component":"org.apache.rave.portal.web.mvc.view.BinaryRepositoryController",
+ "handler":"render",
+ "referenceId":"binariesRoute"
+ },
+ "r4":{
+ "jcr:primaryType":"raveconfig:route",
+ "path":"/dynapi/rest/widgets",
+ "component":"org.apache.rave.portal.web.mvc.api.rest.DynWidgetApi"
}
},
"pages":{
Modified:
rave/sandbox/content-services/demo-portal/src/main/resources/template-data.json
URL:
http://svn.apache.org/viewvc/rave/sandbox/content-services/demo-portal/src/main/resources/template-data.json?rev=1396571&r1=1396570&r2=1396571&view=diff
==============================================================================
---
rave/sandbox/content-services/demo-portal/src/main/resources/template-data.json
(original)
+++
rave/sandbox/content-services/demo-portal/src/main/resources/template-data.json
Wed Oct 10 12:47:40 2012
@@ -9,7 +9,7 @@
"id" : "freemarker",
"jcr:encoding" : "test",
"jcr:mimeType" : "text/plain",
- "rave:src" : "<#import \"/spring.ftl\" as spring />\n <#assign
ravehmvc=JspTaglibs[\"http://www.apache-rave.org/jsp/hmvc\"] />\n <#assign
tiles=JspTaglibs[\"http://tiles.apache.org/tags-tiles\"] />\n <#assign
portal=JspTaglibs[\"http://www.apache.org/rave/tags\"] />\n <#assign
sec=JspTaglibs[\"http://www.springframework.org/security/tags\"] />\n <#assign
c=JspTaglibs[\"http://java.sun.com/jsp/jstl/core\"] />\n <#assign
fmt=JspTaglibs[\"http://java.sun.com/jsp/jstl/fmt\"] />\n <#assign
fn=JspTaglibs[\"http://java.sun.com/jsp/jstl/functions\"] />\n <#assign
form=JspTaglibs[\"http://www.springframework.org/tags/form\"] />",
+ "rave:src" : "<#import \"/spring.ftl\" as spring />\n<#assign
ravehmvc=JspTaglibs[\"http://www.apache-rave.org/jsp/hmvc\"] />\n<#assign
ravejcr=JspTaglibs[\"http://www.apache-rave.org/jsp/jcr\"]/>\n<#assign
tiles=JspTaglibs[\"http://tiles.apache.org/tags-tiles\"] />\n<#assign
portal=JspTaglibs[\"http://www.apache.org/rave/tags\"] />\n<#assign
sec=JspTaglibs[\"http://www.springframework.org/security/tags\"] />\n<#assign
c=JspTaglibs[\"http://java.sun.com/jsp/jstl/core\"] />\n<#assign
fmt=JspTaglibs[\"http://java.sun.com/jsp/jstl/fmt\"] />\n<#assign
fn=JspTaglibs[\"http://java.sun.com/jsp/jstl/functions\"] />\n<#assign
form=JspTaglibs[\"http://www.springframework.org/tags/form\"] />",
"jcr:lastModified" : "2012-08-30T10:48:40.534+0200"
},
"footer.ftl" : {
@@ -19,7 +19,7 @@
"id" : "footer",
"jcr:encoding" : "test",
"jcr:mimeType" : "text/plain",
- "rave:src" : "<#import \"/spring.ftl\"as spring/>\n<#assign
ravejcr=JspTaglibs[\"http://www.apache-rave.org/jsp/jcr\"]/>\n<#assign
c=JspTaglibs[\"http://java.sun.com/jsp/jstl/core\"] />\n<footer>\n <div
class=\"container\">\n <div class=\"row\">\n <div
class=\"span12 version\">\n <@ravejcr.content
path=\"/content/documents/rave.txt\" type=\"Article\" var=\"raveArticle\"/>\n
<span>${raveArticle.title}
${applicationProperties['portal.version']}</span>\n <a
href=\"http://rave.apache.org\"><img class=\"footer-logo\" alt=\"Apache Rave\"
title=\"Apache Rave\" src=\"<@c.url
value=\"/dyn/binaries/images/rave-logo.png\"/>\"/></a>\n </div>\n
</div>\n </div>\n</footer>",
+ "rave:src" : "<#import \"/spring.ftl\"as spring/>\n<#include
\"taglibs.ftl\"/>\n<footer>\n <div class=\"container\">\n <div
class=\"row\">\n <div class=\"span12 version\">\n
<@ravejcr.content path=\"/content/documents/rave.txt\" type=\"Article\"
var=\"raveArticle\"/>\n <span>${raveArticle.title}
${applicationProperties['portal.version']}</span>\n <a
href=\"http://rave.apache.org\"><img class=\"footer-logo\" alt=\"Apache Rave\"
title=\"Apache Rave\" src=\"<@ravehmvc.path
route=\"binariesRoute\"/>/images/rave-logo.png\"/></a>\n </div>\n
</div>\n </div>\n</footer>",
"jcr:lastModified" : "2012-08-30T10:48:40.534+0200"
},
"userpage" : {
Modified:
rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/freemarker/views/pages/footer.ftl
URL:
http://svn.apache.org/viewvc/rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/freemarker/views/pages/footer.ftl?rev=1396571&r1=1396570&r2=1396571&view=diff
==============================================================================
---
rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/freemarker/views/pages/footer.ftl
(original)
+++
rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/freemarker/views/pages/footer.ftl
Wed Oct 10 12:47:40 2012
@@ -17,15 +17,14 @@
under the License.
-->
<#import "/spring.ftl"as spring/>
-<#assign ravejcr=JspTaglibs["http://www.apache-rave.org/jsp/jcr"]/>
-<#assign c=JspTaglibs["http://java.sun.com/jsp/jstl/core"] />
+<#include "taglibs.ftl"/>
<footer>
<div class="container">
<div class="row">
<div class="span12 version">
<@ravejcr.content path="/content/documents/rave.txt"
type="Article" var="raveArticle"/>
<span>${raveArticle.title}
${applicationProperties['portal.version']}</span>
- <a href="http://rave.apache.org"><img class="footer-logo"
alt="Apache Rave" title="Apache Rave" src="<@c.url
value="/dyn/binaries/images/rave-logo.png"/>"/></a>
+ <a href="http://rave.apache.org"><img class="footer-logo"
alt="Apache Rave" title="Apache Rave" src="<@ravehmvc.path
route="binariesRoute"/>/images/rave-logo.png"/></a>
</div>
</div>
</div>
Modified:
rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/freemarker/views/pages/taglibs.ftl
URL:
http://svn.apache.org/viewvc/rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/freemarker/views/pages/taglibs.ftl?rev=1396571&r1=1396570&r2=1396571&view=diff
==============================================================================
---
rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/freemarker/views/pages/taglibs.ftl
(original)
+++
rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/freemarker/views/pages/taglibs.ftl
Wed Oct 10 12:47:40 2012
@@ -18,6 +18,7 @@
-->
<#import "/spring.ftl" as spring />
<#assign ravehmvc=JspTaglibs["http://www.apache-rave.org/jsp/hmvc"] />
+<#assign ravejcr=JspTaglibs["http://www.apache-rave.org/jsp/jcr"]/>
<#assign tiles=JspTaglibs["http://tiles.apache.org/tags-tiles"] />
<#assign portal=JspTaglibs["http://www.apache.org/rave/tags"] />
<#assign sec=JspTaglibs["http://www.springframework.org/security/tags"] />
Modified:
rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/jsp/views/pages/userprofile/page-form.jsp
URL:
http://svn.apache.org/viewvc/rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/jsp/views/pages/userprofile/page-form.jsp?rev=1396571&r1=1396570&r2=1396571&view=diff
==============================================================================
---
rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/jsp/views/pages/userprofile/page-form.jsp
(original)
+++
rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/jsp/views/pages/userprofile/page-form.jsp
Wed Oct 10 12:47:40 2012
@@ -21,8 +21,8 @@
<%@ taglib uri="http://www.apache-rave.org/jsp/hmvc" prefix="hmvc" %>
<div id="personProfileContent">
- <hmvc:path pathFor="handler" handler="updateProfile" var="profilePath"/>
- <c:url var="profileUrl" value="${profilePath}">
+ <hmvc:path handler="updateProfile" var="profilePath"/>
+ <c:url var="profileUrl" value="${profilePath}" context="/">
<c:param name="referringPageId" value="${referringPageId}" />
</c:url>
<form:form id="editAccountForm" commandName="userProfile"
action="${profileUrl}" method="POST" class="form-horizontal">
Copied:
rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/routed-dispatcher-servlet.xml
(from r1390464,
rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/nested-dispatcher-servlet.xml)
URL:
http://svn.apache.org/viewvc/rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/routed-dispatcher-servlet.xml?p2=rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/routed-dispatcher-servlet.xml&p1=rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/nested-dispatcher-servlet.xml&r1=1390464&r2=1396571&rev=1396571&view=diff
==============================================================================
---
rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/nested-dispatcher-servlet.xml
(original)
+++
rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/routed-dispatcher-servlet.xml
Wed Oct 10 12:47:40 2012
@@ -170,7 +170,7 @@
</util:map>
<!-- JCR|File based LOADING -->
- <bean name="nestedHandlerMethodHandlerMapping"
class="org.apache.rave.portal.web.mvc.NestedHandlerMethodHandlerMapping">
+ <bean name="routedRequestMappingHandlerMapping"
class="org.apache.rave.portal.web.mvc.RoutedRequestMappingHandlerMapping">
<property name="order" value="-1"/>
<property name="configManager" ref="enhancedPagesConfigManager"/>
<property name="interceptors" ref="interceptors"/>
@@ -241,9 +241,9 @@
<property name="interceptors" ref="interceptors"/>
</bean>
- <bean name="nestedHandlerMethodHandlerAdapter"
class="org.apache.rave.portal.web.mvc.NestedHandlerMethodHandlerAdapterAdapter">
+ <bean name="routedHandlerMethodHandlerAdapter"
class="org.apache.rave.portal.web.mvc.RoutedHandlerMethodHandlerAdapterAdapter">
<constructor-arg>
- <bean
class="org.apache.rave.portal.web.mvc.NestedHandlerMethodHandlerAdapter">
+ <bean
class="org.apache.rave.portal.web.mvc.RoutedHandlerMethodHandlerAdapter">
<property name="order" value="-1"/>
<property name="webBindingInitializer">
<bean
class="org.springframework.web.bind.support.ConfigurableWebBindingInitializer">
Modified:
rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/routes.xml
URL:
http://svn.apache.org/viewvc/rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/routes.xml?rev=1396571&r1=1396570&r2=1396571&view=diff
==============================================================================
---
rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/routes.xml
(original)
+++
rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/routes.xml
Wed Oct 10 12:47:40 2012
@@ -18,15 +18,15 @@
under the License.
-->
<routes name="default">
- <route path="/" component="/userPage"/>
+ <route path="/" component="/userPage"
referenceId="homeRoute"/>
<route path="/page" component="/userPage"/>
<route path="/page/view" component="/userPage"/>
- <route path="/page/view/{pageId}" component="/userPage"/>
- <route path="/person/{username:.*}" component="/userProfile"/>
+ <route path="/page/view/{pageId}" component="/userPage"
referenceId="pageRoute"/>
+ <route path="/person/{username:.*}" component="/userProfile"
referenceId="userProfileRoute"/>
<route path="/person/id/{userid:.*}" component="/userProfile"/>
<!-- service for rendering resources (images, etc.) from the jcr repository
-->
- <route path="/binaries"
component="org.apache.rave.portal.web.mvc.view.BinaryRepositoryController">
+ <route path="/binaries"
component="org.apache.rave.portal.web.mvc.view.BinaryRepositoryController"
handler="render" referenceId="binariesRoute">
<property name="contentPathPrefix">/binaries</property>
</route>
Modified:
rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/web.xml
URL:
http://svn.apache.org/viewvc/rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/web.xml?rev=1396571&r1=1396570&r2=1396571&view=diff
==============================================================================
--- rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/web.xml
(original)
+++ rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/web.xml
Wed Oct 10 12:47:40 2012
@@ -57,10 +57,10 @@
<load-on-startup>1</load-on-startup>
</servlet>
- <!-- Handles all routed/nested requests into the application -->
+ <!-- Handles all routed requests into the application -->
<servlet>
- <servlet-name>nested-dispatcher</servlet-name>
-
<servlet-class>org.apache.rave.portal.web.mvc.servlet.NestedDispatcherServlet</servlet-class>
+ <servlet-name>routed-dispatcher</servlet-name>
+
<servlet-class>org.apache.rave.portal.web.mvc.servlet.PageFragmentDispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
@@ -79,8 +79,8 @@
</servlet-mapping>
<servlet-mapping>
- <servlet-name>nested-dispatcher</servlet-name>
- <url-pattern>/dyn/*</url-pattern>
+ <servlet-name>routed-dispatcher</servlet-name>
+ <url-pattern>/routed/*</url-pattern>
</servlet-mapping>
<welcome-file-list>