ktlili 2005/08/03 12:04:18 CEST
Modified files:
. maven.xml
war/src/java/org/jahia/clipping/html/portlet
ClipperPortlet.java
PortletPreferencesManager.java
PortletService.java
PortletSessionManager.java
WebBrowserServlet.java
war/src/webapp/WEB-INF log4j.xml web.xml
war/src/webapp/templates editParameters.jsp
Log:
- fix preference bug: remove pipeline...Exception when click on edit
- Manage login/logout user
- test whith EPFL-People
Revision Changes Path
1.3 +2 -1 webclip_portlet/maven.xml
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/webclip_portlet/maven.xml.diff?r1=1.2&r2=1.3&f=h
1.3 +62 -32
webclip_portlet/war/src/java/org/jahia/clipping/html/portlet/ClipperPortlet.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/webclip_portlet/war/src/java/org/jahia/clipping/html/portlet/ClipperPortlet.java.diff?r1=1.2&r2=1.3&f=h
1.3 +36 -43
webclip_portlet/war/src/java/org/jahia/clipping/html/portlet/PortletPreferencesManager.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/webclip_portlet/war/src/java/org/jahia/clipping/html/portlet/PortletPreferencesManager.java.diff?r1=1.2&r2=1.3&f=h
1.3 +44 -13
webclip_portlet/war/src/java/org/jahia/clipping/html/portlet/PortletService.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/webclip_portlet/war/src/java/org/jahia/clipping/html/portlet/PortletService.java.diff?r1=1.2&r2=1.3&f=h
1.3 +26 -0
webclip_portlet/war/src/java/org/jahia/clipping/html/portlet/PortletSessionManager.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/webclip_portlet/war/src/java/org/jahia/clipping/html/portlet/PortletSessionManager.java.diff?r1=1.2&r2=1.3&f=h
1.3 +3 -2
webclip_portlet/war/src/java/org/jahia/clipping/html/portlet/WebBrowserServlet.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/webclip_portlet/war/src/java/org/jahia/clipping/html/portlet/WebBrowserServlet.java.diff?r1=1.2&r2=1.3&f=h
1.7 +3 -3 webclip_portlet/war/src/webapp/WEB-INF/log4j.xml
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/webclip_portlet/war/src/webapp/WEB-INF/log4j.xml.diff?r1=1.6&r2=1.7&f=h
1.6 +1 -0 webclip_portlet/war/src/webapp/WEB-INF/web.xml
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/webclip_portlet/war/src/webapp/WEB-INF/web.xml.diff?r1=1.5&r2=1.6&f=h
1.3 +1 -1
webclip_portlet/war/src/webapp/templates/editParameters.jsp
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/webclip_portlet/war/src/webapp/templates/editParameters.jsp.diff?r1=1.2&r2=1.3&f=h
Index: maven.xml
===================================================================
RCS file: /home/cvs/repository/webclip_portlet/maven.xml,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- maven.xml 2 Aug 2005 15:40:52 -0000 1.2
+++ maven.xml 3 Aug 2005 10:04:17 -0000 1.3
@@ -16,7 +16,8 @@
<goal name="jetspeed2-deploy"
- description="Build and installs all JAR, WAR, and EAR files">
+ description="deploy and installs all JAR, WAR, and EAR files">
+ <ant:delete
file="${org.apache.jetspeed.server.home}/webapps/${war.name}"/>
<ant:copy file="${maven.build.war.directory}/${war.name}"
todir="${maven.delpoy.dest}"/>
</goal>
Index: ClipperPortlet.java
===================================================================
RCS file:
/home/cvs/repository/webclip_portlet/war/src/java/org/jahia/clipping/html/portlet/ClipperPortlet.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ClipperPortlet.java 2 Aug 2005 15:40:53 -0000 1.2
+++ ClipperPortlet.java 3 Aug 2005 10:04:17 -0000 1.3
@@ -26,6 +26,7 @@
super.init(conf);
String logFilePath =
conf.getPortletContext().getRealPath(getInitParameter("logPath"));
+
System.err.println("[ Init Log4j from " + logFilePath +
" ]");
if (logFilePath != null) {
DOMConfigurator.configure(logFilePath);
@@ -40,6 +41,7 @@
catch (Exception ex) {
ex.printStackTrace();
}
+
}
@@ -52,39 +54,46 @@
*/
public void processAction(ActionRequest request, ActionResponse
response) {
logger.debug("-- begin process --");
- PortletService portletService =
PortletService.getInstance(request, response, getPortletConfig(),
getPortletContext());
-
- //View Mode
- if (request.getPortletMode() == PortletMode.VIEW) {
- logger.debug("view mode");
- }
-
- //Edit Mode
- if (request.getPortletMode() == PortletMode.EDIT) {
- String changeView = request.getParameter("changeView");
-
- if (changeView != null &&
changeView.equalsIgnoreCase("true")) {
- logger.debug("change view");
- //set parameters for render request
+ try {
+ PortletService portletService =
PortletService.getInstance(
+ request, response, getPortletConfig(),
+ getPortletContext());
+
+ //View Mode
+ if (request.getPortletMode() == PortletMode.VIEW) {
+ logger.debug("view mode");
}
- else {
- String action = request.getParameter("action");
- logger.debug("Action: " + action);
- if (action != null) {
- if (action.equalsIgnoreCase("save")) {
- logger.debug("-- store
preferences --");
- //store preferences
-
portletService.storePreferences();
- }
+
+ //Edit Mode
+ if (request.getPortletMode() == PortletMode.EDIT) {
+ String changeView =
request.getParameter("changeView");
+
+ if (changeView != null &&
+
changeView.equalsIgnoreCase("true")) {
+ logger.debug("change view");
+ //set parameters for render request
}
else {
- logger.error("Error: action parameter
is not defined");
+ String action =
request.getParameter("action");
+ logger.debug("Action: " + action);
+ if (action != null) {
+ if
(action.equalsIgnoreCase("save")) {
+ logger.debug("-- store
preferences --");
+ //store preferences
+
portletService.storePreferences();
+ }
+ }
+ else {
+ logger.error("Error: action
parameter is not defined");
+ }
}
}
- response.setRenderParameters(request.getParameterMap());
-
}
-
+ catch (Exception ex) {
+ logger.error("Exception: " + ex.toString());
+ ex.printStackTrace();
+ }
+ logger.debug("-- end process action--");
}
@@ -98,10 +107,26 @@
logger.debug("-- begin render --");
try {
- logger.debug("dispatch to webBrowser servlet");
+ // dipatch into webBrowser servlet
PortletRequestDispatcher prd =
getPortletContext().getNamedDispatcher("webBrowser");
prd.include(request, response);
+ // set the portlet service object for the current
request
+ PortletService portletService =
PortletService.getInstance(request, response, getPortletConfig(),
getPortletContext());
+ PortletSessionManager.setPortletService(request,
portletService);
+ // Manage clipper bean
+ if (!portletService.clipperBeanHasBeenLoaded()) {
+ logger.debug("init clipper bean");
+ portletService.initSession();
+ }
+ else {
+ logger.debug("ClipperBean has been loaded");
+ }
+
+ //load preferences
+ portletService.loadUserPrefences();
+
+ logger.debug("PortletMode: " +
request.getPortletMode().toString());
super.render(request, response);
}
catch (Exception ex) {
@@ -109,6 +134,14 @@
ex.printStackTrace();
}
+
+ //test session
+ if (request.getPortletSession().isNew()) {
+ logger.debug("New Session");
+ }
+ else {
+ logger.debug("Old Session");
+ }
logger.debug("-- end render --");
}
@@ -127,10 +160,7 @@
// set the portlet service object for the current request
PortletService portletService =
PortletService.getInstance(request, response, getPortletConfig(),
getPortletContext());
PortletSessionManager.setPortletService(request,
portletService);
- // Manage clipper bean
- if (!portletService.clipperBeanHasBeenLoaded()) {
- portletService.initClipperBean();
- }
+
// Get clipping content
try {
Writer w = response.getWriter();
Index: PortletPreferencesManager.java
===================================================================
RCS file:
/home/cvs/repository/webclip_portlet/war/src/java/org/jahia/clipping/html/portlet/PortletPreferencesManager.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- PortletPreferencesManager.java 2 Aug 2005 15:40:53 -0000 1.2
+++ PortletPreferencesManager.java 3 Aug 2005 10:04:17 -0000 1.3
@@ -4,7 +4,6 @@
import javax.portlet.*;
import org.jahia.clipbuilder.html.bean.*;
-
/**
* Description of the Class
*
@@ -28,16 +27,17 @@
//Store them in the preference
Iterator paramIt = queryParamUserValue.keySet().iterator();
while (paramIt.hasNext()) {
- String name = (String) paramIt.next();
+ String paramName = (String) paramIt.next();
// build unique key for the preference
- String key =
buildPreferenceKey(request.getRemoteUser(), uBean.getAbsoluteUrlValue(), name);
- String value = (String) queryParamUserValue.get(name);
-
- logger.debug("Setting preferences: [" + key + " , " +
value + "]");
+ String userName = request.getRemoteUser();
+ logger.debug("Remote user name:" + userName);
+ String key = buildPreferenceKey(userName, uBean,
paramName);
+ String value = (String)
queryParamUserValue.get(paramName);
//set the new user preference
try {
+ logger.debug("Setting preferences: [" + key + "
, " + value + "]");
pp.setValue(key, value);
}
catch (ReadOnlyException ex) {
@@ -68,12 +68,11 @@
public static Map getUserParamsPreference(PortletRequest request,
UrlBean uBean) {
Map paramsMap = new HashMap();
PortletPreferences pp = request.getPreferences();
- String url = uBean.getAbsoluteUrlValue();
List formParamList = uBean.getFormParamBeanList();
for (int i = 0; i < formParamList.size(); i++) {
FormParamBean fpb = (FormParamBean)
formParamList.get(i);
String fName = fpb.getName();
- String key =
buildPreferenceKey(request.getRemoteUser(), url, fName);
+ String key =
buildPreferenceKey(request.getRemoteUser(), uBean, fName);
logger.debug("Looking for param whith key: " + key);
String userValue = pp.getValue(key, fpb.getUsedValue());
logger.debug("Find: " + userValue);
@@ -105,49 +104,43 @@
* Description of the Method
*
[EMAIL PROTECTED] userName Description of Parameter
- [EMAIL PROTECTED] url Description of Parameter
+ [EMAIL PROTECTED] uBean Description of Parameter
[EMAIL PROTECTED] paramName Description of Parameter
[EMAIL PROTECTED] Description of the Returned Value
*/
- private static String buildPreferenceKey(String userName, String url,
String paramName) {
- String key = url.replaceAll("/", "¦") + "¦" + paramName;
+ private static String buildPreferenceKey(String userName, UrlBean
uBean, String paramName) {
+ String url = uBean.getAbsoluteUrlValue();
+ int position = uBean.getPosition();
+ String key = position + "¦" + url.replaceAll("/", "¦") + "¦" +
paramName;
if (userName != null) {
key = key + "¦" + userName;
}
return key;
}
-
-
- /**
- * Description of the Method
- *
- [EMAIL PROTECTED] request Description of Parameter
- [EMAIL PROTECTED] uBean Description of Parameter
- [EMAIL PROTECTED] Description of the Returned Value
+ /*
+ * private static Map buildQueryMap(ActionRequest request, UrlBean
uBean) {
+ * Map queryParamDefaultValue = new TreeMap();
+ * Map params = request.getParameterMap();
+ * // Get value of all parameter
+ * String[] values = ((String[]) params.get("usedValue"));
+ * logger.debug("[ CurrentUrl " + uBean.getAbsoluteUrlValue() + " ]");
+ * logger.debug("[ Request param size " + values.length + " ]");
+ * //logger.debug("[ Form param size " +
uBean.getFormParamBeanList().size() + " ]");
+ * for (int j = 0; j < values.length; j++) {
+ * logger.debug("[ Looking for param at position " + j + " ]");
+ * // retrieve the name of parameter
+ * FormParamBean fBean = (FormParamBean)
uBean.getFormParamBeanList().get(j);
+ * String name = fBean.getName();
+ * logger.debug("[ Param found whith name " + name + " ]");
+ * //get the value
+ * String paramValue = values[j];
+ * logger.debug("[ Used Value at " + j + " " + paramValue + " ]");
+ * // put to the map
+ * queryParamDefaultValue.put(name, paramValue);
+ * fBean.setUsedValue(paramValue);
+ * }
+ * return queryParamDefaultValue;
+ * }
*/
- private static Map buildQueryMap(ActionRequest request, UrlBean uBean) {
- Map queryParamDefaultValue = new TreeMap();
- Map params = request.getParameterMap();
- // Get value of all parameter
- String[] values = ((String[]) params.get("usedValue"));
- logger.debug("[ CurrentUrl " + uBean.getAbsoluteUrlValue() + "
]");
- logger.debug("[ Request param size " + values.length + " ]");
- //logger.debug("[ Form param size " +
uBean.getFormParamBeanList().size() + " ]");
- for (int j = 0; j < values.length; j++) {
- logger.debug("[ Looking for param at position " + j + "
]");
- // retrieve the name of parameter
- FormParamBean fBean = (FormParamBean)
uBean.getFormParamBeanList().get(j);
- String name = fBean.getName();
- logger.debug("[ Param found whith name " + name + " ]");
- //get the value
- String paramValue = values[j];
- logger.debug("[ Used Value at " + j + " " + paramValue
+ " ]");
- // put to the map
- queryParamDefaultValue.put(name, paramValue);
- fBean.setUsedValue(paramValue);
- }
- return queryParamDefaultValue;
- }
-
}
Index: PortletService.java
===================================================================
RCS file:
/home/cvs/repository/webclip_portlet/war/src/java/org/jahia/clipping/html/portlet/PortletService.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- PortletService.java 2 Aug 2005 15:40:53 -0000 1.2
+++ PortletService.java 3 Aug 2005 10:04:17 -0000 1.3
@@ -104,7 +104,7 @@
catch (Exception ex) {
logger.error("Execption has occured:" + ex.toString());
ex.printStackTrace();
- return null;
+ return "Error: can't find html";
}
}
@@ -157,23 +157,27 @@
/**
* Init ClipperBean
*/
- public void initClipperBean() {
+ public void initSession() {
+
// load the clipper from the xml file
logger.debug("load clipper from xml file");
String clipperPath =
config.getPortletContext().getRealPath(config.getInitParameter("clipperPath"));
ClipperBean cBean = new ClipperBean();
cBean.loadFromXml(clipperPath);
+ String sessionUser = request.getRemoteUser();
//load user preferences for parameters
logger.debug("[ Set user parameter for the clipperBean from the
PortletPreferences Object]");
//init session att
+ request.getPortletSession().invalidate();
PortletSessionManager.setClipperBean(request, cBean);
PortletSessionManager.setURLMap(request, new URLMap());
+ if (sessionUser != null) {
+ PortletSessionManager.setSessionUser(request,
sessionUser);
+ }
PortletSessionManager.removeHtml(request);
- //load preferences
- loadUserPrefences();
}
@@ -183,8 +187,39 @@
[EMAIL PROTECTED] Description of the Returned Value
*/
public boolean clipperBeanHasBeenLoaded() {
+ // test if the clipper bean is in the session
Object o = PortletSessionManager.getClipperBean(request);
- return o != null;
+ if (o == null) {
+ logger.debug("Clipper Bean is null");
+ return false;
+ }
+
+ //test if it's the same user
+ String realUser = request.getRemoteUser();
+ String lastSessionUser =
PortletSessionManager.getSessionUser(request);
+ logger.debug("Real User: " + realUser);
+ logger.debug("Last Session User: " + lastSessionUser);
+
+ if (realUser != null) {
+ if (realUser.equals(lastSessionUser)) {
+ logger.debug("==> Same name");
+ return true;
+ }
+ else {
+ logger.debug("==> user has changed");
+ return false;
+ }
+ }
+ else {
+ if (lastSessionUser == null) {
+ logger.debug("==> Same: no user connected");
+ return true;
+ }
+ else {
+ logger.debug("==> user has changed");
+ return false;
+ }
+ }
}
@@ -286,8 +321,8 @@
[EMAIL PROTECTED] IOException Description of Exception
[EMAIL PROTECTED] PortletException Description of Exception
*/
- private void executeWebBrowserServlet() throws IOException,
- PortletException {
+ private void executeWebBrowserServlet() throws IOException,
PortletException {
+ logger.debug("Exceute webBrowserServlet");
// dispatch the action to the servlet-webclip-bridge
RenderRequest renderRequest = (RenderRequest) request;
RenderResponse renderResponse = (RenderResponse) response;
@@ -306,12 +341,8 @@
[EMAIL PROTECTED] context Description of Parameter
[EMAIL PROTECTED] The Instance value
*/
- public static PortletService getInstance(PortletRequest request,
- PortletResponse response,
- PortletConfig config,
- PortletContext context) {
- PortletService p = new PortletService(request, response, config,
- context);
+ public static PortletService getInstance(PortletRequest request,
PortletResponse response, PortletConfig config, PortletContext context) {
+ PortletService p = new PortletService(request, response,
config, context);
return p;
}
Index: PortletSessionManager.java
===================================================================
RCS file:
/home/cvs/repository/webclip_portlet/war/src/java/org/jahia/clipping/html/portlet/PortletSessionManager.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- PortletSessionManager.java 2 Aug 2005 15:40:53 -0000 1.2
+++ PortletSessionManager.java 3 Aug 2005 10:04:17 -0000 1.3
@@ -43,6 +43,7 @@
+
/**
* Sets the ClipperBean attribute of the SessionManager class
*
@@ -91,6 +92,18 @@
/**
+ * Sets the SessionUser attribute of the PortletSessionManager class
+ *
+ [EMAIL PROTECTED] request The new SessionUser value
+ [EMAIL PROTECTED] userName The new SessionUser value
+ */
+ public static void setSessionUser(PortletRequest request, String
userName) {
+ PortletSession session = request.getPortletSession();
+ session.setAttribute("user", userName,
PortletSession.PORTLET_SCOPE);
+ }
+
+
+ /**
* Gets the Html attribute of the SessionManager class
*
[EMAIL PROTECTED] request Description of Parameter
@@ -103,6 +116,19 @@
/**
+ * Gets the SessionUser attribute of the PortletSessionManager class
+ *
+ [EMAIL PROTECTED] request Description of Parameter
+ [EMAIL PROTECTED] The SessionUser value
+ */
+ public static String getSessionUser(PortletRequest request) {
+ PortletSession session = request.getPortletSession();
+ return (String) session.getAttribute("user");
+ }
+
+
+
+ /**
* Gets the PortletService attribute of the SessionManager class
*
[EMAIL PROTECTED] request Description of Parameter
Index: WebBrowserServlet.java
===================================================================
RCS file:
/home/cvs/repository/webclip_portlet/war/src/java/org/jahia/clipping/html/portlet/WebBrowserServlet.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- WebBrowserServlet.java 2 Aug 2005 15:40:53 -0000 1.2
+++ WebBrowserServlet.java 3 Aug 2005 10:04:17 -0000 1.3
@@ -30,6 +30,7 @@
[EMAIL PROTECTED] w The new WebBrowserSimulator value
*/
public void setWebBrowserSimulator(HttpServletRequest request,
WebBrowserSimulator w) {
+ //logger.debug("Add WebBrowserSimulator to session");
request.getSession().setAttribute(Constants.WEB_BROWSER_SIMULATOR, w);
}
@@ -428,7 +429,7 @@
// start web browser simulator
WebBrowserSimulator wbs =
getWebBrowserSimulator(httpServletRequest);
if (wbs == null) {
- logger.debug("WebBrowserSimulator is null");
+ logger.debug("WebBrowserSimulator is null --> init
WebBrowserSimulator ");
wbs = new WebBrowserSimulator(httpServletRequest,
httpServletResponse, getClipperBean(httpServletRequest));
setWebBrowserSimulator(httpServletRequest, wbs);
}
@@ -461,7 +462,7 @@
html = wbs.getFinalHtmlResponse();
}
-
+ logger.debug("End runWebSimulator");
return html;
}
Index: log4j.xml
===================================================================
RCS file:
/home/cvs/repository/webclip_portlet/war/src/webapp/WEB-INF/log4j.xml,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- log4j.xml 2 Aug 2005 15:40:53 -0000 1.6
+++ log4j.xml 3 Aug 2005 10:04:18 -0000 1.7
@@ -4,7 +4,7 @@
<appender name="ConsoleAppender" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.SimpleLayout"/>
</appender>
- <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
+ <appender name="OUT" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%6r %5p %c.%M:%L - %m%n"/>
@@ -12,11 +12,11 @@
</appender>
<category name="org.jahia.clipping.html.portlet">
<priority value="debug"/>
- <appender-ref ref="STDOUT"/>
+ <appender-ref ref="OUT"/>
</category>
<root>
<priority value="error"/>
- <appender-ref ref="STDOUT"/>
+ <appender-ref ref="OUT"/>
</root>
</log4j:configuration>
Index: web.xml
===================================================================
RCS file:
/home/cvs/repository/webclip_portlet/war/src/webapp/WEB-INF/web.xml,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- web.xml 2 Aug 2005 15:40:53 -0000 1.5
+++ web.xml 3 Aug 2005 10:04:18 -0000 1.6
@@ -12,4 +12,5 @@
<servlet-name>webBrowser</servlet-name>
<url-pattern>/webBrowser.do</url-pattern>
</servlet-mapping>
+
</web-app>
Index: editParameters.jsp
===================================================================
RCS file:
/home/cvs/repository/webclip_portlet/war/src/webapp/templates/editParameters.jsp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- editParameters.jsp 2 Aug 2005 15:40:54 -0000 1.2
+++ editParameters.jsp 3 Aug 2005 10:04:18 -0000 1.3
@@ -106,7 +106,7 @@
</style>
<!-- javaScript-->
<table align="center" class="principal" width="100%">
-<form action="<%=((RenderResponse)renderResponse).createActionURL() %>">
+<form action="<p:actionURL/>" method="POST">
<!-- Edit Information -->
<table>
<tr valign="middle">