3030import au .com .systemic .framework .utils .AdvancedProperties ;
3131import au .com .systemic .framework .utils .StringUtils ;
3232import 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