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();
+ }
+}