package org.gatein.wsrp.portlet;
/******************************************************************************
* JBoss, a division of Red Hat *
* Copyright 2010, Red Hat Middleware, LLC, and individual *
* contributors as indicated by the @authors tag. See the *
* copyright.txt in the distribution for a full listing of *
* individual contributors. *
* *
* This is free software; you can redistribute it and/or modify it *
* under the terms of the GNU Lesser General Public License as *
* published by the Free Software Foundation; either version 2.1 of *
* the License, or (at your option) any later version. *
* *
* This software is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
* Lesser General Public License for more details. *
* *
* You should have received a copy of the GNU Lesser General Public *
* License along with this software; if not, write to the Free *
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
* 02110-1301 USA, or see the FSF site: http://www.fsf.org. *
******************************************************************************/
import javax.portlet.ActionRequest;
import javax.portlet.ActionResponse;
import javax.portlet.GenericPortlet;
import javax.portlet.PortletException;
import javax.portlet.PortletModeException;
import javax.portlet.PortletSecurityException;
import javax.portlet.PortletSession;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
import java.io.IOException;
import java.io.PrintWriter;
/**
* A simple portlet to test session handling in WSRP.
*
* @author <a href="mailto:chris.laprun@jboss.com">Chris Laprun</a>
* @version $Revision$
*/
public class SessionPortlet extends GenericPortlet
{
private static final String COUNT = "count";
private static final String NAME = "name";
public void processAction(ActionRequest req, ActionResponse resp) throws PortletModeException, IOException
{
String value = req.getParameter(NAME);
if (value != null)
{
req.getPortletSession().setAttribute(NAME, value);
}
}
protected void doView(RenderRequest req, RenderResponse resp) throws PortletException, PortletSecurityException, IOException
{
resp.setContentType("text/html");
PrintWriter writer = resp.getWriter();
//
PortletSession session = req.getPortletSession();
int count = 0;
if (session.getAttribute(COUNT) != null)
{
count = ((Integer)session.getAttribute(COUNT)).intValue() + 1;
}
session.setAttribute(COUNT, new Integer(count));
writer.write("<p>Session id: " + session.getId() + "</p>");
writer.write("<p>count = " + count + "</p>");
writer.write("<a href='" + resp.createRenderURL() + "'>render</a>");
StringBuffer sb = new StringBuffer(256);
sb.append("<br/><form method='post' action='")
.append(resp.createActionURL())
.append("'><input name='").append(NAME)
.append("'/><input type='submit' value='Submit'></form>")
.append("<hr/>Value is ").append(req.getPortletSession().getAttribute(NAME));
writer.write(sb.toString());
//
writer.close();
}
}