You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jm...@apache.org on 2007/07/12 23:06:34 UTC

svn commit: r555766 - /maven/sandbox/trunk/plugins/maven-pom-plugin/src/main/java/org/apache/maven/plugins/pom/

Author: jmcconnell
Date: Thu Jul 12 14:06:32 2007
New Revision: 555766

URL: http://svn.apache.org/viewvc?view=rev&rev=555766
Log:
[MSANDBOX-28] added new goals and a bit of cleanup, submitted by eredmond

Added:
    maven/sandbox/trunk/plugins/maven-pom-plugin/src/main/java/org/apache/maven/plugins/pom/AlterMojo.java
    maven/sandbox/trunk/plugins/maven-pom-plugin/src/main/java/org/apache/maven/plugins/pom/AlterScmMojo.java
    maven/sandbox/trunk/plugins/maven-pom-plugin/src/main/java/org/apache/maven/plugins/pom/Coordinate.java
    maven/sandbox/trunk/plugins/maven-pom-plugin/src/main/java/org/apache/maven/plugins/pom/Parent.java
Modified:
    maven/sandbox/trunk/plugins/maven-pom-plugin/src/main/java/org/apache/maven/plugins/pom/AbstractMultipleAlterationMojo.java
    maven/sandbox/trunk/plugins/maven-pom-plugin/src/main/java/org/apache/maven/plugins/pom/AbstractSingleAlterationMojo.java
    maven/sandbox/trunk/plugins/maven-pom-plugin/src/main/java/org/apache/maven/plugins/pom/AlterParentMojo.java
    maven/sandbox/trunk/plugins/maven-pom-plugin/src/main/java/org/apache/maven/plugins/pom/Dependency.java

Modified: maven/sandbox/trunk/plugins/maven-pom-plugin/src/main/java/org/apache/maven/plugins/pom/AbstractMultipleAlterationMojo.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/plugins/maven-pom-plugin/src/main/java/org/apache/maven/plugins/pom/AbstractMultipleAlterationMojo.java?view=diff&rev=555766&r1=555765&r2=555766
==============================================================================
--- maven/sandbox/trunk/plugins/maven-pom-plugin/src/main/java/org/apache/maven/plugins/pom/AbstractMultipleAlterationMojo.java (original)
+++ maven/sandbox/trunk/plugins/maven-pom-plugin/src/main/java/org/apache/maven/plugins/pom/AbstractMultipleAlterationMojo.java Thu Jul 12 14:06:32 2007
@@ -46,7 +46,7 @@
     /**
      * @parameter default-value="**\/test\/**"
      */
-    private String projectExcludes;
+    protected String projectExcludes;
     /**
      * 
      */

