[Comsuite-svn] SF.net SVN: comsuite: [148] trunk/code
Brought to you by:
zduniak
|
From: <zd...@us...> - 2006-09-23 11:37:53
|
Revision: 148
http://svn.sourceforge.net/comsuite/?rev=148&view=rev
Author: zduniak
Date: 2006-09-23 04:37:31 -0700 (Sat, 23 Sep 2006)
Log Message:
-----------
Bug connected with incorrect initializing 'acceptedMimeTypes' static variable (Rafal check it please)
Modified Paths:
--------------
trunk/code/CSMiddleware/src/org/commsuite/devices/DeviceManager.java
trunk/code/CSMiddleware/src/org/commsuite/devices/OutboundMessage.java
trunk/code/CSMiddleware/src/org/commsuite/devices/fax/FaxOutboundMessage.java
trunk/code/CSMiddleware/src/org/commsuite/devices/sms/SmsDevice.java
trunk/code/CSMiddleware/src/org/commsuite/devices/sms/SmsOutboundMessage.java
trunk/code/CSTests/src/org/commsuite/devices/DeviceTest.java
Modified: trunk/code/CSMiddleware/src/org/commsuite/devices/DeviceManager.java
===================================================================
--- trunk/code/CSMiddleware/src/org/commsuite/devices/DeviceManager.java 2006-09-23 11:15:06 UTC (rev 147)
+++ trunk/code/CSMiddleware/src/org/commsuite/devices/DeviceManager.java 2006-09-23 11:37:31 UTC (rev 148)
@@ -28,6 +28,8 @@
import org.commsuite.devices.OutboundMessage.State;
import org.commsuite.messaging.ExDevRegister;
+import edu.emory.mathcs.backport.java.util.Collections;
+
/**
* Class used to manage (initialize and shutdown) all external devices used in CS.
*
@@ -65,7 +67,7 @@
*/
public List<Device> getDevices() {
// REVIEW: [RM] is this correct to break encapsulation ?
- // Consider changing into: return Collections.synchronizedList(devices);
+ // Consider changing into: return Collections.unmodifiableList(devices);
return devices;
}
Modified: trunk/code/CSMiddleware/src/org/commsuite/devices/OutboundMessage.java
===================================================================
--- trunk/code/CSMiddleware/src/org/commsuite/devices/OutboundMessage.java 2006-09-23 11:15:06 UTC (rev 147)
+++ trunk/code/CSMiddleware/src/org/commsuite/devices/OutboundMessage.java 2006-09-23 11:37:31 UTC (rev 148)
@@ -34,7 +34,7 @@
* @since 1.0
* @author Rafał Malinowski
*/
-public class OutboundMessage {
+public abstract class OutboundMessage {
/**
* States of message.
@@ -45,7 +45,7 @@
FAILED
}
- protected static List<String> acceptedMimeTypes;
+ protected abstract List<String> getAcceptedMimeTypes();
private Device device;
private String messageId = null;
@@ -96,7 +96,7 @@
ConverterBuilder builder = (ConverterBuilder)SpringContext.getBean("converterBuilder");
converter = null;
- for (final String acceptedMimeType : acceptedMimeTypes) {
+ for (final String acceptedMimeType : getAcceptedMimeTypes()) {
try {
Converter newConverter = builder.getConverter(new Conversion(contentMimeType, acceptedMimeType));
Modified: trunk/code/CSMiddleware/src/org/commsuite/devices/fax/FaxOutboundMessage.java
===================================================================
--- trunk/code/CSMiddleware/src/org/commsuite/devices/fax/FaxOutboundMessage.java 2006-09-23 11:15:06 UTC (rev 147)
+++ trunk/code/CSMiddleware/src/org/commsuite/devices/fax/FaxOutboundMessage.java 2006-09-23 11:37:31 UTC (rev 148)
@@ -26,6 +26,7 @@
import java.io.ByteArrayInputStream;
import java.io.IOException;
+import java.util.List;
import javolution.util.FastTable;
@@ -49,6 +50,8 @@
public class FaxOutboundMessage extends OutboundMessage {
private static final Logger logger = Logger.getLogger(FaxOutboundMessage.class);
+ protected static List<String> acceptedMimeTypes;
+
static {
acceptedMimeTypes = new FastTable<String>();
acceptedMimeTypes.add("application/pdf");
@@ -146,4 +149,12 @@
logger.info("message sent");
}
+
+ /**
+ * TODO: JavaDoc
+ */
+ @Override
+ protected List<String> getAcceptedMimeTypes() {
+ return acceptedMimeTypes;
+ }
}
Modified: trunk/code/CSMiddleware/src/org/commsuite/devices/sms/SmsDevice.java
===================================================================
--- trunk/code/CSMiddleware/src/org/commsuite/devices/sms/SmsDevice.java 2006-09-23 11:15:06 UTC (rev 147)
+++ trunk/code/CSMiddleware/src/org/commsuite/devices/sms/SmsDevice.java 2006-09-23 11:37:31 UTC (rev 148)
@@ -101,6 +101,7 @@
*
* @throws DeviceInitializationFailedException when connection failed
*/
+ @Override
public void init() throws DeviceInitializationFailedException {
setState(Device.State.INITIALIZING);
@@ -157,6 +158,7 @@
*
* @throws DeviceShutdownFailedException when disconnection failed
*/
+ @Override
public void shutdown() throws DeviceShutdownFailedException {
try {
shutdownNotification();
@@ -269,6 +271,7 @@
*
* @return new message that can be sent using this device
*/
+ @Override
public OutboundMessage createOutboundMessage() {
return new SmsOutboundMessage(this);
}
@@ -281,6 +284,7 @@
* @throws OutboundMessageInvalidContentException message is too long
* @throws OutboundMessageSendException an error occured
*/
+ @Override
public void send(OutboundMessage message) throws DeviceInvalidOutboundMessageException,
OutboundMessageInvalidContentMimeTypeException, OutboundMessageInvalidContentException,
OutboundMessageInvalidDestinationAddressException, OutboundMessageSendException,
@@ -487,6 +491,7 @@
*
* @return FormatType.SMS
*/
+ @Override
public FormatType getFormatType() {
return FormatType.SMS;
}
Modified: trunk/code/CSMiddleware/src/org/commsuite/devices/sms/SmsOutboundMessage.java
===================================================================
--- trunk/code/CSMiddleware/src/org/commsuite/devices/sms/SmsOutboundMessage.java 2006-09-23 11:15:06 UTC (rev 147)
+++ trunk/code/CSMiddleware/src/org/commsuite/devices/sms/SmsOutboundMessage.java 2006-09-23 11:37:31 UTC (rev 148)
@@ -21,7 +21,10 @@
package org.commsuite.devices.sms;
import java.util.ArrayList;
+import java.util.List;
+import javolution.util.FastTable;
+
import org.commsuite.devices.OutboundMessage;
/**
@@ -32,9 +35,11 @@
* @author Marcin Zduniak
*/
public class SmsOutboundMessage extends OutboundMessage {
+
+ protected static List<String> acceptedMimeTypes;
static {
- acceptedMimeTypes = new ArrayList<String>();
+ acceptedMimeTypes = new FastTable<String>();
acceptedMimeTypes.add("text/plain");
}
@@ -46,5 +51,13 @@
public SmsOutboundMessage(SmsDevice device) {
super(device);
}
+
+ /**
+ * TODO: JavaDoc
+ */
+ @Override
+ protected List<String> getAcceptedMimeTypes() {
+ return acceptedMimeTypes;
+ }
}
Modified: trunk/code/CSTests/src/org/commsuite/devices/DeviceTest.java
===================================================================
--- trunk/code/CSTests/src/org/commsuite/devices/DeviceTest.java 2006-09-23 11:15:06 UTC (rev 147)
+++ trunk/code/CSTests/src/org/commsuite/devices/DeviceTest.java 2006-09-23 11:37:31 UTC (rev 148)
@@ -20,6 +20,7 @@
*/
package org.commsuite.devices;
+import java.util.Arrays;
import java.util.List;
import javolution.util.FastTable;
@@ -38,30 +39,34 @@
* @author Rafał Malinowski
*/
public class DeviceTest extends AbstractCommunicationsSuiteTestCase {
-
+
private class FakeOutboundMessage extends OutboundMessage {
-
+
public FakeOutboundMessage(Device device, String messageId) {
super(device);
setMessageId(messageId);
-
- acceptedMimeTypes = new FastTable<String>();
- acceptedMimeTypes.add("application/octet-stream");
}
-
+
+ @Override
+ protected List<String> getAcceptedMimeTypes() {
+ return new FastTable<String>(Arrays
+ .asList(new String[] { "application/octet-stream" }));
+ }
+
}
private class FakeDevice extends Device {
-
+
private String messageId = "";
+
private List<OutboundMessage> messagesSent;
-
+
public FakeDevice(String name) {
super(name);
-
+
messagesSent = new FastTable<OutboundMessage>();
}
-
+
public List<OutboundMessage> getMessagesSent() {
return messagesSent;
}
@@ -77,65 +82,79 @@
return new FakeOutboundMessage(this, messageId);
}
- public void send(OutboundMessage message) throws DeviceInvalidOutboundMessageException, OutboundMessageInvalidContentMimeTypeException, OutboundMessageInvalidContentException, OutboundMessageInvalidDestinationAddressException, OutboundMessageSendException, OutboundMessageConversionFailedException {
+ public void send(OutboundMessage message)
+ throws DeviceInvalidOutboundMessageException,
+ OutboundMessageInvalidContentMimeTypeException,
+ OutboundMessageInvalidContentException,
+ OutboundMessageInvalidDestinationAddressException,
+ OutboundMessageSendException,
+ OutboundMessageConversionFailedException {
messagesSent.add(message);
}
public FormatType getFormatType() {
return null;
}
-
+
}
-
+
/*
- * TODO: This test fails or not becouse of use Set in SentContents.
- * When Sets will be changed to Lists everything will works properly.
+ * TODO: This test fails or not becouse of use Set in SentContents. When
+ * Sets will be changed to Lists everything will works properly.
*/
public void testSend() {
- MessageManager messageManager = SpringMiddlewareContext.getMessageManager();
-
+ MessageManager messageManager = SpringMiddlewareContext
+ .getMessageManager();
+
Message message = FakeObject.makeFakeMessage();
Contents content1 = FakeObject.makeFakeContent();
Contents content2 = FakeObject.makeFakeContent();
-
+
message.addContents(content1, "1");
message.addContents(content2, "2");
-
+
message = messageManager.saveMessage(message);
-
+
FakeDevice fakeDevice = new FakeDevice("fake1");
fakeDevice.send(message);
-
+
List<OutboundMessage> messagesSent = fakeDevice.getMessagesSent();
assertEquals("Device should sent 2 messages", 2, messagesSent.size());
-
+
FakeOutboundMessage message1 = new FakeOutboundMessage(fakeDevice, ".");
message1.setContent(content1.getData());
message1.setContentMimeType("application/octet-stream");
message1.setDestinationAddress("receiver");
-
- assertEquals("Device sent unexpected message [1]", message1, messagesSent.get(0));
-
+
+ assertEquals("Device sent unexpected message [1]", message1,
+ messagesSent.get(0));
+
FakeOutboundMessage message2 = new FakeOutboundMessage(fakeDevice, "..");
message2.setContent(content2.getData());
message2.setContentMimeType("application/octet-stream");
message2.setDestinationAddress("receiver");
-
+
message = messageManager.getMessage(message.getId().toString());
List<SentContent> sentContents = message.getSentContents();
-
- assertEquals("sentContents list should be 2 items long", 2, sentContents.size());
-
+
+ assertEquals("sentContents list should be 2 items long", 2,
+ sentContents.size());
+
SentContent sentContent1 = sentContents.get(0);
SentContent sentContent2 = sentContents.get(1);
-
- assertEquals("Device sent unexpected message [2]", message2, messagesSent.get(1));
-
- assertEquals("SentContent1 internalId is wrong", "fake1:o:.", sentContent1.getInternalId());
- assertEquals("SentContent1 state is wrong", State.SENT, sentContent1.getState());
-
- assertEquals("SentContent2 internalId is wrong", "fake1:o:..", sentContent2.getInternalId());
- assertEquals("SentContent2 state is wrong", State.SENT, sentContent2.getState());
+
+ assertEquals("Device sent unexpected message [2]", message2,
+ messagesSent.get(1));
+
+ assertEquals("SentContent1 internalId is wrong", "fake1:o:.",
+ sentContent1.getInternalId());
+ assertEquals("SentContent1 state is wrong", State.SENT, sentContent1
+ .getState());
+
+ assertEquals("SentContent2 internalId is wrong", "fake1:o:..",
+ sentContent2.getInternalId());
+ assertEquals("SentContent2 state is wrong", State.SENT, sentContent2
+ .getState());
}
-
+
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|