refactoring of the MongoDBService to be configurable (TEST, PROD, etc.)

apply the new service to all tests
This commit is contained in:
fmittag
2011-11-25 13:59:41 +01:00
parent 6dee8ea2e0
commit e1c2918e27
29 changed files with 259 additions and 139 deletions
@@ -10,4 +10,4 @@ Require-Bundle: com.sap.sailing.domain.swisstimingadapter,
com.sap.sailing.mongodb,
com.sap.sailing.domain
Export-Package: com.sap.sailing.domain.swisstimingadapter.persistence,
com.sap.sailing.domain.swisstimingadapter.persistence.impl;x-friends:="com.sap.sailing.domain.swisstimingadapter.test"
com.sap.sailing.domain.swisstimingadapter.persistence.impl; x-friends:="com.sap.sailing.domain.swisstimingadapter.test"
@@ -19,7 +19,9 @@ import com.sap.sailing.domain.swisstimingadapter.SailMasterTransceiver;
import com.sap.sailing.domain.swisstimingadapter.SwissTimingFactory;
import com.sap.sailing.domain.swisstimingadapter.persistence.impl.CollectionNames;
import com.sap.sailing.domain.swisstimingadapter.persistence.impl.FieldNames;
import com.sap.sailing.mongodb.Activator;
import com.sap.sailing.domain.swisstimingadapter.persistence.impl.SwissTimingAdapterPersistenceImpl;
import com.sap.sailing.mongodb.MongoDBConfiguration;
import com.sap.sailing.mongodb.MongoDBService;
import com.sap.sailing.util.Util.Pair;
/**
@@ -83,8 +85,8 @@ public class StoreAndForward implements Runnable {
* SailMaster connections.
*/
public StoreAndForward(String sailMasterHostname, int sailMasterPort, int portForClients, SwissTimingFactory swissTimingFactory,
SwissTimingAdapterPersistence swissTimingAdapterPersistence) throws InterruptedException, IOException {
db = Activator.getDefaultInstance().getDB();
SwissTimingAdapterPersistence swissTimingAdapterPersistence, MongoDBService mongoDBService) throws InterruptedException, IOException {
this.db = mongoDBService.getDB();
this.listenPort = -1;
this.transceiver = swissTimingFactory.createSailMasterTransceiver();
this.portForClients = portForClients;
@@ -123,8 +125,8 @@ public class StoreAndForward implements Runnable {
* @throws IOException
*/
public StoreAndForward(final int listenPort, final int portForClients, SwissTimingFactory swissTimingFactory,
SwissTimingAdapterPersistence swissTimingAdapterPersistence) throws InterruptedException, IOException {
db = Activator.getDefaultInstance().getDB();
SwissTimingAdapterPersistence swissTimingAdapterPersistence, MongoDBService mongoDBService) throws InterruptedException, IOException {
this.db = mongoDBService.getDB();
this.listenPort = listenPort;
this.transceiver = swissTimingFactory.createSailMasterTransceiver();
this.portForClients = portForClients;
@@ -241,7 +243,11 @@ public class StoreAndForward implements Runnable {
public static void main(String[] args) throws InterruptedException, IOException {
int listenPort = Integer.valueOf(args[0]);
int clientPort = Integer.valueOf(args[1]);
new StoreAndForward(listenPort, clientPort, SwissTimingFactory.INSTANCE, SwissTimingAdapterPersistence.INSTANCE);
MongoDBService mongoDBService = MongoDBService.INSTANCE;
mongoDBService.setConfiguration(MongoDBConfiguration.getDefaultConfiguration());
SwissTimingAdapterPersistence swissTimingAdapterPersistence = new SwissTimingAdapterPersistenceImpl(mongoDBService, SwissTimingFactory.INSTANCE);
new StoreAndForward(listenPort, clientPort, SwissTimingFactory.INSTANCE, swissTimingAdapterPersistence, mongoDBService);
}
public void run() {
@@ -8,11 +8,11 @@ import com.sap.sailing.domain.swisstimingadapter.SailMasterMessage;
import com.sap.sailing.domain.swisstimingadapter.SwissTimingConfiguration;
import com.sap.sailing.domain.swisstimingadapter.SwissTimingFactory;
import com.sap.sailing.domain.swisstimingadapter.persistence.impl.SwissTimingAdapterPersistenceImpl;
import com.sap.sailing.mongodb.Activator;
import com.sap.sailing.mongodb.MongoDBService;
public interface SwissTimingAdapterPersistence extends RaceSpecificMessageLoader {
SwissTimingAdapterPersistence INSTANCE = new SwissTimingAdapterPersistenceImpl(Activator.getDefaultInstance().getDB(), SwissTimingFactory.INSTANCE);
SwissTimingAdapterPersistence INSTANCE = new SwissTimingAdapterPersistenceImpl(MongoDBService.INSTANCE, SwissTimingFactory.INSTANCE);
Iterable<SwissTimingConfiguration> getSwissTimingConfigurations();
@@ -18,6 +18,7 @@ import com.sap.sailing.domain.swisstimingadapter.SailMasterMessage;
import com.sap.sailing.domain.swisstimingadapter.SwissTimingConfiguration;
import com.sap.sailing.domain.swisstimingadapter.SwissTimingFactory;
import com.sap.sailing.domain.swisstimingadapter.persistence.SwissTimingAdapterPersistence;
import com.sap.sailing.mongodb.MongoDBService;
public class SwissTimingAdapterPersistenceImpl implements SwissTimingAdapterPersistence {
@@ -32,9 +33,9 @@ public class SwissTimingAdapterPersistenceImpl implements SwissTimingAdapterPers
*/
private HashMap<String, Race> cachedRaces = new HashMap<String, Race>();
public SwissTimingAdapterPersistenceImpl(DB db, SwissTimingFactory swissTimingFactory) {
public SwissTimingAdapterPersistenceImpl(MongoDBService mongoDB, SwissTimingFactory swissTimingFactory) {
super();
this.database = db;
this.database = mongoDB.getDB();
this.swissTimingFactory = swissTimingFactory;
init();
}