Author: igorz
Date: 2007-12-23 07:55:13 -0500 (Sun, 23 Dec 2007)
New Revision: 91830
Added:
trunk/mcs/class/Mainsoft.Web/Mainsoft.Web.Hosting/ServletIncludeUtils.cs
trunk/mcs/class/Mainsoft.Web/Mainsoft.Web.Hosting/ServletResourceLoader.cs
Modified:
trunk/mcs/class/Mainsoft.Web/Mainsoft.Web.Hosting/BaseHttpServlet.cs
trunk/mcs/class/Mainsoft.Web/Mainsoft.Web.Hosting/IncludeHelperServlet.cs
trunk/mcs/class/Mainsoft.Web/Mainsoft.Web.Hosting/ServletWorkerRequest.jvm.cs
trunk/mcs/class/Mainsoft.Web/Mainsoft.Web.J2EE.csproj
Log:
removed dependency on J2EE.Helpers
Modified: trunk/mcs/class/Mainsoft.Web/Mainsoft.Web.Hosting/BaseHttpServlet.cs
===================================================================
--- trunk/mcs/class/Mainsoft.Web/Mainsoft.Web.Hosting/BaseHttpServlet.cs
2007-12-23 12:53:36 UTC (rev 91829)
+++ trunk/mcs/class/Mainsoft.Web/Mainsoft.Web.Hosting/BaseHttpServlet.cs
2007-12-23 12:55:13 UTC (rev 91830)
@@ -82,7 +82,7 @@
servletDomain.SetData (J2EEConsts.CLASS_LOADER,
java.lang.Thread.currentThread ().getContextClassLoader ());
//servletDomain.SetData
(J2EEConsts.CLASS_LOADER, vmw.common.TypeUtils.ToClass
(evidence).getClassLoader ());
//servletDomain.SetData(J2EEConsts.SERVLET_CONFIG, config);
- servletDomain.SetData
(J2EEConsts.RESOURCE_LOADER, new [EMAIL PROTECTED] (context));
+ servletDomain.SetData
(J2EEConsts.RESOURCE_LOADER, new ServletResourceLoader (context));
lock (evidence) {
if (context.getAttribute
(J2EEConsts.APP_DOMAIN) == null)
Modified:
trunk/mcs/class/Mainsoft.Web/Mainsoft.Web.Hosting/IncludeHelperServlet.cs
===================================================================
--- trunk/mcs/class/Mainsoft.Web/Mainsoft.Web.Hosting/IncludeHelperServlet.cs
2007-12-23 12:53:36 UTC (rev 91829)
+++ trunk/mcs/class/Mainsoft.Web/Mainsoft.Web.Hosting/IncludeHelperServlet.cs
2007-12-23 12:55:13 UTC (rev 91830)
@@ -34,7 +34,6 @@
using java.io;
using javax.servlet;
using javax.servlet.http;
-using [EMAIL PROTECTED];
namespace Mainsoft.Web.Hosting
{
Added: trunk/mcs/class/Mainsoft.Web/Mainsoft.Web.Hosting/ServletIncludeUtils.cs
===================================================================
--- trunk/mcs/class/Mainsoft.Web/Mainsoft.Web.Hosting/ServletIncludeUtils.cs
2007-12-23 12:53:36 UTC (rev 91829)
+++ trunk/mcs/class/Mainsoft.Web/Mainsoft.Web.Hosting/ServletIncludeUtils.cs
2007-12-23 12:55:13 UTC (rev 91830)
@@ -0,0 +1,61 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using javax.servlet;
+using System.Web;
+using javax.servlet.http;
+
+namespace Mainsoft.Web.Hosting
+{
+ class ServletIncludeUtils
+ {
+ public static void includeServlet (String servletPath, Object
writer, Object aspPage, Object [] servletParams) {
+ // Need to define logic for resolving the servletPath.
Share code with portlet createRenderUrl.
+ HttpContext context = HttpContext.Current;
+ HttpWorkerRequest wr = (HttpWorkerRequest)
((IServiceProvider) context).GetService (typeof (HttpWorkerRequest));
+ RequestDispatcher dispatcher = ((ServletContext)
((IServiceProvider) wr).GetService (typeof
(ServletContext))).getRequestDispatcher (SERVLET_INCLUDE_HELPER_PATH);
+ ServletResponse response = (ServletResponse)
((IServiceProvider) wr).GetService (typeof (ServletResponse));
+ ServletRequest request = (ServletRequest)
((IServiceProvider) wr).GetService (typeof (ServletRequest));
+
+ // Setup params for the include call.
+ String oldServletPath = (String) setAttribute (request,
SERVLET_PATH_ATTRIBUTE_NAME, servletPath);
+ Object oldAspPage = setAttribute (request,
ASPPAGE_ATTRIBUTE_NAME, aspPage);
+ Object [] oldServletParams = (Object []) setAttribute
(request, SERVLET_PARAMS_ATTRIBUTE_NAME, servletParams);
+ Object oldWriter = setAttribute (request,
TEXT_WRITER_ATTRIBUTE_NAME, writer);
+
+ // Do the include call.
+ dispatcher.include (request, response);
+
+ // Restore previous attribute values after the call.
+ request.setAttribute (SERVLET_PATH_ATTRIBUTE_NAME,
oldServletPath);
+ request.setAttribute (ASPPAGE_ATTRIBUTE_NAME,
oldAspPage);
+ request.setAttribute (SERVLET_PARAMS_ATTRIBUTE_NAME,
oldServletParams);
+ request.setAttribute (TEXT_WRITER_ATTRIBUTE_NAME,
oldWriter);
+ }
+
+ public static String getServletPath (ServletRequest request) {
+ return (String) request.getAttribute
(SERVLET_PATH_ATTRIBUTE_NAME);
+ }
+ public static Object getAspPage (ServletRequest request) {
+ return request.getAttribute (ASPPAGE_ATTRIBUTE_NAME);
+ }
+ public static Object [] getServletParams (ServletRequest
request) {
+ return (Object []) request.getAttribute
(SERVLET_PARAMS_ATTRIBUTE_NAME);
+ }
+ public static Object getTextWriter (ServletRequest request) {
+ return request.getAttribute
(TEXT_WRITER_ATTRIBUTE_NAME);
+ }
+
+ private static Object setAttribute (ServletRequest request,
String attrname, Object newval) {
+ Object oldval = request.getAttribute (attrname);
+ request.setAttribute (attrname, newval);
+ return oldval;
+ }
+
+ private static readonly String SERVLET_INCLUDE_HELPER_PATH =
"/servletincludehelper";
+ private static readonly String ASPPAGE_ATTRIBUTE_NAME =
"vmw.servlet.include.asppage";
+ private static readonly String SERVLET_PATH_ATTRIBUTE_NAME =
"vmw.servlet.include.servlet.path";
+ private static readonly String SERVLET_PARAMS_ATTRIBUTE_NAME =
"vmw.servlet.include.servlet.params";
+ private static readonly String TEXT_WRITER_ATTRIBUTE_NAME =
"vmw.servlet.include.text.writer";
+ }
+}
Added:
trunk/mcs/class/Mainsoft.Web/Mainsoft.Web.Hosting/ServletResourceLoader.cs
===================================================================
--- trunk/mcs/class/Mainsoft.Web/Mainsoft.Web.Hosting/ServletResourceLoader.cs
2007-12-23 12:53:36 UTC (rev 91829)
+++ trunk/mcs/class/Mainsoft.Web/Mainsoft.Web.Hosting/ServletResourceLoader.cs
2007-12-23 12:55:13 UTC (rev 91830)
@@ -0,0 +1,50 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using [EMAIL PROTECTED];
+using javax.servlet;
+using java.io;
+using java.net;
+
+namespace Mainsoft.Web.Hosting
+{
+ class ServletResourceLoader : IResourceLoader
+ {
+ ServletContext _context;
+
+ public ServletResourceLoader (ServletContext context) {
+ _context = context;
+ }
+
+ public URL getResource (String resourceName) {
+ if (resourceName == null)
+ throw new ArgumentNullException
("resourceName");
+
+ if (!resourceName.StartsWith ("/"))
+ resourceName = "/" + resourceName;
+
+ return _context.getResource (resourceName);
+ }
+
+ public InputStream getResourceAsStream (String resourceName) {
+ if (resourceName == null)
+ throw new ArgumentNullException
("resourceName");
+
+ if (!resourceName.StartsWith ("/"))
+ resourceName = "/" + resourceName;
+
+ return _context.getResourceAsStream (resourceName);
+ }
+
+ public java.util.Set getResourcePaths (String path) {
+ if (path == null)
+ throw new ArgumentNullException ("path");
+
+ if (!path.StartsWith ("/"))
+ path = "/" + path;
+
+ return _context.getResourcePaths (path);
+ }
+ }
+
+}
Modified:
trunk/mcs/class/Mainsoft.Web/Mainsoft.Web.Hosting/ServletWorkerRequest.jvm.cs
===================================================================
---
trunk/mcs/class/Mainsoft.Web/Mainsoft.Web.Hosting/ServletWorkerRequest.jvm.cs
2007-12-23 12:53:36 UTC (rev 91829)
+++
trunk/mcs/class/Mainsoft.Web/Mainsoft.Web.Hosting/ServletWorkerRequest.jvm.cs
2007-12-23 12:55:13 UTC (rev 91830)
@@ -36,7 +36,6 @@
using System.Globalization;
using System.Web.Hosting;
using vmw.common;
-using [EMAIL PROTECTED];
using InputStream=java.io.InputStream;
using java.security;
Modified: trunk/mcs/class/Mainsoft.Web/Mainsoft.Web.J2EE.csproj
===================================================================
--- trunk/mcs/class/Mainsoft.Web/Mainsoft.Web.J2EE.csproj 2007-12-23
12:53:36 UTC (rev 91829)
+++ trunk/mcs/class/Mainsoft.Web/Mainsoft.Web.J2EE.csproj 2007-12-23
12:55:13 UTC (rev 91830)
@@ -105,10 +105,6 @@
</VisualStudio>
</ProjectExtensions>
<ItemGroup>
- <Reference Include="J2EE.Helpers">
- <HintPath>..\lib\J2EE.Helpers.dll</HintPath>
- <Private>False</Private>
- </Reference>
<Reference Include="J2SE.Helpers">
<HintPath>..\lib\J2SE.Helpers.dll</HintPath>
<Private>False</Private>
@@ -142,6 +138,8 @@
<Compile Include="Mainsoft.Web.Hosting\IncludeHelperServlet.cs" />
<Compile Include="Mainsoft.Web.Hosting\OutputStreamWrapper.cs" />
<Compile Include="Mainsoft.Web.Hosting\ServletFacesPageHandlerFactory.cs"
/>
+ <Compile Include="Mainsoft.Web.Hosting\ServletIncludeUtils.cs" />
+ <Compile Include="Mainsoft.Web.Hosting\ServletResourceLoader.cs" />
<Compile Include="Mainsoft.Web.Hosting\ServletWorkerRequest.cs" />
<Compile Include="Mainsoft.Web.Hosting\ServletWorkerRequest.jvm.cs" />
<Compile Include="Mainsoft.Web.Hosting\SessionWrapper.cs" />
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches