[Comsuite-svn] SF.net SVN: comsuite: [171] trunk/code
Brought to you by:
zduniak
|
From: <zd...@us...> - 2006-10-04 00:49:46
|
Revision: 171
http://svn.sourceforge.net/comsuite/?rev=171&view=rev
Author: zduniak
Date: 2006-09-30 16:28:51 -0700 (Sat, 30 Sep 2006)
Log Message:
-----------
- Unicode-based SAP versions are working since now (_lot of debugging code, should be cleaned up shortly_)
- Sorting messages in view panel are working correctly since now
Modified Paths:
--------------
trunk/code/CSAdminPanel/JavaSource/org/commsuite/web/beans/LanguageSelectionBean.java
trunk/code/CSAdminPanel/JavaSource/org/commsuite/web/beans/messages/SearchMessageBean.java
trunk/code/CSMiddleware/src/org/commsuite/devices/Device.java
trunk/code/CSMiddleware/src/org/commsuite/model/Message.hbm.xml
trunk/code/CSMiddleware/src/org/commsuite/model/Message.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/ws/CommunicateWS.java
trunk/code/CSMiddleware/src/org/commsuite/ws/services/MessagesService.java
trunk/code/CSMiddleware/war/deviceemulator.jsp
Modified: trunk/code/CSAdminPanel/JavaSource/org/commsuite/web/beans/LanguageSelectionBean.java
===================================================================
--- trunk/code/CSAdminPanel/JavaSource/org/commsuite/web/beans/LanguageSelectionBean.java 2006-09-30 21:21:43 UTC (rev 170)
+++ trunk/code/CSAdminPanel/JavaSource/org/commsuite/web/beans/LanguageSelectionBean.java 2006-09-30 23:28:51 UTC (rev 171)
@@ -48,7 +48,7 @@
private static final Logger logger = Logger.getLogger(LanguageSelectionBean.class);
- private static final Locale DEFAULT_LOCALE = Locale.getDefault();
+ private static final Locale DEFAULT_LOCALE = Locale.ENGLISH;
private static final String LOCALE_FILENAME = "webapps/CommunicationsSuiteAdmin/WEB-INF/classes/org/commsuite/web/locale/Locale_";
@@ -100,9 +100,9 @@
return locale.toString();
}
- public void setLocale(String locale) {
+ public void setLocale(String localeStr) {
try {
- FacesContext.getCurrentInstance().getViewRoot().setLocale(new Locale(locale));
+ FacesContext.getCurrentInstance().getViewRoot().setLocale(new Locale(localeStr));
} catch (Throwable e) {
logger.fatal("Error during setting locale", e);
}
@@ -149,8 +149,8 @@
}
/**
- * this method is responsible for display message, on web page.
- * message is retrieved from default locale.
+ * This method is responsible for display message, on web page.
+ * Message is retrieved from default locale.
*
* @param messageCode message code to be displayed
* @param parentComponent component id on which messae will be displayed
@@ -163,8 +163,8 @@
}
/**
- * this method is responsible for display message, on web page.
- * message is retrieved from default locale.
+ * This method is responsible for display message, on web page.
+ * Message is retrieved from default locale.
*
* @param message1Code more general message code to be displayed
* @param message2Code more detailed message code to be displayed
Modified: trunk/code/CSAdminPanel/JavaSource/org/commsuite/web/beans/messages/SearchMessageBean.java
===================================================================
--- trunk/code/CSAdminPanel/JavaSource/org/commsuite/web/beans/messages/SearchMessageBean.java 2006-09-30 21:21:43 UTC (rev 170)
+++ trunk/code/CSAdminPanel/JavaSource/org/commsuite/web/beans/messages/SearchMessageBean.java 2006-09-30 23:28:51 UTC (rev 171)
@@ -65,18 +65,17 @@
*/
public List<WSMessage> getMessagesAvailable() {
try {
- final ICommunicateWS ws = (ICommunicateWS) SpringAdminPanelContext
+ final ICommunicateWS ws = SpringAdminPanelContext
.getCommunicateWS();
List<WSMessage> mes;
if (this.searching) {
- SearchMessageModel message = this.createMessageFromFields();
+ final SearchMessageModel message = this.createMessageFromFields();
mes = getMessages(message, ws);
} else {
mes = getMessages(null, ws);
}
- sortMessagesList(mes);
return mes;
} catch (WebServiceException wse) {
logger.fatal("Exception while receiving available messages", wse);
@@ -98,10 +97,9 @@
* TODO: JavaDoc
*/
public MessageExtended getMessageExtended() {
- final ICommunicateWS ws = (ICommunicateWS) SpringAdminPanelContext
- .getCommunicateWS();
+ final ICommunicateWS ws = SpringAdminPanelContext.getCommunicateWS();
try {
- WSMessage message = ws.getMessageById(this.messageId);
+ final WSMessage message = ws.getMessageById(this.messageId);
final MessageExtended messageExtended = new MessageExtended();
messageExtended.setMessage(message);
final List<SentContentExtended> sentContentsExtended = new FastTable<SentContentExtended>();
@@ -109,14 +107,19 @@
ws
.getSentContentsByMessage(String.valueOf(message
.getId())));
- for (final WSSentContent content : sentContents) {
+ for (final WSSentContent sentContent : sentContents) {
final SentContentExtended sentContentExtended = new SentContentExtended();
- sentContentExtended.setSentContent((WSSentContent) content);
+ sentContentExtended.setSentContent(sentContent);
+
+ logger.debug("sentContent.getId(): " + sentContent.getId());
+
sentContentExtended.setContent((List<WSContents>) ws
- .getContentsBySentContent(String.valueOf(content
- .getId())));
+ .getContentsBySentContent(sentContent.getId()
+ .toString()));
sentContentsExtended.add(sentContentExtended);
}
+ logger.debug("sentContentsExtended.size(): "
+ + sentContentsExtended.size());
messageExtended.setSentContents(sentContentsExtended);
return messageExtended;
@@ -140,7 +143,7 @@
* TODO: JavaDoc
*/
public List<SelectItem> getDirectionList() {
- List<SelectItem> choices = new FastTable<SelectItem>();
+ final List<SelectItem> choices = new FastTable<SelectItem>();
SelectItem item = new SelectItem();
item.setLabel(MESSAGE_ALL);
// item.setValue(null);
@@ -218,28 +221,7 @@
/**
* TODO: JavaDoc
- *
- * @author Marcin Zduniak
*/
- private void sortMessagesList(final List<WSMessage> list) {
- Collections.sort(list, new Comparator<WSMessage>() {
- public int compare(WSMessage m1, WSMessage m2) {
- final int comparisonByLastProcessDate = m1.getLastProcessDate()
- .compareTo(m2.getLastProcessDate());
- if (0 == comparisonByLastProcessDate) {
- final int comparisonBySendDate = m1.getSendDate()
- .compareTo(m2.getSendDate());
- return comparisonBySendDate;
- } else {
- return comparisonByLastProcessDate;
- }
- }
- });
- }
-
- /**
- * TODO: JavaDoc
- */
private List<WSMessage> getMessages(SearchMessageModel model,
ICommunicateWS ws) throws WebServiceException {
this.totalMessages = ws.getMessagesSize(model);
Modified: trunk/code/CSMiddleware/src/org/commsuite/devices/Device.java
===================================================================
--- trunk/code/CSMiddleware/src/org/commsuite/devices/Device.java 2006-09-30 21:21:43 UTC (rev 170)
+++ trunk/code/CSMiddleware/src/org/commsuite/devices/Device.java 2006-09-30 23:28:51 UTC (rev 171)
@@ -212,6 +212,7 @@
.getSentContentByInternalId(internalId);
if (null != prevSentContents) {
+ logger.debug("null != prevSentContents");
prevSentContents.setInternalId(RandomGUID.getGUID());
sentContentManager.saveSentContent(prevSentContents);
}
Modified: trunk/code/CSMiddleware/src/org/commsuite/model/Message.hbm.xml
===================================================================
--- trunk/code/CSMiddleware/src/org/commsuite/model/Message.hbm.xml 2006-09-30 21:21:43 UTC (rev 170)
+++ trunk/code/CSMiddleware/src/org/commsuite/model/Message.hbm.xml 2006-09-30 23:28:51 UTC (rev 171)
@@ -7,7 +7,7 @@
<id name="id">
<generator class="native">
<param name="sequence">CS_MESSAGES_SEQ</param>
- <param name="parameters">INCREMENT BY 1 START WITH 100</param>
+ <param name="parameters">INCREMENT BY 1 START</param>
</generator>
</id>
<property name="creationDate" not-null="true" type="timestamp" column="CREATION_DATE"/>
Modified: trunk/code/CSMiddleware/src/org/commsuite/model/Message.java
===================================================================
--- trunk/code/CSMiddleware/src/org/commsuite/model/Message.java 2006-09-30 21:21:43 UTC (rev 170)
+++ trunk/code/CSMiddleware/src/org/commsuite/model/Message.java 2006-09-30 23:28:51 UTC (rev 171)
@@ -20,10 +20,11 @@
*/
package org.commsuite.model;
-import java.util.ArrayList;
import java.util.Date;
import java.util.List;
+import javolution.util.FastTable;
+
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;
@@ -55,14 +56,29 @@
/*
* Fields of the message:
*/
+ /**
+ * TODO: JavaDoc
+ */
private SAPInstanceDef sapInstanceDefOwner;
+ /**
+ * TODO: JavaDoc
+ */
private User userOwner;
+ /**
+ * TODO: JavaDoc
+ */
private Direction direction;
+ /**
+ * TODO: JavaDoc
+ */
private FormatType formatType;
+ /**
+ * TODO: JavaDoc
+ */
private Status status;
/**
@@ -83,6 +99,9 @@
*/
private String receiver;
+ /**
+ * TODO: JavaDoc
+ */
private String sender;
/**
@@ -112,8 +131,14 @@
*/
private Date expirationDate;
+ /**
+ * TODO: JavaDoc
+ */
private Date startDate;
+ /**
+ * TODO: JavaDoc
+ */
private Date endDate;
/**
@@ -133,11 +158,20 @@
*/
private Priority priority = Priority.LEVEL_4;
- private List<SentContent> sentContents = new ArrayList<SentContent>();
+ /**
+ * TODO: JavaDoc
+ */
+ private List<SentContent> sentContents = new FastTable<SentContent>();
+ /**
+ * TODO: JavaDoc
+ */
public Message() {
}
+ /**
+ * TODO: JavaDoc
+ */
public Message(WSMessage wsMessage) {
logger.debug("MESSAGE PRIORITY: " + wsMessage.getPriority());
this.setId(wsMessage.getId());
@@ -158,6 +192,10 @@
this.setStatus(wsMessage.getStatus());
}
+ /**
+ * TODO: JavaDoc
+ */
+ @Override
public Message clone() {
final Message msg = new Message();
msg.setId(this.id);
@@ -179,14 +217,16 @@
msg.setStatus(this.status);
msg.setUserOwner(this.userOwner);
- final List<SentContent> scList = new ArrayList<SentContent>();
- for (SentContent scContent : sentContents) {
- SentContent sc = new SentContent();
- sc.setContent(scContent.getContent());
- sc.setInternalId(RandomGUID.getGUID());
- sc.setState(scContent.getState());
- sc.setMessage(this);
- scList.add(sc);
+ final List<SentContent> scList = new FastTable<SentContent>();
+ for (final SentContent sc : sentContents) {
+ logger.debug("sc.getContent().getData(): " + sc.getContent().getData());
+ final SentContent clonedSc = new SentContent();
+ clonedSc.setContent(sc.getContent());
+ clonedSc.setInternalId(RandomGUID.getGUID());
+ clonedSc.setState(sc.getState());
+ clonedSc.setMessage(this);
+ scList.add(clonedSc);
+ logger.debug("clonedSc.getContent().getData(): " + clonedSc.getContent().getData());
}
msg.setSentContents(scList);
@@ -196,7 +236,8 @@
/**
* @hibernate.id generator-class="native"
* @hibernate.generator-param name="sequence" value="CS_MESSAGES_SEQ"
- * @hibernate.generator-param name="parameters" value="INCREMENT BY 1 START WITH 100"
+ * @hibernate.generator-param name="parameters" value="INCREMENT BY 1 START
+ * WITH 100"
*/
public Long getId() {
return super.id;
@@ -212,6 +253,9 @@
return creationDate;
}
+ /**
+ * TODO: JavaDoc
+ */
public void setCreationDate(Date createDate) {
this.creationDate = createDate;
}
@@ -232,6 +276,9 @@
}
}
+ /**
+ * TODO: JavaDoc
+ */
public void setDescription(String description) {
this.description = description;
}
@@ -247,6 +294,9 @@
return direction;
}
+ /**
+ * TODO: JavaDoc
+ */
public void setDirection(Direction direction) {
this.direction = direction;
}
@@ -264,6 +314,9 @@
return endDate;
}
+ /**
+ * TODO: JavaDoc
+ */
public void setEndDate(Date endDate) {
this.endDate = endDate;
}
@@ -282,6 +335,9 @@
return expirationDate;
}
+ /**
+ * TODO: JavaDoc
+ */
public void setExpirationDate(Date expiratonDate) {
this.expirationDate = expiratonDate;
}
@@ -296,6 +352,9 @@
return formatType;
}
+ /**
+ * TODO: JavaDoc
+ */
public void setFormatType(FormatType formatType) {
this.formatType = formatType;
}
@@ -310,6 +369,9 @@
return lastProcessDate;
}
+ /**
+ * TODO: JavaDoc
+ */
public void setLastProcessDate(Date lastProcessDate) {
this.lastProcessDate = lastProcessDate;
}
@@ -331,6 +393,9 @@
}
}
+ /**
+ * TODO: JavaDoc
+ */
public void setLastProcessMessage(String lastProcessMessage) {
this.lastProcessMessage = lastProcessMessage;
}
@@ -350,6 +415,9 @@
return priority;
}
+ /**
+ * TODO: JavaDoc
+ */
public void setPriority(Priority priority) {
this.priority = priority;
}
@@ -363,6 +431,9 @@
return receiver;
}
+ /**
+ * TODO: JavaDoc
+ */
public void setReceiver(String receiver) {
this.receiver = receiver;
}
@@ -385,6 +456,9 @@
return sapID;
}
+ /**
+ * TODO: JavaDoc
+ */
public void setSapID(String sapID) {
this.sapID = sapID;
}
@@ -398,6 +472,9 @@
return sendDate;
}
+ /**
+ * TODO: JavaDoc
+ */
public void setSendDate(Date sendDate) {
this.sendDate = sendDate;
}
@@ -411,6 +488,9 @@
return sender;
}
+ /**
+ * TODO: JavaDoc
+ */
public void setSender(String sender) {
this.sender = sender;
}
@@ -428,6 +508,9 @@
return startDate;
}
+ /**
+ * TODO: JavaDoc
+ */
public void setStartDate(Date startDate) {
this.startDate = startDate;
}
@@ -443,6 +526,9 @@
return status;
}
+ /**
+ * TODO: JavaDoc
+ */
public void setStatus(Status status) {
this.status = status;
}
@@ -458,6 +544,9 @@
return sapInstanceDefOwner;
}
+ /**
+ * TODO: JavaDoc
+ */
public void setSAPInstanceDefOwner(SAPInstanceDef instanceDefOwner) {
this.sapInstanceDefOwner = instanceDefOwner;
}
@@ -472,6 +561,9 @@
return this.userOwner;
}
+ /**
+ * TODO: JavaDoc
+ */
public void setUserOwner(User userOwner) {
this.userOwner = userOwner;
}
@@ -487,12 +579,19 @@
return sentContents;
}
+ /**
+ * TODO: JavaDoc
+ */
public void setSentContents(List<SentContent> sentContents) {
- for (SentContent content : sentContents)
- content.setMessage(this);
+ for (SentContent sentContent : sentContents) {
+ sentContent.setMessage(this);
+ }
this.sentContents = sentContents;
}
+ /**
+ * TODO: JavaDoc
+ */
private SentContent createSentContent(Contents c) {
final SentContent sc = new SentContent();
sc.setInternalId(RandomGUID.getGUID());
@@ -511,11 +610,17 @@
this.sentContents.add(sc);
}
+ /**
+ * TODO: JavaDoc
+ */
public void addContentsAsFirst(Contents c) {
final SentContent sc = createSentContent(c);
this.sentContents.add(0, sc);
}
+ /**
+ * TODO: JavaDoc
+ */
public void addContents(Contents c, String internalID) {
final SentContent sc = new SentContent();
@@ -527,14 +632,20 @@
this.sentContents.add(sc);
}
+ /**
+ * TODO: JavaDoc
+ */
public List<Contents> listContents() {
- final List<Contents> contentsSet = new ArrayList<Contents>();
+ final List<Contents> contentsSet = new FastTable<Contents>();
for (SentContent sc : sentContents) {
contentsSet.add(sc.getContent());
}
return contentsSet;
}
+ /**
+ * TODO: JavaDoc
+ */
@Override
public String toString() {
return new ToStringBuilder(this).append("id", this.id).append(
@@ -552,6 +663,9 @@
.toString();
}
+ /**
+ * TODO: JavaDoc
+ */
@Override
public boolean equals(Object object) {
if (null == object) {
@@ -575,6 +689,9 @@
.append(this.status, rhs.status).isEquals();
}
+ /**
+ * TODO: JavaDoc
+ */
@Override
public int hashCode() {
return new HashCodeBuilder(7, 31).append(this.id).append(
Modified: trunk/code/CSMiddleware/src/org/commsuite/sap/JCoFunctionTranslator.java
===================================================================
--- trunk/code/CSMiddleware/src/org/commsuite/sap/JCoFunctionTranslator.java 2006-09-30 21:21:43 UTC (rev 170)
+++ trunk/code/CSMiddleware/src/org/commsuite/sap/JCoFunctionTranslator.java 2006-09-30 23:28:51 UTC (rev 171)
@@ -24,6 +24,7 @@
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
+import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
@@ -479,8 +480,6 @@
msg.setStatus(Status.RECEIVED_FROM_SAP);
msg.setDirection(Direction.OUTBOUND);
- final List<Message> result = new FastTable<Message>();
-
if (null == function.getImportParameterList()) {
logger.error("ImportParameterList is empty.");
return null;
@@ -515,11 +514,9 @@
if ("FAX".equals(format)) {
msg.setFormatType(FormatType.FAX);
- }
- if ("INT".equals(format)) {
+ } else if ("INT".equals(format)) {
msg.setFormatType(FormatType.EMAIL);
- }
- if ("PAG".equals(format)) {
+ } else if ("PAG".equals(format)) {
msg.setFormatType(FormatType.SMS);
}
@@ -608,7 +605,7 @@
documentDataStructure));
// msg.setDocumentSize(documentDataStructure.getInt("DOC_SIZE"));
// [PW] REFACTOR duplicated code here.. extract.. [SK]
- msg.setSendDate(null);
+ msg.setStartDate(null);
final Date startDate = (Date) getOptionalVal("STA_DATE", TYPE_DATE,
receiveInfoStructure);
final Date startTime = (Date) getOptionalVal("STA_TIME", TYPE_TIME,
@@ -667,8 +664,12 @@
"DOC_SIZE").trim());
final int bodyNum = packingList.getInt("BODY_NUM");
+ logger.debug("BEFORE msg.getSentContents().size(): " + msg.getSentContents().size());
+ logger.debug("BEFORE content.getData(): " + content.getData());
+
final String transfBin = packingList.getString("TRANSF_BIN");
if ("X".equals(transfBin)) {
+ logger.debug("TransfBin message type");
final ByteArrayOutputStream baos = new ByteArrayOutputStream();
for (int j = 0; j < bodyNum; j++) {
contentsBinList.setRow(bodyStart + j);
@@ -680,14 +681,21 @@
}
baos.write(data, 0, lineSize);
}
- content.setData(baos.toByteArray());
+
+ final byte[] data = baos.toByteArray();
+ logger.debug("data.length: " + data.length);
+ logger.debug("data: " + Arrays.toString(data));
+
+ content.setData(data);
msg.addContents(content);
} else {
+ logger.debug("Text message type");
final ByteArrayOutputStream baos = new ByteArrayOutputStream();
for (int j = 0; j < bodyNum; j++) {
contentsTxtList.setRow(bodyStart + j);
int lineSize = ((j == bodyNum - 1) ? docSize % 255
: 255);
+
final byte[] data = contentsTxtList
.getByteArray("LINE");
if (data.length < lineSize) {
@@ -697,12 +705,20 @@
}
final byte[] data = baos.toByteArray();
+ logger.debug("data.length: " + data.length);
+ logger.debug("data: " + Arrays.toString(data));
final byte[] convertedData = convertBytes(data,
partnerCharset, "UTF-8");
-
+ logger.debug("data.convertedData: " + Arrays.toString(convertedData));
+ logger.debug("data.convertedData.txt: " + new String(data));
+ logger.debug("data.txt: " + new String(convertedData));
+
content.setData(convertedData);
msg.addContents(content);
}
+
+ logger.debug("AFTER msg.getSentContents().size(): " + msg.getSentContents().size());
+ logger.debug("AFTER content.getData(): " + content.getData());
final String documentType = (String) getOptionalVal("DOC_TYPE",
TYPE_STRING, packingList);
@@ -766,6 +782,7 @@
content.setMimeType(Contents.MIME_TYPE_XLS);
} else {
logger.fatal("Unknown format type:" + documentType);
+ // TODO: own exception implementation
throw new RuntimeException("Unknown format type");
}
}
@@ -776,39 +793,27 @@
}
/**
- * CONTENTS_BIN table.
- */
- // final JCO.Table contentsList =
- // function.getTableParameterList().getTable("CONTENTS_BIN");
- // for (int i = 0; i < contentsList.getNumRows(); i++) {
- // contentsList.setRow(i);
- // msg.setContentsList(contentsList.getByte("LINE"));
- // }
- /**
- * CONTENTS_TXT table.
- */
- /*
- * JCO.Table contentsListTxt = null; contentsListTxt =
- * function.getTableParameterList().getTable("CONTENTS_TXT"); ArrayList<String>
- * conListTxt = new ArrayList<String>(); for (int i = 0; i <
- * contentsListTxt.getNumRows(); i++) { contentsListTxt.setRow(i);
- * conListTxt.add(i, contentsListTxt.getString("LINE")); }
- */
-
- /**
* RECEIVERS table
*/
final JCO.Table receivers = function.getTableParameterList().getTable(
"RECEIVERS");
+ logger.debug("BEFORE LOOP");
+ logger.debug("receivers: " + receivers);
+ logger.debug("receivers.getNumRows(): " + receivers.getNumRows());
+ final List<Message> result = new FastTable<Message>();
for (int i = 0; i < receivers.getNumRows(); i++) {
- final Message tempMsg = msg.clone();
+ logger.debug("IN LOOP: " + i);
+ logger.debug("LOOP.msg: " + msg);
+ final Message clonedMsg = msg.clone();
+ logger.debug("LOOP.tempMsg: " + clonedMsg);
receivers.setRow(i);
final String rec = receivers.getString("RECEIVER");
+ logger.debug("LOOP.tempMsg: " + rec);
if (-1 != rec.indexOf(":")) {
final String chn = rec.substring(rec.indexOf(":") + 1);
- tempMsg.setReceiver(chn);
+ clonedMsg.setReceiver(chn);
} else {
- tempMsg.setReceiver(rec);
+ clonedMsg.setReceiver(rec);
}
// setting synchronous status notification:
@@ -831,7 +836,7 @@
// tempMsg.setReceiveDate(receivers.getDate("REC_DATE"));
// tempMsg.setTransmissionDate(receivers.getString("PROCDATE"));
// tempMsg.setTransmissionTime(receivers.getString("PROCTIME"));
- result.add(tempMsg);
+ result.add(clonedMsg);
}
return result.toArray(new Message[result.size()]);
@@ -847,7 +852,10 @@
// end of hack
try {
- String tmp = new String(data, fromCharset);
+ final String tmp = new String(data, fromCharset);
+ if (data.length > 0 && tmp.length() == 0) {
+ return data;
+ }
return tmp.getBytes(toCharset);
} catch (UnsupportedEncodingException e) {
logger.warn("Charsets: '" + fromCharset + "', '" + toCharset
Modified: trunk/code/CSMiddleware/src/org/commsuite/sap/SAPComm.java
===================================================================
--- trunk/code/CSMiddleware/src/org/commsuite/sap/SAPComm.java 2006-09-30 21:21:43 UTC (rev 170)
+++ trunk/code/CSMiddleware/src/org/commsuite/sap/SAPComm.java 2006-09-30 23:28:51 UTC (rev 171)
@@ -20,6 +20,8 @@
*/
package org.commsuite.sap;
+import java.io.FileOutputStream;
+import java.io.ObjectOutputStream;
import java.lang.Thread.UncaughtExceptionHandler;
import java.util.Date;
import java.util.Properties;
@@ -116,7 +118,16 @@
JCO.Client client = null;
try {
client = SAPComm.this.getJCOClient();
- PARTNER_CHARSET = client.getAttributes().getPartnerCharset();
+ final JCO.Attributes attributes = client.getAttributes();
+ PARTNER_CHARSET = attributes.getPartnerCharset();
+ if (logger.isInfoEnabled()) {
+ final boolean isBackendUnicode = attributes
+ .getPartnerCodepage().equals("4102")
+ || attributes.getPartnerCodepage().equals("4103");
+ logger
+ .info("SAP JCo isBackendUnicode: "
+ + isBackendUnicode);
+ }
} finally {
if (null != client) {
releaseJCOClient(client);
@@ -127,6 +138,20 @@
@Override
protected void handleRequest(final JCO.Function function) {
+
+ // SERIALIZATION:
+ // try {
+ // FileOutputStream fos;
+ // fos = new FileOutputStream("c:\\temp\\" +
+ // System.currentTimeMillis());
+ // ObjectOutputStream oos = new ObjectOutputStream(fos);
+ // oos.writeObject(function);
+ // oos.close();
+ // } catch (Exception e) {
+ // logger.error("", e);
+ // }
+ // END OF SERIALIZATION
+
handlingRequest = true;
// TODO: rozwazyc czy nie lepiej obslugiwac zgloszenie od klientow w
// osobnych watkach.
@@ -143,6 +168,7 @@
// liczba zdalnych
// uzytkownikow)
handleJCORequest(function, PARTNER_CHARSET);
+
handlingRequest = false;
}
@@ -221,6 +247,11 @@
final Message[] messages = JCoFunctionTranslator
.getMessagesFromJCOFunction(function, charset);
+ logger.debug("1");
+ logger.debug("messages: " + messages);
+ logger.debug("messages.length: "
+ + (null != messages ? "" + messages.length : "NIC"));
+
if (null != messages && messages.length > 0
&& 0 == messages[0].getSentContents().size()) {
final String errMsg = "Message without any content is not supported";
@@ -232,16 +263,33 @@
msgManager = SpringMiddlewareContext.getMessageManager();
}
+ logger.debug("msgManager: " + msgManager);
+
if (null == jmsManager) {
jmsManager = SpringMiddlewareContext.getJMSManager();
}
+ logger.debug("jmsManager: " + jmsManager);
+
final Date currentDate = new Date();
+ logger.debug("2");
for (Message msg : messages) {
+ logger.debug("3: " + msg);
msg.setSAPInstanceDefOwner(instanceDef);
if (null == msg.getSendDate()) {
msg.setSendDate(currentDate);
}
+ logger.debug("4");
+ logger.debug("msg.getSentContents().size(): " + msg.getSentContents().size());
+
+ if (msg.getSentContents().get(0).getContent().MIME_TYPE_TEXT_PLAIN
+ .equals(msg.getSentContents().get(0).getContent()
+ .getMimeType())) {
+ logger.debug("Content1: "
+ + new String(msg.getSentContents().get(0)
+ .getContent().getData()));
+ }
+
msg = msgManager.saveMessage(msg);
jmsManager
.sendMessage(
@@ -349,6 +397,7 @@
private void initRepository() {
repository = JCO.createRepository(getRepositoryName(), getPoolName());
+ logger.debug("Repository: " + repository);
}
private void initSAPConnections() {
@@ -389,6 +438,9 @@
}
props.put(JCO_CLIENT_PREFIX + "trace", TRACE_ENABLED ? "1" : "0");
+ // props.put(JCO_CLIENT_PREFIX + "abap_debug", TRACE_ENABLED ? "1" :
+ // "0");
+
props.put(JCO_CLIENT_PREFIX + "lcheck", "1");
// server properties:
@@ -398,6 +450,10 @@
props.put(JCO_SERVER_PREFIX + "unicode", instanceDef.isUnicode() ? "1"
: "0");
+ // TODO: is this correct ?
+ props.put(JCO_CLIENT_PREFIX + "unicode", instanceDef.isUnicode() ? "1"
+ : "0");
+
return props;
}
@@ -573,6 +629,12 @@
// Send a ping to the server
client.ping();
+ // TODO: testing:
+ // final JCO.Function f = repository.getFunctionTemplate(
+ // "SX_OBJECT_RECEIVE").getFunction();
+ // logger.debug("FUNCTION: " + f);
+ // TODO: end of testing
+
// final JCO.Attributes attr = client.getAttributes();
// final String partnerRelease = attr.getPartnerRelease();
// logger.debug("Partner release: " + partnerRelease);
Modified: trunk/code/CSMiddleware/src/org/commsuite/ws/CommunicateWS.java
===================================================================
--- trunk/code/CSMiddleware/src/org/commsuite/ws/CommunicateWS.java 2006-09-30 21:21:43 UTC (rev 170)
+++ trunk/code/CSMiddleware/src/org/commsuite/ws/CommunicateWS.java 2006-09-30 23:28:51 UTC (rev 171)
@@ -71,7 +71,7 @@
public Collection<WSMessage> getMessagesSubset(int begin, int end) throws WebServiceException {
try {
- MessagesService service = MessagesService.getMessagesService();
+ final MessagesService service = MessagesService.getMessagesService();
return service.getMessagesSubset(begin, end);
} catch(Throwable t) {
logger.fatal("error in getMessagesSubset method", t);
Modified: trunk/code/CSMiddleware/src/org/commsuite/ws/services/MessagesService.java
===================================================================
--- trunk/code/CSMiddleware/src/org/commsuite/ws/services/MessagesService.java 2006-09-30 21:21:43 UTC (rev 170)
+++ trunk/code/CSMiddleware/src/org/commsuite/ws/services/MessagesService.java 2006-09-30 23:28:51 UTC (rev 171)
@@ -21,6 +21,8 @@
package org.commsuite.ws.services;
import java.util.Collection;
+import java.util.Collections;
+import java.util.Comparator;
import java.util.List;
import javolution.util.FastTable;
@@ -60,11 +62,17 @@
private static MessagesService instance;
+ /**
+ * TODO: JavaDoc
+ */
public MessagesService() {
messageManager = SpringMiddlewareContext.getMessageManager();
jmsManager = SpringMiddlewareContext.getJMSManager();
}
+ /**
+ * TODO: JavaDoc
+ */
public static MessagesService getMessagesService() {
if (null == instance) {
instance = new MessagesService();
@@ -72,6 +80,9 @@
return instance;
}
+ /**
+ * TODO: JavaDoc
+ */
public int getMessagesSize(SearchMessageModel wsMessage)
throws WebServiceException {
final MessageManager msgManager = SpringMiddlewareContext
@@ -83,28 +94,52 @@
}
}
+ /**
+ * TODO: JavaDoc
+ */
public Collection<WSMessage> getMessagesSubset(int begin, int end)
throws WebServiceException, IllegalArgumentException,
IndexOutOfBoundsException {
+ if (begin > end)
+ throw new IllegalArgumentException(
+ "Begin index should be lower than end");
+
final MessageManager msgManager = SpringMiddlewareContext
.getMessageManager();
- final List<Message> mes = (List<Message>) msgManager.getMessages();
- final Collection<WSMessage> result = new FastTable<WSMessage>();
+ final List<Message> mes = msgManager.getMessages();
- if (begin > end)
- throw new IllegalArgumentException(
- "Begin index should be lower than end");
if (begin < 0 || end >= mes.size())
throw new IndexOutOfBoundsException(
"Index is out of bounds: begin:[" + begin + "]end:[" + end
+ "]size:[" + mes.size() + "]");
+ sortMessagesList(mes);
+ final Collection<WSMessage> result = new FastTable<WSMessage>();
for (int i = begin; i <= end; i++) {
result.add(mes.get(i));
}
return result;
}
+
+ private void sortMessagesList(final List<Message> list) {
+ Collections.sort(list, new Comparator<WSMessage>() {
+ public int compare(WSMessage m1, WSMessage m2) {
+ final int comparisonByLastProcessDate = m2.getLastProcessDate()
+ .compareTo(m1.getLastProcessDate());
+ if (0 == comparisonByLastProcessDate) {
+ final int comparisonBySendDate = m1.getSendDate()
+ .compareTo(m1.getSendDate());
+ return comparisonBySendDate;
+ } else {
+ return comparisonByLastProcessDate;
+ }
+ }
+ });
+}
+ /**
+ * TODO: JavaDoc
+ */
public Collection<WSMessage> getAllMessages() throws WebServiceException {
final MessageManager msgManager = SpringMiddlewareContext
.getMessageManager();
@@ -121,23 +156,26 @@
return result;
}
+ /**
+ * TODO: JavaDoc
+ */
public Collection<WSMessage> getSelectedMessagesSubset(
SearchMessageModel wsMessage, int begin, int end)
throws WebServiceException, IllegalArgumentException,
IndexOutOfBoundsException {
+ if (begin > end)
+ throw new IllegalArgumentException(
+ "Begin index should be lower than end");
final MessageManager msgManager = SpringMiddlewareContext
.getMessageManager();
- List<Message> messages = (List<Message>) msgManager
- .getSelectedMessages(wsMessage);
+ List<Message> messages = msgManager.getSelectedMessages(wsMessage);
- if (begin > end)
- throw new IllegalArgumentException(
- "Begin index should be lower than end");
if (begin < 0 || end >= messages.size())
throw new IndexOutOfBoundsException(
"Index is out of bounds: begin:[" + begin + "]end:[" + end
+ "]size:[" + messages.size() + "]");
+ sortMessagesList(messages);
Collection<WSMessage> result = new FastTable<WSMessage>();
for (int i = begin; i <= end; i++) {
result.add(messages.get(i));
@@ -145,6 +183,9 @@
return result;
}
+ /**
+ * TODO: JavaDoc
+ */
public Collection<WSMessage> getSelectedMessages(
SearchMessageModel wsMessage) throws WebServiceException {
final MessageManager msgManager = SpringMiddlewareContext
@@ -158,12 +199,18 @@
return result;
}
+ /**
+ * TODO: JavaDoc
+ */
public WSContents getContentsById(String id) throws WebServiceException {
- final ContentsManager contentsManager = SpringMiddlewareContext
+ final ContentsManager contentsManager = SpringMiddlewareContext
.getContentsManager();
return contentsManager.getContents(id);
}
+ /**
+ * TODO: JavaDoc
+ */
public Collection<WSSentContent> getSentContentsByMessage(String id)
throws WebServiceException {
final SentContentManager sentContentManager = SpringMiddlewareContext
@@ -178,9 +225,7 @@
}
/**
- * @param id
- * @return
- * @throws WebServiceException
+ * TODO: JavaDoc
*/
public Collection<WSContents> getContentsBySentContent(String id)
throws WebServiceException {
@@ -192,15 +237,22 @@
for (final Contents content : contents) {
result.add(content);
}
+ logger.debug("getContentsBySentContent.size: " + result.size());
return result;
}
+ /**
+ * TODO: JavaDoc
+ */
public WSMessage getMessageById(String id) throws WebServiceException {
final MessageManager msgManager = SpringMiddlewareContext
.getMessageManager();
return msgManager.getMessage(id);
}
+ /**
+ * TODO: JavaDoc
+ */
public void resubmitMessageWithId(String messageId)
throws WebServiceException {
final Message msg = messageManager.getMessage(messageId);
Modified: trunk/code/CSMiddleware/war/deviceemulator.jsp
===================================================================
--- trunk/code/CSMiddleware/war/deviceemulator.jsp 2006-09-30 21:21:43 UTC (rev 170)
+++ trunk/code/CSMiddleware/war/deviceemulator.jsp 2006-09-30 23:28:51 UTC (rev 171)
@@ -1,25 +1,27 @@
+
<%
-/* $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" ?>
+ /* $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.*"%>
@@ -95,13 +97,20 @@
SpringMiddlewareContext.getJMSManager().sendMessage(
SpringMiddlewareBeansConstants.M_SAP_IN_QUEUE_NAME,
message);
-
- }
%>
-<b>Message sent<br/></b>
+<b>Message sent<br />
+<br />
+</b>
<%
-}
+} else {
%>
+<b>Sending message stopped<br />
+<br />
+</b>
+<%
+ }
+ }
+%>
<form method="post"><input type="hidden" name="msgSent" value="1" />
<table border="0">
<tr>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|