openamf/src/java/org/openamf AdvancedGateway.java,1.5,1.6 DefaultGateway.java,1.20,1.21

[email protected]
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.