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.release.distributed.manager.DistributedReleaseManager;
23 import org.apache.maven.artifact.ArtifactUtils;
24 import org.apache.maven.continuum.ContinuumException;
25 import org.apache.maven.continuum.model.project.Project;
26 import org.apache.maven.continuum.release.ContinuumReleaseManager;
27 import org.apache.maven.continuum.web.exception.AuthorizationRequiredException;
28 import org.apache.maven.shared.release.config.ReleaseDescriptor;
29 import org.codehaus.plexus.util.StringUtils;
30
31 import java.util.Map;
32
33
34
35
36
37
38 public class ReleaseProjectGoalAction
39 extends ContinuumActionSupport
40 {
41 private int projectId;
42
43 private int projectGroupId;
44
45 private String projectName;
46
47 private String preparedReleaseName;
48
49 private String preparedReleaseId;
50
51 private String projectGroupName = "";
52
53 public String execute()
54 throws Exception
55 {
56 try
57 {
58 checkBuildProjectInGroupAuthorization( getProjectGroupName() );
59 }
60 catch ( AuthorizationRequiredException e )
61 {
62 return REQUIRES_AUTHORIZATION;
63 }
64
65 Project project = getContinuum().getProjectWithAllDetails( projectId );
66
67 String releaseId = ArtifactUtils.versionlessKey( project.getGroupId(), project.getArtifactId() );
68
69 if ( getContinuum().getConfiguration().isDistributedBuildEnabled() )
70 {
71 DistributedReleaseManager releaseManager = getContinuum().getDistributedReleaseManager();
72
73 preparedReleaseName = releaseManager.getPreparedReleaseName( releaseId );
74
75 if ( StringUtils.isNotBlank( preparedReleaseName ) )
76 {
77 preparedReleaseId = releaseId;
78 }
79 else
80 {
81 preparedReleaseName = null;
82 }
83 }
84 else
85 {
86 ContinuumReleaseManager releaseManager = getContinuum().getReleaseManager();
87
88 Map preparedReleases = releaseManager.getPreparedReleases();
89 if ( preparedReleases.containsKey( releaseId ) )
90 {
91 ReleaseDescriptor descriptor = (ReleaseDescriptor) preparedReleases.get( releaseId );
92
93 preparedReleaseName = descriptor.getReleaseVersions().get( releaseId ).toString();
94
95 preparedReleaseId = releaseId;
96 }
97 }
98
99 projectName = project.getName();
100
101 return SUCCESS;
102 }
103
104 public int getProjectId()
105 {
106 return projectId;
107 }
108
109 public void setProjectId( int projectId )
110 {
111 this.projectId = projectId;
112 }
113
114 public int getProjectGroupId()
115 {
116 return projectGroupId;
117 }
118
119 public void setProjectGroupId( int projectGroupId )
120 {
121 this.projectGroupId = projectGroupId;
122 }
123
124 public String getProjectName()
125 {
126 return projectName;
127 }
128
129 public void setProjectName( String projectName )
130 {
131 this.projectName = projectName;
132 }
133
134 public String getPreparedReleaseName()
135 {
136 return preparedReleaseName;
137 }
138
139 public void setPreparedReleaseName( String preparedReleaseName )
140 {
141 this.preparedReleaseName = preparedReleaseName;
142 }
143
144 public String getPreparedReleaseId()
145 {
146 return preparedReleaseId;
147 }
148
149 public void setPreparedReleaseId( String preparedReleaseId )
150 {
151 this.preparedReleaseId = preparedReleaseId;
152 }
153
154 public String getProjectGroupName()
155 throws ContinuumException
156 {
157 if ( StringUtils.isEmpty( projectGroupName ) )
158 {
159 projectGroupName = getContinuum().getProjectGroupByProjectId( projectId ).getName();
160 }
161
162 return projectGroupName;
163 }
164 }