diff --git a/.gitignore b/.gitignore index 7362c3200ba..1b248ce6abd 100644 --- a/.gitignore +++ b/.gitignore @@ -14,8 +14,6 @@ java/com.sap.sse.security.ui/WEB-INF/deploy/* sailing_debug0* dist build -/java/.settings/org.eclipse.jdt.core.prefs -/java/com.sap.sailing.server.gateway.serialization.test/.settings/*.prefs .DS_Store java/com.sap.sailing.simulator/bin/com/sap/sailing/simulator/Simulator.gwt.xml /mobile/com.sap.sailing.racecommittee.app/res/values/keys.xml diff --git a/configuration/launchhudsonslave-java11 b/configuration/launchhudsonslave-java11 index 0dc430eef52..eb3aaf6bea5 100755 --- a/configuration/launchhudsonslave-java11 +++ b/configuration/launchhudsonslave-java11 @@ -1,7 +1,7 @@ #!/bin/bash AWS=/root/.local/bin/aws REGION=eu-west-1 -HUDSON_SLAVE_AMI_ID=ami-0afdd1680ad31c094 +HUDSON_SLAVE_AMI_ID=ami-0b2277821ed687ab8 echo Launching instance... instanceid=`$AWS ec2 run-instances --image-id $HUDSON_SLAVE_AMI_ID --count 1 --instance-type c5d.4xlarge --key-name Axel --security-groups "Sailing Analytics App" --region $REGION --placement AvailabilityZone=eu-west-1c --tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=Hudson Ubuntu Slave Java 11}]' --instance-initiated-shutdown-behavior terminate | tee /tmp/slavelaunch.out | jq .Instances[0].InstanceId | sed -e 's/"//g'` if [ "$instanceid" = "" ]; then diff --git a/java/com.sap.sailing.dashboards.gwt/META-INF/MANIFEST.MF b/java/com.sap.sailing.dashboards.gwt/META-INF/MANIFEST.MF index 63c2af32dfb..b4844c48c6d 100644 --- a/java/com.sap.sailing.dashboards.gwt/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.dashboards.gwt/META-INF/MANIFEST.MF @@ -7,7 +7,7 @@ Bundle-Activator: com.sap.sailing.dashboards.gwt.server.Activator Bundle-Vendor: SAP Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Require-Bundle: com.sap.sailing.domain, - com.sap.sailing.server, + com.sap.sailing.server.interface, com.google.gwt.dev;bundle-version="2.8.2";resolution:=optional, com.google.gwt.user;bundle-version="2.8.2";resolution:=optional, com.google.gwt.servlet;bundle-version="2.8.2", diff --git a/java/com.sap.sailing.dashboards.gwt/src/main/java/com/sap/sailing/dashboards/gwt/client/actions/GetIDFromRaceThatIsLiveAction.java b/java/com.sap.sailing.dashboards.gwt/src/main/java/com/sap/sailing/dashboards/gwt/client/actions/GetIDFromRaceThatIsLiveAction.java index e7b409ad6f0..cd94ed9c400 100644 --- a/java/com.sap.sailing.dashboards.gwt/src/main/java/com/sap/sailing/dashboards/gwt/client/actions/GetIDFromRaceThatIsLiveAction.java +++ b/java/com.sap.sailing.dashboards.gwt/src/main/java/com/sap/sailing/dashboards/gwt/client/actions/GetIDFromRaceThatIsLiveAction.java @@ -1,8 +1,8 @@ package com.sap.sailing.dashboards.gwt.client.actions; import com.google.gwt.core.shared.GwtIncompatible; -import com.sap.sailing.dashboards.gwt.shared.dispatch.RequiresLiveRaceAction; import com.sap.sailing.dashboards.gwt.shared.dispatch.DashboardDispatchContext; +import com.sap.sailing.dashboards.gwt.shared.dispatch.RequiresLiveRaceAction; import com.sap.sailing.dashboards.gwt.shared.dto.RaceIdDTO; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sse.gwt.dispatch.shared.exceptions.DispatchException; diff --git a/java/com.sap.sailing.dashboards.gwt/src/main/java/com/sap/sailing/dashboards/gwt/client/widgets/startanalysis/DashboardRaceMapResources.java b/java/com.sap.sailing.dashboards.gwt/src/main/java/com/sap/sailing/dashboards/gwt/client/widgets/startanalysis/DashboardRaceMapResources.java index ceaf0392cb6..b8725960bc9 100644 --- a/java/com.sap.sailing.dashboards.gwt/src/main/java/com/sap/sailing/dashboards/gwt/client/widgets/startanalysis/DashboardRaceMapResources.java +++ b/java/com.sap.sailing.dashboards.gwt/src/main/java/com/sap/sailing/dashboards/gwt/client/widgets/startanalysis/DashboardRaceMapResources.java @@ -1,8 +1,8 @@ package com.sap.sailing.dashboards.gwt.client.widgets.startanalysis; import com.google.gwt.resources.client.ImageResource; -import com.sap.sailing.gwt.ui.client.shared.racemap.RaceMapStyle; import com.sap.sailing.gwt.ui.client.shared.racemap.RaceMapResources; +import com.sap.sailing.gwt.ui.client.shared.racemap.RaceMapStyle; /** * @author Alexander Ries (D062114) diff --git a/java/com.sap.sailing.dashboards.gwt/src/main/java/com/sap/sailing/dashboards/gwt/server/DashboardDispatchServlet.java b/java/com.sap.sailing.dashboards.gwt/src/main/java/com/sap/sailing/dashboards/gwt/server/DashboardDispatchServlet.java index 1ab08768e8e..ac9cfd74eec 100644 --- a/java/com.sap.sailing.dashboards.gwt/src/main/java/com/sap/sailing/dashboards/gwt/server/DashboardDispatchServlet.java +++ b/java/com.sap.sailing.dashboards.gwt/src/main/java/com/sap/sailing/dashboards/gwt/server/DashboardDispatchServlet.java @@ -10,7 +10,7 @@ import com.sap.sailing.dashboards.gwt.shared.dispatch.DashboardDispatchContext; import com.sap.sailing.dashboards.gwt.shared.dispatch.impl.DashboardDispatchContextImpl; import com.sap.sailing.domain.polars.PolarDataService; import com.sap.sailing.gwt.ui.server.Activator; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.gwt.dispatch.client.transport.gwtrpc.RequestWrapper; import com.sap.sse.gwt.dispatch.servlets.AbstractDispatchServlet; import com.sap.sse.gwt.dispatch.shared.commands.Action; diff --git a/java/com.sap.sailing.dashboards.gwt/src/main/java/com/sap/sailing/dashboards/gwt/shared/DashboardLiveRaceProvider.java b/java/com.sap.sailing.dashboards.gwt/src/main/java/com/sap/sailing/dashboards/gwt/shared/DashboardLiveRaceProvider.java index 26300b0d47e..ff5533404f6 100644 --- a/java/com.sap.sailing.dashboards.gwt/src/main/java/com/sap/sailing/dashboards/gwt/shared/DashboardLiveRaceProvider.java +++ b/java/com.sap.sailing.dashboards.gwt/src/main/java/com/sap/sailing/dashboards/gwt/shared/DashboardLiveRaceProvider.java @@ -7,7 +7,7 @@ import com.sap.sailing.domain.base.Fleet; import com.sap.sailing.domain.base.RaceColumn; import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sailing.domain.tracking.TrackedRace; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.common.impl.MillisecondsTimePoint; /** diff --git a/java/com.sap.sailing.dashboards.gwt/src/main/java/com/sap/sailing/dashboards/gwt/shared/dispatch/DashboardDispatchContext.java b/java/com.sap.sailing.dashboards.gwt/src/main/java/com/sap/sailing/dashboards/gwt/shared/dispatch/DashboardDispatchContext.java index 3f75a7e2383..8f31b056432 100644 --- a/java/com.sap.sailing.dashboards.gwt/src/main/java/com/sap/sailing/dashboards/gwt/shared/dispatch/DashboardDispatchContext.java +++ b/java/com.sap.sailing.dashboards.gwt/src/main/java/com/sap/sailing/dashboards/gwt/shared/dispatch/DashboardDispatchContext.java @@ -7,7 +7,7 @@ import com.google.gwt.core.shared.GwtIncompatible; import com.sap.sailing.dashboards.gwt.shared.DashboardLiveRaceProvider; import com.sap.sailing.dashboards.gwt.shared.MovingAveragesCache; import com.sap.sailing.domain.polars.PolarDataService; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.gwt.dispatch.client.system.DispatchContext; /** diff --git a/java/com.sap.sailing.dashboards.gwt/src/main/java/com/sap/sailing/dashboards/gwt/shared/dispatch/impl/DashboardDispatchContextImpl.java b/java/com.sap.sailing.dashboards.gwt/src/main/java/com/sap/sailing/dashboards/gwt/shared/dispatch/impl/DashboardDispatchContextImpl.java index 1b091d9aed7..d933150a39c 100644 --- a/java/com.sap.sailing.dashboards.gwt/src/main/java/com/sap/sailing/dashboards/gwt/shared/dispatch/impl/DashboardDispatchContextImpl.java +++ b/java/com.sap.sailing.dashboards.gwt/src/main/java/com/sap/sailing/dashboards/gwt/shared/dispatch/impl/DashboardDispatchContextImpl.java @@ -11,7 +11,7 @@ import com.sap.sailing.dashboards.gwt.shared.MovingAveragesCache; import com.sap.sailing.dashboards.gwt.shared.dispatch.DashboardDispatchContext; import com.sap.sailing.domain.polars.PolarDataService; import com.sap.sailing.gwt.server.HomeServiceUtil; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.gwt.dispatch.shared.exceptions.DispatchException; /** diff --git a/java/com.sap.sailing.datamining.provider/META-INF/MANIFEST.MF b/java/com.sap.sailing.datamining.provider/META-INF/MANIFEST.MF index edf138ae920..44a089544f2 100755 --- a/java/com.sap.sailing.datamining.provider/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.datamining.provider/META-INF/MANIFEST.MF @@ -6,8 +6,8 @@ Bundle-Version: 1.0.0.qualifier Bundle-Vendor: SAP Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Require-Bundle: com.sap.sse.datamining, - com.sap.sailing.server, - com.sap.sse.common + com.sap.sse.common, + com.sap.sailing.server.interface Import-Package: org.osgi.framework;version="1.8.0", org.osgi.util.tracker Export-Package: com.sap.sailing.datamining.provider diff --git a/java/com.sap.sailing.datamining.provider/src/com/sap/sailing/datamining/provider/RacingEventServiceProvider.java b/java/com.sap.sailing.datamining.provider/src/com/sap/sailing/datamining/provider/RacingEventServiceProvider.java index fd733de31fc..efdf6d6c380 100644 --- a/java/com.sap.sailing.datamining.provider/src/com/sap/sailing/datamining/provider/RacingEventServiceProvider.java +++ b/java/com.sap.sailing.datamining.provider/src/com/sap/sailing/datamining/provider/RacingEventServiceProvider.java @@ -3,7 +3,7 @@ package com.sap.sailing.datamining.provider; import org.osgi.framework.BundleContext; import org.osgi.util.tracker.ServiceTracker; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.datamining.impl.AbstractDataSourceProvider; public class RacingEventServiceProvider extends AbstractDataSourceProvider { diff --git a/java/com.sap.sailing.datamining.test/src/com/sap/sailing/datamining/impl/components/TestLeaderboardGroupRetrievalProcessor.java b/java/com.sap.sailing.datamining.test/src/com/sap/sailing/datamining/impl/components/TestLeaderboardGroupRetrievalProcessor.java index 6ea1f34e21b..62e72456bc6 100644 --- a/java/com.sap.sailing.datamining.test/src/com/sap/sailing/datamining/impl/components/TestLeaderboardGroupRetrievalProcessor.java +++ b/java/com.sap.sailing.datamining.test/src/com/sap/sailing/datamining/impl/components/TestLeaderboardGroupRetrievalProcessor.java @@ -21,7 +21,7 @@ import com.sap.sailing.datamining.test.util.NullProcessor; import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sailing.domain.leaderboard.LeaderboardGroup; import com.sap.sailing.domain.leaderboard.impl.LeaderboardGroupImpl; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.datamining.components.Processor; public class TestLeaderboardGroupRetrievalProcessor { diff --git a/java/com.sap.sailing.datamining/META-INF/MANIFEST.MF b/java/com.sap.sailing.datamining/META-INF/MANIFEST.MF index 49b711248eb..0c799b7a01f 100644 --- a/java/com.sap.sailing.datamining/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.datamining/META-INF/MANIFEST.MF @@ -5,7 +5,7 @@ Bundle-SymbolicName: com.sap.sailing.datamining Bundle-Version: 1.0.0.qualifier Bundle-Vendor: SAP Bundle-RequiredExecutionEnvironment: JavaSE-1.8 -Import-Package: com.sap.sailing.server, +Import-Package: com.sap.sailing.server.interfaces, org.osgi.framework;version="1.7.0" Export-Package: com.sap.sailing.datamining, com.sap.sailing.datamining.data diff --git a/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/SailingDataRetrievalChainDefinitions.java b/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/SailingDataRetrievalChainDefinitions.java index 0cedaa8921f..eba3288aeb4 100644 --- a/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/SailingDataRetrievalChainDefinitions.java +++ b/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/SailingDataRetrievalChainDefinitions.java @@ -42,7 +42,7 @@ import com.sap.sailing.datamining.shared.ManeuverSettings; import com.sap.sailing.datamining.shared.ManeuverSettingsImpl; import com.sap.sailing.datamining.shared.ManeuverSpeedDetailsSettings; import com.sap.sailing.datamining.shared.ManeuverSpeedDetailsSettingsImpl; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.datamining.components.DataRetrieverChainDefinition; import com.sap.sse.datamining.impl.components.SimpleDataRetrieverChainDefinition; diff --git a/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/SailingPredefinedQueries.java b/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/SailingPredefinedQueries.java index 18e4e6c63d2..5e67cd180af 100644 --- a/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/SailingPredefinedQueries.java +++ b/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/SailingPredefinedQueries.java @@ -19,7 +19,7 @@ import com.sap.sailing.datamining.impl.components.TrackedLegOfCompetitorRetrieva import com.sap.sailing.datamining.impl.components.TrackedLegRetrievalProcessor; import com.sap.sailing.datamining.impl.components.TrackedRaceRetrievalProcessor; import com.sap.sailing.domain.common.LegType; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.common.Distance; import com.sap.sse.datamining.shared.data.AverageWithStats; import com.sap.sse.datamining.shared.dto.StatisticQueryDefinitionDTO; diff --git a/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/components/LeaderboardGroupRetrievalProcessor.java b/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/components/LeaderboardGroupRetrievalProcessor.java index 5870069bec3..126f24dbe1d 100644 --- a/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/components/LeaderboardGroupRetrievalProcessor.java +++ b/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/components/LeaderboardGroupRetrievalProcessor.java @@ -9,7 +9,7 @@ import com.sap.sailing.datamining.data.HasLeaderboardGroupContext; import com.sap.sailing.datamining.impl.data.LeaderboardGroupWithContext; import com.sap.sailing.domain.leaderboard.LeaderboardGroup; import com.sap.sailing.domain.polars.PolarDataService; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.datamining.components.Processor; import com.sap.sse.datamining.impl.components.AbstractRetrievalProcessor; diff --git a/java/com.sap.sailing.domain.igtimiadapter.persistence/META-INF/MANIFEST.MF b/java/com.sap.sailing.domain.igtimiadapter.persistence/META-INF/MANIFEST.MF index e5f8f73c44b..e714d37ba16 100644 --- a/java/com.sap.sailing.domain.igtimiadapter.persistence/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.domain.igtimiadapter.persistence/META-INF/MANIFEST.MF @@ -7,7 +7,7 @@ Bundle-Version: 1.0.0.qualifier Bundle-Vendor: SAP Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Require-Bundle: com.sap.sse.mongodb, - org.mongodb.mongo-java-driver;bundle-version="2.13.0" + org.eclipse.orbit.mongodb;bundle-version="3.2.2" Export-Package: com.sap.sailing.domain.igtimiadapter.persistence Import-Package: com.sap.sailing.domain.common.security, com.sap.sse.security, diff --git a/java/com.sap.sailing.domain.igtimiadapter.persistence/src/com/sap/sailing/domain/igtimiadapter/persistence/impl/DomainObjectFactoryImpl.java b/java/com.sap.sailing.domain.igtimiadapter.persistence/src/com/sap/sailing/domain/igtimiadapter/persistence/impl/DomainObjectFactoryImpl.java index 45f79453834..64f1a5e363c 100644 --- a/java/com.sap.sailing.domain.igtimiadapter.persistence/src/com/sap/sailing/domain/igtimiadapter/persistence/impl/DomainObjectFactoryImpl.java +++ b/java/com.sap.sailing.domain.igtimiadapter.persistence/src/com/sap/sailing/domain/igtimiadapter/persistence/impl/DomainObjectFactoryImpl.java @@ -2,26 +2,27 @@ package com.sap.sailing.domain.igtimiadapter.persistence.impl; import java.util.ArrayList; import java.util.List; -import com.mongodb.BasicDBObject; -import com.mongodb.DB; -import com.mongodb.DBCollection; -import com.mongodb.DBObject; + +import org.bson.Document; + +import com.mongodb.client.MongoCollection; +import com.mongodb.client.MongoDatabase; import com.sap.sailing.domain.igtimiadapter.persistence.DomainObjectFactory; public class DomainObjectFactoryImpl implements DomainObjectFactory { - private final DB db; + private final MongoDatabase db; - public DomainObjectFactoryImpl(DB db) { + public DomainObjectFactoryImpl(MongoDatabase db) { this.db = db; } @Override public Iterable getAccessTokens() { List result = new ArrayList<>(); - final DBCollection accessTokenCollection = db.getCollection(CollectionNames.IGTIMI_ACCESS_TOKENS.name()); - accessTokenCollection.createIndex(new BasicDBObject(FieldNames.IGTIMI_ACCESS_TOKENS_ACCESS_TOKEN.name(), 1)); + final MongoCollection accessTokenCollection = db.getCollection(CollectionNames.IGTIMI_ACCESS_TOKENS.name()); + accessTokenCollection.createIndex(new Document(FieldNames.IGTIMI_ACCESS_TOKENS_ACCESS_TOKEN.name(), 1)); for (Object o : accessTokenCollection.find()) { - result.add((String) ((DBObject) o).get(FieldNames.IGTIMI_ACCESS_TOKENS_ACCESS_TOKEN.name())); + result.add((String) ((Document) o).get(FieldNames.IGTIMI_ACCESS_TOKENS_ACCESS_TOKEN.name())); } return result; } diff --git a/java/com.sap.sailing.domain.igtimiadapter.persistence/src/com/sap/sailing/domain/igtimiadapter/persistence/impl/MongoObjectFactoryImpl.java b/java/com.sap.sailing.domain.igtimiadapter.persistence/src/com/sap/sailing/domain/igtimiadapter/persistence/impl/MongoObjectFactoryImpl.java index d0d72107bbc..8ab5b22c7ea 100755 --- a/java/com.sap.sailing.domain.igtimiadapter.persistence/src/com/sap/sailing/domain/igtimiadapter/persistence/impl/MongoObjectFactoryImpl.java +++ b/java/com.sap.sailing.domain.igtimiadapter.persistence/src/com/sap/sailing/domain/igtimiadapter/persistence/impl/MongoObjectFactoryImpl.java @@ -1,31 +1,33 @@ package com.sap.sailing.domain.igtimiadapter.persistence.impl; -import com.mongodb.BasicDBObject; -import com.mongodb.DB; +import org.bson.Document; + import com.mongodb.WriteConcern; +import com.mongodb.client.MongoDatabase; +import com.mongodb.client.model.UpdateOptions; import com.sap.sailing.domain.igtimiadapter.persistence.MongoObjectFactory; public class MongoObjectFactoryImpl implements MongoObjectFactory { - private final DB db; + private final MongoDatabase db; - public MongoObjectFactoryImpl(DB db) { + public MongoObjectFactoryImpl(MongoDatabase db) { this.db = db; } @Override public void storeAccessToken(String accessToken) { - final BasicDBObject basicDBObject = getAccessTokenDBQuery(accessToken); - db.getCollection(CollectionNames.IGTIMI_ACCESS_TOKENS.name()).update(basicDBObject, basicDBObject, /* upsert */ true, /* multi */ false, WriteConcern.SAFE); + final Document basicDBObject = getAccessTokenDBQuery(accessToken); + db.getCollection(CollectionNames.IGTIMI_ACCESS_TOKENS.name()).withWriteConcern(WriteConcern.ACKNOWLEDGED).replaceOne(basicDBObject, basicDBObject, new UpdateOptions().upsert(true)); } - private BasicDBObject getAccessTokenDBQuery(String accessToken) { - final BasicDBObject basicDBObject = new BasicDBObject(FieldNames.IGTIMI_ACCESS_TOKENS_ACCESS_TOKEN.name(), accessToken); + private Document getAccessTokenDBQuery(String accessToken) { + final Document basicDBObject = new Document(FieldNames.IGTIMI_ACCESS_TOKENS_ACCESS_TOKEN.name(), accessToken); return basicDBObject; } @Override public void removeAccessToken(String accessToken) { - final BasicDBObject basicDBObject = getAccessTokenDBQuery(accessToken); - db.getCollection(CollectionNames.IGTIMI_ACCESS_TOKENS.name()).remove(basicDBObject, WriteConcern.SAFE); + final Document basicDBObject = getAccessTokenDBQuery(accessToken); + db.getCollection(CollectionNames.IGTIMI_ACCESS_TOKENS.name()).withWriteConcern(WriteConcern.ACKNOWLEDGED).deleteOne(basicDBObject); } } diff --git a/java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/impl/FixFactoryTest.java b/java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/impl/FixFactoryTest.java index b88c57d41c4..1294145e28e 100755 --- a/java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/impl/FixFactoryTest.java +++ b/java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/impl/FixFactoryTest.java @@ -21,7 +21,7 @@ import com.sap.sse.common.Util; import com.sap.sse.common.impl.MillisecondsTimePoint; public class FixFactoryTest { - @Rule public Timeout AbstractTracTracLiveTestTimeout = new Timeout(2 * 60 * 1000); + @Rule public Timeout AbstractTracTracLiveTestTimeout = Timeout.millis(2 * 60 * 1000); private static final String demoJson = "{\n"+ "\"EA-AK-AAAG\": {\n"+ diff --git a/java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/impl/WebSocketServerListTest.java b/java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/impl/WebSocketServerListTest.java index 83be473e440..a717b280257 100755 --- a/java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/impl/WebSocketServerListTest.java +++ b/java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/impl/WebSocketServerListTest.java @@ -18,7 +18,7 @@ import com.sap.sse.mongodb.MongoDBConfiguration; import com.sap.sse.mongodb.MongoDBService; public class WebSocketServerListTest { - @Rule public Timeout AbstractTracTracLiveTestTimeout = new Timeout(2 * 60 * 1000); + @Rule public Timeout AbstractTracTracLiveTestTimeout = Timeout.millis(2 * 60 * 1000); @Test public void testWebSocketServerList() throws IllegalStateException, ClientProtocolException, IOException, ParseException, URISyntaxException { diff --git a/java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/impl/WindReceiverTest.java b/java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/impl/WindReceiverTest.java index 5918ad81753..2cc592ae5a8 100755 --- a/java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/impl/WindReceiverTest.java +++ b/java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/impl/WindReceiverTest.java @@ -30,7 +30,7 @@ import com.sap.sse.common.impl.DegreeBearingImpl; import com.sap.sse.common.impl.MillisecondsTimePoint; public class WindReceiverTest { - @Rule public Timeout AbstractTracTracLiveTestTimeout = new Timeout(2 * 60 * 1000); + @Rule public Timeout AbstractTracTracLiveTestTimeout = Timeout.millis(2 * 60 * 1000); @Test public void simpleWindReceiverTest() { diff --git a/java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/oauth/SignInTest.java b/java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/oauth/SignInTest.java index 634834a9913..61fec4d3783 100755 --- a/java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/oauth/SignInTest.java +++ b/java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/oauth/SignInTest.java @@ -29,7 +29,7 @@ import com.sap.sse.mongodb.MongoDBService; public class SignInTest { private static final Logger logger = Logger.getLogger(SignInTest.class.getName()); - @Rule public Timeout AbstractTracTracLiveTestTimeout = new Timeout(2 * 60 * 1000); + @Rule public Timeout AbstractTracTracLiveTestTimeout = Timeout.millis(2 * 60 * 1000); @Test public void testSimpleSignIn() throws ClientProtocolException, IOException, IllegalStateException, diff --git a/java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/test/AbstractTestWithIgtimiConnection.java b/java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/test/AbstractTestWithIgtimiConnection.java index 9194f7078b7..1d5da4fbb4c 100755 --- a/java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/test/AbstractTestWithIgtimiConnection.java +++ b/java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/test/AbstractTestWithIgtimiConnection.java @@ -15,9 +15,9 @@ import com.sap.sailing.domain.igtimiadapter.impl.Activator; public class AbstractTestWithIgtimiConnection { protected IgtimiConnection connection; - @Rule public Timeout AbstractTestWithIgtimiConnectionTimeout = new Timeout(2 * 60 * 1000); + @Rule public Timeout AbstractTestWithIgtimiConnectionTimeout = Timeout.millis(2 * 60 * 1000); - @Rule public Timeout AbstractTracTracLiveTestTimeout = new Timeout(2 * 60 * 1000); + @Rule public Timeout AbstractTracTracLiveTestTimeout = Timeout.millis(2 * 60 * 1000); @Before public void setUp() throws ClientProtocolException, IOException, org.json.simple.parser.ParseException { diff --git a/java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/websocket/WebSocketTest.java b/java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/websocket/WebSocketTest.java index 6a16cf8bb4e..20b51de92fd 100755 --- a/java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/websocket/WebSocketTest.java +++ b/java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/websocket/WebSocketTest.java @@ -49,7 +49,7 @@ import com.sap.sse.mongodb.MongoDBService; public class WebSocketTest { private static final Logger logger = Logger.getLogger(WebSocketTest.class.getName()); - @Rule public Timeout AbstractTracTracLiveTestTimeout = new Timeout(1 * 60 * 1000); + @Rule public Timeout AbstractTracTracLiveTestTimeout = Timeout.millis(1 * 60 * 1000); @WebSocket public class SimpleEchoTestSocket { diff --git a/java/com.sap.sailing.domain.persistence/META-INF/MANIFEST.MF b/java/com.sap.sailing.domain.persistence/META-INF/MANIFEST.MF index eb77565c333..332a1334f69 100644 --- a/java/com.sap.sailing.domain.persistence/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.domain.persistence/META-INF/MANIFEST.MF @@ -8,7 +8,6 @@ Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Bundle-Activator: com.sap.sailing.domain.persistence.impl.Activator Require-Bundle: com.sap.sse.mongodb, com.sap.sailing.domain, - org.mongodb.mongo-java-driver;bundle-version="2.13.0", com.sap.sailing.domain.common, com.sap.sailing.domain.shared.android, com.sap.sailing.server.gateway.serialization, @@ -16,6 +15,7 @@ Require-Bundle: com.sap.sse.mongodb, com.sap.sse, com.sap.sailing.server.gateway.serialization.shared.android, com.sap.sse.shared.android, + org.eclipse.orbit.mongodb;bundle-version="3.2.2", com.sap.sse.security.common Export-Package: com.sap.sailing.domain.persistence, com.sap.sailing.domain.persistence.impl; diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/DomainObjectFactory.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/DomainObjectFactory.java index b6eee03c634..8f2121dce82 100755 --- a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/DomainObjectFactory.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/DomainObjectFactory.java @@ -9,7 +9,8 @@ import java.util.Set; import java.util.concurrent.ExecutionException; import java.util.function.Consumer; -import com.mongodb.DBObject; +import org.bson.Document; + import com.sap.sailing.domain.abstractlog.race.RaceLog; import com.sap.sailing.domain.abstractlog.regatta.RegattaLog; import com.sap.sailing.domain.anniversary.DetailedRaceInfo; @@ -61,7 +62,7 @@ public interface DomainObjectFactory { */ Leaderboard loadLeaderboard(String name, RegattaRegistry regattaRegistry, LeaderboardRegistry leaderboardRegistry); - RaceIdentifier loadRaceIdentifier(DBObject dbObject); + RaceIdentifier loadRaceIdentifier(Document dbObject); /** * Loads the leaderboard group that has name as its name. @@ -168,7 +169,7 @@ public interface DomainObjectFactory { * @return the number of parameter sets that were loaded from the persistent store; each of these parameter sets * describes for one race how it is to be loaded / tracked. */ - int getNumberOfParametersToLoad(); + long getNumberOfParametersToLoad(); /** * For each set of parameters obtained from the persistent store, @@ -210,7 +211,7 @@ public interface DomainObjectFactory { ConnectivityParametersLoadingResult loadConnectivityParametersForRacesToRestore( Consumer callback); - RegattaLeaderboardWithEliminations loadRegattaLeaderboardWithEliminations(DBObject dbLeaderboard, + RegattaLeaderboardWithEliminations loadRegattaLeaderboardWithEliminations(Document dbLeaderboard, String leaderboardName, String wrappedRegattaLeaderboardName, LeaderboardRegistry leaderboardRegistry); /** diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/MongoObjectFactory.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/MongoObjectFactory.java index bc20d16044d..a9c5e39806b 100755 --- a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/MongoObjectFactory.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/MongoObjectFactory.java @@ -5,8 +5,8 @@ import java.net.MalformedURLException; import java.net.URL; import java.util.concurrent.ConcurrentHashMap; -import com.mongodb.DB; import com.mongodb.DBObject; +import com.mongodb.client.MongoDatabase; import com.sap.sailing.domain.anniversary.DetailedRaceInfo; import com.sap.sailing.domain.base.Boat; import com.sap.sailing.domain.base.Competitor; @@ -160,7 +160,7 @@ public interface MongoObjectFactory { void removeBoat(Boat boat); - DB getDatabase(); + MongoDatabase getDatabase(); void storeDeviceConfiguration(DeviceConfigurationMatcher matcher, DeviceConfiguration configuration); diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java index fb88c296253..84e71259efa 100644 --- a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java @@ -1,5 +1,7 @@ package com.sap.sailing.domain.persistence.impl; +import static com.mongodb.client.model.Filters.eq; + import java.io.Serializable; import java.net.MalformedURLException; import java.net.URL; @@ -24,20 +26,21 @@ import java.util.function.Supplier; import java.util.logging.Level; import java.util.logging.Logger; +import org.bson.Document; import org.bson.types.ObjectId; import org.json.simple.JSONObject; import org.json.simple.parser.JSONParser; import org.json.simple.parser.ParseException; -import com.mongodb.BasicDBList; -import com.mongodb.BasicDBObject; -import com.mongodb.BasicDBObjectBuilder; -import com.mongodb.DB; -import com.mongodb.DBCollection; -import com.mongodb.DBCursor; -import com.mongodb.DBObject; import com.mongodb.MongoException; -import com.mongodb.WriteResult; +import com.mongodb.MongoNamespace; +import com.mongodb.client.FindIterable; +import com.mongodb.client.MongoCollection; +import com.mongodb.client.MongoCursor; +import com.mongodb.client.MongoDatabase; +import com.mongodb.client.model.IndexOptions; +import com.mongodb.client.model.RenameCollectionOptions; +import com.mongodb.client.result.DeleteResult; import com.mongodb.util.JSON; import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor; import com.sap.sailing.domain.abstractlog.impl.LogEventAuthorImpl; @@ -275,7 +278,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { private final CompetitorWithBoatRefJsonDeserializer competitorWithBoatRefDeserializer; private final BoatJsonDeserializer boatDeserializer; - private final DB database; + private final MongoDatabase database; private final DomainFactory baseDomainFactory; private final TypeBasedServiceFinderFactory serviceFinderFactory; @@ -286,11 +289,11 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { * Uses null as the {@link TypeBasedServiceFinder}, meaning that no {@link DeviceIdentifier}s can be * loaded using this instance of a {@link DomainObjectFactory}. */ - public DomainObjectFactoryImpl(DB db, DomainFactory baseDomainFactory) { + public DomainObjectFactoryImpl(MongoDatabase db, DomainFactory baseDomainFactory) { this(db, baseDomainFactory, /* deviceTypeServiceFinder */ null); } - public DomainObjectFactoryImpl(DB db, DomainFactory baseDomainFactory, + public DomainObjectFactoryImpl(MongoDatabase db, DomainFactory baseDomainFactory, TypeBasedServiceFinderFactory serviceFinderFactory) { super(); this.serviceFinderFactory = serviceFinderFactory; @@ -316,11 +319,11 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { return baseDomainFactory; } - public Wind loadWind(DBObject object) { + public Wind loadWind(Document object) { return new WindImpl(loadPosition(object), loadTimePoint(object), loadSpeedWithBearing(object)); } - public Position loadPosition(DBObject object) { + public Position loadPosition(Document object) { Number latNumber = (Number) object.get(FieldNames.LAT_DEG.name()); Double lat = latNumber == null ? null : latNumber.doubleValue(); Number lngNumber = (Number) object.get(FieldNames.LNG_DEG.name()); @@ -332,7 +335,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { } } - public static TimePoint loadTimePoint(DBObject object, String fieldName) { + public static TimePoint loadTimePoint(Document object, String fieldName) { TimePoint result = null; Number timePointAsNumber = (Number) object.get(fieldName); if (timePointAsNumber != null) { @@ -341,12 +344,12 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { return result; } - public static TimePoint loadTimePoint(DBObject object, FieldNames field) { + public static TimePoint loadTimePoint(Document object, FieldNames field) { return loadTimePoint(object, field.name()); } - public static TimeRange loadTimeRange(DBObject object, FieldNames field) { - DBObject timeRangeObj = (DBObject) object.get(field.name()); + public static TimeRange loadTimeRange(Document object, FieldNames field) { + Document timeRangeObj = (Document) object.get(field.name()); if (timeRangeObj == null) { return null; } @@ -358,17 +361,17 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { /** * Loads a {@link TimePoint} on the given object at {@link FieldNames#TIME_AS_MILLIS}. */ - public TimePoint loadTimePoint(DBObject object) { + public TimePoint loadTimePoint(Document object) { return loadTimePoint(object, FieldNames.TIME_AS_MILLIS); } - public SpeedWithBearing loadSpeedWithBearing(DBObject object) { + public SpeedWithBearing loadSpeedWithBearing(Document object) { return new KnotSpeedWithBearingImpl(((Number) object.get(FieldNames.KNOT_SPEED.name())).doubleValue(), new DegreeBearingImpl(((Number) object.get(FieldNames.DEGREE_BEARING.name())).doubleValue())); } @Override - public RaceIdentifier loadRaceIdentifier(DBObject dbObject) { + public RaceIdentifier loadRaceIdentifier(Document dbObject) { RaceIdentifier result = null; String regattaName = (String) dbObject.get(FieldNames.EVENT_NAME.name()); String raceName = (String) dbObject.get(FieldNames.RACE_NAME.name()); @@ -378,19 +381,18 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { return result; } - private void ensureIndicesOnWindTracks(DBCollection windTracks) { - windTracks.createIndex(new BasicDBObject(FieldNames.RACE_ID.name(), 1)); // for new programmatic access - windTracks.createIndex(new BasicDBObject(FieldNames.REGATTA_NAME.name(), 1)); // for export or human look-up + private void ensureIndicesOnWindTracks(MongoCollection windTracks) { + windTracks.createIndex(new Document(FieldNames.RACE_ID.name(), 1)); // for new programmatic access + windTracks.createIndex(new Document(FieldNames.REGATTA_NAME.name(), 1)); // for export or human look-up // for legacy access to not yet migrated fixes - windTracks.createIndex(new BasicDBObjectBuilder().add(FieldNames.EVENT_NAME.name(), 1) - .add(FieldNames.RACE_NAME.name(), 1).get()); + windTracks.createIndex(new Document().append(FieldNames.EVENT_NAME.name(), 1) + .append(FieldNames.RACE_NAME.name(), 1)); // Unique index try { windTracks.createIndex( - new BasicDBObjectBuilder().add(FieldNames.RACE_ID.name(), 1) - .add(FieldNames.WIND_SOURCE_NAME.name(), 1).add(FieldNames.WIND_SOURCE_ID.name(), 1) - .add(FieldNames.WIND.name() + "." + FieldNames.TIME_AS_MILLIS.name(), 1).get(), - new BasicDBObjectBuilder().add("unique", true).add("dropDups", true).get()); + new Document().append(FieldNames.RACE_ID.name(), 1) + .append(FieldNames.WIND_SOURCE_NAME.name(), 1).append(FieldNames.WIND_SOURCE_ID.name(), 1) + .append(FieldNames.WIND.name() + "." + FieldNames.TIME_AS_MILLIS.name(), 1), new IndexOptions().unique(true)); } catch (MongoException exception) { if (exception.getCode() == 10092) { logger.warning(String.format( @@ -410,12 +412,12 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { @Override public Leaderboard loadLeaderboard(String name, RegattaRegistry regattaRegistry, LeaderboardRegistry leaderboardRegistry) { - DBCollection leaderboardCollection = database.getCollection(CollectionNames.LEADERBOARDS.name()); + MongoCollection leaderboardCollection = database.getCollection(CollectionNames.LEADERBOARDS.name()); Leaderboard result = null; try { - BasicDBObject query = new BasicDBObject(); + Document query = new Document(); query.put(FieldNames.LEADERBOARD_NAME.name(), name); - for (DBObject o : leaderboardCollection.find(query)) { + for (Document o : leaderboardCollection.find(query)) { result = loadLeaderboard(o, regattaRegistry, leaderboardRegistry, /* groupForMetaLeaderboard */ null); } } catch (Exception e) { @@ -427,10 +429,10 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { } @Override - public RegattaLeaderboardWithEliminations loadRegattaLeaderboardWithEliminations(DBObject dbLeaderboard, + public RegattaLeaderboardWithEliminations loadRegattaLeaderboardWithEliminations(Document dbLeaderboard, String leaderboardName, String wrappedRegattaLeaderboardName, LeaderboardRegistry leaderboardRegistry) { final RegattaLeaderboardWithEliminations result; - BasicDBList eliminatedCompetitorIds = (BasicDBList) dbLeaderboard.get(FieldNames.ELMINATED_COMPETITORS.name()); + Iterable eliminatedCompetitorIds = (Iterable) dbLeaderboard.get(FieldNames.ELMINATED_COMPETITORS.name()); result = new DelegatingRegattaLeaderboardWithCompetitorElimination( () -> (RegattaLeaderboard) leaderboardRegistry.getLeaderboardByName(wrappedRegattaLeaderboardName), leaderboardName); @@ -466,7 +468,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { * {@link RegattaLeaderboard} cannot be found; the leaderboard loaded or found in * leaderboardRegistry, otherwise */ - private Leaderboard loadLeaderboard(DBObject dbLeaderboard, RegattaRegistry regattaRegistry, + private Leaderboard loadLeaderboard(Document dbLeaderboard, RegattaRegistry regattaRegistry, LeaderboardRegistry leaderboardRegistry, LeaderboardGroup groupForMetaLeaderboard) { Leaderboard result = null; String leaderboardName = (String) dbLeaderboard.get(FieldNames.LEADERBOARD_NAME.name()); @@ -518,8 +520,8 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { return result; } - private void loadColumnFactors(DBObject dbLeaderboard, Leaderboard result) { - DBObject dbColumnFactors = (DBObject) dbLeaderboard.get(FieldNames.LEADERBOARD_COLUMN_FACTORS.name()); + private void loadColumnFactors(Document dbLeaderboard, Leaderboard result) { + Document dbColumnFactors = (Document) dbLeaderboard.get(FieldNames.LEADERBOARD_COLUMN_FACTORS.name()); if (dbColumnFactors != null) { for (String encodedRaceColumnName : dbColumnFactors.keySet()) { double factor = ((Number) dbColumnFactors.get(encodedRaceColumnName)).doubleValue(); @@ -536,9 +538,9 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { } } - private void loadSuppressedCompetitors(DBObject dbLeaderboard, + private void loadSuppressedCompetitors(Document dbLeaderboard, DelayedLeaderboardCorrections loadedLeaderboardCorrections) { - BasicDBList dbSuppressedCompetitorIDs = (BasicDBList) dbLeaderboard + Iterable dbSuppressedCompetitorIDs = (Iterable) dbLeaderboard .get(FieldNames.LEADERBOARD_SUPPRESSED_COMPETITOR_IDS.name()); if (dbSuppressedCompetitorIDs != null) { for (Object competitorId : dbSuppressedCompetitorIDs) { @@ -549,15 +551,16 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { /** * @param dbObject - * expects to find a field identified by field which holds a {@link BasicDBList} + * expects to find a field identified by field which holds a {@link Iterable} */ - private ThresholdBasedResultDiscardingRule loadResultDiscardingRule(DBObject dbObject, FieldNames field) { - BasicDBList dbDiscardIndexResultsStartingWithHowManyRaces = (BasicDBList) dbObject.get(field.name()); + private ThresholdBasedResultDiscardingRule loadResultDiscardingRule(Document dbObject, FieldNames field) { + @SuppressWarnings("unchecked") + Iterable dbDiscardIndexResultsStartingWithHowManyRaces = (Iterable) dbObject.get(field.name()); final ThresholdBasedResultDiscardingRule result; if (dbDiscardIndexResultsStartingWithHowManyRaces == null) { result = null; } else { - int[] discardIndexResultsStartingWithHowManyRaces = new int[dbDiscardIndexResultsStartingWithHowManyRaces.size()]; + int[] discardIndexResultsStartingWithHowManyRaces = new int[Util.size(dbDiscardIndexResultsStartingWithHowManyRaces)]; int i = 0; for (Object discardingThresholdAsObject : dbDiscardIndexResultsStartingWithHowManyRaces) { discardIndexResultsStartingWithHowManyRaces[i++] = ((Number) discardingThresholdAsObject).intValue(); @@ -571,7 +574,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { * @return null if the regatta cannot be resolved; otherwise the leaderboard for the regatta specified */ private RegattaLeaderboard loadRegattaLeaderboard(String leaderboardName, String regattaName, - DBObject dbLeaderboard, ThresholdBasedResultDiscardingRule resultDiscardingRule, + Document dbLeaderboard, ThresholdBasedResultDiscardingRule resultDiscardingRule, RegattaRegistry regattaRegistry) { RegattaLeaderboard result = null; Regatta regatta = regattaRegistry.getRegatta(new RegattaName(regattaName)); @@ -596,10 +599,11 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { .getMongoRegattaLogStore(new MongoObjectFactoryImpl(database, serviceFinderFactory), this); } - private FlexibleLeaderboard loadFlexibleLeaderboard(DBObject dbLeaderboard, + private FlexibleLeaderboard loadFlexibleLeaderboard(Document dbLeaderboard, ThresholdBasedResultDiscardingRule resultDiscardingRule) { final FlexibleLeaderboardImpl result; - BasicDBList dbRaceColumns = (BasicDBList) dbLeaderboard.get(FieldNames.LEADERBOARD_COLUMNS.name()); + @SuppressWarnings("unchecked") + Iterable dbRaceColumns = (Iterable) dbLeaderboard.get(FieldNames.LEADERBOARD_COLUMNS.name()); if (dbRaceColumns == null) { // this was probably an orphaned overall leaderboard logger.warning("Probably found orphan overall leaderboard named " @@ -620,7 +624,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { courseArea); // For a FlexibleLeaderboard, there should be only the default fleet for any race column for (Object dbRaceColumnAsObject : dbRaceColumns) { - BasicDBObject dbRaceColumn = (BasicDBObject) dbRaceColumnAsObject; + Document dbRaceColumn = (Document) dbRaceColumnAsObject; String columnName = (String) dbRaceColumn.get(FieldNames.LEADERBOARD_COLUMN_NAME.name()); RaceColumn raceColumn = result.addRaceColumn(columnName, @@ -650,19 +654,20 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { return result; } - private ScoringScheme loadScoringScheme(DBObject dbLeaderboard) { + private ScoringScheme loadScoringScheme(Document dbLeaderboard) { ScoringSchemeType scoringSchemeType = getScoringSchemeType(dbLeaderboard); final ScoringScheme scoringScheme = baseDomainFactory.createScoringScheme(scoringSchemeType); return scoringScheme; } - private void loadLeaderboardCorrections(DBObject dbLeaderboard, DelayedLeaderboardCorrections correctionsToUpdate, + private void loadLeaderboardCorrections(Document dbLeaderboard, DelayedLeaderboardCorrections correctionsToUpdate, SettableScoreCorrection scoreCorrectionToUpdate) { - BasicDBList carriedPointsById = (BasicDBList) dbLeaderboard + @SuppressWarnings("unchecked") + Iterable carriedPointsById = (Iterable) dbLeaderboard .get(FieldNames.LEADERBOARD_CARRIED_POINTS_BY_ID.name()); if (carriedPointsById != null) { for (Object o : carriedPointsById) { - DBObject competitorIdAndCarriedPoints = (DBObject) o; + Document competitorIdAndCarriedPoints = (Document) o; Serializable competitorId = (Serializable) competitorIdAndCarriedPoints .get(FieldNames.COMPETITOR_ID.name()); Double carriedPointsForCompetitor = ((Number) competitorIdAndCarriedPoints @@ -672,39 +677,39 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { } } } - DBObject dbScoreCorrection = (DBObject) dbLeaderboard.get(FieldNames.LEADERBOARD_SCORE_CORRECTIONS.name()); - if (dbScoreCorrection.containsField(FieldNames.LEADERBOARD_SCORE_CORRECTION_TIMESTAMP.name())) { + Document dbScoreCorrection = (Document) dbLeaderboard.get(FieldNames.LEADERBOARD_SCORE_CORRECTIONS.name()); + if (dbScoreCorrection.containsKey(FieldNames.LEADERBOARD_SCORE_CORRECTION_TIMESTAMP.name())) { scoreCorrectionToUpdate.setTimePointOfLastCorrectionsValidity(new MillisecondsTimePoint( (Long) dbScoreCorrection.get(FieldNames.LEADERBOARD_SCORE_CORRECTION_TIMESTAMP.name()))); - dbScoreCorrection.removeField(FieldNames.LEADERBOARD_SCORE_CORRECTION_TIMESTAMP.name()); + dbScoreCorrection.remove(FieldNames.LEADERBOARD_SCORE_CORRECTION_TIMESTAMP.name()); } - if (dbScoreCorrection.containsField(FieldNames.LEADERBOARD_SCORE_CORRECTION_COMMENT.name())) { + if (dbScoreCorrection.containsKey(FieldNames.LEADERBOARD_SCORE_CORRECTION_COMMENT.name())) { scoreCorrectionToUpdate .setComment((String) dbScoreCorrection.get(FieldNames.LEADERBOARD_SCORE_CORRECTION_COMMENT.name())); - dbScoreCorrection.removeField(FieldNames.LEADERBOARD_SCORE_CORRECTION_COMMENT.name()); + dbScoreCorrection.remove(FieldNames.LEADERBOARD_SCORE_CORRECTION_COMMENT.name()); } for (String escapedRaceColumnName : dbScoreCorrection.keySet()) { // deprecated style: a DBObject per race where the keys are the escaped competitor names - // new style: a BasicDBList per race where each entry is a DBObject with COMPETITOR_ID and + // new style: a BsonArray per race where each entry is a DBObject with COMPETITOR_ID and // LEADERBOARD_SCORE_CORRECTION_MAX_POINTS_REASON and LEADERBOARD_CORRECTED_SCORE fields each - DBObject dbScoreCorrectionForRace = (DBObject) dbScoreCorrection.get(escapedRaceColumnName); + @SuppressWarnings("unchecked") + Iterable dbScoreCorrectionForRace = (Iterable) dbScoreCorrection.get(escapedRaceColumnName); final RaceColumn raceColumn = correctionsToUpdate.getLeaderboard() .getRaceColumnByName(MongoUtils.unescapeDollarAndDot(escapedRaceColumnName)); if (raceColumn != null) { - for (Object o : (BasicDBList) dbScoreCorrectionForRace) { - DBObject dbScoreCorrectionForCompetitorInRace = (DBObject) o; + for (Document dbScoreCorrectionForCompetitorInRace : dbScoreCorrectionForRace) { Serializable competitorId = (Serializable) dbScoreCorrectionForCompetitorInRace .get(FieldNames.COMPETITOR_ID.name()); if (dbScoreCorrectionForCompetitorInRace - .containsField(FieldNames.LEADERBOARD_SCORE_CORRECTION_MAX_POINTS_REASON.name())) { + .containsKey(FieldNames.LEADERBOARD_SCORE_CORRECTION_MAX_POINTS_REASON.name())) { correctionsToUpdate.setMaxPointsReasonByID(competitorId, raceColumn, MaxPointsReason.valueOf((String) dbScoreCorrectionForCompetitorInRace .get(FieldNames.LEADERBOARD_SCORE_CORRECTION_MAX_POINTS_REASON.name()))); } if (dbScoreCorrectionForCompetitorInRace - .containsField(FieldNames.LEADERBOARD_CORRECTED_SCORE.name())) { - final Double leaderboardCorrectedScore = ((Number) dbScoreCorrectionForCompetitorInRace - .get(FieldNames.LEADERBOARD_CORRECTED_SCORE.name())).doubleValue(); + .containsKey(FieldNames.LEADERBOARD_CORRECTED_SCORE.name())) { + final Double leaderboardCorrectedScore = dbScoreCorrectionForCompetitorInRace + .getDouble(FieldNames.LEADERBOARD_CORRECTED_SCORE.name()); correctionsToUpdate.correctScoreByID(competitorId, raceColumn, leaderboardCorrectedScore); } } @@ -713,14 +718,14 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { + " in leaderboard " + correctionsToUpdate.getLeaderboard().getName()); } } - DBObject competitorDisplayNames = (DBObject) dbLeaderboard + Iterable competitorDisplayNames = (Iterable) dbLeaderboard .get(FieldNames.LEADERBOARD_COMPETITOR_DISPLAY_NAMES.name()); - // deprecated style: a DBObject whose keys are the escaped competitor names - // new style: a BasicDBList whose entries are DBObjects with COMPETITOR_ID and COMPETITOR_DISPLAY_NAME fields + // deprecated style: a Document whose keys are the escaped competitor names + // new style: a BsonArray whose entries are Documents with COMPETITOR_ID and COMPETITOR_DISPLAY_NAME fields if (competitorDisplayNames != null) { - if (competitorDisplayNames instanceof BasicDBList) { - for (Object o : (BasicDBList) competitorDisplayNames) { - DBObject competitorDisplayName = (DBObject) o; + if (competitorDisplayNames instanceof Iterable) { + for (Object o : (Iterable) competitorDisplayNames) { + Document competitorDisplayName = (Document) o; final Serializable competitorId = (Serializable) competitorDisplayName .get(FieldNames.COMPETITOR_ID.name()); final String displayName = (String) competitorDisplayName @@ -737,8 +742,8 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { } /** - * Expects a DBObject under the key {@link FieldNames#RACE_IDENTIFIERS} whose keys are the fleet names and whose - * values are the race identifiers as DBObjects (see {@link #loadRaceIdentifier(DBObject)}). If legacy DB instances + * Expects a Document under the key {@link FieldNames#RACE_IDENTIFIERS} whose keys are the fleet names and whose + * values are the race identifiers as Documents (see {@link #loadRaceIdentifier(Document)}). If legacy DB instances * have a {@link RaceIdentifier} that is not associated with a fleet name, it may be stored directly in the * dbRaceColumn. In this case, it is returned with null as the fleet name key. * @@ -747,18 +752,18 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { * leaderboards which don't know about fleets yet; this key should be mapped to the leaderboard's default * fleet. */ - private Map loadRaceIdentifiers(DBObject dbRaceColumn) { + private Map loadRaceIdentifiers(Document dbRaceColumn) { Map result = new HashMap(); // try to load a deprecated single race identifier to associate with the default fleet: RaceIdentifier singleLegacyRaceIdentifier = loadRaceIdentifier(dbRaceColumn); if (singleLegacyRaceIdentifier != null) { result.put(null, singleLegacyRaceIdentifier); } - DBObject raceIdentifiersPerFleet = (DBObject) dbRaceColumn.get(FieldNames.RACE_IDENTIFIERS.name()); + Document raceIdentifiersPerFleet = (Document) dbRaceColumn.get(FieldNames.RACE_IDENTIFIERS.name()); if (raceIdentifiersPerFleet != null) { for (String escapedFleetName : raceIdentifiersPerFleet.keySet()) { String fleetName = MongoUtils.unescapeDollarAndDot(escapedFleetName); - result.put(fleetName, loadRaceIdentifier((DBObject) raceIdentifiersPerFleet.get(fleetName))); + result.put(fleetName, loadRaceIdentifier((Document) raceIdentifiersPerFleet.get(fleetName))); } } return result; @@ -767,12 +772,12 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { @Override public LeaderboardGroup loadLeaderboardGroup(String name, RegattaRegistry regattaRegistry, LeaderboardRegistry leaderboardRegistry) { - DBCollection leaderboardGroupCollection = database.getCollection(CollectionNames.LEADERBOARD_GROUPS.name()); + MongoCollection leaderboardGroupCollection = database.getCollection(CollectionNames.LEADERBOARD_GROUPS.name()); LeaderboardGroup leaderboardGroup = null; try { - BasicDBObject query = new BasicDBObject(); + Document query = new Document(); query.put(FieldNames.LEADERBOARD_GROUP_NAME.name(), name); - leaderboardGroup = loadLeaderboardGroup(leaderboardGroupCollection.findOne(query), regattaRegistry, + leaderboardGroup = loadLeaderboardGroup(leaderboardGroupCollection.find(query).first(), regattaRegistry, leaderboardRegistry); } catch (Exception e) { logger.log(Level.SEVERE, "Error connecting to MongoDB, unable to load leaderboard group " + name + "."); @@ -785,11 +790,11 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { @Override public Iterable getAllLeaderboardGroups(RegattaRegistry regattaRegistry, LeaderboardRegistry leaderboardRegistry) { - DBCollection leaderboardGroupCollection = database.getCollection(CollectionNames.LEADERBOARD_GROUPS.name()); + MongoCollection leaderboardGroupCollection = database.getCollection(CollectionNames.LEADERBOARD_GROUPS.name()); Set leaderboardGroups = new HashSet(); try { - for (DBObject o : leaderboardGroupCollection.find()) { - boolean hasUUID = o.containsField(FieldNames.LEADERBOARD_GROUP_UUID.name()); + for (Document o : leaderboardGroupCollection.find()) { + boolean hasUUID = o.containsKey(FieldNames.LEADERBOARD_GROUP_UUID.name()); final LeaderboardGroup leaderboardGroup = loadLeaderboardGroup(o, regattaRegistry, leaderboardRegistry); leaderboardGroups.add(leaderboardGroup); if (!hasUUID) { @@ -810,9 +815,9 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { return leaderboardGroups; } - private LeaderboardGroup loadLeaderboardGroup(DBObject o, RegattaRegistry regattaRegistry, + private LeaderboardGroup loadLeaderboardGroup(Document o, RegattaRegistry regattaRegistry, LeaderboardRegistry leaderboardRegistry) { - DBCollection leaderboardCollection = database.getCollection(CollectionNames.LEADERBOARDS.name()); + MongoCollection leaderboardCollection = database.getCollection(CollectionNames.LEADERBOARDS.name()); String name = (String) o.get(FieldNames.LEADERBOARD_GROUP_NAME.name()); UUID uuid = (UUID) o.get(FieldNames.LEADERBOARD_GROUP_UUID.name()); if (uuid == null) { @@ -828,10 +833,11 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { displayGroupsInReverseOrder = (Boolean) displayGroupsInReverseOrderObj; } ArrayList leaderboards = new ArrayList(); - BasicDBList dbLeaderboardIds = (BasicDBList) o.get(FieldNames.LEADERBOARD_GROUP_LEADERBOARDS.name()); + @SuppressWarnings("unchecked") + Iterable dbLeaderboardIds = (Iterable) o.get(FieldNames.LEADERBOARD_GROUP_LEADERBOARDS.name()); for (Object object : dbLeaderboardIds) { ObjectId dbLeaderboardId = (ObjectId) object; - DBObject dbLeaderboard = leaderboardCollection.findOne(dbLeaderboardId); + Document dbLeaderboard = leaderboardCollection.find(eq("_id", dbLeaderboardId)).first(); if (dbLeaderboard != null) { final Leaderboard loadedLeaderboard = loadLeaderboard(dbLeaderboard, regattaRegistry, leaderboardRegistry, /* groupForMetaLeaderboard */null); @@ -848,11 +854,11 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { displayGroupsInReverseOrder, leaderboards); Object overallLeaderboardIdOrName = o.get(FieldNames.LEADERBOARD_GROUP_OVERALL_LEADERBOARD.name()); if (overallLeaderboardIdOrName != null) { - final DBObject dbOverallLeaderboard; + final Document dbOverallLeaderboard; if (overallLeaderboardIdOrName instanceof ObjectId) { - dbOverallLeaderboard = leaderboardCollection.findOne(overallLeaderboardIdOrName); + dbOverallLeaderboard = leaderboardCollection.find(eq("_id", overallLeaderboardIdOrName)).first(); } else { - dbOverallLeaderboard = (DBObject) overallLeaderboardIdOrName; + dbOverallLeaderboard = (Document) overallLeaderboardIdOrName; } if (dbOverallLeaderboard != null) { // the loadLeaderboard call adds the overall leaderboard to the leaderboard registry and sets it as the @@ -867,7 +873,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { @Override public Iterable getLeaderboardsNotInGroup(RegattaRegistry regattaRegistry, LeaderboardRegistry leaderboardRegistry) { - DBCollection leaderboardCollection = database.getCollection(CollectionNames.LEADERBOARDS.name()); + MongoCollection leaderboardCollection = database.getCollection(CollectionNames.LEADERBOARDS.name()); Set result = new HashSet(); try { // For MongoDB 2.4 $where with refs to global objects no longer works @@ -877,26 +883,26 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { // Don't change the query object, unless you know what you're doing. // It queries all leaderboards not referenced to be part of a leaderboard group // and in particular not being an overall leaderboard of a leaderboard group. - DBCursor allLeaderboards = leaderboardCollection.find(); - for (DBObject leaderboardFromDB : allLeaderboards) { - DBObject inLeaderboardGroupsQuery = new BasicDBObject(); + FindIterable allLeaderboards = leaderboardCollection.find(); + for (Document leaderboardFromDB : allLeaderboards) { + Document inLeaderboardGroupsQuery = new Document(); inLeaderboardGroupsQuery.put(FieldNames.LEADERBOARD_GROUP_LEADERBOARDS.name(), ((ObjectId) leaderboardFromDB.get("_id")).toString()); boolean inLeaderboardGroups = database.getCollection(CollectionNames.LEADERBOARD_GROUPS.name()) - .find(inLeaderboardGroupsQuery).size() > 0; + .find(inLeaderboardGroupsQuery).first() != null; - DBObject inLeaderboardGroupOverallQuery = new BasicDBObject(); + Document inLeaderboardGroupOverallQuery = new Document(); inLeaderboardGroupOverallQuery.put(FieldNames.LEADERBOARD_GROUP_OVERALL_LEADERBOARD.name(), ((ObjectId) leaderboardFromDB.get("_id")).toString()); boolean inLeaderboardGroupOverall = database.getCollection(CollectionNames.LEADERBOARD_GROUPS.name()) - .find(inLeaderboardGroupOverallQuery).size() > 0; + .find(inLeaderboardGroupOverallQuery).first() != null; - DBObject inLeaderboardGroupOverallQueryName = new BasicDBObject(); + Document inLeaderboardGroupOverallQueryName = new Document(); inLeaderboardGroupOverallQueryName.put(FieldNames.LEADERBOARD_GROUP_OVERALL_LEADERBOARD.name(), leaderboardFromDB.get(FieldNames.LEADERBOARD_NAME.name())); boolean inLeaderboardGroupOverallName = database .getCollection(CollectionNames.LEADERBOARD_GROUPS.name()) - .find(inLeaderboardGroupOverallQueryName).size() > 0; + .find(inLeaderboardGroupOverallQueryName).first() != null; if (!inLeaderboardGroups && !inLeaderboardGroupOverall && !inLeaderboardGroupOverallName) { final Leaderboard loadedLeaderboard = loadLeaderboard(leaderboardFromDB, regattaRegistry, @@ -947,41 +953,42 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { WindSource constrainToWindSource, long millisecondsOverWhichToAverageWind) { Map result = new HashMap(); try { - DBCollection windTracks = database.getCollection(CollectionNames.WIND_TRACKS.name()); + MongoCollection windTracks = database.getCollection(CollectionNames.WIND_TRACKS.name()); ensureIndicesOnWindTracks(windTracks); - BasicDBObject queryById = new BasicDBObject(); + Document queryById = new Document(); // the default query is by the RACE_ID key: queryById.put(FieldNames.RACE_ID.name(), race.getId()); if (constrainToWindSource != null) { queryById.put(FieldNames.WIND_SOURCE_NAME.name(), constrainToWindSource.name()); } - for (DBObject dbWind : windTracks.find(queryById)) { + for (Document dbWind : windTracks.find(queryById)) { loadWindFix(result, dbWind, millisecondsOverWhichToAverageWind); } // Additionally check for legacy wind fixes stored with the old EVENT_NAME key; if any are found, migrate // them - BasicDBObject queryByName = new BasicDBObject(); + Document queryByName = new Document(); queryByName.put(FieldNames.EVENT_NAME.name(), regattaName); queryByName.put(FieldNames.RACE_NAME.name(), race.getName()); if (constrainToWindSource != null) { queryByName.put(FieldNames.WIND_SOURCE_NAME.name(), constrainToWindSource.name()); } - final DBCursor windFixesFoundByName = windTracks.find(queryByName); - if (windFixesFoundByName.hasNext()) { - List windFixesToMigrate = new ArrayList(); - for (DBObject dbWind : windFixesFoundByName) { + final FindIterable windFixesFoundByName = windTracks.find(queryByName); + if (windFixesFoundByName.iterator().hasNext()) { + List windFixesToMigrate = new ArrayList<>(); + for (Document dbWind : windFixesFoundByName) { Util.Pair wind = loadWindFix(result, dbWind, millisecondsOverWhichToAverageWind); // write the wind fix with the new ID-based key and remove the legacy wind fix from the DB windFixesToMigrate.add(new MongoObjectFactoryImpl(database).storeWindTrackEntry(race, regattaName, wind.getB(), wind.getA())); } - logger.info("Migrating " + windFixesFoundByName.size() + " wind fixes of regatta " + regattaName + final long size = windTracks.count(queryByName); + logger.info("Migrating " + size + " wind fixes of regatta " + regattaName + " and race " + race.getName() + " to ID-based keys"); - windTracks.insert(windFixesToMigrate.toArray(new DBObject[windFixesToMigrate.size()])); - logger.info("Removing " + windFixesFoundByName.size() + windTracks.insertMany(windFixesToMigrate); + logger.info("Removing " + size + " wind fixes that were keyed by the names of regatta " + regattaName + " and race " + race.getName()); - windTracks.remove(queryByName); + windTracks.deleteMany(queryByName); } } catch (Exception e) { // something went wrong during DB access; report, then use empty new wind track @@ -992,12 +999,12 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { return result; } - private Util.Pair loadWindFix(Map result, DBObject dbWind, + private Util.Pair loadWindFix(Map result, Document dbWind, long millisecondsOverWhichToAverageWind) { - Wind wind = loadWind((DBObject) dbWind.get(FieldNames.WIND.name())); + Wind wind = loadWind((Document) dbWind.get(FieldNames.WIND.name())); WindSourceType windSourceType = WindSourceType.valueOf((String) dbWind.get(FieldNames.WIND_SOURCE_NAME.name())); WindSource windSource; - if (dbWind.containsField(FieldNames.WIND_SOURCE_ID.name())) { + if (dbWind.containsKey(FieldNames.WIND_SOURCE_ID.name())) { windSource = new WindSourceWithAdditionalID(windSourceType, (String) dbWind.get(FieldNames.WIND_SOURCE_ID.name())); } else { @@ -1017,9 +1024,9 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { @Override public void loadLeaderboardGroupLinksForEvents(EventResolver eventResolver, LeaderboardGroupResolver leaderboardGroupResolver) { - DBCollection links = database.getCollection(CollectionNames.LEADERBOARD_GROUP_LINKS_FOR_EVENTS.name()); + MongoCollection links = database.getCollection(CollectionNames.LEADERBOARD_GROUP_LINKS_FOR_EVENTS.name()); for (Object o : links.find()) { - DBObject dbLink = (DBObject) o; + Document dbLink = (Document) o; UUID eventId = (UUID) dbLink.get(FieldNames.EVENT_ID.name()); Event event = eventResolver.getEvent(eventId); if (event == null) { @@ -1042,10 +1049,10 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { @Override public Event loadEvent(String name) { Event result; - BasicDBObject query = new BasicDBObject(); + Document query = new Document(); query.put(FieldNames.EVENT_NAME.name(), name); - DBCollection eventCollection = database.getCollection(CollectionNames.EVENTS.name()); - DBObject eventDBObject = eventCollection.findOne(query); + MongoCollection eventCollection = database.getCollection(CollectionNames.EVENTS.name()); + Document eventDBObject = eventCollection.find(query).first(); if (eventDBObject != null) { result = loadEvent(eventDBObject); } else { @@ -1057,10 +1064,10 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { @Override public Iterable> loadAllEvents() { ArrayList> result = new ArrayList<>(); - DBCollection eventCollection = database.getCollection(CollectionNames.EVENTS.name()); + MongoCollection eventCollection = database.getCollection(CollectionNames.EVENTS.name()); try { - for (DBObject object : eventCollection.find()) { + for (Document object : eventCollection.find()) { Event event = loadEvent(object); boolean requiresStoreAfterMigration = loadLegacyImageAndVideoURLs(event, object); requiresStoreAfterMigration |= loadLegacySailorsInfoWebsiteURL(event, object); @@ -1077,8 +1084,8 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { @Override public SailingServerConfiguration loadServerConfiguration() { SailingServerConfiguration result; - DBCollection serverCollection = database.getCollection(CollectionNames.SERVER_CONFIGURATION.name()); - DBObject theServer = serverCollection.findOne(); + MongoCollection serverCollection = database.getCollection(CollectionNames.SERVER_CONFIGURATION.name()); + Document theServer = serverCollection.find().first(); if (theServer != null) { result = loadServerConfiguration(theServer); } else { @@ -1088,12 +1095,12 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { return result; } - private SailingServerConfiguration loadServerConfiguration(DBObject serverDBObject) { + private SailingServerConfiguration loadServerConfiguration(Document serverDBObject) { boolean isStandaloneServer = (Boolean) serverDBObject.get(FieldNames.SERVER_IS_STANDALONE.name()); return new SailingServerConfigurationImpl(isStandaloneServer); } - private RemoteSailingServerReference loadRemoteSailingSever(DBObject serverDBObject) { + private RemoteSailingServerReference loadRemoteSailingSever(Document serverDBObject) { RemoteSailingServerReference result = null; String name = (String) serverDBObject.get(FieldNames.SERVER_NAME.name()); String urlAsString = (String) serverDBObject.get(FieldNames.SERVER_URL.name()); @@ -1109,9 +1116,9 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { @Override public Iterable loadAllRemoteSailingServerReferences() { ArrayList result = new ArrayList(); - DBCollection serverCollection = database.getCollection(CollectionNames.SAILING_SERVERS.name()); + MongoCollection serverCollection = database.getCollection(CollectionNames.SAILING_SERVERS.name()); try { - for (DBObject o : serverCollection.find()) { + for (Document o : serverCollection.find()) { if (loadRemoteSailingSever(o) != null) { result.add(loadRemoteSailingSever(o)); } @@ -1127,7 +1134,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { * An event doesn't store its regattas; it's the regatta that stores a reference to its event; the regatta needs to * add itself to the event when loaded or instantiated. */ - private Event loadEvent(DBObject eventDBObject) { + private Event loadEvent(Document eventDBObject) { String name = (String) eventDBObject.get(FieldNames.EVENT_NAME.name()); String description = (String) eventDBObject.get(FieldNames.EVENT_DESCRIPTION.name()); UUID id = (UUID) eventDBObject.get(FieldNames.EVENT_ID.name()); @@ -1135,7 +1142,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { TimePoint endDate = loadTimePoint(eventDBObject, FieldNames.EVENT_END_DATE); boolean isPublic = eventDBObject.get(FieldNames.EVENT_IS_PUBLIC.name()) != null ? (Boolean) eventDBObject.get(FieldNames.EVENT_IS_PUBLIC.name()) : false; - Venue venue = loadVenue((DBObject) eventDBObject.get(FieldNames.VENUE.name())); + Venue venue = loadVenue((Document) eventDBObject.get(FieldNames.VENUE.name())); Event result = new EventImpl(name, startDate, endDate, venue, isPublic, id); result.setDescription(description); @SuppressWarnings("unchecked") @@ -1161,29 +1168,29 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { "Error parsing base URL " + baseURLAsString + " for event " + name + ". Ignoring this URL."); } } - BasicDBList images = (BasicDBList) eventDBObject.get(FieldNames.EVENT_IMAGES.name()); + Iterable images = (Iterable) eventDBObject.get(FieldNames.EVENT_IMAGES.name()); if (images != null) { for (Object imageObject : images) { - ImageDescriptor image = loadImage((DBObject) imageObject); + ImageDescriptor image = loadImage((Document) imageObject); if (image != null) { result.addImage(image); } } } - BasicDBList videos = (BasicDBList) eventDBObject.get(FieldNames.EVENT_VIDEOS.name()); + Iterable videos = (Iterable) eventDBObject.get(FieldNames.EVENT_VIDEOS.name()); if (videos != null) { for (Object videoObject : videos) { - VideoDescriptor video = loadVideo((DBObject) videoObject); + VideoDescriptor video = loadVideo((Document) videoObject); if (video != null) { result.addVideo(video); } } } - BasicDBList sailorsInfoWebsiteURLs = (BasicDBList) eventDBObject + Iterable sailorsInfoWebsiteURLs = (Iterable) eventDBObject .get(FieldNames.EVENT_SAILORS_INFO_WEBSITES.name()); if (sailorsInfoWebsiteURLs != null) { for (Object sailorsInfoWebsiteObject : sailorsInfoWebsiteURLs) { - DBObject sailorsInfoWebsiteDBObject = (DBObject) sailorsInfoWebsiteObject; + Document sailorsInfoWebsiteDBObject = (Document) sailorsInfoWebsiteObject; URL url = loadURL(sailorsInfoWebsiteDBObject, FieldNames.SAILORS_INFO_URL); String localeRaw = (String) sailorsInfoWebsiteDBObject.get(FieldNames.SAILORS_INFO_LOCALE.name()); if (url != null) { @@ -1195,18 +1202,18 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { return result; } - private Venue loadVenue(DBObject dbObject) { + private Venue loadVenue(Document dbObject) { String name = (String) dbObject.get(FieldNames.VENUE_NAME.name()); - BasicDBList dbCourseAreas = (BasicDBList) dbObject.get(FieldNames.COURSE_AREAS.name()); + Iterable dbCourseAreas = (Iterable) dbObject.get(FieldNames.COURSE_AREAS.name()); Venue result = new VenueImpl(name); for (Object courseAreaDBObject : dbCourseAreas) { - CourseArea courseArea = loadCourseArea((DBObject) courseAreaDBObject); + CourseArea courseArea = loadCourseArea((Document) courseAreaDBObject); result.addCourseArea(courseArea); } return result; } - private CourseArea loadCourseArea(DBObject courseAreaDBObject) { + private CourseArea loadCourseArea(Document courseAreaDBObject) { String name = (String) courseAreaDBObject.get(FieldNames.COURSE_AREA_NAME.name()); UUID id = (UUID) courseAreaDBObject.get(FieldNames.COURSE_AREA_ID.name()); return baseDomainFactory.getOrCreateCourseArea(id, name); @@ -1215,8 +1222,8 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { @Override public Iterable loadAllRegattas(TrackedRegattaRegistry trackedRegattaRegistry) { List result = new ArrayList(); - DBCollection regattaCollection = database.getCollection(CollectionNames.REGATTAS.name()); - for (DBObject dbRegatta : regattaCollection.find()) { + MongoCollection regattaCollection = database.getCollection(CollectionNames.REGATTAS.name()); + for (Document dbRegatta : regattaCollection.find()) { result.add(loadRegatta(dbRegatta, trackedRegattaRegistry)); } return result; @@ -1224,15 +1231,15 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { @Override public Regatta loadRegatta(String name, TrackedRegattaRegistry trackedRegattaRegistry) { - DBObject query = new BasicDBObject(FieldNames.REGATTA_NAME.name(), name); - DBCollection regattaCollection = database.getCollection(CollectionNames.REGATTAS.name()); - DBObject dbRegatta = regattaCollection.findOne(query); + Document query = new Document(FieldNames.REGATTA_NAME.name(), name); + MongoCollection regattaCollection = database.getCollection(CollectionNames.REGATTAS.name()); + Document dbRegatta = regattaCollection.find(query).first(); Regatta result = loadRegatta(dbRegatta, trackedRegattaRegistry); assert result == null || result.getName().equals(name); return result; } - private Regatta loadRegatta(DBObject dbRegatta, TrackedRegattaRegistry trackedRegattaRegistry) { + private Regatta loadRegatta(Document dbRegatta, TrackedRegattaRegistry trackedRegattaRegistry) { Regatta result = null; if (dbRegatta != null) { String name = (String) dbRegatta.get(FieldNames.REGATTA_NAME.name()); @@ -1249,7 +1256,8 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { .get(FieldNames.BOAT_CLASS_TYPICALLY_STARTS_UPWIND.name()); boatClass = baseDomainFactory.getOrCreateBoatClass(boatClassName, typicallyStartsUpwind); } - BasicDBList dbSeries = (BasicDBList) dbRegatta.get(FieldNames.REGATTA_SERIES.name()); + @SuppressWarnings("unchecked") + Iterable dbSeries = (Iterable) dbRegatta.get(FieldNames.REGATTA_SERIES.name()); Iterable series = loadSeries(dbSeries, trackedRegattaRegistry); Serializable courseAreaId = (Serializable) dbRegatta.get(FieldNames.COURSE_AREA_ID.name()); CourseArea courseArea = null; @@ -1258,7 +1266,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { courseArea = baseDomainFactory.getExistingCourseAreaById(courseAreaUuid); } RegattaConfiguration configuration = null; - if (dbRegatta.containsField(FieldNames.REGATTA_REGATTA_CONFIGURATION.name())) { + if (dbRegatta.containsKey(FieldNames.REGATTA_REGATTA_CONFIGURATION.name())) { try { JSONObject json = Helpers.toJSONObjectSafe(new JSONParser() .parse(JSON.serialize(dbRegatta.get(FieldNames.REGATTA_REGATTA_CONFIGURATION.name())))); @@ -1312,8 +1320,8 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { return result; } - private RankingMetricConstructor loadRankingMetricConstructor(DBObject dbRegatta) { - DBObject rankingMetricJson = (DBObject) dbRegatta.get(FieldNames.REGATTA_RANKING_METRIC.name()); + private RankingMetricConstructor loadRankingMetricConstructor(Document dbRegatta) { + Document rankingMetricJson = (Document) dbRegatta.get(FieldNames.REGATTA_RANKING_METRIC.name()); // default is OneDesignRankingMetric final RankingMetricConstructor result; if (rankingMetricJson == null) { @@ -1326,7 +1334,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { return result; } - private ScoringSchemeType getScoringSchemeType(DBObject dbObject) { + private ScoringSchemeType getScoringSchemeType(Document dbObject) { String scoringSchemeTypeName = (String) dbObject.get(FieldNames.SCORING_SCHEME_TYPE.name()); ScoringSchemeType scoringSchemeType; if (scoringSchemeTypeName == null) { @@ -1345,17 +1353,16 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { return scoringSchemeType; } - private Iterable loadSeries(BasicDBList dbSeries, TrackedRegattaRegistry trackedRegattaRegistry) { + private Iterable loadSeries(Iterable dbSeries, TrackedRegattaRegistry trackedRegattaRegistry) { List result = new ArrayList(); - for (Object o : dbSeries) { - DBObject oneDBSeries = (DBObject) o; + for (Document oneDBSeries : dbSeries) { Series series = loadSeries(oneDBSeries, trackedRegattaRegistry); result.add(series); } return result; } - private Series loadSeries(DBObject dbSeries, TrackedRegattaRegistry trackedRegattaRegistry) { + private Series loadSeries(Document dbSeries, TrackedRegattaRegistry trackedRegattaRegistry) { String name = (String) dbSeries.get(FieldNames.SERIES_NAME.name()); boolean isMedal = (Boolean) dbSeries.get(FieldNames.SERIES_IS_MEDAL.name()); // isFleetCanRunInParallel is a new field -> set to true when it does not exist in older db versions @@ -1372,9 +1379,11 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { .get(FieldNames.SERIES_HAS_SPLIT_FLEET_CONTIGUOUS_SCORING.name()); Boolean firstColumnIsNonDiscardableCarryForward = (Boolean) dbSeries .get(FieldNames.SERIES_STARTS_WITH_NON_DISCARDABLE_CARRY_FORWARD.name()); - final BasicDBList dbFleets = (BasicDBList) dbSeries.get(FieldNames.SERIES_FLEETS.name()); + @SuppressWarnings("unchecked") + final Iterable dbFleets = (Iterable) dbSeries.get(FieldNames.SERIES_FLEETS.name()); List fleets = loadFleets(dbFleets); - BasicDBList dbRaceColumns = (BasicDBList) dbSeries.get(FieldNames.SERIES_RACE_COLUMNS.name()); + @SuppressWarnings("unchecked") + Iterable dbRaceColumns = (Iterable) dbSeries.get(FieldNames.SERIES_RACE_COLUMNS.name()); Iterable raceColumnNames = loadRaceColumnNames(dbRaceColumns); Series series = new SeriesImpl(name, isMedal, isFleetsCanRunInParallel, fleets, raceColumnNames, trackedRegattaRegistry); @@ -1397,18 +1406,18 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { return series; } - private Iterable loadRaceColumnNames(BasicDBList dbRaceColumns) { + private Iterable loadRaceColumnNames(Iterable dbRaceColumns) { List result = new ArrayList(); for (Object o : dbRaceColumns) { - DBObject dbRaceColumn = (DBObject) o; + Document dbRaceColumn = (Document) o; result.add((String) dbRaceColumn.get(FieldNames.LEADERBOARD_COLUMN_NAME.name())); } return result; } - private void loadRaceColumnRaceLinks(BasicDBList dbRaceColumns, Series series) { + private void loadRaceColumnRaceLinks(Iterable dbRaceColumns, Series series) { for (Object o : dbRaceColumns) { - DBObject dbRaceColumn = (DBObject) o; + Document dbRaceColumn = (Document) o; String name = (String) dbRaceColumn.get(FieldNames.LEADERBOARD_COLUMN_NAME.name()); Map raceIdentifiersPerFleetName = loadRaceIdentifiers(dbRaceColumn); for (Map.Entry e : raceIdentifiersPerFleetName.entrySet()) { @@ -1422,17 +1431,16 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { } } - private List loadFleets(BasicDBList dbFleets) { + private List loadFleets(Iterable dbFleets) { List result = new ArrayList(); - for (Object o : dbFleets) { - DBObject dbFleet = (DBObject) o; + for (Document dbFleet : dbFleets) { Fleet fleet = loadFleet(dbFleet); result.add(fleet); } return result; } - private Fleet loadFleet(DBObject dbFleet) { + private Fleet loadFleet(Document dbFleet) { Fleet result; String name = (String) dbFleet.get(FieldNames.FLEET_NAME.name()); Number orderingAsNumber = (Number) dbFleet.get(FieldNames.FLEET_ORDERING.name()); @@ -1455,9 +1463,9 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { @Override public Map loadRaceIDToRegattaAssociations(RegattaRegistry regattaRegistry) { - DBCollection raceIDToRegattaCollection = database.getCollection(CollectionNames.REGATTA_FOR_RACE_ID.name()); + MongoCollection raceIDToRegattaCollection = database.getCollection(CollectionNames.REGATTA_FOR_RACE_ID.name()); Map result = new HashMap(); - for (DBObject o : raceIDToRegattaCollection.find()) { + for (Document o : raceIDToRegattaCollection.find()) { Regatta regatta = regattaRegistry.getRegattaByName((String) o.get(FieldNames.REGATTA_NAME.name())); if (regatta != null) { result.put((String) o.get(FieldNames.RACE_ID_AS_STRING.name()), regatta); @@ -1473,7 +1481,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { public RaceLog loadRaceLog(RaceLogIdentifier identifier) { RaceLog result = new RaceLogImpl(RaceLogImpl.class.getSimpleName(), identifier.getIdentifier()); try { - BasicDBObject query = new BasicDBObject(); + Document query = new Document(); query.put(FieldNames.RACE_LOG_IDENTIFIER.name(), TripleSerializer.serialize(identifier.getIdentifier())); loadRaceLogEvents(result, query); } catch (Throwable t) { @@ -1485,21 +1493,21 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { return result; } - private List loadRaceLogEvents(RaceLog targetRaceLog, BasicDBObject query) { + private List loadRaceLogEvents(RaceLog targetRaceLog, Document query) { List result = new ArrayList<>(); - DBCollection raceLog = database.getCollection(CollectionNames.RACE_LOGS.name()); - for (DBObject o : raceLog.find(query)) { + MongoCollection raceLog = database.getCollection(CollectionNames.RACE_LOGS.name()); + for (Document o : raceLog.find(query)) { try { - Pair> raceLogEventAndOptionalUpdateInstructions = loadRaceLogEvent((DBObject) o.get(FieldNames.RACE_LOG_EVENT.name())); + Pair> raceLogEventAndOptionalUpdateInstructions = loadRaceLogEvent((Document) o.get(FieldNames.RACE_LOG_EVENT.name())); final RaceLogEvent raceLogEvent = raceLogEventAndOptionalUpdateInstructions.getA(); if (raceLogEvent != null) { targetRaceLog.load(raceLogEvent); result.add(raceLogEvent); } raceLogEventAndOptionalUpdateInstructions.getB().ifPresent(dbObjectForUpdate->{ - final DBObject q = new BasicDBObject("_id", o.get("_id")); + final Document q = new Document("_id", o.get("_id")); o.put(FieldNames.RACE_LOG_EVENT.name(), dbObjectForUpdate); - raceLog.update(q, o); + raceLog.updateOne(q, o); }); } catch (IllegalStateException e) { logger.log(Level.SEVERE, "Couldn't load race log event " + o + ": " + e.getMessage(), e); @@ -1509,17 +1517,18 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { } /** - * @return the race log event read, and an optional {@link DBObject} that, if present, indicates the need to update + * @return the race log event read, and an optional {@link Document} that, if present, indicates the need to update * the event representation in the DB, e.g., because of a migration activity. The caller is responsible for * updating this object into the RACE_LOGS collection then because only the caller knows the key surrounding * the event object passed to this method. */ - public Pair> loadRaceLogEvent(DBObject dbObject) { + public Pair> loadRaceLogEvent(Document dbObject) { TimePoint logicalTimePoint = loadTimePoint(dbObject); TimePoint createdAt = loadTimePoint(dbObject, FieldNames.RACE_LOG_EVENT_CREATED_AT); Serializable id = (Serializable) dbObject.get(FieldNames.RACE_LOG_EVENT_ID.name()); Integer passId = (Integer) dbObject.get(FieldNames.RACE_LOG_EVENT_PASS_ID.name()); - BasicDBList dbCompetitors = (BasicDBList) dbObject.get(FieldNames.RACE_LOG_EVENT_INVOLVED_BOATS.name()); + @SuppressWarnings("unchecked") + Iterable dbCompetitors = (Iterable) dbObject.get(FieldNames.RACE_LOG_EVENT_INVOLVED_BOATS.name()); List competitors = loadCompetitorsForRaceLogEvent(dbCompetitors); final AbstractLogEventAuthor author; String authorName = (String) dbObject.get(FieldNames.RACE_LOG_EVENT_AUTHOR_NAME.name()); @@ -1529,10 +1538,9 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { } else { author = LogEventAuthorImpl.createCompatibilityAuthor(); } - String eventClass = (String) dbObject.get(FieldNames.RACE_LOG_EVENT_CLASS.name()); final RaceLogEvent resultEvent; - Optional dbObjectForUpdate = Optional.empty(); + Optional dbObjectForUpdate = Optional.empty(); if (eventClass.equals(RaceLogStartTimeEvent.class.getSimpleName())) { resultEvent = loadRaceLogStartTimeEvent(createdAt, author, logicalTimePoint, id, passId, competitors, dbObject); } else if (eventClass.equals(RaceLogStartOfTrackingEvent.class.getSimpleName())) { @@ -1551,7 +1559,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { } else if (eventClass.equals(RaceLogPassChangeEvent.class.getSimpleName())) { resultEvent = loadRaceLogPassChangeEvent(createdAt, author, logicalTimePoint, id, passId, competitors); } else if (eventClass.equals(RaceLogCourseDesignChangedEvent.class.getSimpleName())) { - final Pair> resultPair = loadRaceLogCourseDesignChangedEvent( + final Pair> resultPair = loadRaceLogCourseDesignChangedEvent( createdAt, author, logicalTimePoint, id, passId, competitors, dbObject); resultEvent = resultPair.getA(); dbObjectForUpdate = resultPair.getB(); @@ -1583,7 +1591,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { } else if (eventClass.equals(RaceLogRevokeEvent.class.getSimpleName())) { resultEvent = loadRaceLogRevokeEvent(createdAt, author, logicalTimePoint, id, passId, competitors, dbObject); } else if (eventClass.equals(RaceLogRegisterCompetitorEvent.class.getSimpleName())) { - final Pair> resultPair = loadRaceLogRegisterCompetitorEvent(createdAt, + final Pair> resultPair = loadRaceLogRegisterCompetitorEvent(createdAt, author, logicalTimePoint, id, passId, competitors, dbObject); resultEvent = resultPair.getA(); dbObjectForUpdate = resultPair.getB(); @@ -1609,14 +1617,14 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { private RaceLogEvent loadRaceLogUseCompetitorsFromRaceLogEvent(TimePoint createdAt, AbstractLogEventAuthor author, TimePoint logicalTimePoint, Serializable id, Integer passId, List competitors, - DBObject dbObject) { + Document dbObject) { return new RaceLogUseCompetitorsFromRaceLogEventImpl(createdAt, author, logicalTimePoint, id, passId); } private RaceLogEvent loadRaceLogWindFixEvent(TimePoint createdAt, AbstractLogEventAuthor author, TimePoint logicalTimePoint, Serializable id, Integer passId, List competitors, - DBObject dbObject) { - Wind wind = loadWind((DBObject) dbObject.get(FieldNames.WIND.name())); + Document dbObject) { + Wind wind = loadWind((Document) dbObject.get(FieldNames.WIND.name())); Boolean isMagnetic = (Boolean) dbObject.get(FieldNames.IS_MAGNETIC.name()); return new RaceLogWindFixEventImpl(createdAt, logicalTimePoint, author, id, passId, wind, isMagnetic == null ? true : isMagnetic); @@ -1624,7 +1632,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { private RaceLogEvent loadRaceLogDenoteForTrackingEvent(TimePoint createdAt, AbstractLogEventAuthor author, TimePoint logicalTimePoint, Serializable id, Integer passId, List competitors, - DBObject dbObject) { + Document dbObject) { String raceName = (String) dbObject.get(FieldNames.RACE_NAME.name()); BoatClass boatClass = baseDomainFactory .getOrCreateBoatClass((String) dbObject.get(FieldNames.BOAT_CLASS_NAME.name())); @@ -1635,13 +1643,13 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { private RaceLogEvent loadRaceLogStartTrackingEvent(TimePoint createdAt, AbstractLogEventAuthor author, TimePoint logicalTimePoint, Serializable id, Integer passId, List competitors, - DBObject dbObject) { + Document dbObject) { return new RaceLogStartTrackingEventImpl(createdAt, logicalTimePoint, author, id, passId); } private RaceLogEvent loadRaceLogRevokeEvent(TimePoint createdAt, AbstractLogEventAuthor author, TimePoint logicalTimePoint, Serializable id, Integer passId, List competitors, - DBObject dbObject) { + Document dbObject) { Serializable revokedEventId = UUIDHelper .tryUuidConversion((Serializable) dbObject.get(FieldNames.RACE_LOG_REVOKED_EVENT_ID.name())); String revokedEventType = (String) dbObject.get(FieldNames.RACE_LOG_REVOKED_EVENT_TYPE.name()); @@ -1651,9 +1659,9 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { revokedEventType, revokedEventShortInfo, reason); } - private Pair> loadRaceLogRegisterCompetitorEvent(TimePoint createdAt, AbstractLogEventAuthor author, + private Pair> loadRaceLogRegisterCompetitorEvent(TimePoint createdAt, AbstractLogEventAuthor author, TimePoint logicalTimePoint, Serializable id, Integer passId, List competitors, - DBObject dbObject) { + Document dbObject) { final RaceLogRegisterCompetitorEvent result; final Serializable competitorId = (Serializable) dbObject.get(FieldNames.RACE_LOG_COMPETITOR_ID.name()); final Serializable boatId = (Serializable) dbObject.get(FieldNames.RACE_LOG_BOAT_ID.name()); @@ -1661,7 +1669,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { // legacy RaceLogRegisterCompetitorEvent's do not have a boatId, it's expected that the // corresponding competitors have the type CompetitorWithBoat Competitor competitor = baseDomainFactory.getCompetitorAndBoatStore().getExistingCompetitorById(competitorId); - final Optional dbObjectForUpdate; + final Optional dbObjectForUpdate; if (competitor == null) { logger.severe("Competitor with ID "+competitorId+" not found; can't register with boat with ID "+boatId+" for race"); result = null; // the competitor wasn't found @@ -1706,8 +1714,8 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { return new Pair<>(result, dbObjectForUpdate); } - private Optional requestBoatIdUpdateInDB(DBObject dbObject, final RaceLogRegisterCompetitorEvent result) { - final Optional dbObjectForUpdate; + private Optional requestBoatIdUpdateInDB(Document dbObject, final RaceLogRegisterCompetitorEvent result) { + final Optional dbObjectForUpdate; // now update the event in the DB: dbObject.put(FieldNames.RACE_LOG_BOAT_ID.name(), result.getBoat().getId()); dbObjectForUpdate = Optional.of(dbObject); @@ -1742,7 +1750,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { private RaceLogEvent loadRaceLogAdditionalScoringInformationEvent(TimePoint createdAt, AbstractLogEventAuthor author, TimePoint logicalTimePoint, Serializable id, Integer passId, - List competitors, DBObject dbObject) { + List competitors, Document dbObject) { Object additionalScoringInformationTypeInfo = dbObject .get(FieldNames.RACE_LOG_ADDITIONAL_SCORING_INFORMATION_TYPE.name()); AdditionalScoringInformationType informationType = AdditionalScoringInformationType.UNKNOWN; @@ -1758,7 +1766,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { private RaceLogEvent loadRaceLogProtestStartTimeEvent(TimePoint createdAt, AbstractLogEventAuthor author, TimePoint logicalTimePoint, Serializable id, Integer passId, List competitors, - DBObject dbObject) { + Document dbObject) { TimePoint protestStartTime = loadTimePoint(dbObject, FieldNames.RACE_LOG_PROTEST_START_TIME); TimePoint protestEndTime = loadTimePoint(dbObject, FieldNames.RACE_LOG_PROTEST_END_TIME); if (protestEndTime == null) { @@ -1771,7 +1779,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { private RaceLogEvent loadRaceLogStartProcedureChangedEvent(TimePoint createdAt, AbstractLogEventAuthor author, TimePoint logicalTimePoint, Serializable id, Integer passId, List competitors, - DBObject dbObject) { + Document dbObject) { RacingProcedureType type = RacingProcedureType .valueOf(dbObject.get(FieldNames.RACE_LOG_START_PROCEDURE_TYPE.name()).toString()); return new RaceLogStartProcedureChangedEventImpl(createdAt, logicalTimePoint, author, id, passId, type); @@ -1779,7 +1787,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { private RaceLogEvent loadRaceLogTagEvent(TimePoint createdAt, AbstractLogEventAuthor author, TimePoint logicalTimePoint, Serializable id, Integer passId, - DBObject dbObject) { + Document dbObject) { String tag = (String) dbObject.get(FieldNames.RACE_LOG_TAG.name()); String comment = (String) dbObject.get(FieldNames.RACE_LOG_COMMENT.name()); String imageUrl = (String) dbObject.get(FieldNames.RACE_LOG_IMAGE_URL.name()); @@ -1789,10 +1797,10 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { private RaceLogEvent loadRaceLogGateLineOpeningTimeEvent(TimePoint createdAt, AbstractLogEventAuthor author, TimePoint logicalTimePoint, Serializable id, Integer passId, List competitors, - DBObject dbObject) { + Document dbObject) { Number gateLaunchStopTime = (Number) dbObject.get(FieldNames.RACE_LOG_GATE_LINE_OPENING_TIME.name()); Number golfDownTime = 0; - if (dbObject.containsField(FieldNames.RACE_LOG_GOLF_DOWN_TIME.name())) { + if (dbObject.containsKey(FieldNames.RACE_LOG_GOLF_DOWN_TIME.name())) { golfDownTime = (Number) dbObject.get(FieldNames.RACE_LOG_GOLF_DOWN_TIME.name()); } return new RaceLogGateLineOpeningTimeEventImpl(createdAt, logicalTimePoint, author, id, passId, @@ -1801,15 +1809,15 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { private RaceLogEvent loadRaceLogPathfinderEvent(TimePoint createdAt, AbstractLogEventAuthor author, TimePoint logicalTimePoint, Serializable id, Integer passId, List competitors, - DBObject dbObject) { + Document dbObject) { String pathfinderId = dbObject.get(FieldNames.RACE_LOG_PATHFINDER_ID.name()).toString(); return new RaceLogPathfinderEventImpl(createdAt, logicalTimePoint, author, id, passId, pathfinderId); } private RaceLogEvent loadRaceLogFinishPositioningConfirmedEvent(TimePoint createdAt, AbstractLogEventAuthor author, TimePoint logicalTimePoint, Serializable id, Integer passId, List competitors, - DBObject dbObject) { - BasicDBList dbPositionedCompetitorList = (BasicDBList) dbObject + Document dbObject) { + Iterable dbPositionedCompetitorList = (Iterable) dbObject .get(FieldNames.RACE_LOG_POSITIONED_COMPETITORS.name()); CompetitorResults positionedCompetitors = null; // When a confirmation event is loaded that does not contain the positioned competitors (this is the case for @@ -1825,8 +1833,8 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { private RaceLogEvent loadRaceLogFinishPositioningListChangedEvent(TimePoint createdAt, AbstractLogEventAuthor author, TimePoint logicalTimePoint, Serializable id, Integer passId, - List competitors, DBObject dbObject) { - BasicDBList dbPositionedCompetitorList = (BasicDBList) dbObject + List competitors, Document dbObject) { + Iterable dbPositionedCompetitorList = (Iterable) dbObject .get(FieldNames.RACE_LOG_POSITIONED_COMPETITORS.name()); CompetitorResults positionedCompetitors = loadPositionedCompetitors(dbPositionedCompetitorList); @@ -1840,14 +1848,14 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { } /** - * @return the second pair component has a DBObject in case migration was performed and the updated race log event's - * DBObject representation shall be updated to the DB + * @return the second pair component has a Document in case migration was performed and the updated race log event's + * {@link Document} representation shall be updated to the DB */ - private Pair> loadRaceLogCourseDesignChangedEvent(TimePoint createdAt, + private Pair> loadRaceLogCourseDesignChangedEvent(TimePoint createdAt, AbstractLogEventAuthor author, TimePoint logicalTimePoint, Serializable id, Integer passId, - List competitors, DBObject dbObject) { + List competitors, Document dbObject) { String courseName = (String) dbObject.get(FieldNames.RACE_LOG_COURSE_DESIGN_NAME.name()); - Pair courseData = loadCourseData((BasicDBList) dbObject.get(FieldNames.RACE_LOG_COURSE_DESIGN.name()), + Pair courseData = loadCourseData((Iterable) dbObject.get(FieldNames.RACE_LOG_COURSE_DESIGN.name()), courseName); final String courseDesignerModeName = (String) dbObject.get(FieldNames.RACE_LOG_COURSE_DESIGNER_MODE.name()); final CourseDesignerMode courseDesignerMode = courseDesignerModeName == null ? null @@ -1857,7 +1865,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { } private RaceLogEvent loadRaceLogFixedMarkPassingEvent(TimePoint createdAt, AbstractLogEventAuthor author, TimePoint logicalTimePoint, - Serializable id, Integer passId, List competitors, DBObject dbObject) { + Serializable id, Integer passId, List competitors, Document dbObject) { TimePoint ofFixedPassing = loadTimePoint(dbObject, FieldNames.TIMEPOINT_OF_FIXED_MARKPASSING); Integer zeroBasedIndexOfWaypoint = (Integer) dbObject.get(FieldNames.INDEX_OF_PASSED_WAYPOINT.name()); return new RaceLogFixedMarkPassingEventImpl(createdAt, logicalTimePoint, author, id, competitors, passId, @@ -1866,18 +1874,18 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { private RaceLogEvent loadRaceLogSuppressedMarkPassingsEvent(TimePoint createdAt, AbstractLogEventAuthor author, TimePoint logicalTimePoint, Serializable id, Integer passId, List competitors, - DBObject dbObject) { + Document dbObject) { Integer zeroBasedIndexOfFirstSuppressedWaypoint = (Integer) dbObject .get(FieldNames.INDEX_OF_FIRST_SUPPRESSED_WAYPOINT.name()); return new RaceLogSuppressedMarkPassingsEventImpl(createdAt, logicalTimePoint, author, id, competitors, passId, zeroBasedIndexOfFirstSuppressedWaypoint); } - private CompetitorResults loadPositionedCompetitors(BasicDBList dbPositionedCompetitorList) { + private CompetitorResults loadPositionedCompetitors(Iterable dbPositionedCompetitorList) { CompetitorResultsImpl positionedCompetitors = new CompetitorResultsImpl(); int rankCounter = 1; for (Object object : dbPositionedCompetitorList) { - DBObject dbObject = (DBObject) object; + Document dbObject = (Document) object; final Serializable competitorId = (Serializable) dbObject.get(FieldNames.COMPETITOR_ID.name()); String competitorDisplayName = (String) dbObject.get(FieldNames.COMPETITOR_DISPLAY_NAME.name()); // The Competitor name is a new field in the list. Therefore the name might be null for existing events. In @@ -1918,7 +1926,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { return positionedCompetitors; } - private List loadCompetitorsForRaceLogEvent(BasicDBList dbCompetitorList) { + private List loadCompetitorsForRaceLogEvent(Iterable dbCompetitorList) { List competitors = new ArrayList(); for (Object object : dbCompetitorList) { Serializable competitorId = (Serializable) object; @@ -1930,7 +1938,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { private RaceLogFlagEvent loadRaceLogFlagEvent(TimePoint createdAt, AbstractLogEventAuthor author, TimePoint logicalTimePoint, Serializable id, Integer passId, List competitors, - DBObject dbObject) { + Document dbObject) { Flags upperFlag = Flags.valueOf((String) dbObject.get(FieldNames.RACE_LOG_EVENT_FLAG_UPPER.name())); Flags lowerFlag = Flags.valueOf((String) dbObject.get(FieldNames.RACE_LOG_EVENT_FLAG_LOWER.name())); Boolean displayed = Boolean.valueOf((String) dbObject.get(FieldNames.RACE_LOG_EVENT_FLAG_DISPLAYED.name())); @@ -1945,7 +1953,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { private RaceLogStartTimeEvent loadRaceLogStartTimeEvent(TimePoint createdAt, AbstractLogEventAuthor author, TimePoint logicalTimePoint, Serializable id, Integer passId, List competitors, - DBObject dbObject) { + Document dbObject) { TimePoint startTime = loadTimePoint(dbObject, FieldNames.RACE_LOG_EVENT_START_TIME); RaceLogRaceStatus nextStatus = RaceLogRaceStatus .valueOf((String) dbObject.get(FieldNames.RACE_LOG_EVENT_NEXT_STATUS.name())); @@ -1954,19 +1962,19 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { private RaceLogStartOfTrackingEvent loadRaceLogStartOfTrackingEvent(TimePoint createdAt, AbstractLogEventAuthor author, TimePoint logicalTimePoint, Serializable id, Integer passId, - List competitors, DBObject dbObject) { + List competitors, Document dbObject) { return new RaceLogStartOfTrackingEventImpl(createdAt, logicalTimePoint, author, id, passId); } private RaceLogEndOfTrackingEvent loadRaceLogEndOfTrackingEvent(TimePoint createdAt, AbstractLogEventAuthor author, TimePoint logicalTimePoint, Serializable id, Integer passId, List competitors, - DBObject dbObject) { + Document dbObject) { return new RaceLogEndOfTrackingEventImpl(createdAt, logicalTimePoint, author, id, passId); } private RaceLogDependentStartTimeEvent loadRaceLogDependentStartTimeEvent(TimePoint createdAt, AbstractLogEventAuthor author, TimePoint logicalTimePoint, Serializable id, Integer passId, - List competitors, DBObject dbObject) { + List competitors, Document dbObject) { final Object regattaLikeNameObject = dbObject.get(FieldNames.RACE_LOG_DEPDENDENT_ON_REGATTALIKE.name()); final String regattaLikeName = regattaLikeNameObject == null ? null : regattaLikeNameObject.toString(); final Object raceColumnNameObject = dbObject.get(FieldNames.RACE_LOG_DEPDENDENT_ON_RACECOLUMN.name()); @@ -1986,7 +1994,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { private RaceLogRaceStatusEvent loadRaceLogRaceStatusEvent(TimePoint createdAt, AbstractLogEventAuthor author, TimePoint logicalTimePoint, Serializable id, Integer passId, List competitors, - DBObject dbObject) { + Document dbObject) { RaceLogRaceStatus nextStatus = RaceLogRaceStatus .valueOf((String) dbObject.get(FieldNames.RACE_LOG_EVENT_NEXT_STATUS.name())); return new RaceLogRaceStatusEventImpl(createdAt, logicalTimePoint, author, id, passId, nextStatus); @@ -1996,7 +2004,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { public RegattaLog loadRegattaLog(RegattaLikeIdentifier identifier) { RegattaLog result = new RegattaLogImpl(RegattaLogImpl.class.getSimpleName(), identifier); try { - BasicDBObject query = new BasicDBObject(); + Document query = new Document(); query.put(FieldNames.REGATTA_LOG_IDENTIFIER_TYPE.name(), identifier.getIdentifierType()); query.put(FieldNames.REGATTA_LOG_IDENTIFIER_NAME.name(), identifier.getName()); loadRegattaLogEvents(result, query, identifier); @@ -2008,10 +2016,10 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { return result; } - private void loadRegattaLogEvents(RegattaLog targetRegattaLog, BasicDBObject query, + private void loadRegattaLogEvents(RegattaLog targetRegattaLog, Document query, RegattaLikeIdentifier regattaLogIdentifier) { - DBCollection collection = database.getCollection(CollectionNames.REGATTA_LOGS.name()); - for (DBObject o : collection.find(query)) { + MongoCollection collection = database.getCollection(CollectionNames.REGATTA_LOGS.name()); + for (Document o : collection.find(query)) { try { RegattaLogEvent event = loadRegattaLogEvent(o, regattaLogIdentifier); if (event != null) { @@ -2023,8 +2031,8 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { } } - private RegattaLogEvent loadRegattaLogEvent(DBObject o, RegattaLikeIdentifier regattaLogIdentifier) { - DBObject dbObject = (DBObject) o.get(FieldNames.REGATTA_LOG_EVENT.name()); + private RegattaLogEvent loadRegattaLogEvent(Document o, RegattaLikeIdentifier regattaLogIdentifier) { + Document dbObject = (Document) o.get(FieldNames.REGATTA_LOG_EVENT.name()); TimePoint logicalTimePoint = loadTimePoint(dbObject); TimePoint createdAt = loadTimePoint(dbObject, FieldNames.REGATTA_LOG_EVENT_CREATED_AT); Serializable id = (Serializable) dbObject.get(FieldNames.REGATTA_LOG_EVENT_ID.name()); @@ -2080,20 +2088,20 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { throw new IllegalStateException(String.format("Unknown RegattaLogEvent type %s", eventClass)); } - private Competitor getCompetitorByID(DBObject dbObject) { + private Competitor getCompetitorByID(Document dbObject) { Serializable competitorId = (Serializable) dbObject.get(FieldNames.REGATTA_LOG_COMPETITOR_ID.name()); Competitor comp = baseDomainFactory.getCompetitorAndBoatStore().getExistingCompetitorById(competitorId); return comp; } - private Boat getBoatByID(DBObject dbObject) { + private Boat getBoatByID(Document dbObject) { Serializable boatId = (Serializable) dbObject.get(FieldNames.REGATTA_LOG_BOAT_ID.name()); Boat boat = baseDomainFactory.getCompetitorAndBoatStore().getExistingBoatById(boatId); return boat; } private RegattaLogEvent loadRegattaLogSetCompetitorTimeOnDistanceAllowancePerNauticalMileEvent(TimePoint createdAt, - AbstractLogEventAuthor author, TimePoint logicalTimePoint, Serializable id, DBObject dbObject) { + AbstractLogEventAuthor author, TimePoint logicalTimePoint, Serializable id, Document dbObject) { final Competitor comp = getCompetitorByID(dbObject); final Number timeOnTimeFactorAsNumber = (Number) dbObject.get(FieldNames.REGATTA_LOG_TIME_ON_TIME_FACTOR.name()); final Double timeOnTimeFactor = timeOnTimeFactorAsNumber == null ? null : timeOnTimeFactorAsNumber.doubleValue(); @@ -2102,7 +2110,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { } private RegattaLogEvent loadRegattaLogSetCompetitorTimeOnTimeFactorEvent(TimePoint createdAt, - AbstractLogEventAuthor author, TimePoint logicalTimePoint, Serializable id, DBObject dbObject) { + AbstractLogEventAuthor author, TimePoint logicalTimePoint, Serializable id, Document dbObject) { final Competitor comp = getCompetitorByID(dbObject); final Number timeOnDistanceSecondsAllowancePerNauticalMileAsNumber = (Number) dbObject .get(FieldNames.REGATTA_LOG_TIME_ON_DISTANCE_SECONDS_ALLOWANCE_PER_NAUTICAL_MILE.name()); @@ -2115,7 +2123,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { } private RegattaLogRevokeEvent loadRegattaLogRevokeEvent(TimePoint createdAt, AbstractLogEventAuthor author, - TimePoint logicalTimePoint, Serializable id, DBObject dbObject) { + TimePoint logicalTimePoint, Serializable id, Document dbObject) { Serializable revokedEventId = UUIDHelper .tryUuidConversion((Serializable) dbObject.get(FieldNames.REGATTA_LOG_REVOKED_EVENT_ID.name())); String revokedEventType = (String) dbObject.get(FieldNames.REGATTA_LOG_REVOKED_EVENT_TYPE.name()); @@ -2126,13 +2134,13 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { } private RegattaLogEvent loadRegattaLogDefineMarkEvent(TimePoint createdAt, AbstractLogEventAuthor author, - TimePoint logicalTimePoint, Serializable id, DBObject dbObject) { - Mark mark = loadMark((DBObject) dbObject.get(FieldNames.REGATTA_LOG_MARK.name())); + TimePoint logicalTimePoint, Serializable id, Document dbObject) { + Mark mark = loadMark((Document) dbObject.get(FieldNames.REGATTA_LOG_MARK.name())); return new RegattaLogDefineMarkEventImpl(createdAt, author, logicalTimePoint, id, mark); } private RegattaLogRegisterCompetitorEvent loadRegattaLogRegisterCompetitorEvent(TimePoint createdAt, - AbstractLogEventAuthor author, TimePoint logicalTimePoint, Serializable id, DBObject dbObject) { + AbstractLogEventAuthor author, TimePoint logicalTimePoint, Serializable id, Document dbObject) { Competitor comp = getCompetitorByID(dbObject); final RegattaLogRegisterCompetitorEvent result; if (comp == null) { @@ -2147,7 +2155,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { } private RegattaLogRegisterBoatEvent loadRegattaLogRegisterBoatEvent(TimePoint createdAt, - AbstractLogEventAuthor author, TimePoint logicalTimePoint, Serializable id, DBObject dbObject) { + AbstractLogEventAuthor author, TimePoint logicalTimePoint, Serializable id, Document dbObject) { Boat boat = getBoatByID(dbObject); final RegattaLogRegisterBoatEvent result; if (boat == null) { @@ -2163,7 +2171,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { private RegattaLogCloseOpenEndedDeviceMappingEvent loadRegattaLogCloseOpenEndedDeviceMappingEvent( TimePoint createdAt, AbstractLogEventAuthor author, TimePoint logicalTimePoint, Serializable id, - DBObject dbObject) { + Document dbObject) { Serializable deviceMappingEventId = UUIDHelper .tryUuidConversion((Serializable) dbObject.get(FieldNames.REGATTA_LOG_DEVICE_MAPPING_EVENT_ID.name())); TimePoint closingTimePointInclusive = loadTimePoint(dbObject, FieldNames.REGATTA_LOG_CLOSING_TIMEPOINT); @@ -2172,9 +2180,9 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { } private RegattaLogDeviceMarkMappingEvent loadRegattaLogDeviceMarkMappingEvent(TimePoint createdAt, AbstractLogEventAuthor author, - TimePoint logicalTimePoint, Serializable id, DBObject dbObject, RegattaLikeIdentifier regattaLogIdentifier, DBObject outerDBObject) { + TimePoint logicalTimePoint, Serializable id, Document dbObject, RegattaLikeIdentifier regattaLogIdentifier, Document outerDBObject) { return this.loadRegattaLogDeviceMappingEvent(createdAt, author, logicalTimePoint, id, dbObject, - regattaLogIdentifier, outerDBObject, () -> loadMark((DBObject) dbObject.get(FieldNames.MARK.name())), + regattaLogIdentifier, outerDBObject, () -> loadMark((Document) dbObject.get(FieldNames.MARK.name())), RegattaLogDeviceMarkMappingEventImpl::new, result -> new MongoObjectFactoryImpl(database, serviceFinderFactory) .storeRegattaLogEvent(regattaLogIdentifier, result)); @@ -2189,7 +2197,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { * @return the from-time in {@link Triple#getA()}, the to-time in {@link Triple#getB()} and whether or not migration * is necessary because a value was only found in a deprecated field in {@link Triple#getC()}. */ - private Triple loadFromToTimePoint(final DBObject dbObject, FieldNames fromField, + private Triple loadFromToTimePoint(final Document dbObject, FieldNames fromField, FieldNames fromFieldDeprecated, FieldNames toField, FieldNames toFieldDeprecated) { boolean needsMigration = false; TimePoint from = loadTimePoint(dbObject, fromField); @@ -2216,8 +2224,8 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { } private RegattaLogDeviceCompetitorMappingEvent loadRegattaLogDeviceCompetitorMappingEvent(TimePoint createdAt, - AbstractLogEventAuthor author, TimePoint logicalTimePoint, Serializable id, final DBObject dbObject, - RegattaLikeIdentifier regattaLogIdentifier, DBObject outerDBObject) { + AbstractLogEventAuthor author, TimePoint logicalTimePoint, Serializable id, final Document dbObject, + RegattaLikeIdentifier regattaLogIdentifier, Document outerDBObject) { return this.loadRegattaLogDeviceMappingEvent(createdAt, author, logicalTimePoint, id, dbObject, regattaLogIdentifier, outerDBObject, () -> baseDomainFactory @@ -2228,8 +2236,8 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { } private RegattaLogDeviceBoatMappingEvent loadRegattaLogDeviceBoatMappingEvent(TimePoint createdAt, - AbstractLogEventAuthor author, TimePoint logicalTimePoint, Serializable id, final DBObject dbObject, - RegattaLikeIdentifier regattaLogIdentifier, DBObject outerDBObject) { + AbstractLogEventAuthor author, TimePoint logicalTimePoint, Serializable id, final Document dbObject, + RegattaLikeIdentifier regattaLogIdentifier, Document outerDBObject) { return this.loadRegattaLogDeviceMappingEvent(createdAt, author, logicalTimePoint, id, dbObject, regattaLogIdentifier, outerDBObject, () -> baseDomainFactory.getCompetitorAndBoatStore() @@ -2241,28 +2249,28 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { private RegattaLogDeviceCompetitorBravoMappingEventImpl loadRegattaLogDeviceCompetitorBravoMappingEvent( TimePoint createdAt, AbstractLogEventAuthor author, TimePoint logicalTimePoint, Serializable id, - final DBObject dbObject, RegattaLikeIdentifier regattaLogIdentifier, DBObject outerDBObject) { + final Document dbObject, RegattaLikeIdentifier regattaLogIdentifier, Document outerDBObject) { return loadRegattaLogDeviceCompetitorSensorDataMappingEvent(createdAt, author, logicalTimePoint, id, dbObject, regattaLogIdentifier, outerDBObject, RegattaLogDeviceCompetitorBravoMappingEventImpl::new); } private RegattaLogDeviceCompetitorBravoExtendedMappingEventImpl loadRegattaLogDeviceCompetitorBravoExtendedMappingEvent( TimePoint createdAt, AbstractLogEventAuthor author, TimePoint logicalTimePoint, Serializable id, - final DBObject dbObject, RegattaLikeIdentifier regattaLogIdentifier, DBObject outerDBObject) { + final Document dbObject, RegattaLikeIdentifier regattaLogIdentifier, Document outerDBObject) { return loadRegattaLogDeviceCompetitorSensorDataMappingEvent(createdAt, author, logicalTimePoint, id, dbObject, regattaLogIdentifier, outerDBObject, RegattaLogDeviceCompetitorBravoExtendedMappingEventImpl::new); } private RegattaLogDeviceCompetitorExpeditionExtendedMappingEventImpl loadRegattaLogDeviceCompetitorExpeditionExtendedMappingEvent( TimePoint createdAt, AbstractLogEventAuthor author, TimePoint logicalTimePoint, Serializable id, - final DBObject dbObject, RegattaLikeIdentifier regattaLogIdentifier, DBObject outerDBObject) { + final Document dbObject, RegattaLikeIdentifier regattaLogIdentifier, Document outerDBObject) { return loadRegattaLogDeviceCompetitorSensorDataMappingEvent(createdAt, author, logicalTimePoint, id, dbObject, regattaLogIdentifier, outerDBObject, RegattaLogDeviceCompetitorExpeditionExtendedMappingEventImpl::new); } private MappingT loadRegattaLogDeviceCompetitorSensorDataMappingEvent( TimePoint createdAt, AbstractLogEventAuthor author, TimePoint logicalTimePoint, Serializable id, - final DBObject dbObject, RegattaLikeIdentifier regattaLogIdentifier, DBObject outerDBObject, + final Document dbObject, RegattaLikeIdentifier regattaLogIdentifier, Document outerDBObject, RegattaLogDeviceMappingEventImpl.Factory factory) { return this.loadRegattaLogDeviceMappingEvent(createdAt, author, logicalTimePoint, id, dbObject, regattaLogIdentifier, outerDBObject, @@ -2274,28 +2282,28 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { private RegattaLogDeviceBoatBravoMappingEventImpl loadRegattaLogDeviceBoatBravoMappingEvent( TimePoint createdAt, AbstractLogEventAuthor author, TimePoint logicalTimePoint, Serializable id, - final DBObject dbObject, RegattaLikeIdentifier regattaLogIdentifier, DBObject outerDBObject) { + final Document dbObject, RegattaLikeIdentifier regattaLogIdentifier, Document outerDBObject) { return loadRegattaLogDeviceBoatSensorDataMappingEvent(createdAt, author, logicalTimePoint, id, dbObject, regattaLogIdentifier, outerDBObject, RegattaLogDeviceBoatBravoMappingEventImpl::new); } private RegattaLogDeviceBoatBravoExtendedMappingEventImpl loadRegattaLogDeviceBoatBravoExtendedMappingEvent( TimePoint createdAt, AbstractLogEventAuthor author, TimePoint logicalTimePoint, Serializable id, - final DBObject dbObject, RegattaLikeIdentifier regattaLogIdentifier, DBObject outerDBObject) { + final Document dbObject, RegattaLikeIdentifier regattaLogIdentifier, Document outerDBObject) { return loadRegattaLogDeviceBoatSensorDataMappingEvent(createdAt, author, logicalTimePoint, id, dbObject, regattaLogIdentifier, outerDBObject, RegattaLogDeviceBoatBravoExtendedMappingEventImpl::new); } private RegattaLogDeviceBoatExpeditionExtendedMappingEventImpl loadRegattaLogDeviceBoatExpeditionExtendedMappingEvent( TimePoint createdAt, AbstractLogEventAuthor author, TimePoint logicalTimePoint, Serializable id, - final DBObject dbObject, RegattaLikeIdentifier regattaLogIdentifier, DBObject outerDBObject) { + final Document dbObject, RegattaLikeIdentifier regattaLogIdentifier, Document outerDBObject) { return loadRegattaLogDeviceBoatSensorDataMappingEvent(createdAt, author, logicalTimePoint, id, dbObject, regattaLogIdentifier, outerDBObject, RegattaLogDeviceBoatExpeditionExtendedMappingEventImpl::new); } private MappingT loadRegattaLogDeviceBoatSensorDataMappingEvent( TimePoint createdAt, AbstractLogEventAuthor author, TimePoint logicalTimePoint, Serializable id, - final DBObject dbObject, RegattaLikeIdentifier regattaLogIdentifier, DBObject outerDBObject, + final Document dbObject, RegattaLikeIdentifier regattaLogIdentifier, Document outerDBObject, RegattaLogDeviceMappingEventImpl.Factory factory) { return this.loadRegattaLogDeviceMappingEvent(createdAt, author, logicalTimePoint, id, dbObject, regattaLogIdentifier, outerDBObject, @@ -2307,11 +2315,11 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { private > MappingT loadRegattaLogDeviceMappingEvent( TimePoint createdAt, AbstractLogEventAuthor author, TimePoint logicalTimePoint, Serializable id, - final DBObject dbObject, RegattaLikeIdentifier regattaLogIdentifier, DBObject outerDBObject, Supplier itemResolver, + final Document dbObject, RegattaLikeIdentifier regattaLogIdentifier, Document outerDBObject, Supplier itemResolver, RegattaLogDeviceMappingEventImpl.Factory factory, Consumer storeCallback) { DeviceIdentifier device = null; try { - device = loadDeviceId(deviceIdentifierServiceFinder, (DBObject) dbObject.get(FieldNames.DEVICE_ID.name())); + device = loadDeviceId(deviceIdentifierServiceFinder, (Document) dbObject.get(FieldNames.DEVICE_ID.name())); } catch (Exception e) { logger.log(Level.WARNING, "Could not load deviceId for RaceLogEvent", e); e.printStackTrace(); @@ -2332,9 +2340,9 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { createdAt, logicalTimePoint, author, id, mappedTo, device, from, to); if (needsMigration) { // remove old version of mapping event - WriteResult removeResult = database.getCollection(CollectionNames.REGATTA_LOGS.name()) - .remove(outerDBObject); - assert removeResult.getN() == 1; + DeleteResult removeResult = database.getCollection(CollectionNames.REGATTA_LOGS.name()) + .deleteMany(outerDBObject); + assert removeResult.getDeletedCount() == 1; // and then insert using the fixed storage implementation storeCallback.accept(result); } @@ -2350,7 +2358,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { * been edited "in place" to describe the migration that has happened */ @SuppressWarnings("deprecation") // Used to migrate from PASSINGSIDE to the new PASSINGINSTRUCTIONS - private Pair loadCourseData(BasicDBList dbCourseList, String courseName) { + private Pair loadCourseData(Iterable dbCourseList, String courseName) { boolean migrated = false; if (courseName == null) { courseName = "Course"; @@ -2358,7 +2366,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { CourseBase courseData = new CourseDataImpl(courseName); int i = 0; for (Object object : dbCourseList) { - DBObject dbObject = (DBObject) object; + Document dbObject = (Document) object; Waypoint waypoint = null; PassingInstruction passingInstructions = null; String waypointPassingInstruction = (String) dbObject.get(FieldNames.WAYPOINT_PASSINGINSTRUCTIONS.name()); @@ -2367,20 +2375,20 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { if (waypointPassingInstruction != null) { logger.info("Migrating PassingInstruction " + waypointPassingInstruction + " to field name WAYPOINT_PASSINGINSTRUCTIONS"); - if ((i == 0 || i == dbCourseList.size() - 1) + if ((i == 0 || i == Util.size(dbCourseList) - 1) && waypointPassingInstruction.toLowerCase().equals("gate")) { logger.warning("Changing PassingInstructions of first or last Waypoint from Gate to Line."); waypointPassingInstruction = "Line"; } dbObject.put(FieldNames.WAYPOINT_PASSINGINSTRUCTIONS.name(), waypointPassingInstruction); - dbObject.removeField(FieldNames.WAYPOINT_PASSINGSIDE.name()); + dbObject.remove(FieldNames.WAYPOINT_PASSINGSIDE.name()); migrated = true; } } if (waypointPassingInstruction != null) { passingInstructions = PassingInstruction.valueOfIgnoringCase(waypointPassingInstruction); } - Pair controlPoint = loadControlPoint((DBObject) dbObject.get(FieldNames.CONTROLPOINT.name())); + Pair controlPoint = loadControlPoint((Document) dbObject.get(FieldNames.CONTROLPOINT.name())); migrated = migrated || controlPoint.getB(); if (passingInstructions == null) { waypoint = new WaypointImpl(controlPoint.getA()); @@ -2395,23 +2403,23 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { /** * @return second component tells whether migration was performed on {@code dbObject} in place */ - private Pair loadControlPoint(DBObject dbObject) { + private Pair loadControlPoint(Document dbObject) { String controlPointClass = (String) dbObject.get(FieldNames.CONTROLPOINT_CLASS.name()); ControlPoint controlPoint = null; boolean migrated = false; if (controlPointClass != null) { if (controlPointClass.equals(Mark.class.getSimpleName())) { - Mark mark = loadMark((DBObject) dbObject.get(FieldNames.CONTROLPOINT_VALUE.name())); + Mark mark = loadMark((Document) dbObject.get(FieldNames.CONTROLPOINT_VALUE.name())); controlPoint = mark; } else if (controlPointClass.equals("Gate")) { ControlPointWithTwoMarks cpwtm = loadControlPointWithTwoMarks( - (DBObject) dbObject.get(FieldNames.CONTROLPOINT_VALUE.name())); + (Document) dbObject.get(FieldNames.CONTROLPOINT_VALUE.name())); dbObject.put(FieldNames.CONTROLPOINT_CLASS.name(), ControlPointWithTwoMarks.class.getSimpleName()); controlPoint = cpwtm; migrated = true; } else if (controlPointClass.equals(ControlPointWithTwoMarks.class.getSimpleName())) { ControlPointWithTwoMarks cpwtm = loadControlPointWithTwoMarks( - (DBObject) dbObject.get(FieldNames.CONTROLPOINT_VALUE.name())); + (Document) dbObject.get(FieldNames.CONTROLPOINT_VALUE.name())); controlPoint = cpwtm; } } @@ -2422,14 +2430,14 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { * Checks for the old GATE fields and migrates them to the new CONTROLPOINTWITHTWOMARKS fields. */ @SuppressWarnings("deprecation") // Used for migrating old races - private ControlPointWithTwoMarks loadControlPointWithTwoMarks(DBObject dbObject) { + private ControlPointWithTwoMarks loadControlPointWithTwoMarks(Document dbObject) { String controlPointName = (String) dbObject.get(FieldNames.CONTROLPOINTWITHTWOMARKS_NAME.name()); if (controlPointName == null) { controlPointName = (String) dbObject.get(FieldNames.GATE_NAME.name()); logger.info("Migrating name of ControlPointWithTwoMarks " + controlPointName + " from GATE_NAME to new field CONTROLPOINTWITHTWOMARKS_NAME."); dbObject.put(FieldNames.CONTROLPOINTWITHTWOMARKS_NAME.name(), controlPointName); - dbObject.removeField(FieldNames.GATE_NAME.name()); + dbObject.remove(FieldNames.GATE_NAME.name()); } Serializable controlPointId = (Serializable) dbObject.get(FieldNames.CONTROLPOINTWITHTWOMARKS_ID.name()); if (controlPointId == null) { @@ -2437,24 +2445,24 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { logger.info("Migrating id of ControlPointWithTwoMarks " + controlPointName + " from old field GATE_ID to CONTROLPOINTWITHTWOMARKS_ID."); dbObject.put(FieldNames.CONTROLPOINTWITHTWOMARKS_ID.name(), controlPointId); - dbObject.removeField(FieldNames.GATE_ID.name()); + dbObject.remove(FieldNames.GATE_ID.name()); } - DBObject dbLeft = (DBObject) dbObject.get(FieldNames.CONTROLPOINTWITHTWOMARKS_LEFT.name()); + Document dbLeft = (Document) dbObject.get(FieldNames.CONTROLPOINTWITHTWOMARKS_LEFT.name()); if (dbLeft == null) { - dbLeft = (DBObject) dbObject.get(FieldNames.GATE_LEFT.name()); + dbLeft = (Document) dbObject.get(FieldNames.GATE_LEFT.name()); logger.info("Migrating left Mark of ControlPointWithTwoMarks " + controlPointName + " from old field GATE_LEFT to CONTROLPOINTWITHTWOMARKS_LEFT"); dbObject.put(FieldNames.CONTROLPOINTWITHTWOMARKS_LEFT.name(), dbLeft); - dbObject.removeField(FieldNames.GATE_LEFT.name()); + dbObject.remove(FieldNames.GATE_LEFT.name()); } Mark leftMark = loadMark(dbLeft); - DBObject dbRight = (DBObject) dbObject.get(FieldNames.CONTROLPOINTWITHTWOMARKS_RIGHT.name()); + Document dbRight = (Document) dbObject.get(FieldNames.CONTROLPOINTWITHTWOMARKS_RIGHT.name()); if (dbRight == null) { - dbRight = (DBObject) dbObject.get(FieldNames.GATE_RIGHT.name()); + dbRight = (Document) dbObject.get(FieldNames.GATE_RIGHT.name()); logger.info("Migrating right Mark of ControlPointWithTwoMarks " + controlPointName + " from old field GATE_RIGHT to CONTROLPOINTWITHTWOMARKS_RIGHT"); dbObject.put(FieldNames.CONTROLPOINTWITHTWOMARKS_RIGHT.name(), dbRight); - dbObject.removeField(FieldNames.GATE_RIGHT.name()); + dbObject.remove(FieldNames.GATE_RIGHT.name()); } Mark rightMark = loadMark(dbRight); ControlPointWithTwoMarks gate = baseDomainFactory.createControlPointWithTwoMarks(controlPointId, leftMark, @@ -2462,7 +2470,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { return gate; } - private Mark loadMark(DBObject dbObject) { + private Mark loadMark(Document dbObject) { Serializable markId = (Serializable) dbObject.get(FieldNames.MARK_ID.name()); String markColorAsString = (String) dbObject.get(FieldNames.MARK_COLOR.name()); Color markColor = AbstractColor.getCssColor(markColorAsString); @@ -2479,15 +2487,15 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { @Override public Collection loadAllCompetitors() { Map competitorsById = new HashMap<>(); - DBCollection collection = database.getCollection(CollectionNames.COMPETITORS.name()); + MongoCollection collection = database.getCollection(CollectionNames.COMPETITORS.name()); try { - for (DBObject o : collection.find()) { + for (Document o : collection.find()) { JSONObject json = Helpers.toJSONObjectSafe(new JSONParser().parse(JSON.serialize(o))); DynamicCompetitor c = competitorWithBoatRefDeserializer.deserialize(json); // ensure that in case there should be multiple competitors with equal IDs in the DB // only one will survive if (competitorsById.containsKey(c.getId())) { - collection.remove(o); + collection.deleteOne(o); } else { competitorsById.put(c.getId(), c); } @@ -2502,25 +2510,33 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { @Override public Iterable migrateLegacyCompetitorsIfRequired() { Map competitorsById = null; - boolean competitorsCollectionExist = database.collectionExists(CollectionNames.COMPETITORS.name()); - boolean boatsCollectionCollectionExist = database.collectionExists(CollectionNames.BOATS.name()); - DBCollection orginalCompetitorCollection = database.getCollection(CollectionNames.COMPETITORS.name()); + boolean competitorsCollectionExist = false; + boolean boatsCollectionCollectionExist = false; + for (final String collectionName : database.listCollectionNames()) { + if (collectionName.equals(CollectionNames.COMPETITORS.name())) { + competitorsCollectionExist = true; + } + if (collectionName.equals(CollectionNames.BOATS.name())) { + boatsCollectionCollectionExist = true; + } + } + MongoCollection orginalCompetitorCollection = database.getCollection(CollectionNames.COMPETITORS.name()); // there is a corner case where tests can create just one competitor without boat // before we migrate we need to check if this case if (competitorsCollectionExist && !boatsCollectionCollectionExist) { long competitorCount = orginalCompetitorCollection.count(); if (competitorCount > 0) { - DBObject oneCompetitorDbObject = orginalCompetitorCollection.findOne(); + Document oneCompetitorDbObject = orginalCompetitorCollection.find().first(); Object boatObject = oneCompetitorDbObject.get(CompetitorJsonConstants.FIELD_BOAT); // only in case such a boat object exist we need a migration, because the new type stores only a boatID or no boat at all if (boatObject != null) { logger.log(Level.INFO, "Bug2822 DB-Migration: Rename COMPETITORS collection to COMPETITORS_BAK."); competitorsById = new HashMap<>(); - orginalCompetitorCollection.rename(CollectionNames.COMPETITORS_BAK.name(), /* dropTarget */ true); - DBCollection collection = database.getCollection(CollectionNames.COMPETITORS_BAK.name()); + orginalCompetitorCollection.renameCollection(new MongoNamespace(database.getName(), CollectionNames.COMPETITORS_BAK.name()), new RenameCollectionOptions().dropTarget(true)); + MongoCollection collection = database.getCollection(CollectionNames.COMPETITORS_BAK.name()); try { logger.log(Level.INFO, "Bug2822 DB-Migration: Load old competitors with embedded boats from COMPETITORS_BAK."); - for (DBObject o : collection.find()) { + for (Document o : collection.find()) { JSONObject json = Helpers.toJSONObjectSafe(new JSONParser().parse(JSON.serialize(o))); CompetitorWithBoat c = legacyCompetitorWithBoatDeserializer.deserialize(json); // accept only the first instance for any given ID @@ -2541,9 +2557,9 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { @Override public Collection loadAllBoats() { ArrayList result = new ArrayList<>(); - DBCollection collection = database.getCollection(CollectionNames.BOATS.name()); + MongoCollection collection = database.getCollection(CollectionNames.BOATS.name()); try { - for (DBObject o : collection.find()) { + for (Document o : collection.find()) { JSONObject json = Helpers.toJSONObjectSafe(new JSONParser().parse(JSON.serialize(o))); DynamicBoat b = boatDeserializer.deserialize(json); result.add(b); @@ -2558,10 +2574,10 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { @Override public Iterable> loadAllDeviceConfigurations() { Map result = new HashMap<>(); - DBCollection configurationCollection = database.getCollection(CollectionNames.CONFIGURATIONS.name()); + MongoCollection configurationCollection = database.getCollection(CollectionNames.CONFIGURATIONS.name()); try { - for (DBObject dbObject : configurationCollection.find()) { + for (Document dbObject : configurationCollection.find()) { Util.Pair entry = loadConfigurationEntry(dbObject); result.put(entry.getA(), entry.getB()); } @@ -2573,16 +2589,16 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { return result.entrySet(); } - private Util.Pair loadConfigurationEntry(DBObject dbObject) { - DBObject matcherObject = (DBObject) dbObject.get(FieldNames.CONFIGURATION_MATCHER.name()); - DBObject configObject = (DBObject) dbObject.get(FieldNames.CONFIGURATION_CONFIG.name()); + private Util.Pair loadConfigurationEntry(Document dbObject) { + Document matcherObject = (Document) dbObject.get(FieldNames.CONFIGURATION_MATCHER.name()); + Document configObject = (Document) dbObject.get(FieldNames.CONFIGURATION_CONFIG.name()); return new Util.Pair(loadConfigurationMatcher(matcherObject), loadConfiguration(configObject)); } - private DeviceConfigurationMatcher loadConfigurationMatcher(DBObject matcherObject) { + private DeviceConfigurationMatcher loadConfigurationMatcher(Document matcherObject) { List clientIdentifiers = new ArrayList(); - BasicDBList clientIdentifiersObject = (BasicDBList) matcherObject + Iterable clientIdentifiersObject = (Iterable) matcherObject .get(FieldNames.CONFIGURATION_MATCHER_CLIENTS.name()); if (clientIdentifiersObject != null) { for (Object clientIdentifier : clientIdentifiersObject) { @@ -2592,7 +2608,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { return baseDomainFactory.getOrCreateDeviceConfigurationMatcher(clientIdentifiers); } - private DeviceConfiguration loadConfiguration(DBObject configObject) { + private DeviceConfiguration loadConfiguration(Document configObject) { DeviceConfiguration configuration = null; try { JsonDeserializer deserializer = DeviceConfigurationJsonDeserializer.create(); @@ -2608,7 +2624,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { } private DeviceIdentifier loadDeviceId( - TypeBasedServiceFinder deviceIdentifierServiceFinder, DBObject deviceId) + TypeBasedServiceFinder deviceIdentifierServiceFinder, Document deviceId) throws TransformationException, NoCorrespondingServiceRegisteredException { String deviceType = (String) deviceId.get(FieldNames.DEVICE_TYPE.name()); Object deviceTypeId = deviceId.get(FieldNames.DEVICE_TYPE_SPECIFIC_ID.name()); @@ -2626,8 +2642,8 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { @Override public Map> loadResultUrls() { Map> resultUrls = new HashMap<>(); - DBCollection resultUrlCollection = database.getCollection(CollectionNames.RESULT_URLS.name()); - for (DBObject dbObject : resultUrlCollection.find()) { + MongoCollection resultUrlCollection = database.getCollection(CollectionNames.RESULT_URLS.name()); + for (Document dbObject : resultUrlCollection.find()) { String providerName = (String) dbObject.get(FieldNames.RESULT_PROVIDERNAME.name()); String urlString = (String) dbObject.get(FieldNames.RESULT_URL.name()); URL url; @@ -2646,7 +2662,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { return resultUrls; } - private ImageDescriptor loadImage(DBObject dbObject) { + private ImageDescriptor loadImage(Document dbObject) { ImageDescriptor image = null; URL imageURL = loadURL(dbObject, FieldNames.IMAGE_URL); if (imageURL != null) { @@ -2658,7 +2674,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { Number imageWidth = (Number) dbObject.get(FieldNames.IMAGE_WIDTH_IN_PX.name()); Number imageHeight = (Number) dbObject.get(FieldNames.IMAGE_HEIGHT_IN_PX.name()); TimePoint createdAtDate = loadTimePoint(dbObject, FieldNames.IMAGE_CREATEDATDATE); - BasicDBList tags = (BasicDBList) dbObject.get(FieldNames.IMAGE_TAGS.name()); + Iterable tags = (Iterable) dbObject.get(FieldNames.IMAGE_TAGS.name()); List imageTags = new ArrayList(); if (tags != null) { for (Object tagObject : tags) { @@ -2678,7 +2694,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { return image; } - private VideoDescriptor loadVideo(DBObject dbObject) { + private VideoDescriptor loadVideo(Document dbObject) { VideoDescriptor video = null; URL videoURL = loadURL(dbObject, FieldNames.VIDEO_URL); if (videoURL != null) { @@ -2690,7 +2706,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { String localeRaw = (String) dbObject.get(FieldNames.VIDEO_LOCALE.name()); Locale locale = localeRaw != null ? Locale.forLanguageTag(localeRaw) : null; TimePoint createdAtDate = loadTimePoint(dbObject, FieldNames.VIDEO_CREATEDATDATE); - BasicDBList tags = (BasicDBList) dbObject.get(FieldNames.VIDEO_TAGS.name()); + Iterable tags = (Iterable) dbObject.get(FieldNames.VIDEO_TAGS.name()); Number lengthInSeconds = (Number) dbObject.get(FieldNames.VIDEO_LENGTH_IN_SECONDS.name()); URL thumbnailURL = loadURL(dbObject, FieldNames.VIDEO_THUMBNAIL_URL); List videoTags = new ArrayList(); @@ -2711,7 +2727,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { return video; } - private URL loadURL(DBObject dbObject, FieldNames field) { + private URL loadURL(Document dbObject, FieldNames field) { URL result = null; String urlAsString = (String) dbObject.get(field.name()); if (urlAsString != null) { @@ -2730,7 +2746,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { * @param event * @param eventDBObject */ - private boolean loadLegacyImageAndVideoURLs(Event event, DBObject eventDBObject) { + private boolean loadLegacyImageAndVideoURLs(Event event, Document eventDBObject) { URL logoImageURL = null; List imageURLs = new ArrayList(); List sponsorImageURLs = new ArrayList(); @@ -2745,7 +2761,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { + ". Ignoring this URL."); } } - BasicDBList imageURLsJson = (BasicDBList) eventDBObject.get(FieldNames.EVENT_IMAGE_URLS.name()); + Iterable imageURLsJson = (Iterable) eventDBObject.get(FieldNames.EVENT_IMAGE_URLS.name()); if (imageURLsJson != null) { for (Object imageURL : imageURLsJson) { try { @@ -2756,7 +2772,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { } } } - BasicDBList videoURLsJson = (BasicDBList) eventDBObject.get(FieldNames.EVENT_VIDEO_URLS.name()); + Iterable videoURLsJson = (Iterable) eventDBObject.get(FieldNames.EVENT_VIDEO_URLS.name()); if (videoURLsJson != null) { for (Object videoURL : videoURLsJson) { try { @@ -2767,7 +2783,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { } } } - BasicDBList sponsorImageURLsJson = (BasicDBList) eventDBObject.get(FieldNames.EVENT_SPONSOR_IMAGE_URLS.name()); + Iterable sponsorImageURLsJson = (Iterable) eventDBObject.get(FieldNames.EVENT_SPONSOR_IMAGE_URLS.name()); if (sponsorImageURLsJson != null) { for (Object sponsorImageURL : sponsorImageURLsJson) { try { @@ -2781,7 +2797,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { return event.setMediaURLs(imageURLs, sponsorImageURLs, videoURLs, logoImageURL, Collections.emptyMap()); } - private boolean loadLegacySailorsInfoWebsiteURL(Event event, DBObject eventDBObject) { + private boolean loadLegacySailorsInfoWebsiteURL(Event event, Document eventDBObject) { final boolean modified; final String sailorsInfoWebSiteURLAsString = (String) eventDBObject .get(FieldNames.EVENT_SAILORS_INFO_WEBSITE_URL.name()); @@ -2814,12 +2830,12 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { @Override public ConnectivityParametersLoadingResult loadConnectivityParametersForRacesToRestore( Consumer callback) { - final DBCollection collection = database + final MongoCollection collection = database .getCollection(CollectionNames.CONNECTIVITY_PARAMS_FOR_RACES_TO_BE_RESTORED.name()); - final DBCursor cursor = collection.find(); - final int count = cursor.count(); + final FindIterable cursor = collection.find(); + final long count = collection.count(); logger.info("Restoring " + count + " races"); - final List restoreParameters = new ArrayList<>(); + final List restoreParameters = new ArrayList<>(); // consume all elements quickly to avoid cursor/DB timeouts while restoring many races; // MongoDB cursors by default time out after ten minutes if no more batch (of by default 100 elements) // has been requested during this time. @@ -2830,7 +2846,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { final Set> waiters = new HashSet<>(); logger.info("Starting to restore races"); final AtomicInteger i = new AtomicInteger(); - for (final DBObject o : restoreParameters) { + for (final Document o : restoreParameters) { final FutureTask waiter = new FutureTask<>(() -> { final String type = (String) o.get(TypeBasedServiceFinder.TYPE); final int finalI = i.incrementAndGet(); @@ -2869,7 +2885,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { logger.info("Done restoring races; restored " + i + " of " + count + " races"); return new ConnectivityParametersLoadingResult() { @Override - public int getNumberOfParametersToLoad() { + public long getNumberOfParametersToLoad() { return count; } @@ -2885,10 +2901,10 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { @Override public Map> getAnniversaryData() throws MalformedURLException { HashMap> fromDb = new HashMap<>(); - DBCollection anniversarysStored = database.getCollection(CollectionNames.ANNIVERSARIES.name()); - DBCursor cursor = anniversarysStored.find(); + MongoCollection anniversarysStored = database.getCollection(CollectionNames.ANNIVERSARIES.name()); + MongoCursor cursor = anniversarysStored.find().iterator(); while (cursor.hasNext()) { - DBObject toLoad = cursor.next(); + Document toLoad = cursor.next(); String leaderboardName = toLoad.get(FieldNames.LEADERBOARD_NAME.name()).toString(); String eventID = toLoad.get(FieldNames.EVENT_ID.name()).toString(); diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoObjectFactoryImpl.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoObjectFactoryImpl.java index 2db6ea8b249..2218dc8e794 100644 --- a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoObjectFactoryImpl.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoObjectFactoryImpl.java @@ -12,19 +12,18 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Level; import java.util.logging.Logger; +import org.bson.Document; import org.bson.types.ObjectId; import org.json.simple.JSONObject; import com.mongodb.BasicDBList; -import com.mongodb.BasicDBObject; -import com.mongodb.BasicDBObjectBuilder; -import com.mongodb.DB; -import com.mongodb.DBCollection; -import com.mongodb.DBObject; import com.mongodb.DuplicateKeyException; import com.mongodb.MongoCommandException; import com.mongodb.WriteConcern; -import com.mongodb.util.JSON; +import com.mongodb.client.MongoCollection; +import com.mongodb.client.MongoDatabase; +import com.mongodb.client.model.IndexOptions; +import com.mongodb.client.model.UpdateOptions; import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor; import com.sap.sailing.domain.abstractlog.race.CompetitorResult; import com.sap.sailing.domain.abstractlog.race.CompetitorResults; @@ -142,7 +141,7 @@ import com.sap.sse.shared.media.VideoDescriptor; public class MongoObjectFactoryImpl implements MongoObjectFactory { private static Logger logger = Logger.getLogger(MongoObjectFactoryImpl.class.getName()); - private final DB database; + private final MongoDatabase database; private final CompetitorWithBoatRefJsonSerializer competitorWithBoatRefSerializer = CompetitorWithBoatRefJsonSerializer.create(); private final CompetitorJsonSerializer competitorSerializer = CompetitorJsonSerializer.create(); private final BoatJsonSerializer boatSerializer = BoatJsonSerializer.create(); @@ -154,11 +153,11 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { * Use this constructor only for testing purposes or in cases where there will happen absolutely no access to * {@link DeviceIdentifier} objects. */ - public MongoObjectFactoryImpl(DB database) { + public MongoObjectFactoryImpl(MongoDatabase database) { this(database, /* deviceTypeServiceFinder */ null); } - public MongoObjectFactoryImpl(DB database, TypeBasedServiceFinderFactory serviceFinderFactory) { + public MongoObjectFactoryImpl(MongoDatabase database, TypeBasedServiceFinderFactory serviceFinderFactory) { this.database = database; if (serviceFinderFactory != null) { this.deviceIdentifierServiceFinder = serviceFinderFactory.createServiceFinder(DeviceIdentifierMongoHandler.class); @@ -171,58 +170,58 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { } @Override - public DB getDatabase() { + public MongoDatabase getDatabase() { return database; } - public DBObject storeWind(Wind wind) { - DBObject result = new BasicDBObject(); + public Document storeWind(Wind wind) { + Document result = new Document(); storePositioned(wind, result); storeTimed(wind, result); storeSpeedWithBearing(wind, result); return result; } - public static void storeTimePoint(TimePoint timePoint, DBObject result, String fieldName) { + public static void storeTimePoint(TimePoint timePoint, Document result, String fieldName) { if (timePoint != null) { result.put(fieldName, timePoint.asMillis()); } } - public static void storeTimePoint(TimePoint timePoint, DBObject result, FieldNames field) { + public static void storeTimePoint(TimePoint timePoint, Document result, FieldNames field) { storeTimePoint(timePoint, result, field.name()); } - public static void storeTimeRange(TimeRange timeRange, BasicDBObject result, FieldNames field) { + public static void storeTimeRange(TimeRange timeRange, Document result, FieldNames field) { if (timeRange != null) { - BasicDBObject timeRangeObj = new BasicDBObject(); + Document timeRangeObj = new Document(); storeTimePoint(timeRange.from(), timeRangeObj, FieldNames.FROM_MILLIS); storeTimePoint(timeRange.to(), timeRangeObj, FieldNames.TO_MILLIS); result.put(field.name(), timeRangeObj); } } - public void storeTimed(Timed timed, DBObject result) { + public void storeTimed(Timed timed, Document result) { if (timed.getTimePoint() != null) { storeTimePoint(timed.getTimePoint(), result, FieldNames.TIME_AS_MILLIS); } } - public void storeSpeedWithBearing(SpeedWithBearing speedWithBearing, DBObject result) { + public void storeSpeedWithBearing(SpeedWithBearing speedWithBearing, Document result) { storeSpeed(speedWithBearing, result); storeBearing(speedWithBearing.getBearing(), result); } - public void storeBearing(Bearing bearing, DBObject result) { + public void storeBearing(Bearing bearing, Document result) { result.put(FieldNames.DEGREE_BEARING.name(), bearing.getDegrees()); } - public void storeSpeed(Speed speed, DBObject result) { + public void storeSpeed(Speed speed, Document result) { result.put(FieldNames.KNOT_SPEED.name(), speed.getKnots()); } - public void storePositioned(Positioned positioned, DBObject result) { + public void storePositioned(Positioned positioned, Document result) { if (positioned.getPosition() != null) { result.put(FieldNames.LAT_DEG.name(), positioned.getPosition().getLatDeg()); result.put(FieldNames.LNG_DEG.name(), positioned.getPosition().getLngDeg()); @@ -235,20 +234,20 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { windTrack.addListener(new MongoWindListener(trackedRace, trackedRegatta.getRegatta().getName(), windSource, this, database)); } - public DBCollection getWindTrackCollection() { - DBCollection result = database.getCollection(CollectionNames.WIND_TRACKS.name()); - result.createIndex(new BasicDBObject(FieldNames.REGATTA_NAME.name(), 1)); + public MongoCollection getWindTrackCollection() { + MongoCollection result = database.getCollection(CollectionNames.WIND_TRACKS.name()); + result.createIndex(new Document(FieldNames.REGATTA_NAME.name(), 1)); return result; } - public DBCollection getGPSFixCollection() { - DBCollection gpsFixCollection = database.getCollection(CollectionNames.GPS_FIXES.name()); + public MongoCollection getGPSFixCollection() { + MongoCollection gpsFixCollection = database.getCollection(CollectionNames.GPS_FIXES.name()); // Removes old indexes not needed anymore dropIndexSafe(gpsFixCollection, "DEVICE_ID.DEVICE_TYPE_SPECIFIC_ID_1_GPSFIX.TIME_AS_MILLIS_1"); dropIndexSafe(gpsFixCollection, "DEVICE_ID_1_GPSFIX.TIME_AS_MILLIS_1"); - DBObject index = new BasicDBObject(); + Document index = new Document(); index.put(FieldNames.DEVICE_ID.name(), 1); index.put(FieldNames.TIME_AS_MILLIS.name(), 1); gpsFixCollection.createIndex(index); @@ -259,17 +258,17 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { * Dropping an index that does not exist causes an exception. This method first checks if the index exist to prevent * an exception from occurring. */ - private void dropIndexSafe(DBCollection collection, String indexName) { - collection.getIndexInfo().forEach(indexInfo -> { + private void dropIndexSafe(MongoCollection collection, String indexName) { + collection.listIndexes().forEach((Document indexInfo) -> { if (indexName.equals(indexInfo.get("name"))) { collection.dropIndex(indexName); } }); } - public DBCollection getGPSFixMetadataCollection() { - DBCollection collection = database.getCollection(CollectionNames.GPS_FIXES_METADATA.name()); - DBObject index = new BasicDBObject(); + public MongoCollection getGPSFixMetadataCollection() { + MongoCollection collection = database.getCollection(CollectionNames.GPS_FIXES_METADATA.name()); + Document index = new Document(); index.put(FieldNames.DEVICE_ID.name(), 1); collection.createIndex(index); return collection; @@ -280,8 +279,8 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { * the regatta name is stored only for human readability purposes because a time stamp may be a bit unhandy for * identifying where the wind fix was collected */ - public DBObject storeWindTrackEntry(RaceDefinition race, String regattaName, WindSource windSource, Wind wind) { - BasicDBObject result = new BasicDBObject(); + public Document storeWindTrackEntry(RaceDefinition race, String regattaName, WindSource windSource, Wind wind) { + Document result = new Document(); result.put(FieldNames.RACE_ID.name(), race.getId()); result.put(FieldNames.REGATTA_NAME.name(), regattaName); result.put(FieldNames.WIND_SOURCE_NAME.name(), windSource.name()); @@ -292,12 +291,12 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { return result; } - private void storeRaceIdentifiers(RaceColumn raceColumn, DBObject dbObject) { - BasicDBObject raceIdentifiersPerFleet = new BasicDBObject(); + private void storeRaceIdentifiers(RaceColumn raceColumn, Document dbObject) { + Document raceIdentifiersPerFleet = new Document(); for (Fleet fleet : raceColumn.getFleets()) { RaceIdentifier raceIdentifier = raceColumn.getRaceIdentifier(fleet); if (raceIdentifier != null) { - DBObject raceIdentifierForFleet = new BasicDBObject(); + Document raceIdentifierForFleet = new Document(); storeRaceIdentifier(raceIdentifierForFleet, raceIdentifier); raceIdentifiersPerFleet.put(MongoUtils.escapeDollarAndDot(fleet.getName()), raceIdentifierForFleet); } @@ -305,7 +304,7 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { dbObject.put(FieldNames.RACE_IDENTIFIERS.name(), raceIdentifiersPerFleet); } - private void storeRaceIdentifier(DBObject dbObject, RaceIdentifier raceIdentifier) { + private void storeRaceIdentifier(Document dbObject, RaceIdentifier raceIdentifier) { if (raceIdentifier != null) { dbObject.put(FieldNames.EVENT_NAME.name(), raceIdentifier.getRegattaName()); dbObject.put(FieldNames.RACE_NAME.name(), raceIdentifier.getRaceName()); @@ -314,15 +313,15 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { @Override public void storeLeaderboard(Leaderboard leaderboard) { - DBCollection leaderboardCollection = database.getCollection(CollectionNames.LEADERBOARDS.name()); + MongoCollection leaderboardCollection = database.getCollection(CollectionNames.LEADERBOARDS.name()); try { - leaderboardCollection.createIndex(new BasicDBObject(FieldNames.LEADERBOARD_NAME.name(), 1)); + leaderboardCollection.createIndex(new Document(FieldNames.LEADERBOARD_NAME.name(), 1)); } catch (NullPointerException npe) { // sometimes, for reasons yet to be clarified, ensuring an index on the name field causes an NPE logger.log(Level.SEVERE, "storeLeaderboard", npe); } - BasicDBObject query = new BasicDBObject(FieldNames.LEADERBOARD_NAME.name(), leaderboard.getName()); - BasicDBObject dbLeaderboard = new BasicDBObject(); + Document query = new Document(FieldNames.LEADERBOARD_NAME.name(), leaderboard.getName()); + Document dbLeaderboard = new Document(); dbLeaderboard.put(FieldNames.LEADERBOARD_NAME.name(), leaderboard.getName()); if (leaderboard.getDisplayName() != null) { dbLeaderboard.put(FieldNames.LEADERBOARD_DISPLAY_NAME.name(), leaderboard.getDisplayName()); @@ -356,11 +355,11 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { storeColumnFactors(leaderboard, dbLeaderboard); storeLeaderboardCorrectionsAndDiscards(leaderboard, dbLeaderboard); } - leaderboardCollection.update(query, dbLeaderboard, /* upsrt */ true, /* multi */ false, WriteConcern.SAFE); + leaderboardCollection.withWriteConcern(WriteConcern.ACKNOWLEDGED).replaceOne(query, dbLeaderboard, new UpdateOptions().upsert(true)); } - private void storeColumnFactors(Leaderboard leaderboard, BasicDBObject dbLeaderboard) { - DBObject raceColumnFactors = new BasicDBObject(); + private void storeColumnFactors(Leaderboard leaderboard, Document dbLeaderboard) { + Document raceColumnFactors = new Document(); for (RaceColumn raceColumn : leaderboard.getRaceColumns()) { Double explicitFactor = raceColumn.getExplicitFactor(); if (explicitFactor != null) { @@ -370,21 +369,21 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { dbLeaderboard.put(FieldNames.LEADERBOARD_COLUMN_FACTORS.name(), raceColumnFactors); } - private void storeRegattaLeaderboard(RegattaLeaderboard leaderboard, DBObject dbLeaderboard) { + private void storeRegattaLeaderboard(RegattaLeaderboard leaderboard, Document dbLeaderboard) { dbLeaderboard.put(FieldNames.REGATTA_NAME.name(), leaderboard.getRegatta().getName()); } - private void storeFlexibleLeaderboard(FlexibleLeaderboard leaderboard, BasicDBObject dbLeaderboard) { + private void storeFlexibleLeaderboard(FlexibleLeaderboard leaderboard, Document dbLeaderboard) { BasicDBList dbRaceColumns = new BasicDBList(); dbLeaderboard.put(FieldNames.SCORING_SCHEME_TYPE.name(), leaderboard.getScoringScheme().getType().name()); dbLeaderboard.put(FieldNames.LEADERBOARD_COLUMNS.name(), dbRaceColumns); for (RaceColumn raceColumn : leaderboard.getRaceColumns()) { - BasicDBObject dbRaceColumn = storeRaceColumn(raceColumn); + Document dbRaceColumn = storeRaceColumn(raceColumn); dbRaceColumns.add(dbRaceColumn); } } - private void storeLeaderboardCorrectionsAndDiscards(Leaderboard leaderboard, BasicDBObject dbLeaderboard) { + private void storeLeaderboardCorrectionsAndDiscards(Leaderboard leaderboard, Document dbLeaderboard) { if (leaderboard.hasCarriedPoints()) { BasicDBList dbCarriedPoints = new BasicDBList(); dbLeaderboard.put(FieldNames.LEADERBOARD_CARRIED_POINTS_BY_ID.name(), dbCarriedPoints); @@ -392,13 +391,13 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { .getCompetitorsForWhichThereAreCarriedPoints().entrySet()) { double carriedPoints = competitorWithCarriedPoints.getValue(); Competitor competitor = competitorWithCarriedPoints.getKey(); - DBObject dbCarriedPointsForCompetitor = new BasicDBObject(); + Document dbCarriedPointsForCompetitor = new Document(); dbCarriedPointsForCompetitor.put(FieldNames.COMPETITOR_ID.name(), competitor.getId()); dbCarriedPointsForCompetitor.put(FieldNames.LEADERBOARD_CARRIED_POINTS.name(), carriedPoints); dbCarriedPoints.add(dbCarriedPointsForCompetitor); } } - BasicDBObject dbScoreCorrections = new BasicDBObject(); + Document dbScoreCorrections = new Document(); storeScoreCorrections(leaderboard, dbScoreCorrections); dbLeaderboard.put(FieldNames.LEADERBOARD_SCORE_CORRECTIONS.name(), dbScoreCorrections); final ResultDiscardingRule resultDiscardingRule = leaderboard.getResultDiscardingRule(); @@ -407,7 +406,7 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { for (Competitor competitor : leaderboard.getCompetitors()) { String displayNameForCompetitor = leaderboard.getDisplayName(competitor); if (displayNameForCompetitor != null) { - DBObject dbDisplayName = new BasicDBObject(); + Document dbDisplayName = new Document(); dbDisplayName.put(FieldNames.COMPETITOR_ID.name(), competitor.getId()); dbDisplayName.put(FieldNames.COMPETITOR_DISPLAY_NAME.name(), displayNameForCompetitor); competitorDisplayNames.add(dbDisplayName); @@ -421,7 +420,7 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { * rule is not null and is of type {@link ThresholdBasedResultDiscardingRule}. Otherwise, it is assumed that the * result discarding rule is otherwise implicitly obtained, e.g., from a definition of a regatta with its series, stored elsewhere. */ - private void storeResultDiscardingRule(DBObject dbObject, + private void storeResultDiscardingRule(Document dbObject, final ResultDiscardingRule resultDiscardingRule, FieldNames field) { if (resultDiscardingRule != null && resultDiscardingRule instanceof ThresholdBasedResultDiscardingRule) { BasicDBList dbResultDiscardingThresholds = new BasicDBList(); @@ -432,15 +431,15 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { } } - private BasicDBObject storeRaceColumn(RaceColumn raceColumn) { - BasicDBObject dbRaceColumn = new BasicDBObject(); + private Document storeRaceColumn(RaceColumn raceColumn) { + Document dbRaceColumn = new Document(); dbRaceColumn.put(FieldNames.LEADERBOARD_COLUMN_NAME.name(), raceColumn.getName()); dbRaceColumn.put(FieldNames.LEADERBOARD_IS_MEDAL_RACE_COLUMN.name(), raceColumn.isMedalRace()); storeRaceIdentifiers(raceColumn, dbRaceColumn); return dbRaceColumn; } - private void storeScoreCorrections(Leaderboard leaderboard, BasicDBObject dbScoreCorrections) { + private void storeScoreCorrections(Leaderboard leaderboard, Document dbScoreCorrections) { TimePoint now = MillisecondsTimePoint.now(); SettableScoreCorrection scoreCorrection = leaderboard.getScoreCorrection(); for (RaceColumn raceColumn : scoreCorrection.getRaceColumnsThatHaveCorrections()) { @@ -448,7 +447,7 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { for (Competitor competitor : scoreCorrection.getCompetitorsThatHaveCorrectionsIn(raceColumn)) { // TODO bug 655: make score corrections time dependent if (scoreCorrection.isScoreCorrected(competitor, raceColumn, now)) { - BasicDBObject dbCorrectionForCompetitor = new BasicDBObject(); + Document dbCorrectionForCompetitor = new Document(); dbCorrectionForCompetitor.put(FieldNames.COMPETITOR_ID.name(), competitor.getId()); MaxPointsReason maxPointsReason = scoreCorrection.getMaxPointsReason(competitor, raceColumn, now); if (maxPointsReason != MaxPointsReason.NONE) { @@ -481,32 +480,32 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { @Override public void removeLeaderboard(String leaderboardName) { - DBCollection leaderboardCollection = database.getCollection(CollectionNames.LEADERBOARDS.name()); - BasicDBObject query = new BasicDBObject(FieldNames.LEADERBOARD_NAME.name(), leaderboardName); - leaderboardCollection.remove(query); + MongoCollection leaderboardCollection = database.getCollection(CollectionNames.LEADERBOARDS.name()); + Document query = new Document(FieldNames.LEADERBOARD_NAME.name(), leaderboardName); + leaderboardCollection.deleteOne(query); } @Override public void renameLeaderboard(String oldName, String newName) { - DBCollection leaderboardCollection = database.getCollection(CollectionNames.LEADERBOARDS.name()); - BasicDBObject query = new BasicDBObject(FieldNames.LEADERBOARD_NAME.name(), oldName); - BasicDBObject renameUpdate = new BasicDBObject("$set", new BasicDBObject(FieldNames.LEADERBOARD_NAME.name(), newName)); - leaderboardCollection.update(query, renameUpdate, /* upsert */ true, /* multi */ false, WriteConcern.SAFE); + MongoCollection leaderboardCollection = database.getCollection(CollectionNames.LEADERBOARDS.name()); + Document query = new Document(FieldNames.LEADERBOARD_NAME.name(), oldName); + Document renameUpdate = new Document("$set", new Document(FieldNames.LEADERBOARD_NAME.name(), newName)); + leaderboardCollection.withWriteConcern(WriteConcern.ACKNOWLEDGED).updateOne(query, renameUpdate); } @Override public void storeLeaderboardGroup(LeaderboardGroup leaderboardGroup) { - DBCollection leaderboardGroupCollection = database.getCollection(CollectionNames.LEADERBOARD_GROUPS.name()); - DBCollection leaderboardCollection = database.getCollection(CollectionNames.LEADERBOARDS.name()); + MongoCollection leaderboardGroupCollection = database.getCollection(CollectionNames.LEADERBOARD_GROUPS.name()); + MongoCollection leaderboardCollection = database.getCollection(CollectionNames.LEADERBOARDS.name()); try { - leaderboardGroupCollection.createIndex(new BasicDBObject(FieldNames.LEADERBOARD_GROUP_NAME.name(), 1)); + leaderboardGroupCollection.createIndex(new Document(FieldNames.LEADERBOARD_GROUP_NAME.name(), 1)); } catch (NullPointerException npe) { // sometimes, for reasons yet to be clarified, ensuring an index on the name field causes an NPE logger.log(Level.SEVERE, "storeLeaderboardGroup", npe); } - BasicDBObject query = new BasicDBObject(FieldNames.LEADERBOARD_GROUP_NAME.name(), leaderboardGroup.getName()); - BasicDBObject dbLeaderboardGroup = new BasicDBObject(); + Document query = new Document(FieldNames.LEADERBOARD_GROUP_NAME.name(), leaderboardGroup.getName()); + Document dbLeaderboardGroup = new Document(); dbLeaderboardGroup.put(FieldNames.LEADERBOARD_GROUP_UUID.name(), leaderboardGroup.getId()); dbLeaderboardGroup.put(FieldNames.LEADERBOARD_GROUP_NAME.name(), leaderboardGroup.getName()); dbLeaderboardGroup.put(FieldNames.LEADERBOARD_GROUP_DESCRIPTION.name(), leaderboardGroup.getDescription()); @@ -514,75 +513,76 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { dbLeaderboardGroup.put(FieldNames.LEADERBOARD_GROUP_DISPLAY_IN_REVERSE_ORDER.name(), leaderboardGroup.isDisplayGroupsInReverseOrder()); final Leaderboard overallLeaderboard = leaderboardGroup.getOverallLeaderboard(); if (overallLeaderboard != null) { - BasicDBObject overallLeaderboardQuery = new BasicDBObject(FieldNames.LEADERBOARD_NAME.name(), overallLeaderboard.getName()); - DBObject dbOverallLeaderboard = leaderboardCollection.findOne(overallLeaderboardQuery); + Document overallLeaderboardQuery = new Document(FieldNames.LEADERBOARD_NAME.name(), overallLeaderboard.getName()); + Document dbOverallLeaderboard = leaderboardCollection.find(overallLeaderboardQuery).first(); if (dbOverallLeaderboard == null) { storeLeaderboard(overallLeaderboard); - dbOverallLeaderboard = leaderboardCollection.findOne(overallLeaderboardQuery); + dbOverallLeaderboard = leaderboardCollection.find(overallLeaderboardQuery).first(); } ObjectId dbOverallLeaderboardId = (ObjectId) dbOverallLeaderboard.get("_id"); dbLeaderboardGroup.put(FieldNames.LEADERBOARD_GROUP_OVERALL_LEADERBOARD.name(), dbOverallLeaderboardId); } BasicDBList dbLeaderboardIds = new BasicDBList(); for (Leaderboard leaderboard : leaderboardGroup.getLeaderboards()) { - BasicDBObject leaderboardQuery = new BasicDBObject(FieldNames.LEADERBOARD_NAME.name(), leaderboard.getName()); - DBObject dbLeaderboard = leaderboardCollection.findOne(leaderboardQuery); + Document leaderboardQuery = new Document(FieldNames.LEADERBOARD_NAME.name(), leaderboard.getName()); + Document dbLeaderboard = leaderboardCollection.find(leaderboardQuery).first(); if (dbLeaderboard == null) { storeLeaderboard(leaderboard); - dbLeaderboard = leaderboardCollection.findOne(leaderboardQuery); + dbLeaderboard = leaderboardCollection.find(leaderboardQuery).first(); } ObjectId dbLeaderboardId = (ObjectId) dbLeaderboard.get("_id"); dbLeaderboardIds.add(dbLeaderboardId); } dbLeaderboardGroup.put(FieldNames.LEADERBOARD_GROUP_LEADERBOARDS.name(), dbLeaderboardIds); - leaderboardGroupCollection.update(query, dbLeaderboardGroup, true, false, WriteConcern.SAFE); + leaderboardGroupCollection.withWriteConcern(WriteConcern.ACKNOWLEDGED).replaceOne(query, dbLeaderboardGroup, new UpdateOptions().upsert(true)); } @Override public void removeLeaderboardGroup(String groupName) { - DBCollection leaderboardGroupCollection = database.getCollection(CollectionNames.LEADERBOARD_GROUPS.name()); - BasicDBObject query = new BasicDBObject(FieldNames.LEADERBOARD_GROUP_NAME.name(), groupName); - leaderboardGroupCollection.remove(query); + MongoCollection leaderboardGroupCollection = database.getCollection(CollectionNames.LEADERBOARD_GROUPS.name()); + Document query = new Document(FieldNames.LEADERBOARD_GROUP_NAME.name(), groupName); + leaderboardGroupCollection.deleteOne(query); } @Override public void renameLeaderboardGroup(String oldName, String newName) { - DBCollection leaderboardGroupCollection = database.getCollection(CollectionNames.LEADERBOARD_GROUPS.name()); - BasicDBObject query = new BasicDBObject(FieldNames.LEADERBOARD_GROUP_NAME.name(), oldName); - BasicDBObject update = new BasicDBObject("$set", new BasicDBObject(FieldNames.LEADERBOARD_GROUP_NAME.name(), newName)); - leaderboardGroupCollection.update(query, update, /* upsert */ true, /* multi */ false, WriteConcern.SAFE); + MongoCollection leaderboardGroupCollection = database.getCollection(CollectionNames.LEADERBOARD_GROUPS.name()); + Document query = new Document(FieldNames.LEADERBOARD_GROUP_NAME.name(), oldName); + Document update = new Document("$set", new Document(FieldNames.LEADERBOARD_GROUP_NAME.name(), newName)); + leaderboardGroupCollection.withWriteConcern(WriteConcern.ACKNOWLEDGED).replaceOne(query, update, new UpdateOptions().upsert(true)); } @Override public void storeServerConfiguration(SailingServerConfiguration serverConfiguration) { - DBCollection serverCollection = database.getCollection(CollectionNames.SERVER_CONFIGURATION.name()); - DBObject newServerConfig = new BasicDBObject(); + MongoCollection serverCollection = database.getCollection(CollectionNames.SERVER_CONFIGURATION.name()); + Document newServerConfig = new Document(); newServerConfig.put(FieldNames.SERVER_IS_STANDALONE.name(), serverConfiguration.isStandaloneServer()); - DBObject currentServerConfig = serverCollection.findOne(); - if(currentServerConfig != null) { - serverCollection.update(currentServerConfig, newServerConfig, /* upsrt */ true, /* multi */ false, WriteConcern.SAFE); + Document currentServerConfig = serverCollection.find().first(); + if (currentServerConfig != null) { + serverCollection.withWriteConcern(WriteConcern.ACKNOWLEDGED).replaceOne( + currentServerConfig, newServerConfig, new UpdateOptions().upsert(true)); } else { - serverCollection.save(newServerConfig); + serverCollection.insertOne(newServerConfig); } } @Override public void storeSailingServer(RemoteSailingServerReference server) { - DBCollection serverCollection = database.getCollection(CollectionNames.SAILING_SERVERS.name()); - serverCollection.createIndex(new BasicDBObject(FieldNames.SERVER_NAME.name(), 1)); - DBObject query = new BasicDBObject(); + MongoCollection serverCollection = database.getCollection(CollectionNames.SAILING_SERVERS.name()); + serverCollection.createIndex(new Document(FieldNames.SERVER_NAME.name(), 1)); + Document query = new Document(); query.put(FieldNames.SERVER_NAME.name(), server.getName()); - DBObject serverDBObject = new BasicDBObject(); + Document serverDBObject = new Document(); serverDBObject.put(FieldNames.SERVER_NAME.name(), server.getName()); serverDBObject.put(FieldNames.SERVER_URL.name(), server.getURL().toExternalForm()); - serverCollection.update(query, serverDBObject, /* upsrt */ true, /* multi */ false, WriteConcern.SAFE); + serverCollection.withWriteConcern(WriteConcern.ACKNOWLEDGED).replaceOne(query, serverDBObject, new UpdateOptions().upsert(true)); } @Override public void removeSailingServer(String name) { - DBCollection serverCollection = database.getCollection(CollectionNames.SAILING_SERVERS.name()); - BasicDBObject query = new BasicDBObject(FieldNames.SERVER_NAME.name(), name); - serverCollection.remove(query); + MongoCollection serverCollection = database.getCollection(CollectionNames.SAILING_SERVERS.name()); + Document query = new Document(FieldNames.SERVER_NAME.name(), name); + serverCollection.deleteOne(query); } /** @@ -590,11 +590,11 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { */ @Override public void storeEvent(Event event) { - DBCollection eventCollection = database.getCollection(CollectionNames.EVENTS.name()); - eventCollection.createIndex(new BasicDBObject(FieldNames.EVENT_ID.name(), 1)); - DBObject query = new BasicDBObject(); + MongoCollection eventCollection = database.getCollection(CollectionNames.EVENTS.name()); + eventCollection.createIndex(new Document(FieldNames.EVENT_ID.name(), 1)); + Document query = new Document(); query.put(FieldNames.EVENT_ID.name(), event.getId()); - DBObject eventDBObject = new BasicDBObject(); + Document eventDBObject = new Document(); eventDBObject.put(FieldNames.EVENT_NAME.name(), event.getName()); eventDBObject.put(FieldNames.EVENT_DESCRIPTION.name(), event.getDescription()); eventDBObject.put(FieldNames.EVENT_ID.name(), event.getId()); @@ -608,62 +608,62 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { windFinderSpotCollectionIds.add(windFinderSpotCollectionId); } eventDBObject.put(FieldNames.EVENT_WINDFINDER_SPOT_COLLECTION_IDS.name(), windFinderSpotCollectionIds); - DBObject venueDBObject = getVenueAsDBObject(event.getVenue()); + Document venueDBObject = getVenueAsDBObject(event.getVenue()); eventDBObject.put(FieldNames.VENUE.name(), venueDBObject); BasicDBList images = new BasicDBList(); for (ImageDescriptor image : event.getImages()) { - DBObject imageObject = createImageObject(image); + Document imageObject = createImageObject(image); images.add(imageObject); } eventDBObject.put(FieldNames.EVENT_IMAGES.name(), images); BasicDBList videos = new BasicDBList(); for (VideoDescriptor video: event.getVideos()) { - DBObject videoObject = createVideoObject(video); + Document videoObject = createVideoObject(video); videos.add(videoObject); } eventDBObject.put(FieldNames.EVENT_VIDEOS.name(), videos); BasicDBList sailorsInfoWebsiteURLs = new BasicDBList(); for(Map.Entry sailorsInfoWebsite : event.getSailorsInfoWebsiteURLs().entrySet()) { - DBObject sailorsInfoWebsiteObject = createSailorsInfoWebsiteObject(sailorsInfoWebsite.getKey(), sailorsInfoWebsite.getValue()); + Document sailorsInfoWebsiteObject = createSailorsInfoWebsiteObject(sailorsInfoWebsite.getKey(), sailorsInfoWebsite.getValue()); sailorsInfoWebsiteURLs.add(sailorsInfoWebsiteObject); } eventDBObject.put(FieldNames.EVENT_SAILORS_INFO_WEBSITES.name(), sailorsInfoWebsiteURLs); - eventCollection.update(query, eventDBObject, /* upsrt */ true, /* multi */ false, WriteConcern.SAFE); + eventCollection.withWriteConcern(WriteConcern.ACKNOWLEDGED).replaceOne(query, eventDBObject, new UpdateOptions().upsert(true)); // now store the links to the leaderboard groups - DBCollection linksCollection = database.getCollection(CollectionNames.LEADERBOARD_GROUP_LINKS_FOR_EVENTS.name()); - linksCollection.createIndex(new BasicDBObject(FieldNames.EVENT_ID.name(), 1)); + MongoCollection linksCollection = database.getCollection(CollectionNames.LEADERBOARD_GROUP_LINKS_FOR_EVENTS.name()); + linksCollection.createIndex(new Document(FieldNames.EVENT_ID.name(), 1)); BasicDBList lgUUIDs = new BasicDBList(); for (LeaderboardGroup lg : event.getLeaderboardGroups()) { lgUUIDs.add(lg.getId()); } - DBObject dbLinks = new BasicDBObject(); + Document dbLinks = new Document(); dbLinks.put(FieldNames.EVENT_ID.name(), event.getId()); dbLinks.put(FieldNames.LEADERBOARD_GROUP_UUID.name(), lgUUIDs); - linksCollection.update(query, dbLinks, /* upsrt */ true, /* multi */ false, WriteConcern.SAFE); + linksCollection.withWriteConcern(WriteConcern.ACKNOWLEDGED).replaceOne(query, dbLinks, new UpdateOptions().upsert(true)); } @Override public void renameEvent(Serializable id, String newName) { - DBCollection eventCollection = database.getCollection(CollectionNames.EVENTS.name()); - BasicDBObject query = new BasicDBObject(FieldNames.EVENT_ID.name(), id); - BasicDBObject renameUpdate = new BasicDBObject("$set", new BasicDBObject(FieldNames.EVENT_NAME.name(), newName)); - eventCollection.update(query, renameUpdate, /* upsert */ true, /* multi */ false, WriteConcern.SAFE); + MongoCollection eventCollection = database.getCollection(CollectionNames.EVENTS.name()); + Document query = new Document(FieldNames.EVENT_ID.name(), id); + Document renameUpdate = new Document("$set", new Document(FieldNames.EVENT_NAME.name(), newName)); + eventCollection.withWriteConcern(WriteConcern.ACKNOWLEDGED).replaceOne(query, renameUpdate, new UpdateOptions().upsert(true)); } @Override public void removeEvent(Serializable id) { - DBCollection eventsCollection = database.getCollection(CollectionNames.EVENTS.name()); - BasicDBObject query = new BasicDBObject(FieldNames.EVENT_ID.name(), id); - eventsCollection.remove(query); + MongoCollection eventsCollection = database.getCollection(CollectionNames.EVENTS.name()); + Document query = new Document(FieldNames.EVENT_ID.name(), id); + eventsCollection.deleteOne(query); } - private DBObject getVenueAsDBObject(Venue venue) { - DBObject result = new BasicDBObject(); + private Document getVenueAsDBObject(Venue venue) { + Document result = new Document(); result.put(FieldNames.VENUE_NAME.name(), venue.getName()); BasicDBList courseAreaList = new BasicDBList(); result.put(FieldNames.COURSE_AREAS.name(), courseAreaList); for (CourseArea courseArea : venue.getCourseAreas()) { - DBObject dbCourseArea = new BasicDBObject(); + Document dbCourseArea = new Document(); courseAreaList.add(dbCourseArea); dbCourseArea.put(FieldNames.COURSE_AREA_NAME.name(), courseArea.getName()); dbCourseArea.put(FieldNames.COURSE_AREA_ID.name(), courseArea.getId()); @@ -673,24 +673,24 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { @Override public void storeRegatta(Regatta regatta) { - DBCollection regattasCollection = database.getCollection(CollectionNames.REGATTAS.name()); - BasicDBObject regattaByNameIndexKey = new BasicDBObject(FieldNames.REGATTA_NAME.name(), 1); + MongoCollection regattasCollection = database.getCollection(CollectionNames.REGATTAS.name()); + Document regattaByNameIndexKey = new Document(FieldNames.REGATTA_NAME.name(), 1); try { - regattasCollection.createIndex(regattaByNameIndexKey, new BasicDBObject("unique", true)); + regattasCollection.createIndex(regattaByNameIndexKey, new IndexOptions().unique(true)); } catch (MongoCommandException e) { // the index probably existed as non-unique; remove and create again regattasCollection.dropIndex(regattaByNameIndexKey); - regattasCollection.createIndex(regattaByNameIndexKey, new BasicDBObject("unique", true)); + regattasCollection.createIndex(regattaByNameIndexKey, new IndexOptions().unique(true)); } - BasicDBObject regattaByIdIndexKey = new BasicDBObject(FieldNames.REGATTA_ID.name(), 1); + Document regattaByIdIndexKey = new Document(FieldNames.REGATTA_ID.name(), 1); try { - regattasCollection.createIndex(regattaByIdIndexKey, new BasicDBObject("unique", true)); + regattasCollection.createIndex(regattaByIdIndexKey, new IndexOptions().unique(true)); } catch (MongoCommandException e) { regattasCollection.dropIndex(regattaByIdIndexKey); - regattasCollection.createIndex(regattaByIdIndexKey, new BasicDBObject("unique", true)); + regattasCollection.createIndex(regattaByIdIndexKey, new IndexOptions().unique(true)); } - DBObject dbRegatta = new BasicDBObject(); - DBObject query = new BasicDBObject(FieldNames.REGATTA_NAME.name(), regatta.getName()); + Document dbRegatta = new Document(); + Document query = new Document(FieldNames.REGATTA_NAME.name(), regatta.getName()); dbRegatta.put(FieldNames.REGATTA_NAME.name(), regatta.getName()); dbRegatta.put(FieldNames.REGATTA_ID.name(), regatta.getId()); storeTimePoint(regatta.getStartDate(), dbRegatta, FieldNames.REGATTA_START_DATE); @@ -710,7 +710,7 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { if (regatta.getRegattaConfiguration() != null) { JsonSerializer serializer = RegattaConfigurationJsonSerializer.create(); JSONObject json = serializer.serialize(regatta.getRegattaConfiguration()); - DBObject configurationObject = (DBObject) JSON.parse(json.toString()); + Document configurationObject = Document.parse(json.toString()); dbRegatta.put(FieldNames.REGATTA_REGATTA_CONFIGURATION.name(), configurationObject); } dbRegatta.put(FieldNames.REGATTA_BUOY_ZONE_RADIUS_IN_HULL_LENGTHS.name(), regatta.getBuoyZoneRadiusInHullLengths()); @@ -724,7 +724,7 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { final int MAX_TRIES = 3; for (int i=0; i regattasCollection = database.getCollection(CollectionNames.REGATTAS.name()); + Document query = new Document(FieldNames.REGATTA_NAME.name(), regatta.getName()); + regattasCollection.deleteOne(query); } private BasicDBList storeSeries(Iterable series) { @@ -756,8 +756,8 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { return dbSeries; } - private DBObject storeSeries(Series s) { - DBObject dbSeries = new BasicDBObject(); + private Document storeSeries(Series s) { + Document dbSeries = new Document(); dbSeries.put(FieldNames.SERIES_NAME.name(), s.getName()); dbSeries.put(FieldNames.SERIES_IS_MEDAL.name(), s.isMedal()); dbSeries.put(FieldNames.SERIES_IS_FLEETS_CAN_RUN_IN_PARALLEL.name(), s.isFleetsCanRunInParallel()); @@ -781,8 +781,8 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { return dbSeries; } - private DBObject storeFleet(Fleet fleet) { - DBObject dbFleet = new BasicDBObject(FieldNames.FLEET_NAME.name(), fleet.getName()); + private Document storeFleet(Fleet fleet) { + Document dbFleet = new Document(FieldNames.FLEET_NAME.name(), fleet.getName()); if (fleet instanceof FleetImpl) { dbFleet.put(FieldNames.FLEET_ORDERING.name(), ((FleetImpl) fleet).getOrdering()); if(fleet.getColor() != null) { @@ -799,194 +799,194 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { @Override public void storeRegattaForRaceID(String raceIDAsString, Regatta regatta) { - DBCollection regattaForRaceIDCollection = database.getCollection(CollectionNames.REGATTA_FOR_RACE_ID.name()); - DBObject query = new BasicDBObject(FieldNames.RACE_ID_AS_STRING.name(), raceIDAsString); - DBObject entry = new BasicDBObject(FieldNames.RACE_ID_AS_STRING.name(), raceIDAsString); + MongoCollection regattaForRaceIDCollection = database.getCollection(CollectionNames.REGATTA_FOR_RACE_ID.name()); + Document query = new Document(FieldNames.RACE_ID_AS_STRING.name(), raceIDAsString); + Document entry = new Document(FieldNames.RACE_ID_AS_STRING.name(), raceIDAsString); entry.put(FieldNames.REGATTA_NAME.name(), regatta.getName()); - regattaForRaceIDCollection.update(query, entry, /* upsrt */ true, /* multi */ false, WriteConcern.SAFE); + regattaForRaceIDCollection.withWriteConcern(WriteConcern.ACKNOWLEDGED).replaceOne(query, entry, new UpdateOptions().upsert(true)); } @Override public void removeRegattaForRaceID(String raceIDAsString, Regatta regatta) { - DBCollection regattaForRaceIDCollection = database.getCollection(CollectionNames.REGATTA_FOR_RACE_ID.name()); - DBObject query = new BasicDBObject(FieldNames.RACE_ID_AS_STRING.name(), raceIDAsString); - regattaForRaceIDCollection.remove(query); + MongoCollection regattaForRaceIDCollection = database.getCollection(CollectionNames.REGATTA_FOR_RACE_ID.name()); + Document query = new Document(FieldNames.RACE_ID_AS_STRING.name(), raceIDAsString); + regattaForRaceIDCollection.deleteOne(query); } - public DBCollection getRaceLogCollection() { - DBCollection result = database.getCollection(CollectionNames.RACE_LOGS.name()); - result.createIndex(new BasicDBObject(FieldNames.RACE_LOG_IDENTIFIER.name(), 1)); + public MongoCollection getRaceLogCollection() { + MongoCollection result = database.getCollection(CollectionNames.RACE_LOGS.name()); + result.createIndex(new Document(FieldNames.RACE_LOG_IDENTIFIER.name(), 1)); return result; } - private void storeRaceLogEventAuthor(DBObject dbObject, AbstractLogEventAuthor author) { + private void storeRaceLogEventAuthor(Document dbObject, AbstractLogEventAuthor author) { if (author != null) { dbObject.put(FieldNames.RACE_LOG_EVENT_AUTHOR_NAME.name(), author.getName()); dbObject.put(FieldNames.RACE_LOG_EVENT_AUTHOR_PRIORITY.name(), author.getPriority()); } } - public DBObject storeRaceLogEntry(RaceLogIdentifier raceLogIdentifier, RaceLogFlagEvent flagEvent) { - BasicDBObject result = new BasicDBObject(); + public Document storeRaceLogEntry(RaceLogIdentifier raceLogIdentifier, RaceLogFlagEvent flagEvent) { + Document result = new Document(); storeRaceLogIdentifier(raceLogIdentifier, result); result.put(FieldNames.RACE_LOG_EVENT.name(), storeRaceLogFlagEvent(flagEvent)); return result; } - private void storeRaceLogIdentifier(RaceLogIdentifier raceLogIdentifier, DBObject result) { + private void storeRaceLogIdentifier(RaceLogIdentifier raceLogIdentifier, Document result) { result.put(FieldNames.RACE_LOG_IDENTIFIER.name(), TripleSerializer.serialize(raceLogIdentifier.getIdentifier())); } - public DBObject storeRaceLogEntry(RaceLogIdentifier raceLogIdentifier, RaceLogStartTimeEvent startTimeEvent) { - BasicDBObject result = new BasicDBObject(); + public Document storeRaceLogEntry(RaceLogIdentifier raceLogIdentifier, RaceLogStartTimeEvent startTimeEvent) { + Document result = new Document(); storeRaceLogIdentifier(raceLogIdentifier, result); result.put(FieldNames.RACE_LOG_EVENT.name(), storeRaceLogStartTimeEvent(startTimeEvent)); return result; } - public DBObject storeRaceLogEntry(RaceLogIdentifier raceLogIdentifier, RaceLogPassChangeEvent passChangeEvent) { - BasicDBObject result = new BasicDBObject(); + public Document storeRaceLogEntry(RaceLogIdentifier raceLogIdentifier, RaceLogPassChangeEvent passChangeEvent) { + Document result = new Document(); storeRaceLogIdentifier(raceLogIdentifier, result); result.put(FieldNames.RACE_LOG_EVENT.name(), storeRaceLogPassChangeEvent(passChangeEvent)); return result; } - public DBObject storeRaceLogEntry(RaceLogIdentifier raceLogIdentifier, RaceLogRaceStatusEvent raceStatusEvent) { - BasicDBObject result = new BasicDBObject(); + public Document storeRaceLogEntry(RaceLogIdentifier raceLogIdentifier, RaceLogRaceStatusEvent raceStatusEvent) { + Document result = new Document(); storeRaceLogIdentifier(raceLogIdentifier, result); result.put(FieldNames.RACE_LOG_EVENT.name(), storeRaceLogRaceStatusEvent(raceStatusEvent)); return result; } - public DBObject storeRaceLogEntry(RaceLogIdentifier raceLogIdentifier, RaceLogCourseDesignChangedEvent courseDesignChangedEvent) { - BasicDBObject result = new BasicDBObject(); + public Document storeRaceLogEntry(RaceLogIdentifier raceLogIdentifier, RaceLogCourseDesignChangedEvent courseDesignChangedEvent) { + Document result = new Document(); storeRaceLogIdentifier(raceLogIdentifier, result); result.put(FieldNames.RACE_LOG_EVENT.name(), storeRaceLogCourseDesignChangedEvent(courseDesignChangedEvent)); return result; } - public DBObject storeRaceLogEntry(RaceLogIdentifier raceLogIdentifier, RaceLogFinishPositioningListChangedEvent finishPositioningListChangedEvent) { - BasicDBObject result = new BasicDBObject(); + public Document storeRaceLogEntry(RaceLogIdentifier raceLogIdentifier, RaceLogFinishPositioningListChangedEvent finishPositioningListChangedEvent) { + Document result = new Document(); storeRaceLogIdentifier(raceLogIdentifier, result); result.put(FieldNames.RACE_LOG_EVENT.name(), storeRaceLogFinishPositioningListChangedEvent(finishPositioningListChangedEvent)); return result; } - public DBObject storeRaceLogEntry(RaceLogIdentifier raceLogIdentifier, RaceLogFinishPositioningConfirmedEvent finishPositioningConfirmedEvent) { - BasicDBObject result = new BasicDBObject(); + public Document storeRaceLogEntry(RaceLogIdentifier raceLogIdentifier, RaceLogFinishPositioningConfirmedEvent finishPositioningConfirmedEvent) { + Document result = new Document(); storeRaceLogIdentifier(raceLogIdentifier, result); result.put(FieldNames.RACE_LOG_EVENT.name(), storeRaceLogFinishPositioningConfirmedEvent(finishPositioningConfirmedEvent)); return result; } - public DBObject storeRaceLogEntry(RaceLogIdentifier raceLogIdentifier, RaceLogPathfinderEvent pathfinderEvent) { - BasicDBObject result = new BasicDBObject(); + public Document storeRaceLogEntry(RaceLogIdentifier raceLogIdentifier, RaceLogPathfinderEvent pathfinderEvent) { + Document result = new Document(); storeRaceLogIdentifier(raceLogIdentifier, result); result.put(FieldNames.RACE_LOG_EVENT.name(), storeRaceLogPathfinderEvent(pathfinderEvent)); return result; } - public DBObject storeRaceLogEntry(RaceLogIdentifier raceLogIdentifier, RaceLogGateLineOpeningTimeEvent gateLineOpeningTimeEvent) { - BasicDBObject result = new BasicDBObject(); + public Document storeRaceLogEntry(RaceLogIdentifier raceLogIdentifier, RaceLogGateLineOpeningTimeEvent gateLineOpeningTimeEvent) { + Document result = new Document(); storeRaceLogIdentifier(raceLogIdentifier, result); result.put(FieldNames.RACE_LOG_EVENT.name(), storeRaceLogGateLineOpeningTimeEvent(gateLineOpeningTimeEvent)); return result; } - public DBObject storeRaceLogEntry(RaceLogIdentifier raceLogIdentifier, RaceLogStartProcedureChangedEvent event) { - DBObject result = new BasicDBObject(); + public Document storeRaceLogEntry(RaceLogIdentifier raceLogIdentifier, RaceLogStartProcedureChangedEvent event) { + Document result = new Document(); storeRaceLogIdentifier(raceLogIdentifier, result); result.put(FieldNames.RACE_LOG_EVENT.name(), storeRaceLogStartProcedureChangedEvent(event)); return result; } - public DBObject storeRaceLogEntry(RaceLogIdentifier raceLogIdentifier, RaceLogProtestStartTimeEvent event) { - DBObject result = new BasicDBObject(); + public Document storeRaceLogEntry(RaceLogIdentifier raceLogIdentifier, RaceLogProtestStartTimeEvent event) { + Document result = new Document(); storeRaceLogIdentifier(raceLogIdentifier, result); result.put(FieldNames.RACE_LOG_EVENT.name(), storeRaceLogProtestStartTimeEvent(event)); return result; } - public DBObject storeRaceLogEntry(RaceLogIdentifier raceLogIdentifier, RaceLogWindFixEvent event) { - DBObject result = new BasicDBObject(); + public Document storeRaceLogEntry(RaceLogIdentifier raceLogIdentifier, RaceLogWindFixEvent event) { + Document result = new Document(); storeRaceLogIdentifier(raceLogIdentifier, result); result.put(FieldNames.RACE_LOG_EVENT.name(), storeRaceLogWindFix(event)); return result; } - public DBObject storeRaceLogEntry(RaceLogIdentifier raceLogIdentifier, RaceLogDenoteForTrackingEvent event) { - BasicDBObject result = new BasicDBObject(); + public Document storeRaceLogEntry(RaceLogIdentifier raceLogIdentifier, RaceLogDenoteForTrackingEvent event) { + Document result = new Document(); storeRaceLogIdentifier(raceLogIdentifier, result); result.put(FieldNames.RACE_LOG_EVENT.name(), storeRaceLogDenoteForTrackingEvent(event)); return result; } - public DBObject storeRaceLogEntry(RaceLogIdentifier raceLogIdentifier, RaceLogStartTrackingEvent event) { - BasicDBObject result = new BasicDBObject(); + public Document storeRaceLogEntry(RaceLogIdentifier raceLogIdentifier, RaceLogStartTrackingEvent event) { + Document result = new Document(); storeRaceLogIdentifier(raceLogIdentifier, result); result.put(FieldNames.RACE_LOG_EVENT.name(), storeRaceLogStartTrackingEvent(event)); return result; } - public DBObject storeRaceLogEntry(RaceLogIdentifier raceLogIdentifier, RaceLogRevokeEvent event) { - BasicDBObject result = new BasicDBObject(); + public Document storeRaceLogEntry(RaceLogIdentifier raceLogIdentifier, RaceLogRevokeEvent event) { + Document result = new Document(); storeRaceLogIdentifier(raceLogIdentifier, result); result.put(FieldNames.RACE_LOG_EVENT.name(), storeRaceLogRevokeEvent(event)); return result; } - public DBObject storeRaceLogEntry(RaceLogIdentifier raceLogIdentifier, RaceLogRegisterCompetitorEvent event) { - BasicDBObject result = new BasicDBObject(); + public Document storeRaceLogEntry(RaceLogIdentifier raceLogIdentifier, RaceLogRegisterCompetitorEvent event) { + Document result = new Document(); storeRaceLogIdentifier(raceLogIdentifier, result); result.put(FieldNames.RACE_LOG_EVENT.name(), storeRaceLogRegisterCompetitorEvent(event)); return result; } - public DBObject storeRaceLogEntry(RaceLogIdentifier raceLogIdentifier, RaceLogEndOfTrackingEvent event) { - BasicDBObject result = new BasicDBObject(); + public Document storeRaceLogEntry(RaceLogIdentifier raceLogIdentifier, RaceLogEndOfTrackingEvent event) { + Document result = new Document(); storeRaceLogIdentifier(raceLogIdentifier, result); result.put(FieldNames.RACE_LOG_EVENT.name(), storeRaceLogEndOfTrackingEvent(event)); return result; } - public DBObject storeRaceLogEntry(RaceLogIdentifier raceLogIdentifier, RaceLogStartOfTrackingEvent event) { - BasicDBObject result = new BasicDBObject(); + public Document storeRaceLogEntry(RaceLogIdentifier raceLogIdentifier, RaceLogStartOfTrackingEvent event) { + Document result = new Document(); storeRaceLogIdentifier(raceLogIdentifier, result); result.put(FieldNames.RACE_LOG_EVENT.name(), storeRaceLogStartOfTrackingEvent(event)); return result; } - public DBObject storeRaceLogEntry(RaceLogIdentifier raceLogIdentifier, RaceLogAdditionalScoringInformationEvent event) { - BasicDBObject result = new BasicDBObject(); + public Document storeRaceLogEntry(RaceLogIdentifier raceLogIdentifier, RaceLogAdditionalScoringInformationEvent event) { + Document result = new Document(); storeRaceLogIdentifier(raceLogIdentifier, result); result.put(FieldNames.RACE_LOG_EVENT.name(), storeAdditionalScoringInformation(event)); return result; } private Object storeAdditionalScoringInformation(RaceLogAdditionalScoringInformationEvent event) { - DBObject result = new BasicDBObject(); + Document result = new Document(); storeRaceLogEventProperties(event, result); result.put(FieldNames.RACE_LOG_EVENT_CLASS.name(), RaceLogAdditionalScoringInformationEvent.class.getSimpleName()); result.put(FieldNames.RACE_LOG_ADDITIONAL_SCORING_INFORMATION_TYPE.name(), event.getType().name()); return result; } - public DBObject storeRaceLogEntry(RaceLogIdentifier raceLogIdentifier, RaceLogFixedMarkPassingEvent event) { - BasicDBObject result = new BasicDBObject(); + public Document storeRaceLogEntry(RaceLogIdentifier raceLogIdentifier, RaceLogFixedMarkPassingEvent event) { + Document result = new Document(); storeRaceLogIdentifier(raceLogIdentifier, result); result.put(FieldNames.RACE_LOG_EVENT.name(), storeRaceLogFixedMarkPassingEvent(event)); return result; } - public DBObject storeRaceLogEntry(RaceLogIdentifier raceLogIdentifier, RaceLogSuppressedMarkPassingsEvent event) { - BasicDBObject result = new BasicDBObject(); + public Document storeRaceLogEntry(RaceLogIdentifier raceLogIdentifier, RaceLogSuppressedMarkPassingsEvent event) { + Document result = new Document(); storeRaceLogIdentifier(raceLogIdentifier, result); result.put(FieldNames.RACE_LOG_EVENT.name(), storeRaceLogSuppressedMarkPassingsEvent(event)); return result; } private Object storeRaceLogWindFix(RaceLogWindFixEvent event) { - DBObject result = new BasicDBObject(); + Document result = new Document(); storeRaceLogEventProperties(event, result); result.put(FieldNames.RACE_LOG_EVENT_CLASS.name(), RaceLogWindFixEvent.class.getSimpleName()); result.put(FieldNames.WIND.name(), storeWind(event.getWindFix())); @@ -995,7 +995,7 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { } private Object storeRaceLogProtestStartTimeEvent(RaceLogProtestStartTimeEvent event) { - DBObject result = new BasicDBObject(); + Document result = new Document(); storeRaceLogEventProperties(event, result); result.put(FieldNames.RACE_LOG_EVENT_CLASS.name(), RaceLogProtestStartTimeEvent.class.getSimpleName()); storeTimePoint(event.getProtestTime().from(), result, FieldNames.RACE_LOG_PROTEST_START_TIME); @@ -1004,21 +1004,21 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { } private Object storeRaceLogEndOfTrackingEvent(RaceLogEndOfTrackingEvent event) { - DBObject result = new BasicDBObject(); + Document result = new Document(); storeRaceLogEventProperties(event, result); result.put(FieldNames.RACE_LOG_EVENT_CLASS.name(), RaceLogEndOfTrackingEvent.class.getSimpleName()); return result; } private Object storeRaceLogStartOfTrackingEvent(RaceLogStartOfTrackingEvent event) { - DBObject result = new BasicDBObject(); + Document result = new Document(); storeRaceLogEventProperties(event, result); result.put(FieldNames.RACE_LOG_EVENT_CLASS.name(), RaceLogStartOfTrackingEvent.class.getSimpleName()); return result; } private Object storeRaceLogStartProcedureChangedEvent(RaceLogStartProcedureChangedEvent event) { - DBObject result = new BasicDBObject(); + Document result = new Document(); storeRaceLogEventProperties(event, result); result.put(FieldNames.RACE_LOG_EVENT_CLASS.name(), RaceLogStartProcedureChangedEvent.class.getSimpleName()); result.put(FieldNames.RACE_LOG_START_PROCEDURE_TYPE.name(), event.getStartProcedureType().name()); @@ -1026,14 +1026,14 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { } private Object storeRaceLogPathfinderEvent(RaceLogPathfinderEvent pathfinderEvent) { - DBObject result = new BasicDBObject(); + Document result = new Document(); storeRaceLogEventProperties(pathfinderEvent, result); result.put(FieldNames.RACE_LOG_EVENT_CLASS.name(), RaceLogPathfinderEvent.class.getSimpleName()); result.put(FieldNames.RACE_LOG_PATHFINDER_ID.name(), pathfinderEvent.getPathfinderId()); return result; } - private void storeDeviceMappingEvent(RegattaLogDeviceMappingEvent event, DBObject result, FieldNames fromField, FieldNames toField) { + private void storeDeviceMappingEvent(RegattaLogDeviceMappingEvent event, Document result, FieldNames fromField, FieldNames toField) { try { result.put(FieldNames.DEVICE_ID.name(), storeDeviceId(deviceIdentifierServiceFinder, event.getDevice())); } catch (TransformationException | NoCorrespondingServiceRegisteredException e) { @@ -1048,7 +1048,7 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { } private Object storeRaceLogDenoteForTrackingEvent(RaceLogDenoteForTrackingEvent event) { - DBObject result = new BasicDBObject(); + Document result = new Document(); storeRaceLogEventProperties(event, result); result.put(FieldNames.RACE_LOG_EVENT_CLASS.name(), RaceLogDenoteForTrackingEvent.class.getSimpleName()); result.put(FieldNames.RACE_NAME.name(), event.getRaceName()); @@ -1058,14 +1058,14 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { } private Object storeRaceLogStartTrackingEvent(RaceLogStartTrackingEvent event) { - DBObject result = new BasicDBObject(); + Document result = new Document(); storeRaceLogEventProperties(event, result); result.put(FieldNames.RACE_LOG_EVENT_CLASS.name(), RaceLogStartTrackingEvent.class.getSimpleName()); return result; } private Object storeRaceLogRevokeEvent(RaceLogRevokeEvent event) { - DBObject result = new BasicDBObject(); + Document result = new Document(); storeRaceLogEventProperties(event, result); result.put(FieldNames.RACE_LOG_EVENT_CLASS.name(), RaceLogRevokeEvent.class.getSimpleName()); result.put(FieldNames.RACE_LOG_REVOKED_EVENT_ID.name(), event.getRevokedEventId()); @@ -1076,7 +1076,7 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { } private Object storeRaceLogRegisterCompetitorEvent(RaceLogRegisterCompetitorEvent event) { - DBObject result = new BasicDBObject(); + Document result = new Document(); storeRaceLogEventProperties(event, result); result.put(FieldNames.RACE_LOG_EVENT_CLASS.name(), RaceLogRegisterCompetitorEvent.class.getSimpleName()); result.put(FieldNames.RACE_LOG_COMPETITOR_ID.name(), event.getCompetitor().getId()); @@ -1084,22 +1084,22 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { return result; } - public DBObject storeRaceLogEntry(RaceLogIdentifier raceLogIdentifier, RaceLogUseCompetitorsFromRaceLogEvent event) { - BasicDBObject result = new BasicDBObject(); + public Document storeRaceLogEntry(RaceLogIdentifier raceLogIdentifier, RaceLogUseCompetitorsFromRaceLogEvent event) { + Document result = new Document(); storeRaceLogIdentifier(raceLogIdentifier, result); result.put(FieldNames.RACE_LOG_EVENT.name(), storeRaceLogUseCompetitorsFromRaceLogEvent(event)); return result; } - public DBObject storeRaceLogEntry(RaceLogIdentifier raceLogIdentifier, RaceLogTagEvent event) { - BasicDBObject result = new BasicDBObject(); + public Document storeRaceLogEntry(RaceLogIdentifier raceLogIdentifier, RaceLogTagEvent event) { + Document result = new Document(); storeRaceLogIdentifier(raceLogIdentifier, result); result.put(FieldNames.RACE_LOG_EVENT.name(), storeRaceLogTagEvent(event)); return result; } - public DBObject storeRaceLogTagEvent(RaceLogTagEvent event) { - DBObject result = new BasicDBObject(); + public Document storeRaceLogTagEvent(RaceLogTagEvent event) { + Document result = new Document(); storeRaceLogEventProperties(event, result); result.put(FieldNames.RACE_LOG_EVENT_CLASS.name(), RaceLogTagEvent.class.getSimpleName()); result.put(FieldNames.RACE_LOG_TAG.name(), event.getTag()); @@ -1109,15 +1109,15 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { return result; } - public DBObject storeRaceLogUseCompetitorsFromRaceLogEvent(RaceLogUseCompetitorsFromRaceLogEvent event) { - DBObject result = new BasicDBObject(); + public Document storeRaceLogUseCompetitorsFromRaceLogEvent(RaceLogUseCompetitorsFromRaceLogEvent event) { + Document result = new Document(); storeRaceLogEventProperties(event, result); result.put(FieldNames.RACE_LOG_EVENT_CLASS.name(), RaceLogUseCompetitorsFromRaceLogEvent.class.getSimpleName()); return result; } private Object storeRaceLogFixedMarkPassingEvent(RaceLogFixedMarkPassingEvent event) { - DBObject result = new BasicDBObject(); + Document result = new Document(); storeRaceLogEventProperties(event, result); result.put(FieldNames.RACE_LOG_EVENT_CLASS.name(), RaceLogFixedMarkPassingEvent.class.getSimpleName()); result.put(FieldNames.INDEX_OF_PASSED_WAYPOINT.name(), event.getZeroBasedIndexOfPassedWaypoint()); @@ -1126,15 +1126,15 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { } private Object storeRaceLogSuppressedMarkPassingsEvent(RaceLogSuppressedMarkPassingsEvent event) { - DBObject result = new BasicDBObject(); + Document result = new Document(); storeRaceLogEventProperties(event, result); result.put(FieldNames.RACE_LOG_EVENT_CLASS.name(), RaceLogSuppressedMarkPassingsEvent.class.getSimpleName()); result.put(FieldNames.INDEX_OF_FIRST_SUPPRESSED_WAYPOINT.name(), event.getZeroBasedIndexOfFirstSuppressedWaypoint()); return result; } - public DBObject storeRaceLogFlagEvent(RaceLogFlagEvent flagEvent) { - DBObject result = new BasicDBObject(); + public Document storeRaceLogFlagEvent(RaceLogFlagEvent flagEvent) { + Document result = new Document(); storeRaceLogEventProperties(flagEvent, result); result.put(FieldNames.RACE_LOG_EVENT_CLASS.name(), RaceLogFlagEvent.class.getSimpleName()); result.put(FieldNames.RACE_LOG_EVENT_FLAG_UPPER.name(), flagEvent.getUpperFlag().name()); @@ -1143,8 +1143,8 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { return result; } - private DBObject storeRaceLogStartTimeEvent(RaceLogStartTimeEvent startTimeEvent) { - DBObject result = new BasicDBObject(); + private Document storeRaceLogStartTimeEvent(RaceLogStartTimeEvent startTimeEvent) { + Document result = new Document(); storeRaceLogEventProperties(startTimeEvent, result); result.put(FieldNames.RACE_LOG_EVENT_CLASS.name(), RaceLogStartTimeEvent.class.getSimpleName()); storeTimePoint(startTimeEvent.getStartTime(), result, FieldNames.RACE_LOG_EVENT_START_TIME); @@ -1152,7 +1152,7 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { return result; } - private void storeRaceLogEventProperties(RaceLogEvent event, DBObject result) { + private void storeRaceLogEventProperties(RaceLogEvent event, Document result) { // for compatibility reasons we reuse the field name of Timed storeTimePoint(event.getLogicalTimePoint(), result, FieldNames.TIME_AS_MILLIS); storeTimePoint(event.getCreatedAt(), result, FieldNames.RACE_LOG_EVENT_CREATED_AT); @@ -1171,15 +1171,15 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { return dbInvolvedCompetitorIds; } - private DBObject storeRaceLogPassChangeEvent(RaceLogPassChangeEvent passChangeEvent) { - DBObject result = new BasicDBObject(); + private Document storeRaceLogPassChangeEvent(RaceLogPassChangeEvent passChangeEvent) { + Document result = new Document(); storeRaceLogEventProperties(passChangeEvent, result); result.put(FieldNames.RACE_LOG_EVENT_CLASS.name(), RaceLogPassChangeEvent.class.getSimpleName()); return result; } - private DBObject storeRaceLogDependentStartTimeEvent(RaceLogDependentStartTimeEvent dependentStartTimeEvent) { - DBObject result = new BasicDBObject(); + private Document storeRaceLogDependentStartTimeEvent(RaceLogDependentStartTimeEvent dependentStartTimeEvent) { + Document result = new Document(); storeRaceLogEventProperties(dependentStartTimeEvent, result); result.put(FieldNames.RACE_LOG_EVENT_CLASS.name(), RaceLogDependentStartTimeEvent.class.getSimpleName()); result.put(FieldNames.RACE_LOG_DEPDENDENT_ON_REGATTALIKE.name(), dependentStartTimeEvent.getDependentOnRaceIdentifier().getRegattaLikeParentName()); @@ -1190,22 +1190,22 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { return result; } - private void storeDuration(Duration duration, DBObject result, FieldNames fieldName) { + private void storeDuration(Duration duration, Document result, FieldNames fieldName) { if (duration != null) { result.put(fieldName.name(), duration.asMillis()); } } - private DBObject storeRaceLogRaceStatusEvent(RaceLogRaceStatusEvent raceStatusEvent) { - DBObject result = new BasicDBObject(); + private Document storeRaceLogRaceStatusEvent(RaceLogRaceStatusEvent raceStatusEvent) { + Document result = new Document(); storeRaceLogEventProperties(raceStatusEvent, result); result.put(FieldNames.RACE_LOG_EVENT_CLASS.name(), RaceLogRaceStatusEvent.class.getSimpleName()); result.put(FieldNames.RACE_LOG_EVENT_NEXT_STATUS.name(), raceStatusEvent.getNextStatus().name()); return result; } - private DBObject storeRaceLogCourseDesignChangedEvent(RaceLogCourseDesignChangedEvent courseDesignChangedEvent) { - DBObject result = new BasicDBObject(); + private Document storeRaceLogCourseDesignChangedEvent(RaceLogCourseDesignChangedEvent courseDesignChangedEvent) { + Document result = new Document(); storeRaceLogEventProperties(courseDesignChangedEvent, result); result.put(FieldNames.RACE_LOG_EVENT_CLASS.name(), RaceLogCourseDesignChangedEvent.class.getSimpleName()); result.put(FieldNames.RACE_LOG_COURSE_DESIGN_NAME.name(), courseDesignChangedEvent.getCourseDesign().getName()); @@ -1216,7 +1216,7 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { } private Object storeRaceLogFinishPositioningListChangedEvent(RaceLogFinishPositioningListChangedEvent finishPositioningListChangedEvent) { - DBObject result = new BasicDBObject(); + Document result = new Document(); storeRaceLogEventProperties(finishPositioningListChangedEvent, result); result.put(FieldNames.RACE_LOG_EVENT_CLASS.name(), RaceLogFinishPositioningListChangedEvent.class.getSimpleName()); result.put(FieldNames.RACE_LOG_POSITIONED_COMPETITORS.name(), storePositionedCompetitors(finishPositioningListChangedEvent.getPositionedCompetitorsIDsNamesMaxPointsReasons())); @@ -1225,7 +1225,7 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { } private Object storeRaceLogFinishPositioningConfirmedEvent(RaceLogFinishPositioningConfirmedEvent finishPositioningConfirmedEvent) { - DBObject result = new BasicDBObject(); + Document result = new Document(); storeRaceLogEventProperties(finishPositioningConfirmedEvent, result); result.put(FieldNames.RACE_LOG_EVENT_CLASS.name(), RaceLogFinishPositioningConfirmedEvent.class.getSimpleName()); result.put(FieldNames.RACE_LOG_POSITIONED_COMPETITORS.name(), storePositionedCompetitors(finishPositioningConfirmedEvent.getPositionedCompetitorsIDsNamesMaxPointsReasons())); @@ -1234,7 +1234,7 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { } private Object storeRaceLogGateLineOpeningTimeEvent(RaceLogGateLineOpeningTimeEvent gateLineOpeningTimeEvent){ - DBObject result = new BasicDBObject(); + Document result = new Document(); storeRaceLogEventProperties(gateLineOpeningTimeEvent, result); result.put(FieldNames.RACE_LOG_EVENT_CLASS.name(), RaceLogGateLineOpeningTimeEvent.class.getSimpleName()); result.put(FieldNames.RACE_LOG_GATE_LINE_OPENING_TIME.name(), gateLineOpeningTimeEvent.getGateLineOpeningTimes().getGateLaunchStopTime()); @@ -1252,8 +1252,8 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { return dbList; } - private DBObject storePositionedCompetitor(CompetitorResult competitorResult) { - DBObject result = new BasicDBObject(); + private Document storePositionedCompetitor(CompetitorResult competitorResult) { + Document result = new Document(); result.put(FieldNames.COMPETITOR_ID.name(), competitorResult.getCompetitorId()); result.put(FieldNames.COMPETITOR_DISPLAY_NAME.name(), competitorResult.getCompetitorDisplayName()); result.put(FieldNames.LEADERBOARD_SCORE_CORRECTION_MAX_POINTS_REASON.name(), competitorResult.getMaxPointsReason() == null ? null : competitorResult.getMaxPointsReason().name()); @@ -1274,15 +1274,15 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { return dbList; } - private DBObject storeWaypoint(Waypoint waypoint) { - DBObject result = new BasicDBObject(); + private Document storeWaypoint(Waypoint waypoint) { + Document result = new Document(); result.put(FieldNames.WAYPOINT_PASSINGINSTRUCTIONS.name(), getPassingInstructions(waypoint.getPassingInstructions())); result.put(FieldNames.CONTROLPOINT.name(), storeControlPoint(waypoint.getControlPoint())); return result; } - private DBObject storeControlPoint(ControlPoint controlPoint) { - DBObject result = new BasicDBObject(); + private Document storeControlPoint(ControlPoint controlPoint) { + Document result = new Document(); if (controlPoint instanceof Mark) { result.put(FieldNames.CONTROLPOINT_CLASS.name(), Mark.class.getSimpleName()); result.put(FieldNames.CONTROLPOINT_VALUE.name(), storeMark((Mark) controlPoint)); @@ -1293,8 +1293,8 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { return result; } - private DBObject storeControlPointWithTwoMarks(ControlPointWithTwoMarks cpwtm) { - DBObject result = new BasicDBObject(); + private Document storeControlPointWithTwoMarks(ControlPointWithTwoMarks cpwtm) { + Document result = new Document(); result.put(FieldNames.CONTROLPOINTWITHTWOMARKS_ID.name(), cpwtm.getId()); result.put(FieldNames.CONTROLPOINTWITHTWOMARKS_NAME.name(), cpwtm.getName()); result.put(FieldNames.CONTROLPOINTWITHTWOMARKS_LEFT.name(), storeMark(cpwtm.getLeft())); @@ -1302,8 +1302,8 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { return result; } - private DBObject storeMark(Mark mark) { - DBObject result = new BasicDBObject(); + private Document storeMark(Mark mark) { + Document result = new Document(); result.put(FieldNames.MARK_ID.name(), mark.getId()); result.put(FieldNames.MARK_COLOR.name(), mark.getColor()==null?null:mark.getColor().getAsHtml()); result.put(FieldNames.MARK_NAME.name(), mark.getName()); @@ -1334,19 +1334,19 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { } private void storeCompetitorWithoutBoat(Competitor competitor) { - DBCollection collection = database.getCollection(CollectionNames.COMPETITORS.name()); + MongoCollection collection = database.getCollection(CollectionNames.COMPETITORS.name()); JSONObject json = competitorSerializer.serialize(competitor); - DBObject query = (DBObject) JSON.parse(CompetitorJsonSerializer.getCompetitorIdQuery(competitor).toString()); - DBObject entry = (DBObject) JSON.parse(json.toString()); - collection.update(query, entry, /* upsrt */true, /* multi */false, WriteConcern.SAFE); + Document query = Document.parse(CompetitorJsonSerializer.getCompetitorIdQuery(competitor).toString()); + Document entry = Document.parse(json.toString()); + collection.withWriteConcern(WriteConcern.ACKNOWLEDGED).replaceOne(query, entry, new UpdateOptions().upsert(true)); } private void storeCompetitorWithBoat(CompetitorWithBoat competitor) { - DBCollection collection = database.getCollection(CollectionNames.COMPETITORS.name()); + MongoCollection collection = database.getCollection(CollectionNames.COMPETITORS.name()); JSONObject json = competitorWithBoatRefSerializer.serialize(competitor); - DBObject query = (DBObject) JSON.parse(CompetitorJsonSerializer.getCompetitorIdQuery(competitor).toString()); - DBObject entry = (DBObject) JSON.parse(json.toString()); - collection.update(query, entry, /* upsrt */true, /* multi */false, WriteConcern.SAFE); + Document query = Document.parse(CompetitorJsonSerializer.getCompetitorIdQuery(competitor).toString()); + Document entry = Document.parse(json.toString()); + collection.withWriteConcern(WriteConcern.ACKNOWLEDGED).replaceOne(query, entry, new UpdateOptions().upsert(true)); } @Override @@ -1368,100 +1368,100 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { private void storeCompetitorsWithoutBoat(Iterable competitors) { if (!Util.isEmpty(competitors)) { - DBCollection collection = database.getCollection(CollectionNames.COMPETITORS.name()); - List competitorsDB = new ArrayList<>(); + MongoCollection collection = database.getCollection(CollectionNames.COMPETITORS.name()); + List competitorsDB = new ArrayList<>(); for (Competitor competitor : competitors) { JSONObject json = competitorSerializer.serialize(competitor); - DBObject entry = (DBObject) JSON.parse(json.toString()); + Document entry = Document.parse(json.toString()); competitorsDB.add(entry); } - collection.insert(competitorsDB); + collection.insertMany(competitorsDB); } } private void storeCompetitorsWithBoat(Iterable competitors) { if (!Util.isEmpty(competitors)) { - DBCollection collection = database.getCollection(CollectionNames.COMPETITORS.name()); - List competitorsDB = new ArrayList<>(); + MongoCollection collection = database.getCollection(CollectionNames.COMPETITORS.name()); + List competitorsDB = new ArrayList<>(); for (CompetitorWithBoat competitor : competitors) { JSONObject json = competitorWithBoatRefSerializer.serialize(competitor); - DBObject entry = (DBObject) JSON.parse(json.toString()); + Document entry = Document.parse(json.toString()); competitorsDB.add(entry); } - collection.insert(competitorsDB); + collection.insertMany(competitorsDB); } } @Override public void removeAllCompetitors() { logger.info("Removing all persistent competitors"); - DBCollection collection = database.getCollection(CollectionNames.COMPETITORS.name()); + MongoCollection collection = database.getCollection(CollectionNames.COMPETITORS.name()); collection.drop(); } @Override public void removeCompetitor(Competitor competitor) { logger.info("Removing persistent competitor info for competitor "+competitor.getName()+" with ID "+competitor.getId()); - DBCollection collection = database.getCollection(CollectionNames.COMPETITORS.name()); - DBObject query = (DBObject) JSON.parse(CompetitorJsonSerializer.getCompetitorIdQuery(competitor).toString()); - collection.remove(query, WriteConcern.SAFE); + MongoCollection collection = database.getCollection(CollectionNames.COMPETITORS.name()); + Document query = Document.parse(CompetitorJsonSerializer.getCompetitorIdQuery(competitor).toString()); + collection.withWriteConcern(WriteConcern.ACKNOWLEDGED).deleteOne(query); } @Override public void storeBoat(Boat boat) { - DBCollection collection = database.getCollection(CollectionNames.BOATS.name()); + MongoCollection collection = database.getCollection(CollectionNames.BOATS.name()); JSONObject json = boatSerializer.serialize(boat); - DBObject query = (DBObject) JSON.parse(BoatJsonSerializer.getBoatIdQuery(boat).toString()); - DBObject entry = (DBObject) JSON.parse(json.toString()); - collection.update(query, entry, /* upsrt */true, /* multi */false, WriteConcern.SAFE); + Document query = Document.parse(BoatJsonSerializer.getBoatIdQuery(boat).toString()); + Document entry = Document.parse(json.toString()); + collection.withWriteConcern(WriteConcern.ACKNOWLEDGED).replaceOne(query, entry, new UpdateOptions().upsert(true)); } @Override public void storeBoats(Iterable boats) { if (boats != null && !Util.isEmpty(boats)) { - DBCollection collection = database.getCollection(CollectionNames.BOATS.name()); - List boatsDB = new ArrayList<>(); + MongoCollection collection = database.getCollection(CollectionNames.BOATS.name()); + List boatsDB = new ArrayList<>(); for (Boat boat : boats) { JSONObject json = boatSerializer.serialize(boat); - DBObject entry = (DBObject) JSON.parse(json.toString()); + Document entry = Document.parse(json.toString()); boatsDB.add(entry); } - collection.insert(boatsDB); + collection.insertMany(boatsDB); } } @Override public void removeAllBoats() { logger.info("Removing all persistent boats"); - DBCollection collection = database.getCollection(CollectionNames.BOATS.name()); + MongoCollection collection = database.getCollection(CollectionNames.BOATS.name()); collection.drop(); } @Override public void removeBoat(Boat boat) { logger.info("Removing persistent boat "+boat.getName()+" with ID "+boat.getId()); - DBCollection collection = database.getCollection(CollectionNames.BOATS.name()); - DBObject query = (DBObject) JSON.parse(BoatJsonSerializer.getBoatIdQuery(boat).toString()); - collection.remove(query, WriteConcern.SAFE); + MongoCollection collection = database.getCollection(CollectionNames.BOATS.name()); + Document query = Document.parse(BoatJsonSerializer.getBoatIdQuery(boat).toString()); + collection.withWriteConcern(WriteConcern.ACKNOWLEDGED).deleteOne(query); } @Override public void storeDeviceConfiguration(DeviceConfigurationMatcher matcher, DeviceConfiguration configuration) { - DBCollection configurationsCollections = database.getCollection(CollectionNames.CONFIGURATIONS.name()); + MongoCollection configurationsCollections = database.getCollection(CollectionNames.CONFIGURATIONS.name()); - DBObject query = new BasicDBObject(); + Document query = new Document(); query.put(FieldNames.CONFIGURATION_MATCHER_ID.name(), matcher.getMatcherIdentifier()); - DBObject entryObject = new BasicDBObject(); + Document entryObject = new Document(); entryObject.put(FieldNames.CONFIGURATION_MATCHER_ID.name(), matcher.getMatcherIdentifier()); entryObject.put(FieldNames.CONFIGURATION_MATCHER.name(), createDeviceConfigurationMatcherObject(matcher)); entryObject.put(FieldNames.CONFIGURATION_CONFIG.name(), createDeviceConfigurationObject(configuration)); - configurationsCollections.update(query, entryObject, /* upsrt */ true, /* multi */ false, WriteConcern.SAFE); + configurationsCollections.withWriteConcern(WriteConcern.ACKNOWLEDGED).replaceOne(query, entryObject, new UpdateOptions().upsert(true)); } - private DBObject createDeviceConfigurationMatcherObject(DeviceConfigurationMatcher matcher) { - DBObject matcherObject = new BasicDBObject(); + private Document createDeviceConfigurationMatcherObject(DeviceConfigurationMatcher matcher) { + Document matcherObject = new Document(); if (matcher instanceof DeviceConfigurationMatcherSingle) { BasicDBList client = new BasicDBList(); client.add(((DeviceConfigurationMatcherSingle)matcher).getClientIdentifier()); @@ -1470,22 +1470,22 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { return matcherObject; } - private DBObject createDeviceConfigurationObject(DeviceConfiguration configuration) { + private Document createDeviceConfigurationObject(DeviceConfiguration configuration) { JsonSerializer serializer = DeviceConfigurationJsonSerializer.create(); JSONObject json = serializer.serialize(configuration); - DBObject entry = (DBObject) JSON.parse(json.toString()); + Document entry = Document.parse(json.toString()); return entry; } @Override public void removeDeviceConfiguration(DeviceConfigurationMatcher matcher) { - DBCollection configurationsCollections = database.getCollection(CollectionNames.CONFIGURATIONS.name()); - DBObject query = new BasicDBObject(); + MongoCollection configurationsCollections = database.getCollection(CollectionNames.CONFIGURATIONS.name()); + Document query = new Document(); query.put(FieldNames.CONFIGURATION_MATCHER_ID.name(), matcher.getMatcherIdentifier()); - configurationsCollections.remove(query); + configurationsCollections.deleteOne(query); } - public static DBObject storeDeviceId( + public static Document storeDeviceId( TypeBasedServiceFinder deviceIdentifierServiceFinder, DeviceIdentifier device) throws TransformationException, NoCorrespondingServiceRegisteredException { String type = device.getIdentifierType(); @@ -1493,21 +1493,21 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { com.sap.sse.common.Util.Pair pair = handler.serialize(device); type = pair.getA(); Object deviceTypeSpecificId = pair.getB(); - return new BasicDBObjectBuilder() - .add(FieldNames.DEVICE_TYPE.name(), type) - .add(FieldNames.DEVICE_TYPE_SPECIFIC_ID.name(), deviceTypeSpecificId) - .add(FieldNames.DEVICE_STRING_REPRESENTATION.name(), device.getStringRepresentation()).get(); + return new Document() + .append(FieldNames.DEVICE_TYPE.name(), type) + .append(FieldNames.DEVICE_TYPE_SPECIFIC_ID.name(), deviceTypeSpecificId) + .append(FieldNames.DEVICE_STRING_REPRESENTATION.name(), device.getStringRepresentation()); } - void storeRaceLogEventEvent(DBObject eventEntry) { - getRaceLogCollection().insert(eventEntry); + void storeRaceLogEventEvent(Document eventEntry) { + getRaceLogCollection().insertOne(eventEntry); } @Override public void removeRaceLog(RaceLogIdentifier identifier) { - DBObject query = new BasicDBObject(); + Document query = new Document(); storeRaceLogIdentifier(identifier, query); - getRaceLogCollection().remove(query); + getRaceLogCollection().deleteOne(query); } @Override @@ -1517,9 +1517,9 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { @Override public void removeRegattaLog(RegattaLikeIdentifier identifier) { - DBObject query = new BasicDBObject(); + Document query = new Document(); addRegattaLikeIdentifier(identifier, query); - getRegattaLogCollection().remove(query); + getRegattaLogCollection().deleteOne(query); } @Override @@ -1529,31 +1529,31 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { @Override public void storeResultUrl(String resultProviderName, URL url) { - DBCollection resultUrlsCollection = database.getCollection(CollectionNames.RESULT_URLS.name()); - DBObject query = new BasicDBObject(FieldNames.RESULT_PROVIDERNAME.name(), resultProviderName); - DBObject entry = new BasicDBObject(FieldNames.RESULT_PROVIDERNAME.name(), resultProviderName); + MongoCollection resultUrlsCollection = database.getCollection(CollectionNames.RESULT_URLS.name()); + Document query = new Document(FieldNames.RESULT_PROVIDERNAME.name(), resultProviderName); + Document entry = new Document(FieldNames.RESULT_PROVIDERNAME.name(), resultProviderName); entry.put(FieldNames.RESULT_URL.name(), url.toString()); - resultUrlsCollection.update(query, entry, /* upsrt */true, /* multi */false, WriteConcern.SAFE); + resultUrlsCollection.withWriteConcern(WriteConcern.ACKNOWLEDGED).replaceOne(query, entry, new UpdateOptions().upsert(true)); } @Override public void removeResultUrl(String resultProviderName, URL url) { - DBCollection resultUrlsCollection = database.getCollection(CollectionNames.RESULT_URLS.name()); - DBObject query = new BasicDBObjectBuilder().add(FieldNames.RESULT_PROVIDERNAME.name(), resultProviderName) - .add(FieldNames.RESULT_URL.name(), url.toString()).get(); - resultUrlsCollection.remove(query); + MongoCollection resultUrlsCollection = database.getCollection(CollectionNames.RESULT_URLS.name()); + Document query = new Document().append(FieldNames.RESULT_PROVIDERNAME.name(), resultProviderName) + .append(FieldNames.RESULT_URL.name(), url.toString()); + resultUrlsCollection.deleteOne(query); } - public DBCollection getRegattaLogCollection() { - DBCollection result = database.getCollection(CollectionNames.REGATTA_LOGS.name()); - DBObject index = new BasicDBObject(FieldNames.REGATTA_LOG_IDENTIFIER_TYPE.name(), 1); + public MongoCollection getRegattaLogCollection() { + MongoCollection result = database.getCollection(CollectionNames.REGATTA_LOGS.name()); + Document index = new Document(FieldNames.REGATTA_LOG_IDENTIFIER_TYPE.name(), 1); index.put(FieldNames.REGATTA_LOG_IDENTIFIER_NAME.name(), 1); result.createIndex(index); return result; } - private DBObject createBasicRegattaLogEventDBObject(RegattaLogEvent event) { - DBObject result = new BasicDBObject(); + private Document createBasicRegattaLogEventDBObject(RegattaLogEvent event) { + Document result = new Document(); storeTimed(event, result); storeTimePoint(event.getCreatedAt(), result, FieldNames.REGATTA_LOG_EVENT_CREATED_AT); result.put(FieldNames.REGATTA_LOG_EVENT_ID.name(), event.getId()); @@ -1562,19 +1562,19 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { return result; } - private void addRegattaLikeIdentifier(RegattaLikeIdentifier regattaLikeId, DBObject toObject) { + private void addRegattaLikeIdentifier(RegattaLikeIdentifier regattaLikeId, Document toObject) { toObject.put(FieldNames.REGATTA_LOG_IDENTIFIER_TYPE.name(), regattaLikeId.getIdentifierType()); toObject.put(FieldNames.REGATTA_LOG_IDENTIFIER_NAME.name(), regattaLikeId.getName()); } - private void storeRegattaLogEvent(RegattaLikeIdentifier regattaLikeId, DBObject innerObject) { - DBObject result = new BasicDBObject(FieldNames.REGATTA_LOG_EVENT.name(), innerObject); + private void storeRegattaLogEvent(RegattaLikeIdentifier regattaLikeId, Document innerObject) { + Document result = new Document(FieldNames.REGATTA_LOG_EVENT.name(), innerObject); addRegattaLikeIdentifier(regattaLikeId, result); - getRegattaLogCollection().insert(result); + getRegattaLogCollection().insertOne(result); } public void storeRegattaLogEvent(RegattaLikeIdentifier regattaLikeId, RegattaLogDeviceCompetitorMappingEvent event) { - DBObject result = createBasicRegattaLogEventDBObject(event); + Document result = createBasicRegattaLogEventDBObject(event); result.put(FieldNames.REGATTA_LOG_EVENT_CLASS.name(), RegattaLogDeviceCompetitorMappingEvent.class.getSimpleName()); storeDeviceMappingEvent(event, result, FieldNames.REGATTA_LOG_FROM, FieldNames.REGATTA_LOG_TO); result.put(FieldNames.COMPETITOR_ID.name(), event.getMappedTo().getId()); @@ -1582,7 +1582,7 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { } public void storeRegattaLogEvent(RegattaLikeIdentifier regattaLikeId, RegattaLogDeviceBoatMappingEvent event) { - DBObject result = createBasicRegattaLogEventDBObject(event); + Document result = createBasicRegattaLogEventDBObject(event); result.put(FieldNames.REGATTA_LOG_EVENT_CLASS.name(), RegattaLogDeviceBoatMappingEvent.class.getSimpleName()); storeDeviceMappingEvent(event, result, FieldNames.REGATTA_LOG_FROM, FieldNames.REGATTA_LOG_TO); result.put(FieldNames.RACE_LOG_BOAT_ID.name(), event.getMappedTo().getId()); @@ -1591,7 +1591,7 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { public void storeRegattaLogEvent(RegattaLikeIdentifier regattaLikeId, RegattaLogDeviceCompetitorSensorDataMappingEvent event) { - DBObject result = createBasicRegattaLogEventDBObject(event); + Document result = createBasicRegattaLogEventDBObject(event); result.put(FieldNames.REGATTA_LOG_EVENT_CLASS.name(), event.getClass().getSimpleName()); storeDeviceMappingEvent(event, result, FieldNames.REGATTA_LOG_FROM, FieldNames.REGATTA_LOG_TO); result.put(FieldNames.COMPETITOR_ID.name(), event.getMappedTo().getId()); @@ -1600,7 +1600,7 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { public void storeRegattaLogEvent(RegattaLikeIdentifier regattaLikeId, RegattaLogDeviceBoatSensorDataMappingEvent event) { - DBObject result = createBasicRegattaLogEventDBObject(event); + Document result = createBasicRegattaLogEventDBObject(event); result.put(FieldNames.REGATTA_LOG_EVENT_CLASS.name(), event.getClass().getSimpleName()); storeDeviceMappingEvent(event, result, FieldNames.REGATTA_LOG_FROM, FieldNames.REGATTA_LOG_TO); result.put(FieldNames.RACE_LOG_BOAT_ID.name(), event.getMappedTo().getId()); @@ -1608,7 +1608,7 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { } public void storeRegattaLogEvent(RegattaLikeIdentifier regattaLikeId, RegattaLogDeviceMarkMappingEvent event) { - DBObject result = createBasicRegattaLogEventDBObject(event); + Document result = createBasicRegattaLogEventDBObject(event); result.put(FieldNames.REGATTA_LOG_EVENT_CLASS.name(), RegattaLogDeviceMarkMappingEvent.class.getSimpleName()); storeDeviceMappingEvent(event, result, FieldNames.REGATTA_LOG_FROM, FieldNames.REGATTA_LOG_TO); result.put(FieldNames.MARK.name(), storeMark(event.getMappedTo())); @@ -1616,7 +1616,7 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { } public void storeRegattaLogEvent(RegattaLikeIdentifier regattaLikeId, RegattaLogRevokeEvent event) { - DBObject result = createBasicRegattaLogEventDBObject(event); + Document result = createBasicRegattaLogEventDBObject(event); result.put(FieldNames.REGATTA_LOG_EVENT_CLASS.name(), RegattaLogRevokeEvent.class.getSimpleName()); result.put(FieldNames.REGATTA_LOG_REVOKED_EVENT_ID.name(), event.getRevokedEventId()); result.put(FieldNames.REGATTA_LOG_REVOKED_EVENT_TYPE.name(), event.getRevokedEventType()); @@ -1626,21 +1626,21 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { } public void storeRegattaLogEvent(RegattaLikeIdentifier regattaLikeId, RegattaLogRegisterBoatEvent event) { - DBObject result = createBasicRegattaLogEventDBObject(event); + Document result = createBasicRegattaLogEventDBObject(event); result.put(FieldNames.REGATTA_LOG_EVENT_CLASS.name(), RegattaLogRegisterBoatEvent.class.getSimpleName()); result.put(FieldNames.REGATTA_LOG_BOAT_ID.name(), event.getBoat().getId()); storeRegattaLogEvent(regattaLikeId, result); } public void storeRegattaLogEvent(RegattaLikeIdentifier regattaLikeId, RegattaLogRegisterCompetitorEvent event) { - DBObject result = createBasicRegattaLogEventDBObject(event); + Document result = createBasicRegattaLogEventDBObject(event); result.put(FieldNames.REGATTA_LOG_EVENT_CLASS.name(), RegattaLogRegisterCompetitorEvent.class.getSimpleName()); result.put(FieldNames.REGATTA_LOG_COMPETITOR_ID.name(), event.getCompetitor().getId()); storeRegattaLogEvent(regattaLikeId, result); } public void storeRegattaLogEvent(RegattaLikeIdentifier regattaLikeId, RegattaLogCloseOpenEndedDeviceMappingEvent event) { - DBObject result = createBasicRegattaLogEventDBObject(event); + Document result = createBasicRegattaLogEventDBObject(event); result.put(FieldNames.REGATTA_LOG_EVENT_CLASS.name(), RegattaLogCloseOpenEndedDeviceMappingEvent.class.getSimpleName()); result.put(FieldNames.REGATTA_LOG_DEVICE_MAPPING_EVENT_ID.name(), event.getDeviceMappingEventId()); storeTimePoint(event.getClosingTimePointInclusive(), result, FieldNames.REGATTA_LOG_CLOSING_TIMEPOINT); @@ -1648,21 +1648,21 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { } public void storeRegattaLogEvent(RegattaLikeIdentifier regattaLikeId, RegattaLogSetCompetitorTimeOnTimeFactorEvent event) { - DBObject result = createBasicRegattaLogEventDBObject(event); + Document result = createBasicRegattaLogEventDBObject(event); result.put(FieldNames.REGATTA_LOG_EVENT_CLASS.name(), RegattaLogCloseOpenEndedDeviceMappingEvent.class.getSimpleName()); result.put(FieldNames.REGATTA_LOG_COMPETITOR_ID.name(), event.getCompetitor().getId()); result.put(FieldNames.REGATTA_LOG_TIME_ON_TIME_FACTOR.name(), event.getTimeOnTimeFactor()); } - public DBObject storeRaceLogEntry(RaceLogIdentifier raceLogIdentifier, RaceLogDependentStartTimeEvent event) { - BasicDBObject result = new BasicDBObject(); + public Document storeRaceLogEntry(RaceLogIdentifier raceLogIdentifier, RaceLogDependentStartTimeEvent event) { + Document result = new Document(); storeRaceLogIdentifier(raceLogIdentifier, result); result.put(FieldNames.RACE_LOG_EVENT.name(), storeRaceLogDependentStartTimeEvent(event)); return result; } public void storeRegattaLogEvent(RegattaLikeIdentifier regattaLikeId, RegattaLogSetCompetitorTimeOnDistanceAllowancePerNauticalMileEvent event) { - DBObject result = createBasicRegattaLogEventDBObject(event); + Document result = createBasicRegattaLogEventDBObject(event); result.put(FieldNames.REGATTA_LOG_EVENT_CLASS.name(), RegattaLogCloseOpenEndedDeviceMappingEvent.class.getSimpleName()); result.put(FieldNames.REGATTA_LOG_COMPETITOR_ID.name(), event.getCompetitor().getId()); result.put(FieldNames.REGATTA_LOG_TIME_ON_DISTANCE_SECONDS_ALLOWANCE_PER_NAUTICAL_MILE.name(), event.getTimeOnDistanceAllowancePerNauticalMile().asSeconds()); @@ -1670,14 +1670,14 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { } public void storeRegattaLogEvent(RegattaLikeIdentifier regattaLikeIdentifier, RegattaLogDefineMarkEvent event) { - DBObject result = createBasicRegattaLogEventDBObject(event); + Document result = createBasicRegattaLogEventDBObject(event); result.put(FieldNames.REGATTA_LOG_EVENT_CLASS.name(), RegattaLogDefineMarkEvent.class.getSimpleName()); result.put(FieldNames.REGATTA_LOG_MARK.name(), storeMark(event.getMark())); storeRegattaLogEvent(regattaLikeIdentifier, result); } - private DBObject createImageObject(ImageDescriptor image) { - DBObject result = new BasicDBObject(); + private Document createImageObject(ImageDescriptor image) { + Document result = new Document(); result.put(FieldNames.IMAGE_URL.name(), image.getURL().toString()); result.put(FieldNames.IMAGE_LOCALE.name(), image.getLocale() != null ? image.getLocale().toLanguageTag() : null); result.put(FieldNames.IMAGE_TITLE.name(), image.getTitle()); @@ -1694,8 +1694,8 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { return result; } - private DBObject createVideoObject(VideoDescriptor video) { - DBObject result = new BasicDBObject(); + private Document createVideoObject(VideoDescriptor video) { + Document result = new Document(); result.put(FieldNames.VIDEO_URL.name(), video.getURL().toString()); result.put(FieldNames.VIDEO_LOCALE.name(), video.getLocale() != null ? video.getLocale().toLanguageTag() : null); result.put(FieldNames.VIDEO_THUMBNAIL_URL.name(), video.getThumbnailURL() != null ? video.getThumbnailURL().toString() : null); @@ -1713,8 +1713,8 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { return result; } - private DBObject createSailorsInfoWebsiteObject(Locale locale, URL url) { - DBObject result = new BasicDBObject(); + private Document createSailorsInfoWebsiteObject(Locale locale, URL url) { + Document result = new Document(); result.put(FieldNames.SAILORS_INFO_URL.name(), url.toString()); result.put(FieldNames.SAILORS_INFO_LOCALE.name(), locale != null ? locale.toLanguageTag() : null); return result; @@ -1726,10 +1726,10 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { final String typeIdentifier = params.getTypeIdentifier(); final RaceTrackingConnectivityParametersHandler paramsPersistenceService = raceTrackingConnectivityParamsServiceFinder.findService(typeIdentifier); if (paramsPersistenceService != null) { - final DBCollection collection = database.getCollection(CollectionNames.CONNECTIVITY_PARAMS_FOR_RACES_TO_BE_RESTORED.name()); - DBObject key = new BasicDBObject(); + final MongoCollection collection = database.getCollection(CollectionNames.CONNECTIVITY_PARAMS_FOR_RACES_TO_BE_RESTORED.name()); + Document key = new Document(); key.putAll(paramsPersistenceService.getKey(params)); - collection.remove(key, WriteConcern.SAFE); + collection.withWriteConcern(WriteConcern.ACKNOWLEDGED).deleteOne(key); } else { logger.warning("Couldn't find a persistence service for connectivity parameters of type "+typeIdentifier); } @@ -1747,12 +1747,12 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { } else { try { final RaceTrackingConnectivityParametersHandler paramsPersistenceService = raceTrackingConnectivityParamsServiceFinder.findService(typeIdentifier); - final DBCollection collection = database.getCollection(CollectionNames.CONNECTIVITY_PARAMS_FOR_RACES_TO_BE_RESTORED.name()); - DBObject key = new BasicDBObject(); + final MongoCollection collection = database.getCollection(CollectionNames.CONNECTIVITY_PARAMS_FOR_RACES_TO_BE_RESTORED.name()); + Document key = new Document(); key.putAll(paramsPersistenceService.getKey(params)); - DBObject dbObject = new BasicDBObject(); + Document dbObject = new Document(); dbObject.putAll(paramsPersistenceService.mapFrom(params)); - collection.update(key, dbObject, /* upsert */ true, /* multi */ false, WriteConcern.SAFE); + collection.withWriteConcern(WriteConcern.ACKNOWLEDGED).replaceOne(key, dbObject, new UpdateOptions().upsert(true)); } catch (NoCorrespondingServiceRegisteredException e) { logger.log(Level.WARNING, "Couldn't find a persistence service for connectivity parameters of type "+typeIdentifier+ ". Couldn't store race "+params.getTrackerID()+" for restoring.", e); @@ -1771,11 +1771,11 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { public void storeAnniversaryData( ConcurrentHashMap> knownAnniversaries) { try { - DBCollection anniversarysStored = database.getCollection(CollectionNames.ANNIVERSARIES.name()); + MongoCollection anniversarysStored = database.getCollection(CollectionNames.ANNIVERSARIES.name()); for (Entry> anniversary : knownAnniversaries.entrySet()) { - BasicDBObject currentProxy = new BasicDBObject(FieldNames.ANNIVERSARY_NUMBER.name(), + Document currentProxy = new Document(FieldNames.ANNIVERSARY_NUMBER.name(), anniversary.getKey().intValue()); - BasicDBObject newValue = new BasicDBObject(FieldNames.ANNIVERSARY_NUMBER.name(), + Document newValue = new Document(FieldNames.ANNIVERSARY_NUMBER.name(), anniversary.getKey().intValue()); DetailedRaceInfo raceInfo = anniversary.getValue().getA(); newValue.append(FieldNames.RACE_NAME.name(), raceInfo.getIdentifier().getRaceName()); @@ -1791,7 +1791,7 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { final URL remoteUrl = raceInfo.getRemoteUrl(); newValue.append(FieldNames.REMOTE_URL.name(), remoteUrl == null ? null : remoteUrl.toExternalForm()); newValue.append(FieldNames.ANNIVERSARY_TYPE.name(), anniversary.getValue().getB().toString()); - anniversarysStored.update(currentProxy, newValue, true, false); + anniversarysStored.replaceOne(currentProxy, newValue, new UpdateOptions().upsert(true)); } } catch (Exception e) { e.printStackTrace(); diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoRaceLogStoreVisitor.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoRaceLogStoreVisitor.java index 11cb40b051c..2b164d1b040 100644 --- a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoRaceLogStoreVisitor.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoRaceLogStoreVisitor.java @@ -2,7 +2,8 @@ package com.sap.sailing.domain.persistence.impl; import java.util.logging.Logger; -import com.mongodb.DBObject; +import org.bson.Document; + import com.sap.sailing.domain.abstractlog.race.RaceLogCourseDesignChangedEvent; import com.sap.sailing.domain.abstractlog.race.RaceLogDependentStartTimeEvent; import com.sap.sailing.domain.abstractlog.race.RaceLogEndOfTrackingEvent; @@ -46,145 +47,145 @@ public class MongoRaceLogStoreVisitor implements RaceLogEventVisitor { @Override public void visit(RaceLogFlagEvent event) { - DBObject flagEventTrackEntry = mongoObjectFactory.storeRaceLogEntry(raceLogIdentifier, event); + Document flagEventTrackEntry = mongoObjectFactory.storeRaceLogEntry(raceLogIdentifier, event); mongoObjectFactory.storeRaceLogEventEvent(flagEventTrackEntry); } @Override public void visit(RaceLogPassChangeEvent event) { - DBObject passChangeEventTrackEntry = mongoObjectFactory.storeRaceLogEntry(raceLogIdentifier, event); + Document passChangeEventTrackEntry = mongoObjectFactory.storeRaceLogEntry(raceLogIdentifier, event); mongoObjectFactory.storeRaceLogEventEvent(passChangeEventTrackEntry); } @Override public void visit(RaceLogRaceStatusEvent event) { - DBObject raceStatusEventTrackEntry = mongoObjectFactory.storeRaceLogEntry(raceLogIdentifier, event); + Document raceStatusEventTrackEntry = mongoObjectFactory.storeRaceLogEntry(raceLogIdentifier, event); mongoObjectFactory.storeRaceLogEventEvent(raceStatusEventTrackEntry); } @Override public void visit(RaceLogStartTimeEvent event) { - DBObject startTimeEventTrackEntry = mongoObjectFactory.storeRaceLogEntry(raceLogIdentifier, event); + Document startTimeEventTrackEntry = mongoObjectFactory.storeRaceLogEntry(raceLogIdentifier, event); mongoObjectFactory.storeRaceLogEventEvent(startTimeEventTrackEntry); } @Override public void visit(RaceLogCourseDesignChangedEvent event) { - DBObject courseDesignChangedEventTrackEntry = mongoObjectFactory.storeRaceLogEntry(raceLogIdentifier, event); + Document courseDesignChangedEventTrackEntry = mongoObjectFactory.storeRaceLogEntry(raceLogIdentifier, event); mongoObjectFactory.storeRaceLogEventEvent(courseDesignChangedEventTrackEntry); } @Override public void visit(RaceLogFinishPositioningListChangedEvent event) { - DBObject finishPositioningListChangedEventTrackEntry = mongoObjectFactory.storeRaceLogEntry(raceLogIdentifier, event); + Document finishPositioningListChangedEventTrackEntry = mongoObjectFactory.storeRaceLogEntry(raceLogIdentifier, event); mongoObjectFactory.storeRaceLogEventEvent(finishPositioningListChangedEventTrackEntry); } @Override public void visit(RaceLogFinishPositioningConfirmedEvent event) { - DBObject object = mongoObjectFactory.storeRaceLogEntry(raceLogIdentifier, event); + Document object = mongoObjectFactory.storeRaceLogEntry(raceLogIdentifier, event); mongoObjectFactory.storeRaceLogEventEvent(object); } @Override public void visit(RaceLogPathfinderEvent event) { - DBObject object = mongoObjectFactory.storeRaceLogEntry(raceLogIdentifier, event); + Document object = mongoObjectFactory.storeRaceLogEntry(raceLogIdentifier, event); mongoObjectFactory.storeRaceLogEventEvent(object); } @Override public void visit(RaceLogGateLineOpeningTimeEvent event) { - DBObject object = mongoObjectFactory.storeRaceLogEntry(raceLogIdentifier, event); + Document object = mongoObjectFactory.storeRaceLogEntry(raceLogIdentifier, event); mongoObjectFactory.storeRaceLogEventEvent(object); } @Override public void visit(RaceLogStartProcedureChangedEvent event) { - DBObject object = mongoObjectFactory.storeRaceLogEntry(raceLogIdentifier, event); + Document object = mongoObjectFactory.storeRaceLogEntry(raceLogIdentifier, event); mongoObjectFactory.storeRaceLogEventEvent(object); } @Override public void visit(RaceLogProtestStartTimeEvent event) { - DBObject object = mongoObjectFactory.storeRaceLogEntry(raceLogIdentifier, event); + Document object = mongoObjectFactory.storeRaceLogEntry(raceLogIdentifier, event); mongoObjectFactory.storeRaceLogEventEvent(object); } @Override public void visit(RaceLogWindFixEvent event) { - DBObject object = mongoObjectFactory.storeRaceLogEntry(raceLogIdentifier, event); + Document object = mongoObjectFactory.storeRaceLogEntry(raceLogIdentifier, event); mongoObjectFactory.storeRaceLogEventEvent(object); } @Override public void visit(RaceLogDenoteForTrackingEvent event) { - DBObject object = mongoObjectFactory.storeRaceLogEntry(raceLogIdentifier, event); + Document object = mongoObjectFactory.storeRaceLogEntry(raceLogIdentifier, event); mongoObjectFactory.storeRaceLogEventEvent(object); } @Override public void visit(RaceLogStartTrackingEvent event) { - DBObject object = mongoObjectFactory.storeRaceLogEntry(raceLogIdentifier, event); + Document object = mongoObjectFactory.storeRaceLogEntry(raceLogIdentifier, event); mongoObjectFactory.storeRaceLogEventEvent(object); } @Override public void visit(RaceLogRevokeEvent event) { - DBObject object = mongoObjectFactory.storeRaceLogEntry(raceLogIdentifier, event); + Document object = mongoObjectFactory.storeRaceLogEntry(raceLogIdentifier, event); mongoObjectFactory.storeRaceLogEventEvent(object); } @Override public void visit(RaceLogRegisterCompetitorEvent event) { - DBObject object = mongoObjectFactory.storeRaceLogEntry(raceLogIdentifier, event); + Document object = mongoObjectFactory.storeRaceLogEntry(raceLogIdentifier, event); mongoObjectFactory.storeRaceLogEventEvent(object); } @Override public void visit(RaceLogAdditionalScoringInformationEvent event) { - DBObject object = mongoObjectFactory.storeRaceLogEntry(raceLogIdentifier, event); + Document object = mongoObjectFactory.storeRaceLogEntry(raceLogIdentifier, event); mongoObjectFactory.storeRaceLogEventEvent(object); } @Override public void visit(RaceLogFixedMarkPassingEvent event) { - DBObject object = mongoObjectFactory.storeRaceLogEntry(raceLogIdentifier, event); + Document object = mongoObjectFactory.storeRaceLogEntry(raceLogIdentifier, event); mongoObjectFactory.storeRaceLogEventEvent(object); } @Override public void visit(RaceLogSuppressedMarkPassingsEvent event) { - DBObject object = mongoObjectFactory.storeRaceLogEntry(raceLogIdentifier, event); + Document object = mongoObjectFactory.storeRaceLogEntry(raceLogIdentifier, event); mongoObjectFactory.storeRaceLogEventEvent(object); } @Override public void visit(RaceLogDependentStartTimeEvent event) { - DBObject object = mongoObjectFactory.storeRaceLogEntry(raceLogIdentifier, event); + Document object = mongoObjectFactory.storeRaceLogEntry(raceLogIdentifier, event); mongoObjectFactory.storeRaceLogEventEvent(object); } @Override public void visit(RaceLogStartOfTrackingEvent event) { - DBObject object = mongoObjectFactory.storeRaceLogEntry(raceLogIdentifier, event); + Document object = mongoObjectFactory.storeRaceLogEntry(raceLogIdentifier, event); mongoObjectFactory.storeRaceLogEventEvent(object); } @Override public void visit(RaceLogEndOfTrackingEvent event) { - DBObject object = mongoObjectFactory.storeRaceLogEntry(raceLogIdentifier, event); + Document object = mongoObjectFactory.storeRaceLogEntry(raceLogIdentifier, event); mongoObjectFactory.storeRaceLogEventEvent(object); } @Override public void visit(RaceLogUseCompetitorsFromRaceLogEvent event) { - DBObject object = mongoObjectFactory.storeRaceLogEntry(raceLogIdentifier, event); + Document object = mongoObjectFactory.storeRaceLogEntry(raceLogIdentifier, event); mongoObjectFactory.storeRaceLogEventEvent(object); } @Override public void visit(RaceLogTagEvent event) { - DBObject object = mongoObjectFactory.storeRaceLogEntry(raceLogIdentifier, event); + Document object = mongoObjectFactory.storeRaceLogEntry(raceLogIdentifier, event); mongoObjectFactory.storeRaceLogEventEvent(object); } } diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoWindListener.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoWindListener.java index e63ea0970a0..73ae4cf00a0 100755 --- a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoWindListener.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoWindListener.java @@ -1,8 +1,9 @@ package com.sap.sailing.domain.persistence.impl; -import com.mongodb.DB; -import com.mongodb.DBCollection; -import com.mongodb.DBObject; +import org.bson.Document; + +import com.mongodb.client.MongoCollection; +import com.mongodb.client.MongoDatabase; import com.sap.sailing.domain.common.Wind; import com.sap.sailing.domain.common.WindSource; import com.sap.sailing.domain.persistence.MongoObjectFactory; @@ -13,10 +14,10 @@ public class MongoWindListener implements com.sap.sailing.domain.tracking.WindLi private final String regattaName; private final WindSource windSource; private final MongoObjectFactoryImpl mongoObjectFactory; - private final DBCollection windTracksCollection; + private final MongoCollection windTracksCollection; public MongoWindListener(TrackedRace trackedRace, String regattaName, WindSource windSource, - MongoObjectFactory mongoObjectFactory, DB database) { + MongoObjectFactory mongoObjectFactory, MongoDatabase database) { super(); this.regattaName = regattaName; this.trackedRace = trackedRace; @@ -27,14 +28,14 @@ public class MongoWindListener implements com.sap.sailing.domain.tracking.WindLi @Override public void windDataReceived(Wind wind) { - DBObject windTrackEntry = mongoObjectFactory.storeWindTrackEntry(trackedRace.getRace(), regattaName, windSource, wind); - windTracksCollection.insert(windTrackEntry); + Document windTrackEntry = mongoObjectFactory.storeWindTrackEntry(trackedRace.getRace(), regattaName, windSource, wind); + windTracksCollection.insertOne(windTrackEntry); } @Override public void windDataRemoved(Wind wind) { - DBObject windTrackEntry = mongoObjectFactory.storeWindTrackEntry(trackedRace.getRace(), regattaName, windSource, wind); - windTracksCollection.remove(windTrackEntry); + Document windTrackEntry = mongoObjectFactory.storeWindTrackEntry(trackedRace.getRace(), regattaName, windSource, wind); + windTracksCollection.deleteOne(windTrackEntry); } @Override diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoWindStoreFactoryImpl.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoWindStoreFactoryImpl.java index 389128fc14a..d50e8bb2cd0 100755 --- a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoWindStoreFactoryImpl.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoWindStoreFactoryImpl.java @@ -2,17 +2,17 @@ package com.sap.sailing.domain.persistence.impl; import java.net.UnknownHostException; -import com.mongodb.DB; import com.mongodb.MongoException; +import com.mongodb.client.MongoDatabase; 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; + private final MongoDatabase db; - public MongoWindStoreFactoryImpl(DB db) { + public MongoWindStoreFactoryImpl(MongoDatabase db) { this.db = db; } @@ -21,7 +21,7 @@ public class MongoWindStoreFactoryImpl implements MongoWindStoreFactory { return new MongoWindStoreImpl(db, mongoObjectFactory, domainObjectFactory); } - public static MongoWindStoreFactory getInstance(DB db) { + public static MongoWindStoreFactory getInstance(MongoDatabase db) { return new MongoWindStoreFactoryImpl(db); } diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoWindStoreImpl.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoWindStoreImpl.java index 0d8d11676d8..e29a68d1914 100755 --- a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoWindStoreImpl.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoWindStoreImpl.java @@ -4,8 +4,8 @@ import java.net.UnknownHostException; import java.util.Map; import java.util.Map.Entry; -import com.mongodb.DB; import com.mongodb.MongoException; +import com.mongodb.client.MongoDatabase; import com.sap.sailing.domain.common.WindSource; import com.sap.sailing.domain.persistence.DomainObjectFactory; import com.sap.sailing.domain.persistence.MongoObjectFactory; @@ -23,11 +23,11 @@ import com.sap.sse.mongodb.MongoDBService; * */ public class MongoWindStoreImpl extends EmptyWindStore implements MongoWindStore { - private transient final DB db; + private transient final MongoDatabase db; private final MongoObjectFactory mongoObjectFactory; private final DomainObjectFactory domainObjectFactory; - public MongoWindStoreImpl(DB db, MongoObjectFactory mongoObjectFactory, DomainObjectFactory domainObjectFactory) + public MongoWindStoreImpl(MongoDatabase db, MongoObjectFactory mongoObjectFactory, DomainObjectFactory domainObjectFactory) throws UnknownHostException, MongoException { this.db = db; this.mongoObjectFactory = mongoObjectFactory; diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/media/impl/MediaDBImpl.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/media/impl/MediaDBImpl.java index f028c09b0fe..ff62c1b7305 100644 --- a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/media/impl/MediaDBImpl.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/media/impl/MediaDBImpl.java @@ -6,16 +6,16 @@ import java.util.HashSet; import java.util.List; import java.util.Set; +import org.bson.Document; import org.bson.types.ObjectId; import com.mongodb.BasicDBList; -import com.mongodb.BasicDBObject; -import com.mongodb.DB; -import com.mongodb.DBCollection; -import com.mongodb.DBCursor; -import com.mongodb.DBObject; import com.mongodb.DuplicateKeyException; +import com.mongodb.MongoWriteException; import com.mongodb.WriteConcern; +import com.mongodb.client.MongoCollection; +import com.mongodb.client.MongoCursor; +import com.mongodb.client.MongoDatabase; import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; import com.sap.sailing.domain.common.RegattaNameAndRaceName; import com.sap.sailing.domain.common.media.MediaTrack; @@ -37,13 +37,13 @@ public class MediaDBImpl implements MediaDB { private static final int SORT_ASCENDING = 1; private static final int SORT_DESSCENDING = -1; // private static Logger logger = Logger.getLogger(MediaDBImpl.class.getName()); - private final DB database; - private final BasicDBObject sortByStartTimeAndTitle; + private final MongoDatabase database; + private final Document sortByStartTimeAndTitle; - public MediaDBImpl(DB database) { + public MediaDBImpl(MongoDatabase database) { super(); this.database = database; - sortByStartTimeAndTitle = new BasicDBObject(); + sortByStartTimeAndTitle = new Document(); sortByStartTimeAndTitle.put(DbNames.Fields.STARTTIME.name(), SORT_DESSCENDING); sortByStartTimeAndTitle.put(DbNames.Fields.MEDIA_TITLE.name(), SORT_ASCENDING); } @@ -51,7 +51,7 @@ public class MediaDBImpl implements MediaDB { @Override public String insertMediaTrack(String title, String url, TimePoint startTime, Duration duration, MimeType mimeType, Set assignedRaces) { - BasicDBObject dbMediaTrack = new BasicDBObject(); + Document dbMediaTrack = new Document(); dbMediaTrack.put(DbNames.Fields.MEDIA_TITLE.name(), title); dbMediaTrack.put(DbNames.Fields.MEDIA_URL.name(), url); dbMediaTrack.put(DbNames.Fields.STARTTIME.name(), startTime == null ? null : startTime.asDate()); @@ -60,22 +60,22 @@ public class MediaDBImpl implements MediaDB { BasicDBList assignedRacesDb = new BasicDBList(); if (assignedRaces != null) { //safety check to support deserialized instances imported from legacy servers for (RegattaAndRaceIdentifier assignedRace : assignedRaces) { - BasicDBObject object = new BasicDBObject(); + Document object = new Document(); object.put(DbNames.Fields.REGATTA_NAME.name(), assignedRace.getRegattaName()); object.put(DbNames.Fields.RACE_NAME.name(), assignedRace.getRaceName()); assignedRacesDb.add(object); } } dbMediaTrack.put(DbNames.Fields.ASSIGNED_RACES.name(), assignedRacesDb); - DBCollection dbVideos = getVideoCollection(); - dbVideos.insert(dbMediaTrack); + MongoCollection dbVideos = getVideoCollection(); + dbVideos.insertOne(dbMediaTrack); return ((ObjectId) dbMediaTrack.get(DbNames.Fields._id.name())).toHexString(); } @Override public void insertMediaTrackWithId(String dbId, String title, String url, TimePoint startTime, Duration duration, MimeType mimeType, Set assignedRaces) { - BasicDBObject dbMediaTrack = new BasicDBObject(); + Document dbMediaTrack = new Document(); dbMediaTrack.put(DbNames.Fields._id.name(), new ObjectId(dbId)); dbMediaTrack.put(DbNames.Fields.MEDIA_TITLE.name(), title); dbMediaTrack.put(DbNames.Fields.MEDIA_URL.name(), url); @@ -85,27 +85,26 @@ public class MediaDBImpl implements MediaDB { BasicDBList assignedRacesDb = new BasicDBList(); if (assignedRaces != null) { //safety check to support deserialized instances imported from legacy servers for (RegattaAndRaceIdentifier assignedRace : assignedRaces) { - BasicDBObject object = new BasicDBObject(); + Document object = new Document(); object.put(DbNames.Fields.REGATTA_NAME.name(), assignedRace.getRegattaName()); object.put(DbNames.Fields.RACE_NAME.name(), assignedRace.getRaceName()); assignedRacesDb.add(object); } } dbMediaTrack.put(DbNames.Fields.ASSIGNED_RACES.name(), assignedRacesDb); - DBCollection dbVideos = getVideoCollection(); + MongoCollection dbVideos = getVideoCollection(); try { - dbVideos.insert(dbMediaTrack); - } catch (DuplicateKeyException e) { + dbVideos.insertOne(dbMediaTrack); + } catch (DuplicateKeyException | MongoWriteException e) { throw new IllegalArgumentException("Duplicate key '" + dbId + "' caused an error when importing media (title: '" + title + "')", e); } } - private DBCollection getVideoCollection() { + private MongoCollection getVideoCollection() { try { - DBCollection dbVideos = database.getCollection(DbNames.Collections.VIDEOS.name()); - dbVideos.setWriteConcern(WriteConcern.FSYNC_SAFE); - dbVideos.createIndex(new BasicDBObject(DbNames.Collections.VIDEOS.name(), 1)); + MongoCollection dbVideos = database.getCollection(DbNames.Collections.VIDEOS.name()); + dbVideos.withWriteConcern(WriteConcern.JOURNALED).createIndex(new Document(DbNames.Collections.VIDEOS.name(), 1)); return dbVideos; } catch (NullPointerException e) { // sometimes, for reasons yet to be clarified, ensuring an index on the name field causes an NPE @@ -113,7 +112,7 @@ public class MediaDBImpl implements MediaDB { } } - private MediaTrack createMediaTrackFromDb(DBObject dbObject) { + private MediaTrack createMediaTrackFromDb(Document dbObject) { String dbId = ((ObjectId) dbObject.get(DbNames.Fields._id.name())).toHexString(); String title = (String) dbObject.get(DbNames.Fields.MEDIA_TITLE.name()); String url = (String) dbObject.get(DbNames.Fields.MEDIA_URL.name()); @@ -122,10 +121,10 @@ public class MediaDBImpl implements MediaDB { String mimeTypeText = (String) dbObject.get(DbNames.Fields.MIME_TYPE.name()); MimeType mimeType = MimeType.byName(mimeTypeText); Set assignedRaces = new HashSet(); - BasicDBList assignedRacesDb = (BasicDBList) dbObject.get(DbNames.Fields.ASSIGNED_RACES.name()); + Iterable assignedRacesDb = (Iterable) dbObject.get(DbNames.Fields.ASSIGNED_RACES.name()); if (assignedRacesDb != null) { //safety check to support legacy instances for (Object assignedRace : assignedRacesDb) { - BasicDBObject object = (BasicDBObject) assignedRace; + Document object = (Document) assignedRace; String regattaName = (String) object.get(DbNames.Fields.REGATTA_NAME.name()); String raceName = (String) object.get(DbNames.Fields.RACE_NAME.name()); if (regattaName != null && raceName != null) { @@ -141,8 +140,8 @@ public class MediaDBImpl implements MediaDB { @Override public List loadAllMediaTracks() { - DBCursor cursor = getVideoCollection().find().sort(sortByStartTimeAndTitle); - List result = new ArrayList<>(cursor.count()); + MongoCursor cursor = getVideoCollection().find().sort(sortByStartTimeAndTitle).iterator(); + List result = new ArrayList<>((int) getVideoCollection().count()); while (cursor.hasNext()) { result.add(createMediaTrackFromDb(cursor.next())); } @@ -151,75 +150,65 @@ public class MediaDBImpl implements MediaDB { @Override public void deleteMediaTrack(String dbId) { - BasicDBObject dbObject = new BasicDBObject(); + Document dbObject = new Document(); dbObject.put(DbNames.Fields._id.name(), new ObjectId(dbId)); - getVideoCollection().remove(dbObject); + getVideoCollection().deleteOne(dbObject); } @Override public void updateTitle(String dbId, String title) { - BasicDBObject updateQuery = new BasicDBObject(); + Document updateQuery = new Document(); updateQuery.append(DbNames.Fields._id.name(), new ObjectId(dbId)); - - BasicDBObject updateCommand = new BasicDBObject(); - updateCommand.append("$set", new BasicDBObject(DbNames.Fields.MEDIA_TITLE.name(), title)); - - getVideoCollection().update(updateQuery, updateCommand); + Document updateCommand = new Document(); + updateCommand.append("$set", new Document(DbNames.Fields.MEDIA_TITLE.name(), title)); + getVideoCollection().updateOne(updateQuery, updateCommand); } @Override public void updateUrl(String dbId, String url) { - BasicDBObject updateQuery = new BasicDBObject(); + Document updateQuery = new Document(); updateQuery.append(DbNames.Fields._id.name(), new ObjectId(dbId)); - - BasicDBObject updateCommand = new BasicDBObject(); - updateCommand.append("$set", new BasicDBObject(DbNames.Fields.MEDIA_URL.name(), url)); - - getVideoCollection().update(updateQuery, updateCommand); + Document updateCommand = new Document(); + updateCommand.append("$set", new Document(DbNames.Fields.MEDIA_URL.name(), url)); + getVideoCollection().updateOne(updateQuery, updateCommand); } @Override public void updateStartTime(String dbId, TimePoint startTime) { - BasicDBObject updateQuery = new BasicDBObject(); + Document updateQuery = new Document(); updateQuery.append(DbNames.Fields._id.name(), new ObjectId(dbId)); - - BasicDBObject updateCommand = new BasicDBObject(); - updateCommand.append("$set", new BasicDBObject(DbNames.Fields.STARTTIME.name(), startTime == null ? null + Document updateCommand = new Document(); + updateCommand.append("$set", new Document(DbNames.Fields.STARTTIME.name(), startTime == null ? null : startTime.asDate())); - - getVideoCollection().update(updateQuery, updateCommand); + getVideoCollection().updateOne(updateQuery, updateCommand); } @Override public void updateDuration(String dbId, Duration duration) { - BasicDBObject updateQuery = new BasicDBObject(); + Document updateQuery = new Document(); updateQuery.append(DbNames.Fields._id.name(), new ObjectId(dbId)); - - BasicDBObject updateCommand = new BasicDBObject(); - updateCommand.append("$set", new BasicDBObject(DbNames.Fields.DURATION_IN_MILLIS.name(), + Document updateCommand = new Document(); + updateCommand.append("$set", new Document(DbNames.Fields.DURATION_IN_MILLIS.name(), duration == null ? null : duration.asMillis())); - - getVideoCollection().update(updateQuery, updateCommand); + getVideoCollection().updateOne(updateQuery, updateCommand); } @Override public void updateRace(String dbId, Set assignedRaces) { - BasicDBObject updateQuery = new BasicDBObject(); + Document updateQuery = new Document(); updateQuery.append(DbNames.Fields._id.name(), new ObjectId(dbId)); - BasicDBList assignedRacesDb = new BasicDBList(); if (assignedRaces != null) { //safety check to support deserialized instances imported from legacy servers for (RegattaAndRaceIdentifier assignedRace : assignedRaces) { - BasicDBObject object = new BasicDBObject(); + Document object = new Document(); object.put(DbNames.Fields.REGATTA_NAME.name(), assignedRace.getRegattaName()); object.put(DbNames.Fields.RACE_NAME.name(), assignedRace.getRaceName()); assignedRacesDb.add(object); } } - BasicDBObject updateCommand = new BasicDBObject(); - updateCommand.append("$set", new BasicDBObject(DbNames.Fields.ASSIGNED_RACES.name(), assignedRacesDb)); - - getVideoCollection().update(updateQuery, updateCommand); + Document updateCommand = new Document(); + updateCommand.append("$set", new Document(DbNames.Fields.ASSIGNED_RACES.name(), assignedRacesDb)); + getVideoCollection().updateOne(updateQuery, updateCommand); } } diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/racelog/tracking/FixMongoHandler.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/racelog/tracking/FixMongoHandler.java index 7bee0ccc6cc..975aa325e18 100644 --- a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/racelog/tracking/FixMongoHandler.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/racelog/tracking/FixMongoHandler.java @@ -1,6 +1,7 @@ package com.sap.sailing.domain.persistence.racelog.tracking; -import com.mongodb.DBObject; +import org.bson.Document; + import com.sap.sailing.domain.common.racelog.tracking.TransformationHandler; import com.sap.sse.common.Timed; @@ -11,5 +12,5 @@ import com.sap.sse.common.Timed; * * @author Fredrik Teschke */ -public interface FixMongoHandler extends TransformationHandler { +public interface FixMongoHandler extends TransformationHandler { } diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/racelog/tracking/impl/DoubleVectorFixMongoHandlerImpl.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/racelog/tracking/impl/DoubleVectorFixMongoHandlerImpl.java index 7d4043b0e56..f2d9aaf409c 100644 --- a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/racelog/tracking/impl/DoubleVectorFixMongoHandlerImpl.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/racelog/tracking/impl/DoubleVectorFixMongoHandlerImpl.java @@ -2,9 +2,10 @@ package com.sap.sailing.domain.persistence.racelog.tracking.impl; import java.util.List; -import com.mongodb.BasicDBList; -import com.mongodb.BasicDBObject; -import com.mongodb.DBObject; +import org.bson.BsonArray; +import org.bson.BsonDouble; +import org.bson.Document; + import com.sap.sailing.domain.common.tracking.DoubleVectorFix; import com.sap.sailing.domain.common.tracking.impl.DoubleVectorFixImpl; import com.sap.sailing.domain.persistence.DomainObjectFactory; @@ -25,28 +26,28 @@ public class DoubleVectorFixMongoHandlerImpl implements FixMongoHandler dbValues = (List) dbObject; Double[] result = new Double[dbValues.size()]; diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/racelog/tracking/impl/GPSFixMongoHandlerImpl.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/racelog/tracking/impl/GPSFixMongoHandlerImpl.java index 53db29c7260..2b44cb2f11f 100644 --- a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/racelog/tracking/impl/GPSFixMongoHandlerImpl.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/racelog/tracking/impl/GPSFixMongoHandlerImpl.java @@ -1,7 +1,7 @@ package com.sap.sailing.domain.persistence.racelog.tracking.impl; -import com.mongodb.BasicDBObject; -import com.mongodb.DBObject; +import org.bson.Document; + import com.sap.sailing.domain.common.Position; import com.sap.sailing.domain.common.tracking.GPSFix; import com.sap.sailing.domain.common.tracking.impl.GPSFixImpl; @@ -22,16 +22,16 @@ public class GPSFixMongoHandlerImpl implements FixMongoHandler { } @Override - public DBObject transformForth(GPSFix fix) throws IllegalArgumentException { - DBObject result = new BasicDBObject(); + public Document transformForth(GPSFix fix) throws IllegalArgumentException { + Document result = new Document(); mof.storeTimed(fix, result); mof.storePositioned(fix, result); return result; } @Override - public GPSFix transformBack(DBObject object) { - DBObject dbObject = (DBObject) object; + public GPSFix transformBack(Document object) { + Document dbObject = (Document) object; TimePoint timePoint = dof.loadTimePoint(dbObject); Position position = dof.loadPosition(dbObject); return new GPSFixImpl(position, timePoint); diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/racelog/tracking/impl/GPSFixMovingMongoHandlerImpl.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/racelog/tracking/impl/GPSFixMovingMongoHandlerImpl.java index b462dd32ac4..3b449706243 100644 --- a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/racelog/tracking/impl/GPSFixMovingMongoHandlerImpl.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/racelog/tracking/impl/GPSFixMovingMongoHandlerImpl.java @@ -1,7 +1,7 @@ package com.sap.sailing.domain.persistence.racelog.tracking.impl; -import com.mongodb.BasicDBObject; -import com.mongodb.DBObject; +import org.bson.Document; + import com.sap.sailing.domain.common.Position; import com.sap.sailing.domain.common.SpeedWithBearing; import com.sap.sailing.domain.common.tracking.GPSFixMoving; @@ -23,8 +23,8 @@ public class GPSFixMovingMongoHandlerImpl implements FixMongoHandler> fixServiceFinder; private final TypeBasedServiceFinder deviceServiceFinder; - private final DBCollection fixesCollection; - private final DBCollection metadataCollection; + private final MongoCollection fixesCollection; + private final MongoCollection metadataCollection; private final MongoObjectFactoryImpl mongoOF; /** * Lock object to be used when accessing {@link #listeners}. @@ -85,10 +87,10 @@ public class MongoSensorFixStoreImpl implements MongoSensorFixStore { return (TypeBasedServiceFinder) serviceFinderFactory.createServiceFinder(FixMongoHandler.class); } - private T loadFix(DBObject object) + private T loadFix(Document object) throws TransformationException, NoCorrespondingServiceRegisteredException { String type = (String) object.get(FieldNames.GPSFIX_TYPE.name()); - DBObject fixObject = (DBObject) object.get(FieldNames.GPSFIX.name()); + Document fixObject = (Document) object.get(FieldNames.GPSFIX.name()); return this. findService(type).transformBack(fixObject); } @@ -128,19 +130,18 @@ public class MongoSensorFixStoreImpl implements MongoSensorFixStore { final TimePoint loadFixesFrom = from == null ? TimePoint.BeginningOfTime : from; final TimePoint loadFixesTo = to == null ? TimePoint.EndOfTime : to; - DBObject dbDeviceId = storeDeviceId(deviceServiceFinder, device); - final QueryBuilder queryBuilder = QueryBuilder.start(FieldNames.DEVICE_ID.name()).is(dbDeviceId) - .and(FieldNames.TIME_AS_MILLIS.name()); + Document dbDeviceId = storeDeviceId(deviceServiceFinder, device); + final List filters = new ArrayList<>(); + filters.add(Filters.eq(FieldNames.DEVICE_ID.name(), dbDeviceId)); + filters.add(Filters.gte(FieldNames.TIME_AS_MILLIS.name(), loadFixesFrom.asMillis())); if (inclusive) { - queryBuilder.greaterThanEquals(loadFixesFrom.asMillis()).and(FieldNames.TIME_AS_MILLIS.name()) - .lessThanEquals(loadFixesTo.asMillis()); + filters.add(Filters.lte(FieldNames.TIME_AS_MILLIS.name(), loadFixesTo.asMillis())); } else { - queryBuilder.greaterThanEquals(loadFixesFrom.asMillis()).and(FieldNames.TIME_AS_MILLIS.name()) - .lessThan(loadFixesTo.asMillis()); + filters.add(Filters.lt(FieldNames.TIME_AS_MILLIS.name(), loadFixesTo.asMillis())); } - DBObject query = queryBuilder.get(); - DBCursor result = fixesCollection.find(query); - result.sort(new BasicDBObject(FieldNames.TIME_AS_MILLIS.name(), ascending ? 1 : -1)); + Bson query = Filters.and(filters); + FindIterable result = fixesCollection.find(query); + result.sort(new Document(FieldNames.TIME_AS_MILLIS.name(), ascending ? 1 : -1)); if (onlyOneResult) { result.limit(1); } @@ -151,7 +152,7 @@ public class MongoSensorFixStoreImpl implements MongoSensorFixStore { TimePoint nextProgressUpdateAt = ascending ? loadFixesFrom.plus(minimumDurationBetweenProgressUpdates) : loadFixesTo.minus(minimumDurationBetweenProgressUpdates); - for (DBObject fixObject : result) { + for (Document fixObject : result) { try { FixT fix = loadFix(fixObject); consumer.accept(fix); @@ -176,8 +177,8 @@ public class MongoSensorFixStoreImpl implements MongoSensorFixStore { "Unexpected fix type (" + type + ") encountered when trying to load track for " + device); } } - progressConsumer.accept(1d); + return fixLoaded; } @@ -192,7 +193,7 @@ public class MongoSensorFixStoreImpl implements MongoSensorFixStore { try { final Object dbDeviceId = storeDeviceId(deviceServiceFinder, device); final int nrOfTotalFixes = Util.size(fixes); - final ArrayList dbFixes = new ArrayList<>(nrOfTotalFixes); + final ArrayList dbFixes = new ArrayList<>(nrOfTotalFixes); TimePoint newFrom = null; TimePoint newTo = null; @@ -200,8 +201,8 @@ public class MongoSensorFixStoreImpl implements MongoSensorFixStore { String type = fix.getClass().getName(); FixMongoHandler mongoHandler = findService(type); Object fixObject = mongoHandler.transformForth(fix); - DBObject entry = new BasicDBObjectBuilder().add(FieldNames.DEVICE_ID.name(), dbDeviceId) - .add(FieldNames.GPSFIX_TYPE.name(), type).add(FieldNames.GPSFIX.name(), fixObject).get(); + Document entry = new Document().append(FieldNames.DEVICE_ID.name(), dbDeviceId) + .append(FieldNames.GPSFIX_TYPE.name(), type).append(FieldNames.GPSFIX.name(), fixObject); mongoOF.storeTimed(fix, entry); dbFixes.add(entry); TimePoint fixTP = fix.getTimePoint(); @@ -212,9 +213,9 @@ public class MongoSensorFixStoreImpl implements MongoSensorFixStore { newTo = fixTP; } } - fixesCollection.insert(dbFixes); - final BasicDBObject updateOperation = new BasicDBObject(); - final BasicDBObject newMetadata = new BasicDBObject(); + fixesCollection.insertMany(dbFixes); + final Document updateOperation = new Document(); + final Document newMetadata = new Document(); newMetadata.put(FieldNames.DEVICE_ID.name(), dbDeviceId); TimeRange oldTimeRange = getTimeRangeCoveredByFixes(device); @@ -226,9 +227,8 @@ public class MongoSensorFixStoreImpl implements MongoSensorFixStore { storeTimeRange(newTimeRange, newMetadata, FieldNames.TIMERANGE); updateOperation.append("$set", newMetadata); - updateOperation.append("$inc", new BasicDBObject(FieldNames.NUM_FIXES.name(), nrOfTotalFixes)); - metadataCollection.update(getDeviceQuery(device), updateOperation, /* create if not existent */ true, - /* update multiple */ false); + updateOperation.append("$inc", new Document(FieldNames.NUM_FIXES.name(), nrOfTotalFixes)); + metadataCollection.updateOne(getDeviceQuery(device), updateOperation, new UpdateOptions().upsert(true)); } catch (TransformationException e) { logger.log(Level.WARNING, "Could not store fix in MongoDB"); e.printStackTrace(); @@ -276,24 +276,24 @@ public class MongoSensorFixStoreImpl implements MongoSensorFixStore { LockUtil.executeWithWriteLock(listenersLock, () -> Util.removeFromValueSet(listeners, device, listener)); } - private DBObject getDeviceQuery(DeviceIdentifier device) + private Bson getDeviceQuery(DeviceIdentifier device) throws TransformationException, NoCorrespondingServiceRegisteredException { - Object dbDeviceId = storeDeviceId(deviceServiceFinder, device); - DBObject query = QueryBuilder.start(FieldNames.DEVICE_ID.name()).is(dbDeviceId).get(); + Document dbDeviceId = storeDeviceId(deviceServiceFinder, device); + Bson query = Filters.eq(FieldNames.DEVICE_ID.name(), dbDeviceId); return query; } - private DBObject findMetadataObject(DeviceIdentifier device) + private Document findMetadataObject(DeviceIdentifier device) throws TransformationException, NoCorrespondingServiceRegisteredException { - DBObject query = getDeviceQuery(device); - DBObject result = metadataCollection.findOne(query); + Bson query = getDeviceQuery(device); + Document result = metadataCollection.find(query).first(); return result; } @Override public TimeRange getTimeRangeCoveredByFixes(DeviceIdentifier device) throws TransformationException, NoCorrespondingServiceRegisteredException { - DBObject result = findMetadataObject(device); + Document result = findMetadataObject(device); if (result == null) { return null; } @@ -303,7 +303,7 @@ public class MongoSensorFixStoreImpl implements MongoSensorFixStore { @Override public long getNumberOfFixes(DeviceIdentifier device) throws TransformationException, NoCorrespondingServiceRegisteredException { - DBObject result = findMetadataObject(device); + Document result = findMetadataObject(device); if (result == null) { return 0; } @@ -334,12 +334,12 @@ public class MongoSensorFixStoreImpl implements MongoSensorFixStore { throws TransformationException, NoCorrespondingServiceRegisteredException { Map result = new HashMap<>(); for (final DeviceIdentifier deviceIdentifier : forDevices) { - final DBObject deviceQuery = getDeviceQuery(deviceIdentifier); - final DBObject orderBy = new BasicDBObject( + final Bson deviceQuery = getDeviceQuery(deviceIdentifier); + final Document orderBy = new Document( FieldNames.GPSFIX.name() + "." + FieldNames.TIME_AS_MILLIS.name(), -1); - DBCursor lastFixForDeviceCursor = fixesCollection.find(deviceQuery).sort(orderBy).limit(1); - if (lastFixForDeviceCursor.hasNext()) { - final DBObject lastFixForDeviceDbObject = lastFixForDeviceCursor.next(); + FindIterable lastFixForDeviceCursor = fixesCollection.find(deviceQuery).sort(orderBy).limit(1); + if (lastFixForDeviceCursor.iterator().hasNext()) { + final Document lastFixForDeviceDbObject = lastFixForDeviceCursor.iterator().next(); final Timed lastFixForDevice = loadFix(lastFixForDeviceDbObject); @SuppressWarnings("unchecked") final FixT lastFixForDeviceTyped = (FixT) lastFixForDevice; diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.test/META-INF/MANIFEST.MF b/java/com.sap.sailing.domain.racelogtrackingadapter.test/META-INF/MANIFEST.MF index 0921b8acdcf..aa428903b2f 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter.test/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.domain.racelogtrackingadapter.test/META-INF/MANIFEST.MF @@ -11,7 +11,6 @@ Require-Bundle: org.junit;bundle-version="4.8.2", org.mockito.mockito-core;bundle-version="1.9.5", org.objenesis;bundle-version="1.3.0", org.hamcrest;bundle-version="1.1.0", - org.mongodb.mongo-java-driver;bundle-version="2.13.0", com.sap.sse.common Import-Package: com.sap.sailing.domain.abstractlog.regatta.events, com.sap.sailing.domain.base, @@ -19,6 +18,7 @@ Import-Package: com.sap.sailing.domain.abstractlog.regatta.events, com.sap.sailing.domain.persistence.racelog.tracking.impl, com.sap.sailing.domain.tractracadapter, com.sap.sailing.server.impl, + com.sap.sailing.server.util, com.sap.sse.concurrent, javax.servlet.http;version="2.5.0" Automatic-Module-Name: com.sap.sailing.domain.racelogtrackingadapter.test diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/AbstractGPSFixStoreTest.java b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/AbstractGPSFixStoreTest.java index dde19c0bcce..0d9a7b62534 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/AbstractGPSFixStoreTest.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/AbstractGPSFixStoreTest.java @@ -1,7 +1,7 @@ package com.sap.sailing.domain.racelogtracking.test; import static com.sap.sse.common.Util.size; -import static junit.framework.Assert.assertEquals; +import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.mock; import java.util.Collections; @@ -47,9 +47,9 @@ import com.sap.sailing.domain.tracking.Track; import com.sap.sailing.domain.tracking.impl.DynamicTrackedRaceImpl; import com.sap.sailing.domain.tracking.impl.DynamicTrackedRegattaImpl; import com.sap.sailing.domain.tracking.impl.EmptyWindStore; -import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.gateway.deserialization.impl.DeviceAndSessionIdentifierWithGPSFixesDeserializer; import com.sap.sailing.server.impl.RacingEventServiceImpl; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.common.impl.DegreeBearingImpl; import com.sap.sse.common.impl.MillisecondsTimePoint; diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/RevokeDeviceMappingsWithMarkDefinitionTest.java b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/RevokeDeviceMappingsWithMarkDefinitionTest.java index 7d469f2cf59..de267726bb3 100755 --- a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/RevokeDeviceMappingsWithMarkDefinitionTest.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/RevokeDeviceMappingsWithMarkDefinitionTest.java @@ -18,7 +18,7 @@ import com.sap.sailing.domain.base.impl.MarkImpl; import com.sap.sailing.domain.racelogtracking.PingDeviceIdentifierImpl; import com.sap.sse.common.impl.MillisecondsTimePoint; -import junit.framework.Assert; +import org.junit.Assert; public class RevokeDeviceMappingsWithMarkDefinitionTest { private RegattaLog regattaLog; diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/CreateAndTrackWithRaceLogTest.java b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/CreateAndTrackWithRaceLogTest.java index d4b372e0fb3..a05ffc2b0d2 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/CreateAndTrackWithRaceLogTest.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/CreateAndTrackWithRaceLogTest.java @@ -1,7 +1,7 @@ package com.sap.sailing.domain.racelogtracking.test.impl; import static com.sap.sse.common.Util.size; -import static junit.framework.Assert.assertNotNull; +import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; @@ -67,8 +67,8 @@ import com.sap.sailing.domain.tracking.Track; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.domain.tracking.RaceTrackingHandler.DefaultRaceTrackingHandler; import com.sap.sailing.domain.tracking.impl.AbstractRaceChangeListener; -import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.impl.RacingEventServiceImpl; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sailing.server.util.WaitForTrackedRaceUtil; import com.sap.sse.common.NoCorrespondingServiceRegisteredException; import com.sap.sse.common.TimePoint; @@ -88,13 +88,13 @@ public class CreateAndTrackWithRaceLogTest extends RaceLogTrackingTestHelper { private long time = 0; @Rule - public Timeout CreateAndTrackWithRaceLogTestTimeout = new Timeout(3 * 60 * 1000); + public Timeout CreateAndTrackWithRaceLogTestTimeout = Timeout.millis(3 * 60 * 1000); @Before public void setup() { service = new RacingEventServiceImpl(/* clearPersistentCompetitorStore */ true, new MockSmartphoneImeiServiceFinderFactory(), /* restoreTrackedRaces */ false); sensorFixStore = service.getSensorFixStore(); - service.getMongoObjectFactory().getDatabase().dropDatabase(); + service.getMongoObjectFactory().getDatabase().drop(); author = service.getServerAuthor(); Series series = new SeriesImpl("series", /* isMedal */ false, /* isFleetsCanRunInParallel */ true, Collections.singletonList(fleet), Collections.emptySet(), service); diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/DeviceMappingsAndSensorFixStoreLockingTest.java b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/DeviceMappingsAndSensorFixStoreLockingTest.java index 5f1ca09fef7..e1e79126502 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/DeviceMappingsAndSensorFixStoreLockingTest.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/DeviceMappingsAndSensorFixStoreLockingTest.java @@ -27,7 +27,7 @@ import com.sap.sse.common.impl.MillisecondsTimePoint; public class DeviceMappingsAndSensorFixStoreLockingTest extends AbstractGPSFixStoreTest { @Rule - public Timeout GPSFixStoreListenerTestTimeout = new Timeout(3 * 1000); + public Timeout GPSFixStoreListenerTestTimeout = Timeout.millis(3 * 1000); @Test public void deviceMappingsAndSensorFixStoreShouldNotCauseADeadlock() { diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/GPSFixStoreListenerTest.java b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/GPSFixStoreListenerTest.java index b9ade730b71..c7664c4c306 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/GPSFixStoreListenerTest.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/GPSFixStoreListenerTest.java @@ -18,7 +18,7 @@ import com.sap.sailing.domain.racelogtracking.test.AbstractGPSFixStoreTest; public class GPSFixStoreListenerTest extends AbstractGPSFixStoreTest { @Rule - public Timeout GPSFixStoreListenerTestTimeout = new Timeout(3 * 1000); + public Timeout GPSFixStoreListenerTestTimeout = Timeout.millis(3 * 1000); /** * {@link MongoSensorFixStoreImpl} had broken synchronization of the listeners collection (add/removeListener diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/SensorFixStoreAndLoadTest.java b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/SensorFixStoreAndLoadTest.java index cd819d2d9bc..2e70f38a14c 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/SensorFixStoreAndLoadTest.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/SensorFixStoreAndLoadTest.java @@ -1,10 +1,10 @@ package com.sap.sailing.domain.racelogtracking.test.impl; import static com.sap.sse.common.Util.size; -import static junit.framework.Assert.assertEquals; -import static junit.framework.Assert.assertNotNull; -import static junit.framework.Assert.assertNull; -import static junit.framework.Assert.assertTrue; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.mock; import java.io.Serializable; @@ -23,8 +23,8 @@ import org.junit.After; import org.junit.Before; import org.junit.Test; -import com.mongodb.DB; import com.mongodb.MongoException; +import com.mongodb.client.MongoDatabase; import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor; import com.sap.sailing.domain.abstractlog.impl.LogEventAuthorImpl; import com.sap.sailing.domain.abstractlog.race.RaceLog; @@ -176,7 +176,7 @@ public class SensorFixStoreAndLoadTest { } private void dropPersistedData() { - DB db = PersistenceFactory.INSTANCE.getDefaultMongoObjectFactory().getDatabase(); + MongoDatabase db = PersistenceFactory.INSTANCE.getDefaultMongoObjectFactory().getDatabase(); db.getCollection(CollectionNames.GPS_FIXES.name()).drop(); db.getCollection(CollectionNames.GPS_FIXES_METADATA.name()).drop(); db.getCollection(CollectionNames.REGATTA_LOGS.name()).drop(); @@ -413,7 +413,7 @@ public class SensorFixStoreAndLoadTest { bravoFixTrack.getFirstFixAtOrAfter(new MillisecondsTimePoint(FIX_TIMESTAMP3)).getRideHeight()); TestFixTrackImpl testFixTrack = trackedRace.getSensorTrack(comp, TestFixTrackImpl.TRACK_NAME); assertEquals(FIX_TEST_VALUE, - testFixTrack.getFirstFixAtOrAfter(new MillisecondsTimePoint(FIX_TIMESTAMP)).getTestValue()); + testFixTrack.getFirstFixAtOrAfter(new MillisecondsTimePoint(FIX_TIMESTAMP)).getTestValue(), 0.0000001); fixLoaderAndTracker.stop(true, /* willBeRemoved */ false); } diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/SensorFixStoreTest.java b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/SensorFixStoreTest.java index 8f3adf0ac6d..7b522b7a551 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/SensorFixStoreTest.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/SensorFixStoreTest.java @@ -12,8 +12,8 @@ import org.junit.Before; import org.junit.Test; import org.mockito.Mockito; -import com.mongodb.DB; import com.mongodb.MongoException; +import com.mongodb.client.MongoDatabase; import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.impl.DegreePosition; import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl; @@ -36,7 +36,7 @@ import com.sap.sse.common.impl.DegreeBearingImpl; import com.sap.sse.common.impl.MillisecondsTimePoint; import com.sap.sse.common.impl.TimeRangeImpl; -import junit.framework.Assert; +import org.junit.Assert; public class SensorFixStoreTest { private static final long FIX_TIMESTAMP = 110; @@ -71,7 +71,7 @@ public class SensorFixStoreTest { } private void dropPersistedData() { - DB db = PersistenceFactory.INSTANCE.getDefaultMongoObjectFactory().getDatabase(); + MongoDatabase db = PersistenceFactory.INSTANCE.getDefaultMongoObjectFactory().getDatabase(); db.getCollection(CollectionNames.GPS_FIXES.name()).drop(); db.getCollection(CollectionNames.GPS_FIXES_METADATA.name()).drop(); } diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/TrackedRaceLoadsFixesTest.java b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/TrackedRaceLoadsFixesTest.java index 0aae191aa2c..e280357f09b 100755 --- a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/TrackedRaceLoadsFixesTest.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/TrackedRaceLoadsFixesTest.java @@ -1,6 +1,6 @@ package com.sap.sailing.domain.racelogtracking.test.impl; -import static junit.framework.Assert.assertEquals; +import static org.junit.Assert.assertEquals; import java.net.UnknownHostException; import java.util.Arrays; @@ -66,7 +66,7 @@ public class TrackedRaceLoadsFixesTest extends AbstractGPSFixStoreTest { } @Rule - public Timeout TrackedRaceLoadsFixesTestTimeout = new Timeout(3 * 60 * 1000); + public Timeout TrackedRaceLoadsFixesTestTimeout = Timeout.millis(3 * 60 * 1000); @Test public void doesRaceLoadOnlyBetweenStartAndEndOfTracking() throws TransformationException, diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.testsupport/META-INF/MANIFEST.MF b/java/com.sap.sailing.domain.racelogtrackingadapter.testsupport/META-INF/MANIFEST.MF index ebfb548becc..81dbe9152d3 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter.testsupport/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.domain.racelogtrackingadapter.testsupport/META-INF/MANIFEST.MF @@ -8,7 +8,6 @@ Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Require-Bundle: com.sap.sailing.domain.shared.android, com.sap.sailing.domain, com.sap.sailing.domain.common, - org.mongodb.mongo-java-driver;bundle-version="2.13.0", com.sap.sailing.domain.persistence, com.sap.sailing.domain.racelogtrackingadapter, com.sap.sailing.server.gateway.serialization;bundle-version="1.0.0", @@ -17,6 +16,7 @@ Require-Bundle: com.sap.sailing.domain.shared.android, org.hamcrest;bundle-version="1.1.0", org.junit;bundle-version="4.8.2", com.sap.sse.common, - com.sap.sailing.server.gateway.serialization.shared.android + com.sap.sailing.server.gateway.serialization.shared.android, + org.eclipse.orbit.mongodb;bundle-version="3.2.2" Export-Package: com.sap.sailing.domain.racelog.tracking.test.mock Automatic-Module-Name: com.sap.sailing.domain.racelogtrackingadapter.testsupport diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter/META-INF/MANIFEST.MF b/java/com.sap.sailing.domain.racelogtrackingadapter/META-INF/MANIFEST.MF index 9c6588256cc..817a281a6aa 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.domain.racelogtrackingadapter/META-INF/MANIFEST.MF @@ -11,15 +11,15 @@ Require-Bundle: com.sap.sailing.domain, com.sap.sailing.domain.shared.android, com.sap.sailing.server.gateway.serialization, com.sap.sailing.domain.persistence, - com.sap.sailing.server, + com.sap.sailing.server.interface, com.googlecode.java-diff-utils;bundle-version="1.3.0", - org.mongodb.mongo-java-driver;bundle-version="2.13.0", com.sap.sse.common, - com.sap.sse.replication, + com.sap.sse.replication.interfaces, com.sap.sse.security.common, com.sap.sse, com.sap.sailing.server.gateway.serialization.shared.android, - com.sap.sse.mail + com.sap.sse.mail, + org.eclipse.orbit.mongodb;bundle-version="3.2.2" Import-Package: com.google.zxing;version="3.1.0", com.mongodb, com.sap.sse.concurrent, diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/RaceLogTrackingAdapter.java b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/RaceLogTrackingAdapter.java index 96d32f50c52..edad8cbdaa1 100755 --- a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/RaceLogTrackingAdapter.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/RaceLogTrackingAdapter.java @@ -25,7 +25,7 @@ import com.sap.sailing.domain.racelogtracking.impl.RaceLogRaceTracker; import com.sap.sailing.domain.tracking.RaceHandle; import com.sap.sailing.domain.tracking.RaceTrackingHandler; import com.sap.sailing.domain.tracking.TrackedRace; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.common.Util.Pair; import com.sap.sse.common.mail.MailException; diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/Activator.java b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/Activator.java index 8bfcbfdde1c..715d1d678a2 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/Activator.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/Activator.java @@ -24,7 +24,6 @@ import com.sap.sailing.domain.racelogtracking.impl.fixtracker.RegattaLogFixTrack import com.sap.sailing.domain.trackfiles.TrackFileImportDeviceIdentifier; import com.sap.sailing.domain.tracking.RaceTrackingConnectivityParametersHandler; import com.sap.sailing.domain.tracking.TrackedRegattaListener; -import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.gateway.deserialization.JsonDeserializer; import com.sap.sailing.server.gateway.deserialization.impl.GPSFixJsonDeserializer; import com.sap.sailing.server.gateway.deserialization.impl.GPSFixMovingJsonDeserializer; @@ -35,6 +34,7 @@ import com.sap.sailing.server.gateway.serialization.racelog.tracking.DeviceIdent import com.sap.sailing.server.gateway.serialization.racelog.tracking.GPSFixJsonHandler; import com.sap.sailing.server.gateway.serialization.racelog.tracking.impl.GPSFixJsonHandlerImpl; import com.sap.sailing.server.gateway.serialization.racelog.tracking.impl.SmartphoneUUIDJsonHandler; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.MasterDataImportClassLoaderService; import com.sap.sse.common.TypeBasedServiceFinder; import com.sap.sse.replication.Replicable; diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/RaceLogConnectivityParams.java b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/RaceLogConnectivityParams.java index fe1c3e8e194..2afc2eb768b 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/RaceLogConnectivityParams.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/RaceLogConnectivityParams.java @@ -27,7 +27,7 @@ import com.sap.sailing.domain.tracking.RaceTrackingHandler; import com.sap.sailing.domain.tracking.TrackedRegattaRegistry; import com.sap.sailing.domain.tracking.WindStore; import com.sap.sailing.domain.tracking.impl.AbstractRaceTrackingConnectivityParameters; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; public class RaceLogConnectivityParams extends AbstractRaceTrackingConnectivityParameters { /** diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/RaceLogConnectivityParamsHandler.java b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/RaceLogConnectivityParamsHandler.java index e052e927e1e..007ab727d11 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/RaceLogConnectivityParamsHandler.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/RaceLogConnectivityParamsHandler.java @@ -10,7 +10,7 @@ import com.sap.sailing.domain.base.RaceColumn; import com.sap.sailing.domain.leaderboard.RegattaLeaderboard; import com.sap.sailing.domain.tracking.RaceTrackingConnectivityParameters; import com.sap.sailing.domain.tracking.impl.AbstractRaceTrackingConnectivityParametersHandler; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.common.TypeBasedServiceFinder; /** diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/RaceLogTrackingAdapterImpl.java b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/RaceLogTrackingAdapterImpl.java index 77f31a06b6e..60a2c79b3c8 100755 --- a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/RaceLogTrackingAdapterImpl.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/RaceLogTrackingAdapterImpl.java @@ -57,7 +57,7 @@ import com.sap.sailing.domain.racelogtracking.RaceLogTrackingAdapter; import com.sap.sailing.domain.tracking.RaceHandle; import com.sap.sailing.domain.tracking.RaceTrackingHandler; import com.sap.sailing.domain.tracking.TrackedRace; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.common.NoCorrespondingServiceRegisteredException; import com.sap.sse.common.TimePoint; import com.sap.sse.common.Util; diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/TrackFileImportDeviceIdentifierMongoHandler.java b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/TrackFileImportDeviceIdentifierMongoHandler.java index 1218089453f..cb3eaa1faa8 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/TrackFileImportDeviceIdentifierMongoHandler.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/TrackFileImportDeviceIdentifierMongoHandler.java @@ -2,8 +2,8 @@ package com.sap.sailing.domain.racelogtracking.impl; import java.util.UUID; -import com.mongodb.BasicDBObject; -import com.mongodb.DBObject; +import org.bson.Document; + import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.racelog.tracking.TransformationException; import com.sap.sailing.domain.persistence.racelog.tracking.DeviceIdentifierMongoHandler; @@ -18,7 +18,7 @@ public class TrackFileImportDeviceIdentifierMongoHandler implements DeviceIdenti @Override public DeviceIdentifier deserialize(Object serialized, String type, String stringRepresentation) throws TransformationException { - DBObject dbObject = (DBObject) serialized; + Document dbObject = (Document) serialized; UUID uuid = UUID.fromString((String) dbObject.get(Fields.UUID.name())); String fileName = (String) dbObject.get(Fields.FILE_NAME.name()); String trackName = (String) dbObject.get(Fields.TRACK_NAME.name()); @@ -28,15 +28,15 @@ public class TrackFileImportDeviceIdentifierMongoHandler implements DeviceIdenti } @Override - public Util.Pair serialize(DeviceIdentifier deviceIdentifier) throws TransformationException { + public Util.Pair serialize(DeviceIdentifier deviceIdentifier) throws TransformationException { TrackFileImportDeviceIdentifier id = TrackFileImportDeviceIdentifierImpl.cast(deviceIdentifier); - DBObject result = new BasicDBObject(); + Document result = new Document(); result.put(Fields.UUID.name(), id.getId().toString()); result.put(Fields.FILE_NAME.name(), id.getFileName()); result.put(Fields.TRACK_NAME.name(), id.getTrackName()); result.put(Fields.UPLOADED_MILLIS.name(), TrackFileImportDeviceIdentifierJsonHandler. storeTimePoint(id.getUploadedAt())); - return new Util.Pair(TrackFileImportDeviceIdentifier.TYPE, result); + return new Util.Pair(TrackFileImportDeviceIdentifier.TYPE, result); } } diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/fixtracker/RegattaLogFixTrackerRegattaListener.java b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/fixtracker/RegattaLogFixTrackerRegattaListener.java index 8cbe6daaef9..0b164766592 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/fixtracker/RegattaLogFixTrackerRegattaListener.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/fixtracker/RegattaLogFixTrackerRegattaListener.java @@ -23,12 +23,12 @@ import com.sap.sailing.domain.tracking.DynamicTrackedRegatta; import com.sap.sailing.domain.tracking.RaceTracker; import com.sap.sailing.domain.tracking.TrackedRegatta; import com.sap.sailing.domain.tracking.TrackedRegattaListener; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.replication.OperationExecutionListener; import com.sap.sse.replication.OperationWithResult; +import com.sap.sse.replication.OperationWithResultWithIdWrapper; +import com.sap.sse.replication.ReplicableWithObjectInputStream; import com.sap.sse.replication.ReplicationMasterDescriptor; -import com.sap.sse.replication.impl.OperationWithResultWithIdWrapper; -import com.sap.sse.replication.impl.ReplicableWithObjectInputStream; /** * This is the main entry point of the {@link SensorFixStore} based fix tracking. diff --git a/java/com.sap.sailing.domain.shared.android.test/src/com/sap/sailing/domain/racelog/test/RaceLogEventImplTest.java b/java/com.sap.sailing.domain.shared.android.test/src/com/sap/sailing/domain/racelog/test/RaceLogEventImplTest.java index ecb4cf09cb5..52cd3fb4e4a 100644 --- a/java/com.sap.sailing.domain.shared.android.test/src/com/sap/sailing/domain/racelog/test/RaceLogEventImplTest.java +++ b/java/com.sap.sailing.domain.shared.android.test/src/com/sap/sailing/domain/racelog/test/RaceLogEventImplTest.java @@ -1,6 +1,6 @@ package com.sap.sailing.domain.racelog.test; -import static junit.framework.Assert.assertSame; +import static org.junit.Assert.assertSame; import static org.mockito.Mockito.mock; import java.io.Serializable; diff --git a/java/com.sap.sailing.domain.shared.android.test/src/com/sap/sailing/domain/regattalog/tracking/analyzing/test/DeviceMappingFinderTest.java b/java/com.sap.sailing.domain.shared.android.test/src/com/sap/sailing/domain/regattalog/tracking/analyzing/test/DeviceMappingFinderTest.java index b66663f93f2..bd2c6a2ae8f 100644 --- a/java/com.sap.sailing.domain.shared.android.test/src/com/sap/sailing/domain/regattalog/tracking/analyzing/test/DeviceMappingFinderTest.java +++ b/java/com.sap.sailing.domain.shared.android.test/src/com/sap/sailing/domain/regattalog/tracking/analyzing/test/DeviceMappingFinderTest.java @@ -24,7 +24,7 @@ import com.sap.sailing.domain.racelogtracking.DeviceMappingWithRegattaLogEvent; import com.sap.sse.common.TimePoint; import com.sap.sse.common.impl.MillisecondsTimePoint; -import junit.framework.Assert; +import org.junit.Assert; public class DeviceMappingFinderTest extends AbstractRegattaLogTrackingTest { private final Competitor competitor = new CompetitorImpl("comp", "Comp", "KYC", null, null, null, null, /* timeOnTimeFactor */ null, /* timeOnDistanceAllowancePerNauticalMile */ null, null); diff --git a/java/com.sap.sailing.domain.shared.android.test/src/com/sap/sailing/domain/regattalog/tracking/analyzing/test/RevokeEventTest.java b/java/com.sap.sailing.domain.shared.android.test/src/com/sap/sailing/domain/regattalog/tracking/analyzing/test/RevokeEventTest.java index 47f3d0ea1d4..c805194f787 100644 --- a/java/com.sap.sailing.domain.shared.android.test/src/com/sap/sailing/domain/regattalog/tracking/analyzing/test/RevokeEventTest.java +++ b/java/com.sap.sailing.domain.shared.android.test/src/com/sap/sailing/domain/regattalog/tracking/analyzing/test/RevokeEventTest.java @@ -2,7 +2,7 @@ package com.sap.sailing.domain.regattalog.tracking.analyzing.test; import java.util.UUID; -import junit.framework.Assert; +import org.junit.Assert; import org.junit.Test; 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 index d5724f3171e..8e3965a835c 100644 --- a/java/com.sap.sailing.domain.swisstimingadapter.persistence/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.domain.swisstimingadapter.persistence/META-INF/MANIFEST.MF @@ -7,13 +7,13 @@ Bundle-Vendor: SAP Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Bundle-ActivationPolicy: lazy Require-Bundle: com.sap.sailing.domain.swisstimingadapter, - org.mongodb.mongo-java-driver;bundle-version="2.13.0", com.sap.sse.mongodb, com.sap.sailing.domain, com.sap.sailing.domain.common, com.sap.sse.common, com.sap.sailing.domain.persistence, com.sap.sse, + org.eclipse.orbit.mongodb;bundle-version="3.2.2", com.sap.sse.security.common Export-Package: com.sap.sailing.domain.swisstimingadapter.persistence, com.sap.sailing.domain.swisstimingadapter.persistence.impl;x-friends:="com.sap.sailing.domain.swisstimingadapter.test,com.sap.sailing.mongodb.test" diff --git a/java/com.sap.sailing.domain.swisstimingadapter.persistence/src/com/sap/sailing/domain/swisstimingadapter/persistence/impl/SwissTimingAdapterPersistenceImpl.java b/java/com.sap.sailing.domain.swisstimingadapter.persistence/src/com/sap/sailing/domain/swisstimingadapter/persistence/impl/SwissTimingAdapterPersistenceImpl.java old mode 100644 new mode 100755 index 0da407eee11..e17f7983b13 --- a/java/com.sap.sailing.domain.swisstimingadapter.persistence/src/com/sap/sailing/domain/swisstimingadapter/persistence/impl/SwissTimingAdapterPersistenceImpl.java +++ b/java/com.sap.sailing.domain.swisstimingadapter.persistence/src/com/sap/sailing/domain/swisstimingadapter/persistence/impl/SwissTimingAdapterPersistenceImpl.java @@ -5,10 +5,14 @@ import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; +import org.bson.Document; + import com.mongodb.BasicDBObject; -import com.mongodb.DB; -import com.mongodb.DBCollection; -import com.mongodb.DBObject; +import com.mongodb.WriteConcern; +import com.mongodb.client.MongoCollection; +import com.mongodb.client.MongoDatabase; +import com.mongodb.client.model.IndexOptions; +import com.mongodb.client.model.UpdateOptions; import com.sap.sailing.domain.swisstimingadapter.SwissTimingArchiveConfiguration; import com.sap.sailing.domain.swisstimingadapter.SwissTimingConfiguration; import com.sap.sailing.domain.swisstimingadapter.SwissTimingFactory; @@ -17,7 +21,7 @@ import com.sap.sse.mongodb.MongoDBService; public class SwissTimingAdapterPersistenceImpl implements SwissTimingAdapterPersistence { - private final DB database; + private final MongoDatabase database; private final SwissTimingFactory swissTimingFactory; @@ -33,8 +37,8 @@ public class SwissTimingAdapterPersistenceImpl implements SwissTimingAdapterPers public Iterable getSwissTimingConfigurations() { List result = new ArrayList(); try { - DBCollection stConfigs = database.getCollection(CollectionNames.SWISSTIMING_CONFIGURATIONS.name()); - for (DBObject o : stConfigs.find()) { + MongoCollection stConfigs = database.getCollection(CollectionNames.SWISSTIMING_CONFIGURATIONS.name()); + for (Document o : stConfigs.find()) { SwissTimingConfiguration stConfig = loadSwissTimingConfiguration(o); // the old SwissTiming configuration was not based on a JSON URL -> ignore such configurations if (stConfig.getJsonURL() != null) { @@ -50,7 +54,7 @@ public class SwissTimingAdapterPersistenceImpl implements SwissTimingAdapterPers return result; } - private SwissTimingConfiguration loadSwissTimingConfiguration(DBObject object) { + private SwissTimingConfiguration loadSwissTimingConfiguration(Document object) { String name = (String) object.get(FieldNames.ST_CONFIG_NAME.name()); String jsonURL = (String) object.get(FieldNames.ST_CONFIG_JSON_URL.name()); String hostname = (String) object.get(FieldNames.ST_CONFIG_HOSTNAME.name()); @@ -65,8 +69,8 @@ public class SwissTimingAdapterPersistenceImpl implements SwissTimingAdapterPers public Iterable getSwissTimingArchiveConfigurations() { List result = new ArrayList(); try { - DBCollection stConfigs = database.getCollection(CollectionNames.SWISSTIMING_ARCHIVE_CONFIGURATIONS.name()); - for (DBObject o : stConfigs.find()) { + MongoCollection stConfigs = database.getCollection(CollectionNames.SWISSTIMING_ARCHIVE_CONFIGURATIONS.name()); + for (Document o : stConfigs.find()) { SwissTimingArchiveConfiguration stConfig = loadSwissTimingArchiveConfiguration(o); result.add(stConfig); } @@ -79,21 +83,21 @@ public class SwissTimingAdapterPersistenceImpl implements SwissTimingAdapterPers return result; } - private SwissTimingArchiveConfiguration loadSwissTimingArchiveConfiguration(DBObject object) { + private SwissTimingArchiveConfiguration loadSwissTimingArchiveConfiguration(Document object) { return swissTimingFactory.createSwissTimingArchiveConfiguration((String) object.get(FieldNames.ST_ARCHIVE_JSON_URL.name())); } @Override public void storeSwissTimingConfiguration(SwissTimingConfiguration swissTimingConfiguration) { - DBCollection stConfigCollection = database.getCollection(CollectionNames.SWISSTIMING_CONFIGURATIONS.name()); + MongoCollection stConfigCollection = database.getCollection(CollectionNames.SWISSTIMING_CONFIGURATIONS.name()); stConfigCollection.createIndex(new BasicDBObject(CollectionNames.SWISSTIMING_CONFIGURATIONS.name(), 1)); // remove old, non working index dropIndexSafe(stConfigCollection, "SWISSTIMING_CONFIGURATIONS_1", "st_config_name_unique"); // adding unique index by JSON URL - stConfigCollection.createIndex(new BasicDBObject(FieldNames.ST_CONFIG_JSON_URL.name(), 1), "st_config_json_url_unique", - true); + stConfigCollection.createIndex(new BasicDBObject(FieldNames.ST_CONFIG_JSON_URL.name(), 1), + new IndexOptions().name("st_config_json_url_unique").unique(true)); - BasicDBObject result = new BasicDBObject(); + Document result = new Document(); result.put(FieldNames.ST_CONFIG_NAME.name(), swissTimingConfiguration.getName()); result.put(FieldNames.ST_CONFIG_JSON_URL.name(), swissTimingConfiguration.getJsonURL()); result.put(FieldNames.ST_CONFIG_HOSTNAME.name(), swissTimingConfiguration.getHostname()); @@ -102,29 +106,31 @@ public class SwissTimingAdapterPersistenceImpl implements SwissTimingAdapterPers result.put(FieldNames.ST_CONFIG_UPDATE_USERNAME.name(), swissTimingConfiguration.getUpdateUsername()); result.put(FieldNames.ST_CONFIG_UPDATE_PASSWORD.name(), swissTimingConfiguration.getUpdatePassword()); - final BasicDBObject updateQuery = new BasicDBObject(FieldNames.ST_CONFIG_JSON_URL.name(), + final Document updateQuery = new Document(FieldNames.ST_CONFIG_JSON_URL.name(), swissTimingConfiguration.getJsonURL()); - stConfigCollection.update(updateQuery, result, true, false); + stConfigCollection.withWriteConcern(WriteConcern.ACKNOWLEDGED).updateOne(updateQuery, result, + new UpdateOptions().upsert(true)); } @Override public void storeSwissTimingArchiveConfiguration( SwissTimingArchiveConfiguration createSwissTimingArchiveConfiguration) { - DBCollection stArchiveConfigCollection = database.getCollection(CollectionNames.SWISSTIMING_ARCHIVE_CONFIGURATIONS.name()); + MongoCollection stArchiveConfigCollection = database.getCollection(CollectionNames.SWISSTIMING_ARCHIVE_CONFIGURATIONS.name()); // remove old, non working index dropIndexSafe(stArchiveConfigCollection, "SWISSTIMING_ARCHIVE_CONFIGURATIONS_1", "st_archive_config_name_unique"); // adding unique index by JSON URL - stArchiveConfigCollection.createIndex(new BasicDBObject(FieldNames.ST_ARCHIVE_JSON_URL.name(), 1), "st_archive_json_url_unique", - true); + stArchiveConfigCollection.createIndex(new BasicDBObject(FieldNames.ST_ARCHIVE_JSON_URL.name(), 1), + new IndexOptions().name("st_archive_json_url_unique").unique(true)); - BasicDBObject result = new BasicDBObject(); + Document result = new Document(); result.put(FieldNames.ST_ARCHIVE_JSON_URL.name(), createSwissTimingArchiveConfiguration.getJsonUrl()); - stArchiveConfigCollection.update(result, result, true, false); + stArchiveConfigCollection.withWriteConcern(WriteConcern.ACKNOWLEDGED).updateOne(result, result, + new UpdateOptions().upsert(true)); } - private void dropIndexSafe(DBCollection collection, String... indexNames) { - collection.getIndexInfo().forEach(indexInfo -> { + private void dropIndexSafe(MongoCollection collection, String... indexNames) { + collection.listIndexes().forEach((Document indexInfo) -> { for (String indexName : indexNames) { if (indexName.equals(indexInfo.get("name"))) { collection.dropIndex(indexName); diff --git a/java/com.sap.sailing.domain.swisstimingadapter.persistence/src/com/sap/sailing/domain/swisstimingadapter/persistence/impl/SwissTimingConnectivityParamsHandler.java b/java/com.sap.sailing.domain.swisstimingadapter.persistence/src/com/sap/sailing/domain/swisstimingadapter/persistence/impl/SwissTimingConnectivityParamsHandler.java index 5c8dca04bae..ee948d268af 100644 --- a/java/com.sap.sailing.domain.swisstimingadapter.persistence/src/com/sap/sailing/domain/swisstimingadapter/persistence/impl/SwissTimingConnectivityParamsHandler.java +++ b/java/com.sap.sailing.domain.swisstimingadapter.persistence/src/com/sap/sailing/domain/swisstimingadapter/persistence/impl/SwissTimingConnectivityParamsHandler.java @@ -7,9 +7,9 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import org.bson.Document; + import com.mongodb.BasicDBList; -import com.mongodb.BasicDBObject; -import com.mongodb.DBObject; import com.sap.sailing.domain.racelog.RaceLogStore; import com.sap.sailing.domain.regattalog.RegattaLogStore; import com.sap.sailing.domain.swisstimingadapter.Competitor; @@ -93,7 +93,7 @@ public class SwissTimingConnectivityParamsHandler extends AbstractRaceTrackingCo if (stParams.getStartList() != null) { startListDbObject = new BasicDBList(); for (final Competitor competitor : stParams.getStartList().getCompetitors()) { - DBObject competitorDBObject = createCompetitorDBObject(competitor); + Document competitorDBObject = createCompetitorDBObject(competitor); startListDbObject.add(competitorDBObject); } } else { @@ -102,17 +102,17 @@ public class SwissTimingConnectivityParamsHandler extends AbstractRaceTrackingCo return startListDbObject; } - private StartList createStartListFromDBObject(String raceId, BasicDBList startListDBObject) { + private StartList createStartListFromDBObject(String raceId, Iterable startListDBObject) { List competitors = new ArrayList<>(); for (final Object competitorObject : startListDBObject) { - final DBObject competitorDBObject = (DBObject) competitorObject; + final Document competitorDBObject = (Document) competitorObject; competitors.add(createCompetitorFromDBObject(competitorDBObject)); } return new StartListImpl(raceId, competitors); } - private DBObject createCompetitorDBObject(Competitor competitor) { - final DBObject result = new BasicDBObject(); + private Document createCompetitorDBObject(Competitor competitor) { + final Document result = new Document(); result.put(COMPETITOR_ID_AS_STRING, competitor.getIdAsString()); result.put(COMPETITOR_BOAT_ID, competitor.getBoatID()); result.put(COMPETITOR_NAME, competitor.getName()); @@ -128,7 +128,7 @@ public class SwissTimingConnectivityParamsHandler extends AbstractRaceTrackingCo } else { result = new BasicDBList(); for (final CrewMember crewMember : crew) { - final DBObject crewMemberDBObject = new BasicDBObject(); + final Document crewMemberDBObject = new Document(); crewMemberDBObject.put(CREW_MEMBER_NAME, crewMember.getName()); crewMemberDBObject.put(CREW_MEMBER_NATIONALITY, crewMember.getNationality()); crewMemberDBObject.put(CREW_MEMBER_POSITION, crewMember.getPosition()); @@ -138,14 +138,14 @@ public class SwissTimingConnectivityParamsHandler extends AbstractRaceTrackingCo return result; } - private List createCrewFromDBObject(BasicDBList crewDBObject) { + private List createCrewFromDBObject(Iterable crewDBObject) { final List result; if (crewDBObject == null) { result = null; } else { result = new ArrayList<>(); for (final Object o : crewDBObject) { - final DBObject crewMemberDBObject = (DBObject) o; + final Document crewMemberDBObject = (Document) o; result.add(new CrewMemberImpl((String) crewMemberDBObject.get(CREW_MEMBER_NAME), (String) crewMemberDBObject.get(CREW_MEMBER_NATIONALITY), (String) crewMemberDBObject.get(CREW_MEMBER_POSITION))); @@ -154,13 +154,13 @@ public class SwissTimingConnectivityParamsHandler extends AbstractRaceTrackingCo return result; } - private Competitor createCompetitorFromDBObject(DBObject competitorDBObject) { + private Competitor createCompetitorFromDBObject(Document competitorDBObject) { final Competitor result; final String competitorIdAsString = (String) competitorDBObject.get(COMPETITOR_ID_AS_STRING); final String boatID = (String) competitorDBObject.get(COMPETITOR_BOAT_ID); final String threeLetterIOCCode = (String) competitorDBObject.get(COMPETITOR_THREE_LETTER_IOC_CODE); final String name = (String) competitorDBObject.get(COMPETITOR_NAME); - final BasicDBList crewDBObject = (BasicDBList) competitorDBObject.get(COMPETITOR_CREW); + final Iterable crewDBObject = (Iterable) competitorDBObject.get(COMPETITOR_CREW); if (competitorIdAsString == null) { result = new CompetitorWithoutID(boatID, threeLetterIOCCode, name); } else { @@ -178,7 +178,7 @@ public class SwissTimingConnectivityParamsHandler extends AbstractRaceTrackingCo (String) map.get(RACE_NAME), (String) map.get(RACE_DESCRIPTION), domainFactory.getBaseDomainFactory().getOrCreateBoatClass((String) map.get(BOAT_CLASS_NAME)), - map.get(START_LIST) == null ? null : createStartListFromDBObject((String) map.get(RACE_ID), (BasicDBList) map.get(START_LIST)), + map.get(START_LIST) == null ? null : createStartListFromDBObject((String) map.get(RACE_ID), (Iterable) map.get(START_LIST)), ((Number) map.get(DELAY_TO_LIVE_IN_MILLIS)).longValue(), swissTimingFactory, domainFactory, raceLogStore, regattaLogStore, (boolean) map.get(USE_INTERNAL_MARK_PASSING_ALGORITHM), isTrackWind(map), isCorrectWindDirectionByMagneticDeclination(map), diff --git a/java/com.sap.sailing.domain.swisstimingadapter.test/META-INF/MANIFEST.MF b/java/com.sap.sailing.domain.swisstimingadapter.test/META-INF/MANIFEST.MF index b675499e158..1e1b4952799 100644 --- a/java/com.sap.sailing.domain.swisstimingadapter.test/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.domain.swisstimingadapter.test/META-INF/MANIFEST.MF @@ -8,10 +8,10 @@ Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Fragment-Host: com.sap.sailing.domain.swisstimingadapter Require-Bundle: com.sap.sailing.domain, com.sap.sailing.udpconnector, - org.mongodb.mongo-java-driver;bundle-version="2.13.0", com.sap.sse.mongodb, com.googlecode.java-diff-utils;bundle-version="1.3.0", com.sap.sailing.server, + com.sap.sailing.server.interface, com.sap.sailing.domain.common, com.sap.sailing.domain.persistence, com.sap.sailing.domain.tractracadapter, @@ -20,6 +20,7 @@ Require-Bundle: com.sap.sailing.domain, org.hamcrest.core;bundle-version="1.1.0", com.sap.sse, com.sap.sse.common, + org.eclipse.orbit.mongodb;bundle-version="3.2.2", com.sap.sailing.domain.shared.android Bundle-ClassPath: resources/, . diff --git a/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/SailMasterConnectivityTest.java b/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/SailMasterConnectivityTest.java index 361a36513d1..77b709747df 100755 --- a/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/SailMasterConnectivityTest.java +++ b/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/SailMasterConnectivityTest.java @@ -50,7 +50,7 @@ public class SailMasterConnectivityTest { private Thread dummyServerThread; private SailMasterDummy sailMaster; - @Rule public Timeout AbstractTracTracLiveTestTimeout = new Timeout(5 * 60 * 1000); // timeout after 5 minutes + @Rule public Timeout AbstractTracTracLiveTestTimeout = Timeout.millis(5 * 60 * 1000); // timeout after 5 minutes private SailMasterConnector connector4702; diff --git a/java/com.sap.sailing.domain.test/META-INF/MANIFEST.MF b/java/com.sap.sailing.domain.test/META-INF/MANIFEST.MF index 0207aaca0c2..c78ef7805b6 100644 --- a/java/com.sap.sailing.domain.test/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.domain.test/META-INF/MANIFEST.MF @@ -18,18 +18,19 @@ Require-Bundle: com.sap.sailing.domain, org.junit;bundle-version="4.8.2", org.json.simple;bundle-version="1.1.0", com.sap.sse.common, - com.sap.sse.replication, + com.sap.sse.replication.interfaces, com.sap.sse, com.sap.sse.shared.android, com.sap.sailing.domain.racelogtrackingadapter, com.sap.sailing.server, + com.sap.sailing.server.interface, com.sap.sailing.server.testsupport, com.sap.sailing.domain.persistence, com.sap.sse.filestorage, com.sap.sse.security, com.sap.sse.security.userstore.mongodb, com.sap.sse.security.common, - org.mongodb.mongo-java-driver + org.eclipse.orbit.mongodb;bundle-version="3.2.2" Export-Package: com.sap.sailing.domain.test, com.sap.sailing.domain.test.mock Import-Package: org.osgi.util.tracker diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/common/test/TimeRangeTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/common/test/TimeRangeTest.java index 202603e3a82..a72cabc5550 100644 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/common/test/TimeRangeTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/common/test/TimeRangeTest.java @@ -1,8 +1,8 @@ package com.sap.sailing.domain.common.test; import static com.sap.sailing.domain.common.test.TimeTestHelpers.create; -import static junit.framework.Assert.assertEquals; -import static junit.framework.Assert.assertNull; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; @@ -15,7 +15,7 @@ import com.sap.sse.common.Util; import com.sap.sse.common.impl.MillisecondsTimePoint; import com.sap.sse.common.impl.TimeRangeImpl; -import junit.framework.Assert; +import org.junit.Assert; public class TimeRangeTest { private void liesWithin(long fromOuter, long toOuter, long fromInner, long toInner) { diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/AbstractTracTracLiveTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/AbstractTracTracLiveTest.java index 7e6ebc98f4d..7a9674e3618 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/AbstractTracTracLiveTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/AbstractTracTracLiveTest.java @@ -57,7 +57,7 @@ public abstract class AbstractTracTracLiveTest extends StoredTrackBasedTest { private IRaceSubscriber raceSubscriber; private final Collection receivers; - @Rule public Timeout AbstractTracTracLiveTestTimeout = new Timeout(3 * 60 * 1000); + @Rule public Timeout AbstractTracTracLiveTestTimeout = Timeout.millis(3 * 60 * 1000); protected AbstractTracTracLiveTest() throws URISyntaxException, MalformedURLException { receivers = new HashSet(); diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardScoringAndRankingTestForLowPoints.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardScoringAndRankingTestForLowPoints.java index 1e0d2c05984..585baf871bd 100644 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardScoringAndRankingTestForLowPoints.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardScoringAndRankingTestForLowPoints.java @@ -30,7 +30,7 @@ import com.sap.sse.common.TimePoint; import com.sap.sse.common.Util.Pair; import com.sap.sse.common.impl.MillisecondsTimePoint; -import junit.framework.Assert; +import org.junit.Assert; /** * This class contains several tests for the {@link LowPointFirstToWinTwoRaces} scoring rule defined by diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/ManeuverLossOnPenaltyCircleTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/ManeuverLossOnPenaltyCircleTest.java index 612e6943436..748c26b6c1b 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/ManeuverLossOnPenaltyCircleTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/ManeuverLossOnPenaltyCircleTest.java @@ -12,7 +12,7 @@ import java.text.ParseException; import java.util.Optional; import java.util.stream.StreamSupport; -import org.hamcrest.number.IsGreaterThan; +import static org.hamcrest.number.OrderingComparison.greaterThan; import org.junit.Before; import org.junit.Test; @@ -56,6 +56,6 @@ public class ManeuverLossOnPenaltyCircleTest extends OnlineTracTracBasedTest { Competitor canottieri = getCompetitorByName("Club Canottieri Roggero di Lauria"); final Iterable maneuversCanottieri = getTrackedRace().getManeuvers(canottieri, getTrackedRace().getStartOfRace(), getTrackedRace().getEndOfRace(), /* waitForLatest */ true); final Optional penaltyCircleCanottieri = StreamSupport.stream(maneuversCanottieri.spliterator(), /* parallel */ false).filter(m->m.getType()==ManeuverType.PENALTY_CIRCLE).findAny(); - assertThat(penaltyCircleCanottieri.get().getManeuverLoss().getProjectedDistanceLost(), new IsGreaterThan<>(new MeterDistance(30))); + assertThat(penaltyCircleCanottieri.get().getManeuverLoss().getProjectedDistanceLost(), greaterThan(new MeterDistance(30))); } } diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/SmartFutureCacheTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/SmartFutureCacheTest.java index 10ae1ef79f1..2599a41a389 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/SmartFutureCacheTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/SmartFutureCacheTest.java @@ -29,7 +29,7 @@ import com.sap.sse.util.SmartFutureCache.EmptyUpdateInterval; import com.sap.sse.util.SmartFutureCache.UpdateInterval; public class SmartFutureCacheTest { - @Rule public Timeout AbstractTracTracLiveTestTimeout = new Timeout(2 * 60 * 1000); + @Rule public Timeout AbstractTracTracLiveTestTimeout = Timeout.millis(2 * 60 * 1000); @Test public void testPerformanceOfGetAndCall() { diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TestDeadlockInRegattaListener.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TestDeadlockInRegattaListener.java index 617291407b2..ccb00acfc3c 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TestDeadlockInRegattaListener.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TestDeadlockInRegattaListener.java @@ -33,13 +33,13 @@ import com.sap.sailing.domain.tracking.RaceTracker; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.domain.tracking.impl.DynamicTrackedRaceImpl; import com.sap.sailing.domain.tracking.impl.DynamicTrackedRegattaImpl; -import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.impl.RacingEventServiceImpl; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.util.ThreadLocalTransporter; public class TestDeadlockInRegattaListener { @Rule - public Timeout globalTimeout = new Timeout(5000); // fail after 1s + public Timeout globalTimeout = Timeout.millis(5000); // fail after 1s @Test public void testDeadlockInRegattaListener() throws InterruptedException, BrokenBarrierException, MalformedURLException, IOException { diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TimerTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TimerTest.java index 2e9725f91e8..18648ae8ec6 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TimerTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TimerTest.java @@ -17,7 +17,7 @@ import org.junit.rules.Timeout; */ public class TimerTest { @Rule - public Timeout AbstractTracTracLiveTestTimeout = new Timeout(10 * 1000); + public Timeout AbstractTracTracLiveTestTimeout = Timeout.millis(10 * 1000); @Test public void exceptionInTask() throws InterruptedException { diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/UnicodeCharactersInCompetitorNamesTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/UnicodeCharactersInCompetitorNamesTest.java index 2dde5de2ca6..37ca88f001d 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/UnicodeCharactersInCompetitorNamesTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/UnicodeCharactersInCompetitorNamesTest.java @@ -34,7 +34,7 @@ public class UnicodeCharactersInCompetitorNamesTest { protected static final String tractracTunnelHost = System.getProperty("tractrac.tunnel.host", "localhost"); private DomainFactory domainFactory; - @Rule public Timeout AbstractTracTracLiveTestTimeout = new Timeout(2 * 60 * 1000); + @Rule public Timeout AbstractTracTracLiveTestTimeout = Timeout.millis(2 * 60 * 1000); @Before public void setUp() { diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/WindSteppingTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/WindSteppingTest.java index 4d01be47c38..b71d8eceb0a 100644 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/WindSteppingTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/WindSteppingTest.java @@ -1,6 +1,6 @@ package com.sap.sailing.domain.test; -import junit.framework.Assert; +import org.junit.Assert; import org.junit.Test; @@ -32,8 +32,8 @@ public class WindSteppingTest { Assert.assertEquals(-1, stepping.getLevelIndexForValue(8)); Assert.assertEquals(2.0, stepping.getSteppedValueForValue(1.064), 0.005); Assert.assertEquals(-1.0, stepping.getSteppedValueForValue(7.8365), 0.005); - Assert.assertEquals(1.55, stepping.getHistogramXValue(20, 1.5)); - Assert.assertEquals(2.55, stepping.getHistogramXValue(20, 2.5)); + Assert.assertEquals(1.55, stepping.getHistogramXValue(20, 1.5), 0.0000001); + Assert.assertEquals(2.55, stepping.getHistogramXValue(20, 2.5), 0.0000001); } } diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/MarkPassingCalculatorPerformanceTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/MarkPassingCalculatorPerformanceTest.java index 9ea10518dcc..a8427038ee1 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/MarkPassingCalculatorPerformanceTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/MarkPassingCalculatorPerformanceTest.java @@ -29,7 +29,7 @@ import com.sap.sse.common.Util; import com.sap.sse.common.impl.DegreeBearingImpl; import com.sap.sse.common.impl.MillisecondsTimePoint; -import junit.framework.Assert; +import org.junit.Assert; public class MarkPassingCalculatorPerformanceTest extends AbstractMockedRaceMarkPassingTest { 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 index 2ff2c1b8037..8ff0ad254e9 100644 --- a/java/com.sap.sailing.domain.tractracadapter.persistence/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.domain.tractracadapter.persistence/META-INF/MANIFEST.MF @@ -6,14 +6,14 @@ Bundle-Version: 1.0.0.qualifier Bundle-Vendor: SAP Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Bundle-ActivationPolicy: lazy -Require-Bundle: org.mongodb.mongo-java-driver;bundle-version="2.13.0", - com.sap.sse.mongodb, +Require-Bundle: com.sap.sse.mongodb, com.sap.sailing.domain.tractracadapter, com.sap.sailing.domain, com.sap.sailing.domain.common, com.sap.sse.common, com.sap.sailing.domain.persistence, com.sap.sse, + org.eclipse.orbit.mongodb;bundle-version="3.2.2", com.sap.sse.security.common Export-Package: com.sap.sailing.domain.tractracadapter.persistence, com.sap.sailing.domain.tractracadapter.persistence.impl;x-friends:="com.sap.sailing.mongodb.test" diff --git a/java/com.sap.sailing.domain.tractracadapter.persistence/src/com/sap/sailing/domain/tractracadapter/persistence/PersistenceFactory.java b/java/com.sap.sailing.domain.tractracadapter.persistence/src/com/sap/sailing/domain/tractracadapter/persistence/PersistenceFactory.java index e869dc23ce2..a7b34355a97 100755 --- a/java/com.sap.sailing.domain.tractracadapter.persistence/src/com/sap/sailing/domain/tractracadapter/persistence/PersistenceFactory.java +++ b/java/com.sap.sailing.domain.tractracadapter.persistence/src/com/sap/sailing/domain/tractracadapter/persistence/PersistenceFactory.java @@ -1,11 +1,11 @@ package com.sap.sailing.domain.tractracadapter.persistence; -import com.mongodb.DB; +import com.mongodb.client.MongoDatabase; import com.sap.sailing.domain.tractracadapter.DomainFactory; import com.sap.sailing.domain.tractracadapter.persistence.impl.PersistenceFactoryImpl; public interface PersistenceFactory { PersistenceFactory INSTANCE = new PersistenceFactoryImpl(); - DomainObjectFactory createDomainObjectFactory(DB db, DomainFactory tracTracDomainFactory); + DomainObjectFactory createDomainObjectFactory(MongoDatabase db, DomainFactory tracTracDomainFactory); } 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 index 22f9be805fe..1fc2dd0ee16 100755 --- 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 @@ -5,9 +5,10 @@ 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 org.bson.Document; + +import com.mongodb.client.MongoCollection; +import com.mongodb.client.MongoDatabase; import com.sap.sailing.domain.tractracadapter.DomainFactory; import com.sap.sailing.domain.tractracadapter.TracTracConfiguration; import com.sap.sailing.domain.tractracadapter.persistence.DomainObjectFactory; @@ -15,11 +16,11 @@ 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; + private final MongoDatabase database; private final DomainFactory tracTracDomainFactory; - public DomainObjectFactoryImpl(DB db, DomainFactory tracTracDomainFactory) { + public DomainObjectFactoryImpl(MongoDatabase db, DomainFactory tracTracDomainFactory) { super(); this.database = db; this.tracTracDomainFactory = tracTracDomainFactory; @@ -29,8 +30,8 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { public Iterable getTracTracConfigurations() { List result = new ArrayList(); try { - DBCollection ttConfigs = database.getCollection(CollectionNames.TRACTRAC_CONFIGURATIONS.name()); - for (DBObject o : ttConfigs.find()) { + MongoCollection ttConfigs = database.getCollection(CollectionNames.TRACTRAC_CONFIGURATIONS.name()); + for (Document o : ttConfigs.find()) { TracTracConfiguration ttConfig = loadTracTracConfiguration(o); result.add(ttConfig); } @@ -42,7 +43,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { return result; } - private TracTracConfiguration loadTracTracConfiguration(DBObject object) { + private TracTracConfiguration loadTracTracConfiguration(Document object) { Object courseDesignUpdateUriObject = object.get(FieldNames.TT_CONFIG_COURSE_DESIGN_UPDATE_URI.name()); Object tracTracUsernameObject = object.get(FieldNames.TT_CONFIG_TRACTRAC_USERNAME.name()); Object tracTracPasswordObject = object.get(FieldNames.TT_CONFIG_TRACTRAC_PASSWORD.name()); 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 old mode 100644 new mode 100755 index d36a4eb3a4b..6aad4a3591e --- 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 @@ -1,29 +1,33 @@ package com.sap.sailing.domain.tractracadapter.persistence.impl; -import com.mongodb.BasicDBObject; -import com.mongodb.DB; -import com.mongodb.DBCollection; +import org.bson.Document; + +import com.mongodb.WriteConcern; +import com.mongodb.client.MongoCollection; +import com.mongodb.client.MongoDatabase; +import com.mongodb.client.model.IndexOptions; +import com.mongodb.client.model.UpdateOptions; import com.sap.sailing.domain.tractracadapter.TracTracConfiguration; import com.sap.sailing.domain.tractracadapter.persistence.MongoObjectFactory; public class MongoObjectFactoryImpl implements MongoObjectFactory { - private final DB database; + private final MongoDatabase database; - public MongoObjectFactoryImpl(DB database) { + public MongoObjectFactoryImpl(MongoDatabase database) { super(); this.database = database; } @Override public void storeTracTracConfiguration(TracTracConfiguration tracTracConfiguration) { - DBCollection ttConfigCollection = database.getCollection(CollectionNames.TRACTRAC_CONFIGURATIONS.name()); + MongoCollection ttConfigCollection = database.getCollection(CollectionNames.TRACTRAC_CONFIGURATIONS.name()); // remove old, non working index dropIndexSafe(ttConfigCollection, "TRACTRAC_CONFIGURATIONS_1", "tt_config_name_unique"); // adding unique index by JSON URL - ttConfigCollection.createIndex(new BasicDBObject(FieldNames.TT_CONFIG_JSON_URL.name(), 1), "tt_config_json_url_unique", - true); + ttConfigCollection.createIndex(new Document(FieldNames.TT_CONFIG_JSON_URL.name(), 1), + new IndexOptions().name("tt_config_json_url_unique").unique(true)); - final BasicDBObject result = new BasicDBObject(); + final Document result = new Document(); result.put(FieldNames.TT_CONFIG_NAME.name(), tracTracConfiguration.getName()); result.put(FieldNames.TT_CONFIG_JSON_URL.name(), tracTracConfiguration.getJSONURL()); result.put(FieldNames.TT_CONFIG_LIVE_DATA_URI.name(), tracTracConfiguration.getLiveDataURI()); @@ -33,13 +37,14 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { result.put(FieldNames.TT_CONFIG_TRACTRAC_PASSWORD.name(), tracTracConfiguration.getTracTracPassword()); // Object with given name is updated or created if it does not exist yet - final BasicDBObject updateQuery = new BasicDBObject(FieldNames.TT_CONFIG_JSON_URL.name(), + final Document updateQuery = new Document(FieldNames.TT_CONFIG_JSON_URL.name(), tracTracConfiguration.getJSONURL()); - ttConfigCollection.update(updateQuery, result, true, false); + ttConfigCollection.withWriteConcern(WriteConcern.ACKNOWLEDGED).updateOne(updateQuery, result, + new UpdateOptions().upsert(true)); } - private void dropIndexSafe(DBCollection collection, String... indexNames) { - collection.getIndexInfo().forEach(indexInfo -> { + private void dropIndexSafe(MongoCollection collection, String... indexNames) { + collection.listIndexes().forEach((Document indexInfo) -> { for (String indexName : indexNames) { if (indexName.equals(indexInfo.get("name"))) { collection.dropIndex(indexName); diff --git a/java/com.sap.sailing.domain.tractracadapter.persistence/src/com/sap/sailing/domain/tractracadapter/persistence/impl/PersistenceFactoryImpl.java b/java/com.sap.sailing.domain.tractracadapter.persistence/src/com/sap/sailing/domain/tractracadapter/persistence/impl/PersistenceFactoryImpl.java index 139e4d3e2bd..e17b80188cb 100755 --- a/java/com.sap.sailing.domain.tractracadapter.persistence/src/com/sap/sailing/domain/tractracadapter/persistence/impl/PersistenceFactoryImpl.java +++ b/java/com.sap.sailing.domain.tractracadapter.persistence/src/com/sap/sailing/domain/tractracadapter/persistence/impl/PersistenceFactoryImpl.java @@ -1,13 +1,13 @@ package com.sap.sailing.domain.tractracadapter.persistence.impl; -import com.mongodb.DB; +import com.mongodb.client.MongoDatabase; import com.sap.sailing.domain.tractracadapter.DomainFactory; import com.sap.sailing.domain.tractracadapter.persistence.DomainObjectFactory; import com.sap.sailing.domain.tractracadapter.persistence.PersistenceFactory; public class PersistenceFactoryImpl implements PersistenceFactory { @Override - public DomainObjectFactory createDomainObjectFactory(DB db, DomainFactory tracTracDomainFactory) { + public DomainObjectFactory createDomainObjectFactory(MongoDatabase db, DomainFactory tracTracDomainFactory) { return new DomainObjectFactoryImpl(db, tracTracDomainFactory); } } diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/masterdata/DummyTrackedRace.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/DummyTrackedRace.java similarity index 93% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/masterdata/DummyTrackedRace.java rename to java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/DummyTrackedRace.java index f95c15250c7..9adee082015 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/masterdata/DummyTrackedRace.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/DummyTrackedRace.java @@ -1,4 +1,4 @@ -package com.sap.sailing.server.masterdata; +package com.sap.sailing.domain.tracking; import java.io.Serializable; import java.util.Collections; @@ -36,26 +36,6 @@ import com.sap.sailing.domain.polars.NotEnoughDataHasBeenAddedException; import com.sap.sailing.domain.polars.PolarDataService; import com.sap.sailing.domain.ranking.RankingMetric; import com.sap.sailing.domain.ranking.RankingMetric.RankingInfo; -import com.sap.sailing.domain.tracking.CourseDesignChangedListener; -import com.sap.sailing.domain.tracking.GPSFixTrack; -import com.sap.sailing.domain.tracking.LineDetails; -import com.sap.sailing.domain.tracking.Maneuver; -import com.sap.sailing.domain.tracking.MarkPassing; -import com.sap.sailing.domain.tracking.MarkPositionAtTimePointCache; -import com.sap.sailing.domain.tracking.RaceAbortedListener; -import com.sap.sailing.domain.tracking.RaceChangeListener; -import com.sap.sailing.domain.tracking.RaceExecutionOrderProvider; -import com.sap.sailing.domain.tracking.SensorFixTrack; -import com.sap.sailing.domain.tracking.StartTimeChangedListener; -import com.sap.sailing.domain.tracking.TrackedLeg; -import com.sap.sailing.domain.tracking.TrackedLegOfCompetitor; -import com.sap.sailing.domain.tracking.TrackedRaceStatus; -import com.sap.sailing.domain.tracking.TrackedRaceWithWindEssentials; -import com.sap.sailing.domain.tracking.TrackedRegatta; -import com.sap.sailing.domain.tracking.WindLegTypeAndLegBearingCache; -import com.sap.sailing.domain.tracking.WindPositionMode; -import com.sap.sailing.domain.tracking.WindStore; -import com.sap.sailing.domain.tracking.WindWithConfidence; import com.sap.sailing.domain.tracking.impl.DynamicTrackedRegattaImpl; import com.sap.sailing.domain.tracking.impl.EmptyWindStore; import com.sap.sse.common.Bearing; diff --git a/java/com.sap.sailing.expeditionconnector.persistence/META-INF/MANIFEST.MF b/java/com.sap.sailing.expeditionconnector.persistence/META-INF/MANIFEST.MF index 88ae8420ebe..1c13328a325 100755 --- a/java/com.sap.sailing.expeditionconnector.persistence/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.expeditionconnector.persistence/META-INF/MANIFEST.MF @@ -12,9 +12,9 @@ Require-Bundle: com.sap.sailing.domain.persistence, com.sap.sailing.domain.common, com.sap.sse.common, com.sap.sse.mongodb, - org.mongodb.mongo-java-driver;bundle-version="2.13.0", com.sap.sailing.expeditionconnector.common, com.sap.sailing.server.gateway.serialization.shared.android, - com.sap.sse + com.sap.sse, + org.eclipse.orbit.mongodb;bundle-version="3.2.2" Export-Package: com.sap.sailing.expeditionconnector.persistence Automatic-Module-Name: com.sap.sailing.expeditionconnector.persistence diff --git a/java/com.sap.sailing.expeditionconnector.persistence/src/com/sap/sailing/expeditionconnector/persistence/impl/DomainObjectFactoryImpl.java b/java/com.sap.sailing.expeditionconnector.persistence/src/com/sap/sailing/expeditionconnector/persistence/impl/DomainObjectFactoryImpl.java index d02b63d2639..adb47ca81dd 100755 --- a/java/com.sap.sailing.expeditionconnector.persistence/src/com/sap/sailing/expeditionconnector/persistence/impl/DomainObjectFactoryImpl.java +++ b/java/com.sap.sailing.expeditionconnector.persistence/src/com/sap/sailing/expeditionconnector/persistence/impl/DomainObjectFactoryImpl.java @@ -4,25 +4,25 @@ import java.util.ArrayList; import java.util.List; import java.util.UUID; -import com.mongodb.DB; -import com.mongodb.DBCollection; -import com.mongodb.DBObject; +import org.bson.Document; + +import com.mongodb.client.MongoCollection; +import com.mongodb.client.MongoDatabase; import com.sap.sailing.expeditionconnector.ExpeditionDeviceConfiguration; import com.sap.sailing.expeditionconnector.persistence.DomainObjectFactory; public class DomainObjectFactoryImpl implements DomainObjectFactory { - private final DB db; + private final MongoDatabase db; - public DomainObjectFactoryImpl(DB db) { + public DomainObjectFactoryImpl(MongoDatabase db) { this.db = db; } @Override public Iterable getExpeditionDeviceConfigurations() { final List result = new ArrayList<>(); - final DBCollection expeditionDeviceConfigurationsCollection = db.getCollection(CollectionNames.EXPEDITION_DEVICE_CONFIGURATIONS.name()); - for (final Object o : expeditionDeviceConfigurationsCollection.find()) { - final DBObject dbo = (DBObject) o; + final MongoCollection expeditionDeviceConfigurationsCollection = db.getCollection(CollectionNames.EXPEDITION_DEVICE_CONFIGURATIONS.name()); + for (final Document dbo : expeditionDeviceConfigurationsCollection.find()) { final UUID uuid = (UUID) dbo.get(FieldNames.EXPEDITION_DEVICE_CONFIGURATION_UUID.name()); final String name = (String) dbo.get(FieldNames.EXPEDITION_DEVICE_CONFIGURATION_NAME.name()); final Number boatIdAsNumber = (Number) dbo.get(FieldNames.EXPEDITION_DEVICE_CONFIGURATION_BOAT_ID.name()); diff --git a/java/com.sap.sailing.expeditionconnector.persistence/src/com/sap/sailing/expeditionconnector/persistence/impl/MongoObjectFactoryImpl.java b/java/com.sap.sailing.expeditionconnector.persistence/src/com/sap/sailing/expeditionconnector/persistence/impl/MongoObjectFactoryImpl.java index b7a67de00f0..3507a1d1551 100755 --- a/java/com.sap.sailing.expeditionconnector.persistence/src/com/sap/sailing/expeditionconnector/persistence/impl/MongoObjectFactoryImpl.java +++ b/java/com.sap.sailing.expeditionconnector.persistence/src/com/sap/sailing/expeditionconnector/persistence/impl/MongoObjectFactoryImpl.java @@ -3,34 +3,37 @@ package com.sap.sailing.expeditionconnector.persistence.impl; import java.util.logging.Level; import java.util.logging.Logger; +import org.bson.Document; + import com.mongodb.BasicDBObject; -import com.mongodb.DB; -import com.mongodb.DBCollection; -import com.mongodb.DBObject; import com.mongodb.WriteConcern; +import com.mongodb.client.MongoCollection; +import com.mongodb.client.MongoDatabase; +import com.mongodb.client.model.IndexOptions; +import com.mongodb.client.model.UpdateOptions; import com.sap.sailing.expeditionconnector.ExpeditionDeviceConfiguration; import com.sap.sailing.expeditionconnector.persistence.MongoObjectFactory; public class MongoObjectFactoryImpl implements MongoObjectFactory { private static final Logger logger = Logger.getLogger(MongoObjectFactoryImpl.class.getName()); - private final DBCollection expeditionDeviceConfigurationsCollection; + private final MongoCollection expeditionDeviceConfigurationsCollection; - public MongoObjectFactoryImpl(DB db) { + public MongoObjectFactoryImpl(MongoDatabase db) { this.expeditionDeviceConfigurationsCollection = db.getCollection(CollectionNames.EXPEDITION_DEVICE_CONFIGURATIONS.name()); - DBObject index = new BasicDBObject(); + BasicDBObject index = new BasicDBObject(); index.put(FieldNames.EXPEDITION_DEVICE_CONFIGURATION_UUID.name(), 1); - expeditionDeviceConfigurationsCollection.createIndex(index, new BasicDBObject("unique", true)); + expeditionDeviceConfigurationsCollection.createIndex(index, new IndexOptions().unique(true)); } - private BasicDBObject getExpeditionDeviceConfigurationDBKey(ExpeditionDeviceConfiguration expeditionDeviceConfiguration) { - final BasicDBObject basicDBObject = new BasicDBObject(FieldNames.EXPEDITION_DEVICE_CONFIGURATION_UUID.name(), expeditionDeviceConfiguration.getDeviceUuid()); + private Document getExpeditionDeviceConfigurationDBKey(ExpeditionDeviceConfiguration expeditionDeviceConfiguration) { + final Document basicDBObject = new Document(FieldNames.EXPEDITION_DEVICE_CONFIGURATION_UUID.name(), expeditionDeviceConfiguration.getDeviceUuid()); return basicDBObject; } @Override public void storeExpeditionDeviceConfiguration(ExpeditionDeviceConfiguration expeditionDeviceConfiguration) { - final BasicDBObject key = getExpeditionDeviceConfigurationDBKey(expeditionDeviceConfiguration); - final DBObject expeditionDeviceConfigurationDBObject = new BasicDBObject(); + final Document key = getExpeditionDeviceConfigurationDBKey(expeditionDeviceConfiguration); + final Document expeditionDeviceConfigurationDBObject = new Document(); expeditionDeviceConfigurationDBObject.put(FieldNames.EXPEDITION_DEVICE_CONFIGURATION_UUID.name(), expeditionDeviceConfiguration.getDeviceUuid()); expeditionDeviceConfigurationDBObject.put(FieldNames.EXPEDITION_DEVICE_CONFIGURATION_NAME.name(), expeditionDeviceConfiguration.getName()); expeditionDeviceConfigurationDBObject.put(FieldNames.EXPEDITION_DEVICE_CONFIGURATION_BOAT_ID.name(), expeditionDeviceConfiguration.getExpeditionBoatId()); @@ -39,7 +42,7 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { Exception lastException = null; while (attempt < 5 && !success) { try { - expeditionDeviceConfigurationsCollection.update(key, expeditionDeviceConfigurationDBObject, /* upsert */ true, /* multi */ false, WriteConcern.SAFE); + expeditionDeviceConfigurationsCollection.withWriteConcern(WriteConcern.ACKNOWLEDGED).replaceOne(key, expeditionDeviceConfigurationDBObject, new UpdateOptions().upsert(true)); success = true; attempt++; } catch (Exception e) { @@ -54,6 +57,6 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { @Override public void removeExpeditionDeviceConfiguration(ExpeditionDeviceConfiguration expeditionDeviceConfiguration) { - expeditionDeviceConfigurationsCollection.remove(getExpeditionDeviceConfigurationDBKey(expeditionDeviceConfiguration), WriteConcern.SAFE); + expeditionDeviceConfigurationsCollection.withWriteConcern(WriteConcern.ACKNOWLEDGED).deleteOne(getExpeditionDeviceConfigurationDBKey(expeditionDeviceConfiguration)); } } diff --git a/java/com.sap.sailing.expeditionconnector.test/src/com/sap/sailing/expeditionconnector/test/UDPExpeditionReceiverTest.java b/java/com.sap.sailing.expeditionconnector.test/src/com/sap/sailing/expeditionconnector/test/UDPExpeditionReceiverTest.java index f25acb0375f..1e3fed860af 100755 --- a/java/com.sap.sailing.expeditionconnector.test/src/com/sap/sailing/expeditionconnector/test/UDPExpeditionReceiverTest.java +++ b/java/com.sap.sailing.expeditionconnector.test/src/com/sap/sailing/expeditionconnector/test/UDPExpeditionReceiverTest.java @@ -72,7 +72,7 @@ import com.sap.sse.common.Util; import com.sap.sse.common.impl.MillisecondsTimePoint; public class UDPExpeditionReceiverTest { - @Rule public Timeout TestTimeout = new Timeout(60 * 1000); + @Rule public Timeout TestTimeout = Timeout.millis(60 * 1000); private String[] validLines; private String[] someValidWithFourInvalidLines; diff --git a/java/com.sap.sailing.expeditionconnector.test/src/com/sap/sailing/expeditionconnector/test/UDPMirrorTest.java b/java/com.sap.sailing.expeditionconnector.test/src/com/sap/sailing/expeditionconnector/test/UDPMirrorTest.java index b14aca3389c..93b07fd2804 100755 --- a/java/com.sap.sailing.expeditionconnector.test/src/com/sap/sailing/expeditionconnector/test/UDPMirrorTest.java +++ b/java/com.sap.sailing.expeditionconnector.test/src/com/sap/sailing/expeditionconnector/test/UDPMirrorTest.java @@ -18,7 +18,7 @@ import org.junit.rules.Timeout; import com.sap.sailing.expeditionconnector.UDPMirror; public class UDPMirrorTest { - @Rule public Timeout TestTimeout = new Timeout(60 * 1000); + @Rule public Timeout TestTimeout = Timeout.millis(60 * 1000); private static final int MIRROR_PORT = 33795; private static final int RECEIVING_PORT = 33796; diff --git a/java/com.sap.sailing.feature.p2build/raceanalysis.product b/java/com.sap.sailing.feature.p2build/raceanalysis.product index 01cef651b1f..be689b47a6a 100755 --- a/java/com.sap.sailing.feature.p2build/raceanalysis.product +++ b/java/com.sap.sailing.feature.p2build/raceanalysis.product @@ -42,10 +42,10 @@ - + - + @@ -53,7 +53,7 @@ - + @@ -76,6 +76,7 @@ + diff --git a/java/com.sap.sailing.feature.p2build/scripts/README b/java/com.sap.sailing.feature.p2build/scripts/README new file mode 100644 index 00000000000..cf419621e87 --- /dev/null +++ b/java/com.sap.sailing.feature.p2build/scripts/README @@ -0,0 +1,10 @@ +Scripts that may help to convert an OSGi .launch configuration into the autostart configuration section +for the .product file. + +Other scripts may help in adjusting the .launch configuration's start level and autostart settings to +what is defined in the .product file. + +Example usage: + + analyzeProduct.sh ../raceanalysis.product ../../com.sap.sailing.server/SailingServer\ \(No\ Proxy\,\ GENERATED\).launch + diff --git a/java/com.sap.sailing.feature.p2build/scripts/analyzeLaunch.sh b/java/com.sap.sailing.feature.p2build/scripts/analyzeLaunch.sh new file mode 100755 index 00000000000..6e54a0d1415 --- /dev/null +++ b/java/com.sap.sailing.feature.p2build/scripts/analyzeLaunch.sh @@ -0,0 +1,8 @@ +#!/bin/bash +target_bundles=$(cat "$1" | grep 'key="target_bundles"' | sed -e 's/^.* value="\([^"]*\)"\/>/\1/' | sed -e 's/,/\n/g' | sed -e 's/^\(.*\)@\(.*\):\(.*\)$/\1 \2 \3/') +workspace_bundles=$(cat "$1" | grep 'key="workspace_bundles"' | sed -e 's/^.* value="\([^"]*\)"\/>/\1/' | sed -e 's/,/\n/g' | sed -e 's/^\(.*\)@\(.*\):\(.*\)$/\1 \2 \3/') +echo " *** Target Bundles ***" +echo "$target_bundles" | sort +echo " *** Workspace Bundles ***" +echo "$workspace_bundles" | sort + diff --git a/java/com.sap.sailing.feature.p2build/scripts/analyzeProduct.sh b/java/com.sap.sailing.feature.p2build/scripts/analyzeProduct.sh new file mode 100755 index 00000000000..e25bad6e71f --- /dev/null +++ b/java/com.sap.sailing.feature.p2build/scripts/analyzeProduct.sh @@ -0,0 +1,71 @@ +#!/bin/bash +# Call like this: analyzeProduct.sh [] +# Will output two lines in format +# +# +# If a launch configuration file is provided as the second argument, it will be patched in-place by +# replacing the workspace_bundles and target_bundles string attributes by those generated by this script. + +# The product consists of the features and plugins it lists. Its section overrides +# the startLevel and autoStart defaults (4 / false) for a subset of the bundle list obtained from +# the features and plugins lists. The features that our product consists of are partitioned into +# ".runtime" and non-".runtime" features. The ".runtime" features obtain their bundles from the +# target platform, whereas the non-".runtime" features take their features from the workspace. + +# In order to derive the target/workspace bundles for a launch configuration, the bundles are +# extracted from the features. Those from the .runtime features are assigned to the target_bundles +# attribute, the others to the workspace_bundles attribute. Auto start and start level information +# will be set to default:default unless the bundle occurs in the section of the +# .product definition in which case the start level and auto start values are copied from the +# .product's section. + +GIT_ROOT=`dirname $0`/../../.. +echo "GIT ROOT: $GIT_ROOT" +features=$(cat "$1" | grep "feature id=" | sed -e 's/^.*feature id="\([^"]*\)".*$/\1/') +echo ' *** Features ***' +echo "$features" +feature_xml_files=$(for i in $features; do echo "${GIT_ROOT}/java/$i/feature.xml"; done) +echo "$feature_xml_files" +# Determine the bundles with a specific configuration in the .product file: +autostart_bundles=$(cat "$1" | grep "plugin id=.* startLevel=" | sed -e 's/^.* id="\(.*\)" autoStart="\(.*\)" startLevel="\([0-9]*\)".*$/\1 \3 \2/') +echo ' *** Autostart Bundles ***' +echo "$autostart_bundles" +# These autostart bundles need to be updated accordingly in the .launch configuration +# so they have the correct startLevel and autostart settings. The autostart bundles +# may occur either in the target_bundles or the workspace_bundles attribute in the .launch +# configuration. All other entries in the .launch configuration are set to @default:default. +# Now collect the bundles from the feature.xml files, split by workspace vs. target: +for feature in $features; do + feature_xml_file=${GIT_ROOT}/java/$feature/feature.xml + bundles_in_feature=$(cat "$feature_xml_file" | grep "id=\"" | grep -v "id=\"$feature\"" | sed -e 's/^.*id="\([^"]*\)".*$/\1/') + echo ' *** Bundles in feature' $feature '***' + echo "$bundles_in_feature" + for bundle in $bundles_in_feature; do + # find out whether we have a non-default configuration for the bundle + echo "$autostart_bundles" | grep -q '^'${bundle}' [^ ]* [^ ]*$' + if [ "$?" == "0" ]; then + # found a configuration for the bundle + echo ' *** Found a non-default configuration for bundle '${bundle}' ***' + bundle_spec_for_launch=$(echo "$autostart_bundles" | grep '^'${bundle}' [^ ]* [^ ]*$' | sed -e 's/^\([^ ]*\) \([^ ]*\) \([^ ]*\)$/\1@\2:\3/') + else + bundle_spec_for_launch="${bundle}@default:default" + fi + if [[ $feature =~ .runtime$ ]]; then + # contribute to target_bundles + target_bundles="${target_bundles},${bundle_spec_for_launch}" + else + # contribute to workspace_bundles + workspace_bundles="${workspace_bundles},${bundle_spec_for_launch}" + fi + done +done +echo ' *** Target Bundles ***' +echo "" +echo ' *** Workspace Bundles ***' +echo "" +# Now patch the .launch file if provided +if [ $# -ge 2 ]; then + echo "Patching $2 ..." + sed -i 's/ - - - - - - - - diff --git a/java/com.sap.sailing.feature/feature.xml b/java/com.sap.sailing.feature/feature.xml index 1a126624cb7..092a42c28a6 100755 --- a/java/com.sap.sailing.feature/feature.xml +++ b/java/com.sap.sailing.feature/feature.xml @@ -430,4 +430,33 @@ Computes leaderboard information for sailing races and offers RESTful APIs to al version="0.0.0" unpack="false"/> + + + + + + + + diff --git a/java/com.sap.sailing.geocoding.test/src/com/sap/sailing/geocoding/test/ReverseGeocoderTest.java b/java/com.sap.sailing.geocoding.test/src/com/sap/sailing/geocoding/test/ReverseGeocoderTest.java index 2104ad8896f..46acdbeb922 100644 --- a/java/com.sap.sailing.geocoding.test/src/com/sap/sailing/geocoding/test/ReverseGeocoderTest.java +++ b/java/com.sap.sailing.geocoding.test/src/com/sap/sailing/geocoding/test/ReverseGeocoderTest.java @@ -16,7 +16,7 @@ import com.sap.sailing.domain.common.impl.PlacemarkImpl; import com.sap.sailing.geocoding.ReverseGeocoder; import com.sap.sailing.geocoding.impl.ReverseGeocoderImpl; -import junit.framework.Assert; +import org.junit.Assert; public class ReverseGeocoderTest { private ReverseGeocoder geocoder; diff --git a/java/com.sap.sailing.gwt.ui.test/META-INF/MANIFEST.MF b/java/com.sap.sailing.gwt.ui.test/META-INF/MANIFEST.MF index ac591a61ec0..20f49f0b52c 100644 --- a/java/com.sap.sailing.gwt.ui.test/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.gwt.ui.test/META-INF/MANIFEST.MF @@ -16,7 +16,8 @@ Require-Bundle: com.sap.sailing.server, com.rabbitmq.client;bundle-version="2.8.4", com.sap.sse.filestorage, com.google.gwt.user;bundle-version="2.8.2";resolution:=optional, - org.moxieapps.gwt.highcharts;bundle-version="1.5.0" + org.moxieapps.gwt.highcharts;bundle-version="1.5.0", + com.sap.sse.replication;bundle-version="1.0.0" Bundle-ClassPath: . Import-Package: com.sap.sailing.domain.racelogtracking.impl, javax.servlet;version="3.1.0", diff --git a/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/PingMarkViaRegattaLogTest.java b/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/PingMarkViaRegattaLogTest.java index ef889b393bb..f01b0178749 100644 --- a/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/PingMarkViaRegattaLogTest.java +++ b/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/PingMarkViaRegattaLogTest.java @@ -21,7 +21,7 @@ import com.sap.sailing.domain.leaderboard.RegattaLeaderboard; import com.sap.sailing.domain.leaderboard.impl.HighPoint; import com.sap.sailing.domain.ranking.RankingMetricsFactory; import com.sap.sailing.gwt.ui.shared.MarkDTO; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; public class PingMarkViaRegattaLogTest { private SailingServiceImplMock sailingService; @@ -37,7 +37,7 @@ public class PingMarkViaRegattaLogTest { @Test public void testPinging() throws DoesNotHaveRegattaLogException { - service.getMongoObjectFactory().getDatabase().dropDatabase(); + service.getMongoObjectFactory().getDatabase().drop(); Series series = new SeriesImpl("series", false, /* isFleetsCanRunInParallel */ true, Collections.singletonList(fleet), Collections.singletonList(columnName), service); Regatta regatta = service.createRegatta(RegattaImpl.getDefaultName("regatta", "Laser"), "Laser", diff --git a/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/SailingServiceImplMock.java b/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/SailingServiceImplMock.java index f4394e4f1e8..b46019ffdff 100755 --- a/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/SailingServiceImplMock.java +++ b/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/SailingServiceImplMock.java @@ -26,8 +26,8 @@ import com.sap.sailing.domain.tracking.RaceTrackingHandler; import com.sap.sailing.domain.tracking.TrackerManager; import com.sap.sailing.domain.tractracadapter.TracTracAdapterFactory; import com.sap.sailing.gwt.ui.server.SailingServiceImpl; -import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.impl.RacingEventServiceImpl; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sailing.xrr.schema.RegattaResults; import com.sap.sse.replication.Replicable; import com.sap.sse.replication.ReplicationService; diff --git a/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/SlicingTest.java b/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/SlicingTest.java index 1a4e172f0b5..f452ff75ebb 100644 --- a/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/SlicingTest.java +++ b/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/SlicingTest.java @@ -44,7 +44,7 @@ import com.sap.sse.common.impl.CountryCodeFactoryImpl; import com.sap.sse.common.impl.MillisecondsTimePoint; import com.sap.sse.util.ClearStateTestSupport; -import junit.framework.Assert; +import org.junit.Assert; public class SlicingTest { private final String regattaName = "test"; 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 a5ed2dbda32..82fabcd640f 100644 --- a/java/com.sap.sailing.gwt.ui/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.gwt.ui/META-INF/MANIFEST.MF @@ -8,9 +8,9 @@ Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Require-Bundle: com.sap.sailing.domain, com.sap.sailing.domain.shared.android, com.sap.sailing.server, + com.sap.sailing.server.interface, com.sap.sailing.domain.tractracadapter, com.sap.sse.mongodb, - org.mongodb.mongo-java-driver;bundle-version="2.13.0", com.sap.sailing.domain.swisstimingadapter, com.sap.sailing.domain.persistence, com.sap.sailing.domain.swisstimingadapter.persistence, @@ -20,7 +20,7 @@ Require-Bundle: com.sap.sailing.domain, org.moxieapps.gwt.highcharts;bundle-version="1.5.0";resolution:=optional, com.github.branflake2267.gwt-maps-api;bundle-version="3.10";resolution:=optional, com.sap.sailing.geocoding, - com.sap.sse.replication, + com.sap.sse.replication.interfaces, com.googlecode.java-diff-utils;bundle-version="1.3.0", com.sap.sailing.freg.resultimport, com.sap.sailing.domain.swisstimingreplayadapter, @@ -58,7 +58,8 @@ Require-Bundle: com.sap.sailing.domain, com.sap.sailing.expeditionconnector, com.sap.sailing.expeditionconnector.common, org.mp4parser.isoparser;bundle-version="1.9.37", - com.sap.sse.datamining.ui + com.sap.sse.datamining.ui, + org.eclipse.orbit.mongodb;bundle-version="3.2.2" Bundle-Activator: com.sap.sailing.gwt.ui.server.Activator Bundle-ActivationPolicy: lazy Import-Package: javax.servlet;version="3.1.0", diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/communication/SailingDispatchContext.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/communication/SailingDispatchContext.java index bbfc7e69778..bf77d63943e 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/communication/SailingDispatchContext.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/communication/SailingDispatchContext.java @@ -6,7 +6,7 @@ import java.util.Locale; import com.google.gwt.core.shared.GwtIncompatible; import com.sap.sailing.domain.windfinder.WindFinderTrackerFactory; import com.sap.sailing.news.EventNewsService; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sailing.server.statistics.TrackedRaceStatisticsCache; import com.sap.sse.gwt.dispatch.client.system.DispatchContext; import com.sap.sse.security.SecurityService; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/communication/anniversary/GetAnniversariesAction.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/communication/anniversary/GetAnniversariesAction.java index c1f2d75d4ac..4af3da0043d 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/communication/anniversary/GetAnniversariesAction.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/communication/anniversary/GetAnniversariesAction.java @@ -13,7 +13,7 @@ import com.sap.sailing.gwt.home.communication.SailingDispatchContext; import com.sap.sailing.gwt.home.communication.event.EventState; import com.sap.sailing.gwt.server.HomeServiceUtil; import com.sap.sailing.gwt.server.HomeServiceUtil.EventVisitor; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.common.Duration; import com.sap.sse.common.Util.Pair; import com.sap.sse.gwt.dispatch.shared.commands.ResultWithTTL; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/communication/search/GetSearchResultsAction.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/communication/search/GetSearchResultsAction.java index 323131f35f9..2c9ac5e41e0 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/communication/search/GetSearchResultsAction.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/communication/search/GetSearchResultsAction.java @@ -7,7 +7,7 @@ import com.sap.sailing.domain.base.LeaderboardSearchResultBase; import com.sap.sailing.domain.base.RemoteSailingServerReference; import com.sap.sailing.gwt.home.communication.SailingAction; import com.sap.sailing.gwt.home.communication.SailingDispatchContext; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.common.Util; import com.sap.sse.common.search.KeywordQuery; import com.sap.sse.common.search.Result; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/communication/user/profile/sailorprofile/DataMiningQueryCreatorForSailorProfiles.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/communication/user/profile/sailorprofile/DataMiningQueryCreatorForSailorProfiles.java index 510df35eabf..676674ac4cd 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/communication/user/profile/sailorprofile/DataMiningQueryCreatorForSailorProfiles.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/communication/user/profile/sailorprofile/DataMiningQueryCreatorForSailorProfiles.java @@ -11,7 +11,7 @@ import com.sap.sailing.datamining.data.HasLeaderboardGroupContext; import com.sap.sailing.datamining.data.HasRaceOfCompetitorContext; import com.sap.sailing.datamining.data.HasTrackedRaceContext; import com.sap.sailing.gwt.home.communication.user.profile.domain.SailorProfileNumericStatisticType; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.common.Distance; import com.sap.sse.datamining.shared.DataMiningQuerySerializer; import com.sap.sse.datamining.shared.dto.StatisticQueryDefinitionDTO; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/communication/user/profile/sailorprofile/SailorProfileConverter.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/communication/user/profile/sailorprofile/SailorProfileConverter.java index 670ac8f08de..5561b801170 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/communication/user/profile/sailorprofile/SailorProfileConverter.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/communication/user/profile/sailorprofile/SailorProfileConverter.java @@ -19,8 +19,8 @@ import com.sap.sailing.domain.leaderboard.LeaderboardGroup; import com.sap.sailing.gwt.home.communication.event.SimpleCompetitorWithIdDTO; import com.sap.sailing.gwt.home.communication.user.profile.domain.BadgeDTO; import com.sap.sailing.gwt.home.communication.user.profile.domain.SailorProfileDTO; -import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.impl.preferences.model.SailorProfilePreference; +import com.sap.sailing.server.interfaces.RacingEventService; public interface SailorProfileConverter { /** diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/server/EventActionUtil.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/server/EventActionUtil.java index deefaec7454..68b9b4369b9 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/server/EventActionUtil.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/server/EventActionUtil.java @@ -15,7 +15,7 @@ import com.sap.sailing.domain.leaderboard.RegattaLeaderboard; import com.sap.sailing.gwt.home.communication.SailingDispatchContext; import com.sap.sailing.gwt.home.communication.event.EventState; import com.sap.sailing.gwt.server.HomeServiceUtil; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sailing.server.util.EventUtil; import com.sap.sse.common.Duration; import com.sap.sse.common.TimePoint; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/server/LeaderboardContext.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/server/LeaderboardContext.java index 8516a95c80e..73e3e3bf97a 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/server/LeaderboardContext.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/server/LeaderboardContext.java @@ -35,7 +35,7 @@ import com.sap.sailing.gwt.home.communication.eventview.RegattaMetadataDTO; import com.sap.sailing.gwt.home.communication.regatta.RegattaWithProgressDTO; import com.sap.sailing.gwt.home.server.EventActionUtil.RaceCallback; import com.sap.sailing.gwt.server.HomeServiceUtil; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sailing.util.RegattaUtil; import com.sap.sse.common.Distance; import com.sap.sse.common.Duration; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/server/RaceContext.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/server/RaceContext.java index 2e313562472..ad4fa75d0ef 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/server/RaceContext.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/server/RaceContext.java @@ -54,7 +54,7 @@ import com.sap.sailing.gwt.home.communication.race.SimpleRaceMetadataDTO.RaceTra import com.sap.sailing.gwt.home.communication.race.SimpleRaceMetadataDTO.RaceViewState; import com.sap.sailing.gwt.home.communication.race.wind.SimpleWindDTO; import com.sap.sailing.gwt.server.HomeServiceUtil; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.common.Duration; import com.sap.sse.common.TimePoint; import com.sap.sse.common.TimeRange; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/server/SailingDispatchContextImpl.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/server/SailingDispatchContextImpl.java index d0c30bb7efa..3376177ec7a 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/server/SailingDispatchContextImpl.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/server/SailingDispatchContextImpl.java @@ -13,7 +13,7 @@ import com.sap.sailing.domain.windfinder.WindFinderTrackerFactory; import com.sap.sailing.gwt.home.communication.SailingDispatchContext; import com.sap.sailing.gwt.server.HomeServiceUtil; import com.sap.sailing.news.EventNewsService; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sailing.server.statistics.TrackedRaceStatisticsCache; import com.sap.sse.gwt.dispatch.shared.exceptions.DispatchException; import com.sap.sse.gwt.dispatch.shared.exceptions.ServerDispatchException; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/server/servlets/SailingDispatchServlet.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/server/servlets/SailingDispatchServlet.java index fa49c0b7cf6..8b195ce121f 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/server/servlets/SailingDispatchServlet.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/server/servlets/SailingDispatchServlet.java @@ -17,7 +17,7 @@ import com.sap.sailing.gwt.home.communication.SailingDispatchContext; import com.sap.sailing.gwt.home.server.SailingDispatchContextImpl; import com.sap.sailing.gwt.ui.server.Activator; import com.sap.sailing.news.EventNewsService; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sailing.server.statistics.TrackedRaceStatisticsCache; import com.sap.sse.gwt.dispatch.client.transport.gwtrpc.RequestWrapper; import com.sap.sse.gwt.dispatch.servlets.AbstractDispatchServlet; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/server/EventListDataCalculator.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/server/EventListDataCalculator.java index 99c233fdabb..29c6d0a3c51 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/server/EventListDataCalculator.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/server/EventListDataCalculator.java @@ -15,7 +15,7 @@ import com.sap.sailing.gwt.home.communication.eventlist.EventListEventDTO; import com.sap.sailing.gwt.home.communication.eventlist.EventListEventSeriesDTO; import com.sap.sailing.gwt.home.communication.eventlist.EventListViewDTO; import com.sap.sailing.gwt.server.HomeServiceUtil.EventVisitor; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sailing.server.util.EventUtil; public class EventListDataCalculator implements EventVisitor { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/server/HomeServiceUtil.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/server/HomeServiceUtil.java index 921c227e34c..73281c2d285 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/server/HomeServiceUtil.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/server/HomeServiceUtil.java @@ -41,7 +41,7 @@ import com.sap.sailing.gwt.home.communication.eventlist.EventListEventDTO; import com.sap.sailing.gwt.home.communication.media.SailingVideoDTO; import com.sap.sailing.gwt.home.communication.start.EventStageDTO; import com.sap.sailing.gwt.home.communication.start.StageEventType; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sailing.server.util.EventUtil; import com.sap.sse.common.TimePoint; import com.sap.sse.common.Util; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/server/ServerConfigurationServiceImpl.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/server/ServerConfigurationServiceImpl.java index 59d4b5fea8f..e3aee5b4476 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/server/ServerConfigurationServiceImpl.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/server/ServerConfigurationServiceImpl.java @@ -5,7 +5,7 @@ import org.osgi.util.tracker.ServiceTracker; import com.sap.sailing.gwt.ui.client.ServerConfigurationService; import com.sap.sailing.gwt.ui.server.Activator; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.gwt.dispatch.servlets.ProxiedRemoteServiceServlet; import com.sap.sse.util.ServiceTrackerFactory; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/DataMiningServiceImpl.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/DataMiningServiceImpl.java old mode 100755 new mode 100644 index 9647edb3d0a..e32daf0363c --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/DataMiningServiceImpl.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/DataMiningServiceImpl.java @@ -20,7 +20,7 @@ import org.osgi.util.tracker.ServiceTracker; import com.google.gwt.user.server.rpc.RemoteServiceServlet; import com.sap.sailing.domain.common.security.SecuredDomainType; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.common.settings.SerializableSettings; import com.sap.sse.datamining.DataMiningServer; import com.sap.sse.datamining.Query; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/MediaServiceImpl.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/MediaServiceImpl.java index 47d12a559bc..618832caf5a 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/MediaServiceImpl.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/MediaServiceImpl.java @@ -45,7 +45,7 @@ import com.sap.sailing.domain.common.security.SecuredDomainType; import com.sap.sailing.gwt.ui.client.MediaService; import com.sap.sailing.media.mp4.MP4MediaParser; import com.sap.sailing.media.mp4.MP4ParserFakeFile; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.common.Duration; import com.sap.sse.common.impl.MillisecondsDurationImpl; import com.sap.sse.security.Action; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/QuickRanksLiveCache.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/QuickRanksLiveCache.java index 2410a3e540a..0012d6e7eaf 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/QuickRanksLiveCache.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/QuickRanksLiveCache.java @@ -9,11 +9,11 @@ import java.util.logging.Level; import java.util.logging.Logger; import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; +import com.sap.sailing.domain.tracking.DummyTrackedRace; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.domain.tracking.impl.AbstractRaceChangeListener; import com.sap.sailing.gwt.ui.shared.QuickRankDTO; import com.sap.sailing.gwt.ui.shared.QuickRanksDTO; -import com.sap.sailing.server.masterdata.DummyTrackedRace; import com.sap.sse.util.SmartFutureCache; import com.sap.sse.util.SmartFutureCache.AbstractCacheUpdater; import com.sap.sse.util.SmartFutureCache.UpdateInterval; 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 c2cd6fed2cd..9e89b1d21cf 100755 --- 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 @@ -472,7 +472,8 @@ import com.sap.sailing.manage2sail.RaceResultDescriptor; import com.sap.sailing.manage2sail.RegattaResultDescriptor; import com.sap.sailing.resultimport.ResultUrlProvider; import com.sap.sailing.resultimport.ResultUrlRegistry; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.SimulationService; import com.sap.sailing.server.hierarchy.SailingHierarchyOwnershipUpdater; import com.sap.sailing.server.masterdata.MasterDataImporter; import com.sap.sailing.server.operationaltransformation.AddColumnToLeaderboard; @@ -530,7 +531,6 @@ import com.sap.sailing.server.operationaltransformation.UpdateServerConfiguratio import com.sap.sailing.server.operationaltransformation.UpdateSpecificRegatta; import com.sap.sailing.server.security.PermissionAwareRaceTrackingHandler; import com.sap.sailing.server.security.SailingViewerRole; -import com.sap.sailing.server.simulation.SimulationService; import com.sap.sailing.server.util.WaitForTrackedRaceUtil; import com.sap.sailing.simulator.Path; import com.sap.sailing.simulator.PolarDiagram; @@ -589,11 +589,10 @@ import com.sap.sse.pairinglist.PairingListTemplate; import com.sap.sse.pairinglist.impl.PairingListTemplateImpl; import com.sap.sse.qrcode.QRCodeGenerationUtil; import com.sap.sse.replication.OperationWithResult; +import com.sap.sse.replication.ReplicaDescriptor; import com.sap.sse.replication.Replicable; -import com.sap.sse.replication.ReplicationFactory; import com.sap.sse.replication.ReplicationMasterDescriptor; import com.sap.sse.replication.ReplicationService; -import com.sap.sse.replication.impl.ReplicaDescriptor; import com.sap.sse.security.Action; import com.sap.sse.security.ActionWithResult; import com.sap.sse.security.SecurityService; @@ -4079,9 +4078,10 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S public void startReplicatingFromMaster(String messagingHost, String masterHost, String exchangeName, int servletPort, int messagingPort) throws IOException, ClassNotFoundException, InterruptedException { // The queue name must always be the same for this server. In order to achieve // this we're using the unique server identifier - getReplicationService().startToReplicateFrom( - ReplicationFactory.INSTANCE.createReplicationMasterDescriptor(messagingHost, masterHost, exchangeName, servletPort, messagingPort, - /* use local server identifier as queue name */ getReplicationService().getServerIdentifier().toString(), getReplicationService().getAllReplicables())); + final ReplicationService replicationService = getReplicationService(); + replicationService.startToReplicateFrom( + replicationService.createReplicationMasterDescriptor(messagingHost, masterHost, exchangeName, servletPort, messagingPort, + /* use local server identifier as queue name */ replicationService.getServerIdentifier().toString(), replicationService.getAllReplicables())); } @Override diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SimulatorServiceImpl.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SimulatorServiceImpl.java index e75d75eb1b4..48cfa6b2f3a 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SimulatorServiceImpl.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SimulatorServiceImpl.java @@ -50,7 +50,7 @@ import com.sap.sailing.gwt.ui.simulator.windpattern.WindPatternDisplay; import com.sap.sailing.gwt.ui.simulator.windpattern.WindPatternDisplayManager; import com.sap.sailing.gwt.ui.simulator.windpattern.WindPatternNotFoundException; import com.sap.sailing.gwt.ui.simulator.windpattern.WindPatternSetting; -import com.sap.sailing.server.simulation.SimulationService; +import com.sap.sailing.server.interfaces.SimulationService; import com.sap.sailing.server.simulation.SimulationServiceFactory; import com.sap.sailing.simulator.BoatClassProperties; import com.sap.sailing.simulator.Grid; diff --git a/java/com.sap.sailing.manage2sail.resultimport.test/META-INF/MANIFEST.MF b/java/com.sap.sailing.manage2sail.resultimport.test/META-INF/MANIFEST.MF index 62b1746e6c8..2d2ab316047 100644 --- a/java/com.sap.sailing.manage2sail.resultimport.test/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.manage2sail.resultimport.test/META-INF/MANIFEST.MF @@ -8,7 +8,7 @@ Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Import-Package: com.sap.sailing.domain.common, com.sap.sailing.domain.leaderboard, com.sap.sailing.domain.persistence, - com.sap.sailing.server, + com.sap.sailing.server.interfaces, com.sap.sailing.server.impl, com.sap.sailing.xrr.schema, org.osgi.framework;version="1.5.0" diff --git a/java/com.sap.sailing.manage2sail.resultimport.test/src/com/sap/sailing/manage2sail/resultimport/test/PersistenceTest.java b/java/com.sap.sailing.manage2sail.resultimport.test/src/com/sap/sailing/manage2sail/resultimport/test/PersistenceTest.java index a6c7bcc8a59..3d4c40731f7 100644 --- a/java/com.sap.sailing.manage2sail.resultimport.test/src/com/sap/sailing/manage2sail/resultimport/test/PersistenceTest.java +++ b/java/com.sap.sailing.manage2sail.resultimport.test/src/com/sap/sailing/manage2sail/resultimport/test/PersistenceTest.java @@ -5,7 +5,7 @@ import java.net.URL; import java.util.Map; import java.util.Set; -import junit.framework.Assert; +import org.junit.Assert; import org.junit.Test; @@ -13,8 +13,8 @@ import com.sap.sailing.domain.persistence.DomainObjectFactory; import com.sap.sailing.domain.persistence.MongoObjectFactory; import com.sap.sailing.resultimport.ResultUrlRegistry; import com.sap.sailing.resultimport.impl.ResultUrlRegistryImpl; -import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.impl.RacingEventServiceImpl; +import com.sap.sailing.server.interfaces.RacingEventService; @SuppressWarnings("restriction") public class PersistenceTest { diff --git a/java/com.sap.sailing.media.persistence.test/META-INF/MANIFEST.MF b/java/com.sap.sailing.media.persistence.test/META-INF/MANIFEST.MF index 566e5e310c9..b40f293bb90 100644 --- a/java/com.sap.sailing.media.persistence.test/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.media.persistence.test/META-INF/MANIFEST.MF @@ -5,8 +5,7 @@ Bundle-SymbolicName: com.sap.sailing.media.persistence.test Bundle-Version: 1.0.0.qualifier Bundle-Vendor: SAP Bundle-RequiredExecutionEnvironment: JavaSE-1.8 -Require-Bundle: org.mongodb.mongo-java-driver;bundle-version="2.13.0", - com.sap.sse.mongodb, +Require-Bundle: com.sap.sse.mongodb, org.json.simple;bundle-version="1.1.0", org.hamcrest.core;bundle-version="1.1.0", org.junit;bundle-version="4.8.2", @@ -14,5 +13,6 @@ Require-Bundle: org.mongodb.mongo-java-driver;bundle-version="2.13.0", com.sap.sailing.gwt.ui;bundle-version="1.0.0", com.sap.sailing.domain.common;bundle-version="1.0.0", org.hamcrest;bundle-version="1.1.0", - com.sap.sse.common + com.sap.sse.common, + org.eclipse.orbit.mongodb;bundle-version="3.2.2" Automatic-Module-Name: com.sap.sailing.media.persistence.test diff --git a/java/com.sap.sailing.media.persistence.test/src/com/sap/sailing/media/persistence/test/AbstractMongoDBTest.java b/java/com.sap.sailing.media.persistence.test/src/com/sap/sailing/media/persistence/test/AbstractMongoDBTest.java index b699b8572c1..0cb6386e8f8 100644 --- a/java/com.sap.sailing.media.persistence.test/src/com/sap/sailing/media/persistence/test/AbstractMongoDBTest.java +++ b/java/com.sap.sailing.media.persistence.test/src/com/sap/sailing/media/persistence/test/AbstractMongoDBTest.java @@ -6,16 +6,16 @@ import java.net.UnknownHostException; import org.junit.Before; -import com.mongodb.DB; import com.mongodb.Mongo; import com.mongodb.MongoClient; import com.mongodb.MongoException; +import com.mongodb.client.MongoDatabase; import com.sap.sse.mongodb.MongoDBConfiguration; import com.sap.sse.mongodb.MongoDBService; public abstract class AbstractMongoDBTest { protected final Mongo mongo; - protected final DB db; + protected final MongoDatabase db; private final MongoDBConfiguration dbConfiguration; private MongoDBService service; @@ -41,8 +41,8 @@ public abstract class AbstractMongoDBTest { assertNotNull(db); } - private void dropAllCollections(DB theDB) throws InterruptedException { - db.dropDatabase(); + private void dropAllCollections(MongoDatabase theDB) throws InterruptedException { + db.drop(); } protected MongoDBService getMongoService() { 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 500865b4bb9..f0b73f2d759 100644 --- a/java/com.sap.sailing.mongodb.test/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.mongodb.test/META-INF/MANIFEST.MF @@ -13,6 +13,7 @@ Require-Bundle: com.sap.sailing.domain, com.sap.sailing.domain.tractracadapter, com.sap.sailing.domain.persistence, com.sap.sailing.server, + com.sap.sailing.server.interface, com.sap.sailing.expeditionconnector, org.json.simple;bundle-version="1.1.0", com.sap.sailing.domain.swisstimingadapter, @@ -25,7 +26,7 @@ Require-Bundle: com.sap.sailing.domain, com.sap.sailing.server.gateway, com.sap.sse.common, com.sap.sse.operationaltransformation, - com.sap.sse.replication, + com.sap.sse.replication.interfaces, com.sap.sse, com.sap.sse.filestorage, com.sap.sse.shared.android, diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/AbstractConnectivityParamsLoadAndStoreTest.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/AbstractConnectivityParamsLoadAndStoreTest.java index e0f6ee732c2..c3d3fbd039f 100644 --- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/AbstractConnectivityParamsLoadAndStoreTest.java +++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/AbstractConnectivityParamsLoadAndStoreTest.java @@ -7,8 +7,8 @@ import org.junit.Before; import com.mongodb.MongoException; import com.sap.sailing.domain.persistence.DomainObjectFactory; import com.sap.sailing.domain.persistence.MongoObjectFactory; -import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.impl.RacingEventServiceImpl; +import com.sap.sailing.server.interfaces.RacingEventService; public abstract class AbstractConnectivityParamsLoadAndStoreTest extends AbstractMongoDBTest { protected MockConnectivityParamsServiceFinderFactory serviceFinderFactory; 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 5b1db8b0263..32a94a3c26d 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 @@ -7,16 +7,16 @@ import java.net.UnknownHostException; import org.junit.After; import org.junit.Before; -import com.mongodb.DB; import com.mongodb.Mongo; import com.mongodb.MongoClient; import com.mongodb.MongoException; +import com.mongodb.client.MongoDatabase; import com.sap.sse.mongodb.MongoDBConfiguration; import com.sap.sse.mongodb.MongoDBService; public abstract class AbstractMongoDBTest { protected Mongo mongo; - protected DB db; + protected MongoDatabase db; private final MongoDBConfiguration dbConfiguration; private MongoDBService mongoDBService; @@ -46,8 +46,8 @@ public abstract class AbstractMongoDBTest { public void tearDown() { } - private void dropAllCollections(DB theDB) throws InterruptedException { - db.dropDatabase(); + private void dropAllCollections(MongoDatabase theDB) throws InterruptedException { + db.drop(); } protected MongoDBService getMongoService() { 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 6329ac72326..2d5b88d93e2 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 @@ -2,9 +2,11 @@ package com.sap.sailing.mongodb.test; import java.net.UnknownHostException; -import com.mongodb.DBCollection; +import org.bson.Document; + import com.mongodb.DBObject; import com.mongodb.MongoException; +import com.mongodb.client.MongoCollection; import com.sap.sailing.domain.persistence.impl.FieldNames; import com.sap.sailing.domain.persistence.impl.MongoObjectFactoryImpl; import com.sap.sse.common.impl.DegreeBearingImpl; @@ -24,13 +26,13 @@ public class ConvertWindData extends AbstractMongoDBTest { public static void main(String[] args) { MongoObjectFactoryImpl mof = new MongoObjectFactoryImpl(MongoDBService.INSTANCE.getDB()); - DBCollection windTracksCollection = mof.getWindTrackCollection(); - for (DBObject dbo : windTracksCollection.find()) { - windTracksCollection.remove(dbo); + MongoCollection windTracksCollection = mof.getWindTrackCollection(); + for (Document dbo : windTracksCollection.find()) { + windTracksCollection.deleteOne(dbo); DBObject wind = (DBObject) dbo.get(FieldNames.WIND.name()); wind.put(FieldNames.DEGREE_BEARING.name(), new DegreeBearingImpl((Double) wind.get(FieldNames.DEGREE_BEARING.name())).reverse().getDegrees()); - windTracksCollection.insert(dbo); + windTracksCollection.insertOne(dbo); } } } diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/MockConnectivityParamsServiceFinderFactory.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/MockConnectivityParamsServiceFinderFactory.java index 697cd9c9b84..174a3b3daa6 100644 --- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/MockConnectivityParamsServiceFinderFactory.java +++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/MockConnectivityParamsServiceFinderFactory.java @@ -24,8 +24,8 @@ import com.sap.sailing.domain.tracking.RaceTrackingConnectivityParametersHandler import com.sap.sailing.domain.tractracadapter.TracTracAdapterFactory; import com.sap.sailing.domain.tractracadapter.impl.RaceTrackingConnectivityParametersImpl; import com.sap.sailing.domain.tractracadapter.persistence.impl.TracTracConnectivityParamsHandler; -import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.impl.RacingEventServiceImpl; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.common.NoCorrespondingServiceRegisteredException; import com.sap.sse.common.TypeBasedServiceFinder; import com.sap.sse.common.TypeBasedServiceFinderFactory; diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/RaceLogMongoDBTest.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/RaceLogMongoDBTest.java index 7705060c7aa..dae80c102eb 100644 --- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/RaceLogMongoDBTest.java +++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/RaceLogMongoDBTest.java @@ -7,6 +7,7 @@ import java.net.UnknownHostException; import java.util.Iterator; import java.util.UUID; +import org.junit.Assert; import org.junit.Before; import com.mongodb.MongoException; @@ -41,8 +42,6 @@ import com.sap.sse.common.Util; import com.sap.sse.common.impl.AbstractColor; import com.sap.sse.common.impl.DegreeBearingImpl; -import junit.framework.Assert; - public abstract class RaceLogMongoDBTest extends AbstractMongoDBTest { String raceColumnName = "My.First$Race$1"; diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/StoreAndLoadBoatsTest.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/StoreAndLoadBoatsTest.java index 37551cf7a3d..83ec8f083cd 100644 --- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/StoreAndLoadBoatsTest.java +++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/StoreAndLoadBoatsTest.java @@ -10,10 +10,10 @@ import java.util.UUID; import org.junit.Before; import org.junit.Test; -import com.mongodb.DB; -import com.mongodb.DBCollection; import com.mongodb.MongoException; import com.mongodb.WriteConcern; +import com.mongodb.client.MongoCollection; +import com.mongodb.client.MongoDatabase; import com.sap.sailing.domain.base.BoatClass; import com.sap.sailing.domain.base.DomainFactory; import com.sap.sailing.domain.base.impl.BoatClassImpl; @@ -41,10 +41,9 @@ public class StoreAndLoadBoatsTest extends AbstractMongoDBTest { } private void dropBoatCollection() { - DB db = getMongoService().getDB(); - DBCollection boatCollection = db.getCollection(CollectionNames.BOATS.name()); - boatCollection.setWriteConcern(WriteConcern.SAFE); // ensure that the drop() has happened - boatCollection.drop(); + MongoDatabase db = getMongoService().getDB(); + MongoCollection boatCollection = db.getCollection(CollectionNames.BOATS.name()); + boatCollection.withWriteConcern(WriteConcern.ACKNOWLEDGED).drop(); } @Test diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/StoreAndLoadCompetitorsTest.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/StoreAndLoadCompetitorsTest.java index c46083d05f0..be2af4ca296 100755 --- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/StoreAndLoadCompetitorsTest.java +++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/StoreAndLoadCompetitorsTest.java @@ -13,10 +13,10 @@ import java.util.UUID; import org.junit.Before; import org.junit.Test; -import com.mongodb.DB; -import com.mongodb.DBCollection; import com.mongodb.MongoException; import com.mongodb.WriteConcern; +import com.mongodb.client.MongoCollection; +import com.mongodb.client.MongoDatabase; import com.sap.sailing.domain.base.BoatClass; import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.base.CompetitorWithBoat; @@ -73,13 +73,11 @@ public class StoreAndLoadCompetitorsTest extends AbstractMongoDBTest { } private void dropCompetitorAndBoatsCollection() { - DB db = getMongoService().getDB(); - DBCollection competitorCollection = db.getCollection(CollectionNames.COMPETITORS.name()); - competitorCollection.setWriteConcern(WriteConcern.SAFE); // ensure that the drop() has happened - competitorCollection.drop(); - DBCollection boatsCollection = db.getCollection(CollectionNames.BOATS.name()); - boatsCollection.setWriteConcern(WriteConcern.SAFE); // ensure that the drop() has happened - boatsCollection.drop(); + MongoDatabase db = getMongoService().getDB(); + MongoCollection competitorCollection = db.getCollection(CollectionNames.COMPETITORS.name()); + competitorCollection.withWriteConcern(WriteConcern.ACKNOWLEDGED).drop(); + MongoCollection boatsCollection = db.getCollection(CollectionNames.BOATS.name()); + boatsCollection.withWriteConcern(WriteConcern.ACKNOWLEDGED).drop(); // ensure that the drop() has happened } @Test diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/StoreAndLoadRaceLogEventsTest.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/StoreAndLoadRaceLogEventsTest.java index 0698183a78b..bc50d5faca0 100644 --- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/StoreAndLoadRaceLogEventsTest.java +++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/StoreAndLoadRaceLogEventsTest.java @@ -13,10 +13,10 @@ import java.util.Collections; import java.util.List; import java.util.UUID; +import org.bson.Document; import org.junit.Before; import org.junit.Test; -import com.mongodb.DBObject; import com.mongodb.MongoException; import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor; import com.sap.sailing.domain.abstractlog.impl.LogEventAuthorImpl; @@ -93,7 +93,7 @@ public class StoreAndLoadRaceLogEventsTest extends AbstractMongoDBTest { RaceLogFlagEvent expectedEvent = new RaceLogFlagEventImpl(MillisecondsTimePoint.now(), expectedEventTime, null, expectedId, expectedPassId, Flags.NONE, Flags.NONE, true); - DBObject dbObject = mongoFactory.storeRaceLogEntry(logIdentifier, expectedEvent); + Document dbObject = mongoFactory.storeRaceLogEntry(logIdentifier, expectedEvent); RaceLogFlagEvent actualEvent = loadEvent(dbObject); assertNull(expectedEvent.getAuthor()); @@ -111,7 +111,7 @@ public class StoreAndLoadRaceLogEventsTest extends AbstractMongoDBTest { RaceLogFlagEvent expectedEvent = new RaceLogFlagEventImpl(MillisecondsTimePoint.now(), expectedEventTime, author, expectedId, expectedPassId, upperFlag, lowerFlag, isDisplayed); - DBObject dbObject = mongoFactory.storeRaceLogEntry(logIdentifier, expectedEvent); + Document dbObject = mongoFactory.storeRaceLogEntry(logIdentifier, expectedEvent); RaceLogFlagEvent actualEvent = loadEvent(dbObject); assertBaseFields(expectedEvent, actualEvent); @@ -125,7 +125,7 @@ public class StoreAndLoadRaceLogEventsTest extends AbstractMongoDBTest { RaceLogPassChangeEvent expectedEvent = new RaceLogPassChangeEventImpl(MillisecondsTimePoint.now(), expectedEventTime, author, expectedId, expectedPassId); - DBObject dbObject = mongoFactory.storeRaceLogEntry(logIdentifier, expectedEvent); + Document dbObject = mongoFactory.storeRaceLogEntry(logIdentifier, expectedEvent); RaceLogPassChangeEvent actualEvent = loadEvent(dbObject); assertBaseFields(expectedEvent, actualEvent); @@ -137,7 +137,7 @@ public class StoreAndLoadRaceLogEventsTest extends AbstractMongoDBTest { RaceLogRaceStatusEvent expectedEvent = new RaceLogRaceStatusEventImpl(MillisecondsTimePoint.now(), expectedEventTime, author, expectedId, expectedPassId, status); - DBObject dbObject = mongoFactory.storeRaceLogEntry(logIdentifier, expectedEvent); + Document dbObject = mongoFactory.storeRaceLogEntry(logIdentifier, expectedEvent); RaceLogRaceStatusEvent actualEvent = loadEvent(dbObject); assertBaseFields(expectedEvent, actualEvent); @@ -150,7 +150,7 @@ public class StoreAndLoadRaceLogEventsTest extends AbstractMongoDBTest { RaceLogStartTimeEvent expectedEvent = new RaceLogStartTimeEventImpl(MillisecondsTimePoint.now(), expectedEventTime, author, expectedId, expectedPassId, startTime, RaceLogRaceStatus.SCHEDULED); - DBObject dbObject = mongoFactory.storeRaceLogEntry(logIdentifier, expectedEvent); + Document dbObject = mongoFactory.storeRaceLogEntry(logIdentifier, expectedEvent); RaceLogStartTimeEvent actualEvent = loadEvent(dbObject); assertBaseFields(expectedEvent, actualEvent); @@ -166,7 +166,7 @@ public class StoreAndLoadRaceLogEventsTest extends AbstractMongoDBTest { expectedEventTime, expectedEventTime, author, expectedId, expectedPassId, raceName, boatClass, raceId); - DBObject dbObject = mongoFactory.storeRaceLogEntry(logIdentifier, expectedEvent); + Document dbObject = mongoFactory.storeRaceLogEntry(logIdentifier, expectedEvent); RaceLogDenoteForTrackingEvent actualEvent = loadEvent(dbObject); assertBaseFields(expectedEvent, actualEvent); @@ -184,7 +184,7 @@ public class StoreAndLoadRaceLogEventsTest extends AbstractMongoDBTest { RaceLogRevokeEvent expectedEvent = new RaceLogRevokeEventImpl(expectedEventTime, expectedEventTime, author, expectedId, expectedPassId, revokedEventId, revokedEventType, revokedEventShortInfo, reason); - DBObject dbObject = mongoFactory.storeRaceLogEntry(logIdentifier, expectedEvent); + Document dbObject = mongoFactory.storeRaceLogEntry(logIdentifier, expectedEvent); RaceLogRevokeEvent actualEvent = loadEvent(dbObject); assertBaseFields(expectedEvent, actualEvent); @@ -202,7 +202,7 @@ public class StoreAndLoadRaceLogEventsTest extends AbstractMongoDBTest { /* timeOnTimeFactor */null, /* timeOnDistanceAllowancePerNauticalMile */null, null), DomainFactory.INSTANCE.getOrCreateBoat("boat", "b", boatClass, null, null)); - DBObject dbObject = mongoFactory.storeRaceLogEntry(logIdentifier, expectedEvent); + Document dbObject = mongoFactory.storeRaceLogEntry(logIdentifier, expectedEvent); RaceLogRegisterCompetitorEvent actualEvent = loadEvent(dbObject); assertBaseFields(expectedEvent, actualEvent); @@ -213,13 +213,13 @@ public class StoreAndLoadRaceLogEventsTest extends AbstractMongoDBTest { * Will always wait a couple of milliseconds to ensure that {@link RaceLogEvent#getCreatedAt()} has passed. */ @SuppressWarnings("unchecked") - private T loadEvent(DBObject dbObject) { + private T loadEvent(Document dbObject) { try { Thread.sleep(2); } catch (InterruptedException ie) { fail(ie.toString()); } - RaceLogEvent dbEvent = domainFactory.loadRaceLogEvent((DBObject) dbObject.get(FieldNames.RACE_LOG_EVENT.name())).getA(); + RaceLogEvent dbEvent = domainFactory.loadRaceLogEvent((Document) dbObject.get(FieldNames.RACE_LOG_EVENT.name())).getA(); T actualEvent = (T) dbEvent; return actualEvent; } diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/StoreAndLoadRaceLogsTest.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/StoreAndLoadRaceLogsTest.java index a1e39ec8e09..4d0434815bb 100644 --- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/StoreAndLoadRaceLogsTest.java +++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/StoreAndLoadRaceLogsTest.java @@ -8,9 +8,9 @@ import java.io.Serializable; import java.net.UnknownHostException; import java.util.UUID; +import org.bson.Document; import org.junit.Test; -import com.mongodb.DBObject; import com.mongodb.MongoException; import com.sap.sailing.domain.abstractlog.impl.LogEventAuthorImpl; import com.sap.sailing.domain.abstractlog.race.RaceLog; @@ -45,10 +45,10 @@ public class StoreAndLoadRaceLogsTest extends AbstractMongoDBTest { RaceLogFlagEvent event1 = createRaceLogFlagEvent(UUID.randomUUID()); RaceLogFlagEvent event2 = createRaceLogFlagEvent(UUID.randomUUID()); - DBObject dbEvent1 = mongoFactory.storeRaceLogEntry(identifier, event1); - mongoFactory.getRaceLogCollection().insert(dbEvent1); - DBObject dbEvent2 = mongoFactory.storeRaceLogEntry(identifier, event2); - mongoFactory.getRaceLogCollection().insert(dbEvent2); + Document dbEvent1 = mongoFactory.storeRaceLogEntry(identifier, event1); + mongoFactory.getRaceLogCollection().insertOne(dbEvent1); + Document dbEvent2 = mongoFactory.storeRaceLogEntry(identifier, event2); + mongoFactory.getRaceLogCollection().insertOne(dbEvent2); RaceLog raceLog = domainFactory.loadRaceLog(identifier); try { @@ -66,17 +66,17 @@ public class StoreAndLoadRaceLogsTest extends AbstractMongoDBTest { RaceLogFlagEvent event1 = createRaceLogFlagEvent(UUID.randomUUID()); RaceLogFlagEvent event2 = createRaceLogFlagEvent(UUID.randomUUID()); - DBObject dbEvent1 = mongoFactory.storeRaceLogEntry(identifier, event1); - mongoFactory.getRaceLogCollection().insert(dbEvent1); - DBObject dbEvent2 = mongoFactory.storeRaceLogEntry(identifier, event2); - mongoFactory.getRaceLogCollection().insert(dbEvent2); + Document dbEvent1 = mongoFactory.storeRaceLogEntry(identifier, event1); + mongoFactory.getRaceLogCollection().insertOne(dbEvent1); + Document dbEvent2 = mongoFactory.storeRaceLogEntry(identifier, event2); + mongoFactory.getRaceLogCollection().insertOne(dbEvent2); // RaceLog A.A.B B.C C RaceLogIdentifier collidingIdentifier = createIdentifier("A.A.B", "B.C", "C"); RaceLogFlagEvent event3 = createRaceLogFlagEvent(UUID.randomUUID()); - DBObject dbEvent3 = mongoFactory.storeRaceLogEntry(collidingIdentifier, event3); - mongoFactory.getRaceLogCollection().insert(dbEvent3); + Document dbEvent3 = mongoFactory.storeRaceLogEntry(collidingIdentifier, event3); + mongoFactory.getRaceLogCollection().insertOne(dbEvent3); RaceLog raceLog = domainFactory.loadRaceLog(identifier); try { diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestParseAndMigratePassingSideAndControlPointTwoMarks.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestParseAndMigratePassingSideAndControlPointTwoMarks.java index 0513d18f935..cbf8c871c01 100755 --- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestParseAndMigratePassingSideAndControlPointTwoMarks.java +++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestParseAndMigratePassingSideAndControlPointTwoMarks.java @@ -5,11 +5,10 @@ import static org.junit.Assert.assertTrue; import java.io.Serializable; +import org.bson.Document; import org.junit.Test; import com.mongodb.BasicDBList; -import com.mongodb.BasicDBObject; -import com.mongodb.DBObject; import com.sap.sailing.domain.abstractlog.race.RaceLogCourseDesignChangedEvent; import com.sap.sailing.domain.base.ControlPointWithTwoMarks; import com.sap.sailing.domain.base.Mark; @@ -31,15 +30,15 @@ public class TestParseAndMigratePassingSideAndControlPointTwoMarks { public void test() { DomainObjectFactoryImpl dof = new DomainObjectFactoryImpl(MongoDBConfiguration.getDefaultTestConfiguration() .getService().getDB(), com.sap.sailing.domain.base.DomainFactory.INSTANCE); - DBObject waypoint1 = new BasicDBObject(); + Document waypoint1 = new Document(); waypoint1.put(FieldNames.WAYPOINT_PASSINGSIDE.name(), "Gate"); - DBObject cp = new BasicDBObject(); + Document cp = new Document(); cp.put(FieldNames.CONTROLPOINT_CLASS.name(), "Gate"); - DBObject cpValue = new BasicDBObject(); + Document cpValue = new Document(); cpValue.put(FieldNames.GATE_NAME.name(), "Name"); cpValue.put(FieldNames.GATE_ID.name(), (Serializable) 0); Mark mark1 = new MarkImpl(0, "Left", MarkType.BUOY, AbstractColor.getCssColor("blue"), "square", "checkers"); - DBObject dbMark1 = new BasicDBObject(); + Document dbMark1 = new Document(); dbMark1.put(FieldNames.MARK_ID.name(), mark1.getId()); dbMark1.put(FieldNames.MARK_COLOR.name(), mark1.getColor().getAsHtml()); dbMark1.put(FieldNames.MARK_NAME.name(), mark1.getName()); @@ -47,7 +46,7 @@ public class TestParseAndMigratePassingSideAndControlPointTwoMarks { dbMark1.put(FieldNames.MARK_SHAPE.name(), mark1.getShape()); dbMark1.put(FieldNames.MARK_TYPE.name(), mark1.getType().name()); Mark mark2 = new MarkImpl(0, "Right", MarkType.BUOY, AbstractColor.getCssColor("blue"), "square", "checkers"); - DBObject dbMark2 = new BasicDBObject(); + Document dbMark2 = new Document(); dbMark2.put(FieldNames.MARK_ID.name(), mark2.getId()); dbMark2.put(FieldNames.MARK_COLOR.name(), mark2.getColor().getAsHtml()); dbMark2.put(FieldNames.MARK_NAME.name(), mark2.getName()); @@ -58,17 +57,17 @@ public class TestParseAndMigratePassingSideAndControlPointTwoMarks { cpValue.put(FieldNames.GATE_LEFT.name(), dbMark1); cp.put(FieldNames.CONTROLPOINT_VALUE.name(), cpValue); waypoint1.put(FieldNames.CONTROLPOINT.name(), cp); - DBObject waypoint2 = new BasicDBObject(); + Document waypoint2 = new Document(); waypoint2.put(FieldNames.WAYPOINT_PASSINGSIDE.name(), "Gate"); waypoint2.put(FieldNames.CONTROLPOINT.name(), cp); - DBObject waypoint3 = new BasicDBObject(); + Document waypoint3 = new Document(); waypoint3.put(FieldNames.WAYPOINT_PASSINGSIDE.name(), "Gate"); waypoint3.put(FieldNames.CONTROLPOINT.name(), cp); BasicDBList list = new BasicDBList(); list.add(waypoint1); list.add(waypoint2); list.add(waypoint3); - DBObject raceLogEvent = new BasicDBObject(); + Document raceLogEvent = new Document(); raceLogEvent.put(FieldNames.RACE_LOG_EVENT_CLASS.name(), RaceLogCourseDesignChangedEvent.class.getSimpleName()); raceLogEvent.put(FieldNames.RACE_LOG_COURSE_DESIGN.name(), list); raceLogEvent.put(FieldNames.RACE_LOG_EVENT_CREATED_AT.name(), System.currentTimeMillis()); @@ -79,18 +78,18 @@ public class TestParseAndMigratePassingSideAndControlPointTwoMarks { raceLogEvent.put(FieldNames.RACE_LOG_EVENT_AUTHOR_PRIORITY.name(), 1); RaceLogCourseDesignChangedEvent event = (RaceLogCourseDesignChangedEvent) dof.loadRaceLogEvent(raceLogEvent).getA(); assertEquals(event.getCourseDesign().getFirstWaypoint().getPassingInstructions(), PassingInstruction.Line); - assertTrue(waypoint1.containsField(FieldNames.WAYPOINT_PASSINGINSTRUCTIONS.name()) - && !waypoint1.containsField(FieldNames.WAYPOINT_PASSINGSIDE.name())); + assertTrue(waypoint1.containsKey(FieldNames.WAYPOINT_PASSINGINSTRUCTIONS.name()) + && !waypoint1.containsKey(FieldNames.WAYPOINT_PASSINGSIDE.name())); assertTrue(waypoint2.get(FieldNames.WAYPOINT_PASSINGINSTRUCTIONS.name()).equals("Gate")); assertTrue(waypoint3.get(FieldNames.WAYPOINT_PASSINGINSTRUCTIONS.name()).equals("Line")); assertTrue(cp.get(FieldNames.CONTROLPOINT_CLASS.name()).equals(ControlPointWithTwoMarks.class.getSimpleName())); - assertTrue(cpValue.containsField(FieldNames.CONTROLPOINTWITHTWOMARKS_ID.name()) - && cpValue.containsField(FieldNames.CONTROLPOINTWITHTWOMARKS_NAME.name()) - && cpValue.containsField(FieldNames.CONTROLPOINTWITHTWOMARKS_LEFT.name()) - && cpValue.containsField(FieldNames.CONTROLPOINTWITHTWOMARKS_RIGHT.name()) - && !cpValue.containsField(FieldNames.GATE_NAME.name()) - && !cpValue.containsField(FieldNames.GATE_ID.name()) - && !cpValue.containsField(FieldNames.GATE_LEFT.name()) - && !cpValue.containsField(FieldNames.GATE_RIGHT.name())); + assertTrue(cpValue.containsKey(FieldNames.CONTROLPOINTWITHTWOMARKS_ID.name()) + && cpValue.containsKey(FieldNames.CONTROLPOINTWITHTWOMARKS_NAME.name()) + && cpValue.containsKey(FieldNames.CONTROLPOINTWITHTWOMARKS_LEFT.name()) + && cpValue.containsKey(FieldNames.CONTROLPOINTWITHTWOMARKS_RIGHT.name()) + && !cpValue.containsKey(FieldNames.GATE_NAME.name()) + && !cpValue.containsKey(FieldNames.GATE_ID.name()) + && !cpValue.containsKey(FieldNames.GATE_LEFT.name()) + && !cpValue.containsKey(FieldNames.GATE_RIGHT.name())); } } diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndLoadingEventsAndRegattas.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndLoadingEventsAndRegattas.java index 1b5485cbda6..d5b6cbabe59 100755 --- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndLoadingEventsAndRegattas.java +++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndLoadingEventsAndRegattas.java @@ -93,8 +93,8 @@ import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.DynamicTrackedRegatta; import com.sap.sailing.domain.tracking.impl.DynamicTrackedRegattaImpl; import com.sap.sailing.domain.tracking.impl.EmptyWindStore; -import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.impl.RacingEventServiceImpl; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sailing.server.operationaltransformation.ConnectTrackedRaceToLeaderboardColumn; import com.sap.sailing.server.operationaltransformation.UpdateEliminatedCompetitorsInLeaderboard; import com.sap.sailing.server.operationaltransformation.UpdateLeaderboardMaxPointsReason; diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingLeaderboardGroups.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingLeaderboardGroups.java index f0e579b6566..58da6e553f7 100755 --- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingLeaderboardGroups.java +++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingLeaderboardGroups.java @@ -53,8 +53,8 @@ import com.sap.sailing.domain.persistence.media.MediaDBFactory; import com.sap.sailing.domain.racelog.tracking.EmptySensorFixStore; import com.sap.sailing.domain.test.mock.MockedTrackedRaceWithFixedRankAndManyCompetitors; import com.sap.sailing.domain.tracking.impl.EmptyWindStore; -import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.impl.RacingEventServiceImpl; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sailing.server.operationaltransformation.UpdateLeaderboardScoreCorrection; import com.sap.sse.common.Color; import com.sap.sse.common.Util; diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingRaceLogEventData.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingRaceLogEventData.java index 5aacf31eb5a..442a69a6726 100644 --- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingRaceLogEventData.java +++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingRaceLogEventData.java @@ -5,13 +5,12 @@ import static org.junit.Assert.assertNotNull; import java.net.UnknownHostException; +import org.bson.Document; import org.junit.Before; import org.junit.Test; -import com.mongodb.BasicDBObject; -import com.mongodb.DBCollection; -import com.mongodb.DBObject; import com.mongodb.MongoException; +import com.mongodb.client.MongoCollection; import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor; import com.sap.sailing.domain.abstractlog.impl.LogEventAuthorImpl; import com.sap.sailing.domain.abstractlog.race.RaceLogFlagEvent; @@ -40,29 +39,29 @@ public class TestStoringAndRetrievingRaceLogEventData extends AbstractMongoDBTes @Test public void testDBConnection() throws UnknownHostException, MongoException { - DBCollection coll = db.getCollection(RACELOG_TEST_COLLECTION); + MongoCollection coll = db.getCollection(RACELOG_TEST_COLLECTION); assertNotNull(coll); - BasicDBObject doc = new BasicDBObject(); + Document doc = new Document(); doc.put("upperflag", "AP"); doc.put("lowerflag", "ALPHA"); - coll.insert(doc); + coll.insertOne(doc); } @Test public void testDBRead() throws UnknownHostException, MongoException, InterruptedException { { - DBCollection coll = db.getCollection(RACELOG_TEST_COLLECTION); + MongoCollection coll = db.getCollection(RACELOG_TEST_COLLECTION); assertNotNull(coll); - BasicDBObject doc = new BasicDBObject(); + Document doc = new Document(); doc.put("upperflag", "AP"); doc.put("lowerflag", "ALPHA"); - coll.insert(doc); + coll.insertOne(doc); } { - DBCollection coll = db.getCollection(RACELOG_TEST_COLLECTION); + MongoCollection coll = db.getCollection(RACELOG_TEST_COLLECTION); assertNotNull(coll); - DBObject object = coll.findOne(); + Document object = coll.find().first(); assertEquals("AP", object.get("upperflag")); assertEquals("ALPHA", object.get("lowerflag")); } @@ -73,16 +72,16 @@ public class TestStoringAndRetrievingRaceLogEventData extends AbstractMongoDBTes TimePoint now = MillisecondsTimePoint.now(); RaceLogFlagEvent rcEvent = new RaceLogFlagEventImpl(now, author, 0, Flags.AP, Flags.ALPHA, true); { - DBObject rcEventForMongo = ((MongoObjectFactoryImpl) PersistenceFactory.INSTANCE.getDefaultMongoObjectFactory()) + Document rcEventForMongo = ((MongoObjectFactoryImpl) PersistenceFactory.INSTANCE.getDefaultMongoObjectFactory()) .storeRaceLogFlagEvent(rcEvent); - DBCollection coll = db.getCollection(RACELOG_TEST_COLLECTION); - coll.insert(rcEventForMongo); + MongoCollection coll = db.getCollection(RACELOG_TEST_COLLECTION); + coll.insertOne(rcEventForMongo); } { - DBCollection coll = db.getCollection(RACELOG_TEST_COLLECTION); + MongoCollection coll = db.getCollection(RACELOG_TEST_COLLECTION); assertNotNull(coll); - DBObject object = coll.findOne(); + Document object = coll.find().first(); RaceLogFlagEvent readRcEvent = (RaceLogFlagEvent) ((DomainObjectFactoryImpl) PersistenceFactory.INSTANCE.getDefaultDomainObjectFactory()).loadRaceLogEvent(object).getA(); assertEquals(rcEvent.getLogicalTimePoint(), readRcEvent.getLogicalTimePoint()); assertEquals(rcEvent.getId(), readRcEvent.getId()); diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingRaceLogInLeaderboards.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingRaceLogInLeaderboards.java index 192545561a3..68d88a2c4ed 100644 --- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingRaceLogInLeaderboards.java +++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingRaceLogInLeaderboards.java @@ -10,13 +10,12 @@ import static org.mockito.Mockito.when; import java.net.UnknownHostException; import java.util.UUID; +import org.bson.Document; import org.junit.Before; import org.junit.Test; import org.mockito.Matchers; import com.mongodb.BasicDBList; -import com.mongodb.BasicDBObject; -import com.mongodb.DBObject; import com.mongodb.MongoException; import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor; import com.sap.sailing.domain.abstractlog.impl.LogEventAuthorImpl; @@ -382,20 +381,18 @@ public class TestStoringAndRetrievingRaceLogInLeaderboards extends RaceLogMongoD RaceColumn raceColumn = leaderboard.getRaceColumnByName(raceColumnName); mongoObjectFactory.storeLeaderboard(leaderboard); - DBObject result = new BasicDBObject(); + Document result = new Document(); result.put(FieldNames.TIME_AS_MILLIS.name(), now.asMillis()); result.put(FieldNames.RACE_LOG_EVENT_CREATED_AT.name(), now.asMillis()); result.put(FieldNames.RACE_LOG_EVENT_ID.name(), UUID.randomUUID()); result.put(FieldNames.RACE_LOG_EVENT_PASS_ID.name(), 0); result.put(FieldNames.RACE_LOG_EVENT_INVOLVED_BOATS.name(), new BasicDBList()); result.put(FieldNames.RACE_LOG_EVENT_CLASS.name(), RaceLogFinishPositioningConfirmedEvent.class.getSimpleName()); - - DBObject raceLogResult = new BasicDBObject(); + Document raceLogResult = new Document(); raceLogResult.put(FieldNames.RACE_LOG_IDENTIFIER.name(), TripleSerializer.serialize(raceColumn.getRaceLogIdentifier(defaultFleet).getIdentifier())); raceLogResult.put(FieldNames.RACE_LOG_EVENT.name(), result); - MongoObjectFactoryImpl factoryImpl = (MongoObjectFactoryImpl) mongoObjectFactory; - factoryImpl.getRaceLogCollection().insert(raceLogResult); + factoryImpl.getRaceLogCollection().insertOne(raceLogResult); } @Test diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingRaceLogInRegatta.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingRaceLogInRegatta.java index b9c1cd421de..b9ebc0c7a2b 100644 --- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingRaceLogInRegatta.java +++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingRaceLogInRegatta.java @@ -8,11 +8,10 @@ import java.util.ArrayList; import java.util.List; import java.util.UUID; +import org.bson.Document; import org.junit.Test; import com.mongodb.BasicDBList; -import com.mongodb.BasicDBObject; -import com.mongodb.DBObject; import com.mongodb.MongoException; import com.sap.sailing.domain.abstractlog.race.CompetitorResult.MergeState; import com.sap.sailing.domain.abstractlog.race.CompetitorResults; @@ -281,20 +280,18 @@ public class TestStoringAndRetrievingRaceLogInRegatta extends AbstractTestStorin RaceColumn raceColumn = series.getRaceColumnByName(raceColumnName); mongoObjectFactory.storeRegatta(regatta); - DBObject result = new BasicDBObject(); + Document result = new Document(); result.put(FieldNames.TIME_AS_MILLIS.name(), now.asMillis()); result.put(FieldNames.RACE_LOG_EVENT_CREATED_AT.name(), now.asMillis()); result.put(FieldNames.RACE_LOG_EVENT_ID.name(), UUID.randomUUID()); result.put(FieldNames.RACE_LOG_EVENT_PASS_ID.name(), 0); result.put(FieldNames.RACE_LOG_EVENT_INVOLVED_BOATS.name(), new BasicDBList()); result.put(FieldNames.RACE_LOG_EVENT_CLASS.name(), RaceLogFinishPositioningConfirmedEvent.class.getSimpleName()); - - DBObject raceLogResult = new BasicDBObject(); + Document raceLogResult = new Document(); raceLogResult.put(FieldNames.RACE_LOG_IDENTIFIER.name(), TripleSerializer.serialize(raceColumn.getRaceLogIdentifier(fleet).getIdentifier())); raceLogResult.put(FieldNames.RACE_LOG_EVENT.name(), result); - MongoObjectFactoryImpl factoryImpl = (MongoObjectFactoryImpl) mongoObjectFactory; - factoryImpl.getRaceLogCollection().insert(raceLogResult); + factoryImpl.getRaceLogCollection().insertOne(raceLogResult); } @Test 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 acd295befbe..fffd2b6c173 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 @@ -5,13 +5,12 @@ import static org.junit.Assert.assertNotNull; import java.net.UnknownHostException; +import org.bson.Document; import org.junit.Before; import org.junit.Test; -import com.mongodb.BasicDBObject; -import com.mongodb.DBCollection; -import com.mongodb.DBObject; import com.mongodb.MongoException; +import com.mongodb.client.MongoCollection; import com.sap.sailing.domain.common.Wind; import com.sap.sailing.domain.common.impl.DegreePosition; import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl; @@ -39,29 +38,29 @@ public class TestStoringAndRetrievingWindData extends AbstractMongoDBTest { @Test public void testDBConnection() throws UnknownHostException, MongoException { - DBCollection coll = db.getCollection(WIND_TEST_COLLECTION); + MongoCollection coll = db.getCollection(WIND_TEST_COLLECTION); assertNotNull(coll); - BasicDBObject doc = new BasicDBObject(); + Document doc = new Document(); doc.put("truebearingdeg", 234.3); doc.put("knotspeed", 10.7); - coll.insert(doc); + coll.insertOne(doc); } @Test public void testDBRead() throws UnknownHostException, MongoException, InterruptedException { { - DBCollection coll = db.getCollection(WIND_TEST_COLLECTION); + MongoCollection coll = db.getCollection(WIND_TEST_COLLECTION); assertNotNull(coll); - BasicDBObject doc = new BasicDBObject(); + Document doc = new Document(); doc.put("truebearingdeg", 234.3); doc.put("knotspeed", 10.7); - coll.insert(doc); + coll.insertOne(doc); } { - DBCollection coll = db.getCollection(WIND_TEST_COLLECTION); + MongoCollection coll = db.getCollection(WIND_TEST_COLLECTION); assertNotNull(coll); - DBObject object = coll.findOne(); + Document object = coll.find().first(); assertEquals(234.3, object.get("truebearingdeg")); assertEquals(10.7, object.get("knotspeed")); } @@ -73,15 +72,15 @@ public class TestStoringAndRetrievingWindData extends AbstractMongoDBTest { Wind wind = new WindImpl(new DegreePosition(123, 45), now, new KnotSpeedWithBearingImpl(10.4, new DegreeBearingImpl(355.5))); { - DBObject windForMongo = ((MongoObjectFactoryImpl) PersistenceFactory.INSTANCE.getDefaultMongoObjectFactory()).storeWind(wind); - DBCollection coll = db.getCollection(WIND_TEST_COLLECTION); - coll.insert(windForMongo); + Document windForMongo = ((MongoObjectFactoryImpl) PersistenceFactory.INSTANCE.getDefaultMongoObjectFactory()).storeWind(wind); + MongoCollection coll = db.getCollection(WIND_TEST_COLLECTION); + coll.insertOne(windForMongo); } { - DBCollection coll = db.getCollection(WIND_TEST_COLLECTION); + MongoCollection coll = db.getCollection(WIND_TEST_COLLECTION); assertNotNull(coll); - DBObject object = coll.findOne(); + Document object = coll.find().first(); Wind readWind = ((DomainObjectFactoryImpl) PersistenceFactory.INSTANCE.getDefaultDomainObjectFactory()).loadWind(object); assertEquals(wind.getPosition(), readWind.getPosition()); assertEquals(wind.getKnots(), readWind.getKnots(), 0.00000001); 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 f9204dec530..b1139a42493 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 @@ -14,10 +14,9 @@ import java.util.Optional; import org.junit.Before; import org.junit.Test; -import com.mongodb.DB; -import com.mongodb.Mongo; import com.mongodb.MongoClient; import com.mongodb.MongoException; +import com.mongodb.client.MongoDatabase; import com.sap.sailing.domain.abstractlog.race.analyzing.impl.RaceLogResolver; import com.sap.sailing.domain.base.RaceDefinition; import com.sap.sailing.domain.base.Regatta; @@ -56,8 +55,8 @@ import com.sap.sse.mongodb.MongoDBConfiguration; public class TestStoringAndRetrievingWindTracksTest extends AbstractTracTracLiveTest { - private Mongo mongo; - private DB db; + private MongoClient mongo; + private MongoDatabase db; private final MongoDBConfiguration dbConfiguration; @@ -66,7 +65,7 @@ public class TestStoringAndRetrievingWindTracksTest extends AbstractTracTracLive dbConfiguration = MongoDBConfiguration.getDefaultTestConfiguration(); } - private Mongo newMongo() throws UnknownHostException, MongoException { + private MongoClient newMongo() throws UnknownHostException, MongoException { return new MongoClient(dbConfiguration.getMongoClientURI()); } @@ -75,7 +74,7 @@ public class TestStoringAndRetrievingWindTracksTest extends AbstractTracTracLive mongo = newMongo(); assertNotNull(mongo); mongo.dropDatabase(dbConfiguration.getMongoClientURI().getDatabase()); - db = mongo.getDB(dbConfiguration.getMongoClientURI().getDatabase()); + db = mongo.getDatabase(dbConfiguration.getMongoClientURI().getDatabase()); assertNotNull(db); } @@ -109,8 +108,8 @@ public class TestStoringAndRetrievingWindTracksTest extends AbstractTracTracLive }, /*useMarkPassingCalculator*/ false, mock(RaceLogResolver.class), Optional.empty()); WindSource windSource = new WindSourceImpl(WindSourceType.WEB); - Mongo myFirstMongo = newMongo(); - DB firstDatabase = myFirstMongo.getDB(dbConfiguration.getDatabaseName()); + MongoClient myFirstMongo = newMongo(); + MongoDatabase firstDatabase = myFirstMongo.getDatabase(dbConfiguration.getDatabaseName()); new MongoObjectFactoryImpl(firstDatabase).addWindTrackDumper(trackedRegatta, trackedRace, windSource); WindTrack windTrack = trackedRace.getOrCreateWindTrack(windSource); Position pos = new DegreePosition(54, 9); @@ -121,8 +120,8 @@ public class TestStoringAndRetrievingWindTracksTest extends AbstractTracTracLive } Thread.sleep(2000); // give MongoDB some time to make written data available to other connections - Mongo mySecondMongo = newMongo(); - DB secondDatabase = mySecondMongo.getDB(dbConfiguration.getDatabaseName()); + MongoClient mySecondMongo = newMongo(); + MongoDatabase secondDatabase = mySecondMongo.getDatabase(dbConfiguration.getDatabaseName()); WindTrack result = new DomainObjectFactoryImpl(secondDatabase, com.sap.sailing.domain.base.DomainFactory.INSTANCE).loadWindTrack(domainEvent.getName(), race, windSource, /* millisecondsOverWhichToAverage */ 30000); double myBearingDeg = 123.4; diff --git a/java/com.sap.sailing.nmeaconnector.test/src/com/sap/sailing/nmeaconnector/test/BATTest.java b/java/com.sap.sailing.nmeaconnector.test/src/com/sap/sailing/nmeaconnector/test/BATTest.java index da15346bd68..b91938f3536 100755 --- a/java/com.sap.sailing.nmeaconnector.test/src/com/sap/sailing/nmeaconnector/test/BATTest.java +++ b/java/com.sap.sailing.nmeaconnector.test/src/com/sap/sailing/nmeaconnector/test/BATTest.java @@ -22,7 +22,7 @@ import net.sf.marineapi.nmea.sentence.TalkerId; public class BATTest { - @Rule public Timeout AbstractTracTracLiveTestTimeout = new Timeout(10 * 1000); + @Rule public Timeout AbstractTracTracLiveTestTimeout = Timeout.millis(10 * 1000); public static final String EXAMPLE = "$WIBAT,1,5"; BATSentence empty; diff --git a/java/com.sap.sailing.polars.datamining/META-INF/MANIFEST.MF b/java/com.sap.sailing.polars.datamining/META-INF/MANIFEST.MF index 117a3410f13..056101089cd 100644 --- a/java/com.sap.sailing.polars.datamining/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.polars.datamining/META-INF/MANIFEST.MF @@ -6,18 +6,18 @@ Bundle-Version: 1.0.0.qualifier Bundle-Activator: com.sap.sailing.polars.datamining.Activator Bundle-Vendor: SAP Require-Bundle: org.eclipse.osgi;bundle-version="3.10.1", - com.sap.sse;bundle-version="1.0.0", - com.sap.sse.datamining;bundle-version="1.0.0", - com.sap.sse.datamining.annotations;bundle-version="1.0.0", - com.sap.sse.datamining.shared;bundle-version="1.0.0", - com.sap.sailing.server;bundle-version="1.0.0", - com.sap.sse.common;bundle-version="1.0.0", - com.sap.sailing.domain;bundle-version="1.0.0", + com.sap.sse, + com.sap.sse.datamining, + com.sap.sse.datamining.annotations, + com.sap.sse.datamining.shared, + com.sap.sse.common, + com.sap.sailing.domain, com.sap.sailing.domain.shared.android, - com.sap.sailing.domain.common;bundle-version="1.0.0", + com.sap.sailing.domain.common, com.sap.sailing.polars.datamining.shared, org.apache.commons.math, com.sap.sailing.datamining.provider, + com.sap.sailing.server.interface, com.sap.sse.security Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Bundle-ActivationPolicy: lazy diff --git a/java/com.sap.sailing.polars.datamining/src/com/sap/sailing/polars/datamining/PolarsDataRetrievalChainDefinitions.java b/java/com.sap.sailing.polars.datamining/src/com/sap/sailing/polars/datamining/PolarsDataRetrievalChainDefinitions.java index 671bcdef397..54d3158e2ee 100644 --- a/java/com.sap.sailing.polars.datamining/src/com/sap/sailing/polars/datamining/PolarsDataRetrievalChainDefinitions.java +++ b/java/com.sap.sailing.polars.datamining/src/com/sap/sailing/polars/datamining/PolarsDataRetrievalChainDefinitions.java @@ -22,7 +22,7 @@ import com.sap.sailing.polars.datamining.data.HasLegPolarContext; import com.sap.sailing.polars.datamining.data.HasRaceColumnPolarContext; import com.sap.sailing.polars.datamining.shared.PolarDataMiningSettings; import com.sap.sailing.polars.datamining.shared.PolarDataMiningSettingsImpl; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.datamining.components.DataRetrieverChainDefinition; import com.sap.sse.datamining.impl.components.SimpleDataRetrieverChainDefinition; import com.sap.sse.datamining.impl.components.SingleDataRetrieverChainDefinition; diff --git a/java/com.sap.sailing.polars.datamining/src/com/sap/sailing/polars/datamining/components/BackendPolarsBoatClassRetrievalProcessor.java b/java/com.sap.sailing.polars.datamining/src/com/sap/sailing/polars/datamining/components/BackendPolarsBoatClassRetrievalProcessor.java index 473051f9b88..15b9a08b2d0 100644 --- a/java/com.sap.sailing.polars.datamining/src/com/sap/sailing/polars/datamining/components/BackendPolarsBoatClassRetrievalProcessor.java +++ b/java/com.sap.sailing.polars.datamining/src/com/sap/sailing/polars/datamining/components/BackendPolarsBoatClassRetrievalProcessor.java @@ -9,7 +9,7 @@ import com.sap.sailing.domain.base.BoatClass; import com.sap.sailing.domain.polars.PolarDataService; import com.sap.sailing.polars.datamining.data.HasBackendPolarBoatClassContext; import com.sap.sailing.polars.datamining.data.impl.BoatClassWithBackendPolarContext; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.datamining.components.Processor; import com.sap.sse.datamining.impl.components.AbstractRetrievalProcessor; diff --git a/java/com.sap.sailing.polars.datamining/src/com/sap/sailing/polars/datamining/components/PolarLeaderboardGroupRetrievalProcessor.java b/java/com.sap.sailing.polars.datamining/src/com/sap/sailing/polars/datamining/components/PolarLeaderboardGroupRetrievalProcessor.java index 05fcac0b124..73e596d3a4d 100644 --- a/java/com.sap.sailing.polars.datamining/src/com/sap/sailing/polars/datamining/components/PolarLeaderboardGroupRetrievalProcessor.java +++ b/java/com.sap.sailing.polars.datamining/src/com/sap/sailing/polars/datamining/components/PolarLeaderboardGroupRetrievalProcessor.java @@ -8,7 +8,7 @@ import java.util.concurrent.ExecutorService; import com.sap.sailing.domain.leaderboard.LeaderboardGroup; import com.sap.sailing.polars.datamining.data.HasLeaderboardGroupPolarContext; import com.sap.sailing.polars.datamining.data.impl.LeaderboardGroupWithPolarContext; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.datamining.components.Processor; import com.sap.sse.datamining.impl.components.AbstractRetrievalProcessor; diff --git a/java/com.sap.sailing.polars/META-INF/MANIFEST.MF b/java/com.sap.sailing.polars/META-INF/MANIFEST.MF index 177f938c90b..901c9c536ac 100644 --- a/java/com.sap.sailing.polars/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.polars/META-INF/MANIFEST.MF @@ -24,7 +24,6 @@ Require-Bundle: com.sap.sse.shared.android, org.apache.commons.math;bundle-version="2.1.0", org.eclipse.osgi, - com.sap.sse.replication, com.sap.sse.operationaltransformation, com.sap.sse.security, com.sun.jersey, @@ -32,7 +31,8 @@ Require-Bundle: org.apache.shiro.core;bundle-version="1.2.2", org.apache.shiro.web;bundle-version="1.2.2", org.apache.shiro.ehcache;bundle-version="1.2.3", - com.sun.xml.bind.jaxb-impl;bundle-version="2.3.0" + com.sun.xml.bind.jaxb-impl;bundle-version="2.3.0", + com.sap.sse.replication.interfaces;bundle-version="1.0.0" Import-Package: com.sap.sailing.util, javax.ws.rs;version="1.1.1", diff --git a/java/com.sap.sailing.polars/src/com/sap/sailing/polars/ReplicablePolarService.java b/java/com.sap.sailing.polars/src/com/sap/sailing/polars/ReplicablePolarService.java index b6cb0abed1f..7452c2083c2 100755 --- a/java/com.sap.sailing.polars/src/com/sap/sailing/polars/ReplicablePolarService.java +++ b/java/com.sap.sailing.polars/src/com/sap/sailing/polars/ReplicablePolarService.java @@ -1,7 +1,7 @@ package com.sap.sailing.polars; import com.sap.sailing.domain.polars.PolarDataService; -import com.sap.sse.replication.impl.ReplicableWithObjectInputStream; +import com.sap.sse.replication.ReplicableWithObjectInputStream; public interface ReplicablePolarService extends PolarDataService, ReplicableWithObjectInputStream> { /** diff --git a/java/com.sap.sailing.polars/src/com/sap/sailing/polars/impl/PolarDataServiceImpl.java b/java/com.sap.sailing.polars/src/com/sap/sailing/polars/impl/PolarDataServiceImpl.java index d6ccf0bc888..87d08e42cdc 100755 --- a/java/com.sap.sailing.polars/src/com/sap/sailing/polars/impl/PolarDataServiceImpl.java +++ b/java/com.sap.sailing.polars/src/com/sap/sailing/polars/impl/PolarDataServiceImpl.java @@ -51,8 +51,8 @@ import com.sap.sse.datamining.data.ClusterGroup; import com.sap.sse.datamining.shared.GroupKey; import com.sap.sse.replication.OperationExecutionListener; import com.sap.sse.replication.OperationWithResult; +import com.sap.sse.replication.OperationWithResultWithIdWrapper; import com.sap.sse.replication.ReplicationMasterDescriptor; -import com.sap.sse.replication.impl.OperationWithResultWithIdWrapper; import com.sap.sse.util.ClearStateTestSupport; /** diff --git a/java/com.sap.sailing.resultimport/META-INF/MANIFEST.MF b/java/com.sap.sailing.resultimport/META-INF/MANIFEST.MF index e7732ed590b..d1660d4b80e 100644 --- a/java/com.sap.sailing.resultimport/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.resultimport/META-INF/MANIFEST.MF @@ -13,7 +13,7 @@ Export-Package: com.sap.sailing.resultimport, Import-Package: com.sap.sailing.competitorimport, com.sap.sailing.domain.common, com.sap.sailing.domain.persistence, - com.sap.sailing.server, + com.sap.sailing.server.interfaces, org.osgi.framework;version="1.5.0", org.osgi.util.tracker;version="1.5.1" Require-Bundle: com.sap.sse.common diff --git a/java/com.sap.sailing.resultimport/src/com/sap/sailing/resultimport/Activator.java b/java/com.sap.sailing.resultimport/src/com/sap/sailing/resultimport/Activator.java index 32ccc218ff6..b017d8c5da8 100644 --- a/java/com.sap.sailing.resultimport/src/com/sap/sailing/resultimport/Activator.java +++ b/java/com.sap.sailing.resultimport/src/com/sap/sailing/resultimport/Activator.java @@ -7,7 +7,7 @@ import org.osgi.util.tracker.ServiceTracker; import org.osgi.util.tracker.ServiceTrackerCustomizer; import com.sap.sailing.resultimport.impl.ResultUrlRegistryImpl; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; public class Activator implements BundleActivator { diff --git a/java/com.sap.sailing.selenium.test/META-INF/MANIFEST.MF b/java/com.sap.sailing.selenium.test/META-INF/MANIFEST.MF index b76bf165bcc..6e86deee6ea 100644 --- a/java/com.sap.sailing.selenium.test/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.selenium.test/META-INF/MANIFEST.MF @@ -9,11 +9,11 @@ Require-Bundle: org.hamcrest;bundle-version="1.1.0", org.junit;bundle-version="4.8.2", org.openqa.selenium.osgi;bundle-version="3.13.0", com.sap.sse.mongodb;bundle-version="1.0.0", - org.mongodb.mongo-java-driver;bundle-version="2.13.0", com.sap.sailing.domain.common, com.sap.sse.common, jcl.over.slf4j;bundle-version="1.6.4";resolution:=optional, - slf4j.api;bundle-version="1.6.4";resolution:=optional + slf4j.api;bundle-version="1.6.4";resolution:=optional, + org.eclipse.orbit.mongodb;bundle-version="3.2.2" Bundle-ClassPath: lib/cglib-nodep-2.2.3.jar, . Automatic-Module-Name: com.sap.sailing.selenium.test diff --git a/java/com.sap.sailing.selenium.test/pom.xml b/java/com.sap.sailing.selenium.test/pom.xml index baae4a3b348..b1a3a95f09c 100755 --- a/java/com.sap.sailing.selenium.test/pom.xml +++ b/java/com.sap.sailing.selenium.test/pom.xml @@ -149,6 +149,11 @@ 3 true + + com.sap.sailing.server.interface + 4 + true + com.sap.sailing.server 4 @@ -160,7 +165,22 @@ true - com.sap.sailing.server.replication + com.sap.sailing.routeconverterjava11extension + 4 + true + + + com.sap.sse.jersey.jaxdependencyfragment + 4 + true + + + com.sap.sse.replication.interfaces + 4 + true + + + com.sap.sse.replication 4 true diff --git a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/leaderboard/LeaderboardPage.java b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/leaderboard/LeaderboardPage.java index 30eeae0cf24..3e900f624d5 100644 --- a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/leaderboard/LeaderboardPage.java +++ b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/leaderboard/LeaderboardPage.java @@ -10,7 +10,7 @@ import com.sap.sailing.selenium.core.FindBy; import com.sap.sailing.selenium.pages.HostPage; import com.sap.sailing.selenium.pages.gwt.CheckBoxPO; -import junit.framework.Assert; +import org.junit.Assert; /** *

The page object representing the leaderboard.

diff --git a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/test/AbstractSeleniumTest.java b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/test/AbstractSeleniumTest.java index 19b9552bddd..b554567f939 100644 --- a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/test/AbstractSeleniumTest.java +++ b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/test/AbstractSeleniumTest.java @@ -15,9 +15,9 @@ import java.util.logging.Logger; import org.junit.Before; import org.junit.Rule; -import org.junit.rules.TestWatchman; +import org.junit.rules.TestWatcher; +import org.junit.runner.Description; import org.junit.runner.RunWith; -import org.junit.runners.model.FrameworkMethod; import org.openqa.selenium.By; import org.openqa.selenium.Cookie; import org.openqa.selenium.JavascriptExecutor; @@ -175,35 +175,18 @@ public abstract class AbstractSeleniumTest { } } - // TODO: Change to TestWatcher if we support a higher version (4.11) of JUnit. - //private class ScreenShotRule extends TestWatcher { - // ScreenShotFilenameGenerator generator; - // - // public ScreenShotRule(ScreenShotFilenameGenerator generator) { - // this.generator = generator; - // } - // - // protected void failed(Throwable error, Description description) { - // captureScreenshot(this.generator.getFilePath(description)); - // } - //} - - private class ScreenShotAndCloseWindowRule extends TestWatchman { + private class ScreenShotRule extends TestWatcher { @Override - public void failed(Throwable cause, FrameworkMethod method) { - try { - captureScreenshots(); - } catch (Exception exception) { - exception.printStackTrace(); - } + protected void failed(Throwable error, Description description) { + captureScreenshots(); } - + @Override - public void finished(FrameworkMethod method) { + protected void finished(Description description) { try { environment.getWindowManager().closeAllWindows(); } finally { - super.finished(method); + super.finished(description); } } } @@ -212,7 +195,7 @@ public abstract class AbstractSeleniumTest { *

Rule for capturing of a screenshot if a test fails.

*/ @Rule - public final ScreenShotAndCloseWindowRule takeScreenshotAndCloseWindows = new ScreenShotAndCloseWindowRule(/*generator*/); + public final ScreenShotRule takeScreenshotAndCloseWindows = new ScreenShotRule(); /** *

The test environment used for the execution of the the tests.

diff --git a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/test/integration/state/TestStateVisualizationRegatta.java b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/test/integration/state/TestStateVisualizationRegatta.java index cb7d87f1d55..80a33e9f096 100644 --- a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/test/integration/state/TestStateVisualizationRegatta.java +++ b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/test/integration/state/TestStateVisualizationRegatta.java @@ -7,7 +7,7 @@ import static com.sap.sailing.selenium.pages.common.DateHelper.getPastTime; import java.util.Date; import java.util.function.Predicate; -import junit.framework.Assert; +import org.junit.Assert; import org.junit.Before; import org.junit.Test; diff --git a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/test/pairinglist/PairinglistTest.java b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/test/pairinglist/PairinglistTest.java index fec4922ec9f..ef0a557bc73 100644 --- a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/test/pairinglist/PairinglistTest.java +++ b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/test/pairinglist/PairinglistTest.java @@ -20,7 +20,7 @@ import com.sap.sailing.selenium.pages.leaderboard.PairinfListCreationDialogPO; import com.sap.sailing.selenium.pages.leaderboard.PairingListCreationSetupDialogPO; import com.sap.sailing.selenium.test.AbstractSeleniumTest; -import junit.framework.Assert; +import org.junit.Assert; public class PairinglistTest extends AbstractSeleniumTest { private static final String EVENT = "TestEvent"; diff --git a/java/com.sap.sailing.server.gateway.serialization.test/.settings/org.eclipse.jdt.core.prefs b/java/com.sap.sailing.server.gateway.serialization.test/.settings/org.eclipse.jdt.core.prefs new file mode 100755 index 00000000000..87b7a7a3a60 --- /dev/null +++ b/java/com.sap.sailing.server.gateway.serialization.test/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,13 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.release=disabled +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/java/com.sap.sailing.server.gateway.serialization.test/META-INF/MANIFEST.MF b/java/com.sap.sailing.server.gateway.serialization.test/META-INF/MANIFEST.MF index 4d6c848b10c..7c9b1151406 100644 --- a/java/com.sap.sailing.server.gateway.serialization.test/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.server.gateway.serialization.test/META-INF/MANIFEST.MF @@ -9,11 +9,11 @@ Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Fragment-Host: com.sap.sailing.server.gateway.serialization Require-Bundle: com.sap.sailing.domain;bundle-version="1.0.0", com.sap.sailing.domain.common;bundle-version="1.0.0", - org.hamcrest;bundle-version="1.1.0", org.junit;bundle-version="4.8.2", com.sap.sailing.domain.shared.android, org.json.simple, org.mockito.mockito-core;bundle-version="1.9.5", + org.hamcrest;bundle-version="1.1.0", org.objenesis;bundle-version="1.3.0", com.sap.sse.common, com.sap.sse.shared.android, diff --git a/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/VenueJsonSerializerTest.java b/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/VenueJsonSerializerTest.java index fe5bf883612..cfa5a6a9f85 100644 --- a/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/VenueJsonSerializerTest.java +++ b/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/VenueJsonSerializerTest.java @@ -2,7 +2,6 @@ package com.sap.sailing.server.gateway.serialization.test; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertThat; -import static org.junit.matchers.JUnitMatchers.hasItem; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -10,6 +9,7 @@ import java.util.Collections; import java.util.HashMap; import java.util.Map; +import org.hamcrest.CoreMatchers; import org.json.simple.JSONArray; import org.json.simple.JSONObject; import org.junit.Before; @@ -66,7 +66,7 @@ public class VenueJsonSerializerTest { JSONArray actualCourseAreas = (JSONArray) result.get(VenueJsonSerializer.FIELD_COURSE_AREAS); assertEquals(expectedCourseAreas.size(), actualCourseAreas.size()); for (JSONObject courseArea : expectedCourseAreas.values()) { - assertThat(actualCourseAreas, hasItem((Object)courseArea)); + assertThat(actualCourseAreas, CoreMatchers.hasItem((Object)courseArea)); } } } diff --git a/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/racelog/RaceLogCourseDesignChangedEventSerializerTest.java b/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/racelog/RaceLogCourseDesignChangedEventSerializerTest.java index 9e365d43ca4..28c756d07d7 100644 --- a/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/racelog/RaceLogCourseDesignChangedEventSerializerTest.java +++ b/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/racelog/RaceLogCourseDesignChangedEventSerializerTest.java @@ -44,7 +44,7 @@ import com.sap.sse.common.Util; import com.sap.sse.common.impl.AbstractColor; import com.sap.sse.common.impl.MillisecondsTimePoint; -import junit.framework.Assert; +import org.junit.Assert; public class RaceLogCourseDesignChangedEventSerializerTest { diff --git a/java/com.sap.sailing.server.gateway.test.support/META-INF/MANIFEST.MF b/java/com.sap.sailing.server.gateway.test.support/META-INF/MANIFEST.MF index 8ca76ee506c..291442e1081 100644 --- a/java/com.sap.sailing.server.gateway.test.support/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.server.gateway.test.support/META-INF/MANIFEST.MF @@ -12,7 +12,7 @@ Require-Bundle: javax.servlet;bundle-version="3.1.0", com.sap.sse.mongodb;bundle-version="1.0.0", com.sap.sse.common, com.sap.sse, - org.mongodb.mongo-java-driver;bundle-version="2.13.0" + org.eclipse.orbit.mongodb;bundle-version="3.2.2" Bundle-ClassPath: . Web-ContextPath: /sailingserver/test-support Import-Package: org.osgi.framework, diff --git a/java/com.sap.sailing.server.gateway.test/META-INF/MANIFEST.MF b/java/com.sap.sailing.server.gateway.test/META-INF/MANIFEST.MF index 2fb6ecae09d..52b2b397c82 100644 --- a/java/com.sap.sailing.server.gateway.test/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.server.gateway.test/META-INF/MANIFEST.MF @@ -17,5 +17,7 @@ Require-Bundle: org.mockito.mockito-core;bundle-version="1.9.5", org.apache.commons.io;bundle-version="2.2.0" Import-Package: com.sap.sailing.domain.common.impl, com.sap.sailing.domain.persistence.impl, - com.sap.sailing.server.impl + com.sap.sailing.server.impl, + com.sap.sailing.server.interfaces, + com.sun.istack;version="3.0.7" Automatic-Module-Name: com.sap.sailing.server.gateway.test diff --git a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/AbstractJsonExportTest.java b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/AbstractJsonExportTest.java index 3444b7e43b8..8e5a6e3ac74 100644 --- a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/AbstractJsonExportTest.java +++ b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/AbstractJsonExportTest.java @@ -24,9 +24,9 @@ import com.sap.sailing.domain.base.impl.CompetitorImpl; import com.sap.sailing.domain.base.impl.NationalityImpl; import com.sap.sailing.domain.base.impl.PersonImpl; import com.sap.sailing.domain.base.impl.TeamImpl; -import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.gateway.AbstractJsonHttpServlet; import com.sap.sailing.server.impl.RacingEventServiceImpl; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.common.Color; import com.sap.sse.common.TimePoint; import com.sap.sse.common.impl.MillisecondsTimePoint; @@ -41,7 +41,7 @@ public abstract class AbstractJsonExportTest { public void setUp() { service = MongoDBConfiguration.getDefaultTestConfiguration().getService(); - service.getDB().dropDatabase(); + service.getDB().drop(); racingEventService = new RacingEventServiceImpl(); } diff --git a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/AbstractJaxRsApiTest.java b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/AbstractJaxRsApiTest.java index 72552dcc192..e0815d5ca72 100644 --- a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/AbstractJaxRsApiTest.java +++ b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/AbstractJaxRsApiTest.java @@ -30,9 +30,9 @@ import com.sap.sailing.domain.base.impl.PersonImpl; import com.sap.sailing.domain.base.impl.TeamImpl; import com.sap.sailing.domain.racelog.tracking.test.mock.MockSmartphoneUuidServiceFinderFactory; import com.sap.sailing.domain.racelogtracking.RaceLogTrackingAdapterFactory; -import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.gateway.jaxrs.AbstractSailingServerResource; import com.sap.sailing.server.impl.RacingEventServiceImpl; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.common.Color; import com.sap.sse.common.TimePoint; import com.sap.sse.common.impl.MillisecondsTimePoint; @@ -63,7 +63,7 @@ public abstract class AbstractJaxRsApiTest { @SuppressWarnings("unchecked") public void setUp() throws Exception { service = MongoDBConfiguration.getDefaultTestConfiguration().getService(); - service.getDB().dropDatabase(); + service.getDB().drop(); racingEventService = Mockito.spy(new RacingEventServiceImpl(/* clearPersistentCompetitorStore */ true, new MockSmartphoneUuidServiceFinderFactory(), /* restoreTrackedRaces */ false)); diff --git a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/GPSFixesResourceTest.java b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/GPSFixesResourceTest.java index b6533e22d80..328bca6d9a1 100644 --- a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/GPSFixesResourceTest.java +++ b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/GPSFixesResourceTest.java @@ -15,9 +15,9 @@ import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.racelog.tracking.TransformationException; import com.sap.sailing.domain.racelog.tracking.test.mock.MockSmartphoneUuidServiceFinderFactory; import com.sap.sailing.domain.racelogtracking.impl.SmartphoneUUIDIdentifierImpl; -import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.gateway.jaxrs.api.GPSFixesResource; import com.sap.sailing.server.impl.RacingEventServiceImpl; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.common.NoCorrespondingServiceRegisteredException; public class GPSFixesResourceTest { @@ -47,7 +47,7 @@ public class GPSFixesResourceTest { public void setup() { service = new RacingEventServiceImpl(/* clearPersistentCompetitorStore */ true, new MockSmartphoneUuidServiceFinderFactory(), /* restoreTrackedRaces */ false); - service.getMongoObjectFactory().getDatabase().dropDatabase(); + service.getMongoObjectFactory().getDatabase().drop(); } @Test diff --git a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourceTest.java b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourceTest.java index 35828b22570..19f4a8ddbe9 100644 --- a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourceTest.java +++ b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourceTest.java @@ -48,7 +48,7 @@ public class LeaderboardsResourceTest extends AbstractJaxRsApiTest { } private void dropAndCreateRegatta() { - service.getDB().dropDatabase(); + service.getDB().drop(); List series = new ArrayList(); List fleets = new ArrayList(); List raceColumnNames = new ArrayList(); diff --git a/java/com.sap.sailing.server.gateway/META-INF/MANIFEST.MF b/java/com.sap.sailing.server.gateway/META-INF/MANIFEST.MF index 9130d0fcf49..0dca706f51a 100644 --- a/java/com.sap.sailing.server.gateway/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.server.gateway/META-INF/MANIFEST.MF @@ -25,7 +25,6 @@ Require-Bundle: com.sap.sailing.domain, com.sap.sailing.domain.persistence, com.sap.sse.mongodb, com.sap.sailing.domain.racelogtrackingadapter, - org.mongodb.mongo-java-driver;bundle-version="2.13.0", javax.servlet;bundle-version="3.1.0", com.sap.sailing.domain.common, com.sap.sailing.udpconnector, @@ -39,7 +38,7 @@ Require-Bundle: com.sap.sailing.domain, org.apache.commons.fileupload;bundle-version="1.2.2", com.sap.sailing.domain.igtimiadapter, com.sap.sse.common, - com.sap.sse.replication, + com.sap.sse.replication.interfaces, com.sap.sse, com.sap.sailing.server.gateway.serialization.shared.android, com.sap.sse.shared.android, @@ -61,7 +60,9 @@ Require-Bundle: com.sap.sailing.domain, com.sap.sailing.nmeaconnector, com.sap.sailing.geocoding, com.googlecode.java-diff-utils, - com.sun.xml.bind.jaxb-impl;bundle-version="2.3.0" + com.sun.xml.bind.jaxb-impl;bundle-version="2.3.0", + org.eclipse.orbit.mongodb;bundle-version="3.2.2", + com.sap.sailing.server.interface;bundle-version="1.0.0" Bundle-ClassPath: . Web-ContextPath: /sailingserver Export-Package: com.sap.sailing.server.gateway, diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/AbstractHttpPostServlet.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/AbstractHttpPostServlet.java index cca454d403d..c745f0b6659 100755 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/AbstractHttpPostServlet.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/AbstractHttpPostServlet.java @@ -6,7 +6,7 @@ import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; /** * Subclasses can be used to retrieve messages through an HTTP connection. The connection remains open until the client diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/HttpMessageSenderServletRequestHandler.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/HttpMessageSenderServletRequestHandler.java index 1472f138c1d..bada70796cb 100755 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/HttpMessageSenderServletRequestHandler.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/HttpMessageSenderServletRequestHandler.java @@ -12,7 +12,7 @@ import javax.servlet.http.HttpServletResponse; import org.osgi.framework.BundleContext; import com.sap.sailing.domain.common.HttpMessageSenderServletConstants; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.common.Base64Utils; public abstract class HttpMessageSenderServletRequestHandler { diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/SailingServerHttpServlet.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/SailingServerHttpServlet.java index fbec40998bf..b75df6ebcb9 100755 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/SailingServerHttpServlet.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/SailingServerHttpServlet.java @@ -12,7 +12,7 @@ import com.sap.sailing.domain.base.RaceDefinition; import com.sap.sailing.domain.base.Regatta; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.domain.tractracadapter.TracTracAdapterFactory; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.InvalidDateException; import com.sap.sse.common.TimePoint; import com.sap.sse.common.TypeBasedServiceFinderFactory; diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/rc/AddEntryToRaceLogJsonPostServlet.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/rc/AddEntryToRaceLogJsonPostServlet.java index e0963060914..2734a8abd8f 100644 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/rc/AddEntryToRaceLogJsonPostServlet.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/rc/AddEntryToRaceLogJsonPostServlet.java @@ -23,7 +23,6 @@ import com.sap.sailing.domain.base.Fleet; import com.sap.sailing.domain.base.RaceColumn; import com.sap.sailing.domain.common.racelog.RaceLogServletConstants; import com.sap.sailing.domain.leaderboard.Leaderboard; -import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.gateway.AbstractJsonHttpServlet; import com.sap.sailing.server.gateway.deserialization.JsonDeserializer; import com.sap.sailing.server.gateway.deserialization.impl.DeviceIdentifierJsonDeserializer; @@ -35,6 +34,7 @@ import com.sap.sailing.server.gateway.serialization.impl.DeviceIdentifierJsonSer import com.sap.sailing.server.gateway.serialization.racelog.impl.RaceLogEventSerializer; import com.sap.sailing.server.gateway.serialization.racelog.tracking.DeviceIdentifierJsonHandler; import com.sap.sailing.server.gateway.serialization.racelog.tracking.impl.PlaceHolderDeviceIdentifierJsonHandler; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.common.TypeBasedServiceFinder; public class AddEntryToRaceLogJsonPostServlet extends AbstractJsonHttpServlet { diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/rc/CompetitorsAndBoatsJsonExportServlet.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/rc/CompetitorsAndBoatsJsonExportServlet.java index 9b236d8e990..d20f911b5ba 100644 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/rc/CompetitorsAndBoatsJsonExportServlet.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/rc/CompetitorsAndBoatsJsonExportServlet.java @@ -15,9 +15,9 @@ import com.sap.sailing.domain.base.Fleet; import com.sap.sailing.domain.base.RaceColumn; import com.sap.sailing.domain.common.racelog.RaceLogServletConstants; import com.sap.sailing.domain.leaderboard.Leaderboard; -import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.gateway.AbstractJsonHttpServlet; import com.sap.sailing.server.gateway.serialization.impl.CompetitorAndBoatJsonSerializer; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.common.Util.Pair; public class CompetitorsAndBoatsJsonExportServlet extends AbstractJsonHttpServlet { diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/rc/CompetitorsJsonExportServlet.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/rc/CompetitorsJsonExportServlet.java index c081d134603..3328fc56ecc 100644 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/rc/CompetitorsJsonExportServlet.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/rc/CompetitorsJsonExportServlet.java @@ -13,9 +13,9 @@ import com.sap.sailing.domain.base.Fleet; import com.sap.sailing.domain.base.RaceColumn; import com.sap.sailing.domain.common.racelog.RaceLogServletConstants; import com.sap.sailing.domain.leaderboard.Leaderboard; -import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.gateway.AbstractJsonHttpServlet; import com.sap.sailing.server.gateway.serialization.impl.CompetitorJsonSerializer; +import com.sap.sailing.server.interfaces.RacingEventService; public class CompetitorsJsonExportServlet extends AbstractJsonHttpServlet { private static final long serialVersionUID = 4510175441769759252L; diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/rc/CourseJsonExportServlet.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/rc/CourseJsonExportServlet.java index 1284fdf9ec4..50800b23917 100644 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/rc/CourseJsonExportServlet.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/rc/CourseJsonExportServlet.java @@ -14,13 +14,13 @@ import com.sap.sailing.domain.base.RaceColumn; import com.sap.sailing.domain.common.racelog.RaceLogServletConstants; import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sailing.domain.tracking.TrackedRace; -import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.gateway.AbstractJsonHttpServlet; import com.sap.sailing.server.gateway.serialization.coursedata.impl.ControlPointJsonSerializer; import com.sap.sailing.server.gateway.serialization.coursedata.impl.CourseBaseJsonSerializer; import com.sap.sailing.server.gateway.serialization.coursedata.impl.GateJsonSerializer; import com.sap.sailing.server.gateway.serialization.coursedata.impl.MarkJsonSerializer; import com.sap.sailing.server.gateway.serialization.coursedata.impl.WaypointJsonSerializer; +import com.sap.sailing.server.interfaces.RacingEventService; public class CourseJsonExportServlet extends AbstractJsonHttpServlet { diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/rc/MarkPositionsJsonExportServlet.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/rc/MarkPositionsJsonExportServlet.java index 6406f90d217..9c341d8d40f 100644 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/rc/MarkPositionsJsonExportServlet.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/rc/MarkPositionsJsonExportServlet.java @@ -16,11 +16,11 @@ import com.sap.sailing.domain.common.Position; import com.sap.sailing.domain.common.racelog.RaceLogServletConstants; import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sailing.domain.tracking.TrackedRace; -import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.gateway.AbstractJsonHttpServlet; import com.sap.sailing.server.gateway.serialization.coursedata.impl.MarkJsonSerializer; import com.sap.sailing.server.gateway.serialization.impl.PositionJsonSerializer; import com.sap.sailing.server.gateway.serialization.impl.PositionedMarkJsonSerializer; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.common.Distance; import com.sap.sse.common.Util; import com.sap.sse.common.impl.MillisecondsTimePoint; diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/rc/MarksJsonExportServlet.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/rc/MarksJsonExportServlet.java index 0286da4e79a..5561785775a 100644 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/rc/MarksJsonExportServlet.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/rc/MarksJsonExportServlet.java @@ -13,9 +13,9 @@ import com.sap.sailing.domain.base.Mark; import com.sap.sailing.domain.base.RaceColumn; import com.sap.sailing.domain.common.racelog.RaceLogServletConstants; import com.sap.sailing.domain.leaderboard.Leaderboard; -import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.gateway.AbstractJsonHttpServlet; import com.sap.sailing.server.gateway.serialization.coursedata.impl.MarkJsonSerializer; +import com.sap.sailing.server.interfaces.RacingEventService; public class MarksJsonExportServlet extends AbstractJsonHttpServlet { private static final long serialVersionUID = 4510175441769759252L; diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/AbstractSailingServerResource.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/AbstractSailingServerResource.java index 73283d1631c..205c4679515 100644 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/AbstractSailingServerResource.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/AbstractSailingServerResource.java @@ -13,7 +13,7 @@ import com.sap.sailing.domain.base.RaceDefinition; import com.sap.sailing.domain.base.Regatta; import com.sap.sailing.domain.tracking.DynamicTrackedRegatta; import com.sap.sailing.domain.tracking.TrackedRace; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.InvalidDateException; import com.sap.sse.common.TimePoint; import com.sap.sse.common.impl.MillisecondsTimePoint; diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/RestServletContainer.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/RestServletContainer.java index ea740b38a8a..11e11aa34fc 100644 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/RestServletContainer.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/RestServletContainer.java @@ -7,7 +7,7 @@ import javax.ws.rs.core.Application; import org.osgi.framework.BundleContext; import org.osgi.util.tracker.ServiceTracker; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.datamining.DataMiningServer; import com.sap.sse.security.SecurityService; import com.sun.jersey.spi.container.servlet.ServletContainer; diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/CompetitorsResource.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/CompetitorsResource.java index f924b83849d..aa6857cc692 100644 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/CompetitorsResource.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/CompetitorsResource.java @@ -31,11 +31,11 @@ import com.sap.sailing.domain.base.Nationality; import com.sap.sailing.domain.base.Team; import com.sap.sailing.domain.common.racelog.tracking.DeviceMappingConstants; import com.sap.sailing.domain.common.tracking.impl.CompetitorJsonConstants; -import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.gateway.jaxrs.AbstractSailingServerResource; import com.sap.sailing.server.gateway.serialization.impl.NationalityJsonSerializer; import com.sap.sailing.server.gateway.serialization.impl.PersonJsonSerializer; import com.sap.sailing.server.gateway.serialization.impl.TeamJsonSerializer; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.filestorage.InvalidPropertiesException; import com.sap.sse.filestorage.OperationFailedException; diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/LeaderboardsResource.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/LeaderboardsResource.java index 23f0fe0d565..5c7954fff6c 100755 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/LeaderboardsResource.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/LeaderboardsResource.java @@ -107,7 +107,6 @@ import com.sap.sailing.domain.tracking.GPSFixTrack; import com.sap.sailing.domain.tracking.MarkPassing; import com.sap.sailing.domain.tracking.RaceHandle; import com.sap.sailing.domain.tracking.TrackedRace; -import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException; import com.sap.sailing.server.gateway.deserialization.impl.FlatGPSFixJsonDeserializer; import com.sap.sailing.server.gateway.deserialization.impl.Helpers; @@ -120,6 +119,7 @@ import com.sap.sailing.server.gateway.serialization.coursedata.impl.WaypointJson import com.sap.sailing.server.gateway.serialization.impl.CompetitorAndBoatJsonSerializer; import com.sap.sailing.server.gateway.serialization.impl.FlatGPSFixJsonSerializer; import com.sap.sailing.server.gateway.serialization.impl.MarkJsonSerializerWithPosition; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sailing.server.operationaltransformation.RemoveAndUntrackRace; import com.sap.sailing.server.operationaltransformation.StopTrackingRace; import com.sap.sailing.server.security.PermissionAwareRaceTrackingHandler; diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/TagsResource.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/TagsResource.java index f98643ee02d..a94421911a8 100644 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/TagsResource.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/TagsResource.java @@ -30,8 +30,8 @@ import com.sap.sailing.domain.common.racelog.RaceLogServletConstants; import com.sap.sailing.domain.common.tagging.RaceLogNotFoundException; import com.sap.sailing.domain.common.tagging.TagAlreadyExistsException; import com.sap.sailing.server.gateway.jaxrs.AbstractSailingServerResource; +import com.sap.sailing.server.interfaces.TaggingService; import com.sap.sailing.server.tagging.TagDTODeSerializer; -import com.sap.sailing.server.tagging.TaggingService; import com.sap.sse.common.TimePoint; import com.sap.sse.common.Util; import com.sap.sse.common.impl.MillisecondsTimePoint; diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/ExpeditionAllInOneImporter.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/ExpeditionAllInOneImporter.java index 1505f85e203..40535b2f35c 100755 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/ExpeditionAllInOneImporter.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/ExpeditionAllInOneImporter.java @@ -75,12 +75,12 @@ import com.sap.sailing.domain.tracking.RaceHandle; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.domain.tracking.WindTrack; import com.sap.sailing.geocoding.ReverseGeocoder; -import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.gateway.trackfiles.impl.ImportResult.ErrorImportDTO; import com.sap.sailing.server.gateway.trackfiles.impl.ImportResult.TrackImportDTO; import com.sap.sailing.server.gateway.windimport.AbstractWindImporter; import com.sap.sailing.server.gateway.windimport.AbstractWindImporter.WindImportResult; import com.sap.sailing.server.gateway.windimport.expedition.WindImporter; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sailing.server.operationaltransformation.AddColumnToSeries; import com.sap.sailing.server.operationaltransformation.AddSpecificRegatta; import com.sap.sailing.server.operationaltransformation.CreateLeaderboardGroup; diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/ExpeditionCourseInferrer.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/ExpeditionCourseInferrer.java index 65156728540..4217873390c 100755 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/ExpeditionCourseInferrer.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/ExpeditionCourseInferrer.java @@ -36,7 +36,7 @@ import com.sap.sailing.domain.trackimport.FormatNotSupportedException; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.domain.tracking.impl.TrackedRaceStatusImpl; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sailing.server.trackfiles.impl.CompressedStreamsUtil; import com.sap.sailing.server.trackfiles.impl.ExpeditionExtendedDataImporterImpl; import com.sap.sailing.server.trackfiles.impl.ExpeditionImportFileHandler; diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/SensorDataImporter.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/SensorDataImporter.java index b083a0ffa2d..536c5133920 100644 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/SensorDataImporter.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/SensorDataImporter.java @@ -20,8 +20,8 @@ import com.sap.sailing.domain.common.tracking.DoubleVectorFix; import com.sap.sailing.domain.trackfiles.TrackFileImportDeviceIdentifier; import com.sap.sailing.domain.trackimport.DoubleVectorFixImporter; import com.sap.sailing.domain.trackimport.FormatNotSupportedException; -import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.gateway.trackfiles.impl.ImportResult.TrackImportDTO; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.common.NoCorrespondingServiceRegisteredException; import com.sap.sse.common.TimeRange; import com.sap.sse.common.Util.Pair; diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/TrackFilesImporter.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/TrackFilesImporter.java index 7a9680a09e1..9c7cc2fa746 100644 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/TrackFilesImporter.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/TrackFilesImporter.java @@ -25,8 +25,8 @@ import com.sap.sailing.domain.common.tracking.GPSFix; import com.sap.sailing.domain.trackfiles.TrackFileImportDeviceIdentifier; import com.sap.sailing.domain.trackimport.GPSFixImporter; import com.sap.sailing.domain.trackimport.GPSFixImporter.Callback; -import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.gateway.trackfiles.impl.ImportResult.TrackImportDTO; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.common.NoCorrespondingServiceRegisteredException; import com.sap.sse.common.TimeRange; import com.sap.sse.common.TypeBasedServiceFinderFactory; diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/windimport/AbstractWindImporter.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/windimport/AbstractWindImporter.java index 14a80b83cce..fb8a85d5770 100644 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/windimport/AbstractWindImporter.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/windimport/AbstractWindImporter.java @@ -19,8 +19,8 @@ import com.sap.sailing.domain.common.Wind; import com.sap.sailing.domain.common.WindSource; import com.sap.sailing.domain.trackimport.FormatNotSupportedException; import com.sap.sailing.domain.tracking.DynamicTrackedRace; -import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.gateway.windimport.AbstractWindImporter.WindImportResult.RaceEntry; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.common.Util; public abstract class AbstractWindImporter { diff --git a/java/com.sap.sailing.server.interface/.classpath b/java/com.sap.sailing.server.interface/.classpath new file mode 100755 index 00000000000..eca7bdba8f0 --- /dev/null +++ b/java/com.sap.sailing.server.interface/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/java/com.sap.sailing.server.interface/.project b/java/com.sap.sailing.server.interface/.project new file mode 100755 index 00000000000..8f602d997ba --- /dev/null +++ b/java/com.sap.sailing.server.interface/.project @@ -0,0 +1,28 @@ + + + com.sap.sailing.server.interface + + + + + + 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.server.interface/.settings/org.eclipse.jdt.core.prefs b/java/com.sap.sailing.server.interface/.settings/org.eclipse.jdt.core.prefs new file mode 100755 index 00000000000..0c68a61dca8 --- /dev/null +++ b/java/com.sap.sailing.server.interface/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,7 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/java/com.sap.sailing.server.interface/.settings/org.eclipse.pde.core.prefs b/java/com.sap.sailing.server.interface/.settings/org.eclipse.pde.core.prefs new file mode 100755 index 00000000000..f29e940a005 --- /dev/null +++ b/java/com.sap.sailing.server.interface/.settings/org.eclipse.pde.core.prefs @@ -0,0 +1,3 @@ +eclipse.preferences.version=1 +pluginProject.extensions=false +resolve.requirebundle=false diff --git a/java/com.sap.sailing.server.interface/META-INF/MANIFEST.MF b/java/com.sap.sailing.server.interface/META-INF/MANIFEST.MF new file mode 100755 index 00000000000..2ec1223591a --- /dev/null +++ b/java/com.sap.sailing.server.interface/META-INF/MANIFEST.MF @@ -0,0 +1,24 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Interface +Bundle-SymbolicName: com.sap.sailing.server.interface +Bundle-Version: 1.0.0.qualifier +Bundle-Vendor: SAP +Automatic-Module-Name: com.sap.sailing.server.interface +Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Require-Bundle: com.sap.sailing.domain;bundle-version="1.0.0", + com.sap.sse.common;bundle-version="1.0.0", + com.sap.sailing.domain.common;bundle-version="1.0.0", + com.sap.sailing.domain.shared.android;bundle-version="1.0.0", + com.sap.sailing.domain.persistence;bundle-version="1.0.0", + com.sap.sse.filestorage;bundle-version="1.0.0", + com.sap.sse.replication.interfaces;bundle-version="1.0.0", + com.sap.sse;bundle-version="1.0.0", + com.sap.sse.shared.android;bundle-version="1.0.0", + com.sap.sse.operationaltransformation;bundle-version="1.0.0", + org.apache.shiro.core, + com.sap.sailing.simulator, + com.sap.sse.security, + com.sap.sse.security.common;bundle-version="1.0.0" +Export-Package: com.sap.sailing.server.interfaces, + com.sap.sailing.server.operationaltransformation diff --git a/java/com.sap.sailing.server.interface/build.properties b/java/com.sap.sailing.server.interface/build.properties new file mode 100755 index 00000000000..34d2e4d2dad --- /dev/null +++ b/java/com.sap.sailing.server.interface/build.properties @@ -0,0 +1,4 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + . diff --git a/java/com.sap.sailing.server.interface/pom.xml b/java/com.sap.sailing.server.interface/pom.xml new file mode 100755 index 00000000000..d1f23a005de --- /dev/null +++ b/java/com.sap.sailing.server.interface/pom.xml @@ -0,0 +1,12 @@ + + + 4.0.0 + + root + com.sap.sailing + 1.0.0-SNAPSHOT + + com.sap.sailing.server.interface + eclipse-plugin + diff --git a/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/interfaces/AnniversaryRaceDeterminator.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/interfaces/AnniversaryRaceDeterminator.java new file mode 100644 index 00000000000..31807a36f74 --- /dev/null +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/interfaces/AnniversaryRaceDeterminator.java @@ -0,0 +1,80 @@ +package com.sap.sailing.server.interfaces; + +import java.util.List; +import java.util.Map; + +import com.sap.sailing.domain.anniversary.DetailedRaceInfo; +import com.sap.sailing.domain.anniversary.SimpleRaceInfo; +import com.sap.sailing.domain.common.dto.AnniversaryType; +import com.sap.sse.common.Util.Pair; + +/** + * This class implements the calculation and management of anniversary races. The base of the anniversary calculation is + * a list of {@link SimpleRaceInfo races} consisting of known remote races taken from {@link RemoteSailingServerSet} and + * the set of locally available races taken from {@link RacingEventService}. The anniversaries to be found are defined + * by a set of {@link AnniversaryChecker} instances given to the constructor. On every + * {@link AnniversaryRaceDeterminatorImpl#update() update} a list of all known races is created and ordered by the + * startTimePoint. With this, anniversaries are defined by their startTimePoint at the moment when the list exceeds a + * number that matches an anniversary to be found. Even if an older race is added afterwards, the initially determined + * nth race will stay the same. + */ +public interface AnniversaryRaceDeterminator { + /** + * Interface for checker classes which are passed to the {@link AnniversaryRaceDeterminatorImpl}'s constructor in order to + * determine anniversary numbers based on the {@link AnniversaryChecker#update(int) provided race count}. + */ + public interface AnniversaryChecker { + + /** + * Updates the internal state based and is required to be called on any race count change to avoid stale data. + * NOTE: The getter methods for {@link #getAnniversaries() past} or {@link #getNextAnniversary() next} + * anniversaries may only be called after the update is processed. + * + * @param raceCount + * the total number of races + */ + void update(int raceCount); + + /** + * Given the {@link #update(int) current number of races}, this method should return a list containing all past + * anniversary numbers. + * + * @return a list of all past anniversary numbers + */ + List getAnniversaries(); + + /** + * Given the {@link #update(int) current number of races}, this method should provide the next anniversary. + * + * @return the next anniversary number, or null if next anniversary cannot be determined + */ + Integer getNextAnniversary(); + + /** + * Provides the {@link AnniversaryType type} of the {@link AnniversaryChecker}. + * + * @return the {@link AnniversaryChecker}'s {@link AnniversaryType type} + */ + AnniversaryType getType(); + } + + void setNextAnniversary(Pair nextAnniversary); + + void setRaceCount(int raceCount); + + Pair getNextAnniversary(); + + Map> getKnownAnniversaries(); + + void setKnownAnniversaries(Map> anniversaries); + + int getCurrentRaceCount(); + + void start(); + + void clearAndStop(); + + void clear(); + + void addAnniversary(int anniversaryToCheck, Pair anniversaryData); +} diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/masterdata/DataImportLockWithProgress.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/interfaces/DataImportLockWithProgress.java similarity index 98% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/masterdata/DataImportLockWithProgress.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/interfaces/DataImportLockWithProgress.java index e1df3fffe09..9a73d0eadc0 100644 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/masterdata/DataImportLockWithProgress.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/interfaces/DataImportLockWithProgress.java @@ -1,4 +1,4 @@ -package com.sap.sailing.server.masterdata; +package com.sap.sailing.server.interfaces; import java.util.HashMap; import java.util.Map; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventService.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/interfaces/RacingEventService.java similarity index 99% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventService.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/interfaces/RacingEventService.java index 156aae91891..58892848b25 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventService.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/interfaces/RacingEventService.java @@ -1,4 +1,4 @@ -package com.sap.sailing.server; +package com.sap.sailing.server.interfaces; import java.io.IOException; import java.io.Serializable; @@ -89,10 +89,6 @@ import com.sap.sailing.domain.tracking.TrackedRegattaRegistry; import com.sap.sailing.domain.tracking.TrackerManager; import com.sap.sailing.domain.tracking.WindStore; import com.sap.sailing.domain.tracking.WindTracker; -import com.sap.sailing.server.anniversary.AnniversaryRaceDeterminator; -import com.sap.sailing.server.masterdata.DataImportLockWithProgress; -import com.sap.sailing.server.simulation.SimulationService; -import com.sap.sailing.server.tagging.TaggingService; import com.sap.sse.common.PairingListCreationException; import com.sap.sse.common.TimePoint; import com.sap.sse.common.TypeBasedServiceFinderFactory; @@ -106,7 +102,7 @@ import com.sap.sse.common.search.Searchable; import com.sap.sse.filestorage.FileStorageManagementService; import com.sap.sse.pairinglist.PairingList; import com.sap.sse.pairinglist.PairingListTemplate; -import com.sap.sse.replication.impl.ReplicableWithObjectInputStream; +import com.sap.sse.replication.ReplicableWithObjectInputStream; import com.sap.sse.security.SecurityService; import com.sap.sse.shared.media.ImageDescriptor; import com.sap.sse.shared.media.VideoDescriptor; @@ -720,7 +716,7 @@ public interface RacingEventService extends TrackedRegattaRegistry, RegattaFetch * * @see #getNumberOfTrackedRacesRestored() */ - int getNumberOfTrackedRacesToRestore(); + long getNumberOfTrackedRacesToRestore(); /** * When restoring tracked races was requested upon creation of this service, this method tells the number of races diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventServiceOperation.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/interfaces/RacingEventServiceOperation.java similarity index 98% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventServiceOperation.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/interfaces/RacingEventServiceOperation.java index 19bbc250a72..e58e4b32854 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventServiceOperation.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/interfaces/RacingEventServiceOperation.java @@ -1,4 +1,4 @@ -package com.sap.sailing.server; +package com.sap.sailing.server.interfaces; import com.sap.sailing.server.operationaltransformation.AddColumnToLeaderboard; import com.sap.sailing.server.operationaltransformation.CreateFlexibleLeaderboard; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/simulation/SimulationService.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/interfaces/SimulationService.java similarity index 93% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/simulation/SimulationService.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/interfaces/SimulationService.java index 2cb465addda..66402bc8c0e 100644 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/simulation/SimulationService.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/interfaces/SimulationService.java @@ -1,4 +1,4 @@ -package com.sap.sailing.server.simulation; +package com.sap.sailing.server.interfaces; import java.util.Map; import java.util.concurrent.ExecutionException; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/tagging/TaggingService.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/interfaces/TaggingService.java similarity index 99% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/tagging/TaggingService.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/interfaces/TaggingService.java index 27bd063ee6d..4a5b5df50d5 100644 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/tagging/TaggingService.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/interfaces/TaggingService.java @@ -1,4 +1,4 @@ -package com.sap.sailing.server.tagging; +package com.sap.sailing.server.interfaces; import java.util.List; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AbstractAddRegattaOperation.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AbstractAddRegattaOperation.java similarity index 100% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AbstractAddRegattaOperation.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AbstractAddRegattaOperation.java diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AbstractColumnInSeriesOperation.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AbstractColumnInSeriesOperation.java similarity index 100% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AbstractColumnInSeriesOperation.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AbstractColumnInSeriesOperation.java diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AbstractDeviceConfigurationOperation.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AbstractDeviceConfigurationOperation.java similarity index 94% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AbstractDeviceConfigurationOperation.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AbstractDeviceConfigurationOperation.java index 4cdd8f98870..c0b491a7b0c 100644 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AbstractDeviceConfigurationOperation.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AbstractDeviceConfigurationOperation.java @@ -1,7 +1,7 @@ package com.sap.sailing.server.operationaltransformation; import com.sap.sailing.domain.base.configuration.DeviceConfigurationMatcher; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; public abstract class AbstractDeviceConfigurationOperation extends AbstractRacingEventServiceOperation { diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AbstractEventOperation.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AbstractEventOperation.java similarity index 100% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AbstractEventOperation.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AbstractEventOperation.java diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AbstractLeaderboardColumnOperation.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AbstractLeaderboardColumnOperation.java similarity index 96% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AbstractLeaderboardColumnOperation.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AbstractLeaderboardColumnOperation.java index 3827446bad8..21c54908569 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AbstractLeaderboardColumnOperation.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AbstractLeaderboardColumnOperation.java @@ -4,7 +4,7 @@ import com.sap.sailing.domain.base.RaceColumn; import com.sap.sailing.domain.base.RaceColumnInSeries; import com.sap.sailing.domain.leaderboard.FlexibleLeaderboard; import com.sap.sailing.domain.leaderboard.Leaderboard; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AbstractLeaderboardGroupOperation.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AbstractLeaderboardGroupOperation.java similarity index 100% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AbstractLeaderboardGroupOperation.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AbstractLeaderboardGroupOperation.java diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AbstractLeaderboardOperation.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AbstractLeaderboardOperation.java similarity index 93% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AbstractLeaderboardOperation.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AbstractLeaderboardOperation.java index 50809a791ff..794a4ff0ed5 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AbstractLeaderboardOperation.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AbstractLeaderboardOperation.java @@ -1,7 +1,7 @@ package com.sap.sailing.server.operationaltransformation; import com.sap.sailing.domain.leaderboard.Leaderboard; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AbstractMediaTrackOperation.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AbstractMediaTrackOperation.java similarity index 87% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AbstractMediaTrackOperation.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AbstractMediaTrackOperation.java index d67658a72dc..48539880701 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AbstractMediaTrackOperation.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AbstractMediaTrackOperation.java @@ -1,8 +1,8 @@ package com.sap.sailing.server.operationaltransformation; import com.sap.sailing.domain.common.media.MediaTrack; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; public abstract class AbstractMediaTrackOperation extends AbstractRacingEventServiceOperation { diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AbstractRaceLogEventOperation.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AbstractRaceLogEventOperation.java similarity index 100% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AbstractRaceLogEventOperation.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AbstractRaceLogEventOperation.java diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AbstractRaceLogOnLeaderboardOperation.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AbstractRaceLogOnLeaderboardOperation.java similarity index 93% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AbstractRaceLogOnLeaderboardOperation.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AbstractRaceLogOnLeaderboardOperation.java index 2070e214b52..4d20ebc76c7 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AbstractRaceLogOnLeaderboardOperation.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AbstractRaceLogOnLeaderboardOperation.java @@ -2,7 +2,7 @@ package com.sap.sailing.server.operationaltransformation; import com.sap.sailing.domain.base.RaceColumn; import com.sap.sailing.domain.leaderboard.Leaderboard; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; public abstract class AbstractRaceLogOnLeaderboardOperation extends AbstractRaceLogOperation { private static final long serialVersionUID = -5649159437859782663L; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AbstractRaceLogOnRegattaOperation.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AbstractRaceLogOnRegattaOperation.java similarity index 94% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AbstractRaceLogOnRegattaOperation.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AbstractRaceLogOnRegattaOperation.java index 0fc2da6c858..559004fce8b 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AbstractRaceLogOnRegattaOperation.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AbstractRaceLogOnRegattaOperation.java @@ -3,7 +3,7 @@ package com.sap.sailing.server.operationaltransformation; import com.sap.sailing.domain.base.RaceColumn; import com.sap.sailing.domain.base.Regatta; import com.sap.sailing.domain.base.Series; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; public abstract class AbstractRaceLogOnRegattaOperation extends AbstractRaceLogOperation { private static final long serialVersionUID = -7174569054572099191L; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AbstractRaceLogOperation.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AbstractRaceLogOperation.java similarity index 88% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AbstractRaceLogOperation.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AbstractRaceLogOperation.java index 670c10b6810..96833b1c84f 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AbstractRaceLogOperation.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AbstractRaceLogOperation.java @@ -1,8 +1,8 @@ package com.sap.sailing.server.operationaltransformation; import com.sap.sailing.domain.base.RaceColumn; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; public abstract class AbstractRaceLogOperation extends AbstractRacingEventServiceOperation { private static final long serialVersionUID = 2140858355670664173L; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AbstractRaceOperation.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AbstractRaceOperation.java similarity index 96% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AbstractRaceOperation.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AbstractRaceOperation.java index 64e4508ed47..5b53c2392bc 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AbstractRaceOperation.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AbstractRaceOperation.java @@ -2,7 +2,7 @@ package com.sap.sailing.server.operationaltransformation; import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; import com.sap.sailing.domain.tracking.DynamicTrackedRace; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; public abstract class AbstractRaceOperation extends AbstractRacingEventServiceOperation { private static final long serialVersionUID = -1162468486451355784L; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AbstractRacingEventServiceOperation.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AbstractRacingEventServiceOperation.java similarity index 98% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AbstractRacingEventServiceOperation.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AbstractRacingEventServiceOperation.java index ed929a2dbd1..fcb87dd99d9 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AbstractRacingEventServiceOperation.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AbstractRacingEventServiceOperation.java @@ -1,6 +1,6 @@ package com.sap.sailing.server.operationaltransformation; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AbstractRegattaLogOnFlexibleLeaderboardOperation.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AbstractRegattaLogOnFlexibleLeaderboardOperation.java similarity index 94% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AbstractRegattaLogOnFlexibleLeaderboardOperation.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AbstractRegattaLogOnFlexibleLeaderboardOperation.java index 69a6c0578e9..2b03851bcd7 100644 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AbstractRegattaLogOnFlexibleLeaderboardOperation.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AbstractRegattaLogOnFlexibleLeaderboardOperation.java @@ -3,7 +3,7 @@ package com.sap.sailing.server.operationaltransformation; import com.sap.sailing.domain.abstractlog.regatta.RegattaLog; import com.sap.sailing.domain.leaderboard.FlexibleLeaderboard; import com.sap.sailing.domain.leaderboard.Leaderboard; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; public abstract class AbstractRegattaLogOnFlexibleLeaderboardOperation extends AbstractRegattaLogOperation { private static final long serialVersionUID = -1811293351556698801L; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AbstractRegattaLogOnRegattaOperation.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AbstractRegattaLogOnRegattaOperation.java similarity index 90% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AbstractRegattaLogOnRegattaOperation.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AbstractRegattaLogOnRegattaOperation.java index 3e5793214e6..fe6b3321a8b 100644 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AbstractRegattaLogOnRegattaOperation.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AbstractRegattaLogOnRegattaOperation.java @@ -1,7 +1,7 @@ package com.sap.sailing.server.operationaltransformation; import com.sap.sailing.domain.abstractlog.regatta.RegattaLog; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; public abstract class AbstractRegattaLogOnRegattaOperation extends AbstractRegattaLogOperation { private static final long serialVersionUID = -1811293351556698801L; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AbstractRegattaLogOperation.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AbstractRegattaLogOperation.java similarity index 89% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AbstractRegattaLogOperation.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AbstractRegattaLogOperation.java index 26497a8f6e3..9b44788f758 100644 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AbstractRegattaLogOperation.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AbstractRegattaLogOperation.java @@ -1,8 +1,8 @@ package com.sap.sailing.server.operationaltransformation; import com.sap.sailing.domain.abstractlog.regatta.RegattaLog; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; public abstract class AbstractRegattaLogOperation extends AbstractRacingEventServiceOperation { private static final long serialVersionUID = 2748436647846774234L; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AbstractSeriesOperation.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AbstractSeriesOperation.java similarity index 96% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AbstractSeriesOperation.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AbstractSeriesOperation.java index 8d8d24a47cd..8a46c9ebc51 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AbstractSeriesOperation.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AbstractSeriesOperation.java @@ -5,7 +5,7 @@ import java.util.logging.Logger; import com.sap.sailing.domain.base.Regatta; import com.sap.sailing.domain.base.Series; import com.sap.sailing.domain.common.RegattaIdentifier; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; public abstract class AbstractSeriesOperation extends AbstractRacingEventServiceOperation { private static final long serialVersionUID = -7786133902346491275L; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AbstractWindOperation.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AbstractWindOperation.java similarity index 100% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AbstractWindOperation.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AbstractWindOperation.java diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AddColumnToLeaderboard.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AddColumnToLeaderboard.java similarity index 90% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AddColumnToLeaderboard.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AddColumnToLeaderboard.java index 6727de1a674..88491d412d9 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AddColumnToLeaderboard.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AddColumnToLeaderboard.java @@ -1,8 +1,8 @@ package com.sap.sailing.server.operationaltransformation; import com.sap.sailing.domain.base.RaceColumn; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; /** * Doesn't transform for the {@link RemoveLeaderboardColumn} because only existing leaderboards can be removed, diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AddColumnToSeries.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AddColumnToSeries.java similarity index 93% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AddColumnToSeries.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AddColumnToSeries.java index 6cf1f8a12ae..0b9b9b39e3e 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AddColumnToSeries.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AddColumnToSeries.java @@ -3,8 +3,8 @@ package com.sap.sailing.server.operationaltransformation; import com.sap.sailing.domain.base.RaceColumnInSeries; import com.sap.sailing.domain.base.Series; import com.sap.sailing.domain.common.RegattaIdentifier; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; public class AddColumnToSeries extends AbstractColumnInSeriesOperation { private static final long serialVersionUID = 8987540636040301063L; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AddCourseAreas.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AddCourseAreas.java similarity index 91% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AddCourseAreas.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AddCourseAreas.java index 5c0af69bdbf..8f86fcc5062 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AddCourseAreas.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AddCourseAreas.java @@ -5,8 +5,8 @@ import java.util.UUID; import com.sap.sailing.domain.base.CourseArea; import com.sap.sailing.domain.base.Event; import com.sap.sailing.domain.base.Venue; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; /** * Adds a course area to an {@link Event}'s {@link Venue}. diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AddDefaultRegatta.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AddDefaultRegatta.java similarity index 89% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AddDefaultRegatta.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AddDefaultRegatta.java index dcf367923e6..9885eb65b8e 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AddDefaultRegatta.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AddDefaultRegatta.java @@ -3,8 +3,8 @@ package com.sap.sailing.server.operationaltransformation; import java.io.Serializable; import com.sap.sailing.domain.base.Regatta; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; import com.sap.sse.common.TimePoint; public class AddDefaultRegatta extends AbstractAddRegattaOperation { diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AddLeaderboardGroupToEvent.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AddLeaderboardGroupToEvent.java similarity index 95% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AddLeaderboardGroupToEvent.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AddLeaderboardGroupToEvent.java index 0a356b021f9..d840dff5f23 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AddLeaderboardGroupToEvent.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AddLeaderboardGroupToEvent.java @@ -8,8 +8,8 @@ import java.util.logging.Logger; import com.sap.sailing.domain.base.Event; import com.sap.sailing.domain.leaderboard.LeaderboardGroup; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; /** * Adds one or more leaderboard groups to an event. Leaderboard group(s) and event are specified by their UUID. diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AddMediaTrackOperation.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AddMediaTrackOperation.java similarity index 89% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AddMediaTrackOperation.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AddMediaTrackOperation.java index 58c89df2d69..bfca3a3a0c6 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AddMediaTrackOperation.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AddMediaTrackOperation.java @@ -1,7 +1,7 @@ package com.sap.sailing.server.operationaltransformation; import com.sap.sailing.domain.common.media.MediaTrack; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; public class AddMediaTrackOperation extends AbstractMediaTrackOperation { diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AddRaceDefinition.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AddRaceDefinition.java similarity index 91% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AddRaceDefinition.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AddRaceDefinition.java index 61d5324cdd7..ce38d7b2831 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AddRaceDefinition.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AddRaceDefinition.java @@ -2,8 +2,8 @@ package com.sap.sailing.server.operationaltransformation; import com.sap.sailing.domain.base.RaceDefinition; import com.sap.sailing.domain.common.RegattaIdentifier; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; public class AddRaceDefinition extends AbstractRacingEventServiceOperation { private static final long serialVersionUID = -2282997511967012426L; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AddRemoteSailingServerReference.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AddRemoteSailingServerReference.java similarity index 91% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AddRemoteSailingServerReference.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AddRemoteSailingServerReference.java index 06a534fcd40..ac0abecd52f 100644 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AddRemoteSailingServerReference.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AddRemoteSailingServerReference.java @@ -3,8 +3,8 @@ package com.sap.sailing.server.operationaltransformation; import java.net.URL; import com.sap.sailing.domain.base.RemoteSailingServerReference; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; /** * Adds a {@link RemoteSailingServerReference} instance. diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AddSpecificRegatta.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AddSpecificRegatta.java similarity index 97% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AddSpecificRegatta.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AddSpecificRegatta.java index 038f1db6819..7dfbf1d18ee 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AddSpecificRegatta.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AddSpecificRegatta.java @@ -20,8 +20,8 @@ import com.sap.sailing.domain.leaderboard.ScoringScheme; import com.sap.sailing.domain.leaderboard.impl.ThresholdBasedResultDiscardingRuleImpl; import com.sap.sailing.domain.ranking.RankingMetricsFactory; import com.sap.sailing.domain.tracking.TrackedRegattaRegistry; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; import com.sap.sse.common.TimePoint; public class AddSpecificRegatta extends AbstractAddRegattaOperation { diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AddWaypoint.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AddWaypoint.java similarity index 95% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AddWaypoint.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AddWaypoint.java index ef6786890e9..580845602ef 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AddWaypoint.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AddWaypoint.java @@ -8,8 +8,8 @@ import com.sap.sailing.domain.base.Course; import com.sap.sailing.domain.base.RaceDefinition; import com.sap.sailing.domain.base.Waypoint; import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; import com.sap.sse.common.Util; public class AddWaypoint extends WaypointOperation { diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AllowBoatResetToDefaults.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AllowBoatResetToDefaults.java similarity index 92% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AllowBoatResetToDefaults.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AllowBoatResetToDefaults.java index 0524438858f..55a312d2f80 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AllowBoatResetToDefaults.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AllowBoatResetToDefaults.java @@ -4,8 +4,8 @@ import java.util.ArrayList; import com.sap.sailing.domain.base.CompetitorAndBoatStore; import com.sap.sailing.domain.base.impl.DynamicBoat; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; import com.sap.sse.common.Util; public class AllowBoatResetToDefaults extends AbstractRacingEventServiceOperation { diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AllowCompetitorResetToDefaults.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AllowCompetitorResetToDefaults.java similarity index 93% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AllowCompetitorResetToDefaults.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AllowCompetitorResetToDefaults.java index 79087617707..114ee25ff13 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AllowCompetitorResetToDefaults.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AllowCompetitorResetToDefaults.java @@ -5,8 +5,8 @@ import java.util.ArrayList; import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.base.CompetitorAndBoatStore; import com.sap.sailing.domain.base.impl.DynamicCompetitorWithBoat; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; import com.sap.sse.common.Util; public class AllowCompetitorResetToDefaults extends AbstractRacingEventServiceOperation { diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/ConnectTrackedRaceToLeaderboardColumn.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/ConnectTrackedRaceToLeaderboardColumn.java similarity index 96% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/ConnectTrackedRaceToLeaderboardColumn.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/ConnectTrackedRaceToLeaderboardColumn.java index fbc3c2028e5..9b81d2202aa 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/ConnectTrackedRaceToLeaderboardColumn.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/ConnectTrackedRaceToLeaderboardColumn.java @@ -8,8 +8,8 @@ import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sailing.domain.leaderboard.RegattaLeaderboard; import com.sap.sailing.domain.tracking.TrackedRace; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; /** * Tries to locate a tracked race based on a {@link RaceIdentifier}. If the tracked race is found, diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/CreateBoat.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/CreateBoat.java similarity index 93% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/CreateBoat.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/CreateBoat.java index 9320da0f3d5..f497c57480e 100644 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/CreateBoat.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/CreateBoat.java @@ -4,8 +4,8 @@ import java.io.Serializable; import com.sap.sailing.domain.base.Boat; import com.sap.sailing.domain.base.BoatClass; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; import com.sap.sse.common.Color; public class CreateBoat extends AbstractRacingEventServiceOperation { diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/CreateCompetitor.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/CreateCompetitor.java similarity index 96% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/CreateCompetitor.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/CreateCompetitor.java index b8d83565dcd..bf16572e198 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/CreateCompetitor.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/CreateCompetitor.java @@ -14,9 +14,8 @@ import com.sap.sailing.domain.base.impl.DynamicPerson; import com.sap.sailing.domain.base.impl.DynamicTeam; import com.sap.sailing.domain.base.impl.PersonImpl; import com.sap.sailing.domain.base.impl.TeamImpl; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; -import com.sap.sailing.server.impl.RacingEventServiceImpl; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; import com.sap.sse.common.Color; import com.sap.sse.common.Duration; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/CreateEvent.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/CreateEvent.java similarity index 96% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/CreateEvent.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/CreateEvent.java index 9d893ab042d..12b0691afd4 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/CreateEvent.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/CreateEvent.java @@ -9,8 +9,8 @@ import java.util.UUID; import com.sap.sailing.domain.base.Event; import com.sap.sailing.domain.leaderboard.LeaderboardGroup; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; import com.sap.sse.common.TimePoint; import com.sap.sse.shared.media.ImageDescriptor; import com.sap.sse.shared.media.VideoDescriptor; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/CreateFlexibleLeaderboard.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/CreateFlexibleLeaderboard.java similarity index 94% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/CreateFlexibleLeaderboard.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/CreateFlexibleLeaderboard.java index 94d6b75ec0b..f628a76d9ba 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/CreateFlexibleLeaderboard.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/CreateFlexibleLeaderboard.java @@ -5,8 +5,8 @@ import java.util.logging.Logger; import com.sap.sailing.domain.leaderboard.FlexibleLeaderboard; import com.sap.sailing.domain.leaderboard.ScoringScheme; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; public class CreateFlexibleLeaderboard extends AbstractLeaderboardOperation { private static final Logger logger = Logger.getLogger(CreateFlexibleLeaderboard.class.getName()); diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/CreateLeaderboardGroup.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/CreateLeaderboardGroup.java similarity index 94% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/CreateLeaderboardGroup.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/CreateLeaderboardGroup.java index 6355670842e..35c93eee01a 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/CreateLeaderboardGroup.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/CreateLeaderboardGroup.java @@ -5,8 +5,8 @@ import java.util.UUID; import com.sap.sailing.domain.common.ScoringSchemeType; import com.sap.sailing.domain.leaderboard.LeaderboardGroup; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; public class CreateLeaderboardGroup extends AbstractLeaderboardGroupOperation { private static final long serialVersionUID = -5028997286564650805L; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/CreateOrUpdateDataImportProgress.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/CreateOrUpdateDataImportProgress.java similarity index 91% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/CreateOrUpdateDataImportProgress.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/CreateOrUpdateDataImportProgress.java index 9060f858d5c..5bae919aaf0 100644 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/CreateOrUpdateDataImportProgress.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/CreateOrUpdateDataImportProgress.java @@ -3,8 +3,8 @@ package com.sap.sailing.server.operationaltransformation; import java.util.UUID; import com.sap.sailing.domain.common.DataImportSubProgress; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; public class CreateOrUpdateDataImportProgress extends AbstractRacingEventServiceOperation { diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/CreateOrUpdateDeviceConfiguration.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/CreateOrUpdateDeviceConfiguration.java similarity index 93% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/CreateOrUpdateDeviceConfiguration.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/CreateOrUpdateDeviceConfiguration.java index 69c7d3e966b..82ff9eae990 100644 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/CreateOrUpdateDeviceConfiguration.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/CreateOrUpdateDeviceConfiguration.java @@ -2,7 +2,7 @@ package com.sap.sailing.server.operationaltransformation; import com.sap.sailing.domain.base.configuration.DeviceConfiguration; import com.sap.sailing.domain.base.configuration.DeviceConfigurationMatcher; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; public class CreateOrUpdateDeviceConfiguration extends AbstractDeviceConfigurationOperation { diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/CreateRegattaLeaderboard.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/CreateRegattaLeaderboard.java similarity index 93% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/CreateRegattaLeaderboard.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/CreateRegattaLeaderboard.java index 28bbd7e7540..51f9cc94f50 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/CreateRegattaLeaderboard.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/CreateRegattaLeaderboard.java @@ -5,8 +5,8 @@ import java.util.logging.Logger; import com.sap.sailing.domain.common.RegattaIdentifier; import com.sap.sailing.domain.common.RegattaName; import com.sap.sailing.domain.leaderboard.RegattaLeaderboard; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; public class CreateRegattaLeaderboard extends AbstractLeaderboardOperation { private static final Logger logger = Logger.getLogger(CreateRegattaLeaderboard.class.getName()); diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/CreateRegattaLeaderboardWithEliminations.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/CreateRegattaLeaderboardWithEliminations.java similarity index 93% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/CreateRegattaLeaderboardWithEliminations.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/CreateRegattaLeaderboardWithEliminations.java index 1119351efd9..ca07e8c67b8 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/CreateRegattaLeaderboardWithEliminations.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/CreateRegattaLeaderboardWithEliminations.java @@ -3,8 +3,8 @@ package com.sap.sailing.server.operationaltransformation; import java.util.logging.Logger; import com.sap.sailing.domain.leaderboard.RegattaLeaderboard; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; public class CreateRegattaLeaderboardWithEliminations extends AbstractLeaderboardOperation { private static final long serialVersionUID = -2851501773630513795L; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/CreateTrackedRace.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/CreateTrackedRace.java similarity index 96% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/CreateTrackedRace.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/CreateTrackedRace.java index 7d421642467..cb47c5f8ff9 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/CreateTrackedRace.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/CreateTrackedRace.java @@ -9,8 +9,8 @@ import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.domain.tracking.TrackedRegatta; import com.sap.sailing.domain.tracking.WindStore; import com.sap.sailing.domain.tracking.impl.EmptyWindStore; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; /** * Creates a tracked race for a race identifier by a {@link RaceIdentifier}. The operation assumes that the diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/DataImportFailed.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/DataImportFailed.java similarity index 88% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/DataImportFailed.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/DataImportFailed.java index 8974fb76cb9..cc1bfffb9c8 100644 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/DataImportFailed.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/DataImportFailed.java @@ -2,8 +2,8 @@ package com.sap.sailing.server.operationaltransformation; import java.util.UUID; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; public class DataImportFailed extends AbstractRacingEventServiceOperation { diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/DisconnectLeaderboardColumnFromTrackedRace.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/DisconnectLeaderboardColumnFromTrackedRace.java similarity index 93% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/DisconnectLeaderboardColumnFromTrackedRace.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/DisconnectLeaderboardColumnFromTrackedRace.java index 07dcf9a705f..bf71d8d2b6a 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/DisconnectLeaderboardColumnFromTrackedRace.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/DisconnectLeaderboardColumnFromTrackedRace.java @@ -2,8 +2,8 @@ package com.sap.sailing.server.operationaltransformation; import com.sap.sailing.domain.base.RaceColumn; import com.sap.sailing.domain.leaderboard.Leaderboard; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; public class DisconnectLeaderboardColumnFromTrackedRace extends AbstractLeaderboardColumnOperation { diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/ImportMasterDataOperation.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/ImportMasterDataOperation.java similarity index 99% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/ImportMasterDataOperation.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/ImportMasterDataOperation.java index a48bbb9ae18..85acfd9e9bf 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/ImportMasterDataOperation.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/ImportMasterDataOperation.java @@ -55,14 +55,14 @@ import com.sap.sailing.domain.regattalike.HasRegattaLike; import com.sap.sailing.domain.regattalike.IsRegattaLike; import com.sap.sailing.domain.regattalike.RegattaLikeIdentifier; import com.sap.sailing.domain.regattalog.RegattaLogStore; +import com.sap.sailing.domain.tracking.DummyTrackedRace; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.domain.tracking.TrackedRegatta; import com.sap.sailing.domain.tracking.WindTrack; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; -import com.sap.sailing.server.masterdata.DataImportLockWithProgress; -import com.sap.sailing.server.masterdata.DummyTrackedRace; +import com.sap.sailing.server.interfaces.DataImportLockWithProgress; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; import com.sap.sse.common.NoCorrespondingServiceRegisteredException; import com.sap.sse.common.Timed; import com.sap.sse.common.Util; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/MoveColumnInSeriesDown.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/MoveColumnInSeriesDown.java similarity index 90% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/MoveColumnInSeriesDown.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/MoveColumnInSeriesDown.java index 6ae99eea0b7..58524d9f306 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/MoveColumnInSeriesDown.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/MoveColumnInSeriesDown.java @@ -2,8 +2,8 @@ package com.sap.sailing.server.operationaltransformation; import com.sap.sailing.domain.base.Series; import com.sap.sailing.domain.common.RegattaIdentifier; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; public class MoveColumnInSeriesDown extends AbstractColumnInSeriesOperation { private static final long serialVersionUID = 1055871052852494542L; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/MoveColumnInSeriesUp.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/MoveColumnInSeriesUp.java similarity index 90% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/MoveColumnInSeriesUp.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/MoveColumnInSeriesUp.java index 956655ab7c5..bc6044abcd6 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/MoveColumnInSeriesUp.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/MoveColumnInSeriesUp.java @@ -2,8 +2,8 @@ package com.sap.sailing.server.operationaltransformation; import com.sap.sailing.domain.base.Series; import com.sap.sailing.domain.common.RegattaIdentifier; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; public class MoveColumnInSeriesUp extends AbstractColumnInSeriesOperation { private static final long serialVersionUID = -4111158026632514462L; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/MoveLeaderboardColumnDown.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/MoveLeaderboardColumnDown.java similarity index 87% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/MoveLeaderboardColumnDown.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/MoveLeaderboardColumnDown.java index e67094d9052..85e2e502f6c 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/MoveLeaderboardColumnDown.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/MoveLeaderboardColumnDown.java @@ -1,7 +1,7 @@ package com.sap.sailing.server.operationaltransformation; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; public class MoveLeaderboardColumnDown extends AbstractLeaderboardColumnOperation { diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/MoveLeaderboardColumnUp.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/MoveLeaderboardColumnUp.java similarity index 87% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/MoveLeaderboardColumnUp.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/MoveLeaderboardColumnUp.java index 7db7f4146e2..d7891107c51 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/MoveLeaderboardColumnUp.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/MoveLeaderboardColumnUp.java @@ -1,7 +1,7 @@ package com.sap.sailing.server.operationaltransformation; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; public class MoveLeaderboardColumnUp extends AbstractLeaderboardColumnOperation { diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RaceLogEventRecorder.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RaceLogEventRecorder.java similarity index 100% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RaceLogEventRecorder.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RaceLogEventRecorder.java diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RecordCompetitorGPSFix.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RecordCompetitorGPSFix.java similarity index 94% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RecordCompetitorGPSFix.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RecordCompetitorGPSFix.java index 3f034a112e5..cd811f65256 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RecordCompetitorGPSFix.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RecordCompetitorGPSFix.java @@ -6,8 +6,8 @@ import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; import com.sap.sailing.domain.common.tracking.GPSFixMoving; import com.sap.sailing.domain.tracking.DynamicTrackedRace; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; public class RecordCompetitorGPSFix extends AbstractRaceOperation { private static final long serialVersionUID = 5847067037829132465L; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RecordCompetitorSensorFix.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RecordCompetitorSensorFix.java similarity index 94% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RecordCompetitorSensorFix.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RecordCompetitorSensorFix.java index b5194670447..8aa4b1e7647 100644 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RecordCompetitorSensorFix.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RecordCompetitorSensorFix.java @@ -6,8 +6,8 @@ import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; import com.sap.sailing.domain.common.tracking.SensorFix; import com.sap.sailing.domain.tracking.DynamicTrackedRace; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; public class RecordCompetitorSensorFix extends AbstractRaceOperation { private static final long serialVersionUID = -7092704633177037511L; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RecordCompetitorSensorFixTrack.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RecordCompetitorSensorFixTrack.java similarity index 94% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RecordCompetitorSensorFixTrack.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RecordCompetitorSensorFixTrack.java index 0dee8cfb7fd..0c76f1bdbc8 100644 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RecordCompetitorSensorFixTrack.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RecordCompetitorSensorFixTrack.java @@ -5,8 +5,8 @@ import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; import com.sap.sailing.domain.tracking.DynamicSensorFixTrack; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.GPSFixTrack; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; /** * This replicates a whole {@link DynamicSensorFixTrack}. Other tracks like {@link GPSFixTrack} are created on the diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RecordMarkGPSFix.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RecordMarkGPSFix.java similarity index 93% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RecordMarkGPSFix.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RecordMarkGPSFix.java index d3f2845c6d7..51f3ba48168 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RecordMarkGPSFix.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RecordMarkGPSFix.java @@ -2,7 +2,7 @@ package com.sap.sailing.server.operationaltransformation; import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; import com.sap.sailing.domain.common.tracking.GPSFix; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; public abstract class RecordMarkGPSFix extends AbstractRaceOperation { private static final long serialVersionUID = -2149936580623244814L; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RecordMarkGPSFixForExistingTrack.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RecordMarkGPSFixForExistingTrack.java similarity index 97% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RecordMarkGPSFixForExistingTrack.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RecordMarkGPSFixForExistingTrack.java index ccaca3b1e75..2bdd3eadebf 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RecordMarkGPSFixForExistingTrack.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RecordMarkGPSFixForExistingTrack.java @@ -7,7 +7,7 @@ import com.sap.sailing.domain.base.Mark; import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; import com.sap.sailing.domain.common.tracking.GPSFix; import com.sap.sailing.domain.tracking.DynamicTrackedRace; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; public class RecordMarkGPSFixForExistingTrack extends RecordMarkGPSFix { private static final Logger logger = Logger.getLogger(RecordMarkGPSFixForExistingTrack.class.getName()); diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RecordMarkGPSFixForNewMarkTrack.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RecordMarkGPSFixForNewMarkTrack.java similarity index 95% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RecordMarkGPSFixForNewMarkTrack.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RecordMarkGPSFixForNewMarkTrack.java index e7fc1952ea2..ef8d9b94c37 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RecordMarkGPSFixForNewMarkTrack.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RecordMarkGPSFixForNewMarkTrack.java @@ -4,7 +4,7 @@ import com.sap.sailing.domain.base.Mark; import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; import com.sap.sailing.domain.common.tracking.GPSFix; import com.sap.sailing.domain.tracking.DynamicTrackedRace; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; /** * Records a mark fix for a mark whose track was just created. Such an operation carries the full {@link Mark} object diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RecordRaceLogEventOnLeaderboard.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RecordRaceLogEventOnLeaderboard.java similarity index 94% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RecordRaceLogEventOnLeaderboard.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RecordRaceLogEventOnLeaderboard.java index ff011654f30..8ab15dc23e8 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RecordRaceLogEventOnLeaderboard.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RecordRaceLogEventOnLeaderboard.java @@ -2,7 +2,7 @@ package com.sap.sailing.server.operationaltransformation; import com.sap.sailing.domain.abstractlog.race.RaceLogEvent; import com.sap.sailing.domain.base.RaceColumn; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; public class RecordRaceLogEventOnLeaderboard extends AbstractRaceLogOnLeaderboardOperation { private static final long serialVersionUID = 1008913415922358665L; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RecordRaceLogEventOnRegatta.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RecordRaceLogEventOnRegatta.java similarity index 94% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RecordRaceLogEventOnRegatta.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RecordRaceLogEventOnRegatta.java index 02e5fe4d626..bed7609135f 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RecordRaceLogEventOnRegatta.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RecordRaceLogEventOnRegatta.java @@ -2,7 +2,7 @@ package com.sap.sailing.server.operationaltransformation; import com.sap.sailing.domain.abstractlog.race.RaceLogEvent; import com.sap.sailing.domain.base.RaceColumn; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; public class RecordRaceLogEventOnRegatta extends AbstractRaceLogOnRegattaOperation { private static final long serialVersionUID = 8092146834280389864L; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RecordRegattaLogEventOnFlexibleLeaderboard.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RecordRegattaLogEventOnFlexibleLeaderboard.java similarity index 92% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RecordRegattaLogEventOnFlexibleLeaderboard.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RecordRegattaLogEventOnFlexibleLeaderboard.java index 3b7cd4327a2..37ed657770b 100644 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RecordRegattaLogEventOnFlexibleLeaderboard.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RecordRegattaLogEventOnFlexibleLeaderboard.java @@ -1,7 +1,7 @@ package com.sap.sailing.server.operationaltransformation; import com.sap.sailing.domain.abstractlog.regatta.RegattaLogEvent; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; public class RecordRegattaLogEventOnFlexibleLeaderboard extends AbstractRegattaLogOnFlexibleLeaderboardOperation { private static final long serialVersionUID = -6362628649889525333L; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RecordRegattaLogEventOnRegatta.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RecordRegattaLogEventOnRegatta.java similarity index 91% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RecordRegattaLogEventOnRegatta.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RecordRegattaLogEventOnRegatta.java index 940798ba7bf..b440fc8ca32 100644 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RecordRegattaLogEventOnRegatta.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RecordRegattaLogEventOnRegatta.java @@ -1,7 +1,7 @@ package com.sap.sailing.server.operationaltransformation; import com.sap.sailing.domain.abstractlog.regatta.RegattaLogEvent; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; public class RecordRegattaLogEventOnRegatta extends AbstractRegattaLogOnRegattaOperation { private static final long serialVersionUID = -6362628649889525333L; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RecordWindFix.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RecordWindFix.java similarity index 92% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RecordWindFix.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RecordWindFix.java index 3ac979dc3fa..5a991237e39 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RecordWindFix.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RecordWindFix.java @@ -4,8 +4,8 @@ import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; import com.sap.sailing.domain.common.Wind; import com.sap.sailing.domain.common.WindSource; import com.sap.sailing.domain.tracking.DynamicTrackedRace; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; public class RecordWindFix extends AbstractWindOperation { private static final long serialVersionUID = 6004214406759400039L; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RemoveAndUntrackRace.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RemoveAndUntrackRace.java similarity index 92% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RemoveAndUntrackRace.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RemoveAndUntrackRace.java index 8e2db4ec3c8..493cefaad84 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RemoveAndUntrackRace.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RemoveAndUntrackRace.java @@ -5,8 +5,8 @@ import java.io.IOException; import com.sap.sailing.domain.base.RaceDefinition; import com.sap.sailing.domain.base.Regatta; import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; public class RemoveAndUntrackRace extends AbstractRaceOperation { private static final long serialVersionUID = 4260421466093529004L; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RemoveColumnFromSeries.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RemoveColumnFromSeries.java similarity index 90% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RemoveColumnFromSeries.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RemoveColumnFromSeries.java index 0e7b3f590b8..5fbbee27a7c 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RemoveColumnFromSeries.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RemoveColumnFromSeries.java @@ -2,8 +2,8 @@ package com.sap.sailing.server.operationaltransformation; import com.sap.sailing.domain.base.Series; import com.sap.sailing.domain.common.RegattaIdentifier; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; public class RemoveColumnFromSeries extends AbstractColumnInSeriesOperation { private static final long serialVersionUID = -1923159034843767105L; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RemoveCourseAreas.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RemoveCourseAreas.java similarity index 90% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RemoveCourseAreas.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RemoveCourseAreas.java index c103ea1ec74..6465f7cd97c 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RemoveCourseAreas.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RemoveCourseAreas.java @@ -4,8 +4,8 @@ import java.util.UUID; import com.sap.sailing.domain.base.Event; import com.sap.sailing.domain.base.Venue; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; /** * Removes a course area from an {@link Event}'s {@link Venue}. diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RemoveDeviceConfiguration.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RemoveDeviceConfiguration.java similarity index 90% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RemoveDeviceConfiguration.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RemoveDeviceConfiguration.java index 4f3a22b8db7..70a260be527 100644 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RemoveDeviceConfiguration.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RemoveDeviceConfiguration.java @@ -1,7 +1,7 @@ package com.sap.sailing.server.operationaltransformation; import com.sap.sailing.domain.base.configuration.DeviceConfigurationMatcher; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; public class RemoveDeviceConfiguration extends AbstractDeviceConfigurationOperation { diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RemoveEvent.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RemoveEvent.java similarity index 88% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RemoveEvent.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RemoveEvent.java index 7823331537b..8ed10123ed6 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RemoveEvent.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RemoveEvent.java @@ -2,8 +2,8 @@ package com.sap.sailing.server.operationaltransformation; import java.util.UUID; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; public class RemoveEvent extends AbstractEventOperation { private static final long serialVersionUID = 8242646632399136789L; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RemoveLeaderboard.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RemoveLeaderboard.java similarity index 97% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RemoveLeaderboard.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RemoveLeaderboard.java index 325238f8b4c..e5cefb98a69 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RemoveLeaderboard.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RemoveLeaderboard.java @@ -1,7 +1,7 @@ package com.sap.sailing.server.operationaltransformation; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; public class RemoveLeaderboard extends AbstractLeaderboardOperation { private static final long serialVersionUID = -6491003416450255268L; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RemoveLeaderboardColumn.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RemoveLeaderboardColumn.java similarity index 96% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RemoveLeaderboardColumn.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RemoveLeaderboardColumn.java index 61c8fff2c99..f70e25a770f 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RemoveLeaderboardColumn.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RemoveLeaderboardColumn.java @@ -1,7 +1,7 @@ package com.sap.sailing.server.operationaltransformation; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; public class RemoveLeaderboardColumn extends AbstractLeaderboardColumnOperation { private static final long serialVersionUID = 5425526859417359535L; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RemoveLeaderboardGroup.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RemoveLeaderboardGroup.java similarity index 86% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RemoveLeaderboardGroup.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RemoveLeaderboardGroup.java index 70264fdb2a6..8fb56dadfac 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RemoveLeaderboardGroup.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RemoveLeaderboardGroup.java @@ -1,7 +1,7 @@ package com.sap.sailing.server.operationaltransformation; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; public class RemoveLeaderboardGroup extends AbstractLeaderboardGroupOperation { private static final long serialVersionUID = 3177217793859319236L; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RemoveLeaderboardGroupFromEvent.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RemoveLeaderboardGroupFromEvent.java similarity index 94% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RemoveLeaderboardGroupFromEvent.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RemoveLeaderboardGroupFromEvent.java index dcbbf433d12..f84f66f950b 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RemoveLeaderboardGroupFromEvent.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RemoveLeaderboardGroupFromEvent.java @@ -6,8 +6,8 @@ import java.util.logging.Logger; import com.sap.sailing.domain.base.Event; import com.sap.sailing.domain.leaderboard.LeaderboardGroup; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; public class RemoveLeaderboardGroupFromEvent extends AbstractRacingEventServiceOperation { private static final long serialVersionUID = 5061411909275963501L; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RemoveMediaTrackOperation.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RemoveMediaTrackOperation.java similarity index 89% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RemoveMediaTrackOperation.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RemoveMediaTrackOperation.java index 474b6f0a280..d651fb02f5b 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RemoveMediaTrackOperation.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RemoveMediaTrackOperation.java @@ -1,7 +1,7 @@ package com.sap.sailing.server.operationaltransformation; import com.sap.sailing.domain.common.media.MediaTrack; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; public class RemoveMediaTrackOperation extends AbstractMediaTrackOperation { diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RemoveRegatta.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RemoveRegatta.java similarity index 91% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RemoveRegatta.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RemoveRegatta.java index 6b821c71174..44ffe073fd0 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RemoveRegatta.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RemoveRegatta.java @@ -4,8 +4,8 @@ import java.util.logging.Logger; import com.sap.sailing.domain.base.Regatta; import com.sap.sailing.domain.common.RegattaIdentifier; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; public class RemoveRegatta extends AbstractRacingEventServiceOperation { private static final long serialVersionUID = -2232723085937305299L; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RemoveRemoteSailingServerReference.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RemoveRemoteSailingServerReference.java similarity index 89% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RemoveRemoteSailingServerReference.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RemoveRemoteSailingServerReference.java index f111bc0ca10..3bdf3e73a80 100644 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RemoveRemoteSailingServerReference.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RemoveRemoteSailingServerReference.java @@ -1,8 +1,8 @@ package com.sap.sailing.server.operationaltransformation; import com.sap.sailing.domain.base.RemoteSailingServerReference; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; /** * Removes a {@link RemoteSailingServerReference} instance. diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RemoveSeries.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RemoveSeries.java similarity index 92% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RemoveSeries.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RemoveSeries.java index cec2e01b069..78995fe5d26 100644 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RemoveSeries.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RemoveSeries.java @@ -5,8 +5,8 @@ import java.util.logging.Logger; import com.sap.sailing.domain.base.Regatta; import com.sap.sailing.domain.base.Series; import com.sap.sailing.domain.common.RegattaIdentifier; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; public class RemoveSeries extends AbstractRacingEventServiceOperation { private static final long serialVersionUID = -2232723085937305299L; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RemoveWaypoint.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RemoveWaypoint.java similarity index 94% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RemoveWaypoint.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RemoveWaypoint.java index c671cbb404b..2bed2ea5c24 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RemoveWaypoint.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RemoveWaypoint.java @@ -6,8 +6,8 @@ import com.sap.sailing.domain.base.Course; import com.sap.sailing.domain.base.RaceDefinition; import com.sap.sailing.domain.base.Waypoint; import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; import com.sap.sse.common.Util; public class RemoveWaypoint extends WaypointOperation { diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RemoveWindFix.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RemoveWindFix.java similarity index 92% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RemoveWindFix.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RemoveWindFix.java index 90792b46f35..1f6aef7b59b 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RemoveWindFix.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RemoveWindFix.java @@ -4,8 +4,8 @@ import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; import com.sap.sailing.domain.common.Wind; import com.sap.sailing.domain.common.WindSource; import com.sap.sailing.domain.tracking.DynamicTrackedRace; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; public class RemoveWindFix extends AbstractWindOperation { private static final long serialVersionUID = 6004214406759400039L; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RenameEvent.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RenameEvent.java similarity index 89% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RenameEvent.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RenameEvent.java index 233648b9795..326d2314c23 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RenameEvent.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RenameEvent.java @@ -2,8 +2,8 @@ package com.sap.sailing.server.operationaltransformation; import java.util.UUID; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; public class RenameEvent extends AbstractEventOperation { private static final long serialVersionUID = 4516794459150387632L; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RenameLeaderboard.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RenameLeaderboard.java similarity index 89% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RenameLeaderboard.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RenameLeaderboard.java index 83ef34d05fb..5c854b1afd4 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RenameLeaderboard.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RenameLeaderboard.java @@ -1,7 +1,7 @@ package com.sap.sailing.server.operationaltransformation; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; public class RenameLeaderboard extends AbstractLeaderboardOperation { private static final long serialVersionUID = 8874599127010526971L; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RenameLeaderboardColumn.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RenameLeaderboardColumn.java similarity index 89% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RenameLeaderboardColumn.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RenameLeaderboardColumn.java index 9eb59fc2eb2..f33bed4846e 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RenameLeaderboardColumn.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RenameLeaderboardColumn.java @@ -1,7 +1,7 @@ package com.sap.sailing.server.operationaltransformation; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; public class RenameLeaderboardColumn extends AbstractLeaderboardColumnOperation { private static final long serialVersionUID = -1238503068559477351L; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RenameLeaderboardGroup.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RenameLeaderboardGroup.java similarity index 90% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RenameLeaderboardGroup.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RenameLeaderboardGroup.java index 9237d3ec75c..5adeb74e8c2 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RenameLeaderboardGroup.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/RenameLeaderboardGroup.java @@ -1,7 +1,7 @@ package com.sap.sailing.server.operationaltransformation; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; public class RenameLeaderboardGroup extends AbstractLeaderboardGroupOperation { private static final long serialVersionUID = -5007784579411727148L; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/SetDataImportDeleteProgressFromMapTimer.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/SetDataImportDeleteProgressFromMapTimer.java similarity index 87% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/SetDataImportDeleteProgressFromMapTimer.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/SetDataImportDeleteProgressFromMapTimer.java index c151f2c6104..14b49591481 100644 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/SetDataImportDeleteProgressFromMapTimer.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/SetDataImportDeleteProgressFromMapTimer.java @@ -2,8 +2,8 @@ package com.sap.sailing.server.operationaltransformation; import java.util.UUID; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; public class SetDataImportDeleteProgressFromMapTimer extends AbstractRacingEventServiceOperation { diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/SetRaceIsKnownToStartUpwind.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/SetRaceIsKnownToStartUpwind.java similarity index 91% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/SetRaceIsKnownToStartUpwind.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/SetRaceIsKnownToStartUpwind.java index 89bf2ca4f0e..f5e900b332c 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/SetRaceIsKnownToStartUpwind.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/SetRaceIsKnownToStartUpwind.java @@ -2,8 +2,8 @@ package com.sap.sailing.server.operationaltransformation; import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; import com.sap.sailing.domain.tracking.DynamicTrackedRace; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; public class SetRaceIsKnownToStartUpwind extends AbstractRaceOperation { private static final long serialVersionUID = 272403191741207144L; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/SetSuppressedFlagForCompetitorInLeaderboard.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/SetSuppressedFlagForCompetitorInLeaderboard.java similarity index 92% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/SetSuppressedFlagForCompetitorInLeaderboard.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/SetSuppressedFlagForCompetitorInLeaderboard.java index f47314804ce..22b3c01e2ff 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/SetSuppressedFlagForCompetitorInLeaderboard.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/SetSuppressedFlagForCompetitorInLeaderboard.java @@ -2,8 +2,8 @@ package com.sap.sailing.server.operationaltransformation; import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.leaderboard.Leaderboard; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; public class SetSuppressedFlagForCompetitorInLeaderboard extends AbstractLeaderboardOperation { private static final long serialVersionUID = -6509970065541824854L; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/SetWindSourcesToExclude.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/SetWindSourcesToExclude.java similarity index 92% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/SetWindSourcesToExclude.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/SetWindSourcesToExclude.java index cd63062eddf..14e5c6eb199 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/SetWindSourcesToExclude.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/SetWindSourcesToExclude.java @@ -3,8 +3,8 @@ package com.sap.sailing.server.operationaltransformation; import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; import com.sap.sailing.domain.common.WindSource; import com.sap.sailing.domain.tracking.DynamicTrackedRace; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; public class SetWindSourcesToExclude extends AbstractRaceOperation { private static final long serialVersionUID = 7639288885720509529L; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/StopTrackingRace.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/StopTrackingRace.java similarity index 91% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/StopTrackingRace.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/StopTrackingRace.java index 1b58ca25eaf..a80de8ed924 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/StopTrackingRace.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/StopTrackingRace.java @@ -3,8 +3,8 @@ package com.sap.sailing.server.operationaltransformation; import com.sap.sailing.domain.base.RaceDefinition; import com.sap.sailing.domain.base.Regatta; import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; public class StopTrackingRace extends AbstractRaceOperation { private static final long serialVersionUID = -6074168525544219596L; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/TrackRegatta.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/TrackRegatta.java similarity index 91% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/TrackRegatta.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/TrackRegatta.java index ebe1039ea4e..6f2fdcf73fa 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/TrackRegatta.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/TrackRegatta.java @@ -3,8 +3,8 @@ package com.sap.sailing.server.operationaltransformation; import com.sap.sailing.domain.base.Regatta; import com.sap.sailing.domain.common.RegattaIdentifier; import com.sap.sailing.domain.tracking.DynamicTrackedRegatta; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; public class TrackRegatta extends AbstractRacingEventServiceOperation { private static final long serialVersionUID = 7891960455598410633L; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateBoat.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateBoat.java similarity index 92% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateBoat.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateBoat.java index 88c93cd196e..01356a93748 100644 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateBoat.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateBoat.java @@ -1,8 +1,8 @@ package com.sap.sailing.server.operationaltransformation; import com.sap.sailing.domain.base.Boat; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; import com.sap.sse.common.Color; public class UpdateBoat extends AbstractRacingEventServiceOperation { diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateCompetitor.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateCompetitor.java similarity index 95% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateCompetitor.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateCompetitor.java index 8b3e0e4a1a5..54f96ab4a81 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateCompetitor.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateCompetitor.java @@ -5,9 +5,8 @@ import java.net.URI; import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.base.Nationality; import com.sap.sailing.domain.base.CompetitorAndBoatStore.CompetitorUpdateListener; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; -import com.sap.sailing.server.impl.RacingEventServiceImpl; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; import com.sap.sse.common.Color; import com.sap.sse.common.Duration; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateCompetitorDisplayNameInLeaderboard.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateCompetitorDisplayNameInLeaderboard.java similarity index 92% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateCompetitorDisplayNameInLeaderboard.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateCompetitorDisplayNameInLeaderboard.java index ea88022463e..59cbfeced23 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateCompetitorDisplayNameInLeaderboard.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateCompetitorDisplayNameInLeaderboard.java @@ -2,8 +2,8 @@ package com.sap.sailing.server.operationaltransformation; import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.leaderboard.Leaderboard; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; public class UpdateCompetitorDisplayNameInLeaderboard extends AbstractLeaderboardOperation { private static final long serialVersionUID = 366335484317671148L; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateEliminatedCompetitorsInLeaderboard.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateEliminatedCompetitorsInLeaderboard.java similarity index 94% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateEliminatedCompetitorsInLeaderboard.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateEliminatedCompetitorsInLeaderboard.java index 6da2d1317f1..e990e2f3bee 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateEliminatedCompetitorsInLeaderboard.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateEliminatedCompetitorsInLeaderboard.java @@ -5,8 +5,8 @@ import java.util.Set; import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.leaderboard.RegattaLeaderboardWithEliminations; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; public class UpdateEliminatedCompetitorsInLeaderboard extends AbstractLeaderboardOperation { private static final long serialVersionUID = -5326008498204072454L; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateEndOfTracking.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateEndOfTracking.java similarity index 93% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateEndOfTracking.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateEndOfTracking.java index 8c7543758d9..3fc83b60464 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateEndOfTracking.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateEndOfTracking.java @@ -4,8 +4,8 @@ import java.util.logging.Logger; import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; import com.sap.sailing.domain.tracking.DynamicTrackedRace; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; import com.sap.sse.common.TimePoint; public class UpdateEndOfTracking extends AbstractRaceOperation { diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateEvent.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateEvent.java similarity index 95% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateEvent.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateEvent.java index ffd879182a0..db0be1e42bc 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateEvent.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateEvent.java @@ -5,8 +5,8 @@ import java.util.Locale; import java.util.Map; import java.util.UUID; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; import com.sap.sse.common.TimePoint; import com.sap.sse.shared.media.ImageDescriptor; import com.sap.sse.shared.media.VideoDescriptor; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateIsMedalRace.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateIsMedalRace.java similarity index 92% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateIsMedalRace.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateIsMedalRace.java index a1146e27c5e..d5df3803344 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateIsMedalRace.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateIsMedalRace.java @@ -2,8 +2,8 @@ package com.sap.sailing.server.operationaltransformation; import com.sap.sailing.domain.leaderboard.FlexibleLeaderboard; import com.sap.sailing.domain.leaderboard.Leaderboard; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; public class UpdateIsMedalRace extends AbstractLeaderboardColumnOperation { private static final long serialVersionUID = 5925081961634860757L; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateLeaderboard.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateLeaderboard.java similarity index 96% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateLeaderboard.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateLeaderboard.java index 18e282a3150..4b41602ee47 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateLeaderboard.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateLeaderboard.java @@ -8,8 +8,8 @@ import com.sap.sailing.domain.leaderboard.FlexibleLeaderboard; import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sailing.domain.leaderboard.ThresholdBasedResultDiscardingRule; import com.sap.sailing.domain.leaderboard.impl.ThresholdBasedResultDiscardingRuleImpl; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; public class UpdateLeaderboard extends AbstractLeaderboardOperation { private static final long serialVersionUID = -8040361040050151768L; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateLeaderboardCarryValue.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateLeaderboardCarryValue.java similarity index 93% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateLeaderboardCarryValue.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateLeaderboardCarryValue.java index 3b9d282a03a..b458a4ac37e 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateLeaderboardCarryValue.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateLeaderboardCarryValue.java @@ -2,8 +2,8 @@ package com.sap.sailing.server.operationaltransformation; import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.leaderboard.Leaderboard; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; public class UpdateLeaderboardCarryValue extends AbstractLeaderboardOperation { private static final long serialVersionUID = 5467731814788887426L; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateLeaderboardColumnFactor.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateLeaderboardColumnFactor.java similarity index 88% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateLeaderboardColumnFactor.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateLeaderboardColumnFactor.java index 892e5e2fb40..869c9d89018 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateLeaderboardColumnFactor.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateLeaderboardColumnFactor.java @@ -1,7 +1,7 @@ package com.sap.sailing.server.operationaltransformation; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; public class UpdateLeaderboardColumnFactor extends AbstractLeaderboardColumnOperation { private static final long serialVersionUID = -1238503068559477351L; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateLeaderboardGroup.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateLeaderboardGroup.java similarity index 93% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateLeaderboardGroup.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateLeaderboardGroup.java index a180add79e0..1580123baba 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateLeaderboardGroup.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateLeaderboardGroup.java @@ -3,8 +3,8 @@ package com.sap.sailing.server.operationaltransformation; import java.util.List; import com.sap.sailing.domain.common.ScoringSchemeType; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; public class UpdateLeaderboardGroup extends AbstractLeaderboardGroupOperation { private static final long serialVersionUID = -1822477339916802467L; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateLeaderboardMaxPointsReason.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateLeaderboardMaxPointsReason.java similarity index 95% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateLeaderboardMaxPointsReason.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateLeaderboardMaxPointsReason.java index 1d6f3e3cbaa..a20f92f34fb 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateLeaderboardMaxPointsReason.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateLeaderboardMaxPointsReason.java @@ -6,8 +6,8 @@ import com.sap.sailing.domain.common.MaxPointsReason; import com.sap.sailing.domain.common.NoWindException; import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sailing.domain.leaderboard.Leaderboard.Entry; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; import com.sap.sse.common.TimePoint; import com.sap.sse.common.Util; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateLeaderboardScoreCorrection.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateLeaderboardScoreCorrection.java similarity index 96% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateLeaderboardScoreCorrection.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateLeaderboardScoreCorrection.java index 2afe892e264..563f7fc3ac0 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateLeaderboardScoreCorrection.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateLeaderboardScoreCorrection.java @@ -4,8 +4,8 @@ import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.base.RaceColumn; import com.sap.sailing.domain.common.NoWindException; import com.sap.sailing.domain.leaderboard.Leaderboard; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; import com.sap.sse.common.TimePoint; import com.sap.sse.common.Util; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateLeaderboardScoreCorrectionMetadata.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateLeaderboardScoreCorrectionMetadata.java similarity index 94% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateLeaderboardScoreCorrectionMetadata.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateLeaderboardScoreCorrectionMetadata.java index 11a03f0f558..0b483ae1868 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateLeaderboardScoreCorrectionMetadata.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateLeaderboardScoreCorrectionMetadata.java @@ -3,8 +3,8 @@ package com.sap.sailing.server.operationaltransformation; import com.sap.sailing.domain.common.NoWindException; import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sailing.domain.leaderboard.SettableScoreCorrection; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; import com.sap.sse.common.TimePoint; public class UpdateLeaderboardScoreCorrectionMetadata extends AbstractLeaderboardOperation { diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateMarkPassings.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateMarkPassings.java similarity index 94% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateMarkPassings.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateMarkPassings.java index 602faa6733e..e2934af058f 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateMarkPassings.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateMarkPassings.java @@ -7,8 +7,8 @@ import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.MarkPassing; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; import com.sap.sse.common.Util; public class UpdateMarkPassings extends AbstractRaceOperation { diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateMediaTrackDurationOperation.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateMediaTrackDurationOperation.java similarity index 90% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateMediaTrackDurationOperation.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateMediaTrackDurationOperation.java index 6b4aee57fd9..311503e5b2b 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateMediaTrackDurationOperation.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateMediaTrackDurationOperation.java @@ -1,7 +1,7 @@ package com.sap.sailing.server.operationaltransformation; import com.sap.sailing.domain.common.media.MediaTrack; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; public class UpdateMediaTrackDurationOperation extends AbstractMediaTrackOperation { diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateMediaTrackRacesOperation.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateMediaTrackRacesOperation.java similarity index 90% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateMediaTrackRacesOperation.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateMediaTrackRacesOperation.java index b0690e2f6f6..b833d6b2d43 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateMediaTrackRacesOperation.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateMediaTrackRacesOperation.java @@ -1,7 +1,7 @@ package com.sap.sailing.server.operationaltransformation; import com.sap.sailing.domain.common.media.MediaTrack; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; public class UpdateMediaTrackRacesOperation extends AbstractMediaTrackOperation { diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateMediaTrackStartTimeOperation.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateMediaTrackStartTimeOperation.java similarity index 90% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateMediaTrackStartTimeOperation.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateMediaTrackStartTimeOperation.java index e49fd6f4337..a7e5a4feb4c 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateMediaTrackStartTimeOperation.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateMediaTrackStartTimeOperation.java @@ -1,7 +1,7 @@ package com.sap.sailing.server.operationaltransformation; import com.sap.sailing.domain.common.media.MediaTrack; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; public class UpdateMediaTrackStartTimeOperation extends AbstractMediaTrackOperation { diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateMediaTrackTitleOperation.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateMediaTrackTitleOperation.java similarity index 89% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateMediaTrackTitleOperation.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateMediaTrackTitleOperation.java index 4a84d54d5cc..be71d863f5b 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateMediaTrackTitleOperation.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateMediaTrackTitleOperation.java @@ -1,7 +1,7 @@ package com.sap.sailing.server.operationaltransformation; import com.sap.sailing.domain.common.media.MediaTrack; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; public class UpdateMediaTrackTitleOperation extends AbstractMediaTrackOperation { diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateMediaTrackUrlOperation.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateMediaTrackUrlOperation.java similarity index 89% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateMediaTrackUrlOperation.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateMediaTrackUrlOperation.java index bd04b1b313c..35971d1ada3 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateMediaTrackUrlOperation.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateMediaTrackUrlOperation.java @@ -1,7 +1,7 @@ package com.sap.sailing.server.operationaltransformation; import com.sap.sailing.domain.common.media.MediaTrack; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; public class UpdateMediaTrackUrlOperation extends AbstractMediaTrackOperation { diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateRaceDelayToLive.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateRaceDelayToLive.java similarity index 93% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateRaceDelayToLive.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateRaceDelayToLive.java index 9302b37564e..db2e5b49ee9 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateRaceDelayToLive.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateRaceDelayToLive.java @@ -4,8 +4,8 @@ import java.util.logging.Logger; import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; import com.sap.sailing.domain.tracking.DynamicTrackedRace; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; public class UpdateRaceDelayToLive extends AbstractRaceOperation { private static final long serialVersionUID = -4759501337499106614L; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateSeries.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateSeries.java similarity index 97% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateSeries.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateSeries.java index cb5b530cc80..49903a9e242 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateSeries.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateSeries.java @@ -13,8 +13,8 @@ import com.sap.sailing.domain.common.RegattaIdentifier; import com.sap.sailing.domain.common.dto.FleetDTO; import com.sap.sailing.domain.leaderboard.impl.ThresholdBasedResultDiscardingRuleImpl; import com.sap.sailing.domain.tracking.TrackedRegattaRegistry; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; public class UpdateSeries extends AbstractSeriesOperation { private static final long serialVersionUID = 6356089749049112710L; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateServerConfiguration.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateServerConfiguration.java similarity index 90% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateServerConfiguration.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateServerConfiguration.java index 638e8743160..683ea8547d0 100644 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateServerConfiguration.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateServerConfiguration.java @@ -1,8 +1,8 @@ package com.sap.sailing.server.operationaltransformation; import com.sap.sailing.domain.base.SailingServerConfiguration; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; public class UpdateServerConfiguration extends AbstractRacingEventServiceOperation { private static final long serialVersionUID = -778186188996039972L; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateSpecificRegatta.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateSpecificRegatta.java similarity index 94% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateSpecificRegatta.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateSpecificRegatta.java index f09253bbbce..ad1d8d1b0bf 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateSpecificRegatta.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateSpecificRegatta.java @@ -5,8 +5,8 @@ import java.util.UUID; import com.sap.sailing.domain.base.Regatta; import com.sap.sailing.domain.base.configuration.RegattaConfiguration; import com.sap.sailing.domain.common.RegattaIdentifier; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; import com.sap.sse.common.TimePoint; public class UpdateSpecificRegatta extends AbstractRacingEventServiceOperation{ diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateStartOfTracking.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateStartOfTracking.java similarity index 93% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateStartOfTracking.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateStartOfTracking.java index 64dfaa48359..ee2be9342ec 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateStartOfTracking.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateStartOfTracking.java @@ -4,8 +4,8 @@ import java.util.logging.Logger; import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; import com.sap.sailing.domain.tracking.DynamicTrackedRace; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; import com.sap.sse.common.TimePoint; public class UpdateStartOfTracking extends AbstractRaceOperation { diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateStartTimeReceived.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateStartTimeReceived.java similarity index 93% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateStartTimeReceived.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateStartTimeReceived.java index 95e8e2399d6..fff21899b2c 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateStartTimeReceived.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateStartTimeReceived.java @@ -4,8 +4,8 @@ import java.util.logging.Logger; import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; import com.sap.sailing.domain.tracking.DynamicTrackedRace; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; import com.sap.sse.common.TimePoint; public class UpdateStartTimeReceived extends AbstractRaceOperation { diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateTrackedRaceStatus.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateTrackedRaceStatus.java similarity index 93% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateTrackedRaceStatus.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateTrackedRaceStatus.java index 1fb42923dc0..4d4e1fcbcdd 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateTrackedRaceStatus.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateTrackedRaceStatus.java @@ -5,8 +5,8 @@ import java.util.logging.Logger; import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.TrackedRaceStatus; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; public class UpdateTrackedRaceStatus extends AbstractRaceOperation { private static final long serialVersionUID = 5847067037829132465L; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateWindAveragingTime.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateWindAveragingTime.java similarity index 93% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateWindAveragingTime.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateWindAveragingTime.java index 6f0deb92f1a..46977ec8635 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateWindAveragingTime.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateWindAveragingTime.java @@ -4,8 +4,8 @@ import java.util.logging.Logger; import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; import com.sap.sailing.domain.tracking.DynamicTrackedRace; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; public class UpdateWindAveragingTime extends AbstractRaceOperation { private static final long serialVersionUID = -3143003305202654846L; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateWindSourcesToExclude.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateWindSourcesToExclude.java similarity index 93% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateWindSourcesToExclude.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateWindSourcesToExclude.java index 7cdf1bbb604..1cfe414164d 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateWindSourcesToExclude.java +++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/UpdateWindSourcesToExclude.java @@ -5,8 +5,8 @@ import java.util.logging.Logger; import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; import com.sap.sailing.domain.common.WindSource; import com.sap.sailing.domain.tracking.DynamicTrackedRace; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; public class UpdateWindSourcesToExclude extends AbstractRaceOperation { private static final long serialVersionUID = 5599076261746041948L; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/WaypointOperation.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/WaypointOperation.java similarity index 100% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/WaypointOperation.java rename to java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/WaypointOperation.java diff --git a/java/com.sap.sailing.server.replication.test/META-INF/MANIFEST.MF b/java/com.sap.sailing.server.replication.test/META-INF/MANIFEST.MF index 3346f7242f6..1faad3a7abe 100644 --- a/java/com.sap.sailing.server.replication.test/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.server.replication.test/META-INF/MANIFEST.MF @@ -8,11 +8,11 @@ Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Fragment-Host: com.sap.sse.replication Import-Package: com.rabbitmq.client;version="2.8.4" Require-Bundle: com.sap.sailing.server, + com.sap.sailing.server.interface, com.sap.sailing.domain.common, com.sap.sailing.domain, com.sap.sailing.domain.test, com.sap.sse.mongodb, - org.mongodb.mongo-java-driver;bundle-version="2.13.0", com.sap.sailing.domain.persistence, com.sap.sailing.domain.tractracadapter, com.tractrac.clientmodule;bundle-version="2.0.0", @@ -31,6 +31,7 @@ Require-Bundle: com.sap.sailing.server, com.sap.sailing.server.gateway, javax.ws.rs, com.sap.sailing.server.testsupport, + org.eclipse.orbit.mongodb;bundle-version="3.2.2", com.sap.sse.security, com.sap.sse.security.common, com.sun.jersey;bundle-version="1.17.0" diff --git a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/AbstractServerReplicationTest.java b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/AbstractServerReplicationTest.java index e20df1dc07c..0709d24e16f 100755 --- a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/AbstractServerReplicationTest.java +++ b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/AbstractServerReplicationTest.java @@ -10,9 +10,9 @@ import com.sap.sailing.domain.persistence.PersistenceFactory; import com.sap.sailing.domain.persistence.media.MediaDBFactory; import com.sap.sailing.domain.racelog.tracking.EmptySensorFixStore; import com.sap.sailing.domain.tracking.impl.EmptyWindStore; -import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.impl.RacingEventServiceImpl; import com.sap.sailing.server.impl.RacingEventServiceImpl.ConstructorParameters; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.mongodb.MongoDBService; public abstract class AbstractServerReplicationTest extends com.sap.sse.replication.testsupport.AbstractServerWithSingleServiceReplicationTest { @@ -39,7 +39,7 @@ public abstract class AbstractServerReplicationTest extends com.sap.sse.replicat protected void persistenceSetUp(boolean dropDB) { mongoDBService = MongoDBService.INSTANCE; if (dropDB) { - mongoDBService.getDB().dropDatabase(); + mongoDBService.getDB().drop(); } mongoObjectFactory = PersistenceFactory.INSTANCE.getMongoObjectFactory(mongoDBService); } diff --git a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/ConnectionResetAndReconnectTest.java b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/ConnectionResetAndReconnectTest.java index 91d1c4d5121..33bd2d2c425 100644 --- a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/ConnectionResetAndReconnectTest.java +++ b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/ConnectionResetAndReconnectTest.java @@ -21,7 +21,7 @@ import com.rabbitmq.client.ConsumerCancelledException; import com.rabbitmq.client.QueueingConsumer; import com.rabbitmq.client.ShutdownSignalException; import com.sap.sailing.domain.base.Event; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.common.TimePoint; import com.sap.sse.common.Util; import com.sap.sse.common.Util.Pair; diff --git a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/DelayedLeaderboardCorrectionsReplicationTest.java b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/DelayedLeaderboardCorrectionsReplicationTest.java index c362f2efcde..f718dbd97c3 100755 --- a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/DelayedLeaderboardCorrectionsReplicationTest.java +++ b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/DelayedLeaderboardCorrectionsReplicationTest.java @@ -34,8 +34,8 @@ import com.sap.sailing.domain.test.mock.MockedTrackedRaceWithFixedRank; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.domain.tracking.impl.EmptyWindStore; -import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.impl.RacingEventServiceImpl; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sailing.server.operationaltransformation.AddColumnToLeaderboard; import com.sap.sailing.server.operationaltransformation.ConnectTrackedRaceToLeaderboardColumn; import com.sap.sailing.server.operationaltransformation.CreateFlexibleLeaderboard; @@ -58,7 +58,7 @@ public class DelayedLeaderboardCorrectionsReplicationTest extends AbstractServer @Before public void setUp() throws FileNotFoundException, UnknownHostException { final MongoDBService mongoDBService = MongoDBService.INSTANCE; - mongoDBService.getDB().dropDatabase(); + mongoDBService.getDB().drop(); } /** diff --git a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/IdempotencyForWaypointOperationsTest.java b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/IdempotencyForWaypointOperationsTest.java index 026f9a98b8e..d05a42184ea 100755 --- a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/IdempotencyForWaypointOperationsTest.java +++ b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/IdempotencyForWaypointOperationsTest.java @@ -21,7 +21,7 @@ import com.sap.sailing.domain.base.impl.MarkImpl; import com.sap.sailing.domain.base.impl.WaypointImpl; import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; import com.sap.sailing.domain.common.RegattaNameAndRaceName; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sailing.server.operationaltransformation.AddWaypoint; import com.sap.sailing.server.operationaltransformation.RemoveWaypoint; import com.sap.sse.common.Util; diff --git a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/InitialLoadReplicationObjectIdentityTest.java b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/InitialLoadReplicationObjectIdentityTest.java index 511fa58f0d6..f7eaecf5c3f 100755 --- a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/InitialLoadReplicationObjectIdentityTest.java +++ b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/InitialLoadReplicationObjectIdentityTest.java @@ -66,8 +66,8 @@ import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.domain.tracking.WindTrack; import com.sap.sailing.domain.tracking.impl.EmptyWindStore; -import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.impl.RacingEventServiceImpl; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sailing.server.operationaltransformation.AddDefaultRegatta; import com.sap.sailing.server.operationaltransformation.AddRaceDefinition; import com.sap.sailing.server.operationaltransformation.CreateFlexibleLeaderboard; diff --git a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/MediaReplicationTest.java b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/MediaReplicationTest.java index fc85e19a3c3..7aed2c9b0da 100644 --- a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/MediaReplicationTest.java +++ b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/MediaReplicationTest.java @@ -35,9 +35,9 @@ import com.sap.sailing.domain.common.media.MediaTrack; import com.sap.sailing.domain.leaderboard.LeaderboardGroup; import com.sap.sailing.domain.leaderboard.RegattaLeaderboard; import com.sap.sailing.domain.test.TrackBasedTest; -import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.gateway.jaxrs.AbstractSailingServerResource; import com.sap.sailing.server.impl.RacingEventServiceImpl; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sailing.server.masterdata.MasterDataImporter; import com.sap.sse.common.Duration; import com.sap.sse.common.TimePoint; @@ -53,7 +53,7 @@ import com.sap.sse.security.shared.WithQualifiedObjectIdentifier; import com.sap.sse.security.shared.impl.User; import com.sap.sse.security.shared.impl.UserGroupImpl; -import junit.framework.Assert; +import org.junit.Assert; public class MediaReplicationTest extends AbstractServerReplicationTest { @@ -303,8 +303,8 @@ public class MediaReplicationTest extends AbstractServerReplicationTest { private void deleteAllDataFromDatabase() { MongoDBService service = MongoDBConfiguration.getDefaultTestConfiguration().getService(); - service.getDB().getWriteConcern().fsync(); - service.getDB().dropDatabase(); + service.getDB().getWriteConcern().getJournal(); + service.getDB().drop(); } } diff --git a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/PrematureOperationReceiptTest.java b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/PrematureOperationReceiptTest.java index c52ddee87e8..6e1587829f2 100755 --- a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/PrematureOperationReceiptTest.java +++ b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/PrematureOperationReceiptTest.java @@ -9,7 +9,7 @@ import org.junit.Test; import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sailing.domain.leaderboard.impl.LowPoint; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sailing.server.operationaltransformation.CreateFlexibleLeaderboard; import com.sap.sse.common.Util.Pair; import com.sap.sse.replication.ReplicationMasterDescriptor; diff --git a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/RaceLogReplicationTest.java b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/RaceLogReplicationTest.java index c489a1a89bf..d4d7ff2e095 100755 --- a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/RaceLogReplicationTest.java +++ b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/RaceLogReplicationTest.java @@ -6,7 +6,7 @@ import static org.junit.Assert.assertNotNull; import java.io.IOException; import java.util.UUID; -import junit.framework.Assert; +import org.junit.Assert; import org.junit.Before; import org.junit.Ignore; diff --git a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/ReplicationInstancesManagerLoggingPerformanceTest.java b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/ReplicationInstancesManagerLoggingPerformanceTest.java index 01e494bc8d3..c3c960bee94 100755 --- a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/ReplicationInstancesManagerLoggingPerformanceTest.java +++ b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/ReplicationInstancesManagerLoggingPerformanceTest.java @@ -12,7 +12,8 @@ import org.junit.Before; import org.junit.Test; import com.sap.sailing.server.operationaltransformation.CreateLeaderboardGroup; -import com.sap.sse.replication.impl.ReplicaDescriptor; +import com.sap.sse.replication.ReplicaDescriptor; +import com.sap.sse.replication.impl.ReplicaDescriptorImpl; import com.sap.sse.replication.impl.ReplicationInstancesManager; public class ReplicationInstancesManagerLoggingPerformanceTest { @@ -23,7 +24,7 @@ public class ReplicationInstancesManagerLoggingPerformanceTest { @Before public void setUp() throws UnknownHostException { replicationInstanceManager = new ReplicationInstancesManager(); - replica = new ReplicaDescriptor(InetAddress.getLocalHost(), UUID.randomUUID(), "", /* replicableIds */ new String[] { "Humba" }); + replica = new ReplicaDescriptorImpl(InetAddress.getLocalHost(), UUID.randomUUID(), "", /* replicableIds */ new String[] { "Humba" }); replicationInstanceManager.registerReplica(replica); UUID newGroupid = UUID.randomUUID(); operation = new CreateLeaderboardGroup(newGroupid, "Test Leaderboard Group", diff --git a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/ServerReplicationTest.java b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/ServerReplicationTest.java index bc1301194ad..d7eb9bec96f 100755 --- a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/ServerReplicationTest.java +++ b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/ServerReplicationTest.java @@ -29,7 +29,7 @@ import com.sap.sailing.domain.leaderboard.FlexibleLeaderboard; import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sailing.domain.leaderboard.ThresholdBasedResultDiscardingRule; import com.sap.sailing.domain.leaderboard.impl.LowPoint; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; import com.sap.sailing.server.operationaltransformation.AddDefaultRegatta; import com.sap.sailing.server.operationaltransformation.AddRaceDefinition; import com.sap.sailing.server.operationaltransformation.CreateFlexibleLeaderboard; diff --git a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/TrackRaceBoatCompetitorMetadataReplicationTest.java b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/TrackRaceBoatCompetitorMetadataReplicationTest.java index 75556055e62..e87f3b7f156 100644 --- a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/TrackRaceBoatCompetitorMetadataReplicationTest.java +++ b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/TrackRaceBoatCompetitorMetadataReplicationTest.java @@ -34,7 +34,7 @@ import com.sap.sailing.domain.tracking.RaceTrackingConnectivityParameters; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.domain.tracking.RaceTrackingHandler.DefaultRaceTrackingHandler; import com.sap.sailing.domain.tractracadapter.impl.DomainFactoryImpl; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sailing.server.operationaltransformation.CreateTrackedRace; import com.sap.sailing.server.operationaltransformation.UpdateSeries; import com.sap.sse.common.Color; diff --git a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/TrackRaceReplicationTest.java b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/TrackRaceReplicationTest.java index 86517d25a79..86cdaede5b4 100755 --- a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/TrackRaceReplicationTest.java +++ b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/TrackRaceReplicationTest.java @@ -35,7 +35,7 @@ import com.sap.sailing.domain.tracking.RaceTracker; import com.sap.sailing.domain.tracking.RaceTrackingConnectivityParameters; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.domain.tracking.RaceTrackingHandler.DefaultRaceTrackingHandler; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sailing.server.operationaltransformation.AddColumnToLeaderboard; import com.sap.sailing.server.operationaltransformation.ConnectTrackedRaceToLeaderboardColumn; import com.sap.sailing.server.operationaltransformation.CreateFlexibleLeaderboard; diff --git a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/TrackedRaceWithSensorFixStoreContentsReplicationTest.java b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/TrackedRaceWithSensorFixStoreContentsReplicationTest.java index 1c119401b33..96717be5499 100644 --- a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/TrackedRaceWithSensorFixStoreContentsReplicationTest.java +++ b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/TrackedRaceWithSensorFixStoreContentsReplicationTest.java @@ -43,7 +43,7 @@ import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.DynamicTrackedRegatta; import com.sap.sailing.domain.tracking.GPSFixTrack; import com.sap.sailing.domain.tracking.TrackedRace; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sailing.server.operationaltransformation.AddDefaultRegatta; import com.sap.sailing.server.operationaltransformation.AddRaceDefinition; import com.sap.sailing.server.operationaltransformation.CreateTrackedRace; diff --git a/java/com.sap.sailing.server.test/META-INF/MANIFEST.MF b/java/com.sap.sailing.server.test/META-INF/MANIFEST.MF index 50375521890..895f3906de2 100644 --- a/java/com.sap.sailing.server.test/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.server.test/META-INF/MANIFEST.MF @@ -28,5 +28,6 @@ Require-Bundle: com.sap.sailing.domain, Import-Package: com.sap.sailing.server.gateway.jaxrs, com.sap.sailing.server.gateway.jaxrs.spi, com.sap.sse.security.userstore.mongodb, + com.sun.istack;version="3.0.7", javax.ws.rs.core;version="1.1.1", org.json.simple diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/anniversary/AnniversaryQuarterCheckerTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/anniversary/AnniversaryQuarterCheckerTest.java index c676b864c2e..6023cabf0f0 100644 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/anniversary/AnniversaryQuarterCheckerTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/anniversary/AnniversaryQuarterCheckerTest.java @@ -2,13 +2,12 @@ package com.sap.sailing.server.anniversary; import java.util.Arrays; +import org.junit.Assert; import org.junit.Test; import com.sap.sailing.domain.common.dto.AnniversaryType; -import com.sap.sailing.server.anniversary.AnniversaryRaceDeterminator.AnniversaryChecker; import com.sap.sailing.server.anniversary.checker.QuarterChecker; - -import junit.framework.Assert; +import com.sap.sailing.server.interfaces.AnniversaryRaceDeterminator.AnniversaryChecker; public class AnniversaryQuarterCheckerTest { diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/anniversary/AnniversarySameDigitCheckerTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/anniversary/AnniversarySameDigitCheckerTest.java index e340857ad9e..ddbf85e577a 100644 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/anniversary/AnniversarySameDigitCheckerTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/anniversary/AnniversarySameDigitCheckerTest.java @@ -2,13 +2,12 @@ package com.sap.sailing.server.anniversary; import java.util.Arrays; +import org.junit.Assert; import org.junit.Test; import com.sap.sailing.domain.common.dto.AnniversaryType; -import com.sap.sailing.server.anniversary.AnniversaryRaceDeterminator.AnniversaryChecker; import com.sap.sailing.server.anniversary.checker.SameDigitChecker; - -import junit.framework.Assert; +import com.sap.sailing.server.interfaces.AnniversaryRaceDeterminator.AnniversaryChecker; public class AnniversarySameDigitCheckerTest { diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/impl/MasterDataImporterMediaTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/impl/MasterDataImporterMediaTest.java index de884290bcf..08ae0d891e7 100644 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/impl/MasterDataImporterMediaTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/impl/MasterDataImporterMediaTest.java @@ -34,7 +34,7 @@ import com.sap.sailing.domain.persistence.impl.MongoObjectFactoryImpl; import com.sap.sailing.domain.persistence.media.MediaDB; import com.sap.sailing.domain.racelog.tracking.SensorFixStore; import com.sap.sailing.domain.tracking.WindStore; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.common.Util; import com.sap.sse.common.impl.MillisecondsDurationImpl; import com.sap.sse.common.impl.MillisecondsTimePoint; diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/impl/MediaLibaryTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/impl/MediaLibaryTest.java index c2f1770f50c..01ba577053f 100644 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/impl/MediaLibaryTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/impl/MediaLibaryTest.java @@ -1,5 +1,11 @@ package com.sap.sailing.server.impl; +import static org.hamcrest.Matchers.is; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertThat; +import static org.junit.Assert.assertTrue; + import java.util.Collection; import java.util.Collections; import java.util.HashSet; @@ -20,9 +26,6 @@ import com.sap.sse.common.impl.MillisecondsTimePoint; import com.sap.sse.common.impl.TimeRangeImpl; import com.sap.sse.common.media.MimeType; -import static org.junit.Assert.*; -import static org.hamcrest.Matchers.*; - public class MediaLibaryTest { diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/statistics/StatisticsTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/statistics/StatisticsTest.java index 227ea2e423c..8509883b3c4 100755 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/statistics/StatisticsTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/statistics/StatisticsTest.java @@ -1,7 +1,7 @@ package com.sap.sailing.server.statistics; -import static junit.framework.Assert.assertEquals; -import static junit.framework.Assert.assertTrue; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.mock; import java.util.ArrayList; diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/ApplyScoresFromRaceLogTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/ApplyScoresFromRaceLogTest.java index aa097b482ff..7f2f1195626 100644 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/ApplyScoresFromRaceLogTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/ApplyScoresFromRaceLogTest.java @@ -38,8 +38,8 @@ import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sailing.domain.test.LeaderboardScoringAndRankingTestBase; import com.sap.sailing.domain.test.mock.MockedTrackedRaceWithStartTimeAndRanks; import com.sap.sailing.domain.tracking.TrackedRace; -import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.impl.RacingEventServiceImpl; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.common.Color; import com.sap.sse.common.TimePoint; import com.sap.sse.common.impl.MillisecondsTimePoint; diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/IdentifierSerializationTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/IdentifierSerializationTest.java index 35f06718f41..fc5949cb124 100644 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/IdentifierSerializationTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/IdentifierSerializationTest.java @@ -6,8 +6,7 @@ import java.io.ObjectOutputStream; import java.io.PipedInputStream; import java.io.PipedOutputStream; -import junit.framework.Assert; - +import org.junit.Assert; import org.junit.Test; import com.sap.sailing.domain.common.RegattaNameAndRaceName; diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/LeaderboardDiscardingRulesTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/LeaderboardDiscardingRulesTest.java index 31d63af6d53..69674893aa3 100644 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/LeaderboardDiscardingRulesTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/LeaderboardDiscardingRulesTest.java @@ -21,8 +21,8 @@ import com.sap.sailing.domain.leaderboard.impl.ThresholdBasedResultDiscardingRul import com.sap.sailing.domain.test.AbstractLeaderboardTest; import com.sap.sailing.domain.test.mock.MockedTrackedRaceWithFixedRank; import com.sap.sailing.domain.tracking.TrackedRace; -import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.impl.RacingEventServiceImpl; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.common.TimePoint; import com.sap.sse.common.Util; import com.sap.sse.common.impl.MillisecondsTimePoint; diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/LeaderboardStorageTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/LeaderboardStorageTest.java index 04ed2ad3a6a..85e9f389c3e 100644 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/LeaderboardStorageTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/LeaderboardStorageTest.java @@ -4,13 +4,12 @@ import java.io.Serializable; import java.util.ArrayList; import java.util.List; +import org.bson.Document; import org.junit.Test; -import com.mongodb.BasicDBList; import com.mongodb.BasicDBObject; -import com.mongodb.DBCollection; -import com.mongodb.DBCursor; -import com.mongodb.DBObject; +import com.mongodb.client.FindIterable; +import com.mongodb.client.MongoCollection; import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.base.impl.DynamicPerson; import com.sap.sailing.domain.base.impl.DynamicTeam; @@ -19,8 +18,8 @@ import com.sap.sailing.domain.base.impl.PersonImpl; import com.sap.sailing.domain.base.impl.TeamImpl; import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sailing.domain.leaderboard.impl.LowPoint; -import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.impl.RacingEventServiceImpl; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.mongodb.MongoDBService; import junit.framework.TestCase; @@ -65,15 +64,15 @@ public class LeaderboardStorageTest extends TestCase { service.getMongoObjectFactory().storeLeaderboard(leaderboard); // Test in db - DBCollection leaderboardCollection = MongoDBService.INSTANCE.getDB().getCollection("LEADERBOARDS"); + MongoCollection leaderboardCollection = MongoDBService.INSTANCE.getDB().getCollection("LEADERBOARDS"); BasicDBObject query = new BasicDBObject(); query.put("LEADERBOARD_NAME", LEADERBOARD_NAME); - DBCursor leaderboardObjectCursor = leaderboardCollection.find(); - DBObject dbLeaderboard = leaderboardObjectCursor.next(); - BasicDBList carriedPointsById = (BasicDBList) dbLeaderboard.get("LEADERBOARD_CARRIED_POINTS_BY_ID"); + FindIterable leaderboardObjectCursor = leaderboardCollection.find(); + Document dbLeaderboard = leaderboardObjectCursor.iterator().next(); + Iterable carriedPointsById = (Iterable) dbLeaderboard.get("LEADERBOARD_CARRIED_POINTS_BY_ID"); if (carriedPointsById != null) { for (Object o : carriedPointsById) { - DBObject competitorIdAndCarriedPoints = (DBObject) o; + Document competitorIdAndCarriedPoints = (Document) o; Serializable competitorIdFromDB = (Serializable) competitorIdAndCarriedPoints.get("COMPETITOR_ID"); Double carriedPointsForCompetitor = ((Number) competitorIdAndCarriedPoints .get("LEADERBOARD_CARRIED_POINTS")).doubleValue(); diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/MasterDataImportTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/MasterDataImportTest.java index de363a49a20..3d907aac518 100644 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/MasterDataImportTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/MasterDataImportTest.java @@ -34,11 +34,11 @@ import org.apache.shiro.SecurityUtils; import org.apache.shiro.mgt.SecurityManager; import org.apache.shiro.subject.Subject; import org.junit.After; +import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.mockito.Mockito; -import com.mongodb.DB; import com.mongodb.WriteConcern; import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor; import com.sap.sailing.domain.abstractlog.impl.LogEventAuthorImpl; @@ -129,14 +129,14 @@ import com.sap.sailing.domain.racelog.tracking.test.mock.MockSmartphoneImeiServi import com.sap.sailing.domain.racelog.tracking.test.mock.SmartphoneImeiIdentifier; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; import com.sap.sailing.domain.test.TrackBasedTest; +import com.sap.sailing.domain.tracking.DummyTrackedRace; import com.sap.sailing.domain.tracking.DynamicTrackedRegatta; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.domain.tracking.WindTrack; import com.sap.sailing.domain.tracking.impl.EmptyWindStore; -import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.gateway.jaxrs.AbstractSailingServerResource; import com.sap.sailing.server.impl.RacingEventServiceImpl; -import com.sap.sailing.server.masterdata.DummyTrackedRace; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sailing.server.masterdata.MasterDataImporter; import com.sap.sailing.server.testsupport.RacingEventServiceImplMock; import com.sap.sse.common.Color; @@ -157,8 +157,6 @@ import com.sap.sse.security.shared.impl.UserGroupImpl; import com.sap.sse.shared.media.ImageDescriptor; import com.sap.sse.shared.media.VideoDescriptor; -import junit.framework.Assert; - public class MasterDataImportTest { private static final String TEST_GROUP_NAME = "testGroup"; @@ -241,8 +239,7 @@ public class MasterDataImportTest { private void deleteAllDataFromDatabase() { MongoDBService service = MongoDBConfiguration.getDefaultTestConfiguration().getService(); - service.getDB().getWriteConcern().fsync(); - service.getDB().dropDatabase(); + service.getDB().withWriteConcern(WriteConcern.JOURNALED).drop(); } private Map createCompetitorsAndBoatsMap(BoatClass boatClass, Iterable competitors) { @@ -424,8 +421,6 @@ public class MasterDataImportTest { destService = getDestService(randomUUID, serviceFinderFactory); domainFactory = destService.getBaseDomainFactory(); - DB db = destService.getMongoObjectFactory().getDatabase(); - db.setWriteConcern(WriteConcern.SAFE); inputStream = new ByteArrayInputStream(os.toByteArray()); MasterDataImporter importer = new MasterDataImporter(domainFactory, destService, securityService.getCurrentUser(), securityService.getDefaultTenantForCurrentUser()); @@ -471,7 +466,7 @@ public class MasterDataImportTest { raceColumnOnTarget.setTrackedRace(fleet1OnTarget, trackedRaceForTarget); - Assert.assertEquals(factor, leaderboard.getScoringScheme().getScoreFactor(raceColumnOnTarget)); + Assert.assertEquals(factor, leaderboard.getScoringScheme().getScoreFactor(raceColumnOnTarget), 0.000001); Iterable competitorsOnTarget = leaderboardOnTarget.getAllCompetitors(); Iterator competitorIterator = competitorsOnTarget.iterator(); @@ -482,12 +477,12 @@ public class MasterDataImportTest { Assert.assertEquals( scoreCorrection, leaderboardOnTarget.getScoreCorrection().getExplicitScoreCorrection(competitorOnTarget, - raceColumnOnTarget)); + raceColumnOnTarget), 0.0000001); Assert.assertEquals(maxPointsReason, leaderboardOnTarget.getScoreCorrection() .getMaxPointsReason(competitorOnTarget, raceColumnOnTarget, MillisecondsTimePoint.now())); // Check for carried points - Assert.assertEquals(carriedPoints, leaderboardOnTarget.getCarriedPoints(competitorOnTarget)); + Assert.assertEquals(carriedPoints, leaderboardOnTarget.getCarriedPoints(competitorOnTarget), 0.0000001); // Check for suppressed competitor Assert.assertTrue(leaderboardOnTarget.getSuppressedCompetitors().iterator().hasNext()); @@ -736,7 +731,7 @@ public class MasterDataImportTest { Assert.assertEquals( scoreCorrection, leaderboardOnTarget.getScoreCorrection().getExplicitScoreCorrection(competitorOnTarget, - raceColumnOnTarget)); + raceColumnOnTarget), 0.0000001); Assert.assertEquals( maxPointsReason, leaderboardOnTarget.getScoreCorrection().getMaxPointsReason(competitorOnTarget, raceColumnOnTarget, @@ -2159,7 +2154,7 @@ public class MasterDataImportTest { RaceColumn metaColumn = metaColumns.iterator().next(); Assert.assertNotNull(metaColumn); - Assert.assertEquals(factor, overallLeaderboard.getScoringScheme().getScoreFactor(metaColumn)); + Assert.assertEquals(factor, overallLeaderboard.getScoringScheme().getScoreFactor(metaColumn), 0.0000001); // Verify that overall leaderboard data has been persisted RacingEventService persistenceVerifier = new RacingEventServiceImplMock(){}; @@ -2181,7 +2176,7 @@ public class MasterDataImportTest { metaColumn = metaColumns.iterator().next(); Assert.assertNotNull(metaColumn); - Assert.assertEquals(factor, overallLeaderboard.getScoringScheme().getScoreFactor(metaColumn)); + Assert.assertEquals(factor, overallLeaderboard.getScoringScheme().getScoreFactor(metaColumn), 0.0000001); } @@ -2356,18 +2351,18 @@ public class MasterDataImportTest { raceColumnOnTarget.setTrackedRace(defaultFleetOnTarget, trackedRaceForTarget); - Assert.assertEquals(factor, leaderboardOnTarget.getScoringScheme().getScoreFactor(raceColumnOnTarget)); + Assert.assertEquals(factor, leaderboardOnTarget.getScoringScheme().getScoreFactor(raceColumnOnTarget), 0.0000001); // Check for score corrections Assert.assertEquals( scoreCorrection, leaderboardOnTarget.getScoreCorrection().getExplicitScoreCorrection(competitorOnTarget, - raceColumnOnTarget)); + raceColumnOnTarget), 0.0000001); Assert.assertEquals(maxPointsReason, leaderboardOnTarget.getScoreCorrection() .getMaxPointsReason(competitorOnTarget, raceColumnOnTarget, MillisecondsTimePoint.now())); // Check for carried points - Assert.assertEquals(carriedPoints, leaderboardOnTarget.getCarriedPoints(competitorOnTarget)); + Assert.assertEquals(carriedPoints, leaderboardOnTarget.getCarriedPoints(competitorOnTarget), 0.0000001); // Check for suppressed competitor Assert.assertTrue(leaderboardOnTarget.getSuppressedCompetitors().iterator().hasNext()); diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/OperationalTransformationTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/OperationalTransformationTest.java index aeb05d0c45c..19f2c7d525d 100755 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/OperationalTransformationTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/OperationalTransformationTest.java @@ -13,9 +13,9 @@ import com.sap.sailing.domain.base.RaceColumn; import com.sap.sailing.domain.leaderboard.FlexibleLeaderboard; import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sailing.domain.leaderboard.impl.LowPoint; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; import com.sap.sailing.server.impl.RacingEventServiceImpl; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; import com.sap.sailing.server.operationaltransformation.AddColumnToLeaderboard; import com.sap.sailing.server.operationaltransformation.CreateFlexibleLeaderboard; import com.sap.sailing.server.operationaltransformation.MoveLeaderboardColumnUp; @@ -37,7 +37,7 @@ public class OperationalTransformationTest { @Before public void setUp() { // ensure that leaderboards will be loaded from and stored to the test database which is - MongoDBService.INSTANCE.getDB().dropDatabase(); + MongoDBService.INSTANCE.getDB().drop(); racingEventServiceServer = new RacingEventServiceImpl(); racingEventServiceReplica = new RacingEventServiceImpl(); OperationalTransformer> transformer = new OperationalTransformer<>(); diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceColumnReloadTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceColumnReloadTest.java index 0272cd5a0c7..41110fb01be 100644 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceColumnReloadTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceColumnReloadTest.java @@ -8,6 +8,7 @@ import java.util.Set; import java.util.UUID; import java.util.concurrent.ConcurrentHashMap; +import org.junit.Assert; import org.junit.Before; import org.junit.Test; @@ -67,8 +68,6 @@ import com.sap.sse.common.impl.DegreeBearingImpl; import com.sap.sse.common.impl.MillisecondsTimePoint; import com.sap.sse.mongodb.MongoDBService; -import junit.framework.Assert; - public class RaceColumnReloadTest { private MongoRaceLogStoreVisitor mongoStoreVisitor; @@ -80,7 +79,7 @@ public class RaceColumnReloadTest { @Before public void setUp() { - MongoDBService.INSTANCE.getDB().dropDatabase(); + MongoDBService.INSTANCE.getDB().drop(); final RacingEventServiceImpl service = new RacingEventServiceImpl(); // FIXME use master DomainFactory; see bug 592 final DomainFactory masterDomainFactory = service.getBaseDomainFactory(); @@ -221,7 +220,6 @@ public class RaceColumnReloadTest { } private class WindFixLoggingRaceLogVisitor extends BaseRaceLogEventVisitor { - private final Set loggedWindFixes = ConcurrentHashMap.newKeySet(); private WindFixLoggingRaceLogVisitor(RaceLog raceLog) { diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceLogInRaceColumnTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceLogInRaceColumnTest.java index 1cf9427b185..ebf0d8f6a1c 100644 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceLogInRaceColumnTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceLogInRaceColumnTest.java @@ -16,9 +16,9 @@ import com.sap.sailing.domain.common.racelog.Flags; import com.sap.sailing.domain.leaderboard.FlexibleLeaderboard; import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sailing.domain.leaderboard.impl.LowPoint; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; import com.sap.sailing.server.impl.RacingEventServiceImpl; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; import com.sap.sailing.server.operationaltransformation.AddColumnToLeaderboard; import com.sap.sailing.server.operationaltransformation.CreateFlexibleLeaderboard; import com.sap.sse.common.TimePoint; @@ -40,7 +40,7 @@ public class RaceLogInRaceColumnTest { @Before public void setUp() { - MongoDBService.INSTANCE.getDB().dropDatabase(); + MongoDBService.INSTANCE.getDB().drop(); racingEventServiceServer = new RacingEventServiceImpl(); OperationalTransformer> transformer = new OperationalTransformer<>(); server = new PeerImpl<>(transformer, racingEventServiceServer, Role.SERVER); diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java index 4fa6d1d4e1f..89dcb0ca056 100644 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java @@ -43,7 +43,7 @@ import com.sap.sailing.domain.tracking.RaceTracker; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.domain.tracking.TrackedRegatta; import com.sap.sailing.domain.tracking.impl.EmptyWindStore; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sailing.server.testsupport.RacingEventServiceImplMock; import com.sap.sse.common.Util; diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RemoveLeaderboardGroupTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RemoveLeaderboardGroupTest.java index 2eb20851005..3e10b5d23ae 100644 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RemoveLeaderboardGroupTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RemoveLeaderboardGroupTest.java @@ -23,8 +23,8 @@ import com.sap.sailing.domain.common.RegattaName; import com.sap.sailing.domain.common.ScoringSchemeType; import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sailing.domain.leaderboard.LeaderboardGroup; -import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.impl.RacingEventServiceImpl; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sailing.server.operationaltransformation.AddLeaderboardGroupToEvent; import com.sap.sailing.server.operationaltransformation.CreateEvent; import com.sap.sailing.server.operationaltransformation.CreateLeaderboardGroup; diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/SearchServiceTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/SearchServiceTest.java index 040db12ea38..8a42e513612 100755 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/SearchServiceTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/SearchServiceTest.java @@ -50,7 +50,6 @@ import com.sap.sailing.domain.leaderboard.impl.LowPoint; import com.sap.sailing.domain.test.AbstractTracTracLiveTest; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.impl.EmptyWindStore; -import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException; import com.sap.sailing.server.gateway.deserialization.impl.CourseAreaJsonDeserializer; import com.sap.sailing.server.gateway.deserialization.impl.EventBaseJsonDeserializer; @@ -63,6 +62,7 @@ import com.sap.sailing.server.gateway.serialization.impl.LeaderboardGroupBaseJso import com.sap.sailing.server.gateway.serialization.impl.LeaderboardSearchResultJsonSerializer; import com.sap.sailing.server.gateway.serialization.impl.VenueJsonSerializer; import com.sap.sailing.server.impl.RacingEventServiceImpl; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sailing.server.operationaltransformation.AddColumnToSeries; import com.sap.sailing.server.operationaltransformation.AddLeaderboardGroupToEvent; import com.sap.sailing.server.operationaltransformation.AddRaceDefinition; diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/TaggingServiceTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/TaggingServiceTest.java index 40d3629abbd..472a6c4aafb 100644 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/TaggingServiceTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/TaggingServiceTest.java @@ -31,13 +31,13 @@ import com.sap.sailing.domain.common.tagging.ServiceNotFoundException; import com.sap.sailing.domain.common.tagging.TagAlreadyExistsException; import com.sap.sailing.domain.leaderboard.FlexibleLeaderboard; import com.sap.sailing.domain.leaderboard.impl.LowPoint; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; import com.sap.sailing.server.impl.RacingEventServiceImpl; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.TaggingService; import com.sap.sailing.server.operationaltransformation.AddColumnToLeaderboard; import com.sap.sailing.server.operationaltransformation.CreateFlexibleLeaderboard; import com.sap.sailing.server.tagging.TagDTODeSerializer; -import com.sap.sailing.server.tagging.TaggingService; import com.sap.sailing.server.tagging.TaggingServiceImpl; import com.sap.sailing.server.testsupport.SecurityBundleTestWrapper; import com.sap.sse.common.TimePoint; @@ -80,7 +80,7 @@ public class TaggingServiceTest { @BeforeClass public static void setUpClass() throws MalformedURLException, IOException, InterruptedException, UserManagementException, MailException, UserGroupManagementException { - MongoDBService.INSTANCE.getDB().dropDatabase(); + MongoDBService.INSTANCE.getDB().drop(); // setup racing service and racelog racingService = Mockito.spy(new RacingEventServiceImpl()); RacingEventServiceOperation addLeaderboardOp = new CreateFlexibleLeaderboard( @@ -111,7 +111,7 @@ public class TaggingServiceTest { } catch (UserManagementException e) { logger.severe("Could not teardown TaggingServiceTest!"); } - MongoDBService.INSTANCE.getDB().dropDatabase(); + MongoDBService.INSTANCE.getDB().drop(); } @Before diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/WindByRaceLogTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/WindByRaceLogTest.java index 9c9082548cd..c9fe3ff0168 100644 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/WindByRaceLogTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/WindByRaceLogTest.java @@ -49,8 +49,8 @@ import com.sap.sailing.domain.test.PositionAssert; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.WindTrack; import com.sap.sailing.domain.tracking.impl.EmptyWindStore; -import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.impl.RacingEventServiceImpl; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sailing.server.operationaltransformation.AddColumnToLeaderboard; import com.sap.sailing.server.operationaltransformation.AddDefaultRegatta; import com.sap.sailing.server.operationaltransformation.AddRaceDefinition; diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/util/ShardingLeaderBoardEncodingTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/util/ShardingLeaderBoardEncodingTest.java index a43ac104034..3592153edba 100644 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/util/ShardingLeaderBoardEncodingTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/util/ShardingLeaderBoardEncodingTest.java @@ -1,11 +1,10 @@ package com.sap.sailing.server.util; +import org.junit.Assert; import org.junit.Test; import com.sap.sailing.domain.common.sharding.ShardingType; -import junit.framework.Assert; - public class ShardingLeaderBoardEncodingTest { @Test public void testEncoding() { diff --git a/java/com.sap.sailing.server.testsupport/META-INF/MANIFEST.MF b/java/com.sap.sailing.server.testsupport/META-INF/MANIFEST.MF index 2b187119a1f..344e1539f80 100644 --- a/java/com.sap.sailing.server.testsupport/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.server.testsupport/META-INF/MANIFEST.MF @@ -11,13 +11,12 @@ Require-Bundle: com.sap.sailing.server, com.sap.sse.common, com.sap.sailing.domain, com.sap.sse, - com.sap.sse.replication, + com.sap.sse.replication.interfaces, com.sap.sse.filestorage, com.sap.sailing.domain.persistence, com.sap.sailing.expeditionconnector, com.sap.sailing.declination, com.sap.sse.mongodb, - org.mongodb.mongo-java-driver;bundle-version="2.13.0", com.sap.sailing.domain.persistence, com.sap.sailing.domain.common, com.sap.sailing.udpconnector, @@ -35,6 +34,8 @@ Require-Bundle: com.sap.sailing.server, org.apache.shiro.web;bundle-version="1.2.2", org.apache.shiro.core;bundle-version="1.2.2", javax.servlet;bundle-version="3.1.0", + org.eclipse.orbit.mongodb;bundle-version="3.2.2", + com.sap.sailing.server.interface, com.sap.sse.security.common Automatic-Module-Name: com.sap.sailing.server.testsupport Import-Package: com.sap.sse.security.userstore.mongodb, diff --git a/java/com.sap.sailing.server.testsupport/src/com/sap/sailing/server/testsupport/RacingEventServiceImplMock.java b/java/com.sap.sailing.server.testsupport/src/com/sap/sailing/server/testsupport/RacingEventServiceImplMock.java index ae0b59cc3d5..35ffc7ed7f9 100644 --- a/java/com.sap.sailing.server.testsupport/src/com/sap/sailing/server/testsupport/RacingEventServiceImplMock.java +++ b/java/com.sap.sailing.server.testsupport/src/com/sap/sailing/server/testsupport/RacingEventServiceImplMock.java @@ -7,7 +7,7 @@ import com.sap.sailing.domain.base.Regatta; import com.sap.sailing.domain.common.impl.DataImportProgressImpl; import com.sap.sailing.domain.tracking.RaceTracker; import com.sap.sailing.server.impl.RacingEventServiceImpl; -import com.sap.sailing.server.masterdata.DataImportLockWithProgress; +import com.sap.sailing.server.interfaces.DataImportLockWithProgress; import com.sap.sse.common.TypeBasedServiceFinderFactory; /** diff --git a/java/com.sap.sailing.server.trackfiles.test/src/com/sap/sailing/server/trackfiles/test/DownsamplerTo1HzProcessorTest.java b/java/com.sap.sailing.server.trackfiles.test/src/com/sap/sailing/server/trackfiles/test/DownsamplerTo1HzProcessorTest.java index 675bb93972b..5cc3b9dc8c9 100644 --- a/java/com.sap.sailing.server.trackfiles.test/src/com/sap/sailing/server/trackfiles/test/DownsamplerTo1HzProcessorTest.java +++ b/java/com.sap.sailing.server.trackfiles.test/src/com/sap/sailing/server/trackfiles/test/DownsamplerTo1HzProcessorTest.java @@ -6,7 +6,9 @@ import com.sap.sailing.server.trackfiles.impl.doublefix.DoubleFixProcessor; import com.sap.sailing.server.trackfiles.impl.doublefix.DoubleVectorFixData; import com.sap.sailing.server.trackfiles.impl.doublefix.DownsamplerTo1HzProcessor; -import junit.framework.Assert; +import static org.junit.Assert.assertEquals; + +import org.junit.Assert; public class DownsamplerTo1HzProcessorTest { @@ -67,10 +69,10 @@ public class DownsamplerTo1HzProcessorTest { Assert.assertEquals("Count consolidated fixes", 1, delegate.countAccepted); DoubleVectorFixData lastFix = delegate.lastFix; Assert.assertNotNull("Lastfix", lastFix); - Assert.assertEquals("Avg col 1", (12.4d + 0.01d - 10d + 1d + 0d) / 5d, lastFix.getFix()[0]); - Assert.assertEquals("Avg col 2", 9d / 5d, lastFix.getFix()[1]); - Assert.assertEquals("Avg col 3", 1d, lastFix.getFix()[2]); - Assert.assertEquals("Avg col 4", 0d, lastFix.getFix()[3]); + assertEquals("Avg col 1", (12.4d + 0.01d - 10d + 1d + 0d) / 5d, (double) lastFix.getFix()[0], 0.000001); + assertEquals("Avg col 2", 9d / 5d, (double) lastFix.getFix()[1], 0.000001); + assertEquals("Avg col 3", 1d, (double) lastFix.getFix()[2], 0.000001); + assertEquals("Avg col 4", 0d, (double) lastFix.getFix()[3], 0.000001); } private final class MyProcessor implements DoubleFixProcessor { diff --git a/java/com.sap.sailing.server.trackfiles.test/src/com/sap/sailing/server/trackfiles/test/LearningBatchProcessorTest.java b/java/com.sap.sailing.server.trackfiles.test/src/com/sap/sailing/server/trackfiles/test/LearningBatchProcessorTest.java index c23a691897e..0256593121f 100644 --- a/java/com.sap.sailing.server.trackfiles.test/src/com/sap/sailing/server/trackfiles/test/LearningBatchProcessorTest.java +++ b/java/com.sap.sailing.server.trackfiles.test/src/com/sap/sailing/server/trackfiles/test/LearningBatchProcessorTest.java @@ -13,7 +13,7 @@ import com.sap.sse.common.TimePoint; import com.sap.sse.common.Util; import com.sap.sse.common.impl.MillisecondsTimePoint; -import junit.framework.Assert; +import org.junit.Assert; public class LearningBatchProcessorTest { diff --git a/java/com.sap.sailing.server/META-INF/MANIFEST.MF b/java/com.sap.sailing.server/META-INF/MANIFEST.MF index 25a26cd5c53..dd31a46f377 100644 --- a/java/com.sap.sailing.server/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.server/META-INF/MANIFEST.MF @@ -20,7 +20,6 @@ Require-Bundle: com.sap.sailing.domain, com.sap.sailing.expeditionconnector, com.sap.sailing.declination, com.sap.sse.mongodb, - org.mongodb.mongo-java-driver;bundle-version="2.13.0", com.sap.sailing.domain.persistence, com.sap.sailing.domain.common, com.sap.sailing.udpconnector, @@ -28,7 +27,7 @@ Require-Bundle: com.sap.sailing.domain, com.sap.sailing.server.gateway.serialization, com.sap.sse.common, com.sap.sse.operationaltransformation, - com.sap.sse.replication, + com.sap.sse.replication.interfaces, com.sap.sse, com.sap.sailing.server.gateway.serialization.shared.android, com.sap.sse.shared.android, @@ -40,9 +39,12 @@ Require-Bundle: com.sap.sailing.domain, org.apache.shiro.core;bundle-version="1.2.2", javax.servlet;bundle-version="3.1.0", com.sap.sse.mail, + org.eclipse.orbit.mongodb;bundle-version="3.2.2", + com.sap.sailing.server.interface;bundle-version="1.0.0", com.sap.sse.security.common Bundle-ClassPath: . Export-Package: com.sap.sailing.server, + com.sap.sailing.server.anniversary, com.sap.sailing.server.hierarchy, com.sap.sailing.server.impl; x-friends:="com.sap.sailing.mongodb.test, @@ -56,7 +58,6 @@ Export-Package: com.sap.sailing.server, com.sap.sailing.domain.test", com.sap.sailing.server.impl.preferences.model, com.sap.sailing.server.masterdata, - com.sap.sailing.server.operationaltransformation, com.sap.sailing.server.operationaltransformation.racelog, com.sap.sailing.server.security, com.sap.sailing.server.simulation, diff --git a/java/com.sap.sailing.server/SailingServer (No Proxy).launch b/java/com.sap.sailing.server/SailingServer (No Proxy).launch index 522f43b75da..2a528b1578e 100755 --- a/java/com.sap.sailing.server/SailingServer (No Proxy).launch +++ b/java/com.sap.sailing.server/SailingServer (No Proxy).launch @@ -9,7 +9,7 @@ - + @@ -32,7 +32,7 @@ - + diff --git a/java/com.sap.sailing.server/SailingServer (No Proxy, Java11).launch b/java/com.sap.sailing.server/SailingServer (No Proxy, Java11).launch index 2aaf7286626..8d3d32a2975 100755 --- a/java/com.sap.sailing.server/SailingServer (No Proxy, Java11).launch +++ b/java/com.sap.sailing.server/SailingServer (No Proxy, Java11).launch @@ -22,7 +22,7 @@ - + @@ -32,7 +32,7 @@ - + diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventServiceMXBean.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventServiceMXBean.java index a7399bf3b8c..a191589b84f 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventServiceMXBean.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventServiceMXBean.java @@ -1,5 +1,6 @@ package com.sap.sailing.server; +import com.sap.sailing.server.interfaces.RacingEventService; /** * A JMX management bean that lets JMX clients such as JConsole manage an instance of {@link RacingEventService}. @@ -9,6 +10,6 @@ package com.sap.sailing.server; */ public interface RacingEventServiceMXBean { public int getNumberOfLeaderboards(); - public int getNumberOfTrackedRacesToRestore(); + public long getNumberOfTrackedRacesToRestore(); public int getNumberOfTrackedRacesRestored(); } diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/Replicator.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/Replicator.java index 3a2f659ce86..1f61b778130 100644 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/Replicator.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/Replicator.java @@ -1,4 +1,7 @@ package com.sap.sailing.server; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; + public interface Replicator extends com.sap.sse.replication.Replicator> { } diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/anniversary/AddAnniversaryOperation.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/anniversary/AddAnniversaryOperation.java index 364804ffc3e..a0d4b1f95f0 100644 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/anniversary/AddAnniversaryOperation.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/anniversary/AddAnniversaryOperation.java @@ -2,7 +2,7 @@ package com.sap.sailing.server.anniversary; import com.sap.sailing.domain.anniversary.DetailedRaceInfo; import com.sap.sailing.domain.common.dto.AnniversaryType; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.common.Util.Pair; import com.sap.sse.replication.OperationWithResult; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/anniversary/AnniversaryRaceDeterminator.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/anniversary/AnniversaryRaceDeterminatorImpl.java old mode 100644 new mode 100755 similarity index 83% rename from java/com.sap.sailing.server/src/com/sap/sailing/server/anniversary/AnniversaryRaceDeterminator.java rename to java/com.sap.sailing.server/src/com/sap/sailing/server/anniversary/AnniversaryRaceDeterminatorImpl.java index 7bff9c1d1c8..7158ee674a2 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/anniversary/AnniversaryRaceDeterminator.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/anniversary/AnniversaryRaceDeterminatorImpl.java @@ -5,7 +5,6 @@ import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; -import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.CopyOnWriteArrayList; @@ -16,8 +15,9 @@ import com.sap.sailing.domain.anniversary.DetailedRaceInfo; import com.sap.sailing.domain.anniversary.SimpleRaceInfo; import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; import com.sap.sailing.domain.common.dto.AnniversaryType; -import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.impl.RemoteSailingServerSet; +import com.sap.sailing.server.interfaces.AnniversaryRaceDeterminator; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.common.TimePoint; import com.sap.sse.common.Util.Pair; import com.sap.sse.common.impl.MillisecondsTimePoint; @@ -27,13 +27,13 @@ import com.sap.sse.common.impl.MillisecondsTimePoint; * a list of {@link SimpleRaceInfo races} consisting of known remote races taken from {@link RemoteSailingServerSet} and * the set of locally available races taken from {@link RacingEventService}. The anniversaries to be found are defined * by a set of {@link AnniversaryChecker} instances given to the constructor. On every - * {@link AnniversaryRaceDeterminator#update() update} a list of all known races is created and ordered by the + * {@link AnniversaryRaceDeterminatorImpl#update() update} a list of all known races is created and ordered by the * startTimePoint. With this, anniversaries are defined by their startTimePoint at the moment when the list exceeds a * number that matches an anniversary to be found. Even if an older race is added afterwards, the initially determined * nth race will stay the same. */ -public class AnniversaryRaceDeterminator { - private static final Logger logger = Logger.getLogger(AnniversaryRaceDeterminator.class.getName()); +public class AnniversaryRaceDeterminatorImpl implements AnniversaryRaceDeterminator { + private static final Logger logger = Logger.getLogger(AnniversaryRaceDeterminatorImpl.class.getName()); private final ConcurrentHashMap> knownAnniversaries; private final CopyOnWriteArrayList checkers; @@ -46,45 +46,10 @@ public class AnniversaryRaceDeterminator { private volatile int currentRaceCount; /** - * Interface for checker classes which are passed to the {@link AnniversaryRaceDeterminator}'s constructor in order to + * Interface for checker classes which are passed to the {@link AnniversaryRaceDeterminatorImpl}'s constructor in order to * determine anniversary numbers based on the {@link AnniversaryChecker#update(int) provided race count}. */ - public interface AnniversaryChecker { - - /** - * Updates the internal state based and is required to be called on any race count change to avoid stale data. - * NOTE: The getter methods for {@link #getAnniversaries() past} or {@link #getNextAnniversary() next} - * anniversaries may only be called after the update is processed. - * - * @param raceCount - * the total number of races - */ - void update(int raceCount); - - /** - * Given the {@link #update(int) current number of races}, this method should return a list containing all past - * anniversary numbers. - * - * @return a list of all past anniversary numbers - */ - List getAnniversaries(); - - /** - * Given the {@link #update(int) current number of races}, this method should provide the next anniversary. - * - * @return the next anniversary number, or null if next anniversary cannot be determined - */ - Integer getNextAnniversary(); - - /** - * Provides the {@link AnniversaryType type} of the {@link AnniversaryChecker}. - * - * @return the {@link AnniversaryChecker}'s {@link AnniversaryType type} - */ - AnniversaryType getType(); - } - - public AnniversaryRaceDeterminator(RacingEventService racingEventService, + public AnniversaryRaceDeterminatorImpl(RacingEventService racingEventService, RemoteSailingServerSet remoteSailingServerSet, AnniversaryChecker... checkerToUse) { this.racingEventService = racingEventService; this.remoteSailingServerSet = remoteSailingServerSet; @@ -198,26 +163,32 @@ public class AnniversaryRaceDeterminator { return new Pair<>(fullData, anniversaryType); } - synchronized void addAnniversary(int anniversaryToCheck, final Pair anniversaryData) { + @Override + public synchronized void addAnniversary(int anniversaryToCheck, final Pair anniversaryData) { knownAnniversaries.put(anniversaryToCheck, anniversaryData); } + @Override public synchronized void setNextAnniversary(Pair nextAnniversary) { this.nextAnniversary = nextAnniversary; } + @Override public synchronized void setRaceCount(int raceCount) { currentRaceCount = raceCount; } + @Override public Pair getNextAnniversary() { return nextAnniversary; } + @Override public Map> getKnownAnniversaries() { return new HashMap<>(knownAnniversaries); } + @Override public synchronized void setKnownAnniversaries(Map> anniversaries) { knownAnniversaries.clear(); if (anniversaries != null) { @@ -225,21 +196,25 @@ public class AnniversaryRaceDeterminator { } } + @Override public int getCurrentRaceCount() { return currentRaceCount; } + @Override public void start() { isStarted.set(true); remoteSailingServerSet.addRemoteRaceResultReceivedCallback(raceChangedListener); } + @Override public synchronized void clearAndStop() { isStarted.set(false); remoteSailingServerSet.removeRemoteRaceResultReceivedCallback(raceChangedListener); clear(); } + @Override public synchronized void clear() { knownAnniversaries.clear(); nextAnniversary = null; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/anniversary/RaceChangeObserverForAnniversaryDetection.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/anniversary/RaceChangeObserverForAnniversaryDetection.java index 662dcff2c18..c814361958e 100644 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/anniversary/RaceChangeObserverForAnniversaryDetection.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/anniversary/RaceChangeObserverForAnniversaryDetection.java @@ -27,7 +27,7 @@ public class RaceChangeObserverForAnniversaryDetection extends AbstractTrackedRe * Listeners added for {@link TrackedRace}s that need to be cleaned when {@link TrackedRace}s are removed. */ private final Map listeners; - private final AnniversaryRaceDeterminator anniversaryRaceDeterminator; + private final AnniversaryRaceDeterminatorImpl anniversaryRaceDeterminator; /** * Flag that indicates that the {@link RaceChangeObserverForAnniversaryDetection} is stopped which means that no @@ -35,7 +35,7 @@ public class RaceChangeObserverForAnniversaryDetection extends AbstractTrackedRe */ private final AtomicBoolean stopped; - public RaceChangeObserverForAnniversaryDetection(AnniversaryRaceDeterminator anniversaryRaceDeterminator) { + public RaceChangeObserverForAnniversaryDetection(AnniversaryRaceDeterminatorImpl anniversaryRaceDeterminator) { this.anniversaryRaceDeterminator = anniversaryRaceDeterminator; this.listeners = new ConcurrentHashMap<>(); this.stopped = new AtomicBoolean(false); @@ -97,7 +97,7 @@ public class RaceChangeObserverForAnniversaryDetection extends AbstractTrackedRe } /** - * Updates {@link AnniversaryRaceDeterminator} if not {@link #stopped stopped}. + * Updates {@link AnniversaryRaceDeterminatorImpl} if not {@link #stopped stopped}. */ private void fireUpdateIfNotStopped() { if (!stopped.get()) { @@ -107,7 +107,7 @@ public class RaceChangeObserverForAnniversaryDetection extends AbstractTrackedRe /** * Clears all known {@link TrackedRegatta} and {@link TrackedRace} instances and stops to trigger updates of the - * given {@link AnniversaryRaceDeterminator}. This is e.g. the case when a server is converted to a replica. + * given {@link AnniversaryRaceDeterminatorImpl}. This is e.g. the case when a server is converted to a replica. */ public void stop() { stopped.set(true); diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/anniversary/UpdateNextAnniversaryOperation.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/anniversary/UpdateNextAnniversaryOperation.java index 6482c0a532e..7cb597c7d92 100644 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/anniversary/UpdateNextAnniversaryOperation.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/anniversary/UpdateNextAnniversaryOperation.java @@ -1,7 +1,7 @@ package com.sap.sailing.server.anniversary; import com.sap.sailing.domain.common.dto.AnniversaryType; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.common.Util.Pair; import com.sap.sse.replication.OperationWithResult; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/anniversary/UpdateRaceCountOperation.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/anniversary/UpdateRaceCountOperation.java index 8baad1d22b3..7e5380e57b4 100644 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/anniversary/UpdateRaceCountOperation.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/anniversary/UpdateRaceCountOperation.java @@ -1,10 +1,10 @@ package com.sap.sailing.server.anniversary; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.replication.OperationWithResult; /** - * Operation for replication of the race count known by {@link AnniversaryRaceDeterminator}. + * Operation for replication of the race count known by {@link AnniversaryRaceDeterminatorImpl}. */ public class UpdateRaceCountOperation implements OperationWithResult { private static final long serialVersionUID = 8989228640752085561L; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/anniversary/checker/QuarterChecker.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/anniversary/checker/QuarterChecker.java index e3f305b7a5e..fd23ca7d727 100644 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/anniversary/checker/QuarterChecker.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/anniversary/checker/QuarterChecker.java @@ -4,7 +4,7 @@ import java.util.List; import java.util.concurrent.CopyOnWriteArrayList; import com.sap.sailing.domain.common.dto.AnniversaryType; -import com.sap.sailing.server.anniversary.AnniversaryRaceDeterminator.AnniversaryChecker; +import com.sap.sailing.server.interfaces.AnniversaryRaceDeterminator.AnniversaryChecker; /** * This {@link AnniversaryChecker} implementation determines race counts of 10000, 25000, 50000 and 75000 as well as all diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/anniversary/checker/SameDigitChecker.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/anniversary/checker/SameDigitChecker.java index c6bbe471570..dc2377f39e8 100644 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/anniversary/checker/SameDigitChecker.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/anniversary/checker/SameDigitChecker.java @@ -4,7 +4,7 @@ import java.util.List; import java.util.concurrent.CopyOnWriteArrayList; import com.sap.sailing.domain.common.dto.AnniversaryType; -import com.sap.sailing.server.anniversary.AnniversaryRaceDeterminator.AnniversaryChecker; +import com.sap.sailing.server.interfaces.AnniversaryRaceDeterminator.AnniversaryChecker; /** * This {@link AnniversaryChecker} implementation determines all repdigit race counts starting at 11,111 as an diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/hierarchy/SailingHierarchyOwnershipUpdater.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/hierarchy/SailingHierarchyOwnershipUpdater.java index fe324b09955..f973a018e31 100644 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/hierarchy/SailingHierarchyOwnershipUpdater.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/hierarchy/SailingHierarchyOwnershipUpdater.java @@ -13,7 +13,7 @@ import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sailing.domain.leaderboard.LeaderboardGroup; import com.sap.sailing.domain.leaderboard.RegattaLeaderboard; import com.sap.sailing.domain.tracking.TrackedRace; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.security.SecurityService; import com.sap.sse.security.shared.HasPermissions.DefaultActions; import com.sap.sse.security.shared.OwnershipAnnotation; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/hierarchy/SailingHierarchyWalker.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/hierarchy/SailingHierarchyWalker.java index 100c1faed2f..10c2fb01a03 100644 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/hierarchy/SailingHierarchyWalker.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/hierarchy/SailingHierarchyWalker.java @@ -10,7 +10,7 @@ import com.sap.sailing.domain.base.Event; import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sailing.domain.leaderboard.LeaderboardGroup; import com.sap.sailing.domain.tracking.TrackedRace; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.common.Util; /** diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/Activator.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/Activator.java index da99d120fa2..b3713800caf 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/Activator.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/Activator.java @@ -41,12 +41,12 @@ import com.sap.sailing.domain.persistence.racelog.tracking.impl.GPSFixMovingMong import com.sap.sailing.domain.polars.PolarDataService; import com.sap.sailing.domain.racelog.tracking.SensorFixStoreSupplier; import com.sap.sailing.domain.tracking.TrackedRegattaListener; -import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.RacingEventServiceMXBean; import com.sap.sailing.server.impl.preferences.model.BoatClassNotificationPreferences; import com.sap.sailing.server.impl.preferences.model.CompetitorNotificationPreferences; import com.sap.sailing.server.impl.preferences.model.SailorProfilePreferences; import com.sap.sailing.server.impl.preferences.model.StoredDataMiningQueryPreferences; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sailing.server.notification.impl.SailingNotificationServiceImpl; import com.sap.sailing.server.security.SailingViewerRole; import com.sap.sailing.server.statistics.TrackedRaceStatisticsCache; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/LeaderboardSearchResultRanker.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/LeaderboardSearchResultRanker.java index 0cafe3d5a55..c84d9b1d1af 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/LeaderboardSearchResultRanker.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/LeaderboardSearchResultRanker.java @@ -4,7 +4,7 @@ import com.sap.sailing.domain.base.LeaderboardSearchResult; import com.sap.sailing.domain.base.Regatta; import com.sap.sailing.domain.tracking.TrackedRegatta; import com.sap.sailing.domain.tracking.TrackedRegattaRegistry; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; public class LeaderboardSearchResultRanker extends LeaderboardSearchResultBaseRanker { private final TrackedRegattaRegistry trackedRegattaRegistry; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RaceLogReplicatorAndNotifier.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RaceLogReplicatorAndNotifier.java index 8f9220470d6..5454b9622c5 100644 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RaceLogReplicatorAndNotifier.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RaceLogReplicatorAndNotifier.java @@ -11,8 +11,8 @@ import com.sap.sailing.domain.regattalike.FlexibleLeaderboardAsRegattaLikeIdenti import com.sap.sailing.domain.regattalike.RegattaAsRegattaLikeIdentifier; import com.sap.sailing.domain.regattalike.RegattaLikeIdentifierResolver; import com.sap.sailing.domain.tracking.TrackedRace; -import com.sap.sailing.server.RacingEventServiceOperation; import com.sap.sailing.server.Replicator; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; import com.sap.sailing.server.operationaltransformation.RecordRaceLogEventOnLeaderboard; import com.sap.sailing.server.operationaltransformation.RecordRaceLogEventOnRegatta; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RaceLogScoringReplicator.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RaceLogScoringReplicator.java index b5d2cfc0afe..38ec6fb2f9b 100644 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RaceLogScoringReplicator.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RaceLogScoringReplicator.java @@ -19,8 +19,8 @@ import com.sap.sailing.domain.common.MaxPointsReason; import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sailing.domain.leaderboard.ScoringScheme; import com.sap.sailing.domain.racelog.RaceLogIdentifier; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; import com.sap.sailing.server.operationaltransformation.UpdateLeaderboardMaxPointsReason; import com.sap.sailing.server.operationaltransformation.UpdateLeaderboardScoreCorrection; import com.sap.sailing.server.operationaltransformation.UpdateLeaderboardScoreCorrectionMetadata; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java index 5447ad27b13..70956a630c6 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java @@ -201,9 +201,8 @@ import com.sap.sailing.domain.tracking.impl.AbstractRaceChangeListener; import com.sap.sailing.domain.tracking.impl.DynamicTrackedRegattaImpl; import com.sap.sailing.domain.tracking.impl.TrackedRaceImpl; import com.sap.sailing.expeditionconnector.ExpeditionTrackerFactory; -import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.Replicator; -import com.sap.sailing.server.anniversary.AnniversaryRaceDeterminator; +import com.sap.sailing.server.anniversary.AnniversaryRaceDeterminatorImpl; import com.sap.sailing.server.anniversary.RaceChangeObserverForAnniversaryDetection; import com.sap.sailing.server.anniversary.checker.QuarterChecker; import com.sap.sailing.server.anniversary.checker.SameDigitChecker; @@ -212,7 +211,10 @@ import com.sap.sailing.server.gateway.deserialization.impl.EventBaseJsonDeserial import com.sap.sailing.server.gateway.deserialization.impl.LeaderboardGroupBaseJsonDeserializer; import com.sap.sailing.server.gateway.deserialization.impl.LeaderboardSearchResultBaseJsonDeserializer; import com.sap.sailing.server.gateway.deserialization.impl.VenueJsonDeserializer; -import com.sap.sailing.server.masterdata.DataImportLockWithProgress; +import com.sap.sailing.server.interfaces.DataImportLockWithProgress; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.SimulationService; +import com.sap.sailing.server.interfaces.TaggingService; import com.sap.sailing.server.notification.EmptySailingNotificationService; import com.sap.sailing.server.notification.SailingNotificationService; import com.sap.sailing.server.operationaltransformation.AddCourseAreas; @@ -259,12 +261,10 @@ import com.sap.sailing.server.operationaltransformation.UpdateTrackedRaceStatus; import com.sap.sailing.server.operationaltransformation.UpdateWindAveragingTime; import com.sap.sailing.server.operationaltransformation.UpdateWindSourcesToExclude; import com.sap.sailing.server.security.SailingViewerRole; -import com.sap.sailing.server.simulation.SimulationService; import com.sap.sailing.server.simulation.SimulationServiceFactory; import com.sap.sailing.server.statistics.StatisticsAggregator; import com.sap.sailing.server.statistics.StatisticsCalculator; import com.sap.sailing.server.statistics.TrackedRaceStatisticsCache; -import com.sap.sailing.server.tagging.TaggingService; import com.sap.sailing.server.tagging.TaggingServiceFactory; import com.sap.sailing.server.util.EventUtil; import com.sap.sse.ServerInfo; @@ -291,8 +291,8 @@ import com.sap.sse.pairinglist.PairingListTemplate; import com.sap.sse.pairinglist.PairingListTemplateFactory; import com.sap.sse.replication.OperationExecutionListener; import com.sap.sse.replication.OperationWithResult; +import com.sap.sse.replication.OperationWithResultWithIdWrapper; import com.sap.sse.replication.ReplicationMasterDescriptor; -import com.sap.sse.replication.impl.OperationWithResultWithIdWrapper; import com.sap.sse.security.SecurityService; import com.sap.sse.security.shared.RoleDefinition; import com.sap.sse.security.shared.impl.Role; @@ -500,7 +500,7 @@ public class RacingEventServiceImpl implements RacingEventService, ClearStateTes private final TrackedRegattaListenerManager trackedRegattaListener; - private int numberOfTrackedRacesToRestore; + private long numberOfTrackedRacesToRestore; private final AtomicInteger numberOfTrackedRacesRestored; @@ -510,11 +510,11 @@ public class RacingEventServiceImpl implements RacingEventService, ClearStateTes private final TrackedRaceStatisticsCache trackedRaceStatisticsCache; - private final AnniversaryRaceDeterminator anniversaryRaceDeterminator; + private final AnniversaryRaceDeterminatorImpl anniversaryRaceDeterminator; /** * Observes {@link TrackedRegatta} and {@link TrackedRace} instances known to trigger an update of - * {@link AnniversaryRaceDeterminator} if the number of anniversary race candidates changes. To do this, the + * {@link AnniversaryRaceDeterminatorImpl} if the number of anniversary race candidates changes. To do this, the * instance is registered as {@link TrackedRegattaListener} on the {@link TrackedRegattaListenerManager} know by * this service. */ @@ -831,7 +831,7 @@ public class RacingEventServiceImpl implements RacingEventService, ClearStateTes getMongoObjectFactory().removeAllConnectivityParametersForRacesToRestore(); } this.trackedRaceStatisticsCache = trackedRaceStatisticsCache; - anniversaryRaceDeterminator = new AnniversaryRaceDeterminator(this, remoteSailingServerSet, + anniversaryRaceDeterminator = new AnniversaryRaceDeterminatorImpl(this, remoteSailingServerSet, new QuarterChecker(), new SameDigitChecker()); raceChangeObserverForAnniversaryDetection = new RaceChangeObserverForAnniversaryDetection(anniversaryRaceDeterminator); this.trackedRegattaListener.addListener(raceChangeObserverForAnniversaryDetection); @@ -4188,7 +4188,7 @@ public class RacingEventServiceImpl implements RacingEventService, ClearStateTes } @Override - public int getNumberOfTrackedRacesToRestore() { + public long getNumberOfTrackedRacesToRestore() { return numberOfTrackedRacesToRestore; } @@ -4406,7 +4406,7 @@ public class RacingEventServiceImpl implements RacingEventService, ClearStateTes } @Override - public AnniversaryRaceDeterminator getAnniversaryRaceDeterminator() { + public AnniversaryRaceDeterminatorImpl getAnniversaryRaceDeterminator() { return anniversaryRaceDeterminator; } diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceMXBeanImpl.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceMXBeanImpl.java index 39baae70ae6..5a3dadbe58b 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceMXBeanImpl.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceMXBeanImpl.java @@ -1,7 +1,7 @@ package com.sap.sailing.server.impl; -import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.RacingEventServiceMXBean; +import com.sap.sailing.server.interfaces.RacingEventService; public class RacingEventServiceMXBeanImpl implements RacingEventServiceMXBean { private final RacingEventService racingEventService; @@ -21,7 +21,7 @@ public class RacingEventServiceMXBeanImpl implements RacingEventServiceMXBean { } @Override - public int getNumberOfTrackedRacesToRestore() { + public long getNumberOfTrackedRacesToRestore() { return getRacingEventService().getNumberOfTrackedRacesToRestore(); } diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RegattaByKeywordSearchService.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RegattaByKeywordSearchService.java index b00dd2ceaca..cbe646989f7 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RegattaByKeywordSearchService.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RegattaByKeywordSearchService.java @@ -25,8 +25,8 @@ import com.sap.sailing.domain.common.tagging.RaceLogNotFoundException; import com.sap.sailing.domain.common.tagging.ServiceNotFoundException; import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sailing.domain.leaderboard.LeaderboardGroup; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.tagging.TaggingService; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.TaggingService; import com.sap.sse.common.Util; import com.sap.sse.common.filter.AbstractListFilter; import com.sap.sse.common.search.KeywordQuery; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RegattaLogReplicator.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RegattaLogReplicator.java index f710f73beed..de605d5a914 100644 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RegattaLogReplicator.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RegattaLogReplicator.java @@ -8,8 +8,8 @@ import com.sap.sailing.domain.regattalike.RegattaAsRegattaLikeIdentifier; import com.sap.sailing.domain.regattalike.RegattaLikeIdentifier; import com.sap.sailing.domain.regattalike.RegattaLikeIdentifierResolver; import com.sap.sailing.domain.regattalike.RegattaLikeListener; -import com.sap.sailing.server.RacingEventServiceOperation; import com.sap.sailing.server.Replicator; +import com.sap.sailing.server.interfaces.RacingEventServiceOperation; import com.sap.sailing.server.operationaltransformation.RecordRegattaLogEventOnFlexibleLeaderboard; import com.sap.sailing.server.operationaltransformation.RecordRegattaLogEventOnRegatta; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/TrackedRegattaListenerManager.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/TrackedRegattaListenerManager.java index 868ce5551c1..138c04909dc 100644 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/TrackedRegattaListenerManager.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/TrackedRegattaListenerManager.java @@ -1,7 +1,7 @@ package com.sap.sailing.server.impl; import com.sap.sailing.domain.tracking.TrackedRegattaListener; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; /** * Extended version of {@link TrackedRegattaListener} used in the context of {@link RacingEventService}. That diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/preferences/model/BoatClassNotificationPreferences.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/preferences/model/BoatClassNotificationPreferences.java index a5b1f224227..7665adbf289 100644 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/preferences/model/BoatClassNotificationPreferences.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/preferences/model/BoatClassNotificationPreferences.java @@ -1,6 +1,6 @@ package com.sap.sailing.server.impl.preferences.model; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.common.settings.generic.AbstractGenericSerializableSettings; import com.sap.sse.common.settings.generic.SettingsList; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/preferences/model/CompetitorNotificationPreferences.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/preferences/model/CompetitorNotificationPreferences.java index 1119a9a5e53..7e4054e81cb 100644 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/preferences/model/CompetitorNotificationPreferences.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/preferences/model/CompetitorNotificationPreferences.java @@ -1,6 +1,6 @@ package com.sap.sailing.server.impl.preferences.model; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.common.settings.generic.AbstractGenericSerializableSettings; import com.sap.sse.common.settings.generic.SettingsList; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/masterdata/MasterDataImporter.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/masterdata/MasterDataImporter.java index e92c3aa201e..f72fd163d32 100644 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/masterdata/MasterDataImporter.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/masterdata/MasterDataImporter.java @@ -20,7 +20,7 @@ import com.sap.sailing.domain.common.impl.MasterDataImportObjectCreationCountImp import com.sap.sailing.domain.masterdataimport.TopLevelMasterData; import com.sap.sailing.domain.persistence.MongoRaceLogStoreFactory; import com.sap.sailing.domain.racelog.RaceLogStore; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sailing.server.operationaltransformation.ImportMasterDataOperation; import com.sap.sse.security.shared.QualifiedObjectIdentifier; import com.sap.sse.security.shared.WithQualifiedObjectIdentifier; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/notification/impl/SailingNotificationServiceImpl.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/notification/impl/SailingNotificationServiceImpl.java index bd53f01fd4c..3f0a6bbfa56 100644 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/notification/impl/SailingNotificationServiceImpl.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/notification/impl/SailingNotificationServiceImpl.java @@ -23,11 +23,11 @@ import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sailing.domain.leaderboard.LeaderboardGroup; import com.sap.sailing.domain.tracking.TrackedRace; -import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.impl.RacingEventServiceImpl; import com.sap.sailing.server.impl.preferences.BoatClassResultsNotificationSet; import com.sap.sailing.server.impl.preferences.BoatClassUpcomingRaceNotificationSet; import com.sap.sailing.server.impl.preferences.CompetitorResultsNotificationSet; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sailing.server.notification.SailingNotificationService; import com.sap.sse.common.Stoppable; import com.sap.sse.common.TimePoint; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/simulation/SimulationServiceFactory.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/simulation/SimulationServiceFactory.java index e214bfbf9ab..6e2c1c428bb 100644 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/simulation/SimulationServiceFactory.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/simulation/SimulationServiceFactory.java @@ -2,7 +2,8 @@ package com.sap.sailing.server.simulation; import java.util.concurrent.ScheduledExecutorService; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.SimulationService; public interface SimulationServiceFactory { diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/simulation/SimulationServiceFactoryImpl.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/simulation/SimulationServiceFactoryImpl.java index c7a6ce0bfbc..e25184b8aa9 100644 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/simulation/SimulationServiceFactoryImpl.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/simulation/SimulationServiceFactoryImpl.java @@ -2,7 +2,8 @@ package com.sap.sailing.server.simulation; import java.util.concurrent.ScheduledExecutorService; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.SimulationService; public class SimulationServiceFactoryImpl implements SimulationServiceFactory { diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/simulation/SimulationServiceImpl.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/simulation/SimulationServiceImpl.java index faf8a9132de..509cdf15683 100644 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/simulation/SimulationServiceImpl.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/simulation/SimulationServiceImpl.java @@ -40,7 +40,8 @@ import com.sap.sailing.domain.tracking.RaceListener; import com.sap.sailing.domain.tracking.TrackedLeg; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.domain.tracking.impl.AbstractRaceChangeListener; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.SimulationService; import com.sap.sailing.simulator.Path; import com.sap.sailing.simulator.PolarDiagram; import com.sap.sailing.simulator.SimulationParameters; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/tagging/TaggingServiceFactory.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/tagging/TaggingServiceFactory.java index 16f1134cc1c..6b85c430b07 100644 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/tagging/TaggingServiceFactory.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/tagging/TaggingServiceFactory.java @@ -1,6 +1,7 @@ package com.sap.sailing.server.tagging; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.TaggingService; public interface TaggingServiceFactory { static TaggingServiceFactory INSTANCE = new TaggingServiceFactoryImpl(); diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/tagging/TaggingServiceFactoryImpl.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/tagging/TaggingServiceFactoryImpl.java index e43843458cb..35bba87f2b1 100644 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/tagging/TaggingServiceFactoryImpl.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/tagging/TaggingServiceFactoryImpl.java @@ -1,6 +1,7 @@ package com.sap.sailing.server.tagging; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.TaggingService; public class TaggingServiceFactoryImpl implements TaggingServiceFactory { diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/tagging/TaggingServiceImpl.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/tagging/TaggingServiceImpl.java index 4f32ab6aa23..a0026ba2b65 100644 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/tagging/TaggingServiceImpl.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/tagging/TaggingServiceImpl.java @@ -20,7 +20,8 @@ import com.sap.sailing.domain.common.tagging.ServiceNotFoundException; import com.sap.sailing.domain.common.tagging.TagAlreadyExistsException; import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sailing.domain.tracking.TrackedRace; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; +import com.sap.sailing.server.interfaces.TaggingService; import com.sap.sse.common.TimePoint; import com.sap.sse.common.Util; import com.sap.sse.common.impl.MillisecondsTimePoint; diff --git a/java/com.sap.sailing.simulator.test/src/com/sap/sailing/simulator/test/ConfigurationManagerTest.java b/java/com.sap.sailing.simulator.test/src/com/sap/sailing/simulator/test/ConfigurationManagerTest.java index feec55689c1..84d5b1b1a47 100644 --- a/java/com.sap.sailing.simulator.test/src/com/sap/sailing/simulator/test/ConfigurationManagerTest.java +++ b/java/com.sap.sailing.simulator.test/src/com/sap/sailing/simulator/test/ConfigurationManagerTest.java @@ -13,7 +13,7 @@ import com.sap.sailing.simulator.impl.BoatClassPropertiesImpl; import com.sap.sailing.simulator.impl.ConfigurationManager; import com.sap.sailing.simulator.impl.RacePropertiesImpl; -import junit.framework.Assert; +import org.junit.Assert; public class ConfigurationManagerTest { diff --git a/java/com.sap.sailing.simulator.test/src/com/sap/sailing/simulator/test/PolarDiagramCSVTest.java b/java/com.sap.sailing.simulator.test/src/com/sap/sailing/simulator/test/PolarDiagramCSVTest.java index a74381d5b4c..5ee3ebe5224 100644 --- a/java/com.sap.sailing.simulator.test/src/com/sap/sailing/simulator/test/PolarDiagramCSVTest.java +++ b/java/com.sap.sailing.simulator.test/src/com/sap/sailing/simulator/test/PolarDiagramCSVTest.java @@ -5,7 +5,7 @@ import java.util.Map.Entry; import java.util.NavigableMap; import java.util.Set; -import junit.framework.Assert; +import org.junit.Assert; import org.junit.Test; diff --git a/java/com.sap.sailing.simulator.test/src/com/sap/sailing/simulator/test/SerializationUtilsTest.java b/java/com.sap.sailing.simulator.test/src/com/sap/sailing/simulator/test/SerializationUtilsTest.java index 85fa74bdc0c..8db5bcb71a2 100644 --- a/java/com.sap.sailing.simulator.test/src/com/sap/sailing/simulator/test/SerializationUtilsTest.java +++ b/java/com.sap.sailing.simulator.test/src/com/sap/sailing/simulator/test/SerializationUtilsTest.java @@ -1,6 +1,6 @@ package com.sap.sailing.simulator.test; -import junit.framework.Assert; +import org.junit.Assert; import org.junit.Test; diff --git a/java/com.sap.sailing.simulator.test/src/com/sap/sailing/simulator/test/SimulatorTest.java b/java/com.sap.sailing.simulator.test/src/com/sap/sailing/simulator/test/SimulatorTest.java index 45639b94c38..12d9c85debc 100644 --- a/java/com.sap.sailing.simulator.test/src/com/sap/sailing/simulator/test/SimulatorTest.java +++ b/java/com.sap.sailing.simulator.test/src/com/sap/sailing/simulator/test/SimulatorTest.java @@ -6,7 +6,7 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; -import junit.framework.Assert; +import org.junit.Assert; import org.junit.Test; diff --git a/java/com.sap.sailing.simulator.test/src/com/sap/sailing/simulator/test/TreeGrowTest.java b/java/com.sap.sailing.simulator.test/src/com/sap/sailing/simulator/test/TreeGrowTest.java index dcfa48baaa5..54d09373b6d 100644 --- a/java/com.sap.sailing.simulator.test/src/com/sap/sailing/simulator/test/TreeGrowTest.java +++ b/java/com.sap.sailing.simulator.test/src/com/sap/sailing/simulator/test/TreeGrowTest.java @@ -4,7 +4,7 @@ import java.sql.Date; import java.util.LinkedList; import java.util.List; -import junit.framework.Assert; +import org.junit.Assert; import org.junit.Test; diff --git a/java/com.sap.sailing.simulator.test/src/com/sap/sailing/simulator/test/util/PathGenerator1TurnerEval.java b/java/com.sap.sailing.simulator.test/src/com/sap/sailing/simulator/test/util/PathGenerator1TurnerEval.java index 7692213c5fa..29a6dc06c5b 100644 --- a/java/com.sap.sailing.simulator.test/src/com/sap/sailing/simulator/test/util/PathGenerator1TurnerEval.java +++ b/java/com.sap.sailing.simulator.test/src/com/sap/sailing/simulator/test/util/PathGenerator1TurnerEval.java @@ -8,7 +8,7 @@ import java.io.InputStream; import java.io.ObjectInput; import java.io.ObjectInputStream; -import junit.framework.Assert; +import org.junit.Assert; import com.sap.sailing.domain.common.Position; import com.sap.sailing.domain.common.impl.DegreePosition; diff --git a/java/com.sap.sailing.simulator.test/src/com/sap/sailing/simulator/test/util/PathGeneratorTracTracEval.java b/java/com.sap.sailing.simulator.test/src/com/sap/sailing/simulator/test/util/PathGeneratorTracTracEval.java index 0741b973d23..808cf9d7c86 100644 --- a/java/com.sap.sailing.simulator.test/src/com/sap/sailing/simulator/test/util/PathGeneratorTracTracEval.java +++ b/java/com.sap.sailing.simulator.test/src/com/sap/sailing/simulator/test/util/PathGeneratorTracTracEval.java @@ -3,7 +3,7 @@ package com.sap.sailing.simulator.test.util; import java.io.IOException; import java.util.List; -import junit.framework.Assert; +import org.junit.Assert; import com.sap.sailing.domain.common.impl.MeterDistance; import com.sap.sailing.simulator.Path; diff --git a/java/com.sap.sailing.targetplatform/definitions/race-analysis-p2-remote.target b/java/com.sap.sailing.targetplatform/definitions/race-analysis-p2-remote.target index e4481758a92..d9678b87a7f 100755 --- a/java/com.sap.sailing.targetplatform/definitions/race-analysis-p2-remote.target +++ b/java/com.sap.sailing.targetplatform/definitions/race-analysis-p2-remote.target @@ -8,14 +8,55 @@ - - - - + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -69,49 +110,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -258,7 +256,7 @@ - + diff --git a/java/com.sap.sailing.xmlexport/META-INF/MANIFEST.MF b/java/com.sap.sailing.xmlexport/META-INF/MANIFEST.MF index 625ab4f51eb..c3b14e2e719 100644 --- a/java/com.sap.sailing.xmlexport/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.xmlexport/META-INF/MANIFEST.MF @@ -17,7 +17,8 @@ Require-Bundle: com.sap.sailing.server, com.sap.sse, com.sap.sse.common, com.sap.sse.replication, - org.jdom;bundle-version="1.1.1" + org.jdom;bundle-version="1.1.1", + com.sap.sailing.server.interface Bundle-ClassPath: . Web-ContextPath: /export Automatic-Module-Name: com.sap.sailing.xmlexport diff --git a/java/com.sap.sailing.xmlexport/src/com/sap/sailing/xmlexport/ExportAction.java b/java/com.sap.sailing.xmlexport/src/com/sap/sailing/xmlexport/ExportAction.java index ee6ef1cbb3d..3156508c51b 100644 --- a/java/com.sap.sailing.xmlexport/src/com/sap/sailing/xmlexport/ExportAction.java +++ b/java/com.sap.sailing.xmlexport/src/com/sap/sailing/xmlexport/ExportAction.java @@ -28,7 +28,7 @@ import com.sap.sailing.domain.tracking.Maneuver; import com.sap.sailing.domain.tracking.MarkPassing; import com.sap.sailing.domain.tracking.TrackedLegOfCompetitor; import com.sap.sailing.domain.tracking.TrackedRace; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.common.Bearing; import com.sap.sse.common.Distance; import com.sap.sse.common.Speed; diff --git a/java/com.sap.sailing.xmlexport/src/com/sap/sailing/xmlexport/FoilingData.java b/java/com.sap.sailing.xmlexport/src/com/sap/sailing/xmlexport/FoilingData.java index b2bfc40cd88..1ee8614f952 100644 --- a/java/com.sap.sailing.xmlexport/src/com/sap/sailing/xmlexport/FoilingData.java +++ b/java/com.sap.sailing.xmlexport/src/com/sap/sailing/xmlexport/FoilingData.java @@ -29,7 +29,7 @@ import com.sap.sailing.domain.tracking.TrackedLegOfCompetitor; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.domain.tracking.WindTrack; import com.sap.sailing.domain.tracking.WindWithConfidence; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.common.Bearing; import com.sap.sse.common.Duration; import com.sap.sse.common.TimePoint; diff --git a/java/com.sap.sailing.xmlexport/src/com/sap/sailing/xmlexport/LeaderboardData.java b/java/com.sap.sailing.xmlexport/src/com/sap/sailing/xmlexport/LeaderboardData.java index d813d9dd68d..0e6e6014b08 100644 --- a/java/com.sap.sailing.xmlexport/src/com/sap/sailing/xmlexport/LeaderboardData.java +++ b/java/com.sap.sailing.xmlexport/src/com/sap/sailing/xmlexport/LeaderboardData.java @@ -51,7 +51,7 @@ import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.domain.tracking.WindPositionMode; import com.sap.sailing.domain.tracking.WindTrack; import com.sap.sailing.domain.tracking.WindWithConfidence; -import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.interfaces.RacingEventService; import com.sap.sse.common.Bearing; import com.sap.sse.common.Distance; import com.sap.sse.common.Duration; diff --git a/java/com.sap.sailing.yachtscoring.resultimport.test/META-INF/MANIFEST.MF b/java/com.sap.sailing.yachtscoring.resultimport.test/META-INF/MANIFEST.MF index ae35ab64ee9..9f78426dcb1 100644 --- a/java/com.sap.sailing.yachtscoring.resultimport.test/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.yachtscoring.resultimport.test/META-INF/MANIFEST.MF @@ -9,8 +9,6 @@ Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Import-Package: com.sap.sailing.domain.common, com.sap.sailing.domain.leaderboard, com.sap.sailing.domain.persistence, - com.sap.sailing.server, - com.sap.sailing.server.impl, com.sap.sailing.xrr.schema, org.osgi.framework;version="1.5.0" Fragment-Host: com.sap.sailing.yachtscoring.resultimport @@ -19,4 +17,6 @@ Require-Bundle: org.junit;bundle-version="4.8.2", org.mockito.mockito-core;bundle-version="1.9.5", org.objenesis;bundle-version="1.3.0", org.hamcrest;bundle-version="1.1.0", - com.sap.sse + com.sap.sse, + com.sap.sailing.server, + com.sap.sailing.server.interface diff --git a/java/com.sap.sailing.yachtscoring.resultimport.test/src/com/sap/sailing/yachtscoring/resultimport/test/PersistenceTest.java b/java/com.sap.sailing.yachtscoring.resultimport.test/src/com/sap/sailing/yachtscoring/resultimport/test/PersistenceTest.java index 3f67ae7bf12..0fd342447ba 100644 --- a/java/com.sap.sailing.yachtscoring.resultimport.test/src/com/sap/sailing/yachtscoring/resultimport/test/PersistenceTest.java +++ b/java/com.sap.sailing.yachtscoring.resultimport.test/src/com/sap/sailing/yachtscoring/resultimport/test/PersistenceTest.java @@ -5,7 +5,7 @@ import java.net.URL; import java.util.Map; import java.util.Set; -import junit.framework.Assert; +import org.junit.Assert; import org.junit.Test; @@ -13,8 +13,8 @@ import com.sap.sailing.domain.persistence.DomainObjectFactory; import com.sap.sailing.domain.persistence.MongoObjectFactory; import com.sap.sailing.resultimport.ResultUrlRegistry; import com.sap.sailing.resultimport.impl.ResultUrlRegistryImpl; -import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.impl.RacingEventServiceImpl; +import com.sap.sailing.server.interfaces.RacingEventService; @SuppressWarnings("restriction") public class PersistenceTest { diff --git a/java/com.sap.sse.common.test/src/com/sap/sse/common/impl/test/AbstractColorTest.java b/java/com.sap.sse.common.test/src/com/sap/sse/common/impl/test/AbstractColorTest.java index f4de17c2c17..ca995482f80 100644 --- a/java/com.sap.sse.common.test/src/com/sap/sse/common/impl/test/AbstractColorTest.java +++ b/java/com.sap.sse.common.test/src/com/sap/sse/common/impl/test/AbstractColorTest.java @@ -11,7 +11,7 @@ import com.sap.sse.common.impl.RGBColor; import com.sap.sse.common.Color; import com.sap.sse.common.Util.Triple; -import junit.framework.Assert; +import org.junit.Assert; public class AbstractColorTest { diff --git a/java/com.sap.sse.feature.runtime/feature.xml b/java/com.sap.sse.feature.runtime/feature.xml index ed66eb42ca2..1ed154376c5 100644 --- a/java/com.sap.sse.feature.runtime/feature.xml +++ b/java/com.sap.sse.feature.runtime/feature.xml @@ -193,25 +193,32 @@ version="2.8.2" unpack="false"/> + + - - - - + + + + diff --git a/java/com.sap.sse.feature/feature.xml b/java/com.sap.sse.feature/feature.xml index 13bff187ab2..8e9b7b1cb8b 100644 --- a/java/com.sap.sse.feature/feature.xml +++ b/java/com.sap.sse.feature/feature.xml @@ -164,4 +164,67 @@ Computes leaderboard information for sailing races and offers RESTful APIs to al version="0.0.0" unpack="false"/> + + + + + + + + + + + + + + + + + + diff --git a/java/com.sap.sse.filestorage.test/META-INF/MANIFEST.MF b/java/com.sap.sse.filestorage.test/META-INF/MANIFEST.MF index 9a524853907..6ef1432e73f 100644 --- a/java/com.sap.sse.filestorage.test/META-INF/MANIFEST.MF +++ b/java/com.sap.sse.filestorage.test/META-INF/MANIFEST.MF @@ -9,7 +9,8 @@ Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Require-Bundle: org.hamcrest;bundle-version="1.1.0", org.junit;bundle-version="4.8.2", org.apache.commons.io;bundle-version="2.2.0", - com.sap.sse.replication.testsupport + com.sap.sse.replication.testsupport, + com.sap.sse.replication;bundle-version="1.0.0" Import-Package: org.apache.commons.logging, org.slf4j;version="1.6.4" Automatic-Module-Name: com.sap.sse.filestorage.test diff --git a/java/com.sap.sse.filestorage.test/src/com/sap/sse/filestorage/propertystore/test/MongoStoreTest.java b/java/com.sap.sse.filestorage.test/src/com/sap/sse/filestorage/propertystore/test/MongoStoreTest.java index bf1af59a76c..d954cfd2aed 100644 --- a/java/com.sap.sse.filestorage.test/src/com/sap/sse/filestorage/propertystore/test/MongoStoreTest.java +++ b/java/com.sap.sse.filestorage.test/src/com/sap/sse/filestorage/propertystore/test/MongoStoreTest.java @@ -25,12 +25,12 @@ public class MongoStoreTest { @Before public void setup() { - config.getService().getDB().dropDatabase(); + config.getService().getDB().drop(); } @After public void tearDown() { - config.getService().getDB().dropDatabase(); + config.getService().getDB().drop(); } @Test diff --git a/java/com.sap.sse.filestorage.test/src/com/sap/sse/filestorage/replication/test/AbstractFileStorageManagementServiceReplicationTest.java b/java/com.sap.sse.filestorage.test/src/com/sap/sse/filestorage/replication/test/AbstractFileStorageManagementServiceReplicationTest.java index b8e02563ed2..bd9409c3349 100755 --- a/java/com.sap.sse.filestorage.test/src/com/sap/sse/filestorage/replication/test/AbstractFileStorageManagementServiceReplicationTest.java +++ b/java/com.sap.sse.filestorage.test/src/com/sap/sse/filestorage/replication/test/AbstractFileStorageManagementServiceReplicationTest.java @@ -25,7 +25,7 @@ public abstract class AbstractFileStorageManagementServiceReplicationTest extend protected void persistenceSetUp(boolean dropDB) { mongoDBService = MongoDBService.INSTANCE; if (dropDB) { - mongoDBService.getDB().dropDatabase(); + mongoDBService.getDB().drop(); } } @@ -52,7 +52,7 @@ public abstract class AbstractFileStorageManagementServiceReplicationTest extend @Override protected void persistenceTearDown() { - mongoDBService.getDB().dropDatabase(); + mongoDBService.getDB().drop(); } } } diff --git a/java/com.sap.sse.filestorage/META-INF/MANIFEST.MF b/java/com.sap.sse.filestorage/META-INF/MANIFEST.MF index 9483138c71c..279cffb4e9b 100644 --- a/java/com.sap.sse.filestorage/META-INF/MANIFEST.MF +++ b/java/com.sap.sse.filestorage/META-INF/MANIFEST.MF @@ -18,9 +18,9 @@ Require-Bundle: org.apache.servicemix.bundles.aws-java-sdk;bundle-version="1.9.8 com.fasterxml.jackson.core.jackson-annotations, com.sap.sse.common, com.sap.sse.mongodb, - com.sap.sse.replication, + com.sap.sse.replication.interfaces, com.sap.sse.operationaltransformation, com.sap.sse, org.apache.commons.io, - org.mongodb.mongo-java-driver;bundle-version="2.13.0" + org.eclipse.orbit.mongodb;bundle-version="3.2.2" Automatic-Module-Name: com.sap.sse.filestorage diff --git a/java/com.sap.sse.filestorage/src/com/sap/sse/filestorage/FileStorageManagementService.java b/java/com.sap.sse.filestorage/src/com/sap/sse/filestorage/FileStorageManagementService.java index 1f175643a14..991747c7b67 100644 --- a/java/com.sap.sse.filestorage/src/com/sap/sse/filestorage/FileStorageManagementService.java +++ b/java/com.sap.sse.filestorage/src/com/sap/sse/filestorage/FileStorageManagementService.java @@ -3,7 +3,7 @@ package com.sap.sse.filestorage; import com.sap.sse.common.NoCorrespondingServiceRegisteredException; import com.sap.sse.filestorage.impl.ReplicableFileStorageManagementService; import com.sap.sse.filestorage.operations.FileStorageServiceOperation; -import com.sap.sse.replication.impl.ReplicableWithObjectInputStream; +import com.sap.sse.replication.ReplicableWithObjectInputStream; /** * OSGi service for managing {@link FileStorageService FileStorageServices}. diff --git a/java/com.sap.sse.filestorage/src/com/sap/sse/filestorage/impl/FileStorageManagementServiceImpl.java b/java/com.sap.sse.filestorage/src/com/sap/sse/filestorage/impl/FileStorageManagementServiceImpl.java index bea0157d68c..83796aef50b 100644 --- a/java/com.sap.sse.filestorage/src/com/sap/sse/filestorage/impl/FileStorageManagementServiceImpl.java +++ b/java/com.sap.sse.filestorage/src/com/sap/sse/filestorage/impl/FileStorageManagementServiceImpl.java @@ -25,8 +25,8 @@ import com.sap.sse.filestorage.FileStorageServicePropertyStore; import com.sap.sse.filestorage.FileStorageServiceResolver; import com.sap.sse.replication.OperationExecutionListener; import com.sap.sse.replication.OperationWithResult; +import com.sap.sse.replication.OperationWithResultWithIdWrapper; import com.sap.sse.replication.ReplicationMasterDescriptor; -import com.sap.sse.replication.impl.OperationWithResultWithIdWrapper; /** * Implements {@link ServiceTrackerCustomizer} so that all {@link FileStorageServices} announced in the registry can diff --git a/java/com.sap.sse.filestorage/src/com/sap/sse/filestorage/impl/MongoFileStorageServicePropertyStoreImpl.java b/java/com.sap.sse.filestorage/src/com/sap/sse/filestorage/impl/MongoFileStorageServicePropertyStoreImpl.java index a605439dc28..2e7730e18f4 100644 --- a/java/com.sap.sse.filestorage/src/com/sap/sse/filestorage/impl/MongoFileStorageServicePropertyStoreImpl.java +++ b/java/com.sap.sse.filestorage/src/com/sap/sse/filestorage/impl/MongoFileStorageServicePropertyStoreImpl.java @@ -4,11 +4,12 @@ import java.util.HashMap; import java.util.Map; import java.util.logging.Logger; -import com.mongodb.BasicDBObject; -import com.mongodb.BasicDBObjectBuilder; -import com.mongodb.DBCollection; -import com.mongodb.DBCursor; -import com.mongodb.DBObject; +import org.bson.Document; + +import com.mongodb.client.FindIterable; +import com.mongodb.client.MongoCollection; +import com.mongodb.client.model.IndexOptions; +import com.mongodb.client.model.UpdateOptions; import com.sap.sse.filestorage.FileStorageServicePropertyStore; import com.sap.sse.mongodb.MongoDBService; @@ -16,8 +17,8 @@ public class MongoFileStorageServicePropertyStoreImpl implements FileStorageServ private static final Logger logger = Logger.getLogger(MongoFileStorageServicePropertyStoreImpl.class.getName()); public static final String PROPERTIES_COLLECTION_NAME = "FileStorageServiceProperties"; public static final String ACTIVE_SERVICE_COLLECTION_NAME = "ActiveFileStorageService"; - private final DBCollection propertiesCollection; - private final DBCollection activeServiceCollection; + private final MongoCollection propertiesCollection; + private final MongoCollection activeServiceCollection; private static enum FieldNames { SERVICE_NAME, PROPERTY_NAME, PROPERTY_VALUE; @@ -25,26 +26,25 @@ public class MongoFileStorageServicePropertyStoreImpl implements FileStorageServ public MongoFileStorageServicePropertyStoreImpl(MongoDBService dbService) { propertiesCollection = dbService.getDB().getCollection(PROPERTIES_COLLECTION_NAME); - DBObject index = new BasicDBObjectBuilder().add(FieldNames.SERVICE_NAME.name(), 1) - .add(FieldNames.PROPERTY_NAME.name(), 1).get(); + Document index = new Document().append(FieldNames.SERVICE_NAME.name(), 1) + .append(FieldNames.PROPERTY_NAME.name(), 1); try { - propertiesCollection.createIndex(index, "unique service name/property name combination", true); + propertiesCollection.createIndex(index, new IndexOptions().name("unique service name/property name combination").unique(true)); } catch (Exception e) { logger.info("Problem creating index, probably due to index format change; dropping indexes and creating again..."); // could be that the index was created with different properties; need to remove and create again: propertiesCollection.dropIndexes(); - propertiesCollection.createIndex(index, "unique service name/property name combination", true); + propertiesCollection.createIndex(index, new IndexOptions().name("unique service name/property name combination").unique(true)); } activeServiceCollection = dbService.getDB().getCollection(ACTIVE_SERVICE_COLLECTION_NAME); } @Override public Map readAllProperties(String serviceName) { - DBObject query = new BasicDBObject(FieldNames.SERVICE_NAME.name(), serviceName); - DBCursor cursor = propertiesCollection.find(query); + Document query = new Document(FieldNames.SERVICE_NAME.name(), serviceName); + FindIterable cursor = propertiesCollection.find(query); Map properties = new HashMap<>(); - - for (DBObject property : cursor) { + for (Document property : cursor) { String name = (String) property.get(FieldNames.PROPERTY_NAME.name()); String value = (String) property.get(FieldNames.PROPERTY_VALUE.name()); properties.put(name, value); @@ -54,17 +54,17 @@ public class MongoFileStorageServicePropertyStoreImpl implements FileStorageServ @Override public void writeProperty(String serviceName, String propertyName, String propertyValue) { - DBObject obj = new BasicDBObjectBuilder().add(FieldNames.SERVICE_NAME.name(), serviceName) - .add(FieldNames.PROPERTY_NAME.name(), propertyName) - .add(FieldNames.PROPERTY_VALUE.name(), propertyValue).get(); - DBObject query = new BasicDBObjectBuilder().add(FieldNames.SERVICE_NAME.name(), serviceName) - .add(FieldNames.PROPERTY_NAME.name(), propertyName).get(); - propertiesCollection.update(query, obj, /*upsert*/ true, /*multi*/ false); + Document obj = new Document().append(FieldNames.SERVICE_NAME.name(), serviceName) + .append(FieldNames.PROPERTY_NAME.name(), propertyName) + .append(FieldNames.PROPERTY_VALUE.name(), propertyValue); + Document query = new Document().append(FieldNames.SERVICE_NAME.name(), serviceName) + .append(FieldNames.PROPERTY_NAME.name(), propertyName); + propertiesCollection.replaceOne(query, obj, new UpdateOptions().upsert(true)); } @Override public String readActiveServiceName() { - DBObject obj = activeServiceCollection.findOne(); + Document obj = activeServiceCollection.find().first(); if (obj == null) { return null; } @@ -73,9 +73,8 @@ public class MongoFileStorageServicePropertyStoreImpl implements FileStorageServ @Override public void writeActiveService(String serviceName) { - DBObject obj = new BasicDBObjectBuilder().add(FieldNames.SERVICE_NAME.name(), serviceName).get(); - DBObject query = new BasicDBObject(); - activeServiceCollection.update(query, obj, /*upsert*/ true, /*multi*/ false); + Document obj = new Document(FieldNames.SERVICE_NAME.name(), serviceName); + Document query = new Document(); + activeServiceCollection.replaceOne(query, obj, new UpdateOptions().upsert(true)); } - } diff --git a/java/com.sap.sse.gwt.test/src/com/sap/sse/gwt/test/dispatch/client/system/caching/CacheDispatchTest.java b/java/com.sap.sse.gwt.test/src/com/sap/sse/gwt/test/dispatch/client/system/caching/CacheDispatchTest.java index 956ec854972..3dc2443d344 100644 --- a/java/com.sap.sse.gwt.test/src/com/sap/sse/gwt/test/dispatch/client/system/caching/CacheDispatchTest.java +++ b/java/com.sap.sse.gwt.test/src/com/sap/sse/gwt/test/dispatch/client/system/caching/CacheDispatchTest.java @@ -5,7 +5,7 @@ import java.util.UUID; import javax.servlet.http.HttpServletRequest; -import junit.framework.Assert; +import org.junit.Assert; import org.junit.Test; diff --git a/java/com.sap.sse.mail.replication.test/META-INF/MANIFEST.MF b/java/com.sap.sse.mail.replication.test/META-INF/MANIFEST.MF index 5527065ec74..3eadecea3ab 100644 --- a/java/com.sap.sse.mail.replication.test/META-INF/MANIFEST.MF +++ b/java/com.sap.sse.mail.replication.test/META-INF/MANIFEST.MF @@ -10,5 +10,6 @@ Require-Bundle: org.hamcrest;bundle-version="1.1.0", org.junit;bundle-version="4.8.2", com.rabbitmq.client, com.sap.sse.replication.testsupport, - com.sap.sse.mail.replication.testsupport + com.sap.sse.mail.replication.testsupport, + com.sap.sse.replication.interfaces;bundle-version="1.0.0" Automatic-Module-Name: com.sap.sse.mail.replication.test diff --git a/java/com.sap.sse.mail.replication.testsupport/META-INF/MANIFEST.MF b/java/com.sap.sse.mail.replication.testsupport/META-INF/MANIFEST.MF index 3052770f79b..8c148057521 100644 --- a/java/com.sap.sse.mail.replication.testsupport/META-INF/MANIFEST.MF +++ b/java/com.sap.sse.mail.replication.testsupport/META-INF/MANIFEST.MF @@ -13,6 +13,7 @@ Require-Bundle: com.sap.sse.replication, org.hamcrest;bundle-version="1.1.0", org.junit;bundle-version="4.8.2", org.mockito.mockito-core;bundle-version="1.10.14", - com.sun.mail.javax.mail;bundle-version="1.4.5" + com.sun.mail.javax.mail;bundle-version="1.4.5", + com.sap.sse.replication.interfaces;bundle-version="1.0.0" Export-Package: com.sap.sse.mail.replication.testsupport Automatic-Module-Name: com.sap.sse.mail.replication.testsupport diff --git a/java/com.sap.sse.mail.replication.testsupport/src/com/sap/sse/mail/replication/testsupport/AbstractMailServiceReplicationTest.java b/java/com.sap.sse.mail.replication.testsupport/src/com/sap/sse/mail/replication/testsupport/AbstractMailServiceReplicationTest.java index 3ae6dfe3526..9fdbf407923 100644 --- a/java/com.sap.sse.mail.replication.testsupport/src/com/sap/sse/mail/replication/testsupport/AbstractMailServiceReplicationTest.java +++ b/java/com.sap.sse.mail.replication.testsupport/src/com/sap/sse/mail/replication/testsupport/AbstractMailServiceReplicationTest.java @@ -35,10 +35,9 @@ public class AbstractMailServiceReplicationTest extends AbstractServerWithSingle }; mailService[0] = new MailServiceImpl(null, mailServiceResolver) { @Override - public Void internalSendMail(String toAddress, String subject, SerializableMultipartSupplier multipartSupplier) + protected void internalSendMail(String toAddress, String subject, ContentSetter contentSetter) throws MailException { countOneIfCanSendMail(canSendMail); - return null; } private void countOneIfCanSendMail(final boolean canSendMail) { @@ -47,9 +46,10 @@ public class AbstractMailServiceReplicationTest extends AbstractServerWithSingle numberOfMailsSent.put(this, old == null ? 1 : old + 1); } } - + @Override - public Void internalSendMail(String toAddress, String subject, String body) throws MailException { + public Void internalSendMail(String toAddress, String subject, + SerializableMultipartSupplier multipartSupplier) throws MailException { countOneIfCanSendMail(canSendMail); return null; } diff --git a/java/com.sap.sse.mail/META-INF/MANIFEST.MF b/java/com.sap.sse.mail/META-INF/MANIFEST.MF index 776d8056eb5..f15bb83799e 100755 --- a/java/com.sap.sse.mail/META-INF/MANIFEST.MF +++ b/java/com.sap.sse.mail/META-INF/MANIFEST.MF @@ -15,8 +15,8 @@ Import-Package: javax.mail, javax.mail.util;version="1.4.0", org.osgi.framework, org.osgi.util.tracker;version="1.5.1" -Require-Bundle: com.sap.sse.replication, - com.sap.sse.operationaltransformation, +Require-Bundle: com.sap.sse.operationaltransformation, com.sap.sse.common, - com.sap.sse + com.sap.sse, + com.sap.sse.replication.interfaces;bundle-version="1.0.0" Automatic-Module-Name: com.sap.sse.mail diff --git a/java/com.sap.sse.mail/src/com/sap/sse/mail/MailService.java b/java/com.sap.sse.mail/src/com/sap/sse/mail/MailService.java index 100f5a1e848..6d20059ab70 100644 --- a/java/com.sap.sse.mail/src/com/sap/sse/mail/MailService.java +++ b/java/com.sap.sse.mail/src/com/sap/sse/mail/MailService.java @@ -8,7 +8,7 @@ import com.sap.sse.common.IsManagedByCache; import com.sap.sse.common.mail.MailException; import com.sap.sse.mail.impl.ReplicableMailService; import com.sap.sse.replication.Replicable; -import com.sap.sse.replication.impl.ReplicableWithObjectInputStream; +import com.sap.sse.replication.ReplicableWithObjectInputStream; import com.sap.sse.util.ClearStateTestSupport; diff --git a/java/com.sap.sse.mail/src/com/sap/sse/mail/impl/MailServiceImpl.java b/java/com.sap.sse.mail/src/com/sap/sse/mail/impl/MailServiceImpl.java index fae79dc8069..e0dc2e65180 100644 --- a/java/com.sap.sse.mail/src/com/sap/sse/mail/impl/MailServiceImpl.java +++ b/java/com.sap.sse.mail/src/com/sap/sse/mail/impl/MailServiceImpl.java @@ -30,8 +30,8 @@ import com.sap.sse.mail.MailServiceResolver; import com.sap.sse.mail.SerializableMultipartSupplier; import com.sap.sse.replication.OperationExecutionListener; import com.sap.sse.replication.OperationWithResult; +import com.sap.sse.replication.OperationWithResultWithIdWrapper; import com.sap.sse.replication.ReplicationMasterDescriptor; -import com.sap.sse.replication.impl.OperationWithResultWithIdWrapper; import com.sap.sse.util.ObjectInputStreamResolvingAgainstCache; public class MailServiceImpl implements ReplicableMailService { diff --git a/java/com.sap.sse.mongodb/META-INF/MANIFEST.MF b/java/com.sap.sse.mongodb/META-INF/MANIFEST.MF index c1b7fdfac3b..7c78055a21b 100644 --- a/java/com.sap.sse.mongodb/META-INF/MANIFEST.MF +++ b/java/com.sap.sse.mongodb/META-INF/MANIFEST.MF @@ -6,7 +6,7 @@ Bundle-Version: 1.0.0.qualifier Bundle-Vendor: SAP Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Require-Bundle: com.sap.sse.common, - org.mongodb.mongo-java-driver;bundle-version="2.13.0" + org.eclipse.orbit.mongodb;bundle-version="3.2.2" Export-Package: com.sap.sse.mongodb Bundle-ActivationPolicy: lazy Import-Package: org.osgi.framework;version="1.6.0" diff --git a/java/com.sap.sse.mongodb/src/com/sap/sse/mongodb/MongoDBService.java b/java/com.sap.sse.mongodb/src/com/sap/sse/mongodb/MongoDBService.java index 922598b81d4..5fd68677492 100644 --- a/java/com.sap.sse.mongodb/src/com/sap/sse/mongodb/MongoDBService.java +++ b/java/com.sap.sse.mongodb/src/com/sap/sse/mongodb/MongoDBService.java @@ -1,13 +1,13 @@ package com.sap.sse.mongodb; -import com.mongodb.DB; +import com.mongodb.client.MongoDatabase; import com.sap.sse.mongodb.internal.MongoDBServiceImpl; public interface MongoDBService { MongoDBService INSTANCE = new MongoDBServiceImpl(); - DB getDB(); + MongoDatabase getDB(); MongoDBConfiguration getConfiguration(); diff --git a/java/com.sap.sse.mongodb/src/com/sap/sse/mongodb/internal/MongoDBServiceImpl.java b/java/com.sap.sse.mongodb/src/com/sap/sse/mongodb/internal/MongoDBServiceImpl.java index d020a06fd39..cc55344df9d 100644 --- a/java/com.sap.sse.mongodb/src/com/sap/sse/mongodb/internal/MongoDBServiceImpl.java +++ b/java/com.sap.sse.mongodb/src/com/sap/sse/mongodb/internal/MongoDBServiceImpl.java @@ -6,10 +6,9 @@ import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; -import com.mongodb.DB; -import com.mongodb.Mongo; import com.mongodb.MongoClient; import com.mongodb.MongoClientURI; +import com.mongodb.client.MongoDatabase; import com.sap.sse.mongodb.AlreadyRegisteredException; import com.sap.sse.mongodb.MongoDBConfiguration; import com.sap.sse.mongodb.MongoDBService; @@ -20,9 +19,9 @@ public class MongoDBServiceImpl implements MongoDBService { private MongoDBConfiguration configuration; - private final Map mongos; + private final Map mongos; - private final Map dbs; + private final Map dbs; /** * collection name -> fully qualified class name @@ -49,7 +48,7 @@ public class MongoDBServiceImpl implements MongoDBService { logger.info("Used Mongo configuration: "+configuration.getMongoClientURI()); } - public DB getDB() { + public MongoDatabase getDB() { if (configuration == null) { configuration = MongoDBConfiguration.getDefaultTestConfiguration(); logger.info("Used default Mongo configuration: "+configuration.getMongoClientURI()); @@ -61,16 +60,16 @@ public class MongoDBServiceImpl implements MongoDBService { } } - private synchronized DB getDB(MongoDBConfiguration mongoDBConfiguration) throws UnknownHostException { + private synchronized MongoDatabase getDB(MongoDBConfiguration mongoDBConfiguration) throws UnknownHostException { final MongoClientURI key = mongoDBConfiguration.getMongoClientURI(); - DB db = dbs.get(key); + MongoDatabase db = dbs.get(key); if (db == null) { - Mongo mongo = mongos.get(key); + MongoClient mongo = mongos.get(key); if (mongo == null) { mongo = new MongoClient(mongoDBConfiguration.getMongoClientURI()); mongos.put(key, mongo); } - db = mongo.getDB(mongoDBConfiguration.getMongoClientURI().getDatabase()); + db = mongo.getDatabase(mongoDBConfiguration.getMongoClientURI().getDatabase()); dbs.put(key, db); } return db; diff --git a/java/com.sap.sse.replication.interfaces/.classpath b/java/com.sap.sse.replication.interfaces/.classpath new file mode 100755 index 00000000000..eca7bdba8f0 --- /dev/null +++ b/java/com.sap.sse.replication.interfaces/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/java/com.sap.sse.replication.interfaces/.project b/java/com.sap.sse.replication.interfaces/.project new file mode 100755 index 00000000000..6379d22889e --- /dev/null +++ b/java/com.sap.sse.replication.interfaces/.project @@ -0,0 +1,28 @@ + + + com.sap.sse.replication.interfaces + + + + + + 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.sse.replication.interfaces/.settings/org.eclipse.jdt.core.prefs b/java/com.sap.sse.replication.interfaces/.settings/org.eclipse.jdt.core.prefs new file mode 100755 index 00000000000..0c68a61dca8 --- /dev/null +++ b/java/com.sap.sse.replication.interfaces/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,7 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/java/com.sap.sse.replication.interfaces/.settings/org.eclipse.pde.core.prefs b/java/com.sap.sse.replication.interfaces/.settings/org.eclipse.pde.core.prefs new file mode 100755 index 00000000000..f29e940a005 --- /dev/null +++ b/java/com.sap.sse.replication.interfaces/.settings/org.eclipse.pde.core.prefs @@ -0,0 +1,3 @@ +eclipse.preferences.version=1 +pluginProject.extensions=false +resolve.requirebundle=false diff --git a/java/com.sap.sse.replication.interfaces/META-INF/MANIFEST.MF b/java/com.sap.sse.replication.interfaces/META-INF/MANIFEST.MF new file mode 100755 index 00000000000..3ac96d733cf --- /dev/null +++ b/java/com.sap.sse.replication.interfaces/META-INF/MANIFEST.MF @@ -0,0 +1,13 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Interfaces +Bundle-SymbolicName: com.sap.sse.replication.interfaces +Bundle-Version: 1.0.0.qualifier +Bundle-Vendor: SAP +Automatic-Module-Name: com.sap.sse.replication.interfaces +Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Export-Package: com.sap.sse.replication +Import-Package: com.rabbitmq.client;version="2.8.4" +Require-Bundle: com.sap.sse.operationaltransformation;bundle-version="1.0.0", + com.sap.sse.common;bundle-version="1.0.0", + com.sap.sse;bundle-version="1.0.0" diff --git a/java/com.sap.sse.replication.interfaces/build.properties b/java/com.sap.sse.replication.interfaces/build.properties new file mode 100755 index 00000000000..34d2e4d2dad --- /dev/null +++ b/java/com.sap.sse.replication.interfaces/build.properties @@ -0,0 +1,4 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + . diff --git a/java/com.sap.sse.replication.interfaces/pom.xml b/java/com.sap.sse.replication.interfaces/pom.xml new file mode 100755 index 00000000000..c18c33d6b43 --- /dev/null +++ b/java/com.sap.sse.replication.interfaces/pom.xml @@ -0,0 +1,12 @@ + + + 4.0.0 + + root + com.sap.sailing + 1.0.0-SNAPSHOT + + com.sap.sse.replication.interfaces + eclipse-plugin + diff --git a/java/com.sap.sse.replication/src/com/sap/sse/replication/OperationExecutionListener.java b/java/com.sap.sse.replication.interfaces/src/com/sap/sse/replication/OperationExecutionListener.java similarity index 100% rename from java/com.sap.sse.replication/src/com/sap/sse/replication/OperationExecutionListener.java rename to java/com.sap.sse.replication.interfaces/src/com/sap/sse/replication/OperationExecutionListener.java diff --git a/java/com.sap.sse.replication/src/com/sap/sse/replication/OperationWithResult.java b/java/com.sap.sse.replication.interfaces/src/com/sap/sse/replication/OperationWithResult.java similarity index 100% rename from java/com.sap.sse.replication/src/com/sap/sse/replication/OperationWithResult.java rename to java/com.sap.sse.replication.interfaces/src/com/sap/sse/replication/OperationWithResult.java diff --git a/java/com.sap.sse.replication/src/com/sap/sse/replication/impl/OperationWithResultWithIdWrapper.java b/java/com.sap.sse.replication.interfaces/src/com/sap/sse/replication/OperationWithResultWithIdWrapper.java similarity index 96% rename from java/com.sap.sse.replication/src/com/sap/sse/replication/impl/OperationWithResultWithIdWrapper.java rename to java/com.sap.sse.replication.interfaces/src/com/sap/sse/replication/OperationWithResultWithIdWrapper.java index 2a3ee0a9055..1c8d69f99fd 100755 --- a/java/com.sap.sse.replication/src/com/sap/sse/replication/impl/OperationWithResultWithIdWrapper.java +++ b/java/com.sap.sse.replication.interfaces/src/com/sap/sse/replication/OperationWithResultWithIdWrapper.java @@ -1,10 +1,9 @@ -package com.sap.sse.replication.impl; +package com.sap.sse.replication; import java.io.Serializable; import java.util.UUID; import com.sap.sse.common.WithID; -import com.sap.sse.replication.OperationWithResult; /** * Wraps an operation and delegates all methods to it. In addition, provides an {@link #id ID} which is used diff --git a/java/com.sap.sse.replication.interfaces/src/com/sap/sse/replication/ReplicaDescriptor.java b/java/com.sap.sse.replication.interfaces/src/com/sap/sse/replication/ReplicaDescriptor.java new file mode 100644 index 00000000000..6c3a9c5f6a2 --- /dev/null +++ b/java/com.sap.sse.replication.interfaces/src/com/sap/sse/replication/ReplicaDescriptor.java @@ -0,0 +1,33 @@ +package com.sap.sse.replication; + +import java.io.Serializable; +import java.net.InetAddress; +import java.util.UUID; + +import com.sap.sse.common.TimePoint; + +/** + * Describes a replica by remembering its IP address as well as the replication time and a UUID. Hash code and equality + * are based solely on the UUID. + * + * @author Frank Mittag, Axel Uhl (d043530) + * + */ +public interface ReplicaDescriptor extends Serializable { + UUID getUuid(); + + InetAddress getIpAddress(); + + TimePoint getRegistrationTime(); + + String getAdditionalInformation(); + + /** + * The {@link Replicable#getId() IDs} of the replicables that the replica represented by this descriptor + * has requested from the master for replication. The master may send operations for a superset of those + * replicables in case other replicas have requested replication for other replicables. Therefore, the + * replica must filter the operations received for those replicable IDs it has been requesting replication + * for. + */ + String[] getReplicableIdsAsStrings(); +} diff --git a/java/com.sap.sse.replication/src/com/sap/sse/replication/Replicable.java b/java/com.sap.sse.replication.interfaces/src/com/sap/sse/replication/Replicable.java similarity index 99% rename from java/com.sap.sse.replication/src/com/sap/sse/replication/Replicable.java rename to java/com.sap.sse.replication.interfaces/src/com/sap/sse/replication/Replicable.java index cedaccf1e60..47d302fcb92 100755 --- a/java/com.sap.sse.replication/src/com/sap/sse/replication/Replicable.java +++ b/java/com.sap.sse.replication.interfaces/src/com/sap/sse/replication/Replicable.java @@ -8,12 +8,10 @@ import java.io.OutputStream; import java.net.MalformedURLException; import java.util.logging.Logger; -import org.osgi.framework.BundleContext; import com.sap.sse.common.WithID; import com.sap.sse.operationaltransformation.Operation; import com.sap.sse.operationaltransformation.OperationWithTransformationSupport; -import com.sap.sse.replication.impl.OperationWithResultWithIdWrapper; import com.sap.sse.util.ObjectInputStreamResolvingAgainstCache; import com.sap.sse.util.ThreadLocalTransporter; diff --git a/java/com.sap.sse.replication/src/com/sap/sse/replication/impl/ReplicableWithObjectInputStream.java b/java/com.sap.sse.replication.interfaces/src/com/sap/sse/replication/ReplicableWithObjectInputStream.java similarity index 98% rename from java/com.sap.sse.replication/src/com/sap/sse/replication/impl/ReplicableWithObjectInputStream.java rename to java/com.sap.sse.replication.interfaces/src/com/sap/sse/replication/ReplicableWithObjectInputStream.java index df6c1334481..db3f9ea64bd 100755 --- a/java/com.sap.sse.replication/src/com/sap/sse/replication/impl/ReplicableWithObjectInputStream.java +++ b/java/com.sap.sse.replication.interfaces/src/com/sap/sse/replication/ReplicableWithObjectInputStream.java @@ -1,4 +1,4 @@ -package com.sap.sse.replication.impl; +package com.sap.sse.replication; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -17,10 +17,6 @@ import java.util.logging.Logger; import com.sap.sse.common.WithID; import com.sap.sse.operationaltransformation.Operation; -import com.sap.sse.replication.OperationExecutionListener; -import com.sap.sse.replication.OperationWithResult; -import com.sap.sse.replication.Replicable; -import com.sap.sse.replication.ReplicationMasterDescriptor; public interface ReplicableWithObjectInputStream> extends Replicable { static final Logger logger = Logger.getLogger(ReplicableWithObjectInputStream.class.getName()); diff --git a/java/com.sap.sse.replication/src/com/sap/sse/replication/ReplicablesProvider.java b/java/com.sap.sse.replication.interfaces/src/com/sap/sse/replication/ReplicablesProvider.java similarity index 100% rename from java/com.sap.sse.replication/src/com/sap/sse/replication/ReplicablesProvider.java rename to java/com.sap.sse.replication.interfaces/src/com/sap/sse/replication/ReplicablesProvider.java diff --git a/java/com.sap.sse.replication/src/com/sap/sse/replication/ReplicationMasterDescriptor.java b/java/com.sap.sse.replication.interfaces/src/com/sap/sse/replication/ReplicationMasterDescriptor.java similarity index 96% rename from java/com.sap.sse.replication/src/com/sap/sse/replication/ReplicationMasterDescriptor.java rename to java/com.sap.sse.replication.interfaces/src/com/sap/sse/replication/ReplicationMasterDescriptor.java index 83060523ed5..f00af381e81 100644 --- a/java/com.sap.sse.replication/src/com/sap/sse/replication/ReplicationMasterDescriptor.java +++ b/java/com.sap.sse.replication.interfaces/src/com/sap/sse/replication/ReplicationMasterDescriptor.java @@ -8,8 +8,6 @@ import java.util.UUID; import com.rabbitmq.client.Channel; import com.rabbitmq.client.QueueingConsumer; -import com.sap.sse.replication.impl.RabbitInputStreamProvider; -import com.sap.sse.replication.impl.ReplicationServlet; /** * Identifies a master server instance from which a replica can obtain an initial load and continuous updates. diff --git a/java/com.sap.sse.replication/src/com/sap/sse/replication/ReplicationService.java b/java/com.sap.sse.replication.interfaces/src/com/sap/sse/replication/ReplicationService.java similarity index 93% rename from java/com.sap.sse.replication/src/com/sap/sse/replication/ReplicationService.java rename to java/com.sap.sse.replication.interfaces/src/com/sap/sse/replication/ReplicationService.java index 4f88db26821..39417aa103d 100644 --- a/java/com.sap.sse.replication/src/com/sap/sse/replication/ReplicationService.java +++ b/java/com.sap.sse.replication.interfaces/src/com/sap/sse/replication/ReplicationService.java @@ -6,8 +6,6 @@ import java.util.Map; import java.util.UUID; import com.rabbitmq.client.Channel; -import com.sap.sse.replication.impl.ReplicaDescriptor; -import com.sap.sse.replication.impl.ReplicationServlet; /** * A service that organizes a master server and its replicas. @@ -31,7 +29,7 @@ public interface ReplicationService { ReplicationMasterDescriptor getReplicatingFromMaster(); /** - * Starts to replicate the {@link Replicables} that the {@code master} descriptor + * Starts to replicate the {@link Replicable}s that the {@code master} descriptor * {@link ReplicationMasterDescriptor#getReplicables() specifies}. Performs a servlet request to the remote master * server's {@link ReplicationServlet}, first registering this replica, ensuring the message queue for replicating * operations is created, then subscribing to the master's replication message queue and asking the servlet for the @@ -99,4 +97,6 @@ public interface ReplicationService { double getAverageNumberOfBytesPerMessage(ReplicaDescriptor replica); Iterable> getAllReplicables(); + + ReplicationMasterDescriptor createReplicationMasterDescriptor(String messagingHostname, String hostname, String exchangeName, int servletPort, int jmsPort, String jmsQueueName, Iterable> replicables); } diff --git a/java/com.sap.sse.replication/src/com/sap/sse/replication/Replicator.java b/java/com.sap.sse.replication.interfaces/src/com/sap/sse/replication/Replicator.java similarity index 100% rename from java/com.sap.sse.replication/src/com/sap/sse/replication/Replicator.java rename to java/com.sap.sse.replication.interfaces/src/com/sap/sse/replication/Replicator.java diff --git a/java/com.sap.sse.replication.testsupport/META-INF/MANIFEST.MF b/java/com.sap.sse.replication.testsupport/META-INF/MANIFEST.MF index 6f8d64c36a2..8ff85f8f4d4 100644 --- a/java/com.sap.sse.replication.testsupport/META-INF/MANIFEST.MF +++ b/java/com.sap.sse.replication.testsupport/META-INF/MANIFEST.MF @@ -9,6 +9,7 @@ Require-Bundle: org.junit;bundle-version="4.8.2", com.sap.sse.replication, com.sap.sse.common, com.rabbitmq.client;bundle-version="2.8.4", - lz4-java;bundle-version="1.3.0" + lz4-java;bundle-version="1.3.0", + com.sap.sse.replication.interfaces;bundle-version="1.0.0" Export-Package: com.sap.sse.replication.testsupport Automatic-Module-Name: com.sap.sse.replication.testsupport diff --git a/java/com.sap.sse.replication.testsupport/src/com/sap/sse/replication/testsupport/AbstractServerReplicationTestSetUp.java b/java/com.sap.sse.replication.testsupport/src/com/sap/sse/replication/testsupport/AbstractServerReplicationTestSetUp.java index f95629286a3..0910c859d43 100644 --- a/java/com.sap.sse.replication.testsupport/src/com/sap/sse/replication/testsupport/AbstractServerReplicationTestSetUp.java +++ b/java/com.sap.sse.replication.testsupport/src/com/sap/sse/replication/testsupport/AbstractServerReplicationTestSetUp.java @@ -30,12 +30,13 @@ import org.junit.rules.Timeout; import com.rabbitmq.client.Channel; import com.rabbitmq.client.QueueingConsumer; import com.sap.sse.common.Util.Pair; +import com.sap.sse.replication.ReplicaDescriptor; import com.sap.sse.replication.Replicable; import com.sap.sse.replication.ReplicationMasterDescriptor; import com.sap.sse.replication.ReplicationService; import com.sap.sse.replication.impl.Activator; import com.sap.sse.replication.impl.RabbitOutputStream; -import com.sap.sse.replication.impl.ReplicaDescriptor; +import com.sap.sse.replication.impl.ReplicaDescriptorImpl; import com.sap.sse.replication.impl.ReplicationInstancesManager; import com.sap.sse.replication.impl.ReplicationMasterDescriptorImpl; import com.sap.sse.replication.impl.ReplicationReceiver; @@ -64,7 +65,7 @@ public abstract class AbstractServerReplicationTestSetUp> replicables); -} diff --git a/java/com.sap.sse.replication/src/com/sap/sse/replication/impl/ReplicaDescriptor.java b/java/com.sap.sse.replication/src/com/sap/sse/replication/impl/ReplicaDescriptorImpl.java old mode 100644 new mode 100755 similarity index 89% rename from java/com.sap.sse.replication/src/com/sap/sse/replication/impl/ReplicaDescriptor.java rename to java/com.sap.sse.replication/src/com/sap/sse/replication/impl/ReplicaDescriptorImpl.java index bd6ac649a34..5fe0b29d542 --- a/java/com.sap.sse.replication/src/com/sap/sse/replication/impl/ReplicaDescriptor.java +++ b/java/com.sap.sse.replication/src/com/sap/sse/replication/impl/ReplicaDescriptorImpl.java @@ -1,11 +1,11 @@ package com.sap.sse.replication.impl; -import java.io.Serializable; import java.net.InetAddress; import java.util.UUID; import com.sap.sse.common.TimePoint; import com.sap.sse.common.impl.MillisecondsTimePoint; +import com.sap.sse.replication.ReplicaDescriptor; import com.sap.sse.replication.Replicable; /** @@ -15,7 +15,7 @@ import com.sap.sse.replication.Replicable; * @author Frank Mittag, Axel Uhl (d043530) * */ -public class ReplicaDescriptor implements Serializable { +public class ReplicaDescriptorImpl implements ReplicaDescriptor { private static final long serialVersionUID = -5451556877949921454L; private final UUID uuid; @@ -27,7 +27,7 @@ public class ReplicaDescriptor implements Serializable { /** * Sets the registration time to now. */ - public ReplicaDescriptor(InetAddress ipAddress, UUID serverUuid, String additionalInformation, String[] replicableIdsAsStrings) { + public ReplicaDescriptorImpl(InetAddress ipAddress, UUID serverUuid, String additionalInformation, String[] replicableIdsAsStrings) { assert replicableIdsAsStrings != null && replicableIdsAsStrings.length > 0; this.uuid = serverUuid; this.registrationTime = MillisecondsTimePoint.now(); @@ -79,7 +79,7 @@ public class ReplicaDescriptor implements Serializable { return false; if (getClass() != obj.getClass()) return false; - ReplicaDescriptor other = (ReplicaDescriptor) obj; + ReplicaDescriptorImpl other = (ReplicaDescriptorImpl) obj; if (uuid == null) { if (other.uuid != null) return false; diff --git a/java/com.sap.sse.replication/src/com/sap/sse/replication/impl/ReplicationFactoryImpl.java b/java/com.sap.sse.replication/src/com/sap/sse/replication/impl/ReplicationFactoryImpl.java deleted file mode 100755 index 0e0d212e403..00000000000 --- a/java/com.sap.sse.replication/src/com/sap/sse/replication/impl/ReplicationFactoryImpl.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.sap.sse.replication.impl; - -import com.sap.sse.replication.Replicable; -import com.sap.sse.replication.ReplicationFactory; -import com.sap.sse.replication.ReplicationMasterDescriptor; - -public class ReplicationFactoryImpl implements ReplicationFactory { - @Override - public ReplicationMasterDescriptor createReplicationMasterDescriptor(String messagingHostname, String hostname, - String exchangeName, int servletPort, int messagingPort, String queueName, - Iterable> replicables) { - return new ReplicationMasterDescriptorImpl(messagingHostname, exchangeName, messagingPort, queueName, hostname, servletPort, replicables); - } - -} diff --git a/java/com.sap.sse.replication/src/com/sap/sse/replication/impl/ReplicationInstancesManager.java b/java/com.sap.sse.replication/src/com/sap/sse/replication/impl/ReplicationInstancesManager.java index 880b216c646..61c16a25ff0 100644 --- a/java/com.sap.sse.replication/src/com/sap/sse/replication/impl/ReplicationInstancesManager.java +++ b/java/com.sap.sse.replication/src/com/sap/sse/replication/impl/ReplicationInstancesManager.java @@ -10,6 +10,7 @@ import java.util.UUID; import com.sap.sse.common.Util; import com.sap.sse.replication.OperationWithResult; +import com.sap.sse.replication.ReplicaDescriptor; import com.sap.sse.replication.ReplicationMasterDescriptor; /** diff --git a/java/com.sap.sse.replication/src/com/sap/sse/replication/impl/ReplicationServiceImpl.java b/java/com.sap.sse.replication/src/com/sap/sse/replication/impl/ReplicationServiceImpl.java index 354307732f9..9bf54fe4048 100755 --- a/java/com.sap.sse.replication/src/com/sap/sse/replication/impl/ReplicationServiceImpl.java +++ b/java/com.sap.sse.replication/src/com/sap/sse/replication/impl/ReplicationServiceImpl.java @@ -34,6 +34,7 @@ import com.sap.sse.ServerInfo; import com.sap.sse.common.Util; import com.sap.sse.replication.OperationExecutionListener; import com.sap.sse.replication.OperationWithResult; +import com.sap.sse.replication.ReplicaDescriptor; import com.sap.sse.replication.Replicable; import com.sap.sse.replication.ReplicablesProvider; import com.sap.sse.replication.ReplicablesProvider.ReplicableLifeCycleListener; @@ -796,4 +797,10 @@ public class ReplicationServiceImpl implements ReplicationService { return serverUUID; } + @Override + public ReplicationMasterDescriptor createReplicationMasterDescriptor(String messagingHostname, String hostname, + String exchangeName, int servletPort, int messagingPort, String queueName, + Iterable> replicables) { + return new ReplicationMasterDescriptorImpl(messagingHostname, exchangeName, messagingPort, queueName, hostname, servletPort, replicables); + } } diff --git a/java/com.sap.sse.replication/src/com/sap/sse/replication/impl/ReplicationServlet.java b/java/com.sap.sse.replication/src/com/sap/sse/replication/impl/ReplicationServlet.java index 93d5841a23e..6ee4e9437ab 100755 --- a/java/com.sap.sse.replication/src/com/sap/sse/replication/impl/ReplicationServlet.java +++ b/java/com.sap.sse.replication/src/com/sap/sse/replication/impl/ReplicationServlet.java @@ -27,6 +27,7 @@ import org.osgi.util.tracker.ServiceTracker; import com.rabbitmq.client.Channel; import com.sap.sse.gateway.AbstractHttpServlet; import com.sap.sse.replication.OperationWithResult; +import com.sap.sse.replication.ReplicaDescriptor; import com.sap.sse.replication.Replicable; import com.sap.sse.replication.ReplicationService; import com.sap.sse.util.impl.CountingOutputStream; @@ -208,6 +209,6 @@ public class ReplicationServlet extends AbstractHttpServlet { UUID uuid = UUID.fromString(req.getParameter(SERVER_UUID)); String additional = req.getParameter(ADDITIONAL_INFORMATION); final String[] replicableIdsAsStrings = req.getParameter(REPLICABLES_IDS_AS_STRINGS_COMMA_SEPARATED).split(","); - return new ReplicaDescriptor(ipAddress, uuid, additional, replicableIdsAsStrings); + return new ReplicaDescriptorImpl(ipAddress, uuid, additional, replicableIdsAsStrings); } } diff --git a/java/com.sap.sse.security.replication.test/META-INF/MANIFEST.MF b/java/com.sap.sse.security.replication.test/META-INF/MANIFEST.MF index 45c97eb20a9..5a9352a6de5 100644 --- a/java/com.sap.sse.security.replication.test/META-INF/MANIFEST.MF +++ b/java/com.sap.sse.security.replication.test/META-INF/MANIFEST.MF @@ -11,10 +11,11 @@ Require-Bundle: org.hamcrest;bundle-version="1.1.0", com.sap.sse.security.userstore.mongodb, com.sap.sse.mongodb, com.rabbitmq.client, - org.mongodb.mongo-java-driver;bundle-version="2.13.0", com.sap.sse.replication.testsupport, com.sap.sse.mail.replication.testsupport, org.objenesis;bundle-version="2.1.0", - org.mockito.mockito-core;bundle-version="1.10.14" + org.mockito.mockito-core;bundle-version="1.10.14", + org.eclipse.orbit.mongodb;bundle-version="3.2.2", + com.sap.sse.replication;bundle-version="1.0.0" Import-Package: org.osgi.util.tracker;version="1.5.1" Automatic-Module-Name: com.sap.sse.security.replication.test diff --git a/java/com.sap.sse.security.replication.test/pom.xml b/java/com.sap.sse.security.replication.test/pom.xml index 537bf71052b..7f6677c9629 100755 --- a/java/com.sap.sse.security.replication.test/pom.xml +++ b/java/com.sap.sse.security.replication.test/pom.xml @@ -9,5 +9,5 @@ 1.0.0-SNAPSHOT com.sap.sse.security.replication.test - eclipse-plugin + eclipse-test-plugin diff --git a/java/com.sap.sse.security.replication.test/src/com/sap/sse/security/replication/test/AbstractSecurityReplicationTest.java b/java/com.sap.sse.security.replication.test/src/com/sap/sse/security/replication/test/AbstractSecurityReplicationTest.java index deddfb934a7..87b2ef7ff88 100755 --- a/java/com.sap.sse.security.replication.test/src/com/sap/sse/security/replication/test/AbstractSecurityReplicationTest.java +++ b/java/com.sap.sse.security.replication.test/src/com/sap/sse/security/replication/test/AbstractSecurityReplicationTest.java @@ -27,7 +27,7 @@ public abstract class AbstractSecurityReplicationTest extends AbstractServerWith protected void persistenceSetUp(boolean dropDB) { mongoDBService = MongoDBService.INSTANCE; if (dropDB) { - mongoDBService.getDB().dropDatabase(); + mongoDBService.getDB().drop(); } } diff --git a/java/com.sap.sse.security.test/META-INF/MANIFEST.MF b/java/com.sap.sse.security.test/META-INF/MANIFEST.MF index f6852feec72..68081ab92ba 100755 --- a/java/com.sap.sse.security.test/META-INF/MANIFEST.MF +++ b/java/com.sap.sse.security.test/META-INF/MANIFEST.MF @@ -8,9 +8,10 @@ Fragment-Host: com.sap.sse.security Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Require-Bundle: org.junit;bundle-version="4.8.2", com.sap.sse.security.userstore.mongodb, - org.mongodb.mongo-java-driver;bundle-version="2.13.0", com.sap.sse.mongodb, com.sap.sse.mail, + org.eclipse.orbit.mongodb;bundle-version="3.2.2", + jcl.over.slf4j;bundle-version="1.6.4", slf4j.api;bundle-version="1.6.4", jcl.over.slf4j;bundle-version="1.6.4", org.mockito.mockito-core;bundle-version="1.10.14", diff --git a/java/com.sap.sse.security.test/src/com/sap/sse/security/jaxrs/api/SecurityResourceTest.java b/java/com.sap.sse.security.test/src/com/sap/sse/security/jaxrs/api/SecurityResourceTest.java index a32fa95b125..54ba1c7a1f0 100755 --- a/java/com.sap.sse.security.test/src/com/sap/sse/security/jaxrs/api/SecurityResourceTest.java +++ b/java/com.sap.sse.security.test/src/com/sap/sse/security/jaxrs/api/SecurityResourceTest.java @@ -46,7 +46,7 @@ public class SecurityResourceTest { @Before public void setUp() throws UserManagementException, MailException, UserGroupManagementException { - PersistenceFactory.INSTANCE.getDefaultMongoObjectFactory().getDatabase().dropDatabase(); + PersistenceFactory.INSTANCE.getDefaultMongoObjectFactory().getDatabase().drop(); ClassLoader oldContextClassLoader = Thread.currentThread().getContextClassLoader(); Thread.currentThread().setContextClassLoader(getClass().getClassLoader()); try { diff --git a/java/com.sap.sse.security.test/src/com/sap/sse/security/test/AccessControlStoreTest.java b/java/com.sap.sse.security.test/src/com/sap/sse/security/test/AccessControlStoreTest.java index 4f0c576424e..91de37f4ebc 100755 --- a/java/com.sap.sse.security.test/src/com/sap/sse/security/test/AccessControlStoreTest.java +++ b/java/com.sap.sse.security.test/src/com/sap/sse/security/test/AccessControlStoreTest.java @@ -13,8 +13,8 @@ import java.util.UUID; import org.junit.Before; import org.junit.Test; -import com.mongodb.DB; import com.mongodb.MongoException; +import com.mongodb.client.MongoDatabase; import com.sap.sse.mongodb.MongoDBConfiguration; import com.sap.sse.mongodb.MongoDBService; import com.sap.sse.security.AccessControlStore; @@ -52,7 +52,7 @@ public class AccessControlStoreTest { public void setUp() throws UnknownHostException, MongoException, UserGroupManagementException { final MongoDBConfiguration dbConfiguration = MongoDBConfiguration.getDefaultTestConfiguration(); final MongoDBService service = dbConfiguration.getService(); - DB db = service.getDB(); + MongoDatabase db = service.getDB(); db.getCollection(CollectionNames.ACCESS_CONTROL_LISTS.name()).drop(); db.getCollection(CollectionNames.OWNERSHIPS.name()).drop(); db.getCollection(CollectionNames.ROLES.name()).drop(); diff --git a/java/com.sap.sse.security.test/src/com/sap/sse/security/test/LoginTest.java b/java/com.sap.sse.security.test/src/com/sap/sse/security/test/LoginTest.java index 65fe543cc53..2511e3a5a5c 100755 --- a/java/com.sap.sse.security.test/src/com/sap/sse/security/test/LoginTest.java +++ b/java/com.sap.sse.security.test/src/com/sap/sse/security/test/LoginTest.java @@ -14,8 +14,8 @@ import org.apache.shiro.SecurityUtils; import org.junit.Before; import org.junit.Test; -import com.mongodb.DB; import com.mongodb.MongoException; +import com.mongodb.client.MongoDatabase; import com.sap.sse.common.Util; import com.sap.sse.mongodb.MongoDBConfiguration; import com.sap.sse.mongodb.MongoDBService; @@ -44,7 +44,7 @@ public class LoginTest { public void setUp() throws UnknownHostException, MongoException, UserGroupManagementException, UserManagementException { final MongoDBConfiguration dbConfiguration = MongoDBConfiguration.getDefaultTestConfiguration(); final MongoDBService service = dbConfiguration.getService(); - DB db = service.getDB(); + MongoDatabase db = service.getDB(); db.getCollection(CollectionNames.USERS.name()).drop(); db.getCollection(CollectionNames.USER_GROUPS.name()).drop(); db.getCollection(CollectionNames.ROLES.name()).drop(); diff --git a/java/com.sap.sse.security.test/src/com/sap/sse/security/test/PreferenceObjectBasedNotificationSetTest.java b/java/com.sap.sse.security.test/src/com/sap/sse/security/test/PreferenceObjectBasedNotificationSetTest.java index 3bf12cc421c..0ed729146e4 100644 --- a/java/com.sap.sse.security.test/src/com/sap/sse/security/test/PreferenceObjectBasedNotificationSetTest.java +++ b/java/com.sap.sse.security.test/src/com/sap/sse/security/test/PreferenceObjectBasedNotificationSetTest.java @@ -14,8 +14,8 @@ import java.util.function.Consumer; import org.junit.Before; import org.junit.Test; -import com.mongodb.DB; import com.mongodb.MongoException; +import com.mongodb.client.MongoDatabase; import com.sap.sse.common.Util; import com.sap.sse.mongodb.MongoDBConfiguration; import com.sap.sse.mongodb.MongoDBService; @@ -29,7 +29,7 @@ import com.sap.sse.security.shared.impl.UserGroup; import com.sap.sse.security.userstore.mongodb.UserStoreImpl; import com.sap.sse.security.userstore.mongodb.impl.CollectionNames; -import junit.framework.Assert; +import org.junit.Assert; public class PreferenceObjectBasedNotificationSetTest { @@ -55,7 +55,7 @@ public class PreferenceObjectBasedNotificationSetTest { public void setUp() throws UnknownHostException, MongoException, UserGroupManagementException, UserManagementException { final MongoDBConfiguration dbConfiguration = MongoDBConfiguration.getDefaultTestConfiguration(); final MongoDBService service = dbConfiguration.getService(); - DB db = service.getDB(); + MongoDatabase db = service.getDB(); db.getCollection(CollectionNames.USERS.name()).drop(); db.getCollection(CollectionNames.SETTINGS.name()).drop(); db.getCollection(CollectionNames.PREFERENCES.name()).drop(); diff --git a/java/com.sap.sse.security.test/src/com/sap/sse/security/test/UserPreferenceObjectAndConverterTest.java b/java/com.sap.sse.security.test/src/com/sap/sse/security/test/UserPreferenceObjectAndConverterTest.java index 4df04861759..9c7ea4ade8d 100644 --- a/java/com.sap.sse.security.test/src/com/sap/sse/security/test/UserPreferenceObjectAndConverterTest.java +++ b/java/com.sap.sse.security.test/src/com/sap/sse/security/test/UserPreferenceObjectAndConverterTest.java @@ -7,8 +7,8 @@ import java.util.UUID; import org.junit.Before; import org.junit.Test; -import com.mongodb.DB; import com.mongodb.MongoException; +import com.mongodb.client.MongoDatabase; import com.sap.sse.mongodb.MongoDBConfiguration; import com.sap.sse.mongodb.MongoDBService; import com.sap.sse.security.shared.UserGroupManagementException; @@ -16,7 +16,7 @@ import com.sap.sse.security.shared.UserManagementException; import com.sap.sse.security.userstore.mongodb.UserStoreImpl; import com.sap.sse.security.userstore.mongodb.impl.CollectionNames; -import junit.framework.Assert; +import org.junit.Assert; public class UserPreferenceObjectAndConverterTest { @@ -38,7 +38,7 @@ public class UserPreferenceObjectAndConverterTest { public void setUp() throws UnknownHostException, MongoException, UserGroupManagementException, UserManagementException { final MongoDBConfiguration dbConfiguration = MongoDBConfiguration.getDefaultTestConfiguration(); final MongoDBService service = dbConfiguration.getService(); - DB db = service.getDB(); + MongoDatabase db = service.getDB(); db.getCollection(CollectionNames.USERS.name()).drop(); db.getCollection(CollectionNames.SETTINGS.name()).drop(); db.getCollection(CollectionNames.PREFERENCES.name()).drop(); diff --git a/java/com.sap.sse.security.test/src/com/sap/sse/security/test/UserStoreWithPersistenceTest.java b/java/com.sap.sse.security.test/src/com/sap/sse/security/test/UserStoreWithPersistenceTest.java index 681f51e5150..aad7152fa32 100644 --- a/java/com.sap.sse.security.test/src/com/sap/sse/security/test/UserStoreWithPersistenceTest.java +++ b/java/com.sap.sse.security.test/src/com/sap/sse/security/test/UserStoreWithPersistenceTest.java @@ -20,8 +20,8 @@ import java.util.stream.Collectors; import org.junit.Before; import org.junit.Test; -import com.mongodb.DB; import com.mongodb.MongoException; +import com.mongodb.client.MongoDatabase; import com.sap.sse.common.Util; import com.sap.sse.common.Util.Pair; import com.sap.sse.mongodb.MongoDBConfiguration; @@ -64,7 +64,7 @@ public class UserStoreWithPersistenceTest { public void setUp() throws UnknownHostException, MongoException, UserGroupManagementException { final MongoDBConfiguration dbConfiguration = MongoDBConfiguration.getDefaultTestConfiguration(); final MongoDBService service = dbConfiguration.getService(); - DB db = service.getDB(); + MongoDatabase db = service.getDB(); db.getCollection(CollectionNames.USERS.name()).drop(); db.getCollection(CollectionNames.USER_GROUPS.name()).drop(); db.getCollection(CollectionNames.SETTINGS.name()).drop(); diff --git a/java/com.sap.sse.security.userstore.mongodb/META-INF/MANIFEST.MF b/java/com.sap.sse.security.userstore.mongodb/META-INF/MANIFEST.MF index b45cb149b35..8f050814a2f 100644 --- a/java/com.sap.sse.security.userstore.mongodb/META-INF/MANIFEST.MF +++ b/java/com.sap.sse.security.userstore.mongodb/META-INF/MANIFEST.MF @@ -14,12 +14,12 @@ Import-Package: com.sap.sse, Bundle-ActivationPolicy: lazy Bundle-ClassPath: . Require-Bundle: com.sap.sse.security, - org.mongodb.mongo-java-driver;bundle-version="2.13.0", org.apache.shiro.core;bundle-version="1.2.2", com.sap.sse.mongodb, com.sap.sse.common, com.sap.sse.security.common, com.sap.sse.shared.android, + org.eclipse.orbit.mongodb;bundle-version="3.2.2", com.sap.sse.replication, com.sap.sse Export-Package: com.sap.sse.security.userstore.mongodb, diff --git a/java/com.sap.sse.security.userstore.mongodb/src/com/sap/sse/security/userstore/mongodb/MongoObjectFactory.java b/java/com.sap.sse.security.userstore.mongodb/src/com/sap/sse/security/userstore/mongodb/MongoObjectFactory.java index 72715ed4baa..ac1161fd849 100644 --- a/java/com.sap.sse.security.userstore.mongodb/src/com/sap/sse/security/userstore/mongodb/MongoObjectFactory.java +++ b/java/com.sap.sse.security.userstore.mongodb/src/com/sap/sse/security/userstore/mongodb/MongoObjectFactory.java @@ -2,7 +2,7 @@ package com.sap.sse.security.userstore.mongodb; import java.util.Map; -import com.mongodb.DB; +import com.mongodb.client.MongoDatabase; import com.sap.sse.security.shared.AccessControlListAnnotation; import com.sap.sse.security.shared.OwnershipAnnotation; import com.sap.sse.security.shared.QualifiedObjectIdentifier; @@ -39,5 +39,5 @@ public interface MongoObjectFactory { public void storePreferences(String username, Map userMap); - public DB getDatabase(); + public MongoDatabase getDatabase(); } diff --git a/java/com.sap.sse.security.userstore.mongodb/src/com/sap/sse/security/userstore/mongodb/impl/DomainObjectFactoryImpl.java b/java/com.sap.sse.security.userstore.mongodb/src/com/sap/sse/security/userstore/mongodb/impl/DomainObjectFactoryImpl.java index a7e384f7a15..cdeceed23c6 100644 --- a/java/com.sap.sse.security.userstore.mongodb/src/com/sap/sse/security/userstore/mongodb/impl/DomainObjectFactoryImpl.java +++ b/java/com.sap.sse.security.userstore.mongodb/src/com/sap/sse/security/userstore/mongodb/impl/DomainObjectFactoryImpl.java @@ -12,11 +12,12 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Level; import java.util.logging.Logger; +import org.bson.Document; +import org.bson.types.Binary; + import com.mongodb.BasicDBList; -import com.mongodb.BasicDBObject; -import com.mongodb.DB; -import com.mongodb.DBCollection; -import com.mongodb.DBObject; +import com.mongodb.client.MongoCollection; +import com.mongodb.client.MongoDatabase; import com.sap.sse.common.Util; import com.sap.sse.security.Social; import com.sap.sse.security.UserGroupProvider; @@ -46,18 +47,18 @@ import com.sap.sse.security.userstore.mongodb.impl.FieldNames.Tenant; public class DomainObjectFactoryImpl implements DomainObjectFactory { private static final Logger logger = Logger.getLogger(DomainObjectFactoryImpl.class.getName()); - private final DB db; + private final MongoDatabase db; - public DomainObjectFactoryImpl(DB db) { + public DomainObjectFactoryImpl(MongoDatabase db) { this.db = db; } @Override public Iterable loadAllAccessControlLists(UserStore userStore) { ArrayList result = new ArrayList<>(); - DBCollection aclCollection = db.getCollection(CollectionNames.ACCESS_CONTROL_LISTS.name()); + MongoCollection aclCollection = db.getCollection(CollectionNames.ACCESS_CONTROL_LISTS.name()); try { - for (DBObject o : aclCollection.find()) { + for (Document o : aclCollection.find()) { result.add(loadAccessControlList(o, userStore)); } } catch (Exception e) { @@ -67,13 +68,13 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { return result; } - private AccessControlListAnnotation loadAccessControlList(DBObject aclDBObject, UserStore userStore) { + private AccessControlListAnnotation loadAccessControlList(Document aclDBObject, UserStore userStore) { final QualifiedObjectIdentifier id = new QualifiedObjectIdentifierImpl((String) aclDBObject.get(FieldNames.AccessControlList.OBJECT_ID.name())); final String displayName = (String) aclDBObject.get(FieldNames.AccessControlList.OBJECT_DISPLAY_NAME.name()); Iterable dbPermissionMap = ((BasicDBList) aclDBObject.get(FieldNames.AccessControlList.PERMISSION_MAP.name())); Map> permissionMap = new HashMap<>(); for (Object dbPermissionMapEntryO : dbPermissionMap) { - DBObject dbPermissionMapEntry = (DBObject) dbPermissionMapEntryO; + Document dbPermissionMapEntry = (Document) dbPermissionMapEntryO; final UUID userGroupKey = (UUID) dbPermissionMapEntry.get(FieldNames.AccessControlList.PERMISSION_MAP_USER_GROUP_ID.name()); final UserGroup userGroup = userStore.getUserGroup(userGroupKey); Set actions = new HashSet<>(); @@ -90,9 +91,9 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { @Override public Iterable loadAllOwnerships(UserStore userStore) { ArrayList result = new ArrayList<>(); - DBCollection ownershipCollection = db.getCollection(CollectionNames.OWNERSHIPS.name()); + MongoCollection ownershipCollection = db.getCollection(CollectionNames.OWNERSHIPS.name()); try { - for (DBObject o : ownershipCollection.find()) { + for (Document o : ownershipCollection.find()) { result.add(loadOwnership(o, userStore)); } } catch (Exception e) { @@ -102,7 +103,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { return result; } - private OwnershipAnnotation loadOwnership(DBObject ownershipDBObject, UserStore userStore) { + private OwnershipAnnotation loadOwnership(Document ownershipDBObject, UserStore userStore) { final QualifiedObjectIdentifier idOfOwnedObject = new QualifiedObjectIdentifierImpl((String) ownershipDBObject.get(FieldNames.Ownership.OBJECT_ID.name())); final String displayNameOfOwnedObject = (String) ownershipDBObject.get(FieldNames.Ownership.OBJECT_DISPLAY_NAME.name()); final String userOwnerName = (String) ownershipDBObject.get(FieldNames.Ownership.OWNER_USERNAME.name()); @@ -115,9 +116,9 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { @Override public Iterable loadAllRoleDefinitions() { ArrayList result = new ArrayList<>(); - DBCollection roleCollection = db.getCollection(CollectionNames.ROLES.name()); + MongoCollection roleCollection = db.getCollection(CollectionNames.ROLES.name()); try { - for (DBObject o : roleCollection.find()) { + for (Document o : roleCollection.find()) { result.add(loadRoleDefinition(o)); } } catch (Exception e) { @@ -127,7 +128,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { return result; } - private RoleDefinition loadRoleDefinition(DBObject roleDefinitionDBObject) { + private RoleDefinition loadRoleDefinition(Document roleDefinitionDBObject) { final String id = (String) roleDefinitionDBObject.get(FieldNames.Role.ID.name()); final String displayName = (String) roleDefinitionDBObject.get(FieldNames.Role.NAME.name()); final Set permissions = new HashSet<>(); @@ -140,9 +141,9 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { @Override public Iterable loadAllUserGroupsAndTenantsWithProxyUsers() { Set userGroups = new HashSet<>(); - DBCollection userGroupCollection = db.getCollection(CollectionNames.USER_GROUPS.name()); + MongoCollection userGroupCollection = db.getCollection(CollectionNames.USER_GROUPS.name()); try { - for (DBObject o : userGroupCollection.find()) { + for (Document o : userGroupCollection.find()) { final UserGroup userGroup = loadUserGroupWithProxyUsers(o); userGroups.add(userGroup); } @@ -153,7 +154,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { return userGroups; } - private UserGroup loadUserGroupWithProxyUsers(DBObject groupDBObject) { + private UserGroup loadUserGroupWithProxyUsers(Document groupDBObject) { final UUID id = (UUID) groupDBObject.get(FieldNames.UserGroup.ID.name()); final String name = (String) groupDBObject.get(FieldNames.UserGroup.NAME.name()); Set users = new HashSet<>(); @@ -183,9 +184,9 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { Map roleDefinitionsById, UserGroup defaultTenantForRoleMigration, Map userGroups, UserGroupProvider userGroupProvider) throws UserManagementException { Map result = new HashMap<>(); - DBCollection userCollection = db.getCollection(CollectionNames.USERS.name()); + MongoCollection userCollection = db.getCollection(CollectionNames.USERS.name()); try { - for (DBObject o : userCollection.find()) { + for (Document o : userCollection.find()) { User userWithProxyRoleUserQualifier = loadUserWithProxyRoleUserQualifiers(o, roleDefinitionsById, defaultTenantForRoleMigration, userGroups, userGroupProvider); result.put(userWithProxyRoleUserQualifier.getName(), userWithProxyRoleUserQualifier); @@ -231,7 +232,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { * {@link Role#getQualifiedForUser() user qualifier} where only the username is set properly to identify the * user in the calling method where ultimately all users will be known. */ - private User loadUserWithProxyRoleUserQualifiers(DBObject userDBObject, + private User loadUserWithProxyRoleUserQualifiers(Document userDBObject, Map roleDefinitionsById, UserGroup defaultTenantForRoleMigration, Map tenants, UserGroupProvider userGroupProvider) { final String name = (String) userDBObject.get(FieldNames.User.NAME.name()); @@ -249,7 +250,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { boolean rolesMigrated = false; // if a role needs migration, user needs an update in the DB if (rolesO != null) { for (Object o : rolesO) { - final Role role = loadRoleWithProxyUserQualifier((DBObject) o, roleDefinitionsById, tenants); + final Role role = loadRoleWithProxyUserQualifier((Document) o, roleDefinitionsById, tenants); if (role != null) { roles.add(role); } else { @@ -287,7 +288,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { } } } - BasicDBList permissionsO = (BasicDBList) userDBObject.get(FieldNames.User.PERMISSIONS.name()); + Iterable permissionsO = (Iterable) userDBObject.get(FieldNames.User.PERMISSIONS.name()); if (permissionsO != null) { for (Object o : permissionsO) { permissions.add((String) o); @@ -298,7 +299,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { final BasicDBList defaultTenantIds = (BasicDBList) userDBObject.get(FieldNames.User.DEFAULT_TENANT_IDS.name()); if (defaultTenantIds != null) { for (Object singleDefaultTenant : defaultTenantIds) { - BasicDBObject singleDefaultTenantObj = (BasicDBObject) singleDefaultTenant; + Document singleDefaultTenantObj = (Document) singleDefaultTenant; String serverName = singleDefaultTenantObj.getString(FieldNames.User.DEFAULT_TENANT_SERVER.name()); UUID groupId = (UUID) singleDefaultTenantObj.get(FieldNames.User.DEFAULT_TENANT_GROUP.name()); UserGroup tenantOfGroup = tenants.get(groupId); @@ -310,7 +311,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { } } } - DBObject accountsMap = (DBObject) userDBObject.get(FieldNames.User.ACCOUNTS.name()); + Document accountsMap = (Document) userDBObject.get(FieldNames.User.ACCOUNTS.name()); Map accounts = createAccountMapFromdDBObject(accountsMap); User result = new UserImpl(name, email, fullName, company, locale, emailValidated == null ? false : emailValidated, passwordResetSecret, validationSecret, defaultTenant, @@ -331,7 +332,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { return result; } - private Role loadRoleWithProxyUserQualifier(DBObject rolesO, Map roleDefinitionsById, + private Role loadRoleWithProxyUserQualifier(Document rolesO, Map roleDefinitionsById, Map userGroups) { final RoleDefinition roleDefinition = roleDefinitionsById.get(rolesO.get(FieldNames.Role.ID.name())); final UUID qualifyingTenantId = (UUID) rolesO.get(FieldNames.Role.QUALIFYING_TENANT_ID.name()); @@ -341,24 +342,23 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { return new Role(roleDefinition, qualifyingTenant, proxyQualifyingUser); } - private Map createAccountMapFromdDBObject(DBObject accountsMap) { + private Map createAccountMapFromdDBObject(Document accountsMap) { Map accounts = new HashMap<>(); - Map accountsM = (Map) accountsMap.toMap(); - for (Entry e : accountsM.entrySet()){ + for (Entry e : accountsMap.entrySet()){ AccountType type = AccountType.valueOf((String) e.getKey()); - Account account = createAccountFromDBObject((DBObject) e.getValue(), type); + Account account = createAccountFromDBObject((Document) e.getValue(), type); accounts.put(type, account); } return accounts; } - private Account createAccountFromDBObject(DBObject dbAccount, final AccountType type) { + private Account createAccountFromDBObject(Document dbAccount, final AccountType type) { switch (type) { case USERNAME_PASSWORD: String name = (String) dbAccount.get(FieldNames.UsernamePassword.NAME.name()); String saltedPassword = (String) dbAccount.get(FieldNames.UsernamePassword.SALTED_PW.name()); - byte[] salt = (byte[]) dbAccount.get(FieldNames.UsernamePassword.SALT.name()); - return new UsernamePasswordAccount(name, saltedPassword, salt); + Binary salt = (Binary) dbAccount.get(FieldNames.UsernamePassword.SALT.name()); + return new UsernamePasswordAccount(name, saltedPassword, salt.getData()); //TODO [D056866] add other Account-types case SOCIAL_USER: SocialUserAccount socialUserAccount = new SocialUserAccount(); @@ -374,12 +374,12 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { @Override public Map loadSettings() { Map result = new HashMap<>(); - DBCollection settingsCollection = db.getCollection(CollectionNames.SETTINGS.name()); + MongoCollection settingsCollection = db.getCollection(CollectionNames.SETTINGS.name()); try { - BasicDBObject query = new BasicDBObject(); + Document query = new Document(); query.put(FieldNames.Settings.NAME.name(), FieldNames.Settings.VALUES.name()); - DBObject settingDBObject = (DBObject) settingsCollection.findOne(query); + Document settingDBObject = settingsCollection.find(query).first(); if (settingDBObject != null) { result = loadSettingMap(settingDBObject); } @@ -397,11 +397,11 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { @Override public Map> loadPreferences() { Map> result = new HashMap<>(); - DBCollection settingsCollection = db.getCollection(CollectionNames.PREFERENCES.name()); + MongoCollection settingsCollection = db.getCollection(CollectionNames.PREFERENCES.name()); try { for (Object o : settingsCollection.find()) { - DBObject usernameAndPreferencesMap = (DBObject) o; - Map userMap = loadPreferencesMap((BasicDBList) usernameAndPreferencesMap.get(FieldNames.Preferences.KEYS_AND_VALUES.name())); + Document usernameAndPreferencesMap = (Document) o; + Map userMap = loadPreferencesMap((Iterable) usernameAndPreferencesMap.get(FieldNames.Preferences.KEYS_AND_VALUES.name())); String username = (String) usernameAndPreferencesMap.get(FieldNames.Preferences.USERNAME.name()); result.put(username, userMap); } @@ -412,10 +412,10 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { return result; } - private Map loadPreferencesMap(BasicDBList preferencesDBObject) { + private Map loadPreferencesMap(Iterable preferencesDBObject) { Map result = new HashMap<>(); for (Object o : preferencesDBObject) { - DBObject keyValue = (DBObject) o; + Document keyValue = (Document) o; String key = (String) keyValue.get(FieldNames.Preferences.KEY.name()); String value = (String) keyValue.get(FieldNames.Preferences.VALUE.name()); result.put(key, value); @@ -423,9 +423,9 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { return result; } - private Map loadSettingMap(DBObject settingDBObject) { + private Map loadSettingMap(Document settingDBObject) { Map result = new HashMap<>(); - Map map = ((DBObject) settingDBObject.get(FieldNames.Settings.MAP.name())).toMap(); + Map map = ((Document) settingDBObject.get(FieldNames.Settings.MAP.name())); for (Entry e : map.entrySet()){ String key = (String) e.getKey(); Object value = e.getValue(); @@ -437,12 +437,12 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { @Override public Map> loadSettingTypes() { Map> result = new HashMap>(); - DBCollection settingsCollection = db.getCollection(CollectionNames.SETTINGS.name()); + MongoCollection settingsCollection = db.getCollection(CollectionNames.SETTINGS.name()); try { - BasicDBObject query = new BasicDBObject(); + Document query = new Document(); query.put(FieldNames.Settings.NAME.name(), FieldNames.Settings.TYPES.name()); - DBObject settingTypesDBObject = settingsCollection.findOne(query); + Document settingTypesDBObject = settingsCollection.find(query).first(); if (settingTypesDBObject != null) { result = loadSettingTypesMap(settingTypesDBObject); } @@ -457,17 +457,16 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { return result; } - private Map> loadSettingTypesMap(DBObject settingTypesDBObject) { + private Map> loadSettingTypesMap(Document settingTypesDBObject) { Map> result = new HashMap<>(); - Map map = ((DBObject) settingTypesDBObject.get(FieldNames.Settings.MAP.name())).toMap(); + Map map = (Document) settingTypesDBObject.get(FieldNames.Settings.MAP.name()); for (Entry e : map.entrySet()){ String key = (String) e.getKey(); Class value = null; try { value = Class.forName((String) e.getValue()); } catch (ClassNotFoundException e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); + logger.log(Level.WARNING, "Exception trying to load settings types map", e); } result.put(key, value); } diff --git a/java/com.sap.sse.security.userstore.mongodb/src/com/sap/sse/security/userstore/mongodb/impl/MongoObjectFactoryImpl.java b/java/com.sap.sse.security.userstore.mongodb/src/com/sap/sse/security/userstore/mongodb/impl/MongoObjectFactoryImpl.java index 078b15f59b0..3ebf56d0d29 100644 --- a/java/com.sap.sse.security.userstore.mongodb/src/com/sap/sse/security/userstore/mongodb/impl/MongoObjectFactoryImpl.java +++ b/java/com.sap.sse.security.userstore.mongodb/src/com/sap/sse/security/userstore/mongodb/impl/MongoObjectFactoryImpl.java @@ -6,12 +6,13 @@ import java.util.Map; import java.util.Map.Entry; import java.util.Set; +import org.bson.Document; + import com.mongodb.BasicDBList; -import com.mongodb.BasicDBObject; -import com.mongodb.DB; -import com.mongodb.DBCollection; -import com.mongodb.DBObject; import com.mongodb.WriteConcern; +import com.mongodb.client.MongoCollection; +import com.mongodb.client.MongoDatabase; +import com.mongodb.client.model.UpdateOptions; import com.sap.sse.security.Social; import com.sap.sse.security.shared.AccessControlListAnnotation; import com.sap.sse.security.shared.Account; @@ -31,28 +32,28 @@ import com.sap.sse.security.userstore.mongodb.MongoObjectFactory; public class MongoObjectFactoryImpl implements MongoObjectFactory { - private final DB db; + private final MongoDatabase db; - public MongoObjectFactoryImpl(DB db) { + public MongoObjectFactoryImpl(MongoDatabase db) { this.db = db; } @Override - public DB getDatabase() { + public MongoDatabase getDatabase() { return db; } @Override public void storeAccessControlList(AccessControlListAnnotation acl) { - DBCollection aclCollection = db.getCollection(CollectionNames.ACCESS_CONTROL_LISTS.name()); - aclCollection.createIndex(new BasicDBObject(FieldNames.AccessControlList.OBJECT_ID.name(), 1)); - DBObject dbACL = new BasicDBObject(); - DBObject query = new BasicDBObject(FieldNames.AccessControlList.OBJECT_ID.name(), acl.getIdOfAnnotatedObject().toString()); + MongoCollection aclCollection = db.getCollection(CollectionNames.ACCESS_CONTROL_LISTS.name()); + aclCollection.createIndex(new Document(FieldNames.AccessControlList.OBJECT_ID.name(), 1)); + Document dbACL = new Document(); + Document query = new Document(FieldNames.AccessControlList.OBJECT_ID.name(), acl.getIdOfAnnotatedObject().toString()); dbACL.put(FieldNames.AccessControlList.OBJECT_ID.name(), acl.getIdOfAnnotatedObject().toString()); dbACL.put(FieldNames.AccessControlList.OBJECT_DISPLAY_NAME.name(), acl.getDisplayNameOfAnnotatedObject()); BasicDBList permissionMap = new BasicDBList(); for (Entry> entry : acl.getAnnotation().getActionsByUserGroup().entrySet()) { - DBObject permissionMapEntry = new BasicDBObject(); + Document permissionMapEntry = new Document(); permissionMapEntry.put(FieldNames.AccessControlList.PERMISSION_MAP_USER_GROUP_ID.name(), entry.getKey().getId()); final BasicDBList dbActions = new BasicDBList(); dbActions.addAll(entry.getValue()); @@ -60,44 +61,44 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { permissionMap.add(permissionMapEntry); } dbACL.put(FieldNames.AccessControlList.PERMISSION_MAP.name(), permissionMap); - aclCollection.update(query, dbACL, /* upsrt */true, /* multi */false, WriteConcern.SAFE); + aclCollection.withWriteConcern(WriteConcern.ACKNOWLEDGED).replaceOne(query, dbACL, new UpdateOptions().upsert(true)); } @Override public void deleteAccessControlList(QualifiedObjectIdentifier idOfAccessControlledObject, AccessControlList acl) { - DBCollection aclCollection = db.getCollection(CollectionNames.ACCESS_CONTROL_LISTS.name()); - DBObject dbACL = new BasicDBObject(); + MongoCollection aclCollection = db.getCollection(CollectionNames.ACCESS_CONTROL_LISTS.name()); + Document dbACL = new Document(); dbACL.put(FieldNames.AccessControlList.OBJECT_ID.name(), idOfAccessControlledObject.toString()); - aclCollection.remove(dbACL); + aclCollection.deleteOne(dbACL); } @Override public void storeOwnership(OwnershipAnnotation owner) { - DBCollection ownershipCollection = db.getCollection(CollectionNames.OWNERSHIPS.name()); - ownershipCollection.createIndex(new BasicDBObject(FieldNames.Ownership.OBJECT_ID.name(), 1)); - DBObject dbOwnership = new BasicDBObject(); - DBObject query = new BasicDBObject(FieldNames.Ownership.OBJECT_ID.name(), owner.getIdOfAnnotatedObject().toString()); + MongoCollection ownershipCollection = db.getCollection(CollectionNames.OWNERSHIPS.name()); + ownershipCollection.createIndex(new Document(FieldNames.Ownership.OBJECT_ID.name(), 1)); + Document dbOwnership = new Document(); + Document query = new Document(FieldNames.Ownership.OBJECT_ID.name(), owner.getIdOfAnnotatedObject().toString()); dbOwnership.put(FieldNames.Ownership.OBJECT_ID.name(), owner.getIdOfAnnotatedObject().toString()); dbOwnership.put(FieldNames.Ownership.OWNER_USERNAME.name(), owner.getAnnotation().getUserOwner()==null?null:owner.getAnnotation().getUserOwner().getName()); dbOwnership.put(FieldNames.Ownership.TENANT_OWNER_ID.name(), owner.getAnnotation().getTenantOwner()==null?null:owner.getAnnotation().getTenantOwner().getId()); dbOwnership.put(FieldNames.Ownership.OBJECT_DISPLAY_NAME.name(), owner.getDisplayNameOfAnnotatedObject()); - ownershipCollection.update(query, dbOwnership, /* upsrt */true, /* multi */false, WriteConcern.SAFE); + ownershipCollection.withWriteConcern(WriteConcern.ACKNOWLEDGED).replaceOne(query, dbOwnership, new UpdateOptions().upsert(true)); } @Override public void deleteOwnership(QualifiedObjectIdentifier ownedObjectId, Ownership ownership) { - DBCollection ownershipCollection = db.getCollection(CollectionNames.OWNERSHIPS.name()); - DBObject dbOwnership = new BasicDBObject(); + MongoCollection ownershipCollection = db.getCollection(CollectionNames.OWNERSHIPS.name()); + Document dbOwnership = new Document(); dbOwnership.put(FieldNames.Ownership.OBJECT_ID.name(), ownedObjectId.toString()); - ownershipCollection.remove(dbOwnership); + ownershipCollection.deleteOne(dbOwnership); } @Override public void storeRoleDefinition(RoleDefinition role) { - DBCollection roleCollection = db.getCollection(CollectionNames.ROLES.name()); - roleCollection.createIndex(new BasicDBObject(FieldNames.Role.ID.name(), 1)); - DBObject dbRole = new BasicDBObject(); - DBObject query = new BasicDBObject(FieldNames.Role.ID.name(), role.getId().toString()); + MongoCollection roleCollection = db.getCollection(CollectionNames.ROLES.name()); + roleCollection.createIndex(new Document(FieldNames.Role.ID.name(), 1)); + Document dbRole = new Document(); + Document query = new Document(FieldNames.Role.ID.name(), role.getId().toString()); dbRole.put(FieldNames.Role.ID.name(), role.getId().toString()); dbRole.put(FieldNames.Role.NAME.name(), role.getName()); HashSet stringPermissions = new HashSet<>(); @@ -105,19 +106,19 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { stringPermissions.add(permission.toString()); } dbRole.put(FieldNames.Role.PERMISSIONS.name(), stringPermissions); - roleCollection.update(query, dbRole, /* upsrt */true, /* multi */false, WriteConcern.SAFE); + roleCollection.withWriteConcern(WriteConcern.ACKNOWLEDGED).replaceOne(query, dbRole, new UpdateOptions().upsert(true)); } @Override public void deleteRoleDefinition(RoleDefinition role) { - DBCollection roleCollection = db.getCollection(CollectionNames.ROLES.name()); - DBObject dbRole = new BasicDBObject(); + MongoCollection roleCollection = db.getCollection(CollectionNames.ROLES.name()); + Document dbRole = new Document(); dbRole.put(FieldNames.Role.ID.name(), role.getId().toString()); - roleCollection.remove(dbRole); + roleCollection.deleteOne(dbRole); } - private DBObject storeRole(Role role) { - final DBObject result = new BasicDBObject(); + private Document storeRole(Role role) { + final Document result = new Document(); result.put(FieldNames.Role.ID.name(), role.getRoleDefinition().getId()); result.put(FieldNames.Role.NAME.name(), role.getRoleDefinition().getName()); // for human readability only result.put(FieldNames.Role.QUALIFYING_TENANT_ID.name(), role.getQualifiedForTenant()==null?null:role.getQualifiedForTenant().getId()); @@ -128,10 +129,10 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { @Override public void storeUserGroup(UserGroup group) { - DBCollection userGroupCollection = db.getCollection(CollectionNames.USER_GROUPS.name()); - userGroupCollection.createIndex(new BasicDBObject(FieldNames.UserGroup.ID.name(), 1)); - DBObject dbUserGroup = new BasicDBObject(); - DBObject query = new BasicDBObject(FieldNames.UserGroup.ID.name(), group.getId()); + MongoCollection userGroupCollection = db.getCollection(CollectionNames.USER_GROUPS.name()); + userGroupCollection.createIndex(new Document(FieldNames.UserGroup.ID.name(), 1)); + Document dbUserGroup = new Document(); + Document query = new Document(FieldNames.UserGroup.ID.name(), group.getId()); dbUserGroup.put(FieldNames.UserGroup.ID.name(), group.getId()); dbUserGroup.put(FieldNames.UserGroup.NAME.name(), group.getName()); BasicDBList dbUsernames = new BasicDBList(); @@ -139,23 +140,23 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { dbUsernames.add(user.getName()); } dbUserGroup.put(FieldNames.UserGroup.USERNAMES.name(), dbUsernames); - userGroupCollection.update(query, dbUserGroup, /* upsrt */true, /* multi */false, WriteConcern.SAFE); + userGroupCollection.withWriteConcern(WriteConcern.ACKNOWLEDGED).replaceOne(query, dbUserGroup, new UpdateOptions().upsert(true)); } @Override public void deleteUserGroup(UserGroup userGroup) { - DBCollection userGroupCollection = db.getCollection(CollectionNames.USER_GROUPS.name()); - DBObject dbUserGroup = new BasicDBObject(); + MongoCollection userGroupCollection = db.getCollection(CollectionNames.USER_GROUPS.name()); + Document dbUserGroup = new Document(); dbUserGroup.put(FieldNames.UserGroup.ID.name(), userGroup.getId()); - userGroupCollection.remove(dbUserGroup); + userGroupCollection.deleteOne(dbUserGroup); } @Override public void storeUser(User user) { - DBCollection usersCollection = db.getCollection(CollectionNames.USERS.name()); - usersCollection.createIndex(new BasicDBObject(FieldNames.User.NAME.name(), 1)); - DBObject dbUser = new BasicDBObject(); - DBObject query = new BasicDBObject(FieldNames.User.NAME.name(), user.getName()); + MongoCollection usersCollection = db.getCollection(CollectionNames.USERS.name()); + usersCollection.createIndex(new Document(FieldNames.User.NAME.name(), 1)); + Document dbUser = new Document(); + Document query = new Document(FieldNames.User.NAME.name(), user.getName()); dbUser.put(FieldNames.User.NAME.name(), user.getName()); dbUser.put(FieldNames.User.EMAIL.name(), user.getEmail()); dbUser.put(FieldNames.User.FULLNAME.name(), user.getFullName()); @@ -178,33 +179,33 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { List defaultTennants = new BasicDBList(); for (Entry entries : user.getDefaultTenantMap().entrySet()) { - BasicDBObject tenant = new BasicDBObject(); + Document tenant = new Document(); tenant.put(FieldNames.User.DEFAULT_TENANT_SERVER.name(), entries.getKey()); tenant.put(FieldNames.User.DEFAULT_TENANT_GROUP.name(), entries.getValue().getId()); defaultTennants.add(tenant); } dbUser.put(FieldNames.User.DEFAULT_TENANT_IDS.name(), defaultTennants); - usersCollection.update(query, dbUser, /* upsrt */true, /* multi */false, WriteConcern.SAFE); + usersCollection.withWriteConcern(WriteConcern.ACKNOWLEDGED).replaceOne(query, dbUser, new UpdateOptions().upsert(true)); } @Override public void deleteUser(User user) { - DBCollection usersCollection = db.getCollection(CollectionNames.USERS.name()); - DBObject dbUser = new BasicDBObject(); + MongoCollection usersCollection = db.getCollection(CollectionNames.USERS.name()); + Document dbUser = new Document(); dbUser.put(FieldNames.User.NAME.name(), user.getName()); - usersCollection.remove(dbUser); + usersCollection.deleteOne(dbUser); } - private DBObject createAccountMapObject(Map accounts) { - DBObject dbAccounts = new BasicDBObject(); + private Document createAccountMapObject(Map accounts) { + Document dbAccounts = new Document(); for (Entry e : accounts.entrySet()) { dbAccounts.put(e.getKey().name(), createAccountObject(e.getValue())); } return dbAccounts; } - private DBObject createAccountObject(Account a) { - DBObject dbAccount = new BasicDBObject(); + private Document createAccountObject(Account a) { + Document dbAccount = new Document(); if (a instanceof UsernamePasswordAccount) { UsernamePasswordAccount upa = (UsernamePasswordAccount) a; dbAccount.put(FieldNames.UsernamePassword.NAME.name(), upa.getName()); @@ -222,55 +223,53 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { @Override public void storeSettings(Map settings) { - DBCollection settingCollection = db.getCollection(CollectionNames.SETTINGS.name()); - settingCollection.createIndex(new BasicDBObject(FieldNames.Settings.NAME.name(), 1)); - DBObject dbSettings = new BasicDBObject(); - DBObject query = new BasicDBObject(FieldNames.Settings.NAME.name(), FieldNames.Settings.VALUES.name()); + MongoCollection settingCollection = db.getCollection(CollectionNames.SETTINGS.name()); + settingCollection.createIndex(new Document(FieldNames.Settings.NAME.name(), 1)); + Document dbSettings = new Document(); + Document query = new Document(FieldNames.Settings.NAME.name(), FieldNames.Settings.VALUES.name()); dbSettings.put(FieldNames.Settings.NAME.name(), FieldNames.Settings.VALUES.name()); dbSettings.put(FieldNames.Settings.MAP.name(), createSettingsMapObject(settings)); - - settingCollection.update(query, dbSettings, /* upsrt */true, /* multi */false, WriteConcern.SAFE); + settingCollection.withWriteConcern(WriteConcern.ACKNOWLEDGED).replaceOne(query, dbSettings, new UpdateOptions().upsert(true)); } @Override public void storePreferences(String username, Map userMap) { - DBCollection settingCollection = db.getCollection(CollectionNames.PREFERENCES.name()); - settingCollection.createIndex(new BasicDBObject(FieldNames.Preferences.USERNAME.name(), 1)); + MongoCollection settingCollection = db.getCollection(CollectionNames.PREFERENCES.name()); + settingCollection.createIndex(new Document(FieldNames.Preferences.USERNAME.name(), 1)); BasicDBList dbSettings = new BasicDBList(); for (Entry e : userMap.entrySet()) { - DBObject entry = new BasicDBObject(); + Document entry = new Document(); entry.put(FieldNames.Preferences.KEY.name(), e.getKey()); entry.put(FieldNames.Preferences.VALUE.name(), e.getValue()); dbSettings.add(entry); } - DBObject query = new BasicDBObject(FieldNames.Preferences.USERNAME.name(), username); - DBObject update = new BasicDBObject(FieldNames.Preferences.KEYS_AND_VALUES.name(), dbSettings); + Document query = new Document(FieldNames.Preferences.USERNAME.name(), username); + Document update = new Document(FieldNames.Preferences.KEYS_AND_VALUES.name(), dbSettings); update.put(FieldNames.Preferences.USERNAME.name(), username); - settingCollection.update(query, update, /* upsrt */true, /* multi */false, WriteConcern.SAFE); + settingCollection.withWriteConcern(WriteConcern.ACKNOWLEDGED).replaceOne(query, update, new UpdateOptions().upsert(true)); } @Override public void storeSettingTypes(Map> settingTypes) { - DBCollection settingCollection = db.getCollection(CollectionNames.SETTINGS.name()); - settingCollection.createIndex(new BasicDBObject(FieldNames.Settings.NAME.name(), 1)); - DBObject dbSettingTypes = new BasicDBObject(); - DBObject query = new BasicDBObject(FieldNames.Settings.NAME.name(), FieldNames.Settings.TYPES.name()); + MongoCollection settingCollection = db.getCollection(CollectionNames.SETTINGS.name()); + settingCollection.createIndex(new Document(FieldNames.Settings.NAME.name(), 1)); + Document dbSettingTypes = new Document(); + Document query = new Document(FieldNames.Settings.NAME.name(), FieldNames.Settings.TYPES.name()); dbSettingTypes.put(FieldNames.Settings.NAME.name(), FieldNames.Settings.TYPES.name()); dbSettingTypes.put(FieldNames.Settings.MAP.name(), createSettingTypesMapObject(settingTypes)); - - settingCollection.update(query, dbSettingTypes, /* upsrt */true, /* multi */false, WriteConcern.SAFE); + settingCollection.withWriteConcern(WriteConcern.ACKNOWLEDGED).replaceOne(query, dbSettingTypes, new UpdateOptions().upsert(true)); } - private DBObject createSettingsMapObject(Map settings) { - DBObject dbSettings = new BasicDBObject(); + private Document createSettingsMapObject(Map settings) { + Document dbSettings = new Document(); for (Entry e : settings.entrySet()) { dbSettings.put(e.getKey(), e.getValue()); } return dbSettings; } - private DBObject createSettingTypesMapObject(Map> settingTypes) { - DBObject dbSettingTypes = new BasicDBObject(); + private Document createSettingTypesMapObject(Map> settingTypes) { + Document dbSettingTypes = new Document(); for (Entry> e : settingTypes.entrySet()) { dbSettingTypes.put(e.getKey(), e.getValue().getName()); } diff --git a/java/com.sap.sse.security/META-INF/MANIFEST.MF b/java/com.sap.sse.security/META-INF/MANIFEST.MF index ea878f11ec5..e3b743d8ab1 100644 --- a/java/com.sap.sse.security/META-INF/MANIFEST.MF +++ b/java/com.sap.sse.security/META-INF/MANIFEST.MF @@ -28,12 +28,12 @@ Require-Bundle: javax.servlet;bundle-version="3.1.0", org.apache.servicemix.bundles.scribe;bundle-version="1.3.3", com.sap.sse, com.sap.sse.common, - com.sap.sse.replication, com.sap.sse.operationaltransformation, com.sap.sse.security.common, com.sap.sse, com.sap.sse.mail, - com.sap.sse.shared.android + com.sap.sse.shared.android, + com.sap.sse.replication.interfaces;bundle-version="1.0.0";visibility:=reexport Web-ContextPath: /security Export-Package: com.sap.sse.security, com.sap.sse.security.impl;x-friends:="com.sap.sailing.domain.test,com.sap.sailing.server.testsupport", diff --git a/java/com.sap.sse.security/src/com/sap/sse/security/SecurityService.java b/java/com.sap.sse.security/src/com/sap/sse/security/SecurityService.java index 332f83ae745..a55e13b511e 100755 --- a/java/com.sap.sse.security/src/com/sap/sse/security/SecurityService.java +++ b/java/com.sap.sse.security/src/com/sap/sse/security/SecurityService.java @@ -15,7 +15,7 @@ import org.apache.shiro.mgt.SecurityManager; import org.osgi.framework.BundleContext; import com.sap.sse.common.mail.MailException; -import com.sap.sse.replication.impl.ReplicableWithObjectInputStream; +import com.sap.sse.replication.ReplicableWithObjectInputStream; import com.sap.sse.security.impl.ReplicableSecurityService; import com.sap.sse.security.operations.SecurityOperation; import com.sap.sse.security.shared.AccessControlListAnnotation; diff --git a/java/com.sap.sse.security/src/com/sap/sse/security/impl/SecurityServiceImpl.java b/java/com.sap.sse.security/src/com/sap/sse/security/impl/SecurityServiceImpl.java index f477162b8b9..1ef7e37d0cc 100644 --- a/java/com.sap.sse.security/src/com/sap/sse/security/impl/SecurityServiceImpl.java +++ b/java/com.sap.sse.security/src/com/sap/sse/security/impl/SecurityServiceImpl.java @@ -79,8 +79,8 @@ import com.sap.sse.common.mail.MailException; import com.sap.sse.mail.MailService; import com.sap.sse.replication.OperationExecutionListener; import com.sap.sse.replication.OperationWithResult; +import com.sap.sse.replication.OperationWithResultWithIdWrapper; import com.sap.sse.replication.ReplicationMasterDescriptor; -import com.sap.sse.replication.impl.OperationWithResultWithIdWrapper; import com.sap.sse.security.AccessControlStore; import com.sap.sse.security.Action; import com.sap.sse.security.ActionWithResult; diff --git a/java/com.sap.sse.test/src/com/sap/see/pairinglist/test/PairingListTemplateFactoryTest.java b/java/com.sap.sse.test/src/com/sap/see/pairinglist/test/PairingListTemplateFactoryTest.java index 995329c6bb5..143b3743282 100644 --- a/java/com.sap.sse.test/src/com/sap/see/pairinglist/test/PairingListTemplateFactoryTest.java +++ b/java/com.sap.sse.test/src/com/sap/see/pairinglist/test/PairingListTemplateFactoryTest.java @@ -12,7 +12,7 @@ import org.junit.Test; import com.sap.sse.pairinglist.PairingListTemplate; import com.sap.sse.pairinglist.impl.PairingListTemplateFactoryImpl; -import junit.framework.Assert; +import org.junit.Assert; public class PairingListTemplateFactoryTest { diff --git a/java/com.sap.sse.test/src/com/sap/see/pairinglist/test/PairingListTemplateTest.java b/java/com.sap.sse.test/src/com/sap/see/pairinglist/test/PairingListTemplateTest.java index 7d3752b9fe3..165e511eeb6 100644 --- a/java/com.sap.sse.test/src/com/sap/see/pairinglist/test/PairingListTemplateTest.java +++ b/java/com.sap.sse.test/src/com/sap/see/pairinglist/test/PairingListTemplateTest.java @@ -8,7 +8,7 @@ import org.junit.Test; import com.sap.sse.pairinglist.impl.PairingListTemplateImpl; -import junit.framework.Assert; +import org.junit.Assert; public class PairingListTemplateTest extends PairingListTemplateImpl { diff --git a/java/com.sap.sse.test/src/com/sap/sse/test/ThreadPoolWithExceptionsTest.java b/java/com.sap.sse.test/src/com/sap/sse/test/ThreadPoolWithExceptionsTest.java index 441bcd44f43..fcf6891e97b 100755 --- a/java/com.sap.sse.test/src/com/sap/sse/test/ThreadPoolWithExceptionsTest.java +++ b/java/com.sap.sse.test/src/com/sap/sse/test/ThreadPoolWithExceptionsTest.java @@ -23,7 +23,7 @@ import com.sap.sse.util.impl.ThreadFactoryWithPriority; * */ public class ThreadPoolWithExceptionsTest { - @Rule public Timeout threadPoolWithExceptionsTestTimeout = new Timeout(10 * 1000); // 10s timeout + @Rule public Timeout threadPoolWithExceptionsTestTimeout = Timeout.millis(10 * 1000); // 10s timeout private static final Logger logger = Logger.getLogger(ThreadPoolWithExceptionsTest.class.getName()); diff --git a/java/net.sf.marineapi.test/src/net/sf/marineapi/nmea/parser/MHUTest.java b/java/net.sf.marineapi.test/src/net/sf/marineapi/nmea/parser/MHUTest.java index 6d3357b43c5..fbad5f2e519 100755 --- a/java/net.sf.marineapi.test/src/net/sf/marineapi/nmea/parser/MHUTest.java +++ b/java/net.sf.marineapi.test/src/net/sf/marineapi/nmea/parser/MHUTest.java @@ -26,7 +26,7 @@ import net.sf.marineapi.nmea.sentence.TalkerId; import org.junit.Before; import org.junit.Test; -import static junit.framework.Assert.assertEquals; +import static org.junit.Assert.assertEquals; /** * MHU parser tests. diff --git a/java/pom.xml b/java/pom.xml index 5759056ba9c..593b6f0c713 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -95,6 +95,7 @@ com.sap.sse.security.userstore.mongodb com.sap.sse.operationaltransformation com.sap.sse.replication + com.sap.sse.replication.interfaces com.sap.sse.threadmanager com.sap.sse.filestorage com.sap.sse.feature @@ -127,6 +128,7 @@ com.sap.sailing.expeditionconnector com.sap.sailing.expeditionconnector.persistence com.sap.sailing.server + com.sap.sailing.server.interface com.sap.sailing.server.gateway com.sap.sailing.server.gateway.serialization com.sap.sailing.www