public void parseXmlForAdditionalClasses() throws KettleException { try { Properties sysprops = System.getProperties(); String strActPath = sysprops.getProperty( "user.dir" ); Document dom = XMLHandler.loadXMLFile( strActPath + "/plugins/steps/ScriptValues_mod/plugin.xml" ); Node stepnode = dom.getDocumentElement(); Node libraries = XMLHandler.getSubNode( stepnode, "js_libraries" ); int nbOfLibs = XMLHandler.countNodes( libraries, "js_lib" ); additionalClasses = new ScriptAddClasses[nbOfLibs]; for ( int i = 0; i < nbOfLibs; i++ ) { Node fnode = XMLHandler.getSubNodeByNr( libraries, "js_lib", i ); String strJarName = XMLHandler.getTagAttribute( fnode, "name" ); String strClassName = XMLHandler.getTagAttribute( fnode, "classname" ); String strJSName = XMLHandler.getTagAttribute( fnode, "js_name" ); Class<?> addClass = LoadAdditionalClass( strActPath + "/plugins/steps/ScriptValues_mod/" + strJarName, strClassName ); Object addObject = addClass.newInstance(); additionalClasses[i] = new ScriptAddClasses( addClass, addObject, strJSName ); } } catch ( Exception e ) { throw new KettleException( BaseMessages.getString( PKG, "ScriptMeta.Exception.UnableToParseXMLforAdditionalClasses" ), e ); } }