Skip to content

Commit f4cd578

Browse files
author
Joerg Huber
committed
Changes to allow Job Events
1 parent 4ba4bd2 commit f4cd578

1 file changed

Lines changed: 9 additions & 7 deletions

File tree

SIF3InfraREST/SIF3REST/src/main/java/sif3/infra/rest/provider/ProviderFactory.java

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import au.com.systemic.framework.utils.AdvancedProperties;
3131
import au.com.systemic.framework.utils.StringUtils;
3232
import sif3.common.conversion.ModelObjectInfo;
33+
import sif3.common.interfaces.EventProvider;
3334

3435
/**
3536
* This is the provider factory. Each provider deals with a number of objects (i.e. StudentPersonal, SchoolInfo etc).
@@ -49,7 +50,7 @@ public class ProviderFactory
4950
private static ProviderFactory factory = null;
5051

5152
// Active Providers for event publishing. These providers run in the background as an independent thread.
52-
private HashMap<ModelObjectInfo, BaseProvider> eventProviders = new HashMap<ModelObjectInfo, BaseProvider>();
53+
private HashMap<ModelObjectInfo, EventProvider<?>> eventProviders = new HashMap<ModelObjectInfo, EventProvider<?>>();
5354

5455
// Known providers that can be instantiated for standard request/response
5556
private HashMap<ModelObjectInfo, ProviderClassInfo> providerClasses = new HashMap<ModelObjectInfo, ProviderClassInfo>();
@@ -96,12 +97,12 @@ public static synchronized void shutdown()
9697
{
9798
if (factory != null)
9899
{
99-
for (BaseProvider provider : factory.eventProviders.values())
100+
for (EventProvider<?> provider : factory.eventProviders.values())
100101
{
101102
try
102103
{
103104
logger.debug("Finalise provider " + provider.getMultiObjectClassInfo().getObjectName() + "...");
104-
provider.finalise();
105+
((CoreProvider)provider).finaliseCoreProvider();
105106
}
106107
catch (Exception ex)
107108
{
@@ -205,10 +206,10 @@ private void initialiseProviders(AdvancedProperties adapterProps)
205206
providerClasses.put(objectInfo, providerClassInfo);
206207

207208
// So far only Object Services (BaseProvider) support events.
208-
if (classObj instanceof BaseProvider)
209+
if (classObj instanceof EventProvider)
209210
{
210211
// Add it to hasmap for background threads
211-
eventProviders.put(objectInfo, (BaseProvider)provider);
212+
eventProviders.put(objectInfo, (EventProvider<?>)provider);
212213
}
213214
}
214215
else
@@ -239,14 +240,15 @@ private void startProviders(AdvancedProperties adapterProps) throws Exception
239240
logger.debug("Start up delay between providers is: "+delay+" seconds");
240241

241242
int i = 0;
242-
for (BaseProvider provider : eventProviders.values())
243+
for (EventProvider<?> provider : eventProviders.values())
243244
{
244245
// Create thread in thread pool
245246
providerService = Executors.newSingleThreadScheduledExecutor();
246247

247248
// Ensure there is 10 seconds between the start of each publisher so that they don't hammer
248249
// the system at the same time during startup. Startup thread on thread pool.
249-
providerService.schedule(provider, i*delay, TimeUnit.SECONDS);
250+
// ScheduledFuture<?> future = providerService.schedule((CoreProvider)provider, i*delay, TimeUnit.SECONDS);
251+
providerService.schedule((CoreProvider)provider, i*delay, TimeUnit.SECONDS);
250252
i++;
251253
}
252254
}

0 commit comments

Comments
 (0)