Return-Path: Delivered-To: apmail-geronimo-scm-archive@www.apache.org Received: (qmail 95564 invoked from network); 18 Jan 2011 02:59:16 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 18 Jan 2011 02:59:16 -0000 Received: (qmail 51143 invoked by uid 500); 18 Jan 2011 02:59:16 -0000 Delivered-To: apmail-geronimo-scm-archive@geronimo.apache.org Received: (qmail 51047 invoked by uid 500); 18 Jan 2011 02:59:15 -0000 Mailing-List: contact scm-help@geronimo.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: Reply-To: dev@geronimo.apache.org List-Id: Delivered-To: mailing list scm@geronimo.apache.org Received: (qmail 51040 invoked by uid 99); 18 Jan 2011 02:59:15 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 18 Jan 2011 02:59:15 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 18 Jan 2011 02:59:13 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id C28922388903; Tue, 18 Jan 2011 02:58:42 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1060171 - /geronimo/server/trunk/plugins/tomcat/geronimo-tomcat7-builder/src/main/java/org/apache/geronimo/tomcat/deployment/TomcatModuleBuilder.java Date: Tue, 18 Jan 2011 02:58:42 -0000 To: scm@geronimo.apache.org From: rwonly@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20110118025842.C28922388903@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: rwonly Date: Tue Jan 18 02:58:42 2011 New Revision: 1060171 URL: http://svn.apache.org/viewvc?rev=1060171&view=rev Log: re-enable the codes that deal with the web service fake servlet Modified: geronimo/server/trunk/plugins/tomcat/geronimo-tomcat7-builder/src/main/java/org/apache/geronimo/tomcat/deployment/TomcatModuleBuilder.java Modified: geronimo/server/trunk/plugins/tomcat/geronimo-tomcat7-builder/src/main/java/org/apache/geronimo/tomcat/deployment/TomcatModuleBuilder.java URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/tomcat/geronimo-tomcat7-builder/src/main/java/org/apache/geronimo/tomcat/deployment/TomcatModuleBuilder.java?rev=1060171&r1=1060170&r2=1060171&view=diff ============================================================================== --- geronimo/server/trunk/plugins/tomcat/geronimo-tomcat7-builder/src/main/java/org/apache/geronimo/tomcat/deployment/TomcatModuleBuilder.java (original) +++ geronimo/server/trunk/plugins/tomcat/geronimo-tomcat7-builder/src/main/java/org/apache/geronimo/tomcat/deployment/TomcatModuleBuilder.java Tue Jan 18 02:58:42 2011 @@ -52,6 +52,7 @@ import org.apache.geronimo.gbean.Abstrac import org.apache.geronimo.gbean.GBeanData; import org.apache.geronimo.gbean.GBeanInfoBuilder; import org.apache.geronimo.gbean.GBeanLifecycle; +import org.apache.geronimo.gbean.ReferencePatterns; import org.apache.geronimo.gbean.annotation.GBean; import org.apache.geronimo.gbean.annotation.ParamAttribute; import org.apache.geronimo.gbean.annotation.ParamReference; @@ -581,7 +582,7 @@ public class TomcatModuleBuilder extends webModuleData.setAttribute("contextAttributes", contextAttributes); - //Handle the role permissions and webservices on the servlets. + //Handle webservices and the role permissions on the servlets. List servletTypes = webApp.getServlet(); Map webServices = new HashMap(); Class baseServletClass; @@ -590,43 +591,46 @@ public class TomcatModuleBuilder extends } catch (ClassNotFoundException e) { throw new DeploymentException("Could not load javax.servlet.Servlet in bundle " + bundle, e); } -// for (org.apache.openejb.jee.Servlet servletType : servletTypes) { -// -// if (servletType.getServletClass() != null) { -// String servletName = servletType.getServletName().trim(); -// String servletClassName = servletType.getServletClass().trim(); -// Class servletClass; -// try { -// servletClass = webBundle.loadClass(servletClassName); -// } catch (ClassNotFoundException e) { -// throw new DeploymentException("Could not load servlet class " + servletClassName + " from bundle " + bundle, e); -// } -// if (!baseServletClass.isAssignableFrom(servletClass)) { -// //fake servletData -// AbstractName servletAbstractName = moduleContext.getNaming().createChildName(moduleName, servletName, NameFactory.SERVLET); -// GBeanData servletData = new GBeanData(); -// servletData.setAbstractName(servletAbstractName); -// //let the web service builder deal with configuring the gbean with the web service stack -// //Here we just extract the factory reference -// boolean configured = false; -// for (WebServiceBuilder serviceBuilder : webServiceBuilder) { -// if (serviceBuilder.configurePOJO(servletData, servletName, module, servletClassName, moduleContext)) { -// configured = true; -// break; -// } -// } -// if (!configured) { -// throw new DeploymentException("POJO web service: " + servletName + " not configured by any web service builder"); -// } -// ReferencePatterns patterns = servletData.getReferencePatterns("WebServiceContainerFactory"); -// AbstractName wsContainerFactoryName = patterns.getAbstractName(); -// webServices.put(servletName, wsContainerFactoryName); -// //force all the factories to start before the web app that needs them. -// webModuleData.addDependency(wsContainerFactoryName); -// } -// -// } -// } + + + // web services fake servlet + for (org.apache.openejb.jee.Servlet servletType : servletTypes) { + + if (servletType.getServletClass() != null) { + String servletName = servletType.getServletName().trim(); + String servletClassName = servletType.getServletClass().trim(); + Class servletClass; + try { + servletClass = webBundle.loadClass(servletClassName); + } catch (ClassNotFoundException e) { + throw new DeploymentException("Could not load servlet class " + servletClassName + " from bundle " + bundle, e); + } + if (!baseServletClass.isAssignableFrom(servletClass)) { + //fake servletData + AbstractName servletAbstractName = moduleContext.getNaming().createChildName(moduleName, servletName, NameFactory.SERVLET); + GBeanData servletData = new GBeanData(); + servletData.setAbstractName(servletAbstractName); + //let the web service builder deal with configuring the gbean with the web service stack + //Here we just extract the factory reference + boolean configured = false; + for (WebServiceBuilder serviceBuilder : webServiceBuilder) { + if (serviceBuilder.configurePOJO(servletData, servletName, module, servletClassName, moduleContext)) { + configured = true; + break; + } + } + if (!configured) { + throw new DeploymentException("POJO web service: " + servletName + " not configured by any web service builder"); + } + ReferencePatterns patterns = servletData.getReferencePatterns("WebServiceContainerFactory"); + AbstractName wsContainerFactoryName = patterns.getAbstractName(); + webServices.put(servletName, wsContainerFactoryName); + //force all the factories to start before the web app that needs them. + webModuleData.addDependency(wsContainerFactoryName); + } + + } + } webModuleData.setAttribute("webServices", webServices);