openamf/src/java/org/openamf DefaultGateway.java,1.26,1.27 AMFMessage.java,1.3,1.4
[email protected] Sat, 24 May 2003 14:59:42 -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-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