1 package org.apache.maven.continuum.xmlrpc.client;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.maven.continuum.xmlrpc.project.BuildResult;
23 import org.apache.maven.continuum.xmlrpc.project.BuildResultSummary;
24 import org.apache.maven.continuum.xmlrpc.project.ProjectGroupSummary;
25 import org.apache.maven.continuum.xmlrpc.project.ProjectSummary;
26
27 import java.net.URL;
28 import java.util.Date;
29 import java.util.List;
30
31
32
33
34
35
36
37 public class BuildResultsPurge
38 {
39
40 private static ContinuumXmlRpcClient client;
41
42 private static long RETENTION_DAYS = 60;
43
44 private static long DAY_IN_MILLISECONDS = 24 * 60 * 60 * 1000;
45
46 public static void main( String[] args )
47 throws Exception
48 {
49
50 client = new ContinuumXmlRpcClient( new URL( args[0] ), args[1], args[2] );
51
52 long today = new Date().getTime();
53
54 System.out.println( "Today is " + new Date( today ) );
55
56 long purgeDate = today - ( RETENTION_DAYS * DAY_IN_MILLISECONDS );
57
58
59 System.out.println( "Purging build results older than " + new Date( purgeDate ) );
60
61 List<ProjectGroupSummary> groups = client.getAllProjectGroups();
62
63 for ( ProjectGroupSummary group : groups )
64 {
65
66 System.out.println( "Project Group [" + group.getId() + "] " + group.getName() );
67
68 List<ProjectSummary> projects = client.getProjects( group.getId() );
69
70 for ( ProjectSummary project : projects )
71 {
72
73 System.out.println( " Project [" + project.getId() + "] " + project.getName() );
74
75 List<BuildResultSummary> results = client.getBuildResultsForProject( project.getId() );
76
77 for ( BuildResultSummary brs : results )
78 {
79
80 BuildResult br = client.getBuildResult( project.getId(), brs.getId() );
81
82 System.out.print( " Build Result [" + br.getId() + "] ended " + new Date( br.getEndTime() ) );
83
84 if ( br.getEndTime() > 0 && br.getEndTime() < purgeDate )
85 {
86
87 client.removeBuildResult( br );
88 System.out.println( " ...removed." );
89 }
90 else
91 {
92 System.out.println( " ...retained." );
93 }
94 }
95 }
96
97 }
98 }
99 }