You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2016/05/07 11:11:22 UTC

svn commit: r1742701 - in /maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release: phase/AbstractRewritePomsPhase.java transform/MavenCoordinate.java transform/jdom/JDomMavenCoordinate.java

Author: rfscholte
Date: Sat May  7 11:11:22 2016
New Revision: 1742701

URL: http://svn.apache.org/viewvc?rev=1742701&view=rev
Log:
[MRELEASE-952] Replace JDom as XML transformer
Introduce JDomMavenCoordinate

Added:
    maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/MavenCoordinate.java
    maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/jdom/JDomMavenCoordinate.java
Modified:
    maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRewritePomsPhase.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=1742701&r1=1742700&r2=1742701&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 Sat May  7 11:11:22 2016
@@ -56,8 +56,9 @@ import org.apache.maven.shared.release.s
 import org.apache.maven.shared.release.scm.ReleaseScmRepositoryException;
 import org.apache.maven.shared.release.scm.ScmRepositoryConfigurator;
 import org.apache.maven.shared.release.scm.ScmTranslator;
+import org.apache.maven.shared.release.transform.MavenCoordinate;
+import org.apache.maven.shared.release.transform.jdom.JDomMavenCoordinate;
 import org.apache.maven.shared.release.transform.jdom.JDomModel;
-import org.apache.maven.shared.release.transform.jdom.JDomUtils;
 import org.apache.maven.shared.release.util.ReleaseUtil;
 import org.codehaus.plexus.util.IOUtil;
 import org.codehaus.plexus.util.StringUtils;
@@ -453,21 +454,21 @@ public abstract class AbstractRewritePom
         String projectId = ArtifactUtils.versionlessKey( projectModel.getGroupId(), projectModel.getArtifactId() );
         for ( Element element : elements )
         {
-            Element versionElement = element.getChild( "version", element.getNamespace() );
-            if ( versionElement == null )
+            MavenCoordinate coordinate = new JDomMavenCoordinate( element );
+            
+            String rawVersion = coordinate.getVersion();
+            if ( rawVersion == null )
             {
                 // managed dependency or unversioned plugin
                 continue;
             }
-            String rawVersion = versionElement.getTextTrim();
 
-            Element groupIdElement = element.getChild( "groupId", element.getNamespace() );
-            if ( groupIdElement == null )
+            String rawGroupId = coordinate.getGroupId();
+            if ( rawGroupId == null )
             {
                 if ( "plugin".equals( element.getName() ) )
                 {
-                    groupIdElement = new Element( "groupId", element.getNamespace() );
-                    groupIdElement.setText( "org.apache.maven.plugins" );
+                    rawGroupId = "org.apache.maven.plugins";
                 }
                 else
                 {
@@ -475,15 +476,15 @@ public abstract class AbstractRewritePom
                     continue;
                 }
             }
-            String groupId = ReleaseUtil.interpolate( groupIdElement.getTextTrim(), projectModel );
+            String groupId = ReleaseUtil.interpolate( rawGroupId, projectModel );
 
-            Element artifactIdElement = element.getChild( "artifactId", element.getNamespace() );
-            if ( artifactIdElement == null )
+            String rawArtifactId = coordinate.getArtifactId();
+            if ( rawArtifactId == null )
             {
                 // incomplete element
                 continue;
             }
-            String artifactId = ReleaseUtil.interpolate( artifactIdElement.getTextTrim(), projectModel );
+            String artifactId = ReleaseUtil.interpolate( rawArtifactId, projectModel );
 
             String key = ArtifactUtils.versionlessKey( groupId, artifactId );
             String resolvedSnapshotVersion = getResolvedSnapshotVersion( key, resolvedSnapshotDependencies );
@@ -506,7 +507,7 @@ public abstract class AbstractRewritePom
                 if ( rawVersion.equals( originalVersion ) )
                 {
                     logInfo( result, "  Updating " + artifactId + " to " + mappedVersion );
-                    JDomUtils.rewriteValue( versionElement, mappedVersion );
+                    coordinate.setVersion( mappedVersion );
                 }
                 else if ( rawVersion.matches( "\\$\\{.+\\}" ) )
                 {
@@ -518,7 +519,7 @@ public abstract class AbstractRewritePom
                         if ( !mappedVersion.equals( mappedVersions.get( projectId ) ) )
                         {
                             logInfo( result, "  Updating " + artifactId + " to " + mappedVersion );
-                            JDomUtils.rewriteValue( versionElement, mappedVersion );
+                            coordinate.setVersion( mappedVersion );
                         }
                         else
                         {
@@ -582,7 +583,7 @@ public abstract class AbstractRewritePom
             {
                 logInfo( result, "  Updating " + artifactId + " to " + resolvedSnapshotVersion );
 
-                JDomUtils.rewriteValue( versionElement, resolvedSnapshotVersion );
+                coordinate.setVersion( resolvedSnapshotVersion );
             }
             else
             {

Added: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/MavenCoordinate.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/MavenCoordinate.java?rev=1742701&view=auto
==============================================================================
--- maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/MavenCoordinate.java (added)
+++ maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/MavenCoordinate.java Sat May  7 11:11:22 2016
@@ -0,0 +1,36 @@
+package org.apache.maven.shared.release.transform;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+
+/**
+ * 
+ * @author Robert Scholte
+ * @since 3.0
+ */
+public interface MavenCoordinate
+{
+    String getGroupId();
+    
+    String getArtifactId();
+    
+    String getVersion();
+    
+    void setVersion( String version );
+}

Added: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/jdom/JDomMavenCoordinate.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/jdom/JDomMavenCoordinate.java?rev=1742701&view=auto
==============================================================================
--- maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/jdom/JDomMavenCoordinate.java (added)
+++ maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/jdom/JDomMavenCoordinate.java Sat May  7 11:11:22 2016
@@ -0,0 +1,76 @@
+package org.apache.maven.shared.release.transform.jdom;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.shared.release.transform.MavenCoordinate;
+import org.jdom.Element;
+
+/**
+ * 
+ * @author Robert Scholte
+ * @since 3.0
+ */
+public class JDomMavenCoordinate implements MavenCoordinate
+{
+    private final Element element;
+    
+    public JDomMavenCoordinate( Element elm )
+    {
+        this.element = elm;
+    }
+
+    @Override
+    public String getGroupId()
+    {
+        return element.getChildTextTrim( "groupId", element.getNamespace() );
+    }
+
+    @Override
+    public String getArtifactId()
+    {
+        return element.getChildTextTrim( "artifactId", element.getNamespace() );
+    }
+
+    @Override
+    public String getVersion()
+    {
+        Element version = getVersionElement();
+        if ( version == null )
+        {
+            return null;
+        }
+        else
+        {
+            return version.getTextTrim();
+        }
+        
+    }
+    
+    private Element getVersionElement()
+    {
+        return element.getChild( "version", element.getNamespace() );
+    }
+    
+    @Override
+    public void setVersion( String version )
+    {
+        JDomUtils.rewriteValue( getVersionElement(), version );
+    }
+}