diff --git a/core/src/main/java/org/marketcetera/module/ModuleManager.java b/core/src/main/java/org/marketcetera/module/ModuleManager.java
index df40554fe7..3185c97cee 100644
--- a/core/src/main/java/org/marketcetera/module/ModuleManager.java
+++ b/core/src/main/java/org/marketcetera/module/ModuleManager.java
@@ -23,6 +23,7 @@
import javax.annotation.concurrent.GuardedBy;
import javax.management.DynamicMBean;
+import javax.management.InstanceAlreadyExistsException;
import javax.management.JMException;
import javax.management.JMX;
import javax.management.MBeanAttributeInfo;
@@ -1794,6 +1795,10 @@ private ObjectName registerMXBean(Object inMXBean, ObjectName inObjectName)
try {
//Register the factory with the mbean server
getMBeanServer().registerMBean(proxy, inObjectName);
+ } catch (InstanceAlreadyExistsException e) {
+ Messages.BEAN_REGISTRATION_ERROR.warn(this,
+ e,
+ inObjectName);
} catch (JMException e) {
Messages.BEAN_REGISTRATION_ERROR.warn(this,
e,
diff --git a/dare/src/test/java/org/marketcetera/ors/OrderStatusTest.java b/dare/src/test/java/org/marketcetera/ors/OrderStatusTest.java
index 9bbab65f60..cc263218a0 100644
--- a/dare/src/test/java/org/marketcetera/ors/OrderStatusTest.java
+++ b/dare/src/test/java/org/marketcetera/ors/OrderStatusTest.java
@@ -69,7 +69,7 @@ public void testReplaceUpdatesOrderRecord(Instrument inInstrument)
order1.setPrice(order1Price);
order1.setQuantity(order1Qty);
order1.setSide(Side.Buy);
- client.sendOrder(order1);
+ tradeClient.sendOrder(order1);
quickfix.Message receivedOrder1 = waitForAndVerifySenderMessage(sender1,
quickfix.field.MsgType.ORDER_SINGLE);
// send a pending new
@@ -104,7 +104,7 @@ public void testReplaceUpdatesOrderRecord(Instrument inInstrument)
OrderStatus.New);
// replace this order
OrderReplace replace1 = Factory.getInstance().createOrderReplace((ExecutionReport)waitForClientReport());
- client.sendOrder(replace1);
+ tradeClient.sendOrder(replace1);
quickfix.Message receivedReplace1 = waitForAndVerifySenderMessage(sender1,
quickfix.field.MsgType.ORDER_CANCEL_REPLACE_REQUEST);
verifyOpenOrders(Sets.newHashSet(order1.getOrderID()));
@@ -141,7 +141,7 @@ public void testReplaceUpdatesOrderRecord(Instrument inInstrument)
OrderStatus.Replaced);
// replace again
OrderReplace replace2 = Factory.getInstance().createOrderReplace((ExecutionReport)waitForClientReport());
- client.sendOrder(replace2);
+ tradeClient.sendOrder(replace2);
quickfix.Message receivedReplace2 = waitForAndVerifySenderMessage(sender1,
quickfix.field.MsgType.ORDER_CANCEL_REPLACE_REQUEST);
verifyOpenOrders(Sets.newHashSet(replace1.getOrderID()));
@@ -208,7 +208,7 @@ public void testReplaceUpdatesOrderRecord(Instrument inInstrument)
order2.setPrice(order2Price);
order2.setQuantity(order2Qty);
order2.setSide(Side.Buy);
- client.sendOrder(order2);
+ tradeClient.sendOrder(order2);
quickfix.Message receivedOrder2 = waitForAndVerifySenderMessage(sender1,
quickfix.field.MsgType.ORDER_SINGLE);
// send a pending new
diff --git a/dare/src/test/java/org/marketcetera/ors/PositionTest.java b/dare/src/test/java/org/marketcetera/ors/PositionTest.java
index 5e70079778..16141fd948 100644
--- a/dare/src/test/java/org/marketcetera/ors/PositionTest.java
+++ b/dare/src/test/java/org/marketcetera/ors/PositionTest.java
@@ -469,7 +469,7 @@ private OrderSingle generatePosition(Instrument inInstrument,
order.setPrice(orderPrice);
order.setQuantity(inOrderQty);
order.setSide(Side.Buy);
- client.sendOrder(order);
+ tradeClient.sendOrder(order);
quickfix.Message receivedOrder = waitForAndVerifySenderMessage(sender,
quickfix.field.MsgType.ORDER_SINGLE);
// send a pending new
diff --git a/dare/src/test/java/org/marketcetera/ors/brokers/SessionCustomizationTest.java b/dare/src/test/java/org/marketcetera/ors/brokers/SessionCustomizationTest.java
index c0303b6215..bf2518f8c9 100644
--- a/dare/src/test/java/org/marketcetera/ors/brokers/SessionCustomizationTest.java
+++ b/dare/src/test/java/org/marketcetera/ors/brokers/SessionCustomizationTest.java
@@ -216,7 +216,7 @@ private OrderSingle sendOrder(BrokerID inBrokerId)
order.setPrice(orderPrice);
order.setQuantity(BigDecimal.TEN);
order.setSide(Side.Buy);
- client.sendOrder(order);
+ tradeClient.sendOrder(order);
return order;
}
/**
diff --git a/dare/src/test/java/org/marketcetera/test/DareTestBase.java b/dare/src/test/java/org/marketcetera/test/DareTestBase.java
index 9697c89ef5..0290d67385 100644
--- a/dare/src/test/java/org/marketcetera/test/DareTestBase.java
+++ b/dare/src/test/java/org/marketcetera/test/DareTestBase.java
@@ -38,6 +38,7 @@
import org.junit.Rule;
import org.junit.rules.TestName;
import org.junit.runner.RunWith;
+import org.marketcetera.admin.HasCurrentUser;
import org.marketcetera.admin.User;
import org.marketcetera.admin.dao.PersistentPermissionDao;
import org.marketcetera.admin.service.AuthorizationService;
@@ -83,8 +84,7 @@
import org.marketcetera.trade.Side;
import org.marketcetera.trade.TradeMessage;
import org.marketcetera.trade.TradeMessageListener;
-import org.marketcetera.trade.client.DirectTradeClientFactory;
-import org.marketcetera.trade.client.DirectTradeClientParameters;
+import org.marketcetera.trade.client.DirectTradeClient;
import org.marketcetera.trade.client.TradeClient;
import org.marketcetera.trade.dao.ExecutionReportDao;
import org.marketcetera.trade.dao.OrderSummaryDao;
@@ -154,10 +154,21 @@ public void setup()
eventBusService.register(this);
fixSettingsProvider = fixSettingsProviderFactory.create();
traderUser = userService.findByName("trader");
- DirectTradeClientParameters tradeClientParameters = new DirectTradeClientParameters();
- tradeClientParameters.setUsername(traderUser.getName());
- client = tradeClientFactory.create(tradeClientParameters);
- client.start();
+ tradeClient = new DirectTradeClient();
+ PlatformServices.autowire(tradeClient,
+ applicationContext);
+ ((DirectTradeClient)tradeClient).setCurrentUser(new HasCurrentUser() {
+ @Override
+ public User getUser()
+ {
+ return traderUser;
+ }
+ @Override
+ public void setUser(User inUser)
+ {
+ throw new UnsupportedOperationException();
+ }}
+ );
reports.clear();
tradeMessageListener = new TradeMessageListener() {
@Override
@@ -169,7 +180,7 @@ public void receiveTradeMessage(TradeMessage inTradeMessage)
}
}
};
- client.addTradeMessageListener(tradeMessageListener);
+ tradeClient.addTradeMessageListener(tradeMessageListener);
hostAcceptorPort = fixSettingsProvider.getAcceptorPort();
remoteAcceptorPort = hostAcceptorPort + 1000;
asyncExecutorService = Executors.newCachedThreadPool();
@@ -193,9 +204,9 @@ public void cleanup()
SLF4JLoggerProxy.info(this,
"{} cleanup beginning",
name.getMethodName());
- if(client != null) {
- client.removeTradeMessageListener(tradeMessageListener);
- client.stop();
+ if(tradeClient != null) {
+ tradeClient.removeTradeMessageListener(tradeMessageListener);
+ tradeClient.stop();
}
try {
if(receiver != null) {
@@ -2911,7 +2922,7 @@ public quickfix.Message waitForAndVerifySenderMessage(quickfix.Message inSenderM
/**
* provides access to client trading services
*/
- protected TradeClient client;
+ protected TradeClient tradeClient;
/**
* provides fix settings
*/
@@ -3024,11 +3035,6 @@ public quickfix.Message waitForAndVerifySenderMessage(quickfix.Message inSenderM
*/
@Autowired
protected ApplicationContext applicationContext;
- /**
- * creates Direct Trade client objects
- */
- @Autowired
- protected DirectTradeClientFactory tradeClientFactory;
/**
* transaction manager value
*/
diff --git a/marketdata/marketdata-core/src/test/java/org/marketcetera/marketdata/MarketDataModuleTestBase.java b/marketdata/marketdata-core/src/test/java/org/marketcetera/marketdata/NewMarketDataModuleTestBase.java
similarity index 99%
rename from marketdata/marketdata-core/src/test/java/org/marketcetera/marketdata/MarketDataModuleTestBase.java
rename to marketdata/marketdata-core/src/test/java/org/marketcetera/marketdata/NewMarketDataModuleTestBase.java
index 1fec01ff9e..11e1137b7e 100644
--- a/marketdata/marketdata-core/src/test/java/org/marketcetera/marketdata/MarketDataModuleTestBase.java
+++ b/marketdata/marketdata-core/src/test/java/org/marketcetera/marketdata/NewMarketDataModuleTestBase.java
@@ -44,7 +44,7 @@
* @version $Id$
* @since 1.0.0
*/
-public abstract class MarketDataModuleTestBase
+public abstract class NewMarketDataModuleTestBase
extends ModuleTestBase
{
/**
diff --git a/marketdata/marketdata-core/src/test/java/org/marketcetera/marketdata/SimulatedMarketDataModuleTestBase.java b/marketdata/marketdata-core/src/test/java/org/marketcetera/marketdata/SimulatedMarketDataModuleTestBase.java
index 8489ff1671..30e9f2ae4a 100644
--- a/marketdata/marketdata-core/src/test/java/org/marketcetera/marketdata/SimulatedMarketDataModuleTestBase.java
+++ b/marketdata/marketdata-core/src/test/java/org/marketcetera/marketdata/SimulatedMarketDataModuleTestBase.java
@@ -13,7 +13,7 @@
* @since 1.0.0
*/
public abstract class SimulatedMarketDataModuleTestBase
- extends MarketDataModuleTestBase
+ extends NewMarketDataModuleTestBase
{
@BeforeClass
public static void setupOnce()
diff --git a/modules/marketdata/bogus/pom.xml b/modules/marketdata/bogus/pom.xml
index e8892989b3..e849e86730 100644
--- a/modules/marketdata/bogus/pom.xml
+++ b/modules/marketdata/bogus/pom.xml
@@ -39,6 +39,11 @@
+
+ ${project.groupId}
+ marketdata-core
+ test-jar
+
${project.groupId}
core
diff --git a/modules/marketdata/bogus/src/test/java/org/marketcetera/marketdata/bogus/BogusFeedModuleTest.java b/modules/marketdata/bogus/src/test/java/org/marketcetera/marketdata/bogus/BogusFeedModuleTest.java
index fe4ad48c39..fc1c499f1a 100644
--- a/modules/marketdata/bogus/src/test/java/org/marketcetera/marketdata/bogus/BogusFeedModuleTest.java
+++ b/modules/marketdata/bogus/src/test/java/org/marketcetera/marketdata/bogus/BogusFeedModuleTest.java
@@ -25,8 +25,8 @@
import org.marketcetera.marketdata.Capability;
import org.marketcetera.marketdata.Content;
import org.marketcetera.marketdata.MarketDataFeedTestBase;
-import org.marketcetera.marketdata.MarketDataModuleTestBase;
import org.marketcetera.marketdata.MarketDataRequestBuilder;
+import org.marketcetera.marketdata.NewMarketDataModuleTestBase;
import org.marketcetera.module.DataFlowID;
import org.marketcetera.module.DataRequest;
import org.marketcetera.module.ModuleException;
@@ -44,7 +44,7 @@
* @since 1.0.0
*/
public class BogusFeedModuleTest
- extends MarketDataModuleTestBase
+ extends NewMarketDataModuleTestBase
{
/**
* Tests a deadlock scenario that occurred for Bogus feed.
diff --git a/pom.xml b/pom.xml
index c76e8bdc13..ca23213e51 100644
--- a/pom.xml
+++ b/pom.xml
@@ -603,6 +603,11 @@
esper-compiler
${esper.version}
+
+ org.codehaus.janino
+ janino
+ 3.1.6
+
com.espertech
esper-common-avro