...
As such, this class was used mostly in Spoon, in StepMeta and in the Repository plugins. Here are the main changes to make:
- ClassLoaderStepLoader.findStepPluginWithID(id) : change to: --> PluginRegistry.findPluginWithId(StepPluginType.getInstance()class, id)
- StepPlugin : change to --> PluginInterface
- StepLoader.getStepClass(StepPlugin) : --> (StepMetaInterface)PluginRegistry.loadClass(PluginInterface, PluginClassType.MainClassType)
- ClassLoaderStepLoader.getStepPluginID(StepMetaInterface) : --> PluginRegistry.getPluginId(StepPluginType..getInstance()class, StepMetaInterface)
- init() : --> taken over by PluginRegistry.init() and StepPluginType.searchPlugins()
- getPluginPackages() : --> is now available as getPluginPackages(PluginTypeInterface) returning a list of package names.
- getPluginInformation() : --> getPluginInformation(PluginTypeInterface) returning a RowBuffer object
...
- getID(): since this wasn't a single ID, it got renamed to getIds() but it's an array of String as well.
- getDescription(): this was actually the name of the step so it's now called: getName()
- getTooltip(): this was actually the description of the step so it's now called: getDescription()
- getJarfiles(): moved to a list: getLibraries()
- getClassname(): move to a map: getClassMap()
- getIconFilename(): renamed to: getImageFile();
JobEntryLoader
The job entry loader singleton was used everywhere we needed to load a JobEntryInterface or if we wanted to learn more about a certain step. Unfortunately a certain developer made a mistake in the naming of a few things. As such, here are the changes in the objects:
- @Job --> @JobEntry: Since we plan to have Job plugins in the future, the appropriate name for a job entry annotation is .. euh.. @JobEntry.
- Since the Annotation changed anyway we also renamed the members of the JobEntry annotation:
- name() --> id()
- description() --> name()
- tooltip() --> description()
- This better reflects the actual use of the fields (to put it mildly)
The JobEntryLoader class was used mostly in Spoon, JobEntryCopy and in the Repository plugins. Here are the main changes to make:
- JobEntryLoader.findJobEntriesWithDescription(String) --> PluginRegistry.findPluginWithName(StepPluginType..class, description)
- JobPlugin (also with a wrong name!) --> PluginInterface
- JobEntryLoader.getStepClass(StepPlugin) --> (JobEntryInterface)PluginRegistry.loadClass(PluginInterface, PluginClassType.MainClassType)
- JobEntryLoader.getJobEntryPluginID(JobEntryInterface) --> PluginRegistry.getPluginId(JobEntryPluginType.getInstance(), JobEntryInterface)
- init(): taken over by PluginRegistry.init() and JobEntryPluginType.searchPlugins()
- getPluginPackages(): is now available as getPluginPackages(PluginTypeInterface) returning a list of package names.
- getPluginInformation(): getPluginInformation(PluginTypeInterface) returning a RowBuffer object
The JobPlugin class and the PluginInterface are quite similar, see the StepLoader paragraph above for more information.
DatabaseMeta
Since the creation of DatabaseMeta is now handled by the PluginRegistry as well, we can say a few words about the migration of your code.
Here are a few of the methods that are now missing from DatabaseMeta:
- getDatabaseTypeDescLong() --> You need to look up the PluginInterface for this database in the plugin registry with the pluginId.
PluginInterface plugin = registry.getPlugin(DatabasePluginType.class, pluginId);
With this you can determine the name (previous long description) - getDatabaseTypeDesc() --> This is in fact the plugin ID of the DatabaseMeta object.
Examples from the field
Job entry example
Code Block |
---|
JobPlugin plugin = JobEntryLoader.getInstance().findJobPluginWithID(typeId);
|
becomes:
Code Block |
---|
PluginInterface plugin = PluginRegistry.getInstance().getPlugin(JobEntryPluginType..class, typeId);
|
Step plugin example
Code Block |
---|
stepMetaInterface = StepLoader.getInstance().getStepClass(sp);
|
becomes
Code Block |
---|
stepMetaInterface = (StepMetaInterface)PluginRegistry.getInstance().loadClass(sp);
|
Pentaho Examples
Code Block |
---|
StepLoader steploader = StepLoader.getInstance();
String fromstepid = steploader.getStepPluginID(tii);
|
becomes
Code Block |
---|
PluginRegistry registry = PluginRegistry.getInstance();
String fromstepid = registry.getPluginId(tii);
|
Code Block |
---|
repository = (Repository) RepositoryLoader.createRepository(repositoryMeta);
|
becomes
Code Block |
---|
repository = (Repository)PluginRegistry.getInstance().loadClass(RepositoryPluginType..class, repositoryMeta.getId(), PluginClassType.MainClassType);
repository.init(repositoryMeta);
|