Author: rfscholte
Date: Sat May  7 13:24:55 2016
New Revision: 1742710

URL: http://svn.apache.org/viewvc?rev=1742710&view=rev
Log:
[MRELEASE-952] Replace JDom as XML transformer
Rewrite extensions based on Model

Added:
    
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/jdom/JDomBuild.java
    
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/jdom/JDomDependency.java
    
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/jdom/JDomExtension.java
    
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/jdom/JDomModelBase.java
    
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/jdom/JDomProfile.java
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/main/java/org/apache/maven/shared/release/transform/jdom/JDomModel.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=1742710&r1=1742709&r2=1742710&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 13:24:55 2016
@@ -37,6 +37,7 @@ import java.util.regex.Pattern;
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.ArtifactUtils;
 import org.apache.maven.model.Model;
+import org.apache.maven.model.ModelBase;
 import org.apache.maven.model.Scm;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.scm.ScmException;
@@ -318,19 +319,33 @@ public abstract class AbstractRewritePom
             releaseDescriptor.getResolvedSnapshotDependencies();
         Model model = project.getModel();
         
-        Properties properties = new JDomModel( rootElement ).getProperties();
+        JDomModel modelTarget = new JDomModel( rootElement );
+        
+        Properties properties = modelTarget.getProperties();
 
-        String parentVersion = rewriteParent( project, new JDomModel( 
rootElement ), mappedVersions,
+        String parentVersion = rewriteParent( project, modelTarget, 
mappedVersions,
                                               resolvedSnapshotDependencies, 
originalVersions );
 
         String projectId = ArtifactUtils.versionlessKey( project.getGroupId(), 
project.getArtifactId() );
 
-        rewriteVersion( new JDomModel( rootElement ), mappedVersions, 
projectId, project, parentVersion );
+        rewriteVersion( modelTarget, mappedVersions, projectId, project, 
parentVersion );
 
         List<Element> roots = new ArrayList<Element>();
         roots.add( rootElement );
         roots.addAll( getChildren( rootElement, "profiles", "profile" ) );
 
+        if ( modelTarget.getBuild() != null )
+        {
+            // profile.build.extensions doesn't exist, so only rewrite 
project.build.extensions  
+            rewriteArtifactVersions( toMavenCoordinates( 
modelTarget.getBuild().getExtensions() ), mappedVersions,
+                                     resolvedSnapshotDependencies, 
originalVersions, model, properties, result,
+                                     releaseDescriptor );
+        }
+        
+        List<ModelBase> modelBases = new ArrayList<ModelBase>();
+        modelBases.add( modelTarget );
+        modelBases.addAll( modelTarget.getProfiles() );
+
         for ( Element root : roots )
         {
             rewriteArtifactVersions( getMavenCoordinates( root, 
"dependencies", "dependency" ), mappedVersions,
@@ -341,10 +356,6 @@ public abstract class AbstractRewritePom
                                     mappedVersions, 
resolvedSnapshotDependencies, originalVersions, model, properties,
                                     result, releaseDescriptor );
 
-            rewriteArtifactVersions( getMavenCoordinates( root, "build", 
"extensions", "extension" ), mappedVersions,
-                                    resolvedSnapshotDependencies, 
originalVersions, model, properties, result,
-                                    releaseDescriptor );
-
             List<Element> pluginElements = new ArrayList<Element>();
             pluginElements.addAll( getChildren( root, "build", "plugins", 
"plugin" ) );
             pluginElements.addAll( getChildren( root, "build", 
"pluginManagement", "plugins", "plugin" ) );
@@ -369,7 +380,7 @@ public abstract class AbstractRewritePom
                                     resolvedSnapshotDependencies, 
originalVersions, model, properties, result,
                                     releaseDescriptor );
         }
-
+        
         String commonBasedir;
         try
         {
@@ -381,7 +392,7 @@ public abstract class AbstractRewritePom
                 + e.getMessage(), e );
         }
         
-        transformScm( project, new JDomModel( rootElement ), 
releaseDescriptor, projectId, scmRepository, result,
+        transformScm( project, modelTarget, releaseDescriptor, projectId, 
scmRepository, result,
                       commonBasedir );
     }
 
