You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by an...@apache.org on 2008/05/15 10:18:10 UTC
svn commit: r656539 - in
/incubator/tuscany/java/sca/modules/host-webapp/src/main/java/org/apache/tuscany/sca/host/webapp:
WebAppServletHost.java jsp/ReferenceTag.java
Author: antelder
Date: Thu May 15 01:18:10 2008
New Revision: 656539
URL: http://svn.apache.org/viewvc?rev=656539&view=rev
Log:
TUSCANY-2320, interim context path fix while waiting for feedback from user
Modified:
incubator/tuscany/java/sca/modules/host-webapp/src/main/java/org/apache/tuscany/sca/host/webapp/WebAppServletHost.java
incubator/tuscany/java/sca/modules/host-webapp/src/main/java/org/apache/tuscany/sca/host/webapp/jsp/ReferenceTag.java
Modified: incubator/tuscany/java/sca/modules/host-webapp/src/main/java/org/apache/tuscany/sca/host/webapp/WebAppServletHost.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-webapp/src/main/java/org/apache/tuscany/sca/host/webapp/WebAppServletHost.java?rev=656539&r1=656538&r2=656539&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/host-webapp/src/main/java/org/apache/tuscany/sca/host/webapp/WebAppServletHost.java (original)
+++ incubator/tuscany/java/sca/modules/host-webapp/src/main/java/org/apache/tuscany/sca/host/webapp/WebAppServletHost.java Thu May 15 01:18:10 2008
@@ -26,6 +26,7 @@
import java.net.URI;
import java.net.URL;
import java.net.UnknownHostException;
+import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.logging.Logger;
@@ -206,19 +207,10 @@
}
public void init(ServletConfig config) throws ServletException {
- ServletContext servletContext = config.getServletContext();
-
- init(servletContext);
-
- // Initialize the registered Servlets
- for (Servlet servlet : servlets.values()) {
- servlet.init(config);
- }
- }
- public void init(ServletContext servletContext) throws ServletException {
+ ServletContext servletContext = config.getServletContext();
if (servletContext.getAttribute(SCA_DOMAIN_ATTRIBUTE) == null) {
- initContextPath(servletContext);
+ initContextPath(config);
String domainURI = "http://localhost/" + contextPath;
contributionRoot = getContributionRoot(servletContext);
// logger.info("Contribution: " + contributionRoot);
@@ -226,6 +218,11 @@
this.scaDomain = SCADomain.newInstance(domainURI, contributionRoot);
servletContext.setAttribute(SCA_DOMAIN_ATTRIBUTE, scaDomain);
}
+
+ // Initialize the registered Servlets
+ for (Servlet servlet : servlets.values()) {
+ servlet.init(config);
+ }
}
protected String getContributionRoot(ServletContext servletContext) {
@@ -271,19 +268,20 @@
* containers use an init parameter.
*/
@SuppressWarnings("unchecked")
- public void initContextPath(ServletContext context) {
- // The getContextPath() is introduced since Servlet 2.5
- Method m;
- try {
- // Try to get the method anyway since some ServletContext impl has this method even before 2.5
- m = context.getClass().getMethod("getContextPath", new Class[] {});
- contextPath = (String)m.invoke(context, new Object[] {});
- } catch (Exception e) {
- contextPath = context.getInitParameter("contextPath");
- if (contextPath == null) {
+ public void initContextPath(ServletConfig config) {
+
+ if (Collections.list(config.getInitParameterNames()).contains("contextPath")) {
+ contextPath = config.getInitParameter("contextPath");
+ } else {
+ // The getContextPath() is introduced since Servlet 2.5
+ ServletContext context = config.getServletContext();
+ try {
+ // Try to get the method anyway since some ServletContext impl has this method even before 2.5
+ Method m = context.getClass().getMethod("getContextPath", new Class[] {});
+ contextPath = (String)m.invoke(context, new Object[] {});
+ } catch (Exception e) {
logger.warning("Servlet level is: " + context.getMajorVersion() + "." + context.getMinorVersion());
- throw new IllegalStateException(
- "'contextPath' init parameter must be set for pre-2.5 servlet container");
+ throw new IllegalStateException("'contextPath' init parameter must be set for pre-2.5 servlet container");
}
}
Modified: incubator/tuscany/java/sca/modules/host-webapp/src/main/java/org/apache/tuscany/sca/host/webapp/jsp/ReferenceTag.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-webapp/src/main/java/org/apache/tuscany/sca/host/webapp/jsp/ReferenceTag.java?rev=656539&r1=656538&r2=656539&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/host-webapp/src/main/java/org/apache/tuscany/sca/host/webapp/jsp/ReferenceTag.java (original)
+++ incubator/tuscany/java/sca/modules/host-webapp/src/main/java/org/apache/tuscany/sca/host/webapp/jsp/ReferenceTag.java Thu May 15 01:18:10 2008
@@ -47,13 +47,13 @@
public int doEndTag() throws JspException {
- ServletContext servletContext = pageContext.getServletContext();
try {
- WebAppServletHost.getInstance().init(servletContext);
+ WebAppServletHost.getInstance().init(pageContext.getServletConfig());
} catch (ServletException e) {
throw new JspException("Exception initializing Tuscany webapp: " + e, e);
}
+ ServletContext servletContext = pageContext.getServletContext();
SCADomain scaDomain = (SCADomain)servletContext.getAttribute(WebAppServletHost.SCA_DOMAIN_ATTRIBUTE);
if (scaDomain == null) {
throw new JspException("SCADomain is null. Check Tuscany configuration in web.xml");