Thread: [Comsuite-svn] SF.net SVN: comsuite: [159] trunk/code/CSMiddleware/src/org/commsuite/sap
Brought to you by:
zduniak
|
From: <zd...@us...> - 2006-09-23 21:59:51
|
Revision: 159
http://svn.sourceforge.net/comsuite/?rev=159&view=rev
Author: zduniak
Date: 2006-09-23 14:59:40 -0700 (Sat, 23 Sep 2006)
Log Message:
-----------
Issue 0001350 resolved
Modified Paths:
--------------
trunk/code/CSMiddleware/src/org/commsuite/sap/JCoFunctionTranslator.java
trunk/code/CSMiddleware/src/org/commsuite/sap/SAPComm.java
Modified: trunk/code/CSMiddleware/src/org/commsuite/sap/JCoFunctionTranslator.java
===================================================================
--- trunk/code/CSMiddleware/src/org/commsuite/sap/JCoFunctionTranslator.java 2006-09-23 21:33:24 UTC (rev 158)
+++ trunk/code/CSMiddleware/src/org/commsuite/sap/JCoFunctionTranslator.java 2006-09-23 21:59:40 UTC (rev 159)
@@ -446,9 +446,10 @@
/**
* Converts JCO.Function objects into an array of
- * {@link org.commsuite.model.Message} objects. TODO: change println
- * statements to logger statements
+ * {@link org.commsuite.model.Message} objects.
*
+ * TODO: change println statements to logger statements
+ *
* @param function
* the {@link JCO.Function} object to convert
* @return the converted {@link org.commsuite.model.Message}
@@ -511,14 +512,14 @@
msg.setSapID(receiveInfoStructure.getString("COMM_ID"));
msg.setSender(receiveInfoStructure.getString("SENDER"));
final String format = receiveInfoStructure.getString("ADR_TYPE");
- if (format.equals("FAX")) {
+ if ("FAX".equals(format)) {
msg.setFormatType(FormatType.FAX);
}
- if (format.equals("INT")) {
+ if ("INT".equals(format)) {
msg.setFormatType(FormatType.EMAIL);
}
- if (format.equals("PAG")) {
+ if ("PAG".equals(format)) {
msg.setFormatType(FormatType.SMS);
}
@@ -564,13 +565,10 @@
* DOCUMENT_DATA structure
*/
// msg.setObjectName(documentDataStructure.getString("OBJ_NAME"));
- msg.setDescription(documentDataStructure.getString("OBJ_DESCR")/*
- * ,
- * partnerCharset
- */);
+ msg.setDescription(documentDataStructure.getString("OBJ_DESCR"));
msg.setPriority(Priority.LEVEL_4); // default
- Integer priority = new Integer(4);
+ Integer priority = 4;
try {
priority = (Integer) getOptionalVal("PRIORITY", TYPE_INT,
documentDataStructure);
@@ -583,25 +581,25 @@
}
// REFACTOR same thing with enum can be done here..[SK]
if (null != priority) {
- if (priority.equals(new Integer(0))) {
+ if (priority.equals(0)) {
msg.setPriority(Priority.LEVEL_0);
- } else if (priority.equals(new Integer(1))) {
+ } else if (priority.equals(1)) {
msg.setPriority(Priority.LEVEL_1);
- } else if (priority.equals(new Integer(2))) {
+ } else if (priority.equals(2)) {
msg.setPriority(Priority.LEVEL_2);
- } else if (priority.equals(new Integer(3))) {
+ } else if (priority.equals(3)) {
msg.setPriority(Priority.LEVEL_3);
- } else if (priority.equals(new Integer(4))) {
+ } else if (priority.equals(4)) {
msg.setPriority(Priority.LEVEL_4);
- } else if (priority.equals(new Integer(5))) {
+ } else if (priority.equals(5)) {
msg.setPriority(Priority.LEVEL_5);
- } else if (priority.equals(new Integer(6))) {
+ } else if (priority.equals(6)) {
msg.setPriority(Priority.LEVEL_6);
- } else if (priority.equals(new Integer(7))) {
+ } else if (priority.equals(7)) {
msg.setPriority(Priority.LEVEL_7);
- } else if (priority.equals(new Integer(8))) {
+ } else if (priority.equals(8)) {
msg.setPriority(Priority.LEVEL_8);
- } else if (priority.equals(new Integer(9))) {
+ } else if (priority.equals(9)) {
msg.setPriority(Priority.LEVEL_9);
}
}
Modified: trunk/code/CSMiddleware/src/org/commsuite/sap/SAPComm.java
===================================================================
--- trunk/code/CSMiddleware/src/org/commsuite/sap/SAPComm.java 2006-09-23 21:33:24 UTC (rev 158)
+++ trunk/code/CSMiddleware/src/org/commsuite/sap/SAPComm.java 2006-09-23 21:59:40 UTC (rev 159)
@@ -41,8 +41,8 @@
import com.sap.mw.jco.JCO.Function;
/**
- * Module responsible for initiationg server-side and client-side communication with the external
- * SAP R/3 system.
+ * Module responsible for initiationg server-side and client-side communication
+ * with the external SAP R/3 system.
*
* TODO: [MZ] Complete comments. REVIEW: [SK] ENCAPSULATION !!!
*
@@ -53,552 +53,595 @@
* @author Agnieszka Wiśniewska
*/
public class SAPComm implements ISAPComm {
-
+
private MessageManager msgManager;
-
+
private JMSMessageManager jmsManager;
- private long SX_OBJECT_RECEIVE_functionsNumber;
+ private long SX_OBJECT_RECEIVE_functionsNumber;
- private long SX_OBJECT_STATUS_RECEIVE_functionsNumber;
+ private long SX_OBJECT_STATUS_RECEIVE_functionsNumber;
- private long unrecognizedFunctionsNumber;
+ private long unrecognizedFunctionsNumber;
- private long errorsWhileHandlingFunctions;
+ private long errorsWhileHandlingFunctions;
- private final static Logger logger = Logger.getLogger(SAPComm.class);
+ private final static Logger logger = Logger.getLogger(SAPComm.class);
- private static final String JCO_CONNECTIONS_POOL_PREFIX = "CSPool_";
+ private static final String JCO_CONNECTIONS_POOL_PREFIX = "CSPool_";
- private static final String JCO_REPOSITORY_PREFIX = "CSRepo_";
+ private static final String JCO_REPOSITORY_PREFIX = "CSRepo_";
- // TODO: przeniesc wlanczanie/ wylanczanie trace'a do pliku local.properties
- private static final boolean TRACE_ENABLED = true;
+ // TODO: przeniesc wlanczanie/ wylanczanie trace'a do pliku local.properties
+ private static final boolean TRACE_ENABLED = true;
- /**
- * Definition of the logging parameters.
- */
- private SAPInstanceDef instanceDef;
+ /**
+ * Definition of the logging parameters.
+ */
+ private SAPInstanceDef instanceDef;
- /**
- * Indicate whther module has been corectly initiated.
- */
- private boolean initiated;
+ /**
+ * Indicate whther module has been corectly initiated.
+ */
+ private boolean initiated;
- /**
- * Remote repository of the associated SAP R/3 system.
- */
- private IRepository repository;
+ /**
+ * Remote repository of the associated SAP R/3 system.
+ */
+ private IRepository repository;
- /**
- * Inner instance of runnig server that registers itself on the remote SAP R/3 server.
- */
- private IJCOServer server;
+ /**
+ * Inner instance of runnig server that registers itself on the remote SAP
+ * R/3 server.
+ */
+ private IJCOServer server;
- private boolean handlingRequest;
+ private boolean handlingRequest;
- /**
- * Inner definition of JCO-based server.
- */
- /* package scope */class JCOServer extends JCO.Server implements IJCOServer, UncaughtExceptionHandler {
+ /**
+ * Inner definition of JCO-based server.
+ */
+ /* package scope */class JCOServer extends JCO.Server implements
+ IJCOServer, UncaughtExceptionHandler {
- private final Logger logger = Logger.getLogger(SAPComm.JCOServer.class);
+ private final Logger logger = Logger.getLogger(SAPComm.JCOServer.class);
- private final String PARTNER_CHARSET;
+ private final String PARTNER_CHARSET;
- /* package scope */JCOServer() {
- super(SAPComm.this.getLogonProperties(), SAPComm.this.repository);
- logger.info("Server registering properties: " + SAPComm.this.getLogonProperties());
- super.getThread().setUncaughtExceptionHandler(this);
- JCO.Client client = null;
- try {
- client = SAPComm.this.getJCOClient();
- PARTNER_CHARSET = client.getAttributes().getPartnerCharset();
- } finally {
- if (null != client) {
- releaseJCOClient(client);
- }
- }
- logger.info("JCO.Server created");
- }
+ /* package scope */JCOServer() {
+ super(SAPComm.this.getLogonProperties(), SAPComm.this.repository);
+ logger.info("Server registering properties: "
+ + SAPComm.this.getLogonProperties());
+ super.getThread().setUncaughtExceptionHandler(this);
+ JCO.Client client = null;
+ try {
+ client = SAPComm.this.getJCOClient();
+ PARTNER_CHARSET = client.getAttributes().getPartnerCharset();
+ } finally {
+ if (null != client) {
+ releaseJCOClient(client);
+ }
+ }
+ logger.info("JCO.Server created");
+ }
- @Override
- protected void handleRequest(final JCO.Function function) {
- handlingRequest = true;
- // TODO: rozwazyc czy nie lepiej obslugiwac zgloszenie od klientow w osobnych watkach.
- // strona: http://eclipsesap2java.sourceforge.net/Tips.htm pkt. 2 wskazuje ze
- // implementacja
- // SAP JCo pozwala tylko na jednego zdalnego uzytkownik (jeden SAP R/3) na jedna
- // instancje
- // Server JCo (tzn. nie jest ta implementacja analogiczna do specyfikacji Servletow,
- // gdzie
- // na jedna instance Servletu teoretycznie moze przypadac dowolna liczba zdalnych
- // uzytkownikow)
- handleJCORequest(function, PARTNER_CHARSET);
- handlingRequest = false;
- }
+ @Override
+ protected void handleRequest(final JCO.Function function) {
+ handlingRequest = true;
+ // TODO: rozwazyc czy nie lepiej obslugiwac zgloszenie od klientow w
+ // osobnych watkach.
+ // strona: http://eclipsesap2java.sourceforge.net/Tips.htm pkt. 2
+ // wskazuje ze
+ // implementacja
+ // SAP JCo pozwala tylko na jednego zdalnego uzytkownik (jeden SAP
+ // R/3) na jedna
+ // instancje
+ // Server JCo (tzn. nie jest ta implementacja analogiczna do
+ // specyfikacji Servletow,
+ // gdzie
+ // na jedna instance Servletu teoretycznie moze przypadac dowolna
+ // liczba zdalnych
+ // uzytkownikow)
+ handleJCORequest(function, PARTNER_CHARSET);
+ handlingRequest = false;
+ }
- public void serverExceptionOccurred(JCO.Server server, Exception ex) {
- logger.fatal("Exception in server: " + SAPComm.this.instanceDef.getName() + "[ProgID: "
- + server.getProgID() + "]", ex);
- }
+ public void serverExceptionOccurred(JCO.Server server, Exception ex) {
+ logger.fatal("Exception in server: "
+ + SAPComm.this.instanceDef.getName() + "[ProgID: "
+ + server.getProgID() + "]", ex);
+ }
- public void serverStateChangeOccurred(JCO.Server server, int oldState, int newState) {
- if (logger.isInfoEnabled()) {
- final TextBuilder sb = new TextBuilder();
- sb.append("Server: ").append(SAPComm.this.instanceDef.getName())
- .append("[ProgID: ").append(server.getProgID()).append("]").append(
- " changed state from [");
- // REFACTOR duplicated code here
- if ((oldState & JCO.STATE_STOPPED) != 0)
- sb.append(" STOPPED ");
- if ((oldState & JCO.STATE_STARTED) != 0)
- sb.append(" STARTED ");
- if ((oldState & JCO.STATE_LISTENING) != 0)
- sb.append(" LISTENING ");
- if ((oldState & JCO.STATE_TRANSACTION) != 0)
- sb.append(" TRANSACTION ");
- if ((oldState & JCO.STATE_BUSY) != 0)
- sb.append(" BUSY ");
+ public void serverStateChangeOccurred(JCO.Server server, int oldState,
+ int newState) {
+ if (logger.isInfoEnabled()) {
+ final TextBuilder sb = new TextBuilder();
+ sb.append("Server: ")
+ .append(SAPComm.this.instanceDef.getName()).append(
+ "[ProgID: ").append(server.getProgID()).append(
+ "]").append(" changed state from [");
+ // REFACTOR duplicated code here
+ if ((oldState & JCO.STATE_STOPPED) != 0)
+ sb.append(" STOPPED ");
+ if ((oldState & JCO.STATE_STARTED) != 0)
+ sb.append(" STARTED ");
+ if ((oldState & JCO.STATE_LISTENING) != 0)
+ sb.append(" LISTENING ");
+ if ((oldState & JCO.STATE_TRANSACTION) != 0)
+ sb.append(" TRANSACTION ");
+ if ((oldState & JCO.STATE_BUSY) != 0)
+ sb.append(" BUSY ");
- sb.append("] to [");
+ sb.append("] to [");
- if ((newState & JCO.STATE_STOPPED) != 0)
- sb.append(" STOPPED ");
- if ((newState & JCO.STATE_STARTED) != 0)
- sb.append(" STARTED ");
- if ((newState & JCO.STATE_LISTENING) != 0)
- sb.append(" LISTENING ");
- if ((newState & JCO.STATE_TRANSACTION) != 0)
- sb.append(" TRANSACTION ");
- if ((newState & JCO.STATE_BUSY) != 0)
- sb.append(" BUSY ");
+ if ((newState & JCO.STATE_STOPPED) != 0)
+ sb.append(" STOPPED ");
+ if ((newState & JCO.STATE_STARTED) != 0)
+ sb.append(" STARTED ");
+ if ((newState & JCO.STATE_LISTENING) != 0)
+ sb.append(" LISTENING ");
+ if ((newState & JCO.STATE_TRANSACTION) != 0)
+ sb.append(" TRANSACTION ");
+ if ((newState & JCO.STATE_BUSY) != 0)
+ sb.append(" BUSY ");
- sb.append("]");
+ sb.append("]");
- logger.info(sb.toString());
- }
- }
+ logger.info(sb.toString());
+ }
+ }
- public void serverErrorOccurred(JCO.Server server, Error error) {
- logger.fatal("Error in server: " + SAPComm.this.instanceDef.getName() + "[ProgID: "
- + server.getProgID() + "]", error);
-
- // TODO: consider stopping SAP server in exceptional situation:
- // stopServer();
- }
-
- public void uncaughtException(Thread t, Throwable e) {
- logger.fatal("UncaughtException in server: " + SAPComm.this.instanceDef.getName(), e);
-
- // TODO: consider stopping SAP server in exceptional situation:
- // stopServer();
- }
- }
+ public void serverErrorOccurred(JCO.Server server, Error error) {
+ logger.fatal("Error in server: "
+ + SAPComm.this.instanceDef.getName() + "[ProgID: "
+ + server.getProgID() + "]", error);
- public IJCOServer getServer() {
+ // TODO: consider stopping SAP server in exceptional situation:
+ // stopServer();
+ }
+
+ public void uncaughtException(Thread t, Throwable e) {
+ logger.fatal("UncaughtException in server: "
+ + SAPComm.this.instanceDef.getName(), e);
+
+ // TODO: consider stopping SAP server in exceptional situation:
+ // stopServer();
+ }
+ }
+
+ public IJCOServer getServer() {
return server;
}
public void handleJCORequest(final JCO.Function function, String charset) {
- try {
- logger.info("Handling request for function: " + function.getName());
- if (JCoFunctionTranslator.SX_OBJECT_RECEIVE.equals(function.getName())) {
- final Message[] messages = JCoFunctionTranslator.getMessagesFromJCOFunction(
- function, charset);
+ try {
+ logger.info("Handling request for function: " + function.getName());
+ if (JCoFunctionTranslator.SX_OBJECT_RECEIVE.equals(function
+ .getName())) {
+ final Message[] messages = JCoFunctionTranslator
+ .getMessagesFromJCOFunction(function, charset);
- if (null == msgManager) {
- msgManager = SpringMiddlewareContext.getMessageManager();
- }
-
- if (null == jmsManager) {
- jmsManager = SpringMiddlewareContext.getJMSManager();
- }
+ if (null != messages && messages.length > 0
+ && 0 == messages[0].getSentContents().size()) {
+ throw new JCO.AbapException("INTERNAL",
+ "Message without any content is not supported");
+ }
- final Date currentDate = new Date();
- for (Message msg : messages) {
- msg.setSAPInstanceDefOwner(instanceDef);
- if (null == msg.getSendDate()) {
- msg.setSendDate(currentDate);
- }
- msg = msgManager.saveMessage(msg);
- jmsManager.sendMessage(SpringMiddlewareBeansConstants.M_OUT_ROUTER_QUEUE_NAME,
- msg);
- }
+ if (null == msgManager) {
+ msgManager = SpringMiddlewareContext.getMessageManager();
+ }
- SX_OBJECT_RECEIVE_functionsNumber++;
- } else if (JCoFunctionTranslator.SX_OBJECT_STATUS_RECEIVE.equals(function.getName())) {
- // TODO: implement receiving status information
- final Message messageToUpdate = SpringMiddlewareContext.getMessageManager()
- .getMessageBySapIdAndSAPInstanceDef("TODO:someId", this.instanceDef);
+ if (null == jmsManager) {
+ jmsManager = SpringMiddlewareContext.getJMSManager();
+ }
- SX_OBJECT_STATUS_RECEIVE_functionsNumber++;
- } else {
- if (false == JCOFunctionsImplementation.serveFunction(function, charset)) {
- logger.warn("SAP JCO function: " + function.getName() + " not supported.");
- this.unrecognizedFunctionsNumber++;
- throw new JCO.AbapException("INTERNAL", "Function " + function.getName()
- + " not supported.");
- }
- }
- } catch (JCO.AbapException ex) {
- logger.fatal("AbapException during handlig request", ex);
- errorsWhileHandlingFunctions++;
- throw ex;
- } catch (Throwable t) {
- logger.fatal("Unrecognized exception during handlig request", t);
- errorsWhileHandlingFunctions++;
- throw new JCO.AbapException("SYSTEM_FAILURE", t.getMessage());
- }
- }
+ final Date currentDate = new Date();
+ for (Message msg : messages) {
+ msg.setSAPInstanceDefOwner(instanceDef);
+ if (null == msg.getSendDate()) {
+ msg.setSendDate(currentDate);
+ }
+ msg = msgManager.saveMessage(msg);
+ jmsManager
+ .sendMessage(
+ SpringMiddlewareBeansConstants.M_OUT_ROUTER_QUEUE_NAME,
+ msg);
+ }
- /**
- * REVIEW: public ? what for ? i dont think that this method is necessary at all.
- *
- * @param server
- * The server to set.
- */
- public void setServer(IJCOServer server) {
- this.server = server;
- }
+ SX_OBJECT_RECEIVE_functionsNumber++;
+ } else if (JCoFunctionTranslator.SX_OBJECT_STATUS_RECEIVE
+ .equals(function.getName())) {
+ // TODO: implement receiving status information
+ final Message messageToUpdate = SpringMiddlewareContext
+ .getMessageManager()
+ .getMessageBySapIdAndSAPInstanceDef("TODO:someId",
+ this.instanceDef);
- /**
- * @return Returns whether initiated
- */
- public boolean isInitiated() {
- return initiated;
- }
+ SX_OBJECT_STATUS_RECEIVE_functionsNumber++;
+ } else {
+ if (false == JCOFunctionsImplementation.serveFunction(function,
+ charset)) {
+ logger.warn("SAP JCO function: " + function.getName()
+ + " not supported.");
+ this.unrecognizedFunctionsNumber++;
+ throw new JCO.AbapException("INTERNAL", "Function "
+ + function.getName() + " not supported.");
+ }
+ }
+ } catch (JCO.AbapException ex) {
+ logger.fatal("AbapException during handlig request", ex);
+ errorsWhileHandlingFunctions++;
+ throw ex;
+ } catch (Throwable t) {
+ logger.fatal("Unrecognized exception during handlig request", t);
+ errorsWhileHandlingFunctions++;
+ throw new JCO.AbapException("SYSTEM_FAILURE", t.getMessage());
+ }
+ }
- /**
- * @param initiated
- * The initiated to set.
- */
- /* package scope */void setInitiated(boolean initiated) {
- this.initiated = initiated;
- }
+ /**
+ * REVIEW: public ? what for ? i dont think that this method is necessary at
+ * all.
+ *
+ * @param server
+ * The server to set.
+ */
+ public void setServer(IJCOServer server) {
+ this.server = server;
+ }
- /**
- * Default public constructor.
- */
- public SAPComm() {
- super();
- }
+ /**
+ * @return Returns whether initiated
+ */
+ public boolean isInitiated() {
+ return initiated;
+ }
- /**
- * @return Returns the instanceDef.
- */
- public SAPInstanceDef getInstanceDef() {
- return instanceDef;
- }
+ /**
+ * @param initiated
+ * The initiated to set.
+ */
+ /* package scope */void setInitiated(boolean initiated) {
+ this.initiated = initiated;
+ }
- /**
- * @param instanceDef
- * The instanceDef to set.
- */
- /* package scope */void setInstanceDef(SAPInstanceDef instanceDef) {
- this.instanceDef = instanceDef;
- }
+ /**
+ * Default public constructor.
+ */
+ public SAPComm() {
+ super();
+ }
- /**
- * @param instanceDef
- * Definition of the logging parameters
- * @throws IllegalArgumentException
- */
- public void init(SAPInstanceDef instanceDef) {
- if (null == instanceDef) {
- throw new IllegalArgumentException("Given instanceDef parameter can not be null.");
- }
- if (initiated) {
- destroy();
- }
- this.instanceDef = instanceDef;
- initSAPConnections();
- initRepository();
- initiated = true;
- }
+ /**
+ * @return Returns the instanceDef.
+ */
+ public SAPInstanceDef getInstanceDef() {
+ return instanceDef;
+ }
- private void initRepository() {
- repository = JCO.createRepository(getRepositoryName(), getPoolName());
- }
+ /**
+ * @param instanceDef
+ * The instanceDef to set.
+ */
+ /* package scope */void setInstanceDef(SAPInstanceDef instanceDef) {
+ this.instanceDef = instanceDef;
+ }
- private void initSAPConnections() {
- releaseSAPConnections();
+ /**
+ * @param instanceDef
+ * Definition of the logging parameters
+ * @throws IllegalArgumentException
+ */
+ public void init(SAPInstanceDef instanceDef) {
+ if (null == instanceDef) {
+ throw new IllegalArgumentException(
+ "Given instanceDef parameter can not be null.");
+ }
+ if (initiated) {
+ destroy();
+ }
+ this.instanceDef = instanceDef;
+ initSAPConnections();
+ initRepository();
+ initiated = true;
+ }
- // creating a new connection pool
- final String poolName = getPoolName();
- JCO.addClientPool(poolName, instanceDef.getMaxConnectionsInPool(), getLogonProperties());
- final JCO.Pool pool = JCO.getClientPoolManager().getPool(poolName);
- pool.setMaxConnections(2 * instanceDef.getMaxConnectionsInPool());
- pool.setTrace(TRACE_ENABLED);
- }
+ private void initRepository() {
+ repository = JCO.createRepository(getRepositoryName(), getPoolName());
+ }
- /* package scope */Properties getLogonProperties() {
- final String JCO_CLIENT_PREFIX = "jco.client.";
- final String JCO_SERVER_PREFIX = "jco.server.";
- final Properties props = new Properties();
+ private void initSAPConnections() {
+ releaseSAPConnections();
- // client properties:
- props.put(JCO_CLIENT_PREFIX + "client", instanceDef.getClient());
- props.put(JCO_CLIENT_PREFIX + "user", instanceDef.getUser());
- props.put(JCO_CLIENT_PREFIX + "passwd", instanceDef.getPassword());
+ // creating a new connection pool
+ final String poolName = getPoolName();
+ JCO.addClientPool(poolName, instanceDef.getMaxConnectionsInPool(),
+ getLogonProperties());
+ final JCO.Pool pool = JCO.getClientPoolManager().getPool(poolName);
+ pool.setMaxConnections(2 * instanceDef.getMaxConnectionsInPool());
+ pool.setTrace(TRACE_ENABLED);
+ }
- // if (null != instanceDef.getLanguage()) {
- // props.put(JCO_CLIENT_PREFIX + "lang", instanceDef.getLanguage());
- // }
+ /* package scope */Properties getLogonProperties() {
+ final String JCO_CLIENT_PREFIX = "jco.client.";
+ final String JCO_SERVER_PREFIX = "jco.server.";
+ final Properties props = new Properties();
- if (instanceDef.isLoadBalancing()) {
- props.put(JCO_CLIENT_PREFIX + "r3name", instanceDef.getR3name());
- props.put(JCO_CLIENT_PREFIX + "group", instanceDef.getGroup());
- props.put(JCO_CLIENT_PREFIX + "mshost", instanceDef.getHost());
+ // client properties:
+ props.put(JCO_CLIENT_PREFIX + "client", instanceDef.getClient());
+ props.put(JCO_CLIENT_PREFIX + "user", instanceDef.getUser());
+ props.put(JCO_CLIENT_PREFIX + "passwd", instanceDef.getPassword());
- } else {
- props.put(JCO_CLIENT_PREFIX + "sysnr", instanceDef.getSystemNumber());
- props.put(JCO_CLIENT_PREFIX + "ashost", instanceDef.getHost());
- }
+ // if (null != instanceDef.getLanguage()) {
+ // props.put(JCO_CLIENT_PREFIX + "lang", instanceDef.getLanguage());
+ // }
- props.put(JCO_CLIENT_PREFIX + "trace", TRACE_ENABLED ? "1" : "0");
- props.put(JCO_CLIENT_PREFIX + "lcheck", "1");
+ if (instanceDef.isLoadBalancing()) {
+ props.put(JCO_CLIENT_PREFIX + "r3name", instanceDef.getR3name());
+ props.put(JCO_CLIENT_PREFIX + "group", instanceDef.getGroup());
+ props.put(JCO_CLIENT_PREFIX + "mshost", instanceDef.getHost());
- // server properties:
- props.put(JCO_SERVER_PREFIX + "gwhost", instanceDef.getGwhost());
- props.put(JCO_SERVER_PREFIX + "gwserv", instanceDef.getGwserv());
- props.put(JCO_SERVER_PREFIX + "progid", instanceDef.getProgid());
- props.put(JCO_SERVER_PREFIX + "unicode", instanceDef.isUnicode() ? "1" : "0");
+ } else {
+ props.put(JCO_CLIENT_PREFIX + "sysnr", instanceDef
+ .getSystemNumber());
+ props.put(JCO_CLIENT_PREFIX + "ashost", instanceDef.getHost());
+ }
- return props;
- }
+ props.put(JCO_CLIENT_PREFIX + "trace", TRACE_ENABLED ? "1" : "0");
+ props.put(JCO_CLIENT_PREFIX + "lcheck", "1");
- private void releaseSAPConnections() {
- // testing whether connection pool already exists:
- final JCO.Pool pool = JCO.getClientPoolManager().getPool(getPoolName());
- if (null != pool) {
- // pool already exists, so we remove it
- JCO.getClientPoolManager().removePool(getPoolName());
- }
- }
+ // server properties:
+ props.put(JCO_SERVER_PREFIX + "gwhost", instanceDef.getGwhost());
+ props.put(JCO_SERVER_PREFIX + "gwserv", instanceDef.getGwserv());
+ props.put(JCO_SERVER_PREFIX + "progid", instanceDef.getProgid());
+ props.put(JCO_SERVER_PREFIX + "unicode", instanceDef.isUnicode() ? "1"
+ : "0");
- private String getPoolName() {
- return JCO_CONNECTIONS_POOL_PREFIX + instanceDef.getName();
- }
+ return props;
+ }
- private String getRepositoryName() {
- return JCO_REPOSITORY_PREFIX + instanceDef.getName();
- }
+ private void releaseSAPConnections() {
+ // testing whether connection pool already exists:
+ final JCO.Pool pool = JCO.getClientPoolManager().getPool(getPoolName());
+ if (null != pool) {
+ // pool already exists, so we remove it
+ JCO.getClientPoolManager().removePool(getPoolName());
+ }
+ }
- /* package scope */JCO.Client getJCOClient() {
- return JCO.getClient(getPoolName());
- }
+ private String getPoolName() {
+ return JCO_CONNECTIONS_POOL_PREFIX + instanceDef.getName();
+ }
- private void releaseJCOClient(JCO.Client client) {
- JCO.releaseClient(client);
- }
+ private String getRepositoryName() {
+ return JCO_REPOSITORY_PREFIX + instanceDef.getName();
+ }
- public void destroy() {
- stopServer();
- releaseSAPConnections();
- instanceDef = null;
- initiated = false;
- }
+ /* package scope */JCO.Client getJCOClient() {
+ return JCO.getClient(getPoolName());
+ }
- public void stopServer() {
- if (null != server && server.isAlive()) {
- logger.debug("Stopping SAP server");
- server.stop();
- server.abort("Connection aborted by administrator.");
- } else {
- logger.debug("SAP server already stopped");
- }
- server = null;
- logger.debug("SAP server STOPPED");
- }
+ private void releaseJCOClient(JCO.Client client) {
+ JCO.releaseClient(client);
+ }
- /**
- * this method was created only to be override in tests
- *
- * @return new {@link SAPComm.JCOServer} instance
- */
- /* package scope */IJCOServer getNewJCOServer() {
- return this.new JCOServer();
- }
+ public void destroy() {
+ stopServer();
+ releaseSAPConnections();
+ instanceDef = null;
+ initiated = false;
+ }
- public void startServer() {
- if (!isRemoteSystemWorking()) {
- logger.error("Remote system is not working: " + getName());
- return;
- }
- stopServer();
- server = getNewJCOServer();
- server.setTrace(TRACE_ENABLED);
- JCO.addServerExceptionListener(server);
- JCO.addServerStateChangedListener(server);
- JCO.addServerErrorListener(server);
- server.start();
- }
+ public void stopServer() {
+ if (null != server && server.isAlive()) {
+ logger.debug("Stopping SAP server");
+ server.stop();
+ server.abort("Connection aborted by administrator.");
+ } else {
+ logger.debug("SAP server already stopped");
+ }
+ server = null;
+ logger.debug("SAP server STOPPED");
+ }
- /**
- * @return true if message was sent, false if sending failed
- */
- public boolean sendMessage(Message message) {
- logger.debug("Sending message: " + message.toString());
+ /**
+ * this method was created only to be override in tests
+ *
+ * @return new {@link SAPComm.JCOServer} instance
+ */
+ /* package scope */IJCOServer getNewJCOServer() {
+ return this.new JCOServer();
+ }
- JCO.Client client = null;
- try {
- // setting correct receiver:
- message.setReceiver(instanceDef.getAdminEma...
[truncated message content] |
|
From: <zd...@us...> - 2006-10-04 00:48:22
|
Revision: 186
http://svn.sourceforge.net/comsuite/?rev=186&view=rev
Author: zduniak
Date: 2006-10-02 09:53:42 -0700 (Mon, 02 Oct 2006)
Log Message:
-----------
Code cleanup
Modified Paths:
--------------
trunk/code/CSMiddleware/src/org/commsuite/sap/JCoFunctionTranslator.java
trunk/code/CSMiddleware/src/org/commsuite/sap/SAPCommManager.java
Modified: trunk/code/CSMiddleware/src/org/commsuite/sap/JCoFunctionTranslator.java
===================================================================
--- trunk/code/CSMiddleware/src/org/commsuite/sap/JCoFunctionTranslator.java 2006-10-02 16:49:49 UTC (rev 185)
+++ trunk/code/CSMiddleware/src/org/commsuite/sap/JCoFunctionTranslator.java 2006-10-02 16:53:42 UTC (rev 186)
@@ -24,7 +24,6 @@
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;
@@ -76,6 +75,9 @@
private final static int TYPE_CHAR = 4;
+ /**
+ * TODO: JavaDoc
+ */
public static JCO.Function getJCOFunctionFromNotification(
Notification notification, IRepository repository) {
final JCO.Function f = repository.getFunctionTemplate(
@@ -835,28 +837,28 @@
return result.toArray(new Message[result.size()]);
}
+ /**
+ * TODO: JavaDoc
+ */
private static byte[] convertBytes(final byte[] data, String fromCharset,
String toCharset) {
-
- // hack
-// if ("UnicodeLittle".equalsIgnoreCase(fromCharset)) {
-// fromCharset = "UTF-8";
-// }
- // end of hack
-
try {
final String tmp = new String(data, fromCharset);
if (data.length > 0 && tmp.length() == 0) {
+ logger.warn("Charsets: from '" + fromCharset + "' produced empty string");
return data;
}
return tmp.getBytes(toCharset);
} catch (UnsupportedEncodingException e) {
- logger.warn("Charsets: '" + fromCharset + "', '" + toCharset
+ logger.warn("Charsets: from: '" + fromCharset + "' to '" + toCharset
+ "' not supported", e);
return data;
}
}
+ /**
+ * TODO: JavaDoc
+ */
private static Object getOptionalVal(String name, int type,
com.sap.mw.jco.JCO.Record rec) {
Object val = null;
Modified: trunk/code/CSMiddleware/src/org/commsuite/sap/SAPCommManager.java
===================================================================
--- trunk/code/CSMiddleware/src/org/commsuite/sap/SAPCommManager.java 2006-10-02 16:49:49 UTC (rev 185)
+++ trunk/code/CSMiddleware/src/org/commsuite/sap/SAPCommManager.java 2006-10-02 16:53:42 UTC (rev 186)
@@ -74,6 +74,9 @@
return Collections.unmodifiableMap(this.sapComms);
}
+ /**
+ * TODO: JavaDoc
+ */
public SAPCommManager() {
super();
sapComms = new FastMap<String, ISAPComm>();
@@ -91,6 +94,9 @@
this.sapComms = sapComms;
}
+ /**
+ * TODO: JavaDoc
+ */
public void sendMessageToDefault(Message message) {
logger.debug("Sending message to default SAP servers");
@@ -113,6 +119,9 @@
}
}
+ /**
+ * TODO: JavaDoc
+ */
public void init() {
logger.debug("Running init() method in SAPCommManager (size: " + sapComms.size() + ")");
@@ -140,6 +149,9 @@
}
}
+ /**
+ * TODO: JavaDoc
+ */
private void initJCOTracePath() {
final String jcoTracePath = getClass().getResource("/").getPath() + ".." + File.separator
+ ".." + File.separator + ".." + File.separator + ".." + File.separator + "logs"
@@ -151,6 +163,9 @@
}
+ /**
+ * TODO: JavaDoc
+ */
public void destroy() {
logger.info("Destroying SAPCommManager");
for (final ISAPComm sapComm : sapComms.values()) {
@@ -159,6 +174,9 @@
logger.info("SAPCommManager destroyed");
}
+ /**
+ * TODO: JavaDoc
+ */
// TODO: should this method be sensitive on active field??
public void setSapInstances(Collection<SAPInstanceDef> sapInstances) {
// TODO: init sapComms collection with values from DB
@@ -186,6 +204,9 @@
}
}
+ /**
+ * TODO: JavaDoc
+ */
// TODO: should this method be sensitive on active field??
public void setSapInstance(SAPInstanceDef instance) {
if (!isEnabled()) {
@@ -199,20 +220,32 @@
sapComms.put(sapComm.getName(), sapComm);
}
+ /**
+ * TODO: JavaDoc
+ */
public void setNotificationsManager(INotificationsManager notificationsManager) {
this.notificationsManager = notificationsManager;
}
+ /**
+ * TODO: JavaDoc
+ */
public boolean isEnabled() {
return enabled;
}
+ /**
+ * TODO: JavaDoc
+ */
/* package scope */void checkExistenceOfSAPInstance(String instanceName) {
if (!sapComms.containsKey(instanceName)) {
throw new SAPInstanceException("Instance: " + instanceName + " does not exist.");
}
}
+ /**
+ * TODO: JavaDoc
+ */
public void startInstance(String instanceName) {
logger.info("Starting instance: " + instanceName);
checkExistenceOfSAPInstance(instanceName);
@@ -226,6 +259,9 @@
}
}
+ /**
+ * TODO: JavaDoc
+ */
public void stopInstance(String instanceName) {
logger.info("Stopping instance: " + instanceName);
checkExistenceOfSAPInstance(instanceName);
@@ -234,6 +270,9 @@
logger.info("Instance stopped: " + instanceName);
}
+ /**
+ * TODO: JavaDoc
+ */
public void destroyInstance(String instanceName) {
logger.info("Destroying instance: " + instanceName);
checkExistenceOfSAPInstance(instanceName);
@@ -244,10 +283,16 @@
logger.info("Instance destroyed: " + instanceName);
}
+ /**
+ * TODO: JavaDoc
+ */
public ISAPComm getSAPCommByName(String name) {
return sapComms.get(name);
}
+ /**
+ * TODO: JavaDoc
+ */
public boolean isSapServerWorking(String name) {
ISAPComm SappCommByName = getSAPCommByName(name);
return (null != SappCommByName && null != SappCommByName.getServer());
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <zd...@us...> - 2006-10-04 00:48:38
|
Revision: 185
http://svn.sourceforge.net/comsuite/?rev=185&view=rev
Author: zduniak
Date: 2006-10-02 09:49:49 -0700 (Mon, 02 Oct 2006)
Log Message:
-----------
Code cleanup
Modified Paths:
--------------
trunk/code/CSMiddleware/src/org/commsuite/sap/JCoFunctionTranslator.java
trunk/code/CSMiddleware/src/org/commsuite/sap/SAPComm.java
Modified: trunk/code/CSMiddleware/src/org/commsuite/sap/JCoFunctionTranslator.java
===================================================================
--- trunk/code/CSMiddleware/src/org/commsuite/sap/JCoFunctionTranslator.java 2006-10-02 15:18:41 UTC (rev 184)
+++ trunk/code/CSMiddleware/src/org/commsuite/sap/JCoFunctionTranslator.java 2006-10-02 16:49:49 UTC (rev 185)
@@ -367,7 +367,7 @@
final String mimeType = con.getMimeType();
- logger.debug("ContentType: " + mimeType);
+ logger.info("ContentType: " + mimeType);
final String docTypeFieldName = "DOC_TYPE";
@@ -466,7 +466,7 @@
}
final Message msg = new Message();
- logger.info("using charset: " + partnerCharset);
+ logger.debug("Using charset: " + partnerCharset);
// TODO: [AW] w parametrach wyjsciowych powinnismy jeszcze ustalic ze
// SAP informacje
@@ -665,7 +665,6 @@
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)) {
@@ -684,7 +683,6 @@
final byte[] data = baos.toByteArray();
logger.debug("data.length: " + data.length);
- logger.debug("data: " + Arrays.toString(data));
content.setData(data);
msg.addContents(content);
@@ -706,19 +704,14 @@
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);
Modified: trunk/code/CSMiddleware/src/org/commsuite/sap/SAPComm.java
===================================================================
--- trunk/code/CSMiddleware/src/org/commsuite/sap/SAPComm.java 2006-10-02 15:18:41 UTC (rev 184)
+++ trunk/code/CSMiddleware/src/org/commsuite/sap/SAPComm.java 2006-10-02 16:49:49 UTC (rev 185)
@@ -529,7 +529,7 @@
*
* @return new {@link SAPComm.JCOServer} instance
*/
- /* package scope */public IJCOServer getNewJCOServer() {
+ public IJCOServer getNewJCOServer() {
return this.new JCOServer();
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|