@@ -787,4 +798,23 @@ public abstract class AbstractRewritePom
             return StringUtils.replace( urlPath, trunkPath.substring( i ), 
tagPath.substring( i ) );
         }
     }
+    
+    private Collection<MavenCoordinate> toMavenCoordinates( List<?> objects )
+    {
+        Collection<MavenCoordinate> coordinates = new 
ArrayList<MavenCoordinate>( objects.size() );
+        for ( Object object : objects )
+        {
+            if ( object instanceof MavenCoordinate )
+            {
+                coordinates.add( (MavenCoordinate) object );
+            }
+            else
+            {
+                throw new UnsupportedOperationException();
+            }
+        }
+        return coordinates;
+    }
+
+
 }

Added: 
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/jdom/JDomBuild.java
URL: 
http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/jdom/JDomBuild.java?rev=1742710&view=auto
==============================================================================
--- 
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/jdom/JDomBuild.java
 (added)
+++ 
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/jdom/JDomBuild.java
 Sat May  7 13:24:55 2016
@@ -0,0 +1,303 @@
+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 java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.maven.model.Build;
+import org.apache.maven.model.Extension;
+import org.apache.maven.model.Plugin;
+import org.apache.maven.model.PluginManagement;
+import org.apache.maven.model.Resource;
+import org.jdom.Element;
+/**
+ * JDom implementation of poms BUILD element
+ * 
+ * @author Robert Scholte
+ * @since 3.0
+ */
+public class JDomBuild
+    extends Build
+{
+    private final Element build;
+
+    public JDomBuild( Element build )
+    {
+        this.build = build;
+    }
+
+    @Override
+    public void addExtension( Extension extension )
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public List<Extension> getExtensions()
+    {
+        Element extensionsElm = build.getChild( "extensions", 
build.getNamespace() );
+        if ( extensionsElm == null )
+        {
+            return Collections.emptyList();
+        }
+        else
+        {
+            List<Element> extensionElms = extensionsElm.getChildren( 
"extension", build.getNamespace() );
+            
+            List<Extension> extensions = new ArrayList<Extension>( 
extensionElms.size() );
+            for ( Element extensionElm : extensionElms )
+            {
+                extensions.add( new JDomExtension( extensionElm ) );
+            }
+            return extensions;
+        }
+    }
+
+    @Override
+    public String getOutputDirectory()
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public String getScriptSourceDirectory()
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public String getSourceDirectory()
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public String getTestOutputDirectory()
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public String getTestSourceDirectory()
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public void removeExtension( Extension extension )
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public void setExtensions( List<Extension> extensions )
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public void setOutputDirectory( String outputDirectory )
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public void setScriptSourceDirectory( String scriptSourceDirectory )
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public void setSourceDirectory( String sourceDirectory )
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public void setTestOutputDirectory( String testOutputDirectory )
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public void setTestSourceDirectory( String testSourceDirectory )
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public void addFilter( String string )
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public void addResource( Resource resource )
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public void addTestResource( Resource resource )
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public String getDefaultGoal()
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public String getDirectory()
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public List<String> getFilters()
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public String getFinalName()
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public List<Resource> getResources()
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public List<Resource> getTestResources()
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public void removeFilter( String string )
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public void removeResource( Resource resource )
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public void removeTestResource( Resource resource )
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public void setDefaultGoal( String defaultGoal )
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public void setDirectory( String directory )
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public void setFilters( List<String> filters )
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public void setFinalName( String finalName )
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public void setResources( List<Resource> resources )
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public void setTestResources( List<Resource> testResources )
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public PluginManagement getPluginManagement()
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public void setPluginManagement( PluginManagement pluginManagement )
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public void addPlugin( Plugin plugin )
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public List<Plugin> getPlugins()
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public void removePlugin( Plugin plugin )
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public void setPlugins( List<Plugin> plugins )
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public void flushPluginMap()
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public Map getPluginsAsMap()
+    {
+        throw new UnsupportedOperationException();
+    }
+}