Modified: maven/sandbox/trunk/plugins/maven-pom-plugin/src/main/java/org/apache/maven/plugins/pom/AbstractSingleAlterationMojo.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/plugins/maven-pom-plugin/src/main/java/org/apache/maven/plugins/pom/AbstractSingleAlterationMojo.java?view=diff&rev=555766&r1=555765&r2=555766
==============================================================================
--- maven/sandbox/trunk/plugins/maven-pom-plugin/src/main/java/org/apache/maven/plugins/pom/AbstractSingleAlterationMojo.java (original)
+++ maven/sandbox/trunk/plugins/maven-pom-plugin/src/main/java/org/apache/maven/plugins/pom/AbstractSingleAlterationMojo.java Thu Jul 12 14:06:32 2007
@@ -35,7 +35,7 @@
 {
 
     /**
-     * @parameter
+     * @parameter expression="${projectFile}"
      * @required
      */
     protected String projectFile;

Added: maven/sandbox/trunk/plugins/maven-pom-plugin/src/main/java/org/apache/maven/plugins/pom/AlterMojo.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/plugins/maven-pom-plugin/src/main/java/org/apache/maven/plugins/pom/AlterMojo.java?view=auto&rev=555766
==============================================================================
--- maven/sandbox/trunk/plugins/maven-pom-plugin/src/main/java/org/apache/maven/plugins/pom/AlterMojo.java (added)
+++ maven/sandbox/trunk/plugins/maven-pom-plugin/src/main/java/org/apache/maven/plugins/pom/AlterMojo.java Thu Jul 12 14:06:32 2007
@@ -0,0 +1,100 @@
+/*
+ * 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.
+ */
+package org.apache.maven.plugins.pom;
+
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.TreeMap;
+
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
+
+/**
+ * Alter a Mojo by the specified elements
+ * @author eredmond
+ * 
+ * @goal alter
+ * @phase process-resources
+ */
+public class AlterMojo extends AbstractMultipleAlterationMojo
+{
+    /**
+     * @parameter
+     */
+    Map alteredProperties;
+
+    /**
+     * @parameter
+     */
+    ArrayList dependencies;
+
+    /**
+     * @parameter
+     */
+    Parent parent;
+
+    /**
+     * @parameter
+     */
+    boolean applyToSubprojects;
+
+    /**
+     * @parameter
+     */
+    String projectFile;
+
+    public void execute() throws MojoExecutionException, MojoFailureException
+    {
+        if( parent != null )
+        {
+            AlterParentMojo alterParent = new AlterParentMojo();
+
+            alterParent.newParentGroupId = parent.getGroupId();
+            alterParent.newParentArtifactId = parent.getArtifactId();
+            alterParent.newParentVersion = parent.getVersion();
+            alterParent.relativePath = parent.getRelativePath();
+            alterParent.suppressRelativePath = parent.isRemoveRelativePath();
+            alterParent.projectFile = projectFile;
+
+            alterParent.execute();
+        }
+
+        if( alteredProperties != null && !alteredProperties.isEmpty() )
+        {
+            AlterPropertiesMojo alterProperties = new AlterPropertiesMojo();
+
+            alterProperties.alteredProperties = new TreeMap( alteredProperties );
+            alterProperties.projectFile = projectFile;
+
+            alterProperties.execute();
+        }
+
+        if ( dependencies != null && !dependencies.isEmpty() )
+        {
+            AlterDependenciesMojo alterDependencies = new AlterDependenciesMojo();
+    
+            alterDependencies.dependencies = new ArrayList( dependencies );
+            alterDependencies.target = target;
+            alterDependencies.projectExcludes = projectExcludes;
+    
+            alterDependencies.execute();
+        }
+
+    }
+}

Modified: maven/sandbox/trunk/plugins/maven-pom-plugin/src/main/java/org/apache/maven/plugins/pom/AlterParentMojo.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/plugins/maven-pom-plugin/src/main/java/org/apache/maven/plugins/pom/AlterParentMojo.java?view=diff&rev=555766&r1=555765&r2=555766
==============================================================================
--- maven/sandbox/trunk/plugins/maven-pom-plugin/src/main/java/org/apache/maven/plugins/pom/AlterParentMojo.java (original)
+++ maven/sandbox/trunk/plugins/maven-pom-plugin/src/main/java/org/apache/maven/plugins/pom/AlterParentMojo.java Thu Jul 12 14:06:32 2007
@@ -43,30 +43,30 @@
      * @parameter
      * @required
      */
-    private String newParentGroupId;
+    String newParentGroupId;
 
     /**
      * @parameter
      * @required
      */
-    private String newParentArtifactId;
+    String newParentArtifactId;
 
     /**
      * @parameter
      * @required
      */
-    private String newParentVersion;
+    String newParentVersion;
 
     /**
      * @parameter
      * @parameter
      */
-    private String relativePath;
+    String relativePath;
 
     /**
      * @parameter default-value="false"
      */
-    private boolean suppressRelativePath;
+    boolean suppressRelativePath;
 
     public void execute() throws MojoExecutionException, MojoFailureException
     {

Added: maven/sandbox/trunk/plugins/maven-pom-plugin/src/main/java/org/apache/maven/plugins/pom/AlterScmMojo.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/plugins/maven-pom-plugin/src/main/java/org/apache/maven/plugins/pom/AlterScmMojo.java?view=auto&rev=555766
==============================================================================
--- maven/sandbox/trunk/plugins/maven-pom-plugin/src/main/java/org/apache/maven/plugins/pom/AlterScmMojo.java (added)
+++ maven/sandbox/trunk/plugins/maven-pom-plugin/src/main/java/org/apache/maven/plugins/pom/AlterScmMojo.java Thu Jul 12 14:06:32 2007
@@ -0,0 +1,107 @@
+/*
+ * 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.
+ */
+package org.apache.maven.plugins.pom;
+
+import java.io.File;
+
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugins.pom.util.XMLException;
+import org.apache.maven.plugins.pom.util.XMLTool;
+import org.dom4j.Element;
+
+/**
+ * Alter a project's SCM elements
+ * 
+ * @author eredmond
+ *
+ * @phase process-resources
+ * @goal alter-scm
+ */
+public class AlterScmMojo extends AbstractSingleAlterationMojo
+{
+    /**
+     * @parameter expression="${connection}"
+     */
+    String connection;
+
+    /**
+     * @parameter expression="${developerConnection}"
+     */
+    String developerConnection;
+
+    /**
+     * @parameter expression="${url}"
+     */
+    String url;
+
+    public void execute() throws MojoExecutionException, MojoFailureException
+    {
+        try
+        {
+            XMLTool xmlTool = new XMLTool( "project", new File( projectFile ) );
+
+            xmlTool.removeNamespaces();
+
+            Element scm = null;
+
+            if ( xmlTool.hasElement( "//project/scm" ) )
+            {
+                scm = xmlTool.getElement( "//project/scm" );
+            }
+            else
+            {
+                Element project = xmlTool.getElement( "//project" );
+
+                scm = project.addElement( "scm" );
+            }
+
+            getScmElement( xmlTool, scm, "connection", connection );
+
+            getScmElement( xmlTool, scm, "developerConnection", developerConnection );
+
+            getScmElement( xmlTool, scm, "url", url );
+
+            xmlTool.writeDocument( projectFile );
+        }
+        catch ( XMLException e )
+        {
+            throw new MojoExecutionException( "error processing: " + projectFile, e );
+        }
+    }
+
+    private void getScmElement( XMLTool xmlTool, Element scm, String elementName, String value )
+        throws XMLException
+    {
+        if ( value == null || value.length() == 0 )
+        {
+            return;
+        }
+
+        if ( xmlTool.hasElement( "//project/scm/" + elementName ) )
+        {
+            xmlTool.updateElement( "//project/scm/" + elementName, connection );
+        }
+        else
+        {
+            Element scmElement = scm.addElement( elementName );
+            scmElement.setText( connection );
+        }
+    }
+}

Added: maven/sandbox/trunk/plugins/maven-pom-plugin/src/main/java/org/apache/maven/plugins/pom/Coordinate.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/plugins/maven-pom-plugin/src/main/java/org/apache/maven/plugins/pom/Coordinate.java?view=auto&rev=555766
==============================================================================
--- maven/sandbox/trunk/plugins/maven-pom-plugin/src/main/java/org/apache/maven/plugins/pom/Coordinate.java (added)
+++ maven/sandbox/trunk/plugins/maven-pom-plugin/src/main/java/org/apache/maven/plugins/pom/Coordinate.java Thu Jul 12 14:06:32 2007
@@ -0,0 +1,44 @@
+package org.apache.maven.plugins.pom;
+
+/**
+ * A base for groupId, artifactId, version
+ * @author eredmond
+ */
+public class Coordinate
+{
+    private String groupId;
+    
+    private String artifactId;
+    
+    private String version;
+
+    public String getArtifactId()
+    {
+        return artifactId;
+    }
+
+    public void setArtifactId( String artifactId )
+    {
+        this.artifactId = artifactId;
+    }
+
+    public String getGroupId()
+    {
+        return groupId;
+    }
+
+    public void setGroupId( String groupId )
+    {
+        this.groupId = groupId;
+    }
+
+    public String getVersion()
+    {
+        return version;
+    }
+
+    public void setVersion( String version )
+    {
+        this.version = version;
+    }
+}

Modified: maven/sandbox/trunk/plugins/maven-pom-plugin/src/main/java/org/apache/maven/plugins/pom/Dependency.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/plugins/maven-pom-plugin/src/main/java/org/apache/maven/plugins/pom/Dependency.java?view=diff&rev=555766&r1=555765&r2=555766
==============================================================================
--- maven/sandbox/trunk/plugins/maven-pom-plugin/src/main/java/org/apache/maven/plugins/pom/Dependency.java (original)
+++ maven/sandbox/trunk/plugins/maven-pom-plugin/src/main/java/org/apache/maven/plugins/pom/Dependency.java Thu Jul 12 14:06:32 2007
@@ -24,53 +24,17 @@
  * @author <a href="mailto:jmcconnell@apache.org">Jesse McConnell</a>
  * @version $Id:$
  */
-public class Dependency
+public class Dependency extends Coordinate
 {
-
-    private String groupId;
-    
-    private String artifactId;
-    
-    private String version;
-
     private String scope;
-    
-    public String getArtifactId()
-    {
-        return artifactId;
-    }
-
-    public void setArtifactId( String artifactId )
-    {
-        this.artifactId = artifactId;
-    }
-
-    public String getGroupId()
-    {
-        return groupId;
-    }
-
-    public void setGroupId( String groupId )
-    {
-        this.groupId = groupId;
-    }
-
-    public String getVersion()
-    {
-        return version;
-    }
-
-    public void setVersion( String version )
-    {
-        this.version = version;
-    }
 
-	public String getScope() {
+	public String getScope()
+	{
 		return scope;
 	}
 
-	public void setScope(String scope) {
+	public void setScope(String scope)
+	{
 		this.scope = scope;
 	}
-    
 }

Added: maven/sandbox/trunk/plugins/maven-pom-plugin/src/main/java/org/apache/maven/plugins/pom/Parent.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/plugins/maven-pom-plugin/src/main/java/org/apache/maven/plugins/pom/Parent.java?view=auto&rev=555766
==============================================================================
--- maven/sandbox/trunk/plugins/maven-pom-plugin/src/main/java/org/apache/maven/plugins/pom/Parent.java (added)
+++ maven/sandbox/trunk/plugins/maven-pom-plugin/src/main/java/org/apache/maven/plugins/pom/Parent.java Thu Jul 12 14:06:32 2007
@@ -0,0 +1,50 @@
+/*
+ * 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.
+ */
+package org.apache.maven.plugins.pom;
+
+/**
+ * A Parent element
+ * @author eredmond
+ */
+public class Parent extends Coordinate
+{
+    private String relativePath;
+
+    private boolean removeRelativePath;
+
+    public String getRelativePath()
+    {
+        return relativePath;
+    }
+
+    public void setRelativePath( String relativePath )
+    {
+        this.relativePath = relativePath;
+    }
+
+    public boolean isRemoveRelativePath()
+    {
+        return removeRelativePath;
+    }
+
+    public void setRemoveRelativePath( boolean removeRelativePath )
+    {
+        this.removeRelativePath = removeRelativePath;
+    }
+}