Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

...

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

The StepPlugin class and the PluginInterface are quite similar, you'll find your way around.  We took the opportunity to correct a few mistakes from in that class though:

  • 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);