mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-02 10:23:51 +00:00
Merge remote-tracking branch 'server/master'
This commit is contained in:
commit
34873bb0eb
56 files changed
+232
-211
No files matched your search
@@ -14,6 +14,7 @@ Require-Bundle: com.sap.sailing.domain;bundle-version="1.0.0",
|
||||
com.sap.sailing.datamining.shared;bundle-version="1.0.0",
|
||||
com.sap.sse.datamining;bundle-version="1.0.0",
|
||||
com.sap.sse.datamining.shared;bundle-version="1.0.0",
|
||||
com.sap.sse,
|
||||
com.sap.sse.common
|
||||
Bundle-ClassPath: .
|
||||
Bundle-Activator: com.sap.sailing.datamining.Activator
|
||||
|
||||
@@ -14,8 +14,8 @@ import com.sap.sailing.datamining.data.HasTrackedLegOfCompetitorContext;
|
||||
import com.sap.sailing.datamining.data.HasTrackedRaceContext;
|
||||
import com.sap.sse.datamining.DataMiningBundleService;
|
||||
import com.sap.sse.datamining.DataRetrieverChainDefinition;
|
||||
import com.sap.sse.datamining.i18n.DataMiningStringMessages;
|
||||
import com.sap.sse.datamining.impl.i18n.DataMiningStringMessagesImpl;
|
||||
import com.sap.sse.i18n.ResourceBundleStringMessages;
|
||||
import com.sap.sse.i18n.impl.ResourceBundleStringMessagesImpl;
|
||||
|
||||
public class Activator implements BundleActivator, DataMiningBundleService {
|
||||
|
||||
@@ -23,7 +23,7 @@ public class Activator implements BundleActivator, DataMiningBundleService {
|
||||
|
||||
private static Activator INSTANCE;
|
||||
|
||||
private final DataMiningStringMessages sailingDataMiningStringMessages;
|
||||
private final ResourceBundleStringMessages sailingServerStringMessages;
|
||||
private final SailingDataRetrieverChainDefinitions dataRetrieverChainDefinitions;
|
||||
private final SailingClusterGroups clusterGroups;
|
||||
|
||||
@@ -31,7 +31,7 @@ public class Activator implements BundleActivator, DataMiningBundleService {
|
||||
|
||||
public Activator() {
|
||||
dataRetrieverChainDefinitions = new SailingDataRetrieverChainDefinitions();
|
||||
sailingDataMiningStringMessages = new DataMiningStringMessagesImpl(STRING_MESSAGES_BASE_NAME, Activator.class.getClassLoader());
|
||||
sailingServerStringMessages = new ResourceBundleStringMessagesImpl(STRING_MESSAGES_BASE_NAME, Activator.class.getClassLoader());
|
||||
clusterGroups = new SailingClusterGroups();
|
||||
}
|
||||
|
||||
@@ -48,8 +48,8 @@ public class Activator implements BundleActivator, DataMiningBundleService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public DataMiningStringMessages getStringMessages() {
|
||||
return sailingDataMiningStringMessages;
|
||||
public ResourceBundleStringMessages getStringMessages() {
|
||||
return sailingServerStringMessages;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
-13
@@ -78,8 +78,6 @@ import com.sap.sse.common.Util;
|
||||
import com.sap.sse.common.search.KeywordQuery;
|
||||
import com.sap.sse.gwt.client.BuildVersionRetriever;
|
||||
import com.sap.sse.gwt.client.filestorage.FileStorageManagementGwtServiceAsync;
|
||||
import com.sap.sse.gwt.shared.filestorage.FileStorageServiceDTO;
|
||||
import com.sap.sse.gwt.shared.filestorage.FileStorageServicePropertyErrorsDTO;
|
||||
|
||||
/**
|
||||
* The async counterpart of {@link SailingService}
|
||||
@@ -688,15 +686,4 @@ public interface SailingServiceAsync extends BuildVersionRetriever, FileStorageM
|
||||
void createRegattaStructure(Iterable<RegattaDTO> regattaNames,
|
||||
EventDTO newEvent, AsyncCallback<Void> asyncCallback);
|
||||
|
||||
void setFileStorageServiceProperties(String serviceName, Map<String, String> properties,
|
||||
AsyncCallback<Void> callback);
|
||||
|
||||
void getAvailableFileStorageServices(AsyncCallback<FileStorageServiceDTO[]> callback);
|
||||
|
||||
void testFileStorageServiceProperties(String serviceName, AsyncCallback<FileStorageServicePropertyErrorsDTO> callback);
|
||||
|
||||
void setActiveFileStorageService(String serviceName, AsyncCallback<Void> callback);
|
||||
|
||||
void getActiveFileStorageServiceName(AsyncCallback<String> callback);
|
||||
|
||||
}
|
||||
+9
-9
@@ -19,7 +19,6 @@ import com.sap.sse.datamining.Query;
|
||||
import com.sap.sse.datamining.QueryDefinition;
|
||||
import com.sap.sse.datamining.factories.FunctionDTOFactory;
|
||||
import com.sap.sse.datamining.functions.Function;
|
||||
import com.sap.sse.datamining.i18n.DataMiningStringMessages;
|
||||
import com.sap.sse.datamining.impl.DataRetrieverTypeWithInformation;
|
||||
import com.sap.sse.datamining.shared.QueryDefinitionDTO;
|
||||
import com.sap.sse.datamining.shared.QueryResult;
|
||||
@@ -27,6 +26,7 @@ import com.sap.sse.datamining.shared.SSEDataMiningSerializationDummy;
|
||||
import com.sap.sse.datamining.shared.dto.FunctionDTO;
|
||||
import com.sap.sse.datamining.shared.impl.dto.DataRetrieverChainDefinitionDTO;
|
||||
import com.sap.sse.datamining.shared.impl.dto.LocalizedTypeDTO;
|
||||
import com.sap.sse.i18n.ResourceBundleStringMessages;
|
||||
|
||||
public class DataMiningServiceImpl extends RemoteServiceServlet implements DataMiningService {
|
||||
private static final long serialVersionUID = -7951930891674894528L;
|
||||
@@ -96,12 +96,12 @@ public class DataMiningServiceImpl extends RemoteServiceServlet implements DataM
|
||||
}
|
||||
|
||||
private Collection<FunctionDTO> functionsAsFunctionDTOs(Iterable<Function<?>> functions, String localeInfoName) {
|
||||
Locale locale = DataMiningStringMessages.Util.getLocaleFor(localeInfoName);
|
||||
DataMiningStringMessages dataMiningStringMessages = getDataMiningServer().getStringMessages();
|
||||
Locale locale = ResourceBundleStringMessages.Util.getLocaleFor(localeInfoName);
|
||||
ResourceBundleStringMessages ServerStringMessages = getDataMiningServer().getStringMessages();
|
||||
|
||||
Collection<FunctionDTO> functionDTOs = new ArrayList<FunctionDTO>();
|
||||
for (Function<?> function : functions) {
|
||||
functionDTOs.add(functionDTOFactory.createFunctionDTO(function, dataMiningStringMessages, locale));
|
||||
functionDTOs.add(functionDTOFactory.createFunctionDTO(function, ServerStringMessages, locale));
|
||||
}
|
||||
return functionDTOs;
|
||||
}
|
||||
@@ -116,8 +116,8 @@ public class DataMiningServiceImpl extends RemoteServiceServlet implements DataM
|
||||
|
||||
private Collection<DataRetrieverChainDefinitionDTO> dataRetrieverChainDefinitionsAsDTOs(
|
||||
Iterable<DataRetrieverChainDefinition<RacingEventService, ?>> dataRetrieverChainDefinitions, String localeInfoName) {
|
||||
Locale locale = DataMiningStringMessages.Util.getLocaleFor(localeInfoName);
|
||||
DataMiningStringMessages dataMiningStringMessages = getDataMiningServer().getStringMessages();
|
||||
Locale locale = ResourceBundleStringMessages.Util.getLocaleFor(localeInfoName);
|
||||
ResourceBundleStringMessages ServerStringMessages = getDataMiningServer().getStringMessages();
|
||||
|
||||
Collection<DataRetrieverChainDefinitionDTO> DTOs = new ArrayList<>();
|
||||
for (DataRetrieverChainDefinition<RacingEventService, ?> dataRetrieverChainDefinition : dataRetrieverChainDefinitions) {
|
||||
@@ -125,12 +125,12 @@ public class DataMiningServiceImpl extends RemoteServiceServlet implements DataM
|
||||
for (DataRetrieverTypeWithInformation<?, ?> retrieverTypeWithInformation : dataRetrieverChainDefinition.getDataRetrieverTypesWithInformation()) {
|
||||
String typeName = retrieverTypeWithInformation.getRetrievedDataType().getSimpleName();
|
||||
String displayName = retrieverTypeWithInformation.getRetrievedDataTypeMessageKey() != null && !retrieverTypeWithInformation.getRetrievedDataTypeMessageKey().isEmpty() ?
|
||||
dataMiningStringMessages.get(locale, retrieverTypeWithInformation.getRetrievedDataTypeMessageKey()) :
|
||||
ServerStringMessages.get(locale, retrieverTypeWithInformation.getRetrievedDataTypeMessageKey()) :
|
||||
typeName;
|
||||
LocalizedTypeDTO localizedRetrievedDataType = new LocalizedTypeDTO(typeName, displayName);
|
||||
retrievedDataTypesChain.add(localizedRetrievedDataType);
|
||||
}
|
||||
DTOs.add(new DataRetrieverChainDefinitionDTO(dataRetrieverChainDefinition.getID(), dataRetrieverChainDefinition.getLocalizedName(locale, dataMiningStringMessages),
|
||||
DTOs.add(new DataRetrieverChainDefinitionDTO(dataRetrieverChainDefinition.getID(), dataRetrieverChainDefinition.getLocalizedName(locale, ServerStringMessages),
|
||||
dataRetrieverChainDefinition.getDataSourceType().getSimpleName(), retrievedDataTypesChain));
|
||||
}
|
||||
return DTOs;
|
||||
@@ -141,7 +141,7 @@ public class DataMiningServiceImpl extends RemoteServiceServlet implements DataM
|
||||
int retrieverLevel, Iterable<FunctionDTO> dimensionDTOs, String localeInfoName) throws Exception {
|
||||
DataRetrieverChainDefinition<RacingEventService, ?> retrieverChainDefinition = getDataMiningServer().getDataRetrieverChainDefinition(dataRetrieverChainDefinitionDTO.getId());
|
||||
Iterable<Function<?>> dimensions = functionDTOsAsFunctions(dimensionDTOs);
|
||||
Locale locale = DataMiningStringMessages.Util.getLocaleFor(localeInfoName);
|
||||
Locale locale = ResourceBundleStringMessages.Util.getLocaleFor(localeInfoName);
|
||||
Query<Set<Object>> dimensionValuesQuery = getDataMiningServer().createDimensionValuesQuery(getRacingEventService(), retrieverChainDefinition, retrieverLevel, dimensions, locale);
|
||||
QueryResult<Set<Object>> result = dimensionValuesQuery.run();
|
||||
return result;
|
||||
|
||||
+9
-5
@@ -26,6 +26,7 @@ import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.Set;
|
||||
@@ -424,6 +425,7 @@ import com.sap.sse.filestorage.InvalidPropertiesException;
|
||||
import com.sap.sse.gwt.server.filestorage.FileStorageServiceDTOUtils;
|
||||
import com.sap.sse.gwt.shared.filestorage.FileStorageServiceDTO;
|
||||
import com.sap.sse.gwt.shared.filestorage.FileStorageServicePropertyErrorsDTO;
|
||||
import com.sap.sse.i18n.ResourceBundleStringMessages;
|
||||
import com.sap.sse.replication.OperationWithResult;
|
||||
import com.sap.sse.replication.ReplicationFactory;
|
||||
import com.sap.sse.replication.ReplicationMasterDescriptor;
|
||||
@@ -5437,10 +5439,11 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
|
||||
}
|
||||
|
||||
@Override
|
||||
public FileStorageServiceDTO[] getAvailableFileStorageServices() {
|
||||
public FileStorageServiceDTO[] getAvailableFileStorageServices(String localeInfoName) {
|
||||
Locale locale = ResourceBundleStringMessages.Util.getLocaleFor(localeInfoName);
|
||||
List<FileStorageServiceDTO> serviceDtos = new ArrayList<>();
|
||||
for (FileStorageService s : getService().getFileStorageManagementService().getAvailableFileStorageServices()) {
|
||||
serviceDtos.add(FileStorageServiceDTOUtils.convert(s));
|
||||
serviceDtos.add(FileStorageServiceDTOUtils.convert(s, locale));
|
||||
}
|
||||
return serviceDtos.toArray(new FileStorageServiceDTO[0]);
|
||||
}
|
||||
@@ -5458,20 +5461,21 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
|
||||
}
|
||||
|
||||
@Override
|
||||
public FileStorageServicePropertyErrorsDTO testFileStorageServiceProperties(String serviceName) {
|
||||
public FileStorageServicePropertyErrorsDTO testFileStorageServiceProperties(String serviceName, String localeInfoName) {
|
||||
Locale locale = ResourceBundleStringMessages.Util.getLocaleFor(localeInfoName);
|
||||
try {
|
||||
FileStorageService service = getFileStorageService(serviceName);
|
||||
if (service != null) {
|
||||
service.testProperties();
|
||||
}
|
||||
} catch (InvalidPropertiesException e) {
|
||||
return FileStorageServiceDTOUtils.convert(e);
|
||||
return FileStorageServiceDTOUtils.convert(e, locale);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setActiveFileStorageService(String serviceName) {
|
||||
public void setActiveFileStorageService(String serviceName, String localeInfoName) {
|
||||
getService().getFileStorageManagementService().setActiveFileStorageService(getFileStorageService(serviceName));
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -19,7 +19,6 @@ import com.sap.sse.datamining.DataRetrieverChainDefinition;
|
||||
import com.sap.sse.datamining.Query;
|
||||
import com.sap.sse.datamining.components.Processor;
|
||||
import com.sap.sse.datamining.functions.Function;
|
||||
import com.sap.sse.datamining.i18n.DataMiningStringMessages;
|
||||
import com.sap.sse.datamining.impl.components.GroupedDataEntry;
|
||||
import com.sap.sse.datamining.shared.GroupKey;
|
||||
import com.sap.sse.datamining.shared.dto.FunctionDTO;
|
||||
@@ -38,10 +37,11 @@ import com.sap.sse.datamining.test.util.TestsUtil;
|
||||
import com.sap.sse.datamining.test.util.components.TestLegOfCompetitorWithContextRetrievalProcessor;
|
||||
import com.sap.sse.datamining.test.util.components.TestRaceWithContextRetrievalProcessor;
|
||||
import com.sap.sse.datamining.test.util.components.TestRegattaRetrievalProcessor;
|
||||
import com.sap.sse.i18n.ResourceBundleStringMessages;
|
||||
|
||||
public class TestDimensionsValuesQuery {
|
||||
|
||||
private static final DataMiningStringMessages stringMessages = TestsUtil.getTestStringMessagesWithProductiveMessages();
|
||||
private static final ResourceBundleStringMessages stringMessages = TestsUtil.getTestStringMessagesWithProductiveMessages();
|
||||
private static final Locale locale = Locale.ENGLISH;
|
||||
|
||||
private DataRetrieverChainDefinition<Collection<Test_Regatta>, Test_HasLegOfCompetitorContext> dataRetrieverChainDefinition;
|
||||
|
||||
+2
-2
@@ -26,7 +26,6 @@ import com.sap.sse.datamining.components.FilterCriterion;
|
||||
import com.sap.sse.datamining.components.Processor;
|
||||
import com.sap.sse.datamining.factories.ProcessorFactory;
|
||||
import com.sap.sse.datamining.functions.Function;
|
||||
import com.sap.sse.datamining.i18n.DataMiningStringMessages;
|
||||
import com.sap.sse.datamining.impl.components.AbstractSimpleParallelProcessor;
|
||||
import com.sap.sse.datamining.impl.components.AbstractSimpleRetrievalProcessor;
|
||||
import com.sap.sse.datamining.impl.components.GroupedDataEntry;
|
||||
@@ -45,10 +44,11 @@ import com.sap.sse.datamining.test.util.TestsUtil;
|
||||
import com.sap.sse.datamining.test.util.components.BlockingProcessor;
|
||||
import com.sap.sse.datamining.test.util.components.NullProcessor;
|
||||
import com.sap.sse.datamining.test.util.components.Number;
|
||||
import com.sap.sse.i18n.ResourceBundleStringMessages;
|
||||
|
||||
public class TestProcessorQuery {
|
||||
|
||||
private final static DataMiningStringMessages stringMessages = TestsUtil.getTestStringMessagesWithProductiveMessages();
|
||||
private final static ResourceBundleStringMessages stringMessages = TestsUtil.getTestStringMessagesWithProductiveMessages();
|
||||
|
||||
private ProcessorFactory processorFactory;
|
||||
|
||||
|
||||
+1
-1
@@ -15,8 +15,8 @@ import com.sap.sse.datamining.components.Processor;
|
||||
import com.sap.sse.datamining.functions.Function;
|
||||
import com.sap.sse.datamining.impl.functions.MethodWrappingFunction;
|
||||
import com.sap.sse.datamining.shared.GroupKey;
|
||||
import com.sap.sse.datamining.shared.impl.NestingCompoundGroupKey;
|
||||
import com.sap.sse.datamining.shared.impl.GenericGroupKey;
|
||||
import com.sap.sse.datamining.shared.impl.NestingCompoundGroupKey;
|
||||
import com.sap.sse.datamining.test.util.ComponentTestsUtil;
|
||||
import com.sap.sse.datamining.test.util.ConcurrencyTestsUtil;
|
||||
import com.sap.sse.datamining.test.util.FunctionTestsUtil;
|
||||
|
||||
+2
-2
@@ -10,14 +10,14 @@ import org.junit.Test;
|
||||
|
||||
import com.sap.sse.datamining.data.Cluster;
|
||||
import com.sap.sse.datamining.data.ClusterBoundary;
|
||||
import com.sap.sse.datamining.i18n.DataMiningStringMessages;
|
||||
import com.sap.sse.datamining.test.util.TestsUtil;
|
||||
import com.sap.sse.i18n.ResourceBundleStringMessages;
|
||||
|
||||
public class TestClustersWithBoundaries {
|
||||
|
||||
private static final char INFINITE = '\u221e';
|
||||
|
||||
private static final DataMiningStringMessages stringMessages = TestsUtil.getTestStringMessages();
|
||||
private static final ResourceBundleStringMessages stringMessages = TestsUtil.getTestStringMessages();
|
||||
|
||||
private static final Comparator<Integer> comparator = new ComparableComparator<Integer>();
|
||||
private static final ClusterBoundary<Integer> lowerBound = new ComparatorClusterBoundary<Integer>(comparator, 0, ComparisonStrategy.GREATER_EQUALS_THAN);
|
||||
|
||||
+2
-2
@@ -15,12 +15,12 @@ import org.junit.Test;
|
||||
import com.sap.sse.datamining.data.Cluster;
|
||||
import com.sap.sse.datamining.data.ClusterBoundary;
|
||||
import com.sap.sse.datamining.data.ClusterGroup;
|
||||
import com.sap.sse.datamining.i18n.DataMiningStringMessages;
|
||||
import com.sap.sse.datamining.test.util.TestsUtil;
|
||||
import com.sap.sse.i18n.ResourceBundleStringMessages;
|
||||
|
||||
public class TestFixClusterGroup {
|
||||
|
||||
private static final DataMiningStringMessages stringMessages = TestsUtil.getTestStringMessages();
|
||||
private static final ResourceBundleStringMessages stringMessages = TestsUtil.getTestStringMessages();
|
||||
|
||||
private static final Comparator<Integer> comparator = new ComparableComparator<Integer>();
|
||||
private Cluster<Integer> clusterLowerThanZero;
|
||||
|
||||
+2
-2
@@ -12,17 +12,17 @@ import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import com.sap.sse.datamining.functions.Function;
|
||||
import com.sap.sse.datamining.i18n.DataMiningStringMessages;
|
||||
import com.sap.sse.datamining.shared.dto.FunctionDTO;
|
||||
import com.sap.sse.datamining.shared.impl.dto.FunctionDTOImpl;
|
||||
import com.sap.sse.datamining.test.functions.test_classes.SimpleClassWithMarkedMethods;
|
||||
import com.sap.sse.datamining.test.functions.test_classes.Test_ExternalLibraryClass;
|
||||
import com.sap.sse.datamining.test.util.FunctionTestsUtil;
|
||||
import com.sap.sse.datamining.test.util.TestsUtil;
|
||||
import com.sap.sse.i18n.ResourceBundleStringMessages;
|
||||
|
||||
public class TestFunctionDTOConstruction {
|
||||
|
||||
private static final DataMiningStringMessages stringMessages = TestsUtil.getTestStringMessages();
|
||||
private static final ResourceBundleStringMessages stringMessages = TestsUtil.getTestStringMessages();
|
||||
|
||||
private Method dimensionMethod;
|
||||
private Method sideEffectFreeValueMethod;
|
||||
|
||||
+2
-2
@@ -18,7 +18,6 @@ import com.sap.sse.datamining.components.Processor;
|
||||
import com.sap.sse.datamining.functions.Function;
|
||||
import com.sap.sse.datamining.functions.FunctionProvider;
|
||||
import com.sap.sse.datamining.functions.FunctionRegistry;
|
||||
import com.sap.sse.datamining.i18n.DataMiningStringMessages;
|
||||
import com.sap.sse.datamining.impl.SimpleDataRetrieverChainDefinition;
|
||||
import com.sap.sse.datamining.shared.dto.FunctionDTO;
|
||||
import com.sap.sse.datamining.test.functions.registry.test_classes.Test_Named;
|
||||
@@ -35,10 +34,11 @@ import com.sap.sse.datamining.test.util.TestsUtil;
|
||||
import com.sap.sse.datamining.test.util.components.TestLegOfCompetitorWithContextRetrievalProcessor;
|
||||
import com.sap.sse.datamining.test.util.components.TestRaceWithContextRetrievalProcessor;
|
||||
import com.sap.sse.datamining.test.util.components.TestRegattaRetrievalProcessor;
|
||||
import com.sap.sse.i18n.ResourceBundleStringMessages;
|
||||
|
||||
public class TestFunctionProvider {
|
||||
|
||||
private static final DataMiningStringMessages stringMessages = TestsUtil.getTestStringMessagesWithProductiveMessages();
|
||||
private static final ResourceBundleStringMessages stringMessages = TestsUtil.getTestStringMessagesWithProductiveMessages();
|
||||
|
||||
private ExpectedFunctionRegistryUtil functionRegistryUtil;
|
||||
private FunctionRegistry functionRegistry;
|
||||
|
||||
+2
-2
@@ -10,11 +10,11 @@ import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import com.sap.sse.datamining.functions.Function;
|
||||
import com.sap.sse.datamining.i18n.DataMiningStringMessages;
|
||||
import com.sap.sse.datamining.test.functions.test_classes.SimpleClassWithMarkedMethods;
|
||||
import com.sap.sse.datamining.test.functions.test_classes.Test_ExternalLibraryClass;
|
||||
import com.sap.sse.datamining.test.util.FunctionTestsUtil;
|
||||
import com.sap.sse.datamining.test.util.TestsUtil;
|
||||
import com.sap.sse.i18n.ResourceBundleStringMessages;
|
||||
|
||||
public class TestMethodWrappingFunction {
|
||||
|
||||
@@ -49,7 +49,7 @@ public class TestMethodWrappingFunction {
|
||||
|
||||
@Test
|
||||
public void testGetLocalizedName() {
|
||||
DataMiningStringMessages stringMessages = TestsUtil.getTestStringMessages();
|
||||
ResourceBundleStringMessages stringMessages = TestsUtil.getTestStringMessages();
|
||||
|
||||
Function<?> dimension = FunctionTestsUtil.getFunctionFactory().createMethodWrappingFunction(dimensionMethod);
|
||||
String expectedEnglishName = "dimension-english";
|
||||
|
||||
@@ -10,15 +10,16 @@ import java.util.MissingResourceException;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import com.sap.sse.datamining.i18n.DataMiningStringMessages;
|
||||
import com.sap.sse.datamining.test.util.TestsUtil;
|
||||
import com.sap.sse.i18n.ResourceBundleStringMessages;
|
||||
import com.sap.sse.i18n.impl.CompoundResourceBundleStringMessages;
|
||||
|
||||
public class TestI18N {
|
||||
|
||||
private static final String SIMPLE_TEST_MESSAGE_KEY = "SimpleTestMessage";
|
||||
private static final String TEST_MESSAGE_WITH_PARAMETERS = "TestMessageWithParameters";
|
||||
|
||||
private DataMiningStringMessages testStringMessages;
|
||||
private ResourceBundleStringMessages testStringMessages;
|
||||
|
||||
@Before
|
||||
public void initializeBundleManager() {
|
||||
@@ -39,7 +40,7 @@ public class TestI18N {
|
||||
|
||||
@Test
|
||||
public void testDynamicCompoundStringMessages() {
|
||||
CompoundDataMiningStringMessages compoundStringMessages = new CompoundDataMiningStringMessages();
|
||||
CompoundResourceBundleStringMessages compoundStringMessages = new CompoundResourceBundleStringMessages();
|
||||
|
||||
try {
|
||||
compoundStringMessages.get(Locale.ENGLISH, SIMPLE_TEST_MESSAGE_KEY);
|
||||
@@ -59,11 +60,11 @@ public class TestI18N {
|
||||
|
||||
@Test
|
||||
public void testGetLocaleForLocaleInfoName() {
|
||||
assertThat(DataMiningStringMessages.Util.getLocaleFor("default"), is(Locale.ENGLISH));
|
||||
assertThat(DataMiningStringMessages.Util.getLocaleFor("en"), is(Locale.ENGLISH));
|
||||
assertThat(DataMiningStringMessages.Util.getLocaleFor("de"), is(Locale.GERMAN));
|
||||
assertThat(ResourceBundleStringMessages.Util.getLocaleFor("default"), is(Locale.ENGLISH));
|
||||
assertThat(ResourceBundleStringMessages.Util.getLocaleFor("en"), is(Locale.ENGLISH));
|
||||
assertThat(ResourceBundleStringMessages.Util.getLocaleFor("de"), is(Locale.GERMAN));
|
||||
|
||||
assertThat(DataMiningStringMessages.Util.getLocaleFor("Unsupported locale info name"), is(Locale.ENGLISH));
|
||||
assertThat(ResourceBundleStringMessages.Util.getLocaleFor("Unsupported locale info name"), is(Locale.ENGLISH));
|
||||
}
|
||||
|
||||
@Test(expected=MissingResourceException.class)
|
||||
|
||||
+10
-10
@@ -1,30 +1,30 @@
|
||||
package com.sap.sse.datamining.test.util;
|
||||
|
||||
import com.sap.sse.datamining.i18n.DataMiningStringMessages;
|
||||
import com.sap.sse.datamining.impl.i18n.CompoundDataMiningStringMessages;
|
||||
import com.sap.sse.datamining.impl.i18n.DataMiningStringMessagesImpl;
|
||||
import com.sap.sse.i18n.ResourceBundleStringMessages;
|
||||
import com.sap.sse.i18n.impl.CompoundResourceBundleStringMessages;
|
||||
import com.sap.sse.i18n.impl.ResourceBundleStringMessagesImpl;
|
||||
|
||||
public class TestsUtil {
|
||||
|
||||
private static final String TEST_STRING_MESSAGES_BASE_NAME = "stringmessages/Test_StringMessages";
|
||||
private static DataMiningStringMessages TEST_STRING_MESSAGES;
|
||||
private static ResourceBundleStringMessages TEST_STRING_MESSAGES;
|
||||
|
||||
private static final String PRODUCTIVE_STRING_MESSAGES_BASE_NAME = "stringmessages/StringMessages";
|
||||
private static CompoundDataMiningStringMessages EXTENDED_STRING_MESSAGES;
|
||||
private static CompoundResourceBundleStringMessages EXTENDED_STRING_MESSAGES;
|
||||
|
||||
public static DataMiningStringMessages getTestStringMessages() {
|
||||
public static ResourceBundleStringMessages getTestStringMessages() {
|
||||
if (TEST_STRING_MESSAGES == null) {
|
||||
TEST_STRING_MESSAGES = new DataMiningStringMessagesImpl(TEST_STRING_MESSAGES_BASE_NAME, TestsUtil.class.getClassLoader());
|
||||
TEST_STRING_MESSAGES = new ResourceBundleStringMessagesImpl(TEST_STRING_MESSAGES_BASE_NAME, TestsUtil.class.getClassLoader());
|
||||
}
|
||||
|
||||
return TEST_STRING_MESSAGES;
|
||||
}
|
||||
|
||||
public static DataMiningStringMessages getTestStringMessagesWithProductiveMessages() {
|
||||
public static ResourceBundleStringMessages getTestStringMessagesWithProductiveMessages() {
|
||||
if (EXTENDED_STRING_MESSAGES == null) {
|
||||
EXTENDED_STRING_MESSAGES = new CompoundDataMiningStringMessages();
|
||||
EXTENDED_STRING_MESSAGES = new CompoundResourceBundleStringMessages();
|
||||
EXTENDED_STRING_MESSAGES.addStringMessages(getTestStringMessages());
|
||||
EXTENDED_STRING_MESSAGES.addStringMessages(new DataMiningStringMessagesImpl(PRODUCTIVE_STRING_MESSAGES_BASE_NAME, TestsUtil.class.getClassLoader()));
|
||||
EXTENDED_STRING_MESSAGES.addStringMessages(new ResourceBundleStringMessagesImpl(PRODUCTIVE_STRING_MESSAGES_BASE_NAME, TestsUtil.class.getClassLoader()));
|
||||
}
|
||||
|
||||
return EXTENDED_STRING_MESSAGES;
|
||||
|
||||
@@ -11,17 +11,16 @@ Export-Package: com.sap.sse.datamining,
|
||||
com.sap.sse.datamining.data,
|
||||
com.sap.sse.datamining.factories,
|
||||
com.sap.sse.datamining.functions,
|
||||
com.sap.sse.datamining.i18n,
|
||||
com.sap.sse.datamining.impl,
|
||||
com.sap.sse.datamining.impl.components,
|
||||
com.sap.sse.datamining.impl.components.aggregators,
|
||||
com.sap.sse.datamining.impl.criterias,
|
||||
com.sap.sse.datamining.impl.data,
|
||||
com.sap.sse.datamining.impl.functions,
|
||||
com.sap.sse.datamining.impl.functions.criterias,
|
||||
com.sap.sse.datamining.impl.i18n
|
||||
com.sap.sse.datamining.impl.functions.criterias
|
||||
Require-Bundle: com.sap.sse.datamining.shared;bundle-version="1.0.0",
|
||||
com.sap.sse.common;bundle-version="1.0.0",
|
||||
org.eclipse.osgi
|
||||
org.eclipse.osgi,
|
||||
com.sap.sse
|
||||
Bundle-Activator: com.sap.sse.datamining.impl.DataMiningActivator
|
||||
Bundle-ActivationPolicy: lazy
|
||||
+2
-2
@@ -3,8 +3,8 @@ package com.sap.sse.datamining;
|
||||
import java.util.Locale;
|
||||
|
||||
import com.sap.sse.datamining.functions.Function;
|
||||
import com.sap.sse.datamining.i18n.DataMiningStringMessages;
|
||||
import com.sap.sse.datamining.shared.AdditionalResultData;
|
||||
import com.sap.sse.i18n.ResourceBundleStringMessages;
|
||||
|
||||
/**
|
||||
* These builders are used to collect the additional result data from different sources (e.g. the Processors)
|
||||
@@ -12,7 +12,7 @@ import com.sap.sse.datamining.shared.AdditionalResultData;
|
||||
*/
|
||||
public interface AdditionalResultDataBuilder {
|
||||
|
||||
public AdditionalResultData build(long calculationTimeInNanos, DataMiningStringMessages stringMessages, Locale locale);
|
||||
public AdditionalResultData build(long calculationTimeInNanos, ResourceBundleStringMessages stringMessages, Locale locale);
|
||||
|
||||
public void setRetrievedDataAmount(int retrievedDataAmount);
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
package com.sap.sse.datamining;
|
||||
|
||||
import com.sap.sse.datamining.i18n.DataMiningStringMessages;
|
||||
import com.sap.sse.i18n.ResourceBundleStringMessages;
|
||||
|
||||
public interface DataMiningBundleService {
|
||||
|
||||
public DataMiningStringMessages getStringMessages();
|
||||
public ResourceBundleStringMessages getStringMessages();
|
||||
|
||||
public Iterable<Class<?>> getInternalClassesWithMarkedMethods();
|
||||
public Iterable<Class<?>> getExternalLibraryClasses();
|
||||
|
||||
@@ -7,16 +7,17 @@ import java.util.concurrent.ExecutorService;
|
||||
|
||||
import com.sap.sse.datamining.functions.Function;
|
||||
import com.sap.sse.datamining.functions.FunctionProvider;
|
||||
import com.sap.sse.datamining.i18n.DataMiningStringMessages;
|
||||
import com.sap.sse.datamining.impl.DataRetrieverChainDefinitionProvider;
|
||||
import com.sap.sse.datamining.shared.QueryDefinitionDTO;
|
||||
import com.sap.sse.datamining.shared.dto.FunctionDTO;
|
||||
import com.sap.sse.i18n.ResourceBundleStringMessages;
|
||||
|
||||
|
||||
public interface DataMiningServer {
|
||||
|
||||
public ExecutorService getExecutorService();
|
||||
|
||||
public DataMiningStringMessages getStringMessages();
|
||||
public ResourceBundleStringMessages getStringMessages();
|
||||
|
||||
public FunctionProvider getFunctionProvider();
|
||||
|
||||
|
||||
+2
-2
@@ -6,8 +6,8 @@ import java.util.UUID;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
|
||||
import com.sap.sse.datamining.components.Processor;
|
||||
import com.sap.sse.datamining.i18n.DataMiningStringMessages;
|
||||
import com.sap.sse.datamining.impl.DataRetrieverTypeWithInformation;
|
||||
import com.sap.sse.i18n.ResourceBundleStringMessages;
|
||||
|
||||
public interface DataRetrieverChainDefinition<DataSourceType, DataType> {
|
||||
|
||||
@@ -17,7 +17,7 @@ public interface DataRetrieverChainDefinition<DataSourceType, DataType> {
|
||||
|
||||
public Class<DataType> getRetrievedDataType();
|
||||
|
||||
public String getLocalizedName(Locale locale, DataMiningStringMessages stringMessages);
|
||||
public String getLocalizedName(Locale locale, ResourceBundleStringMessages stringMessages);
|
||||
|
||||
public <ResultType> void startWith(Class<Processor<DataSourceType, ResultType>> retrieverType, Class<ResultType> retrievedDataType, String retrievedDataTypeMessageKey);
|
||||
|
||||
|
||||
+3
-3
@@ -1,12 +1,12 @@
|
||||
package com.sap.sse.datamining;
|
||||
|
||||
import com.sap.sse.datamining.functions.FunctionRegistry;
|
||||
import com.sap.sse.datamining.i18n.DataMiningStringMessages;
|
||||
import com.sap.sse.i18n.ResourceBundleStringMessages;
|
||||
|
||||
public interface ModifiableDataMiningServer extends DataMiningServer {
|
||||
|
||||
public void addStringMessages(DataMiningStringMessages stringMessages);
|
||||
public void removeStringMessages(DataMiningStringMessages stringMessages);
|
||||
public void addStringMessages(ResourceBundleStringMessages stringMessages);
|
||||
public void removeStringMessages(ResourceBundleStringMessages stringMessages);
|
||||
|
||||
public FunctionRegistry getFunctionRegistry();
|
||||
|
||||
|
||||
@@ -2,11 +2,11 @@ package com.sap.sse.datamining.data;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
import com.sap.sse.datamining.i18n.DataMiningStringMessages;
|
||||
import com.sap.sse.i18n.ResourceBundleStringMessages;
|
||||
|
||||
public interface Cluster<ElementType> {
|
||||
|
||||
public String getAsLocalizedString(Locale locale, DataMiningStringMessages stringMessages);
|
||||
public String getAsLocalizedString(Locale locale, ResourceBundleStringMessages stringMessages);
|
||||
|
||||
public boolean isInRange(ElementType value);
|
||||
|
||||
|
||||
@@ -2,12 +2,12 @@ package com.sap.sse.datamining.data;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
import com.sap.sse.datamining.i18n.DataMiningStringMessages;
|
||||
import com.sap.sse.i18n.ResourceBundleStringMessages;
|
||||
|
||||
|
||||
public interface ClusterGroup<ElementType> {
|
||||
|
||||
public String getLocalizedName(Locale locale, DataMiningStringMessages stringMessages);
|
||||
public String getLocalizedName(Locale locale, ResourceBundleStringMessages stringMessages);
|
||||
|
||||
public Cluster<ElementType> getClusterFor(ElementType value);
|
||||
|
||||
|
||||
+2
-2
@@ -5,11 +5,11 @@ import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
import com.sap.sse.datamining.functions.Function;
|
||||
import com.sap.sse.datamining.i18n.DataMiningStringMessages;
|
||||
import com.sap.sse.datamining.shared.annotations.Connector;
|
||||
import com.sap.sse.datamining.shared.annotations.Dimension;
|
||||
import com.sap.sse.datamining.shared.dto.FunctionDTO;
|
||||
import com.sap.sse.datamining.shared.impl.dto.FunctionDTOImpl;
|
||||
import com.sap.sse.i18n.ResourceBundleStringMessages;
|
||||
|
||||
public class FunctionDTOFactory {
|
||||
|
||||
@@ -26,7 +26,7 @@ public class FunctionDTOFactory {
|
||||
* annotation.<br>
|
||||
* If the function has no message key, the function name is used as display name.
|
||||
*/
|
||||
public FunctionDTO createFunctionDTO(Function<?> function, DataMiningStringMessages stringMessages, Locale locale) {
|
||||
public FunctionDTO createFunctionDTO(Function<?> function, ResourceBundleStringMessages stringMessages, Locale locale) {
|
||||
return createFunctionDTO(function, function.getLocalizedName(locale, stringMessages));
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -10,7 +10,6 @@ import java.util.concurrent.ExecutorService;
|
||||
|
||||
import com.sap.sse.datamining.components.Processor;
|
||||
import com.sap.sse.datamining.functions.Function;
|
||||
import com.sap.sse.datamining.i18n.DataMiningStringMessages;
|
||||
import com.sap.sse.datamining.impl.ProcessorQuery;
|
||||
import com.sap.sse.datamining.impl.components.GroupedDataEntry;
|
||||
import com.sap.sse.datamining.impl.components.ParallelByDimensionGroupingProcessor;
|
||||
@@ -22,6 +21,7 @@ import com.sap.sse.datamining.impl.components.aggregators.ParallelGroupedDoubleD
|
||||
import com.sap.sse.datamining.impl.components.aggregators.ParallelGroupedDoubleDataSumAggregationProcessor;
|
||||
import com.sap.sse.datamining.shared.GroupKey;
|
||||
import com.sap.sse.datamining.shared.components.AggregatorType;
|
||||
import com.sap.sse.i18n.ResourceBundleStringMessages;
|
||||
|
||||
public class ProcessorFactory {
|
||||
|
||||
@@ -106,7 +106,7 @@ public class ProcessorFactory {
|
||||
@SuppressWarnings("unchecked")
|
||||
public <DataType> Collection<Processor<DataType, GroupedDataEntry<DataType>>> createGroupingExtractorsForDimensions(Class<DataType> dataType,
|
||||
Processor<GroupedDataEntry<Object>, ?> valueCollector, Iterable<Function<?>> dimensions,
|
||||
DataMiningStringMessages stringMessages, Locale locale) {
|
||||
ResourceBundleStringMessages stringMessages, Locale locale) {
|
||||
Collection<Processor<GroupedDataEntry<Object>, ?>> extractionResultReceivers = new ArrayList<>();
|
||||
extractionResultReceivers.add(valueCollector);
|
||||
|
||||
|
||||
@@ -16,18 +16,18 @@ import com.sap.sse.datamining.QueryDefinition;
|
||||
import com.sap.sse.datamining.components.FilterCriterion;
|
||||
import com.sap.sse.datamining.components.Processor;
|
||||
import com.sap.sse.datamining.functions.Function;
|
||||
import com.sap.sse.datamining.i18n.DataMiningStringMessages;
|
||||
import com.sap.sse.datamining.impl.ProcessorQuery;
|
||||
import com.sap.sse.datamining.impl.components.GroupedDataEntry;
|
||||
import com.sap.sse.datamining.impl.criterias.AndCompoundFilterCriterion;
|
||||
import com.sap.sse.datamining.impl.criterias.CompoundFilterCriterion;
|
||||
import com.sap.sse.datamining.impl.criterias.NullaryFunctionValuesFilterCriterion;
|
||||
import com.sap.sse.datamining.shared.GroupKey;
|
||||
import com.sap.sse.i18n.ResourceBundleStringMessages;
|
||||
|
||||
public class QueryFactory {
|
||||
|
||||
public <DataSourceType, DataType, ResultType> Query<ResultType> createQuery(DataSourceType dataSource, QueryDefinition<DataSourceType, DataType, ResultType> queryDefinition,
|
||||
DataMiningStringMessages stringMessages, ExecutorService executor) {
|
||||
ResourceBundleStringMessages stringMessages, ExecutorService executor) {
|
||||
return new ProcessorQuery<ResultType, DataSourceType>(dataSource, stringMessages, queryDefinition.getLocale()) {
|
||||
@Override
|
||||
protected Processor<DataSourceType, ?> createFirstProcessor() {
|
||||
@@ -80,7 +80,7 @@ public class QueryFactory {
|
||||
public <DataSource> Query<Set<Object>> createDimensionValuesQuery(DataSource dataSource,
|
||||
DataRetrieverChainDefinition<DataSource, ?> dataRetrieverChainDefinition, int retrieverLevel,
|
||||
Iterable<Function<?>> dimensions, Locale locale,
|
||||
DataMiningStringMessages stringMessages, ExecutorService executor) {
|
||||
ResourceBundleStringMessages stringMessages, ExecutorService executor) {
|
||||
return new ProcessorQuery<Set<Object>, DataSource>(dataSource, stringMessages, locale) {
|
||||
@Override
|
||||
protected Processor<DataSource, ?> createFirstProcessor() {
|
||||
|
||||
@@ -3,8 +3,8 @@ package com.sap.sse.datamining.functions;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.util.Locale;
|
||||
|
||||
import com.sap.sse.datamining.i18n.DataMiningStringMessages;
|
||||
import com.sap.sse.datamining.shared.Unit;
|
||||
import com.sap.sse.i18n.ResourceBundleStringMessages;
|
||||
|
||||
public interface Function<ReturnType> {
|
||||
|
||||
@@ -17,12 +17,12 @@ public interface Function<ReturnType> {
|
||||
public String getSimpleName();
|
||||
|
||||
/**
|
||||
* @return <code>true</code>, if the method {@link #getLocalizedName(Locale, DataMiningStringMessages) getLocalizedName} would return something
|
||||
* @return <code>true</code>, if the method {@link #getLocalizedName(Locale, ResourceBundleStringMessages) getLocalizedName} would return something
|
||||
* other than the method {@link #getSimpleName()}.
|
||||
*/
|
||||
public boolean isLocatable();
|
||||
|
||||
public String getLocalizedName(Locale locale, DataMiningStringMessages stringMessages);
|
||||
public String getLocalizedName(Locale locale, ResourceBundleStringMessages stringMessages);
|
||||
|
||||
/**
|
||||
* Tries to invoke the function for the given <code>instance</code> without parameters.
|
||||
|
||||
+2
-2
@@ -22,7 +22,7 @@ import com.sap.sse.datamining.functions.FunctionProvider;
|
||||
import com.sap.sse.datamining.functions.FunctionRegistry;
|
||||
import com.sap.sse.datamining.impl.functions.RegistryFunctionProvider;
|
||||
import com.sap.sse.datamining.impl.functions.SimpleFunctionRegistry;
|
||||
import com.sap.sse.datamining.impl.i18n.DataMiningStringMessagesImpl;
|
||||
import com.sap.sse.i18n.impl.ResourceBundleStringMessagesImpl;
|
||||
|
||||
public class DataMiningActivator implements BundleActivator {
|
||||
|
||||
@@ -44,7 +44,7 @@ public class DataMiningActivator implements BundleActivator {
|
||||
FunctionProvider functionProvider = new RegistryFunctionProvider(functionRegistry);
|
||||
DataRetrieverChainDefinitionRegistry dataRetrieverChainDefinitionRegistry = new SimpleDataRetrieverChainDefinitionRegistry();
|
||||
dataMiningServer = new DataMiningServerImpl(executor, functionRegistry, functionProvider, dataRetrieverChainDefinitionRegistry);
|
||||
dataMiningServer.addStringMessages(new DataMiningStringMessagesImpl(STRING_MESSAGES_BASE_NAME, DataMiningActivator.class.getClassLoader()));
|
||||
dataMiningServer.addStringMessages(new ResourceBundleStringMessagesImpl(STRING_MESSAGES_BASE_NAME, DataMiningActivator.class.getClassLoader()));
|
||||
|
||||
serviceRegistrations = new HashSet<>();
|
||||
}
|
||||
|
||||
+8
-8
@@ -17,14 +17,14 @@ import com.sap.sse.datamining.factories.QueryFactory;
|
||||
import com.sap.sse.datamining.functions.Function;
|
||||
import com.sap.sse.datamining.functions.FunctionProvider;
|
||||
import com.sap.sse.datamining.functions.FunctionRegistry;
|
||||
import com.sap.sse.datamining.i18n.DataMiningStringMessages;
|
||||
import com.sap.sse.datamining.impl.i18n.CompoundDataMiningStringMessages;
|
||||
import com.sap.sse.datamining.shared.QueryDefinitionDTO;
|
||||
import com.sap.sse.datamining.shared.dto.FunctionDTO;
|
||||
import com.sap.sse.i18n.ResourceBundleStringMessages;
|
||||
import com.sap.sse.i18n.impl.CompoundResourceBundleStringMessages;
|
||||
|
||||
public class DataMiningServerImpl implements ModifiableDataMiningServer {
|
||||
|
||||
private final CompoundDataMiningStringMessages stringMessages;
|
||||
private final CompoundResourceBundleStringMessages stringMessages;
|
||||
private final ExecutorService executorService;
|
||||
|
||||
private final QueryFactory queryFactory;
|
||||
@@ -35,7 +35,7 @@ public class DataMiningServerImpl implements ModifiableDataMiningServer {
|
||||
private DataRetrieverChainDefinitionRegistry dataRetrieverChainDefinitionRegistry;
|
||||
|
||||
public DataMiningServerImpl(ExecutorService executorService, FunctionRegistry functionRegistry, FunctionProvider functionProvider, DataRetrieverChainDefinitionRegistry dataRetrieverChainDefinitionRegistry) {
|
||||
this.stringMessages = new CompoundDataMiningStringMessages();
|
||||
this.stringMessages = new CompoundResourceBundleStringMessages();
|
||||
this.executorService = executorService;
|
||||
this.queryFactory = new QueryFactory();
|
||||
this.functionRegistry = functionRegistry;
|
||||
@@ -49,17 +49,17 @@ public class DataMiningServerImpl implements ModifiableDataMiningServer {
|
||||
}
|
||||
|
||||
@Override
|
||||
public DataMiningStringMessages getStringMessages() {
|
||||
public ResourceBundleStringMessages getStringMessages() {
|
||||
return stringMessages;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addStringMessages(DataMiningStringMessages stringMessages) {
|
||||
public void addStringMessages(ResourceBundleStringMessages stringMessages) {
|
||||
this.stringMessages.addStringMessages(stringMessages);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeStringMessages(DataMiningStringMessages stringMessages) {
|
||||
public void removeStringMessages(ResourceBundleStringMessages stringMessages) {
|
||||
this.stringMessages.removeStringMessages(stringMessages);
|
||||
}
|
||||
|
||||
@@ -154,7 +154,7 @@ public class DataMiningServerImpl implements ModifiableDataMiningServer {
|
||||
public <DataSourceType, DataType, ResultType> QueryDefinition<DataSourceType, DataType, ResultType> getQueryDefinitionForDTO(QueryDefinitionDTO queryDefinitionDTO) {
|
||||
ModifiableQueryDefinition<DataSourceType, DataType, ResultType> queryDefinition = null;
|
||||
|
||||
Locale locale = DataMiningStringMessages.Util.getLocaleFor(queryDefinitionDTO.getLocaleInfoName());
|
||||
Locale locale = ResourceBundleStringMessages.Util.getLocaleFor(queryDefinitionDTO.getLocaleInfoName());
|
||||
DataRetrieverChainDefinition<DataSourceType, DataType> retrieverChain = getDataRetrieverChainDefinition(queryDefinitionDTO.getDataRetrieverChainDefinition().getId());
|
||||
@SuppressWarnings("unchecked")
|
||||
Function<ResultType> statisticToCalculate = (Function<ResultType>) getFunctionForDTO(queryDefinitionDTO.getStatisticToCalculate());
|
||||
|
||||
@@ -16,11 +16,11 @@ import java.util.logging.Logger;
|
||||
import com.sap.sse.datamining.AdditionalResultDataBuilder;
|
||||
import com.sap.sse.datamining.Query;
|
||||
import com.sap.sse.datamining.components.Processor;
|
||||
import com.sap.sse.datamining.i18n.DataMiningStringMessages;
|
||||
import com.sap.sse.datamining.impl.components.OverwritingResultDataBuilder;
|
||||
import com.sap.sse.datamining.shared.GroupKey;
|
||||
import com.sap.sse.datamining.shared.QueryResult;
|
||||
import com.sap.sse.datamining.shared.impl.QueryResultImpl;
|
||||
import com.sap.sse.i18n.ResourceBundleStringMessages;
|
||||
|
||||
public abstract class ProcessorQuery<AggregatedType, DataSourceType> implements Query<AggregatedType> {
|
||||
|
||||
@@ -31,7 +31,7 @@ public abstract class ProcessorQuery<AggregatedType, DataSourceType> implements
|
||||
|
||||
private final ProcessResultReceiver resultReceiver;
|
||||
|
||||
private final DataMiningStringMessages stringMessages;
|
||||
private final ResourceBundleStringMessages stringMessages;
|
||||
private final Locale locale;
|
||||
|
||||
private final Object monitorObject = new Object();
|
||||
@@ -50,7 +50,7 @@ public abstract class ProcessorQuery<AggregatedType, DataSourceType> implements
|
||||
/**
|
||||
* Creates a query that returns a result with additional data.
|
||||
*/
|
||||
public ProcessorQuery(DataSourceType dataSource, DataMiningStringMessages stringMessages, Locale locale) {
|
||||
public ProcessorQuery(DataSourceType dataSource, ResourceBundleStringMessages stringMessages, Locale locale) {
|
||||
this.dataSource = dataSource;
|
||||
this.stringMessages = stringMessages;
|
||||
this.locale = locale;
|
||||
|
||||
+2
-2
@@ -10,7 +10,7 @@ import java.util.concurrent.ExecutorService;
|
||||
import com.sap.sse.datamining.DataRetrieverChainBuilder;
|
||||
import com.sap.sse.datamining.DataRetrieverChainDefinition;
|
||||
import com.sap.sse.datamining.components.Processor;
|
||||
import com.sap.sse.datamining.i18n.DataMiningStringMessages;
|
||||
import com.sap.sse.i18n.ResourceBundleStringMessages;
|
||||
|
||||
public class SimpleDataRetrieverChainDefinition<DataSourceType, DataType> implements
|
||||
DataRetrieverChainDefinition<DataSourceType, DataType> {
|
||||
@@ -46,7 +46,7 @@ public class SimpleDataRetrieverChainDefinition<DataSourceType, DataType> implem
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getLocalizedName(Locale locale, DataMiningStringMessages stringMessages) {
|
||||
public String getLocalizedName(Locale locale, ResourceBundleStringMessages stringMessages) {
|
||||
return stringMessages.get(locale, nameMessageKey);
|
||||
}
|
||||
|
||||
|
||||
+3
-3
@@ -4,10 +4,10 @@ import java.util.Locale;
|
||||
|
||||
import com.sap.sse.datamining.AdditionalResultDataBuilder;
|
||||
import com.sap.sse.datamining.functions.Function;
|
||||
import com.sap.sse.datamining.i18n.DataMiningStringMessages;
|
||||
import com.sap.sse.datamining.shared.AdditionalResultData;
|
||||
import com.sap.sse.datamining.shared.Unit;
|
||||
import com.sap.sse.datamining.shared.impl.AdditionalResultDataImpl;
|
||||
import com.sap.sse.i18n.ResourceBundleStringMessages;
|
||||
|
||||
/**
|
||||
* For general information see {@link AdditionalResultDataBuilder}.<br />
|
||||
@@ -35,11 +35,11 @@ public class OverwritingResultDataBuilder implements AdditionalResultDataBuilder
|
||||
}
|
||||
|
||||
@Override
|
||||
public AdditionalResultData build(long calculationTimeInNanos, DataMiningStringMessages stringMessages, Locale locale) {
|
||||
public AdditionalResultData build(long calculationTimeInNanos, ResourceBundleStringMessages stringMessages, Locale locale) {
|
||||
return new AdditionalResultDataImpl(retrievedDataAmount, buildResultSignifier(stringMessages, locale), unit, resultDecimals, calculationTimeInNanos);
|
||||
}
|
||||
|
||||
private String buildResultSignifier(DataMiningStringMessages stringMessages, Locale locale) {
|
||||
private String buildResultSignifier(ResourceBundleStringMessages stringMessages, Locale locale) {
|
||||
if (extractionFunction == null || aggregationNameMessageKey == null) {
|
||||
return "";
|
||||
}
|
||||
|
||||
+3
-3
@@ -8,10 +8,10 @@ import java.util.concurrent.ExecutorService;
|
||||
import com.sap.sse.datamining.components.Processor;
|
||||
import com.sap.sse.datamining.factories.FunctionDTOFactory;
|
||||
import com.sap.sse.datamining.functions.Function;
|
||||
import com.sap.sse.datamining.i18n.DataMiningStringMessages;
|
||||
import com.sap.sse.datamining.shared.GroupKey;
|
||||
import com.sap.sse.datamining.shared.dto.FunctionDTO;
|
||||
import com.sap.sse.datamining.shared.impl.GenericGroupKey;
|
||||
import com.sap.sse.i18n.ResourceBundleStringMessages;
|
||||
|
||||
/**
|
||||
* Takes a dimension and groups the given elements by the dimensions {@link FunctionDTO}.
|
||||
@@ -21,7 +21,7 @@ import com.sap.sse.datamining.shared.impl.GenericGroupKey;
|
||||
public class ParallelByDimensionGroupingProcessor<DataType> extends
|
||||
AbstractParallelMultiDimensionalNestingGroupingProcessor<DataType> {
|
||||
|
||||
private final DataMiningStringMessages stringMessages;
|
||||
private final ResourceBundleStringMessages stringMessages;
|
||||
private final Locale locale;
|
||||
|
||||
private final FunctionDTOFactory functionDTOFactory;
|
||||
@@ -30,7 +30,7 @@ public class ParallelByDimensionGroupingProcessor<DataType> extends
|
||||
ExecutorService executor,
|
||||
Collection<Processor<GroupedDataEntry<DataType>, ?>> resultReceivers,
|
||||
Function<?> dimension,
|
||||
DataMiningStringMessages stringMessages, Locale locale) {
|
||||
ResourceBundleStringMessages stringMessages, Locale locale) {
|
||||
super(dataType, executor, resultReceivers, asIterable(dimension));
|
||||
this.stringMessages = stringMessages;
|
||||
this.locale = locale;
|
||||
|
||||
+2
-2
@@ -6,7 +6,7 @@ import java.util.Locale;
|
||||
|
||||
import com.sap.sse.datamining.data.Cluster;
|
||||
import com.sap.sse.datamining.data.ClusterBoundary;
|
||||
import com.sap.sse.datamining.i18n.DataMiningStringMessages;
|
||||
import com.sap.sse.i18n.ResourceBundleStringMessages;
|
||||
|
||||
public abstract class AbstractCluster<ElementType> implements Cluster<ElementType> {
|
||||
|
||||
@@ -34,7 +34,7 @@ public abstract class AbstractCluster<ElementType> implements Cluster<ElementTyp
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getAsLocalizedString(Locale locale, DataMiningStringMessages stringMessages) {
|
||||
public String getAsLocalizedString(Locale locale, ResourceBundleStringMessages stringMessages) {
|
||||
return stringMessages.get(locale, messageKey) + " " + getBoundariesAsString();
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -6,7 +6,7 @@ import java.util.Locale;
|
||||
|
||||
import com.sap.sse.datamining.data.Cluster;
|
||||
import com.sap.sse.datamining.data.ClusterGroup;
|
||||
import com.sap.sse.datamining.i18n.DataMiningStringMessages;
|
||||
import com.sap.sse.i18n.ResourceBundleStringMessages;
|
||||
|
||||
public class FixClusterGroup<ElementType> implements ClusterGroup<ElementType> {
|
||||
|
||||
@@ -34,7 +34,7 @@ public class FixClusterGroup<ElementType> implements ClusterGroup<ElementType> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getLocalizedName(Locale locale, DataMiningStringMessages stringMessages) {
|
||||
public String getLocalizedName(Locale locale, ResourceBundleStringMessages stringMessages) {
|
||||
return stringMessages.get(locale, messageKey);
|
||||
}
|
||||
|
||||
|
||||
+3
-3
@@ -6,8 +6,8 @@ import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
import com.sap.sse.datamining.functions.Function;
|
||||
import com.sap.sse.datamining.i18n.DataMiningStringMessages;
|
||||
import com.sap.sse.datamining.shared.Unit;
|
||||
import com.sap.sse.i18n.ResourceBundleStringMessages;
|
||||
|
||||
public class ConcatenatingCompoundFunction<ReturnType> extends AbstractFunction<ReturnType> {
|
||||
|
||||
@@ -86,7 +86,7 @@ public class ConcatenatingCompoundFunction<ReturnType> extends AbstractFunction<
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getLocalizedName(Locale locale, DataMiningStringMessages stringMessages) {
|
||||
public String getLocalizedName(Locale locale, ResourceBundleStringMessages stringMessages) {
|
||||
if (name != null && !name.isEmpty()) {
|
||||
return name;
|
||||
}
|
||||
@@ -107,7 +107,7 @@ public class ConcatenatingCompoundFunction<ReturnType> extends AbstractFunction<
|
||||
return false;
|
||||
}
|
||||
|
||||
private String buildLocalizedNameChain(Locale locale, DataMiningStringMessages stringMessages) {
|
||||
private String buildLocalizedNameChain(Locale locale, ResourceBundleStringMessages stringMessages) {
|
||||
StringBuilder builder = new StringBuilder();
|
||||
boolean first = true;
|
||||
for (Function<?> function : functions) {
|
||||
|
||||
+2
-2
@@ -6,11 +6,11 @@ import java.util.Arrays;
|
||||
import java.util.Locale;
|
||||
import java.util.logging.Level;
|
||||
|
||||
import com.sap.sse.datamining.i18n.DataMiningStringMessages;
|
||||
import com.sap.sse.datamining.shared.Unit;
|
||||
import com.sap.sse.datamining.shared.annotations.Connector;
|
||||
import com.sap.sse.datamining.shared.annotations.Dimension;
|
||||
import com.sap.sse.datamining.shared.annotations.Statistic;
|
||||
import com.sap.sse.i18n.ResourceBundleStringMessages;
|
||||
|
||||
public class MethodWrappingFunction<ReturnType> extends AbstractFunction<ReturnType> {
|
||||
|
||||
@@ -115,7 +115,7 @@ public class MethodWrappingFunction<ReturnType> extends AbstractFunction<ReturnT
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getLocalizedName(Locale locale, DataMiningStringMessages stringMessages) {
|
||||
public String getLocalizedName(Locale locale, ResourceBundleStringMessages stringMessages) {
|
||||
if (!isLocatable()) {
|
||||
return getSimpleName();
|
||||
}
|
||||
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
s3Desc=Dateien in Amazon S3 speichern. Dateiname wird als aus zufälliger UUID und original Dateiendung generiert.
|
||||
s3AccessIdDesc=Zugriffs-ID (leer lassen, um ~/.aws/credentials zu benutzen)
|
||||
s3AccessKeyDesc=Geheimer Zugrifss-Schlüssel (leer lassen, um ~/.aws/credentials zu benutzen)
|
||||
s3BucketNameDesc=Name des "Buckets" der benutzt werden soll (muss in S3 existieren, und die Zugriffsrechte müssen korrekt gesetzt sein).
|
||||
localDesc=Dateien werden im lokalen Dateisystem gespeichert. Sie werden in localPath+fileName gespeichert, der Zugriff erfolgt über baseUrl+fileName. Bitte beachten: baseUrl muss auch für andere Server-Instanzen erreichbar sein. Das kann z.B. durch ein Mounten eines auf static.sapsailing.com gehosteten Netwerk-Dateisystems unter localPath erreicht werden.
|
||||
localBaseUrlDesc=Base URL + fileName = URL unter der die hochgeladene Datei erreichbar ist
|
||||
localLocalPathDesc=Lokaler Pfad zum Ablegen der Dateien
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
s3Desc=Store files on Amazon S3. The resulting file name is a random UUID plus the original file ending.
|
||||
s3AccessIdDesc=Access ID (leave blank to use ~/.aws/credentials instead)
|
||||
s3AccessKeyDesc=Secret Access Key (leave blank to use ~/.aws/credentials instead)
|
||||
s3BucketNameDesc=Name of Bucket to use (has to already exist, and user needs sufficient permissions)
|
||||
localDesc=Service for storing files in the local file system. Files get stored in localPath+fileName and can be accessed at baseUrl+fileName Note that the content lying in baseUrl must therefore be accessible remotely. This can for examplebe achieved by mounting a remote file system for example from static.sapsailing.com on the replicas to localPath.
|
||||
localBaseUrlDesc=Base URL + fileName = URL where uploaded file will be accessible
|
||||
localLocalPathDesc=Local Path to use for file storage
|
||||
@@ -4,6 +4,7 @@ import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.Serializable;
|
||||
import java.net.URI;
|
||||
import java.util.Locale;
|
||||
|
||||
import com.sap.sse.common.IsManagedByCache;
|
||||
import com.sap.sse.common.TypeBasedServiceFinder;
|
||||
@@ -50,7 +51,7 @@ public interface FileStorageService extends IsManagedByCache<FileStorageServiceR
|
||||
/**
|
||||
* Description text that explains the storage service.
|
||||
*/
|
||||
String getDescription();
|
||||
String getDescription(Locale locale);
|
||||
|
||||
/**
|
||||
* Test whether properties are valid, e.g. by trying to log in using access credentials provided as properties.
|
||||
|
||||
+2
-1
@@ -1,6 +1,7 @@
|
||||
package com.sap.sse.filestorage;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Locale;
|
||||
|
||||
/**
|
||||
* Property of a file storage service.
|
||||
@@ -15,5 +16,5 @@ public interface FileStorageServiceProperty extends Serializable {
|
||||
* @return {@code null} if not yet initialized
|
||||
*/
|
||||
String getValue();
|
||||
String getDescription();
|
||||
String getDescription(Locale locale);
|
||||
}
|
||||
+18
-19
@@ -35,8 +35,7 @@ import com.sap.sse.filestorage.OperationFailedException;
|
||||
public class AmazonS3FileStorageServiceImpl extends BaseFileStorageServiceImpl implements FileStorageService {
|
||||
private static final long serialVersionUID = -2406798172882732531L;
|
||||
public static final String NAME = "Amazon S3";
|
||||
public static final String DESCRIPTION = "Store files on Amazon S3. The resulting file name is a random UUID plus the original file ending.";
|
||||
|
||||
|
||||
private static final Logger logger = Logger.getLogger(AmazonS3FileStorageServiceImpl.class.getName());
|
||||
|
||||
private static final String baseUrl = "s3.amazonaws.com";
|
||||
@@ -44,14 +43,14 @@ public class AmazonS3FileStorageServiceImpl extends BaseFileStorageServiceImpl i
|
||||
// private static final String bucketName = "ftes-sap-sailing";
|
||||
|
||||
private final FileStorageServicePropertyImpl accessId = new FileStorageServicePropertyImpl("accessId", false,
|
||||
"Access ID (leave blank to use ~/.aws/credentials instead)");
|
||||
"s3AccessIdDesc");
|
||||
private final FileStorageServicePropertyImpl accessKey = new FileStorageServicePropertyImpl("accessKey", false,
|
||||
"Secret Access Key (leave blank to use ~/.aws/credentials instead)");
|
||||
"s3AccessKeyDesc");
|
||||
private final FileStorageServicePropertyImpl bucketName = new FileStorageServicePropertyImpl("bucketName", true,
|
||||
"Name of Bucket to use (has to already exist, and user needs sufficient permissions)");
|
||||
"s3BucketNameDesc");
|
||||
|
||||
public AmazonS3FileStorageServiceImpl() {
|
||||
super(NAME, DESCRIPTION);
|
||||
super(NAME, "s3Desc");
|
||||
addProperties(accessId, accessKey, bucketName);
|
||||
}
|
||||
|
||||
@@ -102,15 +101,15 @@ public class AmazonS3FileStorageServiceImpl extends BaseFileStorageServiceImpl i
|
||||
.withCannedAcl(CannedAccessControlList.PublicRead);
|
||||
final AmazonS3Client s3Client = createS3Client();
|
||||
|
||||
new Thread() {
|
||||
public void run() {
|
||||
try {
|
||||
s3Client.putObject(request);
|
||||
} catch (AmazonClientException e) {
|
||||
logger.log(Level.WARNING, "Could not store file", e);
|
||||
}
|
||||
};
|
||||
}.run();
|
||||
new Thread() {
|
||||
public void run() {
|
||||
try {
|
||||
s3Client.putObject(request);
|
||||
} catch (AmazonClientException e) {
|
||||
logger.log(Level.WARNING, "Could not store file", e);
|
||||
}
|
||||
};
|
||||
}.run();
|
||||
URI uri = getUri(key);
|
||||
logger.info("Stored file " + uri);
|
||||
return uri;
|
||||
@@ -138,14 +137,14 @@ public class AmazonS3FileStorageServiceImpl extends BaseFileStorageServiceImpl i
|
||||
s3.doesBucketExist(bucketName.getValue());
|
||||
} catch (Exception e) {
|
||||
throw new InvalidPropertiesException("invalid credentials or not enough access rights for the bucket", e,
|
||||
new Pair<FileStorageServiceProperty, String>(accessId, "seems to be invalid"), new Pair<FileStorageServiceProperty, String>(accessKey,
|
||||
"seems to be invalid"));
|
||||
new Pair<FileStorageServiceProperty, String>(accessId, "seems to be invalid"),
|
||||
new Pair<FileStorageServiceProperty, String>(accessKey, "seems to be invalid"));
|
||||
}
|
||||
|
||||
// test if bucket exists
|
||||
if (!s3.doesBucketExist(bucketName.getValue())) {
|
||||
throw new InvalidPropertiesException("invalid bucket", new Pair<FileStorageServiceProperty, String>(bucketName,
|
||||
"bucket does not exist"));
|
||||
throw new InvalidPropertiesException("invalid bucket", new Pair<FileStorageServiceProperty, String>(
|
||||
bucketName, "bucket does not exist"));
|
||||
}
|
||||
}
|
||||
}
|
||||
+6
-5
@@ -1,6 +1,7 @@
|
||||
package com.sap.sse.filestorage.impl;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
|
||||
import com.sap.sse.common.IsManagedByCache;
|
||||
@@ -11,12 +12,12 @@ import com.sap.sse.filestorage.FileStorageServiceResolver;
|
||||
public abstract class BaseFileStorageServiceImpl implements FileStorageService {
|
||||
private static final long serialVersionUID = 7787261863522200165L;
|
||||
private final String name;
|
||||
private final String description;
|
||||
private final String descriptionKey;
|
||||
protected final Map<String, FileStorageServicePropertyImpl> propertiesByNameInInsertionOrder = new LinkedHashMap<>();
|
||||
|
||||
protected BaseFileStorageServiceImpl(String name, String description) {
|
||||
protected BaseFileStorageServiceImpl(String name, String descriptionKey) {
|
||||
this.name = name;
|
||||
this.description = description;
|
||||
this.descriptionKey = descriptionKey;
|
||||
}
|
||||
|
||||
protected void addProperties(FileStorageServicePropertyImpl... properties) {
|
||||
@@ -31,8 +32,8 @@ public abstract class BaseFileStorageServiceImpl implements FileStorageService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDescription() {
|
||||
return description;
|
||||
public String getDescription(Locale locale) {
|
||||
return FileStorageI18n.STRING_MESSAGES.get(locale, descriptionKey);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
package com.sap.sse.filestorage.impl;
|
||||
|
||||
import com.sap.sse.i18n.ResourceBundleStringMessages;
|
||||
import com.sap.sse.i18n.impl.ResourceBundleStringMessagesImpl;
|
||||
|
||||
public class FileStorageI18n {
|
||||
private static final String RESOURCE_BASE_NAME = "stringmessages/FileStorageStringMessages";
|
||||
|
||||
public static final ResourceBundleStringMessages STRING_MESSAGES = new ResourceBundleStringMessagesImpl(RESOURCE_BASE_NAME, FileStorageI18n.class.getClassLoader());
|
||||
}
|
||||
+7
-10
@@ -1,22 +1,19 @@
|
||||
package com.sap.sse.filestorage.impl;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
import com.sap.sse.filestorage.FileStorageServiceProperty;
|
||||
|
||||
public class FileStorageServicePropertyImpl implements FileStorageServiceProperty {
|
||||
private static final long serialVersionUID = -8418630141746910125L;
|
||||
private final boolean isRequired;
|
||||
private final String name;
|
||||
private final String description;
|
||||
private final String descriptionKey;
|
||||
private String value;
|
||||
|
||||
public FileStorageServicePropertyImpl(String name, boolean isRequired, String description) {
|
||||
this(name, isRequired, description, null);
|
||||
}
|
||||
|
||||
public FileStorageServicePropertyImpl(String name, boolean isRequired, String description, String value) {
|
||||
public FileStorageServicePropertyImpl(String name, boolean isRequired, String descriptionKey) {
|
||||
this.name = name;
|
||||
this.description = description;
|
||||
this.value = value;
|
||||
this.descriptionKey = descriptionKey;
|
||||
this.isRequired = isRequired;
|
||||
}
|
||||
|
||||
@@ -36,8 +33,8 @@ public class FileStorageServicePropertyImpl implements FileStorageServicePropert
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDescription() {
|
||||
return description;
|
||||
public String getDescription(Locale locale) {
|
||||
return FileStorageI18n.STRING_MESSAGES.get(locale, descriptionKey);
|
||||
}
|
||||
|
||||
public void setValue(String value) {
|
||||
|
||||
+3
-5
@@ -38,17 +38,15 @@ public class LocalFileStorageServiceImpl extends BaseFileStorageServiceImpl impl
|
||||
private static final long serialVersionUID = -8661781258137340835L;
|
||||
private static final String testFile = "Bundesliga2014_Regatta6_eventteaser.jpg";
|
||||
public static final String NAME = "Local Storage";
|
||||
public static final String DESCRIPTION = "Service for storing files in the local file system. Files get stored in localPath+fileName and can be accessed at baseUrl+fileName Note that the content lying in baseUrl must therefore be accessible remotely. This can for examplebe achieved by mounting a remote file system for example from static.sapsailing.com on the replicas to localPath.";
|
||||
|
||||
private static final Logger logger = Logger.getLogger(LocalFileStorageServiceImpl.class.getName());
|
||||
|
||||
private final FileStorageServicePropertyImpl baseURL = new FileStorageServicePropertyImpl("baseURL", true,
|
||||
"Base URL: Base URL + fileName = URL where uploaded file will be accessible");
|
||||
private final FileStorageServicePropertyImpl localPath = new FileStorageServicePropertyImpl("localPath", true, "Local Path to use for file storage");
|
||||
private final FileStorageServicePropertyImpl baseURL = new FileStorageServicePropertyImpl("baseURL", true, "localBaseUrlDesc");
|
||||
private final FileStorageServicePropertyImpl localPath = new FileStorageServicePropertyImpl("localPath", true, "localLocalPathDesc");
|
||||
|
||||
|
||||
protected LocalFileStorageServiceImpl() {
|
||||
super(NAME, DESCRIPTION);
|
||||
super(NAME, "localDesc");
|
||||
addProperties(baseURL, localPath);
|
||||
}
|
||||
|
||||
|
||||
@@ -27,15 +27,6 @@
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
<configuration>
|
||||
<excludes>
|
||||
<exclude>**/AsyncActionsExecutorTest.java</exclude>
|
||||
</excludes>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
||||
+10
-3
@@ -12,6 +12,7 @@ import com.google.gwt.event.dom.client.ChangeEvent;
|
||||
import com.google.gwt.event.dom.client.ChangeHandler;
|
||||
import com.google.gwt.event.dom.client.ClickEvent;
|
||||
import com.google.gwt.event.dom.client.ClickHandler;
|
||||
import com.google.gwt.i18n.client.LocaleInfo;
|
||||
import com.google.gwt.user.cellview.client.CellTable;
|
||||
import com.google.gwt.user.cellview.client.Column;
|
||||
import com.google.gwt.user.cellview.client.HasKeyboardSelectionPolicy.KeyboardSelectionPolicy;
|
||||
@@ -25,6 +26,8 @@ import com.google.gwt.user.client.ui.Label;
|
||||
import com.google.gwt.user.client.ui.ListBox;
|
||||
import com.google.gwt.user.client.ui.VerticalPanel;
|
||||
import com.google.gwt.view.client.ListDataProvider;
|
||||
import com.sap.sse.filestorage.FileStorageManagementService;
|
||||
import com.sap.sse.filestorage.FileStorageService;
|
||||
import com.sap.sse.gwt.client.ErrorReporter;
|
||||
import com.sap.sse.gwt.client.controls.TabbingTextInputCell;
|
||||
import com.sap.sse.gwt.client.filestorage.FileStorageManagementGwtServiceAsync;
|
||||
@@ -182,7 +185,7 @@ public class FileStoragePanel extends FlowPanel {
|
||||
* @param callback
|
||||
*/
|
||||
private void testProperties(final Callback<Void, Void> callback) {
|
||||
sailingService.testFileStorageServiceProperties(getSelectedServiceName(),
|
||||
sailingService.testFileStorageServiceProperties(getSelectedServiceName(), getLocaleInfo(),
|
||||
new AsyncCallback<FileStorageServicePropertyErrorsDTO>() {
|
||||
@Override
|
||||
public void onSuccess(FileStorageServicePropertyErrorsDTO result) {
|
||||
@@ -243,7 +246,7 @@ public class FileStoragePanel extends FlowPanel {
|
||||
saveAndTestProperties(new Callback<Void, Void>() {
|
||||
@Override
|
||||
public void onSuccess(Void result) {
|
||||
sailingService.setActiveFileStorageService(getSelectedServiceName(), new AsyncCallback<Void>() {
|
||||
sailingService.setActiveFileStorageService(getSelectedServiceName(), getLocaleInfo(), new AsyncCallback<Void>() {
|
||||
@Override
|
||||
public void onSuccess(Void result) {
|
||||
activeServiceLabel.setText(getSelectedServiceName());
|
||||
@@ -276,6 +279,10 @@ public class FileStoragePanel extends FlowPanel {
|
||||
serviceDescriptionLabel.setText(selected.description);
|
||||
properties.addAll(Arrays.asList(selected.properties));
|
||||
}
|
||||
|
||||
private String getLocaleInfo() {
|
||||
return LocaleInfo.getCurrentLocale().getLocaleName();
|
||||
}
|
||||
|
||||
private void refresh() {
|
||||
String oldSelectedService = getSelectedServiceName();
|
||||
@@ -299,7 +306,7 @@ public class FileStoragePanel extends FlowPanel {
|
||||
}
|
||||
});
|
||||
|
||||
sailingService.getAvailableFileStorageServices(new AsyncCallback<FileStorageServiceDTO[]>() {
|
||||
sailingService.getAvailableFileStorageServices(getLocaleInfo(), new AsyncCallback<FileStorageServiceDTO[]>() {
|
||||
@Override
|
||||
public void onSuccess(FileStorageServiceDTO[] result) {
|
||||
for (FileStorageServiceDTO service : result) {
|
||||
|
||||
+3
-3
@@ -15,17 +15,17 @@ import com.sap.sse.gwt.shared.filestorage.FileStorageServicePropertyErrorsDTO;
|
||||
*/
|
||||
public interface FileStorageManagementGwtService extends RemoteService {
|
||||
|
||||
FileStorageServiceDTO[] getAvailableFileStorageServices();
|
||||
FileStorageServiceDTO[] getAvailableFileStorageServices(String localeInfoName);
|
||||
|
||||
/**
|
||||
* @throws NoCorrespondingServiceRegisteredException service may have disappeared from registry in the meantime
|
||||
*/
|
||||
FileStorageServicePropertyErrorsDTO testFileStorageServiceProperties(String serviceName) throws NoCorrespondingServiceRegisteredException;
|
||||
FileStorageServicePropertyErrorsDTO testFileStorageServiceProperties(String serviceName, String localeInfoName) throws NoCorrespondingServiceRegisteredException;
|
||||
|
||||
/**
|
||||
* @throws NoCorrespondingServiceRegisteredException service may have disappeared from registry in the meantime
|
||||
*/
|
||||
void setActiveFileStorageService(String serviceName) throws NoCorrespondingServiceRegisteredException;
|
||||
void setActiveFileStorageService(String serviceName, String localeInfoName) throws NoCorrespondingServiceRegisteredException;
|
||||
|
||||
/**
|
||||
* @return may be {@code null}
|
||||
|
||||
+3
-3
@@ -10,14 +10,14 @@ public interface FileStorageManagementGwtServiceAsync {
|
||||
|
||||
void getActiveFileStorageServiceName(AsyncCallback<String> callback);
|
||||
|
||||
void getAvailableFileStorageServices(AsyncCallback<FileStorageServiceDTO[]> callback);
|
||||
void getAvailableFileStorageServices(String localeInfoName, AsyncCallback<FileStorageServiceDTO[]> callback);
|
||||
|
||||
void setActiveFileStorageService(String serviceName, AsyncCallback<Void> callback);
|
||||
void setActiveFileStorageService(String serviceName, String localeInfoName, AsyncCallback<Void> callback);
|
||||
|
||||
void setFileStorageServiceProperties(String serviceName, Map<String, String> properties,
|
||||
AsyncCallback<Void> callback);
|
||||
|
||||
void testFileStorageServiceProperties(String serviceName,
|
||||
void testFileStorageServiceProperties(String serviceName, String localeInfoName,
|
||||
AsyncCallback<FileStorageServicePropertyErrorsDTO> callback);
|
||||
|
||||
}
|
||||
+8
-7
@@ -3,6 +3,7 @@ package com.sap.sse.gwt.server.filestorage;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
@@ -14,23 +15,23 @@ import com.sap.sse.gwt.shared.filestorage.FileStorageServicePropertyDTO;
|
||||
import com.sap.sse.gwt.shared.filestorage.FileStorageServicePropertyErrorsDTO;
|
||||
|
||||
public class FileStorageServiceDTOUtils {
|
||||
public static FileStorageServicePropertyDTO convert(FileStorageServiceProperty p) {
|
||||
return new FileStorageServicePropertyDTO(p.isRequired(), p.getName(), p.getValue(), p.getDescription());
|
||||
public static FileStorageServicePropertyDTO convert(FileStorageServiceProperty p, Locale locale) {
|
||||
return new FileStorageServicePropertyDTO(p.isRequired(), p.getName(), p.getValue(), p.getDescription(locale));
|
||||
}
|
||||
|
||||
public static FileStorageServicePropertyErrorsDTO convert(InvalidPropertiesException e) {
|
||||
public static FileStorageServicePropertyErrorsDTO convert(InvalidPropertiesException e, Locale locale) {
|
||||
Map<FileStorageServicePropertyDTO, String> msgs = new HashMap<>();
|
||||
for (Entry<FileStorageServiceProperty, String> entry : e.getPerPropertyMessage().entrySet()) {
|
||||
msgs.put(convert(entry.getKey()), entry.getValue());
|
||||
msgs.put(convert(entry.getKey(), locale), entry.getValue());
|
||||
}
|
||||
return new FileStorageServicePropertyErrorsDTO(e.getMessage(), msgs);
|
||||
}
|
||||
|
||||
public static FileStorageServiceDTO convert(FileStorageService s) {
|
||||
public static FileStorageServiceDTO convert(FileStorageService s, Locale locale) {
|
||||
List<FileStorageServicePropertyDTO> pDtos = new ArrayList<>();
|
||||
for (FileStorageServiceProperty p : s.getProperties()) {
|
||||
pDtos.add(convert(p));
|
||||
pDtos.add(convert(p, locale));
|
||||
}
|
||||
return new FileStorageServiceDTO(s.getName(), s.getDescription(), pDtos.toArray(new FileStorageServicePropertyDTO[0]));
|
||||
return new FileStorageServiceDTO(s.getName(), s.getDescription(locale), pDtos.toArray(new FileStorageServicePropertyDTO[0]));
|
||||
}
|
||||
}
|
||||
@@ -7,6 +7,8 @@ Bundle-Vendor: SAP
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
|
||||
Export-Package: com.sap.sse,
|
||||
com.sap.sse.gateway,
|
||||
com.sap.sse.i18n,
|
||||
com.sap.sse.i18n.impl,
|
||||
com.sap.sse.osgi,
|
||||
com.sap.sse.util,
|
||||
com.sap.sse.util.impl,
|
||||
|
||||
+5
-2
@@ -1,10 +1,13 @@
|
||||
package com.sap.sse.datamining.i18n;
|
||||
package com.sap.sse.i18n;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
|
||||
public interface DataMiningStringMessages {
|
||||
/**
|
||||
* Allow server-side internationalization similar to GWT client-side by using property files.
|
||||
*/
|
||||
public interface ResourceBundleStringMessages {
|
||||
|
||||
public String getResourceBaseName();
|
||||
|
||||
+17
-14
@@ -1,4 +1,4 @@
|
||||
package com.sap.sse.datamining.impl.i18n;
|
||||
package com.sap.sse.i18n.impl;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
@@ -10,27 +10,30 @@ import java.util.MissingResourceException;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import com.sap.sse.datamining.i18n.DataMiningStringMessages;
|
||||
import com.sap.sse.i18n.ResourceBundleStringMessages;
|
||||
|
||||
public class CompoundDataMiningStringMessages implements DataMiningStringMessages {
|
||||
/**
|
||||
* Combine several {@link ResourceBundleStringMessages}.
|
||||
*/
|
||||
public class CompoundResourceBundleStringMessages implements ResourceBundleStringMessages {
|
||||
|
||||
private static final Logger LOGGER = Logger.getLogger(CompoundDataMiningStringMessages.class.getSimpleName());
|
||||
private static final Logger LOGGER = Logger.getLogger(CompoundResourceBundleStringMessages.class.getSimpleName());
|
||||
|
||||
private final Collection<DataMiningStringMessages> stringMessages;
|
||||
private final Collection<ResourceBundleStringMessages> stringMessages;
|
||||
|
||||
public CompoundDataMiningStringMessages() {
|
||||
public CompoundResourceBundleStringMessages() {
|
||||
stringMessages = new HashSet<>();
|
||||
}
|
||||
|
||||
public CompoundDataMiningStringMessages(Collection<DataMiningStringMessages> stringMessages) {
|
||||
public CompoundResourceBundleStringMessages(Collection<ResourceBundleStringMessages> stringMessages) {
|
||||
this.stringMessages = new HashSet<>(stringMessages);
|
||||
}
|
||||
|
||||
public void addStringMessages(DataMiningStringMessages stringMessages) {
|
||||
public void addStringMessages(ResourceBundleStringMessages stringMessages) {
|
||||
this.stringMessages.add(stringMessages);
|
||||
}
|
||||
|
||||
public void removeStringMessages(DataMiningStringMessages stringMessages) {
|
||||
public void removeStringMessages(ResourceBundleStringMessages stringMessages) {
|
||||
this.stringMessages.remove(stringMessages);
|
||||
}
|
||||
|
||||
@@ -41,8 +44,8 @@ public class CompoundDataMiningStringMessages implements DataMiningStringMessage
|
||||
|
||||
@Override
|
||||
public String get(Locale locale, String messageKey, String... parameters) {
|
||||
Map<DataMiningStringMessages, String> messages = new HashMap<>();
|
||||
for (DataMiningStringMessages stringMessages : this.stringMessages) {
|
||||
Map<ResourceBundleStringMessages, String> messages = new HashMap<>();
|
||||
for (ResourceBundleStringMessages stringMessages : this.stringMessages) {
|
||||
try {
|
||||
messages.put(stringMessages, stringMessages.get(locale, messageKey, parameters));
|
||||
} catch (MissingResourceException e) {
|
||||
@@ -51,10 +54,10 @@ public class CompoundDataMiningStringMessages implements DataMiningStringMessage
|
||||
return getBestMessageAndLogConflicts(messageKey, messages);
|
||||
}
|
||||
|
||||
private String getBestMessageAndLogConflicts(String messageKey, Map<DataMiningStringMessages, String> messages) throws MissingResourceException {
|
||||
private String getBestMessageAndLogConflicts(String messageKey, Map<ResourceBundleStringMessages, String> messages) throws MissingResourceException {
|
||||
String bestMessageResourceBaseName = null;
|
||||
String bestMessage = null;
|
||||
for (Entry<DataMiningStringMessages, String> messagesEntry : messages.entrySet()) {
|
||||
for (Entry<ResourceBundleStringMessages, String> messagesEntry : messages.entrySet()) {
|
||||
String message = messagesEntry.getValue();
|
||||
if (message != null) {
|
||||
if (bestMessage == null) {
|
||||
@@ -74,7 +77,7 @@ public class CompoundDataMiningStringMessages implements DataMiningStringMessage
|
||||
}
|
||||
|
||||
private void logPossibleConflicts(String messageKey, String bestMessageResourceBaseName, String bestMessage,
|
||||
Entry<DataMiningStringMessages, String> messagesEntry) {
|
||||
Entry<ResourceBundleStringMessages, String> messagesEntry) {
|
||||
String messageResourceBaseName = messagesEntry.getKey().getResourceBaseName();
|
||||
String message = messagesEntry.getValue();
|
||||
|
||||
+4
-4
@@ -1,11 +1,11 @@
|
||||
package com.sap.sse.datamining.impl.i18n;
|
||||
package com.sap.sse.i18n.impl;
|
||||
|
||||
import java.util.Locale;
|
||||
import java.util.ResourceBundle;
|
||||
|
||||
import com.sap.sse.datamining.i18n.DataMiningStringMessages;
|
||||
import com.sap.sse.i18n.ResourceBundleStringMessages;
|
||||
|
||||
public class DataMiningStringMessagesImpl implements DataMiningStringMessages {
|
||||
public class ResourceBundleStringMessagesImpl implements ResourceBundleStringMessages {
|
||||
|
||||
private static final String MESSAGE_PARAMETER_START = "\\{";
|
||||
private static final String MESSAGE_PARAMETER_END = "\\}";
|
||||
@@ -13,7 +13,7 @@ public class DataMiningStringMessagesImpl implements DataMiningStringMessages {
|
||||
private final String resourceBaseName;
|
||||
private final ClassLoader resourceClassLoader;
|
||||
|
||||
public DataMiningStringMessagesImpl(String resourceBaseName, ClassLoader resourceClassLoader) {
|
||||
public ResourceBundleStringMessagesImpl(String resourceBaseName, ClassLoader resourceClassLoader) {
|
||||
this.resourceBaseName = resourceBaseName;
|
||||
this.resourceClassLoader = resourceClassLoader;
|
||||
}
|
||||
Reference in new issue
Block a user