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 ta...@apache.org on 2003/12/30 07:29:08 UTC
cvs commit: jakarta-jetspeed-2/commons/src/java/org/apache/jetspeed/container JetspeedPortletContext.java
taylor 2003/12/29 22:29:08
Modified: commons/src/java/org/apache/jetspeed/container
JetspeedPortletContext.java
Log:
localizePath private method to localize paths relative to the apps/{pa}
used with resource retrieval and dispatching
Revision Changes Path
1.2 +49 -10 jakarta-jetspeed-2/commons/src/java/org/apache/jetspeed/container/JetspeedPortletContext.java
Index: JetspeedPortletContext.java
===================================================================
RCS file: /home/cvs/jakarta-jetspeed-2/commons/src/java/org/apache/jetspeed/container/JetspeedPortletContext.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- JetspeedPortletContext.java 28 Jul 2003 23:46:38 -0000 1.1
+++ JetspeedPortletContext.java 30 Dec 2003 06:29:08 -0000 1.2
@@ -53,6 +53,7 @@
*/
package org.apache.jetspeed.container;
+import java.io.InputStream;
import java.util.Enumeration;
import java.util.Vector;
@@ -60,31 +61,40 @@
import javax.servlet.RequestDispatcher;
import javax.portlet.PortletContext;
+import javax.portlet.PortletRequestDispatcher;
import org.apache.jetspeed.dispatcher.JetspeedRequestDispatcher;
+import org.apache.jetspeed.om.common.portlet.MutablePortletApplication;
import org.apache.jetspeed.container.namespace.NamespaceMapper;
import org.apache.pluto.om.portlet.PortletApplicationDefinition;
/**
* Implements the Portlet API Portlet Context class
+ *
+ * TODO: on LOCAL apps, we need to merge in web.xml props. See PLT 10.3
*
* @author <a href="mailto:david@bluesunrise.com">David Sean Taylor</a>
* @version $Id$
*/
public class JetspeedPortletContext implements PortletContext, InternalPortletContext
{
+ /**
+ * The path to the Local Portlet Apps directory
+ */
+ public static final String LOCAL_PA_ROOT = "/WEB-INF/apps";
+
private static final int MAJOR_VERSION = 2;
private static final int MINOR_VERSION = 0;
private static final String JETSPEED_APPLICATION_INFO =
"Jakarta Jetspeed Portal Server, Version " + MAJOR_VERSION + "." + MINOR_VERSION;
private ServletContext servletContext;
- private PortletApplicationDefinition application;
+ private MutablePortletApplication application;
public JetspeedPortletContext(ServletContext servletContext, PortletApplicationDefinition application)
{
this.servletContext = servletContext;
- this.application = application;
+ this.application = (MutablePortletApplication)application;
}
public int getMajorVersion()
@@ -106,13 +116,21 @@
public javax.portlet.PortletRequestDispatcher getRequestDispatcher(String path)
{
- javax.servlet.RequestDispatcher rd = servletContext.getRequestDispatcher(path);
+ String localizedPath = localizePath(path, this.application);
+ RequestDispatcher rd = servletContext.getRequestDispatcher(localizedPath);
+
+
+ // TODO: factory
return new JetspeedRequestDispatcher(rd);
}
- public javax.portlet.PortletRequestDispatcher getNamedDispatcher(String name)
+ public PortletRequestDispatcher getNamedDispatcher(String name)
{
+ // TODO: localize name
+
RequestDispatcher rd = servletContext.getNamedDispatcher(name);
+ // TODO: factory
+
return new JetspeedRequestDispatcher(rd);
}
@@ -121,9 +139,9 @@
return servletContext.getMimeType(file);
}
- public java.io.InputStream getResourceAsStream(String path)
+ public InputStream getResourceAsStream(String path)
{
- return servletContext.getResourceAsStream(path);
+ return servletContext.getResourceAsStream(localizePath(path, this.application));
}
public java.lang.Object getAttribute(java.lang.String name)
@@ -153,15 +171,15 @@
public String getRealPath(String path)
{
- return servletContext.getRealPath(path);
+ return servletContext.getRealPath(localizePath(path, this.application));
}
public java.net.URL getResource(String path) throws java.net.MalformedURLException
{
- return servletContext.getResource(path);
+ return servletContext.getResource(localizePath(path, this.application));
}
- public java.util.Enumeration getAttributeNames()
+ public Enumeration getAttributeNames()
{
Enumeration attributes = servletContext.getAttributeNames();
@@ -227,4 +245,25 @@
return servletContext.getServletContextName();
}
+ private String localizePath(String path, MutablePortletApplication app)
+ {
+ if (path == null)
+ {
+ return "/";
+ }
+ if (app.getApplicationType() == MutablePortletApplication.WEBAPP)
+ {
+ return path;
+ }
+
+ StringBuffer pathBuffer = new StringBuffer(LOCAL_PA_ROOT);
+ pathBuffer.append(app.getWebApplicationDefinition().getContextRoot());
+ if (!path.startsWith("/"))
+ {
+ pathBuffer.append("/");
+ }
+ pathBuffer.append(path);
+ String result = pathBuffer.toString();
+ return result;
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org