-
Notifications
You must be signed in to change notification settings - Fork 48
/
V2ToV3Migrator.java
48 lines (40 loc) · 1.49 KB
/
V2ToV3Migrator.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
package hudson.plugins.global_build_stats.xstream.migration.v3;
import hudson.model.AbstractBuild;
import hudson.model.Run;
import hudson.plugins.global_build_stats.model.JobBuildResult;
import hudson.plugins.global_build_stats.xstream.migration.PreV8AbstractMigrator;
import hudson.plugins.global_build_stats.xstream.migration.v2.V2GlobalBuildStatsPOJO;
import java.util.ArrayList;
import java.util.List;
/**
* V3 Evolutions :
* - JobBuildResult.duration and JobBuildResult.nodeName attributes added
* @author fcamblor
*/
public class V2ToV3Migrator extends PreV8AbstractMigrator<V2GlobalBuildStatsPOJO, V3GlobalBuildStatsPOJO> {
@Override
protected V3GlobalBuildStatsPOJO createMigratedPojo() {
return new V3GlobalBuildStatsPOJO();
}
@Override
protected List<JobBuildResult> migrateJobBuildResults(
List<JobBuildResult> jobBuildResults) {
ArrayList<JobBuildResult> migratedJobBuildResults = new ArrayList<JobBuildResult>();
for(JobBuildResult jbr : jobBuildResults){
// Providing JobBuildResult.duration & nodeName attributes
long duration = JobBuildResult.EMPTY_DURATION;
String nodeName = JobBuildResult.EMPTY_NODE_NAME;
Run<?, ?> b = retrieveBuildFromJobBuildResult(jbr);
if(b != null){
duration = b.getDuration();
nodeName = (b instanceof AbstractBuild)
? ((AbstractBuild<?, ?>) b).getBuiltOnStr()
: "";
}
jbr.setDuration(duration);
jbr.setNodeName(nodeName);
migratedJobBuildResults.add(jbr);
}
return migratedJobBuildResults;
}
}