[Comsuite-svn] SF.net SVN: comsuite: [162] trunk/code/CSMiddleware
                
                Brought to you by:
                
                    zduniak
                    
                
            
            
        
        
        
    | 
     
      
      
      From: <zd...@us...> - 2006-09-26 12:02:49
      
     
   | 
Revision: 162
          http://svn.sourceforge.net/comsuite/?rev=162&view=rev
Author:   zduniak
Date:     2006-09-26 05:02:23 -0700 (Tue, 26 Sep 2006)
Log Message:
-----------
- Devices emulator implemented - working just fine
- Minor improvements in SAP-related module
Modified Paths:
--------------
    trunk/code/CSMiddleware/src/org/commsuite/devices/Device.java
    trunk/code/CSMiddleware/src/org/commsuite/sap/JCoFunctionTranslator.java
    trunk/code/CSMiddleware/src/org/commsuite/sap/SAPComm.java
    trunk/code/CSMiddleware/src/org/commsuite/sap/SAPCommManager.java
    trunk/code/CSMiddleware/src/org/commsuite/tests/emulator/SAPEmulatingServlet.java
Added Paths:
-----------
    trunk/code/CSMiddleware/src/org/commsuite/tests/emulator/res/sample.pdf
    trunk/code/CSMiddleware/war/deviceemulator.jsp
Modified: trunk/code/CSMiddleware/src/org/commsuite/devices/Device.java
===================================================================
--- trunk/code/CSMiddleware/src/org/commsuite/devices/Device.java	2006-09-24 12:42:52 UTC (rev 161)
+++ trunk/code/CSMiddleware/src/org/commsuite/devices/Device.java	2006-09-26 12:02:23 UTC (rev 162)
@@ -236,7 +236,6 @@
 
             notifySendStateChange(messageId, OutboundMessage.State.FAILED);
         }
