private Element parseDesc ( final File descFile ) { try { parser . setPluginDir ( descFile . getParentFile ( ) ) ; final Element root = parser . parse ( descFile . getAbsoluteFile ( ) ) ; final Features f = parser . getFeatures ( ) ; final String id = f . getPluginId ( ) ; validatePlugin ( f ) ; extensionPoints . addAll ( f . getExtensionPoints ( ) . keySet ( ) ) ; pluginTable . put ( id , f ) ; return root ; } catch ( final RuntimeException e ) { throw e ; } catch ( final SAXParseException e ) { final RuntimeException ex = new RuntimeException ( "Failed to parse " + descFile . getAbsolutePath ( ) + ": " + e . getMessage ( ) , e ) ; throw ex ; } catch ( final Exception e ) { throw new RuntimeException ( e ) ; } }
Parse plugin configuration file