From eac6d6d1ad5b4bebb96bc443bc40d817460c53c6 Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Fri, 25 Nov 2011 16:05:15 +0100 Subject: [PATCH] use same message loader / persistence to avoid duplicate SailMasterConnector instances; in the long run, supporting equals on SwissTimingPersistenceImpl and the corresponding configurations may help controlling the connector cache. --- .../swisstimingadapter/persistence/StoreAndForward.java | 4 ++-- .../test/ActivelyConnectingStoreAndForwardTest.java | 3 +-- .../test/EndToEndListeningStoreAndFowardTest.java | 4 ++-- .../test/ListeningStoreAndForwardTest.java | 3 +-- .../test/SailMasterConnectivityTest.java | 7 +------ .../test/ScriptedStoreAndForwardTest.java | 3 +-- .../test/SwissTimingSailMasterLiveTest.java | 5 +---- .../swisstimingadapter/impl/SailMasterConnectorImpl.java | 1 + .../swisstimingadapter/impl/SwissTimingFactoryImpl.java | 4 ++-- .../impl/SwissTimingRaceTrackerImpl.java | 1 + java/target/configuration/logging_debug.properties | 2 +- 11 files changed, 14 insertions(+), 23 deletions(-) diff --git a/java/com.sap.sailing.domain.swisstimingadapter.persistence/src/com/sap/sailing/domain/swisstimingadapter/persistence/StoreAndForward.java b/java/com.sap.sailing.domain.swisstimingadapter.persistence/src/com/sap/sailing/domain/swisstimingadapter/persistence/StoreAndForward.java index 058dd9031a0..71e115f4fd1 100755 --- a/java/com.sap.sailing.domain.swisstimingadapter.persistence/src/com/sap/sailing/domain/swisstimingadapter/persistence/StoreAndForward.java +++ b/java/com.sap.sailing.domain.swisstimingadapter.persistence/src/com/sap/sailing/domain/swisstimingadapter/persistence/StoreAndForward.java @@ -19,7 +19,6 @@ 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.domain.swisstimingadapter.persistence.impl.SwissTimingAdapterPersistenceImpl; import com.sap.sailing.mongodb.MongoDBConfiguration; import com.sap.sailing.mongodb.MongoDBService; import com.sap.sailing.util.Util.Pair; @@ -182,6 +181,7 @@ public class StoreAndForward implements Runnable { } while (!stopped) { Socket s = ss.accept(); + logger.info("StoreAndForward received connector's connect request on port "+portForClients); if (!stopped) { synchronized (StoreAndForward.this) { socketsToForwardTo.add(s); @@ -246,7 +246,7 @@ public class StoreAndForward implements Runnable { MongoDBService mongoDBService = MongoDBService.INSTANCE; mongoDBService.setConfiguration(MongoDBConfiguration.getDefaultConfiguration()); - SwissTimingAdapterPersistence swissTimingAdapterPersistence = new SwissTimingAdapterPersistenceImpl(mongoDBService, SwissTimingFactory.INSTANCE); + SwissTimingAdapterPersistence swissTimingAdapterPersistence = SwissTimingAdapterPersistence.INSTANCE; new StoreAndForward(listenPort, clientPort, SwissTimingFactory.INSTANCE, swissTimingAdapterPersistence, mongoDBService); } diff --git a/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/ActivelyConnectingStoreAndForwardTest.java b/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/ActivelyConnectingStoreAndForwardTest.java index c7b64430a7f..6db5547e8a9 100755 --- a/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/ActivelyConnectingStoreAndForwardTest.java +++ b/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/ActivelyConnectingStoreAndForwardTest.java @@ -29,7 +29,6 @@ import com.sap.sailing.domain.swisstimingadapter.persistence.StoreAndForward; import com.sap.sailing.domain.swisstimingadapter.persistence.SwissTimingAdapterPersistence; import com.sap.sailing.domain.swisstimingadapter.persistence.impl.CollectionNames; import com.sap.sailing.domain.swisstimingadapter.persistence.impl.FieldNames; -import com.sap.sailing.domain.swisstimingadapter.persistence.impl.SwissTimingAdapterPersistenceImpl; import com.sap.sailing.mongodb.MongoDBService; public class ActivelyConnectingStoreAndForwardTest { @@ -71,7 +70,7 @@ public class ActivelyConnectingStoreAndForwardTest { } }; sailMasterDummyListenerThread.start(); - swissTimingAdapterPersistence = new SwissTimingAdapterPersistenceImpl(mongoDBService, SwissTimingFactory.INSTANCE); + swissTimingAdapterPersistence = SwissTimingAdapterPersistence.INSTANCE; swissTimingAdapterPersistence.dropAllMessageData(); storeAndForward = new StoreAndForward("localhost", RECEIVE_PORT, CLIENT_PORT, SwissTimingFactory.INSTANCE, swissTimingAdapterPersistence, mongoDBService); diff --git a/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/EndToEndListeningStoreAndFowardTest.java b/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/EndToEndListeningStoreAndFowardTest.java index f4b9f5e2d36..d9194044ed1 100755 --- a/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/EndToEndListeningStoreAndFowardTest.java +++ b/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/EndToEndListeningStoreAndFowardTest.java @@ -36,7 +36,6 @@ import com.sap.sailing.domain.swisstimingadapter.persistence.StoreAndForward; import com.sap.sailing.domain.swisstimingadapter.persistence.SwissTimingAdapterPersistence; import com.sap.sailing.domain.swisstimingadapter.persistence.impl.CollectionNames; import com.sap.sailing.domain.swisstimingadapter.persistence.impl.FieldNames; -import com.sap.sailing.domain.swisstimingadapter.persistence.impl.SwissTimingAdapterPersistenceImpl; import com.sap.sailing.domain.tracking.DynamicTrackedEvent; import com.sap.sailing.domain.tracking.RaceHandle; import com.sap.sailing.domain.tracking.TrackedRace; @@ -71,7 +70,7 @@ public class EndToEndListeningStoreAndFowardTest { logger.info("EndToEndListeningStoreAndFowardTest.setUp"); MongoDBService mongoDBService = MongoDBService.INSTANCE; db = mongoDBService.getDB(); - swissTimingAdapterPersistence = new SwissTimingAdapterPersistenceImpl(mongoDBService, SwissTimingFactory.INSTANCE); + swissTimingAdapterPersistence = SwissTimingAdapterPersistence.INSTANCE; swissTimingAdapterPersistence.dropAllMessageData(); swissTimingAdapterPersistence.dropAllRaceMasterData(); storeAndForward = new StoreAndForward(RECEIVE_PORT, CLIENT_PORT, SwissTimingFactory.INSTANCE, @@ -95,6 +94,7 @@ public class EndToEndListeningStoreAndFowardTest { for (RaceHandle raceHandle : raceHandles) { racingEventService.stopTracking(raceHandle.getEvent()); } + logger.info("Calling StoreAndForward.stop() in tearDown"); storeAndForward.stop(); logger.exiting(getClass().getName(), "tearDown"); } diff --git a/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/ListeningStoreAndForwardTest.java b/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/ListeningStoreAndForwardTest.java index d567f466979..6108f7bbf40 100755 --- a/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/ListeningStoreAndForwardTest.java +++ b/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/ListeningStoreAndForwardTest.java @@ -28,7 +28,6 @@ import com.sap.sailing.domain.swisstimingadapter.persistence.StoreAndForward; import com.sap.sailing.domain.swisstimingadapter.persistence.SwissTimingAdapterPersistence; import com.sap.sailing.domain.swisstimingadapter.persistence.impl.CollectionNames; import com.sap.sailing.domain.swisstimingadapter.persistence.impl.FieldNames; -import com.sap.sailing.domain.swisstimingadapter.persistence.impl.SwissTimingAdapterPersistenceImpl; import com.sap.sailing.mongodb.MongoDBService; public class ListeningStoreAndForwardTest { @@ -51,7 +50,7 @@ public class ListeningStoreAndForwardTest { logger.info("ListeningStoreAndForwardTest.setUp"); MongoDBService mongoDBService = MongoDBService.INSTANCE; db = mongoDBService.getDB(); - swissTimingAdapterPersistence = new SwissTimingAdapterPersistenceImpl(mongoDBService, SwissTimingFactory.INSTANCE); + swissTimingAdapterPersistence = SwissTimingAdapterPersistence.INSTANCE; swissTimingAdapterPersistence.dropAllMessageData(); storeAndForward = new StoreAndForward(RECEIVE_PORT, CLIENT_PORT, SwissTimingFactory.INSTANCE, swissTimingAdapterPersistence, mongoDBService); sendingSocket = new Socket("localhost", RECEIVE_PORT); diff --git a/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/SailMasterConnectivityTest.java b/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/SailMasterConnectivityTest.java index acc60b5b674..6be5fd7d881 100755 --- a/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/SailMasterConnectivityTest.java +++ b/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/SailMasterConnectivityTest.java @@ -35,8 +35,6 @@ import com.sap.sailing.domain.swisstimingadapter.StartList; import com.sap.sailing.domain.swisstimingadapter.SwissTimingFactory; import com.sap.sailing.domain.swisstimingadapter.impl.RaceImpl; import com.sap.sailing.domain.swisstimingadapter.persistence.SwissTimingAdapterPersistence; -import com.sap.sailing.domain.swisstimingadapter.persistence.impl.SwissTimingAdapterPersistenceImpl; -import com.sap.sailing.mongodb.MongoDBService; import com.sap.sailing.util.Util; import com.sap.sailing.util.Util.Triple; @@ -50,10 +48,7 @@ public class SailMasterConnectivityTest { @Before public void setUp() throws InterruptedException, ParseException { startSailMasterDummy(); - MongoDBService mongoDBService = MongoDBService.INSTANCE; - - SwissTimingAdapterPersistence swissTimingPersistence = new SwissTimingAdapterPersistenceImpl(mongoDBService, SwissTimingFactory.INSTANCE); - + SwissTimingAdapterPersistence swissTimingPersistence = SwissTimingAdapterPersistence.INSTANCE; swissTimingPersistence.dropAllRaceMasterData(); Race race4711 = new RaceImpl("4711", "A wonderful test race"); Race race4712 = new RaceImpl("4712", "Not such a wonderful race"); diff --git a/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/ScriptedStoreAndForwardTest.java b/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/ScriptedStoreAndForwardTest.java index 665973a437f..6f5ff3c1593 100644 --- a/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/ScriptedStoreAndForwardTest.java +++ b/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/ScriptedStoreAndForwardTest.java @@ -31,7 +31,6 @@ import com.sap.sailing.domain.swisstimingadapter.persistence.StoreAndForward; import com.sap.sailing.domain.swisstimingadapter.persistence.SwissTimingAdapterPersistence; import com.sap.sailing.domain.swisstimingadapter.persistence.impl.CollectionNames; import com.sap.sailing.domain.swisstimingadapter.persistence.impl.FieldNames; -import com.sap.sailing.domain.swisstimingadapter.persistence.impl.SwissTimingAdapterPersistenceImpl; import com.sap.sailing.mongodb.MongoDBService; public class ScriptedStoreAndForwardTest { @@ -53,7 +52,7 @@ public class ScriptedStoreAndForwardTest { public void setUp() throws UnknownHostException, IOException, InterruptedException, ParseException { MongoDBService mongoDBService = MongoDBService.INSTANCE; db = mongoDBService.getDB(); - swissTimingAdapterPersistence = new SwissTimingAdapterPersistenceImpl(mongoDBService, SwissTimingFactory.INSTANCE); + swissTimingAdapterPersistence = SwissTimingAdapterPersistence.INSTANCE; swissTimingAdapterPersistence.dropAllRaceMasterData(); swissTimingAdapterPersistence.dropAllMessageData(); diff --git a/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/SwissTimingSailMasterLiveTest.java b/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/SwissTimingSailMasterLiveTest.java index 9351a7d61e9..7247f01e102 100755 --- a/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/SwissTimingSailMasterLiveTest.java +++ b/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/SwissTimingSailMasterLiveTest.java @@ -32,8 +32,6 @@ import com.sap.sailing.domain.swisstimingadapter.SailMasterListener; import com.sap.sailing.domain.swisstimingadapter.StartList; import com.sap.sailing.domain.swisstimingadapter.SwissTimingFactory; import com.sap.sailing.domain.swisstimingadapter.persistence.SwissTimingAdapterPersistence; -import com.sap.sailing.domain.swisstimingadapter.persistence.impl.SwissTimingAdapterPersistenceImpl; -import com.sap.sailing.mongodb.MongoDBService; import com.sap.sailing.util.Util; import com.sap.sailing.util.Util.Pair; import com.sap.sailing.util.Util.Triple; @@ -45,8 +43,7 @@ public class SwissTimingSailMasterLiveTest implements SailMasterListener { @Before public void connect() throws InterruptedException { - MongoDBService mongoDBService = MongoDBService.INSTANCE; - SwissTimingAdapterPersistence swissTimingPersistence = new SwissTimingAdapterPersistenceImpl(mongoDBService, SwissTimingFactory.INSTANCE); + SwissTimingAdapterPersistence swissTimingPersistence = SwissTimingAdapterPersistence.INSTANCE; connector = SwissTimingFactory.INSTANCE.getOrCreateSailMasterConnector("gps.sportresult.com", 40300, swissTimingPersistence, /* canSendRequests */true); } diff --git a/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/SailMasterConnectorImpl.java b/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/SailMasterConnectorImpl.java index c1dcf516c2f..af51c5c4574 100755 --- a/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/SailMasterConnectorImpl.java +++ b/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/SailMasterConnectorImpl.java @@ -251,6 +251,7 @@ public class SailMasterConnectorImpl extends SailMasterTransceiverImpl implement } } if (message.getType() == MessageType._STOPSERVER) { + logger.info("SailMasterConnector received "+MessageType._STOPSERVER.name()); stop(); } } catch (SocketException se) { diff --git a/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/SwissTimingFactoryImpl.java b/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/SwissTimingFactoryImpl.java index a696a7a4a49..8303a623d7e 100755 --- a/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/SwissTimingFactoryImpl.java +++ b/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/SwissTimingFactoryImpl.java @@ -56,8 +56,8 @@ public class SwissTimingFactoryImpl implements SwissTimingFactory { @Override public SwissTimingRaceTracker createRaceTracker(String raceID, String hostname, int port, boolean canSendRequests, - WindStore windStore, RaceSpecificMessageLoader messageLoader, DomainFactory domainFactory, TrackedEventRegistry trackedEventRegistry) - throws InterruptedException, UnknownHostException, IOException, + WindStore windStore, RaceSpecificMessageLoader messageLoader, DomainFactory domainFactory, + TrackedEventRegistry trackedEventRegistry) throws InterruptedException, UnknownHostException, IOException, ParseException { return new SwissTimingRaceTrackerImpl(raceID, hostname, port, windStore, domainFactory, this, messageLoader, trackedEventRegistry, canSendRequests); diff --git a/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/SwissTimingRaceTrackerImpl.java b/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/SwissTimingRaceTrackerImpl.java index 1e36b519bdf..fdc77219f5f 100644 --- a/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/SwissTimingRaceTrackerImpl.java +++ b/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/SwissTimingRaceTrackerImpl.java @@ -228,6 +228,7 @@ public class SwissTimingRaceTrackerImpl extends AbstractRaceTrackerImpl implemen assert SwissTimingRaceTrackerImpl.this.race == race; } }); + logger.info("Created SwissTiming RaceDefinition and TrackedRace for "+race.getName()); } @Override diff --git a/java/target/configuration/logging_debug.properties b/java/target/configuration/logging_debug.properties index e047b6feff2..92fc384f809 100644 --- a/java/target/configuration/logging_debug.properties +++ b/java/target/configuration/logging_debug.properties @@ -2,7 +2,7 @@ handlers= java.util.logging.FileHandler, java.util.logging.ConsoleHandler # Assign the default log level -.level= INFO +.level= FINEST # fileHandler specific properties java.util.logging.FileHandler.level = ALL