-    	
     }
 
     /**
Modified: trunk/code/CSMiddleware/src/org/commsuite/sap/JCoFunctionTranslator.java
===================================================================
--- trunk/code/CSMiddleware/src/org/commsuite/sap/JCoFunctionTranslator.java	2006-09-24 12:42:52 UTC (rev 161)
+++ trunk/code/CSMiddleware/src/org/commsuite/sap/JCoFunctionTranslator.java	2006-09-26 12:02:23 UTC (rev 162)
@@ -174,7 +174,7 @@
 	// [PW] REFACTOR this method is defenitely too long.. [SK]
 	// Cyclomatic Complexity of 26
 	public static JCO.Function getJCOFunctionFromMessage(Message message,
-			IRepository repository) {
+			IRepository repository, String mainReceiver) {
 		final JCO.Function f = repository
 				.getFunctionTemplate(SX_OBJECT_RECEIVE).getFunction();
 		if (null == f) {
@@ -427,7 +427,7 @@
 		receivers.appendRow();
 		// RECEIVER field must contains valid, SAP-instance-server unique e-mail
 		// address:
-		receivers.setValue(message.getReceiver(), "RECEIVER");
+		receivers.setValue(mainReceiver != null ? mainReceiver : message.getReceiver(), "RECEIVER");
 		receivers.setValue("INT", "ADR_TYP");
 		receivers.setValue("X", "EXPRESS");
 		receivers.setValue("X", "NOTIF_DEL");
Modified: trunk/code/CSMiddleware/src/org/commsuite/sap/SAPComm.java
===================================================================
--- trunk/code/CSMiddleware/src/org/commsuite/sap/SAPComm.java	2006-09-24 12:42:52 UTC (rev 161)
+++ trunk/code/CSMiddleware/src/org/commsuite/sap/SAPComm.java	2006-09-26 12:02:23 UTC (rev 162)
@@ -225,8 +225,7 @@
 						&& 0 == messages[0].getSentContents().size()) {
 					final String errMsg = "Message without any content is not supported";
 					logger.error(errMsg);
-					throw new JCO.AbapException("INTERNAL",
-							errMsg);
+					throw new JCO.AbapException("INTERNAL", errMsg);
 				}
 
 				if (null == msgManager) {
@@ -477,12 +476,10 @@
 
 		JCO.Client client = null;
 		try {
-			// setting correct receiver:
-			message.setReceiver(instanceDef.getAdminEmail());
-
 			// converting message to JCO.Function:
 			final JCO.Function f = JCoFunctionTranslator
-					.getJCOFunctionFromMessage(message, repository);
+					.getJCOFunctionFromMessage(message, repository, instanceDef
+							.getAdminEmail());
 
 			// REVIEW: is below synchronization necessary ?
 			// synchronized (this) {
@@ -490,8 +487,10 @@
 			client.execute(f);
 			// }
 			final boolean send = checkFunctionReturn(f);
-			logger.debug("Message to [" + message.getReceiver()
-					+ "] sent status: " + send);
+			if (logger.isDebugEnabled()) {
+				logger.debug("Message to [" + message.getReceiver()
+						+ "] sent status: " + send);
+			}
 			return send;
 		} catch (Throwable t) {
 			logger.fatal("Exception during sending the message to SAP server",
Modified: trunk/code/CSMiddleware/src/org/commsuite/sap/SAPCommManager.java
===================================================================
--- trunk/code/CSMiddleware/src/org/commsuite/sap/SAPCommManager.java	2006-09-24 12:42:52 UTC (rev 161)
+++ trunk/code/CSMiddleware/src/org/commsuite/sap/SAPCommManager.java	2006-09-26 12:02:23 UTC (rev 162)
@@ -37,7 +37,7 @@
 import com.sap.mw.jco.JCO;
 
 /**
- * TODO: [MZ] implement! REVIEW: [MZ] synchronize in appropriate scope TODO: [MZ] Complete comments.
+ * REVIEW: [MZ] synchronize in appropriate scope
  * 
  * @since 1.0
  * @author Marcin Zduniak
@@ -45,7 +45,7 @@
  */
 public class SAPCommManager implements ISAPCommManager {
 
-    // TODO: przeniesc do pliku properties
+    // TODO: move to properties file
     private final static int TRACE_LEVEL = 10;
 
     private static final Logger logger = Logger.getLogger(SAPCommManager.class);
Modified: trunk/code/CSMiddleware/src/org/commsuite/tests/emulator/SAPEmulatingServlet.java
===================================================================
--- trunk/code/CSMiddleware/src/org/commsuite/tests/emulator/SAPEmulatingServlet.java	2006-09-24 12:42:52 UTC (rev 161)
+++ trunk/code/CSMiddleware/src/org/commsuite/tests/emulator/SAPEmulatingServlet.java	2006-09-26 12:02:23 UTC (rev 162)
@@ -44,66 +44,71 @@
  */
 public class SAPEmulatingServlet extends HttpServlet {
 
-    private static final long serialVersionUID = 9071969523995027656L;
+	private static final long serialVersionUID = 9071969523995027656L;
 
-    public SAPEmulatingServlet() {
-        super();
-    }
+	public SAPEmulatingServlet() {
+		super();
+	}
 
-    @Override
-    protected void service(HttpServletRequest req, HttpServletResponse res)
-            throws ServletException, IOException {
-        final String action = req.getParameter("a");
-        final PrintWriter out = res.getWriter();
-        out.print("<html>");
-        if (null == action) {
-            showAllFiles(out);
-        } else {
-            try {
-                simulateJCOFunction(action);
-                out.print("Messages sent");
-            } catch (Throwable e) {
-                out.print("Exception: ");
-                out.print(e.getMessage());
-                e.printStackTrace();
-            }
-        }
-        out.print("</html>");
-    }
+	@Override
+	protected void service(HttpServletRequest req, HttpServletResponse res)
+			throws ServletException, IOException {
+		final String action = req.getParameter("a");
+		final PrintWriter out = res.getWriter();
+		out.print("<html>");
+		if (null == action) {
+			showAllFiles(out);
+		} else {
+			try {
+				simulateJCOFunction(action);
+				out.print("Messages sent");
+			} catch (Throwable e) {
+				out.print("Exception: ");
+				out.print(e.getMessage());
+				e.printStackTrace();
+			}
+		}
+		out.print("</html>");
+	}
 
-    private void simulateJCOFunction(String action) throws IOException, ClassNotFoundException {
-        final String path = getResPath() + "/" + action;
-        final InputStream is = new FileInputStream(new File(path));
-        final ObjectInputStream objIn = new ObjectInputStream(is);
-        final Object obj = objIn.readObject();
+	private void simulateJCOFunction(String action) throws IOException,
+			ClassNotFoundException {
+		final String path = getResPath() + "/" + action;
+		final InputStream is = new FileInputStream(new File(path));
+		final ObjectInputStream objIn = new ObjectInputStream(is);
+		final Object obj = objIn.readObject();
 
-        if (obj instanceof JCO.Function) {
-            final JCO.Function function = (JCO.Function) obj;
-            for (ISAPComm isapComm : SpringMiddlewareContext.getSAPCommManager().getSapComms().values()) {
-                final SAPComm sapComm = (SAPComm) isapComm;
-                sapComm.handleJCORequest(function, "ISO8859_2");
-            }
-        }
-    }
+		if (obj instanceof JCO.Function) {
+			final JCO.Function function = (JCO.Function) obj;
+			for (ISAPComm isapComm : SpringMiddlewareContext
+					.getSAPCommManager().getSapComms().values()) {
+				final SAPComm sapComm = (SAPComm) isapComm;
+				sapComm.handleJCORequest(function, "ISO8859_2");
+			}
+		}
+	}
 
-    private String getResPath() {
-        final String path = this.getClass().getResource("/").getPath() + "/"
-                + this.getClass().getPackage().getName().replace('.', '/') + "/res";
-        return path;
-    }
+	private String getResPath() {
+		final String path = this.getClass().getResource("/").getPath() + "/"
+				+ this.getClass().getPackage().getName().replace('.', '/')
+				+ "/res";
+		return path;
+	}
 
-    private void showAllFiles(PrintWriter out) {
-        final File resPath = new File(getResPath());
-        
-        if (null == resPath) {
-            out.append("Could not find path to files.");
-            return;
-        }
-        
-        out.append("Available test messages:<br/><br/>");
-        for (String name : resPath.list()) {
-            out.append("<a href='?a=" + name + "'>" + name + "</a><br/>");
-        }
-    }
+	private void showAllFiles(PrintWriter out) {
+		final File resPath = new File(getResPath());
 
+		if (null == resPath) {
+			out.append("Could not find path to files.");
+			return;
+		}
+
+		out.append("Available test messages:<br/><br/>");
+		for (String name : resPath.list()) {
+			if (name.endsWith(".ser")) {
+				out.append("<a href='?a=" + name + "'>" + name + "</a><br/>");
+			}
+		}
+	}
+
 }
Added: trunk/code/CSMiddleware/src/org/commsuite/tests/emulator/res/sample.pdf
===================================================================
(Binary files differ)
Property changes on: trunk/code/CSMiddleware/src/org/commsuite/tests/emulator/res/sample.pdf
___________________________________________________________________
Name: svn:mime-type
   + application/pdf
Added: trunk/code/CSMiddleware/war/deviceemulator.jsp
===================================================================
--- trunk/code/CSMiddleware/war/deviceemulator.jsp	                        (rev 0)
+++ trunk/code/CSMiddleware/war/deviceemulator.jsp	2006-09-26 12:02:23 UTC (rev 162)
@@ -0,0 +1,133 @@
+<%
+/* $Id $
+ * 
+ * Communications Suite.
+ * Copyright (C) 2006 Szymon Kuzniak, Rafal Malinowski, Marek Musielak, Pawel Walkiewicz,
+ * Agnieszka Wisniewska, Marcin Zduniak, Liliana Ziolek.
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the <a href="http://www.gnu.org/licenses/gpl.html">GNU General Public License</a>
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ */
+%><?xml version="1.0" encoding="UTF-8" ?>
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+	pageEncoding="UTF-8"
+	import="org.commsuite.model.*,java.util.*,org.commsuite.enums.*,org.commsuite.util.*,java.io.*,org.commsuite.messaging.*"%>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<title>Device emulator</title>
+</head>
+<body>
+<h3>Device emulator</h3>
+<%
+		if (null != request.getParameter("msgSent")) {
+		final boolean faxType = "FAX".equalsIgnoreCase(request
+		.getParameter("type"));
+
+		final Message message = new Message();
+		message.setCreationDate(new Date());
+		message
+		.setDescription("Message received from emulated device: "
+				+ request.getParameter("type"));
+		message.setDirection(Direction.INBOUND);
+
+		message.setEndDate(null);
+
+		message.setExpirationDate(null);
+
+		message
+		.setFormatType(faxType ? FormatType.FAX
+				: FormatType.SMS);
+		message.setLastProcessDate(new Date());
+		message.setLastProcessMessage(message.getDescription());
+
+		message.setPriority(Priority.LEVEL_4);
+
+		message.setReceiver(request.getParameter("receiver"));
+		message.setSapID(RandomGUID.getGUID());
+
+		message.setSendDate(new Date());
+		message.setSender(request.getParameter("sender"));
+		message.setStartDate(new Date());
+		message.setStatus(Status.RECEIVED_FROM_EXTERNAL_DEVICE);
+
+		final Contents contents = new Contents();
+		if (faxType) {
+			// FAX:
+			final String pathToSamplePDF = "/org/commsuite/tests/emulator/res/sample.pdf";
+			final InputStream is = getClass().getResourceAsStream(
+			pathToSamplePDF);
+			contents.setData(IOUtil.convertIS2Bytes(is));
+			contents.setMimeType(Contents.MIME_TYPE_PDF);
+		} else {
+			// SMS:
+			contents.setData(request.getParameter("smstxt").getBytes());
+			contents.setMimeType(Contents.MIME_TYPE_TEXT_PLAIN);
+		}
+		contents.setDescription(message.getDescription());
+
+		message.addContents(contents);
+
+		SpringMiddlewareContext.getMessageManager()
+		.saveMessage(message);
+
+		// processing external filters (plugins):
+		boolean stopProcessing = false;
+		final FilterManager filterManager = SpringMiddlewareContext
+		.getFilterManager();
+		if (!filterManager.processMessage(message)) {
+			stopProcessing = true;
+		}
+
+		if (!stopProcessing) {
+			SpringMiddlewareContext.getJMSManager().sendMessage(
+			SpringMiddlewareBeansConstants.M_SAP_IN_QUEUE_NAME,
+			message);
+
+		}
+%>
+<b>Message sent<br/></b>
+<%
+}
+%>
+<form method="post"><input type="hidden" name="msgSent" value="1" />
+<table border="0">
+	<tr>
+		<td>Sender:</td>
+		<td><input type="text" name="sender" value="48600123456" /></td>
+	</tr>
+	<tr>
+		<td>Receiver:</td>
+		<td><input type="text" name="receiver" value="48600654321" /></td>
+	</tr>
+	<tr>
+		<td>Fax/SMS:</td>
+		<td><input type="radio" name="type" value="FAX" checked /> Fax<br />
+		<input type="radio" name="type" value="SMS" /> SMS<br />
+		</td>
+	</tr>
+	<tr>
+		<td>SMS text:</td>
+		<td><input type="text" name="smstxt"
+			value="Hello world of SMS funs" /></td>
+	</tr>
+	<tr>
+		<td>FAX file:</td>
+		<td>For faxes appropriate sample PDF file will be used</td>
+	</tr>
+</table>
+<input type="submit" value="Send" /></form>
+</body>
+</html>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 |