1 package org.apache.continuum.web.action;
2
3 import java.util.ArrayList;
4 import java.util.List;
5 import java.util.Map;
6
7 import org.apache.continuum.release.distributed.DistributedReleaseUtil;
8 import org.apache.continuum.release.distributed.manager.DistributedReleaseManager;
9 import org.apache.maven.continuum.security.ContinuumRoleConstants;
10 import org.apache.maven.continuum.web.action.ContinuumActionSupport;
11 import org.apache.maven.continuum.web.model.DistributedReleaseSummary;
12 import org.codehaus.plexus.redback.rbac.Resource;
13 import org.codehaus.redback.integration.interceptor.SecureAction;
14 import org.codehaus.redback.integration.interceptor.SecureActionBundle;
15 import org.codehaus.redback.integration.interceptor.SecureActionException;
16
17
18
19
20 public class DistributedReleasesAction
21 extends ContinuumActionSupport
22 implements SecureAction
23 {
24 private List<DistributedReleaseSummary> releasesSummary;
25
26 public String list()
27 throws Exception
28 {
29 DistributedReleaseManager releaseManager = getContinuum().getDistributedReleaseManager();
30
31 List<Map<String, Object>> releases = releaseManager.getAllReleasesInProgress();
32
33 releasesSummary = new ArrayList<DistributedReleaseSummary>();
34
35 for ( Map<String, Object> release : releases )
36 {
37 DistributedReleaseSummary summary = new DistributedReleaseSummary();
38 summary.setReleaseId( DistributedReleaseUtil.getReleaseId( release ) );
39 summary.setReleaseGoal( DistributedReleaseUtil.getReleaseGoal( release ) );
40 summary.setBuildAgentUrl( DistributedReleaseUtil.getBuildAgentUrl( release ) );
41 summary.setProjectId( DistributedReleaseUtil.getProjectId( release ) );
42
43 releasesSummary.add( summary );
44 }
45
46 return SUCCESS;
47 }
48
49 public List<DistributedReleaseSummary> getReleasesSummary()
50 {
51 return releasesSummary;
52 }
53
54 public void setReleasesSummary( List<DistributedReleaseSummary> releasesSummary )
55 {
56 this.releasesSummary = releasesSummary;
57 }
58
59 public SecureActionBundle getSecureActionBundle()
60 throws SecureActionException
61 {
62 SecureActionBundle bundle = new SecureActionBundle();
63 bundle.setRequiresAuthentication( true );
64 bundle.addRequiredAuthorization( ContinuumRoleConstants.CONTINUUM_VIEW_RELEASE, Resource.GLOBAL );
65
66 return bundle;
67 }
68 }