Jredmine-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
- 579 discussions
14 Jan '10
Author: tchemit
Date: 2010-01-15 00:44:15 +0100 (Fri, 15 Jan 2010)
New Revision: 83
Modified:
trunk/jredmine-client/pom.xml
trunk/maven-jredmine-plugin/pom.xml
trunk/pom.xml
Log:
[maven-release-plugin] prepare release jredmine-1.1.1
Modified: trunk/jredmine-client/pom.xml
===================================================================
--- trunk/jredmine-client/pom.xml 2010-01-14 23:37:50 UTC (rev 82)
+++ trunk/jredmine-client/pom.xml 2010-01-14 23:44:15 UTC (rev 83)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>jredmine</artifactId>
- <version>1.1.1-SNAPSHOT</version>
+ <version>1.1.1</version>
</parent>
<groupId>org.nuiton.jredmine</groupId>
Modified: trunk/maven-jredmine-plugin/pom.xml
===================================================================
--- trunk/maven-jredmine-plugin/pom.xml 2010-01-14 23:37:50 UTC (rev 82)
+++ trunk/maven-jredmine-plugin/pom.xml 2010-01-14 23:44:15 UTC (rev 83)
@@ -9,7 +9,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>jredmine</artifactId>
- <version>1.1.1-SNAPSHOT</version>
+ <version>1.1.1</version>
</parent>
<groupId>org.nuiton.jredmine</groupId>
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2010-01-14 23:37:50 UTC (rev 82)
+++ trunk/pom.xml 2010-01-14 23:44:15 UTC (rev 83)
@@ -15,7 +15,7 @@
<!--<groupId>org.nuiton</groupId>-->
<artifactId>jredmine</artifactId>
- <version>1.1.1-SNAPSHOT</version>
+ <version>1.1.1</version>
<modules>
<module>jredmine-client</module>
@@ -24,9 +24,9 @@
<!-- Source control management. -->
<scm>
- <connection>scm:svn:http://svn.nuiton.org/svn/jredmine/trunk</connection>
- <developerConnection>scm:svn:http://svn.nuiton.org/svn/jredmine/trunk</developerConnection>
- <url>http://www.nuiton.org/repositories/browse/jredmine/trunk</url>
+ <connection>scm:svn:http://svn.nuiton.org/svn/jredmine/tags/jredmine-1.1.1</connection>
+ <developerConnection>scm:svn:http://svn.nuiton.org/svn/jredmine/tags/jredmine-1.1.1</developerConnection>
+ <url>http://www.nuiton.org/repositories/browse/jredmine/tags/jredmine-1.1.1</url>
</scm>
<dependencyManagement>
1
0
r82 - trunk/maven-jredmine-plugin/src/main/resources/org/nuiton/jredmine/plugin/announcement
by tchemit@users.nuiton.org 14 Jan '10
by tchemit@users.nuiton.org 14 Jan '10
14 Jan '10
Author: tchemit
Date: 2010-01-15 00:37:50 +0100 (Fri, 15 Jan 2010)
New Revision: 82
Modified:
trunk/maven-jredmine-plugin/src/main/resources/org/nuiton/jredmine/plugin/announcement/release-email-announcement.vm
trunk/maven-jredmine-plugin/src/main/resources/org/nuiton/jredmine/plugin/announcement/release-news-announcement.vm
Log:
add documentation link in announcements
Modified: trunk/maven-jredmine-plugin/src/main/resources/org/nuiton/jredmine/plugin/announcement/release-email-announcement.vm
===================================================================
--- trunk/maven-jredmine-plugin/src/main/resources/org/nuiton/jredmine/plugin/announcement/release-email-announcement.vm 2010-01-14 23:23:41 UTC (rev 81)
+++ trunk/maven-jredmine-plugin/src/main/resources/org/nuiton/jredmine/plugin/announcement/release-email-announcement.vm 2010-01-14 23:37:50 UTC (rev 82)
@@ -18,8 +18,7 @@
${introduction}
-Documentation of the project can be found here :
-
+Documentation of the project can be found here:
${projectUrl}
Changes
Modified: trunk/maven-jredmine-plugin/src/main/resources/org/nuiton/jredmine/plugin/announcement/release-news-announcement.vm
===================================================================
--- trunk/maven-jredmine-plugin/src/main/resources/org/nuiton/jredmine/plugin/announcement/release-news-announcement.vm 2010-01-14 23:23:41 UTC (rev 81)
+++ trunk/maven-jredmine-plugin/src/main/resources/org/nuiton/jredmine/plugin/announcement/release-news-announcement.vm 2010-01-14 23:37:50 UTC (rev 82)
@@ -18,8 +18,7 @@
${introduction}
-Documentation of the project can be found here :
-
+Documentation of the project can be found here:
${projectUrl}
h3. Changes in this version:
1
0
r81 - trunk/maven-jredmine-plugin/src/main/resources/org/nuiton/jredmine/plugin/announcement
by tchemit@users.nuiton.org 14 Jan '10
by tchemit@users.nuiton.org 14 Jan '10
14 Jan '10
Author: tchemit
Date: 2010-01-15 00:23:41 +0100 (Fri, 15 Jan 2010)
New Revision: 81
Modified:
trunk/maven-jredmine-plugin/src/main/resources/org/nuiton/jredmine/plugin/announcement/release-email-announcement.vm
trunk/maven-jredmine-plugin/src/main/resources/org/nuiton/jredmine/plugin/announcement/release-news-announcement.vm
Log:
add documentation link in announcements
Modified: trunk/maven-jredmine-plugin/src/main/resources/org/nuiton/jredmine/plugin/announcement/release-email-announcement.vm
===================================================================
--- trunk/maven-jredmine-plugin/src/main/resources/org/nuiton/jredmine/plugin/announcement/release-email-announcement.vm 2010-01-14 22:57:57 UTC (rev 80)
+++ trunk/maven-jredmine-plugin/src/main/resources/org/nuiton/jredmine/plugin/announcement/release-email-announcement.vm 2010-01-14 23:23:41 UTC (rev 81)
@@ -18,6 +18,10 @@
${introduction}
+Documentation of the project can be found here :
+
+${projectUrl}
+
Changes
-------
Modified: trunk/maven-jredmine-plugin/src/main/resources/org/nuiton/jredmine/plugin/announcement/release-news-announcement.vm
===================================================================
--- trunk/maven-jredmine-plugin/src/main/resources/org/nuiton/jredmine/plugin/announcement/release-news-announcement.vm 2010-01-14 22:57:57 UTC (rev 80)
+++ trunk/maven-jredmine-plugin/src/main/resources/org/nuiton/jredmine/plugin/announcement/release-news-announcement.vm 2010-01-14 23:23:41 UTC (rev 81)
@@ -18,6 +18,10 @@
${introduction}
+Documentation of the project can be found here :
+
+${projectUrl}
+
h3. Changes in this version:
#if ($release.getActions().size() == 0)
1
0
Author: tchemit
Date: 2010-01-14 23:57:57 +0100 (Thu, 14 Jan 2010)
New Revision: 80
Modified:
trunk/pom.xml
Log:
use maven-helper-plugin 1.2.1
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2010-01-10 23:13:27 UTC (rev 79)
+++ trunk/pom.xml 2010-01-14 22:57:57 UTC (rev 80)
@@ -402,7 +402,7 @@
<projectId>jredmine</projectId>
- <helper.version>1.2.1-SNAPSHOT</helper.version>
+ <helper.version>1.2.1</helper.version>
<!--<jredmine.version>1.0.2</jredmine.version>-->
<!-- test config -->
1
0
r79 - trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/announcement
by tchemit@users.nuiton.org 10 Jan '10
by tchemit@users.nuiton.org 10 Jan '10
10 Jan '10
Author: tchemit
Date: 2010-01-11 00:13:27 +0100 (Mon, 11 Jan 2010)
New Revision: 79
Modified:
trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/announcement/AbstractAnnouncementMojo.java
Log:
fix NPE when no attachment
Modified: trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/announcement/AbstractAnnouncementMojo.java
===================================================================
--- trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/announcement/AbstractAnnouncementMojo.java 2010-01-10 21:26:17 UTC (rev 78)
+++ trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/announcement/AbstractAnnouncementMojo.java 2010-01-10 23:13:27 UTC (rev 79)
@@ -312,15 +312,16 @@
if (attachments.length == 0) {
getLog().info("No attachments files");
- return;
- }
+ } else {
- if (isVerbose()) {
- getLog().info("attachmentLinkTemplate " + attachmentLinkTemplate);
- getLog().info("server url " + url);
+ if (isVerbose()) {
+ getLog().info("attachmentLinkTemplate " + attachmentLinkTemplate);
+ getLog().info("server url " + url);
+ }
+ attachmentUrls = generator.getAttachmentsUrls(attachments);
+
}
- attachmentUrls = generator.getAttachmentsUrls(attachments);
-
+
if (isVerbose()) {
for (Map.Entry<Attachment, String> e : attachmentUrls.entrySet()) {
Attachment key = e.getKey();
1
0
r78 - trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/report
by tchemit@users.nuiton.org 10 Jan '10
by tchemit@users.nuiton.org 10 Jan '10
10 Jan '10
Author: tchemit
Date: 2010-01-10 22:26:17 +0100 (Sun, 10 Jan 2010)
New Revision: 78
Modified:
trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/report/AbstractIssuesReport.java
Log:
fix log
Modified: trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/report/AbstractIssuesReport.java
===================================================================
--- trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/report/AbstractIssuesReport.java 2010-01-10 19:29:08 UTC (rev 77)
+++ trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/report/AbstractIssuesReport.java 2010-01-10 21:26:17 UTC (rev 78)
@@ -111,7 +111,10 @@
if (issues == null) {
- getLog().info("Collect issues for " + this);
+ if (isVerbose()) {
+ getLog().info("Collect issues for " + this);
+ }
+
// init issues collector
IssuesCollector collector = new IssuesCollector(getLog(), verbose);
@@ -169,8 +172,6 @@
report.setTrackers(service.getTrackers(id));
report.setVersions(service.getVersions(id));
- getLog().info("url to use " + url);
-
report.doGenerateReport(getBundle(locale), getSink(), getLog());
}
1
0
10 Jan '10
Author: tchemit
Date: 2010-01-10 20:29:08 +0100 (Sun, 10 Jan 2010)
New Revision: 77
Added:
trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/announcement/AnnouncementGeneratorConfiguration.java
Modified:
trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/AbstractRedmineMojo.java
trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/announcement/AbstractAnnouncementMojo.java
trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/announcement/AnnouncementGenerator.java
trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/report/AbstractIssuesReport.java
trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/report/AbstractRedmineReport.java
trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/report/IssueReportGenerator.java
trunk/maven-jredmine-plugin/src/main/resources/org/nuiton/jredmine/plugin/announcement/release-email-announcement.vm
trunk/maven-jredmine-plugin/src/main/resources/org/nuiton/jredmine/plugin/announcement/release-news-announcement.vm
trunk/maven-jredmine-plugin/src/test/resources/log4j.properties
trunk/maven-jredmine-plugin/src/test/resources/org/nuiton/jredmine/plugin/announcement/generateEmailAnnouncementMojoTest/generateEmailAnnouncement.xml
trunk/maven-jredmine-plugin/src/test/resources/org/nuiton/jredmine/plugin/announcement/generateEmailAnnouncementMojoTest/skipGenerateEmailAnnouncement.xml
trunk/maven-jredmine-plugin/src/test/resources/org/nuiton/jredmine/plugin/announcement/generateNewsAnnouncementMojoTest/generateNewsAnnouncement.xml
trunk/maven-jredmine-plugin/src/test/resources/org/nuiton/jredmine/plugin/announcement/generateNewsAnnouncementMojoTest/skipGenerateNewsAnnouncement.xml
Log:
improve announcement generator design \
improve announcement templates
add default link template (using the %URL% token)
Modified: trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/AbstractRedmineMojo.java
===================================================================
--- trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/AbstractRedmineMojo.java 2010-01-10 16:39:49 UTC (rev 76)
+++ trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/AbstractRedmineMojo.java 2010-01-10 19:29:08 UTC (rev 77)
@@ -619,4 +619,12 @@
public void setSafe(boolean safe) {
this.safe = safe;
}
+
+ public String getProjectId() {
+ return projectId;
+ }
+
+ public String getVersionId() {
+ return versionId;
+ }
}
Modified: trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/announcement/AbstractAnnouncementMojo.java
===================================================================
--- trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/announcement/AbstractAnnouncementMojo.java 2010-01-10 16:39:49 UTC (rev 76)
+++ trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/announcement/AbstractAnnouncementMojo.java 2010-01-10 19:29:08 UTC (rev 77)
@@ -22,8 +22,6 @@
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.changes.ChangesXML;
-import org.apache.maven.plugins.changes.model.Release;
-import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.VelocityEngine;
import org.apache.velocity.context.Context;
import org.codehaus.plexus.util.ReaderFactory;
@@ -33,8 +31,11 @@
import org.nuiton.jredmine.plugin.AbstractRedmineMojo;
import org.nuiton.plugin.PluginHelper;
-import java.io.*;
-import java.util.*;
+import java.io.File;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -42,7 +43,7 @@
* @author chemit
* @requiresOnline true
*/
-public abstract class AbstractAnnouncementMojo extends AbstractRedmineMojo {
+public abstract class AbstractAnnouncementMojo extends AbstractRedmineMojo implements AnnouncementGeneratorConfiguration {
/**
* Directory where the template file will be generated.
@@ -95,7 +96,7 @@
* and everything that comes after it. <code>%FILE%</code>: this is the issue number.
* </p>
*
- * @parameter expression="${redmine.attachmentLinkTemplate}"
+ * @parameter expression="${redmine.attachmentLinkTemplate}" default-value="%URL%/attachments/download/%FILE%"
* @since 1.0.0
*/
protected String attachmentLinkTemplate;
@@ -195,16 +196,26 @@
protected Map<File, String> artifactUrls;
protected Map<Attachment, String> attachmentUrls;
+
+ protected List<?> releases;
+
protected AnnouncementGenerator generator;
private static final Pattern ARTIFACT_PATTERN = Pattern.compile("(.+)?--(.+)?");
+ /**
+ * @return the name fo the template to use
+ */
protected abstract String getAnnouncementTemplate();
protected AbstractAnnouncementMojo() {
super(true, false, true);
}
+ ///////////////////////////////////////////////////////////////////////////
+ /// AbstractRedmineMojo
+ ///////////////////////////////////////////////////////////////////////////
+
@Override
protected boolean isRunOnce() {
return runOnce;
@@ -224,7 +235,6 @@
@Override
protected void init() throws Exception {
-// protected boolean init() throws Exception {
versionId = PluginHelper.removeSnapshotSuffix(versionId);
@@ -234,18 +244,11 @@
runOnceDone = checkRunOnceDone();
if (runOnceDone) {
return;
-// return true;
}
}
-// if (!super.init()) {
-// return false;
-// }
-
if (!xmlPath.exists()) {
throw new MojoExecutionException("can not find redmine-template at " + xmlPath);
-// getLog().warn("can not find redmine-template at " + xmlPath + ", goal is skip");
-// return false;
}
if (StringUtils.isEmpty(templateEncoding)) {
@@ -264,7 +267,7 @@
}
- List<File> files = getFiles(artifactsFile);
+ File[] files = PluginHelper.getLinesAsFiles(artifactsFile);
String url = deploymentUrl.trim();
@@ -272,7 +275,9 @@
deploymentUrl = (url += "/");
}
- getLog().info("Deploy url = " + url);
+ if (isVerbose()) {
+ getLog().info("Deploy url = " + url);
+ }
artifactUrls = new HashMap<File, String>();
@@ -292,58 +297,46 @@
f = new File(filename);
}
String spec = url + groupId + "/" + versionId + "/" + filename;
- getLog().info("artifact file " + f.getName() + " --> " + spec);
-
+ if (isVerbose()) {
+ getLog().info("artifact file " + f.getName() + " --> " + spec);
+ }
artifactUrls.put(f, spec);
-
}
-
}
super.init();
- generator = new AnnouncementGenerator(getLog(), projectUrl, attachmentLinkTemplate);
+ generator = new AnnouncementGenerator(this);
Attachment[] attachments = service.getAttachments(projectId, versionId);
if (attachments.length == 0) {
getLog().info("No attachments files");
+ return;
}
+ if (isVerbose()) {
+ getLog().info("attachmentLinkTemplate " + attachmentLinkTemplate);
+ getLog().info("server url " + url);
+ }
attachmentUrls = generator.getAttachmentsUrls(attachments);
- for (Map.Entry<Attachment, String> e : attachmentUrls.entrySet()) {
- Attachment key = e.getKey();
- String value = e.getValue();
- getLog().info("attachment file " + key.getFilename() + " --> " + value);
+ if (isVerbose()) {
+ for (Map.Entry<Attachment, String> e : attachmentUrls.entrySet()) {
+ Attachment key = e.getKey();
+ String value = e.getValue();
+ getLog().info("attachment file " + key.getFilename() + " --> " + value);
+ }
}
+ ChangesXML changesXml = new ChangesXML(xmlPath, getLog());
-// return true;
+ releases = changesXml.getReleaseList();
}
-// @Override
-// protected boolean checkSkip() {
-//// if (isRunOnceDone()) {
-//// getLog().info("skip goal, runOnce flag is on, and was already executed.");
-//// return false;
-//// }
-// boolean b = super.checkSkip();
-// return b;
-// }
-
@Override
protected void doAction() throws Exception {
-// if (isRunOnceDone()) {
-// getLog().info("skip goal, runOnce flag is on, and was already executed.");
-// return;
-// }
-
- ChangesXML changesXml = new ChangesXML(xmlPath, getLog());
-
- List<?> releases = changesXml.getReleaseList();
-
//TODO-TC-20091209 must obtain back the full name of dev from the project team on each action
String template = getAnnouncementTemplate();
@@ -357,82 +350,88 @@
engine.setApplicationAttribute("baseDirectory", basedir);
+ Context context = generator.createVelocityContext(releases);
- Context context = createVelocityContext(generator, releases);
-
- // generate redmine announcement file
-
generator.doGenerate(engine, context, out, templateDirectory + "/" + template, templateEncoding);
getLog().debug("Created announcement [" + template + "] in " + out);
+ }
+ ///////////////////////////////////////////////////////////////////////////
+ /// AnnouncementGeneratorConfiguration
+ ///////////////////////////////////////////////////////////////////////////
+ @Override
+ public String getAttachmentLinkTemplate() {
+ return attachmentLinkTemplate;
}
- public Context createVelocityContext(AnnouncementGenerator generator, List<?> releases) throws MojoExecutionException {
+ @Override
+ public String getUrl() {
+ return url.toString();
+ }
- // prepare velocity context
- Context context = new VelocityContext();
- context.put("releases", releases);
- context.put("groupId", groupId);
- context.put("artifactId", artifactId);
- context.put("version", versionId);
- context.put("packaging", packaging);
- context.put("url", projectUrl);
+ @Override
+ public String getArtifactId() {
+ return artifactId;
+ }
- Release release = generator.getLatestRelease(releases, versionId);
+ @Override
+ public Map<File, String> getArtifactUrls() {
+ return artifactUrls;
+ }
- context.put("release", release);
- context.put("introduction", introduction);
- context.put("developmentTeam", developmentTeam);
- context.put("finalName", finalName);
- context.put("urlDownload", urlDownload);
- context.put("mavenRepoUrl", this.deploymentUrl);
- context.put("project", project);
+ @Override
+ public Map<Attachment, String> getAttachmentUrls() {
+ return attachmentUrls;
+ }
- // add artifacts in context
- if (artifactUrls == null || artifactUrls.isEmpty()) {
- context.put("withArtifacts", false);
+ @Override
+ public String getBasedir() {
+ return basedir;
+ }
- } else {
- context.put("withArtifacts", true);
- context.put("artifactUrls", artifactUrls);
- }
- // add attachments in context
+ @Override
+ public String getDeploymentUrl() {
+ return deploymentUrl;
+ }
- if (attachmentUrls == null || attachmentUrls.isEmpty()) {
- context.put("withAttachments", false);
+ @Override
+ public String getDevelopmentTeam() {
+ return developmentTeam;
+ }
- } else {
- context.put("withAttachments", true);
- context.put("attachmentUrls", attachmentUrls);
- }
+ @Override
+ public String getFinalName() {
+ return finalName;
+ }
- if (announceParameters == null) {
- // empty Map to prevent NPE in velocity execution
- context.put("announceParameters", Collections.EMPTY_MAP);
- } else {
- context.put("announceParameters", announceParameters);
- }
- return context;
+ @Override
+ public String getGroupId() {
+ return groupId;
}
- /**
- * Read a file containing on each line the path of a file.
- *
- * @param input the file containing the list of files
- * @return the list of files read from the given file
- * @throws java.io.IOException if any pb while reading file
- */
- public List<File> getFiles(File input) throws IOException {
- List<File> result = new ArrayList<File>();
- BufferedReader stream = new BufferedReader(new InputStreamReader(new FileInputStream(input)));
- while (stream.ready()) {
- String line = stream.readLine().trim();
- if (!line.isEmpty()) {
- File f = new File(line);
- result.add(f);
- }
- }
- return result;
+ @Override
+ public String getIntroduction() {
+ return introduction;
}
+
+ @Override
+ public String getPackaging() {
+ return packaging;
+ }
+
+ @Override
+ public String getProjectUrl() {
+ return projectUrl;
+ }
+
+ @Override
+ public String getUrlDownload() {
+ return urlDownload;
+ }
+
+ @Override
+ public Map<String, Object> getAnnounceParameters() {
+ return announceParameters;
+ }
}
Modified: trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/announcement/AnnouncementGenerator.java
===================================================================
--- trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/announcement/AnnouncementGenerator.java 2010-01-10 16:39:49 UTC (rev 76)
+++ trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/announcement/AnnouncementGenerator.java 2010-01-10 19:29:08 UTC (rev 77)
@@ -25,6 +25,7 @@
import org.apache.maven.plugins.changes.model.Action;
import org.apache.maven.plugins.changes.model.Release;
import org.apache.velocity.Template;
+import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.VelocityEngine;
import org.apache.velocity.context.Context;
import org.apache.velocity.exception.ResourceNotFoundException;
@@ -36,7 +37,7 @@
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
-import java.util.ArrayList;
+import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -48,32 +49,32 @@
public class AnnouncementGenerator {
/**
- * The token any of urls denoting the base URL for the issue management.
+ * The token any of urls denoting the base URL for the given url.
*/
private static final String URL_TOKEN = "%URL%";
/**
- * The token in {@link #attachmentLinkTemplate} denoting the attachment ID.
+ * The token in {@link #getAttachmentLinkTemplate()} denoting the attachment ID.
*/
private static final String ATTACHMENT_TOKEN = "%FILE%";
- /**
- * the redmine url
- */
- protected final String url;
- /**
- * the redmine attachment url template
- */
- protected final String attachmentLinkTemplate;
- /**
- * logger
- */
- private final Log log;
- public AnnouncementGenerator(Log log, String url, String attachmentLinkTemplate) {
- this.log = log;
- this.url = url;
- this.attachmentLinkTemplate = attachmentLinkTemplate;
+ private final AnnouncementGeneratorConfiguration configuration;
+
+ public AnnouncementGenerator(AnnouncementGeneratorConfiguration configuration) {
+ this.configuration = configuration;
}
+ public String getAttachmentLinkTemplate() {
+ return configuration.getAttachmentLinkTemplate();
+ }
+
+ public Log getLog() {
+ return configuration.getLog();
+ }
+
+ public String getUrl() {
+ return configuration.getUrl();
+ }
+
public Map<Attachment, String> getAttachmentsUrls(Attachment[] attachments) {
// transform attachments urls
@@ -96,6 +97,58 @@
return urls;
}
+ public Context createVelocityContext(List<?> releases) throws MojoExecutionException {
+
+ // prepare velocity context
+ Context context = new VelocityContext();
+ context.put("releases", releases);
+ context.put("groupId", configuration.getGroupId());
+ context.put("artifactId", configuration.getArtifactId());
+ context.put("version", configuration.getVersionId());
+ context.put("packaging", configuration.getPackaging());
+ context.put("url", configuration.getUrl());
+ context.put("projectUrl", configuration.getProjectUrl());
+
+ Release release = getLatestRelease(releases, configuration.getVersionId());
+
+ context.put("release", release);
+ context.put("introduction", configuration.getIntroduction());
+ context.put("developmentTeam", configuration.getDevelopmentTeam());
+ context.put("finalName", configuration.getFinalName());
+ context.put("urlDownload", configuration.getUrlDownload());
+ context.put("mavenRepoUrl", configuration.getDeploymentUrl());
+ context.put("project", configuration.getProject());
+
+ // add artifacts in context
+ Map<File, String> artifactUrls = configuration.getArtifactUrls();
+ if (artifactUrls == null || artifactUrls.isEmpty()) {
+ context.put("withArtifacts", false);
+
+ } else {
+ context.put("withArtifacts", true);
+ context.put("artifactUrls", artifactUrls);
+ }
+ // add attachments in context
+
+ Map<Attachment, String> attachmentUrls = configuration.getAttachmentUrls();
+ if (attachmentUrls == null || attachmentUrls.isEmpty()) {
+ context.put("withAttachments", false);
+
+ } else {
+ context.put("withAttachments", true);
+ context.put("attachmentUrls", attachmentUrls);
+ }
+
+ Map<String, Object> announceParameters = configuration.getAnnounceParameters();
+ if (announceParameters == null) {
+ // empty Map to prevent NPE in velocity execution
+ context.put("announceParameters", Collections.EMPTY_MAP);
+ } else {
+ context.put("announceParameters", announceParameters);
+ }
+ return context;
+ }
+
public void doGenerate(VelocityEngine engine, Context context, File out, String templatePath, String templateEncoding)
throws MojoExecutionException {
@@ -126,17 +179,22 @@
* @return <code>true</code> if issue links can be generated, <code>false</code> otherwise.
*/
public boolean canGenerateAttachmentLinks() {
- return !StringUtils.isBlank(attachmentLinkTemplate) && attachmentLinkTemplate.indexOf(ATTACHMENT_TOKEN) > 0 && (!StringUtils.isBlank(url) || attachmentLinkTemplate.indexOf(URL_TOKEN) < 0);
+ String attachmentLinkTemplate = getAttachmentLinkTemplate();
+ String url = getUrl();
+ return !StringUtils.isBlank(attachmentLinkTemplate) &&
+ attachmentLinkTemplate.indexOf(ATTACHMENT_TOKEN) > 0 &&
+ (attachmentLinkTemplate.indexOf(URL_TOKEN) < 0 || !StringUtils.isBlank(url));
}
protected String parseAttachmentLink(String id) {
String parseLink;
- String issueLink = this.attachmentLinkTemplate;
+ String issueLink = getAttachmentLinkTemplate();
parseLink = issueLink.replaceFirst(ATTACHMENT_TOKEN, id);
if (parseLink.indexOf(URL_TOKEN) >= 0) {
- String u = this.url.substring(0, this.url.lastIndexOf("/"));
- parseLink = parseLink.replaceFirst(URL_TOKEN, u);
+// String u = this.url.substring(0, this.url.lastIndexOf("/"));
+// parseLink = parseLink.replaceFirst(URL_TOKEN, u);
+ parseLink = parseLink.replaceFirst(URL_TOKEN, getUrl());
}
return parseLink;
@@ -218,7 +276,4 @@
}
}
- protected Log getLog() {
- return log;
- }
}
Added: trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/announcement/AnnouncementGeneratorConfiguration.java
===================================================================
--- trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/announcement/AnnouncementGeneratorConfiguration.java (rev 0)
+++ trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/announcement/AnnouncementGeneratorConfiguration.java 2010-01-10 19:29:08 UTC (rev 77)
@@ -0,0 +1,66 @@
+package org.nuiton.jredmine.plugin.announcement;
+
+import org.apache.maven.plugin.logging.Log;
+import org.apache.maven.project.MavenProject;
+import org.nuiton.jredmine.model.Attachment;
+
+import java.io.File;
+import java.util.Map;
+
+/**
+ * Created: 10 janv. 2010
+ *
+ * @author Tony Chemit <chemit(a)codelutin.com> Copyright Code Lutin
+ * @version $Revision$
+ * <p/>
+ * Mise a jour: $Date$ par :
+ * $Author: tchemit $
+ * @since 1.2.1
+ */
+public interface AnnouncementGeneratorConfiguration {
+
+ /**
+ * @return the redmine url
+ */
+ String getUrl();
+
+ /**
+ * @return the redmine attachment url template
+ */
+ String getAttachmentLinkTemplate();
+
+ /**
+ * @return logger
+ */
+ Log getLog();
+
+ String getArtifactId();
+
+ Map<File, String> getArtifactUrls();
+
+ Map<Attachment, String> getAttachmentUrls();
+
+ String getBasedir();
+
+ String getDeploymentUrl();
+
+ String getDevelopmentTeam();
+
+ String getFinalName();
+
+ String getGroupId();
+
+ String getIntroduction();
+
+ String getPackaging();
+
+ String getProjectUrl();
+
+ String getUrlDownload();
+
+ Map<String, Object> getAnnounceParameters();
+
+ String getVersionId();
+
+ MavenProject getProject();
+}
Property changes on: trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/announcement/AnnouncementGeneratorConfiguration.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL
Modified: trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/report/AbstractIssuesReport.java
===================================================================
--- trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/report/AbstractIssuesReport.java 2010-01-10 16:39:49 UTC (rev 76)
+++ trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/report/AbstractIssuesReport.java 2010-01-10 19:29:08 UTC (rev 77)
@@ -27,6 +27,7 @@
import org.nuiton.jredmine.plugin.IssuesCollector;
import org.nuiton.plugin.PluginHelper;
+import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
@@ -45,6 +46,15 @@
*/
protected final String group;
+ /**
+ * cache of collected issues
+ */
+ protected static Map<IssueCollectorConfiguration, Issue[]> issuesCache = new HashMap<IssueCollectorConfiguration, Issue[]>();
+ /**
+ * Issues to used for report
+ */
+ protected Issue[] issues;
+
protected AbstractIssuesReport(String group) {
super(true, false, false);
this.group = group;
@@ -92,19 +102,36 @@
///////////////////////////////////////////////////////////////////////////
@Override
public void init() throws Exception {
-// public boolean init() throws Exception {
setVersionId(PluginHelper.removeSnapshotSuffix(getVersionId()));
super.init();
-// boolean result = super.init();
-// if (result) {
-//
-// setVersionId(PluginHelper.removeSnapshotSuffix(getVersionId()));
-//
-// }
-// return result;
+ issues = issuesCache.get(this);
+
+ if (issues == null) {
+
+ getLog().info("Collect issues for " + this);
+ // init issues collector
+
+ IssuesCollector collector = new IssuesCollector(getLog(), verbose);
+
+ try {
+
+ collector.collect(service, this);
+
+ // get issues from collector
+
+ issues = collector.getIssues();
+
+ issuesCache.put(this, issues);
+
+ } catch (RedmineServiceException ex) {
+ throw new MavenReportException("could not obtains issues for reason " + ex.getMessage(), ex);
+ } finally {
+ collector.clearFilters();
+ }
+ }
}
///////////////////////////////////////////////////////////////////////////
@@ -118,25 +145,8 @@
}
String id = getProjectId();
- // init issues collector
-
- IssuesCollector collector = new IssuesCollector(getLog(), verbose);
-
try {
- collector.collect(service, this);
-
- } catch (RedmineServiceException ex) {
- collector.clearFilters();
- throw new MavenReportException("could not obtains issues for reason " + ex.getMessage(), ex);
- }
-
- // get issues from collector
-
- Issue[] issues = collector.getIssues();
-
- try {
-
if (issues == null || issues.length == 0) {
getLog().warn("no issue to treate, will generate an empty raport.");
@@ -159,6 +169,8 @@
report.setTrackers(service.getTrackers(id));
report.setVersions(service.getVersions(id));
+ getLog().info("url to use " + url);
+
report.doGenerateReport(getBundle(locale), getSink(), getLog());
}
@@ -168,8 +180,6 @@
throw mre;
} catch (Exception e) {
e.printStackTrace();
- } finally {
- collector.clearFilters();
}
}
Modified: trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/report/AbstractRedmineReport.java
===================================================================
--- trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/report/AbstractRedmineReport.java 2010-01-10 16:39:49 UTC (rev 76)
+++ trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/report/AbstractRedmineReport.java 2010-01-10 19:29:08 UTC (rev 77)
@@ -72,7 +72,7 @@
* and everything that comes after it. <code>%ISSUE%</code>: this is the issue number.
* </p>
*
- * @parameter expression="${redmine.issueLinkTemplate}"
+ * @parameter expression="${redmine.issueLinkTemplate}" default-value="%URL%/issues/show/%ISSUE%"
* @since 1.0.0
*/
protected String issueLinkTemplate;
@@ -85,7 +85,7 @@
* and everything that comes after it. <code>%VERSION%</code>: this is the issue number.
* </p>
*
- * @parameter expression="${redmine.versionLinkTemplate}"
+ * @parameter expression="${redmine.versionLinkTemplate}" default-value="%URL%/versions/show/%VERSION%"
* @since 1.0.0
*/
protected String versionLinkTemplate;
Modified: trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/report/IssueReportGenerator.java
===================================================================
--- trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/report/IssueReportGenerator.java 2010-01-10 16:39:49 UTC (rev 76)
+++ trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/report/IssueReportGenerator.java 2010-01-10 19:29:08 UTC (rev 77)
@@ -526,8 +526,10 @@
parseLink = issueLink.replaceFirst(ISSUE_TOKEN, issue);
if (parseLink.indexOf(URL_TOKEN) >= 0) {
- String u = this.url.substring(0, this.url.lastIndexOf("/"));
- parseLink = parseLink.replaceFirst(URL_TOKEN, u);
+// String u = this.url.substring(0, this.url.lastIndexOf("/"));
+
+// parseLink = parseLink.replaceFirst(URL_TOKEN, u);
+ parseLink = parseLink.replaceFirst(URL_TOKEN, this.url);
}
return parseLink;
@@ -539,8 +541,9 @@
parseLink = issueLink.replaceFirst(VERSION_TOKEN, issue);
if (parseLink.indexOf(URL_TOKEN) >= 0) {
- String u = this.url.substring(0, this.url.lastIndexOf("/"));
- parseLink = parseLink.replaceFirst(URL_TOKEN, u);
+// String u = this.url.substring(0, this.url.lastIndexOf("/"));
+// parseLink = parseLink.replaceFirst(URL_TOKEN, u);
+ parseLink = parseLink.replaceFirst(URL_TOKEN, this.url);
}
return parseLink;
Modified: trunk/maven-jredmine-plugin/src/main/resources/org/nuiton/jredmine/plugin/announcement/release-email-announcement.vm
===================================================================
--- trunk/maven-jredmine-plugin/src/main/resources/org/nuiton/jredmine/plugin/announcement/release-email-announcement.vm 2010-01-10 16:39:49 UTC (rev 76)
+++ trunk/maven-jredmine-plugin/src/main/resources/org/nuiton/jredmine/plugin/announcement/release-email-announcement.vm 2010-01-10 19:29:08 UTC (rev 77)
@@ -141,7 +141,7 @@
#if ($withAttachments)
For a manual installation, you can download files here:
-${urlDownload}.
+${urlDownload}
#foreach($a in $attachmentUrls.entrySet())
#set($attachment=$a.getKey())
@@ -156,7 +156,7 @@
#if ($withArtifacts)
Artifacts are deployed in nuiton maven repository
-(${mavenRepoUrl}).
+${mavenRepoUrl}
#foreach($a in $artifactUrls.entrySet())
#set($artifact=$a.getKey())
Modified: trunk/maven-jredmine-plugin/src/main/resources/org/nuiton/jredmine/plugin/announcement/release-news-announcement.vm
===================================================================
--- trunk/maven-jredmine-plugin/src/main/resources/org/nuiton/jredmine/plugin/announcement/release-news-announcement.vm 2010-01-10 16:39:49 UTC (rev 76)
+++ trunk/maven-jredmine-plugin/src/main/resources/org/nuiton/jredmine/plugin/announcement/release-news-announcement.vm 2010-01-10 19:29:08 UTC (rev 77)
@@ -137,7 +137,7 @@
#if ($withAttachments)
For a manual installation, you can download files here:
-${urlDownload}.
+${urlDownload}
#foreach($a in $attachmentUrls.entrySet())
#set($attachment=$a.getKey())
@@ -151,7 +151,7 @@
#if ($withArtifacts)
Artifacts are deployed in nuiton maven repository
-(${mavenRepoUrl}).
+${mavenRepoUrl}
#foreach($a in $artifactUrls.entrySet())
#set($artifact=$a.getKey())
Modified: trunk/maven-jredmine-plugin/src/test/resources/log4j.properties
===================================================================
--- trunk/maven-jredmine-plugin/src/test/resources/log4j.properties 2010-01-10 16:39:49 UTC (rev 76)
+++ trunk/maven-jredmine-plugin/src/test/resources/log4j.properties 2010-01-10 19:29:08 UTC (rev 77)
@@ -23,5 +23,5 @@
log4j.logger.org.nuiton.jredmine=INFO
log4j.logger.org.nuiton.io.rest=INFO
-log4j.logger.org.nuiton.plugin.AbstractMojoTest=INFO
+log4j.logger.org.nuiton.plugin=INFO
log4j.logger.org.apache.commons.httpclient.HttpClient=INFO
Modified: trunk/maven-jredmine-plugin/src/test/resources/org/nuiton/jredmine/plugin/announcement/generateEmailAnnouncementMojoTest/generateEmailAnnouncement.xml
===================================================================
--- trunk/maven-jredmine-plugin/src/test/resources/org/nuiton/jredmine/plugin/announcement/generateEmailAnnouncementMojoTest/generateEmailAnnouncement.xml 2010-01-10 16:39:49 UTC (rev 76)
+++ trunk/maven-jredmine-plugin/src/test/resources/org/nuiton/jredmine/plugin/announcement/generateEmailAnnouncementMojoTest/generateEmailAnnouncement.xml 2010-01-10 19:29:08 UTC (rev 77)
@@ -18,13 +18,15 @@
<artifactId>maven-jredmine-plugin</artifactId>
<configuration>
<finalName>One-1.0.0.jar</finalName>
- <url>http://mynuiton.org/projects/one</url>
+ <url>http://mynuiton.org</url>
+ <!--<url>http://mynuiton.org/projects/one</url>-->
<packaging>jar</packaging>
<projectId>one</projectId>
<versionId>1.0.0</versionId>
<templateOutputDirectory>target/announcement</templateOutputDirectory>
<xmlPath>target/test-classes/org/nuiton/jredmine/plugin/announcement/changes.xml</xmlPath>
<templateDirectory>org/nuiton/jredmine/plugin/announcement</templateDirectory>
+ <attachmentLinkTemplate>%URL%/attachments/download/%FILE%</attachmentLinkTemplate>
<emailAnnouncementTemplate>release-email-announcement.vm</emailAnnouncementTemplate>
<skipGenerateEmailAnnouncement>false</skipGenerateEmailAnnouncement>
<developmentTeam>One team</developmentTeam>
Modified: trunk/maven-jredmine-plugin/src/test/resources/org/nuiton/jredmine/plugin/announcement/generateEmailAnnouncementMojoTest/skipGenerateEmailAnnouncement.xml
===================================================================
--- trunk/maven-jredmine-plugin/src/test/resources/org/nuiton/jredmine/plugin/announcement/generateEmailAnnouncementMojoTest/skipGenerateEmailAnnouncement.xml 2010-01-10 16:39:49 UTC (rev 76)
+++ trunk/maven-jredmine-plugin/src/test/resources/org/nuiton/jredmine/plugin/announcement/generateEmailAnnouncementMojoTest/skipGenerateEmailAnnouncement.xml 2010-01-10 19:29:08 UTC (rev 77)
@@ -18,7 +18,7 @@
<artifactId>maven-jredmine-plugin</artifactId>
<configuration>
<finalName>One-1.0.0.jar</finalName>
- <url>http://mynuiton.org/projects/one</url>
+ <url>http://mynuiton.org</url>
<packaging>jar</packaging>
<projectId>one</projectId>
<versionId>1.0.0</versionId>
@@ -26,6 +26,7 @@
<xmlPath>target/test-classes/org/nuiton/jredmine/plugin/announcement/changes.xml</xmlPath>
<templateDirectory>org/nuiton/jredmine/plugin/announcement</templateDirectory>
<emailAnnouncementTemplate>release-email-announcement.vm</emailAnnouncementTemplate>
+ <attachmentLinkTemplate>%URL%/attachments/download/%FILE%</attachmentLinkTemplate>
<skipGenerateEmailAnnouncement>true</skipGenerateEmailAnnouncement>
<developmentTeam>One team</developmentTeam>
<urlDownload>http://mynuiton.org/projects/list_files/one</urlDownload>
Modified: trunk/maven-jredmine-plugin/src/test/resources/org/nuiton/jredmine/plugin/announcement/generateNewsAnnouncementMojoTest/generateNewsAnnouncement.xml
===================================================================
--- trunk/maven-jredmine-plugin/src/test/resources/org/nuiton/jredmine/plugin/announcement/generateNewsAnnouncementMojoTest/generateNewsAnnouncement.xml 2010-01-10 16:39:49 UTC (rev 76)
+++ trunk/maven-jredmine-plugin/src/test/resources/org/nuiton/jredmine/plugin/announcement/generateNewsAnnouncementMojoTest/generateNewsAnnouncement.xml 2010-01-10 19:29:08 UTC (rev 77)
@@ -18,13 +18,14 @@
<artifactId>maven-jredmine-plugin</artifactId>
<configuration>
<finalName>One-1.0.0.jar</finalName>
- <url>http://mynuiton.org/projects/one</url>
+ <url>http://mynuiton.org</url>
<packaging>jar</packaging>
<projectId>one</projectId>
<versionId>1.0.0</versionId>
<templateOutputDirectory>target/announcement</templateOutputDirectory>
<xmlPath>target/test-classes/org/nuiton/jredmine/plugin/announcement/changes.xml</xmlPath>
<templateDirectory>org/nuiton/jredmine/plugin/announcement</templateDirectory>
+ <attachmentLinkTemplate>%URL%/attachments/download/%FILE%</attachmentLinkTemplate>
<newsAnnouncementTemplate>release-news-announcement.vm</newsAnnouncementTemplate>
<skipGenerateNewsAnnouncement>false</skipGenerateNewsAnnouncement>
<developmentTeam>One team</developmentTeam>
Modified: trunk/maven-jredmine-plugin/src/test/resources/org/nuiton/jredmine/plugin/announcement/generateNewsAnnouncementMojoTest/skipGenerateNewsAnnouncement.xml
===================================================================
--- trunk/maven-jredmine-plugin/src/test/resources/org/nuiton/jredmine/plugin/announcement/generateNewsAnnouncementMojoTest/skipGenerateNewsAnnouncement.xml 2010-01-10 16:39:49 UTC (rev 76)
+++ trunk/maven-jredmine-plugin/src/test/resources/org/nuiton/jredmine/plugin/announcement/generateNewsAnnouncementMojoTest/skipGenerateNewsAnnouncement.xml 2010-01-10 19:29:08 UTC (rev 77)
@@ -18,13 +18,14 @@
<artifactId>maven-jredmine-plugin</artifactId>
<configuration>
<finalName>One-1.0.0.jar</finalName>
- <url>http://mynuiton.org/projects/one</url>
+ <url>http://mynuiton.org</url>
<packaging>jar</packaging>
<projectId>one</projectId>
<versionId>1.0.0</versionId>
<templateOutputDirectory>target/announcement</templateOutputDirectory>
<xmlPath>target/test-classes/org/nuiton/jredmine/plugin/announcement/changes.xml</xmlPath>
<templateDirectory>org/nuiton/jredmine/plugin/announcement</templateDirectory>
+ <attachmentLinkTemplate>%URL%/attachments/download/%FILE%</attachmentLinkTemplate>
<newsAnnouncementTemplate>release-news-announcement.vm</newsAnnouncementTemplate>
<skipGenerateNewsAnnouncement>true</skipGenerateNewsAnnouncement>
<developmentTeam>One team</developmentTeam>
1
0
r76 - in trunk: . maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/announcement maven-jredmine-plugin/src/main/resources/org/nuiton/jredmine/plugin/announcement
by tchemit@users.nuiton.org 10 Jan '10
by tchemit@users.nuiton.org 10 Jan '10
10 Jan '10
Author: tchemit
Date: 2010-01-10 17:39:49 +0100 (Sun, 10 Jan 2010)
New Revision: 76
Added:
trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/LoginMojo.java
Modified:
trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/announcement/AbstractAnnouncementMojo.java
trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/announcement/AnnouncementGenerator.java
trunk/maven-jredmine-plugin/src/main/resources/org/nuiton/jredmine/plugin/announcement/release-email-announcement.vm
trunk/maven-jredmine-plugin/src/main/resources/org/nuiton/jredmine/plugin/announcement/release-news-announcement.vm
trunk/pom.xml
Log:
add LoginMojo + improve generate announcements with list of artifacts and attachments of release
Added: trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/LoginMojo.java
===================================================================
--- trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/LoginMojo.java (rev 0)
+++ trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/LoginMojo.java 2010-01-10 16:39:49 UTC (rev 76)
@@ -0,0 +1,309 @@
+package org.nuiton.jredmine.plugin;
+
+import org.apache.maven.model.IssueManagement;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.settings.Settings;
+import org.nuiton.helper.plugin.ShareServerSecretPlugin;
+import org.nuiton.io.rest.RestClientConfiguration;
+import org.nuiton.jredmine.RedmineService;
+import org.nuiton.jredmine.RedmineServiceImplementor;
+import org.nuiton.plugin.AbstractPlugin;
+import org.sonatype.plexus.components.sec.dispatcher.SecDispatcher;
+
+import java.net.URL;
+
+/**
+ * Obtain login for the redmine server to use.
+ *
+ * @author Tony Chemit <chemit(a)codelutin.com> Copyright Code Lutin
+ * @version $Revision$
+ * <p/>
+ * Mise a jour: $Date$ par :
+ * $Author: tchemit $
+ * @goal login
+ * @since 1.2.1
+ */
+public class LoginMojo extends AbstractPlugin implements RestClientConfiguration {
+
+ /**
+ * Dependance du projet.
+ *
+ * @parameter default-value="${project}"
+ * @required
+ * @readonly
+ * @since 1.2.1
+ */
+ protected MavenProject project;
+ /**
+ * The real basedir redmine url.
+ * <p/>
+ * If no url is given, will use the issue management url.
+ *
+ * @parameter expression="${redmine.url}"
+ * @since 1.2.1
+ */
+ protected URL url;
+ /**
+ * Un flag pour activer le mode verbeux.
+ *
+ * @parameter expression="${redmine.verbose}" default-value="${maven.verbose}"
+ * @since 1.2.1
+ */
+ protected boolean verbose;
+ /**
+ * Un flag pour verifier le login (effectue une connexion au serveur).
+ *
+ * @parameter expression="${redmine.checkLogin}" default-value="false"
+ * @since 1.2.1
+ */
+ protected boolean checkLogin;
+ /**
+ * Un flag pour faire échouer le build si la configuration n'est pas ok.
+ *
+ * @parameter expression="${redmine.safe}" default-value="true"
+ * @since 1.2.1
+ */
+ protected boolean safe;
+ /**
+ * Redmine server id to obtain login and password.
+ * <p/>
+ * The server must be defined in your settings.xml file in servers section.
+ *
+ * @parameter expression="${redmine.serverId}"
+ * @required
+ * @since 1.2.1
+ */
+ protected String serverId;
+
+ /**
+ * Dependance du settings.
+ *
+ * @parameter default-value="${settings}"
+ * @required
+ * @readonly
+ * @since 1.2.1
+ */
+ protected Settings settings;
+ /**
+ * password decypher
+ *
+ * @component roleHint="maven-helper-plugin"
+ * @since 1.2.1
+ */
+ protected SecDispatcher sec;
+ /**
+ * Redmine service.
+ *
+ * @component
+ * @since 1.2.1
+ */
+ protected RedmineService service;
+
+ /**
+ * shared instance of delegate plugin to obtain login
+ *
+ * @since 1.2.1
+ */
+ protected static ShareServerSecretPlugin plugin;
+
+ private static final String REDMINE_USERNAME = "redmine.username";
+ private static final String REDMINE_PASSWORD = "redmine.password";
+
+ ///////////////////////////////////////////////////////////////////////////
+ /// Plugin
+ ///////////////////////////////////////////////////////////////////////////
+
+ @Override
+ protected void init() throws Exception {
+ if (plugin == null) {
+ plugin = new ShareServerSecretPlugin();
+ plugin.setServerId(serverId);
+ plugin.setUsernameOut(REDMINE_USERNAME);
+ plugin.setPasswordOut(REDMINE_PASSWORD);
+ plugin.setRunOnce(true);
+
+ plugin.setProject(project);
+ plugin.setLog(getLog());
+ plugin.setVerbose(isVerbose());
+ plugin.setSettings(settings);
+ plugin.setSec(sec);
+
+ plugin.init();
+ }
+
+ if (!checkLogin) {
+ // no more thing to do
+ return;
+ }
+
+ // check issue management
+
+ IssueManagement issueManagement = project.getIssueManagement();
+
+ if (issueManagement == null) {
+ throw new MojoExecutionException("No Issue Management set.");
+ } else if ((issueManagement.getUrl() == null) || (issueManagement.getUrl().trim().equals(""))) {
+ throw new MojoExecutionException("No URL set in Issue Management.");
+ } else if ((issueManagement.getSystem() != null) && !(issueManagement.getSystem().equalsIgnoreCase(AbstractRedmineMojo.REDMINE_SYSTEM))) {
+ throw new MojoExecutionException("Redmine's Plugin only supports 'redmine' Issue Management system.");
+ }
+
+ // prepare Redmine service configuration
+
+ URL url = getRestUrl();
+
+ if (url == null || url.toString().isEmpty()) {
+
+ // no redmine url specified, guess it from issueManagement
+
+ url = new URL(issueManagement.getUrl());
+
+ if (verbose) {
+ getLog().info("use the url from issue management : " + url);
+ }
+ }
+
+ // apply configuration
+
+ setRestUrl(url);
+
+ }
+
+ @Override
+ protected boolean checkSkip() {
+
+ return plugin.checkSkip();
+ }
+
+ @Override
+ protected void doAction() throws Exception {
+
+ getLog().info("Obtain redmine login for serverId '" + serverId + "'");
+ plugin.execute();
+
+ if (!checkLogin) {
+ // no more thing to do
+ return;
+ }
+
+ // init Redmine service
+
+ try {
+
+ ((RedmineServiceImplementor) service).init(this);
+ if (!((RedmineServiceImplementor) service).isInit()) {
+ throw new MojoExecutionException("could not logged to redmine server");
+ }
+
+ } catch (Exception e) {
+ if (safe) {
+ throw e;
+ }
+// if (verbose) {
+ getLog().error("could not init Redmine service [" + getRestUrl() + "] with user '" + getRestUsername() + "'", e);
+// }
+// return false;
+ }
+
+ getLog().info("Connection to redmine server successfull.");
+ }
+
+
+ @Override
+ protected void afterExecute() {
+ if (service != null) {
+ RedmineServiceImplementor i;
+ i = ((RedmineServiceImplementor) service);
+
+ if (i.isInit()) {
+ try {
+ if (verbose) {
+ getLog().info("<<< Close redmine rest client...");
+ }
+ i.destroy();
+ } catch (Exception ex) {
+ getLog().error("could not close redmine client for reason " + ex.getMessage(), ex);
+ }
+ }
+ }
+ }
+
+ @Override
+ public MavenProject getProject() {
+ return project;
+ }
+
+ @Override
+ public void setProject(MavenProject project) {
+ this.project = project;
+ }
+
+ @Override
+ public boolean isVerbose() {
+ return verbose;
+ }
+
+ @Override
+ public void setVerbose(boolean verbose) {
+ this.verbose = verbose;
+ }
+
+ ///////////////////////////////////////////////////////////////////////////
+ /// RestClientConfiguration
+ ///////////////////////////////////////////////////////////////////////////
+ @Override
+ public String getRestPassword() {
+ return project.getProperties().getProperty(REDMINE_PASSWORD);
+ }
+
+ @Override
+ public URL getRestUrl() {
+ return url;
+ }
+
+ @Override
+ public String getRestUsername() {
+ return project.getProperties().getProperty(REDMINE_USERNAME);
+ }
+
+ @Override
+ public void setRestPassword(String restPassword) {
+ }
+
+ @Override
+ public void setRestUrl(URL restUrl) {
+ this.url = restUrl;
+ }
+
+ @Override
+ public void setRestUsername(String restUsername) {
+ }
+
+ @Override
+ public String getEncoding() {
+ return null;
+ }
+
+ @Override
+ public void setEncoding(String encoding) {
+ }
+
+ @Override
+ public boolean isAnonymous() {
+ return false;
+ }
+
+ @Override
+ public void setAnonymous(boolean anonymous) {
+ }
+
+ public boolean isSafe() {
+ return safe;
+ }
+
+ public void setSafe(boolean safe) {
+ this.safe = safe;
+ }
+
+}
Property changes on: trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/LoginMojo.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL
Modified: trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/announcement/AbstractAnnouncementMojo.java
===================================================================
--- trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/announcement/AbstractAnnouncementMojo.java 2010-01-07 04:31:32 UTC (rev 75)
+++ trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/announcement/AbstractAnnouncementMojo.java 2010-01-10 16:39:49 UTC (rev 76)
@@ -29,14 +29,14 @@
import org.codehaus.plexus.util.ReaderFactory;
import org.codehaus.plexus.util.StringUtils;
import org.codehaus.plexus.velocity.VelocityComponent;
+import org.nuiton.jredmine.model.Attachment;
import org.nuiton.jredmine.plugin.AbstractRedmineMojo;
import org.nuiton.plugin.PluginHelper;
-import java.io.File;
-import java.util.Collections;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.io.*;
+import java.util.*;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
/**
* @author chemit
@@ -86,20 +86,20 @@
* @since 1.0.0
*/
protected Map<String, Object> announceParameters;
-// /**
-// * Template strings per system that is used to discover the URL to use to display an attchment. Each key in this
-// * map denotes the (case-sensitive) identifier of the issue tracking system and its value gives the URL template.
-// * <p>
-// * There are 2 template tokens you can use. <code>%URL%</code>: this is computed by getting the
-// * <code><issueManagement>/<url></code> value from the POM, and removing the last '/'
- // * and everything that comes after it. <code>%FILE%</code>: this is the issue number.
-// * </p>
-// *
-// * @parameter expression="${redmine.attachmentLinkTemplate}"
-// * @since 1.0.0
-// */
-// protected String attachmentLinkTemplate;
/**
+ * Template strings per system that is used to discover the URL to use to display an attchment. Each key in this
+ * map denotes the (case-sensitive) identifier of the issue tracking system and its value gives the URL template.
+ * <p>
+ * There are 2 template tokens you can use. <code>%URL%</code>: this is computed by getting the
+ * <code><issueManagement>/<url></code> value from the POM, and removing the last '/'
+ * and everything that comes after it. <code>%FILE%</code>: this is the issue number.
+ * </p>
+ *
+ * @parameter expression="${redmine.attachmentLinkTemplate}"
+ * @since 1.0.0
+ */
+ protected String attachmentLinkTemplate;
+ /**
* @parameter expression="${project.groupId}"
* @readonly
* @since 1.0.0
@@ -174,12 +174,31 @@
*/
protected boolean runOnce;
/**
+ * @parameter expression="${redmine.artifactsFile}"
+ * @since 1.2.1
+ */
+ protected File artifactsFile;
+ /**
+ * @parameter expression="${redmine.deploymentUrl}"
+ * @readonly
+ */
+ protected String deploymentUrl;
+ /**
* Velocity Component.
*
* @component roleHint="maven-helper-plugin"
*/
protected VelocityComponent velocity;
+ protected Attachment[] attachments;
+
+ protected Map<File, String> artifactUrls;
+
+ protected Map<Attachment, String> attachmentUrls;
+ protected AnnouncementGenerator generator;
+
+ private static final Pattern ARTIFACT_PATTERN = Pattern.compile("(.+)?--(.+)?");
+
protected abstract String getAnnouncementTemplate();
protected AbstractAnnouncementMojo() {
@@ -191,9 +210,6 @@
return runOnce;
}
- /**
- * @return {@code true} if the goal was already invoked
- */
@Override
protected boolean checkRunOnceDone() {
@@ -242,8 +258,67 @@
introduction = project.getUrl();
}
+ if (artifactsFile != null) {
+ if (!artifactsFile.exists()) {
+ throw new MojoExecutionException("The artifactsFile [" + artifactsFile + "] does not exists");
+
+ }
+
+ List<File> files = getFiles(artifactsFile);
+
+ String url = deploymentUrl.trim();
+
+ if (!url.endsWith("/")) {
+ deploymentUrl = (url += "/");
+ }
+
+ getLog().info("Deploy url = " + url);
+
+ artifactUrls = new HashMap<File, String>();
+
+ for (File f : files) {
+
+ String artifactInfo = f.getParentFile().getName();
+ Matcher matcher = ARTIFACT_PATTERN.matcher(artifactInfo);
+
+ if (!matcher.matches()) {
+ getLog().error("no matching for file " + artifactInfo + " (" + f + ")");
+ }
+ String artifactId = matcher.group(2);
+ String groupId = matcher.group(1).replaceAll("\\.", "/") + "/" + artifactId;
+ String filename = f.getName();
+ if ("pom.xml".equals(filename)) {
+ filename = artifactId + "-" + versionId + ".pom";
+ f = new File(filename);
+ }
+ String spec = url + groupId + "/" + versionId + "/" + filename;
+ getLog().info("artifact file " + f.getName() + " --> " + spec);
+
+ artifactUrls.put(f, spec);
+
+ }
+
+ }
+
super.init();
+ generator = new AnnouncementGenerator(getLog(), projectUrl, attachmentLinkTemplate);
+
+ Attachment[] attachments = service.getAttachments(projectId, versionId);
+
+ if (attachments.length == 0) {
+ getLog().info("No attachments files");
+ }
+
+ attachmentUrls = generator.getAttachmentsUrls(attachments);
+
+ for (Map.Entry<Attachment, String> e : attachmentUrls.entrySet()) {
+ Attachment key = e.getKey();
+ String value = e.getValue();
+ getLog().info("attachment file " + key.getFilename() + " --> " + value);
+ }
+
+
// return true;
}
@@ -282,8 +357,6 @@
engine.setApplicationAttribute("baseDirectory", basedir);
- AnnouncementGenerator generator = new AnnouncementGenerator(getLog(), projectUrl, "");
-// AnnouncementGenerator generator = new AnnouncementGenerator(getLog(), url, attachmentLinkTemplate);
Context context = createVelocityContext(generator, releases);
@@ -303,39 +376,37 @@
context.put("groupId", groupId);
context.put("artifactId", artifactId);
context.put("version", versionId);
-// context.put("version", releaseVersion.getName());
context.put("packaging", packaging);
context.put("url", projectUrl);
Release release = generator.getLatestRelease(releases, versionId);
-// Release release = generator.getLatestRelease(releases, releaseVersion.getName());
context.put("release", release);
context.put("introduction", introduction);
context.put("developmentTeam", developmentTeam);
context.put("finalName", finalName);
context.put("urlDownload", urlDownload);
+ context.put("mavenRepoUrl", this.deploymentUrl);
context.put("project", project);
-//
-// if (downloads != null && downloads.length > 0) {
-// Map<Attachment, String> attachmentsUrls = generator.getAttachmentsUrls(downloads);
-// Object urls;
-// if (attachmentsUrls == null || attachmentsUrls.isEmpty()) {
-// urls = Collections.EMPTY_MAP;
-// } else {
-// urls = attachmentsUrls;
-// }
-//
-// if (verbose) {
-// getLog().info("nb attachments : " + ((Map<?, ?>) urls).size());
-// }
-//
-// if (getLog().isDebugEnabled()) {
-// getLog().debug("attachmentsUrls :\n" + urls);
-// }
-// context.put("attachmentsUrls", urls);
-// }
+ // add artifacts in context
+ if (artifactUrls == null || artifactUrls.isEmpty()) {
+ context.put("withArtifacts", false);
+
+ } else {
+ context.put("withArtifacts", true);
+ context.put("artifactUrls", artifactUrls);
+ }
+ // add attachments in context
+
+ if (attachmentUrls == null || attachmentUrls.isEmpty()) {
+ context.put("withAttachments", false);
+
+ } else {
+ context.put("withAttachments", true);
+ context.put("attachmentUrls", attachmentUrls);
+ }
+
if (announceParameters == null) {
// empty Map to prevent NPE in velocity execution
context.put("announceParameters", Collections.EMPTY_MAP);
@@ -344,4 +415,24 @@
}
return context;
}
+
+ /**
+ * Read a file containing on each line the path of a file.
+ *
+ * @param input the file containing the list of files
+ * @return the list of files read from the given file
+ * @throws java.io.IOException if any pb while reading file
+ */
+ public List<File> getFiles(File input) throws IOException {
+ List<File> result = new ArrayList<File>();
+ BufferedReader stream = new BufferedReader(new InputStreamReader(new FileInputStream(input)));
+ while (stream.ready()) {
+ String line = stream.readLine().trim();
+ if (!line.isEmpty()) {
+ File f = new File(line);
+ result.add(f);
+ }
+ }
+ return result;
+ }
}
Modified: trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/announcement/AnnouncementGenerator.java
===================================================================
--- trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/announcement/AnnouncementGenerator.java 2010-01-07 04:31:32 UTC (rev 75)
+++ trunk/maven-jredmine-plugin/src/main/java/org/nuiton/jredmine/plugin/announcement/AnnouncementGenerator.java 2010-01-10 16:39:49 UTC (rev 76)
@@ -30,11 +30,13 @@
import org.apache.velocity.exception.ResourceNotFoundException;
import org.codehaus.plexus.util.StringUtils;
import org.nuiton.jredmine.model.Attachment;
+import org.nuiton.plugin.PluginHelper;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
+import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -83,11 +85,9 @@
if (hasAttachmentLinks) {
urls = new HashMap<Attachment, String>();
- if (hasAttachmentLinks) {
- for (Attachment a : attachments) {
- String u = parseAttachmentLink(a.getId() + "");
- urls.put(a, u);
- }
+ for (Attachment a : attachments) {
+ String u = parseAttachmentLink(a.getId() + "");
+ urls.put(a, u);
}
} else {
getLog().warn("can not render attachments urls");
@@ -101,9 +101,7 @@
try {
- if (!out.getParentFile().exists()) {
- out.getParentFile().mkdirs();
- }
+ PluginHelper.createDirectoryIfNecessary(out.getParentFile());
Writer writer = new OutputStreamWriter(new FileOutputStream(out), templateEncoding);
@@ -128,7 +126,7 @@
* @return <code>true</code> if issue links can be generated, <code>false</code> otherwise.
*/
public boolean canGenerateAttachmentLinks() {
- return !StringUtils.isBlank(attachmentLinkTemplate) && (!StringUtils.isBlank(url) || attachmentLinkTemplate.indexOf(URL_TOKEN) < 0);
+ return !StringUtils.isBlank(attachmentLinkTemplate) && attachmentLinkTemplate.indexOf(ATTACHMENT_TOKEN) > 0 && (!StringUtils.isBlank(url) || attachmentLinkTemplate.indexOf(URL_TOKEN) < 0);
}
protected String parseAttachmentLink(String id) {
@@ -151,7 +149,7 @@
* @param releases list of releases
* @param releaseVersion the release version
* @return A <code>Release</code> that matches the next release of the current project
- * @throws MojoExecutionException
+ * @throws MojoExecutionException if any pb
*/
public Release getLatestRelease(List<?> releases, String releaseVersion)
throws MojoExecutionException {
Modified: trunk/maven-jredmine-plugin/src/main/resources/org/nuiton/jredmine/plugin/announcement/release-email-announcement.vm
===================================================================
--- trunk/maven-jredmine-plugin/src/main/resources/org/nuiton/jredmine/plugin/announcement/release-email-announcement.vm 2010-01-07 04:31:32 UTC (rev 75)
+++ trunk/maven-jredmine-plugin/src/main/resources/org/nuiton/jredmine/plugin/announcement/release-email-announcement.vm 2010-01-10 16:39:49 UTC (rev 76)
@@ -18,6 +18,9 @@
${introduction}
+Changes
+-------
+
#if ($release.getActions().size() == 0)
No changes defined in this version.
#else
@@ -133,22 +136,36 @@
#end
## TODO make a short description from the packaging type (pom, plugin, jar, war,...)
-#if ($urlDownload)
+Downloads
+---------
+
+#if ($withAttachments)
For a manual installation, you can download files here:
-${urlDownload}
+${urlDownload}.
+
+#foreach($a in $attachmentUrls.entrySet())
+#set($attachment=$a.getKey())
+ * ${attachment.getFilename()} - ${a.getValue()}
#end
+#else
+No release file deployed.
+#end
-#if ($attachmentsUrls)
+Maven artifacts
+---------------
-Release files:
+#if ($withArtifacts)
+Artifacts are deployed in nuiton maven repository
+(${mavenRepoUrl}).
-#foreach($a in $attachmentsUrls.entrySet())
-#set($attachment=$a.getKey())
-o ${attachment.getFilename()} - ${a.getValue()}
+#foreach($a in $artifactUrls.entrySet())
+#set($artifact=$a.getKey())
+ * ${a.getValue()}
#end
+#else
+No artifact deployed.
#end
-
Have fun!
-${developmentTeam}
Modified: trunk/maven-jredmine-plugin/src/main/resources/org/nuiton/jredmine/plugin/announcement/release-news-announcement.vm
===================================================================
--- trunk/maven-jredmine-plugin/src/main/resources/org/nuiton/jredmine/plugin/announcement/release-news-announcement.vm 2010-01-07 04:31:32 UTC (rev 75)
+++ trunk/maven-jredmine-plugin/src/main/resources/org/nuiton/jredmine/plugin/announcement/release-news-announcement.vm 2010-01-10 16:39:49 UTC (rev 76)
@@ -135,19 +135,30 @@
h3. Downloads
-#if ($urlDownload)
+#if ($withAttachments)
For a manual installation, you can download files here:
-${urlDownload}
+${urlDownload}.
+
+#foreach($a in $attachmentUrls.entrySet())
+#set($attachment=$a.getKey())
+ * ${attachment.getFilename()} - ${a.getValue()}
#end
+#else
+ No release file deployed.
+#end
-#if ($attachmentsUrls)
+h3. Maven artifacts
-Release files:
+#if ($withArtifacts)
+Artifacts are deployed in nuiton maven repository
+(${mavenRepoUrl}).
-#foreach($a in $attachmentsUrls.entrySet())
-#set($attachment=$a.getKey())
-* ${attachment.getFilename()} - ${a.getValue()}
+#foreach($a in $artifactUrls.entrySet())
+#set($artifact=$a.getKey())
+ * ${a.getValue()}
#end
+#else
+ No artifact deployed.
#end
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2010-01-07 04:31:32 UTC (rev 75)
+++ trunk/pom.xml 2010-01-10 16:39:49 UTC (rev 76)
@@ -108,10 +108,10 @@
<artifactId>plexus-cipher</artifactId>
</exclusion>
- <exclusion>
+ <!--exclusion>
<groupId>org.sonatype.plexus</groupId>
<artifactId>plexus-sec-dispatcher</artifactId>
- </exclusion>
+ </exclusion-->
</exclusions>
@@ -402,7 +402,7 @@
<projectId>jredmine</projectId>
- <helper.version>1.2.0</helper.version>
+ <helper.version>1.2.1-SNAPSHOT</helper.version>
<!--<jredmine.version>1.0.2</jredmine.version>-->
<!-- test config -->
1
0
Author: tchemit
Date: 2010-01-07 05:31:32 +0100 (Thu, 07 Jan 2010)
New Revision: 75
Modified:
trunk/jredmine-client/pom.xml
Log:
add redmine rails plugin as release attachement to publish in redmine server
Modified: trunk/jredmine-client/pom.xml
===================================================================
--- trunk/jredmine-client/pom.xml 2010-01-07 04:30:54 UTC (rev 74)
+++ trunk/jredmine-client/pom.xml 2010-01-07 04:31:32 UTC (rev 75)
@@ -52,7 +52,10 @@
<properties>
<!-- extra files to include in release -->
- <redmine.releaseFiles>${redmine.libReleaseFiles}</redmine.releaseFiles>
+ <redmine.releaseFiles>
+ target/${project.artifactId}-${project.version}-jredmine_rails.zip,
+ ${redmine.libReleaseFiles}
+ </redmine.releaseFiles>
</properties>
<build>
1
0
Author: tchemit
Date: 2010-01-07 05:30:54 +0100 (Thu, 07 Jan 2010)
New Revision: 74
Modified:
trunk/pom.xml
Log:
use mavenpom javadoc configuration
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2010-01-07 03:26:24 UTC (rev 73)
+++ trunk/pom.xml 2010-01-07 04:30:54 UTC (rev 74)
@@ -439,264 +439,6 @@
</plugin>
<plugin>
- <artifactId>maven-javadoc-plugin</artifactId>
- <version>${javadoc.version}</version>
- <configuration>
- <docencoding>${project.reporting.outputEncoding}
- </docencoding>
- <encoding>${project.reporting.outputEncoding}</encoding>
- <charset>${project.reporting.outputEncoding}</charset>
- <quiet>true</quiet>
- <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.5.1</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.5.1</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.5.1</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.5.1</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.5.1</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.5.1</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.5.1</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.5.1</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.5.1</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.5.1</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.5.1</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.5.1</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.5.1</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.5.1</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.5.1</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.5.1</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.5.1</version>
- </tagletArtifact>
- </taglet>
-
- <taglet>
- <tagletClass>
- org.codehaus.plexus.javadoc.PlexusComponentTaglet
- </tagletClass>
- <tagletArtifact>
- <groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-component-javadoc
- </artifactId>
- <version>1.3.0</version>
- </tagletArtifact>
- </taglet>
- <taglet>
- <tagletClass>
- org.codehaus.plexus.javadoc.PlexusConfigurationTaglet
- </tagletClass>
- <tagletArtifact>
- <groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-component-javadoc
- </artifactId>
- <version>1.3.0</version>
- </tagletArtifact>
- </taglet>
- <taglet>
- <tagletClass>
- org.codehaus.plexus.javadoc.PlexusRequirementTaglet
- </tagletClass>
- <tagletArtifact>
- <groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-component-javadoc
- </artifactId>
- <version>1.3.0</version>
- </tagletArtifact>
- </taglet>
- </taglets>
- </configuration>
- </plugin>
-
- <plugin>
- <artifactId>maven-invoker-plugin</artifactId>
- <version>1.5</version>
- </plugin>
-
- <plugin>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-component-metadata</artifactId>
<version>1.2.0</version>
@@ -707,273 +449,6 @@
</build>
- <reporting>
- <plugins>
-
- <plugin>
- <artifactId>maven-javadoc-plugin</artifactId>
- <version>${javadoc.version}</version>
- <configuration>
- <quiet>true</quiet>
- <docencoding>${project.build.sourceEncoding}</docencoding>
- <encoding>${project.build.sourceEncoding}</encoding>
- <charset>${project.reporting.outputEncoding}</charset>
- <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.5.1</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.5.1</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.5.1</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.5.1</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.5.1</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.5.1</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.5.1</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.5.1</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.5.1</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.5.1</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.5.1</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.5.1</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.5.1</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.5.1</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.5.1</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.5.1</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.5.1</version>
- </tagletArtifact>
- </taglet>
-
- <taglet>
- <tagletClass>
- org.codehaus.plexus.javadoc.PlexusComponentTaglet
- </tagletClass>
- <tagletArtifact>
- <groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-component-javadoc
- </artifactId>
- <version>1.3.0</version>
- </tagletArtifact>
- </taglet>
- <taglet>
- <tagletClass>
- org.codehaus.plexus.javadoc.PlexusConfigurationTaglet
- </tagletClass>
- <tagletArtifact>
- <groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-component-javadoc
- </artifactId>
- <version>1.3.0</version>
- </tagletArtifact>
- </taglet>
- <taglet>
- <tagletClass>
- org.codehaus.plexus.javadoc.PlexusRequirementTaglet
- </tagletClass>
- <tagletArtifact>
- <groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-component-javadoc
- </artifactId>
- <version>1.3.0</version>
- </tagletArtifact>
- </taglet>
- </taglets>
- </configuration>
- <reportSets>
- <reportSet>
- <reports>
- <report>javadoc</report>
- <report>test-javadoc</report>
- </reports>
- </reportSet>
- </reportSets>
- </plugin>
-
- </plugins>
- </reporting>
-
<profiles>
<!-- TC-20100106 Due to cyclic dependency problem between modules,
we do not propagate maven-jredmine-plugin to child modules -->
1
0