View Javadoc

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   * @plexus.component role="com.opensymphony.xwork2.Action" role-hint="distributedRelease"
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  }