You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by ra...@apache.org on 2001/06/09 17:35:03 UTC
cvs commit: jakarta-jetspeed/src/java/org/apache/jetspeed/portal/controllers VelocityPortletController.java AbstractPortletController.java
raphael 01/06/09 08:35:03
Modified: src/java/org/apache/jetspeed/portal/controllers
AbstractPortletController.java
Added: src/java/org/apache/jetspeed/portal/controllers
VelocityPortletController.java
Log:
add a velocitycontroller implementation
Revision Changes Path
1.18 +1 -2 jakarta-jetspeed/src/java/org/apache/jetspeed/portal/controllers/AbstractPortletController.java
Index: AbstractPortletController.java
===================================================================
RCS file: /home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/portal/controllers/AbstractPortletController.java,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- AbstractPortletController.java 2001/06/04 17:37:09 1.17
+++ AbstractPortletController.java 2001/06/09 15:35:03 1.18
@@ -57,7 +57,6 @@
//jetspeed support
import org.apache.jetspeed.portal.*;
import org.apache.jetspeed.portal.expire.*;
-import org.apache.jetspeed.profiler.*;
import org.apache.jetspeed.capability.*;
import org.apache.jetspeed.util.*;
import org.apache.jetspeed.services.Registry;
@@ -76,7 +75,7 @@
/**
@author <a href="mailto:burton@apache.org">Kevin A. Burton</a>
- @version $Id: AbstractPortletController.java,v 1.17 2001/06/04 17:37:09 raphael Exp $
+ @version $Id: AbstractPortletController.java,v 1.18 2001/06/09 15:35:03 raphael Exp $
*/
public abstract class AbstractPortletController implements PortletController
{
1.1 jakarta-jetspeed/src/java/org/apache/jetspeed/portal/controllers/VelocityPortletController.java
Index: VelocityPortletController.java
===================================================================
/* ====================================================================
* The Apache Software License, Version 1.1
*
* Copyright (c) 2000-2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Apache" and "Apache Software Foundation" and
* "Apache Jetspeed" must not be used to endorse or promote products
* derived from this software without prior written permission. For
* written permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache" or
* "Apache Jetspeed", nor may "Apache" appear in their name, without
* prior written permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
package org.apache.jetspeed.portal.controllers;
// Turbine stuff
import org.apache.turbine.util.RunData;
import org.apache.turbine.services.velocity.TurbineVelocity;
import org.apache.turbine.services.pull.TurbinePull;
import org.apache.turbine.modules.ActionLoader;
// Jetspeed stuff
import org.apache.jetspeed.portal.Portlet;
import org.apache.jetspeed.portal.PortletException;
import org.apache.jetspeed.services.Profiler;
// Ecs stuff
import org.apache.ecs.ConcreteElement;
import org.apache.ecs.StringElement;
// Velocity Stuff
import org.apache.velocity.context.Context;
import org.apache.turbine.util.Log;
/**
* A Velocity based portlet implementation
*
* @author <a href="mailto:re_carrasco@bco011.sonda.cl">Roberto Carrasco</a>
* @author <a href="mailto:raphael@apache.org">Rapha�l Luta</a>
*/
public class VelocityPortletController extends AbstractPortletController
{
public ConcreteElement getContent( RunData rundata )
{
// create a blank context and with all the global application
// Pull Tools inside
Context context = TurbineVelocity.getContext();
context.put( "data", rundata );
context.put( "controller", this );
context.put( "conf", this.getConfig() );
// Put the request and session based contexts
TurbinePull.populateContext(context, rundata);
// allow subclass to insert specific objects in the context
buildContext(rundata, context);
String actionName = getConfig().getInitParameter("action");
if (actionName != null)
{
// store the context so that the action can retrieve it
rundata.getTemplateInfo().setTemplateContext( "VelocityControllerContext", context );
// if there is an action with the same name in modules/actions/portlets exec it
try
{
ActionLoader.getInstance().exec( rundata, actionName );
}
catch( Exception e)
{
Log.error( e.toString() );
}
}
// either the action selected the template, or use the default template
// defined in the registry
String template = (String)context.get( "template" );
if (template == null)
{
template = getConfig().getInitParameter("template");
}
// generate the content
String s = null;
try
{
if (-1 == template.indexOf(".vm"))
{
template = template + ".vm";
}
String templatePath = Profiler.locateControllerTemplate(rundata, template);
s = TurbineVelocity.handleRequest(context, templatePath);
}
catch( Exception e)
{
s= e.toString();
}
TurbineVelocity.requestFinished(context);
return new StringElement( s );
}
public void buildContext(RunData data, Context context)
{
// nothing special
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org