The class KfsModuleServiceImpl has two methods in it related to 'External Jobs'. The parent class in Rice (ModuleServiceBase) has an 'isResponsibleForJob(String jobName)' method. Module services are used extensively in KFS by the various modules. I don't think Rice uses any other than to create a bean for the KualiModuleServiceImpl class which appears to hold a list of the module services KFS has in their spring configuration.
- What is meant by 'External Job'?
- Can those methods simply be added to the ModuleServiceBase class since it already seems to have batch information anyway?
- How do individual ModuleServiceBase classes like KfsModuleServiceImpl get added to the list in KualiModuleServiceImpl?
SpringContext has a method that pulls all the objects of Step.class. These appear to be stored in a cache in SpringContext when the system is started.
- Are there any default batch jobs or steps that should exist in Rice or just the Framework? Do we need to get 'official' approval from one of the councils at all?
- If so, how do we facilitate the fact that Rice has steps/jobs and KFS will have steps and jobs?
- Do we use a cache to keep track of these jobs in the KNSServiceLocator?
There are two booleans: useQuartzScheduling & useJdbcJobstore. The useQuartzScheduling seems to be related to testing since it basically invokes a DummyScheduler objct. It also has to do with whether a quartz properties file set in the KFS SchedulerFactoryBean ends up having the property "org.quartz.jobStore.useProperties" set. The useJdbcJobstore boolean appear to work similarly to the Rice 'use quartz database' stuff.
- Do we need to have the DummyScheduler? Assume this is to run tests for the Batch jobs... probably dependent on whether we have any full jobs in Rice.
- Assuming we use the same scheduler for KSB Messages and Batch jobs... the useJdbcJobstore should go away. If we have multiple schedules running (ex: one for batch and one for KSB) the useJdbcJobstore should change to be more KSB like.
This has methods that use the SpringContext class method 'getBeansOfType()' similar to the way all Step class objects are retrieved.
- Is this needed in Rice? What is the intention... speed of startup of batch?
In the init() method the injected JobListener is set on the scheduler as the Global Job Listener. If we have only one scheduler in the KSB the batch job listener probably can't be the global listener. Need to find out implications of that potential change.
Some ParameterConstants inner classes had been referenced in classes that will move to Rice. Those were using a "FINANCIAL_SYSTEM_BATCH" class. We'll need to pull those parameters from KFS and re-add them to Rice and the Bootstrap with the "NERVOUS_SYSTEM_BATCH" class. We'll also need to keep the KFS ParameterConstants but make it extend from the Rice class.