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
- 1825 discussions
Author: glorieux
Date: 2009-09-09 16:35:11 +0200 (Wed, 09 Sep 2009)
New Revision: 28
Modified:
test_rstedit/src/site/rst/index.rst
Log:
New_rst
Modified: test_rstedit/src/site/rst/index.rst
===================================================================
--- test_rstedit/src/site/rst/index.rst 2009-09-09 09:56:40 UTC (rev 27)
+++ test_rstedit/src/site/rst/index.rst 2009-09-09 14:35:11 UTC (rev 28)
@@ -1 +1,4 @@
-Salut tu ma bien recu.
\ No newline at end of file
+
+ Salut tu ma bien recu.
+
+ oui et toi
1
0
Author: glorieux
Date: 2009-09-09 11:56:40 +0200 (Wed, 09 Sep 2009)
New Revision: 27
Added:
test_rstedit/src/site/rst/index.rst
Log:
Added: test_rstedit/src/site/rst/index.rst
===================================================================
--- test_rstedit/src/site/rst/index.rst (rev 0)
+++ test_rstedit/src/site/rst/index.rst 2009-09-09 09:56:40 UTC (rev 27)
@@ -0,0 +1 @@
+Salut tu ma bien recu.
\ No newline at end of file
1
0
09 Sep '09
Author: glorieux
Date: 2009-09-09 11:55:39 +0200 (Wed, 09 Sep 2009)
New Revision: 26
Added:
test_rstedit/
test_rstedit/src/
test_rstedit/src/site/
test_rstedit/src/site/rst/
Log:
1
0
r25 - in maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine: . RedmineModelBuilderTest RedmineModelBuilderTest/array-empty RedmineModelBuilderTest/array-multi RedmineModelBuilderTest/array-singleton RedmineModelBuilderTest/single
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:06:58 +0200 (Tue, 08 Sep 2009)
New Revision: 25
Added:
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-empty/
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-empty/attachments.xml
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-empty/issues.xml
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-empty/projects.xml
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-empty/trackers.xml
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-empty/users.xml
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-empty/versions.xml
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-multi/
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-multi/attachments.xml
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-multi/issues.xml
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-multi/projects.xml
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-multi/trackers.xml
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-multi/users.xml
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-multi/versions.xml
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-singleton/
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-singleton/attachments.xml
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-singleton/issues.xml
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-singleton/projects.xml
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-singleton/trackers.xml
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-singleton/users.xml
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-singleton/versions.xml
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/single/
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/single/attachment.xml
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/single/issue.xml
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/single/project.xml
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/single/tracker.xml
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/single/user.xml
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/single/version.xml
Removed:
maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/model/
Log:
use improved xp3 parser from maven-helper-plugin
Added: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-empty/attachments.xml
===================================================================
--- maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-empty/attachments.xml (rev 0)
+++ maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-empty/attachments.xml 2009-09-08 16:06:58 UTC (rev 25)
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<attachments type="array">
+</attachments>
\ No newline at end of file
Added: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-empty/issues.xml
===================================================================
--- maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-empty/issues.xml (rev 0)
+++ maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-empty/issues.xml 2009-09-08 16:06:58 UTC (rev 25)
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues type="array">
+</issues>
Added: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-empty/projects.xml
===================================================================
--- maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-empty/projects.xml (rev 0)
+++ maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-empty/projects.xml 2009-09-08 16:06:58 UTC (rev 25)
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projects type="array">
+</projects>
\ No newline at end of file
Added: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-empty/trackers.xml
===================================================================
--- maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-empty/trackers.xml (rev 0)
+++ maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-empty/trackers.xml 2009-09-08 16:06:58 UTC (rev 25)
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<trackers type="array">
+</trackers>
Added: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-empty/users.xml
===================================================================
--- maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-empty/users.xml (rev 0)
+++ maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-empty/users.xml 2009-09-08 16:06:58 UTC (rev 25)
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<users type="array">
+</users>
Added: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-empty/versions.xml
===================================================================
--- maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-empty/versions.xml (rev 0)
+++ maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-empty/versions.xml 2009-09-08 16:06:58 UTC (rev 25)
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<versions type="array">
+</versions>
Added: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-multi/attachments.xml
===================================================================
--- maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-multi/attachments.xml (rev 0)
+++ maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-multi/attachments.xml 2009-09-08 16:06:58 UTC (rev 25)
@@ -0,0 +1,35 @@
+<?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>
+ <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.json2</disk-filename>
+ <filename>get_issue.json2</filename>
+ </attachment>
+</attachments>
\ No newline at end of file
Added: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-multi/issues.xml
===================================================================
--- maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-multi/issues.xml (rev 0)
+++ maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-multi/issues.xml 2009-09-08 16:06:58 UTC (rev 25)
@@ -0,0 +1,49 @@
+<?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>
+ <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">4</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 !2</description>
+ <subject>yes!2</subject>
+ </issue>
+</issues>
Added: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-multi/projects.xml
===================================================================
--- maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-multi/projects.xml (rev 0)
+++ maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-multi/projects.xml 2009-09-08 16:06:58 UTC (rev 25)
@@ -0,0 +1,35 @@
+<?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>
+ <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>two</identifier>
+ <name>two</name>
+
+ <id type="integer">2</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/RedmineModelBuilderTest/array-multi/trackers.xml
===================================================================
--- maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-multi/trackers.xml (rev 0)
+++ maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-multi/trackers.xml 2009-09-08 16:06:58 UTC (rev 25)
@@ -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>
Added: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-multi/users.xml
===================================================================
--- maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-multi/users.xml (rev 0)
+++ maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-multi/users.xml 2009-09-08 16:06:58 UTC (rev 25)
@@ -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>
Added: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-multi/versions.xml
===================================================================
--- maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-multi/versions.xml (rev 0)
+++ maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-multi/versions.xml 2009-09-08 16:06:58 UTC (rev 25)
@@ -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>
Added: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-singleton/attachments.xml
===================================================================
--- maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-singleton/attachments.xml (rev 0)
+++ maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-singleton/attachments.xml 2009-09-08 16:06:58 UTC (rev 25)
@@ -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
Added: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-singleton/issues.xml
===================================================================
--- maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-singleton/issues.xml (rev 0)
+++ maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-singleton/issues.xml 2009-09-08 16:06:58 UTC (rev 25)
@@ -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>
Added: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-singleton/projects.xml
===================================================================
--- maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-singleton/projects.xml (rev 0)
+++ maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-singleton/projects.xml 2009-09-08 16:06:58 UTC (rev 25)
@@ -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/RedmineModelBuilderTest/array-singleton/trackers.xml
===================================================================
--- maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-singleton/trackers.xml (rev 0)
+++ maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-singleton/trackers.xml 2009-09-08 16:06:58 UTC (rev 25)
@@ -0,0 +1,14 @@
+<?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>
+</trackers>
Added: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-singleton/users.xml
===================================================================
--- maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-singleton/users.xml (rev 0)
+++ maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-singleton/users.xml 2009-09-08 16:06:58 UTC (rev 25)
@@ -0,0 +1,24 @@
+<?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>
+</users>
Added: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-singleton/versions.xml
===================================================================
--- maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-singleton/versions.xml (rev 0)
+++ maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/array-singleton/versions.xml 2009-09-08 16:06:58 UTC (rev 25)
@@ -0,0 +1,13 @@
+<?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>
+</versions>
Added: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/single/attachment.xml
===================================================================
--- maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/single/attachment.xml (rev 0)
+++ maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/single/attachment.xml 2009-09-08 16:06:58 UTC (rev 25)
@@ -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>
+
Added: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/single/issue.xml
===================================================================
--- maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/single/issue.xml (rev 0)
+++ maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/single/issue.xml 2009-09-08 16:06:58 UTC (rev 25)
@@ -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>
Added: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/single/project.xml
===================================================================
--- maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/single/project.xml (rev 0)
+++ maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/single/project.xml 2009-09-08 16:06:58 UTC (rev 25)
@@ -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>
Added: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/single/tracker.xml
===================================================================
--- maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/single/tracker.xml (rev 0)
+++ maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/single/tracker.xml 2009-09-08 16:06:58 UTC (rev 25)
@@ -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>
Added: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/single/user.xml
===================================================================
--- maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/single/user.xml (rev 0)
+++ maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/single/user.xml 2009-09-08 16:06:58 UTC (rev 25)
@@ -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>
Added: maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/single/version.xml
===================================================================
--- maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/single/version.xml (rev 0)
+++ maven-redmine-plugin/trunk/src/test/resources/org/nuiton/redmine/RedmineModelBuilderTest/single/version.xml 2009-09-08 16:06:58 UTC (rev 25)
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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>
1
0
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