Sandbox-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
September 2009
- 4 participants
- 247 discussions
r194 - jredmine/trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin
by tchemit@users.nuiton.org 20 Sep '09
by tchemit@users.nuiton.org 20 Sep '09
20 Sep '09
Author: tchemit
Date: 2009-09-20 21:22:55 +0200 (Sun, 20 Sep 2009)
New Revision: 194
Modified:
jredmine/trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/GenerateChangesMojo.java
Log:
fix error on GenertaeChanges when the release exists.
Modified: jredmine/trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/GenerateChangesMojo.java
===================================================================
--- jredmine/trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/GenerateChangesMojo.java 2009-09-20 19:13:52 UTC (rev 193)
+++ jredmine/trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/GenerateChangesMojo.java 2009-09-20 19:22:55 UTC (rev 194)
@@ -322,6 +322,8 @@
boolean versionExist = true;
+ releaseVersion = ModelHelper.byVersionName(versionId, versions);
+
if (releaseVersion == null) {
versionExist = false;
@@ -345,10 +347,10 @@
for (Version v : versions) {
- String id = v.getName();
+ String versionName = v.getName();
boolean keep = true;
- if (!versionId.equals(id)) {
+ if (!versionId.equals(versionName)) {
//TODO TC-20090914 make this better, since this is a
// very soft test to test only the effective date
1
0
r193 - jredmine/trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/announcement
by tchemit@users.nuiton.org 20 Sep '09
by tchemit@users.nuiton.org 20 Sep '09
20 Sep '09
Author: tchemit
Date: 2009-09-20 21:13:52 +0200 (Sun, 20 Sep 2009)
New Revision: 193
Modified:
jredmine/trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/announcement/AbstractAnnouncementMojo.java
Log:
using release version form generate changes
Modified: jredmine/trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/announcement/AbstractAnnouncementMojo.java
===================================================================
--- jredmine/trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/announcement/AbstractAnnouncementMojo.java 2009-09-20 19:05:16 UTC (rev 192)
+++ jredmine/trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/announcement/AbstractAnnouncementMojo.java 2009-09-20 19:13:52 UTC (rev 193)
@@ -14,6 +14,7 @@
import org.codehaus.plexus.util.StringUtils;
import org.codehaus.plexus.velocity.VelocityComponent;
import org.nuiton.jredmine.plugin.AbstractRedmineMojo;
+import org.nuiton.util.PluginHelper;
/**
*
@@ -164,7 +165,6 @@
protected AbstractAnnouncementMojo() {
super(true, false, true);
-// super(true, true, true);
}
@Override
@@ -185,6 +185,8 @@
}
}
+ versionId = PluginHelper.removeSnapshotSuffix(versionId);
+
if (!super.init()) {
return false;
}
1
0
r192 - jredmine/trunk/jredmine-client/src/main/redmine/jredmine/app/controllers
by tchemit@users.nuiton.org 20 Sep '09
by tchemit@users.nuiton.org 20 Sep '09
20 Sep '09
Author: tchemit
Date: 2009-09-20 21:05:16 +0200 (Sun, 20 Sep 2009)
New Revision: 192
Modified:
jredmine/trunk/jredmine-client/src/main/redmine/jredmine/app/controllers/jredmine_controller.rb
Log:
fix return tag for issue-statuses and issue-categories
Modified: jredmine/trunk/jredmine-client/src/main/redmine/jredmine/app/controllers/jredmine_controller.rb
===================================================================
--- jredmine/trunk/jredmine-client/src/main/redmine/jredmine/app/controllers/jredmine_controller.rb 2009-09-20 17:43:56 UTC (rev 191)
+++ jredmine/trunk/jredmine-client/src/main/redmine/jredmine/app/controllers/jredmine_controller.rb 2009-09-20 19:05:16 UTC (rev 192)
@@ -66,13 +66,13 @@
# recuperation des differentes categories d'issues
def get_issue_categories
@issue_categories = @project.issue_categories.find(:all)
- render_array_result @issue_categories, "issue_categories"
+ render_array_result @issue_categories, "issue-categories"
end
# recuperation des differentes statuts d'issues
def get_issue_statuses
@issue_status = IssueStatus.find(:all)
- render_array_result @issue_status, "issue_statuses"
+ render_array_result @issue_status, "issue-statuses"
end
# recuperation du projet
def get_project
1
0
Author: tchemit
Date: 2009-09-20 19:43:56 +0200 (Sun, 20 Sep 2009)
New Revision: 191
Modified:
jredmine/trunk/src/site/apt/index.apt
jredmine/trunk/src/site/site.xml
Log:
site documentation
Modified: jredmine/trunk/src/site/apt/index.apt
===================================================================
--- jredmine/trunk/src/site/apt/index.apt 2009-09-20 17:14:13 UTC (rev 190)
+++ jredmine/trunk/src/site/apt/index.apt 2009-09-20 17:43:56 UTC (rev 191)
@@ -1,19 +1,31 @@
----
-Introduction
+JRedmine
----
----
2009-09-15
----
-JRedmine
+Introduction
- JRedmine is a java client to redmine server, it allows to retreave datas
- from a redmine server and edit datas on redmine server.
+ JRedmine est un projet <Java> permettant de communiquer avec un serveur
+ Redmine.
- The projects offers a redmine tails plugin to expose some services in REST
- protocol (<redmine_rest>).
+ Le projet est organisé en deux modules :
- The project offers also a maven plugin to perform actions related to a
- project management (release notes, publish announcements and attachements,...)
+ * {{{jredmine-client/index.html}JRedmine-client}} : ce module contient
+ * un plugin <rails> à installer sur le serveur redmine qui permet d'ouvrir
+ l'api de redmine en <REST>.
+ * un client java pour interroger les services <REST> en java.
+
+ []
+
+ * {{{maven-jredmine-plugin/index.html}maven-jredmine-plugin}} : ce module
+ est un plugin maven pour effectuer des tâches de maintenance sur le serveur
+ Redmine. On peut par exemple publier des annonces, des fichiers, clotûrer
+ une version,...
+
+ []
+
+ Pour plus d'informations, voir la documentation des deux modules.
\ No newline at end of file
Modified: jredmine/trunk/src/site/site.xml
===================================================================
--- jredmine/trunk/src/site/site.xml 2009-09-20 17:14:13 UTC (rev 190)
+++ jredmine/trunk/src/site/site.xml 2009-09-20 17:43:56 UTC (rev 191)
@@ -30,14 +30,6 @@
<menu name="Utilisateur">
<item name="Introduction" href="index.html"/>
- <!--item name="Usage" href="usage.html"/>
- <item name="Goals" href="plugin-info.html">
- <item name="generate-changes" href="generate-changes-mojo.html"/>
- <item name="redmine-report" href="redmine-report-mojo.html"/>
- <item name="get-project-data" href="get-project-data-mojo.html"/>
- <item name="get-project-version-data" href="get-project-version-data-mojo.html"/>
- <item name="help" href="help-mojo.html"/>
- </item-->
</menu>
<menu name="Développeur">
@@ -46,15 +38,6 @@
<menu ref="modules"/>
- <!--menu name="Téléchargement">
- <item href="${repository.home.url}/org/nuiton/maven-redmine-plugin/${project.version}/${project.build.finalName}.jar"
- name="Librairie (jar)"/>
- <item href="${repository.home.url}/org/nuiton/maven-redmine-plugin/${project.version}/${project.build.finalName}-javadoc.jar"
- name="Javadoc (jar)"/>
- <item href="${repository.home.url}/org/nuiton/maven-redmine-plugin/${project.version}/${project.build.finalName}-sources.jar"
- name="Sources (jar)"/>
- </menu-->
-
<menu ref="reports"/>
</body>
1
0
r190 - in jredmine/trunk/maven-jredmine-plugin: . src/main/java/org/nuiton/jredmine/plugin src/site
by tchemit@users.nuiton.org 20 Sep '09
by tchemit@users.nuiton.org 20 Sep '09
20 Sep '09
Author: tchemit
Date: 2009-09-20 19:14:13 +0200 (Sun, 20 Sep 2009)
New Revision: 190
Modified:
jredmine/trunk/maven-jredmine-plugin/pom.xml
jredmine/trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/AbstractRedmineMojo.java
jredmine/trunk/maven-jredmine-plugin/src/site/site.xml
Log:
improve pom
begin of site documentation
add javadoc
Modified: jredmine/trunk/maven-jredmine-plugin/pom.xml
===================================================================
--- jredmine/trunk/maven-jredmine-plugin/pom.xml 2009-09-20 17:12:37 UTC (rev 189)
+++ jredmine/trunk/maven-jredmine-plugin/pom.xml 2009-09-20 17:14:13 UTC (rev 190)
@@ -38,12 +38,6 @@
<artifactId>maven-helper-plugin</artifactId>
</dependency>
- <!-- fix dependency pb in velocity (need at least version > 2.2) -->
- <!-- <dependency>
- <groupId>commons-lang</groupId>
- <artifactId>commons-lang</artifactId>
- </dependency>-->
-
<!-- FIXME si on ne le rajoute pas, on se retrouve avec la version 1.1 qui ne convient pas -->
<dependency>
<groupId>org.codehaus.plexus</groupId>
@@ -73,22 +67,6 @@
<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-changes-plugin</artifactId>
- <!--<exclusions>
- <exclusion>
- <groupId>plexus</groupId>
- <artifactId>plexus-mail-sender-simple</artifactId>
- </exclusion>
- <exclusion>
- <groupId>plexus</groupId>
- <artifactId>plexus-mail-sender-api</artifactId>
- </exclusion>
-
- <exclusion>
- <groupId>plexus</groupId>
- <artifactId>plexus-mail-sender-javamail</artifactId>
- </exclusion>
-
- </exclusions>-->
</dependency>
<dependency>
@@ -97,11 +75,6 @@
<scope>compile</scope>
</dependency>
- <!-- <dependency>
- <groupId>org.apache.httpcomponents</groupId>
- <artifactId>httpclient</artifactId>
- </dependency>-->
-
<!-- tests dependencies -->
<dependency>
@@ -179,15 +152,6 @@
<pluginManagement>
<plugins>
- <!-- <plugin>
- <artifactId>maven-surefire-plugin</artifactId>
- <configuration>
- <includes>
- <include>**/*TestSuite.java</include>
- </includes>
- </configuration>
- </plugin>-->
-
</plugins>
</pluginManagement>
Modified: jredmine/trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/AbstractRedmineMojo.java
===================================================================
--- jredmine/trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/AbstractRedmineMojo.java 2009-09-20 17:12:37 UTC (rev 189)
+++ jredmine/trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/AbstractRedmineMojo.java 2009-09-20 17:14:13 UTC (rev 190)
@@ -34,7 +34,7 @@
public abstract class AbstractRedmineMojo extends AbstractPlugin implements RestClientConfiguration {
public static final String REDMINE_SYSTEM = "redmine";
- /**
+ /**
* @parameter expression="${session}"
* @required
* @readonly
@@ -133,13 +133,37 @@
* @since 1.0.0
*/
protected RedmineService service;
+ /**
+ * flag to load in init a required project using the {@link #projectId} name
+ */
private final boolean requireProject;
+ /**
+ * flag to load in init a required version using the {@link #versionId} name.
+ */
private final boolean requireVersion;
+ /**
+ * flag to load in init a required user using the user loggued to redmine server.
+ */
private final boolean requireUser;
+ /**
+ * the project loaded in init if {@link #requireProject} flag is on
+ */
protected Project releaseProject;
+ /**
+ * the version loaded in init if {@link #requireVersion} flag is on
+ */
protected Version releaseVersion;
+ /**
+ * the user loaded in init if {@link #requireUser} flag is on
+ */
protected User releaseUser;
+ /**
+ * cache of users of a given project loaded in int if {@link #requireUser} flag is on
+ */
protected User[] users;
+ /**
+ * the date format used to write a date
+ */
protected DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
public AbstractRedmineMojo(boolean requireProject, boolean requireVersion, boolean requireUser) {
@@ -478,7 +502,6 @@
}
}
-
protected boolean isExecutionRoot() {
return project == getExecutionRootProject();
}
Modified: jredmine/trunk/maven-jredmine-plugin/src/site/site.xml
===================================================================
--- jredmine/trunk/maven-jredmine-plugin/src/site/site.xml 2009-09-20 17:12:37 UTC (rev 189)
+++ jredmine/trunk/maven-jredmine-plugin/src/site/site.xml 2009-09-20 17:14:13 UTC (rev 190)
@@ -1,27 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<project name="${project.name}">
- <publishDate format="dd/MM/yyyy"/>
-
- <skin>
- <groupId>org.nuiton</groupId>
- <artifactId>maven-nuiton-skin</artifactId>
- <version>1.0.0</version>
- </skin>
<bannerLeft>
<name>${project.name}</name>
<href>index.html</href>
</bannerLeft>
- <bannerRight>
- <src>http://www.codelutin.com/images/lutinorange-codelutin.png</src>
- <href>${project.organization.url}</href>
- </bannerRight>
-
- <poweredBy>
- <logo href="http://maven.apache.org" name="Maven" img="images/logos/maven-feather.png"/>
- </poweredBy>
-
<body>
<breadcrumbs>
@@ -33,11 +17,24 @@
<item name="Usage" href="usage.html"/>
<item name="Goals" href="plugin-info.html">
<item name="generate-changes" href="generate-changes-mojo.html"/>
- <item name="redmine-report" href="redmine-report-mojo.html"/>
- <item name="get-project-data" href="get-project-data-mojo.html"/>
- <item name="get-project-version-data" href="get-project-version-data-mojo.html"/>
+ <item name="display-data" href="display-data-mojo.html"/>
+ <item name="generate-email-announcement" href="generate-email-announcement-mojo.html"/>
+ <item name="generate-news-announcement" href="generate-news-announcement-mojo.html"/>
+ <item name="update-version" href="update-version-mojo.html"/>
+ <item name="publish-news" href="publish-news-mojo.html"/>
+ <item name="publish-attachments" href="publish-attachments-mojo.html"/>
<item name="help" href="help-mojo.html"/>
</item>
+ <item name="Reports" href="plugin-info.html">
+ <item name="issues-report" href="issues-report-mojo.html"/>
+ <item name="issues-report-by-assignee" href="issues-report-by-assignee-mojo.html"/>
+ <item name="issues-report-by-category" href="issues-report-by-category-mojo.html"/>
+ <item name="issues-report-by-priority" href="issues-report-by-priority-mojo.html"/>
+ <item name="issues-report-by-reporter" href="issues-report-by-reporter-mojo.html"/>
+ <item name="issues-report-by-status" href="issues-report-by-status-mojo.html"/>
+ <item name="issues-report-by-tracker" href="issues-report-by-tracker-mojo.html"/>
+ <item name="issues-report-by-version" href="issues-report-by-version-mojo.html"/>
+ </item>
</menu>
<menu name="Téléchargement">
1
0
r189 - in jredmine/trunk/jredmine-client: . src/main/java/org/nuiton/jredmine src/main/java/org/nuiton/jredmine/rest src/main/redmine/jredmine src/main/redmine/jredmine/app/controllers src/site src/site/apt
by tchemit@users.nuiton.org 20 Sep '09
by tchemit@users.nuiton.org 20 Sep '09
20 Sep '09
Author: tchemit
Date: 2009-09-20 19:12:37 +0200 (Sun, 20 Sep 2009)
New Revision: 189
Added:
jredmine/trunk/jredmine-client/src/main/redmine/jredmine/app/controllers/jredmine_controller.rb
jredmine/trunk/jredmine-client/src/site/apt/rails_api.apt
Removed:
jredmine/trunk/jredmine-client/src/main/redmine/jredmine/app/controllers/rest_controller.rb
Modified:
jredmine/trunk/jredmine-client/pom.xml
jredmine/trunk/jredmine-client/src/main/java/org/nuiton/jredmine/DefaultRedmineService.java
jredmine/trunk/jredmine-client/src/main/java/org/nuiton/jredmine/RedmineService.java
jredmine/trunk/jredmine-client/src/main/java/org/nuiton/jredmine/RedmineServiceImplementor.java
jredmine/trunk/jredmine-client/src/main/java/org/nuiton/jredmine/rest/RedmineRestClient.java
jredmine/trunk/jredmine-client/src/main/redmine/jredmine/init.rb
jredmine/trunk/jredmine-client/src/site/apt/index.apt
jredmine/trunk/jredmine-client/src/site/site.xml
Log:
add javadoc
add site documentation
consolidate jredmine rails plugin
improve plexus components
Modified: jredmine/trunk/jredmine-client/pom.xml
===================================================================
--- jredmine/trunk/jredmine-client/pom.xml 2009-09-19 18:28:30 UTC (rev 188)
+++ jredmine/trunk/jredmine-client/pom.xml 2009-09-20 17:12:37 UTC (rev 189)
@@ -61,29 +61,12 @@
</exclusions>
</dependency>
- <!-- <dependency>
- <groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-utils</artifactId>
- </dependency>-->
-
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<scope>test</scope>
</dependency>
- <!-- fix dependency in xpp parsing from plexus (need at least version > 2.2) -->
- <!--<dependency>
- <groupId>commons-lang</groupId>
- <artifactId>commons-lang</artifactId>
- </dependency>-->
-
- <!-- fix dependency in maven-helper-plugin -->
- <!--<dependency>
- <groupId>commons-httpclient</groupId>
- <artifactId>commons-httpclient</artifactId>
- </dependency>-->
-
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
@@ -110,12 +93,12 @@
<!-- expose new plexus components -->
<plugin>
<groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-maven-plugin</artifactId>
- <version>1.3.8</version>
+ <artifactId>plexus-component-metadata</artifactId>
+ <version>1.2.0</version>
<executions>
<execution>
<goals>
- <goal>descriptor</goal>
+ <goal>generate-metadata</goal>
</goals>
</execution>
</executions>
@@ -135,6 +118,16 @@
</plugins>
</build>
+
+ <reporting>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-maven-plugin</artifactId>
+ <version>1.3.8</version>
+ </plugin>
+ </plugins>
+ </reporting>
<!-- ************************************************************* -->
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
Modified: jredmine/trunk/jredmine-client/src/main/java/org/nuiton/jredmine/DefaultRedmineService.java
===================================================================
--- jredmine/trunk/jredmine-client/src/main/java/org/nuiton/jredmine/DefaultRedmineService.java 2009-09-19 18:28:30 UTC (rev 188)
+++ jredmine/trunk/jredmine-client/src/main/java/org/nuiton/jredmine/DefaultRedmineService.java 2009-09-20 17:12:37 UTC (rev 189)
@@ -36,10 +36,12 @@
protected static final Log log = LogFactory.getLog(DefaultRedmineService.class);
/**
* client Rest
+ * @plexus.requirement role="org.nuiton.io.rest.RestClient"
+ * role-hint="redmine"
*/
protected RestClient session;
/**
- * xpp3 xpp3Helper
+ * xpp3 xpp3Helper to transform xml stream to pojo
*/
protected final RedmineXpp3Helper xpp3Helper;
/**
@@ -191,12 +193,13 @@
@Override
public RedmineServiceImplementor init(RestClientConfiguration configuration) throws RedmineServiceException {
- RedmineServiceImplementor result = init(new RedmineRestClient(configuration));
+ session.setConfiguration(configuration);
+ RedmineServiceImplementor result = init(session);
return result;
}
@Override
- public RedmineServiceImplementor init(RedmineRestClient session) throws RedmineServiceException {
+ public RedmineServiceImplementor init(RestClient session) throws RedmineServiceException {
if (init) {
throw new IllegalStateException("the client " + this + " was already init!");
}
@@ -283,7 +286,7 @@
String requestName = type.getName() + (array ? "list" : "detail");
RestRequest r = getRequest(requestName, args);
- // obtain data from rest session
+ // obtain data from rest client
try {
InputStream stream = session.askData(r);
Modified: jredmine/trunk/jredmine-client/src/main/java/org/nuiton/jredmine/RedmineService.java
===================================================================
--- jredmine/trunk/jredmine-client/src/main/java/org/nuiton/jredmine/RedmineService.java 2009-09-19 18:28:30 UTC (rev 188)
+++ jredmine/trunk/jredmine-client/src/main/java/org/nuiton/jredmine/RedmineService.java 2009-09-20 17:12:37 UTC (rev 189)
@@ -14,8 +14,6 @@
/**
* The service that mirrors the rails {@code jredmine} plugin.
*
- * TODO javadoc
- *
* @author chemit
* @since 1.0.0
*/
@@ -24,35 +22,172 @@
/** Plexus lookup name */
String ROLE = RedmineService.class.getName();
+ /**
+ * Obtain all accessible projets for the loggued user.
+ *
+ * @return all the projects
+ * @throws RedmineServiceException if any pb
+ * @see Project
+ */
Project[] getProjects() throws RedmineServiceException;
+ /**
+ * Obtain all the priorities defined on a {@link Issue}.
+ *
+ * <b>Note : </b> The priorities are common for all projects.
+ *
+ * @return all the issue properties
+ * @throws RedmineServiceException
+ * @see IssuePriority
+ */
IssuePriority[] getIssuePriorities() throws RedmineServiceException;
+ /**
+ * Obtain all the statuses defined on a {@link Issue}.
+ *
+ * <b>Note : </b> The statuses are common for all projects.
+ *
+ * @return all the issue statuses
+ * @throws RedmineServiceException
+ * @see IssueStatus
+ */
IssueStatus[] getIssueStatuses() throws RedmineServiceException;
+ /**
+ * Obtain a project given his name.
+ *
+ * @param projectId the name of the project
+ * @return the project
+ * @throws RedmineServiceException
+ * @see Project
+ */
Project getProject(String projectId) throws RedmineServiceException;
+ /**
+ * Obtain all categories defined on issues for a given project.
+ *
+ * @param projectId the name of the project
+ * @return the categories of issues for the given project.
+ * @throws RedmineServiceException
+ * @see IssueCategory
+ */
IssueCategory[] getIssueCategories(String projectId) throws RedmineServiceException;
+ /**
+ * Obtain all trackers defined on a given project.
+ *
+ * @param projectId the name of the project
+ * @return the trackers for the given project.
+ * @throws RedmineServiceException
+ * @see Tracker
+ */
Tracker[] getTrackers(String projectId) throws RedmineServiceException;
+ /**
+ * Obtain all news defined on a given project.
+ *
+ * @param projectId the name of the project
+ * @return the news for the given project.
+ * @throws RedmineServiceException
+ * @see News
+ */
News[] getNews(String projectId) throws RedmineServiceException;
+ /**
+ * Obtain all users defined on a given project.
+ *
+ * @param projectId the name of the project
+ * @return the users for the given project.
+ * @throws RedmineServiceException
+ * @see User
+ */
User[] getUsers(String projectId) throws RedmineServiceException;
+ /**
+ * Obtain all versions defined on a given project.
+ *
+ * @param projectId the name of the project
+ * @return the versions of the given project.
+ * @throws RedmineServiceException
+ * @see Version
+ */
Version[] getVersions(String projectId) throws RedmineServiceException;
+ /**
+ * Obtain a specific version for a given project.
+ *
+ * @param projectId the name of the project
+ * @param versionId the name of the version
+ * @return the version
+ * @throws RedmineServiceException
+ * @see Version
+ */
Version getVersion(String projectId, String versionId) throws RedmineServiceException;
+ /**
+ * Obtain all issues for a specific version on a given project
+ *
+ * @param projectId the name of the project
+ * @param versionId the name of the version
+ * @return the issues
+ * @throws RedmineServiceException
+ * @see Issue
+ */
Issue[] getIssues(String projectId, String versionId) throws RedmineServiceException;
+ /**
+ * Obtain all attachments for a specific version on a given project
+ *
+ * @param projectId the name of the project
+ * @param versionId the name of the version
+ * @return the attachments
+ * @throws RedmineServiceException
+ * @see Attachment
+ */
Attachment[] getAttachments(String projectId, String versionId) throws RedmineServiceException;
+ /**
+ * Add a version for a given project.
+ *
+ * @param projectId the name of the project
+ * @param version the version to add
+ * @return the added version
+ * @throws RedmineServiceException
+ * @see Version
+ */
Version addVersion(String projectId, Version version) throws RedmineServiceException;
+ /**
+ * Update a version for a given project.
+ *
+ * @param projectId the name of the project
+ * @param version the version to update
+ * @return the updated version
+ * @throws RedmineServiceException
+ * @see Version
+ */
Version updateVersion(String projectId, Version version) throws RedmineServiceException;
+ /**
+ * Add a news for a given project.
+ *
+ * @param projectId the name of the project
+ * @param news the news to add
+ * @return the added news.
+ * @throws RedmineServiceException
+ * @see News
+ */
News addNews(String projectId, News news) throws RedmineServiceException;
+ /**
+ * Add a attachment for a given version of a given project.
+ *
+ * @param projectId the name of the project
+ * @param versionId the name of the version
+ * @param attachement the attachment to add
+ * @return the added attachment
+ * @throws RedmineServiceException
+ * @see Attachment
+ */
Attachment addAttachment(String projectId, String versionId, Attachment attachement) throws RedmineServiceException;
}
Modified: jredmine/trunk/jredmine-client/src/main/java/org/nuiton/jredmine/RedmineServiceImplementor.java
===================================================================
--- jredmine/trunk/jredmine-client/src/main/java/org/nuiton/jredmine/RedmineServiceImplementor.java 2009-09-19 18:28:30 UTC (rev 188)
+++ jredmine/trunk/jredmine-client/src/main/java/org/nuiton/jredmine/RedmineServiceImplementor.java 2009-09-20 17:12:37 UTC (rev 189)
@@ -1,30 +1,96 @@
package org.nuiton.jredmine;
import java.io.InputStream;
+import org.nuiton.io.rest.RestClient;
import org.nuiton.io.rest.RestClientConfiguration;
import org.nuiton.jredmine.rest.RedmineRestClient;
/**
* Technical contrat te be implemented in a {@link RedmineService}.
*
+ * Any concrete implentation of a {@link RedmineService} should also implements
+ * this service.
+ *
* @author chemit
* @since 1.0.0
*/
public interface RedmineServiceImplementor {
+ /**
+ * Tests if the service is loogued to the redmine service.
+ *
+ * @return {@code true} is service is init and loggued to Redmine service,
+ * {@code false} otherwise.
+ */
boolean isInit();
- RedmineServiceImplementor init(RedmineRestClient session) throws RedmineServiceException;
+ /**
+ * Initialize the service given a redmine client already initialized.
+ *
+ * @param client the redmine client to be used by the service
+ * @return the initialized service
+ * @throws RedmineServiceException
+ * @see RedmineRestClient
+ */
+ RedmineServiceImplementor init(RestClient client) throws RedmineServiceException;
+ /**
+ * Initialize the service given a client configuration.
+ *
+ * @param configuration the configuration to be used to init the internal redmine client
+ * @return the initialized service
+ * @throws RedmineServiceException
+ */
RedmineServiceImplementor init(RestClientConfiguration configuration) throws RedmineServiceException;
+ /**
+ * Close the service and destroy any connexions to the redmine service.
+ *
+ * @throws RedmineServiceException
+ */
void destroy() throws RedmineServiceException;
+ /**
+ * Generic method to obtain a single data from a redmine server.
+ *
+ * @param <T> the type of data to obtain
+ * @param type the type of data to obtain
+ * @param args the parameters to obtain the data
+ * @return the obtained data
+ * @throws RedmineServiceException
+ */
<T> T getData(Class<T> type, Object... args) throws RedmineServiceException;
+ /**
+ * Generic method to obtain a array of data from a redmine server.
+ *
+ * @param <T> the type of data to obtain
+ * @param type the type of data to obtain
+ * @param args the parameters to obtain the datas
+ * @return the obtained datas
+ * @throws RedmineServiceException
+ */
<T> T[] getDatas(Class<T> type, Object... args) throws RedmineServiceException;
+ /**
+ * Generic method to obtain an input stream of a data from a redmine server.
+ *
+ * @param <T> the type of data to obtain
+ * @param type the type of data to obtain
+ * @param args the parameters to obtain the data
+ * @return the input stream containing the data
+ * @throws RedmineServiceException
+ */
<T> InputStream getDataStream(Class<T> type, Object... args) throws RedmineServiceException;
+ /**
+ * Generic method to obtain an input stream of an array of data from a redmine server.
+ *
+ * @param <T> the type of data to obtain
+ * @param type the type of data to obtain
+ * @param args the parameters to obtain the datas
+ * @return the input stream containing the datas
+ * @throws RedmineServiceException
+ */
<T> InputStream getDatasStream(Class<T> type, Object... args) throws RedmineServiceException;
}
Modified: jredmine/trunk/jredmine-client/src/main/java/org/nuiton/jredmine/rest/RedmineRestClient.java
===================================================================
--- jredmine/trunk/jredmine-client/src/main/java/org/nuiton/jredmine/rest/RedmineRestClient.java 2009-09-19 18:28:30 UTC (rev 188)
+++ jredmine/trunk/jredmine-client/src/main/java/org/nuiton/jredmine/rest/RedmineRestClient.java 2009-09-20 17:12:37 UTC (rev 189)
@@ -32,6 +32,9 @@
*
* @author chemit
* @since 1.0.0
+ *
+ * @plexus.component role="org.nuiton.io.rest.RestClient"
+ * role-hint="redmine"
*/
public class RedmineRestClient extends RestClient {
@@ -57,9 +60,17 @@
public static final String LOGOUT = "logout";
public static final String PING = "ping";
+ public RedmineRestClient() {
+ super();
+ }
+
public RedmineRestClient(RestClientConfiguration configuration) {
super(configuration);
+ }
+ @Override
+ protected void addDefaultRequests() {
+
addRequestBuilder(new DefaultRequestBuilder(PING, "ping"));
addRequestBuilder(new DefaultRequestBuilder(LOGOUT, "logout"));
addRequestBuilder(new DefaultRequestBuilder(LOGIN, "login") {
@@ -99,9 +110,9 @@
public String[] getParameters(Object... args) {
Version version = (Version) args[1];
return new String[]{
- "version", version.getName(),
- "description", version.getDescription(),
- "date", DATE_FORMAT.format(version.getEffectiveDate())
+ "version[name]", version.getName(),
+ "version[description]", version.getDescription(),
+ "version[effective_date]", DATE_FORMAT.format(version.getEffectiveDate())
};
}
});
@@ -111,9 +122,9 @@
public String[] getParameters(Object... args) {
Version version = (Version) args[1];
return new String[]{
- "version", version.getName(),
- "description", version.getDescription(),
- "date", DATE_FORMAT.format(version.getEffectiveDate())
+ "version[name]", version.getName(),
+ "version[description]", version.getDescription(),
+ "version[effective_date]", DATE_FORMAT.format(version.getEffectiveDate())
};
}
});
@@ -126,8 +137,7 @@
return new String[]{
"news[title]", news.getTitle(),
"news[summary]", news.getSummary(),
- "news[description]", news.getDescription(),
- "authorId", news.getAuthorId() + ""
+ "news[description]", news.getDescription()
};
}
});
Copied: jredmine/trunk/jredmine-client/src/main/redmine/jredmine/app/controllers/jredmine_controller.rb (from rev 185, jredmine/trunk/jredmine-client/src/main/redmine/jredmine/app/controllers/rest_controller.rb)
===================================================================
--- jredmine/trunk/jredmine-client/src/main/redmine/jredmine/app/controllers/jredmine_controller.rb (rev 0)
+++ jredmine/trunk/jredmine-client/src/main/redmine/jredmine/app/controllers/jredmine_controller.rb 2009-09-20 17:12:37 UTC (rev 189)
@@ -0,0 +1,351 @@
+class JredmineController < ActionController::Base
+
+ # find user (after login)
+ before_filter :find_user, :except => [:ping, :login]
+
+ # find project and check permission
+ before_filter :find_project, :except => [:ping, :login, :logout, :get_projects, :get_issue_statuses, :get_issue_priorities]
+
+ # find project's version
+ before_filter :find_version, :only => [:get_version, :get_version_issues, :get_version_attachments, :add_version_attachment]
+
+ # check can edit project before push requests
+ #before_filter :check_edit, :only => [:add_version, :update_version, :add_news, :add_attachment, :add_version_attachment]
+
+ # ping service (just to test if service is reachable)
+ def ping
+ render :text => "ping", :status => 200
+ end
+
+ # Login request and validation
+ def login
+ if !request.post?
+ # Logout user : get method not possible
+ self.logged_user = nil
+ render_status 405, "POST method required"
+ else
+ # Authenticate user
+ user = User.try_to_login(params[:username], params[:password])
+ if user.nil?
+ # Invalid credentials
+ render_status 401, "Invalid credentials"
+ elsif user.new_record?
+ # Onthefly creation failed,
+ render_status 401, "User not activated"
+ else
+ # Valid user
+ self.logged_user = user
+ # always generate a key and set autologin cookie
+ token = Token.create(:user => user, :action => 'autologin')
+ cookies[:autologin] = { :value => token.value, :expires => 1.year.from_now }
+ render_status 200, "User logged in"
+ end
+ end
+ end
+
+ # Log out current user and redirect to welcome page
+ def logout
+ cookies.delete :autologin
+ Token.delete_all(["user_id = ? AND action = ?", User.current.id, 'autologin']) if User.current.logged?
+ # user is no more connected
+ self.logged_user = nil
+ render_status 200, "User logged out"
+ end
+
+ # recuperation des projets
+ def get_projects
+ @projects = Project.find(:all)
+ render_array_result @projects, "projects"
+ end
+
+ # recuperation des priorities d'issues
+ def get_issue_priorities
+ get_enumeration "IPRI"
+ end
+
+ # recuperation des differentes categories d'issues
+ def get_issue_categories
+ @issue_categories = @project.issue_categories.find(:all)
+ render_array_result @issue_categories, "issue_categories"
+ end
+
+ # recuperation des differentes statuts d'issues
+ def get_issue_statuses
+ @issue_status = IssueStatus.find(:all)
+ render_array_result @issue_status, "issue_statuses"
+ end
+ # recuperation du projet
+ def get_project
+ render_result @project
+ end
+
+ # recuperation de tous les membres d'un projet
+ def get_project_users
+ @members = @project.members.find(:all)
+ @r = []
+ for m in @members
+ u = User.find(m[:user_id])
+ u[:role_id] = m[:role_id]
+ u[:member_id] = m[:id]
+ #TODO - should remove the hashed password ?
+ @r << u
+ end
+ render_array_result @r, "users"
+ end
+
+ # recuperation de toutes les annonces d'un projet
+ def get_project_news
+ @news = @project.news.find(:all)
+ render_array_result @news, "news"
+ end
+
+ # recuperation des trakers d'un projet
+ def get_project_trackers
+ @trackers = @project.trackers.find(:all)
+ render_array_result @trackers, "trackers"
+ end
+
+ # recuperation des versions d'un projet
+ def get_project_versions
+ @versions = @project.versions.find(:all)
+ render_array_result @versions, "versions"
+ end
+
+ # recuperation de la version d'un projet
+ def get_version
+ render_result @version
+ end
+
+ # recuperation des issues d'un projet pour une version donnee
+ def get_version_issues
+ @issues = @version.fixed_issues.find(:all)
+ render_array_result @issues, "issues"
+ end
+
+ # recuperation des pieces jointes d'un projet pour une version donnee
+ def get_version_attachments
+ @files = @version.attachments.find(:all)
+ render_array_result @files, "attachments"
+ end
+
+ def show_permissions
+ allowed_permissions
+ render_result @allowed_permissions
+ end
+
+ def show_actions
+ allowed_actions
+ render_result @allowed_actions
+ end
+
+ # add a new version for a given project
+ def add_version(version = params["version"])
+ if !request.post?
+ render_status 405, "POST method required for action add_version"
+ return false
+ end
+ @version = @project.versions.find_by_name(version[:name])
+ if !@version
+ allowed = User.current.allowed_to?({:controller => 'projects', :action => "add_version"}, @project)
+ if !allowed
+ render_status 401, "No permission to add a version"
+ else
+ @version = Version.create(:project => @project, :name => version[:name])
+ if version[:description]
+ @version['description'] = version[:description]
+ end
+ if version[:effective_date]
+ @version['effective_date'] = version[:effective_date]
+ end
+ if @version.save
+ render_result @version
+ else
+ render_status 505, "Could not add the version..."
+ end
+ end
+ else
+ render_result @version
+ end
+ end
+
+ # update a existing version for a given project
+ def update_version(version=params["version"])
+ if !request.post?
+ render_status 405, "POST method required for action update_version"
+ return false
+ end
+ @version = @project.versions.find_by_name(version[:name])
+ if !@version
+ render_status 404, "The version " + version + " does not exist, can not update it..."
+ else
+ allowed = User.current.allowed_to?({:controller => 'versions', :action => "edit"}, @project)
+ if !allowed
+ render_status 401, "No permission to edit a version"
+ else
+ if version[:description]
+ @version['description'] = version[:description]
+ end
+ if version[:effective_date]
+ @version['effective_date'] = version[:effective_date]
+ end
+ if @version.save
+ render_result @version
+ else
+ render_status 505, "Could not update the version..."
+ end
+ end
+ end
+ end
+
+ # add a new news for a given project
+ def add_news(news = params["news"])
+ if !request.post?
+ render_status 405, "POST method required for action add_news"
+ return false
+ end
+ allowed = User.current.allowed_to?({:controller => 'news', :action => "new"}, @project)
+ if !allowed
+ msg = "No permission to add a news on project "+ @project.name
+ render_status 401, msg
+ else
+ @news = News.new(:project => @project, :author => User.current)
+ @news.attributes = news
+ if @news.save
+ Mailer.deliver_news_added(@news) if Setting.notified_events.include?('news_added')
+ render_result @news
+ else
+ render_status 505, "Could not add the news..."
+ end
+ end
+ end
+
+ def add_version_attachment
+ add_attachment
+ end
+
+ def add_attachment(attachment = params["attachment"])
+ if !request.post?
+ render_status 405, "POST method required for action add_attachment"
+ return false
+ end
+ container = !@version ? @project : @version
+ if attachment
+ file = attachment['file']
+ next unless file && file.size > 0
+ a = Attachment.create(:container => container,
+ :file => file,
+ :description => attachment['description'].to_s.strip,
+ :author => User.current)
+ end
+ if !attached.empty? && Setting.notified_events.include?('file_added')
+ array =[]
+ array << a
+ Mailer.deliver_attachments_added(array)
+ end
+ render_result a
+ end
+
+ private
+
+ def find_user
+ # Check the settings cache for each request
+ Setting.check_cache
+ # Find the current user
+ User.current = find_current_user
+ if !session[:user_id]
+ render_status 401, "Not connected"
+ end
+ end
+
+ # Returns the current user or nil if no user is logged in
+ def find_current_user
+ if session[:user_id]
+ # existing session
+ (User.active.find(session[:user_id]) rescue nil)
+ elsif cookies[:autologin]
+ # auto-login feature
+ User.find_by_autologin_key(cookies[:autologin])
+ end
+ end
+
+ def find_project()
+ begin
+ @project = Project.find(params[:project_id])
+ allowed = User.current.allowed_to?({:controller => 'jredmine', :action => "allow_jredmine"}, @project)
+ if !allowed
+ render_status 401, "No permission to access project nor jredmine service"
+ end
+ rescue ActiveRecord::RecordNotFound
+ render_status 404, "#{params[:project_id]} is not a project"
+ return false
+ end
+ end
+
+ # recuperation des valeurs d'une enumration
+ def get_enumeration(type = params[:type])
+ @result = Enumeration.get_values(type)
+ render_array_result @result, "enumerations"
+ end
+
+ def check_edit
+ # check if user can edit the project
+ allowed = User.current.allowed_to?({:controller => 'projects', :action => "edit"}, @project)
+ if !allowed
+ render_status 401, "No permission to edit the project"
+ end
+ end
+
+ def find_version(version = params[:version_name])
+ @version = @project.versions.find_by_name(version)
+ if !@version
+ render_status 404, "#{version} is not a version for project #{(a)project.name}"
+ end
+ end
+
+ def render_status(code,message)
+ render :text => message, :status => code
+ end
+
+ def render_array_result(result,tag)
+ if !result.any?
+ respond_to do |format|
+ format.json { render :text => "[]" }
+ format.xml { render :text => "<"+tag+"></"+tag+">" }
+ end
+ else
+ respond_to do |format|
+ format.json { render :text => result.to_json }
+ format.xml { render :text => result.to_xml }
+ end
+ end
+ end
+
+ def render_result(result)
+ respond_to do |format|
+ format.json { render :text => result.to_json }
+ format.xml { render :text => result.to_xml }
+ end
+ end
+
+ def logged_user=(user)
+ if user && user.is_a?(User)
+ User.current = user
+ session[:user_id] = user.id
+ else
+ User.current = User.anonymous
+ session[:user_id] = nil
+ end
+ end
+
+ def allowed_permissions
+ @allowed_permissions ||= begin
+ module_names = @project.enabled_modules.collect {|m| m.name}
+ Redmine::AccessControl.modules_permissions(module_names).collect {|p| p.name}
+ end
+ end
+
+ def allowed_actions
+ @allowed_actions ||= allowed_permissions.inject([]) { |actions, permission| actions += Redmine::AccessControl.allowed_actions(permission) }.flatten
+ end
+
+end
Property changes on: jredmine/trunk/jredmine-client/src/main/redmine/jredmine/app/controllers/jredmine_controller.rb
___________________________________________________________________
Added: svn:mergeinfo
+
Deleted: jredmine/trunk/jredmine-client/src/main/redmine/jredmine/app/controllers/rest_controller.rb
===================================================================
--- jredmine/trunk/jredmine-client/src/main/redmine/jredmine/app/controllers/rest_controller.rb 2009-09-19 18:28:30 UTC (rev 188)
+++ jredmine/trunk/jredmine-client/src/main/redmine/jredmine/app/controllers/rest_controller.rb 2009-09-20 17:12:37 UTC (rev 189)
@@ -1,352 +0,0 @@
-class RestController < ActionController::Base
-
- # find user (after login)
- before_filter :find_user, :except => [:ping, :login]
-
- # find project and check permission
- before_filter :find_project, :except => [:ping, :login, :logout, :get_projects, :get_issue_statuses, :get_issue_priorities]
-
- # find project's version
- before_filter :find_version, :only => [:get_version, :get_version_issues, :get_version_attachments, :add_version_attachment]
-
- # check can edit project before push requests
- #before_filter :check_edit, :only => [:add_version, :update_version, :add_file, :add_news, :add_attachment, :add_version_attachment]
-
- # ping service (just to test if service is reachable)
- def ping
- render :text => "ping", :status => 200
- end
-
- # Login request and validation
- def login
- if !request.post?
- # Logout user : get method not possible
- self.logged_user = nil
- render_status 405, "POST method required"
- else
- # Authenticate user
- user = User.try_to_login(params[:username], params[:password])
- if user.nil?
- # Invalid credentials
- render_status 401, "Invalid credentials"
- elsif user.new_record?
- # Onthefly creation failed,
- render_status 401, "User not activated"
- else
- # Valid user
- self.logged_user = user
- # always generate a key and set autologin cookie
- token = Token.create(:user => user, :action => 'autologin')
- cookies[:autologin] = { :value => token.value, :expires => 1.year.from_now }
- render_status 200, "User logged in"
- end
- end
- end
-
- # Log out current user and redirect to welcome page
- def logout
- cookies.delete :autologin
- Token.delete_all(["user_id = ? AND action = ?", User.current.id, 'autologin']) if User.current.logged?
- # user is no more connected
- self.logged_user = nil
- render_status 200, "User logged out"
- end
-
- # recuperation des projets
- def get_projects
- @projects = Project.find(:all)
- render_array_result @projects, "projects"
- end
-
- # recuperation des priorities d'issues
- def get_issue_priorities
- get_enumeration "IPRI"
- end
-
- # recuperation des differentes categories d'issues
- def get_issue_categories
- @issue_categories = @project.issue_categories.find(:all)
- render_array_result @issue_categories, "issue_categories"
- end
-
- # recuperation des differentes statuts d'issues
- def get_issue_statuses
- @issue_status = IssueStatus.find(:all)
- render_array_result @issue_status, "issue_statuses"
- end
- # recuperation du projet
- def get_project
- render_result @project
- end
-
- # recuperation de tous les membres d'un projet
- def get_project_users
- @members = @project.members.find(:all)
- @r = []
- for m in @members
- u = User.find(m[:user_id])
- u[:role_id] = m[:role_id]
- u[:member_id] = m[:id]
- #TODO - should remove the hashed password ?
- @r << u
- end
- render_array_result @r, "users"
- end
-
- # recuperation de toutes les annonces d'un projet
- def get_project_news
- @news = @project.news.find(:all)
- render_array_result @news, "news"
- end
-
- # recuperation des trakers d'un projet
- def get_project_trackers
- @trackers = @project.trackers.find(:all)
- render_array_result @trackers, "trackers"
- end
-
- # recuperation des versions d'un projet
- def get_project_versions
- @versions = @project.versions.find(:all)
- render_array_result @versions, "versions"
- end
-
- # recuperation de la version d'un projet
- def get_version
- render_result @version
- end
-
- # recuperation des issues d'un projet pour une version donnee
- def get_version_issues
- @issues = @version.fixed_issues.find(:all)
- render_array_result @issues, "issues"
- end
-
- # recuperation des pieces jointes d'un projet pour une version donnee
- def get_version_attachments
- @files = @version.attachments.find(:all)
- render_array_result @files, "attachments"
- end
-
- def show_permissions
- allowed_permissions
- render_result @allowed_permissions
- end
-
- def show_actions
- allowed_actions
- render_result @allowed_actions
- end
-
- # add a new version for a given project
- def add_version(version=params[:version], description = params[:description], date = params[:date])
- if !request.post?
- render_status 405, "POST method required for action add_version"
- return false
- end
- @version = @project.versions.find_by_name(version)
- if !@version
- allowed = User.current.allowed_to?({:controller => 'projects', :action => "add_version"}, @project)
- if !allowed
- render_status 401, "No permission to add a version"
- else
- @version = Version.create(:project => @project, :name => version)
- if description
- @version['description'] = description
- end
- if date
- @version['effective_date'] = date
- end
- if @version.save
- render_result @version
- else
- render_status 505, "Could not add the version..."
- end
- end
- else
- render_result @version
- end
- end
-
- # update a existing version for a given project
- def update_version(version=params[:version], description = params[:description], date = params[:date])
- if !request.post?
- render_status 405, "POST method required for action update_version"
- return false
- end
- @version = @project.versions.find_by_name(version)
- if !@version
- render_status 404, "The version " + version + " does not exist, can not update it..."
- else
- allowed = User.current.allowed_to?({:controller => 'versions', :action => "edit"}, @project)
- if !allowed
- render_status 401, "No permission to edit a version"
- else
- if description
- @version['description'] = description
- end
- if date
- @version['effective_date'] = date
- end
- if @version.save
- render_result @version
- else
- render_status 505, "Could not update the version..."
- end
- end
- end
- end
-
- # add a new news for a given project
- def add_news(author_id = params[:authorId])
- if !request.post?
- render_status 405, "POST method required for action add_news"
- return false
- end
- allowed = User.current.allowed_to?({:controller => 'news', :action => "new"}, @project)
- if !allowed
- msg = "No permission to add a news on project "+ @project.name
- render_status 401, msg
- else
- news_user = User.find(author_id)
- @news = News.new(:project => @project, :author => news_user)
- @news.attributes = params[:news]
- if @news.save
- Mailer.deliver_news_added(@news) if Setting.notified_events.include?('news_added')
- render_result @news
- else
- render_status 505, "Could not add the news..."
- end
- end
- end
-
- def add_version_attachment
- add_attachment
- end
-
- def add_attachment(attachment = params["attachment"])
- if !request.post?
- render_status 405, "POST method required for action add_attachment"
- return false
- end
- container = !@version ? @project : @version
- if attachment
- file = attachment['file']
- next unless file && file.size > 0
- a = Attachment.create(:container => container,
- :file => file,
- :description => attachment['description'].to_s.strip,
- :author => User.current)
- # a.new_record? ? (unsaved << a) : (attached << a)
- # end
- end
- #if !attached.empty? && Setting.notified_events.include?('file_added')
- # Mailer.deliver_attachments_added(attached)
- #end
- render_result a
- end
-
- private
-
- def find_user
- # Check the settings cache for each request
- Setting.check_cache
- # Find the current user
- User.current = find_current_user
- if !session[:user_id]
- render_status 401, "Not connected"
- end
- end
-
- # Returns the current user or nil if no user is logged in
- def find_current_user
- if session[:user_id]
- # existing session
- (User.active.find(session[:user_id]) rescue nil)
- elsif cookies[:autologin]
- # auto-login feature
- User.find_by_autologin_key(cookies[:autologin])
- end
- end
-
- def find_project()
- begin
- @project = Project.find(params[:project_id])
- allowed = User.current.allowed_to?({:controller => 'rest', :action => "allow_rest"}, @project)
- if !allowed
- render_status 401, "No permission to access project nor rest service"
- end
- rescue ActiveRecord::RecordNotFound
- render_status 404, "#{params[:project_id]} is not a project"
- return false
- end
- end
-
- # recuperation des valeurs d'une enumration
- def get_enumeration(type = params[:type])
- @result = Enumeration.get_values(type)
- render_array_result @result, "enumerations"
- end
-
- def check_edit
- # check if user can edit the project
- allowed = User.current.allowed_to?({:controller => 'projects', :action => "edit"}, @project)
- if !allowed
- render_status 401, "No permission to edit the project"
- end
- end
-
- def find_version(version = params[:version_name])
- @version = @project.versions.find_by_name(version)
- if !@version
- render_status 404, "#{version} is not a version for project #{(a)project.name}"
- end
- end
-
- def render_status(code,message)
- render :text => message, :status => code
- end
-
- def render_array_result(result,tag)
- if !result.any?
- respond_to do |format|
- format.json { render :text => "[]" }
- format.xml { render :text => "<"+tag+"></"+tag+">" }
- end
- else
- respond_to do |format|
- format.json { render :text => result.to_json }
- format.xml { render :text => result.to_xml }
- end
- end
- end
-
- def render_result(result)
- respond_to do |format|
- format.json { render :text => result.to_json }
- format.xml { render :text => result.to_xml }
- end
- end
-
- def logged_user=(user)
- if user && user.is_a?(User)
- User.current = user
- session[:user_id] = user.id
- else
- User.current = User.anonymous
- session[:user_id] = nil
- end
- end
-
- def allowed_permissions
- @allowed_permissions ||= begin
- module_names = @project.enabled_modules.collect {|m| m.name}
- Redmine::AccessControl.modules_permissions(module_names).collect {|p| p.name}
- end
- end
-
- def allowed_actions
- @allowed_actions ||= allowed_permissions.inject([]) { |actions, permission| actions += Redmine::AccessControl.allowed_actions(permission) }.flatten
- end
-
-end
Modified: jredmine/trunk/jredmine-client/src/main/redmine/jredmine/init.rb
===================================================================
--- jredmine/trunk/jredmine-client/src/main/redmine/jredmine/init.rb 2009-09-19 18:28:30 UTC (rev 188)
+++ jredmine/trunk/jredmine-client/src/main/redmine/jredmine/init.rb 2009-09-20 17:12:37 UTC (rev 189)
@@ -1,11 +1,11 @@
require 'redmine'
-Redmine::Plugin.register :redmine_rest do
- name 'Redmine Rest plugin'
+Redmine::Plugin.register :jredmine do
+ name 'JRedmine Rails plugin'
author 'Tony Chemit'
- description 'A plugin to expose projects in REST'
+ description 'A plugin to expose projects in REST protocol'
version '0.0.1'
- project_module :rest do
- permission :allow_rest, :rest => :allow_rest
+ project_module :jredmine do
+ permission :allow_jredmine, :jredmine => :allow_jredmine
end
end
Modified: jredmine/trunk/jredmine-client/src/site/apt/index.apt
===================================================================
--- jredmine/trunk/jredmine-client/src/site/apt/index.apt 2009-09-19 18:28:30 UTC (rev 188)
+++ jredmine/trunk/jredmine-client/src/site/apt/index.apt 2009-09-20 17:12:37 UTC (rev 189)
@@ -1,15 +1,124 @@
----
-Introduction
+JRedmine-client
----
----
2009-09-15
----
-JRedmine model
+ Ce module contient un plugin <rails> qui permet d'ouvrir l'api de redmine au
+ protocole <REST>, ainsi q'un client <Java> pour interroger les services <REST>.
- This module defines the java model mirroring the redmine model and offers
- somme xml readers of redmine's datas in xml format using xpp3 xml parsers.
+Plugin <rails> JRedmine
+ Le but de ce plugin est de pouvoir accéder aux données d'un serveur Redmine en
+ utilisant le protocole <REST>, mais aussi d'effectuer des tâches de
+ maintenance sur le serveur.
+ La page {{{rails_api.html}API}} détaille l'ensemble des services disponibles
+ depuis le serveur Redmine.
+* Source du plugin
+
+ Les sources du plugin <rails> sont sont dans le répertoire <<src/main/redmine>>
+
+--------------------------------------------------------------------------------
+
+src/main/redmine/
+`-- jredmine
+ |-- README.rdoc
+ |-- app
+ | |-- controllers
+ | | `-- jredmine_controller.rb
+ | |-- helpers
+ | |-- models
+ | `-- views
+ |-- assets
+ | |-- images
+ | |-- javascripts
+ | `-- stylesheets
+ |-- db
+ | `-- migrate
+ |-- init.rb
+ |-- lang
+ | `-- en.yml
+ |-- lib
+ | `-- tasks
+ `-- test
+ `-- functional
+--------------------------------------------------------------------------------
+
+* Récupération d'une version packagée
+
+ Il est possible de récupérer une version zippée du plugin (voir la section des
+ téléchargements).
+
+* Installation du plugin sur le serveur Redmine
+
+ * récupération du zip du plugin
+
+ * dézippage dans le répertoire vendor/plugins
+
+ * ajouter au fichier <config/routes.rb> les lignes suivantes :
+
+--------------------------------------------------------------------------------
+# jredmine : ping, login , logout, with no project context...
+map.connect 'jredmine/:action', :controller => 'jredmine' ,:action => ['ping',\
+ 'login', 'logout', 'get_projects', 'get_issue_statuses', \
+'get_issue_priorities']
+map.connect 'jredmine/:action.:format', :controller => 'jredmine' ,:action => \
+['get_projects', 'get_issue_statuses', 'get_issue_priorities'], \
+:format => ['xml', 'json']
+
+# jredmine/action/?? (:project_id)
+map.connect 'jredmine/:action/:project_id', :controller => 'jredmine'
+map.connect 'jredmine/:action.:format/:project_id', :controller => 'jredmine',\
+:format => ['xml', 'json']
+--------------------------------------------------------------------------------
+
+ * relancer votre instance de redmine (ou apache).
+
+* Configuration des permissions du plugin dans le serveur Redmine
+
+ Le plugin est activable par projet et par rôle.
+
+ Pour rendre accéssible le plugin pour un projet donné, il faut donc ajouter
+ le module JRedmine sur le projet dans l'onglet de configuration des modules
+ du projet.
+
+ Pour rendre accéssible le plugin pour un rôle, il faut lui ajouter la
+ permission <<allow_jredmine>> dans la page des permissions du rôle.
+
+* Tester le plugin
+
+ Une fois la configuration des permissions réalisées, vous pouvez tester le
+ plugin dans un navigateur web.
+
+ Pour cela, loggez-vous en web sur redmine, puis lancer (dans un autre onglet)
+ l'url suivante : (remplacer <XX> par le chemin d'accès à votre redmine
+ et <YY> par le nom d'un de vos projet).
+
+--------------------------------------------------------------------------------
+http://XX/jredmine/get_project/YY
+--------------------------------------------------------------------------------
+
+ Vous devez obtenir en retour la description xml du projet demandé.
+
+Client java
+
+ Le client java qui interroge le plugin rails se base sur l'api du plugin rails
+ et transformer les données retournées en xml dans des objet java.
+
+ La classe à utiliser est la suivante
+--------------------------------------------------------------------------------
+org.nuiton.jredmine.DefaultRedmineService
+--------------------------------------------------------------------------------
+
+ qui réalise le contrat
+
+--------------------------------------------------------------------------------
+org.nuiton.jredmine.RedmineService
+--------------------------------------------------------------------------------
+
+
+ <Pour plus de détails, consulter la javadoc du module.>
\ No newline at end of file
Added: jredmine/trunk/jredmine-client/src/site/apt/rails_api.apt
===================================================================
--- jredmine/trunk/jredmine-client/src/site/apt/rails_api.apt (rev 0)
+++ jredmine/trunk/jredmine-client/src/site/apt/rails_api.apt 2009-09-20 17:12:37 UTC (rev 189)
@@ -0,0 +1,359 @@
+----
+API du plugin rails JRedmine
+----
+----
+2009-09-20
+----
+
+Introduction
+
+ Ce document décrit l'API du plugin rails.
+
+
+ Toutes les actions REST sont préfixés par <<jredmine/>>.
+
+ Par exemple, si votre serveur redmine accéssible sur <http://myredmine>,
+ les appels sur redmine seront de type <http://myredmine/jredmine/XXX>.
+
+ On distingue donc trois types d'API :
+
+ * API de login : pour gérer la connexion au serveur Redmine : une connexion
+ authentifié est requise pour pouvoir récupérer des données ou effectuer des
+ actions sur le serveur.
+
+ * API de lecture : pour récupérer des données du serveur.
+
+ * API d'actions : pour effecuter des actions de maintenance sur le serveur.
+
+ Toutes les données en sortie du plugin sont au format <xml>, ou <json>.
+
+API de login
+
+*-----------*-----------------------------------------------+
+| <action> | <description> |
+*-----------*-----------------------------------------------+
+| <<ping>> | un service de ping qui retourne le mot <ping> |
+*-----------*-----------------------------------------------+
+| <<login>> | pour connecter l'utilisateur au serveur |
+*-----------*-----------------------------------------------+
+| <<logout>>| pour déconnecter l'utilisateur du serveur |
+*-----------*-----------------------------------------------+
+
+* ping
+
+ Ce service ne requiert pas de paramètre.
+
+ Requète :
+
+--------------------------------------------------------------------------------
+jredmine/ping
+--------------------------------------------------------------------------------
+
+* login
+
+ Ce service nécessite deux paramètres :
+
+ * <<username>>
+
+ * <<password>>
+
+ <<Note:>> Cette requête ne peut être exécutée qu'en <<POST>>.
+
+ Requète :
+
+--------------------------------------------------------------------------------
+jredmine/login
+--------------------------------------------------------------------------------
+
+* logout
+
+ Ce service ne requiert pas de paramètre.
+
+ Requète :
+
+--------------------------------------------------------------------------------
+jredmine/logout
+--------------------------------------------------------------------------------
+
+API de lecture
+
+ On distingue trois niveaux de données récupérables :
+
+ * les données qui ne dépendent pas d'un projet
+
+ * les données qui dépendent d'un projet
+
+ * les données qui dépendent d'une version d'un projet
+
+* Services des données indépendantes
+
+*--------------------------*-----------------------------------+
+| <action[.xml\|.json]> | <données récupérées> |
+*--------------------------*-----------------------------------+
+| <<get_projects>> | tous les projets |
+*--------------------------*-----------------------------------+
+| <<get_issue_statuses>> | tous les status de demandes |
+*--------------------------*-----------------------------------+
+| <<get_issue_priorities>> | toutes les prioritiés de demandes |
+*--------------------------*-----------------------------------+
+
+** get_projects
+
+ Ce service ne requiert pas de paramètre.
+
+ Requètes :
+
+--------------------------------------------------------------------------------
+jredmine/get_projects.xml
+jredmine/get_projects.json
+--------------------------------------------------------------------------------
+
+** get_issue_statuses
+
+ Ce service ne requiert pas de paramètre.
+
+ Requètes :
+
+--------------------------------------------------------------------------------
+jredmine/get_issue_statuses.xml
+jredmine/get_issue_statuses.json
+--------------------------------------------------------------------------------
+
+** get_issue_priorities
+
+ Ce service ne requiert pas de paramètre.
+
+ Requètes :
+
+--------------------------------------------------------------------------------
+jredmine/get_issue_priorities.xml
+jredmine/get_issue_priorities.json
+--------------------------------------------------------------------------------
+
+* Services des données dépendantes d'un projet
+
+*--------------------------*---------------------------------------+
+| <action[.xml\|.json]> | <données récupérées pour un projet> |
+*--------------------------*---------------------------------------+
+| <<get_projet>> | le projet |
+*--------------------------*---------------------------------------+
+| <<get_issue_categories>> | touts les catégories de demande |
+*--------------------------*---------------------------------------+
+| <<get_project_users>> | tous les membres du projet |
+*--------------------------*---------------------------------------+
+| <<get_project_trackers>> | tous les types de tracker |
+*--------------------------*---------------------------------------+
+| <<get_project_versions>> | toutes les versions d'un projet |
+*--------------------------*---------------------------------------+
+
+** get_projet
+
+ Ce service ne requiert pas de paramètre.
+
+ Requètes :
+
+--------------------------------------------------------------------------------
+jredmine/get_projet.xml/myProject
+jredmine/get_projet.json/myProject
+--------------------------------------------------------------------------------
+
+** get_issue_categories
+
+ Ce service ne requiert pas de paramètre.
+
+ Requètes :
+
+--------------------------------------------------------------------------------
+jredmine/get_issue_categories.xml/myProject
+jredmine/get_issue_categories.json/myProject
+--------------------------------------------------------------------------------
+
+** get_project_users
+
+ Ce service ne requiert pas de paramètre.
+
+ Requètes :
+
+--------------------------------------------------------------------------------
+jredmine/get_project_users.xml/myProject
+jredmine/get_project_users.json/myProject
+--------------------------------------------------------------------------------
+
+** get_project_trackers
+
+ Ce service ne requiert pas de paramètre.
+
+ Requètes :
+
+--------------------------------------------------------------------------------
+jredmine/get_project_trackers.xml/myProject
+jredmine/get_project_trackers.json/myProject
+--------------------------------------------------------------------------------
+
+** get_project_versions
+
+ Ce service ne requiert pas de paramètre.
+
+ Requètes :
+
+--------------------------------------------------------------------------------
+jredmine/get_project_versions.xml/myProject
+jredmine/get_project_versions.json/myProject
+--------------------------------------------------------------------------------
+
+* Services des données dépendantes d'une version d'un projet
+
+*------------------------------*-----------------------------------------------------+
+| <action[.xml\|.json]> | <données récupérées pour une version d'un projet> |
+*------------------------------*-----------------------------------------------------+
+| <<get_version>> | la version |
+*------------------------------*-----------------------------------------------------+
+| <<get_version_issues>> | touts les catégories de demande |
+*------------------------------*-----------------------------------------------------+
+| <<get_versions_attachments>> | tous les membres du projet |
+*------------------------------*-----------------------------------------------------+
+
+** get_version
+
+ Ce service requiert un paramètre :
+
+ * <<version_name>> le nom de la version
+
+ Requètes :
+
+--------------------------------------------------------------------------------
+jredmine/get_version.xml/myProject?version_name=myVersion
+jredmine/get_version.json/myProject?version_name=myVersion
+--------------------------------------------------------------------------------
+
+** get_version_issues
+
+ Ce service requiert un paramètre :
+
+ * <<version_name>> le nom de la version
+
+ Requètes :
+
+--------------------------------------------------------------------------------
+jredmine/get_version_issues.xml/myProject?version_name=myVersion
+jredmine/get_version_issues.json/myProject?version_name=myVersion
+--------------------------------------------------------------------------------
+
+** get_versions_attachments
+
+ Ce service requiert un paramètre :
+
+ * <<version_name>> le nom de la version
+
+ Requètes :
+
+--------------------------------------------------------------------------------
+jredmine/get_versions_attachments.xml/myProject?version_name=myVersion
+jredmine/get_versions_attachments.json/myProject?version_name=myVersion
+--------------------------------------------------------------------------------
+
+API d'actions
+
+*----------------------------*----------------------------------------------+
+| <action> | <description> |
+*----------------------------*----------------------------------------------+
+| <<add_version>> | ajouter une version à un projet |
+*----------------------------*----------------------------------------------+
+| <<update_version>> | mettre à jour une version d'un projet |
+*----------------------------*----------------------------------------------+
+| <<add_attachment>> | ajouter un fichier à un projet |
+*----------------------------*----------------------------------------------+
+| <<add_version_attachment>> | ajouter un fichier à une version d'un projet |
+*----------------------------*----------------------------------------------+
+| <<add_news>> | ajouter une annonce à un projet |
+*----------------------------*----------------------------------------------+
+
+ <<Note:>> Toutes ces opérations doivent obligatoirement être exécutées
+ par une méthod http <<POST>> (donc pas réalisable via un navigateur).
+
+* add_version
+
+ Ce service requiert trois paramètres :
+
+ * <<version[name]>> le nom de la version
+
+ * <<version[description]>> la description de la version
+
+ * <<version[effective_date]>> la date effective de la version
+
+ Requètes :
+
+--------------------------------------------------------------------------------
+jredmine/add_version.xml/myProject
+jredmine/add_version.json/myProject
+--------------------------------------------------------------------------------
+
+* update_version
+
+ Ce service requiert trois paramètres :
+
+ * <<version[name]>> le nom de la version
+
+ * <<version[description]>> la description de la version
+
+ * <<version[effective_date]>> la date effective de la version
+
+ Requètes :
+
+--------------------------------------------------------------------------------
+jredmine/update_version.xml/myProject
+jredmine/update_version.json/myProject
+--------------------------------------------------------------------------------
+
+* add_attachment
+
+ Ce service requiert deux paramètres :
+
+ * <<attachment[description]>> la description de la pièce jointe
+
+ * <<attachment[file]>> la pièce-jointe
+
+ <<Note:>> La requète est de type <<multi-part>>.
+
+ Requètes :
+
+--------------------------------------------------------------------------------
+jredmine/add_attachment.xml/myProject
+jredmine/add_attachment.json/myProject
+--------------------------------------------------------------------------------
+
+* add_version_attachment
+
+ Ce service requiert trois paramètres :
+
+ * <<version_name>> le nom de la version
+
+ * <<attachment[description]>> la description de la pièce jointe
+
+ * <<attachment[file]>> la pièce-jointe
+
+ <<Note:>> La requète est de type <<multi-part>>.
+
+ Requètes :
+
+--------------------------------------------------------------------------------
+jredmine/add_version_attachment.xml/myProject
+jredmine/add_version_attachment.json/myProject
+--------------------------------------------------------------------------------
+
+* add_news
+
+ Ce service requiert trois paramètres :
+
+ * <<news[title]>> le titre de de la version
+
+ * <<news[summary]>> la description de l'annonce
+
+ * <<news[description]>> le contenu de l'annonce
+
+ Requètes :
+
+--------------------------------------------------------------------------------
+jredmine/add_news.xml/myProject
+jredmine/add_news.json/myProject
+--------------------------------------------------------------------------------
Modified: jredmine/trunk/jredmine-client/src/site/site.xml
===================================================================
--- jredmine/trunk/jredmine-client/src/site/site.xml 2009-09-19 18:28:30 UTC (rev 188)
+++ jredmine/trunk/jredmine-client/src/site/site.xml 2009-09-20 17:12:37 UTC (rev 189)
@@ -14,6 +14,7 @@
<menu name="Utilisateur">
<item name="Introduction" href="index.html"/>
+ <item name="JRedmine rails API" href="rails_api.html"/>
<!--item name="Usage" href="usage.html"/>
<item name="Goals" href="plugin-info.html">
<item name="generate-changes" href="generate-changes-mojo.html"/>
1
0
r188 - in jredmine/trunk: . jredmine-client/src/main/java/org/nuiton/jredmine maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/report
by tchemit@users.nuiton.org 19 Sep '09
by tchemit@users.nuiton.org 19 Sep '09
19 Sep '09
Author: tchemit
Date: 2009-09-19 20:28:30 +0200 (Sat, 19 Sep 2009)
New Revision: 188
Modified:
jredmine/trunk/jredmine-client/src/main/java/org/nuiton/jredmine/RedmineService.java
jredmine/trunk/jredmine-client/src/main/java/org/nuiton/jredmine/RedmineServiceException.java
jredmine/trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/GenerateChangesMojo.java
jredmine/trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/IssuesCollector.java
jredmine/trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/report/IssueReportGenerator.java
jredmine/trunk/pom.xml
Log:
fix javadoc + add plexus and mojo javadoc taglets
Modified: jredmine/trunk/jredmine-client/src/main/java/org/nuiton/jredmine/RedmineService.java
===================================================================
--- jredmine/trunk/jredmine-client/src/main/java/org/nuiton/jredmine/RedmineService.java 2009-09-19 16:40:11 UTC (rev 187)
+++ jredmine/trunk/jredmine-client/src/main/java/org/nuiton/jredmine/RedmineService.java 2009-09-19 18:28:30 UTC (rev 188)
@@ -12,7 +12,7 @@
import org.nuiton.jredmine.model.Version;
/**
- * The service that mirrors the rails redmine_rest plugin api.
+ * The service that mirrors the rails {@code jredmine} plugin.
*
* TODO javadoc
*
Modified: jredmine/trunk/jredmine-client/src/main/java/org/nuiton/jredmine/RedmineServiceException.java
===================================================================
--- jredmine/trunk/jredmine-client/src/main/java/org/nuiton/jredmine/RedmineServiceException.java 2009-09-19 16:40:11 UTC (rev 187)
+++ jredmine/trunk/jredmine-client/src/main/java/org/nuiton/jredmine/RedmineServiceException.java 2009-09-19 18:28:30 UTC (rev 188)
@@ -1,7 +1,7 @@
package org.nuiton.jredmine;
/**
- * An exception to throw when something is wrong in a {@link StorageService}.
+ * An exception to throw when something is wrong in a {@link RedmineService}.
*
* @author chemit
* @since 1.0.0
Modified: jredmine/trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/GenerateChangesMojo.java
===================================================================
--- jredmine/trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/GenerateChangesMojo.java 2009-09-19 16:40:11 UTC (rev 187)
+++ jredmine/trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/GenerateChangesMojo.java 2009-09-19 18:28:30 UTC (rev 188)
@@ -8,7 +8,6 @@
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
-import org.apache.maven.execution.MavenSession;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugins.changes.model.Action;
import org.apache.maven.plugins.changes.model.Author;
@@ -17,7 +16,6 @@
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.apache.maven.project.MavenProject;
import org.codehaus.plexus.util.FileUtils;
import org.codehaus.plexus.util.xml.XmlStreamWriter;
import org.nuiton.jredmine.model.Issue;
@@ -93,7 +91,7 @@
*
* Possible actions are {@code add}, {@code fix}, {@code update}, {@code remove}
*
- * The syntax of mapping is {@ocode action:id [,action:id]*}
+ * The syntax of mapping is {@code action:id [,action:id]*}
*
* Example :
*
@@ -144,12 +142,6 @@
*/
protected boolean generateOnce;
/**
- * @parameter expression="${session}"
- * @required
- * @readonly
- */
- private MavenSession mavenSession;
- /**
* le fichier deja genere
*/
private static File cacheChangesFile;
@@ -555,24 +547,6 @@
return doc;
}
- protected MavenProject getExecutionRootProject() {
- MavenProject root = project;
- String executionRootDirectory = mavenSession.getExecutionRootDirectory();
- while (root != null) {
- File basedir = root.getBasedir();
- getLog().debug("Current Folder:" + basedir);
- boolean result = executionRootDirectory.equalsIgnoreCase(basedir.toString());
- if (result) {
- break;
- }
- root = root.getParent();
- }
- if (verbose) {
- getLog().info("root project " + root);
- }
- return root;
- }
-
///////////////////////////////////////////////////////////////////////////
/// IssueCollectionConfiguration
///////////////////////////////////////////////////////////////////////////
Modified: jredmine/trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/IssuesCollector.java
===================================================================
--- jredmine/trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/IssuesCollector.java 2009-09-19 16:40:11 UTC (rev 187)
+++ jredmine/trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/IssuesCollector.java 2009-09-19 18:28:30 UTC (rev 188)
@@ -152,7 +152,7 @@
* clean all internal states.
*
* Note : this method is invoked at the begin of each
- * {@link #collect(org.nuiton.jredmine.IssueCollectorConfiguration)} method.
+ * {@link #collect(org.nuiton.jredmine.RedmineService, org.nuiton.jredmine.plugin.IssueCollectorConfiguration)} method.
*/
public void clearFilters() {
maxEntries = null;
Modified: jredmine/trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/report/IssueReportGenerator.java
===================================================================
--- jredmine/trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/report/IssueReportGenerator.java 2009-09-19 16:40:11 UTC (rev 187)
+++ jredmine/trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/report/IssueReportGenerator.java 2009-09-19 18:28:30 UTC (rev 188)
@@ -50,9 +50,8 @@
* Universe of columns of the report.
*
* Can retreave th i18n header key by {@link #getI18nKey()} and have the
- * logic of each cell generation in the methd {@link #sinkInsideCell(Sink, RedmineReportGenerator, Version, Issue)}
- *
- * @see #columnOrder
+ * logic of each cell generation in the method
+ * {@link #sinkInsideCell(org.apache.maven.doxia.sink.Sink, org.nuiton.jredmine.plugin.report.IssueReportGenerator, org.nuiton.jredmine.model.Issue)}
*/
public enum ReportColumn {
Modified: jredmine/trunk/pom.xml
===================================================================
--- jredmine/trunk/pom.xml 2009-09-19 16:40:11 UTC (rev 187)
+++ jredmine/trunk/pom.xml 2009-09-19 18:28:30 UTC (rev 188)
@@ -373,6 +373,169 @@
<excludePackageNames>${maven.javadoc.excludePackageNames}</excludePackageNames>
<!-- uniquement a partir de javadoc 2.5 -->
<!--skip>${maven.javadoc.skip}</skip-->
+ <taglets>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoAggregatorTypeTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.4.2</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoComponentFieldTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.4.2</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoConfiguratorTypeTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.4.2</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoExecuteTypeTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.4.2</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoExecutionStrategyTypeTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.4.2</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoGoalTypeTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.4.2</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoInheritByDefaultTypeTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.4.2</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoInstantiationStrategyTypeTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.4.2</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoParameterFieldTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.4.2</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoPhaseTypeTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.4.2</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoReadOnlyFieldTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.4.2</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoRequiredFieldTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.4.2</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoRequiresDependencyResolutionTypeTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.4.2</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoRequiresDirectInvocationTypeTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.4.2</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoRequiresOnLineTypeTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.4.2</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoRequiresProjectTypeTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.4.2</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoRequiresReportsTypeTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.4.2</version>
+ </tagletArtifact>
+ </taglet>
+
+ <taglet>
+ <tagletClass>org.codehaus.plexus.javadoc.PlexusComponentTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-javadoc</artifactId>
+ <version>1.0</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.codehaus.plexus.javadoc.PlexusConfigurationTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-javadoc</artifactId>
+ <version>1.0</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.codehaus.plexus.javadoc.PlexusRequirementTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-javadoc</artifactId>
+ <version>1.0</version>
+ </tagletArtifact>
+ </taglet>
+ </taglets>
</configuration>
<executions>
<execution>
@@ -492,6 +655,169 @@
<docencoding>${project.build.sourceEncoding}</docencoding>
<encoding>${project.build.sourceEncoding}</encoding>
<excludePackageNames>${maven.javadoc.excludePackageNames}</excludePackageNames>
+ <taglets>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoAggregatorTypeTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.4.2</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoComponentFieldTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.4.2</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoConfiguratorTypeTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.4.2</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoExecuteTypeTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.4.2</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoExecutionStrategyTypeTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.4.2</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoGoalTypeTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.4.2</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoInheritByDefaultTypeTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.4.2</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoInstantiationStrategyTypeTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.4.2</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoParameterFieldTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.4.2</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoPhaseTypeTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.4.2</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoReadOnlyFieldTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.4.2</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoRequiredFieldTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.4.2</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoRequiresDependencyResolutionTypeTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.4.2</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoRequiresDirectInvocationTypeTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.4.2</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoRequiresOnLineTypeTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.4.2</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoRequiresProjectTypeTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.4.2</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoRequiresReportsTypeTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.4.2</version>
+ </tagletArtifact>
+ </taglet>
+
+ <taglet>
+ <tagletClass>org.codehaus.plexus.javadoc.PlexusComponentTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-javadoc</artifactId>
+ <version>1.0</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.codehaus.plexus.javadoc.PlexusConfigurationTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-javadoc</artifactId>
+ <version>1.0</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.codehaus.plexus.javadoc.PlexusRequirementTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-javadoc</artifactId>
+ <version>1.0</version>
+ </tagletArtifact>
+ </taglet>
+ </taglets>
</configuration>
</plugin>
1
0
r187 - in jredmine/trunk/jredmine-client: . src/main/assembly
by tchemit@users.nuiton.org 19 Sep '09
by tchemit@users.nuiton.org 19 Sep '09
19 Sep '09
Author: tchemit
Date: 2009-09-19 18:40:11 +0200 (Sat, 19 Sep 2009)
New Revision: 187
Added:
jredmine/trunk/jredmine-client/src/main/assembly/jredmine_rails.xml
Removed:
jredmine/trunk/jredmine-client/src/main/assembly/redmine_rest_plugin.xml
Modified:
jredmine/trunk/jredmine-client/pom.xml
Log:
fix rename of rails plugin
Modified: jredmine/trunk/jredmine-client/pom.xml
===================================================================
--- jredmine/trunk/jredmine-client/pom.xml 2009-09-19 16:31:30 UTC (rev 186)
+++ jredmine/trunk/jredmine-client/pom.xml 2009-09-19 16:40:11 UTC (rev 187)
@@ -175,7 +175,7 @@
<descriptorRef>full</descriptorRef>
</descriptorRefs>
<descriptors>
- <descriptor>src/main/assembly/redmine_rest_plugin.xml</descriptor>
+ <descriptor>src/main/assembly/jredmine_rails.xml</descriptor>
</descriptors>
</configuration>
</plugin>
Copied: jredmine/trunk/jredmine-client/src/main/assembly/jredmine_rails.xml (from rev 185, jredmine/trunk/jredmine-client/src/main/assembly/redmine_rest_plugin.xml)
===================================================================
--- jredmine/trunk/jredmine-client/src/main/assembly/jredmine_rails.xml (rev 0)
+++ jredmine/trunk/jredmine-client/src/main/assembly/jredmine_rails.xml 2009-09-19 16:40:11 UTC (rev 187)
@@ -0,0 +1,16 @@
+<assembly>
+ <id>jredmine_rails</id>
+ <formats>
+ <format>zip</format>
+ </formats>
+ <includeBaseDirectory>false</includeBaseDirectory>
+ <fileSets>
+ <fileSet>
+ <directory>src/main/redmine/jredmine</directory>
+ <outputDirectory>jredmine</outputDirectory>
+ <includes>
+ <include>**/*</include>
+ </includes>
+ </fileSet>
+ </fileSets>
+</assembly>
\ No newline at end of file
Property changes on: jredmine/trunk/jredmine-client/src/main/assembly/jredmine_rails.xml
___________________________________________________________________
Added: svn:mergeinfo
+
Deleted: jredmine/trunk/jredmine-client/src/main/assembly/redmine_rest_plugin.xml
===================================================================
--- jredmine/trunk/jredmine-client/src/main/assembly/redmine_rest_plugin.xml 2009-09-19 16:31:30 UTC (rev 186)
+++ jredmine/trunk/jredmine-client/src/main/assembly/redmine_rest_plugin.xml 2009-09-19 16:40:11 UTC (rev 187)
@@ -1,16 +0,0 @@
-<assembly>
- <id>redmine_rest_plugin</id>
- <formats>
- <format>zip</format>
- </formats>
- <includeBaseDirectory>false</includeBaseDirectory>
- <fileSets>
- <fileSet>
- <directory>src/main/redmine/redmine_rest</directory>
- <outputDirectory>redmine_rest</outputDirectory>
- <includes>
- <include>**/*</include>
- </includes>
- </fileSet>
- </fileSets>
-</assembly>
\ No newline at end of file
1
0
r186 - in jredmine/trunk: . jredmine-client maven-jredmine-plugin maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin maven-jredmine-plugin/src/test/java/org/nuiton/jredmine/plugin maven-jredmine-plugin/src/test/resources/org/nuiton/jredmine/plugin/SendEmailMojoTest
by tchemit@users.nuiton.org 19 Sep '09
by tchemit@users.nuiton.org 19 Sep '09
19 Sep '09
Author: tchemit
Date: 2009-09-19 18:31:30 +0200 (Sat, 19 Sep 2009)
New Revision: 186
Removed:
jredmine/trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/CollectFilesMojo.java
jredmine/trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/SendEmailMojo.java
jredmine/trunk/maven-jredmine-plugin/src/test/java/org/nuiton/jredmine/plugin/SendEmailMojoTest.java
jredmine/trunk/maven-jredmine-plugin/src/test/resources/org/nuiton/jredmine/plugin/SendEmailMojoTest/mailContentFile.txt
jredmine/trunk/maven-jredmine-plugin/src/test/resources/org/nuiton/jredmine/plugin/SendEmailMojoTest/sendEmail.xml
jredmine/trunk/maven-jredmine-plugin/src/test/resources/org/nuiton/jredmine/plugin/SendEmailMojoTest/skipSendEmail.xml
Modified:
jredmine/trunk/
jredmine/trunk/jredmine-client/pom.xml
jredmine/trunk/maven-jredmine-plugin/
jredmine/trunk/maven-jredmine-plugin/pom.xml
jredmine/trunk/pom.xml
Log:
deplacements des goal generiques send-email et collect-files vers maven-helper-plugin
Property changes on: jredmine/trunk
___________________________________________________________________
Added: svn:ignore
+ target
Modified: jredmine/trunk/jredmine-client/pom.xml
===================================================================
--- jredmine/trunk/jredmine-client/pom.xml 2009-09-19 16:31:10 UTC (rev 185)
+++ jredmine/trunk/jredmine-client/pom.xml 2009-09-19 16:31:30 UTC (rev 186)
@@ -61,10 +61,10 @@
</exclusions>
</dependency>
- <dependency>
+ <!-- <dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-utils</artifactId>
- </dependency>
+ </dependency>-->
<dependency>
<groupId>log4j</groupId>
@@ -73,16 +73,16 @@
</dependency>
<!-- fix dependency in xpp parsing from plexus (need at least version > 2.2) -->
- <dependency>
+ <!--<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
- </dependency>
+ </dependency>-->
<!-- fix dependency in maven-helper-plugin -->
- <dependency>
+ <!--<dependency>
<groupId>commons-httpclient</groupId>
<artifactId>commons-httpclient</artifactId>
- </dependency>
+ </dependency>-->
<dependency>
<groupId>junit</groupId>
Property changes on: jredmine/trunk/maven-jredmine-plugin
___________________________________________________________________
Added: svn:ignore
+ target
Modified: jredmine/trunk/maven-jredmine-plugin/pom.xml
===================================================================
--- jredmine/trunk/maven-jredmine-plugin/pom.xml 2009-09-19 16:31:10 UTC (rev 185)
+++ jredmine/trunk/maven-jredmine-plugin/pom.xml 2009-09-19 16:31:30 UTC (rev 186)
@@ -39,10 +39,10 @@
</dependency>
<!-- fix dependency pb in velocity (need at least version > 2.2) -->
- <dependency>
+ <!-- <dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
- </dependency>
+ </dependency>-->
<!-- FIXME si on ne le rajoute pas, on se retrouve avec la version 1.1 qui ne convient pas -->
<dependency>
@@ -73,6 +73,22 @@
<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-changes-plugin</artifactId>
+ <!--<exclusions>
+ <exclusion>
+ <groupId>plexus</groupId>
+ <artifactId>plexus-mail-sender-simple</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>plexus</groupId>
+ <artifactId>plexus-mail-sender-api</artifactId>
+ </exclusion>
+
+ <exclusion>
+ <groupId>plexus</groupId>
+ <artifactId>plexus-mail-sender-javamail</artifactId>
+ </exclusion>
+
+ </exclusions>-->
</dependency>
<dependency>
@@ -81,10 +97,10 @@
<scope>compile</scope>
</dependency>
- <dependency>
+ <!-- <dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
- </dependency>
+ </dependency>-->
<!-- tests dependencies -->
Deleted: jredmine/trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/CollectFilesMojo.java
===================================================================
--- jredmine/trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/CollectFilesMojo.java 2009-09-19 16:31:10 UTC (rev 185)
+++ jredmine/trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/CollectFilesMojo.java 2009-09-19 16:31:30 UTC (rev 186)
@@ -1,325 +0,0 @@
-package org.nuiton.jredmine.plugin;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Properties;
-import java.util.regex.Pattern;
-import org.apache.maven.artifact.Artifact;
-import org.apache.maven.execution.MavenSession;
-import org.apache.maven.plugin.AbstractMojo;
-import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.plugin.MojoFailureException;
-import org.apache.maven.project.MavenProject;
-import org.codehaus.plexus.util.FileUtils;
-
-/**
- * Collect files some files from a project and copy them into a directory.
- *
- * @goal collect-files
- * @requiresProject true
- *
- * @author tchemit
- * @since 1.0.3
- */
-public class CollectFilesMojo extends AbstractMojo {
-
- /**
- * @parameter expression="${session}"
- * @required
- * @readonly
- */
- private MavenSession mavenSession;
- /**
- * Dependance du projet.
- *
- * @parameter default-value="${project}"
- * @required
- * @readonly
- * @since 1.0.3
- */
- protected MavenProject project;
- /**
- * The artifacts to publish from the project build.
- *
- * @parameter expression="${project.attachedArtifacts}"
- * @required
- * @readonly
- * @since 1.0.0
- */
- protected List attachedArtifacts;
- /**
- * User extra files to collect.
- *
- * Multi values can be used, separated by comma.
- *
- * @parameter expression="${helper.extraFiles}"
- * @since 1.0.0
- */
- protected String extraFiles;
- /**
- * File name pattern of selected files to publish.
- *
- * If no Set - no include filter
- *
- * @parameter expression="${helper.includes}" default-value=""
- * @since 1.0.0
- */
- protected String includes;
- /**
- * File name pattern of selected files to publish.
- *
- * If no Set - no exclude filter
- *
- * @parameter expression="${helper.excludes}" default-value=""
- * @since 1.0.0
- */
- protected String excludes;
- /**
- * Directory where to store collected files.
- * <p/>
- * <b>Note :</b> In a multi-module context, will always use the value of
- * the property of the root module, because we need to push collected files
- * to only one place.
- *
- * @parameter expression="${helper.outputDirectory}" default-value="target/collect"
- * @since 1.0.0
- */
- protected String outputDirectory;
- /**
- * Properties file will all files collected indexed by their path.
- * <p/>
- * <b>Note :</b> If not Set, will not generate the description file.
- *
- * @parameter expression="${helper.descriptionFile}"
- * @since 1.0.0
- */
- protected String descriptionFile;
- /**
- * Un flag pour collecter aussi les fichiers attaches au projet.
- *
- * @parameter expression="${helper.includeAttached}" default-value="true"
- * @since 1.0.0
- */
- protected boolean includeAttached;
- /**
- * Un flag pour recopier les fichiers collectés.
- *
- * @parameter expression="${helper.copyFiles}" default-value="true"
- * @since 1.0.0
- */
- protected boolean copyFiles;
- /**
- * Un flag pour activer le mode verbeux.
- *
- * @parameter expression="${helper.verbose}" default-value="${maven.verbose}"
- * @since 1.0.0
- */
- protected boolean verbose;
- /**
- * A flag to skip the goal.
- *
- * @parameter expression="${helper.skip}" default-value="false"
- * @since 1.0.0
- */
- protected boolean skip;
- /**
- * Un flag pour activer le mode verbeux.
- *
- * @parameter expression="${helper.dryRun}" default-value="false"
- * @since 1.0.0
- */
- protected boolean dryRun;
-
- @Override
- public void execute() throws MojoExecutionException, MojoFailureException {
-
- if (skip) {
- getLog().info("Skip flag in on, goal will not be executed");
- }
- List<File> files = getFiles();
- if (files.isEmpty()) {
-
- getLog().warn("No files to collect.");
- return;
- }
-
- MavenProject rootProject = getExecutionRootProject();
-
- File base = new File(rootProject.getBasedir(), outputDirectory);
-
- File output = new File(base, project.getGroupId() + "--" + project.getArtifactId());
-
- if (rootProject == project || verbose) {
- // just print on root
- getLog().info("Ouput dir : " + output);
- }
-
- if (dryRun) {
- getLog().info("\n dryRun flag is on, no file will be copied!\n");
- } else {
-
- if (!output.exists()) {
- output.mkdirs();
- }
- }
-
- File description = null;
-
- Properties p = new Properties();
- boolean withDescriptionFile = false;
- if (descriptionFile != null && !descriptionFile.trim().isEmpty()) {
-
- description = new File(rootProject.getBasedir(), descriptionFile);
-
- withDescriptionFile = true;
-
- if (description.exists()) {
- // reload existing
- try {
- p.load(new FileInputStream(description));
- getLog().info("Load " + description);
- } catch (IOException ex) {
- throw new MojoExecutionException("could not load file " + description, ex);
- }
- }
- }
-
- if (!withDescriptionFile && !copyFiles) {
- throw new MojoExecutionException("must use at least one of the parameters 'copyFiles' or 'descriptionFile'");
- }
-
- String basedir = rootProject.getBasedir().getAbsolutePath();
- int basedirLength = basedir.length();
- for (File f : files) {
- String absolutePath = f.getAbsolutePath();
- String path = absolutePath.substring(basedirLength + 1);
- File dst = new File(output, f.getName());
- if (withDescriptionFile && copyFiles) {
- p.put(path, dst.getAbsolutePath());
- } else {
- p.put(path, f.getAbsolutePath());
- }
- getLog().info("collected file " + path);
- if (!dryRun && copyFiles) {
- try {
- // copy the collected file
- FileUtils.copyFile(f, dst);
- } catch (IOException ex) {
- throw new MojoExecutionException("could not copy file " + f, ex);
- }
- }
- }
-
- if (description != null) {
- try {
- p.store(new FileOutputStream(description), "Generated by " + this.getClass());
- getLog().info("Save " + description);
- } catch (IOException ex) {
- throw new MojoExecutionException("could not save file " + description, ex);
- }
- }
- }
-
- protected List<File> getFiles() {
-
- Pattern includePattern = includes == null || includes.trim().isEmpty() ? null : Pattern.compile(includes.trim());
- Pattern excludePattern = excludes == null || excludes.trim().isEmpty() ? null : Pattern.compile(excludes.trim());
-
- List<File> result = new ArrayList<File>();
-
- // attach the project mail file
-
- if (includeAttached) {
-
- if ("pom".equals(project.getPackaging())) {
- addFile(project.getFile(), "adding artifact file : ", result, includePattern, excludePattern);
- } else {
- Artifact a = project.getArtifact();
- if (a != null) {
- addFile(a.getFile(), "adding artifact file : ", result, includePattern, excludePattern);
- }
- }
- }
- File file;
-
- // attach extra files
-
- if (extraFiles != null && !extraFiles.trim().isEmpty()) {
-
- for (String path : extraFiles.split(",")) {
-
- file = new File(path);
- addFile(file, "adding user file : ", result, includePattern, excludePattern);
-
- }
- }
-
- // attach project attached files
-
- if (includeAttached && attachedArtifacts != null) {
-
- for (Object o : attachedArtifacts) {
-
- file = ((Artifact) o).getFile();
- addFile(file, "adding attached artifact file : ", result, includePattern, excludePattern);
- }
- }
-
- return result;
- }
-
- protected MavenProject getExecutionRootProject() {
- MavenProject root = project;
- String executionRootDirectory = mavenSession.getExecutionRootDirectory();
- while (root != null) {
- File basedir = root.getBasedir();
- getLog().debug("Current Folder:" + basedir);
- boolean result = executionRootDirectory.equalsIgnoreCase(basedir.toString());
- if (result) {
- break;
- }
- root = root.getParent();
- }
- if (verbose) {
- getLog().info("root project " + root);
- }
- return root;
- }
-
- protected void addFile(File f, String msg, List<File> files, Pattern includePattern, Pattern excludePattern) {
- if (f == null) {
- return;
- }
- if (!f.exists()) {
- getLog().warn("skip unexisting file " + f);
- return;
- }
- if (excludePattern != null) {
- if (excludePattern.matcher(f.getName()).matches()) {
- // skip this file
- if (verbose) {
- getLog().info("skip " + f + " : in excludes " + excludes);
- }
- return;
- }
- }
- if (includePattern != null) {
- if (!includePattern.matcher(f.getName()).matches()) {
- // skip this file
- if (verbose) {
- getLog().info("skip " + f + " : not in includes " + includes);
- }
- return;
- }
- }
- if (verbose) {
- getLog().info(msg + f);
- }
- files.add(f);
- }
-}
-
Deleted: jredmine/trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/SendEmailMojo.java
===================================================================
--- jredmine/trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/SendEmailMojo.java 2009-09-19 16:31:10 UTC (rev 185)
+++ jredmine/trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/SendEmailMojo.java 2009-09-19 16:31:30 UTC (rev 186)
@@ -1,458 +0,0 @@
-package org.nuiton.jredmine.plugin;
-
-import org.apache.maven.plugin.announcement.MailSender;
-import org.nuiton.util.PluginHelper;
-
-import java.io.File;
-import java.util.List;
-
-import org.apache.maven.execution.MavenSession;
-import org.apache.maven.model.Developer;
-import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.plugin.announcement.mailsender.ProjectJavamailMailSender;
-import org.apache.maven.project.MavenProject;
-import org.apache.maven.settings.Server;
-import org.apache.maven.settings.Settings;
-import org.codehaus.plexus.logging.Logger;
-import org.codehaus.plexus.logging.console.ConsoleLogger;
-import org.codehaus.plexus.mailsender.MailMessage;
-import org.codehaus.plexus.mailsender.MailSenderException;
-import org.nuiton.plugin.AbstractPlugin;
-import org.sonatype.plexus.components.sec.dispatcher.SecDispatcher;
-
-/**
- * Send a email.
- *
- * @goal send-email
- * @requiresOnline true
- * @requiresProject true
- *
- * @author tchemit
- * @since 1.0.0
- */
-public class SendEmailMojo extends AbstractPlugin {
-
- /**
- * @parameter expression="${session}"
- * @required
- * @readonly
- */
- protected MavenSession mavenSession;
- /**
- * Dependance du projet.
- *
- * @parameter default-value="${project}"
- * @required
- * @readonly
- * @since 1.0.0
- */
- protected MavenProject project;
- /**
- * Dependance du settings.
- *
- * @parameter default-value="${settings}"
- * @required
- * @readonly
- * @since 1.0.0
- */
- protected Settings settings;
- /**
- * Un flag pour activer le mode verbeux.
- *
- * @parameter expression="${helper.verbose}" default-value="${maven.verbose}"
- * @since 1.0.0
- */
- protected boolean verbose;
- /**
- * The Velocity template used to format the email announcement.
- *
- * @parameter expression="${helper.emailContentFile}"
- * @required
- * @since 1.0.0
- */
- private File emailContentFile;
- /**
- * The title of the email to send.
- *
- * @parameter expression="${helper.emailTitle}"
- * @required
- * @since 1.0.0
- */
- private String emailTitle;
- /**
- * Smtp Server.
- *
- * @parameter expression="${helper.smtpHost}"
- * @required
- */
- private String smtpHost;
- /**
- * Port.
- *
- * @parameter default-value="25" expression="${helper.smtpPort}"
- * @required
- */
- private int smtpPort;
- /**
- * The username used to send the email.
- *
- * @parameter expression="${helper.username}"
- */
- private String username;
- /**
- * The password used to send the email.
- *
- * @parameter expression="${helper.password}"
- */
- private String password;
- /**
- * Server id to use for authentication (must be defined in your setting
- * and use the maven >= 2.1.0 password encryption mecanism).
- * <p/>
- *
- * @parameter expression="${helper.serverId}"
- * @since 1.0.0
- */
- protected String serverId;
- /**
- * If the email should be sent in SSL mode.
- *
- * @parameter default-value="false" expression="${helper.sslMode}"
- */
- private boolean sslMode;
- /**
- * The id of the developer sending the announcement mail. Only used if the <tt>mailSender</tt>
- * attribute is not set. In this case, this should match the id of one of the developers in
- * the pom. If a matching developer is not found, then the first developer in the pom will be
- * used.
- *
- * @parameter expression="${helper.fromDeveloperId}"
- */
- private String fromDeveloperId;
- /**
- * Defines the sender of the announcement if the list of developer is empty or
- * if the sender is not a member of the development team.
- *
- * @parameter expression="${helper.mailSender}"
- */
- private MailSender mailSender;
- /**
- * Recipient email address.
- *
- * @parameter
- * @required
- */
- private List<String> toAddresses;
- /**
- * Possible senders.
- *
- * @parameter expression="${project.developers}"
- * @required
- * @readonly
- */
- private List<Developer> from;
- /**
- * Mail content type to use.
- * @parameter default-value="text/plain"
- * @required
- * @since 2.1
- */
- private String mailContentType;
- /**
- * The encoding used to read and write files.
- *
- * @parameter expression="${helper.encoding}" default-value="${project.build.sourceEncoding}"
- * @since 1.0.0
- */
- protected String encoding;
- /**
- * A flag to skip the goal.
- *
- * @parameter expression="${helper.skipSendEmail}" default-value="false"
- * @since 1.0.0
- */
- private boolean skipSendEmail;
- /**
- * A flag to test plugin but send nothing to redmine.
- *
- * @parameter expression="${dryRun}" default-value="false"
- * @since 1.0.0
- */
- protected boolean dryRun;
- /**
- * A flag to restirct only one run in a build (for multi-module context).
- *
- * @parameter expression="${redmine.runOnce}" default-value="true"
- * @since 1.0.0
- */
- private boolean runOnce;
- /**
- * password decypher
- *
- * @component roleHint="maven-redmine-plugin"
- * @since 1.0.0
- */
- protected SecDispatcher sec;
- private boolean runOnceDone;
- ///////////////////////////////////////////////////////////////////////////
- /// 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;
- }
-
- @Override
- protected boolean ensurePackaging() {
- // accept all project's packaging
- return false;
- }
-
- ///////////////////////////////////////////////////////////////////////////
- /// AbstractPlugin
- ///////////////////////////////////////////////////////////////////////////
- protected boolean isGoalSkip() {
- return skipSendEmail;
- }
-
- @Override
- protected boolean init() throws Exception {
-
- if (isGoalSkip()) {
- return true;
- }
-
- runOnceDone = false;
- if (runOnce) {
- // check
-
- if (!isExecutionRoot()) {
- getLog().info("runOnce flag is on, will skip the goal");
- runOnceDone = true;
- return true;
- }
- }
-
- if (!emailContentFile.exists()) {
- // no file to publish...
- getLog().warn("could not find the template " + emailContentFile);
- getLog().warn("will skip send email...");
- return false;
- }
-
- // check server (if used)
-
- Server server = null;
-
- if (serverId != null && !serverId.trim().isEmpty()) {
-
- server = settings.getServer(serverId);
-
- if (server == null) {
- getLog().error("Could not find server with id '" + serverId + "', check your settings.xml file.");
- return false;
- }
- }
-
- // check authentication configuration is stable
-
- boolean noUsername = username == null || username.trim().isEmpty();
- boolean noPassword = password == null || password.trim().isEmpty();
-
- if (server != null && !noUsername) {
- getLog().error("Authentication configuration is wrong :\ncan not use both 'serverId' and 'username' parameters, check your plugin configuration.");
- return false;
- }
-
- if (server != null && !noPassword) {
- getLog().error("Authentication configuration is wrong :\ncan not use both 'serverId' and 'password' parameters, check your plugin configuration.");
- return false;
- }
-
- if ((noUsername && !noPassword) || (!noUsername && noPassword)) {
- getLog().error("Authentication configuration is wrong :\nconfiguration is not complete, please fill parameter 'serverId' or 'username' and 'password'.");
- return false;
- }
-
- if (server != null) {
- // obtain username and password from server
-
- username = server.getUsername();
- password = sec.decrypt(server.getPassword());
- }
-
- // check mail sender
-
- if (mailSender == null) {
-
- if (from == null || from.isEmpty()) {
- getLog().warn("The <developers> section in your pom should not be empty. Add a <developer> entry or set the " + "mailSender parameter.");
- getLog().warn("will skip send email...");
- return false;
- }
-
- if (fromDeveloperId == null) {
- final Developer dev = from.get(0);
- mailSender = new MailSender(dev.getName(), dev.getEmail());
- } else {
- for (Developer developer : from) {
- if (fromDeveloperId.equals(developer.getId())) {
- mailSender = new MailSender(developer.getName(), developer.getEmail());
- break;
- }
- }
- if (mailSender == null) {
- getLog().warn("Missing developer with id '" + fromDeveloperId + "' in the <developers> section in your pom.");
- getLog().warn("will skip send email...");
- return false;
- }
- }
- }
-
- String fromAddress = mailSender.getEmail();
- if (fromAddress == null || fromAddress.equals("")) {
- getLog().warn("Invalid mail sender: name and email is mandatory (" + mailSender + ").");
- getLog().warn("will skip send email...");
- return false;
- }
-
- return true;
- }
-
- @Override
- protected void doAction() throws Exception {
- if (runOnce && runOnceDone) {
- return;
- }
- if (isGoalSkip()) {
- getLog().info("skipGoal flag is on, the goal is skip.");
- return;
- }
-
- if (dryRun) {
- getLog().info("\n dryRun flag is on, no mail will be send!\n");
- }
-
- String newsContent = PluginHelper.readAsString(emailContentFile, encoding);
-
- MailMessage mailMsg = createMessage(newsContent, mailSender);
-
-
- ProjectJavamailMailSender mailer = createMailer();
-
- if (getLog().isDebugEnabled()) {
- getLog().debug("fromDeveloperId: " + fromDeveloperId);
- }
-
- if (dryRun) {
- getLog().info("Mail title : " + emailTitle);
- getLog().info("Mail content :\n" + mailMsg.getContent());
- return;
- }
- getLog().info("Connecting to Host: " + smtpHost + ":" + smtpPort);
-
- try {
-
- mailer.send(mailMsg);
- getLog().info("Sent...");
- } catch (MailSenderException e) {
- throw new MojoExecutionException("Failed to send email for reason " + e.getMessage(), e);
- }
- }
-
- ///////////////////////////////////////////////////////////////////////////
- /// Other
- ///////////////////////////////////////////////////////////////////////////
- protected MailMessage createMessage(String newsContent, MailSender mailSender) throws MailSenderException {
-
- String fromName = mailSender.getName();
- String fromAddress = mailSender.getEmail();
-
- getLog().info("Using this sender for email announcement: " + fromAddress + " < " + fromName + " > ");
-
- MailMessage mailMsg = new MailMessage();
- mailMsg.setSubject(emailTitle);
- if (getLog().isDebugEnabled()) {
- getLog().debug("email announcement :\n" + newsContent);
- }
- mailMsg.setContent(newsContent);
- mailMsg.setContentType(mailContentType);
- mailMsg.setFrom(fromAddress, fromName);
- for (String e : toAddresses) {
- getLog().info("Sending mail to " + e + "...");
- mailMsg.addTo(e, "");
- }
- return mailMsg;
- }
-
- protected ProjectJavamailMailSender createMailer() {
-
- ProjectJavamailMailSender mailer = new ProjectJavamailMailSender();
- ConsoleLogger logger = new ConsoleLogger(Logger.LEVEL_INFO, "base");
- if (getLog().isDebugEnabled()) {
- logger.setThreshold(Logger.LEVEL_DEBUG);
- }
- mailer.enableLogging(logger);
- mailer.setSmtpHost(smtpHost);
- mailer.setSmtpPort(smtpPort);
- mailer.setSslMode(sslMode);
- if (username != null) {
- mailer.setUsername(username);
- }
- if (password != null) {
- mailer.setPassword(password);
- }
- mailer.initialize();
- return mailer;
- }
-
- public void setMailSender(MailSender sender) {
- this.mailSender = sender;
- }
-
- public void setFrom(List<Developer> from) {
- this.from = from;
- }
-
- public void setToAddresses(List<String> toAddresses) {
- this.toAddresses = toAddresses;
- }
-
- protected boolean isExecutionRoot() {
- return project == getExecutionRootProject();
- }
-
- protected MavenProject getExecutionRootProject() {
- MavenProject root = project;
- String executionRootDirectory = mavenSession.getExecutionRootDirectory();
- while (root != null) {
- File dir = root.getBasedir();
- getLog().debug("Current Folder:" + dir);
- boolean result = executionRootDirectory.equalsIgnoreCase(dir.toString());
- if (result) {
- break;
- }
- root = root.getParent();
- }
- if (verbose) {
- getLog().info("root project " + root);
- }
- return root;
- }
-}
Deleted: jredmine/trunk/maven-jredmine-plugin/src/test/java/org/nuiton/jredmine/plugin/SendEmailMojoTest.java
===================================================================
--- jredmine/trunk/maven-jredmine-plugin/src/test/java/org/nuiton/jredmine/plugin/SendEmailMojoTest.java 2009-09-19 16:31:10 UTC (rev 185)
+++ jredmine/trunk/maven-jredmine-plugin/src/test/java/org/nuiton/jredmine/plugin/SendEmailMojoTest.java 2009-09-19 16:31:30 UTC (rev 186)
@@ -1,63 +0,0 @@
-package org.nuiton.jredmine.plugin;
-
-import java.io.File;
-import java.util.Arrays;
-import junit.framework.Assert;
-import org.apache.maven.plugin.announcement.MailSender;
-import org.junit.Test;
-import org.nuiton.plugin.AbstractMojoTest;
-
-/**
- * @author tchemit
- * @since 1.0.0
- */
-public class SendEmailMojoTest extends AbstractMojoTest<SendEmailMojo> {
-
- protected boolean canContinue;
-
- @Override
- protected String getGoalName(String methodName) {
- return "send-email";
- }
-
- @Override
- protected void setUpMojo(SendEmailMojo mojo, File pomFile) throws Exception {
- super.setUpMojo(mojo, pomFile);
-
- // copy redmine test server configuration
- //TestHelper.copyConfiguration(TestHelper.getTestConfiguration(), mojo);
-
-
- // add a mailSender here
- MailSender sender = new MailSender();
- sender.setName("Nuiton Release Notification");
- sender.setEmail("test(a)noway.fr");
- mojo.setMailSender(sender);
-
- // add a destination
- mojo.setToAddresses(Arrays.asList("chemit(a)codelutin.com"));
-
- canContinue = mojo.init();
- if (canContinue) {
- if (mojo.isVerbose()) {
- log.info("setup done for " + mojo.getProject().getFile().getName());
- }
- } else {
- log.warn("setup was not successfull, will skip this test [" + getClass() + "]");
- }
- }
-
- @Test
- public void sendEmail() throws Exception {
-
- Assert.assertNotNull(getMojo());
- getMojo().doAction();
- }
-
- @Test
- public void skipSendEmail() throws Exception {
-
- Assert.assertNotNull(getMojo());
- getMojo().doAction();
- }
-}
Deleted: jredmine/trunk/maven-jredmine-plugin/src/test/resources/org/nuiton/jredmine/plugin/SendEmailMojoTest/mailContentFile.txt
===================================================================
--- jredmine/trunk/maven-jredmine-plugin/src/test/resources/org/nuiton/jredmine/plugin/SendEmailMojoTest/mailContentFile.txt 2009-09-19 16:31:10 UTC (rev 185)
+++ jredmine/trunk/maven-jredmine-plugin/src/test/resources/org/nuiton/jredmine/plugin/SendEmailMojoTest/mailContentFile.txt 2009-09-19 16:31:30 UTC (rev 186)
@@ -1 +0,0 @@
-The content of the test email
\ No newline at end of file
Deleted: jredmine/trunk/maven-jredmine-plugin/src/test/resources/org/nuiton/jredmine/plugin/SendEmailMojoTest/sendEmail.xml
===================================================================
--- jredmine/trunk/maven-jredmine-plugin/src/test/resources/org/nuiton/jredmine/plugin/SendEmailMojoTest/sendEmail.xml 2009-09-19 16:31:10 UTC (rev 185)
+++ jredmine/trunk/maven-jredmine-plugin/src/test/resources/org/nuiton/jredmine/plugin/SendEmailMojoTest/sendEmail.xml 2009-09-19 16:31:30 UTC (rev 186)
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-
- <groupId>org.nuiton.maven-redmine-plugin</groupId>
- <artifactId>test-generate-changes</artifactId>
- <version>0</version>
-
- <name>generate-changes</name>
-
- <build>
-
- <plugins>
- <plugin>
- <groupId>org.nuiton.jredmine</groupId>
- <artifactId>maven-jredmine-plugin</artifactId>
- <configuration>
- <emailContentFile>target/test-classes/org/nuiton/jredmine/plugin/SendEmailMojoTest/mailContentFile.txt</emailContentFile>
- <emailTitle>[ANNOUNCEMENT] - One 1.0.0 released</emailTitle>
- <encoding>UTF-8</encoding>
- <skipSendEmail>false</skipSendEmail>
- <!--<mailSender>
- <name>Nuiton Release Notification</name>
- <email>noreply@${platform}</email>
- </mailSender>
- <toAddresses>
- <item>chemit(a)codelutin.com</item>
- </toAddresses>-->
- <smtpHost>smtp</smtpHost>
- <smtpPort>25</smtpPort>
- <dryRun>true</dryRun>
- </configuration>
- <executions>
- <execution>
- <goals>
- <goal>send-email</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
-</project>
\ No newline at end of file
Deleted: jredmine/trunk/maven-jredmine-plugin/src/test/resources/org/nuiton/jredmine/plugin/SendEmailMojoTest/skipSendEmail.xml
===================================================================
--- jredmine/trunk/maven-jredmine-plugin/src/test/resources/org/nuiton/jredmine/plugin/SendEmailMojoTest/skipSendEmail.xml 2009-09-19 16:31:10 UTC (rev 185)
+++ jredmine/trunk/maven-jredmine-plugin/src/test/resources/org/nuiton/jredmine/plugin/SendEmailMojoTest/skipSendEmail.xml 2009-09-19 16:31:30 UTC (rev 186)
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-
- <groupId>org.nuiton.maven-redmine-plugin</groupId>
- <artifactId>test-generate-changes</artifactId>
- <version>0</version>
-
- <name>generate-changes</name>
-
- <build>
-
- <plugins>
- <plugin>
- <groupId>org.nuiton.jredmine</groupId>
- <artifactId>maven-jredmine-plugin</artifactId>
- <configuration>
- <emailContentFile>target/test-classes/org/nuiton/jredmine/plugin/SendEmailMojoTest/mailContentFile.txt</emailContentFile>
- <emailTitle>[ANNOUNCEMENT] - One 1.0.0 released</emailTitle>
- <encoding>UTF-8</encoding>
- <skipSendEmail>true</skipSendEmail>
- </configuration>
- <executions>
- <execution>
- <goals>
- <goal>send-email</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
-</project>
\ No newline at end of file
Modified: jredmine/trunk/pom.xml
===================================================================
--- jredmine/trunk/pom.xml 2009-09-19 16:31:10 UTC (rev 185)
+++ jredmine/trunk/pom.xml 2009-09-19 16:31:30 UTC (rev 186)
@@ -26,14 +26,14 @@
<scope>compile</scope>
</dependency>
- <!-- fix dependency pb in velocity (need at least version > 2.2) -->
- <dependency>
+ <!-- fix dependency pb in velocity (need at least version > 2.2) -->
+ <!--<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.4</version>
- </dependency>
+ </dependency>-->
- <!-- FIXME si on ne le rajoute pas, on se retrouve avec la version 1.1 qui ne convient pas -->
+ <!-- FIXME si on ne le rajoute pas, on se retrouve avec la version 1.1 qui ne convient pas -->
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-utils</artifactId>
@@ -72,18 +72,34 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-changes-plugin</artifactId>
<version>2.1</version>
+ <exclusions>
+ <exclusion>
+ <groupId>plexus</groupId>
+ <artifactId>plexus-mail-sender-simple</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>plexus</groupId>
+ <artifactId>plexus-mail-sender-api</artifactId>
+ </exclusion>
+
+ <exclusion>
+ <groupId>plexus</groupId>
+ <artifactId>plexus-mail-sender-javamail</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
+ <!--
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.0</version>
- </dependency>
-
+ </dependency>-->
+<!--
<dependency>
<groupId>commons-httpclient</groupId>
<artifactId>commons-httpclient</artifactId>
<version>3.1</version>
- </dependency>
+ </dependency>-->
<dependency>
<groupId>log4j</groupId>
1
0
Author: tchemit
Date: 2009-09-19 18:31:10 +0200 (Sat, 19 Sep 2009)
New Revision: 185
Removed:
jredmine/trunk/maven-jredmine-plugin/org/
Log:
deplacements des goal generiques send-email et collect-files vers maven-helper-plugin
1
0