Author: tchemit Date: 2010-01-24 14:42:46 +0100 (Sun, 24 Jan 2010) New Revision: 112 Modified: trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/DisplayDataMojo.java Log: Evolution #265: Am?\195?\169lioration du goal display-data Modified: trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/DisplayDataMojo.java =================================================================== --- trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/DisplayDataMojo.java 2010-01-24 13:40:58 UTC (rev 111) +++ trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/DisplayDataMojo.java 2010-01-24 13:42:46 UTC (rev 112) @@ -22,13 +22,12 @@ import org.apache.maven.plugin.MojoFailureException; import org.nuiton.jredmine.RedmineServiceImplementor; -import org.nuiton.jredmine.model.I18nAble; -import org.nuiton.jredmine.model.IdAble; -import org.nuiton.jredmine.model.RedmineModelEnum; -import org.nuiton.jredmine.model.RedmineModelScope; +import org.nuiton.jredmine.model.*; +import org.nuiton.plugin.PluginHelper; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collections; import java.util.List; /** @@ -61,12 +60,20 @@ */ protected String types; /** + * A flag to sort of not retrived data by id. + * + * @parameter expression="${sortById}" default-value="true" + * @required + * @since 1.0.0 + */ + protected boolean sortById; + /** * The redmine's server login. * * Note: This parameter is not used, but override the required parameter of the abstract mojo. * * @parameter expression="${redmine.username}" - * @since 1.0.0 + * @since 1.1.3 */ protected String username; /** @@ -75,7 +82,7 @@ * Note: This parameter is not used, but override the required parameter of the abstract mojo. * * @parameter expression="${redmine.password}" - * @since 1.0.0 + * @since 1.1.3 */ protected String password; /** @@ -106,34 +113,37 @@ @Override protected void init() throws Exception { - super.init(); - if (!safe && !initOk) { - // we are in none safe mode but init is not ok... - return; + if (versionId != null) { + // always remove snapshot (TODO-TC20100124 perharps should it be a flag ?) + versionId = PluginHelper.removeSnapshotSuffix(versionId); } + actions = getDownloadActions(types, RedmineModelEnum.project, RedmineModelEnum.version, + RedmineModelEnum.issue, + RedmineModelEnum.news, RedmineModelEnum.issueStatus, RedmineModelEnum.issuePriority, RedmineModelEnum.issueCategory, RedmineModelEnum.tracker, RedmineModelEnum.user); - + if (actions == null || actions.isEmpty()) { + // no need to connect, nothing to do... + return; + } + super.init(); } @Override protected boolean checkSkip() { - boolean b = super.checkSkip(); - if (!b) { - return false; - } if (actions == null || actions.isEmpty()) { // no data to treate getLog().warn("no data types detected, you must fill the required parameter dataTypes, will skip goal"); return false; } - return true; + boolean b = super.checkSkip(); + return b; } @Override @@ -145,14 +155,21 @@ RedmineModelScope scope = entry.getScope(); String requestName = entry.getRequestAll(); - Object[] datas = ((RedmineServiceImplementor) service).getDatas(requestName, entry.getModelType(), projectId, versionId); + IdAble[] datas = (IdAble[]) ((RedmineServiceImplementor) service).getDatas(requestName, entry.getModelType(), projectId, versionId); + List<IdAble> list = Arrays.asList(datas); + if (sortById) { + Collections.sort(list,ModelHelper.ID_ABLE_COMPARATOR); + } buffer.append("\nValues of '").append(entry).append('\''); if (scope == RedmineModelScope.project || scope == RedmineModelScope.version) { - buffer.append(" for project ").append(projectId); + buffer.append(" for project '").append(projectId).append("'"); } + if (scope == RedmineModelScope.version) { + buffer.append(" and version '").append(versionId).append("'"); + } buffer.append('\n'); - for (Object data : datas) { - buffer.append(" - ").append(((IdAble) data).getId()).append(" = ").append(((I18nAble) data).getName()).append('\n'); + for (IdAble data : list) { + buffer.append(" - ").append(data.getId()).append(" = ").append(((I18nAble) data).getName()).append('\n'); } } System.out.println(buffer.toString()); @@ -190,7 +207,7 @@ if (!universeList.isEmpty() && !universeList.contains(result)) { // can not accept these value - getLog().warn("the type " + result + " is not authorized, universe : " + universeList); + getLog().warn("the type " + result + " is not authorized, Accepted types are : " + universeList); continue; } results.add(result);