Added: 
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/jdom/JDomDependency.java
URL: 
http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/jdom/JDomDependency.java?rev=1742710&view=auto
==============================================================================
--- 
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/jdom/JDomDependency.java
 (added)
+++ 
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/jdom/JDomDependency.java
 Sat May  7 13:24:55 2016
@@ -0,0 +1,169 @@
+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 java.util.List;
+
+import org.apache.maven.model.Dependency;
+import org.apache.maven.model.Exclusion;
+import org.apache.maven.shared.release.transform.MavenCoordinate;
+import org.jdom.Element;
+
+/**
+ * JDom implementation of poms DEPENDENCY element
+ * 
+ * @author Robert Scholte
+ * @since 3.0
+ */
+public class JDomDependency extends Dependency implements MavenCoordinate
+{
+    private final MavenCoordinate coordinate;
+    
+    public JDomDependency( Element dependency )
+    {
+        this.coordinate = new JDomMavenCoordinate( dependency );
+    }
+
+    @Override
+    public void addExclusion( Exclusion exclusion )
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public String getArtifactId()
+    {
+        return coordinate.getArtifactId();
+    }
+
+    @Override
+    public String getClassifier()
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public List<Exclusion> getExclusions()
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public String getGroupId()
+    {
+        return coordinate.getGroupId();
+    }
+
+    @Override
+    public String getScope()
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public String getSystemPath()
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public String getType()
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public String getVersion()
+    {
+        return coordinate.getVersion();
+    }
+
+    @Override
+    public boolean isOptional()
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public void removeExclusion( Exclusion exclusion )
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public void setArtifactId( String artifactId )
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public void setClassifier( String classifier )
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public void setExclusions( List<Exclusion> exclusions )
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public void setGroupId( String groupId )
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public void setOptional( boolean optional )
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public void setScope( String scope )
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public void setSystemPath( String systemPath )
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public void setType( String type )
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public void setVersion( String version )
+    {
+        coordinate.setVersion( version );
+    }
+    
+    @Override
+    public String getName()
+    {
+        return "dependency";
+    }
+}

Added: 
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/jdom/JDomExtension.java
URL: 
http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/jdom/JDomExtension.java?rev=1742710&view=auto
==============================================================================
--- 
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/jdom/JDomExtension.java
 (added)
+++ 
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/jdom/JDomExtension.java
 Sat May  7 13:24:55 2016
@@ -0,0 +1,82 @@
+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.model.Extension;
+import org.apache.maven.shared.release.transform.MavenCoordinate;
+import org.jdom.Element;
+
+/**
+ * JDom implementation of poms EXTENSION element
+ * 
+ * @author Robert Scholte
+ * @since 3.0
+ */
+public class JDomExtension extends Extension implements MavenCoordinate
+{
+    private final MavenCoordinate coordinate;
+
+    public JDomExtension( Element extension )
+    {
+        this.coordinate = new JDomMavenCoordinate( extension );
+    }
+
+    @Override
+    public String getArtifactId()
+    {
+        return coordinate.getArtifactId();
+    }
+
+    @Override
+    public String getGroupId()
+    {
+        return coordinate.getGroupId();
+    }
+
+    @Override
+    public String getVersion()
+    {
+        return coordinate.getVersion();
+    }
+
+    @Override
+    public void setArtifactId( String artifactId )
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public void setGroupId( String groupId )
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public void setVersion( String version )
+    {
+        coordinate.setVersion( version );
+    }
+
+    @Override
+    public String getName()
+    {
+        return "extension";
+    }
+}

Modified: 
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/jdom/JDomModel.java
URL: 
http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/jdom/JDomModel.java?rev=1742710&r1=1742709&r2=1742710&view=diff
==============================================================================
--- 
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/jdom/JDomModel.java
 (original)
+++ 
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/jdom/JDomModel.java
 Sat May  7 13:24:55 2016
@@ -19,10 +19,15 @@ package org.apache.maven.shared.release.
  * under the License.
  */
 
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
 import java.util.Properties;
 
