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
r24 - in maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine: . plugin
by tchemit@users.nuiton.org 08 Sep '09
by tchemit@users.nuiton.org 08 Sep '09
08 Sep '09
Author: tchemit
Date: 2009-09-08 18:04:09 +0200 (Tue, 08 Sep 2009)
New Revision: 24
Added:
maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/RedmineModelBuilderTest.java
Removed:
maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/model/
Modified:
maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/plugin/AbstractRedmineMojoTest.java
Log:
use improved xp3 parser from maven-helper-plugin
Copied: maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/RedmineModelBuilderTest.java (from rev 22, maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/model/ModelBuilderTest.java)
===================================================================
--- maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/RedmineModelBuilderTest.java (rev 0)
+++ maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/RedmineModelBuilderTest.java 2009-09-08 16:04:09 UTC (rev 24)
@@ -0,0 +1,475 @@
+package org.nuiton.redmine;
+
+import org.nuiton.redmine.model.*;
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import org.apache.maven.plugin.logging.SystemStreamLog;
+import org.codehaus.plexus.PlexusTestCase;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.nuiton.io.xpp3.AbstractXpp3Reader;
+import org.nuiton.io.xpp3.Xpp3Helper;
+import org.nuiton.io.xpp3.PropertyMapper;
+import org.nuiton.redmine.model.io.xpp3.RedmineDataConverter;
+
+/**
+ *
+ * @author chemit
+ * @since 1.0.0
+ */
+public class RedmineModelBuilderTest {
+
+ protected static File basedir;
+ protected static SystemStreamLog log;
+ protected static File testDir;
+ protected static RedmineModelBuilder builder;
+// static Attachment attachment;
+// static Issue issue;
+// static Project project;
+// static Tracker tracker;
+// static User user;
+// static Version version;
+ static List<Attachment> attachments;
+ static List<Issue> issues;
+ static List<Project> projects;
+ static List<Tracker> trackers;
+ static List<User> users;
+ static List<Version> versions;
+
+ protected static File getBaseDir() {
+ if (basedir == null) {
+
+ String path = PlexusTestCase.getBasedir();
+ basedir = new File(path);
+ }
+ return basedir;
+ }
+
+ protected static File getTestDir() {
+ return testDir;
+ }
+
+ @BeforeClass
+ public static void setUpClass() throws Exception {
+
+ log = new SystemStreamLog();
+
+ String rep = RedmineModelBuilderTest.class.getName();
+ rep = rep.replaceAll("\\.", File.separator);
+
+ File f = new File(getBaseDir(), "target" + File.separator + "test-classes");
+// File f = new File(getBaseDir(), "src" + File.separator + "test" + File.separator + "resources");
+ testDir = new File(f, rep);
+ log.info("test dir : " + testDir.getAbsolutePath().substring(getBaseDir().getAbsolutePath().length() + 1));
+ builder = new RedmineModelBuilder(log);
+
+ // setup memory model
+ loadMemoryModel();
+ }
+
+ @AfterClass
+ public static void tearDownClass() throws Exception {
+ }
+ File file;
+
+ @Before
+ public void setUp() {
+ }
+
+ @After
+ public void tearDown() {
+ file = null;
+ }
+
+ /**
+ * Test the method {@code read} of class ModelBuilder.
+ *
+ * @throws Exception
+ */
+ @Test
+ public void testRead() throws Exception {
+
+ File rootDir = new File(testDir, "single");
+
+ file = new File(rootDir, "attachment.xml");
+ assertMyEquals(attachments.get(0), builder.readAttachment(file));
+
+ file = new File(rootDir, "issue.xml");
+ assertMyEquals(issues.get(0), builder.readIssue(file));
+
+ file = new File(rootDir, "project.xml");
+ assertMyEquals(projects.get(0), builder.readProject(file));
+
+ file = new File(rootDir, "tracker.xml");
+ assertMyEquals(trackers.get(0), builder.readTracker(file));
+
+ file = new File(rootDir, "user.xml");
+ assertMyEquals(users.get(0), builder.readUser(file));
+
+ file = new File(rootDir, "version.xml");
+ assertMyEquals(versions.get(0), builder.readVersion(file));
+
+ }
+
+ /**
+ * Test the method {@code readArray} of class ModelBuilder.
+ *
+ * @throws Exception
+ */
+ @Test
+ @SuppressWarnings("unchecked")
+ public void testReadArray() throws Exception {
+
+
+ doReadArrayTest("array-empty",
+ Collections.EMPTY_LIST,
+ Collections.EMPTY_LIST,
+ Collections.EMPTY_LIST,
+ Collections.EMPTY_LIST,
+ Collections.EMPTY_LIST,
+ Collections.EMPTY_LIST);
+
+
+ doReadArrayTest("array-singleton",
+ Arrays.asList(attachments.get(0)),
+ Arrays.asList(issues.get(0)),
+ Arrays.asList(projects.get(0)),
+ Arrays.asList(trackers.get(0)),
+ Arrays.asList(users.get(0)),
+ Arrays.asList(versions.get(0)));
+
+ doReadArrayTest("array-multi",
+ attachments,
+ issues,
+ projects,
+ trackers,
+ users,
+ versions);
+
+ }
+
+ protected <T> void assertMyEquals(List<T> expecteds, T[] actuals) throws Exception {
+
+ Assert.assertNotNull(actuals);
+ Assert.assertEquals(expecteds.size(), actuals.length);
+ for (int i = 0, j = expecteds.size(); i < j; i++) {
+ T actual = actuals[i];
+ T expected = expecteds.get(i);
+ assertMyEquals(expected, actual);
+ }
+
+ }
+
+ protected void assertMyEquals(Object expected, Object actual) throws Exception {
+
+ Assert.assertNotNull(expected);
+ Assert.assertNotNull(actual);
+ AbstractXpp3Reader<?> reader = (AbstractXpp3Reader<?>) Xpp3Helper.getReader(expected.getClass());
+ Map<String, PropertyMapper> mappers = reader.getMappers(expected.getClass());
+ for (PropertyMapper m : mappers.values()) {
+
+ Object expectedValue = m.getDescriptor().getReadMethod().invoke(expected);
+ Object actualValue = m.getDescriptor().getReadMethod().invoke(actual);
+
+ Assert.assertEquals("error in attribute " + m.getPropertyName() + " for " + expected, expectedValue, actualValue);
+ }
+ }
+
+ protected void doReadArrayTest(String name,
+ List<Attachment> attachments,
+ List<Issue> issues,
+ List<Project> projects,
+ List<Tracker> trackers,
+ List<User> users,
+ List<Version> versions) throws Exception {
+
+ File rootDir = new File(testDir, name);
+
+ file = new File(rootDir, "attachments.xml");
+ assertMyEquals(attachments, builder.readAttachments(file));
+
+ file = new File(rootDir, "issues.xml");
+ assertMyEquals(issues, builder.readIssues(file));
+
+ file = new File(rootDir, "projects.xml");
+ assertMyEquals(projects, builder.readProjects(file));
+
+ file = new File(rootDir, "trackers.xml");
+ assertMyEquals(trackers, builder.readTrackers(file));
+
+ file = new File(rootDir, "users.xml");
+ assertMyEquals(users, builder.readUsers(file));
+
+ file = new File(rootDir, "versions.xml");
+ assertMyEquals(versions, builder.readVersions(file));
+ }
+
+ protected static void loadMemoryModel() throws Exception {
+
+ attachments = new ArrayList<Attachment>();
+ Attachment tempA = null;
+ tempA = new Attachment();
+ tempA.setAuthorId((Integer) RedmineDataConverter.Integer.convert("4"));
+ tempA.setContainerId((Integer) RedmineDataConverter.Integer.convert("1"));
+ tempA.setId((Integer) RedmineDataConverter.Integer.convert("1"));
+ tempA.setFilesize((Integer) RedmineDataConverter.Integer.convert("411"));
+ tempA.setDownloads((Integer) RedmineDataConverter.Integer.convert("0"));
+ tempA.setCreatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-05T12:56:41+02:00"));
+ tempA.setContainerType((String) RedmineDataConverter.Text.convert("Version"));
+ tempA.setContentType((String) RedmineDataConverter.Text.convert("application/json"));
+ tempA.setDigest((String) RedmineDataConverter.Text.convert("6ea84342c7475c05fb077b4aca832f9a"));
+ tempA.setDiskFilename((String) RedmineDataConverter.Text.convert("090905125641_get_issue.json"));
+ tempA.setFilename((String) RedmineDataConverter.Text.convert("get_issue.json"));
+ attachments.add(tempA);
+ tempA = new Attachment();
+ tempA.setAuthorId((Integer) RedmineDataConverter.Integer.convert("4"));
+ tempA.setContainerId((Integer) RedmineDataConverter.Integer.convert("1"));
+ tempA.setId((Integer) RedmineDataConverter.Integer.convert("1"));
+ tempA.setFilesize((Integer) RedmineDataConverter.Integer.convert("411"));
+ tempA.setDownloads((Integer) RedmineDataConverter.Integer.convert("0"));
+ tempA.setCreatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-05T12:56:41+02:00"));
+ tempA.setContainerType((String) RedmineDataConverter.Text.convert("Version"));
+ tempA.setContentType((String) RedmineDataConverter.Text.convert("application/json"));
+ tempA.setDigest((String) RedmineDataConverter.Text.convert("6ea84342c7475c05fb077b4aca832f9a"));
+ tempA.setDiskFilename((String) RedmineDataConverter.Text.convert("090905125641_get_issue.json2"));
+ tempA.setFilename((String) RedmineDataConverter.Text.convert("get_issue.json2"));
+ attachments.add(tempA);
+
+ issues = new ArrayList<Issue>();
+ Issue tempI = null;
+ tempI = new Issue();
+ tempI.setAuthorId((Integer) RedmineDataConverter.Integer.convert("5"));
+ tempI.setCategoryId((Integer) RedmineDataConverter.Integer.convert("2"));
+ tempI.setDoneRatio((Integer) RedmineDataConverter.Integer.convert("0"));
+ tempI.setLockVersion((Integer) RedmineDataConverter.Integer.convert("7"));
+ tempI.setPriorityId((Integer) RedmineDataConverter.Integer.convert("4"));
+ tempI.setProjectId((Integer) RedmineDataConverter.Integer.convert("1"));
+ tempI.setStatusId((Integer) RedmineDataConverter.Integer.convert("3"));
+ tempI.setTrackerId((Integer) RedmineDataConverter.Integer.convert("1"));
+ tempI.setFixedVersionId((Integer) RedmineDataConverter.Integer.convert("1"));
+ tempI.setId((Integer) RedmineDataConverter.Integer.convert("3"));
+ tempI.setCreatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-04T20:11:52+02:00"));
+ tempI.setUpdatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-06T00:37:40+02:00"));
+ tempI.setStartDate((Date) RedmineDataConverter.Date.convert("2009-09-04"));
+ tempI.setDescription((String) RedmineDataConverter.Text.convert("avec une description !"));
+ tempI.setSubject((String) RedmineDataConverter.Text.convert("yes!"));
+ issues.add(tempI);
+ tempI = new Issue();
+ tempI.setAuthorId((Integer) RedmineDataConverter.Integer.convert("5"));
+ tempI.setCategoryId((Integer) RedmineDataConverter.Integer.convert("2"));
+ tempI.setDoneRatio((Integer) RedmineDataConverter.Integer.convert("0"));
+ tempI.setLockVersion((Integer) RedmineDataConverter.Integer.convert("7"));
+ tempI.setPriorityId((Integer) RedmineDataConverter.Integer.convert("4"));
+ tempI.setProjectId((Integer) RedmineDataConverter.Integer.convert("1"));
+ tempI.setStatusId((Integer) RedmineDataConverter.Integer.convert("3"));
+ tempI.setTrackerId((Integer) RedmineDataConverter.Integer.convert("1"));
+ tempI.setFixedVersionId((Integer) RedmineDataConverter.Integer.convert("1"));
+ tempI.setId((Integer) RedmineDataConverter.Integer.convert("4"));
+ tempI.setCreatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-04T20:11:52+02:00"));
+ tempI.setUpdatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-06T00:37:40+02:00"));
+ tempI.setStartDate((Date) RedmineDataConverter.Date.convert("2009-09-04"));
+ tempI.setDescription((String) RedmineDataConverter.Text.convert("avec une description !2"));
+ tempI.setSubject((String) RedmineDataConverter.Text.convert("yes!2"));
+ issues.add(tempI);
+
+ projects = new ArrayList<Project>();
+ Project tempP = null;
+ tempP = new Project();
+ tempP.setCreatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-04T18:11:54+02:00"));
+ tempP.setUpdatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-04T18:11:54+02:00"));
+ tempP.setIdentifier((String) RedmineDataConverter.Text.convert("one"));
+ tempP.setName((String) RedmineDataConverter.Text.convert("one"));
+ tempP.setId((Integer) RedmineDataConverter.Integer.convert("1"));
+ tempP.setProjectsCount((Integer) RedmineDataConverter.Integer.convert("0"));
+ tempP.setStatus((Integer) RedmineDataConverter.Integer.convert("1"));
+ tempP.setIsPublic((Boolean) RedmineDataConverter.Boolean.convert("true"));
+ projects.add(tempP);
+ tempP = new Project();
+ tempP.setCreatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-04T18:11:54+02:00"));
+ tempP.setUpdatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-04T18:11:54+02:00"));
+ tempP.setIdentifier((String) RedmineDataConverter.Text.convert("two"));
+ tempP.setName((String) RedmineDataConverter.Text.convert("two"));
+ tempP.setId((Integer) RedmineDataConverter.Integer.convert("2"));
+ tempP.setProjectsCount((Integer) RedmineDataConverter.Integer.convert("0"));
+ tempP.setStatus((Integer) RedmineDataConverter.Integer.convert("1"));
+ tempP.setIsPublic((Boolean) RedmineDataConverter.Boolean.convert("true"));
+ projects.add(tempP);
+
+ trackers = new ArrayList<Tracker>();
+ Tracker tempT = null;
+ tempT = new Tracker();
+ tempT.setId((Integer) RedmineDataConverter.Integer.convert("1"));
+ tempT.setProjectId((Integer) RedmineDataConverter.Integer.convert("1"));
+ tempT.setTrackerId((Integer) RedmineDataConverter.Integer.convert("1"));
+ tempT.setPosition((Integer) RedmineDataConverter.Integer.convert("1"));
+ tempT.setIsInChlog((Boolean) RedmineDataConverter.Boolean.convert("true"));
+ tempT.setIsInRoadmap((Boolean) RedmineDataConverter.Boolean.convert("false"));
+ tempT.setName((String) RedmineDataConverter.Text.convert("Anomalie"));
+ trackers.add(tempT);
+ tempT = new Tracker();
+ tempT.setId((Integer) RedmineDataConverter.Integer.convert("2"));
+ tempT.setIsInChlog((Boolean) RedmineDataConverter.Boolean.convert("true"));
+ tempT.setIsInRoadmap((Boolean) RedmineDataConverter.Boolean.convert("true"));
+ tempT.setName((String) RedmineDataConverter.Text.convert("Evolution"));
+ tempT.setPosition((Integer) RedmineDataConverter.Integer.convert("2"));
+ tempT.setProjectId((Integer) RedmineDataConverter.Integer.convert("1"));
+ tempT.setTrackerId((Integer) RedmineDataConverter.Integer.convert("2"));
+ trackers.add(tempT);
+ tempT = new Tracker();
+ tempT.setId((Integer) RedmineDataConverter.Integer.convert("3"));
+ tempT.setIsInChlog((Boolean) RedmineDataConverter.Boolean.convert("false"));
+ tempT.setIsInRoadmap((Boolean) RedmineDataConverter.Boolean.convert("false"));
+ tempT.setName((String) RedmineDataConverter.Text.convert("Assistance"));
+ tempT.setPosition((Integer) RedmineDataConverter.Integer.convert("3"));
+ tempT.setProjectId((Integer) RedmineDataConverter.Integer.convert("1"));
+ tempT.setTrackerId((Integer) RedmineDataConverter.Integer.convert("3"));
+ trackers.add(tempT);
+
+ users = new ArrayList<User>();
+ User tempU = null;
+ tempU = new User();
+ tempU.setCreatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-04T17:24:46+02:00"));
+ tempU.setUpdatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-06T01:23:59+02:00"));
+ tempU.setLastLoginOn((Date) RedmineDataConverter.Datetime.convert("2009-09-06T01:23:59+02:00"));
+ tempU.setId((Integer) RedmineDataConverter.Integer.convert("1"));
+ tempU.setMemberId((Integer) RedmineDataConverter.Integer.convert("5"));
+ tempU.setRoleId((Integer) RedmineDataConverter.Integer.convert("3"));
+ tempU.setStatus((Integer) RedmineDataConverter.Integer.convert("1"));
+ tempU.setAdmin((Boolean) RedmineDataConverter.Boolean.convert("true"));
+ tempU.setMailNotification((Boolean) RedmineDataConverter.Boolean.convert("true"));
+ tempU.setFirstname((String) RedmineDataConverter.Text.convert("Redmine"));
+ tempU.setHashedPassword((String) RedmineDataConverter.Text.convert("70c881d4a26984ddce795f6f71817c9cf4480e79"));
+ tempU.setLanguage((String) RedmineDataConverter.Text.convert("fr"));
+ tempU.setLastname((String) RedmineDataConverter.Text.convert("Admin"));
+ tempU.setLogin((String) RedmineDataConverter.Text.convert("admin"));
+ tempU.setMail((String) RedmineDataConverter.Text.convert("dummy(a)codelutin.com"));
+ users.add(tempU);
+ tempU = new User();
+ tempU.setAdmin((Boolean) RedmineDataConverter.Boolean.convert("true"));
+ tempU.setCreatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-04T19:49:02+02:00"));
+ tempU.setFirstname((String) RedmineDataConverter.Text.convert("tony"));
+ tempU.setHashedPassword((String) RedmineDataConverter.Text.convert("8aed1322e5450badb078e1fb60a817a1df25a2ca"));
+ tempU.setId((Integer) RedmineDataConverter.Integer.convert("5"));
+ tempU.setLanguage((String) RedmineDataConverter.Text.convert("fr"));
+ tempU.setLastLoginOn((Date) RedmineDataConverter.Datetime.convert("2009-09-04T19:49:38+02:00"));
+ tempU.setLastname((String) RedmineDataConverter.Text.convert("chemit2"));
+ tempU.setLogin((String) RedmineDataConverter.Text.convert("tchemit2"));
+ tempU.setMail((String) RedmineDataConverter.Text.convert("chemit(a)codelutin.com"));
+ tempU.setMailNotification((Boolean) RedmineDataConverter.Boolean.convert("false"));
+ tempU.setMemberId((Integer) RedmineDataConverter.Integer.convert("4"));
+ tempU.setRoleId((Integer) RedmineDataConverter.Integer.convert("3"));
+ tempU.setStatus((Integer) RedmineDataConverter.Integer.convert("1"));
+ tempU.setUpdatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-04T19:49:38+02:00"));
+ users.add(tempU);
+ tempU = new User();
+ tempU.setAdmin((Boolean) RedmineDataConverter.Boolean.convert("false"));
+ tempU.setCreatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-05T16:24:11+02:00"));
+ tempU.setFirstname((String) RedmineDataConverter.Text.convert("dev"));
+ tempU.setHashedPassword((String) RedmineDataConverter.Text.convert("70c881d4a26984ddce795f6f71817c9cf4480e79"));
+ tempU.setId((Integer) RedmineDataConverter.Integer.convert("7"));
+ tempU.setLanguage((String) RedmineDataConverter.Text.convert("fr"));
+ tempU.setLastLoginOn((Date) RedmineDataConverter.Datetime.convert("2009-09-06T16:34:39+02:00"));
+ tempU.setLastname((String) RedmineDataConverter.Text.convert("dev"));
+ tempU.setLogin((String) RedmineDataConverter.Text.convert("dev"));
+ tempU.setMail((String) RedmineDataConverter.Text.convert("dev3(a)ynot-home.info"));
+ tempU.setMailNotification((Boolean) RedmineDataConverter.Boolean.convert("false"));
+ tempU.setMemberId((Integer) RedmineDataConverter.Integer.convert("9"));
+ tempU.setRoleId((Integer) RedmineDataConverter.Integer.convert("4"));
+ tempU.setStatus((Integer) RedmineDataConverter.Integer.convert("1"));
+ tempU.setUpdatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-06T16:34:39+02:00"));
+ users.add(tempU);
+
+ versions = new ArrayList<Version>();
+ Version tempV = null;
+ tempV = new Version();
+ tempV.setCreatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-06T02:47:39+02:00"));
+ tempV.setDescription((String) RedmineDataConverter.Text.convert("yo"));
+ tempV.setId((Integer) RedmineDataConverter.Integer.convert("9"));
+ tempV.setName((String) RedmineDataConverter.Text.convert("yor"));
+ tempV.setProjectId((Integer) RedmineDataConverter.Integer.convert("1"));
+ tempV.setUpdatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-06T02:50:49+02:00"));
+ versions.add(tempV);
+ tempV = new Version();
+ tempV.setCreatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-06T03:05:09+02:00"));
+ tempV.setDescription((String) RedmineDataConverter.Text.convert("ysssoye"));
+ tempV.setId((Integer) RedmineDataConverter.Integer.convert("13"));
+ tempV.setName((String) RedmineDataConverter.Text.convert("rrrrrrrrrouuuuuua"));
+ tempV.setProjectId((Integer) RedmineDataConverter.Integer.convert("1"));
+ tempV.setUpdatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-06T03:05:09+02:00"));
+ versions.add(tempV);
+ tempV = new Version();
+ tempV.setCreatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-06T03:07:58+02:00"));
+ tempV.setDescription((String) RedmineDataConverter.Text.convert("ysssoye"));
+ tempV.setId((Integer) RedmineDataConverter.Integer.convert("15"));
+ tempV.setName((String) RedmineDataConverter.Text.convert("aaaauuuuuua"));
+ tempV.setProjectId((Integer) RedmineDataConverter.Integer.convert("1"));
+ tempV.setUpdatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-06T03:07:58+02:00"));
+ versions.add(tempV);
+ tempV = new Version();
+ tempV.setCreatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-06T04:12:25+02:00"));
+ tempV.setDescription((String) RedmineDataConverter.Text.convert("ysssoyeppppppppppppppppp"));
+ tempV.setId((Integer) RedmineDataConverter.Integer.convert("16"));
+ tempV.setName((String) RedmineDataConverter.Text.convert("aaaau"));
+ tempV.setProjectId((Integer) RedmineDataConverter.Integer.convert("1"));
+ tempV.setUpdatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-06T04:13:20+02:00"));
+ versions.add(tempV);
+ tempV = new Version();
+ tempV.setCreatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-06T03:05:40+02:00"));
+ tempV.setDescription((String) RedmineDataConverter.Text.convert("ysssoye"));
+ tempV.setId((Integer) RedmineDataConverter.Integer.convert("14"));
+ tempV.setName((String) RedmineDataConverter.Text.convert("aaaaaaaaaarrrrrrrrrouuuuuua"));
+ tempV.setProjectId((Integer) RedmineDataConverter.Integer.convert("1"));
+ tempV.setUpdatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-06T03:05:40+02:00"));
+ versions.add(tempV);
+ tempV = new Version();
+ tempV.setCreatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-05T00:39:15+02:00"));
+ tempV.setId((Integer) RedmineDataConverter.Integer.convert("5"));
+ tempV.setName((String) RedmineDataConverter.Text.convert("2"));
+ tempV.setProjectId((Integer) RedmineDataConverter.Integer.convert("1"));
+ tempV.setUpdatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-05T00:39:15+02:00"));
+ versions.add(tempV);
+ tempV = new Version();
+ tempV.setCreatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-04T18:13:05+02:00"));
+ tempV.setId((Integer) RedmineDataConverter.Integer.convert("1"));
+ tempV.setName((String) RedmineDataConverter.Text.convert("1.0.0"));
+ tempV.setProjectId((Integer) RedmineDataConverter.Integer.convert("1"));
+ tempV.setUpdatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-04T18:13:05+02:00"));
+ versions.add(tempV);
+ tempV = new Version();
+ tempV.setCreatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-06T03:00:12+02:00"));
+ tempV.setDescription((String) RedmineDataConverter.Text.convert("yoye"));
+ tempV.setEffectiveDate((Date) RedmineDataConverter.Date.convert("2009-09-06"));
+ tempV.setId((Integer) RedmineDataConverter.Integer.convert("11"));
+ tempV.setName((String) RedmineDataConverter.Text.convert("yaouuuuuua"));
+ tempV.setProjectId((Integer) RedmineDataConverter.Integer.convert("1"));
+ tempV.setUpdatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-06T03:00:12+02:00"));
+ versions.add(tempV);
+ tempV = new Version();
+ tempV.setCreatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-06T02:50:59+02:00"));
+ tempV.setDescription((String) RedmineDataConverter.Text.convert("yoye"));
+ tempV.setEffectiveDate((Date) RedmineDataConverter.Date.convert("2009-09-06"));
+ tempV.setId((Integer) RedmineDataConverter.Integer.convert("10"));
+ tempV.setName((String) RedmineDataConverter.Text.convert("ya"));
+ tempV.setProjectId((Integer) RedmineDataConverter.Integer.convert("1"));
+ tempV.setUpdatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-06T02:54:16+02:00"));
+ versions.add(tempV);
+ tempV = new Version();
+ tempV.setCreatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-06T03:00:37+02:00"));
+ tempV.setDescription((String) RedmineDataConverter.Text.convert("ysssoye"));
+ tempV.setEffectiveDate((Date) RedmineDataConverter.Date.convert("2009-09-06"));
+ tempV.setId((Integer) RedmineDataConverter.Integer.convert("12"));
+ tempV.setName((String) RedmineDataConverter.Text.convert("ouuuuuua"));
+ tempV.setProjectId((Integer) RedmineDataConverter.Integer.convert("1"));
+ tempV.setUpdatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-06T03:00:42+02:00"));
+ versions.add(tempV);
+ }
+}
Property changes on: maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/RedmineModelBuilderTest.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL
Added: svn:mergeinfo
+
Modified: maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/plugin/AbstractRedmineMojoTest.java
===================================================================
--- maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/plugin/AbstractRedmineMojoTest.java 2009-09-08 16:03:49 UTC (rev 23)
+++ maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/plugin/AbstractRedmineMojoTest.java 2009-09-08 16:04:09 UTC (rev 24)
@@ -2,7 +2,6 @@
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
-import org.apache.maven.plugin.logging.Log;
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.Assume;
@@ -16,8 +15,6 @@
*/
public abstract class AbstractRedmineMojoTest<P extends AbstractRedmineMojo> extends BasePluginTestCase<P> {
- protected static Log log;
-
@AfterClass
public static void cleanAfterClass() throws Exception {
if (log != null) {
@@ -45,9 +42,6 @@
} catch (MojoExecutionException ex) {
mojo.getLog().warn("can not connect to " + mojo.getRedmineUrl() + ", test will be skip : " + ex.getMessage());
}
- if (log == null) {
- log = mojo.getLog();
- }
Assume.assumeTrue(canContinue);
}
}
1
0
r23 - in maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine: . model model/io/xpp3 plugin
by tchemit@users.nuiton.org 08 Sep '09
by tchemit@users.nuiton.org 08 Sep '09
08 Sep '09
Author: tchemit
Date: 2009-09-08 18:03:49 +0200 (Tue, 08 Sep 2009)
New Revision: 23
Added:
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/RedmineModelBuilder.java
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/RedmineDataConverter.java
Removed:
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/ModelBuilder.java
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/ProjectXpp3Writer.java
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/RedmineAbstractXpp3Reader.java
Modified:
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/Attachment.java
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/Issue.java
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/AttachmentXpp3Reader.java
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/IssueXpp3Reader.java
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/ProjectXpp3Reader.java
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/TrackerXpp3Reader.java
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/UserXpp3Reader.java
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/VersionXpp3Reader.java
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/GetProjectDataMojo.java
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/GetProjectVersionDataMojo.java
Log:
use improved xp3 parser from maven-helper-plugin
Copied: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/RedmineModelBuilder.java (from rev 22, maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/ModelBuilder.java)
===================================================================
--- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/RedmineModelBuilder.java (rev 0)
+++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/RedmineModelBuilder.java 2009-09-08 16:03:49 UTC (rev 23)
@@ -0,0 +1,130 @@
+package org.nuiton.redmine;
+
+import org.nuiton.redmine.model.*;
+import org.codehaus.plexus.util.ReaderFactory;
+import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.Reader;
+import org.apache.maven.plugin.logging.Log;
+import org.nuiton.io.xpp3.Xpp3Helper;
+
+/**
+ * Pour construire le modèle à partir de fichiers xml contenant les données.
+ *
+ * @author chemit
+ * @since 1.0.0
+ */
+public class RedmineModelBuilder {
+
+ Log log;
+
+ public RedmineModelBuilder(Log log) {
+ this.log = log;
+ }
+
+ public Attachment readAttachment(File file) throws IOException, XmlPullParserException {
+
+ Attachment result = readObject(Attachment.class, file);
+ return result;
+ }
+
+ public Issue readIssue(File file) throws IOException, XmlPullParserException {
+
+ Issue result = readObject(Issue.class, file);
+ return result;
+ }
+
+ public Project readProject(File file) throws IOException, XmlPullParserException {
+
+ Project result = readObject(Project.class, file);
+ return result;
+ }
+
+ public Tracker readTracker(File file) throws IOException, XmlPullParserException {
+
+ Tracker result = readObject(Tracker.class, file);
+ return result;
+ }
+
+ public User readUser(File file) throws IOException, XmlPullParserException {
+
+ User result = readObject(User.class, file);
+ return result;
+ }
+
+ public Version readVersion(File file) throws IOException, XmlPullParserException {
+
+ Version result = readObject(Version.class, file);
+ return result;
+ }
+
+ public Attachment[] readAttachments(File file) throws IOException, XmlPullParserException {
+
+ Attachment[] result = readObjects(Attachment.class, file);
+
+ return result;
+ }
+
+ public Issue[] readIssues(File file) throws IOException, XmlPullParserException {
+
+ Issue[] result = readObjects(Issue.class, file);
+ return result;
+ }
+
+ public Project[] readProjects(File file) throws IOException, XmlPullParserException {
+
+ Project[] result = readObjects(Project.class, file);
+ return result;
+ }
+
+ public Tracker[] readTrackers(File file) throws IOException, XmlPullParserException {
+
+ Tracker[] result = readObjects(Tracker.class, file);
+ return result;
+ }
+
+ public User[] readUsers(File file) throws IOException, XmlPullParserException {
+
+ User[] result = readObjects(User.class, file);
+ return result;
+ }
+
+ public Version[] readVersions(File file) throws IOException, XmlPullParserException {
+
+ Version[] result = readObjects(Version.class, file);
+ return result;
+ }
+
+ protected <O> O readObject(Class<O> klass, File file) throws IOException, XmlPullParserException {
+
+ O result = null;
+
+ if (file.exists() && file.isFile()) {
+ log.info("will parse project from: '" + file.getAbsolutePath() + "'");
+ Reader reader = ReaderFactory.newXmlReader(file);
+ result = Xpp3Helper.readObject(klass, reader);
+
+ } else {
+ log.warn("the file was not found or is a not a file: '" + file.getAbsolutePath() + "'");
+ }
+
+ return result;
+ }
+
+ protected <O> O[] readObjects(Class<O> klass, File file) throws IOException, XmlPullParserException {
+
+ O[] results = null;
+
+ if (file.exists() && file.isFile()) {
+ log.info("will parse project from: '" + file.getAbsolutePath() + "'");
+ Reader reader = ReaderFactory.newXmlReader(file);
+ results = Xpp3Helper.readObjects(klass, reader);
+
+ } else {
+ log.warn("the file was not found or is a not a file: '" + file.getAbsolutePath() + "'");
+ }
+ return results;
+ }
+}
Property changes on: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/RedmineModelBuilder.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL
Added: svn:mergeinfo
+
Modified: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/Attachment.java
===================================================================
--- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/Attachment.java 2009-09-07 22:57:18 UTC (rev 22)
+++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/Attachment.java 2009-09-08 16:03:49 UTC (rev 23)
@@ -3,7 +3,8 @@
import java.util.Date;
/**
- *
+ * A file attachment from redmine server.
+ *
* @author chemit
* @since 1.0.0
*/
Modified: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/Issue.java
===================================================================
--- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/Issue.java 2009-09-07 22:57:18 UTC (rev 22)
+++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/Issue.java 2009-09-08 16:03:49 UTC (rev 23)
@@ -3,7 +3,8 @@
import java.util.Date;
/**
- *
+ * An issue on redmine's server.
+ *
* @author chemit
* @since 1.0.0
*/
Deleted: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/ModelBuilder.java
===================================================================
--- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/ModelBuilder.java 2009-09-07 22:57:18 UTC (rev 22)
+++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/ModelBuilder.java 2009-09-08 16:03:49 UTC (rev 23)
@@ -1,133 +0,0 @@
-package org.nuiton.redmine.model;
-
-import org.codehaus.plexus.util.ReaderFactory;
-import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.Reader;
-import java.lang.reflect.Array;
-import org.apache.maven.plugin.logging.Log;
-import org.nuiton.io.xpp3.Xpp3Helper;
-
-/**
- * Pour construire le modèle à partir de fichiers xml contenant les données.
- *
- * @author chemit
- * @since 1.0.0
- */
-public class ModelBuilder {
-
- Log log;
-
- public ModelBuilder(Log log) {
- this.log = log;
- }
-
- public Attachment readAttachment(File file) throws IOException, XmlPullParserException {
-
- Attachment result = readObject(Attachment.class, file);
- return result;
- }
-
- public Issue readIssue(File file) throws IOException, XmlPullParserException {
-
- Issue result = readObject(Issue.class, file);
- return result;
- }
-
- public Project readProject(File file) throws IOException, XmlPullParserException {
-
- Project result = readObject(Project.class, file);
- return result;
- }
-
- public Tracker readTracker(File file) throws IOException, XmlPullParserException {
-
- Tracker result = readObject(Tracker.class, file);
- return result;
- }
-
- public User readUser(File file) throws IOException, XmlPullParserException {
-
- User result = readObject(User.class, file);
- return result;
- }
-
- public Version readVersion(File file) throws IOException, XmlPullParserException {
-
- Version result = readObject(Version.class, file);
- return result;
- }
-
- public Attachment[] readAttachments(File file) throws IOException, XmlPullParserException {
-
- Attachment[] result = readObjects(Attachment.class, file);
-
- return result;
- }
-
- public Issue[] readIssues(File file) throws IOException, XmlPullParserException {
-
- Issue[] result = readObjects(Issue.class, file);
- return result;
- }
-
- public Project[] readProjects(File file) throws IOException, XmlPullParserException {
-
- Project[] result = readObjects(Project.class, file);
- return result;
- }
-
- public Tracker[] readTrackers(File file) throws IOException, XmlPullParserException {
-
- Tracker[] result = readObjects(Tracker.class, file);
- return result;
- }
-
- public User[] readUsers(File file) throws IOException, XmlPullParserException {
-
- User[] result = readObjects(User.class, file);
- return result;
- }
-
- public Version[] readVersions(File file) throws IOException, XmlPullParserException {
-
- Version[] result = readObjects(Version.class, file);
- return result;
- }
-
- protected <O> O readObject(Class<O> klass, File file) throws IOException, XmlPullParserException {
-
- O result = null;
-
- if (file.exists() && file.isFile()) {
- log.info("will parse project from: '" + file.getAbsolutePath() + "'");
- Reader reader = ReaderFactory.newXmlReader(file);
- result = (O) Xpp3Helper.readObject(klass, reader);
-
- } else {
- log.warn("the file was not found or is a not a file: '" + file.getAbsolutePath() + "'");
- }
-
- return result;
- }
-
- protected <O> O[] readObjects(Class<O> klass, File file) throws IOException, XmlPullParserException {
-
- Object[] objects = null;
-
- if (file.exists() && file.isFile()) {
- log.info("will parse project from: '" + file.getAbsolutePath() + "'");
- Reader reader = ReaderFactory.newXmlReader(file);
- objects = Xpp3Helper.readObjects(klass, reader);
-
- } else {
- log.warn("the file was not found or is a not a file: '" + file.getAbsolutePath() + "'");
- }
-
- O[] result = (O[]) Array.newInstance(klass, objects.length);
- System.arraycopy(objects, 0, result, 0, result.length);
- return result;
- }
-}
Modified: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/AttachmentXpp3Reader.java
===================================================================
--- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/AttachmentXpp3Reader.java 2009-09-07 22:57:18 UTC (rev 22)
+++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/AttachmentXpp3Reader.java 2009-09-08 16:03:49 UTC (rev 23)
@@ -1,7 +1,9 @@
package org.nuiton.redmine.model.io.xpp3;
import java.beans.IntrospectionException;
+import org.nuiton.io.xpp3.AbstractXpp3Reader;
import org.nuiton.redmine.model.Attachment;
+import static org.nuiton.io.xpp3.Xpp3Helper.addTagTextContentMappers;
/**
* {@link Attachment} reader.
@@ -9,26 +11,26 @@
* @author chemit
* @since 1.0.0
*/
-public class AttachmentXpp3Reader extends RedmineAbstractXpp3Reader {
+public class AttachmentXpp3Reader extends AbstractXpp3Reader<Attachment> {
public AttachmentXpp3Reader() {
- super(Attachment.class);
+ super(Attachment.class, "attachments", "attachment");
}
@Override
protected void initMappers() throws IntrospectionException {
- addMappers(Attachment.class, RedmineDataConverter.Integer, true,
+ addTagTextContentMappers(Attachment.class, RedmineDataConverter.Integer, true, allMappers,
"author-id",
"container-id",
"filesize",
"downloads",
"id");
- addMappers(Attachment.class, RedmineDataConverter.Datetime, true,
+ addTagTextContentMappers(Attachment.class, RedmineDataConverter.Datetime, true, allMappers,
"created-on");
- addMappers(Attachment.class, RedmineDataConverter.Text, true,
+ addTagTextContentMappers(Attachment.class, RedmineDataConverter.Text, true, allMappers,
"container-type",
"content-type",
"description",
Modified: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/IssueXpp3Reader.java
===================================================================
--- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/IssueXpp3Reader.java 2009-09-07 22:57:18 UTC (rev 22)
+++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/IssueXpp3Reader.java 2009-09-08 16:03:49 UTC (rev 23)
@@ -1,7 +1,9 @@
package org.nuiton.redmine.model.io.xpp3;
import java.beans.IntrospectionException;
+import org.nuiton.io.xpp3.AbstractXpp3Reader;
import org.nuiton.redmine.model.Issue;
+import static org.nuiton.io.xpp3.Xpp3Helper.addTagTextContentMappers;
/**
* {@link Issue} reader.
@@ -9,16 +11,16 @@
* @author chemit
* @since 1.0.0
*/
-public class IssueXpp3Reader extends RedmineAbstractXpp3Reader {
+public class IssueXpp3Reader extends AbstractXpp3Reader<Issue> {
public IssueXpp3Reader() {
- super(Issue.class);
+ super(Issue.class, "issues", "issue");
}
@Override
protected void initMappers() throws IntrospectionException {
- addMappers(Issue.class, RedmineDataConverter.Integer, true,
+ addTagTextContentMappers(Issue.class, RedmineDataConverter.Integer, true, allMappers,
"assigned-to-id",
"author-id",
"category-id",
@@ -31,18 +33,18 @@
"fixed-version-id",
"id");
- addMappers(Issue.class, RedmineDataConverter.Float, true,
+ addTagTextContentMappers(Issue.class, RedmineDataConverter.Float, true, allMappers,
"estimated-hours");
- addMappers(Issue.class, RedmineDataConverter.Datetime, true,
+ addTagTextContentMappers(Issue.class, RedmineDataConverter.Datetime, true, allMappers,
"created-on",
"updated-on");
- addMappers(Issue.class, RedmineDataConverter.Date, true,
+ addTagTextContentMappers(Issue.class, RedmineDataConverter.Date, true, allMappers,
"due-date",
"start-date");
- addMappers(Issue.class, RedmineDataConverter.Text, true,
+ addTagTextContentMappers(Issue.class, RedmineDataConverter.Text, true, allMappers,
"description",
"subject");
}
Modified: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/ProjectXpp3Reader.java
===================================================================
--- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/ProjectXpp3Reader.java 2009-09-07 22:57:18 UTC (rev 22)
+++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/ProjectXpp3Reader.java 2009-09-08 16:03:49 UTC (rev 23)
@@ -1,7 +1,9 @@
package org.nuiton.redmine.model.io.xpp3;
import java.beans.IntrospectionException;
+import org.nuiton.io.xpp3.AbstractXpp3Reader;
import org.nuiton.redmine.model.Project;
+import static org.nuiton.io.xpp3.Xpp3Helper.addTagTextContentMappers;
/**
* {@link Project} reader.
@@ -9,29 +11,29 @@
* @author chemit
* @since 1.0.0
*/
-public class ProjectXpp3Reader extends RedmineAbstractXpp3Reader {
+public class ProjectXpp3Reader extends AbstractXpp3Reader<Project> {
public ProjectXpp3Reader() {
- super(Project.class);
+ super(Project.class, "projects", "project");
}
@Override
protected void initMappers() throws IntrospectionException {
- addMappers(Project.class, RedmineDataConverter.Integer, true,
+ addTagTextContentMappers(Project.class, RedmineDataConverter.Integer, true, allMappers,
"id",
"parent-id",
"projects-count",
"status");
- addMappers(Project.class, RedmineDataConverter.Boolean, true,
+ addTagTextContentMappers(Project.class, RedmineDataConverter.Boolean, true, allMappers,
"is-public");
- addMappers(Project.class, RedmineDataConverter.Datetime, true,
+ addTagTextContentMappers(Project.class, RedmineDataConverter.Datetime, true, allMappers,
"created-on",
"updated-on");
- addMappers(Project.class, RedmineDataConverter.Text, true,
+ addTagTextContentMappers(Project.class, RedmineDataConverter.Text, true, allMappers,
"description",
"homepage",
"identifier",
Deleted: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/ProjectXpp3Writer.java
===================================================================
--- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/ProjectXpp3Writer.java 2009-09-07 22:57:18 UTC (rev 22)
+++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/ProjectXpp3Writer.java 2009-09-08 16:03:49 UTC (rev 23)
@@ -1,10 +0,0 @@
-package org.nuiton.redmine.model.io.xpp3;
-
-/**
- *
- * @author chemit
- * @since 1.0.0
- */
-public class ProjectXpp3Writer {
-
-}
Deleted: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/RedmineAbstractXpp3Reader.java
===================================================================
--- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/RedmineAbstractXpp3Reader.java 2009-09-07 22:57:18 UTC (rev 22)
+++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/RedmineAbstractXpp3Reader.java 2009-09-08 16:03:49 UTC (rev 23)
@@ -1,160 +0,0 @@
-package org.nuiton.redmine.model.io.xpp3;
-
-import org.nuiton.io.xpp3.PropertyMapper;
-import java.beans.BeanInfo;
-import java.beans.IntrospectionException;
-import java.beans.Introspector;
-import java.beans.PropertyDescriptor;
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
-import java.util.Locale;
-import org.apache.commons.lang.StringUtils;
-import org.nuiton.io.xpp3.AbstractXpp3Reader;
-import org.nuiton.io.xpp3.DataConverter;
-
-/**
- * A base xpp parser for redmin xml streams.
- *
- * We just define here a convient method to add {@link RedminePropertyMapper} to parser.
- *
- * To implements a new parser, just implements the {@link #initMappers()} method.
- *
- * Example :
- * <pre>
- *
- * @Override
- * protected void initMappers() throws IntrospectionException {
- *
- * addMappers(Project.class, RedmineDataConverter.Integer, true, "id");
- *
- * addMappers(Project.class, RedmineDataConverter.Boolean, true, "is-public");
- *
- * addMappers(Project.class, RedmineDataConverter.Datetime, true, "created-on");
- *
- * addMappers(Project.class, RedmineDataConverter.Text, true, "name");
- * }
- * </pre>
- *
- * @author chemit
- * @since 1.0.0
- * @see AbstractXpp3Reader
- */
-public abstract class RedmineAbstractXpp3Reader extends AbstractXpp3Reader {
-
- public RedmineAbstractXpp3Reader(Class<?> type) {
- super(type, Introspector.decapitalize(type.getSimpleName()));
- }
-
- protected void addMappers(Class<?> srcType, RedmineDataConverter type, boolean onlyOne, String... tagNames) throws IntrospectionException {
- for (String tagName : tagNames) {
-
- // the tag-name is transformed to tagName
- String[] parts = tagName.split("-");
- StringBuilder buffer = new StringBuilder();
- for (int i = 0, j = parts.length; i < j; i++) {
- if (i == 0) {
- buffer.append(parts[i]);
- } else {
- buffer.append(StringUtils.capitalize(parts[i]));
- }
- }
- String propertyName = buffer.toString();
- BeanInfo beanInfo = Introspector.getBeanInfo(srcType);
- PropertyDescriptor descriptor = null;
- for (PropertyDescriptor propertyDescriptor : beanInfo.getPropertyDescriptors()) {
- if (propertyDescriptor.getName().equals(propertyName)) {
- descriptor = propertyDescriptor;
- break;
- }
- }
- if (descriptor == null) {
- throw new IllegalArgumentException("could not find a property descriptor for property " + propertyName + " of " + srcType);
- }
-
- PropertyMapper mapper = new PropertyMapper.TagTextContentToProperty(tagName, propertyName, type, onlyOne, descriptor);
-
- allMappers.put(srcType.getName() + "#" + tagName, mapper);
- }
- }
-
- /**
- * A enumaration to conver some data from a string representation.
- *
- * Can not use directly a converter from commons-beans library, since we have
- * several different converter to use for same type (see {@link #Date} and
- * {@link #Datetime}).
- *
- * @author chemit
- * @since 1.0.0
- */
- public enum RedmineDataConverter implements DataConverter {
-
- Boolean {
-
- @Override
- public Object convert(String t) throws Exception {
- Object r = java.lang.Boolean.valueOf(t);
- return r;
- }
- }, Short {
-
- @Override
- public Object convert(String t) throws Exception {
- Object r = java.lang.Short.valueOf(t);
- return r;
- }
- }, Integer {
-
- @Override
- public Object convert(String t) throws Exception {
- Object r = java.lang.Integer.valueOf(t);
- return r;
- }
- }, Long {
-
- @Override
- public Object convert(String t) throws Exception {
- Object r = java.lang.Long.valueOf(t);
- return r;
- }
- }, Float {
-
- @Override
- public Object convert(String t) throws Exception {
- Object r = java.lang.Float.valueOf(t);
- return r;
- }
- }, Double {
-
- @Override
- public Object convert(String t) throws Exception {
- Object r = java.lang.Double.valueOf(t);
- return r;
- }
- }, Date {
-
- @Override
- public Object convert(String t) throws Exception {
- Object r = dateParser.parse(t);
- return r;
- }
- }, Datetime {
-
- @Override
- public Object convert(String t) throws Exception {
- Object r = datetimeParser.parse(t);
- return r;
- }
- }, Text {
-
- @Override
- public Object convert(String t) throws Exception {
- return t;
- }
- };
- //FIXME TC20090907 this a a big hack (the + party) redmine returns us a timezone
- // in a format we can not deal with (+hh:mm), so actually, ignore it...
- static final DateFormat datetimeParser = new SimpleDateFormat("yyyy-MM-dd\'T\'HH:mm:ss\'+\'SS\':\'SS", Locale.US);
- static final DateFormat dateParser = new SimpleDateFormat("yyyy-MM-dd", Locale.US);
- }
-}
Added: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/RedmineDataConverter.java
===================================================================
--- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/RedmineDataConverter.java (rev 0)
+++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/RedmineDataConverter.java 2009-09-08 16:03:49 UTC (rev 23)
@@ -0,0 +1,78 @@
+package org.nuiton.redmine.model.io.xpp3;
+
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.Locale;
+import org.nuiton.io.xpp3.DataConverter;
+
+/**
+ * A enumaration to convert some data from a string representation.
+ *
+ * Can not use directly a converter from commons-beans library, since we have
+ * several different converter to use for same type (see {@link #Date} and
+ * {@link #Datetime}).
+ *
+ * @author chemit
+ * @since 1.0.0
+ */
+public enum RedmineDataConverter implements DataConverter {
+
+ Boolean {
+ @Override
+ public Object convert(String t) throws Exception {
+ Object r = java.lang.Boolean.valueOf(t);
+ return r;
+ }
+ }, Short {
+ @Override
+ public Object convert(String t) throws Exception {
+ Object r = java.lang.Short.valueOf(t);
+ return r;
+ }
+ }, Integer {
+ @Override
+ public Object convert(String t) throws Exception {
+ Object r = java.lang.Integer.valueOf(t);
+ return r;
+ }
+ }, Long {
+ @Override
+ public Object convert(String t) throws Exception {
+ Object r = java.lang.Long.valueOf(t);
+ return r;
+ }
+ }, Float {
+ @Override
+ public Object convert(String t) throws Exception {
+ Object r = java.lang.Float.valueOf(t);
+ return r;
+ }
+ }, Double {
+ @Override
+ public Object convert(String t) throws Exception {
+ Object r = java.lang.Double.valueOf(t);
+ return r;
+ }
+ }, Date {
+ @Override
+ public Object convert(String t) throws Exception {
+ Object r = dateParser.parse(t);
+ return r;
+ }
+ }, Datetime {
+ @Override
+ public Object convert(String t) throws Exception {
+ Object r = datetimeParser.parse(t);
+ return r;
+ }
+ }, Text {
+ @Override
+ public Object convert(String t) throws Exception {
+ return t;
+ }
+ };
+ //FIXME TC20090907 this a a big hack (the + party) redmine returns us a timezone
+ // in a format we can not deal with (+hh:mm), so actually, ignore it...
+ static final DateFormat datetimeParser = new SimpleDateFormat("yyyy-MM-dd\'T\'HH:mm:ss\'+\'SS\':\'SS", Locale.US);
+ static final DateFormat dateParser = new SimpleDateFormat("yyyy-MM-dd", Locale.US);
+}
Property changes on: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/RedmineDataConverter.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL
Modified: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/TrackerXpp3Reader.java
===================================================================
--- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/TrackerXpp3Reader.java 2009-09-07 22:57:18 UTC (rev 22)
+++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/TrackerXpp3Reader.java 2009-09-08 16:03:49 UTC (rev 23)
@@ -1,7 +1,9 @@
package org.nuiton.redmine.model.io.xpp3;
import java.beans.IntrospectionException;
+import org.nuiton.io.xpp3.AbstractXpp3Reader;
import org.nuiton.redmine.model.Tracker;
+import static org.nuiton.io.xpp3.Xpp3Helper.addTagTextContentMappers;
/**
* {@link Tracker} reader.
@@ -9,25 +11,26 @@
* @author chemit
* @since 1.0.0
*/
-public class TrackerXpp3Reader extends RedmineAbstractXpp3Reader {
+public class TrackerXpp3Reader extends AbstractXpp3Reader<Tracker> {
public TrackerXpp3Reader() {
- super(Tracker.class);
+ super(Tracker.class, "trackers", "tracker");
}
@Override
protected void initMappers() throws IntrospectionException {
- addMappers(Tracker.class, RedmineDataConverter.Integer, true,
+ addTagTextContentMappers(Tracker.class, RedmineDataConverter.Integer, true, allMappers,
"id",
"project-id",
"tracker-id",
"position");
- addMappers(Tracker.class, RedmineDataConverter.Boolean, true,
+ addTagTextContentMappers(Tracker.class, RedmineDataConverter.Boolean, true, allMappers,
"is-in-chlog",
"is-in-roadmap");
- addMappers(Tracker.class, RedmineDataConverter.Text, true, "name");
+ addTagTextContentMappers(Tracker.class, RedmineDataConverter.Text, true, allMappers,
+ "name");
}
}
Modified: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/UserXpp3Reader.java
===================================================================
--- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/UserXpp3Reader.java 2009-09-07 22:57:18 UTC (rev 22)
+++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/UserXpp3Reader.java 2009-09-08 16:03:49 UTC (rev 23)
@@ -1,7 +1,9 @@
package org.nuiton.redmine.model.io.xpp3;
import java.beans.IntrospectionException;
+import org.nuiton.io.xpp3.AbstractXpp3Reader;
import org.nuiton.redmine.model.User;
+import static org.nuiton.io.xpp3.Xpp3Helper.addTagTextContentMappers;
/**
* {@link User} reader.
@@ -9,32 +11,32 @@
* @author chemit
* @since 1.0.0
*/
-public class UserXpp3Reader extends RedmineAbstractXpp3Reader {
+public class UserXpp3Reader extends AbstractXpp3Reader<User> {
public UserXpp3Reader() {
- super(User.class);
+ super(User.class, "users", "user");
}
@Override
protected void initMappers() throws IntrospectionException {
- addMappers(User.class, RedmineDataConverter.Integer, true,
+ addTagTextContentMappers(User.class, RedmineDataConverter.Integer, true, allMappers,
"id",
"auth-source-id",
"member-id",
"role-id",
"status");
- addMappers(User.class, RedmineDataConverter.Boolean, true,
+ addTagTextContentMappers(User.class, RedmineDataConverter.Boolean, true, allMappers,
"admin",
"mail-notification");
- addMappers(User.class, RedmineDataConverter.Datetime, true,
+ addTagTextContentMappers(User.class, RedmineDataConverter.Datetime, true, allMappers,
"created-on",
"updated-on",
"last-login-on");
- addMappers(User.class, RedmineDataConverter.Text, true,
+ addTagTextContentMappers(User.class, RedmineDataConverter.Text, true, allMappers,
"firstname",
"hashed-password",
"language",
Modified: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/VersionXpp3Reader.java
===================================================================
--- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/VersionXpp3Reader.java 2009-09-07 22:57:18 UTC (rev 22)
+++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/VersionXpp3Reader.java 2009-09-08 16:03:49 UTC (rev 23)
@@ -1,32 +1,35 @@
package org.nuiton.redmine.model.io.xpp3;
import java.beans.IntrospectionException;
+import org.nuiton.io.xpp3.AbstractXpp3Reader;
import org.nuiton.redmine.model.Version;
+import static org.nuiton.io.xpp3.Xpp3Helper.addTagTextContentMappers;
/**
* {@link Version} reader.
* @author chemit
* @since 1.0.0
*/
-public class VersionXpp3Reader extends RedmineAbstractXpp3Reader {
+public class VersionXpp3Reader extends AbstractXpp3Reader<Version> {
public VersionXpp3Reader() {
- super(Version.class);
+ super(Version.class, "versions", "version");
}
@Override
protected void initMappers() throws IntrospectionException {
- addMappers(Version.class, RedmineDataConverter.Integer, true,
+ addTagTextContentMappers(Version.class, RedmineDataConverter.Integer, true, allMappers,
"id",
"project-id");
- addMappers(Version.class, RedmineDataConverter.Datetime, true,
+ addTagTextContentMappers(Version.class, RedmineDataConverter.Datetime, true, allMappers,
"created-on",
"updated-on");
- addMappers(Version.class, RedmineDataConverter.Date, true, "effective-date");
+ addTagTextContentMappers(Version.class, RedmineDataConverter.Date, true, allMappers,
+ "effective-date");
- addMappers(Version.class, RedmineDataConverter.Text, true,
+ addTagTextContentMappers(Version.class, RedmineDataConverter.Text, true, allMappers,
"name",
"description",
"wiki-page-title");
Modified: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/GetProjectDataMojo.java
===================================================================
--- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/GetProjectDataMojo.java 2009-09-07 22:57:18 UTC (rev 22)
+++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/GetProjectDataMojo.java 2009-09-08 16:03:49 UTC (rev 23)
@@ -48,7 +48,9 @@
protected void doAction() throws Exception {
String result = session.askContent("rest", action, projectId);
- getLog().info(result);
+ if (getLog().isDebugEnabled()) {
+ getLog().debug("result : " + result);
+ }
}
public enum VersionDataType implements DataType {
Modified: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/GetProjectVersionDataMojo.java
===================================================================
--- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/GetProjectVersionDataMojo.java 2009-09-07 22:57:18 UTC (rev 22)
+++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/GetProjectVersionDataMojo.java 2009-09-08 16:03:49 UTC (rev 23)
@@ -46,7 +46,9 @@
String result = session.askData(new String[]{"rest", action, projectId}, "version_name", versionId);
- getLog().info(result);
+ if (getLog().isDebugEnabled()) {
+ getLog().info(result);
+ }
}
@Override
1
0
r22 - in maven-redmine-plugin/trunk/src: main/java/org/nuiton/redmine/model main/java/org/nuiton/redmine/model/io/xpp3 main/resources main/resources/META-INF main/resources/META-INF/services test/java/org/nuiton/redmine/model test/resources/org/nuiton/redmine/model
by tchemit@users.nuiton.org 07 Sep '09
by tchemit@users.nuiton.org 07 Sep '09
07 Sep '09
Author: tchemit
Date: 2009-09-08 00:57:18 +0200 (Tue, 08 Sep 2009)
New Revision: 22
Added:
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/Attachment.java
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/AttachmentXpp3Reader.java
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/IssueXpp3Reader.java
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/RedmineAbstractXpp3Reader.java
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/TrackerXpp3Reader.java
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/UserXpp3Reader.java
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/VersionXpp3Reader.java
maven-redmine-plugin/trunk/src/main/resources/META-INF/
maven-redmine-plugin/trunk/src/main/resources/META-INF/services/
maven-redmine-plugin/trunk/src/main/resources/META-INF/services/org.nuiton.io.xpp3.Xpp3Reader
maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/model/ModelBuilderTest.java
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/simple-attachment.xml
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/simple-attachments.xml
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/simple-issue.xml
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/simple-issues.xml
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/simple-project.xml
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/simple-projects.xml
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/simple-tracker.xml
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/simple-trackers.xml
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/simple-user.xml
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/simple-users.xml
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/simple-version.xml
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/simple-versions.xml
Removed:
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/AbstractXpp3Reader.java
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/VersionsXpp3Reader.java
Modified:
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/Issue.java
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/ModelBuilder.java
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/Project.java
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/Tracker.java
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/User.java
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/Version.java
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/ProjectXpp3Reader.java
Log:
use xpp3 parser from maven-helper-plugin
Added: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/Attachment.java
===================================================================
--- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/Attachment.java (rev 0)
+++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/Attachment.java 2009-09-07 22:57:18 UTC (rev 22)
@@ -0,0 +1,120 @@
+package org.nuiton.redmine.model;
+
+import java.util.Date;
+
+/**
+ *
+ * @author chemit
+ * @since 1.0.0
+ */
+public class Attachment {
+
+ protected int id;
+ protected int authorId;
+ protected int containerId;
+ protected int filesize;
+ protected int downloads;
+ protected Date createdOn;
+ protected String containerType;
+ protected String contentType;
+ protected String description;
+ protected String digest;
+ protected String diskFilename;
+ protected String filename;
+
+ public int getAuthorId() {
+ return authorId;
+ }
+
+ public int getContainerId() {
+ return containerId;
+ }
+
+ public String getContainerType() {
+ return containerType;
+ }
+
+ public String getContentType() {
+ return contentType;
+ }
+
+ public Date getCreatedOn() {
+ return createdOn;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public String getDigest() {
+ return digest;
+ }
+
+ public String getDiskFilename() {
+ return diskFilename;
+ }
+
+ public int getDownloads() {
+ return downloads;
+ }
+
+ public String getFilename() {
+ return filename;
+ }
+
+ public int getFilesize() {
+ return filesize;
+ }
+
+ public int getId() {
+ return id;
+ }
+
+ public void setAuthorId(int authorId) {
+ this.authorId = authorId;
+ }
+
+ public void setContainerId(int containerId) {
+ this.containerId = containerId;
+ }
+
+ public void setContainerType(String containerType) {
+ this.containerType = containerType;
+ }
+
+ public void setContentType(String contentType) {
+ this.contentType = contentType;
+ }
+
+ public void setCreatedOn(Date createdOn) {
+ this.createdOn = createdOn;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public void setDigest(String digest) {
+ this.digest = digest;
+ }
+
+ public void setDiskFilename(String diskFilename) {
+ this.diskFilename = diskFilename;
+ }
+
+ public void setDownloads(int downloads) {
+ this.downloads = downloads;
+ }
+
+ public void setFilename(String filename) {
+ this.filename = filename;
+ }
+
+ public void setFilesize(int filesize) {
+ this.filesize = filesize;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+}
Property changes on: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/Attachment.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL
Modified: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/Issue.java
===================================================================
--- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/Issue.java 2009-09-07 22:56:48 UTC (rev 21)
+++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/Issue.java 2009-09-07 22:57:18 UTC (rev 22)
@@ -1,5 +1,7 @@
package org.nuiton.redmine.model;
+import java.util.Date;
+
/**
*
* @author chemit
@@ -7,7 +9,166 @@
*/
public class Issue {
- protected String id;
+ protected int assignedToId;
+ protected int authorId;
+ protected int categoryId;
+ protected int doneRatio;
+ protected int lockVersion;
+ protected int priorityId;
+ protected int projectId;
+ protected int statusId;
+ protected int trackerId;
+ protected int fixedVersionId;
+ protected int id;
+ protected float estimatedHours;
+ protected Date createdOn;
+ protected Date updatedOn;
+ protected Date dueDate;
+ protected Date startDate;
protected String description;
- protected String status;
+ protected String subject;
+
+ public int getAssignedToId() {
+ return assignedToId;
+ }
+
+ public int getAuthorId() {
+ return authorId;
+ }
+
+ public int getCategoryId() {
+ return categoryId;
+ }
+
+ public Date getCreatedOn() {
+ return createdOn;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public int getDoneRatio() {
+ return doneRatio;
+ }
+
+ public Date getDueDate() {
+ return dueDate;
+ }
+
+ public float getEstimatedHours() {
+ return estimatedHours;
+ }
+
+ public int getFixedVersionId() {
+ return fixedVersionId;
+ }
+
+ public int getId() {
+ return id;
+ }
+
+ public int getLockVersion() {
+ return lockVersion;
+ }
+
+ public int getPriorityId() {
+ return priorityId;
+ }
+
+ public int getProjectId() {
+ return projectId;
+ }
+
+ public Date getStartDate() {
+ return startDate;
+ }
+
+ public int getStatusId() {
+ return statusId;
+ }
+
+ public String getSubject() {
+ return subject;
+ }
+
+ public int getTrackerId() {
+ return trackerId;
+ }
+
+ public Date getUpdatedOn() {
+ return updatedOn;
+ }
+
+ public void setAssignedToId(int assignedToId) {
+ this.assignedToId = assignedToId;
+ }
+
+ public void setAuthorId(int authorId) {
+ this.authorId = authorId;
+ }
+
+ public void setCategoryId(int categoryId) {
+ this.categoryId = categoryId;
+ }
+
+ public void setCreatedOn(Date createdOn) {
+ this.createdOn = createdOn;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public void setDoneRatio(int doneRatio) {
+ this.doneRatio = doneRatio;
+ }
+
+ public void setDueDate(Date dueDate) {
+ this.dueDate = dueDate;
+ }
+
+ public void setEstimatedHours(float estimatedHours) {
+ this.estimatedHours = estimatedHours;
+ }
+
+ public void setFixedVersionId(int fixedVersionId) {
+ this.fixedVersionId = fixedVersionId;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public void setLockVersion(int lockVersion) {
+ this.lockVersion = lockVersion;
+ }
+
+ public void setPriorityId(int priorityId) {
+ this.priorityId = priorityId;
+ }
+
+ public void setProjectId(int projectId) {
+ this.projectId = projectId;
+ }
+
+ public void setStartDate(Date startDate) {
+ this.startDate = startDate;
+ }
+
+ public void setStatusId(int statusId) {
+ this.statusId = statusId;
+ }
+
+ public void setSubject(String subject) {
+ this.subject = subject;
+ }
+
+ public void setTrackerId(int trackerId) {
+ this.trackerId = trackerId;
+ }
+
+ public void setUpdatedOn(Date updatedOn) {
+ this.updatedOn = updatedOn;
+ }
}
Modified: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/ModelBuilder.java
===================================================================
--- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/ModelBuilder.java 2009-09-07 22:56:48 UTC (rev 21)
+++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/ModelBuilder.java 2009-09-07 22:57:18 UTC (rev 22)
@@ -1,25 +1,20 @@
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
package org.nuiton.redmine.model;
-import org.codehaus.plexus.util.IOUtil;
import org.codehaus.plexus.util.ReaderFactory;
import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
import java.io.File;
import java.io.IOException;
import java.io.Reader;
-import java.io.StringReader;
-import java.io.StringWriter;
+import java.lang.reflect.Array;
import org.apache.maven.plugin.logging.Log;
-import org.nuiton.redmine.model.io.xpp3.ProjectXpp3Reader;
-import org.nuiton.redmine.model.io.xpp3.VersionsXpp3Reader;
+import org.nuiton.io.xpp3.Xpp3Helper;
/**
- *
+ * Pour construire le modèle à partir de fichiers xml contenant les données.
+ *
* @author chemit
+ * @since 1.0.0
*/
public class ModelBuilder {
@@ -29,67 +24,110 @@
this.log = log;
}
- public Project readProject(File file)
- throws IOException, XmlPullParserException {
+ public Attachment readAttachment(File file) throws IOException, XmlPullParserException {
- Project project = null;
+ Attachment result = readObject(Attachment.class, file);
+ return result;
+ }
- if (file.exists() && file.isFile()) {
- log.info("will parse project from: '" + file.getAbsolutePath() + "'");
- Reader reader = null;
- try {
- reader = ReaderFactory.newXmlReader(file);
- StringWriter sWriter = new StringWriter();
+ public Issue readIssue(File file) throws IOException, XmlPullParserException {
- IOUtil.copy(reader, sWriter);
+ Issue result = readObject(Issue.class, file);
+ return result;
+ }
- String rawInput = sWriter.toString();
+ public Project readProject(File file) throws IOException, XmlPullParserException {
- StringReader sReader = new StringReader(rawInput);
+ Project result = readObject(Project.class, file);
+ return result;
+ }
- ProjectXpp3Reader modelReader = new ProjectXpp3Reader();
+ public Tracker readTracker(File file) throws IOException, XmlPullParserException {
- project = modelReader.read(sReader);
+ Tracker result = readObject(Tracker.class, file);
+ return result;
+ }
- } finally {
- IOUtil.close(reader);
- }
- } else {
- log.warn("the file was not find or is a not a file: '" + file.getAbsolutePath() + "'");
- }
+ public User readUser(File file) throws IOException, XmlPullParserException {
- return project;
+ User result = readObject(User.class, file);
+ return result;
}
- public Version readVersion(File file)
- throws IOException, XmlPullParserException {
+ public Version readVersion(File file) throws IOException, XmlPullParserException {
- Version version = null;
+ Version result = readObject(Version.class, file);
+ return result;
+ }
+ public Attachment[] readAttachments(File file) throws IOException, XmlPullParserException {
+
+ Attachment[] result = readObjects(Attachment.class, file);
+
+ return result;
+ }
+
+ public Issue[] readIssues(File file) throws IOException, XmlPullParserException {
+
+ Issue[] result = readObjects(Issue.class, file);
+ return result;
+ }
+
+ public Project[] readProjects(File file) throws IOException, XmlPullParserException {
+
+ Project[] result = readObjects(Project.class, file);
+ return result;
+ }
+
+ public Tracker[] readTrackers(File file) throws IOException, XmlPullParserException {
+
+ Tracker[] result = readObjects(Tracker.class, file);
+ return result;
+ }
+
+ public User[] readUsers(File file) throws IOException, XmlPullParserException {
+
+ User[] result = readObjects(User.class, file);
+ return result;
+ }
+
+ public Version[] readVersions(File file) throws IOException, XmlPullParserException {
+
+ Version[] result = readObjects(Version.class, file);
+ return result;
+ }
+
+ protected <O> O readObject(Class<O> klass, File file) throws IOException, XmlPullParserException {
+
+ O result = null;
+
if (file.exists() && file.isFile()) {
log.info("will parse project from: '" + file.getAbsolutePath() + "'");
- Reader reader = null;
- try {
- reader = ReaderFactory.newXmlReader(file);
- StringWriter sWriter = new StringWriter();
+ Reader reader = ReaderFactory.newXmlReader(file);
+ result = (O) Xpp3Helper.readObject(klass, reader);
- IOUtil.copy(reader, sWriter);
+ } else {
+ log.warn("the file was not found or is a not a file: '" + file.getAbsolutePath() + "'");
+ }
- String rawInput = sWriter.toString();
+ return result;
+ }
- StringReader sReader = new StringReader(rawInput);
+ protected <O> O[] readObjects(Class<O> klass, File file) throws IOException, XmlPullParserException {
- VersionsXpp3Reader modelReader = new VersionsXpp3Reader();
+ Object[] objects = null;
- version = modelReader.read(sReader);
+ if (file.exists() && file.isFile()) {
+ log.info("will parse project from: '" + file.getAbsolutePath() + "'");
+ Reader reader = ReaderFactory.newXmlReader(file);
+ objects = Xpp3Helper.readObjects(klass, reader);
- } finally {
- IOUtil.close(reader);
- }
} else {
- log.warn("the file was not find or is a not a file: '" + file.getAbsolutePath() + "'");
+ log.warn("the file was not found or is a not a file: '" + file.getAbsolutePath() + "'");
}
- return version;
+ O[] result = (O[]) Array.newInstance(klass, objects.length);
+ System.arraycopy(objects, 0, result, 0, result.length);
+ return result;
}
}
Modified: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/Project.java
===================================================================
--- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/Project.java 2009-09-07 22:56:48 UTC (rev 21)
+++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/Project.java 2009-09-07 22:57:18 UTC (rev 22)
@@ -20,7 +20,7 @@
protected int parentId;
protected int projectsCount;
protected int status;
- protected boolean ispublic;
+ protected boolean isPublic;
public Date getCreatedOn() {
return createdOn;
@@ -42,8 +42,8 @@
return identifier;
}
- public boolean isIspublic() {
- return ispublic;
+ public boolean isIsPublic() {
+ return isPublic;
}
public String getName() {
@@ -86,8 +86,8 @@
this.identifier = identifier;
}
- public void setIspublic(boolean ispublic) {
- this.ispublic = ispublic;
+ public void setIsPublic(boolean ispublic) {
+ this.isPublic = ispublic;
}
public void setName(String name) {
Modified: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/Tracker.java
===================================================================
--- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/Tracker.java 2009-09-07 22:56:48 UTC (rev 21)
+++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/Tracker.java 2009-09-07 22:57:18 UTC (rev 22)
@@ -7,5 +7,67 @@
*/
public class Tracker {
- protected String type;
+ protected int id;
+ protected int projectId;
+ protected int trackerId;
+ protected int position;
+ protected boolean isInChlog;
+ protected boolean isInRoadmap;
+ protected String name;
+
+ public int getId() {
+ return id;
+ }
+
+ public boolean isIsInChlog() {
+ return isInChlog;
+ }
+
+ public boolean isIsInRoadmap() {
+ return isInRoadmap;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public int getPosition() {
+ return position;
+ }
+
+ public int getProjectId() {
+ return projectId;
+ }
+
+ public int getTrackerId() {
+ return trackerId;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public void setIsInChlog(boolean isInChlog) {
+ this.isInChlog = isInChlog;
+ }
+
+ public void setIsInRoadmap(boolean isInRoadmap) {
+ this.isInRoadmap = isInRoadmap;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public void setPosition(int position) {
+ this.position = position;
+ }
+
+ public void setProjectId(int projectId) {
+ this.projectId = projectId;
+ }
+
+ public void setTrackerId(int trackerId) {
+ this.trackerId = trackerId;
+ }
}
Modified: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/User.java
===================================================================
--- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/User.java 2009-09-07 22:56:48 UTC (rev 21)
+++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/User.java 2009-09-07 22:57:18 UTC (rev 22)
@@ -1,5 +1,7 @@
package org.nuiton.redmine.model;
+import java.util.Date;
+
/**
*
* @author chemit
@@ -8,6 +10,148 @@
*/
public class User {
- protected String id;
- protected String email;
+ protected boolean admin;
+ protected boolean mailNotification;
+ protected int id;
+ protected int authSourceId;
+ protected int memberId;
+ protected int roleId;
+ protected int status;
+ protected Date createdOn;
+ protected Date updatedOn;
+ protected Date lastLoginOn;
+ protected String firstname;
+ protected String lastname;
+ protected String login;
+ protected String language;
+ protected String mail;
+ protected String hashedPassword;
+
+ public boolean isAdmin() {
+ return admin;
+ }
+
+ public int getAuthSourceId() {
+ return authSourceId;
+ }
+
+ public Date getCreatedOn() {
+ return createdOn;
+ }
+
+ public String getMail() {
+ return mail;
+ }
+
+ public String getFirstname() {
+ return firstname;
+ }
+
+ public String getHashedPassword() {
+ return hashedPassword;
+ }
+
+ public int getId() {
+ return id;
+ }
+
+ public String getLanguage() {
+ return language;
+ }
+
+ public Date getLastLoginOn() {
+ return lastLoginOn;
+ }
+
+ public String getLastname() {
+ return lastname;
+ }
+
+ public String getLogin() {
+ return login;
+ }
+
+ public boolean isMailNotification() {
+ return mailNotification;
+ }
+
+ public int getMemberId() {
+ return memberId;
+ }
+
+ public int getRoleId() {
+ return roleId;
+ }
+
+ public int getStatus() {
+ return status;
+ }
+
+ public Date getUpdatedOn() {
+ return updatedOn;
+ }
+
+ public void setAdmin(boolean admin) {
+ this.admin = admin;
+ }
+
+ public void setAuthSourceId(int authSourceId) {
+ this.authSourceId = authSourceId;
+ }
+
+ public void setCreatedOn(Date createdOn) {
+ this.createdOn = createdOn;
+ }
+
+ public void setMail(String email) {
+ this.mail = email;
+ }
+
+ public void setFirstname(String firstname) {
+ this.firstname = firstname;
+ }
+
+ public void setHashedPassword(String hashedPassword) {
+ this.hashedPassword = hashedPassword;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public void setLanguage(String language) {
+ this.language = language;
+ }
+
+ public void setLastLoginOn(Date lastLoginOn) {
+ this.lastLoginOn = lastLoginOn;
+ }
+
+ public void setLastname(String lastname) {
+ this.lastname = lastname;
+ }
+
+ public void setLogin(String login) {
+ this.login = login;
+ }
+
+ public void setMailNotification(boolean mailNotification) {
+ this.mailNotification = mailNotification;
+ }
+
+ public void setMemberId(int memberId) {
+ this.memberId = memberId;
+ }
+
+ public void setRoleId(int roleId) {
+ this.roleId = roleId;
+ }
+
+ public void setStatus(int status) {
+ this.status = status;
+ }
+
+ public void setUpdatedOn(Date updatedOn) {
+ this.updatedOn = updatedOn;
+ }
}
Modified: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/Version.java
===================================================================
--- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/Version.java 2009-09-07 22:56:48 UTC (rev 21)
+++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/Version.java 2009-09-07 22:57:18 UTC (rev 22)
@@ -14,7 +14,7 @@
protected Date effectiveDate;
protected String name;
protected String description;
- protected String wikiPagetitle;
+ protected String wikiPageTitle;
protected int id;
protected int projectId;
@@ -46,8 +46,8 @@
return updatedOn;
}
- public String getWikiPagetitle() {
- return wikiPagetitle;
+ public String getWikiPageTitle() {
+ return wikiPageTitle;
}
public void setCreatedOn(Date createdOn) {
@@ -78,7 +78,7 @@
this.updatedOn = updatedOn;
}
- public void setWikiPagetitle(String wikiPagetitle) {
- this.wikiPagetitle = wikiPagetitle;
+ public void setWikiPageTitle(String wikiPagetitle) {
+ this.wikiPageTitle = wikiPagetitle;
}
}
Deleted: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/AbstractXpp3Reader.java
===================================================================
--- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/AbstractXpp3Reader.java 2009-09-07 22:56:48 UTC (rev 21)
+++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/AbstractXpp3Reader.java 2009-09-07 22:57:18 UTC (rev 22)
@@ -1,649 +0,0 @@
-package org.nuiton.redmine.model.io.xpp3;
-
-import java.io.IOException;
-import java.io.Reader;
-import java.text.DateFormat;
-import java.util.Locale;
-import org.codehaus.plexus.util.ReaderFactory;
-import org.codehaus.plexus.util.xml.pull.MXParser;
-import org.codehaus.plexus.util.xml.pull.XmlPullParser;
-import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
-
-/**
- *
- * @param <M> le type du model a generer
- *
- * @author chemit
- * @since 1.0.0
- */
-public abstract class AbstractXpp3Reader<M> {
-
- /**
- * Read a parser, generate the model and return it.
- *
- * @param parser the parser
- * @param strict flag to force strict evaluation
- * @return the created model
- * @throws IOException if pb while reading
- * @throws XmlPullParserException if pb while parsing xml
- */
- protected abstract M doParse(XmlPullParser parser, boolean strict) throws IOException, XmlPullParserException;
- /**
- * If set the parser will be loaded with all single characters
- * from the XHTML specification.
- * The entities used:
- * <ul>
- * <li>http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent</li>
- * <li>http://www.w3.org/TR/xhtml1/DTD/xhtml-special.ent</li>
- * <li>http://www.w3.org/TR/xhtml1/DTD/xhtml-symbol.ent</li>
- * </ul>
- */
- private boolean addDefaultEntities = true;
-
- //-----------/
- //- Methods -/
- //-----------/
- /**
- * Returns the state of the "add default entities" flag.
- *
- * @return boolean
- */
- public boolean getAddDefaultEntities() {
- return addDefaultEntities;
- } //-- boolean getAddDefaultEntities()
-
- /**
- * Method getBooleanValue.
- *
- * @param s
- * @param parser
- * @param attribute
- * @throws XmlPullParserException
- * @return boolean
- */
- public boolean getBooleanValue(String s, String attribute, XmlPullParser parser)
- throws XmlPullParserException {
- return getBooleanValue(s, attribute, parser, null);
- } //-- boolean getBooleanValue( String, String, XmlPullParser )
-
- /**
- * Method getBooleanValue.
- *
- * @param s
- * @param defaultValue
- * @param parser
- * @param attribute
- * @throws XmlPullParserException
- * @return boolean
- */
- public boolean getBooleanValue(String s, String attribute, XmlPullParser parser, String defaultValue)
- throws XmlPullParserException {
- if (s != null && s.length() != 0) {
- return Boolean.valueOf(s).booleanValue();
- }
- if (defaultValue != null) {
- return Boolean.valueOf(defaultValue).booleanValue();
- }
- return false;
- } //-- boolean getBooleanValue( String, String, XmlPullParser, String )
-
- /**
- * Method getByteValue.
- *
- * @param s
- * @param strict
- * @param parser
- * @param attribute
- * @throws XmlPullParserException
- * @return byte
- */
- public byte getByteValue(String s, String attribute, XmlPullParser parser, boolean strict)
- throws XmlPullParserException {
- if (s != null) {
- try {
- return Byte.valueOf(s).byteValue();
- } catch (NumberFormatException e) {
- if (strict) {
- throw new XmlPullParserException("Unable to parse element '" + attribute + "', must be a byte", parser, null);
- }
- }
- }
- return 0;
- } //-- byte getByteValue( String, String, XmlPullParser, boolean )
-
- /**
- * Method getCharacterValue.
- *
- * @param s
- * @param parser
- * @param attribute
- * @throws XmlPullParserException
- * @return char
- */
- public char getCharacterValue(String s, String attribute, XmlPullParser parser)
- throws XmlPullParserException {
- if (s != null) {
- return s.charAt(0);
- }
- return 0;
- } //-- char getCharacterValue( String, String, XmlPullParser )
-
- /**
- * Method getDateValue.
- *
- * @param s
- * @param parser
- * @throws XmlPullParserException
- * @return java.util.Date
- */
- public java.util.Date getDateValue(String s, XmlPullParser parser)
- throws XmlPullParserException {
- return getDateValue(s, null, parser);
- } //-- java.util.Date getDateValue( String, String, XmlPullParser )
-
- /**
- * Method getDateValue.
- *
- * @param s
- * @param parser
- * @param dateFormat
- * @throws XmlPullParserException
- * @return java.util.Date
- */
- public java.util.Date getDateValue(String s, String dateFormat, XmlPullParser parser)
- throws XmlPullParserException {
- if (s != null) {
- DateFormat dateParser;
-
- if (dateFormat == null) {
- dateParser = DateFormat.getDateInstance();
- } else {
- dateParser = new java.text.SimpleDateFormat(dateFormat, Locale.US);
- }
- try {
- return dateParser.parse(s);
- } catch (java.text.ParseException e) {
- throw new XmlPullParserException(e.getMessage());
- }
- }
- return null;
- } //-- java.util.Date getDateValue( String, String, String, XmlPullParser )
-
- /**
- * Method getDoubleValue.
- *
- * @param s
- * @param strict
- * @param parser
- * @param attribute
- * @throws XmlPullParserException
- * @return double
- */
- public double getDoubleValue(String s, String attribute, XmlPullParser parser, boolean strict)
- throws XmlPullParserException {
- if (s != null) {
- try {
- return Double.valueOf(s).doubleValue();
- } catch (NumberFormatException e) {
- if (strict) {
- throw new XmlPullParserException("Unable to parse element '" + attribute + "', must be a floating point number", parser, null);
- }
- }
- }
- return 0;
- } //-- double getDoubleValue( String, String, XmlPullParser, boolean )
-
- /**
- * Method getFloatValue.
- *
- * @param s
- * @param strict
- * @param parser
- * @param attribute
- * @throws XmlPullParserException
- * @return float
- */
- public float getFloatValue(String s, String attribute, XmlPullParser parser, boolean strict)
- throws XmlPullParserException {
- if (s != null) {
- try {
- return Float.valueOf(s).floatValue();
- } catch (NumberFormatException e) {
- if (strict) {
- throw new XmlPullParserException("Unable to parse element '" + attribute + "', must be a floating point number", parser, null);
- }
- }
- }
- return 0;
- } //-- float getFloatValue( String, String, XmlPullParser, boolean )
-
- /**
- * Method getIntegerValue.
- *
- * @param s
- * @param strict
- * @param parser
- * @param attribute
- * @throws XmlPullParserException
- * @return int
- */
- public int getIntegerValue(String s, String attribute, XmlPullParser parser, boolean strict)
- throws XmlPullParserException {
- if (s != null) {
- try {
- return Integer.valueOf(s).intValue();
- } catch (NumberFormatException e) {
- if (strict) {
- throw new XmlPullParserException("Unable to parse element '" + attribute + "', must be an integer", parser, null);
- }
- }
- }
- return 0;
- } //-- int getIntegerValue( String, String, XmlPullParser, boolean )
-
- /**
- * Method getLongValue.
- *
- * @param s
- * @param strict
- * @param parser
- * @param attribute
- * @throws XmlPullParserException
- * @return long
- */
- public long getLongValue(String s, String attribute, XmlPullParser parser, boolean strict)
- throws XmlPullParserException {
- if (s != null) {
- try {
- return Long.valueOf(s).longValue();
- } catch (NumberFormatException e) {
- if (strict) {
- throw new XmlPullParserException("Unable to parse element '" + attribute + "', must be a long integer", parser, null);
- }
- }
- }
- return 0;
- } //-- long getLongValue( String, String, XmlPullParser, boolean )
-
- /**
- * Method getRequiredAttributeValue.
- *
- * @param s
- * @param strict
- * @param parser
- * @param attribute
- * @throws XmlPullParserException
- * @return String
- */
- public String getRequiredAttributeValue(String s, String attribute, XmlPullParser parser, boolean strict)
- throws XmlPullParserException {
- if (s == null) {
- if (strict) {
- throw new XmlPullParserException("Missing required value for attribute '" + attribute + "'", parser, null);
- }
- }
- return s;
- } //-- String getRequiredAttributeValue( String, String, XmlPullParser, boolean )
-
- /**
- * Method getShortValue.
- *
- * @param s
- * @param strict
- * @param parser
- * @param attribute
- * @throws XmlPullParserException
- * @return short
- */
- public short getShortValue(String s, String attribute, XmlPullParser parser, boolean strict)
- throws XmlPullParserException {
- if (s != null) {
- try {
- return Short.valueOf(s).shortValue();
- } catch (NumberFormatException e) {
- if (strict) {
- throw new XmlPullParserException("Unable to parse element '" + attribute + "', must be a short integer", parser, null);
- }
- }
- }
- return 0;
- } //-- short getShortValue( String, String, XmlPullParser, boolean )
-
- /**
- * Method getTrimmedValue.
- *
- * @param s
- * @return String
- */
- public String getTrimmedValue(String s) {
- if (s != null) {
- s = s.trim();
- }
- return s;
- } //-- String getTrimmedValue( String )
-
- /**
- *
- * @param type
- * @param parser
- * @param parsed
- * @return the text of the node
- * @throws XmlPullParserException
- * @throws IOException
- */
- protected String getText(String type, XmlPullParser parser, java.util.Set<String> parsed) throws XmlPullParserException, IOException {
- if (parsed.contains(type)) {
- throw new XmlPullParserException("Duplicated tag: '" + parser.getName() + "'", parser, null);
- }
- parsed.add(type);
- return getTrimmedValue(parser.nextText());
- } //-- String getText( String, XmlPullParser , java.util.Set )
-
- /**
- * @see ReaderFactory#newXmlReader
- *
- * @param reader
- * @throws IOException
- * @throws XmlPullParserException
- * @return Settings
- */
- public M read( Reader reader )
- throws IOException, XmlPullParserException
- {
- return read( reader, true );
- } //-- Settings read( Reader )
-
- /**
- * @see ReaderFactory#newXmlReader
- *
- * @param reader
- * @param strict
- * @throws IOException
- * @throws XmlPullParserException
- * @return Settings
- */
- public M read(Reader reader, boolean strict)
- throws IOException, XmlPullParserException {
- XmlPullParser parser = new MXParser();
-
- parser.setInput(reader);
-
- if (addDefaultEntities) {
- // ----------------------------------------------------------------------
- // Latin 1 entities
- // ----------------------------------------------------------------------
-
- parser.defineEntityReplacementText("nbsp", "\u00a0");
- parser.defineEntityReplacementText("iexcl", "\u00a1");
- parser.defineEntityReplacementText("cent", "\u00a2");
- parser.defineEntityReplacementText("pound", "\u00a3");
- parser.defineEntityReplacementText("curren", "\u00a4");
- parser.defineEntityReplacementText("yen", "\u00a5");
- parser.defineEntityReplacementText("brvbar", "\u00a6");
- parser.defineEntityReplacementText("sect", "\u00a7");
- parser.defineEntityReplacementText("uml", "\u00a8");
- parser.defineEntityReplacementText("copy", "\u00a9");
- parser.defineEntityReplacementText("ordf", "\u00aa");
- parser.defineEntityReplacementText("laquo", "\u00ab");
- parser.defineEntityReplacementText("not", "\u00ac");
- parser.defineEntityReplacementText("shy", "\u00ad");
- parser.defineEntityReplacementText("reg", "\u00ae");
- parser.defineEntityReplacementText("macr", "\u00af");
- parser.defineEntityReplacementText("deg", "\u00b0");
- parser.defineEntityReplacementText("plusmn", "\u00b1");
- parser.defineEntityReplacementText("sup2", "\u00b2");
- parser.defineEntityReplacementText("sup3", "\u00b3");
- parser.defineEntityReplacementText("acute", "\u00b4");
- parser.defineEntityReplacementText("micro", "\u00b5");
- parser.defineEntityReplacementText("para", "\u00b6");
- parser.defineEntityReplacementText("middot", "\u00b7");
- parser.defineEntityReplacementText("cedil", "\u00b8");
- parser.defineEntityReplacementText("sup1", "\u00b9");
- parser.defineEntityReplacementText("ordm", "\u00ba");
- parser.defineEntityReplacementText("raquo", "\u00bb");
- parser.defineEntityReplacementText("frac14", "\u00bc");
- parser.defineEntityReplacementText("frac12", "\u00bd");
- parser.defineEntityReplacementText("frac34", "\u00be");
- parser.defineEntityReplacementText("iquest", "\u00bf");
- parser.defineEntityReplacementText("Agrave", "\u00c0");
- parser.defineEntityReplacementText("Aacute", "\u00c1");
- parser.defineEntityReplacementText("Acirc", "\u00c2");
- parser.defineEntityReplacementText("Atilde", "\u00c3");
- parser.defineEntityReplacementText("Auml", "\u00c4");
- parser.defineEntityReplacementText("Aring", "\u00c5");
- parser.defineEntityReplacementText("AElig", "\u00c6");
- parser.defineEntityReplacementText("Ccedil", "\u00c7");
- parser.defineEntityReplacementText("Egrave", "\u00c8");
- parser.defineEntityReplacementText("Eacute", "\u00c9");
- parser.defineEntityReplacementText("Ecirc", "\u00ca");
- parser.defineEntityReplacementText("Euml", "\u00cb");
- parser.defineEntityReplacementText("Igrave", "\u00cc");
- parser.defineEntityReplacementText("Iacute", "\u00cd");
- parser.defineEntityReplacementText("Icirc", "\u00ce");
- parser.defineEntityReplacementText("Iuml", "\u00cf");
- parser.defineEntityReplacementText("ETH", "\u00d0");
- parser.defineEntityReplacementText("Ntilde", "\u00d1");
- parser.defineEntityReplacementText("Ograve", "\u00d2");
- parser.defineEntityReplacementText("Oacute", "\u00d3");
- parser.defineEntityReplacementText("Ocirc", "\u00d4");
- parser.defineEntityReplacementText("Otilde", "\u00d5");
- parser.defineEntityReplacementText("Ouml", "\u00d6");
- parser.defineEntityReplacementText("times", "\u00d7");
- parser.defineEntityReplacementText("Oslash", "\u00d8");
- parser.defineEntityReplacementText("Ugrave", "\u00d9");
- parser.defineEntityReplacementText("Uacute", "\u00da");
- parser.defineEntityReplacementText("Ucirc", "\u00db");
- parser.defineEntityReplacementText("Uuml", "\u00dc");
- parser.defineEntityReplacementText("Yacute", "\u00dd");
- parser.defineEntityReplacementText("THORN", "\u00de");
- parser.defineEntityReplacementText("szlig", "\u00df");
- parser.defineEntityReplacementText("agrave", "\u00e0");
- parser.defineEntityReplacementText("aacute", "\u00e1");
- parser.defineEntityReplacementText("acirc", "\u00e2");
- parser.defineEntityReplacementText("atilde", "\u00e3");
- parser.defineEntityReplacementText("auml", "\u00e4");
- parser.defineEntityReplacementText("aring", "\u00e5");
- parser.defineEntityReplacementText("aelig", "\u00e6");
- parser.defineEntityReplacementText("ccedil", "\u00e7");
- parser.defineEntityReplacementText("egrave", "\u00e8");
- parser.defineEntityReplacementText("eacute", "\u00e9");
- parser.defineEntityReplacementText("ecirc", "\u00ea");
- parser.defineEntityReplacementText("euml", "\u00eb");
- parser.defineEntityReplacementText("igrave", "\u00ec");
- parser.defineEntityReplacementText("iacute", "\u00ed");
- parser.defineEntityReplacementText("icirc", "\u00ee");
- parser.defineEntityReplacementText("iuml", "\u00ef");
- parser.defineEntityReplacementText("eth", "\u00f0");
- parser.defineEntityReplacementText("ntilde", "\u00f1");
- parser.defineEntityReplacementText("ograve", "\u00f2");
- parser.defineEntityReplacementText("oacute", "\u00f3");
- parser.defineEntityReplacementText("ocirc", "\u00f4");
- parser.defineEntityReplacementText("otilde", "\u00f5");
- parser.defineEntityReplacementText("ouml", "\u00f6");
- parser.defineEntityReplacementText("divide", "\u00f7");
- parser.defineEntityReplacementText("oslash", "\u00f8");
- parser.defineEntityReplacementText("ugrave", "\u00f9");
- parser.defineEntityReplacementText("uacute", "\u00fa");
- parser.defineEntityReplacementText("ucirc", "\u00fb");
- parser.defineEntityReplacementText("uuml", "\u00fc");
- parser.defineEntityReplacementText("yacute", "\u00fd");
- parser.defineEntityReplacementText("thorn", "\u00fe");
- parser.defineEntityReplacementText("yuml", "\u00ff");
-
- // ----------------------------------------------------------------------
- // Special entities
- // ----------------------------------------------------------------------
-
- parser.defineEntityReplacementText("OElig", "\u0152");
- parser.defineEntityReplacementText("oelig", "\u0153");
- parser.defineEntityReplacementText("Scaron", "\u0160");
- parser.defineEntityReplacementText("scaron", "\u0161");
- parser.defineEntityReplacementText("Yuml", "\u0178");
- parser.defineEntityReplacementText("circ", "\u02c6");
- parser.defineEntityReplacementText("tilde", "\u02dc");
- parser.defineEntityReplacementText("ensp", "\u2002");
- parser.defineEntityReplacementText("emsp", "\u2003");
- parser.defineEntityReplacementText("thinsp", "\u2009");
- parser.defineEntityReplacementText("zwnj", "\u200c");
- parser.defineEntityReplacementText("zwj", "\u200d");
- parser.defineEntityReplacementText("lrm", "\u200e");
- parser.defineEntityReplacementText("rlm", "\u200f");
- parser.defineEntityReplacementText("ndash", "\u2013");
- parser.defineEntityReplacementText("mdash", "\u2014");
- parser.defineEntityReplacementText("lsquo", "\u2018");
- parser.defineEntityReplacementText("rsquo", "\u2019");
- parser.defineEntityReplacementText("sbquo", "\u201a");
- parser.defineEntityReplacementText("ldquo", "\u201c");
- parser.defineEntityReplacementText("rdquo", "\u201d");
- parser.defineEntityReplacementText("bdquo", "\u201e");
- parser.defineEntityReplacementText("dagger", "\u2020");
- parser.defineEntityReplacementText("Dagger", "\u2021");
- parser.defineEntityReplacementText("permil", "\u2030");
- parser.defineEntityReplacementText("lsaquo", "\u2039");
- parser.defineEntityReplacementText("rsaquo", "\u203a");
- parser.defineEntityReplacementText("euro", "\u20ac");
-
- // ----------------------------------------------------------------------
- // Symbol entities
- // ----------------------------------------------------------------------
-
- parser.defineEntityReplacementText("fnof", "\u0192");
- parser.defineEntityReplacementText("Alpha", "\u0391");
- parser.defineEntityReplacementText("Beta", "\u0392");
- parser.defineEntityReplacementText("Gamma", "\u0393");
- parser.defineEntityReplacementText("Delta", "\u0394");
- parser.defineEntityReplacementText("Epsilon", "\u0395");
- parser.defineEntityReplacementText("Zeta", "\u0396");
- parser.defineEntityReplacementText("Eta", "\u0397");
- parser.defineEntityReplacementText("Theta", "\u0398");
- parser.defineEntityReplacementText("Iota", "\u0399");
- parser.defineEntityReplacementText("Kappa", "\u039a");
- parser.defineEntityReplacementText("Lambda", "\u039b");
- parser.defineEntityReplacementText("Mu", "\u039c");
- parser.defineEntityReplacementText("Nu", "\u039d");
- parser.defineEntityReplacementText("Xi", "\u039e");
- parser.defineEntityReplacementText("Omicron", "\u039f");
- parser.defineEntityReplacementText("Pi", "\u03a0");
- parser.defineEntityReplacementText("Rho", "\u03a1");
- parser.defineEntityReplacementText("Sigma", "\u03a3");
- parser.defineEntityReplacementText("Tau", "\u03a4");
- parser.defineEntityReplacementText("Upsilon", "\u03a5");
- parser.defineEntityReplacementText("Phi", "\u03a6");
- parser.defineEntityReplacementText("Chi", "\u03a7");
- parser.defineEntityReplacementText("Psi", "\u03a8");
- parser.defineEntityReplacementText("Omega", "\u03a9");
- parser.defineEntityReplacementText("alpha", "\u03b1");
- parser.defineEntityReplacementText("beta", "\u03b2");
- parser.defineEntityReplacementText("gamma", "\u03b3");
- parser.defineEntityReplacementText("delta", "\u03b4");
- parser.defineEntityReplacementText("epsilon", "\u03b5");
- parser.defineEntityReplacementText("zeta", "\u03b6");
- parser.defineEntityReplacementText("eta", "\u03b7");
- parser.defineEntityReplacementText("theta", "\u03b8");
- parser.defineEntityReplacementText("iota", "\u03b9");
- parser.defineEntityReplacementText("kappa", "\u03ba");
- parser.defineEntityReplacementText("lambda", "\u03bb");
- parser.defineEntityReplacementText("mu", "\u03bc");
- parser.defineEntityReplacementText("nu", "\u03bd");
- parser.defineEntityReplacementText("xi", "\u03be");
- parser.defineEntityReplacementText("omicron", "\u03bf");
- parser.defineEntityReplacementText("pi", "\u03c0");
- parser.defineEntityReplacementText("rho", "\u03c1");
- parser.defineEntityReplacementText("sigmaf", "\u03c2");
- parser.defineEntityReplacementText("sigma", "\u03c3");
- parser.defineEntityReplacementText("tau", "\u03c4");
- parser.defineEntityReplacementText("upsilon", "\u03c5");
- parser.defineEntityReplacementText("phi", "\u03c6");
- parser.defineEntityReplacementText("chi", "\u03c7");
- parser.defineEntityReplacementText("psi", "\u03c8");
- parser.defineEntityReplacementText("omega", "\u03c9");
- parser.defineEntityReplacementText("thetasym", "\u03d1");
- parser.defineEntityReplacementText("upsih", "\u03d2");
- parser.defineEntityReplacementText("piv", "\u03d6");
- parser.defineEntityReplacementText("bull", "\u2022");
- parser.defineEntityReplacementText("hellip", "\u2026");
- parser.defineEntityReplacementText("prime", "\u2032");
- parser.defineEntityReplacementText("Prime", "\u2033");
- parser.defineEntityReplacementText("oline", "\u203e");
- parser.defineEntityReplacementText("frasl", "\u2044");
- parser.defineEntityReplacementText("weierp", "\u2118");
- parser.defineEntityReplacementText("image", "\u2111");
- parser.defineEntityReplacementText("real", "\u211c");
- parser.defineEntityReplacementText("trade", "\u2122");
- parser.defineEntityReplacementText("alefsym", "\u2135");
- parser.defineEntityReplacementText("larr", "\u2190");
- parser.defineEntityReplacementText("uarr", "\u2191");
- parser.defineEntityReplacementText("rarr", "\u2192");
- parser.defineEntityReplacementText("darr", "\u2193");
- parser.defineEntityReplacementText("harr", "\u2194");
- parser.defineEntityReplacementText("crarr", "\u21b5");
- parser.defineEntityReplacementText("lArr", "\u21d0");
- parser.defineEntityReplacementText("uArr", "\u21d1");
- parser.defineEntityReplacementText("rArr", "\u21d2");
- parser.defineEntityReplacementText("dArr", "\u21d3");
- parser.defineEntityReplacementText("hArr", "\u21d4");
- parser.defineEntityReplacementText("forall", "\u2200");
- parser.defineEntityReplacementText("part", "\u2202");
- parser.defineEntityReplacementText("exist", "\u2203");
- parser.defineEntityReplacementText("empty", "\u2205");
- parser.defineEntityReplacementText("nabla", "\u2207");
- parser.defineEntityReplacementText("isin", "\u2208");
- parser.defineEntityReplacementText("notin", "\u2209");
- parser.defineEntityReplacementText("ni", "\u220b");
- parser.defineEntityReplacementText("prod", "\u220f");
- parser.defineEntityReplacementText("sum", "\u2211");
- parser.defineEntityReplacementText("minus", "\u2212");
- parser.defineEntityReplacementText("lowast", "\u2217");
- parser.defineEntityReplacementText("radic", "\u221a");
- parser.defineEntityReplacementText("prop", "\u221d");
- parser.defineEntityReplacementText("infin", "\u221e");
- parser.defineEntityReplacementText("ang", "\u2220");
- parser.defineEntityReplacementText("and", "\u2227");
- parser.defineEntityReplacementText("or", "\u2228");
- parser.defineEntityReplacementText("cap", "\u2229");
- parser.defineEntityReplacementText("cup", "\u222a");
- parser.defineEntityReplacementText("int", "\u222b");
- parser.defineEntityReplacementText("there4", "\u2234");
- parser.defineEntityReplacementText("sim", "\u223c");
- parser.defineEntityReplacementText("cong", "\u2245");
- parser.defineEntityReplacementText("asymp", "\u2248");
- parser.defineEntityReplacementText("ne", "\u2260");
- parser.defineEntityReplacementText("equiv", "\u2261");
- parser.defineEntityReplacementText("le", "\u2264");
- parser.defineEntityReplacementText("ge", "\u2265");
- parser.defineEntityReplacementText("sub", "\u2282");
- parser.defineEntityReplacementText("sup", "\u2283");
- parser.defineEntityReplacementText("nsub", "\u2284");
- parser.defineEntityReplacementText("sube", "\u2286");
- parser.defineEntityReplacementText("supe", "\u2287");
- parser.defineEntityReplacementText("oplus", "\u2295");
- parser.defineEntityReplacementText("otimes", "\u2297");
- parser.defineEntityReplacementText("perp", "\u22a5");
- parser.defineEntityReplacementText("sdot", "\u22c5");
- parser.defineEntityReplacementText("lceil", "\u2308");
- parser.defineEntityReplacementText("rceil", "\u2309");
- parser.defineEntityReplacementText("lfloor", "\u230a");
- parser.defineEntityReplacementText("rfloor", "\u230b");
- parser.defineEntityReplacementText("lang", "\u2329");
- parser.defineEntityReplacementText("rang", "\u232a");
- parser.defineEntityReplacementText("loz", "\u25ca");
- parser.defineEntityReplacementText("spades", "\u2660");
- parser.defineEntityReplacementText("clubs", "\u2663");
- parser.defineEntityReplacementText("hearts", "\u2665");
- parser.defineEntityReplacementText("diams", "\u2666");
-
- }
-
- parser.next();
- return doParse(parser, strict);
- } //-- Settings read( Reader, boolean )
-
- /**
- * Sets the state of the "add default entities" flag.
- *
- * @param addDefaultEntities
- */
- public void setAddDefaultEntities(boolean addDefaultEntities) {
- this.addDefaultEntities = addDefaultEntities;
- } //-- void setAddDefaultEntities( boolean )
-}
Added: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/AttachmentXpp3Reader.java
===================================================================
--- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/AttachmentXpp3Reader.java (rev 0)
+++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/AttachmentXpp3Reader.java 2009-09-07 22:57:18 UTC (rev 22)
@@ -0,0 +1,39 @@
+package org.nuiton.redmine.model.io.xpp3;
+
+import java.beans.IntrospectionException;
+import org.nuiton.redmine.model.Attachment;
+
+/**
+ * {@link Attachment} reader.
+ *
+ * @author chemit
+ * @since 1.0.0
+ */
+public class AttachmentXpp3Reader extends RedmineAbstractXpp3Reader {
+
+ public AttachmentXpp3Reader() {
+ super(Attachment.class);
+ }
+
+ @Override
+ protected void initMappers() throws IntrospectionException {
+
+ addMappers(Attachment.class, RedmineDataConverter.Integer, true,
+ "author-id",
+ "container-id",
+ "filesize",
+ "downloads",
+ "id");
+
+ addMappers(Attachment.class, RedmineDataConverter.Datetime, true,
+ "created-on");
+
+ addMappers(Attachment.class, RedmineDataConverter.Text, true,
+ "container-type",
+ "content-type",
+ "description",
+ "digest",
+ "disk-filename",
+ "filename");
+ }
+}
Property changes on: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/AttachmentXpp3Reader.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL
Added: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/IssueXpp3Reader.java
===================================================================
--- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/IssueXpp3Reader.java (rev 0)
+++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/IssueXpp3Reader.java 2009-09-07 22:57:18 UTC (rev 22)
@@ -0,0 +1,49 @@
+package org.nuiton.redmine.model.io.xpp3;
+
+import java.beans.IntrospectionException;
+import org.nuiton.redmine.model.Issue;
+
+/**
+ * {@link Issue} reader.
+ *
+ * @author chemit
+ * @since 1.0.0
+ */
+public class IssueXpp3Reader extends RedmineAbstractXpp3Reader {
+
+ public IssueXpp3Reader() {
+ super(Issue.class);
+ }
+
+ @Override
+ protected void initMappers() throws IntrospectionException {
+
+ addMappers(Issue.class, RedmineDataConverter.Integer, true,
+ "assigned-to-id",
+ "author-id",
+ "category-id",
+ "done-ratio",
+ "lock-version",
+ "priority-id",
+ "project-id",
+ "status-id",
+ "tracker-id",
+ "fixed-version-id",
+ "id");
+
+ addMappers(Issue.class, RedmineDataConverter.Float, true,
+ "estimated-hours");
+
+ addMappers(Issue.class, RedmineDataConverter.Datetime, true,
+ "created-on",
+ "updated-on");
+
+ addMappers(Issue.class, RedmineDataConverter.Date, true,
+ "due-date",
+ "start-date");
+
+ addMappers(Issue.class, RedmineDataConverter.Text, true,
+ "description",
+ "subject");
+ }
+}
Property changes on: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/IssueXpp3Reader.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL
Modified: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/ProjectXpp3Reader.java
===================================================================
--- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/ProjectXpp3Reader.java 2009-09-07 22:56:48 UTC (rev 21)
+++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/ProjectXpp3Reader.java 2009-09-07 22:57:18 UTC (rev 22)
@@ -1,94 +1,40 @@
package org.nuiton.redmine.model.io.xpp3;
-import java.io.IOException;
-import org.codehaus.plexus.util.xml.pull.XmlPullParser;
-import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
+import java.beans.IntrospectionException;
import org.nuiton.redmine.model.Project;
/**
+ * {@link Project} reader.
*
* @author chemit
* @since 1.0.0
*/
-public class ProjectXpp3Reader extends AbstractXpp3Reader<Project> {
+public class ProjectXpp3Reader extends RedmineAbstractXpp3Reader {
+ public ProjectXpp3Reader() {
+ super(Project.class);
+ }
+
@Override
- protected Project doParse(XmlPullParser parser, boolean strict) throws IOException, XmlPullParserException {
+ protected void initMappers() throws IntrospectionException {
- Project project = new Project();
+ addMappers(Project.class, RedmineDataConverter.Integer, true,
+ "id",
+ "parent-id",
+ "projects-count",
+ "status");
- java.util.Set<String> parsed = new java.util.HashSet<String>();
- int eventType = parser.getEventType();
- boolean foundRoot = false;
- while (eventType != XmlPullParser.END_DOCUMENT) {
- String txt;
- if (eventType == XmlPullParser.START_TAG) {
- if (parser.getName().equals("project")) {
- foundRoot = true;
- } else if (parser.getName().equals("created-on")) {
- txt = getText("created-on", parser, parsed);
- if (txt != null && !txt.isEmpty()) {
- project.setCreatedOn(getDateValue(txt, "yyyy-MM-dd'T'HH:mm:ss'+'SS':'SS", parser));
- }
- } else if (parser.getName().equals("updated-on")) {
- txt = getText("updated-on", parser, parsed);
- if (txt != null && !txt.isEmpty()) {
- project.setUpdatedOn(getDateValue(txt, "yyyy-MM-dd'T'HH:mm:ss'+'SS':'SS",parser));
- }
- } else if (parser.getName().equals("description")) {
- txt = getText("description", parser, parsed);
- if (txt != null && !txt.isEmpty()) {
- project.setDescription(txt);
- }
- } else if (parser.getName().equals("homepage")) {
- txt = getText("homepage", parser, parsed);
- if (txt != null && !txt.isEmpty()) {
- project.setHomepage(txt);
- }
- } else if (parser.getName().equals("name")) {
- txt = getText("name", parser, parsed);
- if (txt != null && !txt.isEmpty()) {
- project.setName(txt);
- }
- } else if (parser.getName().equals("identifier")) {
- txt = getText("identifier", parser, parsed);
- if (txt != null && !txt.isEmpty()) {
- project.setIdentifier(txt);
- }
- } else if (parser.getName().equals("id")) {
- txt = getText("id", parser, parsed);
- if (txt != null && !txt.isEmpty()) {
- project.setId(getIntegerValue(txt, null, parser, strict));
- }
+ addMappers(Project.class, RedmineDataConverter.Boolean, true,
+ "is-public");
- } else if (parser.getName().equals("parent-id")) {
- txt = getText("parent-id", parser, parsed);
- if (txt != null && !txt.isEmpty()) {
- project.setParentId(getIntegerValue(txt, null, parser, strict));
- }
+ addMappers(Project.class, RedmineDataConverter.Datetime, true,
+ "created-on",
+ "updated-on");
- } else if (parser.getName().equals("projects-count")) {
- txt = getText("projects-count", parser, parsed);
- if (txt != null && !txt.isEmpty()) {
- project.setProjectsCount(getIntegerValue(txt, null, parser, strict));
- }
-
- } else if (parser.getName().equals("status")) {
- txt = getText("status", parser, parsed);
- if (txt != null && !txt.isEmpty()) {
- project.setStatus(getIntegerValue(txt, null, parser, strict));
- }
- } else if (parser.getName().equals("is-public")) {
- txt = getText("is-public", parser, parsed);
- if (txt != null && !txt.isEmpty()) {
- project.setIspublic(getBooleanValue(txt, null, parser));
- }
- } else if (strict) {
- throw new XmlPullParserException("Unrecognised tag: '" + parser.getName() + "'", parser, null);
- }
- }
- eventType = parser.next();
- }
- return project;
+ addMappers(Project.class, RedmineDataConverter.Text, true,
+ "description",
+ "homepage",
+ "identifier",
+ "name");
}
}
Copied: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/RedmineAbstractXpp3Reader.java (from rev 20, maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/AbstractXpp3Reader.java)
===================================================================
--- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/RedmineAbstractXpp3Reader.java (rev 0)
+++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/RedmineAbstractXpp3Reader.java 2009-09-07 22:57:18 UTC (rev 22)
@@ -0,0 +1,160 @@
+package org.nuiton.redmine.model.io.xpp3;
+
+import org.nuiton.io.xpp3.PropertyMapper;
+import java.beans.BeanInfo;
+import java.beans.IntrospectionException;
+import java.beans.Introspector;
+import java.beans.PropertyDescriptor;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.Locale;
+import org.apache.commons.lang.StringUtils;
+import org.nuiton.io.xpp3.AbstractXpp3Reader;
+import org.nuiton.io.xpp3.DataConverter;
+
+/**
+ * A base xpp parser for redmin xml streams.
+ *
+ * We just define here a convient method to add {@link RedminePropertyMapper} to parser.
+ *
+ * To implements a new parser, just implements the {@link #initMappers()} method.
+ *
+ * Example :
+ * <pre>
+ *
+ * @Override
+ * protected void initMappers() throws IntrospectionException {
+ *
+ * addMappers(Project.class, RedmineDataConverter.Integer, true, "id");
+ *
+ * addMappers(Project.class, RedmineDataConverter.Boolean, true, "is-public");
+ *
+ * addMappers(Project.class, RedmineDataConverter.Datetime, true, "created-on");
+ *
+ * addMappers(Project.class, RedmineDataConverter.Text, true, "name");
+ * }
+ * </pre>
+ *
+ * @author chemit
+ * @since 1.0.0
+ * @see AbstractXpp3Reader
+ */
+public abstract class RedmineAbstractXpp3Reader extends AbstractXpp3Reader {
+
+ public RedmineAbstractXpp3Reader(Class<?> type) {
+ super(type, Introspector.decapitalize(type.getSimpleName()));
+ }
+
+ protected void addMappers(Class<?> srcType, RedmineDataConverter type, boolean onlyOne, String... tagNames) throws IntrospectionException {
+ for (String tagName : tagNames) {
+
+ // the tag-name is transformed to tagName
+ String[] parts = tagName.split("-");
+ StringBuilder buffer = new StringBuilder();
+ for (int i = 0, j = parts.length; i < j; i++) {
+ if (i == 0) {
+ buffer.append(parts[i]);
+ } else {
+ buffer.append(StringUtils.capitalize(parts[i]));
+ }
+ }
+ String propertyName = buffer.toString();
+ BeanInfo beanInfo = Introspector.getBeanInfo(srcType);
+ PropertyDescriptor descriptor = null;
+ for (PropertyDescriptor propertyDescriptor : beanInfo.getPropertyDescriptors()) {
+ if (propertyDescriptor.getName().equals(propertyName)) {
+ descriptor = propertyDescriptor;
+ break;
+ }
+ }
+ if (descriptor == null) {
+ throw new IllegalArgumentException("could not find a property descriptor for property " + propertyName + " of " + srcType);
+ }
+
+ PropertyMapper mapper = new PropertyMapper.TagTextContentToProperty(tagName, propertyName, type, onlyOne, descriptor);
+
+ allMappers.put(srcType.getName() + "#" + tagName, mapper);
+ }
+ }
+
+ /**
+ * A enumaration to conver some data from a string representation.
+ *
+ * Can not use directly a converter from commons-beans library, since we have
+ * several different converter to use for same type (see {@link #Date} and
+ * {@link #Datetime}).
+ *
+ * @author chemit
+ * @since 1.0.0
+ */
+ public enum RedmineDataConverter implements DataConverter {
+
+ Boolean {
+
+ @Override
+ public Object convert(String t) throws Exception {
+ Object r = java.lang.Boolean.valueOf(t);
+ return r;
+ }
+ }, Short {
+
+ @Override
+ public Object convert(String t) throws Exception {
+ Object r = java.lang.Short.valueOf(t);
+ return r;
+ }
+ }, Integer {
+
+ @Override
+ public Object convert(String t) throws Exception {
+ Object r = java.lang.Integer.valueOf(t);
+ return r;
+ }
+ }, Long {
+
+ @Override
+ public Object convert(String t) throws Exception {
+ Object r = java.lang.Long.valueOf(t);
+ return r;
+ }
+ }, Float {
+
+ @Override
+ public Object convert(String t) throws Exception {
+ Object r = java.lang.Float.valueOf(t);
+ return r;
+ }
+ }, Double {
+
+ @Override
+ public Object convert(String t) throws Exception {
+ Object r = java.lang.Double.valueOf(t);
+ return r;
+ }
+ }, Date {
+
+ @Override
+ public Object convert(String t) throws Exception {
+ Object r = dateParser.parse(t);
+ return r;
+ }
+ }, Datetime {
+
+ @Override
+ public Object convert(String t) throws Exception {
+ Object r = datetimeParser.parse(t);
+ return r;
+ }
+ }, Text {
+
+ @Override
+ public Object convert(String t) throws Exception {
+ return t;
+ }
+ };
+ //FIXME TC20090907 this a a big hack (the + party) redmine returns us a timezone
+ // in a format we can not deal with (+hh:mm), so actually, ignore it...
+ static final DateFormat datetimeParser = new SimpleDateFormat("yyyy-MM-dd\'T\'HH:mm:ss\'+\'SS\':\'SS", Locale.US);
+ static final DateFormat dateParser = new SimpleDateFormat("yyyy-MM-dd", Locale.US);
+ }
+}
Property changes on: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/RedmineAbstractXpp3Reader.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL
Added: svn:mergeinfo
+
Added: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/TrackerXpp3Reader.java
===================================================================
--- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/TrackerXpp3Reader.java (rev 0)
+++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/TrackerXpp3Reader.java 2009-09-07 22:57:18 UTC (rev 22)
@@ -0,0 +1,33 @@
+package org.nuiton.redmine.model.io.xpp3;
+
+import java.beans.IntrospectionException;
+import org.nuiton.redmine.model.Tracker;
+
+/**
+ * {@link Tracker} reader.
+ *
+ * @author chemit
+ * @since 1.0.0
+ */
+public class TrackerXpp3Reader extends RedmineAbstractXpp3Reader {
+
+ public TrackerXpp3Reader() {
+ super(Tracker.class);
+ }
+
+ @Override
+ protected void initMappers() throws IntrospectionException {
+
+ addMappers(Tracker.class, RedmineDataConverter.Integer, true,
+ "id",
+ "project-id",
+ "tracker-id",
+ "position");
+
+ addMappers(Tracker.class, RedmineDataConverter.Boolean, true,
+ "is-in-chlog",
+ "is-in-roadmap");
+
+ addMappers(Tracker.class, RedmineDataConverter.Text, true, "name");
+ }
+}
Property changes on: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/TrackerXpp3Reader.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL
Added: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/UserXpp3Reader.java
===================================================================
--- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/UserXpp3Reader.java (rev 0)
+++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/UserXpp3Reader.java 2009-09-07 22:57:18 UTC (rev 22)
@@ -0,0 +1,45 @@
+package org.nuiton.redmine.model.io.xpp3;
+
+import java.beans.IntrospectionException;
+import org.nuiton.redmine.model.User;
+
+/**
+ * {@link User} reader.
+ *
+ * @author chemit
+ * @since 1.0.0
+ */
+public class UserXpp3Reader extends RedmineAbstractXpp3Reader {
+
+ public UserXpp3Reader() {
+ super(User.class);
+ }
+
+ @Override
+ protected void initMappers() throws IntrospectionException {
+
+ addMappers(User.class, RedmineDataConverter.Integer, true,
+ "id",
+ "auth-source-id",
+ "member-id",
+ "role-id",
+ "status");
+
+ addMappers(User.class, RedmineDataConverter.Boolean, true,
+ "admin",
+ "mail-notification");
+
+ addMappers(User.class, RedmineDataConverter.Datetime, true,
+ "created-on",
+ "updated-on",
+ "last-login-on");
+
+ addMappers(User.class, RedmineDataConverter.Text, true,
+ "firstname",
+ "hashed-password",
+ "language",
+ "lastname",
+ "login",
+ "mail");
+ }
+}
Property changes on: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/UserXpp3Reader.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL
Copied: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/VersionXpp3Reader.java (from rev 20, maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/VersionsXpp3Reader.java)
===================================================================
--- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/VersionXpp3Reader.java (rev 0)
+++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/VersionXpp3Reader.java 2009-09-07 22:57:18 UTC (rev 22)
@@ -0,0 +1,34 @@
+package org.nuiton.redmine.model.io.xpp3;
+
+import java.beans.IntrospectionException;
+import org.nuiton.redmine.model.Version;
+
+/**
+ * {@link Version} reader.
+ * @author chemit
+ * @since 1.0.0
+ */
+public class VersionXpp3Reader extends RedmineAbstractXpp3Reader {
+
+ public VersionXpp3Reader() {
+ super(Version.class);
+ }
+
+ @Override
+ protected void initMappers() throws IntrospectionException {
+
+ addMappers(Version.class, RedmineDataConverter.Integer, true,
+ "id",
+ "project-id");
+
+ addMappers(Version.class, RedmineDataConverter.Datetime, true,
+ "created-on",
+ "updated-on");
+ addMappers(Version.class, RedmineDataConverter.Date, true, "effective-date");
+
+ addMappers(Version.class, RedmineDataConverter.Text, true,
+ "name",
+ "description",
+ "wiki-page-title");
+ }
+}
Property changes on: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/VersionXpp3Reader.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL
Added: svn:mergeinfo
+
Deleted: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/VersionsXpp3Reader.java
===================================================================
--- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/VersionsXpp3Reader.java 2009-09-07 22:56:48 UTC (rev 21)
+++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/VersionsXpp3Reader.java 2009-09-07 22:57:18 UTC (rev 22)
@@ -1,77 +0,0 @@
-package org.nuiton.redmine.model.io.xpp3;
-
-import java.io.IOException;
-import org.codehaus.plexus.util.xml.pull.XmlPullParser;
-import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
-import org.nuiton.redmine.model.Version;
-
-/**
- *
- * @author chemit
- * @since 1.0.0
- */
-public class VersionsXpp3Reader extends AbstractXpp3Reader<Version> {
-
- @Override
- protected Version doParse(XmlPullParser parser, boolean strict) throws IOException, XmlPullParserException {
-
- Version version = new Version();
-
- java.util.Set<String> parsed = new java.util.HashSet<String>();
- int eventType = parser.getEventType();
- boolean foundRoot = false;
- while (eventType != XmlPullParser.END_DOCUMENT) {
- String txt;
- if (eventType == XmlPullParser.START_TAG) {
- if (parser.getName().equals("version")) {
- foundRoot = true;
- } else if (parser.getName().equals("created-on")) {
- txt = getText("created-on", parser, parsed);
- if (txt != null && !txt.isEmpty()) {
- version.setCreatedOn(getDateValue(txt, "yyyy-MM-dd'T'HH:mm:ss'+'SS':'SS", parser));
- }
- } else if (parser.getName().equals("updated-on")) {
- txt = getText("updated-on", parser, parsed);
- if (txt != null && !txt.isEmpty()) {
- version.setUpdatedOn(getDateValue(txt,"yyyy-MM-dd'T'HH:mm:ss'+'SS':'SS", parser));
- }
- } else if (parser.getName().equals("effective-date")) {
- txt = getText("effective-date", parser, parsed);
- if (txt != null && !txt.isEmpty()) {
- version.setEffectiveDate(getDateValue(txt,"yyyy-MM-dd'T'HH:mm:ss'+'SS':'SS", parser));
- }
- } else if (parser.getName().equals("description")) {
- txt = getText("description", parser, parsed);
- if (txt != null && !txt.isEmpty()) {
- version.setDescription(txt);
- }
- } else if (parser.getName().equals("wiki-page-title")) {
- txt = getText("wiki-page-title", parser, parsed);
- if (txt != null && !txt.isEmpty()) {
- version.setWikiPagetitle(txt);
- }
- } else if (parser.getName().equals("name")) {
- txt = getText("name", parser, parsed);
- if (txt != null && !txt.isEmpty()) {
- version.setName(txt);
- }
- } else if (parser.getName().equals("id")) {
- txt = getText("id", parser, parsed);
- if (txt != null && !txt.isEmpty()) {
- version.setId(getIntegerValue(txt, null, parser, strict));
- }
-
- } else if (parser.getName().equals("project-id")) {
- txt = getText("project-id", parser, parsed);
- if (txt != null && !txt.isEmpty()) {
- version.setProjectId(getIntegerValue(txt, null, parser, strict));
- }
- } else if (strict) {
- throw new XmlPullParserException("Unrecognised tag: '" + parser.getName() + "'", parser, null);
- }
- }
- eventType = parser.next();
- }
- return version;
- }
-}
Added: maven-redmine-plugin/trunk/src/main/resources/META-INF/services/org.nuiton.io.xpp3.Xpp3Reader
===================================================================
--- maven-redmine-plugin/trunk/src/main/resources/META-INF/services/org.nuiton.io.xpp3.Xpp3Reader (rev 0)
+++ maven-redmine-plugin/trunk/src/main/resources/META-INF/services/org.nuiton.io.xpp3.Xpp3Reader 2009-09-07 22:57:18 UTC (rev 22)
@@ -0,0 +1,6 @@
+org.nuiton.redmine.model.io.xpp3.AttachmentXpp3Reader
+org.nuiton.redmine.model.io.xpp3.IssueXpp3Reader
+org.nuiton.redmine.model.io.xpp3.ProjectXpp3Reader
+org.nuiton.redmine.model.io.xpp3.TrackerXpp3Reader
+org.nuiton.redmine.model.io.xpp3.UserXpp3Reader
+org.nuiton.redmine.model.io.xpp3.VersionXpp3Reader
Added: maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/model/ModelBuilderTest.java
===================================================================
--- maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/model/ModelBuilderTest.java (rev 0)
+++ maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/model/ModelBuilderTest.java 2009-09-07 22:57:18 UTC (rev 22)
@@ -0,0 +1,559 @@
+package org.nuiton.redmine.model;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import org.apache.maven.plugin.logging.SystemStreamLog;
+import org.codehaus.plexus.PlexusTestCase;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.nuiton.io.xpp3.AbstractXpp3Reader;
+import org.nuiton.io.xpp3.Xpp3Helper;
+import org.nuiton.io.xpp3.Xpp3Reader;
+import org.nuiton.redmine.model.io.xpp3.RedmineAbstractXpp3Reader;
+import org.nuiton.io.xpp3.PropertyMapper;
+import org.nuiton.redmine.model.io.xpp3.RedmineAbstractXpp3Reader.RedmineDataConverter;
+
+/**
+ *
+ * @author chemit
+ * @since 1.0.0
+ */
+public class ModelBuilderTest {
+
+ protected static File basedir;
+ protected static File testDir;
+ protected static ModelBuilder builder;
+
+ protected static File getBaseDir() {
+ if (basedir == null) {
+
+ String path = PlexusTestCase.getBasedir();
+ basedir = new File(path);
+ }
+ return basedir;
+ }
+
+ protected static File getTestDir() {
+ return testDir;
+ }
+
+ @BeforeClass
+ public static void setUpClass() throws Exception {
+
+ String rep = ModelBuilderTest.class.getName();
+ rep = rep.replaceAll("\\.", File.separator);
+
+ File f = new File(getBaseDir(), "src" + File.separator + "test" + File.separator + "resources");
+ testDir = new File(f, rep).getParentFile();
+ System.out.println("test dir : " + testDir);
+ builder = new ModelBuilder(new SystemStreamLog());
+
+ String verboseStr = System.getProperty("showGeneratedCode", "false");
+
+ Boolean verbose = Boolean.valueOf(verboseStr);
+ if (verbose) {
+ builder.log.info("showGeneratedCode");
+ Iterator<Xpp3Reader> readers = Xpp3Helper.getReaderItetator();
+ while (readers.hasNext()) {
+ Xpp3Reader next = readers.next();
+ if (next instanceof AbstractXpp3Reader) {
+ ((AbstractXpp3Reader) next).setShowGeneratedCode(true);
+ }
+ }
+ }
+
+ }
+
+ @AfterClass
+ public static void tearDownClass() throws Exception {
+ }
+
+ @Before
+ public void setUp() {
+ }
+
+ @After
+ public void tearDown() {
+ }
+
+ /**
+ * Test of readAttachment method, of class ModelBuilder.
+ * @throws Exception
+ */
+ @Test
+ public void testReadAttachment() throws Exception {
+ File file = new File(testDir, "simple-attachment.xml");
+
+ Attachment expected = new Attachment();
+ expected.setAuthorId((Integer) RedmineDataConverter.Integer.convert("4"));
+ expected.setContainerId((Integer) RedmineDataConverter.Integer.convert("1"));
+ expected.setId((Integer) RedmineDataConverter.Integer.convert("1"));
+ expected.setFilesize((Integer) RedmineDataConverter.Integer.convert("411"));
+ expected.setDownloads((Integer) RedmineDataConverter.Integer.convert("0"));
+ expected.setCreatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-05T12:56:41+02:00"));
+ expected.setContainerType((String) RedmineDataConverter.Text.convert("Version"));
+ expected.setContentType((String) RedmineDataConverter.Text.convert("application/json"));
+ expected.setDigest((String) RedmineDataConverter.Text.convert("6ea84342c7475c05fb077b4aca832f9a"));
+ expected.setDiskFilename((String) RedmineDataConverter.Text.convert("090905125641_get_issue.json"));
+ expected.setFilename((String) RedmineDataConverter.Text.convert("get_issue.json"));
+
+ Attachment actual = builder.readAttachment(file);
+
+ assertMyEquals(expected, actual);
+ }
+
+ /**
+ * Test of readIssue method, of class ModelBuilder.
+ * @throws Exception
+ */
+ @Test
+ public void testReadIssue() throws Exception {
+ File file = new File(testDir, "simple-issue.xml");
+
+ Issue expected = new Issue();
+ expected.setAuthorId((Integer) RedmineDataConverter.Integer.convert("5"));
+ expected.setCategoryId((Integer) RedmineDataConverter.Integer.convert("2"));
+ expected.setDoneRatio((Integer) RedmineDataConverter.Integer.convert("0"));
+ expected.setLockVersion((Integer) RedmineDataConverter.Integer.convert("7"));
+ expected.setPriorityId((Integer) RedmineDataConverter.Integer.convert("4"));
+ expected.setProjectId((Integer) RedmineDataConverter.Integer.convert("1"));
+ expected.setStatusId((Integer) RedmineDataConverter.Integer.convert("3"));
+ expected.setTrackerId((Integer) RedmineDataConverter.Integer.convert("1"));
+ expected.setFixedVersionId((Integer) RedmineDataConverter.Integer.convert("1"));
+ expected.setId((Integer) RedmineDataConverter.Integer.convert("3"));
+ expected.setCreatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-04T20:11:52+02:00"));
+ expected.setUpdatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-06T00:37:40+02:00"));
+ expected.setStartDate((Date) RedmineDataConverter.Date.convert("2009-09-04"));
+ expected.setDescription((String) RedmineDataConverter.Text.convert("avec une description !"));
+ expected.setSubject((String) RedmineDataConverter.Text.convert("yes!"));
+
+ Issue actual = builder.readIssue(file);
+
+ assertMyEquals(expected, actual);
+ }
+
+ /**
+ * Test of readProject method, of class ModelBuilder.
+ * @throws Exception
+ */
+ @Test
+ public void testReadProject() throws Exception {
+ File file = new File(testDir, "simple-project.xml");
+
+ Project expected = new Project();
+ expected.setCreatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-04T18:11:54+02:00"));
+ expected.setUpdatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-04T18:11:54+02:00"));
+ expected.setIdentifier((String) RedmineDataConverter.Text.convert("one"));
+ expected.setName((String) RedmineDataConverter.Text.convert("one"));
+ expected.setId((Integer) RedmineDataConverter.Integer.convert("1"));
+ expected.setProjectsCount((Integer) RedmineDataConverter.Integer.convert("0"));
+ expected.setStatus((Integer) RedmineDataConverter.Integer.convert("1"));
+ expected.setIsPublic((Boolean) RedmineDataConverter.Boolean.convert("true"));
+
+ Project actual = builder.readProject(file);
+
+ assertMyEquals(expected, actual);
+ }
+
+ /**
+ * Test of readTracker method, of class ModelBuilder.
+ * @throws Exception
+ */
+ @Test
+ public void testReadTracker() throws Exception {
+ File file = new File(testDir, "simple-tracker.xml");
+
+ Tracker expected = new Tracker();
+ expected.setId((Integer) RedmineDataConverter.Integer.convert("1"));
+ expected.setProjectId((Integer) RedmineDataConverter.Integer.convert("1"));
+ expected.setTrackerId((Integer) RedmineDataConverter.Integer.convert("1"));
+ expected.setPosition((Integer) RedmineDataConverter.Integer.convert("1"));
+ expected.setIsInChlog((Boolean) RedmineDataConverter.Boolean.convert("true"));
+ expected.setIsInRoadmap((Boolean) RedmineDataConverter.Boolean.convert("false"));
+ expected.setName((String) RedmineDataConverter.Text.convert("Anomalie"));
+
+ Tracker actual = builder.readTracker(file);
+
+ assertMyEquals(expected, actual);
+ }
+
+ /**
+ * Test of readUser method, of class ModelBuilder.
+ * @throws Exception
+ */
+ @Test
+ public void testReadUser() throws Exception {
+ File file = new File(testDir, "simple-user.xml");
+ User expected = new User();
+ expected.setCreatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-04T17:24:46+02:00"));
+ expected.setUpdatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-06T01:23:59+02:00"));
+ expected.setLastLoginOn((Date) RedmineDataConverter.Datetime.convert("2009-09-06T01:23:59+02:00"));
+ expected.setId((Integer) RedmineDataConverter.Integer.convert("1"));
+ expected.setMemberId((Integer) RedmineDataConverter.Integer.convert("5"));
+ expected.setRoleId((Integer) RedmineDataConverter.Integer.convert("3"));
+ expected.setStatus((Integer) RedmineDataConverter.Integer.convert("1"));
+ expected.setAdmin((Boolean) RedmineDataConverter.Boolean.convert("true"));
+ expected.setMailNotification((Boolean) RedmineDataConverter.Boolean.convert("true"));
+ expected.setFirstname((String) RedmineDataConverter.Text.convert("Redmine"));
+ expected.setHashedPassword((String) RedmineDataConverter.Text.convert("70c881d4a26984ddce795f6f71817c9cf4480e79"));
+ expected.setLanguage((String) RedmineDataConverter.Text.convert("fr"));
+ expected.setLastname((String) RedmineDataConverter.Text.convert("Admin"));
+ expected.setLogin((String) RedmineDataConverter.Text.convert("admin"));
+ expected.setMail((String) RedmineDataConverter.Text.convert("dummy(a)codelutin.com"));
+
+ User actual = builder.readUser(file);
+
+ assertMyEquals(expected, actual);
+ }
+
+ /**
+ * Test of readVersion method, of class ModelBuilder.
+ * @throws Exception
+ */
+ @Test
+ public void testReadVersion() throws Exception {
+ File file = new File(testDir, "simple-version.xml");
+ Version expected = new Version();
+ expected.setCreatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-04T18:13:05+02:00"));
+ expected.setUpdatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-04T18:13:05+02:00"));
+ expected.setName((String) RedmineDataConverter.Text.convert("1.0.0"));
+ expected.setId((Integer) RedmineDataConverter.Integer.convert("1"));
+ expected.setProjectId((Integer) RedmineDataConverter.Integer.convert("1"));
+
+ Version actual = builder.readVersion(file);
+
+ assertMyEquals(expected, actual);
+ }
+
+ /**
+ * Test of readAttachments method, of class ModelBuilder.
+ * @throws Exception
+ */
+ @Test
+ public void testReadAttachments() throws Exception {
+ File file = new File(testDir, "simple-attachments.xml");
+
+ Attachment i = null;
+ List<Attachment> expected = new ArrayList<Attachment>();
+ i = new Attachment();
+ i.setAuthorId((Integer) RedmineDataConverter.Integer.convert("4"));
+ i.setContainerId((Integer) RedmineDataConverter.Integer.convert("1"));
+ i.setId((Integer) RedmineDataConverter.Integer.convert("1"));
+ i.setFilesize((Integer) RedmineDataConverter.Integer.convert("411"));
+ i.setDownloads((Integer) RedmineDataConverter.Integer.convert("0"));
+ i.setCreatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-05T12:56:41+02:00"));
+ i.setContainerType((String) RedmineDataConverter.Text.convert("Version"));
+ i.setContentType((String) RedmineDataConverter.Text.convert("application/json"));
+ i.setDigest((String) RedmineDataConverter.Text.convert("6ea84342c7475c05fb077b4aca832f9a"));
+ i.setDiskFilename((String) RedmineDataConverter.Text.convert("090905125641_get_issue.json"));
+ i.setFilename((String) RedmineDataConverter.Text.convert("get_issue.json"));
+ expected.add(i);
+
+ Attachment[] actual = builder.readAttachments(file);
+
+ assertMyEquals(expected, actual);
+ }
+
+ /**
+ * Test of readIssues method, of class ModelBuilder.
+ * @throws Exception
+ */
+ @Test
+ public void testReadIssues() throws Exception {
+ File file = new File(testDir, "simple-issues.xml");
+
+ Issue i = null;
+ List<Issue> expected = new ArrayList<Issue>();
+ i = new Issue();
+ i.setAuthorId((Integer) RedmineDataConverter.Integer.convert("5"));
+ i.setCategoryId((Integer) RedmineDataConverter.Integer.convert("2"));
+ i.setDoneRatio((Integer) RedmineDataConverter.Integer.convert("0"));
+ i.setLockVersion((Integer) RedmineDataConverter.Integer.convert("7"));
+ i.setPriorityId((Integer) RedmineDataConverter.Integer.convert("4"));
+ i.setProjectId((Integer) RedmineDataConverter.Integer.convert("1"));
+ i.setStatusId((Integer) RedmineDataConverter.Integer.convert("3"));
+ i.setTrackerId((Integer) RedmineDataConverter.Integer.convert("1"));
+ i.setFixedVersionId((Integer) RedmineDataConverter.Integer.convert("1"));
+ i.setId((Integer) RedmineDataConverter.Integer.convert("3"));
+ i.setCreatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-04T20:11:52+02:00"));
+ i.setUpdatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-06T00:37:40+02:00"));
+ i.setStartDate((Date) RedmineDataConverter.Date.convert("2009-09-04"));
+ i.setDescription((String) RedmineDataConverter.Text.convert("avec une description !"));
+ i.setSubject((String) RedmineDataConverter.Text.convert("yes!"));
+ expected.add(i);
+
+ Issue[] actual = builder.readIssues(file);
+
+ assertMyEquals(expected, actual);
+ }
+
+ /**
+ * Test of readProjects method, of class ModelBuilder.
+ * @throws Exception
+ */
+ @Test
+ public void testReadProjects() throws Exception {
+ File file = new File(testDir, "simple-projects.xml");
+
+ Project i = null;
+ List<Project> expected = new ArrayList<Project>();
+ i = new Project();
+ i.setCreatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-04T18:11:54+02:00"));
+ i.setUpdatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-04T18:11:54+02:00"));
+ i.setIdentifier((String) RedmineDataConverter.Text.convert("one"));
+ i.setName((String) RedmineDataConverter.Text.convert("one"));
+ i.setId((Integer) RedmineDataConverter.Integer.convert("1"));
+ i.setProjectsCount((Integer) RedmineDataConverter.Integer.convert("0"));
+ i.setStatus((Integer) RedmineDataConverter.Integer.convert("1"));
+ i.setIsPublic((Boolean) RedmineDataConverter.Boolean.convert("true"));
+ expected.add(i);
+
+ Project[] actual = builder.readProjects(file);
+
+ assertMyEquals(expected, actual);
+ }
+
+ /**
+ * Test of readTrackers method, of class ModelBuilder.
+ * @throws Exception
+ */
+ @Test
+ public void testReadTrackers() throws Exception {
+ File file = new File(testDir, "simple-trackers.xml");
+
+ Tracker i = null;
+ List<Tracker> expected = new ArrayList<Tracker>();
+ i = new Tracker();
+ i.setId((Integer) RedmineDataConverter.Integer.convert("1"));
+ i.setProjectId((Integer) RedmineDataConverter.Integer.convert("1"));
+ i.setTrackerId((Integer) RedmineDataConverter.Integer.convert("1"));
+ i.setPosition((Integer) RedmineDataConverter.Integer.convert("1"));
+ i.setIsInChlog((Boolean) RedmineDataConverter.Boolean.convert("true"));
+ i.setIsInRoadmap((Boolean) RedmineDataConverter.Boolean.convert("false"));
+ i.setName((String) RedmineDataConverter.Text.convert("Anomalie"));
+ expected.add(i);
+ i = new Tracker();
+ i.setId((Integer) RedmineDataConverter.Integer.convert("2"));
+ i.setIsInChlog((Boolean) RedmineDataConverter.Boolean.convert("true"));
+ i.setIsInRoadmap((Boolean) RedmineDataConverter.Boolean.convert("true"));
+ i.setName((String) RedmineDataConverter.Text.convert("Evolution"));
+ i.setPosition((Integer) RedmineDataConverter.Integer.convert("2"));
+ i.setProjectId((Integer) RedmineDataConverter.Integer.convert("1"));
+ i.setTrackerId((Integer) RedmineDataConverter.Integer.convert("2"));
+ expected.add(i);
+ i = new Tracker();
+ i.setId((Integer) RedmineDataConverter.Integer.convert("3"));
+ i.setIsInChlog((Boolean) RedmineDataConverter.Boolean.convert("false"));
+ i.setIsInRoadmap((Boolean) RedmineDataConverter.Boolean.convert("false"));
+ i.setName((String) RedmineDataConverter.Text.convert("Assistance"));
+ i.setPosition((Integer) RedmineDataConverter.Integer.convert("3"));
+ i.setProjectId((Integer) RedmineDataConverter.Integer.convert("1"));
+ i.setTrackerId((Integer) RedmineDataConverter.Integer.convert("3"));
+ expected.add(i);
+
+ Tracker[] actual = builder.readTrackers(file);
+
+ assertMyEquals(expected, actual);
+ }
+
+ /**
+ * Test of readUsers method, of class ModelBuilder.
+ * @throws Exception
+ */
+ @Test
+ public void testReadUsers() throws Exception {
+ File file = new File(testDir, "simple-users.xml");
+
+ User i = null;
+ List<User> expected = new ArrayList<User>();
+ i = new User();
+ i.setCreatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-04T17:24:46+02:00"));
+ i.setUpdatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-06T01:23:59+02:00"));
+ i.setLastLoginOn((Date) RedmineDataConverter.Datetime.convert("2009-09-06T01:23:59+02:00"));
+ i.setId((Integer) RedmineDataConverter.Integer.convert("1"));
+ i.setMemberId((Integer) RedmineDataConverter.Integer.convert("5"));
+ i.setRoleId((Integer) RedmineDataConverter.Integer.convert("3"));
+ i.setStatus((Integer) RedmineDataConverter.Integer.convert("1"));
+ i.setAdmin((Boolean) RedmineDataConverter.Boolean.convert("true"));
+ i.setMailNotification((Boolean) RedmineDataConverter.Boolean.convert("true"));
+ i.setFirstname((String) RedmineDataConverter.Text.convert("Redmine"));
+ i.setHashedPassword((String) RedmineDataConverter.Text.convert("70c881d4a26984ddce795f6f71817c9cf4480e79"));
+ i.setLanguage((String) RedmineDataConverter.Text.convert("fr"));
+ i.setLastname((String) RedmineDataConverter.Text.convert("Admin"));
+ i.setLogin((String) RedmineDataConverter.Text.convert("admin"));
+ i.setMail((String) RedmineDataConverter.Text.convert("dummy(a)codelutin.com"));
+ expected.add(i);
+ i = new User();
+ i.setAdmin((Boolean) RedmineDataConverter.Boolean.convert("true"));
+ i.setCreatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-04T19:49:02+02:00"));
+ i.setFirstname((String) RedmineDataConverter.Text.convert("tony"));
+ i.setHashedPassword((String) RedmineDataConverter.Text.convert("8aed1322e5450badb078e1fb60a817a1df25a2ca"));
+ i.setId((Integer) RedmineDataConverter.Integer.convert("5"));
+ i.setLanguage((String) RedmineDataConverter.Text.convert("fr"));
+ i.setLastLoginOn((Date) RedmineDataConverter.Datetime.convert("2009-09-04T19:49:38+02:00"));
+ i.setLastname((String) RedmineDataConverter.Text.convert("chemit2"));
+ i.setLogin((String) RedmineDataConverter.Text.convert("tchemit2"));
+ i.setMail((String) RedmineDataConverter.Text.convert("chemit(a)codelutin.com"));
+ i.setMailNotification((Boolean) RedmineDataConverter.Boolean.convert("false"));
+ i.setMemberId((Integer) RedmineDataConverter.Integer.convert("4"));
+ i.setRoleId((Integer) RedmineDataConverter.Integer.convert("3"));
+ i.setStatus((Integer) RedmineDataConverter.Integer.convert("1"));
+ i.setUpdatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-04T19:49:38+02:00"));
+ expected.add(i);
+ i = new User();
+ i.setAdmin((Boolean) RedmineDataConverter.Boolean.convert("false"));
+ i.setCreatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-05T16:24:11+02:00"));
+ i.setFirstname((String) RedmineDataConverter.Text.convert("dev"));
+ i.setHashedPassword((String) RedmineDataConverter.Text.convert("70c881d4a26984ddce795f6f71817c9cf4480e79"));
+ i.setId((Integer) RedmineDataConverter.Integer.convert("7"));
+ i.setLanguage((String) RedmineDataConverter.Text.convert("fr"));
+ i.setLastLoginOn((Date) RedmineDataConverter.Datetime.convert("2009-09-06T16:34:39+02:00"));
+ i.setLastname((String) RedmineDataConverter.Text.convert("dev"));
+ i.setLogin((String) RedmineDataConverter.Text.convert("dev"));
+ i.setMail((String) RedmineDataConverter.Text.convert("dev3(a)ynot-home.info"));
+ i.setMailNotification((Boolean) RedmineDataConverter.Boolean.convert("false"));
+ i.setMemberId((Integer) RedmineDataConverter.Integer.convert("9"));
+ i.setRoleId((Integer) RedmineDataConverter.Integer.convert("4"));
+ i.setStatus((Integer) RedmineDataConverter.Integer.convert("1"));
+ i.setUpdatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-06T16:34:39+02:00"));
+ expected.add(i);
+
+ User[] actual = builder.readUsers(file);
+
+ assertMyEquals(expected, actual);
+ }
+
+ /**
+ * Test of readVersions method, of class ModelBuilder.
+ * @throws Exception
+ */
+ @Test
+ public void testReadVersions() throws Exception {
+ File file = new File(testDir, "simple-versions.xml");
+
+ Version i = null;
+ List<Version> expected = new ArrayList<Version>();
+ i = new Version();
+ i.setCreatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-06T02:47:39+02:00"));
+ i.setDescription((String) RedmineDataConverter.Text.convert("yo"));
+ i.setId((Integer) RedmineDataConverter.Integer.convert("9"));
+ i.setName((String) RedmineDataConverter.Text.convert("yor"));
+ i.setProjectId((Integer) RedmineDataConverter.Integer.convert("1"));
+ i.setUpdatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-06T02:50:49+02:00"));
+ expected.add(i);
+ i = new Version();
+ i.setCreatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-06T03:05:09+02:00"));
+ i.setDescription((String) RedmineDataConverter.Text.convert("ysssoye"));
+ i.setId((Integer) RedmineDataConverter.Integer.convert("13"));
+ i.setName((String) RedmineDataConverter.Text.convert("rrrrrrrrrouuuuuua"));
+ i.setProjectId((Integer) RedmineDataConverter.Integer.convert("1"));
+ i.setUpdatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-06T03:05:09+02:00"));
+ expected.add(i);
+ i = new Version();
+ i.setCreatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-06T03:07:58+02:00"));
+ i.setDescription((String) RedmineDataConverter.Text.convert("ysssoye"));
+ i.setId((Integer) RedmineDataConverter.Integer.convert("15"));
+ i.setName((String) RedmineDataConverter.Text.convert("aaaauuuuuua"));
+ i.setProjectId((Integer) RedmineDataConverter.Integer.convert("1"));
+ i.setUpdatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-06T03:07:58+02:00"));
+ expected.add(i);
+ i = new Version();
+ i.setCreatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-06T04:12:25+02:00"));
+ i.setDescription((String) RedmineDataConverter.Text.convert("ysssoyeppppppppppppppppp"));
+ i.setId((Integer) RedmineDataConverter.Integer.convert("16"));
+ i.setName((String) RedmineDataConverter.Text.convert("aaaau"));
+ i.setProjectId((Integer) RedmineDataConverter.Integer.convert("1"));
+ i.setUpdatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-06T04:13:20+02:00"));
+ expected.add(i);
+ i = new Version();
+ i.setCreatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-06T03:05:40+02:00"));
+ i.setDescription((String) RedmineDataConverter.Text.convert("ysssoye"));
+ i.setId((Integer) RedmineDataConverter.Integer.convert("14"));
+ i.setName((String) RedmineDataConverter.Text.convert("aaaaaaaaaarrrrrrrrrouuuuuua"));
+ i.setProjectId((Integer) RedmineDataConverter.Integer.convert("1"));
+ i.setUpdatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-06T03:05:40+02:00"));
+ expected.add(i);
+ i = new Version();
+ i.setCreatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-05T00:39:15+02:00"));
+ i.setId((Integer) RedmineDataConverter.Integer.convert("5"));
+ i.setName((String) RedmineDataConverter.Text.convert("2"));
+ i.setProjectId((Integer) RedmineDataConverter.Integer.convert("1"));
+ i.setUpdatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-05T00:39:15+02:00"));
+ expected.add(i);
+ i = new Version();
+ i.setCreatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-04T18:13:05+02:00"));
+ i.setId((Integer) RedmineDataConverter.Integer.convert("1"));
+ i.setName((String) RedmineDataConverter.Text.convert("1.0.0"));
+ i.setProjectId((Integer) RedmineDataConverter.Integer.convert("1"));
+ i.setUpdatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-04T18:13:05+02:00"));
+ expected.add(i);
+ i = new Version();
+ i.setCreatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-06T03:00:12+02:00"));
+ i.setDescription((String) RedmineDataConverter.Text.convert("yoye"));
+ i.setEffectiveDate((Date) RedmineDataConverter.Date.convert("2009-09-06"));
+ i.setId((Integer) RedmineDataConverter.Integer.convert("11"));
+ i.setName((String) RedmineDataConverter.Text.convert("yaouuuuuua"));
+ i.setProjectId((Integer) RedmineDataConverter.Integer.convert("1"));
+ i.setUpdatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-06T03:00:12+02:00"));
+ expected.add(i);
+ i = new Version();
+ i.setCreatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-06T02:50:59+02:00"));
+ i.setDescription((String) RedmineDataConverter.Text.convert("yoye"));
+ i.setEffectiveDate((Date) RedmineDataConverter.Date.convert("2009-09-06"));
+ i.setId((Integer) RedmineDataConverter.Integer.convert("10"));
+ i.setName((String) RedmineDataConverter.Text.convert("ya"));
+ i.setProjectId((Integer) RedmineDataConverter.Integer.convert("1"));
+ i.setUpdatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-06T02:54:16+02:00"));
+ expected.add(i);
+ i = new Version();
+ i.setCreatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-06T03:00:37+02:00"));
+ i.setDescription((String) RedmineDataConverter.Text.convert("ysssoye"));
+ i.setEffectiveDate((Date) RedmineDataConverter.Date.convert("2009-09-06"));
+ i.setId((Integer) RedmineDataConverter.Integer.convert("12"));
+ i.setName((String) RedmineDataConverter.Text.convert("ouuuuuua"));
+ i.setProjectId((Integer) RedmineDataConverter.Integer.convert("1"));
+ i.setUpdatedOn((Date) RedmineDataConverter.Datetime.convert("2009-09-06T03:00:42+02:00"));
+ expected.add(i);
+
+ Version[] actual = builder.readVersions(file);
+
+ assertMyEquals(expected, actual);
+ }
+
+ protected <T> void assertMyEquals(List<T> expecteds, T[] actuals) throws Exception {
+
+ Assert.assertNotNull(actuals);
+ Assert.assertEquals(expecteds.size(), actuals.length);
+ for (int i = 0, j = expecteds.size(); i < j; i++) {
+ T actual = actuals[i];
+ T expected = expecteds.get(i);
+ assertMyEquals(expected, actual);
+ }
+
+ }
+
+ protected void assertMyEquals(Object expected, Object actual) throws Exception {
+
+ Assert.assertNotNull(expected);
+ Assert.assertNotNull(actual);
+ RedmineAbstractXpp3Reader reader = (RedmineAbstractXpp3Reader) Xpp3Helper.getReader(expected.getClass());
+ Map<String, PropertyMapper> mappers = reader.getMappers(expected.getClass());
+ //System.out.println("starting check " + expected);
+ for (PropertyMapper m : mappers.values()) {
+
+ Object expectedValue = m.getDescriptor().getReadMethod().invoke(expected);
+ Object actualValue = m.getDescriptor().getReadMethod().invoke(actual);
+
+ Assert.assertEquals("error in attribute " + m.getPropertyName() + " for " + expected, expectedValue, actualValue);
+ }
+
+ }
+}
Property changes on: maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/model/ModelBuilderTest.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL
Added: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/simple-attachment.xml
===================================================================
--- maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/simple-attachment.xml (rev 0)
+++ maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/simple-attachment.xml 2009-09-07 22:57:18 UTC (rev 22)
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<attachment>
+ <author-id type="integer">4</author-id>
+ <container-id type="integer">1</container-id>
+ <id type="integer">1</id>
+ <filesize type="integer">411</filesize>
+ <downloads type="integer">0</downloads>
+
+ <created-on type="datetime">2009-09-05T12:56:41+02:00</created-on>
+
+ <container-type>Version</container-type>
+ <content-type>application/json</content-type>
+ <description></description>
+ <digest>6ea84342c7475c05fb077b4aca832f9a</digest>
+ <disk-filename>090905125641_get_issue.json</disk-filename>
+ <filename>get_issue.json</filename>
+</attachment>
+
Copied: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/simple-attachments.xml (from rev 20, maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/io/xpp3/simple-files.xml)
===================================================================
--- maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/simple-attachments.xml (rev 0)
+++ maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/simple-attachments.xml 2009-09-07 22:57:18 UTC (rev 22)
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<attachments type="array">
+ <attachment>
+ <author-id type="integer">4</author-id>
+ <container-id type="integer">1</container-id>
+ <id type="integer">1</id>
+ <filesize type="integer">411</filesize>
+ <downloads type="integer">0</downloads>
+
+ <created-on type="datetime">2009-09-05T12:56:41+02:00</created-on>
+
+ <container-type>Version</container-type>
+ <content-type>application/json</content-type>
+ <description></description>
+ <digest>6ea84342c7475c05fb077b4aca832f9a</digest>
+ <disk-filename>090905125641_get_issue.json</disk-filename>
+ <filename>get_issue.json</filename>
+ </attachment>
+</attachments>
\ No newline at end of file
Property changes on: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/simple-attachments.xml
___________________________________________________________________
Added: svn:mergeinfo
+
Added: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/simple-issue.xml
===================================================================
--- maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/simple-issue.xml (rev 0)
+++ maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/simple-issue.xml 2009-09-07 22:57:18 UTC (rev 22)
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issue>
+ <assigned-to-id type="integer" nil="true"></assigned-to-id>
+ <author-id type="integer">5</author-id>
+ <category-id type="integer">2</category-id>
+ <done-ratio type="integer">0</done-ratio>
+ <lock-version type="integer">7</lock-version>
+ <priority-id type="integer">4</priority-id>
+ <project-id type="integer">1</project-id>
+ <status-id type="integer">3</status-id>
+ <tracker-id type="integer">1</tracker-id>
+ <fixed-version-id type="integer">1</fixed-version-id>
+ <id type="integer">3</id>
+
+ <estimated-hours type="float" nil="true"></estimated-hours>
+
+ <created-on type="datetime">2009-09-04T20:11:52+02:00</created-on>
+ <updated-on type="datetime">2009-09-06T00:37:40+02:00</updated-on>
+ <due-date type="date" nil="true"></due-date>
+ <start-date type="date">2009-09-04</start-date>
+
+ <description>avec une description !</description>
+ <subject>yes!</subject>
+</issue>
Copied: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/simple-issues.xml (from rev 20, maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/io/xpp3/simple-issues.xml)
===================================================================
--- maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/simple-issues.xml (rev 0)
+++ maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/simple-issues.xml 2009-09-07 22:57:18 UTC (rev 22)
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues type="array">
+ <issue>
+ <assigned-to-id type="integer" nil="true"></assigned-to-id>
+ <author-id type="integer">5</author-id>
+ <category-id type="integer">2</category-id>
+ <done-ratio type="integer">0</done-ratio>
+ <lock-version type="integer">7</lock-version>
+ <priority-id type="integer">4</priority-id>
+ <project-id type="integer">1</project-id>
+ <status-id type="integer">3</status-id>
+ <tracker-id type="integer">1</tracker-id>
+ <fixed-version-id type="integer">1</fixed-version-id>
+ <id type="integer">3</id>
+
+ <estimated-hours type="float" nil="true"></estimated-hours>
+
+ <created-on type="datetime">2009-09-04T20:11:52+02:00</created-on>
+ <updated-on type="datetime">2009-09-06T00:37:40+02:00</updated-on>
+ <due-date type="date" nil="true"></due-date>
+ <start-date type="date">2009-09-04</start-date>
+
+ <description>avec une description !</description>
+ <subject>yes!</subject>
+ </issue>
+</issues>
Property changes on: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/simple-issues.xml
___________________________________________________________________
Added: svn:mergeinfo
+
Copied: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/simple-project.xml (from rev 20, maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/io/xpp3/simple-project.xml)
===================================================================
--- maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/simple-project.xml (rev 0)
+++ maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/simple-project.xml 2009-09-07 22:57:18 UTC (rev 22)
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <created-on type="datetime">2009-09-04T18:11:54+02:00</created-on>
+ <updated-on type="datetime">2009-09-04T18:11:54+02:00</updated-on>
+
+ <description></description>
+ <homepage></homepage>
+ <identifier>one</identifier>
+ <name>one</name>
+
+ <id type="integer">1</id>
+ <parent-id type="integer" nil="true"></parent-id>
+ <projects-count type="integer">0</projects-count>
+ <status type="integer">1</status>
+
+ <is-public type="boolean">true</is-public>
+</project>
Property changes on: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/simple-project.xml
___________________________________________________________________
Added: svn:mergeinfo
+
Added: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/simple-projects.xml
===================================================================
--- maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/simple-projects.xml (rev 0)
+++ maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/simple-projects.xml 2009-09-07 22:57:18 UTC (rev 22)
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projects type="array">
+ <project>
+ <created-on type="datetime">2009-09-04T18:11:54+02:00</created-on>
+ <updated-on type="datetime">2009-09-04T18:11:54+02:00</updated-on>
+
+ <description></description>
+ <homepage></homepage>
+ <identifier>one</identifier>
+ <name>one</name>
+
+ <id type="integer">1</id>
+ <parent-id type="integer" nil="true"></parent-id>
+ <projects-count type="integer">0</projects-count>
+ <status type="integer">1</status>
+
+ <is-public type="boolean">true</is-public>
+ </project>
+</projects>
\ No newline at end of file
Added: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/simple-tracker.xml
===================================================================
--- maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/simple-tracker.xml (rev 0)
+++ maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/simple-tracker.xml 2009-09-07 22:57:18 UTC (rev 22)
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tracker>
+ <id type="integer">1</id>
+ <project-id type="NilClass">1</project-id>
+ <tracker-id type="NilClass">1</tracker-id>
+ <position type="integer">1</position>
+
+ <is-in-chlog type="boolean">true</is-in-chlog>
+ <is-in-roadmap type="boolean">false</is-in-roadmap>
+
+ <name>Anomalie</name>
+</tracker>
Copied: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/simple-trackers.xml (from rev 20, maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/io/xpp3/simple-trackers.xml)
===================================================================
--- maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/simple-trackers.xml (rev 0)
+++ maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/simple-trackers.xml 2009-09-07 22:57:18 UTC (rev 22)
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<trackers type="array">
+ <tracker>
+ <id type="integer">1</id>
+ <project-id type="NilClass">1</project-id>
+ <tracker-id type="NilClass">1</tracker-id>
+ <position type="integer">1</position>
+
+ <is-in-chlog type="boolean">true</is-in-chlog>
+ <is-in-roadmap type="boolean">false</is-in-roadmap>
+
+ <name>Anomalie</name>
+ </tracker>
+ <tracker>
+ <id type="integer">2</id>
+ <is-in-chlog type="boolean">true</is-in-chlog>
+ <is-in-roadmap type="boolean">true</is-in-roadmap>
+ <name>Evolution</name>
+ <position type="integer">2</position>
+ <project-id type="NilClass">1</project-id>
+ <tracker-id type="NilClass">2</tracker-id>
+ </tracker>
+ <tracker>
+ <id type="integer">3</id>
+ <is-in-chlog type="boolean">false</is-in-chlog>
+ <is-in-roadmap type="boolean">false</is-in-roadmap>
+ <name>Assistance</name>
+ <position type="integer">3</position>
+ <project-id type="NilClass">1</project-id>
+ <tracker-id type="NilClass">3</tracker-id>
+ </tracker>
+</trackers>
Property changes on: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/simple-trackers.xml
___________________________________________________________________
Added: svn:mergeinfo
+
Added: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/simple-user.xml
===================================================================
--- maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/simple-user.xml (rev 0)
+++ maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/simple-user.xml 2009-09-07 22:57:18 UTC (rev 22)
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<user>
+ <created-on type="datetime">2009-09-04T17:24:46+02:00</created-on>
+ <updated-on type="datetime">2009-09-06T01:23:59+02:00</updated-on>
+ <last-login-on type="datetime">2009-09-06T01:23:59+02:00</last-login-on>
+
+ <id type="integer">1</id>
+ <auth-source-id type="integer" nil="true"></auth-source-id>
+ <member-id type="NilClass">5</member-id>
+ <role-id type="NilClass">3</role-id>
+ <status type="integer">1</status>
+
+ <admin type="boolean">true</admin>
+ <mail-notification type="boolean">true</mail-notification>
+
+ <firstname>Redmine</firstname>
+ <hashed-password>70c881d4a26984ddce795f6f71817c9cf4480e79</hashed-password>
+ <language>fr</language>
+ <lastname>Admin</lastname>
+ <login>admin</login>
+ <mail>dummy(a)codelutin.com</mail>
+</user>
Copied: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/simple-users.xml (from rev 20, maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/io/xpp3/simple-users.xml)
===================================================================
--- maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/simple-users.xml (rev 0)
+++ maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/simple-users.xml 2009-09-07 22:57:18 UTC (rev 22)
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<users type="array">
+ <user>
+ <created-on type="datetime">2009-09-04T17:24:46+02:00</created-on>
+ <updated-on type="datetime">2009-09-06T01:23:59+02:00</updated-on>
+ <last-login-on type="datetime">2009-09-06T01:23:59+02:00</last-login-on>
+
+ <id type="integer">1</id>
+ <auth-source-id type="integer" nil="true"></auth-source-id>
+ <member-id type="NilClass">5</member-id>
+ <role-id type="NilClass">3</role-id>
+ <status type="integer">1</status>
+
+ <admin type="boolean">true</admin>
+ <mail-notification type="boolean">true</mail-notification>
+
+ <firstname>Redmine</firstname>
+ <hashed-password>70c881d4a26984ddce795f6f71817c9cf4480e79</hashed-password>
+ <language>fr</language>
+ <lastname>Admin</lastname>
+ <login>admin</login>
+ <mail>dummy(a)codelutin.com</mail>
+ </user>
+ <user>
+ <admin type="boolean">true</admin>
+ <auth-source-id type="integer" nil="true"></auth-source-id>
+ <created-on type="datetime">2009-09-04T19:49:02+02:00</created-on>
+ <firstname>tony</firstname>
+ <hashed-password>8aed1322e5450badb078e1fb60a817a1df25a2ca</hashed-password>
+ <id type="integer">5</id>
+ <language>fr</language>
+ <last-login-on type="datetime">2009-09-04T19:49:38+02:00</last-login-on>
+ <lastname>chemit2</lastname>
+ <login>tchemit2</login>
+ <mail>chemit(a)codelutin.com</mail>
+ <mail-notification type="boolean">false</mail-notification>
+ <member-id type="NilClass">4</member-id>
+ <role-id type="NilClass">3</role-id>
+ <status type="integer">1</status>
+ <updated-on type="datetime">2009-09-04T19:49:38+02:00</updated-on>
+ </user>
+ <user>
+ <admin type="boolean">false</admin>
+ <auth-source-id type="integer" nil="true"></auth-source-id>
+ <created-on type="datetime">2009-09-05T16:24:11+02:00</created-on>
+ <firstname>dev</firstname>
+ <hashed-password>70c881d4a26984ddce795f6f71817c9cf4480e79</hashed-password>
+ <id type="integer">7</id>
+ <language>fr</language>
+ <last-login-on type="datetime">2009-09-06T16:34:39+02:00</last-login-on>
+ <lastname>dev</lastname>
+ <login>dev</login>
+ <mail>dev3(a)ynot-home.info</mail>
+ <mail-notification type="boolean">false</mail-notification>
+ <member-id type="NilClass">9</member-id>
+ <role-id type="NilClass">4</role-id>
+ <status type="integer">1</status>
+ <updated-on type="datetime">2009-09-06T16:34:39+02:00</updated-on>
+ </user>
+</users>
Property changes on: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/simple-users.xml
___________________________________________________________________
Added: svn:mergeinfo
+
Copied: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/simple-version.xml (from rev 20, maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/io/xpp3/simple-version.xml)
===================================================================
--- maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/simple-version.xml (rev 0)
+++ maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/simple-version.xml 2009-09-07 22:57:18 UTC (rev 22)
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<version>
+ <created-on type="datetime">2009-09-04T18:13:05+02:00</created-on>
+ <updated-on type="datetime">2009-09-04T18:13:05+02:00</updated-on>
+ <effective-date type="date" nil="true"></effective-date>
+
+ <name>1.0.0</name>
+ <description></description>
+ <wiki-page-title nil="true"></wiki-page-title>
+
+ <id type="integer">1</id>
+ <project-id type="integer">1</project-id>
+</version>
Property changes on: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/simple-version.xml
___________________________________________________________________
Added: svn:mergeinfo
+
Copied: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/simple-versions.xml (from rev 20, maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/io/xpp3/simple-versions.xml)
===================================================================
--- maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/simple-versions.xml (rev 0)
+++ maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/simple-versions.xml 2009-09-07 22:57:18 UTC (rev 22)
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<versions type="array">
+ <version>
+ <created-on type="datetime">2009-09-06T02:47:39+02:00</created-on>
+ <description>yo</description>
+ <effective-date type="date" nil="true"></effective-date>
+ <id type="integer">9</id>
+ <name>yor</name>
+ <project-id type="integer">1</project-id>
+ <updated-on type="datetime">2009-09-06T02:50:49+02:00</updated-on>
+ <wiki-page-title nil="true"></wiki-page-title>
+ </version>
+ <version>
+ <created-on type="datetime">2009-09-06T03:05:09+02:00</created-on>
+ <description>ysssoye</description>
+ <effective-date type="date" nil="true"></effective-date>
+ <id type="integer">13</id>
+ <name>rrrrrrrrrouuuuuua</name>
+ <project-id type="integer">1</project-id>
+ <updated-on type="datetime">2009-09-06T03:05:09+02:00</updated-on>
+ <wiki-page-title nil="true"></wiki-page-title>
+ </version>
+ <version>
+ <created-on type="datetime">2009-09-06T03:07:58+02:00</created-on>
+ <description>ysssoye</description>
+ <effective-date type="date" nil="true"></effective-date>
+ <id type="integer">15</id>
+ <name>aaaauuuuuua</name>
+ <project-id type="integer">1</project-id>
+ <updated-on type="datetime">2009-09-06T03:07:58+02:00</updated-on>
+ <wiki-page-title nil="true"></wiki-page-title>
+ </version>
+ <version>
+ <created-on type="datetime">2009-09-06T04:12:25+02:00</created-on>
+ <description>ysssoyeppppppppppppppppp</description>
+ <effective-date type="date" nil="true"></effective-date>
+ <id type="integer">16</id>
+ <name>aaaau</name>
+ <project-id type="integer">1</project-id>
+ <updated-on type="datetime">2009-09-06T04:13:20+02:00</updated-on>
+ <wiki-page-title nil="true"></wiki-page-title>
+ </version>
+ <version>
+ <created-on type="datetime">2009-09-06T03:05:40+02:00</created-on>
+ <description>ysssoye</description>
+ <effective-date type="date" nil="true"></effective-date>
+ <id type="integer">14</id>
+ <name>aaaaaaaaaarrrrrrrrrouuuuuua</name>
+ <project-id type="integer">1</project-id>
+ <updated-on type="datetime">2009-09-06T03:05:40+02:00</updated-on>
+ <wiki-page-title nil="true"></wiki-page-title>
+ </version>
+ <version>
+ <created-on type="datetime">2009-09-05T00:39:15+02:00</created-on>
+ <description></description>
+ <effective-date type="date" nil="true"></effective-date>
+ <id type="integer">5</id>
+ <name>2</name>
+ <project-id type="integer">1</project-id>
+ <updated-on type="datetime">2009-09-05T00:39:15+02:00</updated-on>
+ <wiki-page-title nil="true"></wiki-page-title>
+ </version>
+ <version>
+ <created-on type="datetime">2009-09-04T18:13:05+02:00</created-on>
+ <description></description>
+ <effective-date type="date" nil="true"></effective-date>
+ <id type="integer">1</id>
+ <name>1.0.0</name>
+ <project-id type="integer">1</project-id>
+ <updated-on type="datetime">2009-09-04T18:13:05+02:00</updated-on>
+ <wiki-page-title nil="true"></wiki-page-title>
+ </version>
+ <version>
+ <created-on type="datetime">2009-09-06T03:00:12+02:00</created-on>
+ <description>yoye</description>
+ <effective-date type="date">2009-09-06</effective-date>
+ <id type="integer">11</id>
+ <name>yaouuuuuua</name>
+ <project-id type="integer">1</project-id>
+ <updated-on type="datetime">2009-09-06T03:00:12+02:00</updated-on>
+ <wiki-page-title nil="true"></wiki-page-title>
+ </version>
+ <version>
+ <created-on type="datetime">2009-09-06T02:50:59+02:00</created-on>
+ <description>yoye</description>
+ <effective-date type="date">2009-09-06</effective-date>
+ <id type="integer">10</id>
+ <name>ya</name>
+ <project-id type="integer">1</project-id>
+ <updated-on type="datetime">2009-09-06T02:54:16+02:00</updated-on>
+ <wiki-page-title nil="true"></wiki-page-title>
+ </version>
+ <version>
+ <created-on type="datetime">2009-09-06T03:00:37+02:00</created-on>
+ <description>ysssoye</description>
+ <effective-date type="date">2009-09-06</effective-date>
+ <id type="integer">12</id>
+ <name>ouuuuuua</name>
+ <project-id type="integer">1</project-id>
+ <updated-on type="datetime">2009-09-06T03:00:42+02:00</updated-on>
+ <wiki-page-title nil="true"></wiki-page-title>
+ </version>
+</versions>
Property changes on: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/simple-versions.xml
___________________________________________________________________
Added: svn:mergeinfo
+
1
0
r21 - in maven-redmine-plugin/trunk/src/test: java/org/nuiton/redmine/model resources/org/nuiton/redmine/model
by tchemit@users.nuiton.org 07 Sep '09
by tchemit@users.nuiton.org 07 Sep '09
07 Sep '09
Author: tchemit
Date: 2009-09-08 00:56:48 +0200 (Tue, 08 Sep 2009)
New Revision: 21
Removed:
maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/model/io/
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/io/
Log:
use xpp3 parser from maven-helper-plugin
1
0
Author: tchemit
Date: 2009-09-07 01:23:42 +0200 (Mon, 07 Sep 2009)
New Revision: 20
Added:
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/ModelBuilder.java
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/AbstractXpp3Reader.java
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/ProjectXpp3Reader.java
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/ProjectXpp3Writer.java
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/VersionsXpp3Reader.java
maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/model/
maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/model/io/
maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/model/io/xpp3/
maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/model/io/xpp3/ProjectXpp3ReaderTest.java
maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/model/io/xpp3/VersionXpp3ReaderTest.java
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/io/
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/io/xpp3/
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/io/xpp3/simple-files.xml
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/io/xpp3/simple-issues.xml
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/io/xpp3/simple-project.xml
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/io/xpp3/simple-trackers.xml
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/io/xpp3/simple-users.xml
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/io/xpp3/simple-version.xml
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/io/xpp3/simple-versions.xml
Modified:
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/Project.java
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/Version.java
Log:
implements xpp3 reader for project and version
Added: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/ModelBuilder.java
===================================================================
--- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/ModelBuilder.java (rev 0)
+++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/ModelBuilder.java 2009-09-06 23:23:42 UTC (rev 20)
@@ -0,0 +1,95 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.nuiton.redmine.model;
+
+import org.codehaus.plexus.util.IOUtil;
+import org.codehaus.plexus.util.ReaderFactory;
+import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.Reader;
+import java.io.StringReader;
+import java.io.StringWriter;
+import org.apache.maven.plugin.logging.Log;
+import org.nuiton.redmine.model.io.xpp3.ProjectXpp3Reader;
+import org.nuiton.redmine.model.io.xpp3.VersionsXpp3Reader;
+
+/**
+ *
+ * @author chemit
+ */
+public class ModelBuilder {
+
+ Log log;
+
+ public ModelBuilder(Log log) {
+ this.log = log;
+ }
+
+ public Project readProject(File file)
+ throws IOException, XmlPullParserException {
+
+ Project project = null;
+
+ if (file.exists() && file.isFile()) {
+ log.info("will parse project from: '" + file.getAbsolutePath() + "'");
+ Reader reader = null;
+ try {
+ reader = ReaderFactory.newXmlReader(file);
+ StringWriter sWriter = new StringWriter();
+
+ IOUtil.copy(reader, sWriter);
+
+ String rawInput = sWriter.toString();
+
+ StringReader sReader = new StringReader(rawInput);
+
+ ProjectXpp3Reader modelReader = new ProjectXpp3Reader();
+
+ project = modelReader.read(sReader);
+
+ } finally {
+ IOUtil.close(reader);
+ }
+ } else {
+ log.warn("the file was not find or is a not a file: '" + file.getAbsolutePath() + "'");
+ }
+
+ return project;
+ }
+
+ public Version readVersion(File file)
+ throws IOException, XmlPullParserException {
+
+ Version version = null;
+
+ if (file.exists() && file.isFile()) {
+ log.info("will parse project from: '" + file.getAbsolutePath() + "'");
+ Reader reader = null;
+ try {
+ reader = ReaderFactory.newXmlReader(file);
+ StringWriter sWriter = new StringWriter();
+
+ IOUtil.copy(reader, sWriter);
+
+ String rawInput = sWriter.toString();
+
+ StringReader sReader = new StringReader(rawInput);
+
+ VersionsXpp3Reader modelReader = new VersionsXpp3Reader();
+
+ version = modelReader.read(sReader);
+
+ } finally {
+ IOUtil.close(reader);
+ }
+ } else {
+ log.warn("the file was not find or is a not a file: '" + file.getAbsolutePath() + "'");
+ }
+
+ return version;
+ }
+}
Property changes on: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/ModelBuilder.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL
Modified: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/Project.java
===================================================================
--- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/Project.java 2009-09-06 20:07:40 UTC (rev 19)
+++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/Project.java 2009-09-06 23:23:42 UTC (rev 20)
@@ -1,5 +1,7 @@
package org.nuiton.redmine.model;
+import java.util.Date;
+
/**
* redmine project
*
@@ -8,9 +10,104 @@
*/
public class Project {
- protected String id;
- protected String label;
+ protected Date createdOn;
+ protected Date updatedOn;
protected String description;
+ protected String homepage;
+ protected String identifier;
+ protected String name;
+ protected int id;
+ protected int parentId;
+ protected int projectsCount;
+ protected int status;
+ protected boolean ispublic;
+
+ public Date getCreatedOn() {
+ return createdOn;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public String getHomepage() {
+ return homepage;
+ }
+
+ public int getId() {
+ return id;
+ }
+
+ public String getIdentifier() {
+ return identifier;
+ }
+
+ public boolean isIspublic() {
+ return ispublic;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public int getParentId() {
+ return parentId;
+ }
+
+ public int getProjectsCount() {
+ return projectsCount;
+ }
+
+ public Date getUpdatedOn() {
+ return updatedOn;
+ }
+
+ public int getStatus() {
+ return status;
+ }
+
+ public void setCreatedOn(Date createdOn) {
+ this.createdOn = createdOn;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public void setHomepage(String homepage) {
+ this.homepage = homepage;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public void setIdentifier(String identifier) {
+ this.identifier = identifier;
+ }
+
+ public void setIspublic(boolean ispublic) {
+ this.ispublic = ispublic;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public void setParentId(int parentId) {
+ this.parentId = parentId;
+ }
+
+ public void setProjectsCount(int projectsCount) {
+ this.projectsCount = projectsCount;
+ }
+
+ public void setUpdatedOn(Date updatedOn) {
+ this.updatedOn = updatedOn;
+ }
+
+ public void setStatus(int status) {
+ this.status = status;
+ }
-
}
Modified: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/Version.java
===================================================================
--- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/Version.java 2009-09-06 20:07:40 UTC (rev 19)
+++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/Version.java 2009-09-06 23:23:42 UTC (rev 20)
@@ -1,5 +1,7 @@
package org.nuiton.redmine.model;
+import java.util.Date;
+
/**
*
* @author chemit
@@ -7,5 +9,76 @@
*/
public class Version {
- protected String version;
+ protected Date createdOn;
+ protected Date updatedOn;
+ protected Date effectiveDate;
+ protected String name;
+ protected String description;
+ protected String wikiPagetitle;
+ protected int id;
+ protected int projectId;
+
+ public Date getCreatedOn() {
+ return createdOn;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public Date getEffectiveDate() {
+ return effectiveDate;
+ }
+
+ public int getId() {
+ return id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public int getProjectId() {
+ return projectId;
+ }
+
+ public Date getUpdatedOn() {
+ return updatedOn;
+ }
+
+ public String getWikiPagetitle() {
+ return wikiPagetitle;
+ }
+
+ public void setCreatedOn(Date createdOn) {
+ this.createdOn = createdOn;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public void setEffectiveDate(Date effectiveDate) {
+ this.effectiveDate = effectiveDate;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public void setProjectId(int projectId) {
+ this.projectId = projectId;
+ }
+
+ public void setUpdatedOn(Date updatedOn) {
+ this.updatedOn = updatedOn;
+ }
+
+ public void setWikiPagetitle(String wikiPagetitle) {
+ this.wikiPagetitle = wikiPagetitle;
+ }
}
Added: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/AbstractXpp3Reader.java
===================================================================
--- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/AbstractXpp3Reader.java (rev 0)
+++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/AbstractXpp3Reader.java 2009-09-06 23:23:42 UTC (rev 20)
@@ -0,0 +1,649 @@
+package org.nuiton.redmine.model.io.xpp3;
+
+import java.io.IOException;
+import java.io.Reader;
+import java.text.DateFormat;
+import java.util.Locale;
+import org.codehaus.plexus.util.ReaderFactory;
+import org.codehaus.plexus.util.xml.pull.MXParser;
+import org.codehaus.plexus.util.xml.pull.XmlPullParser;
+import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
+
+/**
+ *
+ * @param <M> le type du model a generer
+ *
+ * @author chemit
+ * @since 1.0.0
+ */
+public abstract class AbstractXpp3Reader<M> {
+
+ /**
+ * Read a parser, generate the model and return it.
+ *
+ * @param parser the parser
+ * @param strict flag to force strict evaluation
+ * @return the created model
+ * @throws IOException if pb while reading
+ * @throws XmlPullParserException if pb while parsing xml
+ */
+ protected abstract M doParse(XmlPullParser parser, boolean strict) throws IOException, XmlPullParserException;
+ /**
+ * If set the parser will be loaded with all single characters
+ * from the XHTML specification.
+ * The entities used:
+ * <ul>
+ * <li>http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent</li>
+ * <li>http://www.w3.org/TR/xhtml1/DTD/xhtml-special.ent</li>
+ * <li>http://www.w3.org/TR/xhtml1/DTD/xhtml-symbol.ent</li>
+ * </ul>
+ */
+ private boolean addDefaultEntities = true;
+
+ //-----------/
+ //- Methods -/
+ //-----------/
+ /**
+ * Returns the state of the "add default entities" flag.
+ *
+ * @return boolean
+ */
+ public boolean getAddDefaultEntities() {
+ return addDefaultEntities;
+ } //-- boolean getAddDefaultEntities()
+
+ /**
+ * Method getBooleanValue.
+ *
+ * @param s
+ * @param parser
+ * @param attribute
+ * @throws XmlPullParserException
+ * @return boolean
+ */
+ public boolean getBooleanValue(String s, String attribute, XmlPullParser parser)
+ throws XmlPullParserException {
+ return getBooleanValue(s, attribute, parser, null);
+ } //-- boolean getBooleanValue( String, String, XmlPullParser )
+
+ /**
+ * Method getBooleanValue.
+ *
+ * @param s
+ * @param defaultValue
+ * @param parser
+ * @param attribute
+ * @throws XmlPullParserException
+ * @return boolean
+ */
+ public boolean getBooleanValue(String s, String attribute, XmlPullParser parser, String defaultValue)
+ throws XmlPullParserException {
+ if (s != null && s.length() != 0) {
+ return Boolean.valueOf(s).booleanValue();
+ }
+ if (defaultValue != null) {
+ return Boolean.valueOf(defaultValue).booleanValue();
+ }
+ return false;
+ } //-- boolean getBooleanValue( String, String, XmlPullParser, String )
+
+ /**
+ * Method getByteValue.
+ *
+ * @param s
+ * @param strict
+ * @param parser
+ * @param attribute
+ * @throws XmlPullParserException
+ * @return byte
+ */
+ public byte getByteValue(String s, String attribute, XmlPullParser parser, boolean strict)
+ throws XmlPullParserException {
+ if (s != null) {
+ try {
+ return Byte.valueOf(s).byteValue();
+ } catch (NumberFormatException e) {
+ if (strict) {
+ throw new XmlPullParserException("Unable to parse element '" + attribute + "', must be a byte", parser, null);
+ }
+ }
+ }
+ return 0;
+ } //-- byte getByteValue( String, String, XmlPullParser, boolean )
+
+ /**
+ * Method getCharacterValue.
+ *
+ * @param s
+ * @param parser
+ * @param attribute
+ * @throws XmlPullParserException
+ * @return char
+ */
+ public char getCharacterValue(String s, String attribute, XmlPullParser parser)
+ throws XmlPullParserException {
+ if (s != null) {
+ return s.charAt(0);
+ }
+ return 0;
+ } //-- char getCharacterValue( String, String, XmlPullParser )
+
+ /**
+ * Method getDateValue.
+ *
+ * @param s
+ * @param parser
+ * @throws XmlPullParserException
+ * @return java.util.Date
+ */
+ public java.util.Date getDateValue(String s, XmlPullParser parser)
+ throws XmlPullParserException {
+ return getDateValue(s, null, parser);
+ } //-- java.util.Date getDateValue( String, String, XmlPullParser )
+
+ /**
+ * Method getDateValue.
+ *
+ * @param s
+ * @param parser
+ * @param dateFormat
+ * @throws XmlPullParserException
+ * @return java.util.Date
+ */
+ public java.util.Date getDateValue(String s, String dateFormat, XmlPullParser parser)
+ throws XmlPullParserException {
+ if (s != null) {
+ DateFormat dateParser;
+
+ if (dateFormat == null) {
+ dateParser = DateFormat.getDateInstance();
+ } else {
+ dateParser = new java.text.SimpleDateFormat(dateFormat, Locale.US);
+ }
+ try {
+ return dateParser.parse(s);
+ } catch (java.text.ParseException e) {
+ throw new XmlPullParserException(e.getMessage());
+ }
+ }
+ return null;
+ } //-- java.util.Date getDateValue( String, String, String, XmlPullParser )
+
+ /**
+ * Method getDoubleValue.
+ *
+ * @param s
+ * @param strict
+ * @param parser
+ * @param attribute
+ * @throws XmlPullParserException
+ * @return double
+ */
+ public double getDoubleValue(String s, String attribute, XmlPullParser parser, boolean strict)
+ throws XmlPullParserException {
+ if (s != null) {
+ try {
+ return Double.valueOf(s).doubleValue();
+ } catch (NumberFormatException e) {
+ if (strict) {
+ throw new XmlPullParserException("Unable to parse element '" + attribute + "', must be a floating point number", parser, null);
+ }
+ }
+ }
+ return 0;
+ } //-- double getDoubleValue( String, String, XmlPullParser, boolean )
+
+ /**
+ * Method getFloatValue.
+ *
+ * @param s
+ * @param strict
+ * @param parser
+ * @param attribute
+ * @throws XmlPullParserException
+ * @return float
+ */
+ public float getFloatValue(String s, String attribute, XmlPullParser parser, boolean strict)
+ throws XmlPullParserException {
+ if (s != null) {
+ try {
+ return Float.valueOf(s).floatValue();
+ } catch (NumberFormatException e) {
+ if (strict) {
+ throw new XmlPullParserException("Unable to parse element '" + attribute + "', must be a floating point number", parser, null);
+ }
+ }
+ }
+ return 0;
+ } //-- float getFloatValue( String, String, XmlPullParser, boolean )
+
+ /**
+ * Method getIntegerValue.
+ *
+ * @param s
+ * @param strict
+ * @param parser
+ * @param attribute
+ * @throws XmlPullParserException
+ * @return int
+ */
+ public int getIntegerValue(String s, String attribute, XmlPullParser parser, boolean strict)
+ throws XmlPullParserException {
+ if (s != null) {
+ try {
+ return Integer.valueOf(s).intValue();
+ } catch (NumberFormatException e) {
+ if (strict) {
+ throw new XmlPullParserException("Unable to parse element '" + attribute + "', must be an integer", parser, null);
+ }
+ }
+ }
+ return 0;
+ } //-- int getIntegerValue( String, String, XmlPullParser, boolean )
+
+ /**
+ * Method getLongValue.
+ *
+ * @param s
+ * @param strict
+ * @param parser
+ * @param attribute
+ * @throws XmlPullParserException
+ * @return long
+ */
+ public long getLongValue(String s, String attribute, XmlPullParser parser, boolean strict)
+ throws XmlPullParserException {
+ if (s != null) {
+ try {
+ return Long.valueOf(s).longValue();
+ } catch (NumberFormatException e) {
+ if (strict) {
+ throw new XmlPullParserException("Unable to parse element '" + attribute + "', must be a long integer", parser, null);
+ }
+ }
+ }
+ return 0;
+ } //-- long getLongValue( String, String, XmlPullParser, boolean )
+
+ /**
+ * Method getRequiredAttributeValue.
+ *
+ * @param s
+ * @param strict
+ * @param parser
+ * @param attribute
+ * @throws XmlPullParserException
+ * @return String
+ */
+ public String getRequiredAttributeValue(String s, String attribute, XmlPullParser parser, boolean strict)
+ throws XmlPullParserException {
+ if (s == null) {
+ if (strict) {
+ throw new XmlPullParserException("Missing required value for attribute '" + attribute + "'", parser, null);
+ }
+ }
+ return s;
+ } //-- String getRequiredAttributeValue( String, String, XmlPullParser, boolean )
+
+ /**
+ * Method getShortValue.
+ *
+ * @param s
+ * @param strict
+ * @param parser
+ * @param attribute
+ * @throws XmlPullParserException
+ * @return short
+ */
+ public short getShortValue(String s, String attribute, XmlPullParser parser, boolean strict)
+ throws XmlPullParserException {
+ if (s != null) {
+ try {
+ return Short.valueOf(s).shortValue();
+ } catch (NumberFormatException e) {
+ if (strict) {
+ throw new XmlPullParserException("Unable to parse element '" + attribute + "', must be a short integer", parser, null);
+ }
+ }
+ }
+ return 0;
+ } //-- short getShortValue( String, String, XmlPullParser, boolean )
+
+ /**
+ * Method getTrimmedValue.
+ *
+ * @param s
+ * @return String
+ */
+ public String getTrimmedValue(String s) {
+ if (s != null) {
+ s = s.trim();
+ }
+ return s;
+ } //-- String getTrimmedValue( String )
+
+ /**
+ *
+ * @param type
+ * @param parser
+ * @param parsed
+ * @return the text of the node
+ * @throws XmlPullParserException
+ * @throws IOException
+ */
+ protected String getText(String type, XmlPullParser parser, java.util.Set<String> parsed) throws XmlPullParserException, IOException {
+ if (parsed.contains(type)) {
+ throw new XmlPullParserException("Duplicated tag: '" + parser.getName() + "'", parser, null);
+ }
+ parsed.add(type);
+ return getTrimmedValue(parser.nextText());
+ } //-- String getText( String, XmlPullParser , java.util.Set )
+
+ /**
+ * @see ReaderFactory#newXmlReader
+ *
+ * @param reader
+ * @throws IOException
+ * @throws XmlPullParserException
+ * @return Settings
+ */
+ public M read( Reader reader )
+ throws IOException, XmlPullParserException
+ {
+ return read( reader, true );
+ } //-- Settings read( Reader )
+
+ /**
+ * @see ReaderFactory#newXmlReader
+ *
+ * @param reader
+ * @param strict
+ * @throws IOException
+ * @throws XmlPullParserException
+ * @return Settings
+ */
+ public M read(Reader reader, boolean strict)
+ throws IOException, XmlPullParserException {
+ XmlPullParser parser = new MXParser();
+
+ parser.setInput(reader);
+
+ if (addDefaultEntities) {
+ // ----------------------------------------------------------------------
+ // Latin 1 entities
+ // ----------------------------------------------------------------------
+
+ parser.defineEntityReplacementText("nbsp", "\u00a0");
+ parser.defineEntityReplacementText("iexcl", "\u00a1");
+ parser.defineEntityReplacementText("cent", "\u00a2");
+ parser.defineEntityReplacementText("pound", "\u00a3");
+ parser.defineEntityReplacementText("curren", "\u00a4");
+ parser.defineEntityReplacementText("yen", "\u00a5");
+ parser.defineEntityReplacementText("brvbar", "\u00a6");
+ parser.defineEntityReplacementText("sect", "\u00a7");
+ parser.defineEntityReplacementText("uml", "\u00a8");
+ parser.defineEntityReplacementText("copy", "\u00a9");
+ parser.defineEntityReplacementText("ordf", "\u00aa");
+ parser.defineEntityReplacementText("laquo", "\u00ab");
+ parser.defineEntityReplacementText("not", "\u00ac");
+ parser.defineEntityReplacementText("shy", "\u00ad");
+ parser.defineEntityReplacementText("reg", "\u00ae");
+ parser.defineEntityReplacementText("macr", "\u00af");
+ parser.defineEntityReplacementText("deg", "\u00b0");
+ parser.defineEntityReplacementText("plusmn", "\u00b1");
+ parser.defineEntityReplacementText("sup2", "\u00b2");
+ parser.defineEntityReplacementText("sup3", "\u00b3");
+ parser.defineEntityReplacementText("acute", "\u00b4");
+ parser.defineEntityReplacementText("micro", "\u00b5");
+ parser.defineEntityReplacementText("para", "\u00b6");
+ parser.defineEntityReplacementText("middot", "\u00b7");
+ parser.defineEntityReplacementText("cedil", "\u00b8");
+ parser.defineEntityReplacementText("sup1", "\u00b9");
+ parser.defineEntityReplacementText("ordm", "\u00ba");
+ parser.defineEntityReplacementText("raquo", "\u00bb");
+ parser.defineEntityReplacementText("frac14", "\u00bc");
+ parser.defineEntityReplacementText("frac12", "\u00bd");
+ parser.defineEntityReplacementText("frac34", "\u00be");
+ parser.defineEntityReplacementText("iquest", "\u00bf");
+ parser.defineEntityReplacementText("Agrave", "\u00c0");
+ parser.defineEntityReplacementText("Aacute", "\u00c1");
+ parser.defineEntityReplacementText("Acirc", "\u00c2");
+ parser.defineEntityReplacementText("Atilde", "\u00c3");
+ parser.defineEntityReplacementText("Auml", "\u00c4");
+ parser.defineEntityReplacementText("Aring", "\u00c5");
+ parser.defineEntityReplacementText("AElig", "\u00c6");
+ parser.defineEntityReplacementText("Ccedil", "\u00c7");
+ parser.defineEntityReplacementText("Egrave", "\u00c8");
+ parser.defineEntityReplacementText("Eacute", "\u00c9");
+ parser.defineEntityReplacementText("Ecirc", "\u00ca");
+ parser.defineEntityReplacementText("Euml", "\u00cb");
+ parser.defineEntityReplacementText("Igrave", "\u00cc");
+ parser.defineEntityReplacementText("Iacute", "\u00cd");
+ parser.defineEntityReplacementText("Icirc", "\u00ce");
+ parser.defineEntityReplacementText("Iuml", "\u00cf");
+ parser.defineEntityReplacementText("ETH", "\u00d0");
+ parser.defineEntityReplacementText("Ntilde", "\u00d1");
+ parser.defineEntityReplacementText("Ograve", "\u00d2");
+ parser.defineEntityReplacementText("Oacute", "\u00d3");
+ parser.defineEntityReplacementText("Ocirc", "\u00d4");
+ parser.defineEntityReplacementText("Otilde", "\u00d5");
+ parser.defineEntityReplacementText("Ouml", "\u00d6");
+ parser.defineEntityReplacementText("times", "\u00d7");
+ parser.defineEntityReplacementText("Oslash", "\u00d8");
+ parser.defineEntityReplacementText("Ugrave", "\u00d9");
+ parser.defineEntityReplacementText("Uacute", "\u00da");
+ parser.defineEntityReplacementText("Ucirc", "\u00db");
+ parser.defineEntityReplacementText("Uuml", "\u00dc");
+ parser.defineEntityReplacementText("Yacute", "\u00dd");
+ parser.defineEntityReplacementText("THORN", "\u00de");
+ parser.defineEntityReplacementText("szlig", "\u00df");
+ parser.defineEntityReplacementText("agrave", "\u00e0");
+ parser.defineEntityReplacementText("aacute", "\u00e1");
+ parser.defineEntityReplacementText("acirc", "\u00e2");
+ parser.defineEntityReplacementText("atilde", "\u00e3");
+ parser.defineEntityReplacementText("auml", "\u00e4");
+ parser.defineEntityReplacementText("aring", "\u00e5");
+ parser.defineEntityReplacementText("aelig", "\u00e6");
+ parser.defineEntityReplacementText("ccedil", "\u00e7");
+ parser.defineEntityReplacementText("egrave", "\u00e8");
+ parser.defineEntityReplacementText("eacute", "\u00e9");
+ parser.defineEntityReplacementText("ecirc", "\u00ea");
+ parser.defineEntityReplacementText("euml", "\u00eb");
+ parser.defineEntityReplacementText("igrave", "\u00ec");
+ parser.defineEntityReplacementText("iacute", "\u00ed");
+ parser.defineEntityReplacementText("icirc", "\u00ee");
+ parser.defineEntityReplacementText("iuml", "\u00ef");
+ parser.defineEntityReplacementText("eth", "\u00f0");
+ parser.defineEntityReplacementText("ntilde", "\u00f1");
+ parser.defineEntityReplacementText("ograve", "\u00f2");
+ parser.defineEntityReplacementText("oacute", "\u00f3");
+ parser.defineEntityReplacementText("ocirc", "\u00f4");
+ parser.defineEntityReplacementText("otilde", "\u00f5");
+ parser.defineEntityReplacementText("ouml", "\u00f6");
+ parser.defineEntityReplacementText("divide", "\u00f7");
+ parser.defineEntityReplacementText("oslash", "\u00f8");
+ parser.defineEntityReplacementText("ugrave", "\u00f9");
+ parser.defineEntityReplacementText("uacute", "\u00fa");
+ parser.defineEntityReplacementText("ucirc", "\u00fb");
+ parser.defineEntityReplacementText("uuml", "\u00fc");
+ parser.defineEntityReplacementText("yacute", "\u00fd");
+ parser.defineEntityReplacementText("thorn", "\u00fe");
+ parser.defineEntityReplacementText("yuml", "\u00ff");
+
+ // ----------------------------------------------------------------------
+ // Special entities
+ // ----------------------------------------------------------------------
+
+ parser.defineEntityReplacementText("OElig", "\u0152");
+ parser.defineEntityReplacementText("oelig", "\u0153");
+ parser.defineEntityReplacementText("Scaron", "\u0160");
+ parser.defineEntityReplacementText("scaron", "\u0161");
+ parser.defineEntityReplacementText("Yuml", "\u0178");
+ parser.defineEntityReplacementText("circ", "\u02c6");
+ parser.defineEntityReplacementText("tilde", "\u02dc");
+ parser.defineEntityReplacementText("ensp", "\u2002");
+ parser.defineEntityReplacementText("emsp", "\u2003");
+ parser.defineEntityReplacementText("thinsp", "\u2009");
+ parser.defineEntityReplacementText("zwnj", "\u200c");
+ parser.defineEntityReplacementText("zwj", "\u200d");
+ parser.defineEntityReplacementText("lrm", "\u200e");
+ parser.defineEntityReplacementText("rlm", "\u200f");
+ parser.defineEntityReplacementText("ndash", "\u2013");
+ parser.defineEntityReplacementText("mdash", "\u2014");
+ parser.defineEntityReplacementText("lsquo", "\u2018");
+ parser.defineEntityReplacementText("rsquo", "\u2019");
+ parser.defineEntityReplacementText("sbquo", "\u201a");
+ parser.defineEntityReplacementText("ldquo", "\u201c");
+ parser.defineEntityReplacementText("rdquo", "\u201d");
+ parser.defineEntityReplacementText("bdquo", "\u201e");
+ parser.defineEntityReplacementText("dagger", "\u2020");
+ parser.defineEntityReplacementText("Dagger", "\u2021");
+ parser.defineEntityReplacementText("permil", "\u2030");
+ parser.defineEntityReplacementText("lsaquo", "\u2039");
+ parser.defineEntityReplacementText("rsaquo", "\u203a");
+ parser.defineEntityReplacementText("euro", "\u20ac");
+
+ // ----------------------------------------------------------------------
+ // Symbol entities
+ // ----------------------------------------------------------------------
+
+ parser.defineEntityReplacementText("fnof", "\u0192");
+ parser.defineEntityReplacementText("Alpha", "\u0391");
+ parser.defineEntityReplacementText("Beta", "\u0392");
+ parser.defineEntityReplacementText("Gamma", "\u0393");
+ parser.defineEntityReplacementText("Delta", "\u0394");
+ parser.defineEntityReplacementText("Epsilon", "\u0395");
+ parser.defineEntityReplacementText("Zeta", "\u0396");
+ parser.defineEntityReplacementText("Eta", "\u0397");
+ parser.defineEntityReplacementText("Theta", "\u0398");
+ parser.defineEntityReplacementText("Iota", "\u0399");
+ parser.defineEntityReplacementText("Kappa", "\u039a");
+ parser.defineEntityReplacementText("Lambda", "\u039b");
+ parser.defineEntityReplacementText("Mu", "\u039c");
+ parser.defineEntityReplacementText("Nu", "\u039d");
+ parser.defineEntityReplacementText("Xi", "\u039e");
+ parser.defineEntityReplacementText("Omicron", "\u039f");
+ parser.defineEntityReplacementText("Pi", "\u03a0");
+ parser.defineEntityReplacementText("Rho", "\u03a1");
+ parser.defineEntityReplacementText("Sigma", "\u03a3");
+ parser.defineEntityReplacementText("Tau", "\u03a4");
+ parser.defineEntityReplacementText("Upsilon", "\u03a5");
+ parser.defineEntityReplacementText("Phi", "\u03a6");
+ parser.defineEntityReplacementText("Chi", "\u03a7");
+ parser.defineEntityReplacementText("Psi", "\u03a8");
+ parser.defineEntityReplacementText("Omega", "\u03a9");
+ parser.defineEntityReplacementText("alpha", "\u03b1");
+ parser.defineEntityReplacementText("beta", "\u03b2");
+ parser.defineEntityReplacementText("gamma", "\u03b3");
+ parser.defineEntityReplacementText("delta", "\u03b4");
+ parser.defineEntityReplacementText("epsilon", "\u03b5");
+ parser.defineEntityReplacementText("zeta", "\u03b6");
+ parser.defineEntityReplacementText("eta", "\u03b7");
+ parser.defineEntityReplacementText("theta", "\u03b8");
+ parser.defineEntityReplacementText("iota", "\u03b9");
+ parser.defineEntityReplacementText("kappa", "\u03ba");
+ parser.defineEntityReplacementText("lambda", "\u03bb");
+ parser.defineEntityReplacementText("mu", "\u03bc");
+ parser.defineEntityReplacementText("nu", "\u03bd");
+ parser.defineEntityReplacementText("xi", "\u03be");
+ parser.defineEntityReplacementText("omicron", "\u03bf");
+ parser.defineEntityReplacementText("pi", "\u03c0");
+ parser.defineEntityReplacementText("rho", "\u03c1");
+ parser.defineEntityReplacementText("sigmaf", "\u03c2");
+ parser.defineEntityReplacementText("sigma", "\u03c3");
+ parser.defineEntityReplacementText("tau", "\u03c4");
+ parser.defineEntityReplacementText("upsilon", "\u03c5");
+ parser.defineEntityReplacementText("phi", "\u03c6");
+ parser.defineEntityReplacementText("chi", "\u03c7");
+ parser.defineEntityReplacementText("psi", "\u03c8");
+ parser.defineEntityReplacementText("omega", "\u03c9");
+ parser.defineEntityReplacementText("thetasym", "\u03d1");
+ parser.defineEntityReplacementText("upsih", "\u03d2");
+ parser.defineEntityReplacementText("piv", "\u03d6");
+ parser.defineEntityReplacementText("bull", "\u2022");
+ parser.defineEntityReplacementText("hellip", "\u2026");
+ parser.defineEntityReplacementText("prime", "\u2032");
+ parser.defineEntityReplacementText("Prime", "\u2033");
+ parser.defineEntityReplacementText("oline", "\u203e");
+ parser.defineEntityReplacementText("frasl", "\u2044");
+ parser.defineEntityReplacementText("weierp", "\u2118");
+ parser.defineEntityReplacementText("image", "\u2111");
+ parser.defineEntityReplacementText("real", "\u211c");
+ parser.defineEntityReplacementText("trade", "\u2122");
+ parser.defineEntityReplacementText("alefsym", "\u2135");
+ parser.defineEntityReplacementText("larr", "\u2190");
+ parser.defineEntityReplacementText("uarr", "\u2191");
+ parser.defineEntityReplacementText("rarr", "\u2192");
+ parser.defineEntityReplacementText("darr", "\u2193");
+ parser.defineEntityReplacementText("harr", "\u2194");
+ parser.defineEntityReplacementText("crarr", "\u21b5");
+ parser.defineEntityReplacementText("lArr", "\u21d0");
+ parser.defineEntityReplacementText("uArr", "\u21d1");
+ parser.defineEntityReplacementText("rArr", "\u21d2");
+ parser.defineEntityReplacementText("dArr", "\u21d3");
+ parser.defineEntityReplacementText("hArr", "\u21d4");
+ parser.defineEntityReplacementText("forall", "\u2200");
+ parser.defineEntityReplacementText("part", "\u2202");
+ parser.defineEntityReplacementText("exist", "\u2203");
+ parser.defineEntityReplacementText("empty", "\u2205");
+ parser.defineEntityReplacementText("nabla", "\u2207");
+ parser.defineEntityReplacementText("isin", "\u2208");
+ parser.defineEntityReplacementText("notin", "\u2209");
+ parser.defineEntityReplacementText("ni", "\u220b");
+ parser.defineEntityReplacementText("prod", "\u220f");
+ parser.defineEntityReplacementText("sum", "\u2211");
+ parser.defineEntityReplacementText("minus", "\u2212");
+ parser.defineEntityReplacementText("lowast", "\u2217");
+ parser.defineEntityReplacementText("radic", "\u221a");
+ parser.defineEntityReplacementText("prop", "\u221d");
+ parser.defineEntityReplacementText("infin", "\u221e");
+ parser.defineEntityReplacementText("ang", "\u2220");
+ parser.defineEntityReplacementText("and", "\u2227");
+ parser.defineEntityReplacementText("or", "\u2228");
+ parser.defineEntityReplacementText("cap", "\u2229");
+ parser.defineEntityReplacementText("cup", "\u222a");
+ parser.defineEntityReplacementText("int", "\u222b");
+ parser.defineEntityReplacementText("there4", "\u2234");
+ parser.defineEntityReplacementText("sim", "\u223c");
+ parser.defineEntityReplacementText("cong", "\u2245");
+ parser.defineEntityReplacementText("asymp", "\u2248");
+ parser.defineEntityReplacementText("ne", "\u2260");
+ parser.defineEntityReplacementText("equiv", "\u2261");
+ parser.defineEntityReplacementText("le", "\u2264");
+ parser.defineEntityReplacementText("ge", "\u2265");
+ parser.defineEntityReplacementText("sub", "\u2282");
+ parser.defineEntityReplacementText("sup", "\u2283");
+ parser.defineEntityReplacementText("nsub", "\u2284");
+ parser.defineEntityReplacementText("sube", "\u2286");
+ parser.defineEntityReplacementText("supe", "\u2287");
+ parser.defineEntityReplacementText("oplus", "\u2295");
+ parser.defineEntityReplacementText("otimes", "\u2297");
+ parser.defineEntityReplacementText("perp", "\u22a5");
+ parser.defineEntityReplacementText("sdot", "\u22c5");
+ parser.defineEntityReplacementText("lceil", "\u2308");
+ parser.defineEntityReplacementText("rceil", "\u2309");
+ parser.defineEntityReplacementText("lfloor", "\u230a");
+ parser.defineEntityReplacementText("rfloor", "\u230b");
+ parser.defineEntityReplacementText("lang", "\u2329");
+ parser.defineEntityReplacementText("rang", "\u232a");
+ parser.defineEntityReplacementText("loz", "\u25ca");
+ parser.defineEntityReplacementText("spades", "\u2660");
+ parser.defineEntityReplacementText("clubs", "\u2663");
+ parser.defineEntityReplacementText("hearts", "\u2665");
+ parser.defineEntityReplacementText("diams", "\u2666");
+
+ }
+
+ parser.next();
+ return doParse(parser, strict);
+ } //-- Settings read( Reader, boolean )
+
+ /**
+ * Sets the state of the "add default entities" flag.
+ *
+ * @param addDefaultEntities
+ */
+ public void setAddDefaultEntities(boolean addDefaultEntities) {
+ this.addDefaultEntities = addDefaultEntities;
+ } //-- void setAddDefaultEntities( boolean )
+}
Property changes on: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/AbstractXpp3Reader.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL
Added: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/ProjectXpp3Reader.java
===================================================================
--- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/ProjectXpp3Reader.java (rev 0)
+++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/ProjectXpp3Reader.java 2009-09-06 23:23:42 UTC (rev 20)
@@ -0,0 +1,94 @@
+package org.nuiton.redmine.model.io.xpp3;
+
+import java.io.IOException;
+import org.codehaus.plexus.util.xml.pull.XmlPullParser;
+import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
+import org.nuiton.redmine.model.Project;
+
+/**
+ *
+ * @author chemit
+ * @since 1.0.0
+ */
+public class ProjectXpp3Reader extends AbstractXpp3Reader<Project> {
+
+ @Override
+ protected Project doParse(XmlPullParser parser, boolean strict) throws IOException, XmlPullParserException {
+
+ Project project = new Project();
+
+ java.util.Set<String> parsed = new java.util.HashSet<String>();
+ int eventType = parser.getEventType();
+ boolean foundRoot = false;
+ while (eventType != XmlPullParser.END_DOCUMENT) {
+ String txt;
+ if (eventType == XmlPullParser.START_TAG) {
+ if (parser.getName().equals("project")) {
+ foundRoot = true;
+ } else if (parser.getName().equals("created-on")) {
+ txt = getText("created-on", parser, parsed);
+ if (txt != null && !txt.isEmpty()) {
+ project.setCreatedOn(getDateValue(txt, "yyyy-MM-dd'T'HH:mm:ss'+'SS':'SS", parser));
+ }
+ } else if (parser.getName().equals("updated-on")) {
+ txt = getText("updated-on", parser, parsed);
+ if (txt != null && !txt.isEmpty()) {
+ project.setUpdatedOn(getDateValue(txt, "yyyy-MM-dd'T'HH:mm:ss'+'SS':'SS",parser));
+ }
+ } else if (parser.getName().equals("description")) {
+ txt = getText("description", parser, parsed);
+ if (txt != null && !txt.isEmpty()) {
+ project.setDescription(txt);
+ }
+ } else if (parser.getName().equals("homepage")) {
+ txt = getText("homepage", parser, parsed);
+ if (txt != null && !txt.isEmpty()) {
+ project.setHomepage(txt);
+ }
+ } else if (parser.getName().equals("name")) {
+ txt = getText("name", parser, parsed);
+ if (txt != null && !txt.isEmpty()) {
+ project.setName(txt);
+ }
+ } else if (parser.getName().equals("identifier")) {
+ txt = getText("identifier", parser, parsed);
+ if (txt != null && !txt.isEmpty()) {
+ project.setIdentifier(txt);
+ }
+ } else if (parser.getName().equals("id")) {
+ txt = getText("id", parser, parsed);
+ if (txt != null && !txt.isEmpty()) {
+ project.setId(getIntegerValue(txt, null, parser, strict));
+ }
+
+ } else if (parser.getName().equals("parent-id")) {
+ txt = getText("parent-id", parser, parsed);
+ if (txt != null && !txt.isEmpty()) {
+ project.setParentId(getIntegerValue(txt, null, parser, strict));
+ }
+
+ } else if (parser.getName().equals("projects-count")) {
+ txt = getText("projects-count", parser, parsed);
+ if (txt != null && !txt.isEmpty()) {
+ project.setProjectsCount(getIntegerValue(txt, null, parser, strict));
+ }
+
+ } else if (parser.getName().equals("status")) {
+ txt = getText("status", parser, parsed);
+ if (txt != null && !txt.isEmpty()) {
+ project.setStatus(getIntegerValue(txt, null, parser, strict));
+ }
+ } else if (parser.getName().equals("is-public")) {
+ txt = getText("is-public", parser, parsed);
+ if (txt != null && !txt.isEmpty()) {
+ project.setIspublic(getBooleanValue(txt, null, parser));
+ }
+ } else if (strict) {
+ throw new XmlPullParserException("Unrecognised tag: '" + parser.getName() + "'", parser, null);
+ }
+ }
+ eventType = parser.next();
+ }
+ return project;
+ }
+}
Property changes on: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/ProjectXpp3Reader.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL
Added: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/ProjectXpp3Writer.java
===================================================================
--- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/ProjectXpp3Writer.java (rev 0)
+++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/ProjectXpp3Writer.java 2009-09-06 23:23:42 UTC (rev 20)
@@ -0,0 +1,10 @@
+package org.nuiton.redmine.model.io.xpp3;
+
+/**
+ *
+ * @author chemit
+ * @since 1.0.0
+ */
+public class ProjectXpp3Writer {
+
+}
Property changes on: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/ProjectXpp3Writer.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL
Added: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/VersionsXpp3Reader.java
===================================================================
--- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/VersionsXpp3Reader.java (rev 0)
+++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/VersionsXpp3Reader.java 2009-09-06 23:23:42 UTC (rev 20)
@@ -0,0 +1,77 @@
+package org.nuiton.redmine.model.io.xpp3;
+
+import java.io.IOException;
+import org.codehaus.plexus.util.xml.pull.XmlPullParser;
+import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
+import org.nuiton.redmine.model.Version;
+
+/**
+ *
+ * @author chemit
+ * @since 1.0.0
+ */
+public class VersionsXpp3Reader extends AbstractXpp3Reader<Version> {
+
+ @Override
+ protected Version doParse(XmlPullParser parser, boolean strict) throws IOException, XmlPullParserException {
+
+ Version version = new Version();
+
+ java.util.Set<String> parsed = new java.util.HashSet<String>();
+ int eventType = parser.getEventType();
+ boolean foundRoot = false;
+ while (eventType != XmlPullParser.END_DOCUMENT) {
+ String txt;
+ if (eventType == XmlPullParser.START_TAG) {
+ if (parser.getName().equals("version")) {
+ foundRoot = true;
+ } else if (parser.getName().equals("created-on")) {
+ txt = getText("created-on", parser, parsed);
+ if (txt != null && !txt.isEmpty()) {
+ version.setCreatedOn(getDateValue(txt, "yyyy-MM-dd'T'HH:mm:ss'+'SS':'SS", parser));
+ }
+ } else if (parser.getName().equals("updated-on")) {
+ txt = getText("updated-on", parser, parsed);
+ if (txt != null && !txt.isEmpty()) {
+ version.setUpdatedOn(getDateValue(txt,"yyyy-MM-dd'T'HH:mm:ss'+'SS':'SS", parser));
+ }
+ } else if (parser.getName().equals("effective-date")) {
+ txt = getText("effective-date", parser, parsed);
+ if (txt != null && !txt.isEmpty()) {
+ version.setEffectiveDate(getDateValue(txt,"yyyy-MM-dd'T'HH:mm:ss'+'SS':'SS", parser));
+ }
+ } else if (parser.getName().equals("description")) {
+ txt = getText("description", parser, parsed);
+ if (txt != null && !txt.isEmpty()) {
+ version.setDescription(txt);
+ }
+ } else if (parser.getName().equals("wiki-page-title")) {
+ txt = getText("wiki-page-title", parser, parsed);
+ if (txt != null && !txt.isEmpty()) {
+ version.setWikiPagetitle(txt);
+ }
+ } else if (parser.getName().equals("name")) {
+ txt = getText("name", parser, parsed);
+ if (txt != null && !txt.isEmpty()) {
+ version.setName(txt);
+ }
+ } else if (parser.getName().equals("id")) {
+ txt = getText("id", parser, parsed);
+ if (txt != null && !txt.isEmpty()) {
+ version.setId(getIntegerValue(txt, null, parser, strict));
+ }
+
+ } else if (parser.getName().equals("project-id")) {
+ txt = getText("project-id", parser, parsed);
+ if (txt != null && !txt.isEmpty()) {
+ version.setProjectId(getIntegerValue(txt, null, parser, strict));
+ }
+ } else if (strict) {
+ throw new XmlPullParserException("Unrecognised tag: '" + parser.getName() + "'", parser, null);
+ }
+ }
+ eventType = parser.next();
+ }
+ return version;
+ }
+}
Property changes on: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/io/xpp3/VersionsXpp3Reader.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL
Added: maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/model/io/xpp3/ProjectXpp3ReaderTest.java
===================================================================
--- maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/model/io/xpp3/ProjectXpp3ReaderTest.java (rev 0)
+++ maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/model/io/xpp3/ProjectXpp3ReaderTest.java 2009-09-06 23:23:42 UTC (rev 20)
@@ -0,0 +1,80 @@
+package org.nuiton.redmine.model.io.xpp3;
+
+import java.io.File;
+import org.apache.maven.plugin.logging.SystemStreamLog;
+import org.codehaus.plexus.PlexusTestCase;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.nuiton.redmine.model.ModelBuilder;
+import static org.junit.Assert.*;
+import org.nuiton.redmine.model.Project;
+
+/**
+ *
+ * @author chemit
+ */
+public class ProjectXpp3ReaderTest {
+
+ protected static File basedir;
+ protected static File testDir;
+ protected static ModelBuilder builder;
+
+ protected static File getBaseDir() {
+ if (basedir == null) {
+
+ String path = PlexusTestCase.getBasedir();
+ basedir = new File(path);
+ }
+ return basedir;
+ }
+
+ protected static File getTestDir() {
+ return testDir;
+ }
+
+ @BeforeClass
+ public static void setUpClass() throws Exception {
+
+ String rep = ProjectXpp3ReaderTest.class.getName();
+ rep = rep.replaceAll("\\.", File.separator);
+
+ File f = new File(getBaseDir(), "src" + File.separator + "test" + File.separator + "resources");
+ //File f = new File(getBaseDir(), "src" + File.separator + "test" + File.separator + "resources");
+ testDir = new File(f, rep).getParentFile();
+ System.out.println("test dir : " + testDir);
+ builder = new ModelBuilder(new SystemStreamLog());
+ }
+
+ @AfterClass
+ public static void tearDownClass() throws Exception {
+ }
+
+ @Before
+ public void setUp() {
+ }
+
+ @After
+ public void tearDown() {
+ }
+
+ /**
+ * Test of doParse method, of class ProjectXpp3Reader.
+ * @throws Exception
+ */
+ @Test
+ public void testDoParse() throws Exception {
+ System.out.println("doParse");
+
+ File projectFile = new File(testDir, "simple-project.xml");
+
+ Project expResult = null;
+
+ Project result = builder.readProject(projectFile);
+ assertNotNull(result);
+
+
+ }
+}
Property changes on: maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/model/io/xpp3/ProjectXpp3ReaderTest.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL
Added: maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/model/io/xpp3/VersionXpp3ReaderTest.java
===================================================================
--- maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/model/io/xpp3/VersionXpp3ReaderTest.java (rev 0)
+++ maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/model/io/xpp3/VersionXpp3ReaderTest.java 2009-09-06 23:23:42 UTC (rev 20)
@@ -0,0 +1,81 @@
+package org.nuiton.redmine.model.io.xpp3;
+
+import java.io.File;
+import org.apache.maven.plugin.logging.SystemStreamLog;
+import org.codehaus.plexus.PlexusTestCase;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.nuiton.redmine.model.ModelBuilder;
+import static org.junit.Assert.*;
+import org.nuiton.redmine.model.Project;
+import org.nuiton.redmine.model.Version;
+
+/**
+ *
+ * @author chemit
+ */
+public class VersionXpp3ReaderTest {
+
+ protected static File basedir;
+ protected static File testDir;
+ protected static ModelBuilder builder;
+
+ protected static File getBaseDir() {
+ if (basedir == null) {
+
+ String path = PlexusTestCase.getBasedir();
+ basedir = new File(path);
+ }
+ return basedir;
+ }
+
+ protected static File getTestDir() {
+ return testDir;
+ }
+
+ @BeforeClass
+ public static void setUpClass() throws Exception {
+
+ String rep = VersionXpp3ReaderTest.class.getName();
+ rep = rep.replaceAll("\\.", File.separator);
+
+ File f = new File(getBaseDir(), "src" + File.separator + "test" + File.separator + "resources");
+ //File f = new File(getBaseDir(), "src" + File.separator + "test" + File.separator + "resources");
+ testDir = new File(f, rep).getParentFile();
+ System.out.println("test dir : " + testDir);
+ builder = new ModelBuilder(new SystemStreamLog());
+ }
+
+ @AfterClass
+ public static void tearDownClass() throws Exception {
+ }
+
+ @Before
+ public void setUp() {
+ }
+
+ @After
+ public void tearDown() {
+ }
+
+ /**
+ * Test of doParse method, of class ProjectXpp3Reader.
+ * @throws Exception
+ */
+ @Test
+ public void testDoParse() throws Exception {
+ System.out.println("doParse");
+
+ File versionFile = new File(testDir, "simple-version.xml");
+
+ Project expResult = null;
+
+ Version result = builder.readVersion(versionFile);
+ assertNotNull(result);
+
+
+ }
+}
Property changes on: maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/model/io/xpp3/VersionXpp3ReaderTest.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL
Added: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/io/xpp3/simple-files.xml
===================================================================
--- maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/io/xpp3/simple-files.xml (rev 0)
+++ maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/io/xpp3/simple-files.xml 2009-09-06 23:23:42 UTC (rev 20)
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<attachments type="array">
+ <attachment>
+ <author-id type="integer">4</author-id>
+ <container-id type="integer">1</container-id>
+ <container-type>Version</container-type>
+ <content-type>application/json</content-type>
+ <created-on type="datetime">2009-09-05T12:56:41+02:00</created-on>
+ <description></description>
+ <digest>6ea84342c7475c05fb077b4aca832f9a</digest>
+ <disk-filename>090905125641_get_issue.json</disk-filename>
+ <downloads type="integer">0</downloads>
+ <filename>get_issue.json</filename>
+ <filesize type="integer">411</filesize>
+ <id type="integer">1</id>
+ </attachment>
+</attachments>
Added: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/io/xpp3/simple-issues.xml
===================================================================
--- maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/io/xpp3/simple-issues.xml (rev 0)
+++ maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/io/xpp3/simple-issues.xml 2009-09-06 23:23:42 UTC (rev 20)
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues type="array">
+ <issue>
+ <assigned-to-id type="integer" nil="true"></assigned-to-id>
+ <author-id type="integer">5</author-id>
+ <category-id type="integer">2</category-id>
+ <created-on type="datetime">2009-09-04T20:11:52+02:00</created-on>
+ <description>avec une description !</description>
+ <done-ratio type="integer">0</done-ratio>
+ <due-date type="date" nil="true"></due-date>
+ <estimated-hours type="float" nil="true"></estimated-hours>
+ <fixed-version-id type="integer">1</fixed-version-id>
+ <id type="integer">3</id>
+ <lock-version type="integer">7</lock-version>
+ <priority-id type="integer">4</priority-id>
+ <project-id type="integer">1</project-id>
+ <start-date type="date">2009-09-04</start-date>
+ <status-id type="integer">3</status-id>
+ <subject>yes!</subject>
+ <tracker-id type="integer">1</tracker-id>
+ <updated-on type="datetime">2009-09-06T00:37:40+02:00</updated-on>
+ </issue>
+</issues>
Added: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/io/xpp3/simple-project.xml
===================================================================
--- maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/io/xpp3/simple-project.xml (rev 0)
+++ maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/io/xpp3/simple-project.xml 2009-09-06 23:23:42 UTC (rev 20)
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <created-on type="datetime">2009-09-04T18:11:54+02:00</created-on>
+ <updated-on type="datetime">2009-09-04T18:11:54+02:00</updated-on>
+ <description></description>
+ <homepage></homepage>
+ <identifier>one</identifier>
+ <name>one</name>
+ <id type="integer">1</id>
+ <parent-id type="integer" nil="true"></parent-id>
+ <projects-count type="integer">0</projects-count>
+ <status type="integer">1</status>
+ <is-public type="boolean">true</is-public>
+</project>
Added: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/io/xpp3/simple-trackers.xml
===================================================================
--- maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/io/xpp3/simple-trackers.xml (rev 0)
+++ maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/io/xpp3/simple-trackers.xml 2009-09-06 23:23:42 UTC (rev 20)
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<trackers type="array">
+ <tracker>
+ <id type="integer">1</id>
+ <is-in-chlog type="boolean">true</is-in-chlog>
+ <is-in-roadmap type="boolean">false</is-in-roadmap>
+ <name>Anomalie</name>
+ <position type="integer">1</position>
+ <project-id type="NilClass">1</project-id>
+ <tracker-id type="NilClass">1</tracker-id>
+ </tracker>
+ <tracker>
+ <id type="integer">2</id>
+ <is-in-chlog type="boolean">true</is-in-chlog>
+ <is-in-roadmap type="boolean">true</is-in-roadmap>
+ <name>Evolution</name>
+ <position type="integer">2</position>
+ <project-id type="NilClass">1</project-id>
+ <tracker-id type="NilClass">2</tracker-id>
+ </tracker>
+ <tracker>
+ <id type="integer">3</id>
+ <is-in-chlog type="boolean">false</is-in-chlog>
+ <is-in-roadmap type="boolean">false</is-in-roadmap>
+ <name>Assistance</name>
+ <position type="integer">3</position>
+ <project-id type="NilClass">1</project-id>
+ <tracker-id type="NilClass">3</tracker-id>
+ </tracker>
+</trackers>
Added: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/io/xpp3/simple-users.xml
===================================================================
--- maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/io/xpp3/simple-users.xml (rev 0)
+++ maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/io/xpp3/simple-users.xml 2009-09-06 23:23:42 UTC (rev 20)
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<users type="array">
+ <user>
+ <admin type="boolean">true</admin>
+ <auth-source-id type="integer" nil="true"></auth-source-id>
+ <created-on type="datetime">2009-09-04T17:24:46+02:00</created-on>
+ <firstname>Redmine</firstname>
+ <hashed-password>70c881d4a26984ddce795f6f71817c9cf4480e79</hashed-password>
+ <id type="integer">1</id>
+ <language>fr</language>
+ <last-login-on type="datetime">2009-09-06T01:23:59+02:00</last-login-on>
+ <lastname>Admin</lastname>
+ <login>admin</login>
+ <mail>dummy(a)codelutin.com</mail>
+ <mail-notification type="boolean">true</mail-notification>
+ <member-id type="NilClass">5</member-id>
+ <role-id type="NilClass">3</role-id>
+ <status type="integer">1</status>
+ <updated-on type="datetime">2009-09-06T01:23:59+02:00</updated-on>
+ </user>
+ <user>
+ <admin type="boolean">true</admin>
+ <auth-source-id type="integer" nil="true"></auth-source-id>
+ <created-on type="datetime">2009-09-04T19:49:02+02:00</created-on>
+ <firstname>tony</firstname>
+ <hashed-password>8aed1322e5450badb078e1fb60a817a1df25a2ca</hashed-password>
+ <id type="integer">5</id>
+ <language>fr</language>
+ <last-login-on type="datetime">2009-09-04T19:49:38+02:00</last-login-on>
+ <lastname>chemit2</lastname>
+ <login>tchemit2</login>
+ <mail>chemit(a)codelutin.com</mail>
+ <mail-notification type="boolean">false</mail-notification>
+ <member-id type="NilClass">4</member-id>
+ <role-id type="NilClass">3</role-id>
+ <status type="integer">1</status>
+ <updated-on type="datetime">2009-09-04T19:49:38+02:00</updated-on>
+ </user>
+ <user>
+ <admin type="boolean">false</admin>
+ <auth-source-id type="integer" nil="true"></auth-source-id>
+ <created-on type="datetime">2009-09-05T16:24:11+02:00</created-on>
+ <firstname>dev</firstname>
+ <hashed-password>70c881d4a26984ddce795f6f71817c9cf4480e79</hashed-password>
+ <id type="integer">7</id>
+ <language>fr</language>
+ <last-login-on type="datetime">2009-09-06T16:34:39+02:00</last-login-on>
+ <lastname>dev</lastname>
+ <login>dev</login>
+ <mail>dev3(a)ynot-home.info</mail>
+ <mail-notification type="boolean">false</mail-notification>
+ <member-id type="NilClass">9</member-id>
+ <role-id type="NilClass">4</role-id>
+ <status type="integer">1</status>
+ <updated-on type="datetime">2009-09-06T16:34:39+02:00</updated-on>
+ </user>
+</users>
Added: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/io/xpp3/simple-version.xml
===================================================================
--- maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/io/xpp3/simple-version.xml (rev 0)
+++ maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/io/xpp3/simple-version.xml 2009-09-06 23:23:42 UTC (rev 20)
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<version>
+ <created-on type="datetime">2009-09-04T18:13:05+02:00</created-on>
+ <updated-on type="datetime">2009-09-04T18:13:05+02:00</updated-on>
+ <effective-date type="date" nil="true"></effective-date>
+ <name>1.0.0</name>
+ <description></description>
+ <wiki-page-title nil="true"></wiki-page-title>
+ <id type="integer">1</id>
+ <project-id type="integer">1</project-id>
+</version>
Added: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/io/xpp3/simple-versions.xml
===================================================================
--- maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/io/xpp3/simple-versions.xml (rev 0)
+++ maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/io/xpp3/simple-versions.xml 2009-09-06 23:23:42 UTC (rev 20)
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<versions type="array">
+ <version>
+ <created-on type="datetime">2009-09-06T02:47:39+02:00</created-on>
+ <description>yo</description>
+ <effective-date type="date" nil="true"></effective-date>
+ <id type="integer">9</id>
+ <name>yor</name>
+ <project-id type="integer">1</project-id>
+ <updated-on type="datetime">2009-09-06T02:50:49+02:00</updated-on>
+ <wiki-page-title nil="true"></wiki-page-title>
+ </version>
+ <version>
+ <created-on type="datetime">2009-09-06T03:05:09+02:00</created-on>
+ <description>ysssoye</description>
+ <effective-date type="date" nil="true"></effective-date>
+ <id type="integer">13</id>
+ <name>rrrrrrrrrouuuuuua</name>
+ <project-id type="integer">1</project-id>
+ <updated-on type="datetime">2009-09-06T03:05:09+02:00</updated-on>
+ <wiki-page-title nil="true"></wiki-page-title>
+ </version>
+ <version>
+ <created-on type="datetime">2009-09-06T03:07:58+02:00</created-on>
+ <description>ysssoye</description>
+ <effective-date type="date" nil="true"></effective-date>
+ <id type="integer">15</id>
+ <name>aaaauuuuuua</name>
+ <project-id type="integer">1</project-id>
+ <updated-on type="datetime">2009-09-06T03:07:58+02:00</updated-on>
+ <wiki-page-title nil="true"></wiki-page-title>
+ </version>
+ <version>
+ <created-on type="datetime">2009-09-06T04:12:25+02:00</created-on>
+ <description>ysssoyeppppppppppppppppp</description>
+ <effective-date type="date" nil="true"></effective-date>
+ <id type="integer">16</id>
+ <name>aaaau</name>
+ <project-id type="integer">1</project-id>
+ <updated-on type="datetime">2009-09-06T04:13:20+02:00</updated-on>
+ <wiki-page-title nil="true"></wiki-page-title>
+ </version>
+ <version>
+ <created-on type="datetime">2009-09-06T03:05:40+02:00</created-on>
+ <description>ysssoye</description>
+ <effective-date type="date" nil="true"></effective-date>
+ <id type="integer">14</id>
+ <name>aaaaaaaaaarrrrrrrrrouuuuuua</name>
+ <project-id type="integer">1</project-id>
+ <updated-on type="datetime">2009-09-06T03:05:40+02:00</updated-on>
+ <wiki-page-title nil="true"></wiki-page-title>
+ </version>
+ <version>
+ <created-on type="datetime">2009-09-05T00:39:15+02:00</created-on>
+ <description></description>
+ <effective-date type="date" nil="true"></effective-date>
+ <id type="integer">5</id>
+ <name>2</name>
+ <project-id type="integer">1</project-id>
+ <updated-on type="datetime">2009-09-05T00:39:15+02:00</updated-on>
+ <wiki-page-title nil="true"></wiki-page-title>
+ </version>
+ <version>
+ <created-on type="datetime">2009-09-04T18:13:05+02:00</created-on>
+ <description></description>
+ <effective-date type="date" nil="true"></effective-date>
+ <id type="integer">1</id>
+ <name>1.0.0</name>
+ <project-id type="integer">1</project-id>
+ <updated-on type="datetime">2009-09-04T18:13:05+02:00</updated-on>
+ <wiki-page-title nil="true"></wiki-page-title>
+ </version>
+ <version>
+ <created-on type="datetime">2009-09-06T03:00:12+02:00</created-on>
+ <description>yoye</description>
+ <effective-date type="date">2009-09-06</effective-date>
+ <id type="integer">11</id>
+ <name>yaouuuuuua</name>
+ <project-id type="integer">1</project-id>
+ <updated-on type="datetime">2009-09-06T03:00:12+02:00</updated-on>
+ <wiki-page-title nil="true"></wiki-page-title>
+ </version>
+ <version>
+ <created-on type="datetime">2009-09-06T02:50:59+02:00</created-on>
+ <description>yoye</description>
+ <effective-date type="date">2009-09-06</effective-date>
+ <id type="integer">10</id>
+ <name>ya</name>
+ <project-id type="integer">1</project-id>
+ <updated-on type="datetime">2009-09-06T02:54:16+02:00</updated-on>
+ <wiki-page-title nil="true"></wiki-page-title>
+ </version>
+ <version>
+ <created-on type="datetime">2009-09-06T03:00:37+02:00</created-on>
+ <description>ysssoye</description>
+ <effective-date type="date">2009-09-06</effective-date>
+ <id type="integer">12</id>
+ <name>ouuuuuua</name>
+ <project-id type="integer">1</project-id>
+ <updated-on type="datetime">2009-09-06T03:00:42+02:00</updated-on>
+ <wiki-page-title nil="true"></wiki-page-title>
+ </version>
+</versions>
1
0
r19 - in maven-redmine-plugin/trunk/src: main/java/org/nuiton/redmine/plugin site test/java/org/nuiton/redmine/plugin test/resources/org/nuiton/redmine/plugin/GetProjectDataMojoTest
by tchemit@users.nuiton.org 06 Sep '09
by tchemit@users.nuiton.org 06 Sep '09
06 Sep '09
Author: tchemit
Date: 2009-09-06 22:07:40 +0200 (Sun, 06 Sep 2009)
New Revision: 19
Modified:
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/GetProjectDataMojo.java
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/GetProjectVersionDataMojo.java
maven-redmine-plugin/trunk/src/site/site.xml
maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/plugin/GetProjectDataMojoTest.java
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/plugin/GetProjectDataMojoTest/get-project-trackers.xml
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/plugin/GetProjectDataMojoTest/get-project-users.xml
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/plugin/GetProjectDataMojoTest/get-project-versions.xml
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/plugin/GetProjectDataMojoTest/get-project.xml
Log:
normalize goal names
Modified: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/GetProjectDataMojo.java
===================================================================
--- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/GetProjectDataMojo.java 2009-09-06 19:06:37 UTC (rev 18)
+++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/GetProjectDataMojo.java 2009-09-06 20:07:40 UTC (rev 19)
@@ -10,7 +10,7 @@
* {@link #projectId}, will ask to redmine server, all datas required.
*
* @author tchemit
- * @goal retreave-project-data
+ * @goal get-project-data
* @requiresProject true
*
* @since 1.0.0
Modified: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/GetProjectVersionDataMojo.java
===================================================================
--- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/GetProjectVersionDataMojo.java 2009-09-06 19:06:37 UTC (rev 18)
+++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/GetProjectVersionDataMojo.java 2009-09-06 20:07:40 UTC (rev 19)
@@ -4,7 +4,7 @@
import org.apache.maven.plugin.MojoFailureException;
/**
- * Retreave some datas on a project.
+ * Retreave some datas on a given version of a project.
*
* Given the {@link #dataType}, the {link #dataFormat} and the
* {@link #projectId}, and {@link #versionId} will ask to redmine server,
Modified: maven-redmine-plugin/trunk/src/site/site.xml
===================================================================
--- maven-redmine-plugin/trunk/src/site/site.xml 2009-09-06 19:06:37 UTC (rev 18)
+++ maven-redmine-plugin/trunk/src/site/site.xml 2009-09-06 20:07:40 UTC (rev 19)
@@ -32,7 +32,10 @@
<item name="Introduction" href="index.html"/>
<item name="Usage" href="usage.html"/>
<item name="Goals" href="plugin-info.html">
- <item name="${mojoGoal}" href="${mojoGoal}-mojo.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>
Modified: maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/plugin/GetProjectDataMojoTest.java
===================================================================
--- maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/plugin/GetProjectDataMojoTest.java 2009-09-06 19:06:37 UTC (rev 18)
+++ maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/plugin/GetProjectDataMojoTest.java 2009-09-06 20:07:40 UTC (rev 19)
@@ -17,7 +17,7 @@
}
@Test
- @PluginConfig(pomName = "get-project.xml", goalName = "retreave-project-data")
+ @PluginConfig(pomName = "get-project.xml", goalName = "get-project-data")
public void testProject() throws Exception {
mojo.doAction();
@@ -25,7 +25,7 @@
}
@Test
- @PluginConfig(pomName = "get-project-users.xml", goalName = "retreave-project-data")
+ @PluginConfig(pomName = "get-project-users.xml", goalName = "get-project-data")
public void testUsers() throws Exception {
mojo.doAction();
@@ -33,7 +33,7 @@
}
@Test
- @PluginConfig(pomName = "get-project-trackers.xml", goalName = "retreave-project-data")
+ @PluginConfig(pomName = "get-project-trackers.xml", goalName = "get-project-data")
public void testTrakers() throws Exception {
mojo.doAction();
@@ -41,7 +41,7 @@
}
@Test
- @PluginConfig(pomName = "get-project-versions.xml", goalName = "retreave-project-data")
+ @PluginConfig(pomName = "get-project-versions.xml", goalName = "get-project-data")
public void testVersions() throws Exception {
mojo.doAction();
Modified: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/plugin/GetProjectDataMojoTest/get-project-trackers.xml
===================================================================
--- maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/plugin/GetProjectDataMojoTest/get-project-trackers.xml 2009-09-06 19:06:37 UTC (rev 18)
+++ maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/plugin/GetProjectDataMojoTest/get-project-trackers.xml 2009-09-06 20:07:40 UTC (rev 19)
@@ -27,7 +27,7 @@
<executions>
<execution>
<goals>
- <goal>retreave-project-data</goal>
+ <goal>get-project-data</goal>
</goals>
</execution>
</executions>
Modified: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/plugin/GetProjectDataMojoTest/get-project-users.xml
===================================================================
--- maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/plugin/GetProjectDataMojoTest/get-project-users.xml 2009-09-06 19:06:37 UTC (rev 18)
+++ maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/plugin/GetProjectDataMojoTest/get-project-users.xml 2009-09-06 20:07:40 UTC (rev 19)
@@ -27,7 +27,7 @@
<executions>
<execution>
<goals>
- <goal>retreave-project-data</goal>
+ <goal>get-project-data</goal>
</goals>
</execution>
</executions>
Modified: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/plugin/GetProjectDataMojoTest/get-project-versions.xml
===================================================================
--- maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/plugin/GetProjectDataMojoTest/get-project-versions.xml 2009-09-06 19:06:37 UTC (rev 18)
+++ maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/plugin/GetProjectDataMojoTest/get-project-versions.xml 2009-09-06 20:07:40 UTC (rev 19)
@@ -27,7 +27,7 @@
<executions>
<execution>
<goals>
- <goal>retreave-project-data</goal>
+ <goal>get-project-data</goal>
</goals>
</execution>
</executions>
Modified: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/plugin/GetProjectDataMojoTest/get-project.xml
===================================================================
--- maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/plugin/GetProjectDataMojoTest/get-project.xml 2009-09-06 19:06:37 UTC (rev 18)
+++ maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/plugin/GetProjectDataMojoTest/get-project.xml 2009-09-06 20:07:40 UTC (rev 19)
@@ -27,7 +27,7 @@
<executions>
<execution>
<goals>
- <goal>retreave-project-data</goal>
+ <goal>get-project-data</goal>
</goals>
</execution>
</executions>
1
0
Author: tchemit
Date: 2009-09-06 21:06:37 +0200 (Sun, 06 Sep 2009)
New Revision: 18
Added:
maven-redmine-plugin/
maven-redmine-plugin/trunk/
maven-redmine-plugin/trunk/LICENSE.txt
maven-redmine-plugin/trunk/README.txt
maven-redmine-plugin/trunk/changelog.txt
maven-redmine-plugin/trunk/pom.xml
maven-redmine-plugin/trunk/src/
maven-redmine-plugin/trunk/src/main/
maven-redmine-plugin/trunk/src/main/java/
maven-redmine-plugin/trunk/src/main/java/org/
maven-redmine-plugin/trunk/src/main/java/org/nuiton/
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/RedmineSession.java
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/Issue.java
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/Project.java
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/Tracker.java
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/User.java
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/Version.java
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/AbstractGetProjectDataMojo.java
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/AbstractRedmineMojo.java
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/DataNotFoundException.java
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/GenerateChangesMojo.java
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/GetProjectDataMojo.java
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/GetProjectVersionDataMojo.java
maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/RedmineReportMojo.java
maven-redmine-plugin/trunk/src/main/resources/
maven-redmine-plugin/trunk/src/site/
maven-redmine-plugin/trunk/src/site/apt/
maven-redmine-plugin/trunk/src/site/apt/Todo.apt
maven-redmine-plugin/trunk/src/site/apt/index.apt
maven-redmine-plugin/trunk/src/site/apt/usage.apt
maven-redmine-plugin/trunk/src/site/site.xml
maven-redmine-plugin/trunk/src/test/
maven-redmine-plugin/trunk/src/test/java/
maven-redmine-plugin/trunk/src/test/java/org/
maven-redmine-plugin/trunk/src/test/java/org/nuiton/
maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/
maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/RedmineSessionTest.java
maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/plugin/
maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/plugin/AbstractRedmineMojoTest.java
maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/plugin/GenerateChangesMojoTest.java
maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/plugin/GetProjectDataMojoTest.java
maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/plugin/GetProjectVersionDataMojoTest.java
maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/plugin/RedmineReportMojoTest.java
maven-redmine-plugin/trunk/src/test/resources/
maven-redmine-plugin/trunk/src/test/resources/org/
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/plugin/
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/plugin/GenerateChangesMojoTest/
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/plugin/GenerateChangesMojoTest/generate-changes.xml
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/plugin/GetProjectDataMojoTest/
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/plugin/GetProjectDataMojoTest/get-project-trackers.xml
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/plugin/GetProjectDataMojoTest/get-project-users.xml
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/plugin/GetProjectDataMojoTest/get-project-versions.xml
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/plugin/GetProjectDataMojoTest/get-project.xml
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/plugin/GetProjectVersionDataMojoTest/
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/plugin/GetProjectVersionDataMojoTest/get-version-files.xml
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/plugin/GetProjectVersionDataMojoTest/get-version-issues.xml
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/plugin/GetProjectVersionDataMojoTest/get-version.xml
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/plugin/RedmineReportMojoTest/
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/plugin/RedmineReportMojoTest/redmine-report.xml
Log:
initial import
Property changes on: maven-redmine-plugin
___________________________________________________________________
Added: svn:ignore
+ target
Property changes on: maven-redmine-plugin/trunk
___________________________________________________________________
Added: svn:ignore
+ target
Added: maven-redmine-plugin/trunk/LICENSE.txt
===================================================================
--- maven-redmine-plugin/trunk/LICENSE.txt (rev 0)
+++ maven-redmine-plugin/trunk/LICENSE.txt 2009-09-06 19:06:37 UTC (rev 18)
@@ -0,0 +1,166 @@
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+
+ This version of the GNU Lesser General Public License incorporates
+the terms and conditions of version 3 of the GNU General Public
+License, supplemented by the additional permissions listed below.
+
+ 0. Additional Definitions.
+
+ As used herein, "this License" refers to version 3 of the GNU Lesser
+General Public License, and the "GNU GPL" refers to version 3 of the GNU
+General Public License.
+
+ "The Library" refers to a covered work governed by this License,
+other than an Application or a Combined Work as defined below.
+
+ An "Application" is any work that makes use of an interface provided
+by the Library, but which is not otherwise based on the Library.
+Defining a subclass of a class defined by the Library is deemed a mode
+of using an interface provided by the Library.
+
+ A "Combined Work" is a work produced by combining or linking an
+Application with the Library. The particular version of the Library
+with which the Combined Work was made is also called the "Linked
+Version".
+
+ The "Minimal Corresponding Source" for a Combined Work means the
+Corresponding Source for the Combined Work, excluding any source code
+for portions of the Combined Work that, considered in isolation, are
+based on the Application, and not on the Linked Version.
+
+ The "Corresponding Application Code" for a Combined Work means the
+object code and/or source code for the Application, including any data
+and utility programs needed for reproducing the Combined Work from the
+Application, but excluding the System Libraries of the Combined Work.
+
+ 1. Exception to Section 3 of the GNU GPL.
+
+ You may convey a covered work under sections 3 and 4 of this License
+without being bound by section 3 of the GNU GPL.
+
+ 2. Conveying Modified Versions.
+
+ If you modify a copy of the Library, and, in your modifications, a
+facility refers to a function or data to be supplied by an Application
+that uses the facility (other than as an argument passed when the
+facility is invoked), then you may convey a copy of the modified
+version:
+
+ a) under this License, provided that you make a good faith effort to
+ ensure that, in the event an Application does not supply the
+ function or data, the facility still operates, and performs
+ whatever part of its purpose remains meaningful, or
+
+ b) under the GNU GPL, with none of the additional permissions of
+ this License applicable to that copy.
+
+ 3. Object Code Incorporating Material from Library Header Files.
+
+ The object code form of an Application may incorporate material from
+a header file that is part of the Library. You may convey such object
+code under terms of your choice, provided that, if the incorporated
+material is not limited to numerical parameters, data structure
+layouts and accessors, or small macros, inline functions and templates
+(ten or fewer lines in length), you do both of the following:
+
+ a) Give prominent notice with each copy of the object code that the
+ Library is used in it and that the Library and its use are
+ covered by this License.
+
+ b) Accompany the object code with a copy of the GNU GPL and this license
+ document.
+
+ 4. Combined Works.
+
+ You may convey a Combined Work under terms of your choice that,
+taken together, effectively do not restrict modification of the
+portions of the Library contained in the Combined Work and reverse
+engineering for debugging such modifications, if you also do each of
+the following:
+
+ a) Give prominent notice with each copy of the Combined Work that
+ the Library is used in it and that the Library and its use are
+ covered by this License.
+
+ b) Accompany the Combined Work with a copy of the GNU GPL and this license
+ document.
+
+ c) For a Combined Work that displays copyright notices during
+ execution, include the copyright notice for the Library among
+ these notices, as well as a reference directing the user to the
+ copies of the GNU GPL and this license document.
+
+ d) Do one of the following:
+
+ 0) Convey the Minimal Corresponding Source under the terms of this
+ License, and the Corresponding Application Code in a form
+ suitable for, and under terms that permit, the user to
+ recombine or relink the Application with a modified version of
+ the Linked Version to produce a modified Combined Work, in the
+ manner specified by section 6 of the GNU GPL for conveying
+ Corresponding Source.
+
+ 1) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (a) uses at run time
+ a copy of the Library already present on the user's computer
+ system, and (b) will operate properly with a modified version
+ of the Library that is interface-compatible with the Linked
+ Version.
+
+ e) Provide Installation Information, but only if you would otherwise
+ be required to provide such information under section 6 of the
+ GNU GPL, and only to the extent that such information is
+ necessary to install and execute a modified version of the
+ Combined Work produced by recombining or relinking the
+ Application with a modified version of the Linked Version. (If
+ you use option 4d0, the Installation Information must accompany
+ the Minimal Corresponding Source and Corresponding Application
+ Code. If you use option 4d1, you must provide the Installation
+ Information in the manner specified by section 6 of the GNU GPL
+ for conveying Corresponding Source.)
+
+ 5. Combined Libraries.
+
+ You may place library facilities that are a work based on the
+Library side by side in a single library together with other library
+facilities that are not Applications and are not covered by this
+License, and convey such a combined library under terms of your
+choice, if you do both of the following:
+
+ a) Accompany the combined library with a copy of the same work based
+ on the Library, uncombined with any other library facilities,
+ conveyed under the terms of this License.
+
+ b) Give prominent notice with the combined library that part of it
+ is a work based on the Library, and explaining where to find the
+ accompanying uncombined form of the same work.
+
+ 6. Revised Versions of the GNU Lesser General Public License.
+
+ The Free Software Foundation may publish revised and/or new versions
+of the GNU Lesser General Public License from time to time. Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Library as you received it specifies that a certain numbered version
+of the GNU Lesser General Public License "or any later version"
+applies to it, you have the option of following the terms and
+conditions either of that published version or of any later version
+published by the Free Software Foundation. If the Library as you
+received it does not specify a version number of the GNU Lesser
+General Public License, you may choose any version of the GNU Lesser
+General Public License ever published by the Free Software Foundation.
+
+ If the Library as you received it specifies that a proxy can decide
+whether future versions of the GNU Lesser General Public License shall
+apply, that proxy's public statement of acceptance of any version is
+permanent authorization for you to choose that version for the
+Library.
+
Added: maven-redmine-plugin/trunk/README.txt
===================================================================
--- maven-redmine-plugin/trunk/README.txt (rev 0)
+++ maven-redmine-plugin/trunk/README.txt 2009-09-06 19:06:37 UTC (rev 18)
@@ -0,0 +1,2 @@
+To deploy new version of pom: mvn deploy
+To install localy: mvn install
Added: maven-redmine-plugin/trunk/changelog.txt
===================================================================
--- maven-redmine-plugin/trunk/changelog.txt (rev 0)
+++ maven-redmine-plugin/trunk/changelog.txt 2009-09-06 19:06:37 UTC (rev 18)
@@ -0,0 +1,5 @@
+maven-redmine-plugin (1.0.0-SNAPSHOT) stable; urgency=low
+
+ * //TODO_FILL_ME
+
+ -- author -- date -R
Added: maven-redmine-plugin/trunk/pom.xml
===================================================================
--- maven-redmine-plugin/trunk/pom.xml (rev 0)
+++ maven-redmine-plugin/trunk/pom.xml 2009-09-06 19:06:37 UTC (rev 18)
@@ -0,0 +1,541 @@
+<?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">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <!-- ************************************************************* -->
+ <!-- *** POM Relationships *************************************** -->
+ <!-- ************************************************************* -->
+
+ <groupId>org.nuiton</groupId>
+ <artifactId>maven-redmine-plugin</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>org.nuiton</groupId>
+ <artifactId>maven-helper-plugin</artifactId>
+ <version>${helper.version}</version>
+ <scope>compile</scope>
+ </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>
+ <artifactId>plexus-utils</artifactId>
+ <version>1.5.15</version>
+ <scope>compile</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-project</artifactId>
+ <version>${maven.version}</version>
+ <scope>provided</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-plugin-api</artifactId>
+ <version>${maven.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.sonatype.plexus</groupId>
+ <artifactId>plexus-sec-dispatcher</artifactId>
+ <version>1.3.1</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-changes-plugin</artifactId>
+ <version>2.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.httpcomponents</groupId>
+ <artifactId>httpclient</artifactId>
+ <version>4.0</version>
+ </dependency>
+
+ <!-- tests dependencies -->
+
+ <dependency>
+ <groupId>org.nuiton</groupId>
+ <artifactId>maven-helper-plugin</artifactId>
+ <version>${helper.version}</version>
+ <scope>test</scope>
+ <classifier>tests</classifier>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.maven.shared</groupId>
+ <artifactId>maven-plugin-testing-harness</artifactId>
+ <version>1.1</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.6</version>
+ <scope>test</scope>
+ </dependency>
+
+ </dependencies>
+
+ <!-- ************************************************************* -->
+ <!-- *** Project Information ************************************* -->
+ <!-- ************************************************************* -->
+ <name>Redmine maven plugin (new one)</name>
+
+ <description>A plugin to interacts with Redmine's server</description>
+
+ <inceptionYear>2009</inceptionYear>
+
+ <url>http://maven-site.nuiton.org/sandbox/maven-redmine-plugin</url>
+
+ <licenses>
+ <license>
+ <name>Lesser General Public License (LGPL)</name>
+ <url>${maven.license.file}</url>
+ <distribution>local</distribution>
+ </license>
+ </licenses>
+
+ <developers>
+
+ <developer>
+ <name>Tony Chemit</name>
+ <id>tchemit</id>
+ <email>chemit(a)codelutin.com</email>
+ <organization>CodeLutin</organization>
+ <timezone>+2</timezone>
+ <roles>
+ <role>Développeur</role>
+ </roles>
+ </developer>
+
+ </developers>
+
+ <organization>
+ <name>CodeLutin</name>
+ <url>http://www.codelutin.com/</url>
+ </organization>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Settings ****************************************** -->
+ <!-- ************************************************************* -->
+
+ <packaging>maven-plugin</packaging>
+
+ <properties>
+
+ <!-- the redmine plateform used (nuiton.org or chorem.org) -->
+ <platform>nuiton.org</platform>
+
+ <!-- a proprerty to define the id of the project, in a multi-module
+ project, you must use a hard-cored value, otherwise for modules
+ the artifactId will be expanded , otherwise, no need to override it
+ -->
+ <projectId>${project.artifactId}</projectId>
+
+ <!-- a property to define list id -->
+ <listId>${projectId}</listId>
+
+ <!-- java level is 1.6 -->
+ <maven.compile.source>1.6</maven.compile.source>
+ <maven.compile.target>1.6</maven.compile.target>
+
+ <!-- default encoding -->
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+
+ <!-- by default, use maven 2 source base dir -->
+ <maven.src.dir>${basedir}/src</maven.src.dir>
+
+ <!-- where to generate sources -->
+ <maven.gen.dir>${project.build.directory}/generated-sources</maven.gen.dir>
+
+ <!-- where to generate test sources -->
+ <maven.test.gen.dir>${project.build.directory}/generated-test-sources</maven.test.gen.dir>
+
+ <!-- locales for the site generation, by default only french -->
+ <maven.site.locales>fr</maven.site.locales>
+
+ <!-- le fichier de license du projet -->
+ <maven.license.file>${project.basedir}/LICENSE.txt</maven.license.file>
+
+ <!-- to allow bad tests -->
+ <maven.test.testFailureIgnore>false</maven.test.testFailureIgnore>
+
+ <!-- to skip tests (can use also profile notests) -->
+ <maven.test.skip>false</maven.test.skip>
+
+ <!-- to control fork mode of tests -->
+ <maven.test.forkMode>once</maven.test.forkMode>
+
+ <!-- to activate generation of reports and javadoc when doing a site -->
+ <maven.reports.generate>true</maven.reports.generate>
+
+ <!-- do not use 2.5 version, it is buggy (crazy aggregate mode !) -->
+ <javadoc.version>2.4</javadoc.version>
+
+ <!-- pour ne pas generer la javadoc (quand on aura un javadoc 2.5) -->
+ <maven.javadoc.skip>false</maven.javadoc.skip>
+
+ <maven.version>2.0.10</maven.version>
+ <helper.version>1.0.3-SNAPSHOT</helper.version>
+
+ <!-- default license to use -->
+ <license.licenseName>lgpl_v3</license.licenseName>
+
+ <!-- release repository url (to be used in site.xml) -->
+ <repository.home.url>http://maven.${platform}/release</repository.home.url>
+
+ <!-- generated changes.xml file -->
+ <maven.changeFile>${maven.gen.dir}/changes/changes.xml</maven.changeFile>
+
+ </properties>
+ <build>
+
+ <defaultGoal>install</defaultGoal>
+
+ <plugins>
+
+ <plugin>
+ <groupId>org.nuiton</groupId>
+ <artifactId>maven-helper-plugin</artifactId>
+ <executions>
+ <!-- check that the root module has a changelog.txt file -->
+ <execution>
+ <id>check-project-files</id>
+ <goals>
+ <goal>check-project-files</goal>
+ </goals>
+ <configuration>
+ <verbose>true</verbose>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <artifactId>maven-plugin-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>helpmojo</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+ </plugins>
+
+ <pluginManagement>
+ <plugins>
+
+ <plugin>
+ <artifactId>maven-resources-plugin</artifactId>
+ <version>2.3</version>
+ <configuration>
+ <encoding>${project.build.sourceEncoding}</encoding>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>2.0.2</version>
+ <configuration>
+ <source>${maven.compile.source}</source>
+ <target>${maven.compile.target}</target>
+ <encoding>${project.build.sourceEncoding}</encoding>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>2.4.3</version>
+ <configuration>
+ <skip>${maven.test.skip}</skip>
+ <testFailureIgnore>${maven.test.testFailureIgnore}</testFailureIgnore>
+ <forkMode>${maven.test.forkMode}</forkMode>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <version>2.1</version>
+ <executions>
+ <execution>
+ <id>copy-dependencies</id>
+ <phase>package</phase>
+ <goals>
+ <goal>copy-dependencies</goal>
+ </goals>
+ <configuration>
+ <overWriteReleases>false</overWriteReleases>
+ <overWriteSnapshots>false</overWriteSnapshots>
+ <overWriteIfNewer>true</overWriteIfNewer>
+ <outputDirectory>${project.build.directory}/lib</outputDirectory>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <artifactId>maven-war-plugin</artifactId>
+ <version>2.1-beta-1</version>
+ <configuration>
+ <warSourceDirectory>${maven.src.dir}/main/webapp</warSourceDirectory>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ <version>2.2</version>
+ <inherited>true</inherited>
+
+ <configuration>
+ <archive>
+ <!-- cela fait bugger le chargement des service via
+ ServiceLoader donc on desactive -->
+ <!--index>true</index-->
+ <manifest>
+ <mainClass>${maven.jar.main.class}</mainClass>
+ </manifest>
+ <manifestEntries>
+ <url>${pom.url}</url>
+ </manifestEntries>
+ </archive>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <artifactId>maven-source-plugin</artifactId>
+ <version>2.1</version>
+ <inherited>true</inherited>
+ <executions>
+ <execution>
+ <id>attach-sources</id>
+ <goals>
+ <goal>jar</goal>
+ </goals>
+ </execution>
+ </executions>
+ </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>
+ <excludePackageNames>${maven.javadoc.excludePackageNames}</excludePackageNames>
+ <!-- uniquement a partir de javadoc 2.5 -->
+ <!--skip>${maven.javadoc.skip}</skip-->
+ </configuration>
+ <executions>
+ <execution>
+ <id>attach-javadocs</id>
+ <goals>
+ <goal>jar</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <artifactId>maven-site-plugin</artifactId>
+ <version>2.0.1</version>
+ <configuration>
+ <inputEncoding>${project.reporting.outputEncoding}</inputEncoding>
+ <outputEncoding>${project.reporting.outputEncoding}</outputEncoding>
+ <generateReports>${maven.reports.generate}</generateReports>
+ <locales>${maven.site.locales}</locales>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <artifactId>maven-release-plugin</artifactId>
+ <version>2.0-beta-9</version>
+ </plugin>
+
+ <plugin>
+ <artifactId>maven-plugin-plugin</artifactId>
+ <version>2.5</version>
+ </plugin>
+
+ <plugin>
+ <groupId>org.nuiton</groupId>
+ <artifactId>maven-helper-plugin</artifactId>
+ <version>${helper.version}</version>
+ </plugin>
+
+ <plugin>
+ <artifactId>maven-enforcer-plugin</artifactId>
+ <version>1.0-beta-1</version>
+ </plugin>
+
+ </plugins>
+ </pluginManagement>
+
+ </build>
+
+ <reporting>
+ <plugins>
+ <plugin>
+ <artifactId>maven-plugin-plugin</artifactId>
+ </plugin>
+
+ <!--
+ The Project Info Reports Plugin has twelve goals:
+ see http://maven.apache.org/plugins/maven-project-info-reports-plugin
+ -->
+ <plugin>
+ <artifactId>maven-project-info-reports-plugin</artifactId>
+ <version>2.1.2</version>
+ </plugin>
+
+ <plugin>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <version>${javadoc.version}</version>
+ <configuration>
+ <quiet>true</quiet>
+ <docencoding>${project.build.sourceEncoding}</docencoding>
+ <encoding>${project.build.sourceEncoding}</encoding>
+ <excludePackageNames>${maven.javadoc.excludePackageNames}</excludePackageNames>
+ </configuration>
+ </plugin>
+
+ <!-- changelog:changelog
+ changelog:dev-activity
+ changelog:file-activity -->
+ <!--FIXME : TC-20090816 : there is a bug with fileactivity
+ in report, trunk url are prefix with tag/xxx-releaseNumber !-->
+ <plugin>
+ <artifactId>maven-changelog-plugin</artifactId>
+ <version>2.1</version>
+ <!--configuration>
+ <displayFileDetailUrl>http://svn.${platform}/svn/${projectId}%FILE%</displayFileDetailUrl>
+ </configuration-->
+ </plugin>
+
+ <!-- Implicit add of reportSet to not generate jira reports -->
+ <plugin>
+ <artifactId>maven-changes-plugin</artifactId>
+ <version>2.1</version>
+ <!--configuration>
+ <issueLinkTemplate>http://www.${platform}/issues/show/%ISSUE%</issueLinkTemplate>
+ <xmlPath>${maven.changeFile}</xmlPath>
+ </configuration-->
+ <reportSets>
+ <reportSet>
+ <reports>
+ <report>changes-report</report>
+ </reports>
+ </reportSet>
+ </reportSets>
+ </plugin>
+
+ <plugin>
+ <artifactId>maven-checkstyle-plugin</artifactId>
+ <version>2.3</version>
+ <configuration>
+ <encoding>${project.reporting.outputEncoding}</encoding>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <artifactId>maven-pmd-plugin</artifactId>
+ <version>2.4</version>
+ <configuration>
+ <linkXRef>true</linkXRef>
+ <sourceEncoding>${project.reporting.outputEncoding}</sourceEncoding>
+ <minimumTokens>100</minimumTokens>
+ <targetJdk>${maven.compile.target}</targetJdk>
+ </configuration>
+
+ </plugin>
+
+ <plugin>
+ <artifactId>maven-jxr-plugin</artifactId>
+ <version>2.1</version>
+ </plugin>
+
+ <plugin>
+ <artifactId>maven-surefire-report-plugin</artifactId>
+ <version>2.4.3</version>
+ </plugin>
+
+ <!-- a voir si on le garde car hudson le fait aussi ? -->
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>cobertura-maven-plugin</artifactId>
+ <version>2.3</version>
+ </plugin>
+
+ <!-- a tester si c'est viable sur du multi-module -->
+ <!-- il y a une version 2.1 voir pour la conf car sans conf ca plante -->
+ <!--plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>findbugs-maven-plugin</artifactId>
+ <version>1.2</version>
+ </plugin-->
+ </plugins>
+ </reporting>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Environment ************************************** -->
+ <!-- ************************************************************* -->
+
+ <!-- Build Environment : Environment Information -->
+
+ <issueManagement>
+ <system>redmine</system>
+ <url>http://www.${platform}/projects/sandbox/issues</url>
+ </issueManagement>
+
+ <ciManagement>
+ <system>hudson</system>
+ <url>http://hudson.${platform}/hudson/job/${projectId}</url>
+ </ciManagement>
+
+ <!--Any mailing lists for the project-->
+ <mailingLists>
+ <mailingList>
+ <name>${listId}-commits</name>
+ <subscribe>http://list.${platform}/cgi-bin/mailman/listinfo/${listId}-commits</subscribe>
+ <unsubscribe>http://list.${platform}/cgi-bin/mailman/listinfo/${listId}-commits</unsubscribe>
+ <post>${listId}-commits(a)list.${platform}</post>
+ <archive>http://list.${platform}/pipermail/${listId}-commits/</archive>
+ </mailingList>
+
+ <mailingList>
+ <name>${listId}-devel</name>
+ <subscribe>http://list.${platform}/cgi-bin/mailman/listinfo/${listId}-devel</subscribe>
+ <unsubscribe>http://list.${platform}/cgi-bin/mailman/listinfo/${listId}-devel</unsubscribe>
+ <post>${listId}-devel(a)list.${platform}</post>
+ <archive>http://list.${platform}/pipermail/${listId}-devel/</archive>
+ </mailingList>
+
+ <mailingList>
+ <name>${listId}-users</name>
+ <subscribe>http://list.${platform}/cgi-bin/mailman/listinfo/${listId}-users</subscribe>
+ <unsubscribe>http://list.${platform}/cgi-bin/mailman/listinfo/${listId}-users</unsubscribe>
+ <post>${listId}-users(a)list.${platform}</post>
+ <archive>http://list.${platform}/pipermail/${listId}-users/</archive>
+ </mailingList>
+ </mailingLists>
+
+ <!-- Source control management. -->
+ <scm>
+ <connection>scm:svn:http://svn.nuiton.org/svn/sandbox/maven-redmine-plugin/trunk</connection>
+ <developerConnection>scm:svn:http://svn.nuiton.org/svn/sandbox/maven-redmine-plugin/trunk</developerConnection>
+ <url>http://www.nuiton.org/repositories/browse/sandbox/maven-redmine-plugin/trunk</url>
+ </scm>
+
+</project>
Added: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/RedmineSession.java
===================================================================
--- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/RedmineSession.java (rev 0)
+++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/RedmineSession.java 2009-09-06 19:06:37 UTC (rev 18)
@@ -0,0 +1,215 @@
+package org.nuiton.redmine;
+
+import org.nuiton.redmine.plugin.*;
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.util.Arrays;
+
+import org.apache.commons.httpclient.Cookie;
+import org.apache.commons.httpclient.HostConfiguration;
+import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.HttpConnection;
+import org.apache.commons.httpclient.HttpMethod;
+import org.apache.commons.httpclient.HttpState;
+import org.apache.commons.httpclient.HttpStatus;
+import org.apache.commons.httpclient.StatusLine;
+import org.apache.commons.httpclient.methods.PostMethod;
+import org.apache.maven.plugin.logging.Log;
+
+/**
+ * To store a redmine session and exeuctes some requests on redmine.
+ * <p/>
+ * To obtain a session, use the static factory method {@link #getSession(org.apache.maven.plugin.logging.Log, java.net.URL, String, String, boolean)}.
+ *
+ * The method {@link #askData(String[])} retreave some data from redmine,
+ * once logged in.
+ * <p/>
+ * The method {@link #sendData(String[])} send some data to redmine,
+ * once logged in.
+ * <p/>
+ * The method {@link #logout()} close the session to redmine. After this method
+ *
+ * @author chemit
+ * @since 1.0.0
+ */
+public class RedmineSession {
+
+ protected HttpClient client;
+ protected Log log;
+ protected boolean login;
+ protected boolean showRequest;
+
+ public static RedmineSession getSession(Log log, URL url, String username, String password, boolean showRequest) throws IOException, URISyntaxException {
+
+ RedmineSession session = new RedmineSession(log, url, showRequest);
+
+ // ask rest/ping service a ping
+
+ try {
+ String content = session.askContent(new String[]{"rest", "ping"});
+
+ boolean ok = "ping".equals(content);
+ if (!ok) {
+ throw new IOException("can not connect to " + url);
+ }
+ } catch (IOException ex) {
+ throw ex;
+ } catch (DataNotFoundException ex) {
+ // should never happeds
+ log.error(ex.getMessage());
+ }
+
+ // ask rest/login a connection
+
+ String uri = session.getUri("rest", "login");
+
+ HttpMethod gm = session.doRequest(uri, "username", username, "password", password);
+
+ StatusLine sl = gm.getStatusLine();
+ int statusCode = sl.getStatusCode();
+ if (log.isDebugEnabled()) {
+ log.debug("status code " + statusCode + " for " + gm.getPath());
+ }
+
+ if (statusCode != HttpStatus.SC_OK) {
+ gm.releaseConnection();
+ throw new IOException("Got error code <" + statusCode + ":" + sl.getReasonPhrase() + "> on " + gm.getPath());
+ }
+
+ // ok session is logged in
+
+ session.login = true;
+
+ return session;
+ }
+
+ protected RedmineSession(Log log, URL uri, boolean showRequest) {
+ this.showRequest = showRequest;
+ this.log = log;
+ this.client = new HttpClient();
+ HostConfiguration hostConfiguration = new HostConfiguration();
+ hostConfiguration.setHost(uri.getHost());
+ this.client.setHostConfiguration(hostConfiguration);
+ this.client.setState(new HttpState());
+ }
+
+ public boolean isLogin() {
+ return login;
+ }
+
+ public String askData(String[] paths, String... params) throws IOException, DataNotFoundException {
+
+ String uri = getUri(paths);
+ HttpMethod gm = doRequest(uri, params);
+
+ StatusLine sl = gm.getStatusLine();
+ int statusCode = sl.getStatusCode();
+
+ if (log.isDebugEnabled()) {
+ log.debug("status code " + statusCode + " for " + gm.getPath());
+ }
+ String content = gm.getResponseBodyAsString();
+
+ if (statusCode == HttpStatus.SC_NOT_FOUND) {
+ throw new DataNotFoundException("could not retreave some datas : " + content);
+ }
+ if (statusCode != HttpStatus.SC_OK) {
+ log.error(content);
+ releaseConnection(getConnection());
+ throw new IOException("Got error code <" + statusCode + ":" + sl.getReasonPhrase() + "> on " + gm.getPath());
+ }
+ return content;
+ }
+
+ public String sendData(String[] paths, String... params) throws IOException, DataNotFoundException {
+
+ String uri = getUri(paths);
+ HttpMethod gm = doRequest(uri, params);
+
+ StatusLine sl = gm.getStatusLine();
+ int statusCode = sl.getStatusCode();
+
+ if (log.isDebugEnabled()) {
+ log.debug("status code " + statusCode + " for " + gm.getPath());
+ }
+ String content = gm.getResponseBodyAsString();
+
+ if (statusCode != HttpStatus.SC_OK) {
+ log.error(content);
+ releaseConnection(getConnection());
+ throw new IOException("Got error code <" + statusCode + ":" + sl.getReasonPhrase() + "> on " + gm.getPath());
+ }
+ return content;
+ }
+
+ public String askContent(String... paths) throws IOException, DataNotFoundException {
+
+ String content = askData(paths, new String[0]);
+
+ return content;
+ }
+
+ public void logout() throws IOException {
+
+ String uri = getUri("rest", "logout");
+ doRequest(uri);
+ client.getState().clearCookies();
+ releaseConnection(getConnection());
+ this.login = false;
+ }
+
+ protected void releaseConnection(HttpConnection connection) {
+ if (connection != null && connection.isOpen()) {
+ client.getHttpConnectionManager().releaseConnection(connection);
+ }
+ }
+
+ protected HttpConnection getConnection() {
+ return client.getHttpConnectionManager().getConnection(client.getHostConfiguration());
+ }
+
+ protected String getUri(String... paths) {
+ String uri = client.getHostConfiguration().getHostURL();
+ for (String path : paths) {
+ uri += '/' + path;
+ }
+ return uri;
+ }
+
+ protected HttpMethod doRequest(String uri, String... parameters) throws IOException {
+ if (showRequest) {
+ log.info("doRequest " + uri);
+ }
+ if (log.isDebugEnabled()) {
+ log.debug("doRequest with parameters : " + Arrays.toString(parameters));
+ }
+ PostMethod gm = new PostMethod(uri);
+
+ if (parameters.length > 0) {
+
+ // add parameters
+
+ int nbParams = parameters.length / 2;
+ for (int i = 0; i < nbParams; i++) {
+ String key = parameters[2 * i];
+ String value = parameters[2 * i + 1];
+ gm.addParameter(key, value);
+ }
+ }
+
+ if (login) {
+ Cookie[] cookies = client.getState().getCookies();
+ for (Cookie c : cookies) {
+ if (log.isDebugEnabled()) {
+ log.debug("push cookie : " + c.getName() + "=" + c.getValue());
+ }
+ gm.addRequestHeader("Cookie", c.toExternalForm());
+ }
+ }
+
+ client.executeMethod(gm);
+
+ return gm;
+ }
+}
Property changes on: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/RedmineSession.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL
Added: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/Issue.java
===================================================================
--- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/Issue.java (rev 0)
+++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/Issue.java 2009-09-06 19:06:37 UTC (rev 18)
@@ -0,0 +1,13 @@
+package org.nuiton.redmine.model;
+
+/**
+ *
+ * @author chemit
+ * @since 1.0.0
+ */
+public class Issue {
+
+ protected String id;
+ protected String description;
+ protected String status;
+}
Property changes on: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/Issue.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL
Added: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/Project.java
===================================================================
--- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/Project.java (rev 0)
+++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/Project.java 2009-09-06 19:06:37 UTC (rev 18)
@@ -0,0 +1,16 @@
+package org.nuiton.redmine.model;
+
+/**
+ * redmine project
+ *
+ * @author chemit
+ * @since 1.0.0
+ */
+public class Project {
+
+ protected String id;
+ protected String label;
+ protected String description;
+
+
+}
Property changes on: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/Project.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL
Added: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/Tracker.java
===================================================================
--- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/Tracker.java (rev 0)
+++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/Tracker.java 2009-09-06 19:06:37 UTC (rev 18)
@@ -0,0 +1,11 @@
+package org.nuiton.redmine.model;
+
+/**
+ *
+ * @author chemit
+ * @since 1.0.0
+ */
+public class Tracker {
+
+ protected String type;
+}
Property changes on: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/Tracker.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL
Added: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/User.java
===================================================================
--- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/User.java (rev 0)
+++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/User.java 2009-09-06 19:06:37 UTC (rev 18)
@@ -0,0 +1,13 @@
+package org.nuiton.redmine.model;
+
+/**
+ *
+ * @author chemit
+ *
+ * @since 1.0.0
+ */
+public class User {
+
+ protected String id;
+ protected String email;
+}
Property changes on: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/User.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL
Added: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/Version.java
===================================================================
--- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/Version.java (rev 0)
+++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/Version.java 2009-09-06 19:06:37 UTC (rev 18)
@@ -0,0 +1,11 @@
+package org.nuiton.redmine.model;
+
+/**
+ *
+ * @author chemit
+ * @since 1.0.0
+ */
+public class Version {
+
+ protected String version;
+}
Property changes on: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/model/Version.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL
Added: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/AbstractGetProjectDataMojo.java
===================================================================
--- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/AbstractGetProjectDataMojo.java (rev 0)
+++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/AbstractGetProjectDataMojo.java 2009-09-06 19:06:37 UTC (rev 18)
@@ -0,0 +1,79 @@
+package org.nuiton.redmine.plugin;
+
+import java.util.Arrays;
+import org.apache.maven.plugin.MojoFailureException;
+
+/**
+ * Abstract goal to retreave some datas on a project.
+ *
+ * @author tchemit
+ * @since 1.0.0
+ */
+public abstract class AbstractGetProjectDataMojo extends AbstractRedmineMojo {
+
+ public static interface DataType {
+
+ String getAction();
+ }
+
+ public enum DataFormat {
+
+ json,
+ xml
+ }
+ /**
+ * Project identifier.
+ *
+ * @parameter expression="${projectId}"
+ * @required
+ * @since 1.0.0
+ */
+ protected String projectId;
+ /**
+ * The data format to retreave (all values of enum {@link #DataFormat}) :
+ * <ul>
+ * <li>json</li>
+ * <li>xml</li>
+ * </ul>
+ * <p/>
+ * <p/>
+ *
+ * @parameter expression="${redmine.dataFormat}" default-value="xml"
+ * @required
+ * @since 1.0.0
+ */
+ protected String dataFormat;
+ /**
+ * The action to be send to redmine, will be compute in
+ * {@link #init()} method.
+ */
+ protected String action;
+
+ protected abstract DataType getDataType() throws MojoFailureException;
+
+ @Override
+ protected boolean init() throws Exception {
+
+ action = buildAction();
+
+ return super.init();
+ }
+
+ protected String buildAction() throws MojoFailureException {
+
+ DataType _dataType = getDataType();
+
+ DataFormat _dataFormat = getDataFormat();
+
+ return _dataType.getAction() + "." + _dataFormat.name();
+ }
+
+ protected DataFormat getDataFormat() throws MojoFailureException {
+ try {
+ DataFormat _dataFormat = DataFormat.valueOf(dataFormat);
+ return _dataFormat;
+ } catch (Exception e) {
+ throw new MojoFailureException("could not obtain data format " + dataFormat + " in " + Arrays.toString(DataFormat.values()));
+ }
+ }
+}
Property changes on: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/AbstractGetProjectDataMojo.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL
Added: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/AbstractRedmineMojo.java
===================================================================
--- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/AbstractRedmineMojo.java (rev 0)
+++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/AbstractRedmineMojo.java 2009-09-06 19:06:37 UTC (rev 18)
@@ -0,0 +1,231 @@
+/**
+ * Copyright 2008 fastConnect.
+ *
+ * This file is part of maven-redmine-plugin Mojo.
+ *
+ * This is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this software. If not, see <http://www.gnu.org/licenses/>.
+ */
+package org.nuiton.redmine.plugin;
+
+import org.nuiton.redmine.RedmineSession;
+import java.io.IOException;
+import java.net.URL;
+
+import org.apache.maven.model.IssueManagement;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.settings.Server;
+import org.apache.maven.settings.Settings;
+import org.nuiton.AbstractPlugin;
+import org.sonatype.plexus.components.sec.dispatcher.SecDispatcher;
+import org.sonatype.plexus.components.sec.dispatcher.SecDispatcherException;
+
+/**
+ * Provides basic methods to interact with Redmine.
+ */
+public abstract class AbstractRedmineMojo extends AbstractPlugin {
+
+ /**
+ * 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;
+ /**
+ * Configuration of issue management.
+ * <p/>
+ * If no redmineUrl defined, will use the issue management to guess the
+ * redmine url.
+ *
+ * @parameter default-value="${project.issueManagement}"
+ * @readonly
+ * @since 1.0.0
+ */
+ protected IssueManagement issueManagement;
+ /**
+ * 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="${redmine.serverId}"
+ * @required
+ * @since 1.0.0
+ */
+ protected String serverId;
+ /**
+ * The real basedir redmine url.
+ *
+ * @parameter expression="${redmine.url}"
+ * @since 1.0.0
+ */
+ protected URL redmineUrl;
+ /**
+ * The redmine's server login.
+ *
+ * @parameter expression="${redmine.username}"
+ * @since 1.0.0
+ */
+ protected String redmineUsername;
+ /**
+ * The redmine's server password.
+ *
+ * @parameter expression="${redmine.password}"
+ * @since 1.0.0
+ */
+ protected String redminePassword;
+ /**
+ * Un flag pour activer le mode verbeux.
+ *
+ * @parameter expression="${redmine.verbose}" default-value="${maven.verbose}"
+ * @since 1.0.0
+ */
+ protected boolean verbose;
+ /**
+ * password decypher
+ * @component
+ * @since 1.0.0
+ */
+ protected SecDispatcher sec;
+ /**
+ * redmine session
+ * @since 1.0.0
+ */
+ protected RedmineSession session;
+
+ public AbstractRedmineMojo() {
+ super("skip message");
+ }
+
+ @Override
+ protected boolean ensurePackaging() {
+ // accept all packages
+ return false;
+ }
+
+ @Override
+ protected boolean init() throws Exception {
+
+ if (redmineUrl == null || redmineUrl.toString().isEmpty()) {
+
+ // no redmine url specified, guess it from issueManagement
+
+ String system = issueManagement.getSystem();
+ if (!"redmine".equals(system)) {
+ throw new MojoExecutionException("must use a redmine issueManagment system, but found : " + system);
+ }
+ String url = issueManagement.getUrl();
+ redmineUrl = new URL(url);
+ }
+
+ if (getLog().isDebugEnabled()) {
+ getLog().debug("redmine url " + redmineUrl);
+ }
+
+ if (redmineUsername == null || redmineUsername.trim().isEmpty() || redminePassword == null || redminePassword.trim().isEmpty()) {
+
+ // guess login and password from server in settings
+
+ Server server = settings.getServer(serverId);
+ if (server == null) {
+ throw new MojoFailureException("could not find serverId " + serverId);
+ }
+ redmineUsername = server.getUsername();
+ redminePassword = server.getPassword();
+ try {
+ redminePassword = sec.decrypt(redminePassword);
+ } catch (SecDispatcherException ex) {
+ throw new MojoFailureException("could not decrypt password", ex);
+ }
+ }
+
+ try {
+
+ session = RedmineSession.getSession(getLog(), redmineUrl, redmineUsername, redminePassword, verbose);
+
+ } catch (IOException e) {
+ throw new MojoExecutionException("Unable to login to <" + redmineUrl + "> with user <" + redmineUsername + ">", e);
+ }
+
+ // auth to redmine is ok
+
+ getLog().info("authentication to " + redmineUrl + " done for " + redmineUsername);
+
+ return true;
+ }
+
+ public String getServerId() {
+ return serverId;
+ }
+
+ public void setServerId(String serverId) {
+ this.serverId = serverId;
+ }
+
+ public IssueManagement getIssueManagement() {
+ return issueManagement;
+ }
+
+ public void setIssueManagement(IssueManagement issueManagement) {
+ this.issueManagement = issueManagement;
+ }
+
+ public URL getRedmineUrl() {
+ return redmineUrl;
+ }
+
+ public void setRedmineUrl(URL redmineUrl) {
+ this.redmineUrl = redmineUrl;
+ }
+
+ public Settings getSettings() {
+ return settings;
+ }
+
+ public void setSettings(Settings settings) {
+ this.settings = settings;
+ }
+
+ @Override
+ public boolean isVerbose() {
+ return verbose;
+ }
+
+ @Override
+ public void setVerbose(boolean verbose) {
+ this.verbose = verbose;
+ }
+
+ @Override
+ public MavenProject getProject() {
+ return project;
+ }
+
+ @Override
+ public void setProject(MavenProject project) {
+ this.project = project;
+ }
+}
Property changes on: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/AbstractRedmineMojo.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL
Added: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/DataNotFoundException.java
===================================================================
--- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/DataNotFoundException.java (rev 0)
+++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/DataNotFoundException.java 2009-09-06 19:06:37 UTC (rev 18)
@@ -0,0 +1,27 @@
+package org.nuiton.redmine.plugin;
+
+/**
+ * An exception to throw when a data does not exists on redmine.
+ *
+ * @author chemit
+ * @since 1.0.0
+ */
+public class DataNotFoundException extends Exception {
+
+ private static final long serialVersionUID = 1L;
+
+ public DataNotFoundException(Throwable cause) {
+ super(cause);
+ }
+
+ public DataNotFoundException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ public DataNotFoundException(String message) {
+ super(message);
+ }
+
+ public DataNotFoundException() {
+ }
+}
Property changes on: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/DataNotFoundException.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL
Added: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/GenerateChangesMojo.java
===================================================================
--- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/GenerateChangesMojo.java (rev 0)
+++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/GenerateChangesMojo.java 2009-09-06 19:06:37 UTC (rev 18)
@@ -0,0 +1,18 @@
+package org.nuiton.redmine.plugin;
+
+/**
+ * Generates the changes.xml file from the Redmine's server
+ *
+ * @author tchemit
+ * @goal generate-changes
+ * @requiresProject true
+ *
+ * @since 1.0.0
+ */
+public class GenerateChangesMojo extends AbstractRedmineMojo {
+
+ @Override
+ protected void doAction() throws Exception {
+ //TODO-FILL_ME
+ }
+}
Property changes on: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/GenerateChangesMojo.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL
Added: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/GetProjectDataMojo.java
===================================================================
--- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/GetProjectDataMojo.java (rev 0)
+++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/GetProjectDataMojo.java 2009-09-06 19:06:37 UTC (rev 18)
@@ -0,0 +1,71 @@
+package org.nuiton.redmine.plugin;
+
+import java.util.Arrays;
+import org.apache.maven.plugin.MojoFailureException;
+
+/**
+ * Retreave some datas on a project.
+ *
+ * Given the {@link #dataType}, the {link #dataFormat} and the
+ * {@link #projectId}, will ask to redmine server, all datas required.
+ *
+ * @author tchemit
+ * @goal retreave-project-data
+ * @requiresProject true
+ *
+ * @since 1.0.0
+ */
+public class GetProjectDataMojo extends AbstractGetProjectDataMojo {
+
+ /**
+ * The data type to retreave (all values of enum {@link #DataType} :
+ * <ul>
+ * <li>project</li>
+ * <li>users</li>
+ * <li>trackers</li>
+ * <li>versions</li>
+ * </ul>
+ * <p/>
+ *
+ * @parameter expression="${redmine.projectDataType}"
+ * @required
+ * @since 1.0.0
+ */
+ protected String dataType;
+
+ @Override
+ protected DataType getDataType() throws MojoFailureException {
+ VersionDataType _dataType;
+ try {
+ _dataType = VersionDataType.valueOf(dataType);
+ } catch (Exception e) {
+ throw new MojoFailureException("could not obtain data type " + dataType + " in " + Arrays.toString(VersionDataType.values()));
+ }
+ return _dataType;
+ }
+
+ @Override
+ protected void doAction() throws Exception {
+
+ String result = session.askContent("rest", action, projectId);
+ getLog().info(result);
+ }
+
+ public enum VersionDataType implements DataType {
+
+ project("get_project"),
+ users("get_project_users"),
+ trackers("get_project_trackers"),
+ versions("get_project_versions");
+ final String action;
+
+ private VersionDataType(String action) {
+ this.action = action;
+ }
+
+ @Override
+ public String getAction() {
+ return action;
+ }
+ }
+}
Property changes on: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/GetProjectDataMojo.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL
Added: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/GetProjectVersionDataMojo.java
===================================================================
--- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/GetProjectVersionDataMojo.java (rev 0)
+++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/GetProjectVersionDataMojo.java 2009-09-06 19:06:37 UTC (rev 18)
@@ -0,0 +1,79 @@
+package org.nuiton.redmine.plugin;
+
+import java.util.Arrays;
+import org.apache.maven.plugin.MojoFailureException;
+
+/**
+ * Retreave some datas on a project.
+ *
+ * Given the {@link #dataType}, the {link #dataFormat} and the
+ * {@link #projectId}, and {@link #versionId} will ask to redmine server,
+ * all datas required.
+ *
+ * @author tchemit
+ * @goal get-project-version-data
+ * @requiresProject true
+ *
+ * @since 1.0.0
+ */
+public class GetProjectVersionDataMojo extends AbstractGetProjectDataMojo {
+
+ /**
+ * Version identifier.
+ *
+ * @parameter expression="${versionId}"
+ * @required
+ * @since 1.0.0
+ */
+ protected String versionId;
+ /**
+ * The data type to retreave (all values of enum {@link #DataType} :
+ * <ul>
+ * <li>version</li>
+ * <li>issues</li>
+ * <li>files</li>
+ * </ul>
+ * <p/>
+ *
+ * @parameter expression="${redmine.versionDataType}"
+ * @required
+ * @since 1.0.0
+ */
+ protected String dataType;
+
+ @Override
+ protected void doAction() throws Exception {
+
+ String result = session.askData(new String[]{"rest", action, projectId}, "version_name", versionId);
+
+ getLog().info(result);
+ }
+
+ @Override
+ protected DataType getDataType() throws MojoFailureException {
+ VersionDataType _dataType;
+ try {
+ _dataType = VersionDataType.valueOf(dataType);
+ } catch (Exception e) {
+ throw new MojoFailureException("could not obtain data type " + dataType + " in " + Arrays.toString(VersionDataType.values()));
+ }
+ return _dataType;
+ }
+
+ public enum VersionDataType implements DataType {
+
+ version("get_version"),
+ issues("get_version_issues"),
+ files("get_version_files");
+ final String action;
+
+ private VersionDataType(String action) {
+ this.action = action;
+ }
+
+ @Override
+ public String getAction() {
+ return action;
+ }
+ }
+}
Property changes on: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/GetProjectVersionDataMojo.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL
Added: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/RedmineReportMojo.java
===================================================================
--- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/RedmineReportMojo.java (rev 0)
+++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/RedmineReportMojo.java 2009-09-06 19:06:37 UTC (rev 18)
@@ -0,0 +1,19 @@
+package org.nuiton.redmine.plugin;
+
+/**
+ * Generates a report for issues from Redmine's server
+ *
+ * @author tchemit
+ * @goal redmine-report
+ * @requiresProject true
+ * @requiresDirectInvocation
+ *
+ * @since 1.0.0
+ */
+public class RedmineReportMojo extends AbstractRedmineMojo {
+
+ @Override
+ protected void doAction() throws Exception {
+ //TODO-FILL_ME
+ }
+}
Property changes on: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/RedmineReportMojo.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL
Added: maven-redmine-plugin/trunk/src/site/apt/Todo.apt
===================================================================
--- maven-redmine-plugin/trunk/src/site/apt/Todo.apt (rev 0)
+++ maven-redmine-plugin/trunk/src/site/apt/Todo.apt 2009-09-06 19:06:37 UTC (rev 18)
@@ -0,0 +1,8 @@
+----
+TODO
+----
+----
+2009-0906
+----
+
+Any idea ?
Added: maven-redmine-plugin/trunk/src/site/apt/index.apt
===================================================================
--- maven-redmine-plugin/trunk/src/site/apt/index.apt (rev 0)
+++ maven-redmine-plugin/trunk/src/site/apt/index.apt 2009-09-06 19:06:37 UTC (rev 18)
@@ -0,0 +1,32 @@
+----
+Introduction
+----
+----
+2009-09-06
+----
+
+maven-redmine-plugin
+
+ //TODO-FILL_ME
+
+
+* Presentation
+
+ //TODO-FILL_ME
+
+* Goals Overview
+
+ The plugin has the following goals:
+
+ //TODO-FILL_ME
+
+
+ * {{{help-mojo.html}help}} display help about the plugin (goals, usage).
+
+* Usage
+
+ Instructions on how to use the Plugin can be found on {{{usage.html}usage}} page
+
+* Examples
+
+ to be done.
Added: maven-redmine-plugin/trunk/src/site/apt/usage.apt
===================================================================
--- maven-redmine-plugin/trunk/src/site/apt/usage.apt (rev 0)
+++ maven-redmine-plugin/trunk/src/site/apt/usage.apt 2009-09-06 19:06:37 UTC (rev 18)
@@ -0,0 +1,37 @@
+----
+Usage
+----
+----
+2009-09-06
+----
+
+generate-changes goal
+
+------------------------------------------------------------------------------
+
+ //TODO-FILL_ME
+------------------------------------------------------------------------------
+
+* How does it work ?
+
+ //TODO-FILL_ME
+
+
+help goal
+
+ This goal display the help of the plugin (available goals).
+
+ Use it directly (and only) from commandline :
+
+------------------------------------------------------------------------------
+
+ mvn license:help
+------------------------------------------------------------------------------
+
+ To display verbose help :
+
+------------------------------------------------------------------------------
+ mvn license:help -Ddetail
+------------------------------------------------------------------------------
+
+ for full detail see {{{help-mojo.html}help}} detail page.
Added: maven-redmine-plugin/trunk/src/site/site.xml
===================================================================
--- maven-redmine-plugin/trunk/src/site/site.xml (rev 0)
+++ maven-redmine-plugin/trunk/src/site/site.xml 2009-09-06 19:06:37 UTC (rev 18)
@@ -0,0 +1,52 @@
+<?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>
+ <item name="${project.name}" href="${project.url}" />
+ </breadcrumbs>
+
+ <menu name="Utilisateur">
+ <item name="Introduction" href="index.html"/>
+ <item name="Usage" href="usage.html"/>
+ <item name="Goals" href="plugin-info.html">
+ <item name="${mojoGoal}" href="${mojoGoal}-mojo.html"/>
+ <item name="help" href="help-mojo.html"/>
+ </item>
+ </menu>
+
+ <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>
+</project>
Added: maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/RedmineSessionTest.java
===================================================================
--- maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/RedmineSessionTest.java (rev 0)
+++ maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/RedmineSessionTest.java 2009-09-06 19:06:37 UTC (rev 18)
@@ -0,0 +1,122 @@
+package org.nuiton.redmine;
+
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.net.URL;
+import org.apache.maven.plugin.logging.SystemStreamLog;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.Assume;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+/**
+ *
+ * @author chemit
+ */
+public class RedmineSessionTest {
+
+ protected static SystemStreamLog log;
+ protected static URL redmineURL;
+ protected static final String redmineUsername = "chemit";
+ protected static final String redminePassword = "azer";
+ protected static Boolean skip;
+ protected RedmineSession session;
+
+ /**
+ * Test si on peut se connecter a un serveur Redmine.
+ *
+ * @param redmineURL l'url du serveur redmine
+ * @param redmineUsername le login
+ * @param redminePassword le password
+ * @return <code>true</true> si une connection est possible sur le serveur
+ */
+ public static boolean canAccess(URL redmineURL, String redmineUsername, String redminePassword) {
+ log = new SystemStreamLog();
+ boolean result = false;
+ try {
+ RedmineSession.getSession(log, redmineURL, redmineUsername, redminePassword, true);
+ result = true;
+ } catch (Exception e) {
+ log.warn("can not connect to " + redmineURL + ", test will be skip : " + e.getMessage());
+ }
+ return result;
+ }
+
+ @BeforeClass
+ public static void setUpClass() throws Exception {
+ log = new SystemStreamLog();
+ redmineURL = new URL("http://www.mynuiton.org");
+ skip = !canAccess(redmineURL, redmineUsername, redminePassword);
+ }
+
+ @AfterClass
+ public static void tearDownClass() throws Exception {
+ }
+
+ @Before
+ public void setUp() {
+ Assume.assumeTrue(!skip);
+ }
+
+ @After
+ public void tearDown() throws IOException {
+ if (session != null && session.isLogin()) {
+ session.logout();
+ session = null;
+ }
+ }
+
+ @Test(expected = IOException.class)
+ public void testBadHost() throws Exception {
+
+ RedmineSession.getSession(log, new URL("http://www.mynuiton.orgfake-" + System.nanoTime()), null, null, true);
+ }
+
+ @Test(expected = IOException.class)
+ public void testBadLogin() throws Exception {
+ session = RedmineSession.getSession(log, redmineURL, redmineUsername + System.nanoTime(), redminePassword, true);
+ }
+
+ @Test
+ public void testLogin() throws Exception {
+ initSession();
+ session.logout();
+ }
+
+ @Test
+ public void testAskData() throws Exception {
+ initSession();
+ String result = session.askContent("rest", "get_project_users.xml", "one");
+ Assert.assertFalse(result.isEmpty());
+ if (log.isDebugEnabled()) {
+ log.debug(result);
+ }
+ session.logout();
+ Assert.assertFalse(session.isLogin());
+ }
+
+ @Test
+ public void testAskDataAfterClosed() throws Exception {
+ initSession();
+ String result = session.askContent("rest", "get_project_users.xml", "one");
+ Assert.assertFalse(result.isEmpty());
+ if (log.isDebugEnabled()) {
+ log.debug(result);
+ }
+ session.logout();
+ Assert.assertFalse(session.isLogin());
+ try {
+ result = session.askContent("rest", "get_project_users.json", "one");
+ Assert.fail();
+ } catch (IOException e) {
+ Assert.assertTrue(true);
+ }
+ }
+
+ protected void initSession() throws IOException, URISyntaxException {
+ session = RedmineSession.getSession(log, redmineURL, redmineUsername, redminePassword, true);
+ }
+}
Property changes on: maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/RedmineSessionTest.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL
Added: maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/plugin/AbstractRedmineMojoTest.java
===================================================================
--- maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/plugin/AbstractRedmineMojoTest.java (rev 0)
+++ maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/plugin/AbstractRedmineMojoTest.java 2009-09-06 19:06:37 UTC (rev 18)
@@ -0,0 +1,53 @@
+package org.nuiton.redmine.plugin;
+
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugin.logging.Log;
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.Assume;
+import org.junit.Before;
+import org.nuiton.util.BasePluginTestCase;
+
+/**
+ * @param <P> the goal to test
+ * @author tchemit
+ * @since 1.0.0
+ */
+public abstract class AbstractRedmineMojoTest<P extends AbstractRedmineMojo> extends BasePluginTestCase<P> {
+
+ protected static Log log;
+
+ @AfterClass
+ public static void cleanAfterClass() throws Exception {
+ if (log != null) {
+ log.info("release test " + testDir.getName());
+ log = null;
+ }
+ configItr = null;
+ testDir = null;
+ }
+
+ @Before
+ @Override
+ public void setUp() throws Exception {
+ super.setUp();
+ Assert.assertNotNull(mojo);
+ boolean canContinue = false;
+ try {
+ if (mojo.init()) {
+ canContinue = true;
+ }
+ mojo.getLog().info("setup done for " + mojo.getProject().getFile().getName());
+ } catch (MojoFailureException ex) {
+ mojo.getLog().warn("can not init mojo" + mojo.getProject().getFile().getName() + ", test will be skip : " + ex.getMessage());
+ throw ex;
+ } catch (MojoExecutionException ex) {
+ mojo.getLog().warn("can not connect to " + mojo.getRedmineUrl() + ", test will be skip : " + ex.getMessage());
+ }
+ if (log == null) {
+ log = mojo.getLog();
+ }
+ Assume.assumeTrue(canContinue);
+ }
+}
Property changes on: maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/plugin/AbstractRedmineMojoTest.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL
Added: maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/plugin/GenerateChangesMojoTest.java
===================================================================
--- maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/plugin/GenerateChangesMojoTest.java (rev 0)
+++ maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/plugin/GenerateChangesMojoTest.java 2009-09-06 19:06:37 UTC (rev 18)
@@ -0,0 +1,26 @@
+package org.nuiton.redmine.plugin;
+
+import org.nuiton.util.PluginConfig;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+/**
+ * @author tchemit
+ * @since 1.0.0
+ */
+public class GenerateChangesMojoTest extends AbstractRedmineMojoTest<GenerateChangesMojo> {
+
+ @BeforeClass
+ public static void initClass() throws Exception {
+
+ initConfigs(GenerateChangesMojoTest.class);
+ }
+
+ @Test
+ @PluginConfig(pomName = "generate-changes.xml", goalName = "generate-changes")
+ public void testGenerateChangesMojo() throws Exception {
+
+ mojo.doAction();
+ //TODO check file is generated
+ }
+}
Property changes on: maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/plugin/GenerateChangesMojoTest.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL
Added: maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/plugin/GetProjectDataMojoTest.java
===================================================================
--- maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/plugin/GetProjectDataMojoTest.java (rev 0)
+++ maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/plugin/GetProjectDataMojoTest.java 2009-09-06 19:06:37 UTC (rev 18)
@@ -0,0 +1,50 @@
+package org.nuiton.redmine.plugin;
+
+import org.nuiton.util.PluginConfig;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+/**
+ * @author tchemit
+ * @since 1.0.0
+ */
+public class GetProjectDataMojoTest extends AbstractRedmineMojoTest<GetProjectDataMojo> {
+
+ @BeforeClass
+ public static void initClass() throws Exception {
+
+ initConfigs(GetProjectDataMojoTest.class);
+ }
+
+ @Test
+ @PluginConfig(pomName = "get-project.xml", goalName = "retreave-project-data")
+ public void testProject() throws Exception {
+
+ mojo.doAction();
+ //TODO check file is generated
+ }
+
+ @Test
+ @PluginConfig(pomName = "get-project-users.xml", goalName = "retreave-project-data")
+ public void testUsers() throws Exception {
+
+ mojo.doAction();
+ //TODO check file is generated
+ }
+
+ @Test
+ @PluginConfig(pomName = "get-project-trackers.xml", goalName = "retreave-project-data")
+ public void testTrakers() throws Exception {
+
+ mojo.doAction();
+ //TODO check file is generated
+ }
+
+ @Test
+ @PluginConfig(pomName = "get-project-versions.xml", goalName = "retreave-project-data")
+ public void testVersions() throws Exception {
+
+ mojo.doAction();
+ //TODO check file is generated
+ }
+}
Property changes on: maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/plugin/GetProjectDataMojoTest.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL
Added: maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/plugin/GetProjectVersionDataMojoTest.java
===================================================================
--- maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/plugin/GetProjectVersionDataMojoTest.java (rev 0)
+++ maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/plugin/GetProjectVersionDataMojoTest.java 2009-09-06 19:06:37 UTC (rev 18)
@@ -0,0 +1,42 @@
+package org.nuiton.redmine.plugin;
+
+import org.nuiton.util.PluginConfig;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+/**
+ * @author tchemit
+ * @since 1.0.0
+ */
+public class GetProjectVersionDataMojoTest extends AbstractRedmineMojoTest<GetProjectVersionDataMojo> {
+
+ @BeforeClass
+ public static void initClass() throws Exception {
+
+ initConfigs(GetProjectVersionDataMojoTest.class);
+ }
+
+ @Test
+ @PluginConfig(pomName = "get-version.xml", goalName = "get-project-version-data")
+ public void testVersion() throws Exception {
+
+ mojo.doAction();
+ //TODO check file is generated
+ }
+
+ @Test
+ @PluginConfig(pomName = "get-version-issues.xml", goalName = "get-project-version-data")
+ public void testIssues() throws Exception {
+
+ mojo.doAction();
+ //TODO check file is generated
+ }
+
+ @Test
+ @PluginConfig(pomName = "get-version-files.xml", goalName = "get-project-version-data")
+ public void testFiles() throws Exception {
+
+ mojo.doAction();
+ //TODO check file is generated
+ }
+}
Property changes on: maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/plugin/GetProjectVersionDataMojoTest.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL
Added: maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/plugin/RedmineReportMojoTest.java
===================================================================
--- maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/plugin/RedmineReportMojoTest.java (rev 0)
+++ maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/plugin/RedmineReportMojoTest.java 2009-09-06 19:06:37 UTC (rev 18)
@@ -0,0 +1,42 @@
+package org.nuiton.redmine.plugin;
+
+import org.nuiton.util.PluginConfig;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+
+/**
+ * @author tchemit
+ * @since 1.0.0
+ */
+public class RedmineReportMojoTest extends AbstractRedmineMojoTest<RedmineReportMojo> {
+
+ @BeforeClass
+ public static void initClass() throws Exception {
+ initConfigs(RedmineReportMojoTest.class);
+// initConfigs(RedmineReportMojoTest.class, "testRedmineReportMojo");
+ }
+
+// @AfterClass
+// public static void afterClass() throws Exception {
+// configItr = null;
+// testDir = null;
+// }
+// @Before
+// @Override
+// public void setUp() throws Exception {
+// super.setUp();
+// assertNotNull(mojo);
+// mojo = (RedmineReportMojo) mojo;
+// }
+// @Test
+// public void testDummy() {
+//
+// }
+ @Test
+ @PluginConfig(pomName = "redmine-report.xml", goalName = "redmine-report")
+ public void testRedmineReportMojo() throws Exception {
+
+ mojo.doAction();
+ }
+}
Property changes on: maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/plugin/RedmineReportMojoTest.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL
Added: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/plugin/GenerateChangesMojoTest/generate-changes.xml
===================================================================
--- maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/plugin/GenerateChangesMojoTest/generate-changes.xml (rev 0)
+++ maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/plugin/GenerateChangesMojoTest/generate-changes.xml 2009-09-06 19:06:37 UTC (rev 18)
@@ -0,0 +1,33 @@
+<?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</groupId>
+ <artifactId>maven-redmine-plugin</artifactId>
+ <configuration>
+ <redmineUrl>http://mynuiton.org</redmineUrl>
+ <redmineUsername>chemit</redmineUsername>
+ <redminePassword>azer</redminePassword>
+ </configuration>
+ <executions>
+ <execution>
+ <goals>
+ <goal>generate-changes</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
\ No newline at end of file
Added: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/plugin/GetProjectDataMojoTest/get-project-trackers.xml
===================================================================
--- maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/plugin/GetProjectDataMojoTest/get-project-trackers.xml (rev 0)
+++ maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/plugin/GetProjectDataMojoTest/get-project-trackers.xml 2009-09-06 19:06:37 UTC (rev 18)
@@ -0,0 +1,37 @@
+<?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</groupId>
+ <artifactId>maven-redmine-plugin</artifactId>
+ <configuration>
+ <redmineUrl>http://mynuiton.org</redmineUrl>
+ <redmineUsername>chemit</redmineUsername>
+ <redminePassword>azer</redminePassword>
+ <projectId>one</projectId>
+ <dataType>trackers</dataType>
+ <dataFormat>xml</dataFormat>
+ <verbose>true</verbose>
+ </configuration>
+ <executions>
+ <execution>
+ <goals>
+ <goal>retreave-project-data</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
\ No newline at end of file
Added: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/plugin/GetProjectDataMojoTest/get-project-users.xml
===================================================================
--- maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/plugin/GetProjectDataMojoTest/get-project-users.xml (rev 0)
+++ maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/plugin/GetProjectDataMojoTest/get-project-users.xml 2009-09-06 19:06:37 UTC (rev 18)
@@ -0,0 +1,37 @@
+<?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</groupId>
+ <artifactId>maven-redmine-plugin</artifactId>
+ <configuration>
+ <redmineUrl>http://mynuiton.org</redmineUrl>
+ <redmineUsername>chemit</redmineUsername>
+ <redminePassword>azer</redminePassword>
+ <projectId>one</projectId>
+ <dataType>users</dataType>
+ <dataFormat>xml</dataFormat>
+ <verbose>true</verbose>
+ </configuration>
+ <executions>
+ <execution>
+ <goals>
+ <goal>retreave-project-data</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
\ No newline at end of file
Added: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/plugin/GetProjectDataMojoTest/get-project-versions.xml
===================================================================
--- maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/plugin/GetProjectDataMojoTest/get-project-versions.xml (rev 0)
+++ maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/plugin/GetProjectDataMojoTest/get-project-versions.xml 2009-09-06 19:06:37 UTC (rev 18)
@@ -0,0 +1,37 @@
+<?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</groupId>
+ <artifactId>maven-redmine-plugin</artifactId>
+ <configuration>
+ <redmineUrl>http://mynuiton.org</redmineUrl>
+ <redmineUsername>chemit</redmineUsername>
+ <redminePassword>azer</redminePassword>
+ <projectId>one</projectId>
+ <dataType>versions</dataType>
+ <dataFormat>xml</dataFormat>
+ <verbose>true</verbose>
+ </configuration>
+ <executions>
+ <execution>
+ <goals>
+ <goal>retreave-project-data</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
\ No newline at end of file
Added: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/plugin/GetProjectDataMojoTest/get-project.xml
===================================================================
--- maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/plugin/GetProjectDataMojoTest/get-project.xml (rev 0)
+++ maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/plugin/GetProjectDataMojoTest/get-project.xml 2009-09-06 19:06:37 UTC (rev 18)
@@ -0,0 +1,37 @@
+<?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</groupId>
+ <artifactId>maven-redmine-plugin</artifactId>
+ <configuration>
+ <redmineUrl>http://mynuiton.org</redmineUrl>
+ <redmineUsername>chemit</redmineUsername>
+ <redminePassword>azer</redminePassword>
+ <projectId>one</projectId>
+ <dataType>project</dataType>
+ <dataFormat>xml</dataFormat>
+ <verbose>true</verbose>
+ </configuration>
+ <executions>
+ <execution>
+ <goals>
+ <goal>retreave-project-data</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
\ No newline at end of file
Added: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/plugin/GetProjectVersionDataMojoTest/get-version-files.xml
===================================================================
--- maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/plugin/GetProjectVersionDataMojoTest/get-version-files.xml (rev 0)
+++ maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/plugin/GetProjectVersionDataMojoTest/get-version-files.xml 2009-09-06 19:06:37 UTC (rev 18)
@@ -0,0 +1,38 @@
+<?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</groupId>
+ <artifactId>maven-redmine-plugin</artifactId>
+ <configuration>
+ <redmineUrl>http://mynuiton.org</redmineUrl>
+ <redmineUsername>chemit</redmineUsername>
+ <redminePassword>azer</redminePassword>
+ <projectId>one</projectId>
+ <versionId>1.0.0</versionId>
+ <dataType>files</dataType>
+ <dataFormat>xml</dataFormat>
+ <verbose>true</verbose>
+ </configuration>
+ <executions>
+ <execution>
+ <goals>
+ <goal>get-project-version-data</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
\ No newline at end of file
Added: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/plugin/GetProjectVersionDataMojoTest/get-version-issues.xml
===================================================================
--- maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/plugin/GetProjectVersionDataMojoTest/get-version-issues.xml (rev 0)
+++ maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/plugin/GetProjectVersionDataMojoTest/get-version-issues.xml 2009-09-06 19:06:37 UTC (rev 18)
@@ -0,0 +1,38 @@
+<?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</groupId>
+ <artifactId>maven-redmine-plugin</artifactId>
+ <configuration>
+ <redmineUrl>http://mynuiton.org</redmineUrl>
+ <redmineUsername>chemit</redmineUsername>
+ <redminePassword>azer</redminePassword>
+ <projectId>one</projectId>
+ <versionId>1.0.0</versionId>
+ <dataType>issues</dataType>
+ <dataFormat>xml</dataFormat>
+ <verbose>true</verbose>
+ </configuration>
+ <executions>
+ <execution>
+ <goals>
+ <goal>get-project-version-data</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
\ No newline at end of file
Added: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/plugin/GetProjectVersionDataMojoTest/get-version.xml
===================================================================
--- maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/plugin/GetProjectVersionDataMojoTest/get-version.xml (rev 0)
+++ maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/plugin/GetProjectVersionDataMojoTest/get-version.xml 2009-09-06 19:06:37 UTC (rev 18)
@@ -0,0 +1,38 @@
+<?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</groupId>
+ <artifactId>maven-redmine-plugin</artifactId>
+ <configuration>
+ <redmineUrl>http://mynuiton.org</redmineUrl>
+ <redmineUsername>chemit</redmineUsername>
+ <redminePassword>azer</redminePassword>
+ <projectId>one</projectId>
+ <versionId>1.0.0</versionId>
+ <dataType>version</dataType>
+ <dataFormat>xml</dataFormat>
+ <verbose>true</verbose>
+ </configuration>
+ <executions>
+ <execution>
+ <goals>
+ <goal>get-project-version-data</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
\ No newline at end of file
Added: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/plugin/RedmineReportMojoTest/redmine-report.xml
===================================================================
--- maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/plugin/RedmineReportMojoTest/redmine-report.xml (rev 0)
+++ maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/plugin/RedmineReportMojoTest/redmine-report.xml 2009-09-06 19:06:37 UTC (rev 18)
@@ -0,0 +1,33 @@
+<?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-redmine-report</artifactId>
+ <version>0</version>
+
+ <name>redmine-report</name>
+
+ <build>
+
+ <plugins>
+ <plugin>
+ <groupId>org.nuiton</groupId>
+ <artifactId>maven-redmine-plugin</artifactId>
+ <configuration>
+ <redmineUrl>http://mynuiton.org</redmineUrl>
+ <redmineUsername>chemit</redmineUsername>
+ <redminePassword>azer</redminePassword>
+ </configuration>
+ <executions>
+ <execution>
+ <goals>
+ <goal>redmine-report</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
\ No newline at end of file
1
0