From e3e8b4811d6496bc38a6b963c9ec417e3f7e2603 Mon Sep 17 00:00:00 2001 From: Rene Schneider Date: Fri, 1 Apr 2022 13:52:57 +0200 Subject: [PATCH] fixes #25: Testresult serialized into build.xml+IntegrityResultData.xml --- .../IntegrityCompoundTestResult.java | 1 + .../integrity/IntegrityPluginInitializer.java | 30 +++++++++++++++++++ .../integrity/IntegrityTestResultAction.java | 14 --------- 3 files changed, 31 insertions(+), 14 deletions(-) create mode 100644 de.gebit.integrity.jenkins/src/main/java/de/gebit/integrity/IntegrityPluginInitializer.java diff --git a/de.gebit.integrity.jenkins/src/main/java/de/gebit/integrity/IntegrityCompoundTestResult.java b/de.gebit.integrity.jenkins/src/main/java/de/gebit/integrity/IntegrityCompoundTestResult.java index 69bdbe2..96918a0 100644 --- a/de.gebit.integrity.jenkins/src/main/java/de/gebit/integrity/IntegrityCompoundTestResult.java +++ b/de.gebit.integrity.jenkins/src/main/java/de/gebit/integrity/IntegrityCompoundTestResult.java @@ -52,6 +52,7 @@ public class IntegrityCompoundTestResult extends TabulatedResult { static { XSTREAM.alias("result", IntegrityCompoundTestResult.class); + XSTREAM.processAnnotations(IntegrityCompoundTestResult.class); XSTREAM.registerConverter(new HeapSpaceStringConverter(), 100); } diff --git a/de.gebit.integrity.jenkins/src/main/java/de/gebit/integrity/IntegrityPluginInitializer.java b/de.gebit.integrity.jenkins/src/main/java/de/gebit/integrity/IntegrityPluginInitializer.java new file mode 100644 index 0000000..ad55771 --- /dev/null +++ b/de.gebit.integrity.jenkins/src/main/java/de/gebit/integrity/IntegrityPluginInitializer.java @@ -0,0 +1,30 @@ +/******************************************************************************* + * Copyright (c) 2022 Rene Schneider, GEBIT Solutions GmbH and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + *******************************************************************************/ +package de.gebit.integrity; + +import hudson.init.InitMilestone; +import hudson.init.Initializer; +import hudson.model.Run; + +/** + * + * + * @author Rene Schneider - initial API and implementation + * + */ +public class IntegrityPluginInitializer { + + @Initializer(before = InitMilestone.JOB_LOADED) + public static void init() { + // This is important to fix issue #25 (Testresult data serialized into build.xml and integrityResultData.xml) + // Due to JEP-228 (https://github.com/jenkinsci/jep/blob/master/jep/228/README.adoc) the XStream annotations + // used on IntegrityCompoundTestResult do not work automatically anymore and must be manually parsed. + Run.XSTREAM.processAnnotations(IntegrityCompoundTestResult.class); + } + +} diff --git a/de.gebit.integrity.jenkins/src/main/java/de/gebit/integrity/IntegrityTestResultAction.java b/de.gebit.integrity.jenkins/src/main/java/de/gebit/integrity/IntegrityTestResultAction.java index 558a2cb..8cf8bd2 100644 --- a/de.gebit.integrity.jenkins/src/main/java/de/gebit/integrity/IntegrityTestResultAction.java +++ b/de.gebit.integrity.jenkins/src/main/java/de/gebit/integrity/IntegrityTestResultAction.java @@ -15,16 +15,12 @@ import org.kohsuke.stapler.StaplerProxy; import org.kohsuke.stapler.export.Exported; -import com.thoughtworks.xstream.XStream; - import hudson.model.Action; import hudson.model.HealthReport; import hudson.model.Job; import hudson.model.Run; import hudson.model.TaskListener; import hudson.tasks.test.AbstractTestResultAction; -import hudson.util.HeapSpaceStringConverter; -import hudson.util.XStream2; import jenkins.tasks.SimpleBuildStep; /** @@ -45,16 +41,6 @@ public class IntegrityTestResultAction extends AbstractTestResultAction projectActions; - /** - * The XStream instance used for result persistence. - */ - private static final XStream XSTREAM = new XStream2(); - - static { - XSTREAM.alias("result", IntegrityCompoundTestResult.class); - XSTREAM.registerConverter(new HeapSpaceStringConverter(), 100); - } - /** * The action URL part. */