protected void registerXmlPlugins() throws KettlePluginException { for (PluginFolderInterface folder : pluginFolders) { if (folder.isPluginXmlFolder()) { List<FileObject> pluginXmlFiles = findPluginXmlFiles(folder.getFolder()); for (FileObject file : pluginXmlFiles) { try { Document document = XMLHandler.loadXMLFile(file); Node pluginNode = XMLHandler.getSubNode(document, "plugin"); if (pluginNode != null) { registerPluginFromXmlResource( pluginNode, KettleVFS.getFilename(file.getParent()), this.getClass(), false, file.getParent().getURL()); } } catch (Exception e) { // We want to report this plugin.xml error, perhaps an XML typo or something like // that... // log.logError( "Error found while reading step plugin.xml file: " + file.getName().toString(), e); } } } } }
public FileObject[] getFileObjects(PluginFolderInterface pluginFolderInterface) throws KettleFileException { FileObject[] result = folderMap.get(pluginFolderInterface); if (result == null) { result = pluginFolderInterface.findJarFiles(); folderMap.put(pluginFolderInterface, result); } return result; }