From b0c2cdfa417086de170333a8c394acbb78105b75 Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Fri, 29 Jul 2011 17:16:21 +0200 Subject: [PATCH] remove DB parameter from Mongo factory interfaces --- .../gwt/ui/server/SailingServiceImpl.java | 5 ++--- .../TestStoringAndRetrievingWindData.java | 3 ++- .../TestStoringAndRetrievingWindTracks.java | 8 ++++---- .../sailing/mongodb/DomainObjectFactory.java | 15 ++++----------- .../sailing/mongodb/MongoObjectFactory.java | 15 ++++++--------- .../mongodb/MongoWindStoreFactory.java | 2 +- .../mongodb/impl/DomainObjectFactoryImpl.java | 19 +++++++++---------- .../mongodb/impl/MongoObjectFactoryImpl.java | 12 +++++++++--- .../mongodb/impl/MongoWindListener.java | 2 +- .../impl/MongoWindStoreFactoryImpl.java | 8 ++++++-- .../mongodb/impl/MongoWindStoreImpl.java | 2 +- 11 files changed, 45 insertions(+), 46 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java b/java/com.sap.sailing.gwt.ui/src/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java index 4380a90882c..0a1546b396b 100755 --- a/java/com.sap.sailing.gwt.ui/src/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java +++ b/java/com.sap.sailing.gwt.ui/src/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java @@ -180,7 +180,7 @@ public class SailingServiceImpl extends RemoteServiceServlet implements SailingS @Override public List getPreviousConfigurations() throws Exception { DomainObjectFactory domainObjectFactory = DomainObjectFactory.INSTANCE; - Iterable configs = domainObjectFactory.getTracTracConfigurations(domainObjectFactory.getDefaultDatabase()); + Iterable configs = domainObjectFactory.getTracTracConfigurations(); List result = new ArrayList(); for (TracTracConfiguration ttConfig : configs) { result.add(new TracTracConfigurationDAO(ttConfig.getName(), ttConfig.getJSONURL().toString(), @@ -193,8 +193,7 @@ public class SailingServiceImpl extends RemoteServiceServlet implements SailingS public void storeTracTracConfiguration(String name, String jsonURL, String liveDataURI, String storedDataURI) throws Exception { DomainFactory domainFactory = DomainFactory.INSTANCE; MongoObjectFactory mongoObjectFactory = MongoObjectFactory.INSTANCE; - mongoObjectFactory.storeTracTracConfiguration(DomainObjectFactory.INSTANCE.getDefaultDatabase(), - domainFactory.createTracTracConfiguration(name, jsonURL, liveDataURI, storedDataURI)); + mongoObjectFactory.storeTracTracConfiguration(domainFactory.createTracTracConfiguration(name, jsonURL, liveDataURI, storedDataURI)); } @Override diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingWindData.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingWindData.java index 06d1655a757..9b1cacff348 100755 --- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingWindData.java +++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingWindData.java @@ -23,6 +23,7 @@ import com.sap.sailing.domain.tracking.Wind; import com.sap.sailing.domain.tracking.impl.WindImpl; import com.sap.sailing.mongodb.DomainObjectFactory; import com.sap.sailing.mongodb.MongoObjectFactory; +import com.sap.sailing.mongodb.impl.DomainObjectFactoryImpl; import com.sap.sailing.mongodb.impl.MongoWindStoreFactoryImpl; public class TestStoringAndRetrievingWindData implements MongoDBTest { @@ -99,7 +100,7 @@ public class TestStoringAndRetrievingWindData implements MongoDBTest { DBCollection coll = db.getCollection(WIND_TEST_COLLECTION); assertNotNull(coll); DBObject object = coll.findOne(); - Wind readWind = DomainObjectFactory.INSTANCE.loadWind(object); + Wind readWind = ((DomainObjectFactoryImpl) DomainObjectFactory.INSTANCE).loadWind(object); assertEquals(wind.getPosition(), readWind.getPosition()); assertEquals(wind.getKnots(), readWind.getKnots(), 0.00000001); assertEquals(wind.getBearing().getDegrees(), readWind.getBearing().getDegrees(), 0.00000001); diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingWindTracks.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingWindTracks.java index ce364f2837b..a4466b59d12 100755 --- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingWindTracks.java +++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingWindTracks.java @@ -32,8 +32,8 @@ import com.sap.sailing.domain.tracking.impl.WindImpl; import com.sap.sailing.domain.tractracadapter.DomainFactory; import com.sap.sailing.domain.tractracadapter.Receiver; import com.sap.sailing.domain.tractracadapter.ReceiverType; -import com.sap.sailing.mongodb.DomainObjectFactory; import com.sap.sailing.mongodb.MongoObjectFactory; +import com.sap.sailing.mongodb.impl.DomainObjectFactoryImpl; import com.sap.sailing.mongodb.impl.MongoWindStoreFactoryImpl; public class TestStoringAndRetrievingWindTracks extends AbstractTracTracLiveTest implements MongoDBTest { @@ -72,7 +72,7 @@ public class TestStoringAndRetrievingWindTracks extends AbstractTracTracLiveTest EmptyWindStore.INSTANCE, /* millisecondsOverWhichToAverageSpeed */ 30000, 10000, getEvent(), this); WindSource windSource = WindSource.WEB; - MongoObjectFactory.INSTANCE.addWindTrackDumper(trackedEvent, trackedRace, windSource, db); + MongoObjectFactory.INSTANCE.addWindTrackDumper(trackedEvent, trackedRace, windSource); WindTrack windTrack = trackedRace.getWindTrack(windSource); Position pos = new DegreePosition(54, 9); for (double bearingDeg = 123.4; bearingDeg<140; bearingDeg += 1.1) { @@ -83,8 +83,8 @@ public class TestStoringAndRetrievingWindTracks extends AbstractTracTracLiveTest Mongo myMongo = newMongo(); DB database = myMongo.getDB(WIND_TEST_DB); - WindTrack result = DomainObjectFactory.INSTANCE.loadWindTrack(domainEvent, race, windSource, /* millisecondsOverWhichToAverage */ - 30000, database); + WindTrack result = new DomainObjectFactoryImpl(database).loadWindTrack(domainEvent, race, windSource, /* millisecondsOverWhichToAverage */ + 30000); double myBearingDeg = 123.4; for (Wind wind : result.getRawFixes()) { assertEquals(pos, wind.getPosition()); diff --git a/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/DomainObjectFactory.java b/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/DomainObjectFactory.java index cd6288edf17..288beddf204 100755 --- a/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/DomainObjectFactory.java +++ b/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/DomainObjectFactory.java @@ -1,16 +1,13 @@ package com.sap.sailing.mongodb; -import java.net.UnknownHostException; - -import com.mongodb.DB; import com.mongodb.DBObject; import com.sap.sailing.domain.base.Event; import com.sap.sailing.domain.base.RaceDefinition; -import com.sap.sailing.domain.tracking.Wind; import com.sap.sailing.domain.tracking.WindSource; import com.sap.sailing.domain.tracking.WindTrack; import com.sap.sailing.domain.tractracadapter.TracTracConfiguration; import com.sap.sailing.mongodb.impl.DomainObjectFactoryImpl; +import com.sap.sailing.mongodb.impl.MongoWindStoreFactoryImpl; /** * Offers methods to construct domain objects from {@link DBObject MongoDB objects}. @@ -19,13 +16,9 @@ import com.sap.sailing.mongodb.impl.DomainObjectFactoryImpl; * */ public interface DomainObjectFactory { - DomainObjectFactory INSTANCE = new DomainObjectFactoryImpl(); + DomainObjectFactory INSTANCE = new DomainObjectFactoryImpl(MongoWindStoreFactoryImpl.getDefaultInstance().getDB()); - Wind loadWind(DBObject object); - - WindTrack loadWindTrack(Event event, RaceDefinition race, WindSource windSource, long millisecondsOverWhichToAverage, DB database); + WindTrack loadWindTrack(Event event, RaceDefinition race, WindSource windSource, long millisecondsOverWhichToAverage); - Iterable getTracTracConfigurations(DB database); - - DB getDefaultDatabase() throws UnknownHostException; + Iterable getTracTracConfigurations(); } diff --git a/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/MongoObjectFactory.java b/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/MongoObjectFactory.java index c36e99e04c7..46575189354 100755 --- a/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/MongoObjectFactory.java +++ b/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/MongoObjectFactory.java @@ -1,6 +1,5 @@ package com.sap.sailing.mongodb; -import com.mongodb.DB; import com.mongodb.DBCollection; import com.mongodb.DBObject; import com.sap.sailing.domain.base.Event; @@ -11,6 +10,7 @@ import com.sap.sailing.domain.tracking.Wind; import com.sap.sailing.domain.tracking.WindSource; import com.sap.sailing.domain.tractracadapter.TracTracConfiguration; import com.sap.sailing.mongodb.impl.MongoObjectFactoryImpl; +import com.sap.sailing.mongodb.impl.MongoWindStoreFactoryImpl; /** * Offers methods to construct {@link DBObject MongoDB objects} from domain objects. @@ -19,7 +19,7 @@ import com.sap.sailing.mongodb.impl.MongoObjectFactoryImpl; * */ public interface MongoObjectFactory { - MongoObjectFactory INSTANCE = new MongoObjectFactoryImpl(); + MongoObjectFactory INSTANCE = new MongoObjectFactoryImpl(MongoWindStoreFactoryImpl.getDefaultInstance().getDB()); DBObject storeWind(Wind wind); @@ -27,21 +27,18 @@ public interface MongoObjectFactory { * Registers for changes of the wind coming from windSource on the trackedRace. Each * update received will be appended to the MongoDB and can later be retrieved. The key used to identify the race is * the {@link RaceDefinition#getName() race name} and the {@link Event#getName() event name}. - * - * @param database - * the MongoDB database to dump the wind received by the {@link TrackedRace}'s windSource to */ - void addWindTrackDumper(TrackedEvent trackedEvent, TrackedRace trackedRace, WindSource windSource, DB database); + void addWindTrackDumper(TrackedEvent trackedEvent, TrackedRace trackedRace, WindSource windSource); - DBCollection getWindTrackCollection(DB database); + DBCollection getWindTrackCollection(); DBObject storeWindTrackEntry(Event event, RaceDefinition race, WindSource windSource, Wind wind); /** * Inserts/updates based on the {@link TracTracConfiguration#getName() name}. Any equally-named * config previously contained in the DB will be replaced / updated. Afterwards, - * {@link DomainObjectFactory#getTracTracConfigurations(DB)} called for the same database + * {@link DomainObjectFactory#getTracTracConfigurations()} called for the same database * will return an equal tracTracConfiguration in its results. */ - void storeTracTracConfiguration(DB database, TracTracConfiguration tracTracConfiguration); + void storeTracTracConfiguration(TracTracConfiguration tracTracConfiguration); } diff --git a/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/MongoWindStoreFactory.java b/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/MongoWindStoreFactory.java index a1dd3afed5e..50abaa37813 100755 --- a/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/MongoWindStoreFactory.java +++ b/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/MongoWindStoreFactory.java @@ -22,6 +22,6 @@ public interface MongoWindStoreFactory { * system properties and/or OSGi bundle properties, respectively. See also * {@link #getMongoWindStore(MongoObjectFactory)}. */ - DB getDB() throws UnknownHostException; + DB getDB(); } \ No newline at end of file diff --git a/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/impl/DomainObjectFactoryImpl.java b/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/impl/DomainObjectFactoryImpl.java index 768e1924456..68ef859c781 100755 --- a/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/impl/DomainObjectFactoryImpl.java +++ b/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/impl/DomainObjectFactoryImpl.java @@ -1,6 +1,5 @@ package com.sap.sailing.mongodb.impl; -import java.net.UnknownHostException; import java.util.ArrayList; import java.util.List; import java.util.logging.Level; @@ -31,7 +30,13 @@ import com.sap.sailing.mongodb.DomainObjectFactory; public class DomainObjectFactoryImpl implements DomainObjectFactory { private static final Logger logger = Logger.getLogger(DomainObjectFactoryImpl.class.getName()); - @Override + private final DB database; + + public DomainObjectFactoryImpl(DB db) { + super(); + this.database = db; + } + public Wind loadWind(DBObject object) { return new WindImpl(loadPosition(object), loadTimePoint(object), loadSpeedWithBearing(object)); } @@ -56,8 +61,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { } @Override - public WindTrack loadWindTrack(Event event, RaceDefinition race, WindSource windSource, long millisecondsOverWhichToAverage, - DB database) { + public WindTrack loadWindTrack(Event event, RaceDefinition race, WindSource windSource, long millisecondsOverWhichToAverage) { WindTrack result = new WindTrackImpl(millisecondsOverWhichToAverage); try { BasicDBObject query = new BasicDBObject(); @@ -78,7 +82,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { } @Override - public Iterable getTracTracConfigurations(DB database) { + public Iterable getTracTracConfigurations() { List result = new ArrayList(); try { DBCollection ttConfigs = database.getCollection(CollectionNames.TRACTRAC_CONFIGURATIONS.name()); @@ -101,9 +105,4 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { (String) object.get(FieldNames.TT_CONFIG_STORED_DATA_URI.name())); } - @Override - public DB getDefaultDatabase() throws UnknownHostException { - return MongoWindStoreFactoryImpl.getDefaultInstance().getDB(); - } - } diff --git a/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/impl/MongoObjectFactoryImpl.java b/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/impl/MongoObjectFactoryImpl.java index 888d5a7186a..735efb9d7e5 100755 --- a/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/impl/MongoObjectFactoryImpl.java +++ b/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/impl/MongoObjectFactoryImpl.java @@ -20,7 +20,13 @@ import com.sap.sailing.domain.tractracadapter.TracTracConfiguration; import com.sap.sailing.mongodb.MongoObjectFactory; public class MongoObjectFactoryImpl implements MongoObjectFactory { + private final DB database; + public MongoObjectFactoryImpl(DB database) { + super(); + this.database = database; + } + @Override public DBObject storeWind(Wind wind) { DBObject result = new BasicDBObject(); @@ -56,13 +62,13 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { } @Override - public void addWindTrackDumper(TrackedEvent trackedEvent, TrackedRace trackedRace, WindSource windSource, DB database) { + public void addWindTrackDumper(TrackedEvent trackedEvent, TrackedRace trackedRace, WindSource windSource) { WindTrack windTrack = trackedRace.getWindTrack(windSource); windTrack.addListener(new MongoWindListener(trackedEvent, trackedRace, windSource, this, database)); } @Override - public DBCollection getWindTrackCollection(DB database) { + public DBCollection getWindTrackCollection() { return database.getCollection(CollectionNames.WIND_TRACKS.name()); } @@ -77,7 +83,7 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { } @Override - public void storeTracTracConfiguration(DB database, TracTracConfiguration tracTracConfiguration) { + public void storeTracTracConfiguration(TracTracConfiguration tracTracConfiguration) { DBCollection ttConfigCollection = database.getCollection(CollectionNames.TRACTRAC_CONFIGURATIONS.name()); BasicDBObject result = new BasicDBObject(); result.put(FieldNames.TT_CONFIG_NAME.name(), tracTracConfiguration.getName()); diff --git a/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/impl/MongoWindListener.java b/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/impl/MongoWindListener.java index a03642baf01..ab5d01a7c57 100755 --- a/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/impl/MongoWindListener.java +++ b/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/impl/MongoWindListener.java @@ -23,7 +23,7 @@ public class MongoWindListener implements com.sap.sailing.domain.tracking.WindLi this.trackedRace = trackedRace; this.windSource = windSource; this.mongoObjectFactory = mongoObjectFactory; - this.windTracksCollection = mongoObjectFactory.getWindTrackCollection(database); + this.windTracksCollection = mongoObjectFactory.getWindTrackCollection(); } @Override diff --git a/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/impl/MongoWindStoreFactoryImpl.java b/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/impl/MongoWindStoreFactoryImpl.java index 933369b0e70..d8d99d82785 100755 --- a/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/impl/MongoWindStoreFactoryImpl.java +++ b/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/impl/MongoWindStoreFactoryImpl.java @@ -51,8 +51,12 @@ public class MongoWindStoreFactoryImpl implements MongoWindStoreFactory, BundleA } @Override - public DB getDB() throws UnknownHostException { - return getDB(defaultHostName, defaultPort, defaultDatabaseName); + public DB getDB() { + try { + return getDB(defaultHostName, defaultPort, defaultDatabaseName); + } catch (UnknownHostException e) { + throw new RuntimeException(e); + } } private synchronized DB getDB(String hostname, int port, String dbName) throws UnknownHostException { diff --git a/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/impl/MongoWindStoreImpl.java b/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/impl/MongoWindStoreImpl.java index 06696195975..daf6143040a 100755 --- a/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/impl/MongoWindStoreImpl.java +++ b/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/impl/MongoWindStoreImpl.java @@ -29,7 +29,7 @@ public class MongoWindStoreImpl implements MongoWindStore { public WindTrack getWindTrack(TrackedEvent trackedEvent, TrackedRace trackedRace, WindSource windSource, long millisecondsOverWhichToAverage) { WindTrack result = DomainObjectFactoryImpl.INSTANCE.loadWindTrack(trackedEvent.getEvent(), - trackedRace.getRace(), windSource, millisecondsOverWhichToAverage, db); + trackedRace.getRace(), windSource, millisecondsOverWhichToAverage); result.addListener(new MongoWindListener(trackedEvent, trackedRace, windSource, mongoObjectFactory, db)); return result; }