Index: src/test/java/org/apache/maven/plugin/changes/ReleaseTest.java =================================================================== --- src/test/java/org/apache/maven/plugin/changes/ReleaseTest.java (r‚vision 425639) +++ src/test/java/org/apache/maven/plugin/changes/ReleaseTest.java (copie de travail) @@ -1,76 +0,0 @@ -package org.apache.maven.plugin.changes; - -/* - * Copyright 2005-2006 The Apache Software Foundation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import java.util.ArrayList; -import java.util.List; - -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; - -public class ReleaseTest - extends TestCase -{ - Release release = new Release(); - - public ReleaseTest( String testName ) - { - super( testName ); - } - - protected void setUp() - throws Exception - { - } - - protected void tearDown() - throws Exception - { - } - - public static Test suite() - { - TestSuite suite = new TestSuite( ReleaseTest.class ); - - return suite; - } - - public void testGetSetVersion() - { - release.setVersion( "version" ); - - assertEquals( "version", release.getVersion() ); - } - - public void testGetSetDateRelease() - { - release.setDateRelease( "12-09-1979" ); - - assertEquals( "12-09-1979", release.getDateRelease() ); - } - - public void testGetSetAction() - { - List actionList = new ArrayList(); - - release.setAction( actionList ); - - assertEquals( actionList, release.getAction() ); - } - -} Index: src/test/java/org/apache/maven/plugin/changes/model/ReleaseTest.java =================================================================== --- src/test/java/org/apache/maven/plugin/changes/model/ReleaseTest.java (r‚vision 0) +++ src/test/java/org/apache/maven/plugin/changes/model/ReleaseTest.java (copie de travail) @@ -1,4 +1,4 @@ -package org.apache.maven.plugin.changes; +package org.apache.maven.plugin.changes.model; /* * Copyright 2005-2006 The Apache Software Foundation. @@ -16,13 +16,12 @@ * limitations under the License. */ -import java.util.ArrayList; -import java.util.List; - import junit.framework.Test; import junit.framework.TestCase; import junit.framework.TestSuite; +import org.apache.maven.plugins.changes.model.Release; + public class ReleaseTest extends TestCase { @@ -59,18 +58,9 @@ public void testGetSetDateRelease() { - release.setDateRelease( "12-09-1979" ); + release.setDate( "12-09-1979" ); - assertEquals( "12-09-1979", release.getDateRelease() ); + assertEquals( "12-09-1979", release.getDate() ); } - public void testGetSetAction() - { - List actionList = new ArrayList(); - - release.setAction( actionList ); - - assertEquals( actionList, release.getAction() ); - } - } Index: src/test/java/org/apache/maven/plugin/changes/model/ActionTest.java =================================================================== --- src/test/java/org/apache/maven/plugin/changes/model/ActionTest.java (r‚vision 0) +++ src/test/java/org/apache/maven/plugin/changes/model/ActionTest.java (r‚vision 0) @@ -0,0 +1,72 @@ +package org.apache.maven.plugin.changes.model; + +/* + * Copyright 2005-2006 The Apache Software Foundation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import org.apache.maven.plugins.changes.model.Action; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +public class ActionTest + extends TestCase +{ + Action action = new Action(); + + public ActionTest( String testName ) + { + super( testName ); + } + + protected void setUp() + throws Exception + { + } + + protected void tearDown() + throws Exception + { + } + + public static Test suite() + { + TestSuite suite = new TestSuite( ActionTest.class ); + + return suite; + } + + public void testGetSetDescription() + { + action.setDescription( "action" ); + + assertEquals( "action", action.getDescription() ); + } + + public void testGetSetDev() + { + action.setDev( "developer" ); + + assertEquals( "developer", action.getDev() ); + } + + public void testGetSetType() + { + action.setType( "type" ); + + assertEquals( "type", action.getType() ); + } +} Index: src/test/java/org/apache/maven/plugin/changes/ChangesDocumentParserOldTest.java =================================================================== --- src/test/java/org/apache/maven/plugin/changes/ChangesDocumentParserOldTest.java (r‚vision 0) +++ src/test/java/org/apache/maven/plugin/changes/ChangesDocumentParserOldTest.java (r‚vision 0) @@ -0,0 +1,134 @@ +package org.apache.maven.plugin.changes; + +/* + * Copyright 2005-2006 The Apache Software Foundation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +import org.apache.maven.plugin.MojoExecutionException; +import org.apache.maven.plugin.logging.SystemStreamLog; +import org.apache.maven.plugins.changes.model.Action; +import org.apache.maven.plugins.changes.model.Body; +import org.apache.maven.plugins.changes.model.ChangesDocument; +import org.apache.maven.plugins.changes.model.Dueto; +import org.apache.maven.plugins.changes.model.Fixes; +import org.apache.maven.plugins.changes.model.Release; + +/** + * Test backward compatibility of changes-plugin with previous Xml file format. + * + * @author Denis Cabasson + */ +public class ChangesDocumentParserOldTest + extends TestCase +{ + + private String basedir; + + public ChangesDocumentParserOldTest( String testName ) + { + super( testName ); + } + + protected void setUp() + throws Exception + { + basedir = System.getProperty( "basedir", System.getProperty( "user.dir" ) ); + } + + protected void tearDown() + throws Exception + { + } + + public static Test suite() + { + TestSuite suite = new TestSuite( ChangesDocumentParserOldTest.class ); + return suite; + } + + public void testDocumentParsing() + { + try + { + ChangesDocumentParser parser = new ChangesDocumentParser( basedir + "/src/test/resources/changes-old.xml", + new SystemStreamLog() ); + checkOldChange( parser.getReport() ); + } + catch ( MojoExecutionException e ) + { + fail( "The old format document should be parsed." ); + } + } + + protected static void checkOldChange( ChangesDocument doc ) + { + assertEquals( "Checking document's title", "Changes Tester Project", doc.getProperties().getTitle().trim() ); + Body body = doc.getBody(); + assertEquals( "Checking number of releases", 2, body.getReleases().size() ); + Release release = (Release) body.getReleases().get( 0 ); + assertEquals( "Checking version of latest release", "1.1", release.getVersion() ); + assertEquals( "Checking date of latest release", "2005-03-01", release.getDate() ); + assertEquals( "Checking description of latest release", "Subsequent release", release.getDescription() ); + assertEquals( "Checking number of actions in latest release", 3, release.getActions().size() ); + Action action = (Action) release.getActions().get( 0 ); + assertEquals( "Checking type of first action of latest release", "add", action.getType() ); + assertEquals( "Checking developper of first action of latest release", "jruiz", action.getDev() ); + assertEquals( "Checking description of first action of latest release", + "Added additional documentation on how to configure the plugin.", action.getDescription() ); + assertEquals( "Checking number of duetos of first action of latest release", 1, action.getDuetos().size() ); + assertEquals( "Checking number of fixes of first action of latest release", 0, action.getFixess().size() ); + Dueto dueto = (Dueto) action.getDuetos().get( 0 ); + assertEquals( "Checking dueto (name) of first action of latest release", "Dennis Lundberg", dueto.getName() ); + assertNull( "Checking dueto (email) of first action of latest release", dueto.getEmail() ); + action = (Action) release.getActions().get( 1 ); + assertEquals( "Checking type of second action of latest release", "fix", action.getType() ); + assertEquals( "Checking developper of second action of latest release", "aramirez", action.getDev() ); + assertEquals( "Checking description of second action of latest release", + "Enable retrieving component-specific issues.", action.getDescription() ); + assertEquals( "Checking number of duetos of second action of latest release", 0, action.getDuetos().size() ); + assertEquals( "Checking number of fixes of second action of latest release", 1, action.getFixess().size() ); + Fixes fixes = (Fixes) action.getFixess().get( 0 ); + assertEquals( "Checking issue of fixes of second action of latest release", "MPJIRA-11", fixes.getIssue() ); + action = (Action) release.getActions().get( 2 ); + assertEquals( "Checking type of third action of latest release", "remove", action.getType() ); + assertEquals( "Checking developper of third action of latest release", "jruiz", action.getDev() ); + assertEquals( + "Checking description of third action of latest release", + "The element type \" link \" must be terminated by the matching end-tag.\nDeleted the erroneous code.", + action.getDescription().trim() ); + assertEquals( "Checking number of duetos of third action of latest release", 1, action.getDuetos().size() ); + assertEquals( "Checking number of fixes of third action of latest release", 0, action.getFixess().size() ); + dueto = (Dueto) action.getDuetos().get( 0 ); + assertEquals( "Checking dueto (name) of third action of latest release", "Allan Ramirez", dueto.getName() ); + assertEquals( "Checking dueto (email) of third action of latest release", "aramirez@exist.com", dueto + .getEmail() ); + release = (Release) body.getReleases().get( 1 ); + assertEquals( "Checking version of former release", "1.0", release.getVersion() ); + assertEquals( "Checking date of former release", "2005-01-01", release.getDate() ); + assertEquals( "Checking description of former release", "First release", release.getDescription() ); + assertEquals( "Checking number of actions in former release", 1, release.getActions().size() ); + action = (Action) release.getActions().get( 0 ); + assertEquals( "Checking type of action of former release", "update", action.getType() ); + assertEquals( "Checking developper of action of former release", "jruiz", action.getDev() ); + assertEquals( "Checking description of action of former release", + "Uploaded documentation on how to use the plugin.", action.getDescription() ); + assertEquals( "Checking number of duetos of action of former release", 0, action.getDuetos().size() ); + assertEquals( "Checking number of fixes of action of former release", 0, action.getFixess().size() ); + } +} Index: src/test/java/org/apache/maven/plugin/changes/ChangesXMLTest.java =================================================================== --- src/test/java/org/apache/maven/plugin/changes/ChangesXMLTest.java (r‚vision 0) +++ src/test/java/org/apache/maven/plugin/changes/ChangesXMLTest.java (r‚vision 0) @@ -0,0 +1,82 @@ +package org.apache.maven.plugin.changes; + +/* + * Copyright 2005-2006 The Apache Software Foundation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import java.io.IOException; + +import javax.xml.parsers.ParserConfigurationException; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +import org.xml.sax.SAXException; + +/** + * Test parsing of 'old' Xml file format. + * + * @author Denis Cabasson + */ +public class ChangesXMLTest + extends TestCase +{ + private String basedir; + + public ChangesXMLTest( String testName ) + { + super( testName ); + } + + protected void setUp() + throws Exception + { + basedir = System.getProperty( "basedir", System.getProperty( "user.dir" ) ); + } + + protected void tearDown() + throws Exception + { + } + + public static Test suite() + { + TestSuite suite = new TestSuite( ChangesXMLTest.class ); + return suite; + } + + public void testDocumentParsing() + { + try + { + ChangesXML parser = new ChangesXML( basedir + "/src/test/resources/changes-old.xml" ); + ChangesDocumentParserOldTest.checkOldChange( parser.getChangesDocument() ); + } + catch ( SAXException e ) + { + fail( "The old format document should be parsed." ); + } + catch ( ParserConfigurationException e ) + { + fail( "The old format document should be parsed." ); + } + catch ( IOException e ) + { + fail( "The old format document should be present." ); + } + } + +} Index: src/test/java/org/apache/maven/plugin/changes/ActionTest.java =================================================================== --- src/test/java/org/apache/maven/plugin/changes/ActionTest.java (r‚vision 425639) +++ src/test/java/org/apache/maven/plugin/changes/ActionTest.java (copie de travail) @@ -1,91 +0,0 @@ -package org.apache.maven.plugin.changes; - -/* - * Copyright 2005-2006 The Apache Software Foundation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; - -public class ActionTest - extends TestCase -{ - Action action = new Action(); - - public ActionTest( String testName ) - { - super( testName ); - } - - protected void setUp() - throws Exception - { - } - - protected void tearDown() - throws Exception - { - } - - public static Test suite() - { - TestSuite suite = new TestSuite( ActionTest.class ); - - return suite; - } - - public void testGetSetAction() - { - action.setAction( "action" ); - - assertEquals( "action", action.getAction() ); - } - - public void testGetSetDev() - { - action.setDev( "developer" ); - - assertEquals( "developer", action.getDev() ); - } - - public void testGetSetType() - { - action.setType( "type" ); - - assertEquals( "type", action.getType() ); - } - - public void testGetSetIssue() - { - action.setIssue( "issue" ); - - assertEquals( "issue", action.getIssue() ); - } - - public void testGetSetDueTo() - { - action.setDueTo( "due-to" ); - - assertEquals( "due-to", action.getDueTo() ); - } - - public void testGetSetDueToEmail() - { - action.setDueToEmail( "due-to-mail" ); - - assertEquals( "due-to-mail", action.getDueToEmail() ); - } -} Index: src/test/java/org/apache/maven/plugin/changes/ChangesDocumentParserNewTest.java =================================================================== --- src/test/java/org/apache/maven/plugin/changes/ChangesDocumentParserNewTest.java (r‚vision 0) +++ src/test/java/org/apache/maven/plugin/changes/ChangesDocumentParserNewTest.java (r‚vision 0) @@ -0,0 +1,200 @@ +package org.apache.maven.plugin.changes; + +/* + * Copyright 2005-2006 The Apache Software Foundation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import java.io.FileReader; +import java.io.IOException; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +import org.apache.maven.plugin.MojoExecutionException; +import org.apache.maven.plugin.logging.SystemStreamLog; +import org.apache.maven.plugins.changes.model.Action; +import org.apache.maven.plugins.changes.model.Body; +import org.apache.maven.plugins.changes.model.ChangesDocument; +import org.apache.maven.plugins.changes.model.Dueto; +import org.apache.maven.plugins.changes.model.Fixes; +import org.apache.maven.plugins.changes.model.Release; +import org.apache.maven.plugins.changes.model.io.xpp3.ChangesXpp3Reader; +import org.codehaus.plexus.util.xml.pull.XmlPullParserException; + +/** + * Test parsing of 'new' Xml file format. + * + * @author Denis Cabasson + */ +public class ChangesDocumentParserNewTest + extends TestCase +{ + + private String basedir; + + public ChangesDocumentParserNewTest( String testName ) + { + super( testName ); + } + + protected void setUp() + throws Exception + { + basedir = System.getProperty( "basedir", System.getProperty( "user.dir" ) ); + } + + protected void tearDown() + throws Exception + { + } + + public static Test suite() + { + TestSuite suite = new TestSuite( ChangesDocumentParserNewTest.class ); + return suite; + } + + public void testDocumentParsing() + { + try + { + ChangesDocumentParser parser = new ChangesDocumentParser( basedir + "/src/test/resources/changes-new.xml", + new SystemStreamLog() ); + checkNewChange( parser.getReport() ); + } + catch ( MojoExecutionException e ) + { + fail( "The new format document should be parsed." ); + } + } + + public void testDocumentParsinXppReader() + { + try + { + ChangesXpp3Reader reader = new ChangesXpp3Reader(); + ChangesDocument doc = reader.read( new FileReader( basedir + "/src/test/resources/changes-new.xml" ) ); + checkNewChange( doc ); + } + catch ( IOException e ) + { + fail( "The new format document should be present." ); + } + catch ( XmlPullParserException e ) + { + fail( "The new format document should be parsed." ); + } + } + + public void testOldDocumentParsing() + { + ChangesXpp3Reader reader = new ChangesXpp3Reader(); + try + { + reader.read( new FileReader( basedir + "/src/test/resources/changes-old.xml" ) ); + fail( "Parsing of 'old' format with 'new' parser should fail" ); + } + catch ( IOException e ) + { + fail( "The old format document should be present." ); + } + catch ( XmlPullParserException e ) + { + // Expected behaviour + } + } + + protected static void checkNewChange( ChangesDocument doc ) + { + assertEquals( "Checking document's title", "Changes Tester Project", doc.getProperties().getTitle() ); + Body body = doc.getBody(); + assertEquals( "Checking number of releases", 2, body.getReleases().size() ); + Release release = (Release) body.getReleases().get( 0 ); + assertEquals( "Checking version of latest release", "1.1", release.getVersion() ); + assertEquals( "Checking date of latest release", "2005-03-01", release.getDate() ); + assertEquals( "Checking description of latest release", "Subsequent release", release.getDescription() ); + assertEquals( "Checking number of actions in latest release", 4, release.getActions().size() ); + Action action = (Action) release.getActions().get( 0 ); + assertEquals( "Checking type of first action of latest release", "add", action.getType() ); + assertEquals( "Checking developper of first action of latest release", "jruiz", action.getDev() ); + assertEquals( "Checking description of first action of latest release", + "Added additional documentation on how to configure the plugin.", action.getDescription() ); + assertEquals( "Checking number of duetos of first action of latest release", 2, action.getDuetos().size() ); + assertEquals( "Checking number of fixes of first action of latest release", 0, action.getFixess().size() ); + Dueto dueto = (Dueto) action.getDuetos().get( 0 ); + assertEquals( "Checking first dueto (name) of first action of latest release", "Dennis Lundberg", dueto + .getName() ); + assertNull( "Checking first dueto (email) of first action of latest release", dueto.getEmail() ); + dueto = (Dueto) action.getDuetos().get( 1 ); + assertEquals( "Checking second dueto (name) of first action of latest release", "Allan Ramirez", dueto + .getName() ); + assertEquals( "Checking second dueto (email) of first action of latest release", "aramirez@exist.com", dueto + .getEmail() ); + action = (Action) release.getActions().get( 1 ); + assertEquals( "Checking type of second action of latest release", "fix", action.getType() ); + assertEquals( "Checking developper of second action of latest release", "aramirez", action.getDev() ); + assertEquals( "Checking description of second action of latest release", + "Enable retrieving component-specific issues.", action.getDescription() ); + assertEquals( "Checking number of duetos of second action of latest release", 0, action.getDuetos().size() ); + assertEquals( "Checking number of fixes of second action of latest release", 2, action.getFixess().size() ); + Fixes fixes = (Fixes) action.getFixess().get( 0 ); + assertEquals( "Checking issue of first fixes of second action of latest release", "MPJIRA-11", fixes.getIssue() ); + fixes = (Fixes) action.getFixess().get( 1 ); + assertEquals( "Checking issue of second fixes of second action of latest release", "MPJIRA-18", fixes + .getIssue() ); + action = (Action) release.getActions().get( 2 ); + assertEquals( "Checking type of third action of latest release", "remove", action.getType() ); + assertEquals( "Checking developper of third action of latest release", "jruiz", action.getDev() ); + // TODO Shouldn't all those spaces be stripped? + assertEquals( + "Checking description of third action of latest release", + "The element type \" link \" must be terminated by the matching\n end-tag. Deleted the erroneous code.", + action.getDescription() ); + assertEquals( "Checking number of duetos of third action of latest release", 1, action.getDuetos().size() ); + assertEquals( "Checking number of fixes of third action of latest release", 0, action.getFixess().size() ); + dueto = (Dueto) action.getDuetos().get( 0 ); + assertEquals( "Checking dueto (name) of third action of latest release", "Allan Ramirez", dueto.getName() ); + assertEquals( "Checking dueto (email) of third action of latest release", "aramirez@exist.com", dueto + .getEmail() ); + action = (Action) release.getActions().get( 3 ); + assertEquals( "Checking type of fourth action of latest release", "fix", action.getType() ); + assertEquals( "Checking developper of fourth action of latest release", "jruiz", action.getDev() ); + assertEquals( "Checking description of fourth action of latest release", "Don't fix it if it ain't broken!", + action.getDescription() ); + assertEquals( "Checking number of duetos of fourth action of latest release", 1, action.getDuetos().size() ); + assertEquals( "Checking number of fixes of fourth action of latest release", 1, action.getFixess().size() ); + dueto = (Dueto) action.getDuetos().get( 0 ); + assertEquals( "Checking dueto (name) of fourth action of latest release", "Allan Ramirez", dueto.getName() ); + assertEquals( "Checking dueto (email) of fourth action of latest release", "aramirez@exist.com", dueto + .getEmail() ); + fixes = (Fixes) action.getFixess().get( 0 ); + assertEquals( "Checking issue of fixes of fourth action of latest release", "MPJIRA-24", fixes.getIssue() ); + release = (Release) body.getReleases().get( 1 ); + assertEquals( "Checking version of former release", "1.0", release.getVersion() ); + assertEquals( "Checking date of former release", "2005-01-01", release.getDate() ); + assertEquals( "Checking description of former release", "First release", release.getDescription() ); + assertEquals( "Checking number of actions in former release", 1, release.getActions().size() ); + action = (Action) release.getActions().get( 0 ); + assertEquals( "Checking type of action of former release", "update", action.getType() ); + assertEquals( "Checking developper of action of former release", "jruiz", action.getDev() ); + assertEquals( "Checking description of action of former release", + "Uploaded documentation on how to use the plugin.", action.getDescription() ); + assertEquals( "Checking number of duetos of action of former release", 0, action.getDuetos().size() ); + assertEquals( "Checking number of fixes of action of former release", 1, action.getFixess().size() ); + fixes = (Fixes) action.getFixess().get( 0 ); + assertEquals( "Checking issue of fixes of action of former release", "MPJIRA-7", fixes.getIssue() ); + } +} Index: src/test/resources/changes-old.xml =================================================================== --- src/test/resources/changes-old.xml (r‚vision 425639) +++ src/test/resources/changes-old.xml (copie de travail) @@ -1,25 +1,26 @@ - Page title - Vincent Massol + Changes Tester Project + Johnny R. Ruiz III - - - - Blah blah blaha. - + + + Added additional documentation on how to configure the plugin. + + + Enable retrieving component-specific issues. + + + The element type " link " must be terminated by the matching end-tag. + Deleted the erroneous code. + - - Test - - - Corrected bug blah blah. - - - Removed blah blah. - + + + Uploaded documentation on how to use the plugin. + \ Pas de fin de ligne … la fin du fichier Index: src/test/resources/changes-new.xml =================================================================== --- src/test/resources/changes-new.xml (r‚vision 425639) +++ src/test/resources/changes-new.xml (copie de travail) @@ -1,25 +1,49 @@ - Page title - Vincent Massol + Changes Tester Project + - - - - Blah blah blaha. - + + Subsequent release + + + + + Added additional documentation on how to configure the plugin. + + + + + + + Enable retrieving component-specific issues. + + + + + + The element type " link " must be terminated by the matching + end-tag. Deleted the erroneous code. + + + + + + + Don't fix it if it ain't broken! + + - - Test - - - Corrected bug blah blah. - - - Removed blah blah. - + + First release + + + + Uploaded documentation on how to use the plugin. + + \ Pas de fin de ligne … la fin du fichier Index: src/main/mdo/changes.mdo =================================================================== --- src/main/mdo/changes.mdo (r‚vision 0) +++ src/main/mdo/changes.mdo (r‚vision 0) @@ -0,0 +1,265 @@ + + + + changes + Changes + + A recording of changes made during each release of a project. This + file should record every changes made to the project. + + + + package + org.apache.maven.plugins.changes.model + + + + + ChangesDocument + + Record every release with their subsequent changes. + + 1.0.0 + + + properties + 1.0.0 + true + + Properties + + The properties of the project. + + + body + 1.0.0 + true + + Body + + + Contains the releases of this project with the actions taken + for each of the releases. + + + + + + Properties + 1.0.0 + + + title + 1.0.0 + true + String + Page Title. + + + author + 1.0.0 + + Author + + + Deprecated. This field is there only for backward compatibility with previous changes format. + It's not used anywhere in maven-changes-plugin. + ]]> + + + + + + Author + 1.0.0 + + + name + 1.0.0 + String + true + + The name of the author of this document. + + + + email + 1.0.0 + String + + The email adress of the author of this document. + + + + + + Body + 1.0.0 + + + releases + 1.0.0 + + Release + * + + The list of releases for this project. + + + + + Release + 1.0.0 + A single release of this project. + + + version + 1.0.0 + true + String + + The version number associated with this release. + + + + date + 1.0.0 + true + String + + The date of this release.

+

This field can be any String, such as "in SVN" when the version isn't yet released.

+ ]]> +
+
+ + description + 1.0.0 + String + + A short description of this release. + + + + actions + 1.0.0 + + Action + * + + The list of actions taken for this release. + +
+
+ + Action + 1.0.0 + + A single action done on the project, during this release. + + + + dev + 1.0.0 + true + String + + The project's developper responsible for this action (typically the person who committed the changes to the SCM).

+

This field should be the id of one of the developpers of the current project (as declared in the POM).

+ ]]> +
+
+ + type + 1.0.0 + true + String + + +
  • add : added functionnality to the project.
  • +
  • fix : bug fix for the project.
  • +
  • update : updated some part of the project.
  • +
  • remove : removed some functionnality from the project.
  • + + Any other action type will break the building of the report. + ]]> +
    +
    + + description + 1.0.0 + String + + A short description of the action taken. + + + + fixess + 1.0.0 + List of issues fixed in this action. + + Fixes + * + + + + duetos + 1.0.0 + List of contributors involved in this action. + + Dueto + * + + +
    +
    + + Fixes + 1.0.0 + The JIRA issue related to this action. + + + issue + 1.0.0 + true + String + + JIRA-XXX : the JIRA issue related to this action. + + + + + + Dueto + 1.0.0 + + One of the person having contributed to this action. + + + + name + 1.0.0 + true + String + + The name of the person having contributed. + + + + email + 1.0.0 + String + + The email of the person having contributed. + + + + +
    +
    + Index: src/main/java/org/apache/maven/plugin/changes/Release.java =================================================================== --- src/main/java/org/apache/maven/plugin/changes/Release.java (r‚vision 425639) +++ src/main/java/org/apache/maven/plugin/changes/Release.java (copie de travail) @@ -1,89 +0,0 @@ -package org.apache.maven.plugin.changes; - -/* - * Copyright 2001-2006 The Apache Software Foundation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import java.util.ArrayList; -import java.util.List; - -/** - * A release in a changes.xml file. - * - * @version $Id$ - */ -public class Release -{ - private List action; - - private String dateRelease; - - private String description; - - private String version; - - public Release() - { - } - - public void setAction( List action ) - { - this.action = action; - } - - public List getAction() - { - return action; - } - - public void addAction( Action act ) - { - if ( action == null ) - { - action = new ArrayList(); - } - action.add( act ); - } - - public void setDateRelease( String dateRelease ) - { - this.dateRelease = dateRelease; - } - - public String getDateRelease() - { - return dateRelease; - } - - public void setDescription( String description ) - { - this.description = description; - } - - public String getDescription() - { - return description; - } - - public void setVersion( String version ) - { - this.version = version; - } - - public String getVersion() - { - return version; - } -} Index: src/main/java/org/apache/maven/plugin/changes/ChangesDocumentParser.java =================================================================== --- src/main/java/org/apache/maven/plugin/changes/ChangesDocumentParser.java (r‚vision 0) +++ src/main/java/org/apache/maven/plugin/changes/ChangesDocumentParser.java (r‚vision 0) @@ -0,0 +1,95 @@ +package org.apache.maven.plugin.changes; + +import java.io.FileReader; +import java.io.IOException; + +import javax.xml.parsers.ParserConfigurationException; + +import org.apache.maven.plugin.MojoExecutionException; +import org.apache.maven.plugin.logging.Log; +import org.apache.maven.plugins.changes.model.ChangesDocument; +import org.apache.maven.plugins.changes.model.io.xpp3.ChangesXpp3Reader; +import org.codehaus.plexus.util.xml.pull.XmlPullParserException; +import org.xml.sax.SAXException; + +/* + * Copyright 2001-2006 The Apache Software Foundation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * Parses a Changes Document.
    + * This class handle backward compatibility with previous format of changes report. + * + * @author Denis Cabasson + * @version $$ + */ +public class ChangesDocumentParser +{ + + private ChangesDocument report; + + public ChangesDocumentParser( String xmlPath, Log log ) + throws MojoExecutionException + { + + ChangesXpp3Reader xppReader = new ChangesXpp3Reader(); + + try + { + report = xppReader.read( new FileReader( xmlPath ) ); + } + catch ( IOException e ) + { + log.warn( "Unable to find changes file, changes report will not be generated" ); + throw new MojoExecutionException( "Unable to find changes file, changes report will not be generated", e ); + } + catch ( XmlPullParserException e ) + { + + // TODO Isn't there a cleaner way to revert to previous parsing than simply trying with new parser? + log.info( "Changes file doesn't comply with new changes format. Trying to revert to former format." ); + + try + { + report = new ChangesXML( xmlPath ).getChangesDocument(); + } + catch ( SAXException e1 ) + { + log + .warn( "Changes files doesn't comply with the new format neither the old one. Changes report will not be generated" ); + throw new MojoExecutionException( "Unable to parse changes file, changes report will not be generated", e ); + } + catch ( ParserConfigurationException e1 ) + { + log.warn( "Changes files can't be parsed. Changes report will not be generated" ); + throw new MojoExecutionException( "Unable to parse changes file, changes report will not be generated", e ); + } + catch ( IOException e1 ) + { + // Shouldn't happen there, as we have already checked above + log.warn( "Unable to find changes file, changes report will not be generated" ); + throw new MojoExecutionException( "Unable to find changes file, changes report will not be generated", e ); + } + + } + + } + + public ChangesDocument getReport() + { + return report; + } + +} Index: src/main/java/org/apache/maven/plugin/changes/ChangesXML.java =================================================================== --- src/main/java/org/apache/maven/plugin/changes/ChangesXML.java (r‚vision 425639) +++ src/main/java/org/apache/maven/plugin/changes/ChangesXML.java (copie de travail) @@ -17,13 +17,21 @@ */ import java.io.File; -import java.util.ArrayList; -import java.util.List; +import java.io.IOException; +import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; -import org.apache.maven.plugin.logging.Log; +import org.apache.maven.plugins.changes.model.Action; +import org.apache.maven.plugins.changes.model.Author; +import org.apache.maven.plugins.changes.model.Body; +import org.apache.maven.plugins.changes.model.ChangesDocument; +import org.apache.maven.plugins.changes.model.Dueto; +import org.apache.maven.plugins.changes.model.Fixes; +import org.apache.maven.plugins.changes.model.Properties; +import org.apache.maven.plugins.changes.model.Release; +import org.codehaus.plexus.util.StringUtils; import org.xml.sax.Attributes; import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; @@ -36,80 +44,40 @@ public class ChangesXML extends DefaultHandler { + private ChangesDocument changesDocument; + private Action action; - private List actionList; - private Release release; + private Author author; + private String currentElement; private String currentName; - private List releaseList; + public ChangesXML( String xmlPath ) + throws SAXException, ParserConfigurationException, IOException + { + changesDocument = new ChangesDocument(); - private String author; + changesDocument.setBody(new Body()); - private String authorEmail; + changesDocument.setProperties(new Properties()); - private String title; - - public ChangesXML( String xmlPath, Log log ) - { SAXParserFactory factory = SAXParserFactory.newInstance(); - try - { - SAXParser saxParser = factory.newSAXParser(); + SAXParser saxParser = factory.newSAXParser(); - saxParser.parse( new File( xmlPath ), this ); - } - catch ( Throwable t ) - { - log.error( "An error occured when parsing the changes.xml file:", t ); - } - } + saxParser.parse( new File( xmlPath ), this ); - public void setAuthor( String author ) - { - this.author = author; } - public String getAuthor() + public ChangesDocument getChangesDocument() { - return author; + return changesDocument; } - public void setAuthorEmail( String authorEmail ) - { - this.authorEmail = authorEmail; - } - - public String getAuthorEmail() - { - return authorEmail; - } - - public void setReleaseList( List releaseList ) - { - this.releaseList = releaseList; - } - - public List getReleaseList() - { - return releaseList; - } - - public void setTitle( String title ) - { - this.title = title; - } - - public String getTitle() - { - return title; - } - public void characters( char[] buf, int offset, int len ) throws SAXException { @@ -126,23 +94,23 @@ { if ( qName.equals( "title" ) ) { - this.title = currentElement; + changesDocument.getProperties().setTitle( currentElement ); } else if ( qName.equals( "author" ) ) { - this.title = currentElement; + author.setName( currentElement ); + + changesDocument.getProperties().setAuthor( author ); } else if ( qName.equals( "action" ) ) { - action.setAction( currentElement.trim() ); + action.setDescription( currentElement.trim() ); - actionList.add( action ); + release.addAction( action ); } else if ( qName.equals( "release" ) ) { - release.setAction( actionList ); - - releaseList.add( release ); + changesDocument.getBody().addRelease( release ); } currentElement = ""; @@ -153,29 +121,26 @@ { if ( qName.equals( "title" ) ) { - this.title = ""; + this.currentElement = ""; } else if ( qName.equals( "author" ) ) { - this.authorEmail = attrs.getValue( "email" ); + author = new Author(); - this.author = ""; + author.setEmail( attrs.getValue( "email" ) ); + + this.currentElement = ""; } - else if ( qName.equals( "body" ) ) - { - releaseList = new ArrayList(); - } else if ( qName.equals( "release" ) ) { release = new Release(); - release.setDateRelease( attrs.getValue( "date" ) ); + release.setDate( attrs.getValue( "date" ) ); release.setVersion( attrs.getValue( "version" ) ); release.setDescription( attrs.getValue( "description" ) ); - actionList = new ArrayList(); } else if ( qName.equals( "action" ) ) { @@ -183,13 +148,31 @@ action.setDev( attrs.getValue( "dev" ) ); - action.setDueTo( attrs.getValue( "due-to" ) ); + action.setType( attrs.getValue( "type" ) ); - action.setDueToEmail( attrs.getValue( "due-to-email" ) ); + String duetoStr = attrs.getValue( "due-to" ); - action.setType( attrs.getValue( "type" ) ); + if ( StringUtils.isNotEmpty( duetoStr ) ) + { + Dueto dueto = new Dueto(); - action.setIssue( attrs.getValue( "issue" ) ); + dueto.setName( duetoStr ); + + dueto.setEmail( attrs.getValue( "due-to-email" ) ); + + action.addDueto(dueto); + } + + String issueStr = attrs.getValue( "issue" ); + + if ( StringUtils.isNotEmpty( issueStr ) ) + { + Fixes fixes = new Fixes(); + + fixes.setIssue( issueStr ); + + action.addFixes(fixes); + } } currentName = qName; Index: src/main/java/org/apache/maven/plugin/changes/ChangesReportGenerator.java =================================================================== --- src/main/java/org/apache/maven/plugin/changes/ChangesReportGenerator.java (r‚vision 425639) +++ src/main/java/org/apache/maven/plugin/changes/ChangesReportGenerator.java (copie de travail) @@ -16,11 +16,27 @@ * limitations under the License. */ +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.io.IOException; +import java.util.Iterator; import java.util.List; import java.util.ResourceBundle; +import javax.xml.parsers.ParserConfigurationException; + import org.apache.maven.doxia.sink.Sink; +import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.logging.Log; +import org.apache.maven.plugins.changes.model.Action; +import org.apache.maven.plugins.changes.model.ChangesDocument; +import org.apache.maven.plugins.changes.model.Dueto; +import org.apache.maven.plugins.changes.model.Fixes; +import org.apache.maven.plugins.changes.model.Release; +import org.apache.maven.plugins.changes.model.io.xpp3.ChangesXpp3Reader; +import org.apache.maven.reporting.MavenReportException; +import org.codehaus.plexus.util.xml.pull.XmlPullParserException; +import org.xml.sax.SAXException; /** * Generates a changes report. @@ -29,7 +45,7 @@ */ public class ChangesReportGenerator { - private ChangesXML report; + private ChangesDocument report; private String issueLink; @@ -40,8 +56,17 @@ } public ChangesReportGenerator( String xmlPath, Log log ) + throws MavenReportException { - report = new ChangesXML( xmlPath, log ); + try + { + report = new ChangesDocumentParser( xmlPath, log ).getReport(); + } + catch ( MojoExecutionException e ) + { + log.debug( "Can't create the changes report." ); + throw new MavenReportException( "Can't create the changes report.", e ); + } } public void setIssueLink( String issueLink ) @@ -108,43 +133,71 @@ sink.tableCell(); - sink.rawText( action.getAction() ); + sink.rawText( action.getDescription() ); - if ( action.getIssue() != null ) + if ( action.getFixess() != null && action.getFixess().size() > 0 ) { - sink.text( " " + bundle.getString( "report.changes.text.fixes" ) + " " ); - if ( this.url == null || this.url.trim().equals( "" ) ) - { - sink.text( action.getIssue() ); + sink.text( " " + bundle.getString( "report.changes.text.fixes" ) ); - } - else + for ( Iterator i = action.getFixess().iterator(); i.hasNext(); ) { - sink.link( parseIssueLink( action.getIssue() ) ); - sink.text( action.getIssue() ); + sink.text( " " ); - sinkFigure( "images/external.png", sink ); + Fixes fix = (Fixes) i.next(); - sink.link_(); + if ( this.url == null || this.url.trim().equals( "" ) ) + { + sink.text( fix.getIssue() ); + } + else + { + sink.link( parseIssueLink( fix.getIssue() ) ); + + sink.text( fix.getIssue() ); + + sinkFigure( "images/external.png", sink ); + + sink.link_(); + + } + + if ( i.hasNext() ) + { + sink.text( "," ); + } + } sink.text( "." ); } - if ( action.getDueTo() != null ) + if ( action.getDuetos() != null && action.getDuetos().size() > 0 ) { - sink.text( " " + bundle.getString( "report.changes.text.thanx" ) + " " ); + sink.text( " " + bundle.getString( "report.changes.text.thanx" ) ); - if ( action.getDueToEmail() != null ) + for ( Iterator i = action.getDuetos().iterator(); i.hasNext(); ) { - sinkLink( sink, action.getDueTo(), "mailto:" + action.getDueToEmail() ); + + sink.text( " " ); + + Dueto dueto = (Dueto) i.next(); + + if ( dueto.getEmail() != null ) + { + sinkLink( sink, dueto.getName(), "mailto:" + dueto.getEmail() ); + } + else + { + sink.text( dueto.getName() ); + } + + if ( i.hasNext() ) + { + sink.text( "," ); + } } - else - { - sink.text( action.getDueTo() ); - } sink.text( "." ); } @@ -156,7 +209,7 @@ sink.tableRow_(); } - sink.table(); + sink.table_(); } private void constructReleaseHistory( Sink sink, ResourceBundle bundle ) @@ -164,7 +217,7 @@ sinkSectionTitle2Anchor( sink, bundle.getString( "report.changes.label.releasehistory" ), bundle .getString( "report.changes.label.releasehistory" ) ); - List releaseList = report.getReleaseList(); + List releaseList = report.getBody().getReleases(); sink.table(); @@ -186,7 +239,7 @@ sinkCellLink( sink, release.getVersion(), "#" + release.getVersion() ); - sinkCell( sink, release.getDateRelease() ); + sinkCell( sink, release.getDate() ); sinkCell( sink, release.getDescription() ); @@ -211,16 +264,16 @@ private void constructReleases( Sink sink, ResourceBundle bundle ) { - List releaseList = report.getReleaseList(); + List releaseList = report.getBody().getReleases(); for ( int idx = 0; idx < releaseList.size(); idx++ ) { Release release = (Release) releaseList.get( idx ); sinkSectionTitle2Anchor( sink, bundle.getString( "report.changes.label.release" ) + " " - + release.getVersion() + " - " + release.getDateRelease(), release.getVersion() ); + + release.getVersion() + " - " + release.getDate(), release.getVersion() ); - constructActions( sink, release.getAction(), bundle ); + constructActions( sink, release.getActions(), bundle ); } } Index: src/main/java/org/apache/maven/plugin/changes/Action.java =================================================================== --- src/main/java/org/apache/maven/plugin/changes/Action.java (r‚vision 425639) +++ src/main/java/org/apache/maven/plugin/changes/Action.java (copie de travail) @@ -1,101 +0,0 @@ -package org.apache.maven.plugin.changes; - -/* - * Copyright 2001-2006 The Apache Software Foundation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * An action in a changes.xml file. - * - * @version $Id$ - */ -public class Action -{ - private String action; - - private String dev; - - private String dueTo; - - private String dueToEmail; - - private String issue; - - private String type; - - public Action() - { - } - - public void setAction( String action ) - { - this.action = action; - } - - public String getAction() - { - return action; - } - - public void setDev( String dev ) - { - this.dev = dev; - } - - public String getDev() - { - return dev; - } - - public void setDueTo( String dueTo ) - { - this.dueTo = dueTo; - } - - public String getDueTo() - { - return dueTo; - } - - public void setDueToEmail( String dueToEmail ) - { - this.dueToEmail = dueToEmail; - } - - public String getDueToEmail() - { - return dueToEmail; - } - - public void setIssue( String issue ) - { - this.issue = issue; - } - - public String getIssue() - { - return issue; - } - - public void setType( String type ) - { - this.type = type; - } - - public String getType() - { - return type; - } -} Index: src/main/java/org/apache/maven/plugin/announcement/AnnouncementMojo.java =================================================================== --- src/main/java/org/apache/maven/plugin/announcement/AnnouncementMojo.java (r‚vision 425639) +++ src/main/java/org/apache/maven/plugin/announcement/AnnouncementMojo.java (copie de travail) @@ -23,8 +23,9 @@ import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoExecutionException; -import org.apache.maven.plugin.changes.ChangesXML; -import org.apache.maven.plugin.changes.Release; +import org.apache.maven.plugin.changes.ChangesDocumentParser; +import org.apache.maven.plugins.changes.model.ChangesDocument; +import org.apache.maven.plugins.changes.model.Release; import org.apache.maven.project.MavenProject; import org.apache.maven.settings.Settings; import org.apache.velocity.VelocityContext; @@ -152,7 +153,7 @@ */ private String templateDirectory; - private ChangesXML xml; + private ChangesDocument report; //=======================================// // JIRA-Announcement Needed Parameters // @@ -229,9 +230,9 @@ { if ( !generateJiraAnnouncement ) { - setXml( new ChangesXML( getXmlPath(), getLog() ) ); + setReport( new ChangesDocumentParser( xmlPath, getLog() ).getReport() ); - doGenerate( getXml() ); + doGenerate( getReport() ); } else { @@ -245,14 +246,14 @@ * @param xml parsed changes.xml * @throws MojoExecutionException */ - public void doGenerate( ChangesXML xml ) + public void doGenerate( ChangesDocument report ) throws MojoExecutionException { try { Context context = new VelocityContext(); - List releaseList = xml.getReleaseList(); + List releaseList = report.getBody().getReleases(); getLog().info( "Creating announcement file from changes.xml..." ); @@ -537,14 +538,14 @@ this.url = url; } - public ChangesXML getXml() + public ChangesDocument getReport() { - return xml; + return report; } - public void setXml( ChangesXML xml ) + public void setReport( ChangesDocument report ) { - this.xml = xml; + this.report = report; } public String getPackaging() Index: src/main/java/org/apache/maven/plugin/announcement/JiraAnnouncementParser.java =================================================================== --- src/main/java/org/apache/maven/plugin/announcement/JiraAnnouncementParser.java (r‚vision 425639) +++ src/main/java/org/apache/maven/plugin/announcement/JiraAnnouncementParser.java (copie de travail) @@ -23,8 +23,9 @@ import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; -import org.apache.maven.plugin.changes.Action; -import org.apache.maven.plugin.changes.Release; +import org.apache.maven.plugins.changes.model.Action; +import org.apache.maven.plugins.changes.model.Fixes; +import org.apache.maven.plugins.changes.model.Release; import org.xml.sax.Attributes; import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; @@ -172,8 +173,12 @@ Action action = new Action(); - action.setIssue( issue.getKey() ); + Fixes fixes = new Fixes(); + fixes.setIssue(issue.getKey()); + + action.addFixes( fixes ); + if ( issue.getType().equals( "Bug" ) ) { type = "fix"; @@ -196,11 +201,11 @@ { int commentSize = issue.getComments().size(); - action.setAction( issue.getComments().get( commentSize - 1 ).toString() ); + action.setDescription( issue.getComments().get( commentSize - 1 ).toString() ); } else { - action.setAction( "" ); + action.setDescription( "" ); } release.addAction( action ); Index: src/site/site.xml =================================================================== --- src/site/site.xml (r‚vision 425639) +++ src/site/site.xml (copie de travail) @@ -37,6 +37,7 @@ + Index: src/it/changes-new/src/changes/changes.xml =================================================================== --- src/it/changes-new/src/changes/changes.xml (r‚vision 0) +++ src/it/changes-new/src/changes/changes.xml (r‚vision 0) @@ -0,0 +1,49 @@ + + + Changes Tester Project + + + + + Subsequent release + + + + + Added additional documentation on how to configure the plugin. + + + + + + + Enable retrieving component-specific issues. + + + + + + The element type " link " must be terminated by the matching + end-tag. Deleted the erroneous code. + + + + + + + Don't fix it if it ain't broken! + + + + + + First release + + + + Uploaded documentation on how to use the plugin. + + + + + \ Pas de fin de ligne … la fin du fichier Index: src/it/changes-new/pom.xml =================================================================== --- src/it/changes-new/pom.xml (r‚vision 0) +++ src/it/changes-new/pom.xml (r‚vision 0) @@ -0,0 +1,48 @@ + + 4.0.0 + org.apache.maven.plugins + maven-changes-plugin-test-changes-new + pom + Maven Changes Report Plugin Integration Test New Format + 1.0-SNAPSHOT + + + jira + http://jira.codehaus.org/browse/MCHANGES + + + + + jruiz + Johnny Ruiz III + jruiz@apache.org + + + aramirez + Allan Ramirez + aramirez@exist.com + + + dennisl + Dennis Lundberg + dennisl@apache.org + + + + + + org.apache.maven.plugins + maven-changes-plugin + 2.0-beta-2-SNAPSHOT + + + + changes-report + + + + + + + \ Pas de fin de ligne … la fin du fichier Index: src/it/changes-old/src/changes/changes.xml =================================================================== --- src/it/changes-old/src/changes/changes.xml (r‚vision 0) +++ src/it/changes-old/src/changes/changes.xml (r‚vision 0) @@ -0,0 +1,26 @@ + + + Changes Tester Project + Johnny R. Ruiz III + + + + + Added additional documentation on how to configure the plugin. + + + Enable retrieving component-specific issues. + + + The element type " link " must be terminated by the matching end-tag. + Deleted the erroneous code. + + + + + + Uploaded documentation on how to use the plugin. + + + + \ Pas de fin de ligne … la fin du fichier Index: src/it/changes-old/pom.xml =================================================================== --- src/it/changes-old/pom.xml (r‚vision 0) +++ src/it/changes-old/pom.xml (r‚vision 0) @@ -0,0 +1,48 @@ + + 4.0.0 + org.apache.maven.plugins + maven-changes-plugin-test-changes-old + pom + Maven Changes Report Plugin Integration Test Old Format + 1.0-SNAPSHOT + + + jira + http://jira.codehaus.org/browse/MCHANGES + + + + + jruiz + Johnny Ruiz III + jruiz@apache.org + + + aramirez + Allan Ramirez + aramirez@exist.com + + + dennisl + Dennis Lundberg + dennisl@apache.org + + + + + + org.apache.maven.plugins + maven-changes-plugin + 2.0-beta-2-SNAPSHOT + + + + changes-report + + + + + + + \ Pas de fin de ligne … la fin du fichier Index: pom.xml =================================================================== --- pom.xml (r‚vision 425639) +++ pom.xml (copie de travail) @@ -1,9 +1,10 @@ - maven-plugins org.apache.maven.plugins - 2-SNAPSHOT + 1 4.0.0 maven-changes-plugin @@ -37,11 +38,15 @@ - scm:svn:http://svn.apache.org/repos/asf/maven/sandbox/plugins/maven-changes-plugin/ + + scm:svn:http://svn.apache.org/repos/asf/maven/sandbox/plugins/maven-changes-plugin/ + scm:svn:https://svn.apache.org/repos/asf/maven/sandbox/plugins/maven-changes-plugin/ - http://svn.apache.org/viewvc/maven/sandbox/plugins/maven-changes-plugin/ + + http://svn.apache.org/viewvc/maven/sandbox/plugins/maven-changes-plugin/ + @@ -96,6 +101,11 @@ commons-httpclient 3.0.1 + + plexus + plexus-utils + 1.0.2 + @@ -104,7 +114,9 @@ maven-changes-plugin 2.0-beta-2-SNAPSHOT - ${basedir}/src/site/changes/sample-changes.xml + + ${basedir}/src/site/changes/sample-changes.xml + @@ -117,4 +129,34 @@ + + + + org.codehaus.modello + modello-maven-plugin + 1.0-alpha-11-SNAPSHOT + + src/main/mdo/changes.mdo + 1.0.0 + + + + changes + generate-sources + + xpp3-reader + java + + + + changes-site + pre-site + + xdoc + + + + + +