diff --git a/java/com.sap.sailing.domain.persistence/.classpath b/java/com.sap.sailing.domain.persistence/.classpath new file mode 100755 index 00000000000..8a8f1668cdc --- /dev/null +++ b/java/com.sap.sailing.domain.persistence/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/java/com.sap.sailing.domain.persistence/.project b/java/com.sap.sailing.domain.persistence/.project new file mode 100755 index 00000000000..53764fc8493 --- /dev/null +++ b/java/com.sap.sailing.domain.persistence/.project @@ -0,0 +1,28 @@ + + + com.sap.sailing.domain.persistence + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + diff --git a/java/com.sap.sailing.domain.persistence/.settings/org.eclipse.jdt.core.prefs b/java/com.sap.sailing.domain.persistence/.settings/org.eclipse.jdt.core.prefs new file mode 100755 index 00000000000..bf7de970a61 --- /dev/null +++ b/java/com.sap.sailing.domain.persistence/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,8 @@ +#Tue Nov 08 17:32:18 CET 2011 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 +org.eclipse.jdt.core.compiler.compliance=1.6 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.6 diff --git a/java/com.sap.sailing.domain.persistence/.settings/org.eclipse.pde.core.prefs b/java/com.sap.sailing.domain.persistence/.settings/org.eclipse.pde.core.prefs new file mode 100755 index 00000000000..929fbe152d0 --- /dev/null +++ b/java/com.sap.sailing.domain.persistence/.settings/org.eclipse.pde.core.prefs @@ -0,0 +1,4 @@ +#Tue Nov 08 17:32:18 CET 2011 +eclipse.preferences.version=1 +pluginProject.extensions=false +resolve.requirebundle=false diff --git a/java/com.sap.sailing.domain.persistence/META-INF/MANIFEST.MF b/java/com.sap.sailing.domain.persistence/META-INF/MANIFEST.MF new file mode 100755 index 00000000000..dc9faa5199d --- /dev/null +++ b/java/com.sap.sailing.domain.persistence/META-INF/MANIFEST.MF @@ -0,0 +1,12 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Persistence +Bundle-SymbolicName: com.sap.sailing.domain.persistence +Bundle-Version: 1.0.0.qualifier +Bundle-Vendor: SAP +Bundle-RequiredExecutionEnvironment: JavaSE-1.6 +Require-Bundle: com.sap.sailing.mongodb, + com.sap.sailing.domain, + com.mongodb.driver;bundle-version="2.6.2" +Export-Package: com.sap.sailing.domain.persistence, + com.sap.sailing.domain.persistence.impl;x-friends:="com.sap.sailing.mongodb.test" diff --git a/java/com.sap.sailing.domain.persistence/build.properties b/java/com.sap.sailing.domain.persistence/build.properties new file mode 100755 index 00000000000..41eb6ade2b4 --- /dev/null +++ b/java/com.sap.sailing.domain.persistence/build.properties @@ -0,0 +1,4 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + . diff --git a/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/DomainObjectFactory.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/DomainObjectFactory.java similarity index 61% rename from java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/DomainObjectFactory.java rename to java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/DomainObjectFactory.java index c0565190334..b0ba2825742 100755 --- a/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/DomainObjectFactory.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/DomainObjectFactory.java @@ -1,14 +1,12 @@ -package com.sap.sailing.mongodb; +package com.sap.sailing.domain.persistence; import com.sap.sailing.domain.base.Event; import com.sap.sailing.domain.base.RaceDefinition; import com.sap.sailing.domain.leaderboard.Leaderboard; -import com.sap.sailing.domain.swisstimingadapter.SwissTimingConfiguration; +import com.sap.sailing.domain.persistence.impl.DomainObjectFactoryImpl; 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.Activator; -import com.sap.sailing.mongodb.impl.DomainObjectFactoryImpl; +import com.sap.sailing.mongodb.Activator; /** * Offers methods to load domain objects from a Mongo DB @@ -21,11 +19,8 @@ public interface DomainObjectFactory { WindTrack loadWindTrack(Event event, RaceDefinition race, WindSource windSource, long millisecondsOverWhichToAverage); - Iterable getTracTracConfigurations(); - Leaderboard loadLeaderboard(String name); Iterable getAllLeaderboards(); - Iterable getSwissTimingConfigurations(); } diff --git a/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/MongoObjectFactory.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/MongoObjectFactory.java similarity index 61% rename from java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/MongoObjectFactory.java rename to java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/MongoObjectFactory.java index d7888fa226d..ee9017a54fe 100755 --- a/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/MongoObjectFactory.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/MongoObjectFactory.java @@ -1,16 +1,14 @@ -package com.sap.sailing.mongodb; +package com.sap.sailing.domain.persistence; import com.mongodb.DBObject; import com.sap.sailing.domain.base.Event; import com.sap.sailing.domain.base.RaceDefinition; import com.sap.sailing.domain.leaderboard.Leaderboard; -import com.sap.sailing.domain.swisstimingadapter.SwissTimingConfiguration; +import com.sap.sailing.domain.persistence.impl.MongoObjectFactoryImpl; import com.sap.sailing.domain.tracking.TrackedEvent; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.domain.tracking.WindSource; -import com.sap.sailing.domain.tractracadapter.TracTracConfiguration; -import com.sap.sailing.mongodb.impl.Activator; -import com.sap.sailing.mongodb.impl.MongoObjectFactoryImpl; +import com.sap.sailing.mongodb.Activator; /** * Offers methods to construct {@link DBObject MongoDB objects} from domain objects. @@ -28,14 +26,6 @@ public interface MongoObjectFactory { */ void addWindTrackDumper(TrackedEvent trackedEvent, TrackedRace trackedRace, WindSource windSource); - /** - * 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()} called for the same database - * will return an equal tracTracConfiguration in its results. - */ - void storeTracTracConfiguration(TracTracConfiguration tracTracConfiguration); - /** * Stores the configuration data of leaderboard in the Mongo DB associated with this * factory. @@ -49,5 +39,4 @@ public interface MongoObjectFactory { void renameLeaderboard(String oldName, String newName); - void storeSwissTimingConfiguration(SwissTimingConfiguration swissTimingConfiguration); } diff --git a/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/MongoWindStore.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/MongoWindStore.java similarity index 67% rename from java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/MongoWindStore.java rename to java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/MongoWindStore.java index ac8b77efa76..32a746f5644 100755 --- a/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/MongoWindStore.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/MongoWindStore.java @@ -1,4 +1,4 @@ -package com.sap.sailing.mongodb; +package com.sap.sailing.domain.persistence; import com.sap.sailing.domain.tracking.WindStore; diff --git a/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/MongoWindStoreFactory.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/MongoWindStoreFactory.java similarity index 78% rename from java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/MongoWindStoreFactory.java rename to java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/MongoWindStoreFactory.java index a275c3f1b13..607799f1808 100755 --- a/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/MongoWindStoreFactory.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/MongoWindStoreFactory.java @@ -1,10 +1,10 @@ -package com.sap.sailing.mongodb; +package com.sap.sailing.domain.persistence; import java.net.UnknownHostException; import com.mongodb.MongoException; -import com.sap.sailing.mongodb.impl.Activator; -import com.sap.sailing.mongodb.impl.MongoWindStoreFactoryImpl; +import com.sap.sailing.domain.persistence.impl.MongoWindStoreFactoryImpl; +import com.sap.sailing.mongodb.Activator; public interface MongoWindStoreFactory { MongoWindStoreFactory INSTANCE = new MongoWindStoreFactoryImpl(Activator.getDefaultInstance().getDB()); diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/CollectionNames.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/CollectionNames.java new file mode 100755 index 00000000000..0757a41571d --- /dev/null +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/CollectionNames.java @@ -0,0 +1,5 @@ +package com.sap.sailing.domain.persistence.impl; + +public enum CollectionNames { + WIND_TRACKS, LEADERBOARDS; +} diff --git a/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/impl/DomainObjectFactoryImpl.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java similarity index 74% rename from java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/impl/DomainObjectFactoryImpl.java rename to java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java index e380d8f4d5d..95bd9fa86b9 100755 --- a/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/impl/DomainObjectFactoryImpl.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java @@ -1,8 +1,6 @@ -package com.sap.sailing.mongodb.impl; +package com.sap.sailing.domain.persistence.impl; -import java.util.ArrayList; import java.util.HashSet; -import java.util.List; import java.util.Set; import java.util.logging.Level; import java.util.logging.Logger; @@ -28,16 +26,12 @@ import com.sap.sailing.domain.leaderboard.SettableScoreCorrection; import com.sap.sailing.domain.leaderboard.ThresholdBasedResultDiscardingRule; import com.sap.sailing.domain.leaderboard.impl.ResultDiscardingRuleImpl; import com.sap.sailing.domain.leaderboard.impl.ScoreCorrectionImpl; -import com.sap.sailing.domain.swisstimingadapter.SwissTimingConfiguration; -import com.sap.sailing.domain.swisstimingadapter.SwissTimingFactory; +import com.sap.sailing.domain.persistence.DomainObjectFactory; 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.tracking.impl.WindImpl; import com.sap.sailing.domain.tracking.impl.WindTrackImpl; -import com.sap.sailing.domain.tractracadapter.DomainFactory; -import com.sap.sailing.domain.tractracadapter.TracTracConfiguration; -import com.sap.sailing.mongodb.DomainObjectFactory; public class DomainObjectFactoryImpl implements DomainObjectFactory { private static final Logger logger = Logger.getLogger(DomainObjectFactoryImpl.class.getName()); @@ -93,30 +87,6 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { return result; } - @Override - public Iterable getTracTracConfigurations() { - List result = new ArrayList(); - try { - DBCollection ttConfigs = database.getCollection(CollectionNames.TRACTRAC_CONFIGURATIONS.name()); - for (DBObject o : ttConfigs.find()) { - TracTracConfiguration ttConfig = loadTracTracConfiguration(o); - result.add(ttConfig); - } - } catch (Throwable t) { - // something went wrong during DB access; report, then use empty new wind track - logger.log(Level.SEVERE, "Error connecting to MongoDB, unable to load recorded TracTrac configurations. Check MongoDB settings."); - logger.throwing(DomainObjectFactoryImpl.class.getName(), "getTracTracConfigurations", t); - } - return result; - } - - private TracTracConfiguration loadTracTracConfiguration(DBObject object) { - return DomainFactory.INSTANCE.createTracTracConfiguration((String) object.get(FieldNames.TT_CONFIG_NAME.name()), - (String) object.get(FieldNames.TT_CONFIG_JSON_URL.name()), - (String) object.get(FieldNames.TT_CONFIG_LIVE_DATA_URI.name()), - (String) object.get(FieldNames.TT_CONFIG_STORED_DATA_URI.name())); - } - @Override public Leaderboard loadLeaderboard(String name) { DBCollection leaderboardCollection = database.getCollection(CollectionNames.LEADERBOARDS.name()); @@ -208,27 +178,4 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { return result; } - @Override - public Iterable getSwissTimingConfigurations() { - List result = new ArrayList(); - try { - DBCollection stConfigs = database.getCollection(CollectionNames.SWISSTIMING_CONFIGURATIONS.name()); - for (DBObject o : stConfigs.find()) { - SwissTimingConfiguration stConfig = loadSwissTimingConfiguration(o); - result.add(stConfig); - } - } catch (Throwable t) { - // something went wrong during DB access; report, then use empty new wind track - logger.log(Level.SEVERE, "Error connecting to MongoDB, unable to load recorded TracTrac configurations. Check MongoDB settings."); - logger.throwing(DomainObjectFactoryImpl.class.getName(), "getTracTracConfigurations", t); - } - return result; - } - - private SwissTimingConfiguration loadSwissTimingConfiguration(DBObject object) { - return SwissTimingFactory.INSTANCE.createSwissTimingConfiguration((String) object.get(FieldNames.ST_CONFIG_NAME.name()), - (String) object.get(FieldNames.ST_CONFIG_HOSTNAME.name()), - (Integer) object.get(FieldNames.ST_CONFIG_PORT.name())); - } - } diff --git a/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/impl/FieldNames.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/FieldNames.java similarity index 76% rename from java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/impl/FieldNames.java rename to java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/FieldNames.java index f5ab0d28643..fdd01ecef17 100755 --- a/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/impl/FieldNames.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/FieldNames.java @@ -1,4 +1,4 @@ -package com.sap.sailing.mongodb.impl; +package com.sap.sailing.domain.persistence.impl; public enum FieldNames { // general: @@ -8,9 +8,6 @@ public enum FieldNames { // wind: WIND_SOURCE_NAME, WIND, - // TracTrac configuration parameters: - TT_CONFIG_NAME, TT_CONFIG_JSON_URL, TT_CONFIG_LIVE_DATA_URI, TT_CONFIG_STORED_DATA_URI, - // SwissTiming configuration parameters: ST_CONFIG_NAME, ST_CONFIG_HOSTNAME, ST_CONFIG_PORT, diff --git a/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/impl/LeaderboardImplWithDelayedCarriedPoints.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/LeaderboardImplWithDelayedCarriedPoints.java similarity index 97% rename from java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/impl/LeaderboardImplWithDelayedCarriedPoints.java rename to java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/LeaderboardImplWithDelayedCarriedPoints.java index 2eea3dadd93..138d5c2f6b4 100755 --- a/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/impl/LeaderboardImplWithDelayedCarriedPoints.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/LeaderboardImplWithDelayedCarriedPoints.java @@ -1,4 +1,4 @@ -package com.sap.sailing.mongodb.impl; +package com.sap.sailing.domain.persistence.impl; import java.util.HashMap; import java.util.Iterator; diff --git a/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/impl/MongoObjectFactoryImpl.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoObjectFactoryImpl.java similarity index 80% rename from java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/impl/MongoObjectFactoryImpl.java rename to java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoObjectFactoryImpl.java index 6322b03d8f8..404a00b89f6 100755 --- a/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/impl/MongoObjectFactoryImpl.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoObjectFactoryImpl.java @@ -1,4 +1,4 @@ -package com.sap.sailing.mongodb.impl; +package com.sap.sailing.domain.persistence.impl; import java.util.logging.Logger; @@ -18,15 +18,13 @@ import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sailing.domain.leaderboard.RaceInLeaderboard; import com.sap.sailing.domain.leaderboard.ScoreCorrection.MaxPointsReason; import com.sap.sailing.domain.leaderboard.SettableScoreCorrection; -import com.sap.sailing.domain.swisstimingadapter.SwissTimingConfiguration; +import com.sap.sailing.domain.persistence.MongoObjectFactory; import com.sap.sailing.domain.tracking.Positioned; import com.sap.sailing.domain.tracking.TrackedEvent; import com.sap.sailing.domain.tracking.TrackedRace; 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.MongoObjectFactory; public class MongoObjectFactoryImpl implements MongoObjectFactory { private static Logger logger = Logger.getLogger(MongoObjectFactoryImpl.class.getName()); @@ -89,21 +87,6 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { return result; } - @Override - public void storeTracTracConfiguration(TracTracConfiguration tracTracConfiguration) { - DBCollection ttConfigCollection = database.getCollection(CollectionNames.TRACTRAC_CONFIGURATIONS.name()); - ttConfigCollection.ensureIndex(CollectionNames.TRACTRAC_CONFIGURATIONS.name()); - BasicDBObject result = new BasicDBObject(); - result.put(FieldNames.TT_CONFIG_NAME.name(), tracTracConfiguration.getName()); - for (DBObject equallyNamedConfig : ttConfigCollection.find(result)) { - ttConfigCollection.remove(equallyNamedConfig); - } - result.put(FieldNames.TT_CONFIG_JSON_URL.name(), tracTracConfiguration.getJSONURL()); - result.put(FieldNames.TT_CONFIG_LIVE_DATA_URI.name(), tracTracConfiguration.getLiveDataURI()); - result.put(FieldNames.TT_CONFIG_STORED_DATA_URI.name(), tracTracConfiguration.getStoredDataURI()); - ttConfigCollection.insert(result); - } - @Override public void storeLeaderboard(Leaderboard leaderboard) { DBCollection leaderboardCollection = database.getCollection(CollectionNames.LEADERBOARDS.name()); @@ -198,18 +181,4 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { leaderboardCollection.update(query, renameUpdate); } - @Override - public void storeSwissTimingConfiguration(SwissTimingConfiguration swissTimingConfiguration) { - DBCollection stConfigCollection = database.getCollection(CollectionNames.SWISSTIMING_CONFIGURATIONS.name()); - stConfigCollection.ensureIndex(CollectionNames.SWISSTIMING_CONFIGURATIONS.name()); - BasicDBObject result = new BasicDBObject(); - result.put(FieldNames.ST_CONFIG_NAME.name(), swissTimingConfiguration.getName()); - for (DBObject equallyNamedConfig : stConfigCollection.find(result)) { - stConfigCollection.remove(equallyNamedConfig); - } - result.put(FieldNames.ST_CONFIG_HOSTNAME.name(), swissTimingConfiguration.getHostname()); - result.put(FieldNames.ST_CONFIG_PORT.name(), swissTimingConfiguration.getPort()); - stConfigCollection.insert(result); - } - } diff --git a/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/impl/MongoUtils.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoUtils.java similarity index 94% rename from java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/impl/MongoUtils.java rename to java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoUtils.java index d3e39cdbe48..5a4615aaa65 100755 --- a/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/impl/MongoUtils.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoUtils.java @@ -1,4 +1,4 @@ -package com.sap.sailing.mongodb.impl; +package com.sap.sailing.domain.persistence.impl; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; diff --git a/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/impl/MongoWindListener.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoWindListener.java similarity index 92% rename from java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/impl/MongoWindListener.java rename to java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoWindListener.java index 85a693e89a8..68f09c8b01e 100755 --- a/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/impl/MongoWindListener.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoWindListener.java @@ -1,13 +1,13 @@ -package com.sap.sailing.mongodb.impl; +package com.sap.sailing.domain.persistence.impl; import com.mongodb.DB; import com.mongodb.DBCollection; import com.mongodb.DBObject; +import com.sap.sailing.domain.persistence.MongoObjectFactory; import com.sap.sailing.domain.tracking.TrackedEvent; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.domain.tracking.Wind; import com.sap.sailing.domain.tracking.WindSource; -import com.sap.sailing.mongodb.MongoObjectFactory; public class MongoWindListener implements com.sap.sailing.domain.tracking.WindListener { private final TrackedEvent trackedEvent; diff --git a/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/impl/MongoWindStoreFactoryImpl.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoWindStoreFactoryImpl.java similarity index 67% rename from java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/impl/MongoWindStoreFactoryImpl.java rename to java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoWindStoreFactoryImpl.java index c37298b75e0..3355d9e3e3d 100755 --- a/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/impl/MongoWindStoreFactoryImpl.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoWindStoreFactoryImpl.java @@ -1,13 +1,13 @@ -package com.sap.sailing.mongodb.impl; +package com.sap.sailing.domain.persistence.impl; import java.net.UnknownHostException; import com.mongodb.DB; import com.mongodb.MongoException; -import com.sap.sailing.mongodb.DomainObjectFactory; -import com.sap.sailing.mongodb.MongoObjectFactory; -import com.sap.sailing.mongodb.MongoWindStore; -import com.sap.sailing.mongodb.MongoWindStoreFactory; +import com.sap.sailing.domain.persistence.DomainObjectFactory; +import com.sap.sailing.domain.persistence.MongoObjectFactory; +import com.sap.sailing.domain.persistence.MongoWindStore; +import com.sap.sailing.domain.persistence.MongoWindStoreFactory; public class MongoWindStoreFactoryImpl implements MongoWindStoreFactory { private final DB db; diff --git a/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/impl/MongoWindStoreImpl.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoWindStoreImpl.java similarity index 84% rename from java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/impl/MongoWindStoreImpl.java rename to java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoWindStoreImpl.java index 403c6c24ec4..61b96b8d95c 100755 --- a/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/impl/MongoWindStoreImpl.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoWindStoreImpl.java @@ -1,16 +1,16 @@ -package com.sap.sailing.mongodb.impl; +package com.sap.sailing.domain.persistence.impl; import java.net.UnknownHostException; import com.mongodb.DB; import com.mongodb.MongoException; +import com.sap.sailing.domain.persistence.DomainObjectFactory; +import com.sap.sailing.domain.persistence.MongoObjectFactory; +import com.sap.sailing.domain.persistence.MongoWindStore; import com.sap.sailing.domain.tracking.TrackedEvent; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.domain.tracking.WindSource; import com.sap.sailing.domain.tracking.WindTrack; -import com.sap.sailing.mongodb.DomainObjectFactory; -import com.sap.sailing.mongodb.MongoObjectFactory; -import com.sap.sailing.mongodb.MongoWindStore; public class MongoWindStoreImpl implements MongoWindStore { private final DB db; diff --git a/java/com.sap.sailing.domain.swisstimingadapter.persistence/.classpath b/java/com.sap.sailing.domain.swisstimingadapter.persistence/.classpath new file mode 100755 index 00000000000..8a8f1668cdc --- /dev/null +++ b/java/com.sap.sailing.domain.swisstimingadapter.persistence/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/java/com.sap.sailing.domain.swisstimingadapter.persistence/.project b/java/com.sap.sailing.domain.swisstimingadapter.persistence/.project new file mode 100755 index 00000000000..0239c36109f --- /dev/null +++ b/java/com.sap.sailing.domain.swisstimingadapter.persistence/.project @@ -0,0 +1,28 @@ + + + com.sap.sailing.domain.swisstimingadapter.persistence + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + diff --git a/java/com.sap.sailing.domain.swisstimingadapter.persistence/.settings/org.eclipse.jdt.core.prefs b/java/com.sap.sailing.domain.swisstimingadapter.persistence/.settings/org.eclipse.jdt.core.prefs new file mode 100755 index 00000000000..963e6493d8e --- /dev/null +++ b/java/com.sap.sailing.domain.swisstimingadapter.persistence/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,8 @@ +#Tue Nov 08 17:33:37 CET 2011 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 +org.eclipse.jdt.core.compiler.compliance=1.6 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.6 diff --git a/java/com.sap.sailing.domain.swisstimingadapter.persistence/.settings/org.eclipse.pde.core.prefs b/java/com.sap.sailing.domain.swisstimingadapter.persistence/.settings/org.eclipse.pde.core.prefs new file mode 100755 index 00000000000..d28f19bf038 --- /dev/null +++ b/java/com.sap.sailing.domain.swisstimingadapter.persistence/.settings/org.eclipse.pde.core.prefs @@ -0,0 +1,4 @@ +#Tue Nov 08 17:33:37 CET 2011 +eclipse.preferences.version=1 +pluginProject.extensions=false +resolve.requirebundle=false diff --git a/java/com.sap.sailing.domain.swisstimingadapter.persistence/META-INF/MANIFEST.MF b/java/com.sap.sailing.domain.swisstimingadapter.persistence/META-INF/MANIFEST.MF new file mode 100755 index 00000000000..07f856231e0 --- /dev/null +++ b/java/com.sap.sailing.domain.swisstimingadapter.persistence/META-INF/MANIFEST.MF @@ -0,0 +1,12 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Persistence +Bundle-SymbolicName: com.sap.sailing.domain.swisstimingadapter.persistence +Bundle-Version: 1.0.0.qualifier +Bundle-Vendor: SAP +Bundle-RequiredExecutionEnvironment: JavaSE-1.6 +Require-Bundle: com.sap.sailing.domain.swisstimingadapter, + com.mongodb.driver;bundle-version="2.6.2", + com.sap.sailing.mongodb, + com.sap.sailing.domain +Export-Package: com.sap.sailing.domain.swisstimingadapter.persistence diff --git a/java/com.sap.sailing.domain.swisstimingadapter.persistence/build.properties b/java/com.sap.sailing.domain.swisstimingadapter.persistence/build.properties new file mode 100755 index 00000000000..41eb6ade2b4 --- /dev/null +++ b/java/com.sap.sailing.domain.swisstimingadapter.persistence/build.properties @@ -0,0 +1,4 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + . diff --git a/java/com.sap.sailing.domain.swisstimingadapter.persistence/src/com/sap/sailing/domain/swisstimingadapter/persistence/DomainObjectFactory.java b/java/com.sap.sailing.domain.swisstimingadapter.persistence/src/com/sap/sailing/domain/swisstimingadapter/persistence/DomainObjectFactory.java new file mode 100755 index 00000000000..b96f3fc70a4 --- /dev/null +++ b/java/com.sap.sailing.domain.swisstimingadapter.persistence/src/com/sap/sailing/domain/swisstimingadapter/persistence/DomainObjectFactory.java @@ -0,0 +1,17 @@ +package com.sap.sailing.domain.swisstimingadapter.persistence; + +import com.sap.sailing.domain.swisstimingadapter.SwissTimingConfiguration; +import com.sap.sailing.domain.swisstimingadapter.persistence.impl.DomainObjectFactoryImpl; +import com.sap.sailing.mongodb.Activator; + +/** + * Offers methods to load domain objects from a Mongo DB + * + * @author Axel Uhl (d043530) + * + */ +public interface DomainObjectFactory { + DomainObjectFactory INSTANCE = new DomainObjectFactoryImpl(Activator.getDefaultInstance().getDB()); + + Iterable getSwissTimingConfigurations(); +} diff --git a/java/com.sap.sailing.domain.swisstimingadapter.persistence/src/com/sap/sailing/domain/swisstimingadapter/persistence/MongoObjectFactory.java b/java/com.sap.sailing.domain.swisstimingadapter.persistence/src/com/sap/sailing/domain/swisstimingadapter/persistence/MongoObjectFactory.java new file mode 100755 index 00000000000..51bd93bb418 --- /dev/null +++ b/java/com.sap.sailing.domain.swisstimingadapter.persistence/src/com/sap/sailing/domain/swisstimingadapter/persistence/MongoObjectFactory.java @@ -0,0 +1,18 @@ +package com.sap.sailing.domain.swisstimingadapter.persistence; + +import com.mongodb.DBObject; +import com.sap.sailing.domain.swisstimingadapter.SwissTimingConfiguration; +import com.sap.sailing.domain.swisstimingadapter.persistence.impl.MongoObjectFactoryImpl; +import com.sap.sailing.mongodb.Activator; + +/** + * Offers methods to construct {@link DBObject MongoDB objects} from domain objects. + * + * @author Axel Uhl (d043530) + * + */ +public interface MongoObjectFactory { + MongoObjectFactory INSTANCE = new MongoObjectFactoryImpl(Activator.getDefaultInstance().getDB()); + + void storeSwissTimingConfiguration(SwissTimingConfiguration swissTimingConfiguration); +} diff --git a/java/com.sap.sailing.domain.swisstimingadapter.persistence/src/com/sap/sailing/domain/swisstimingadapter/persistence/impl/CollectionNames.java b/java/com.sap.sailing.domain.swisstimingadapter.persistence/src/com/sap/sailing/domain/swisstimingadapter/persistence/impl/CollectionNames.java new file mode 100755 index 00000000000..26ac63976c2 --- /dev/null +++ b/java/com.sap.sailing.domain.swisstimingadapter.persistence/src/com/sap/sailing/domain/swisstimingadapter/persistence/impl/CollectionNames.java @@ -0,0 +1,5 @@ +package com.sap.sailing.domain.swisstimingadapter.persistence.impl; + +public enum CollectionNames { + SWISSTIMING_CONFIGURATIONS +} diff --git a/java/com.sap.sailing.domain.swisstimingadapter.persistence/src/com/sap/sailing/domain/swisstimingadapter/persistence/impl/DomainObjectFactoryImpl.java b/java/com.sap.sailing.domain.swisstimingadapter.persistence/src/com/sap/sailing/domain/swisstimingadapter/persistence/impl/DomainObjectFactoryImpl.java new file mode 100755 index 00000000000..12aa44b972f --- /dev/null +++ b/java/com.sap.sailing.domain.swisstimingadapter.persistence/src/com/sap/sailing/domain/swisstimingadapter/persistence/impl/DomainObjectFactoryImpl.java @@ -0,0 +1,48 @@ +package com.sap.sailing.domain.swisstimingadapter.persistence.impl; + +import java.util.ArrayList; +import java.util.List; +import java.util.logging.Level; +import java.util.logging.Logger; + +import com.mongodb.DB; +import com.mongodb.DBCollection; +import com.mongodb.DBObject; +import com.sap.sailing.domain.swisstimingadapter.SwissTimingConfiguration; +import com.sap.sailing.domain.swisstimingadapter.SwissTimingFactory; +import com.sap.sailing.domain.swisstimingadapter.persistence.DomainObjectFactory; + +public class DomainObjectFactoryImpl implements DomainObjectFactory { + private static final Logger logger = Logger.getLogger(DomainObjectFactoryImpl.class.getName()); + + private final DB database; + + public DomainObjectFactoryImpl(DB db) { + super(); + this.database = db; + } + + @Override + public Iterable getSwissTimingConfigurations() { + List result = new ArrayList(); + try { + DBCollection stConfigs = database.getCollection(CollectionNames.SWISSTIMING_CONFIGURATIONS.name()); + for (DBObject o : stConfigs.find()) { + SwissTimingConfiguration stConfig = loadSwissTimingConfiguration(o); + result.add(stConfig); + } + } catch (Throwable t) { + // something went wrong during DB access; report, then use empty new wind track + logger.log(Level.SEVERE, "Error connecting to MongoDB, unable to load recorded TracTrac configurations. Check MongoDB settings."); + logger.throwing(DomainObjectFactoryImpl.class.getName(), "getTracTracConfigurations", t); + } + return result; + } + + private SwissTimingConfiguration loadSwissTimingConfiguration(DBObject object) { + return SwissTimingFactory.INSTANCE.createSwissTimingConfiguration((String) object.get(FieldNames.ST_CONFIG_NAME.name()), + (String) object.get(FieldNames.ST_CONFIG_HOSTNAME.name()), + (Integer) object.get(FieldNames.ST_CONFIG_PORT.name())); + } + +} diff --git a/java/com.sap.sailing.domain.swisstimingadapter.persistence/src/com/sap/sailing/domain/swisstimingadapter/persistence/impl/FieldNames.java b/java/com.sap.sailing.domain.swisstimingadapter.persistence/src/com/sap/sailing/domain/swisstimingadapter/persistence/impl/FieldNames.java new file mode 100755 index 00000000000..98df2e3415a --- /dev/null +++ b/java/com.sap.sailing.domain.swisstimingadapter.persistence/src/com/sap/sailing/domain/swisstimingadapter/persistence/impl/FieldNames.java @@ -0,0 +1,6 @@ +package com.sap.sailing.domain.swisstimingadapter.persistence.impl; + +public enum FieldNames { + // SwissTiming configuration parameters: + ST_CONFIG_NAME, ST_CONFIG_HOSTNAME, ST_CONFIG_PORT +} diff --git a/java/com.sap.sailing.domain.swisstimingadapter.persistence/src/com/sap/sailing/domain/swisstimingadapter/persistence/impl/MongoObjectFactoryImpl.java b/java/com.sap.sailing.domain.swisstimingadapter.persistence/src/com/sap/sailing/domain/swisstimingadapter/persistence/impl/MongoObjectFactoryImpl.java new file mode 100755 index 00000000000..64be130c437 --- /dev/null +++ b/java/com.sap.sailing.domain.swisstimingadapter.persistence/src/com/sap/sailing/domain/swisstimingadapter/persistence/impl/MongoObjectFactoryImpl.java @@ -0,0 +1,32 @@ +package com.sap.sailing.domain.swisstimingadapter.persistence.impl; + +import com.mongodb.BasicDBObject; +import com.mongodb.DB; +import com.mongodb.DBCollection; +import com.mongodb.DBObject; +import com.sap.sailing.domain.swisstimingadapter.SwissTimingConfiguration; +import com.sap.sailing.domain.swisstimingadapter.persistence.MongoObjectFactory; + +public class MongoObjectFactoryImpl implements MongoObjectFactory { + private final DB database; + + public MongoObjectFactoryImpl(DB database) { + super(); + this.database = database; + } + + @Override + public void storeSwissTimingConfiguration(SwissTimingConfiguration swissTimingConfiguration) { + DBCollection stConfigCollection = database.getCollection(CollectionNames.SWISSTIMING_CONFIGURATIONS.name()); + stConfigCollection.ensureIndex(CollectionNames.SWISSTIMING_CONFIGURATIONS.name()); + BasicDBObject result = new BasicDBObject(); + result.put(FieldNames.ST_CONFIG_NAME.name(), swissTimingConfiguration.getName()); + for (DBObject equallyNamedConfig : stConfigCollection.find(result)) { + stConfigCollection.remove(equallyNamedConfig); + } + result.put(FieldNames.ST_CONFIG_HOSTNAME.name(), swissTimingConfiguration.getHostname()); + result.put(FieldNames.ST_CONFIG_PORT.name(), swissTimingConfiguration.getPort()); + stConfigCollection.insert(result); + } + +} 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 7ca9e16a8b8..9f3d375920e 100755 --- 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 @@ -2,7 +2,6 @@ package com.sap.sailing.domain.swisstimingadapter.impl; import java.io.IOException; import java.net.MalformedURLException; -import java.util.HashSet; import java.util.Set; import com.sap.sailing.domain.base.Event; @@ -17,11 +16,11 @@ import com.sap.sailing.util.Util.Triple; public class SwissTimingRaceTrackerImpl implements SwissTimingRaceTracker { private final SailMasterConnector connector; - private final Set races; +// private final Set races; protected SwissTimingRaceTrackerImpl(String raceID, String hostname, int port, SwissTimingFactory factory) { connector = factory.createSailMasterConnector(hostname, port); - races = new HashSet(); +// races = new HashSet(); } @Override diff --git a/java/com.sap.sailing.domain.tractracadapter.persistence/.classpath b/java/com.sap.sailing.domain.tractracadapter.persistence/.classpath new file mode 100755 index 00000000000..8a8f1668cdc --- /dev/null +++ b/java/com.sap.sailing.domain.tractracadapter.persistence/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/java/com.sap.sailing.domain.tractracadapter.persistence/.project b/java/com.sap.sailing.domain.tractracadapter.persistence/.project new file mode 100755 index 00000000000..7e1ed94ed1d --- /dev/null +++ b/java/com.sap.sailing.domain.tractracadapter.persistence/.project @@ -0,0 +1,28 @@ + + + com.sap.sailing.domain.tractracadapter.persistence + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + diff --git a/java/com.sap.sailing.domain.tractracadapter.persistence/.settings/org.eclipse.jdt.core.prefs b/java/com.sap.sailing.domain.tractracadapter.persistence/.settings/org.eclipse.jdt.core.prefs new file mode 100755 index 00000000000..7ef21aca05e --- /dev/null +++ b/java/com.sap.sailing.domain.tractracadapter.persistence/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,8 @@ +#Tue Nov 08 17:34:03 CET 2011 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 +org.eclipse.jdt.core.compiler.compliance=1.6 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.6 diff --git a/java/com.sap.sailing.domain.tractracadapter.persistence/.settings/org.eclipse.pde.core.prefs b/java/com.sap.sailing.domain.tractracadapter.persistence/.settings/org.eclipse.pde.core.prefs new file mode 100755 index 00000000000..b7f2d60cb7d --- /dev/null +++ b/java/com.sap.sailing.domain.tractracadapter.persistence/.settings/org.eclipse.pde.core.prefs @@ -0,0 +1,4 @@ +#Tue Nov 08 17:34:03 CET 2011 +eclipse.preferences.version=1 +pluginProject.extensions=false +resolve.requirebundle=false diff --git a/java/com.sap.sailing.domain.tractracadapter.persistence/META-INF/MANIFEST.MF b/java/com.sap.sailing.domain.tractracadapter.persistence/META-INF/MANIFEST.MF new file mode 100755 index 00000000000..256cd46ee17 --- /dev/null +++ b/java/com.sap.sailing.domain.tractracadapter.persistence/META-INF/MANIFEST.MF @@ -0,0 +1,12 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Persistence +Bundle-SymbolicName: com.sap.sailing.domain.tractracadapter.persistence +Bundle-Version: 1.0.0.qualifier +Bundle-Vendor: SAP +Bundle-RequiredExecutionEnvironment: JavaSE-1.6 +Require-Bundle: com.mongodb.driver;bundle-version="2.6.2", + com.sap.sailing.mongodb, + com.sap.sailing.domain.tractracadapter, + com.sap.sailing.domain +Export-Package: com.sap.sailing.domain.tractracadapter.persistence diff --git a/java/com.sap.sailing.domain.tractracadapter.persistence/build.properties b/java/com.sap.sailing.domain.tractracadapter.persistence/build.properties new file mode 100755 index 00000000000..41eb6ade2b4 --- /dev/null +++ b/java/com.sap.sailing.domain.tractracadapter.persistence/build.properties @@ -0,0 +1,4 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + . diff --git a/java/com.sap.sailing.domain.tractracadapter.persistence/src/com/sap/sailing/domain/tractracadapter/persistence/DomainObjectFactory.java b/java/com.sap.sailing.domain.tractracadapter.persistence/src/com/sap/sailing/domain/tractracadapter/persistence/DomainObjectFactory.java new file mode 100755 index 00000000000..42151a9f546 --- /dev/null +++ b/java/com.sap.sailing.domain.tractracadapter.persistence/src/com/sap/sailing/domain/tractracadapter/persistence/DomainObjectFactory.java @@ -0,0 +1,18 @@ +package com.sap.sailing.domain.tractracadapter.persistence; + +import com.sap.sailing.domain.tractracadapter.TracTracConfiguration; +import com.sap.sailing.domain.tractracadapter.persistence.impl.DomainObjectFactoryImpl; +import com.sap.sailing.mongodb.Activator; + +/** + * Offers methods to load domain objects from a Mongo DB + * + * @author Axel Uhl (d043530) + * + */ +public interface DomainObjectFactory { + DomainObjectFactory INSTANCE = new DomainObjectFactoryImpl(Activator.getDefaultInstance().getDB()); + + Iterable getTracTracConfigurations(); + +} diff --git a/java/com.sap.sailing.domain.tractracadapter.persistence/src/com/sap/sailing/domain/tractracadapter/persistence/MongoObjectFactory.java b/java/com.sap.sailing.domain.tractracadapter.persistence/src/com/sap/sailing/domain/tractracadapter/persistence/MongoObjectFactory.java new file mode 100755 index 00000000000..912e68d80f6 --- /dev/null +++ b/java/com.sap.sailing.domain.tractracadapter.persistence/src/com/sap/sailing/domain/tractracadapter/persistence/MongoObjectFactory.java @@ -0,0 +1,26 @@ +package com.sap.sailing.domain.tractracadapter.persistence; + + +import com.mongodb.DBObject; +import com.sap.sailing.domain.tractracadapter.TracTracConfiguration; +import com.sap.sailing.domain.tractracadapter.persistence.impl.MongoObjectFactoryImpl; +import com.sap.sailing.mongodb.Activator; + +/** + * Offers methods to construct {@link DBObject MongoDB objects} from domain objects. + * + * @author Axel Uhl (d043530) + * + */ +public interface MongoObjectFactory { + MongoObjectFactory INSTANCE = new MongoObjectFactoryImpl(Activator.getDefaultInstance().getDB()); + + /** + * 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()} called for the same database + * will return an equal tracTracConfiguration in its results. + */ + void storeTracTracConfiguration(TracTracConfiguration tracTracConfiguration); + +} diff --git a/java/com.sap.sailing.domain.tractracadapter.persistence/src/com/sap/sailing/domain/tractracadapter/persistence/impl/CollectionNames.java b/java/com.sap.sailing.domain.tractracadapter.persistence/src/com/sap/sailing/domain/tractracadapter/persistence/impl/CollectionNames.java new file mode 100755 index 00000000000..d5df24a3843 --- /dev/null +++ b/java/com.sap.sailing.domain.tractracadapter.persistence/src/com/sap/sailing/domain/tractracadapter/persistence/impl/CollectionNames.java @@ -0,0 +1,5 @@ +package com.sap.sailing.domain.tractracadapter.persistence.impl; + +public enum CollectionNames { + TRACTRAC_CONFIGURATIONS +} diff --git a/java/com.sap.sailing.domain.tractracadapter.persistence/src/com/sap/sailing/domain/tractracadapter/persistence/impl/DomainObjectFactoryImpl.java b/java/com.sap.sailing.domain.tractracadapter.persistence/src/com/sap/sailing/domain/tractracadapter/persistence/impl/DomainObjectFactoryImpl.java new file mode 100755 index 00000000000..67e7ac0332c --- /dev/null +++ b/java/com.sap.sailing.domain.tractracadapter.persistence/src/com/sap/sailing/domain/tractracadapter/persistence/impl/DomainObjectFactoryImpl.java @@ -0,0 +1,49 @@ +package com.sap.sailing.domain.tractracadapter.persistence.impl; + +import java.util.ArrayList; +import java.util.List; +import java.util.logging.Level; +import java.util.logging.Logger; + +import com.mongodb.DB; +import com.mongodb.DBCollection; +import com.mongodb.DBObject; +import com.sap.sailing.domain.tractracadapter.DomainFactory; +import com.sap.sailing.domain.tractracadapter.TracTracConfiguration; +import com.sap.sailing.domain.tractracadapter.persistence.DomainObjectFactory; + +public class DomainObjectFactoryImpl implements DomainObjectFactory { + private static final Logger logger = Logger.getLogger(DomainObjectFactoryImpl.class.getName()); + + private final DB database; + + public DomainObjectFactoryImpl(DB db) { + super(); + this.database = db; + } + + @Override + public Iterable getTracTracConfigurations() { + List result = new ArrayList(); + try { + DBCollection ttConfigs = database.getCollection(CollectionNames.TRACTRAC_CONFIGURATIONS.name()); + for (DBObject o : ttConfigs.find()) { + TracTracConfiguration ttConfig = loadTracTracConfiguration(o); + result.add(ttConfig); + } + } catch (Throwable t) { + // something went wrong during DB access; report, then use empty new wind track + logger.log(Level.SEVERE, "Error connecting to MongoDB, unable to load recorded TracTrac configurations. Check MongoDB settings."); + logger.throwing(DomainObjectFactoryImpl.class.getName(), "getTracTracConfigurations", t); + } + return result; + } + + private TracTracConfiguration loadTracTracConfiguration(DBObject object) { + return DomainFactory.INSTANCE.createTracTracConfiguration((String) object.get(FieldNames.TT_CONFIG_NAME.name()), + (String) object.get(FieldNames.TT_CONFIG_JSON_URL.name()), + (String) object.get(FieldNames.TT_CONFIG_LIVE_DATA_URI.name()), + (String) object.get(FieldNames.TT_CONFIG_STORED_DATA_URI.name())); + } + +} diff --git a/java/com.sap.sailing.domain.tractracadapter.persistence/src/com/sap/sailing/domain/tractracadapter/persistence/impl/FieldNames.java b/java/com.sap.sailing.domain.tractracadapter.persistence/src/com/sap/sailing/domain/tractracadapter/persistence/impl/FieldNames.java new file mode 100755 index 00000000000..aa34ed83f5b --- /dev/null +++ b/java/com.sap.sailing.domain.tractracadapter.persistence/src/com/sap/sailing/domain/tractracadapter/persistence/impl/FieldNames.java @@ -0,0 +1,7 @@ +package com.sap.sailing.domain.tractracadapter.persistence.impl; + +public enum FieldNames { + // TracTrac configuration parameters: + TT_CONFIG_NAME, TT_CONFIG_JSON_URL, TT_CONFIG_LIVE_DATA_URI, TT_CONFIG_STORED_DATA_URI, + +} diff --git a/java/com.sap.sailing.domain.tractracadapter.persistence/src/com/sap/sailing/domain/tractracadapter/persistence/impl/MongoObjectFactoryImpl.java b/java/com.sap.sailing.domain.tractracadapter.persistence/src/com/sap/sailing/domain/tractracadapter/persistence/impl/MongoObjectFactoryImpl.java new file mode 100755 index 00000000000..cbb238ded20 --- /dev/null +++ b/java/com.sap.sailing.domain.tractracadapter.persistence/src/com/sap/sailing/domain/tractracadapter/persistence/impl/MongoObjectFactoryImpl.java @@ -0,0 +1,33 @@ +package com.sap.sailing.domain.tractracadapter.persistence.impl; + +import com.mongodb.BasicDBObject; +import com.mongodb.DB; +import com.mongodb.DBCollection; +import com.mongodb.DBObject; +import com.sap.sailing.domain.tractracadapter.TracTracConfiguration; +import com.sap.sailing.domain.tractracadapter.persistence.MongoObjectFactory; + +public class MongoObjectFactoryImpl implements MongoObjectFactory { + private final DB database; + + public MongoObjectFactoryImpl(DB database) { + super(); + this.database = database; + } + + @Override + public void storeTracTracConfiguration(TracTracConfiguration tracTracConfiguration) { + DBCollection ttConfigCollection = database.getCollection(CollectionNames.TRACTRAC_CONFIGURATIONS.name()); + ttConfigCollection.ensureIndex(CollectionNames.TRACTRAC_CONFIGURATIONS.name()); + BasicDBObject result = new BasicDBObject(); + result.put(FieldNames.TT_CONFIG_NAME.name(), tracTracConfiguration.getName()); + for (DBObject equallyNamedConfig : ttConfigCollection.find(result)) { + ttConfigCollection.remove(equallyNamedConfig); + } + result.put(FieldNames.TT_CONFIG_JSON_URL.name(), tracTracConfiguration.getJSONURL()); + result.put(FieldNames.TT_CONFIG_LIVE_DATA_URI.name(), tracTracConfiguration.getLiveDataURI()); + result.put(FieldNames.TT_CONFIG_STORED_DATA_URI.name(), tracTracConfiguration.getStoredDataURI()); + ttConfigCollection.insert(result); + } + +} diff --git a/java/com.sap.sailing.gwt.ui/META-INF/MANIFEST.MF b/java/com.sap.sailing.gwt.ui/META-INF/MANIFEST.MF index 42ac7cc8f68..b09cb29fe46 100755 --- a/java/com.sap.sailing.gwt.ui/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.gwt.ui/META-INF/MANIFEST.MF @@ -21,7 +21,10 @@ Require-Bundle: javax.servlet;bundle-version="2.5.0", com.sap.ui.phoenix.core, org.eclipse.osgi.services, com.sap.sailing.httpservicetracker, - com.sap.sailing.domain.swisstimingadapter + com.sap.sailing.domain.swisstimingadapter, + com.sap.sailing.domain.persistence, + com.sap.sailing.domain.swisstimingadapter.persistence, + com.sap.sailing.domain.tractracadapter.persistence Bundle-ClassPath: lib/gwt-maps.jar, lib/gwt-visualization.jar, lib/gwt-servlet.jar, diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java index d4e35204726..f3fdf4e12aa 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java @@ -46,6 +46,9 @@ import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sailing.domain.leaderboard.Leaderboard.Entry; import com.sap.sailing.domain.leaderboard.RaceInLeaderboard; import com.sap.sailing.domain.leaderboard.ScoreCorrection.MaxPointsReason; +import com.sap.sailing.domain.persistence.DomainObjectFactory; +import com.sap.sailing.domain.persistence.MongoObjectFactory; +import com.sap.sailing.domain.persistence.MongoWindStoreFactory; import com.sap.sailing.domain.swisstimingadapter.Race; import com.sap.sailing.domain.swisstimingadapter.SailMasterConnector; import com.sap.sailing.domain.swisstimingadapter.SwissTimingConfiguration; @@ -88,9 +91,6 @@ import com.sap.sailing.gwt.ui.shared.TracTracConfigurationDAO; import com.sap.sailing.gwt.ui.shared.WindDAO; import com.sap.sailing.gwt.ui.shared.WindInfoForRaceDAO; import com.sap.sailing.gwt.ui.shared.WindTrackInfoDAO; -import com.sap.sailing.mongodb.DomainObjectFactory; -import com.sap.sailing.mongodb.MongoObjectFactory; -import com.sap.sailing.mongodb.MongoWindStoreFactory; import com.sap.sailing.server.RacingEventService; import com.sap.sailing.util.CountryCode; @@ -106,15 +106,27 @@ public class SailingServiceImpl extends RemoteServiceServlet implements SailingS private final MongoObjectFactory mongoObjectFactory; + private final com.sap.sailing.domain.swisstimingadapter.persistence.MongoObjectFactory swissTimingMongoObjectFactory; + + private final com.sap.sailing.domain.tractracadapter.persistence.MongoObjectFactory tractracMongoObjectFactory; + private final DomainObjectFactory domainObjectFactory; private final SwissTimingFactory swissTimingFactory; + private final com.sap.sailing.domain.swisstimingadapter.persistence.DomainObjectFactory swissTimingDomainObjectFactory; + + private final com.sap.sailing.domain.tractracadapter.persistence.DomainObjectFactory tractracDomainObjectFactory; + public SailingServiceImpl() { BundleContext context = Activator.getDefault(); racingEventServiceTracker = createAndOpenRacingEventServiceTracker(context); mongoObjectFactory = MongoObjectFactory.INSTANCE; domainObjectFactory = DomainObjectFactory.INSTANCE; + swissTimingDomainObjectFactory = com.sap.sailing.domain.swisstimingadapter.persistence.DomainObjectFactory.INSTANCE; + tractracDomainObjectFactory = com.sap.sailing.domain.tractracadapter.persistence.DomainObjectFactory.INSTANCE; + swissTimingMongoObjectFactory = com.sap.sailing.domain.swisstimingadapter.persistence.MongoObjectFactory.INSTANCE; + tractracMongoObjectFactory = com.sap.sailing.domain.tractracadapter.persistence.MongoObjectFactory.INSTANCE; swissTimingFactory = SwissTimingFactory.INSTANCE; } @@ -348,7 +360,7 @@ public class SailingServiceImpl extends RemoteServiceServlet implements SailingS @Override public List getPreviousTracTracConfigurations() throws Exception { - Iterable configs = domainObjectFactory.getTracTracConfigurations(); + Iterable configs = tractracDomainObjectFactory.getTracTracConfigurations(); List result = new ArrayList(); for (TracTracConfiguration ttConfig : configs) { result.add(new TracTracConfigurationDAO(ttConfig.getName(), ttConfig.getJSONURL().toString(), @@ -360,7 +372,7 @@ public class SailingServiceImpl extends RemoteServiceServlet implements SailingS @Override public void storeTracTracConfiguration(String name, String jsonURL, String liveDataURI, String storedDataURI) throws Exception { DomainFactory domainFactory = DomainFactory.INSTANCE; - mongoObjectFactory.storeTracTracConfiguration(domainFactory.createTracTracConfiguration(name, jsonURL, liveDataURI, storedDataURI)); + tractracMongoObjectFactory.storeTracTracConfiguration(domainFactory.createTracTracConfiguration(name, jsonURL, liveDataURI, storedDataURI)); } @Override @@ -1002,7 +1014,7 @@ public class SailingServiceImpl extends RemoteServiceServlet implements SailingS @Override public List getPreviousSwissTimingConfigurations() { - Iterable configs = domainObjectFactory.getSwissTimingConfigurations(); + Iterable configs = swissTimingDomainObjectFactory.getSwissTimingConfigurations(); List result = new ArrayList(); for (SwissTimingConfiguration stConfig : configs) { result.add(new SwissTimingConfigurationDAO(stConfig.getName(), stConfig.getHostname(), stConfig.getPort())); @@ -1024,7 +1036,7 @@ public class SailingServiceImpl extends RemoteServiceServlet implements SailingS @Override public void storeSwissTimingConfiguration(String configName, String hostname, int port) { - mongoObjectFactory.storeSwissTimingConfiguration(swissTimingFactory.createSwissTimingConfiguration(configName, hostname, port)); + swissTimingMongoObjectFactory.storeSwissTimingConfiguration(swissTimingFactory.createSwissTimingConfiguration(configName, hostname, port)); } @Override diff --git a/java/com.sap.sailing.mongodb.test/META-INF/MANIFEST.MF b/java/com.sap.sailing.mongodb.test/META-INF/MANIFEST.MF index 77a62892ae9..6a1e584bf29 100755 --- a/java/com.sap.sailing.mongodb.test/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.mongodb.test/META-INF/MANIFEST.MF @@ -12,4 +12,5 @@ Require-Bundle: org.junit4;bundle-version="4.8.1", com.sap.sailing.domain.test, com.tractrac.clientmodule, com.sap.sailing.domain.tractracadapter, - org.eclipse.osgi + org.eclipse.osgi, + com.sap.sailing.domain.persistence diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/AbstractMongoDBTest.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/AbstractMongoDBTest.java index 7cde9f1f739..cb8068e13ba 100755 --- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/AbstractMongoDBTest.java +++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/AbstractMongoDBTest.java @@ -9,7 +9,7 @@ import org.junit.Before; import com.mongodb.DB; import com.mongodb.Mongo; import com.mongodb.MongoException; -import com.sap.sailing.mongodb.impl.Activator; +import com.sap.sailing.mongodb.Activator; public abstract class AbstractMongoDBTest implements MongoDBTest { protected Mongo mongo; diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/ConvertWindData.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/ConvertWindData.java index 2e0d769edfe..95cadfdc21d 100755 --- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/ConvertWindData.java +++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/ConvertWindData.java @@ -3,9 +3,9 @@ package com.sap.sailing.mongodb.test; import com.mongodb.DBCollection; import com.mongodb.DBObject; import com.sap.sailing.domain.base.impl.DegreeBearingImpl; -import com.sap.sailing.mongodb.impl.Activator; -import com.sap.sailing.mongodb.impl.FieldNames; -import com.sap.sailing.mongodb.impl.MongoObjectFactoryImpl; +import com.sap.sailing.domain.persistence.impl.FieldNames; +import com.sap.sailing.domain.persistence.impl.MongoObjectFactoryImpl; +import com.sap.sailing.mongodb.Activator; /** * Reverses the wind directions of all wind records stored in the MongoDB that is obtained using diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingLeaderboards.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingLeaderboards.java index 96f4c154af4..1a5877b45ce 100755 --- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingLeaderboards.java +++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingLeaderboards.java @@ -22,10 +22,10 @@ import com.sap.sailing.domain.leaderboard.ScoreCorrection; import com.sap.sailing.domain.leaderboard.impl.LeaderboardImpl; import com.sap.sailing.domain.leaderboard.impl.ResultDiscardingRuleImpl; import com.sap.sailing.domain.leaderboard.impl.ScoreCorrectionImpl; +import com.sap.sailing.domain.persistence.impl.DomainObjectFactoryImpl; +import com.sap.sailing.domain.persistence.impl.MongoObjectFactoryImpl; import com.sap.sailing.domain.test.MockedTrackedRaceWithFixedRank; import com.sap.sailing.domain.tracking.TrackedRace; -import com.sap.sailing.mongodb.impl.DomainObjectFactoryImpl; -import com.sap.sailing.mongodb.impl.MongoObjectFactoryImpl; import com.sap.sailing.util.Util; public class TestStoringAndRetrievingLeaderboards extends AbstractMongoDBTest { 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 008cb88f915..b6dad7e53c2 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 @@ -18,12 +18,12 @@ import com.sap.sailing.domain.base.impl.DegreeBearingImpl; import com.sap.sailing.domain.base.impl.DegreePosition; import com.sap.sailing.domain.base.impl.KnotSpeedWithBearingImpl; import com.sap.sailing.domain.base.impl.MillisecondsTimePoint; +import com.sap.sailing.domain.persistence.DomainObjectFactory; +import com.sap.sailing.domain.persistence.MongoObjectFactory; +import com.sap.sailing.domain.persistence.impl.DomainObjectFactoryImpl; +import com.sap.sailing.domain.persistence.impl.MongoObjectFactoryImpl; 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.MongoObjectFactoryImpl; public class TestStoringAndRetrievingWindData extends AbstractMongoDBTest { private static final String WIND_TEST_COLLECTION = "wind_test_collection"; diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingWindTracksTest.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingWindTracksTest.java index a29ffa2b573..a79b924fd83 100755 --- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingWindTracksTest.java +++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingWindTracksTest.java @@ -21,6 +21,8 @@ import com.sap.sailing.domain.base.impl.DegreeBearingImpl; import com.sap.sailing.domain.base.impl.DegreePosition; import com.sap.sailing.domain.base.impl.KnotSpeedWithBearingImpl; import com.sap.sailing.domain.base.impl.MillisecondsTimePoint; +import com.sap.sailing.domain.persistence.impl.DomainObjectFactoryImpl; +import com.sap.sailing.domain.persistence.impl.MongoObjectFactoryImpl; import com.sap.sailing.domain.test.AbstractTracTracLiveTest; import com.sap.sailing.domain.tracking.DynamicTrackedEvent; import com.sap.sailing.domain.tracking.DynamicTrackedRace; @@ -32,9 +34,7 @@ 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.impl.Activator; -import com.sap.sailing.mongodb.impl.DomainObjectFactoryImpl; -import com.sap.sailing.mongodb.impl.MongoObjectFactoryImpl; +import com.sap.sailing.mongodb.Activator; public class TestStoringAndRetrievingWindTracksTest extends AbstractTracTracLiveTest implements MongoDBTest { diff --git a/java/com.sap.sailing.mongodb/META-INF/MANIFEST.MF b/java/com.sap.sailing.mongodb/META-INF/MANIFEST.MF index c3b53d83123..7aaa7cf4f15 100755 --- a/java/com.sap.sailing.mongodb/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.mongodb/META-INF/MANIFEST.MF @@ -10,7 +10,6 @@ Require-Bundle: com.mongodb.driver;bundle-version="2.6.2", org.eclipse.osgi, com.sap.sailing.domain.tractracadapter, com.sap.sailing.domain.swisstimingadapter -Export-Package: com.sap.sailing.mongodb, - com.sap.sailing.mongodb.impl;x-friends:="com.sap.sailing.mongodb.test" +Export-Package: com.sap.sailing.mongodb Bundle-ActivationPolicy: lazy -Bundle-Activator: com.sap.sailing.mongodb.impl.Activator +Bundle-Activator: com.sap.sailing.mongodb.Activator diff --git a/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/impl/Activator.java b/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/Activator.java similarity index 86% rename from java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/impl/Activator.java rename to java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/Activator.java index 73b914ffcdd..ef947c736ac 100755 --- a/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/impl/Activator.java +++ b/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/Activator.java @@ -1,4 +1,4 @@ -package com.sap.sailing.mongodb.impl; +package com.sap.sailing.mongodb; import java.net.UnknownHostException; import java.util.HashMap; @@ -11,7 +11,6 @@ import org.osgi.framework.BundleContext; import com.mongodb.DB; import com.mongodb.Mongo; -import com.sap.sailing.util.Util.Pair; public class Activator implements BundleActivator { private static final Logger logger = Logger.getLogger(Activator.class.getName()); @@ -28,13 +27,13 @@ public class Activator implements BundleActivator { private String defaultHostName; private int defaultPort; private String defaultDatabaseName; - private final Map, Mongo> mongos; + private final Map, Mongo> mongos; public Activator() { defaultHostName = System.getProperty(MONGO_HOSTNAME, "127.0.0.1"); defaultPort = Integer.valueOf(System.getProperty(MONGO_PORT, "27017")); defaultDatabaseName = System.getProperty(MONGO_DB_NAME, DEFAULT_DB_NAME); - mongos = new HashMap, Mongo>(); + mongos = new HashMap, Mongo>(); } @Override @@ -58,7 +57,6 @@ public class Activator implements BundleActivator { @Override public void stop(BundleContext context) throws Exception { - // TODO Auto-generated method stub } @@ -71,7 +69,7 @@ public class Activator implements BundleActivator { } private synchronized DB getDB(String hostname, int port, String dbName) throws UnknownHostException { - Pair key = new Pair(hostname, port); + com.sap.sailing.util.Util.Pair key = new com.sap.sailing.util.Util.Pair(hostname, port); Mongo mongo = mongos.get(key); if (mongo == null) { mongo = new Mongo(hostname, port); diff --git a/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/impl/CollectionNames.java b/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/impl/CollectionNames.java deleted file mode 100755 index 98cbfb97ffe..00000000000 --- a/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/impl/CollectionNames.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.sap.sailing.mongodb.impl; - -public enum CollectionNames { - WIND_TRACKS, TRACTRAC_CONFIGURATIONS, LEADERBOARDS, SWISSTIMING_CONFIGURATIONS; -} diff --git a/java/com.sap.sailing.server/META-INF/MANIFEST.MF b/java/com.sap.sailing.server/META-INF/MANIFEST.MF index 0a45e82fe8f..78710a6b3f5 100755 --- a/java/com.sap.sailing.server/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.server/META-INF/MANIFEST.MF @@ -20,6 +20,7 @@ Require-Bundle: org.eclipse.equinox.http.registry;bundle-version="1.1.1", com.mongodb.driver;bundle-version="2.6.2", org.eclipse.osgi.services;bundle-version="3.3.0", com.sap.sailing.httpservicetracker, - com.sap.sailing.domain.swisstimingadapter + com.sap.sailing.domain.swisstimingadapter, + com.sap.sailing.domain.persistence Bundle-ClassPath: . Export-Package: com.sap.sailing.server diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/AdminApp.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/AdminApp.java index 7757c1ef621..7cf1f499bf6 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/AdminApp.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/AdminApp.java @@ -31,6 +31,9 @@ import com.sap.sailing.domain.base.impl.DegreeBearingImpl; import com.sap.sailing.domain.base.impl.DegreePosition; import com.sap.sailing.domain.base.impl.KnotSpeedWithBearingImpl; import com.sap.sailing.domain.base.impl.MillisecondsTimePoint; +import com.sap.sailing.domain.persistence.DomainObjectFactory; +import com.sap.sailing.domain.persistence.MongoObjectFactory; +import com.sap.sailing.domain.persistence.MongoWindStoreFactory; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.NoWindException; import com.sap.sailing.domain.tracking.TrackedRace; @@ -41,9 +44,6 @@ import com.sap.sailing.domain.tracking.WindTrack; import com.sap.sailing.domain.tracking.impl.EmptyWindStore; import com.sap.sailing.domain.tracking.impl.WindImpl; import com.sap.sailing.domain.tractracadapter.RaceRecord; -import com.sap.sailing.mongodb.DomainObjectFactory; -import com.sap.sailing.mongodb.MongoObjectFactory; -import com.sap.sailing.mongodb.MongoWindStoreFactory; import com.sap.sailing.util.InvalidDateException; import com.sap.sailing.util.Util.Triple; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventServiceImpl.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventServiceImpl.java index 552c5723a72..55a40759690 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventServiceImpl.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventServiceImpl.java @@ -30,6 +30,8 @@ import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sailing.domain.leaderboard.impl.LeaderboardImpl; import com.sap.sailing.domain.leaderboard.impl.ResultDiscardingRuleImpl; import com.sap.sailing.domain.leaderboard.impl.ScoreCorrectionImpl; +import com.sap.sailing.domain.persistence.DomainObjectFactory; +import com.sap.sailing.domain.persistence.MongoObjectFactory; import com.sap.sailing.domain.swisstimingadapter.SwissTimingFactory; import com.sap.sailing.domain.tracking.DynamicTrackedEvent; import com.sap.sailing.domain.tracking.RaceHandle; @@ -44,8 +46,6 @@ import com.sap.sailing.domain.tractracadapter.JSONService; import com.sap.sailing.domain.tractracadapter.RaceRecord; import com.sap.sailing.domain.tractracadapter.Receiver; import com.sap.sailing.expeditionconnector.ExpeditionWindTrackerFactory; -import com.sap.sailing.mongodb.DomainObjectFactory; -import com.sap.sailing.mongodb.MongoObjectFactory; import com.sap.sailing.util.Util.Pair; import com.sap.sailing.util.Util.Triple;