openamf/src/java/org/openamf DefaultGateway.java,1.26,1.27 AMFMessage.java,1.3,1.4

[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-serv25899/src/java/org/openamf

Modified Files:
	DefaultGateway.java AMFMessage.java 
Log Message:
refactored/cleaned up code to prepare for a 1.0 stable api

Index: DefaultGateway.java
===================================================================
RCS file: /cvsroot/openamf/openamf/src/java/org/openamf/DefaultGateway.java,v
retrieving revision 1.26
retrieving revision 1.27
diff -C2 -d -r1.26 -r1.27
*** DefaultGateway.java	24 May 2003 06:43:21 -0000	1.26
--- DefaultGateway.java	24 May 2003 21:59:40 -0000	1.27
***************
*** 38,43 ****
  			new DataInputStream(httpServletRequest.getInputStream());
  
! 		AMFDeserializer des = new AMFDeserializer(inputStream);
! 		AMFMessage requestMessage = des.getAMFMessage();
  
  		debugRequestMessage(requestMessage);
--- 38,43 ----
  			new DataInputStream(httpServletRequest.getInputStream());
  
! 		AMFDeserializer deserializer = new AMFDeserializer(inputStream);
! 		AMFMessage requestMessage = deserializer.getAMFMessage();
  
  		debugRequestMessage(requestMessage);
***************
*** 51,55 ****
  			int headerCount = requestMessage.getHeaderCount();
  			for (int i = 0; i < headerCount; i++) {
! 				AMFHeader header = requestMessage.getHeaderAt(i);
  				log.debug(header.getKey() + " = " + header.getValue());
  			}
--- 51,55 ----
  			int headerCount = requestMessage.getHeaderCount();
  			for (int i = 0; i < headerCount; i++) {
! 				AMFHeader header = requestMessage.getHeader(i);
  				log.debug(header.getKey() + " = " + header.getValue());
  			}
***************
*** 57,61 ****
  			int bodyCount = requestMessage.getBodyCount();
  			for (int i = 0; i < bodyCount; i++) {
! 				AMFBody body = requestMessage.getBodyAt(i);
  				log.debug("Body " + i);
  				log.debug("target = " + body.getTarget());
--- 57,61 ----
  			int bodyCount = requestMessage.getBodyCount();
  			for (int i = 0; i < bodyCount; i++) {
! 				AMFBody body = requestMessage.getBody(i);
  				log.debug("Body " + i);
  				log.debug("target = " + body.getTarget());
***************
*** 73,111 ****
  		throws IOException {
  
! 		ByteArrayOutputStream baOutputStream = new ByteArrayOutputStream();
! 		DataOutputStream outputStream = new DataOutputStream(baOutputStream);
  
- 		outputStream.writeShort(0);
- 		
- 		//since we're not using any headers just write zero 
- 		//for header count and move on
- 		outputStream.writeShort(0);
- 		
- 		outputStream.writeShort(requestMessage.getBodyCount());
  		for (Iterator bodies = requestMessage.getBodies(); bodies.hasNext();) {
  			AMFBody requestBody = (AMFBody) bodies.next();
! 			Object serviceResult = null;
  
! 			try {
! 				ServiceInvoker serviceInvoker =
! 					getServiceInvoker(requestBody, httpServletRequest);
! 				preInvokeService(httpServletRequest, serviceInvoker);
! 				serviceResult = serviceInvoker.invokeService();
! 				serviceResult =
! 					postInvokeService(
! 						httpServletRequest,
! 						serviceInvoker,
! 						serviceResult);
! 			} catch (ServiceInvocationException e) {
! 				serviceResult = e.getAMFError();
! 				e.getCause().printStackTrace();
! 			}
  
! 			if (serviceResult == null) {
! 				log.debug("RESULT IS NULL!");
! 			} else {
! 				sendResponse(requestBody, outputStream, serviceResult);
! 			}
  		}
  
  		httpServletResponse.setContentType("application/x-amf");
--- 73,138 ----
  		throws IOException {
  
! 		AMFMessage responseMessage = new AMFMessage();
  
  		for (Iterator bodies = requestMessage.getBodies(); bodies.hasNext();) {
+ 
  			AMFBody requestBody = (AMFBody) bodies.next();
! 			
! 			Object serviceResult = invokeBody(httpServletRequest, requestBody);
  
! 			String target = getTarget(requestBody, serviceResult);
! 			AMFBody responseBody =
! 				new AMFBody(
! 					target,
! 					"null",
! 					serviceResult);
! 			responseMessage.addBody(responseBody);
! 		}
! 		
! 		sendResponse(httpServletResponse, responseMessage);
! 	}
  
! 	private Object invokeBody(
! 		HttpServletRequest httpServletRequest,
! 		AMFBody requestBody) {
! 			
! 		Object serviceResult = null;
! 		try {
! 			ServiceInvoker serviceInvoker =
! 				getServiceInvoker(requestBody, httpServletRequest);
! 			preInvokeService(httpServletRequest, serviceInvoker);
! 			serviceResult = serviceInvoker.invokeService();
! 			serviceResult =
! 				postInvokeService(
! 					httpServletRequest,
! 					serviceInvoker,
! 					serviceResult);
! 		} catch (ServiceInvocationException e) {
! 			serviceResult = e.getAMFError();
! 			e.getCause().printStackTrace();
  		}
+ 		return serviceResult;
+ 	}
+ 
+ 	private String getTarget(AMFBody requestBody, Object serviceResult) {
+ 		
+ 		String target = "/onResult";
+ 		if (serviceResult instanceof AMFError) {
+ 			target = "/onStatus";
+ 		}
+ 		
+ 		return requestBody.getResponse() + target;
+ 	}
+ 
+ 	private void sendResponse(
+ 		HttpServletResponse httpServletResponse,
+ 		AMFMessage responseMessage)
+ 		throws IOException {
+ 
+ 		ByteArrayOutputStream baOutputStream = new ByteArrayOutputStream();
+ 		DataOutputStream outputStream = new DataOutputStream(baOutputStream);
+ 		AMFSerializer serializer = new AMFSerializer(outputStream);
+ 
+ 		serializer.serializeMessage(responseMessage);
  
  		httpServletResponse.setContentType("application/x-amf");
***************
*** 187,193 ****
  
  	protected Config getConfig() throws IOException, SAXException {
! 	
! 		Config config = (Config)getServletContext().getAttribute(OPENAMF_CONFIG);
! 	
  		if (config == null) {
  			String configLocation =
--- 214,221 ----
  
  	protected Config getConfig() throws IOException, SAXException {
! 
! 		Config config =
! 			(Config) getServletContext().getAttribute(OPENAMF_CONFIG);
! 
  		if (config == null) {
  			String configLocation =
***************
*** 198,202 ****
  			ConfigDigester configDigester = new ConfigDigester();
  			configDigester.setUseContextClassLoader(true);
! 			
  			config = (Config) configDigester.parse(inputStream);
  
--- 226,230 ----
  			ConfigDigester configDigester = new ConfigDigester();
  			configDigester.setUseContextClassLoader(true);
! 
  			config = (Config) configDigester.parse(inputStream);
  
***************
*** 211,233 ****
  	}
  
- 	private void sendResponse(
- 		AMFBody requestBody,
- 		DataOutputStream outputStream,
- 		Object serviceResult)
- 		throws IOException {
- 
- 		String response = "/onResult";
- 		if (serviceResult instanceof AMFError) {
- 			response = "/onStatus";
- 		}
- 
- 		AMFBody responseBody =
- 			new AMFBody(
- 				requestBody.getResponse() + response,
- 				"null",
- 				serviceResult);
- 
- 		AMFSerializer serializer = new AMFSerializer(outputStream);
- 		serializer.writeBody(responseBody);
- 	}
  }
--- 239,241 ----

Index: AMFMessage.java
===================================================================
RCS file: /cvsroot/openamf/openamf/src/java/org/openamf/AMFMessage.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** AMFMessage.java	12 Apr 2003 00:08:30 -0000	1.3
--- AMFMessage.java	24 May 2003 21:59:40 -0000	1.4
***************
*** 17,21 ****
  
  	public void addHeader(String key, boolean required, Object value) {
! 		headers.add(new AMFHeader(key, required, value));
  	}
  
--- 17,25 ----
  
  	public void addHeader(String key, boolean required, Object value) {
! 		addHeader(new AMFHeader(key, required, value));
! 	}
! 
! 	public void addHeader(AMFHeader header) {
! 		headers.add(header);
  	}
  
***************
*** 24,27 ****
--- 28,39 ----
  	}
  
+ 	public AMFHeader getHeader(int index) {
+ 		return (AMFHeader) headers.get(index);
+ 	}
+ 
+ 	public Iterator getHeaders() {
+ 		return headers.iterator();
+ 	}
+ 
  	public void addBody(
  		String target,
***************
*** 29,32 ****
--- 41,45 ----
  		Object value,
  		byte type) {
+ 
  		addBody(new AMFBody(target, response, value, type));
  	}
***************
*** 40,52 ****
  	}
  
! 	public AMFBody getBodyAt(int i) {
! 		return (AMFBody) bodies.get(i);
  	}
  
  	public Iterator getBodies() {
! 		return bodies.iterator();		
! 	}
! 	public AMFHeader getHeaderAt(int i) {
! 		return (AMFHeader) headers.get(i);
  	}
  
--- 53,62 ----
  	}
  
! 	public AMFBody getBody(int index) {
! 		return (AMFBody) bodies.get(index);
  	}
  
  	public Iterator getBodies() {
! 		return bodies.iterator();
  	}
  




-------------------------------------------------------
This SF.net email is sponsored by: ObjectStore.
If flattening out C++ or Java code to make your application fit in a
relational database is painful, don't do it! Check out ObjectStore.
Now part of Progress Software. http://www.objectstore.net/sourceforge
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.