You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ni...@apache.org on 2009/09/10 12:06:12 UTC
svn commit: r813343 - in /maven/release/trunk/maven-release-manager/src:
main/java/org/apache/maven/shared/release/phase/
test/java/org/apache/maven/shared/release/phase/
test/resources/projects/rewrite-for-release/cdata-section/
Author: nicolas
Date: Thu Sep 10 10:06:11 2009
New Revision: 813343
URL: http://svn.apache.org/viewvc?rev=813343&view=rev
Log:
[MRELEASE-383] svn inconsistent line ending style
CDATA sections after transformation use "\n" as line ending style and break the xml file consistency
fix : Filter CDATA sections from jdom tree (like allready done for comments) to apply platform line ending style
testcase included
Added:
maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/cdata-section/
maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/cdata-section/expected-pom.xml
maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/cdata-section/pom.xml
Modified:
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRewritePomsPhase.java
maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractReleaseTestCase.java
maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/GenerateReleasePomsPhaseTest.java
maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForReleasePhaseTest.java
Modified: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRewritePomsPhase.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRewritePomsPhase.java?rev=813343&r1=813342&r2=813343&view=diff
==============================================================================
--- maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRewritePomsPhase.java (original)
+++ maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRewritePomsPhase.java Thu Sep 10 10:06:11 2009
@@ -19,6 +19,18 @@
* under the License.
*/
+import java.io.File;
+import java.io.IOException;
+import java.io.StringReader;
+import java.io.StringWriter;
+import java.io.Writer;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
import org.apache.maven.artifact.ArtifactUtils;
import org.apache.maven.model.Dependency;
import org.apache.maven.model.Extension;
@@ -44,6 +56,7 @@
import org.codehaus.plexus.util.IOUtil;
import org.codehaus.plexus.util.StringUtils;
import org.codehaus.plexus.util.WriterFactory;
+import org.jdom.CDATA;
import org.jdom.Comment;
import org.jdom.Document;
import org.jdom.Element;
@@ -57,18 +70,6 @@
import org.jdom.output.XMLOutputter;
import org.jdom.xpath.XPath;
-import java.io.File;
-import java.io.IOException;
-import java.io.StringReader;
-import java.io.StringWriter;
-import java.io.Writer;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
/**
* Base class for rewriting phases.
*
@@ -224,6 +225,11 @@
Comment c = (Comment) i.next();
c.setText( ReleaseUtil.normalizeLineEndings( c.getText(), ReleaseUtil.LS ) );
}
+ for ( Iterator i = document.getDescendants( new ContentFilter( ContentFilter.CDATA ) ); i.hasNext(); )
+ {
+ CDATA c = (CDATA) i.next();
+ c.setText( ReleaseUtil.normalizeLineEndings( c.getText(), ReleaseUtil.LS ) );
+ }
}
private void transformDocument( MavenProject project, Element rootElement, ReleaseDescriptor releaseDescriptor,
Modified: maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractReleaseTestCase.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractReleaseTestCase.java?rev=813343&r1=813342&r2=813343&view=diff
==============================================================================
--- maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractReleaseTestCase.java (original)
+++ maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractReleaseTestCase.java Thu Sep 10 10:06:11 2009
@@ -19,6 +19,17 @@
* under the License.
*/
+import java.io.File;
+import java.io.IOException;
+import java.io.Reader;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Stack;
+
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.ArtifactUtils;
import org.apache.maven.artifact.factory.ArtifactFactory;
@@ -51,17 +62,6 @@
import org.codehaus.plexus.util.ReaderFactory;
import org.jmock.Mock;
-import java.io.File;
-import java.io.IOException;
-import java.io.Reader;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Stack;
-
/**
* Base class for some release tests.
*
@@ -227,7 +227,13 @@
protected boolean comparePomFiles( List reactorProjects )
throws IOException
{
- comparePomFiles( reactorProjects, "" );
+ return comparePomFiles( reactorProjects, true );
+ }
+
+ protected boolean comparePomFiles( List reactorProjects, boolean normalizeLineEndings )
+ throws IOException
+ {
+ comparePomFiles( reactorProjects, "", normalizeLineEndings );
// TODO: return void since this is redundant
return true;
@@ -236,28 +242,46 @@
protected void comparePomFiles( List reactorProjects, String expectedFileSuffix )
throws IOException
{
+ comparePomFiles( reactorProjects, expectedFileSuffix, true );
+ }
+
+ protected void comparePomFiles( List reactorProjects, String expectedFileSuffix, boolean normalizeLineEndings )
+ throws IOException
+ {
for ( Iterator i = reactorProjects.iterator(); i.hasNext(); )
{
MavenProject project = (MavenProject) i.next();
- comparePomFiles( project, expectedFileSuffix );
+ comparePomFiles( project, expectedFileSuffix, normalizeLineEndings );
}
}
protected void comparePomFiles( MavenProject project, String expectedFileSuffix )
throws IOException
{
+ comparePomFiles( project, expectedFileSuffix, true );
+ }
+
+ protected void comparePomFiles( MavenProject project, String expectedFileSuffix, boolean normalizeLineEndings )
+ throws IOException
+ {
File actualFile = project.getFile();
File expectedFile = new File( actualFile.getParentFile(), "expected-pom" + expectedFileSuffix + ".xml" );
- comparePomFiles( expectedFile, actualFile );
+ comparePomFiles( expectedFile, actualFile, normalizeLineEndings );
}
protected void comparePomFiles( File expectedFile, File actualFile )
throws IOException
{
- String actual = read( actualFile );
- String expected = read( expectedFile );
+ comparePomFiles( expectedFile, actualFile, true );
+ }
+
+ protected void comparePomFiles( File expectedFile, File actualFile, boolean normalizeLineEndings )
+ throws IOException
+ {
+ String actual = read( actualFile, normalizeLineEndings );
+ String expected = read( expectedFile, normalizeLineEndings );
expected = expected.replaceAll( "\\$\\{remoterepo\\}", getRemoteRepositoryURL() );
assertEquals( "Check the transformed POM", expected, actual );
}
@@ -270,11 +294,24 @@
private String read( File file )
throws IOException
{
+ return read( file, true );
+ }
+
+ /**
+ * Mock-up of {@link ReleaseUtil#readXmlFile(File)}, except this one REMOVES line endings. There is something fishy
+ * about the line ending conversion in that method, and it's not the class under test in these test cases.
+ *
+ * @param normalizeLineEndings TODO
+ */
+ private String read( File file, boolean normalizeLineEndings )
+ throws IOException
+ {
Reader reader = null;
try
{
reader = ReaderFactory.newXmlReader( file );
- return ReleaseUtil.normalizeLineEndings( IOUtil.toString( reader ), "" );
+ String xml = IOUtil.toString( reader );
+ return normalizeLineEndings ? ReleaseUtil.normalizeLineEndings( xml, "" ) : xml;
}
finally
{
Modified: maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/GenerateReleasePomsPhaseTest.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/GenerateReleasePomsPhaseTest.java?rev=813343&r1=813342&r2=813343&view=diff
==============================================================================
--- maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/GenerateReleasePomsPhaseTest.java (original)
+++ maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/GenerateReleasePomsPhaseTest.java Thu Sep 10 10:06:11 2009
@@ -19,6 +19,13 @@
* under the License.
*/
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+
import org.apache.maven.Maven;
import org.apache.maven.project.MavenProject;
import org.apache.maven.scm.ScmFileSet;
@@ -35,13 +42,6 @@
import org.jmock.core.matcher.InvokeOnceMatcher;
import org.jmock.core.stub.ReturnStub;
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-
/**
* Test the generate release POMs phase.
*
@@ -198,12 +198,14 @@
/*
* @see org.apache.maven.shared.release.phase.AbstractReleaseTestCase#compareFiles(org.apache.maven.project.MavenProject, java.lang.String)
*/
- protected void comparePomFiles( MavenProject project, String expectedFileSuffix ) throws IOException
+ // @Override
+ protected void comparePomFiles( MavenProject project, String expectedFileSuffix, boolean normalizeLineEndings )
+ throws IOException
{
File actualFile = ReleaseUtil.getReleasePom( project );
File expectedFile = new File( actualFile.getParentFile(), "expected-release-pom" + expectedFileSuffix + ".xml" );
- comparePomFiles( expectedFile, actualFile );
+ comparePomFiles( expectedFile, actualFile, normalizeLineEndings );
// verify scm provider expectations here
// TODO: can we move this somewhere better?
Modified: maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForReleasePhaseTest.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForReleasePhaseTest.java?rev=813343&r1=813342&r2=813343&view=diff
==============================================================================
--- maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForReleasePhaseTest.java (original)
+++ maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForReleasePhaseTest.java Thu Sep 10 10:06:11 2009
@@ -19,16 +19,16 @@
* under the License.
*/
-import org.apache.maven.project.MavenProject;
-import org.apache.maven.shared.release.config.ReleaseDescriptor;
-import org.apache.maven.shared.release.env.DefaultReleaseEnvironment;
-import org.apache.maven.shared.release.util.ReleaseUtil;
-
import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.shared.release.config.ReleaseDescriptor;
+import org.apache.maven.shared.release.env.DefaultReleaseEnvironment;
+import org.apache.maven.shared.release.util.ReleaseUtil;
+
/**
* Test the SCM modification check phase.
*
@@ -279,7 +279,7 @@
// skip subproject1 - we don't need to worry about its version mapping change, it has no deps of any kind
if ( !"groupId".equals( project.getGroupId() ) || !"subproject1".equals( project.getArtifactId() ) )
{
- comparePomFiles( project, "-different-version" );
+ comparePomFiles( project, "-different-version", true );
}
}
}
@@ -325,10 +325,10 @@
assertTrue( comparePomFiles( reactorProjects ) );
}
-
+
public void testRewritePomForFlatMultiModule()
throws Exception
- {
+ {
List reactorProjects = createReactorProjects( "rewrite-for-release/pom-with-parent-flat", "/root-project", true );
ReleaseDescriptor config = createConfigurationForPomWithParentAlternateNextVersion( reactorProjects );
@@ -337,6 +337,20 @@
assertTrue( comparePomFiles( reactorProjects ) );
}
+ // MRELEASE-383
+ public void testRewritePomWithCDATASection()
+ throws Exception
+ {
+ List reactorProjects = createReactorProjects( "cdata-section" );
+ ReleaseDescriptor config = createDescriptorFromProjects( reactorProjects );
+ mapNextVersion( config, "groupId:artifactId" );
+
+ phase.execute( config, new DefaultReleaseEnvironment(), reactorProjects );
+
+ // compare POMS without line ending normalization
+ assertTrue( comparePomFiles( reactorProjects, false ) );
+ }
+
protected ReleaseDescriptor createDescriptorFromProjects( List reactorProjects )
{
ReleaseDescriptor descriptor = super.createDescriptorFromProjects( reactorProjects );
Added: maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/cdata-section/expected-pom.xml
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/cdata-section/expected-pom.xml?rev=813343&view=auto
==============================================================================
--- maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/cdata-section/expected-pom.xml (added)
+++ maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/cdata-section/expected-pom.xml Thu Sep 10 10:06:11 2009
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ ~ 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.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>groupId</groupId>
+ <artifactId>artifactId</artifactId>
+ <version>1.0</version>
+
+ <prerequisites>
+ <maven>2.0.4</maven>
+ </prerequisites>
+
+ <scm>
+ <connection>scm:svn:file://localhost/tmp/scm-repo/tags/release-label</connection>
+ <developerConnection>scm:svn:file://localhost/tmp/scm-repo/tags/release-label</developerConnection>
+ <url>file://localhost/tmp/scm-repo/tags/release-label</url>
+ </scm>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-eclipse-plugin</artifactId>
+ <configuration>
+ <downloadSources>true</downloadSources>
+ <additionalBuildcommands>
+ <buildcommand>com.atlassw.tools.eclipse.checkstyle.CheckstyleBuilder</buildcommand>
+ </additionalBuildcommands>
+ <additionalProjectnatures>
+ <projectnature>com.atlassw.tools.eclipse.checkstyle.CheckstyleNature</projectnature>
+ </additionalProjectnatures>
+ <additionalConfig>
+ <file>
+ <name>.checkstyle</name>
+ <content>
+ <![CDATA[<?xml version="1.0" encoding="UTF-8"?>
+<fileset-config file-format-version="1.2.0" simple-config="true">
+ <fileset name="all" enabled="true" check-config-name="QifCon" local="false">
+ <file-match-pattern match-pattern="." include-pattern="true" />
+ </fileset>
+</fileset-config>
+]]>
+ </content>
+ </file>
+ </additionalConfig>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
\ No newline at end of file
Added: maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/cdata-section/pom.xml
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/cdata-section/pom.xml?rev=813343&view=auto
==============================================================================
--- maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/cdata-section/pom.xml (added)
+++ maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/cdata-section/pom.xml Thu Sep 10 10:06:11 2009
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ ~ 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.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>groupId</groupId>
+ <artifactId>artifactId</artifactId>
+ <version>1.0-SNAPSHOT</version>
+
+ <prerequisites>
+ <maven>2.0.4</maven>
+ </prerequisites>
+
+ <scm>
+ <connection>scm:svn:file://localhost/tmp/scm-repo/trunk</connection>
+ <developerConnection>scm:svn:file://localhost/tmp/scm-repo/trunk</developerConnection>
+ <url>file://localhost/tmp/scm-repo/trunk</url>
+ </scm>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-eclipse-plugin</artifactId>
+ <configuration>
+ <downloadSources>true</downloadSources>
+ <additionalBuildcommands>
+ <buildcommand>com.atlassw.tools.eclipse.checkstyle.CheckstyleBuilder</buildcommand>
+ </additionalBuildcommands>
+ <additionalProjectnatures>
+ <projectnature>com.atlassw.tools.eclipse.checkstyle.CheckstyleNature</projectnature>
+ </additionalProjectnatures>
+ <additionalConfig>
+ <file>
+ <name>.checkstyle</name>
+ <content>
+ <![CDATA[<?xml version="1.0" encoding="UTF-8"?>
+<fileset-config file-format-version="1.2.0" simple-config="true">
+ <fileset name="all" enabled="true" check-config-name="QifCon" local="false">
+ <file-match-pattern match-pattern="." include-pattern="true" />
+ </fileset>
+</fileset-config>
+]]>
+ </content>
+ </file>
+ </additionalConfig>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
\ No newline at end of file
Re: svn commit: r813343 - in /maven/release/trunk/maven-release-manager/src:
main/java/org/apache/maven/shared/release/phase/ test/java/org/apache/maven/shared/release/phase/
test/resources/projects/rewrite-for-release/cdata-section/
Posted by Benjamin Bentmann <be...@udo.edu>.
Hi Nicolas,
> Author: nicolas
> Date: Thu Sep 10 10:06:11 2009
> New Revision: 813343
>
> URL: http://svn.apache.org/viewvc?rev=813343&view=rev
> Log:
> [MRELEASE-383] svn inconsistent line ending style
>
> CDATA sections after transformation use "\n" as line ending style and break the xml file consistency
> fix : Filter CDATA sections from jdom tree (like allready done for comments) to apply platform line ending style
> testcase included
The build on the grid started to fail on Ubuntu [0] after your commit
which matches the comment by Mike Dillon on MRELEASE-383 [1]. Can you
have a look?
Thanks,
Benjamin
[0] https://grid.sonatype.org/ci/job/maven-release/jdk=1.5,label=ubuntu/86/
[1]
http://jira.codehaus.org/browse/MRELEASE-383?focusedCommentId=190546&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#action_190546
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org