Author: tchemit
Date: 2010-01-24 16:52:43 +0100 (Sun, 24 Jan 2010)
New Revision: 117
Modified:
trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/AbstractRedmineMojo.java
trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/DisplayDataMojo.java
trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/GenerateChangesMojo.java
trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/NextVersionMojo.java
trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/PublishAttachmentsMojo.java
trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/PublishNewsMojo.java
trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/UpdateVersionMojo.java
trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/announcement/AbstractAnnouncementMojo.java
trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/report/AbstractRedmineReport.java
trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/report/IssuesReportByCategory.java
Log:
Evolution #266: Am?\195?\169liorer la configuration des goals (connexion anonyme ou pas)
Modified: trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/AbstractRedmineMojo.java
===================================================================
--- trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/AbstractRedmineMojo.java 2010-01-24 15:52:13 UTC (rev 116)
+++ trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/AbstractRedmineMojo.java 2010-01-24 15:52:43 UTC (rev 117)
@@ -70,16 +70,20 @@
/**
* The redmine's server login.
*
+ * <b>Note:</b> : this parameter is mandatory if you not use a {@code anonymous} service.
+ * configuration.
+ *
* @parameter expression="${redmine.username}"
- * @required
* @since 1.0.0
*/
protected String username;
/**
* The redmine's server password.
*
+ * <b>Note:</b> : this parameter is mandatory if you not use a {@code anonymous} service.
+ * configuration.
+ *
* @parameter expression="${redmine.password}"
- * @required
* @since 1.0.0
*/
protected String password;
@@ -144,10 +148,6 @@
*/
private final boolean requireUser;
/**
- * flag to knwon if anonymùous service is required
- */
- private final boolean anonymous;
- /**
* the project loaded in init if {@link #requireProject} flag is on
*/
protected Project releaseProject;
@@ -179,11 +179,6 @@
protected boolean initOk = true;
public AbstractRedmineMojo(boolean requireProject, boolean requireVersion, boolean requireUser) {
- this(false,requireProject,requireVersion,requireUser);
- }
-
- public AbstractRedmineMojo(boolean anonymous, boolean requireProject, boolean requireVersion, boolean requireUser) {
- this.anonymous = anonymous;
this.requireProject = requireProject;
this.requireVersion = requireVersion;
this.requireUser = requireUser;
@@ -411,16 +406,6 @@
this.encoding = encoding;
}
- @Override
- public boolean isAnonymous() {
- return anonymous;
- }
-
- @Override
- public void setAnonymous(boolean anonymous) {
- //this is a final state, can not modify it after init
- }
-
///////////////////////////////////////////////////////////////////////////
/// Others
///////////////////////////////////////////////////////////////////////////
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 15:52:13 UTC (rev 116)
+++ trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/DisplayDataMojo.java 2010-01-24 15:52:43 UTC (rev 117)
@@ -68,31 +68,24 @@
*/
protected boolean sortById;
/**
- * The redmine's server login.
+ * Flag to know if anonymùous connexion to redmine server is required.
*
- * Note: This parameter is not used, but override the required parameter of the abstract mojo.
+ * For this goal, the default value is {@code true}
*
- * @parameter expression="${redmine.username}"
- * @since 1.1.3
- */
- protected String username;
- /**
- * The redmine's server password.
- *
- * Note: This parameter is not used, but override the required parameter of the abstract mojo.
+ * <b>Note:</b> If set to {@code false}, you should fill {@link #username}
+ * and {@link #password} properties.
*
- * @parameter expression="${redmine.password}"
+ * @parameter expression="${anonymous}" default-value="true"
* @since 1.1.3
*/
- protected String password;
+ protected boolean anonymous;
/**
* list of actions to perform
*/
protected List<RedmineModelEnum> actions;
public DisplayDataMojo() {
- // no need to be loggued to obtain informations from redmine
- super(true,false, false, false);
+ super(false, false, false);
}
@Override
@@ -136,10 +129,20 @@
}
@Override
+ public boolean isAnonymous() {
+ return this.anonymous;
+ }
+
+ @Override
+ public void setAnonymous(boolean anonymous) {
+ this.anonymous = anonymous;
+ }
+
+ @Override
protected boolean checkSkip() {
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");
+ getLog().warn("No data types detected, you must fill the required parameter types, will skip goal");
return false;
}
boolean b = super.checkSkip();
@@ -177,6 +180,10 @@
protected List<RedmineModelEnum> getDownloadActions(String dataTypes, RedmineModelEnum... universe) throws MojoFailureException {
+ if (universe.length == 0) {
+ throw new MojoFailureException("List of accepted data types is empty!");
+ }
+
List<RedmineModelEnum> results = new ArrayList<RedmineModelEnum>();
List<RedmineModelEnum> universeList = new ArrayList<RedmineModelEnum>(Arrays.asList(universe));
@@ -187,29 +194,28 @@
try {
result = RedmineModelEnum.valueOf(dataType.trim());
} catch (Exception e) {
- throw new MojoFailureException("could not obtain data type " + dataType + " in " + Arrays.toString(RedmineModelEnum.values()));
+ throw new MojoFailureException("Unkown data type '" + dataType + "', Accepted types are : " + universeList);
}
+ if (!universeList.contains(result)) {
+ // can not accept these value
+ throw new MojoFailureException("The data type '" + result + "' can not be used, Accepted types are : " + universeList);
+ }
+
RedmineModelScope scope = result.getScope();
if (scope == RedmineModelScope.project || scope == RedmineModelScope.version) {
// check projectId used
if (projectId == null || projectId.isEmpty()) {
- throw new MojoFailureException("could not use the data type " + result + " since it is not a project requires and projectId was not filled");
+ throw new MojoFailureException("The data type '" + result + "', depends on a project, but the 'projectId' was not filled.");
}
}
if (scope == RedmineModelScope.version) {
// check versionId use
if (versionId == null || versionId.isEmpty()) {
- throw new MojoFailureException("could not use the data type " + result + " since it a version requires and versionId was not filled");
+ throw new MojoFailureException("The data type '" + result + "', depends on a version, but the 'versionId' was not filled.");
}
}
-
- if (!universeList.isEmpty() && !universeList.contains(result)) {
- // can not accept these value
- getLog().warn("the type " + result + " is not authorized, Accepted types are : " + universeList);
- continue;
- }
results.add(result);
}
return results;
Modified: trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/GenerateChangesMojo.java
===================================================================
--- trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/GenerateChangesMojo.java 2010-01-24 15:52:13 UTC (rev 116)
+++ trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/GenerateChangesMojo.java 2010-01-24 15:52:43 UTC (rev 117)
@@ -57,6 +57,19 @@
}
/**
+ * Flag to know if anonymùous connexion to redmine server is required.
+ * <p/>
+ * For this goal, the default value is {@code true}
+ * <p/>
+ * <b>Note:</b> If set to {@code false}, you should fill {@link #username}
+ * and {@link #password} properties.
+ *
+ * @parameter expression="${redmine.anonymous}" default-value="true"
+ * @since 1.1.3
+ */
+ protected boolean anonymous;
+
+ /**
* The path of the <code>changes.xml</code> file that will be converted into an HTML report.
*
* @parameter expression="${redmine.xmlPath}" default-value="${basedir}/src/changes/changes.xml"
@@ -163,6 +176,16 @@
}
@Override
+ public boolean isAnonymous() {
+ return this.anonymous;
+ }
+
+ @Override
+ public void setAnonymous(boolean anonymous) {
+ this.anonymous = anonymous;
+ }
+
+ @Override
protected boolean isGoalSkip() {
return skipGenerateChanges;
}
@@ -212,7 +235,8 @@
return;
}
}
-
+ // connect as anonymous
+ setAnonymous(true);
super.init();
if (!safe && !initOk) {
// we are in none safe mode but init is not ok...
@@ -450,7 +474,7 @@
//TODO make some logic checks : version must be
// build the maven changes.xml as memory model
- ChangesDocument doc = buildChangesDocument(releaseProject, releaseVersion, releaseUser, collector);
+ ChangesDocument doc = buildChangesDocument(releaseVersion, releaseUser, collector);
// store the generated file
ChangesXpp3Writer xppWriter = new ChangesXpp3Writer();
@@ -465,7 +489,7 @@
cacheChangesFile = xmlPath;
}
- protected ChangesDocument buildChangesDocument(Project project, Version version, User user, IssuesCollector collector) throws RedmineServiceException {
+ protected ChangesDocument buildChangesDocument(Version version, User user, IssuesCollector collector) throws RedmineServiceException {
ChangesDocument doc = new ChangesDocument();
Properties properties = new Properties();
Author author = new Author();
Modified: trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/NextVersionMojo.java
===================================================================
--- trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/NextVersionMojo.java 2010-01-24 15:52:13 UTC (rev 116)
+++ trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/NextVersionMojo.java 2010-01-24 15:52:43 UTC (rev 117)
@@ -42,6 +42,16 @@
public class NextVersionMojo extends AbstractRedmineMojo {
/**
+ * Flag to know if anonymùous connexion to redmine server is required.
+ *
+ * <b>Note:</b> If set to {@code false}, you should fill {@link #username}
+ * and {@link #password} properties.
+ *
+ * @parameter expression="${redmine.anonymous}" default-value="false"
+ * @since 1.1.3
+ */
+ protected boolean anonymous;
+ /**
* The news description to update to redmine server.
* <p/>
* Note : if not set, no update of the description will be made.
@@ -102,6 +112,16 @@
}
@Override
+ public boolean isAnonymous() {
+ return anonymous;
+ }
+
+ @Override
+ public void setAnonymous(boolean anonymous) {
+ this.anonymous = anonymous;
+ }
+
+ @Override
protected boolean isGoalSkip() {
return skipNextVersion;
}
Modified: trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/PublishAttachmentsMojo.java
===================================================================
--- trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/PublishAttachmentsMojo.java 2010-01-24 15:52:13 UTC (rev 116)
+++ trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/PublishAttachmentsMojo.java 2010-01-24 15:52:43 UTC (rev 117)
@@ -41,8 +41,17 @@
* @since 1.0.0
*/
public class PublishAttachmentsMojo extends AbstractRedmineMojo {
-
/**
+ * Flag to know if anonymùous connexion to redmine server is required.
+ *
+ * <b>Note:</b> If set to {@code false}, you should fill {@link #username}
+ * and {@link #password} properties.
+ *
+ * @parameter expression="${redmine.anonymous}" default-value="false"
+ * @since 1.1.3
+ */
+ protected boolean anonymous;
+ /**
* The path of a properties files where files to deploy are descriped.
* <p/>
* The key of a property is the sortor key
@@ -95,6 +104,16 @@
}
@Override
+ public boolean isAnonymous() {
+ return anonymous;
+ }
+
+ @Override
+ public void setAnonymous(boolean anonymous) {
+ this.anonymous = anonymous;
+ }
+
+ @Override
protected boolean isGoalSkip() {
return skipPublishAttachments;
}
Modified: trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/PublishNewsMojo.java
===================================================================
--- trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/PublishNewsMojo.java 2010-01-24 15:52:13 UTC (rev 116)
+++ trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/PublishNewsMojo.java 2010-01-24 15:52:43 UTC (rev 117)
@@ -34,8 +34,17 @@
* @since 1.0.0
*/
public class PublishNewsMojo extends AbstractRedmineMojo {
-
/**
+ * Flag to know if anonymùous connexion to redmine server is required.
+ *
+ * <b>Note:</b> If set to {@code false}, you should fill {@link #username}
+ * and {@link #password} properties.
+ *
+ * @parameter expression="${redmine.anonymous}" default-value="false"
+ * @since 1.1.3
+ */
+ protected boolean anonymous;
+ /**
* The content file of the news.
*
* @parameter expression="${redmine.newsContentFile}"
@@ -88,6 +97,16 @@
}
@Override
+ public boolean isAnonymous() {
+ return anonymous;
+ }
+
+ @Override
+ public void setAnonymous(boolean anonymous) {
+ this.anonymous = anonymous;
+ }
+
+ @Override
protected boolean isGoalSkip() {
return skipPublishNews;
}
Modified: trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/UpdateVersionMojo.java
===================================================================
--- trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/UpdateVersionMojo.java 2010-01-24 15:52:13 UTC (rev 116)
+++ trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/UpdateVersionMojo.java 2010-01-24 15:52:43 UTC (rev 117)
@@ -38,8 +38,17 @@
* @since 1.0.0
*/
public class UpdateVersionMojo extends AbstractRedmineMojo {
-
/**
+ * Flag to know if anonymùous connexion to redmine server is required.
+ *
+ * <b>Note:</b> If set to {@code false}, you should fill {@link #username}
+ * and {@link #password} properties.
+ *
+ * @parameter expression="${redmine.anonymous}" default-value="false"
+ * @since 1.1.3
+ */
+ protected boolean anonymous;
+ /**
* The news description to update to redmine server.
* <p/>
* Note : if not set, no update of the description will be made.
@@ -98,6 +107,16 @@
}
@Override
+ public boolean isAnonymous() {
+ return anonymous;
+ }
+
+ @Override
+ public void setAnonymous(boolean anonymous) {
+ this.anonymous = anonymous;
+ }
+
+ @Override
protected boolean isGoalSkip() {
return skipUpdateVersion;
}
Modified: trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/announcement/AbstractAnnouncementMojo.java
===================================================================
--- trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/announcement/AbstractAnnouncementMojo.java 2010-01-24 15:52:13 UTC (rev 116)
+++ trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/announcement/AbstractAnnouncementMojo.java 2010-01-24 15:52:43 UTC (rev 117)
@@ -43,6 +43,18 @@
public abstract class AbstractAnnouncementMojo extends AbstractRedmineMojo implements AnnouncementGeneratorConfiguration {
/**
+ * Flag to know if anonymùous connexion to redmine server is required.
+ * <p/>
+ * For this goal, the default value is {@code true}
+ * <p/>
+ * <b>Note:</b> If set to {@code false}, you should fill {@link #username}
+ * and {@link #password} properties.
+ *
+ * @parameter expression="${redmine.anonymous}" default-value="true"
+ * @since 1.1.3
+ */
+ protected boolean anonymous;
+ /**
* Directory where the template file will be generated.
*
* @parameter expression="${redmine.templateOutputDirectory}" default-value="${project.build.directory}/generated-sources/announcement"
@@ -210,8 +222,17 @@
///////////////////////////////////////////////////////////////////////////
/// AbstractRedmineMojo
///////////////////////////////////////////////////////////////////////////
+ @Override
+ public boolean isAnonymous() {
+ return this.anonymous;
+ }
@Override
+ public void setAnonymous(boolean anonymous) {
+ this.anonymous = anonymous;
+ }
+
+ @Override
protected boolean isRunOnce() {
return runOnce;
}
Modified: trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/report/AbstractRedmineReport.java
===================================================================
--- trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/report/AbstractRedmineReport.java 2010-01-24 15:52:13 UTC (rev 116)
+++ trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/report/AbstractRedmineReport.java 2010-01-24 15:52:43 UTC (rev 117)
@@ -64,6 +64,18 @@
public abstract class AbstractRedmineReport extends AbstractRedmineMojo implements MavenReport, Plugin, RestClientConfiguration {
/**
+ * Flag to know if anonymùous connexion to redmine server is required.
+ * <p/>
+ * For this goal, the default value is {@code true}
+ * <p/>
+ * <b>Note:</b> If set to {@code false}, you should fill {@link #username}
+ * and {@link #password} properties.
+ *
+ * @parameter expression="${redmine.anonymous}" default-value="true"
+ * @since 1.1.3
+ */
+ protected boolean anonymous;
+ /**
* Template strings per system that is used to discover the URL to use to display an issue report. Each key in this
* map denotes the (case-sensitive) identifier of the issue tracking system and its value gives the URL template.
* <p>
@@ -139,6 +151,15 @@
super(requireProject, requireVersion, requireUser);
}
+ @Override
+ public boolean isAnonymous() {
+ return this.anonymous;
+ }
+
+ @Override
+ public void setAnonymous(boolean anonymous) {
+ this.anonymous = anonymous;
+ }
///////////////////////////////////////////////////////////////////////////
/// Plugin
///////////////////////////////////////////////////////////////////////////
Modified: trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/report/IssuesReportByCategory.java
===================================================================
--- trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/report/IssuesReportByCategory.java 2010-01-24 15:52:13 UTC (rev 116)
+++ trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/report/IssuesReportByCategory.java 2010-01-24 15:52:43 UTC (rev 117)
@@ -72,7 +72,7 @@
* <p/>
* To see the internal ids, use the command :
* <pre>
- * mvn redmine:display-ids -Dtype=<entry key>
+ * mvn redmine:display-data -Dtypes=<entry key>
* </pre>
*
* @parameter