added ping mark functionality to adminConsole

This commit is contained in:
Fredrik Teschke committed 2014-03-07 22:42:14 +01:00
1 parent 335e090ebc
commit 9cffd20913
53 files changed
+440 -109

No files matched your search

@@ -22,7 +22,11 @@ Export-Package: com.sap.sailing.domain.persistence,
com.sap.sailing.domain.racelogtrackingadapter.test",
com.sap.sailing.domain.persistence.media,
com.sap.sailing.domain.persistence.racelog.tracking,
com.sap.sailing.domain.persistence.racelog.tracking.impl;x-friends:="com.sap.sailing.domain.racelogtrackingadapter.testsupport,com.sap.sailing.mongodb.test,com.sap.sailing.domain.racelogtrackingadapter.test"
com.sap.sailing.domain.persistence.racelog.tracking.impl;
x-friends:="com.sap.sailing.domain.racelogtrackingadapter.testsupport,
com.sap.sailing.mongodb.test,
com.sap.sailing.domain.racelogtrackingadapter.test,
com.sap.sailing.server"
Bundle-ActivationPolicy: lazy
Import-Package: org.json.simple,
org.json.simple.parser,
@@ -1,46 +1,28 @@
package com.sap.sailing.domain.persistence.impl;
import java.util.Dictionary;
import java.util.HashSet;
import java.util.Hashtable;
import java.util.Set;
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceRegistration;
import com.sap.sailing.domain.common.racelog.tracking.TypeBasedServiceFinder;
import com.sap.sailing.domain.persistence.racelog.tracking.GPSFixMongoHandler;
import com.sap.sailing.domain.persistence.racelog.tracking.impl.GPSFixMovingMongoHandlerImpl;
import com.sap.sailing.domain.persistence.racelog.tracking.impl.GPSFixMongoHandlerImpl;
import com.sap.sailing.domain.tracking.impl.GPSFixImpl;
import com.sap.sailing.domain.tracking.impl.GPSFixMovingImpl;
import com.sap.sailing.mongodb.MongoDBService;
public class Activator implements BundleActivator {
private Set<ServiceRegistration<?>> registrations = new HashSet<>();
@Override
public void start(BundleContext context) throws Exception {
for (CollectionNames name : CollectionNames.values())
MongoDBService.INSTANCE.registerExclusively(CollectionNames.class, name.name());
MongoObjectFactoryImpl mof = new MongoObjectFactoryImpl(null);
DomainObjectFactoryImpl dof = new DomainObjectFactoryImpl(null, null);
Dictionary<String, String> properties = new Hashtable<String, String>();
properties.put(TypeBasedServiceFinder.TYPE, GPSFixImpl.class.getName());
registrations.add(context.registerService(GPSFixMongoHandler.class,
new GPSFixMongoHandlerImpl(mof, dof), properties));
properties.put(TypeBasedServiceFinder.TYPE, GPSFixMovingImpl.class.getName());
registrations.add(context.registerService(GPSFixMongoHandler.class,
new GPSFixMovingMongoHandlerImpl(mof, dof), properties));
for (CollectionNames name : CollectionNames.values())
MongoDBService.INSTANCE.registerExclusively(CollectionNames.class, name.name());
}
@Override
public void stop(BundleContext context) throws Exception {
for (ServiceRegistration<?> reg : registrations) {
reg.unregister();
}
registrations.clear();
for (ServiceRegistration<?> reg : registrations) {
reg.unregister();
}
registrations.clear();
}
}
@@ -156,6 +156,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory {
private RaceLogEventRestoreFactory raceLogEventFactory;
private final DomainFactory baseDomainFactory;
private final TypeBasedServiceFinder<DeviceIdentifierMongoHandler> deviceIdentifierServiceFinder;
private final TypeBasedServiceFinderFactory serviceFinderFactory;
/**
* Uses <code>null</code> as the {@link TypeBasedServiceFinder}, meaning that no {@link DeviceIdentifier}s can be loaded
@@ -167,6 +168,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory {
public DomainObjectFactoryImpl(DB db, DomainFactory baseDomainFactory, TypeBasedServiceFinderFactory serviceFinderFactory) {
super();
this.serviceFinderFactory = serviceFinderFactory;
if (serviceFinderFactory != null) {
this.deviceIdentifierServiceFinder = serviceFinderFactory.createServiceFinder(DeviceIdentifierMongoHandler.class);
} else {
@@ -924,7 +926,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory {
BasicDBList dbSeries = (BasicDBList) dbRegatta.get(FieldNames.REGATTA_SERIES.name());
Iterable<Series> series = loadSeries(dbSeries, trackedRegattaRegistry);
RaceLogStore raceLogStore = MongoRaceLogStoreFactory.INSTANCE.getMongoRaceLogStore(
new MongoObjectFactoryImpl(database),
new MongoObjectFactoryImpl(database, serviceFinderFactory),
this);
Serializable courseAreaId = (Serializable) dbRegatta.get(FieldNames.COURSE_AREA_ID.name());
@@ -1087,7 +1089,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory {
List<RaceLogEvent> eventsToMigrate = loadRaceLogEvents(result, query);
if (!eventsToMigrate.isEmpty()) {
// ... migrate them...
MongoRaceLogStoreVisitor storeVisitor = new MongoRaceLogStoreVisitor(identifier, new MongoObjectFactoryImpl(database));
MongoRaceLogStoreVisitor storeVisitor = new MongoRaceLogStoreVisitor(identifier, new MongoObjectFactoryImpl(database, serviceFinderFactory));
for (RaceLogEvent event : eventsToMigrate) {
event.accept(storeVisitor);
}
@@ -1143,8 +1143,10 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory {
public static DBObject storeDeviceId(
TypeBasedServiceFinder<DeviceIdentifierMongoHandler> deviceIdentifierServiceFinder, DeviceIdentifier device)
throws TransformationException, NoCorrespondingServiceRegisteredException{
Object deviceTypeId = deviceIdentifierServiceFinder.findService(device.getIdentifierType()).transformForth(device);
throws TransformationException, NoCorrespondingServiceRegisteredException {
String type = device.getIdentifierType();
DeviceIdentifierMongoHandler handler = deviceIdentifierServiceFinder.findService(type);
Object deviceTypeId = handler.transformForth(device);
return new BasicDBObjectBuilder()
.add(FieldNames.DEVICE_TYPE.name(), device.getIdentifierType())
.add(FieldNames.DEVICE_TYPE_ID.name(), deviceTypeId).get();
@@ -4,6 +4,8 @@ import com.mongodb.BasicDBObject;
import com.mongodb.DBObject;
import com.sap.sailing.domain.common.Position;
import com.sap.sailing.domain.common.TimePoint;
import com.sap.sailing.domain.persistence.DomainObjectFactory;
import com.sap.sailing.domain.persistence.MongoObjectFactory;
import com.sap.sailing.domain.persistence.impl.DomainObjectFactoryImpl;
import com.sap.sailing.domain.persistence.impl.MongoObjectFactoryImpl;
import com.sap.sailing.domain.persistence.racelog.tracking.GPSFixMongoHandler;
@@ -14,9 +16,9 @@ public class GPSFixMongoHandlerImpl implements GPSFixMongoHandler {
MongoObjectFactoryImpl mof;
DomainObjectFactoryImpl dof;
public GPSFixMongoHandlerImpl(MongoObjectFactoryImpl mof, DomainObjectFactoryImpl dof) {
this.mof = mof;
this.dof = dof;
public GPSFixMongoHandlerImpl(MongoObjectFactory mof, DomainObjectFactory dof) {
this.mof = (MongoObjectFactoryImpl) mof;
this.dof = (DomainObjectFactoryImpl) dof;
}
@Override
@@ -5,6 +5,8 @@ import com.mongodb.DBObject;
import com.sap.sailing.domain.common.Position;
import com.sap.sailing.domain.common.SpeedWithBearing;
import com.sap.sailing.domain.common.TimePoint;
import com.sap.sailing.domain.persistence.DomainObjectFactory;
import com.sap.sailing.domain.persistence.MongoObjectFactory;
import com.sap.sailing.domain.persistence.impl.DomainObjectFactoryImpl;
import com.sap.sailing.domain.persistence.impl.MongoObjectFactoryImpl;
import com.sap.sailing.domain.persistence.racelog.tracking.GPSFixMongoHandler;
@@ -16,9 +18,9 @@ public class GPSFixMovingMongoHandlerImpl implements GPSFixMongoHandler {
MongoObjectFactoryImpl mof;
DomainObjectFactoryImpl dof;
public GPSFixMovingMongoHandlerImpl(MongoObjectFactoryImpl mof, DomainObjectFactoryImpl dof) {
this.mof = mof;
this.dof = dof;
public GPSFixMovingMongoHandlerImpl(MongoObjectFactory mof, DomainObjectFactory dof) {
this.mof = (MongoObjectFactoryImpl) mof;
this.dof = (DomainObjectFactoryImpl) dof;
}
@Override