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;