mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-11-07 03:22:23 +00:00
Decentralized the data mining string messages
This commit is contained in:
1 parent
94816f2d36
commit
e1b99f91d5
18 files changed
+160
-164
No files matched your search
@@ -4,5 +4,6 @@
|
||||
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="src" path="resources"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
||||
@@ -1,4 +1,5 @@
|
||||
source.. = src/
|
||||
source.. = src/,\
|
||||
resources/
|
||||
output.. = bin/
|
||||
bin.includes = META-INF/,\
|
||||
.
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
Competitor=Teilnehmer
|
||||
DistanceTraveled=zurückgelegte Distanz
|
||||
Boat=Boot
|
||||
Team=Team
|
||||
Name=Name
|
||||
NationalityAcronym=Nationalität
|
||||
SailID=Segelnummer
|
||||
LegNumber=Nummer des Schenkels
|
||||
LegType=Art des Schenkels
|
||||
Year=Jahr
|
||||
Regatta=Regatta
|
||||
CourseArea=Regattabahn
|
||||
BoatClass=Bootsklasse
|
||||
Fleet=Flotte
|
||||
Race=Rennen
|
||||
SailingDomainRetrieverChain=Segel-Domänen Datenbeschaffer
|
||||
LeaderboardGroup=Ranglisten Gruppe
|
||||
RegattaLeaderboard=Regatta Rangliste
|
||||
Leg=Schenkel
|
||||
LegOfCompetitor=Schenkel eines Teilnehmers
|
||||
GpsFix=GPS-Fix
|
||||
Speed=Geschwindigkeit
|
||||
InKnots=in Knoten
|
||||
@@ -0,0 +1,23 @@
|
||||
Speed=Speed
|
||||
InKnots=in knots
|
||||
DistanceTraveled=Distance Traveled
|
||||
Name=Name
|
||||
LegType=Leg Type
|
||||
SailID=Sail Number
|
||||
Year=Year
|
||||
LegNumber=Leg Number
|
||||
NationalityAcronym=Nationality
|
||||
Regatta=Regatta
|
||||
CourseArea=Course Area
|
||||
BoatClass=Boat Class
|
||||
Fleet=Fleet
|
||||
Race=Race
|
||||
Competitor=Competitor
|
||||
Boat=Boat
|
||||
Team=Team
|
||||
SailingDomainRetrieverChain=Sailing Domain Retriever
|
||||
LeaderboardGroup=Leaderboard Group
|
||||
RegattaLeaderboard=Regatta Leaderboard
|
||||
Leg=Leg
|
||||
LegOfCompetitor=Leg of competitor
|
||||
GpsFix=GPS-Fix
|
||||
@@ -14,56 +14,57 @@ import com.sap.sailing.datamining.data.HasGPSFixContext;
|
||||
import com.sap.sailing.datamining.data.HasTrackedLegContext;
|
||||
import com.sap.sailing.datamining.data.HasTrackedLegOfCompetitorContext;
|
||||
import com.sap.sailing.datamining.data.HasTrackedRaceContext;
|
||||
import com.sap.sse.datamining.ClassesWithFunctionsRegistrationService;
|
||||
import com.sap.sse.datamining.DataRetrieverChainDefinition;
|
||||
import com.sap.sse.datamining.DataRetrieverChainDefinitionRegistrationService;
|
||||
import com.sap.sse.datamining.ModifiableDataMiningServer;
|
||||
import com.sap.sse.datamining.i18n.DataMiningStringMessages;
|
||||
import com.sap.sse.datamining.impl.i18n.DataMiningStringMessagesImpl;
|
||||
|
||||
public class Activator implements BundleActivator {
|
||||
|
||||
private static final Logger LOGGER = Logger.getLogger(Activator.class.getSimpleName());
|
||||
private static final String STRING_MESSAGES_BASE_NAME = "stringmessages/StringMessages";
|
||||
|
||||
private DataMiningStringMessages sailingDataMiningStringMessages;
|
||||
private SailingDataRetrieverChainDefinitions dataRetrieverChainDefinitions;
|
||||
|
||||
private ServiceReference<ClassesWithFunctionsRegistrationService> classesWithFunctionsRegistrationServiceReference;
|
||||
private ServiceReference<DataRetrieverChainDefinitionRegistrationService> dataRetrieverChainDefinitionRegistrationServiceServiceReference;
|
||||
private ServiceReference<ModifiableDataMiningServer> dataMiningServerServiceReference;
|
||||
|
||||
@Override
|
||||
public void start(BundleContext context) throws Exception {
|
||||
dataRetrieverChainDefinitions = new SailingDataRetrieverChainDefinitions();
|
||||
sailingDataMiningStringMessages = new DataMiningStringMessagesImpl(STRING_MESSAGES_BASE_NAME);
|
||||
|
||||
classesWithFunctionsRegistrationServiceReference = context.getServiceReference(ClassesWithFunctionsRegistrationService.class);
|
||||
if (classesWithFunctionsRegistrationServiceReference != null) {
|
||||
context.getService(classesWithFunctionsRegistrationServiceReference)
|
||||
.registerInternalClassesWithMarkedMethods(getInternalClassesWithMarkedMethods());
|
||||
context.getService(classesWithFunctionsRegistrationServiceReference)
|
||||
.registerExternalLibraryClasses(getExternalLibraryClasses());
|
||||
} else {
|
||||
LOGGER.log(Level.WARNING, "Couldn't register the sailing classes with functions. No registration service was available.");
|
||||
}
|
||||
|
||||
dataRetrieverChainDefinitionRegistrationServiceServiceReference = context.getServiceReference(DataRetrieverChainDefinitionRegistrationService.class);
|
||||
if (dataRetrieverChainDefinitionRegistrationServiceServiceReference != null) {
|
||||
DataRetrieverChainDefinitionRegistrationService dataRetrieverChainDefinitionRegistrationService = context.getService(dataRetrieverChainDefinitionRegistrationServiceServiceReference);
|
||||
dataMiningServerServiceReference = context.getServiceReference(ModifiableDataMiningServer.class);
|
||||
if (dataMiningServerServiceReference != null) {
|
||||
ModifiableDataMiningServer dataMiningServer = context.getService(dataMiningServerServiceReference);
|
||||
|
||||
dataMiningServer.addStringMessages(sailingDataMiningStringMessages);
|
||||
|
||||
dataMiningServer.registerAllWithInternalFunctionPolicy(getInternalClassesWithMarkedMethods());
|
||||
dataMiningServer.registerAllWithExternalFunctionPolicy(getExternalLibraryClasses());
|
||||
|
||||
for (DataRetrieverChainDefinition<?> dataRetrieverChainDefinition : dataRetrieverChainDefinitions.getDataRetrieverChainDefinitions()) {
|
||||
dataRetrieverChainDefinitionRegistrationService.addDataRetrieverChainDefinition(dataRetrieverChainDefinition);
|
||||
dataMiningServer.registerDataRetrieverChainDefinition(dataRetrieverChainDefinition);
|
||||
}
|
||||
} else {
|
||||
LOGGER.log(Level.WARNING, "Couldn't register the sailing data retriever chain definitions. No registration service was available.");
|
||||
LOGGER.log(Level.WARNING,
|
||||
"Couldn't register the sailing classes with functions and data retriever chain definitions."
|
||||
+ " No data mining server was available.");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void stop(BundleContext context) throws Exception {
|
||||
if (classesWithFunctionsRegistrationServiceReference != null) {
|
||||
context.getService(classesWithFunctionsRegistrationServiceReference).unregisterAllFunctionsOf(
|
||||
getInternalClassesWithMarkedMethods());
|
||||
context.getService(classesWithFunctionsRegistrationServiceReference).unregisterAllFunctionsOf(
|
||||
getExternalLibraryClasses());
|
||||
}
|
||||
|
||||
if (dataRetrieverChainDefinitionRegistrationServiceServiceReference != null) {
|
||||
if (dataMiningServerServiceReference != null) {
|
||||
ModifiableDataMiningServer dataMiningServer = context.getService(dataMiningServerServiceReference);
|
||||
|
||||
dataMiningServer.removeStringMessages(sailingDataMiningStringMessages);
|
||||
|
||||
dataMiningServer.unregisterAllFunctionsOf(getInternalClassesWithMarkedMethods());
|
||||
dataMiningServer.unregisterAllFunctionsOf(getExternalLibraryClasses());
|
||||
|
||||
for (DataRetrieverChainDefinition<?> dataRetrieverChainDefinition : dataRetrieverChainDefinitions.getDataRetrieverChainDefinitions()) {
|
||||
context.getService(dataRetrieverChainDefinitionRegistrationServiceServiceReference).removeDataRetrieverChainDefinition(dataRetrieverChainDefinition);
|
||||
dataMiningServer.unregisterDataRetrieverChainDefinition(dataRetrieverChainDefinition);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+4
-7
@@ -21,7 +21,6 @@ import com.sap.sse.datamining.factories.ProcessorFactory;
|
||||
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.DataMiningActivator;
|
||||
import com.sap.sse.datamining.impl.DataRetrieverChainDefinitionProvider;
|
||||
import com.sap.sse.datamining.impl.ProcessorQuery;
|
||||
import com.sap.sse.datamining.impl.components.GroupedDataEntry;
|
||||
@@ -36,7 +35,6 @@ import com.sap.sse.datamining.shared.impl.dto.DataRetrieverChainDefinitionDTO;
|
||||
public class SailingDataMiningFactory {
|
||||
|
||||
private final ExecutorService executorService;
|
||||
|
||||
private final DataMiningStringMessages stringMessages;
|
||||
|
||||
private final ProcessorFactory processorFactory;
|
||||
@@ -44,12 +42,11 @@ public class SailingDataMiningFactory {
|
||||
private final FunctionProvider functionProvider;
|
||||
private final DataRetrieverChainDefinitionProvider dataRetrieverChainDefinitionProvider;
|
||||
|
||||
public SailingDataMiningFactory(FunctionProvider functionProvider, DataRetrieverChainDefinitionProvider dataRetrieverChainDefinitionRegistry) {
|
||||
DataMiningActivator dataMiningActivator = DataMiningActivator.getDefault();
|
||||
executorService = dataMiningActivator.getExecutor();
|
||||
stringMessages = dataMiningActivator.getStringMessages();
|
||||
public SailingDataMiningFactory(ExecutorService executorService, DataMiningStringMessages stringMessages, FunctionProvider functionProvider, DataRetrieverChainDefinitionProvider dataRetrieverChainDefinitionRegistry) {
|
||||
this.executorService = executorService;
|
||||
this.stringMessages = stringMessages;
|
||||
|
||||
processorFactory = new ProcessorFactory(executorService);
|
||||
processorFactory = new ProcessorFactory(this.executorService);
|
||||
|
||||
this.functionProvider = functionProvider;
|
||||
this.dataRetrieverChainDefinitionProvider = dataRetrieverChainDefinitionRegistry;
|
||||
|
||||
+3
-1
@@ -44,7 +44,9 @@ public class DataMiningServiceImpl extends RemoteServiceServlet implements DataM
|
||||
dataMiningServerTracker = createAndOpenDataMiningServerTracker(context);
|
||||
racingEventServiceTracker = createAndOpenRacingEventServiceTracker(context);
|
||||
|
||||
sailingDataMiningFactory = new SailingDataMiningFactory(getDataMiningServer().getFunctionProvider(),
|
||||
sailingDataMiningFactory = new SailingDataMiningFactory(getDataMiningServer().getExecutorService(),
|
||||
getDataMiningServer().getStringMessages(),
|
||||
getDataMiningServer().getFunctionProvider(),
|
||||
getDataMiningServer().getDataRetrieverChainDefinitionProvider());
|
||||
functionDTOFactory = new FunctionDTOFactory();
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.sap.sse.datamining.impl.i18n;
|
||||
|
||||
import static org.hamcrest.Matchers.is;
|
||||
import static org.junit.Assert.assertThat;
|
||||
import static org.junit.Assert.fail;
|
||||
|
||||
import java.util.Locale;
|
||||
import java.util.MissingResourceException;
|
||||
@@ -36,6 +37,26 @@ public class TestI18N {
|
||||
assertThat(testStringMessages.get(Locale.GERMAN, TEST_MESSAGE_WITH_PARAMETERS, "Param0", "Param1"), is("Deutsch Param0 - Param1"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDynamicCompoundStringMessages() {
|
||||
CompoundDataMiningStringMessages compoundStringMessages = new CompoundDataMiningStringMessages();
|
||||
|
||||
try {
|
||||
compoundStringMessages.get(Locale.ENGLISH, SIMPLE_TEST_MESSAGE_KEY);
|
||||
fail("There shouldn't be a string message in an empty compound string messages");
|
||||
} catch (MissingResourceException e) { }
|
||||
|
||||
compoundStringMessages.addStringMessages(testStringMessages);
|
||||
assertThat(testStringMessages.get(Locale.ENGLISH, SIMPLE_TEST_MESSAGE_KEY), is("English"));
|
||||
assertThat(testStringMessages.get(Locale.GERMAN, SIMPLE_TEST_MESSAGE_KEY), is("Deutsch"));
|
||||
|
||||
compoundStringMessages.removeStringMessages(testStringMessages);
|
||||
try {
|
||||
compoundStringMessages.get(Locale.ENGLISH, SIMPLE_TEST_MESSAGE_KEY);
|
||||
fail("There shouldn't be a string message in an empty compound string messages");
|
||||
} catch (MissingResourceException e) { }
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetLocaleForLocaleInfoName() {
|
||||
assertThat(DataMiningStringMessages.Util.getLocaleFor("default"), is(Locale.ENGLISH));
|
||||
|
||||
@@ -1,32 +1,8 @@
|
||||
Average=Durchschnitt
|
||||
Median=Median
|
||||
Sum=Summe
|
||||
Distance=Distanz
|
||||
Speed=Geschwindigkeit
|
||||
Meters=Metern
|
||||
Knots=Knoten
|
||||
InKnots=in Knoten
|
||||
DistanceTraveled=zurückgelegte Distanz
|
||||
Collecting=Sammlung
|
||||
ResultSignifier={0} ({1})
|
||||
SignifierInUnit={0} in {1}
|
||||
Name=Name
|
||||
LegType=Art des Schenkels
|
||||
SailID=Segelnummer
|
||||
Year=Jahr
|
||||
LegNumber=Nummer des Schenkels
|
||||
NationalityAcronym=Nationalität
|
||||
Regatta=Regatta
|
||||
CourseArea=Regattabahn
|
||||
BoatClass=Bootsklasse
|
||||
Fleet=Flotte
|
||||
Race=Rennen
|
||||
Competitor=Teilnehmer
|
||||
Boat=Boot
|
||||
Team=Team
|
||||
SailingDomainRetrieverChain=Segel-Domänen Datenbeschaffer
|
||||
LeaderboardGroup=Ranglisten Gruppe
|
||||
RegattaLeaderboard=Regatta Rangliste
|
||||
Leg=Schenkel
|
||||
LegOfCompetitor=Schenkel eines Teilnehmers
|
||||
GpsFix=GPS-Fix
|
||||
SignifierInUnit={0} in {1}
|
||||
@@ -1,32 +1,8 @@
|
||||
Average=Average
|
||||
Median=Median
|
||||
Sum=Sum
|
||||
Distance=Distance
|
||||
Speed=Speed
|
||||
Meters=meters
|
||||
Knots=knots
|
||||
InKnots=in knots
|
||||
DistanceTraveled=Distance Traveled
|
||||
Collecting=Collection
|
||||
ResultSignifier={0} ({1})
|
||||
SignifierInUnit={0} in {1}
|
||||
Name=Name
|
||||
LegType=Leg Type
|
||||
SailID=Sail Number
|
||||
Year=Year
|
||||
LegNumber=Leg Number
|
||||
NationalityAcronym=Nationality
|
||||
Regatta=Regatta
|
||||
CourseArea=Course Area
|
||||
BoatClass=Boat Class
|
||||
Fleet=Fleet
|
||||
Race=Race
|
||||
Competitor=Competitor
|
||||
Boat=Boat
|
||||
Team=Team
|
||||
SailingDomainRetrieverChain=Sailing Domain Retriever
|
||||
LeaderboardGroup=Leaderboard Group
|
||||
RegattaLeaderboard=Regatta Leaderboard
|
||||
Leg=Leg
|
||||
LegOfCompetitor=Leg of competitor
|
||||
GpsFix=GPS-Fix
|
||||
SignifierInUnit={0} in {1}
|
||||
-12
@@ -1,12 +0,0 @@
|
||||
package com.sap.sse.datamining;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
public interface ClassesWithFunctionsRegistrationService {
|
||||
|
||||
public void registerInternalClassesWithMarkedMethods(Set<Class<?>> classesToScan);
|
||||
public void registerExternalLibraryClasses(Set<Class<?>> externalClassesToScan);
|
||||
|
||||
public void unregisterAllFunctionsOf(Set<Class<?>> classesToUnregister);
|
||||
|
||||
}
|
||||
@@ -2,6 +2,7 @@ package com.sap.sse.datamining;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
|
||||
import com.sap.sse.datamining.functions.Function;
|
||||
import com.sap.sse.datamining.functions.FunctionProvider;
|
||||
@@ -10,6 +11,8 @@ import com.sap.sse.datamining.impl.DataRetrieverChainDefinitionProvider;
|
||||
import com.sap.sse.datamining.shared.dto.FunctionDTO;
|
||||
|
||||
public interface DataMiningServer {
|
||||
|
||||
public ExecutorService getExecutorService();
|
||||
|
||||
public DataMiningStringMessages getStringMessages();
|
||||
|
||||
|
||||
-8
@@ -1,8 +0,0 @@
|
||||
package com.sap.sse.datamining;
|
||||
|
||||
public interface DataRetrieverChainDefinitionRegistrationService {
|
||||
|
||||
public void addDataRetrieverChainDefinition(DataRetrieverChainDefinition<?> dataRetrieverChainDefinition);
|
||||
public void removeDataRetrieverChainDefinition(DataRetrieverChainDefinition<?> dataRetrieverChainDefinition);
|
||||
|
||||
}
|
||||
@@ -3,9 +3,13 @@ package com.sap.sse.datamining;
|
||||
import java.util.Collection;
|
||||
|
||||
import com.sap.sse.datamining.functions.FunctionRegistry;
|
||||
import com.sap.sse.datamining.i18n.DataMiningStringMessages;
|
||||
|
||||
public interface ModifiableDataMiningServer extends DataMiningServer {
|
||||
|
||||
public void addStringMessages(DataMiningStringMessages stringMessages);
|
||||
public void removeStringMessages(DataMiningStringMessages stringMessages);
|
||||
|
||||
public FunctionRegistry getFunctionRegistry();
|
||||
|
||||
public void registerAllWithInternalFunctionPolicy(Collection<Class<?>> classesToScan);
|
||||
|
||||
-1
@@ -16,7 +16,6 @@ public interface DataMiningStringMessages {
|
||||
public String get(Locale locale, String messageKey);
|
||||
public String get(Locale locale, String messageKey, String... parameters);
|
||||
|
||||
//TODO Replace with static method, after Java 8 can be used
|
||||
public static final class Util {
|
||||
|
||||
private static boolean supportedLocalesHaveBeenInitialized = false;
|
||||
|
||||
+6
-48
@@ -2,7 +2,6 @@ package com.sap.sse.datamining.impl;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.LinkedBlockingQueue;
|
||||
import java.util.concurrent.ThreadPoolExecutor;
|
||||
@@ -12,10 +11,7 @@ import org.osgi.framework.BundleActivator;
|
||||
import org.osgi.framework.BundleContext;
|
||||
import org.osgi.framework.ServiceRegistration;
|
||||
|
||||
import com.sap.sse.datamining.ClassesWithFunctionsRegistrationService;
|
||||
import com.sap.sse.datamining.DataMiningServer;
|
||||
import com.sap.sse.datamining.DataRetrieverChainDefinition;
|
||||
import com.sap.sse.datamining.DataRetrieverChainDefinitionRegistrationService;
|
||||
import com.sap.sse.datamining.ModifiableDataMiningServer;
|
||||
import com.sap.sse.datamining.functions.FunctionProvider;
|
||||
import com.sap.sse.datamining.functions.FunctionRegistry;
|
||||
@@ -23,7 +19,7 @@ import com.sap.sse.datamining.i18n.DataMiningStringMessages;
|
||||
import com.sap.sse.datamining.impl.functions.RegistryFunctionProvider;
|
||||
import com.sap.sse.datamining.impl.functions.SimpleFunctionRegistry;
|
||||
|
||||
public class DataMiningActivator implements BundleActivator, ClassesWithFunctionsRegistrationService, DataRetrieverChainDefinitionRegistrationService {
|
||||
public class DataMiningActivator implements BundleActivator {
|
||||
|
||||
private static final int THREAD_POOL_SIZE = Math.max(Runtime.getRuntime().availableProcessors(), 3);
|
||||
private static final String STRING_MESSAGES_BASE_NAME = "stringmessages/StringMessages";
|
||||
@@ -31,20 +27,18 @@ public class DataMiningActivator implements BundleActivator, ClassesWithFunction
|
||||
private static DataMiningActivator INSTANCE;
|
||||
|
||||
private final ModifiableDataMiningServer dataMiningServer;
|
||||
private final DataMiningStringMessages stringMessages;
|
||||
private final ExecutorService executor;
|
||||
|
||||
private Collection<ServiceRegistration<?>> serviceRegistrations;
|
||||
|
||||
public DataMiningActivator() {
|
||||
stringMessages = DataMiningStringMessages.Util.getInstanceFor(STRING_MESSAGES_BASE_NAME);
|
||||
executor = new ThreadPoolExecutor(THREAD_POOL_SIZE, THREAD_POOL_SIZE, 60, TimeUnit.SECONDS,
|
||||
ExecutorService executor = new ThreadPoolExecutor(THREAD_POOL_SIZE, THREAD_POOL_SIZE, 60, TimeUnit.SECONDS,
|
||||
new LinkedBlockingQueue<Runnable>());
|
||||
|
||||
FunctionRegistry functionRegistry = new SimpleFunctionRegistry();
|
||||
FunctionProvider functionProvider = new RegistryFunctionProvider(functionRegistry);
|
||||
DataRetrieverChainDefinitionRegistry dataRetrieverChainDefinitionRegistry = new SimpleDataRetrieverChainDefinitionRegistry();
|
||||
dataMiningServer = new DataMiningServerImpl(stringMessages, functionRegistry, functionProvider, dataRetrieverChainDefinitionRegistry);
|
||||
dataMiningServer = new DataMiningServerImpl(executor, functionRegistry, functionProvider, dataRetrieverChainDefinitionRegistry);
|
||||
dataMiningServer.addStringMessages(DataMiningStringMessages.Util.getInstanceFor(STRING_MESSAGES_BASE_NAME));
|
||||
|
||||
serviceRegistrations = new HashSet<>();
|
||||
}
|
||||
@@ -52,37 +46,9 @@ public class DataMiningActivator implements BundleActivator, ClassesWithFunction
|
||||
@Override
|
||||
public void start(BundleContext context) throws Exception {
|
||||
INSTANCE = this;
|
||||
|
||||
|
||||
serviceRegistrations.add(context.registerService(DataMiningServer.class, dataMiningServer, null));
|
||||
|
||||
serviceRegistrations.add(context.registerService(ClassesWithFunctionsRegistrationService.class, this, null));
|
||||
serviceRegistrations.add(context.registerService(DataRetrieverChainDefinitionRegistrationService.class, this, null));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerInternalClassesWithMarkedMethods(Set<Class<?>> classesToScan) {
|
||||
dataMiningServer.registerAllWithInternalFunctionPolicy(classesToScan);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerExternalLibraryClasses(Set<Class<?>> externalClassesToScan) {
|
||||
dataMiningServer.registerAllWithExternalFunctionPolicy(externalClassesToScan);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unregisterAllFunctionsOf(Set<Class<?>> classesToUnregister) {
|
||||
dataMiningServer.unregisterAllFunctionsOf(classesToUnregister);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addDataRetrieverChainDefinition(DataRetrieverChainDefinition<?> dataRetrieverChainDefinition) {
|
||||
dataMiningServer.registerDataRetrieverChainDefinition(dataRetrieverChainDefinition);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeDataRetrieverChainDefinition(DataRetrieverChainDefinition<?> dataRetrieverChainDefinition) {
|
||||
dataMiningServer.unregisterDataRetrieverChainDefinition(dataRetrieverChainDefinition);
|
||||
|
||||
serviceRegistrations.add(context.registerService(ModifiableDataMiningServer.class, dataMiningServer, null));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -91,14 +57,6 @@ public class DataMiningActivator implements BundleActivator, ClassesWithFunction
|
||||
context.ungetService(serviceRegistration.getReference());
|
||||
}
|
||||
}
|
||||
|
||||
public ExecutorService getExecutor() {
|
||||
return executor;
|
||||
}
|
||||
|
||||
public DataMiningStringMessages getStringMessages() {
|
||||
return stringMessages;
|
||||
}
|
||||
|
||||
public static DataMiningActivator getDefault() {
|
||||
if (INSTANCE == null) {
|
||||
|
||||
+27
-8
@@ -2,6 +2,7 @@ package com.sap.sse.datamining.impl;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
|
||||
import com.sap.sse.datamining.DataRetrieverChainDefinition;
|
||||
import com.sap.sse.datamining.ModifiableDataMiningServer;
|
||||
@@ -9,23 +10,46 @@ 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.dto.FunctionDTO;
|
||||
|
||||
public class DataMiningServerImpl implements ModifiableDataMiningServer {
|
||||
|
||||
private final DataMiningStringMessages stringMessages;
|
||||
private final CompoundDataMiningStringMessages stringMessages;
|
||||
private final ExecutorService executorService;
|
||||
|
||||
private final FunctionRegistry functionRegistry;
|
||||
private final FunctionProvider functionProvider;
|
||||
|
||||
private DataRetrieverChainDefinitionRegistry dataRetrieverChainDefinitionRegistry;
|
||||
|
||||
public DataMiningServerImpl(DataMiningStringMessages stringMessages, FunctionRegistry functionRegistry, FunctionProvider functionProvider, DataRetrieverChainDefinitionRegistry dataRetrieverChainDefinitionRegistry) {
|
||||
this.stringMessages = stringMessages;
|
||||
public DataMiningServerImpl(ExecutorService executorService, FunctionRegistry functionRegistry, FunctionProvider functionProvider, DataRetrieverChainDefinitionRegistry dataRetrieverChainDefinitionRegistry) {
|
||||
this.stringMessages = new CompoundDataMiningStringMessages();
|
||||
this.executorService = executorService;
|
||||
this.functionRegistry = functionRegistry;
|
||||
this.functionProvider = functionProvider;
|
||||
this.dataRetrieverChainDefinitionRegistry = dataRetrieverChainDefinitionRegistry;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ExecutorService getExecutorService() {
|
||||
return executorService;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DataMiningStringMessages getStringMessages() {
|
||||
return stringMessages;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addStringMessages(DataMiningStringMessages stringMessages) {
|
||||
this.stringMessages.addStringMessages(stringMessages);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeStringMessages(DataMiningStringMessages stringMessages) {
|
||||
this.stringMessages.removeStringMessages(stringMessages);
|
||||
}
|
||||
|
||||
@Override
|
||||
public FunctionRegistry getFunctionRegistry() {
|
||||
@@ -51,11 +75,6 @@ public class DataMiningServerImpl implements ModifiableDataMiningServer {
|
||||
public FunctionProvider getFunctionProvider() {
|
||||
return functionProvider;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DataMiningStringMessages getStringMessages() {
|
||||
return stringMessages;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<Function<?>> getAllStatistics() {
|
||||
|
||||
+12
@@ -17,11 +17,23 @@ public class CompoundDataMiningStringMessages implements DataMiningStringMessage
|
||||
private static final Logger LOGGER = Logger.getLogger(CompoundDataMiningStringMessages.class.getSimpleName());
|
||||
|
||||
private final Collection<DataMiningStringMessages> stringMessages;
|
||||
|
||||
public CompoundDataMiningStringMessages() {
|
||||
stringMessages = new HashSet<>();
|
||||
}
|
||||
|
||||
public CompoundDataMiningStringMessages(Collection<DataMiningStringMessages> stringMessages) {
|
||||
this.stringMessages = new HashSet<>(stringMessages);
|
||||
}
|
||||
|
||||
public void addStringMessages(DataMiningStringMessages stringMessages) {
|
||||
this.stringMessages.add(stringMessages);
|
||||
}
|
||||
|
||||
public void removeStringMessages(DataMiningStringMessages stringMessages) {
|
||||
this.stringMessages.remove(stringMessages);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String get(Locale locale, String messageKey) {
|
||||
return get(locale, messageKey, new String[0]);
|
||||
|
||||
Reference in new issue
Block a user