Merge branch 'master' into permission-vertical

# Conflicts:
#	java/com.sap.sailing.domain.persistence/META-INF/MANIFEST.MF
#	java/com.sap.sailing.domain.racelogtrackingadapter/META-INF/MANIFEST.MF
#	java/com.sap.sailing.domain.swisstimingadapter.persistence/META-INF/MANIFEST.MF
#	java/com.sap.sailing.domain.swisstimingadapter.persistence/src/com/sap/sailing/domain/swisstimingadapter/persistence/impl/SwissTimingAdapterPersistenceImpl.java
#	java/com.sap.sailing.domain.swisstimingadapter.test/META-INF/MANIFEST.MF
#	java/com.sap.sailing.domain.tractracadapter.persistence/META-INF/MANIFEST.MF
#	java/com.sap.sailing.domain.tractracadapter.persistence/src/com/sap/sailing/domain/tractracadapter/persistence/impl/MongoObjectFactoryImpl.java
#	java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/DataMiningServiceImpl.java
#	java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java
#	java/com.sap.sailing.polars.datamining/META-INF/MANIFEST.MF
#	java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/AbstractJaxRsApiTest.java
#	java/com.sap.sailing.server.interface/src/com/sap/sailing/server/interfaces/RacingEventService.java
#	java/com.sap.sailing.server.replication.test/META-INF/MANIFEST.MF
#	java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/TrackRaceReplicationTest.java
#	java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/TaggingServiceTest.java
#	java/com.sap.sailing.server.testsupport/META-INF/MANIFEST.MF
#	java/com.sap.sailing.server/META-INF/MANIFEST.MF
#	java/com.sap.sailing.server/src/com/sap/sailing/server/impl/Activator.java
#	java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java
#	java/com.sap.sailing.server/src/com/sap/sailing/server/tagging/TaggingServiceImpl.java
#	java/com.sap.sse.mail.replication.testsupport/src/com/sap/sse/mail/replication/testsupport/AbstractMailServiceReplicationTest.java
#	java/com.sap.sse.security.test/META-INF/MANIFEST.MF
#	java/com.sap.sse.security.test/src/com/sap/sse/security/jaxrs/api/SecurityResourceTest.java
#	java/com.sap.sse.security.test/src/com/sap/sse/security/test/UserStoreWithPersistenceTest.java
#	java/com.sap.sse.security.userstore.mongodb/META-INF/MANIFEST.MF
#	java/com.sap.sse.security.userstore.mongodb/src/com/sap/sse/security/userstore/mongodb/MongoObjectFactory.java
#	java/com.sap.sse.security.userstore.mongodb/src/com/sap/sse/security/userstore/mongodb/impl/DomainObjectFactoryImpl.java
#	java/com.sap.sse.security.userstore.mongodb/src/com/sap/sse/security/userstore/mongodb/impl/MongoObjectFactoryImpl.java
#	java/com.sap.sse.security/src/com/sap/sse/security/impl/SecurityServiceImpl.java
This commit is contained in:
Steffen Schaefer
2018-12-17 14:36:37 +01:00
469 changed files with 2501 additions and 2090 deletions
@@ -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
@@ -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}.
@@ -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
@@ -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<Document> propertiesCollection;
private final MongoCollection<Document> 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<String, String> 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<Document> cursor = propertiesCollection.find(query);
Map<String, String> 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));
}
}