Author: tchemit Date: 2012-10-13 11:51:34 +0200 (Sat, 13 Oct 2012) New Revision: 360 Url: http://nuiton.org/repositories/revision/jredmine/360 Log: fixes #2348: next-version goal does not work any more fixes #2351: Normalize maven plugin code fixes #2352: Improve maven plugin goals parameters documentation Modified: trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/AbstractRedmineMojo.java trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/AbstractRedmineMojoWithProject.java trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/AbstractRedmineMojoWithProjectAndVersion.java trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/DisplayDataMojo.java trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/GenerateChangesMojo.java trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/LoginMojo.java trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/NextVersionMojo.java trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/PublishAttachmentsMojo.java trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/PublishNewsMojo.java trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/UpdateVersionMojo.java trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/announcement/AbstractAnnouncementMojo.java trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/announcement/GenerateEmailAnnouncementMojo.java trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/announcement/GenerateNewsAnnouncementMojo.java trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/report/AbstractIssuesReport.java trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/report/AbstractRedmineReport.java trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/report/IssuesReport.java trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/report/IssuesReportByAssignee.java trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/report/IssuesReportByCategory.java trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/report/IssuesReportByPriority.java trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/report/IssuesReportByReporter.java trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/report/IssuesReportByStatus.java trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/report/IssuesReportByTracker.java trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/report/IssuesReportByVersion.java Modified: trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/AbstractRedmineMojo.java =================================================================== --- trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/AbstractRedmineMojo.java 2012-10-12 12:47:37 UTC (rev 359) +++ trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/AbstractRedmineMojo.java 2012-10-13 09:51:34 UTC (rev 360) @@ -50,13 +50,9 @@ public static final String REDMINE_SYSTEM = "redmine"; - /** - * Dependance du projet. - * - * @since 1.0.0 - */ - @Component - protected MavenProject project; + /////////////////////////////////////////////////////////////////////////// + /// Mojo parameters + /////////////////////////////////////////////////////////////////////////// /** * The real basedir redmine url. @@ -113,7 +109,7 @@ protected String encoding; /** - * Un flag pour activer le mode verbeux. + * Flag to activate verbose mode. * * @since 1.0.0 */ @@ -121,16 +117,31 @@ protected boolean verbose; /** - * Un flag pour faire échouer le build si la configuration n'est pas ok. + * Flag to fail build if configuration is not ok. * * @since 1.0.0 */ @Parameter(property = "redmine.safe", defaultValue = "true") protected boolean safe; + /////////////////////////////////////////////////////////////////////////// + /// Mojo components + /////////////////////////////////////////////////////////////////////////// + /** + * Current project. + * + * @since 1.0.0 */ @Component + protected MavenProject project; + + /** + * Maven session. + * + * @since 1.0.0 + */ + @Component protected MavenSession session; /** @@ -141,6 +152,10 @@ @Component protected RedmineService service; + /////////////////////////////////////////////////////////////////////////// + /// Mojo internal attributes + /////////////////////////////////////////////////////////////////////////// + /** the date format used to write a date */ protected DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); @@ -153,6 +168,111 @@ protected boolean initOk = true; /////////////////////////////////////////////////////////////////////////// + /// Plugin + /////////////////////////////////////////////////////////////////////////// + + @Override + public MavenProject getProject() { + return project; + } + + @Override + public void setProject(MavenProject project) { + this.project = project; + } + + @Override + public boolean isVerbose() { + return verbose; + } + + @Override + public void setVerbose(boolean verbose) { + this.verbose = verbose; + } + + /////////////////////////////////////////////////////////////////////////// + /// PluginWithEncoding + /////////////////////////////////////////////////////////////////////////// + + @Override + public String getEncoding() { + return encoding; + } + + @Override + public void setEncoding(String encoding) { + this.encoding = encoding; + } + + /////////////////////////////////////////////////////////////////////////// + /// RestClientConfiguration + /////////////////////////////////////////////////////////////////////////// + + @Override + public String getRestPassword() { + return password; + } + + @Override + public URL getRestUrl() { + return url; + } + + @Override + public String getRestUsername() { + return username; + } + + @Override + public void setRestPassword(String restPassword) { + password = restPassword; + } + + @Override + public void setRestUrl(URL restUrl) { + url = restUrl; + } + + @Override + public void setRestUsername(String restUsername) { + username = restUsername; + } + + /** + * <strong>Note:</strong> Still not used (will be in version 2.0) + * + * @return the api key + * @since 2.0 + */ + @Override + public String getApiKey() { + return null; +// return apiKey; + } + + /** + * <strong>Note:</strong> Still not used (will be in version 2.0) + * + * @param apiKey the niew api key to set + * @since 2.0 + */ + @Override + public void setApiKey(String apiKey) { +// this.apiKey = apiKey; + } + + /////////////////////////////////////////////////////////////////////////// + /// AbstractRedmineMojo + /////////////////////////////////////////////////////////////////////////// + + protected abstract boolean isGoalSkip(); + + protected abstract boolean isRunOnce(); + + protected abstract boolean checkRunOnceDone(); + + /////////////////////////////////////////////////////////////////////////// /// AbstractPlugin /////////////////////////////////////////////////////////////////////////// @@ -213,7 +333,7 @@ service.init(this); serviceInit = true; } catch (Exception e) { - if (isSafe()) { + if (safe) { throw e; } serviceInit = false; @@ -255,108 +375,7 @@ @Override protected abstract void doAction() throws Exception; - protected abstract boolean isGoalSkip(); - - protected abstract boolean isRunOnce(); - - protected abstract boolean checkRunOnceDone(); - /////////////////////////////////////////////////////////////////////////// - /// Plugin - /////////////////////////////////////////////////////////////////////////// - - @Override - public MavenProject getProject() { - return project; - } - - @Override - public void setProject(MavenProject project) { - this.project = project; - } - - @Override - public boolean isVerbose() { - return verbose; - } - - @Override - public void setVerbose(boolean verbose) { - this.verbose = verbose; - } - - /////////////////////////////////////////////////////////////////////////// - /// PluginWithencoding - /////////////////////////////////////////////////////////////////////////// - - @Override - public String getEncoding() { - return encoding; - } - - @Override - public void setEncoding(String encoding) { - this.encoding = encoding; - } - - /////////////////////////////////////////////////////////////////////////// - /// RestClientConfiguration - /////////////////////////////////////////////////////////////////////////// - - @Override - public String getRestPassword() { - return password; - } - - @Override - public URL getRestUrl() { - return url; - } - - @Override - public String getRestUsername() { - return username; - } - - @Override - public void setRestPassword(String restPassword) { - password = restPassword; - } - - @Override - public void setRestUrl(URL restUrl) { - url = restUrl; - } - - @Override - public void setRestUsername(String restUsername) { - username = restUsername; - } - - /** - * <strong>Note:</strong> Still not used (will be in version 2.0) - * - * @return the api key - * @since 2.0 - */ - @Override - public String getApiKey() { - return null; -// return apiKey; - } - - /** - * <strong>Note:</strong> Still not used (will be in version 2.0) - * - * @param apiKey the niew api key to set - * @since 2.0 - */ - @Override - public void setApiKey(String apiKey) { -// this.apiKey = apiKey; - } - - /////////////////////////////////////////////////////////////////////////// /// Others /////////////////////////////////////////////////////////////////////////// @@ -375,11 +394,17 @@ return runOnceDone; } - public boolean isSafe() { - return safe; + /** + * Convinient method to throw the given {@code message} + * if {@link #safe} flag is on. + * + * @param message message to throw if safe mode is on + * @throws MojoExecutionException the error thrown if safe flag is on + * @since 1.4.1 + */ + protected void failIfSafe(String message) throws MojoExecutionException { + if (safe) { + throw new MojoExecutionException(message); + } } - - public void setSafe(boolean safe) { - this.safe = safe; - } } Modified: trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/AbstractRedmineMojoWithProject.java =================================================================== --- trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/AbstractRedmineMojoWithProject.java 2012-10-12 12:47:37 UTC (rev 359) +++ trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/AbstractRedmineMojoWithProject.java 2012-10-13 09:51:34 UTC (rev 360) @@ -39,6 +39,10 @@ */ public abstract class AbstractRedmineMojoWithProject extends AbstractRedmineMojo implements RedmineProjectAware { + /////////////////////////////////////////////////////////////////////////// + /// Mojo parameters + /////////////////////////////////////////////////////////////////////////// + /** * Redmine project name. * @@ -47,6 +51,10 @@ @Parameter(property = "redmine.projectId", defaultValue = "${project.artifactId}", required = true) protected String projectId; + /////////////////////////////////////////////////////////////////////////// + /// Mojo internal attributes + /////////////////////////////////////////////////////////////////////////// + /** the project loaded in init. */ protected Project releaseProject; @@ -59,10 +67,26 @@ /** flag to load in init a required user using the user loggued to redmine server. */ private final boolean requireUser; - public AbstractRedmineMojoWithProject(boolean requireUser) { + protected AbstractRedmineMojoWithProject(boolean requireUser) { this.requireUser = requireUser; } + /////////////////////////////////////////////////////////////////////////// + /// RedmineProjectAware + /////////////////////////////////////////////////////////////////////////// + + public final String getProjectId() { + return projectId; + } + + public final void setProjectId(String projectId) { + this.projectId = projectId; + } + + /////////////////////////////////////////////////////////////////////////// + /// AbstractPlugin + /////////////////////////////////////////////////////////////////////////// + @Override protected void init() throws Exception { @@ -74,9 +98,9 @@ boolean r = initReleaseProject(); if (!r) { - if (isSafe()) { - throw new MojoExecutionException("the project '" + projectId + "' could not be retrieve from redmine server."); - } + failIfSafe("the project '" + projectId + + "' could not be retrieve from redmine server."); + initOk = false; } } @@ -88,9 +112,8 @@ if (requireUser) { boolean r = initReleaseUser(); if (!r) { - if (isSafe()) { - throw new MojoExecutionException("the user '" + username + "' could not be retrieve from redmine server."); - } + failIfSafe("the user '" + username + + "' could not be retrieve from redmine server."); initOk = false; } } @@ -110,6 +133,7 @@ canContinue = false; } if (canContinue && requireUser && releaseUser == null) { + getLog().error("the user '" + username + "' could not be retrieve from redmine server, goal is skip"); canContinue = false; } @@ -117,6 +141,9 @@ return canContinue; } + /////////////////////////////////////////////////////////////////////////// + /// Others + /////////////////////////////////////////////////////////////////////////// protected boolean initReleaseProject() throws MojoExecutionException { @@ -134,7 +161,8 @@ releaseProject = p; return true; } catch (RedmineServiceException e) { - getLog().warn("could not retreave project '" + projectId + "', for reason " + e.getMessage(), e); + getLog().warn("could not retrieve project '" + projectId + + "', for reason " + e.getMessage(), e); return false; } } @@ -158,20 +186,10 @@ releaseUser = user; return true; } catch (RedmineServiceException e) { - getLog().warn("could not retreave user '" + username + "', for reason " + e.getMessage(), e); + getLog().warn("could not retrieve user '" + username + + "', for reason " + e.getMessage(), e); return false; } } - /////////////////////////////////////////////////////////////////////////// - /// RedmineProjectAware - /////////////////////////////////////////////////////////////////////////// - - public final String getProjectId() { - return projectId; - } - - public final void setProjectId(String projectId) { - this.projectId = projectId; - } } Modified: trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/AbstractRedmineMojoWithProjectAndVersion.java =================================================================== --- trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/AbstractRedmineMojoWithProjectAndVersion.java 2012-10-12 12:47:37 UTC (rev 359) +++ trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/AbstractRedmineMojoWithProjectAndVersion.java 2012-10-13 09:51:34 UTC (rev 360) @@ -25,7 +25,9 @@ import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugins.annotations.Parameter; +import org.codehaus.plexus.util.StringUtils; import org.nuiton.jredmine.RedmineServiceException; +import org.nuiton.jredmine.model.ModelHelper; import org.nuiton.jredmine.model.Version; /** @@ -36,36 +38,64 @@ */ public abstract class AbstractRedmineMojoWithProjectAndVersion extends AbstractRedmineMojoWithProject implements RedmineVersionAware { + /////////////////////////////////////////////////////////////////////////// + /// Mojo parameters + /////////////////////////////////////////////////////////////////////////// + /** - * redmine version name. + * Redmine version name. * * @since 1.0.0 */ @Parameter(property = "redmine.versionId", defaultValue = "${project.version}") protected String versionId; + /////////////////////////////////////////////////////////////////////////// + /// Mojo internal attributes + /////////////////////////////////////////////////////////////////////////// + /** the version loaded in init. */ protected Version releaseVersion; - public AbstractRedmineMojoWithProjectAndVersion(boolean requireUser) { + /** + * flag to load in init a required version using the versionId + * to redmine server. + * + * @since 1.4.1 + */ + private final boolean requireVersion; + + /** + * All versions of the project loaded in init phase. + * + * @since 1.4.1 + */ + private Version[] projectVersions; + + protected AbstractRedmineMojoWithProjectAndVersion(boolean requireUser, + boolean requireVersion) { super(requireUser); + this.requireVersion = requireVersion; } + /////////////////////////////////////////////////////////////////////////// + /// RedmineVersionAware + /////////////////////////////////////////////////////////////////////////// + @Override - protected boolean checkSkip() { + public final String getVersionId() { + return versionId; + } - boolean canContinue = super.checkSkip(); + @Override + public final void setVersionId(String versionId) { + this.versionId = versionId; + } - if (canContinue) { + /////////////////////////////////////////////////////////////////////////// + /// AbstractPlugin + /////////////////////////////////////////////////////////////////////////// - if (releaseVersion == null) { - getLog().error("the version '" + versionId + "' could not be retrieve from redmine server, goal is skip"); - canContinue = false; - } - } - return canContinue; - } - @Override protected void init() throws Exception { @@ -73,52 +103,64 @@ if (initOk) { - // check project exists + try { + // load project versions + projectVersions = service.getVersions(projectId); + } catch (RedmineServiceException e) { + getLog().warn("could not retrieve project versions, for reason " + e.getMessage(), e); + initOk = false; + } - boolean r = initReleaseVersion(); - if (!r) { - if (isSafe()) { - throw new MojoExecutionException("the version '" + versionId + "' could not be retrieve from redmine server."); + if (initOk && requireVersion) { + + // load required version + + boolean r = initReleaseVersion(); + if (!r) { + failIfSafe("the version '" + versionId + "' could not be retrieve from redmine server."); + initOk = false; } - initOk = false; } } } - protected boolean initReleaseVersion() throws MojoExecutionException { + @Override + protected boolean checkSkip() { - if (versionId == null || versionId.trim().isEmpty()) { - throw new MojoExecutionException("required a versionId parameter"); - } + boolean canContinue = super.checkSkip(); - try { + if (canContinue && requireVersion) { - Version v = service.getVersion(projectId, versionId); + if (releaseVersion == null) { - if (v == null) { - - return false; + getLog().error("the version '" + versionId + "' could not be retrieve from redmine server, goal is skip"); + canContinue = false; } - - releaseVersion = v; - return true; - } catch (RedmineServiceException e) { - getLog().warn("could not retreave version '" + versionId + "', for reason " + e.getMessage(), e); - return false; } + return canContinue; } /////////////////////////////////////////////////////////////////////////// - /// RedmineVersionAware + /// Others /////////////////////////////////////////////////////////////////////////// - @Override - public final String getVersionId() { - return versionId; + protected Version[] getProjectVersions() { + return projectVersions; } - @Override - public final void setVersionId(String versionId) { - this.versionId = versionId; + protected Version getProjectVersion(String versionId) { + Version v = ModelHelper.byVersionName(versionId, projectVersions); + return v; } + + protected boolean initReleaseVersion() throws MojoExecutionException { + + if (StringUtils.isBlank(versionId)) { + throw new MojoExecutionException("required a versionId parameter"); + } + + releaseVersion = getProjectVersion(versionId); + + return releaseVersion != null; + } } Modified: trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/DisplayDataMojo.java =================================================================== --- trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/DisplayDataMojo.java 2012-10-12 12:47:37 UTC (rev 359) +++ trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/DisplayDataMojo.java 2012-10-13 09:51:34 UTC (rev 360) @@ -64,6 +64,10 @@ @Mojo(name = "display-data", requiresOnline = true, requiresProject = true) public class DisplayDataMojo extends AbstractRedmineMojo implements RedmineProjectAware, RedmineVersionAware { + /////////////////////////////////////////////////////////////////////////// + /// Mojo parameters + /////////////////////////////////////////////////////////////////////////// + /** * Redmine project name. * @@ -73,7 +77,7 @@ protected String projectId; /** - * redmine version name. + * Redmine version name. * * @since 1.0.0 */ @@ -119,6 +123,10 @@ @Parameter(property = "anonymous", defaultValue = "true") protected boolean anonymous; + /////////////////////////////////////////////////////////////////////////// + /// Mojo internal attributes + /////////////////////////////////////////////////////////////////////////// + /** list of actions to perform */ protected Map<String, Class<?>> actions; @@ -150,35 +158,11 @@ namesToType.put("user", User.class); } - @Override - protected boolean checkRunOnceDone() { - return false; - } + /////////////////////////////////////////////////////////////////////////// + /// RestClientConfiguration + /////////////////////////////////////////////////////////////////////////// @Override - protected boolean isGoalSkip() { - return false; - } - - @Override - protected boolean isRunOnce() { - return false; - } - - @Override - protected void init() throws Exception { - - if (versionId != null) { - // always remove snapshot (TODO-TC20100124 perharps should it be a flag ?) - versionId = PluginHelper.removeSnapshotSuffix(versionId); - } - - super.init(); - - actions = getDownloadActions(); - } - - @Override public boolean isAnonymous() { return anonymous; } @@ -216,7 +200,43 @@ this.versionId = versionId; } + /////////////////////////////////////////////////////////////////////////// + /// AbstractRedmineMojo + /////////////////////////////////////////////////////////////////////////// + @Override + protected boolean checkRunOnceDone() { + return false; + } + + @Override + protected boolean isGoalSkip() { + return false; + } + + @Override + protected boolean isRunOnce() { + return false; + } + + /////////////////////////////////////////////////////////////////////////// + /// AbstractPlugin + /////////////////////////////////////////////////////////////////////////// + + @Override + protected void init() throws Exception { + + if (versionId != null) { + // always remove snapshot (TODO-TC20100124 perharps should it be a flag ?) + versionId = PluginHelper.removeSnapshotSuffix(versionId); + } + + super.init(); + + actions = getDownloadActions(); + } + + @Override protected boolean checkSkip() { boolean canContinue; if (actions == null || actions.isEmpty()) { @@ -277,6 +297,10 @@ System.out.println(buffer.toString()); } + /////////////////////////////////////////////////////////////////////////// + /// Others + /////////////////////////////////////////////////////////////////////////// + protected Map<String, Class<?>> getDownloadActions() throws MojoFailureException { Map<String, Class<?>> results = Maps.newTreeMap(); Modified: trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/GenerateChangesMojo.java =================================================================== --- trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/GenerateChangesMojo.java 2012-10-12 12:47:37 UTC (rev 359) +++ trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/GenerateChangesMojo.java 2012-10-13 09:51:34 UTC (rev 360) @@ -34,6 +34,7 @@ import org.apache.maven.plugins.changes.model.Properties; import org.apache.maven.plugins.changes.model.Release; import org.apache.maven.plugins.changes.model.io.xpp3.ChangesXpp3Writer; +import org.codehaus.plexus.util.StringUtils; import org.codehaus.plexus.util.xml.XmlStreamWriter; import org.nuiton.jredmine.RedmineServiceException; import org.nuiton.jredmine.model.Issue; @@ -75,6 +76,10 @@ remove } + /////////////////////////////////////////////////////////////////////////// + /// Mojo parameters + /////////////////////////////////////////////////////////////////////////// + /** * Flag to know if anonymous connexion to redmine server is required. * <p/> @@ -185,6 +190,10 @@ @Parameter(property = "redmine.generateOnce", defaultValue = "true") protected boolean generateOnce; + /////////////////////////////////////////////////////////////////////////// + /// Mojo internal attributes + /////////////////////////////////////////////////////////////////////////// + /** le fichier deja genere */ private static File cacheChangesFile; @@ -196,9 +205,13 @@ private Version[] versions; public GenerateChangesMojo() { - super(true); + super(true, true); } + /////////////////////////////////////////////////////////////////////////// + /// RestClientConfiguration + /////////////////////////////////////////////////////////////////////////// + @Override public boolean isAnonymous() { return anonymous; @@ -209,7 +222,52 @@ this.anonymous = anonymous; } + /////////////////////////////////////////////////////////////////////////// + /// IssueCollectionConfiguration + /////////////////////////////////////////////////////////////////////////// + @Override + public boolean isOnlyCurrentVersion() { + return onlyCurrentVersion; + } + + @Override + public int getMaxEntries() { + // no filter on priority for building the changes.xml file + return 0; + } + + @Override + public String getPriorityIds() { + // no filter on priority for building the changes.xml file + return null; + } + + @Override + public String getCategoryIds() { + return filters.get("category"); + } + + @Override + public String getVersionNames() { + return filters.get("version"); + } + + @Override + public String getStatusIds() { + return filters.get("status"); + } + + @Override + public String getTrackerIds() { + return filters.get("tracker"); + } + + /////////////////////////////////////////////////////////////////////////// + /// AbstractRedmineMojo + /////////////////////////////////////////////////////////////////////////// + + @Override protected boolean isGoalSkip() { return skipGenerateChanges; } @@ -238,6 +296,10 @@ return true; } + /////////////////////////////////////////////////////////////////////////// + /// AbstractPlugin + /////////////////////////////////////////////////////////////////////////// + @Override protected void init() throws Exception { @@ -245,7 +307,7 @@ throw new MojoExecutionException("required a xmlPath parameter"); } - if (versionId == null || versionId.trim().isEmpty()) { + if (StringUtils.isBlank(versionId)) { throw new MojoExecutionException("required a versionId parameter"); } @@ -264,7 +326,7 @@ getLog().warn("The goal is skip due to the skipGoal flag on"); return; } - + super.init(); if (!safe && !initOk) { // we are in none safe mode but init is not ok... @@ -304,16 +366,16 @@ throw new MojoExecutionException("could not obtain categories for reason " + e.getMessage(), e); } - // get versions +// // get versions +// +// try { +// +// versions = service.getVersions(projectId); +// +// } catch (RedmineServiceException e) { +// throw new MojoExecutionException("could not obtain versions for reason " + e.getMessage(), e); +// } - try { - - versions = service.getVersions(projectId); - - } catch (RedmineServiceException e) { - throw new MojoExecutionException("could not obtain versions for reason " + e.getMessage(), e); - } - filters = new HashMap<String, String>(); // build trackerToAction and tracker filter @@ -351,7 +413,7 @@ filters.put("tracker", buffer.substring(1)); // create status filters - if (statusIds != null && !statusIds.trim().isEmpty()) { + if (StringUtils.isNotBlank(statusIds)) { for (String s : statusIds.split(",")) { Integer id = Integer.valueOf(s.trim()); @@ -368,7 +430,7 @@ filters.put("status", statusIds); // create category filters - if (categoryIds != null && !categoryIds.trim().isEmpty()) { + if (StringUtils.isNotBlank(categoryIds)) { for (String s : categoryIds.split(",")) { @@ -390,7 +452,7 @@ boolean versionExist = true; - releaseVersion = ModelHelper.byVersionName(versionId, versions); + releaseVersion = getProjectVersion(versionId); if (releaseVersion == null) { versionExist = false; @@ -413,7 +475,7 @@ buffer = new StringBuilder(); - for (Version v : versions) { + for (Version v : getProjectVersions()) { String versionName = v.getName(); @@ -517,6 +579,10 @@ cacheChangesFile = xmlPath; } + /////////////////////////////////////////////////////////////////////////// + /// Others + /////////////////////////////////////////////////////////////////////////// + protected ChangesDocument buildChangesDocument(Version version, User user, IssuesCollector collector) throws RedmineServiceException { ChangesDocument doc = new ChangesDocument(); Properties properties = new Properties(); @@ -634,63 +700,4 @@ return doc; } - /////////////////////////////////////////////////////////////////////////// - /// IssueCollectionConfiguration - /////////////////////////////////////////////////////////////////////////// - -// @Override -// public String getProjectId() { -// return projectId; -// } -// -// @Override -// public String getVersionId() { -// return versionId; -// } - - @Override - public boolean isOnlyCurrentVersion() { - return onlyCurrentVersion; - } - - @Override - public int getMaxEntries() { - // no filter on priority for building the changes.xml file - return 0; - } - - @Override - public String getPriorityIds() { - // no filter on priority for building the changes.xml file - return null; - } - -// @Override -// public void setVersionId(String versionId) { -// this.versionId = versionId; -// } - - @Override - public String getCategoryIds() { - return getFilters().get("category"); - } - - @Override - public String getVersionNames() { - return getFilters().get("version"); - } - - @Override - public String getStatusIds() { - return getFilters().get("status"); - } - - @Override - public String getTrackerIds() { - return getFilters().get("tracker"); - } - - protected Map<String, String> getFilters() { - return filters; - } } Modified: trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/LoginMojo.java =================================================================== --- trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/LoginMojo.java 2012-10-12 12:47:37 UTC (rev 359) +++ trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/LoginMojo.java 2012-10-13 09:51:34 UTC (rev 360) @@ -49,13 +49,9 @@ @Mojo(name = "login", requiresOnline = true, requiresProject = true) public class LoginMojo extends AbstractPlugin implements RedmineServiceConfiguration { - /** - * Dependance du projet. - * - * @since 1.2.1 - */ - @Component - protected MavenProject project; + /////////////////////////////////////////////////////////////////////////// + /// Mojo parameters + /////////////////////////////////////////////////////////////////////////// /** * The real basedir redmine url. @@ -68,7 +64,7 @@ protected URL url; /** - * Un flag pour activer le mode verbeux. + * Flag to activate verbose logging. * * @since 1.2.1 */ @@ -76,7 +72,7 @@ protected boolean verbose; /** - * Un flag pour verifier le login (effectue une connexion au serveur). + * Flag to check login is ok (will connect to server). * * @since 1.2.1 */ @@ -84,7 +80,7 @@ protected boolean checkLogin; /** - * Un flag pour faire échouer le build si la configuration n'est pas ok. + * Flag to fail build if configuration is not ok. * * @since 1.2.1 */ @@ -111,7 +107,19 @@ // @Parameter(property = "redmine.useApiKey", defaultValue = "false") // private boolean useApiKey; + /////////////////////////////////////////////////////////////////////////// + /// Mojo components + /////////////////////////////////////////////////////////////////////////// + /** + * Current project. + * + * @since 1.2.1 + */ + @Component + protected MavenProject project; + + /** * Settings. * * @since 1.2.1 @@ -120,7 +128,7 @@ protected Settings settings; /** - * password decypher. + * Password decypher. * * @since 1.2.1 */ @@ -136,8 +144,12 @@ @Component protected RedmineService service; + /////////////////////////////////////////////////////////////////////////// + /// Mojo internal attributes + /////////////////////////////////////////////////////////////////////////// + /** - * shared instance of delegate plugin to obtain login + * Shared instance of delegate plugin to obtain login * * @since 1.2.1 */ @@ -154,6 +166,97 @@ /////////////////////////////////////////////////////////////////////////// @Override + public MavenProject getProject() { + return project; + } + + @Override + public void setProject(MavenProject project) { + this.project = project; + } + + @Override + public boolean isVerbose() { + return verbose; + } + + @Override + public void setVerbose(boolean verbose) { + this.verbose = verbose; + } + + /////////////////////////////////////////////////////////////////////////// + /// PluginWithEncoding + /////////////////////////////////////////////////////////////////////////// + + @Override + public String getEncoding() { + return null; + } + + @Override + public void setEncoding(String encoding) { + } + + /////////////////////////////////////////////////////////////////////////// + /// RestClientConfiguration + /////////////////////////////////////////////////////////////////////////// + + @Override + public boolean isAnonymous() { + return false; + } + + @Override + public void setAnonymous(boolean anonymous) { + } + + /////////////////////////////////////////////////////////////////////////// + /// RestClientConfiguration + /////////////////////////////////////////////////////////////////////////// + + @Override + public String getRestPassword() { + return project.getProperties().getProperty(REDMINE_PASSWORD); + } + + @Override + public URL getRestUrl() { + return url; + } + + @Override + public String getRestUsername() { + return project.getProperties().getProperty(REDMINE_USERNAME); + } + + @Override + public void setRestPassword(String restPassword) { + } + + @Override + public void setRestUrl(URL restUrl) { + url = restUrl; + } + + @Override + public void setRestUsername(String restUsername) { + } + + @Override + public String getApiKey() { + return project.getProperties().getProperty(REDMINE_API_KEY); + } + + @Override + public void setApiKey(String apiKey) { + } + + /////////////////////////////////////////////////////////////////////////// + /// AbstractPlugin + /////////////////////////////////////////////////////////////////////////// + + @Override protected void init() throws Exception { if (plugin == null) { plugin = new ShareServerSecretPlugin(); @@ -161,8 +264,8 @@ // if (useApiKey) { // plugin.setUsernameOut(REDMINE_API_KEY); // } else { - plugin.setUsernameOut(REDMINE_USERNAME); - plugin.setPasswordOut(REDMINE_PASSWORD); + plugin.setUsernameOut(REDMINE_USERNAME); + plugin.setPasswordOut(REDMINE_PASSWORD); // } plugin.setRunOnce(true); @@ -210,7 +313,6 @@ // apply configuration setRestUrl(url); - } @Override @@ -277,90 +379,4 @@ } } - @Override - public MavenProject getProject() { - return project; - } - - @Override - public void setProject(MavenProject project) { - this.project = project; - } - - @Override - public boolean isVerbose() { - return verbose; - } - - @Override - public void setVerbose(boolean verbose) { - this.verbose = verbose; - } - - /////////////////////////////////////////////////////////////////////////// - /// RestClientConfiguration - /////////////////////////////////////////////////////////////////////////// - - @Override - public String getRestPassword() { - return project.getProperties().getProperty(REDMINE_PASSWORD); - } - - @Override - public URL getRestUrl() { - return url; - } - - @Override - public String getRestUsername() { - return project.getProperties().getProperty(REDMINE_USERNAME); - } - - @Override - public void setRestPassword(String restPassword) { - } - - @Override - public void setRestUrl(URL restUrl) { - url = restUrl; - } - - @Override - public void setRestUsername(String restUsername) { - } - - @Override - public String getEncoding() { - return null; - } - - @Override - public void setEncoding(String encoding) { - } - - @Override - public boolean isAnonymous() { - return false; - } - - @Override - public void setAnonymous(boolean anonymous) { - } - - public boolean isSafe() { - return safe; - } - - public void setSafe(boolean safe) { - this.safe = safe; - } - - @Override - public String getApiKey() { - return project.getProperties().getProperty(REDMINE_API_KEY); - } - - @Override - public void setApiKey(String apiKey) { - } } Modified: trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/NextVersionMojo.java =================================================================== --- trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/NextVersionMojo.java 2012-10-12 12:47:37 UTC (rev 359) +++ trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/NextVersionMojo.java 2012-10-13 09:51:34 UTC (rev 360) @@ -27,6 +27,7 @@ import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.Parameter; +import org.codehaus.plexus.util.StringUtils; import org.nuiton.jredmine.model.ModelHelper; import org.nuiton.jredmine.model.Version; import org.nuiton.plugin.PluginHelper; @@ -47,6 +48,10 @@ @Mojo(name = "next-version", requiresOnline = true, requiresProject = true) public class NextVersionMojo extends AbstractRedmineMojoWithProjectAndVersion implements DryRunAware { + /////////////////////////////////////////////////////////////////////////// + /// Mojo parameters + /////////////////////////////////////////////////////////////////////////// + /** * Flag to know if anonymous connexion to redmine server is required. * <p/> @@ -108,20 +113,28 @@ protected boolean dryRun; /** - * A flag to restirct only one run in a build (for multi-module context). + * A flag to restrict only one run in a build (for multi-module context). * * @since 1.0.0 */ @Parameter(property = "redmine.runOnce", defaultValue = "true") protected boolean runOnce; + /////////////////////////////////////////////////////////////////////////// + /// Mojo internal attributes + /////////////////////////////////////////////////////////////////////////// + /** effective date to set */ private Date date; public NextVersionMojo() { - super(true); + super(true, false); } + /////////////////////////////////////////////////////////////////////////// + /// RestClientConfiguration + /////////////////////////////////////////////////////////////////////////// + @Override public boolean isAnonymous() { return anonymous; @@ -132,6 +145,10 @@ this.anonymous = anonymous; } + /////////////////////////////////////////////////////////////////////////// + /// DryRunAware + /////////////////////////////////////////////////////////////////////////// + @Override public boolean isDryRun() { return dryRun; @@ -142,6 +159,10 @@ this.dryRun = dryRun; } + /////////////////////////////////////////////////////////////////////////// + /// AbstractRedmineMojo + /////////////////////////////////////////////////////////////////////////// + @Override protected boolean isGoalSkip() { return skipNextVersion; @@ -157,10 +178,14 @@ return isRunOnce() && !isExecutionRoot(); } + /////////////////////////////////////////////////////////////////////////// + /// AbstractPlugin + /////////////////////////////////////////////////////////////////////////// + @Override protected void init() throws Exception { - if (versionId == null || versionId.trim().isEmpty()) { + if (StringUtils.isBlank(versionId)) { throw new MojoExecutionException("required a versionId parameter"); } @@ -175,7 +200,7 @@ } } - if (effectiveDate != null && !effectiveDate.trim().isEmpty()) { + if (StringUtils.isNotBlank(effectiveDate)) { try { date = dateFormat.parse(effectiveDate); } catch (ParseException e) { @@ -193,14 +218,13 @@ } // get version + Version v = getProjectVersion(versionId); - Version[] versions = service.getVersions(projectId); - Version v = ModelHelper.byVersionName(versionId, versions); + boolean usePreviousVersion = false; + if (StringUtils.isNotBlank(previousVersionName)) { - boolean usePreviousVersion = false; - if (previousVersionName != null && !previousVersionName.trim().isEmpty()) { // retrieve previous version - Version previousVersion = ModelHelper.byVersionName(previousVersionName, versions); + Version previousVersion = ModelHelper.byVersionName(previousVersionName); if (previousVersion == null) { getLog().warn("can not find the previous version " + previousVersionName); } else { @@ -214,7 +238,7 @@ v.setName(versionId); } - if (versionDescription != null && !versionDescription.trim().isEmpty()) { + if (StringUtils.isNotBlank(versionDescription)) { v.setDescription(versionDescription.trim()); } Modified: trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/PublishAttachmentsMojo.java =================================================================== --- trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/PublishAttachmentsMojo.java 2012-10-12 12:47:37 UTC (rev 359) +++ trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/PublishAttachmentsMojo.java 2012-10-13 09:51:34 UTC (rev 360) @@ -48,6 +48,10 @@ @Mojo(name = "publish-attachments", requiresOnline = true, requiresProject = true) public class PublishAttachmentsMojo extends AbstractRedmineMojoWithProjectAndVersion implements DryRunAware { + /////////////////////////////////////////////////////////////////////////// + /// Mojo parameters + /////////////////////////////////////////////////////////////////////////// + /** * Flag to know if anonymous connexion to redmine server is required. * <p/> @@ -100,20 +104,28 @@ protected boolean dryRun; /** - * A flag to restirct only one run in a build (for multi-module context). + * A flag to restrict only one run in a build (for multi-module context). * * @since 1.0.0 */ @Parameter(property = "redmine.runOnce", defaultValue = "true") protected boolean runOnce; + /////////////////////////////////////////////////////////////////////////// + /// Mojo internal attributes + /////////////////////////////////////////////////////////////////////////// + /** files to deploy */ protected List<File> allFiles; public PublishAttachmentsMojo() { - super(true); + super(true, true); } + /////////////////////////////////////////////////////////////////////////// + /// RestClientConfiguration + /////////////////////////////////////////////////////////////////////////// + @Override public boolean isAnonymous() { return anonymous; @@ -124,7 +136,25 @@ this.anonymous = anonymous; } + /////////////////////////////////////////////////////////////////////////// + /// DryRunAware + /////////////////////////////////////////////////////////////////////////// + @Override + public boolean isDryRun() { + return dryRun; + } + + @Override + public void setDryRun(boolean dryRun) { + this.dryRun = dryRun; + } + + /////////////////////////////////////////////////////////////////////////// + /// AbstractRedmineMojo + /////////////////////////////////////////////////////////////////////////// + + @Override protected boolean isGoalSkip() { return skipPublishAttachments; } @@ -139,17 +169,11 @@ return isRunOnce() && !isExecutionRoot(); } - @Override - public boolean isDryRun() { - return dryRun; - } + /////////////////////////////////////////////////////////////////////////// + /// AbstractPlugin + /////////////////////////////////////////////////////////////////////////// @Override - public void setDryRun(boolean dryRun) { - this.dryRun = dryRun; - } - - @Override protected void init() throws Exception { versionId = PluginHelper.removeSnapshotSuffix(versionId); @@ -239,12 +263,16 @@ // do upload Attachment result = service.addAttachment(projectId, releaseVersion.getName(), a); long t1 = System.nanoTime(); - if (verbose) { + if (isVerbose()) { getLog().info("done in " + PluginHelper.convertTime(t1 - t0) + ". attachment id : " + result.getId() + ", size : " + PluginHelper.convertMemory(result.getFilesize())); } } } + /////////////////////////////////////////////////////////////////////////// + /// Others + /////////////////////////////////////////////////////////////////////////// + protected List<File> getFilesToDeploy() throws MojoExecutionException { // load definition file Modified: trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/PublishNewsMojo.java =================================================================== --- trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/PublishNewsMojo.java 2012-10-12 12:47:37 UTC (rev 359) +++ trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/PublishNewsMojo.java 2012-10-13 09:51:34 UTC (rev 360) @@ -39,8 +39,12 @@ * @since 1.0.0 */ @Mojo(name = "publish-news", requiresOnline = true, requiresProject = true) -public class PublishNewsMojo extends AbstractRedmineMojoWithProject implements DryRunAware{ +public class PublishNewsMojo extends AbstractRedmineMojoWithProject implements DryRunAware { + /////////////////////////////////////////////////////////////////////////// + /// Mojo parameters + /////////////////////////////////////////////////////////////////////////// + /** * Flag to know if anonymous connexion to redmine server is required. * <p/> @@ -96,7 +100,7 @@ protected boolean dryRun; /** - * A flag to restirct only one run in a build (for multi-module context). + * A flag to restrict only one run in a build (for multi-module context). * * @since 1.0.0 */ @@ -107,6 +111,10 @@ super(true); } + /////////////////////////////////////////////////////////////////////////// + /// RestClientConfiguration + /////////////////////////////////////////////////////////////////////////// + @Override public boolean isAnonymous() { return anonymous; @@ -117,7 +125,25 @@ this.anonymous = anonymous; } + /////////////////////////////////////////////////////////////////////////// + /// DryRunAware + /////////////////////////////////////////////////////////////////////////// + @Override + public boolean isDryRun() { + return dryRun; + } + + @Override + public void setDryRun(boolean dryRun) { + this.dryRun = dryRun; + } + + /////////////////////////////////////////////////////////////////////////// + /// AbstractRedmineMojo + /////////////////////////////////////////////////////////////////////////// + + @Override protected boolean isGoalSkip() { return skipPublishNews; } @@ -132,17 +158,11 @@ return runOnce; } - @Override - public boolean isDryRun() { - return dryRun; - } + /////////////////////////////////////////////////////////////////////////// + /// AbstractPlugin + /////////////////////////////////////////////////////////////////////////// @Override - public void setDryRun(boolean dryRun) { - this.dryRun = dryRun; - } - - @Override protected void init() throws Exception { runOnceDone = false; Modified: trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/UpdateVersionMojo.java =================================================================== --- trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/UpdateVersionMojo.java 2012-10-12 12:47:37 UTC (rev 359) +++ trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/UpdateVersionMojo.java 2012-10-13 09:51:34 UTC (rev 360) @@ -28,7 +28,6 @@ import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.Parameter; import org.codehaus.plexus.util.StringUtils; -import org.nuiton.jredmine.model.ModelHelper; import org.nuiton.jredmine.model.Version; import org.nuiton.jredmine.model.VersionStatusEnum; import org.nuiton.plugin.PluginHelper; @@ -46,8 +45,12 @@ * @since 1.0.0 */ @Mojo(name = "update-version", requiresOnline = true, requiresProject = true) -public class UpdateVersionMojo extends AbstractRedmineMojoWithProjectAndVersion implements DryRunAware{ +public class UpdateVersionMojo extends AbstractRedmineMojoWithProjectAndVersion implements DryRunAware { + /////////////////////////////////////////////////////////////////////////// + /// Mojo parameters + /////////////////////////////////////////////////////////////////////////// + /** * Flag to know if anonymous connexion to redmine server is required. * <p/> @@ -120,27 +123,35 @@ protected boolean dryRun; /** - * A flag to restirct only one run in a build (for multi-module context). + * A flag to restrict only one run in a build (for multi-module context). * * @since 1.0.0 */ @Parameter(property = "redmine.runOnce", defaultValue = "true") protected boolean runOnce; + /////////////////////////////////////////////////////////////////////////// + /// Mojo internal attributes + /////////////////////////////////////////////////////////////////////////// + /** effective date to set */ private Date date; /** - * new status to apply (stay null if nothing is asked). + * New status to apply (stay null if nothing is asked). * * @since 1.2.1 */ private VersionStatusEnum newVersionStatus; public UpdateVersionMojo() { - super(true); + super(true, true); } + /////////////////////////////////////////////////////////////////////////// + /// RestClientConfiguration + /////////////////////////////////////////////////////////////////////////// + @Override public boolean isAnonymous() { return anonymous; @@ -151,6 +162,10 @@ this.anonymous = anonymous; } + /////////////////////////////////////////////////////////////////////////// + /// DryRunAware + /////////////////////////////////////////////////////////////////////////// + @Override public boolean isDryRun() { return dryRun; @@ -161,6 +176,10 @@ this.dryRun = dryRun; } + /////////////////////////////////////////////////////////////////////////// + /// AbstractRedmineMojo + /////////////////////////////////////////////////////////////////////////// + @Override protected boolean isGoalSkip() { return skipUpdateVersion; @@ -176,10 +195,14 @@ return isRunOnce() && !isExecutionRoot(); } + /////////////////////////////////////////////////////////////////////////// + /// AbstractPlugin + /////////////////////////////////////////////////////////////////////////// + @Override protected void init() throws Exception { - if (versionId == null || versionId.trim().isEmpty()) { + if (StringUtils.isBlank(versionId)) { throw new MojoExecutionException("required a versionId parameter"); } @@ -194,7 +217,7 @@ } } - if (effectiveDate != null && !effectiveDate.trim().isEmpty()) { + if (StringUtils.isNotBlank(effectiveDate)) { try { date = dateFormat.parse(effectiveDate); } catch (ParseException e) { @@ -212,7 +235,7 @@ newVersionStatus = VersionStatusEnum.closed; } - if (StringUtils.isNotEmpty(versionStatus)) { + if (StringUtils.isNotBlank(versionStatus)) { try { newVersionStatus = VersionStatusEnum.valueOf(versionStatus); } catch (IllegalArgumentException e) { @@ -244,24 +267,19 @@ getLog().info("\n dryRun flag is on, no data will be send!\n"); } - // get version + // get project version + Version v = getProjectVersion(versionId); - boolean needCreateVersion; + // is version need to be created ? + boolean needCreateVersion = v == null; - Version[] versions = service.getVersions(projectId); - Version v = ModelHelper.byVersionName(versionId, versions); + if (needCreateVersion) { - if (v == null) { - // version must be created - needCreateVersion = true; v = new Version(); v.setName(versionId); - } else { - - needCreateVersion = false; } - if (versionDescription != null && !versionDescription.trim().isEmpty()) { + if (StringUtils.isNotBlank(versionDescription)) { v.setDescription(versionDescription.trim()); } Modified: trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/announcement/AbstractAnnouncementMojo.java =================================================================== --- trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/announcement/AbstractAnnouncementMojo.java 2012-10-12 12:47:37 UTC (rev 359) +++ trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/announcement/AbstractAnnouncementMojo.java 2012-10-13 09:51:34 UTC (rev 360) @@ -48,6 +48,10 @@ */ public abstract class AbstractAnnouncementMojo extends AbstractRedmineMojoWithProjectAndVersion implements AnnouncementGeneratorConfiguration { + /////////////////////////////////////////////////////////////////////////// + /// Mojo parameters + /////////////////////////////////////////////////////////////////////////// + /** * Flag to know if anonymous connexion to redmine server is required. * <p/> @@ -119,11 +123,19 @@ @Parameter(property = "redmine.attachmentLinkTemplate", defaultValue = "%URL%/attachments/download/%FILE%") protected String attachmentLinkTemplate = "%URL%/attachments/download/%FILE%"; - /** @since 1.0.0 */ + /** + * Current maven project groupId. + * + * @since 1.0.0 + */ @Parameter(property = "project.groupId", readonly = true) protected String groupId; - /** @since 1.0.0 */ + /** + * current project artifactId. + * + * @since 1.0.0 + */ @Parameter(property = "project.artifactId", readonly = true) protected String artifactId; @@ -187,26 +199,45 @@ protected String introduction; /** - * A flag to restirct only one run in a build (for multi-module context). + * A flag to restrict only one run in a build (for multi-module context). * * @since 1.0.0 */ @Parameter(property = "redmine.runOnce", defaultValue = "true") protected boolean runOnce; - /** @since 1.2.1 */ + /** + * Files where are stored location of artifacts to deploy by the build. + * + * @since 1.2.1 + */ @Parameter(property = "redmine.artifactsFile") protected File artifactsFile; /** + * Deployement url (for artifacts). + * + * @since 1.2.1 */ @Parameter(property = "redmine.deploymentUrl", readonly = true) protected String deploymentUrl; - /** Velocity Component. */ + /////////////////////////////////////////////////////////////////////////// + /// Mojo components + /////////////////////////////////////////////////////////////////////////// + + /** + * Velocity Component. + * + * @since 1.0.0 + */ @Component(hint = "jredmine-maven-plugin") protected VelocityComponent velocity; + /////////////////////////////////////////////////////////////////////////// + /// Mojo internal attributes + /////////////////////////////////////////////////////////////////////////// + protected Attachment[] attachments; protected Map<File, String> artifactUrls; @@ -217,14 +248,97 @@ protected AnnouncementGenerator generator; + /////////////////////////////////////////////////////////////////////////// + /// AbstractAnnouncementMojo + /////////////////////////////////////////////////////////////////////////// + /** @return the name fo the template to use */ protected abstract String getAnnouncementTemplate(); protected AbstractAnnouncementMojo() { - super(true); + super(true, true); } /////////////////////////////////////////////////////////////////////////// + /// AnnouncementGeneratorConfiguration + /////////////////////////////////////////////////////////////////////////// + + @Override + public String getAttachmentLinkTemplate() { + return attachmentLinkTemplate; + } + + @Override + public String getUrl() { + return url.toString(); + } + + @Override + public String getArtifactId() { + return artifactId; + } + + @Override + public Map<File, String> getArtifactUrls() { + return artifactUrls; + } + + @Override + public Map<Attachment, String> getAttachmentUrls() { + return attachmentUrls; + } + + @Override + public String getBasedir() { + return basedir; + } + + @Override + public String getDeploymentUrl() { + return deploymentUrl; + } + + @Override + public String getDevelopmentTeam() { + return developmentTeam; + } + + @Override + public String getFinalName() { + return finalName; + } + + @Override + public String getGroupId() { + return groupId; + } + + @Override + public String getIntroduction() { + return introduction; + } + + @Override + public String getPackaging() { + return packaging; + } + + @Override + public String getProjectUrl() { + return projectUrl; + } + + @Override + public String getUrlDownload() { + return urlDownload; + } + + @Override + public Map<String, Object> getAnnounceParameters() { + return announceParameters; + } + + /////////////////////////////////////////////////////////////////////////// /// AbstractRedmineMojo /////////////////////////////////////////////////////////////////////////// @@ -259,6 +373,10 @@ return checkRunOnceDone; } + /////////////////////////////////////////////////////////////////////////// + /// AbstractPlugin + /////////////////////////////////////////////////////////////////////////// + @Override protected void init() throws Exception { @@ -372,84 +490,9 @@ } /////////////////////////////////////////////////////////////////////////// - /// AnnouncementGeneratorConfiguration + /// Others /////////////////////////////////////////////////////////////////////////// - @Override - public String getAttachmentLinkTemplate() { - return attachmentLinkTemplate; - } - - @Override - public String getUrl() { - return url.toString(); - } - - @Override - public String getArtifactId() { - return artifactId; - } - - @Override - public Map<File, String> getArtifactUrls() { - return artifactUrls; - } - - @Override - public Map<Attachment, String> getAttachmentUrls() { - return attachmentUrls; - } - - @Override - public String getBasedir() { - return basedir; - } - - @Override - public String getDeploymentUrl() { - return deploymentUrl; - } - - @Override - public String getDevelopmentTeam() { - return developmentTeam; - } - - @Override - public String getFinalName() { - return finalName; - } - - @Override - public String getGroupId() { - return groupId; - } - - @Override - public String getIntroduction() { - return introduction; - } - - @Override - public String getPackaging() { - return packaging; - } - - @Override - public String getProjectUrl() { - return projectUrl; - } - - @Override - public String getUrlDownload() { - return urlDownload; - } - - @Override - public Map<String, Object> getAnnounceParameters() { - return announceParameters; - } - protected File getOutputFile() { return new File(templateOutputDirectory, getAnnouncementTemplate()); } Modified: trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/announcement/GenerateEmailAnnouncementMojo.java =================================================================== --- trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/announcement/GenerateEmailAnnouncementMojo.java 2012-10-12 12:47:37 UTC (rev 359) +++ trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/announcement/GenerateEmailAnnouncementMojo.java 2012-10-13 09:51:34 UTC (rev 360) @@ -36,6 +36,10 @@ @Mojo(name = "generate-email-announcement", requiresOnline = true, requiresProject = true) public class GenerateEmailAnnouncementMojo extends AbstractAnnouncementMojo { + /////////////////////////////////////////////////////////////////////////// + /// Mojo parameters + /////////////////////////////////////////////////////////////////////////// + /** * The Velocity template used to format the release email announcement. * @@ -45,18 +49,26 @@ protected String emailAnnouncementTemplate = "release-email-announcement.vm"; /** - * A flag to enable or disable the goal. + * A flag to skip the goal. * * @since 1.0.0 */ @Parameter(property = "changes.skipGenerateEmailAnnouncement", defaultValue = "false") protected boolean skipGenerateEmailAnnouncement; + /////////////////////////////////////////////////////////////////////////// + /// AbstractAnnouncementMojo + /////////////////////////////////////////////////////////////////////////// + @Override protected String getAnnouncementTemplate() { return emailAnnouncementTemplate; } + /////////////////////////////////////////////////////////////////////////// + /// AbstractRedmineMojo + /////////////////////////////////////////////////////////////////////////// + @Override protected boolean isGoalSkip() { return skipGenerateEmailAnnouncement; Modified: trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/announcement/GenerateNewsAnnouncementMojo.java =================================================================== --- trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/announcement/GenerateNewsAnnouncementMojo.java 2012-10-12 12:47:37 UTC (rev 359) +++ trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/announcement/GenerateNewsAnnouncementMojo.java 2012-10-13 09:51:34 UTC (rev 360) @@ -36,6 +36,10 @@ @Mojo(name = "generate-news-announcement", requiresOnline = true, requiresProject = true) public class GenerateNewsAnnouncementMojo extends AbstractAnnouncementMojo { + /////////////////////////////////////////////////////////////////////////// + /// Mojo parameters + /////////////////////////////////////////////////////////////////////////// + /** * The Velocity template used to format the redmine announcement. * @@ -45,18 +49,26 @@ protected String newsAnnouncementTemplate = "release-news-announcement.vm"; /** - * A flag to enable or disable the goal. + * A flag to skip the goal. * * @since 1.0.0 */ @Parameter(property = "redmine.skipGenerateNewsAnnouncement", defaultValue = "false") protected boolean skipGenerateNewsAnnouncement; + /////////////////////////////////////////////////////////////////////////// + /// AbstractAnnouncementMojo + /////////////////////////////////////////////////////////////////////////// + @Override protected String getAnnouncementTemplate() { return newsAnnouncementTemplate; } + /////////////////////////////////////////////////////////////////////////// + /// AbstractRedmineMojo + /////////////////////////////////////////////////////////////////////////// + @Override protected boolean isGoalSkip() { return skipGenerateNewsAnnouncement; Modified: trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/report/AbstractIssuesReport.java =================================================================== --- trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/report/AbstractIssuesReport.java 2012-10-12 12:47:37 UTC (rev 359) +++ trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/report/AbstractIssuesReport.java 2012-10-13 09:51:34 UTC (rev 360) @@ -43,6 +43,10 @@ */ public abstract class AbstractIssuesReport extends AbstractRedmineReport implements IssueCollectorConfiguration { + /////////////////////////////////////////////////////////////////////////// + /// Mojo internal attributes + /////////////////////////////////////////////////////////////////////////// + /** * The meta to group issues (or null if no grouping) * @@ -56,14 +60,18 @@ /** Issues to used for report */ protected Issue[] issues; - protected AbstractIssuesReport(String group) { - this.group = group; - } + /////////////////////////////////////////////////////////////////////////// + /// AbstractIssuesReport + /////////////////////////////////////////////////////////////////////////// protected abstract String getColumnNames(); protected abstract Map<String, String> getFilters(); + protected AbstractIssuesReport(String group) { + this.group = group; + } + /////////////////////////////////////////////////////////////////////////// /// MavenReport /////////////////////////////////////////////////////////////////////////// @@ -83,7 +91,40 @@ return getBundle(locale).getString("report.description" + (group == null ? "" : "-" + group)); } + /////////////////////////////////////////////////////////////////////////// + /// IssueCollectionConfiguration + /////////////////////////////////////////////////////////////////////////// + @Override + public String getCategoryIds() { + return getFilters() == null ? null : getFilters().get("category"); + } + + @Override + public String getVersionNames() { + return getFilters() == null ? null : getFilters().get("version"); + } + + @Override + public String getPriorityIds() { + return getFilters() == null ? null : getFilters().get("priority"); + } + + @Override + public String getStatusIds() { + return getFilters() == null ? null : getFilters().get("status"); + } + + @Override + public String getTrackerIds() { + return getFilters() == null ? null : getFilters().get("tracker"); + } + + /////////////////////////////////////////////////////////////////////////// + /// AbstractRedmineMojo + /////////////////////////////////////////////////////////////////////////// + + @Override protected boolean isRunOnce() { return false; } @@ -99,7 +140,7 @@ } /////////////////////////////////////////////////////////////////////////// - /// Plugin + /// AbstractPlugin /////////////////////////////////////////////////////////////////////////// @Override @@ -190,35 +231,6 @@ } /////////////////////////////////////////////////////////////////////////// - /// IssueCollectionConfiguration - /////////////////////////////////////////////////////////////////////////// - - @Override - public String getCategoryIds() { - return getFilters() == null ? null : getFilters().get("category"); - } - - @Override - public String getVersionNames() { - return getFilters() == null ? null : getFilters().get("version"); - } - - @Override - public String getPriorityIds() { - return getFilters() == null ? null : getFilters().get("priority"); - } - - @Override - public String getStatusIds() { - return getFilters() == null ? null : getFilters().get("status"); - } - - @Override - public String getTrackerIds() { - return getFilters() == null ? null : getFilters().get("tracker"); - } - - /////////////////////////////////////////////////////////////////////////// /// Others /////////////////////////////////////////////////////////////////////////// Modified: trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/report/AbstractRedmineReport.java =================================================================== --- trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/report/AbstractRedmineReport.java 2012-10-12 12:47:37 UTC (rev 359) +++ trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/report/AbstractRedmineReport.java 2012-10-13 09:51:34 UTC (rev 360) @@ -67,8 +67,12 @@ */ public abstract class AbstractRedmineReport extends AbstractRedmineMojoWithProject implements MavenReport, RedmineVersionAware { + /////////////////////////////////////////////////////////////////////////// + /// Mojo parameters + /////////////////////////////////////////////////////////////////////////// + /** - * redmine version name. + * Redmine version name. * * @since 1.0.0 */ @@ -116,7 +120,11 @@ @Parameter(property = "redmine.versionLinkTemplate", defaultValue = "%URL%/versions/show/%VERSION%") protected String versionLinkTemplate = "%URL%/versions/show/%VERSION%"; - /** Local Repository. */ + /** + * Local Repository. + * + * @since 1.0.0 + */ @Parameter(property = "localRepository", required = true, readonly = true) protected ArtifactRepository localRepository; @@ -124,39 +132,73 @@ * Report output directory. Note that this parameter is only relevant if the goal is run from the command line or * from the default build lifecycle. If the goal is run indirectly as part of a site generation, the output * directory configured in the Maven Site Plugin is used instead. + * + * @since 1.0.0 */ @Parameter(defaultValue = "${project.reporting.outputDirectory}") protected File outputDirectory; - /** */ + /////////////////////////////////////////////////////////////////////////// + /// Mojo components + /////////////////////////////////////////////////////////////////////////// + + /** + * Artifact resolver. + * + * @since 1.0.0 + */ @Component protected ArtifactResolver resolver; - /** */ + /** + * Artifact factory. + * + * @since 1.0.0 + */ @Component protected ArtifactFactory factory; - /** Internationalization. */ + /** + * Internationalization. + * + * @since 1.0.0 + */ @Component protected I18N i18n; - /** Doxia Site Renderer. */ + /** + * Doxia Site Renderer. + * + * @since 1.0.0 + */ @Component protected Renderer siteRenderer; + /////////////////////////////////////////////////////////////////////////// + /// Mojo internal attributes + /////////////////////////////////////////////////////////////////////////// + private Sink sink; private File reportOutputDirectory; + /////////////////////////////////////////////////////////////////////////// + /// AbstractRedmineReport + /////////////////////////////////////////////////////////////////////////// + protected abstract void executeReport(Locale locale) throws MavenReportException; /** @return {@code true} if report should be skip */ protected abstract boolean skipReport(); - public AbstractRedmineReport() { + protected AbstractRedmineReport() { super(false); } + /////////////////////////////////////////////////////////////////////////// + /// RestClientConfiguration + /////////////////////////////////////////////////////////////////////////// + @Override public boolean isAnonymous() { return anonymous; @@ -167,6 +209,10 @@ this.anonymous = anonymous; } + /////////////////////////////////////////////////////////////////////////// + /// RedmineVersionAware + /////////////////////////////////////////////////////////////////////////// + @Override public final String getVersionId() { return versionId; @@ -178,7 +224,7 @@ } /////////////////////////////////////////////////////////////////////////// - /// Plugin + /// AbstractPlugin /////////////////////////////////////////////////////////////////////////// @Override Modified: trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/report/IssuesReport.java =================================================================== --- trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/report/IssuesReport.java 2012-10-12 12:47:37 UTC (rev 359) +++ trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/report/IssuesReport.java 2012-10-13 09:51:34 UTC (rev 360) @@ -38,6 +38,10 @@ @Mojo(name = "issues-report", requiresOnline = true, requiresProject = true, requiresReports = true) public class IssuesReport extends AbstractIssuesReport { + /////////////////////////////////////////////////////////////////////////// + /// Mojo parameters + /////////////////////////////////////////////////////////////////////////// + /** * Maximum number of entries to be fetched from redmine. * <p/> @@ -118,11 +122,6 @@ @Parameter(property = "redmine.skipIssueReport", defaultValue = "false") protected boolean skipIssueReport; - @Override - protected boolean skipReport() { - return skipIssueReport; - } - public IssuesReport() { super(null); } @@ -154,4 +153,13 @@ protected Map<String, String> getFilters() { return filters; } + + /////////////////////////////////////////////////////////////////////////// + /// AbstractRedmineReport + /////////////////////////////////////////////////////////////////////////// + + @Override + protected boolean skipReport() { + return skipIssueReport; + } } Modified: trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/report/IssuesReportByAssignee.java =================================================================== --- trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/report/IssuesReportByAssignee.java 2012-10-12 12:47:37 UTC (rev 359) +++ trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/report/IssuesReportByAssignee.java 2012-10-13 09:51:34 UTC (rev 360) @@ -38,6 +38,10 @@ @Mojo(name = "issues-report-by-assignee", requiresOnline = true, requiresProject = true, requiresReports = true) public class IssuesReportByAssignee extends AbstractIssuesReport { + /////////////////////////////////////////////////////////////////////////// + /// Mojo parameters + /////////////////////////////////////////////////////////////////////////// + /** * Maximum number of entries to be fetched from redmine. * <p/> @@ -117,11 +121,6 @@ @Parameter(property = "redmine.skipIssueReportByAssignee", defaultValue = "false") protected boolean skipIssueReportByAssignee; - @Override - protected boolean skipReport() { - return skipIssueReportByAssignee; - } - public IssuesReportByAssignee() { super("assignee"); } @@ -153,4 +152,13 @@ protected Map<String, String> getFilters() { return filtersByAssignee; } + + /////////////////////////////////////////////////////////////////////////// + /// AbstractRedmineReport + /////////////////////////////////////////////////////////////////////////// + + @Override + protected boolean skipReport() { + return skipIssueReportByAssignee; + } } Modified: trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/report/IssuesReportByCategory.java =================================================================== --- trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/report/IssuesReportByCategory.java 2012-10-12 12:47:37 UTC (rev 359) +++ trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/report/IssuesReportByCategory.java 2012-10-13 09:51:34 UTC (rev 360) @@ -38,6 +38,10 @@ @Mojo(name = "issues-report-by-category", requiresOnline = true, requiresProject = true, requiresReports = true) public class IssuesReportByCategory extends AbstractIssuesReport { + /////////////////////////////////////////////////////////////////////////// + /// Mojo parameters + /////////////////////////////////////////////////////////////////////////// + /** * Maximum number of entries to be fetched from redmine. * <p/> @@ -117,11 +121,6 @@ @Parameter(property = "redmine.skipIssueReportByCategory", defaultValue = "false") protected boolean skipIssueReportByCategory; - @Override - protected boolean skipReport() { - return skipIssueReportByCategory; - } - public IssuesReportByCategory() { super("category"); } @@ -153,4 +152,13 @@ protected Map<String, String> getFilters() { return filtersByCategory; } + + /////////////////////////////////////////////////////////////////////////// + /// AbstractRedmineReport + /////////////////////////////////////////////////////////////////////////// + + @Override + protected boolean skipReport() { + return skipIssueReportByCategory; + } } Modified: trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/report/IssuesReportByPriority.java =================================================================== --- trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/report/IssuesReportByPriority.java 2012-10-12 12:47:37 UTC (rev 359) +++ trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/report/IssuesReportByPriority.java 2012-10-13 09:51:34 UTC (rev 360) @@ -38,6 +38,10 @@ @Mojo(name = "issues-report-by-priority", requiresOnline = true, requiresProject = true, requiresReports = true) public class IssuesReportByPriority extends AbstractIssuesReport { + /////////////////////////////////////////////////////////////////////////// + /// Mojo parameters + /////////////////////////////////////////////////////////////////////////// + /** * Maximum number of entries to be fetched from redmine. * <p/> @@ -117,11 +121,6 @@ @Parameter(property = "redmine.skipIssueReportByPriority", defaultValue = "false") protected boolean skipIssueReport; - @Override - protected boolean skipReport() { - return skipIssueReport; - } - public IssuesReportByPriority() { super("priority"); } @@ -153,4 +152,13 @@ protected Map<String, String> getFilters() { return filtersByPriority; } + + /////////////////////////////////////////////////////////////////////////// + /// AbstractRedmineReport + /////////////////////////////////////////////////////////////////////////// + + @Override + protected boolean skipReport() { + return skipIssueReport; + } } Modified: trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/report/IssuesReportByReporter.java =================================================================== --- trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/report/IssuesReportByReporter.java 2012-10-12 12:47:37 UTC (rev 359) +++ trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/report/IssuesReportByReporter.java 2012-10-13 09:51:34 UTC (rev 360) @@ -38,6 +38,10 @@ @Mojo(name = "issues-report-by-reporter", requiresOnline = true, requiresProject = true, requiresReports = true) public class IssuesReportByReporter extends AbstractIssuesReport { + /////////////////////////////////////////////////////////////////////////// + /// Mojo parameters + /////////////////////////////////////////////////////////////////////////// + /** * Maximum number of entries to be fetched from redmine. * <p/> @@ -117,11 +121,6 @@ @Parameter(property = "redmine.skipIssueReportByReporter", defaultValue = "false") protected boolean skipIssueReportByReporter; - @Override - protected boolean skipReport() { - return skipIssueReportByReporter; - } - public IssuesReportByReporter() { super("reporter"); } @@ -153,4 +152,13 @@ protected Map<String, String> getFilters() { return filtersByReporter; } + + /////////////////////////////////////////////////////////////////////////// + /// AbstractRedmineReport + /////////////////////////////////////////////////////////////////////////// + + @Override + protected boolean skipReport() { + return skipIssueReportByReporter; + } } Modified: trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/report/IssuesReportByStatus.java =================================================================== --- trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/report/IssuesReportByStatus.java 2012-10-12 12:47:37 UTC (rev 359) +++ trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/report/IssuesReportByStatus.java 2012-10-13 09:51:34 UTC (rev 360) @@ -38,6 +38,10 @@ @Mojo(name = "issues-report-by-status", requiresOnline = true, requiresProject = true, requiresReports = true) public class IssuesReportByStatus extends AbstractIssuesReport { + /////////////////////////////////////////////////////////////////////////// + /// Mojo parameters + /////////////////////////////////////////////////////////////////////////// + /** * Maximum number of entries to be fetched from redmine. * <p/> @@ -117,11 +121,6 @@ @Parameter(property = "redmine.skipIssueReportByStatus", defaultValue = "false") protected boolean skipIssueReportByStatus; - @Override - protected boolean skipReport() { - return skipIssueReportByStatus; - } - public IssuesReportByStatus() { super("status"); } @@ -153,4 +152,13 @@ protected Map<String, String> getFilters() { return filtersByStatus; } + + /////////////////////////////////////////////////////////////////////////// + /// AbstractRedmineReport + /////////////////////////////////////////////////////////////////////////// + + @Override + protected boolean skipReport() { + return skipIssueReportByStatus; + } } Modified: trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/report/IssuesReportByTracker.java =================================================================== --- trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/report/IssuesReportByTracker.java 2012-10-12 12:47:37 UTC (rev 359) +++ trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/report/IssuesReportByTracker.java 2012-10-13 09:51:34 UTC (rev 360) @@ -38,6 +38,10 @@ @Mojo(name = "issues-report-by-tracker", requiresOnline = true, requiresProject = true, requiresReports = true) public class IssuesReportByTracker extends AbstractIssuesReport { + /////////////////////////////////////////////////////////////////////////// + /// Mojo parameters + /////////////////////////////////////////////////////////////////////////// + /** * Maximum number of entries to be fetched from redmine. * <p/> @@ -117,11 +121,6 @@ @Parameter(property = "redmine.skipIssueReportByTracker", defaultValue = "false") protected boolean skipIssueReportByTracker; - @Override - protected boolean skipReport() { - return skipIssueReportByTracker; - } - public IssuesReportByTracker() { super("tracker"); } @@ -153,4 +152,13 @@ protected Map<String, String> getFilters() { return filtersByTracker; } + + /////////////////////////////////////////////////////////////////////////// + /// AbstractRedmineReport + /////////////////////////////////////////////////////////////////////////// + + @Override + protected boolean skipReport() { + return skipIssueReportByTracker; + } } Modified: trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/report/IssuesReportByVersion.java =================================================================== --- trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/report/IssuesReportByVersion.java 2012-10-12 12:47:37 UTC (rev 359) +++ trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/report/IssuesReportByVersion.java 2012-10-13 09:51:34 UTC (rev 360) @@ -38,6 +38,10 @@ @Mojo(name = "issues-report-by-version", requiresOnline = true, requiresProject = true, requiresReports = true) public class IssuesReportByVersion extends AbstractIssuesReport { + /////////////////////////////////////////////////////////////////////////// + /// Mojo parameters + /////////////////////////////////////////////////////////////////////////// + /** * Maximum number of entries to be fetched from redmine. * <p/> @@ -117,11 +121,6 @@ @Parameter(property = "redmine.skipIssueReportByVersion", defaultValue = "false") protected boolean skipIssueReportByVersion; - @Override - protected boolean skipReport() { - return skipIssueReportByVersion; - } - public IssuesReportByVersion() { super("version"); } @@ -153,4 +152,13 @@ protected Map<String, String> getFilters() { return filtersByVersion; } + + /////////////////////////////////////////////////////////////////////////// + /// AbstractRedmineReport + /////////////////////////////////////////////////////////////////////////// + + @Override + protected boolean skipReport() { + return skipIssueReportByVersion; + } }