openamf/src/java/org/openamf AdvancedGateway.java,1.5,1.6 DefaultGateway.java,1.20,1.21
[email protected] Tue, 29 Apr 2003 18:02:10 -0700
Newsgroups
gmane.comp.java.openamf.cvs
Message-ID
<[email protected] >
Update of /cvsroot/openamf/openamf/src/java/org/openamf
In directory sc8-pr-cvs1:/tmp/cvs-serv11161/src/java/org/openamf
Modified Files:
AdvancedGateway.java DefaultGateway.java
Log Message:
1) updated the DefaultGateway so that Invokers are completly pluggable
2) this will also enable lots of new features for the AdvancedGateway
Index: AdvancedGateway.java
===================================================================
RCS file: /cvsroot/openamf/openamf/src/java/org/openamf/AdvancedGateway.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** AdvancedGateway.java 25 Apr 2003 17:14:22 -0000 1.5
--- AdvancedGateway.java 30 Apr 2003 01:02:07 -0000 1.6
***************
*** 2,10 ****
import java.io.IOException;
- import java.io.InputStream;
- import java.lang.reflect.Constructor;
import java.util.Iterator;
- import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
--- 2,7 ----
***************
*** 12,16 ****
import org.apache.commons.logging.LogFactory;
import org.openamf.config.Config;
- import org.openamf.config.ConfigDigester;
import org.openamf.config.ServiceConfig;
import org.openamf.config.StateBeanConfig;
--- 9,12 ----
***************
*** 23,28 ****
private static Log log = LogFactory.getLog(AdvancedGateway.class);
- private static final String OPENAMF_CONFIG = "WEB-INF/openamf-config.xml";
-
protected ServiceInvoker getServiceInvoker(
AMFBody requestBody,
--- 19,22 ----
***************
*** 51,65 ****
}
- Class serviceInvokerClass =
- Thread.currentThread().getContextClassLoader().loadClass(
- serviceConfig.getServiceInvokerClassName());
-
- Constructor constructor =
- serviceInvokerClass.getConstructor(
- new Class[] { ServiceRequest.class, ServletContext.class });
-
serviceInvoker =
! (ServiceInvoker) constructor.newInstance(
! new Object[] { request, getServletContext() });
} catch (Exception e) {
throw new ServiceInvocationException(requestBody, e);
--- 45,53 ----
}
serviceInvoker =
! ServiceInvoker.load(
! serviceConfig.getServiceInvokerConfig().getClassName(),
! request, getServletContext());
!
} catch (Exception e) {
throw new ServiceInvocationException(requestBody, e);
***************
*** 72,86 ****
throws IOException, SAXException {
! InputStream inputStream =
! getServletContext().getResourceAsStream(OPENAMF_CONFIG);
!
! ConfigDigester configDigester = new ConfigDigester();
!
! Config config = (Config) configDigester.parse(inputStream);
ServiceConfig serviceConfig =
config.getServiceConfig(requestBody.getServiceName());
-
- log.debug(serviceConfig);
return serviceConfig;
--- 60,67 ----
throws IOException, SAXException {
! Config config = getConfig();
ServiceConfig serviceConfig =
config.getServiceConfig(requestBody.getServiceName());
return serviceConfig;
Index: DefaultGateway.java
===================================================================
RCS file: /cvsroot/openamf/openamf/src/java/org/openamf/DefaultGateway.java,v
retrieving revision 1.20
retrieving revision 1.21
diff -C2 -d -r1.20 -r1.21
*** DefaultGateway.java 28 Apr 2003 06:01:27 -0000 1.20
--- DefaultGateway.java 30 Apr 2003 01:02:07 -0000 1.21
***************
*** 5,13 ****
import java.io.DataOutputStream;
import java.io.IOException;
import java.util.Iterator;
- import javax.ejb.EJBHome;
- import javax.naming.InitialContext;
- import javax.naming.NamingException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
--- 5,11 ----
import java.io.DataOutputStream;
import java.io.IOException;
+ import java.io.InputStream;
import java.util.Iterator;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
***************
*** 15,30 ****
import javax.servlet.http.HttpServletResponse;
! import org.openamf.invoker.JavaServiceInvoker;
! import org.openamf.invoker.JMXServiceInvoker;
! import org.openamf.invoker.PageableResultSetServiceInvoker;
! import org.openamf.invoker.SLSBServiceInvoker;
! import org.openamf.invoker.WebServiceInvoker;
import org.openamf.invoker.ServiceInvocationException;
import org.openamf.invoker.ServiceInvoker;
import org.openamf.io.AMFDeserializer;
import org.openamf.io.AMFSerializer;
! import org.openamf.recordset.ASRecordSet;
! import org.apache.commons.logging.Log;
! import org.apache.commons.logging.LogFactory;
public class DefaultGateway extends HttpServlet {
--- 13,26 ----
import javax.servlet.http.HttpServletResponse;
! import org.apache.commons.logging.Log;
! import org.apache.commons.logging.LogFactory;
! import org.openamf.config.Config;
! import org.openamf.config.ConfigDigester;
! import org.openamf.config.ServiceInvokerConfig;
import org.openamf.invoker.ServiceInvocationException;
import org.openamf.invoker.ServiceInvoker;
import org.openamf.io.AMFDeserializer;
import org.openamf.io.AMFSerializer;
! import org.xml.sax.SAXException;
public class DefaultGateway extends HttpServlet {
***************
*** 32,35 ****
--- 28,33 ----
protected static Log log = LogFactory.getLog(DefaultGateway.class);
+ private static final String OPENAMF_CONFIG = "OPENAMF_CONFIG";
+
public void service(
HttpServletRequest httpServletRequest,
***************
*** 145,193 ****
ServiceRequest request = new ServiceRequest(requestBody);
! if (isPageableResultSet(request)) {
! log.debug("About to invoke PageableRecordSet Service");
! serviceInvoker =
! new PageableResultSetServiceInvoker(request, getServletContext());
! } else if (isWebService(request.getTarget())) {
! log.debug("About to invoke WEB Service");
! serviceInvoker =
! new WebServiceInvoker(request, getServletContext());
! } else if (isJmxService(request.getTarget())) {
! log.debug("About to invoke JMX Service");
! serviceInvoker =
! new JMXServiceInvoker(request, getServletContext());
! } else if (isSlsbService(request.getServiceName())) {
! log.debug("About to invoke SLSB Service");
! serviceInvoker =
! new SLSBServiceInvoker(request, getServletContext());
! } else {
! log.debug("About to invoke POJO Service");
! serviceInvoker =
! new JavaServiceInvoker(request, getServletContext());
}
return serviceInvoker;
}
! private boolean isPageableResultSet(ServiceRequest request) {
! return request.getServiceName().equals(ASRecordSet.SERVICE_NAME);
! }
! private boolean isJmxService(String target) {
! return (target.lastIndexOf(":") != -1);
! }
! private boolean isSlsbService(String target) {
! try {
! return ((new InitialContext()).lookup(target) instanceof EJBHome);
! } catch (NamingException e1) {
! return false;
! }
! }
! private boolean isWebService(String target) {
! //TODO valid/better test
! String targ = target.toLowerCase();
! return (targ.lastIndexOf("wsdl") != -1);
}
--- 143,199 ----
ServiceRequest request = new ServiceRequest(requestBody);
! try {
! for (Iterator i = getConfig().getServiceInvokerConfigs();
! i.hasNext();
! ) {
!
! ServiceInvokerConfig invokerConfig =
! (ServiceInvokerConfig) i.next();
!
! log.debug(
! "Checking if the "
! + invokerConfig.getName()
! + " Service Invoker can support the request");
!
! ServiceInvoker tempInvoker =
! ServiceInvoker.load(
! invokerConfig.getClassName(),
! request,
! getServletContext());
!
! if (tempInvoker.supports(request)) {
! serviceInvoker = tempInvoker;
! log.debug("YES");
! break;
! } else {
! log.debug("NO");
! }
! }
! } catch (Exception e) {
! throw new ServiceInvocationException(request, e);
}
+
return serviceInvoker;
}
! protected Config getConfig() throws IOException, SAXException {
!
! Config config = (Config)getServletContext().getAttribute(OPENAMF_CONFIG);
!
! if (config == null) {
! String configLocation =
! getServletConfig().getInitParameter(OPENAMF_CONFIG);
! InputStream inputStream =
! getServletContext().getResourceAsStream(configLocation);
! ConfigDigester configDigester = new ConfigDigester();
! config = (Config) configDigester.parse(inputStream);
! getServletContext().setAttribute(OPENAMF_CONFIG, config);
! log.debug("Putting config in Servlet Context");
! }
! return config;
}
-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf