You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by di...@apache.org on 2008/03/10 06:14:54 UTC
svn commit: r635433 - in
/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http:
CustomListener.java ListingAgent.java
Author: dims
Date: Sun Mar 9 22:14:40 2008
New Revision: 635433
URL: http://svn.apache.org/viewvc?rev=635433&view=rev
Log:
Fix for AXIS2-3242 - There is no reason for HTTPSListener to be inner class
Added:
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/CustomListener.java
Modified:
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/ListingAgent.java
Added: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/CustomListener.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/CustomListener.java?rev=635433&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/CustomListener.java (added)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/CustomListener.java Sun Mar 9 22:14:40 2008
@@ -0,0 +1,89 @@
+package org.apache.axis2.transport.http;
+
+import org.apache.axis2.transport.TransportListener;
+import org.apache.axis2.context.ConfigurationContext;
+import org.apache.axis2.context.SessionContext;
+import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.description.TransportInDescription;
+import org.apache.axis2.description.Parameter;
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.Constants;
+import org.apache.axis2.addressing.EndpointReference;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * This class is used just to add additional transports at runtime if user sends a request using
+ * alternate schemes, example to handle http/https separately
+ */
+public class CustomListener implements TransportListener {
+
+ private static final Log log = LogFactory.getLog(CustomListener.class);
+
+ private int port;
+ private String schema;
+ private ConfigurationContext axisConf;
+
+ public CustomListener(int port, String schema) {
+ this.port = port;
+ this.schema = schema;
+ }
+
+ public void init(ConfigurationContext axisConf,
+ TransportInDescription transprtIn) throws AxisFault {
+ this.axisConf = axisConf;
+ Parameter param = transprtIn.getParameter(PARAM_PORT);
+ if (param != null) {
+ this.port = Integer.parseInt((String) param.getValue());
+ }
+ }
+
+ public void start() throws AxisFault {
+ }
+
+ public void stop() throws AxisFault {
+ }
+
+ public EndpointReference[] getEPRsForService(String serviceName, String ip)
+ throws AxisFault {
+ String path = axisConf.getServiceContextPath() + "/" + serviceName;
+ if(path.charAt(0)!='/'){
+ path = '/' + path;
+ }
+ return new EndpointReference[]{new EndpointReference(schema + "://" + ip + ":" + port + path )};
+ }
+
+ public EndpointReference getEPRForService(String serviceName, String ip) throws AxisFault {
+ return getEPRsForService(serviceName, ip)[0];
+ }
+
+ public SessionContext getSessionContext(MessageContext messageContext) {
+ HttpServletRequest req = (HttpServletRequest) messageContext.getProperty(
+ HTTPConstants.MC_HTTP_SERVLETREQUEST);
+ SessionContext sessionContext =
+ (SessionContext) req.getSession(true).getAttribute(
+ Constants.SESSION_CONTEXT_PROPERTY);
+ String sessionId = null;
+ try {
+ sessionId = req.getSession().getId();
+ if (sessionContext == null) {
+ sessionContext = new SessionContext(null);
+ sessionContext.setCookieID(sessionId);
+ req.getSession().setAttribute(Constants.SESSION_CONTEXT_PROPERTY,
+ sessionContext);
+ }
+ } catch (Throwable t){
+ log.info("Old Servlet API :" + t);
+ return null;
+ }
+ messageContext.setSessionContext(sessionContext);
+ messageContext.setProperty(AxisServlet.SESSION_ID, sessionId);
+ return sessionContext;
+ }
+
+ public void destroy() {
+ }
+
+}
Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/ListingAgent.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/ListingAgent.java?rev=635433&r1=635432&r2=635433&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/ListingAgent.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/ListingAgent.java Sun Mar 9 22:14:40 2008
@@ -23,23 +23,17 @@
import org.apache.axiom.attachments.utils.IOUtils;
import org.apache.axis2.AxisFault;
import org.apache.axis2.Constants;
-import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.context.ConfigurationContext;
-import org.apache.axis2.context.MessageContext;
-import org.apache.axis2.context.SessionContext;
import org.apache.axis2.deployment.DeploymentConstants;
import org.apache.axis2.description.AxisDescription;
import org.apache.axis2.description.AxisService;
-import org.apache.axis2.description.Parameter;
import org.apache.axis2.description.PolicyInclude;
import org.apache.axis2.description.TransportInDescription;
-import org.apache.axis2.transport.TransportListener;
import org.apache.axis2.util.ExternalPolicySerializer;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.neethi.Policy;
import org.apache.neethi.PolicyRegistry;
-import org.apache.ws.commons.schema.XmlSchema;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
@@ -51,12 +45,9 @@
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
-import java.io.OutputStreamWriter;
-import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
-import java.util.Map;
public class ListingAgent extends AbstractAgent {
@@ -74,13 +65,13 @@
super(aConfigContext);
}
- private void addTransportListner(String schema, int port) {
+ private void addTransportListener(String schema, int port) {
try {
TransportInDescription trsIn =
configContext.getAxisConfiguration().getTransportIn(schema);
if (trsIn == null) {
trsIn = new TransportInDescription(schema);
- HTTPSListener httspReceiver = new HTTPSListener(port, schema);
+ CustomListener httspReceiver = new CustomListener(port, schema);
httspReceiver.init(configContext, trsIn);
trsIn.setReceiver(httspReceiver);
configContext.getListenerManager().addListener(trsIn, true);
@@ -131,7 +122,7 @@
portstr = "80";
}
try {
- addTransportListner(httpServletRequest.getScheme(), Integer.parseInt(portstr));
+ addTransportListener(httpServletRequest.getScheme(), Integer.parseInt(portstr));
} catch (NumberFormatException e) {
log.debug(e.toString(), e);
}
@@ -467,78 +458,6 @@
}
return null;
- }
-
- /**
- * This class is just to add tarnsport at the runtime if user send requet using
- * diffrent schemes , simly to handle http/https seperetaly
- */
- private class HTTPSListener implements TransportListener {
-
- private int port;
- private String schema;
- private ConfigurationContext axisConf;
-
- public HTTPSListener(int port, String schema) {
- this.port = port;
- this.schema = schema;
- }
-
- public void init(ConfigurationContext axisConf,
- TransportInDescription transprtIn) throws AxisFault {
- this.axisConf = axisConf;
- Parameter param = transprtIn.getParameter(PARAM_PORT);
- if (param != null) {
- this.port = Integer.parseInt((String) param.getValue());
- }
- }
-
- public void start() throws AxisFault {
- }
-
- public void stop() throws AxisFault {
- }
-
- public EndpointReference[] getEPRsForService(String serviceName, String ip)
- throws AxisFault {
- String path = axisConf.getServiceContextPath() + "/" + serviceName;
- if(path.charAt(0)!='/'){
- path = '/' + path;
- }
- return new EndpointReference[]{new EndpointReference(schema + "://" + ip + ":" + port + path )};
- }
-
- public EndpointReference getEPRForService(String serviceName, String ip) throws AxisFault {
- return getEPRsForService(serviceName, ip)[0];
- }
-
- public SessionContext getSessionContext(MessageContext messageContext) {
- HttpServletRequest req = (HttpServletRequest) messageContext.getProperty(
- HTTPConstants.MC_HTTP_SERVLETREQUEST);
- SessionContext sessionContext =
- (SessionContext) req.getSession(true).getAttribute(
- Constants.SESSION_CONTEXT_PROPERTY);
- String sessionId = null;
- try {
- sessionId = req.getSession().getId();
- if (sessionContext == null) {
- sessionContext = new SessionContext(null);
- sessionContext.setCookieID(sessionId);
- req.getSession().setAttribute(Constants.SESSION_CONTEXT_PROPERTY,
- sessionContext);
- }
- } catch (Throwable t){
- log.info("Old Servlet API :" + t);
- return null;
- }
- messageContext.setSessionContext(sessionContext);
- messageContext.setProperty(AxisServlet.SESSION_ID, sessionId);
- return sessionContext;
- }
-
- public void destroy() {
- }
-
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org