Hi, I have the following code ( see below) and this parser is never registered.
Any ideas why? br, //Mike package jenkins.plugins.parse; import java.io.IOException; import java.util.List; import java.util.logging.Logger; import jenkins.plugins.qrank.PluginImpl; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; /** * Parses findbugs result XMLs generated using into objects that are then used * to display results in Jenkins. * http://www.xmlpull.org/v1/download/unpacked/doc/quick_intro.html * * * @author mikael petterson */ public class FindBugsParser extends AbstractPullParser { /** Prints the logs to the web server's console / log files */ private static final Logger log = Logger.getLogger(FindBugsParser.class .getName()); private static final String TYPE = "type"; private static final String PRIORITY = "priority"; private XmlPullParser xpp; private static int highCtr = 0; private static int mediumCtr = 0; private static int lowCtr = 0; private static final int HIGH = 1; private static final int MEDIUM = 2; private static final int LOW = 3; private enum TAGS { BUGINSTANCE, UNKNOWN; // convert from tagname in xml to value. public static TAGS fromString(String val) { if (val == null) { return UNKNOWN; } val = val.toUpperCase().replace('-', '_'); try { return TAGS.valueOf(val); } catch (IllegalArgumentException e) { return UNKNOWN; } } } // Register with Factory static { PullParserFactory.instance().registerParser(PluginImpl.FINDBUGS, new FindBugsParser()); } public AbstractPullParser createParser() { return new FindBugsParser(); } @Override public void execute() throws IOException, XmlPullParserException { while (XmlPullParser.END_DOCUMENT != getParser().nextToken()) { TAGS tag = TAGS.fromString(getParser().getName()); int eventType = getParser().getEventType(); switch (eventType) { // all opening tags case XmlPullParser.START_TAG: switch (tag) { case BUGINSTANCE: startBugInstance(); break; } break; } } getResults().setResult(PluginImpl.FB_HIGH_WARNINGS, highCtr); getResults().setResult(PluginImpl.FB_MEDIUM_WARNINGS, mediumCtr); getResults().setResult(PluginImpl.FB_LOW_WARNINGS, lowCtr); } private void startBugInstance() throws IOException, XmlPullParserException { String type = getParser().getAttributeValue("", TYPE); String priority = getParser().getAttributeValue("", PRIORITY); count(priority); } private void count(String priority) { int key = Integer.parseInt(priority); switch (key) { case HIGH: highCtr++; break; case MEDIUM: mediumCtr++; break; case LOW: mediumCtr++; break; default: break; } } public static int getHighCtr() { return highCtr; } public static void setHighCtr(int highCtr) { FindBugsParser.highCtr = highCtr; } public static int getMediumCtr() { return mediumCtr; } public static void setMediumCtr(int mediumCtr) { FindBugsParser.mediumCtr = mediumCtr; } public static int getLowCtr() { return lowCtr; } public static void setLowCtr(int lowCtr) { FindBugsParser.lowCtr = lowCtr; } /** * This for registration when testing since static initializer is not * called. **/ public static void initForTest() { PullParserFactory.instance().registerParser(PluginImpl.FINDBUGS, new FindBugsParser()); } } -- View this message in context: http://jenkins.361315.n4.nabble.com/static-initializer-not-working-tp4573686p4573686.html Sent from the Jenkins dev mailing list archive at Nabble.com.