+import org.apache.maven.model.Build;
 import org.apache.maven.model.Model;
 import org.apache.maven.model.Parent;
+import org.apache.maven.model.Profile;
 import org.apache.maven.model.Scm;
 import org.jdom.Document;
 import org.jdom.Element;
@@ -38,17 +43,26 @@ public class JDomModel extends Model
 {
     private final Element project;
     
+    private final JDomModelBase modelBase;
+    
     public JDomModel( Document document )
     {
-        this.project = document.getRootElement();
+        this( document.getRootElement() );
     }
     
     public JDomModel( Element project )
     {
         this.project = project;
+        this.modelBase = new JDomModelBase( project );
     }
 
     @Override
+    public Build getBuild()
+    {
+        return modelBase.getBuild();
+    }
+    
+    @Override
     public Parent getParent()
     {
         Element elm = getParentElement();
@@ -68,6 +82,31 @@ public class JDomModel extends Model
         return project.getChild( "parent", project.getNamespace() );
     }
     
+    
+    @Override
+    public List<Profile> getProfiles()
+    {
+        Element profilesElm = project.getChild( "profiles", 
project.getNamespace() );
+        if ( profilesElm == null )
+        {
+            return Collections.emptyList();
+        }
+        else
+        {
+            List<Element> profileElms = profilesElm.getChildren( "profile", 
project.getNamespace() );
+
+            List<Profile> profiles = new ArrayList<Profile>( 
profileElms.size() );
+
+            for ( Element profileElm : profileElms )
+            {
+                profiles.add( new JDomProfile( profileElm ) );
+            }
+
+            return profiles;
+        }
+    }
+    
+    
     @Override
     public Properties getProperties()
     {
@@ -108,7 +147,8 @@ public class JDomModel extends Model
     
     @Override
     public Scm getScm()
-    {   Element elm = project.getChild( "scm", project.getNamespace() );
+    {
+        Element elm = project.getChild( "scm", project.getNamespace() );
         if ( elm == null )
         {
             return null;
@@ -154,6 +194,5 @@ public class JDomModel extends Model
         {
             JDomUtils.rewriteValue( versionElement, version );
         }
-
     }
 }

Added: 
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/jdom/JDomModelBase.java
URL: 
http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/jdom/JDomModelBase.java?rev=1742710&view=auto
==============================================================================
--- 
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/jdom/JDomModelBase.java
 (added)
+++ 
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/jdom/JDomModelBase.java
 Sat May  7 13:24:55 2016
@@ -0,0 +1,52 @@
+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.model.Build;
+import org.jdom.Element;
+
+/**
+ * 
+ * @author Robert Scholte
+ * @since 3.0
+ */
+public class JDomModelBase
+{
+    private final Element modelBase;
+    
+    public JDomModelBase( Element modelBase )
+    {
+        this.modelBase = modelBase;
+    }
+    
+    public Build getBuild()
+    {
+        Element elm = modelBase.getChild( "build", modelBase.getNamespace() );
+        if ( elm == null )
+        {
+            return null;
+        }
+        else
+        {
+            // this way build setters change DOM tree immediately
+            return new JDomBuild( elm );
+        }
+    }
+}

Added: 
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/jdom/JDomProfile.java
URL: 
http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/jdom/JDomProfile.java?rev=1742710&view=auto
==============================================================================
--- 
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/jdom/JDomProfile.java
 (added)
+++ 
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/jdom/JDomProfile.java
 Sat May  7 13:24:55 2016
@@ -0,0 +1,47 @@
+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.model.BuildBase;
+import org.apache.maven.model.Profile;
+import org.jdom.Element;
+
+/**
+ * JDom implementation of poms PROFILE element
+ * 
+ * @author Robert Scholte
+ * @since 3.0
+ */
+public class JDomProfile
+    extends Profile
+{
+    private final JDomModelBase modelBase; 
+
+    public JDomProfile( Element profile )
+    {
+        this.modelBase = new JDomModelBase( profile ) ;
+    }
+
+    @Override
+    public BuildBase getBuild()
+    {
+        return modelBase.getBuild();
+    }
+}


Reply via email to