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.maven.continuum.ContinuumException;
23 import org.apache.maven.continuum.web.exception.AuthorizationRequiredException;
24 import org.apache.continuum.web.util.AuditLog;
25 import org.apache.continuum.web.util.AuditLogConstants;
26 import org.codehaus.plexus.util.StringUtils;
27
28
29
30
31
32
33 public class BuildProjectAction
34 extends ContinuumActionSupport
35 {
36 private int projectId;
37
38 private int buildDefinitionId;
39
40 private int projectGroupId;
41
42 private boolean fromGroupPage = false;
43
44 private boolean fromProjectPage = false;
45
46 private String projectGroupName = "";
47
48 public String execute()
49 throws ContinuumException
50 {
51 try
52 {
53 checkBuildProjectInGroupAuthorization( getProjectGroupName() );
54 }
55 catch ( AuthorizationRequiredException e )
56 {
57 return REQUIRES_AUTHORIZATION;
58 }
59
60 if ( projectId > 0 )
61 {
62 if ( buildDefinitionId > 0 )
63 {
64 getContinuum().buildProjectWithBuildDefinition( projectId, buildDefinitionId );
65 }
66 else
67 {
68 getContinuum().buildProject( projectId );
69 }
70 }
71 else
72 {
73 if ( buildDefinitionId > 0 )
74 {
75 getContinuum().buildProjectGroupWithBuildDefinition( projectGroupId, buildDefinitionId );
76 }
77 else
78 {
79
80
81 getContinuum().buildProjects();
82 }
83 }
84
85 AuditLog event = new AuditLog( AuditLogConstants.FORCE_BUILD );
86 event.setCurrentUser( getPrincipal() );
87
88 if ( projectId > 0 )
89 {
90 event.setResource( "Project id=" + projectId );
91 event.setCategory( AuditLogConstants.PROJECT );
92 event.log();
93
94 if ( fromGroupPage )
95 {
96 return "to_group_page";
97 }
98 if ( fromProjectPage )
99 {
100 return "to_project_page";
101 }
102 }
103 else
104 {
105 event.setResource( "Project Group id=" + projectGroupId );
106 event.setCategory( AuditLogConstants.PROJECT_GROUP );
107 event.log();
108 if ( fromGroupPage )
109 {
110 return "to_group_page";
111 }
112 }
113
114 return SUCCESS;
115 }
116
117 public void setProjectId( int projectId )
118 {
119 this.projectId = projectId;
120 }
121
122 public int getProjectId()
123 {
124 return projectId;
125 }
126
127 public void setBuildDefinitionId( int buildDefinitionId )
128 {
129 this.buildDefinitionId = buildDefinitionId;
130 }
131
132 public int getBuildDefinition()
133 {
134 return buildDefinitionId;
135 }
136
137 public int getProjectGroupId()
138 {
139 return projectGroupId;
140 }
141
142 public void setProjectGroupId( int projectGroupId )
143 {
144 this.projectGroupId = projectGroupId;
145 }
146
147 public boolean isFromGroupPage()
148 {
149 return fromGroupPage;
150 }
151
152 public void setFromGroupPage( boolean fromGroupPage )
153 {
154 this.fromGroupPage = fromGroupPage;
155 }
156
157 public boolean isFromProjectPage()
158 {
159 return fromProjectPage;
160 }
161
162 public void setFromProjectPage( boolean fromProjectPage )
163 {
164 this.fromProjectPage = fromProjectPage;
165 }
166
167 public String getProjectGroupName()
168 throws ContinuumException
169 {
170 if ( StringUtils.isEmpty( projectGroupName ) )
171 {
172 if ( projectGroupId != 0 )
173 {
174 projectGroupName = getContinuum().getProjectGroup( projectGroupId ).getName();
175 }
176 else
177 {
178 projectGroupName = getContinuum().getProjectGroupByProjectId( projectId ).getName();
179 }
180 }
181
182 return projectGroupName;
183 }
184 }