1 package org.apache.maven.continuum.web.action;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.continuum.model.project.ProjectGroupSummary;
23 import org.apache.maven.continuum.ContinuumException;
24 import org.apache.maven.continuum.model.project.ProjectGroup;
25 import org.apache.maven.continuum.web.exception.AuthorizationRequiredException;
26 import org.apache.maven.continuum.web.model.GroupSummary;
27 import org.slf4j.Logger;
28 import org.slf4j.LoggerFactory;
29
30 import java.util.ArrayList;
31 import java.util.Collection;
32 import java.util.List;
33 import java.util.Map;
34
35
36
37
38
39
40 public class GroupSummaryAction
41 extends ContinuumActionSupport
42 {
43 private static final Logger logger = LoggerFactory.getLogger( GroupSummaryAction.class );
44
45 private String infoMessage;
46
47 private List<GroupSummary> groups;
48
49 public String execute()
50 throws ContinuumException
51 {
52 groups = new ArrayList<GroupSummary>();
53
54
55 Collection<ProjectGroup> projectGroups = getContinuum().getAllProjectGroups();
56 Map<Integer, ProjectGroupSummary> summaries = getContinuum().getProjectsSummaryByGroups();
57
58 for ( ProjectGroup projectGroup : projectGroups )
59 {
60
61 if ( isAuthorized( projectGroup.getName() ) )
62 {
63 if ( logger.isDebugEnabled() )
64 {
65 logger.debug( "GroupSummaryAction: building group " + projectGroup.getName() );
66 }
67
68 GroupSummary groupModel = new GroupSummary();
69 groupModel.setId( projectGroup.getId() );
70 groupModel.setGroupId( projectGroup.getGroupId() );
71 groupModel.setName( projectGroup.getName() );
72 groupModel.setDescription( projectGroup.getDescription() );
73
74 ProjectGroupSummary summary = summaries.get( projectGroup.getId() );
75
76 if ( summary != null )
77 {
78 groupModel.setNumProjects( summary.getNumberOfProjects() );
79 groupModel.setNumErrors( summary.getNumberOfErrors() );
80 groupModel.setNumFailures( summary.getNumberOfFailures() );
81 groupModel.setNumSuccesses( summary.getNumberOfSuccesses() );
82 }
83
84
85
86
87 if ( logger.isDebugEnabled() )
88 {
89 logger.debug( "GroupSummaryAction: adding group to groups list " + groupModel.getName() );
90 }
91 groups.add( groupModel );
92 }
93 }
94
95 return SUCCESS;
96 }
97
98 public List<GroupSummary> getGroups()
99 {
100 return groups;
101 }
102
103
104 public String getInfoMessage()
105 {
106 return infoMessage;
107 }
108
109 public void setInfoMessage( String infoMessage )
110 {
111 this.infoMessage = infoMessage;
112 }
113
114 private boolean isAuthorized( String projectGroupName )
115 {
116 try
117 {
118 checkViewProjectGroupAuthorization( projectGroupName );
119 return true;
120 }
121 catch ( AuthorizationRequiredException authzE )
122 {
123 return false;
124 }
125 }
126 }