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

@param descFile plugin configuration