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

Reply via email to