You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ca...@apache.org on 2006/05/25 01:13:15 UTC

svn commit: r409264 [1/4] - in /maven/sandbox/plugins/maven-maven1-plugin: ./ src/ src/main/ src/main/java/ src/main/java/org/ src/main/java/org/apache/ src/main/java/org/apache/maven/ src/main/java/org/apache/maven/maven1converter/ src/main/java/org/a...

Author: carlos
Date: Wed May 24 16:13:13 2006
New Revision: 409264

URL: http://svn.apache.org/viewvc?rev=409264&view=rev
Log:
[MNG-1530] Added plugin for converting maven 1 projects

Added:
    maven/sandbox/plugins/maven-maven1-plugin/
    maven/sandbox/plugins/maven-maven1-plugin/pom.xml   (with props)
    maven/sandbox/plugins/maven-maven1-plugin/src/
    maven/sandbox/plugins/maven-maven1-plugin/src/main/
    maven/sandbox/plugins/maven-maven1-plugin/src/main/java/
    maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/
    maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/
    maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/
    maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/
    maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/PomV3ConvertMojo.java   (with props)
    maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/PomV3ToV4Converter.java   (with props)
    maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/plugins/
    maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/plugins/AbstractPluginConfigurationConverter.java   (with props)
    maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/plugins/PCCCompiler.java   (with props)
    maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/plugins/PCCMultiproject.java   (with props)
    maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/plugins/PCCSurefire.java   (with props)
    maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/plugins/PCCWar.java   (with props)
    maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/plugins/PluginConfigurationConverter.java   (with props)
    maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/
    maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/
    maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/Branch.java   (with props)
    maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/Build.java   (with props)
    maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/BuildBase.java   (with props)
    maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/Contributor.java   (with props)
    maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/Dependency.java   (with props)
    maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/Developer.java   (with props)
    maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/FileSet.java   (with props)
    maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/License.java   (with props)
    maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/MailingList.java   (with props)
    maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/Model.java   (with props)
    maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/ModelBase.java   (with props)
    maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/Organization.java   (with props)
    maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/PackageGroup.java   (with props)
    maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/PatternSet.java   (with props)
    maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/PluginConfiguration.java   (with props)
    maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/PluginContainer.java   (with props)
    maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/Repository.java   (with props)
    maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/Resource.java   (with props)
    maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/SourceModification.java   (with props)
    maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/UnitTest.java   (with props)
    maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/Version.java   (with props)
    maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/io/
    maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/io/xpp3/
    maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/io/xpp3/MavenXpp3Reader.java   (with props)
    maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/io/xpp3/MavenXpp3Writer.java   (with props)

Added: maven/sandbox/plugins/maven-maven1-plugin/pom.xml
URL: http://svn.apache.org/viewvc/maven/sandbox/plugins/maven-maven1-plugin/pom.xml?rev=409264&view=auto
==============================================================================
--- maven/sandbox/plugins/maven-maven1-plugin/pom.xml (added)
+++ maven/sandbox/plugins/maven-maven1-plugin/pom.xml Wed May 24 16:13:13 2006
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+ * Copyright 2001-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>
+  <parent>
+    <artifactId>maven-plugin-parent</artifactId>
+    <groupId>org.apache.maven.plugins</groupId>
+    <version>2.0</version>
+  </parent>
+  <artifactId>maven-maven1-plugin</artifactId>
+  <packaging>maven-plugin</packaging>
+  <name>Maven Maven1 Plugin</name>
+  <version>2.0-SNAPSHOT</version>
+  <inceptionYear>2006</inceptionYear>
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-model</artifactId>
+      <version>2.0</version>
+    </dependency>
+    <dependency>
+      <groupId>dom4j</groupId>
+      <artifactId>dom4j</artifactId>
+      <version>1.4</version>
+    </dependency>
+    <dependency>
+      <groupId>org.codehaus.plexus</groupId>
+      <artifactId>plexus-utils</artifactId>
+      <version>1.0.4</version>
+    </dependency>
+  </dependencies>
+</project>
\ No newline at end of file

Propchange: maven/sandbox/plugins/maven-maven1-plugin/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/sandbox/plugins/maven-maven1-plugin/pom.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/PomV3ConvertMojo.java
URL: http://svn.apache.org/viewvc/maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/PomV3ConvertMojo.java?rev=409264&view=auto
==============================================================================
--- maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/PomV3ConvertMojo.java (added)
+++ maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/PomV3ConvertMojo.java Wed May 24 16:13:13 2006
@@ -0,0 +1,173 @@
+package org.apache.maven.maven1converter;
+
+/*
+ * Copyright 2001-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.
+ */
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.Writer;
+import java.util.Properties;
+
+import org.apache.maven.maven1converter.plugins.PCCCompiler;
+import org.apache.maven.maven1converter.plugins.PCCMultiproject;
+import org.apache.maven.maven1converter.plugins.PCCSurefire;
+import org.apache.maven.maven1converter.plugins.PCCWar;
+import org.apache.maven.maven1converter.plugins.PluginConfigurationConverter;
+import org.apache.maven.model.Model;
+import org.apache.maven.model.io.xpp3.MavenXpp3Writer;
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
+import org.codehaus.plexus.util.IOUtil;
+
+/**
+ * Converts a Maven 1 project.xml (v3 pom) to a Maven 2 pom.xml (v4 pom).
+ * @goal convert
+ * @requiresProject false
+ * @author Fabrizio Giustina
+ * @version $Id$
+ */
+public class PomV3ConvertMojo
+    extends AbstractMojo
+{
+
+    /**
+     * Project basedir
+     * @parameter expression="${basedir}"
+     * @required
+     * @readonly
+     */
+    private File basedir;
+
+    /**
+     * Available converters for specific plugin configurations
+     */
+    private PluginConfigurationConverter[] converters = new PluginConfigurationConverter[] {
+        new PCCCompiler(),
+        new PCCSurefire(),
+        new PCCMultiproject(),
+        new PCCWar() };
+
+    /**
+     * @see org.apache.maven.plugin.Mojo#execute()
+     */
+    public void execute()
+        throws MojoExecutionException, MojoFailureException
+    {
+        File projectxml = new File( basedir, "project.xml" );
+
+        if ( !projectxml.exists() )
+        {
+            throw new MojoFailureException( "Missing project.xml in " + basedir.getAbsolutePath() );
+        }
+
+        PomV3ToV4Converter converter = new PomV3ToV4Converter();
+
+        org.apache.maven.model.v3_0_0.Model v3Model;
+        try
+        {
+            v3Model = converter.loadV3Pom( projectxml );
+        }
+        catch ( Exception e )
+        {
+            throw new MojoExecutionException( "Exception caught while loading project.xml. " + e.getMessage(), e );
+        }
+
+        Model v4Model;
+        try
+        {
+            v4Model = converter.convertModel( projectxml, v3Model );
+        }
+        catch ( Exception e )
+        {
+            throw new MojoExecutionException( "Exception caught while converting project.xml. " + e.getMessage(), e );
+        }
+
+        Properties properties = new Properties();
+
+        if ( v3Model.getExtend() != null )
+        {
+            loadProperties( properties, new File( new File( basedir, v3Model.getExtend() ).getParentFile(),
+                                                  "project.properties" ) );
+        }
+
+        loadProperties( properties, new File( basedir, "project.properties" ) );
+
+        for ( int j = 0; j < converters.length; j++ )
+        {
+            converters[j].convertConfiguration( v4Model, v3Model, properties );
+        }
+
+        writeV4Pom( v4Model );
+    }
+
+    private void loadProperties( Properties properties, File propertiesFile )
+    {
+        if ( propertiesFile.exists() )
+        {
+            InputStream is = null;
+            try
+            {
+                is = new FileInputStream( propertiesFile );
+                properties.load( is );
+            }
+            catch ( IOException e )
+            {
+                getLog().warn( "Unable to read " + propertiesFile.getAbsolutePath() + ", ignoring." );
+            }
+            finally
+            {
+                IOUtil.close( is );
+            }
+        }
+    }
+
+    private void writeV4Pom( Model v4Model )
+        throws MojoExecutionException
+    {
+        File pomxml = new File( basedir, "pom.xml" );
+
+        if ( pomxml.exists() )
+        {
+            getLog().warn( "pom.xml in " + basedir.getAbsolutePath() + " already exists, overwriting" );
+        }
+
+        MavenXpp3Writer v4Writer = new MavenXpp3Writer();
+
+        // write the new pom.xml
+        getLog().info( "Writing new pom to: " + pomxml.getAbsolutePath() );
+
+        Writer output = null;
+        try
+        {
+            output = new FileWriter( pomxml );
+            v4Writer.write( output, v4Model );
+            output.close();
+        }
+        catch ( IOException e )
+        {
+            throw new MojoExecutionException( "Unable to write pom.xml. " + e.getMessage(), e );
+        }
+        finally
+        {
+            IOUtil.close( output );
+        }
+    }
+
+}

Propchange: maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/PomV3ConvertMojo.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/PomV3ConvertMojo.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/PomV3ToV4Converter.java
URL: http://svn.apache.org/viewvc/maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/PomV3ToV4Converter.java?rev=409264&view=auto
==============================================================================
--- maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/PomV3ToV4Converter.java (added)
+++ maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/PomV3ToV4Converter.java Wed May 24 16:13:13 2006
@@ -0,0 +1,796 @@
+package org.apache.maven.maven1converter;
+
+/*
+ * Copyright 2001-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.
+ */
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Properties;
+
+import org.apache.maven.model.Build;
+import org.apache.maven.model.CiManagement;
+import org.apache.maven.model.Contributor;
+import org.apache.maven.model.Dependency;
+import org.apache.maven.model.DeploymentRepository;
+import org.apache.maven.model.Developer;
+import org.apache.maven.model.DistributionManagement;
+import org.apache.maven.model.IssueManagement;
+import org.apache.maven.model.License;
+import org.apache.maven.model.MailingList;
+import org.apache.maven.model.Model;
+import org.apache.maven.model.Notifier;
+import org.apache.maven.model.Organization;
+import org.apache.maven.model.Parent;
+import org.apache.maven.model.Resource;
+import org.apache.maven.model.Scm;
+import org.apache.maven.model.Site;
+import org.apache.maven.model.v3_0_0.SourceModification;
+import org.apache.maven.model.v3_0_0.io.xpp3.MavenXpp3Reader;
+import org.dom4j.Document;
+import org.dom4j.Element;
+import org.dom4j.io.SAXReader;
+
+/**
+ * PomV3ToV4Converter originally developed in maven-repository-tools
+ * @author <a href="mailto:trygvis@inamo.no">Trygve Laugst&oslash;l</a>
+ * @author Fabrizio Giustina
+ * @version $Id$
+ */
+public class PomV3ToV4Converter
+{
+    private org.apache.maven.model.v3_0_0.Model v3ParentModel;
+
+    public Model convertFile( File input )
+        throws Exception
+    {
+        org.apache.maven.model.v3_0_0.Model v3Model = loadV3Pom( input );
+        return convertModel( input, v3Model );
+    }
+
+    public Model convertModel( File file, org.apache.maven.model.v3_0_0.Model v3Model )
+        throws Exception
+    {
+        Model v4Model = populateModel( file, v3Model );
+        return v4Model;
+    }
+
+    private Model populateModel( File file, org.apache.maven.model.v3_0_0.Model v3Model )
+        throws Exception
+    {
+        Model v4Model = new Model();
+
+        v4Model.setModelVersion( "4.0.0" );
+        v4Model.setParent( getParent( file, v3Model ) );
+
+        // Group id
+        String groupId = v3Model.getGroupId();
+        String parentGroupId = null;
+
+        if ( v3ParentModel != null )
+        {
+            parentGroupId = v3ParentModel.getGroupId();
+        }
+
+        if ( isEmpty( groupId ) && isEmpty( parentGroupId ) )
+        {
+            throw new Exception( "Missing 'groupId' from both pom and the extended pom." );
+        }
+
+        v4Model.setGroupId( groupId );
+
+        // Artifact id
+        String artifactId = v3Model.getArtifactId();
+
+        if ( isEmpty( artifactId ) )
+        {
+            v4Model.setArtifactId( groupId );
+        }
+        else
+        {
+            v4Model.setArtifactId( artifactId );
+        }
+
+        // Version
+        String version = v3Model.getCurrentVersion();
+
+        if ( isEmpty( version ) && ( v3ParentModel == null || isEmpty( v3ParentModel.getCurrentVersion() ) ) )
+        {
+            throw new Exception( "Missing 'currentVersion' from both pom and the extended pom." );
+        }
+
+        v4Model.setVersion( version );
+        v4Model.setName( v3Model.getName() );
+        v4Model.setDescription( v3Model.getDescription() );
+        v4Model.setUrl( v3Model.getUrl() );
+        v4Model.setOrganization( getOrganization( v3Model ) );
+
+        // @todo write in site.xml
+        // v4Model.setLogo( v3Model.getLogo() );
+
+        v4Model.setIssueManagement( getIssueManagement( v3Model ) );
+        v4Model.setCiManagement( getCiManagement( v3Model ) );
+        v4Model.setInceptionYear( v3Model.getInceptionYear() );
+
+        if ( !isEmpty( v3Model.getGumpRepositoryId() ) )
+        {
+            warn( "The 'gumpRepositoryId' is removed from the version 4 pom." );
+        }
+
+        v4Model.setRepositories( getRepositories( v3Model ) );
+        v4Model.setDevelopers( getDevelopers( v3Model ) );
+        v4Model.setContributors( getContributors( v3Model ) );
+        v4Model.setDependencies( getDependencies( v3Model ) );
+        v4Model.setLicenses( getLicenses( v3Model ) );
+
+        List versions = v3Model.getVersions();
+        if ( versions != null )
+        {
+            warn( "The <versions> list is removed in the version 4 of the pom." );
+        }
+
+        List branches = v3Model.getBranches();
+        if ( branches != null )
+        {
+            warn( "The <branches> list is removed in the version 4 of the pom." );
+        }
+
+        // @todo reports in v4 are an Xpp3Dom
+        // v4Model.setReports( returnList( v3Model.getReports() ) );
+
+        v4Model.setScm( getScm( v3Model ) );
+        v4Model.setBuild( getBuild( v3Model ) );
+        v4Model.setDistributionManagement( getDistributionManagement( v3Model ) );
+
+        return v4Model;
+    }
+
+    private Parent getParent( File file, org.apache.maven.model.v3_0_0.Model v3Model )
+        throws Exception
+    {
+        Parent parent = new Parent();
+        String extend = v3Model.getExtend();
+
+        if ( isEmpty( extend ) )
+        {
+            return null;
+        }
+
+        final String basedir = "${basedir}";
+
+        int i = extend.indexOf( basedir );
+
+        if ( i >= 0 )
+        {
+            extend = extend.substring( 0, i ) + file.getParentFile() + File.separator
+                + extend.substring( i + basedir.length() + 1 );
+        }
+
+        File extendFile = new File( extend );
+
+        if ( !extendFile.isAbsolute() )
+        {
+            extendFile = new File( file.getParentFile(), extend );
+        }
+
+        if ( !extendFile.isFile() )
+        {
+            throw new FileNotFoundException( "Could not find the file the pom extends: '"
+                + extendFile.getAbsolutePath() + "' is not a file." );
+        }
+
+        // try to find the parent pom.
+        v3ParentModel = loadV3Pom( extendFile );
+
+        String groupId = v3ParentModel.getGroupId();
+
+        if ( isEmpty( groupId ) )
+        {
+            throw new Exception( "Missing groupId from the extended pom." );
+        }
+
+        parent.setGroupId( groupId );
+
+        String artifactId = v3ParentModel.getArtifactId();
+
+        if ( isEmpty( artifactId ) )
+        {
+            throw new Exception( "Missing 'artifactId' from the extended pom." );
+        }
+
+        parent.setArtifactId( artifactId );
+
+        String version = v3ParentModel.getCurrentVersion();
+
+        if ( isEmpty( version ) )
+        {
+            throw new Exception( "Missing 'currentVersion' from the extended pom." );
+        }
+
+        parent.setVersion( version );
+
+        return parent;
+    }
+
+    private Organization getOrganization( org.apache.maven.model.v3_0_0.Model v3Model )
+    {
+        Organization organization = new Organization();
+
+        if ( v3Model.getOrganization() == null )
+        {
+            return null;
+        }
+
+        organization.setName( v3Model.getOrganization().getName() );
+
+        organization.setUrl( v3Model.getOrganization().getUrl() );
+
+        // @todo write in site.xml
+        // organization.setLogo( v3Model.getOrganization().getLogo() );
+
+        return organization;
+    }
+
+    private IssueManagement getIssueManagement( org.apache.maven.model.v3_0_0.Model v3Model )
+    {
+        String issueTrackingUrl = v3Model.getIssueTrackingUrl();
+
+        if ( isEmpty( issueTrackingUrl ) )
+        {
+            return null;
+        }
+
+        IssueManagement issueManagement = new IssueManagement();
+        issueManagement.setUrl( issueTrackingUrl );
+
+        return issueManagement;
+    }
+
+    private CiManagement getCiManagement( org.apache.maven.model.v3_0_0.Model v3Model )
+    {
+        if ( v3Model.getBuild() == null )
+        {
+            return null;
+        }
+
+        String nagEmailAddress = v3Model.getBuild().getNagEmailAddress();
+
+        if ( isEmpty( nagEmailAddress ) )
+        {
+            return null;
+        }
+
+        CiManagement ciManagement = new CiManagement();
+
+        Notifier notifier = new Notifier();
+        notifier.setAddress( nagEmailAddress );
+        notifier.setType( "mail" );
+
+        ciManagement.addNotifier( notifier );
+
+        return ciManagement;
+    }
+
+    // @TODO:
+    // note: these are not SCM repositories but rather artifact repositories
+    private List getRepositories( org.apache.maven.model.v3_0_0.Model v3Model )
+    {
+        List repositories = new ArrayList( 1 );
+
+        //        warn( "" );
+
+        return returnList( repositories );
+    }
+
+    private List getMailingLists( org.apache.maven.model.v3_0_0.Model v3Model )
+    {
+        List mailingLists = new ArrayList();
+
+        List v3MailingLists = v3Model.getMailingLists();
+
+        if ( isEmpty( v3MailingLists ) )
+        {
+            return null;
+        }
+
+        for ( Iterator it = v3MailingLists.iterator(); it.hasNext(); )
+        {
+            org.apache.maven.model.v3_0_0.MailingList v3MailingList = (org.apache.maven.model.v3_0_0.MailingList) it
+                .next();
+
+            MailingList mailingList = new MailingList();
+            mailingList.setName( v3MailingList.getName() );
+            mailingList.setSubscribe( v3MailingList.getSubscribe() );
+            mailingList.setUnsubscribe( v3MailingList.getUnsubscribe() );
+            mailingList.setArchive( v3MailingList.getArchive() );
+            mailingLists.add( mailingList );
+        }
+
+        return mailingLists;
+    }
+
+    private List getDevelopers( org.apache.maven.model.v3_0_0.Model v3Model )
+    {
+        List developers = new ArrayList();
+
+        List v3Developers = v3Model.getDevelopers();
+
+        if ( isEmpty( v3Developers ) )
+        {
+            return null;
+        }
+
+        for ( Iterator it = v3Developers.iterator(); it.hasNext(); )
+        {
+            org.apache.maven.model.v3_0_0.Developer v3Developer = (org.apache.maven.model.v3_0_0.Developer) it.next();
+
+            Developer developer = new Developer();
+            developer.setId( nullIfEmpty( v3Developer.getId() ) );
+            developer.setName( nullIfEmpty( v3Developer.getName() ) );
+            developer.setEmail( nullIfEmpty( v3Developer.getEmail() ) );
+            developer.setOrganization( nullIfEmpty( v3Developer.getOrganization() ) );
+            developer.setTimezone( nullIfEmpty( v3Developer.getTimezone() ) );
+            developer.setUrl( nullIfEmpty( v3Developer.getUrl() ) );
+            developer.setRoles( returnList( v3Developer.getRoles() ) );
+            developers.add( developer );
+        }
+
+        return developers;
+    }
+
+    private List getContributors( org.apache.maven.model.v3_0_0.Model v3Model )
+    {
+        List contributors = new ArrayList();
+
+        List v3Contributors = v3Model.getContributors();
+
+        if ( isEmpty( v3Contributors ) )
+        {
+            return null;
+        }
+
+        for ( Iterator it = v3Contributors.iterator(); it.hasNext(); )
+        {
+            org.apache.maven.model.v3_0_0.Contributor v3Contributor = (org.apache.maven.model.v3_0_0.Contributor) it
+                .next();
+
+            Contributor contributor = new Contributor();
+            contributor.setName( nullIfEmpty( v3Contributor.getName() ) );
+            contributor.setEmail( nullIfEmpty( v3Contributor.getEmail() ) );
+            contributor.setOrganization( nullIfEmpty( v3Contributor.getOrganization() ) );
+            contributor.setTimezone( nullIfEmpty( v3Contributor.getTimezone() ) );
+            contributor.setUrl( nullIfEmpty( v3Contributor.getUrl() ) );
+            contributor.setRoles( returnList( v3Contributor.getRoles() ) );
+            contributors.add( contributor );
+        }
+
+        return contributors;
+    }
+
+    private List getDependencies( org.apache.maven.model.v3_0_0.Model v3Model )
+        throws Exception
+    {
+        List dependencies = new ArrayList();
+
+        List v3Dependencies = v3Model.getDependencies();
+
+        if ( isEmpty( v3Dependencies ) )
+        {
+            return null;
+        }
+
+        for ( Iterator it = v3Dependencies.iterator(); it.hasNext(); )
+        {
+            org.apache.maven.model.v3_0_0.Dependency v3Dependency = (org.apache.maven.model.v3_0_0.Dependency) it
+                .next();
+
+            String artifacttype = v3Dependency.getType();
+            String id = nullIfEmpty( v3Dependency.getId() );
+            String groupId = nullIfEmpty( v3Dependency.getGroupId() );
+            String artifactId = nullIfEmpty( v3Dependency.getArtifactId() );
+
+            if ( isEmpty( groupId ) )
+            {
+                groupId = id;
+            }
+            if ( isEmpty( artifactId ) )
+            {
+                artifactId = id;
+            }
+
+            if ( isEmpty( groupId ) )
+            {
+                fatal( "Missing dependency.groupId." );
+            }
+
+            if ( isEmpty( artifactId ) )
+            {
+                fatal( "Missing dependency.artifactId." );
+            }
+
+            if ( "plugin".equalsIgnoreCase( artifacttype ) )
+            {
+                warn( "Plugin dependency " + artifactId + " not copied to v4 pom" );
+                continue;
+            }
+
+            Dependency dependency = new Dependency();
+
+            dependency.setGroupId( groupId );
+            dependency.setArtifactId( artifactId );
+
+            dependency.setType( nullIfEmpty( v3Dependency.getType() ) );
+            dependency.setVersion( nullIfEmpty( v3Dependency.getVersion() ) );
+
+            Properties v3Properties = v3Dependency.getProperties();
+
+            for ( Iterator iter = v3Properties.keySet().iterator(); iter.hasNext(); )
+            {
+                String key = (String) iter.next();
+                if ( ( "scope" ).equals( key ) )
+                {
+                    dependency.setScope( v3Properties.getProperty( key ) );
+                }
+                else if ( ( "optional" ).equals( key ) )
+                {
+                    dependency.setOptional( true );
+                }
+
+            }
+
+            dependencies.add( dependency );
+        }
+
+        return dependencies;
+    }
+
+    private List getLicenses( org.apache.maven.model.v3_0_0.Model v3Model )
+    {
+        List licenses = new ArrayList();
+
+        List v3Licenses = v3Model.getLicenses();
+
+        if ( isEmpty( v3Licenses ) )
+        {
+            return null;
+        }
+
+        for ( Iterator it = v3Licenses.iterator(); it.hasNext(); )
+        {
+            org.apache.maven.model.v3_0_0.License v3License = (org.apache.maven.model.v3_0_0.License) it.next();
+
+            License license = new License();
+            license.setName( nullIfEmpty( v3License.getName() ) );
+            license.setUrl( nullIfEmpty( v3License.getUrl() ) );
+            license.setComments( nullIfEmpty( v3License.getComments() ) );
+            licenses.add( license );
+        }
+
+        return licenses;
+    }
+
+    private Scm getScm( org.apache.maven.model.v3_0_0.Model v3Model )
+    {
+        if ( v3Model.getRepository() == null )
+        {
+            return null;
+        }
+
+        Scm scm = new Scm();
+
+        scm.setConnection( v3Model.getRepository().getConnection() );
+        scm.setDeveloperConnection( v3Model.getRepository().getDeveloperConnection() );
+        scm.setUrl( v3Model.getRepository().getUrl() );
+
+        return scm;
+    }
+
+    private Build getBuild( org.apache.maven.model.v3_0_0.Model v3Model )
+    {
+        org.apache.maven.model.v3_0_0.Build v3Build = v3Model.getBuild();
+
+        if ( v3Build == null )
+        {
+            return null;
+        }
+
+        Build build = new Build();
+
+        build.setSourceDirectory( v3Build.getSourceDirectory() );
+
+        List v3SourceModifications = v3Build.getSourceModifications();
+
+        if ( v3SourceModifications != null && v3SourceModifications.size() > 0 )
+        {
+            List sourceModifications = new ArrayList();
+
+            for ( Iterator it = v3SourceModifications.iterator(); it.hasNext(); )
+            {
+                org.apache.maven.model.v3_0_0.SourceModification v3SourceModification = (org.apache.maven.model.v3_0_0.SourceModification) it
+                    .next();
+
+                SourceModification sourceModification = new SourceModification();
+                sourceModification.setClassName( v3SourceModification.getClassName() );
+                sourceModification.setIncludes( getIncludes( v3SourceModification.getIncludes() ) );
+                sourceModification.setExcludes( getExcludes( v3SourceModification.getExcludes() ) );
+                sourceModifications.add( sourceModification );
+            }
+
+            // @todo SourceModifications
+            // build.setSourceModifications( sourceModifications );
+        }
+
+        build.setTestSourceDirectory( v3Build.getUnitTestSourceDirectory() );
+
+        // @todo getAspectSourceDirectory
+        // build.setAspectSourceDirectory( v3Build.getAspectSourceDirectory() );
+
+        org.apache.maven.model.v3_0_0.UnitTest v3UnitTest = v3Build.getUnitTest();
+
+        if ( v3UnitTest != null )
+        {
+            build.setTestResources( convertResources( v3UnitTest.getResources() ) );
+        }
+
+        build.setResources( convertResources( v3Build.getResources() ) );
+
+        return build;
+    }
+
+    private DistributionManagement getDistributionManagement( org.apache.maven.model.v3_0_0.Model v3Model )
+        throws Exception
+    {
+        DistributionManagement distributionManagement = new DistributionManagement();
+
+        Site site = null;
+
+        String siteAddress = v3Model.getSiteAddress();
+
+        String siteDirectory = v3Model.getSiteDirectory();
+
+        if ( isEmpty( siteAddress ) )
+        {
+            if ( !isEmpty( siteDirectory ) )
+            {
+                site = new Site();
+
+                site.setId( "default" );
+                site.setName( "Default Site" );
+                site.setUrl( "file://" + siteDirectory );
+            }
+        }
+        else
+        {
+            if ( isEmpty( siteDirectory ) )
+            {
+                throw new Exception(
+                                     "Missing 'siteDirectory': Both siteAddress and siteDirectory must be set at the same time." );
+            }
+
+            site = new Site();
+
+            site.setId( "default" );
+            site.setName( "Default Site" );
+            site.setUrl( "scp://" + siteAddress + "/" + siteDirectory );
+        }
+
+        distributionManagement.setSite( site );
+
+        String distributionSite = v3Model.getDistributionSite();
+        String distributionDirectory = v3Model.getDistributionDirectory();
+
+        DeploymentRepository deploymentRepository = null;
+
+        if ( isEmpty( distributionSite ) )
+        {
+            if ( !isEmpty( distributionDirectory ) )
+            {
+                deploymentRepository = new DeploymentRepository();
+                deploymentRepository.setId( "default" );
+                deploymentRepository.setName( "Default Repository" );
+                deploymentRepository.setUrl( "file://" + distributionDirectory );
+            }
+        }
+        else
+        {
+            if ( isEmpty( distributionDirectory ) )
+            {
+                throw new Exception( "Missing 'distributionDirectory': must be set is 'distributionSite' is set." );
+            }
+
+            deploymentRepository = new DeploymentRepository();
+            deploymentRepository.setId( "default" );
+            deploymentRepository.setName( "Default Repository" );
+            deploymentRepository.setUrl( distributionSite + "/" + distributionDirectory );
+        }
+
+        distributionManagement.setRepository( deploymentRepository );
+
+        if ( site == null && deploymentRepository == null )
+        {
+            return null;
+        }
+
+        return distributionManagement;
+    }
+
+    public org.apache.maven.model.v3_0_0.Model loadV3Pom( File inputFile )
+        throws Exception
+    {
+        MavenXpp3Reader v3Reader = new MavenXpp3Reader();
+
+        org.apache.maven.model.v3_0_0.Model model;
+
+        model = v3Reader.read( new FileReader( inputFile ) );
+
+        SAXReader r = new SAXReader();
+
+        Document d = r.read( new FileReader( inputFile ) );
+
+        Element root = d.getRootElement();
+
+        Element idElement = root.element( "id" );
+
+        String id = null;
+
+        if ( idElement != null )
+        {
+            id = idElement.getText();
+        }
+        //        String id = model.getId();
+
+        String groupId = model.getGroupId();
+
+        String artifactId = model.getArtifactId();
+
+        if ( !isEmpty( id ) )
+        {
+            int i = id.indexOf( "+" );
+
+            int j = id.indexOf( ":" );
+
+            if ( i > 0 )
+            {
+                model.setGroupId( id.substring( 0, i ) );
+
+                model.setArtifactId( id.replace( '+', '-' ) );
+            }
+            else if ( j > 0 )
+            {
+                model.setGroupId( id.substring( 0, j ) );
+
+                model.setArtifactId( id.substring( j + 1 ) );
+            }
+            else
+            {
+                model.setGroupId( id );
+
+                model.setArtifactId( id );
+            }
+
+            if ( !isEmpty( groupId ) )
+            {
+                warn( "Both <id> and <groupId> is set, using <groupId>." );
+
+                model.setGroupId( groupId );
+            }
+
+            if ( !isEmpty( artifactId ) )
+            {
+                warn( "Both <id> and <artifactId> is set, using <artifactId>." );
+
+                model.setArtifactId( artifactId );
+            }
+        }
+
+        return model;
+    }
+
+    private List getIncludes( List includes )
+    {
+        if ( includes == null || includes.size() == 0 )
+        {
+            return null;
+        }
+
+        return includes;
+    }
+
+    private List getExcludes( List excludes )
+    {
+        if ( excludes == null || excludes.size() == 0 )
+        {
+            return null;
+        }
+
+        return excludes;
+    }
+
+    private List convertResources( List v3Resources )
+    {
+        List resources = new ArrayList();
+
+        if ( v3Resources == null || v3Resources.size() == 0 )
+        {
+            return null;
+        }
+
+        for ( Iterator it = v3Resources.iterator(); it.hasNext(); )
+        {
+            org.apache.maven.model.v3_0_0.Resource v3Resource = (org.apache.maven.model.v3_0_0.Resource) it.next();
+
+            Resource resource = new Resource();
+            resource.setDirectory( v3Resource.getDirectory() );
+            resource.setTargetPath( v3Resource.getTargetPath() );
+            resource.setIncludes( getIncludes( v3Resource.getIncludes() ) );
+            resource.setExcludes( getExcludes( v3Resource.getExcludes() ) );
+
+            resources.add( resource );
+        }
+
+        return resources;
+    }
+
+    private List returnList( List list )
+    {
+        if ( list == null || list.size() == 0 )
+            return null;
+
+        return list;
+    }
+
+    private boolean isEmpty( String value )
+    {
+        return value == null || value.trim().length() == 0;
+    }
+
+    private boolean isEmpty( List list )
+    {
+        return list == null || list.size() == 0;
+    }
+
+    private String nullIfEmpty( String string )
+    {
+        if ( string == null || string.trim().length() == 0 )
+        {
+            return null;
+        }
+
+        return string;
+    }
+
+    private void fatal( String msg )
+        throws Exception
+    {
+        System.err.println( "[FATAL] " + msg );
+        throw new Exception( msg );
+    }
+
+    private void warn( String msg )
+    {
+        System.err.println( "[WARN] " + msg );
+        System.err.flush();
+    }
+
+    private void info( String msg )
+    {
+        System.err.println( msg );
+        System.err.flush();
+    }
+}

Propchange: maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/PomV3ToV4Converter.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/PomV3ToV4Converter.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/plugins/AbstractPluginConfigurationConverter.java
URL: http://svn.apache.org/viewvc/maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/plugins/AbstractPluginConfigurationConverter.java?rev=409264&view=auto
==============================================================================
--- maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/plugins/AbstractPluginConfigurationConverter.java (added)
+++ maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/plugins/AbstractPluginConfigurationConverter.java Wed May 24 16:13:13 2006
@@ -0,0 +1,79 @@
+package org.apache.maven.maven1converter.plugins;
+
+/*
+ * Copyright 2001-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.
+ */
+
+import java.io.StringReader;
+import java.util.Properties;
+
+import org.apache.maven.model.Model;
+import org.apache.maven.model.Plugin;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.codehaus.plexus.util.xml.Xpp3Dom;
+import org.codehaus.plexus.util.xml.Xpp3DomBuilder;
+
+/**
+ * @author Fabrizio Giustina
+ * @version $Id$
+ */
+public abstract class AbstractPluginConfigurationConverter
+    implements PluginConfigurationConverter
+{
+    public abstract String getArtifactId();
+
+    public String getGroupId()
+    {
+        return "org.apache.maven.plugins";
+    }
+
+    public void convertConfiguration( Model v4Model, org.apache.maven.model.v3_0_0.Model v3Model,
+                                     Properties projectProperties )
+        throws MojoExecutionException
+    {
+
+        Plugin plugin = new Plugin();
+        plugin.setGroupId( getGroupId() );
+        plugin.setArtifactId( getArtifactId() );
+
+        Xpp3Dom configuration = newXpp3Dom( "<configuration></configuration>" );
+
+        buildConfiguration( configuration, v3Model, projectProperties );
+
+        if ( configuration.getChildCount() > 0 )
+        {
+            plugin.setConfiguration( configuration );
+            v4Model.getBuild().addPlugin( plugin );
+        }
+
+    }
+
+    protected abstract void buildConfiguration( Xpp3Dom configuration, org.apache.maven.model.v3_0_0.Model v3Model,
+                                               Properties projectProperties )
+        throws MojoExecutionException;
+
+    protected Xpp3Dom newXpp3Dom( String input )
+        throws MojoExecutionException
+    {
+        try
+        {
+            return Xpp3DomBuilder.build( new StringReader( input ) );
+        }
+        catch ( Exception e )
+        {
+            throw new MojoExecutionException( "Unable to generate a new Xpp3Dom for " + input, e );
+        }
+    }
+}

Propchange: maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/plugins/AbstractPluginConfigurationConverter.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/plugins/AbstractPluginConfigurationConverter.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/plugins/PCCCompiler.java
URL: http://svn.apache.org/viewvc/maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/plugins/PCCCompiler.java?rev=409264&view=auto
==============================================================================
--- maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/plugins/PCCCompiler.java (added)
+++ maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/plugins/PCCCompiler.java Wed May 24 16:13:13 2006
@@ -0,0 +1,60 @@
+package org.apache.maven.maven1converter.plugins;
+
+/*
+ * Copyright 2001-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.
+ */
+
+import java.util.Properties;
+
+import org.apache.maven.plugin.MojoExecutionException;
+import org.codehaus.plexus.util.xml.Xpp3Dom;
+
+/**
+ * @author Fabrizio Giustina
+ * @version $Id$
+ */
+public class PCCCompiler
+    extends AbstractPluginConfigurationConverter
+{
+
+    /**
+     * @see org.apache.maven.maven1converter.plugins.AbstractPluginConfigurationConverter#getArtifactId()
+     */
+    public String getArtifactId()
+    {
+        return "maven-compiler-plugin";
+    }
+
+    protected void buildConfiguration( Xpp3Dom configuration, org.apache.maven.model.v3_0_0.Model v3Model,
+                                      Properties projectProperties )
+        throws MojoExecutionException
+    {
+        String compileTarget = projectProperties.getProperty( "maven.compile.target" );
+
+        if ( compileTarget != null )
+        {
+            configuration.addChild( newXpp3Dom( "<target>" + compileTarget + "</target>" ) );
+        }
+
+        String compileSource = projectProperties.getProperty( "maven.compile.source" );
+        if ( compileSource != null )
+        {
+            configuration.addChild( newXpp3Dom( "<source>" + compileSource + "</source>" ) );
+        }
+
+        // maven.compile.deprecation=on
+    }
+
+}

Propchange: maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/plugins/PCCCompiler.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/plugins/PCCCompiler.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/plugins/PCCMultiproject.java
URL: http://svn.apache.org/viewvc/maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/plugins/PCCMultiproject.java?rev=409264&view=auto
==============================================================================
--- maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/plugins/PCCMultiproject.java (added)
+++ maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/plugins/PCCMultiproject.java Wed May 24 16:13:13 2006
@@ -0,0 +1,47 @@
+package org.apache.maven.maven1converter.plugins;
+
+/*
+ * Copyright 2001-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.
+ */
+
+import java.util.Properties;
+
+import org.apache.maven.model.Model;
+import org.apache.maven.plugin.MojoExecutionException;
+
+/**
+ * @author Fabrizio Giustina
+ * @version $Id$
+ */
+public class PCCMultiproject
+    implements PluginConfigurationConverter
+{
+
+    /**
+     * @see org.apache.maven.maven1converter.plugins.PluginConfigurationConverter#convertConfiguration(org.apache.maven.model.Model, org.apache.maven.model.v3_0_0.Model, java.util.Properties)
+     */
+    public void convertConfiguration( Model v4Model, org.apache.maven.model.v3_0_0.Model v3Model,
+                                     Properties projectProperties )
+        throws MojoExecutionException
+    {
+        String projectType = projectProperties.getProperty( "maven.multiproject.type" );
+
+        if ( projectType != null )
+        {
+            v4Model.setPackaging( projectType );
+        }
+    }
+
+}

Propchange: maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/plugins/PCCMultiproject.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/plugins/PCCMultiproject.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/plugins/PCCSurefire.java
URL: http://svn.apache.org/viewvc/maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/plugins/PCCSurefire.java?rev=409264&view=auto
==============================================================================
--- maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/plugins/PCCSurefire.java (added)
+++ maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/plugins/PCCSurefire.java Wed May 24 16:13:13 2006
@@ -0,0 +1,83 @@
+package org.apache.maven.maven1converter.plugins;
+
+/*
+ * Copyright 2001-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.
+ */
+
+import java.util.Iterator;
+import java.util.List;
+import java.util.Properties;
+
+import org.apache.maven.plugin.MojoExecutionException;
+import org.codehaus.plexus.util.xml.Xpp3Dom;
+
+/**
+ * @author Fabrizio Giustina
+ * @version $Id$
+ */
+public class PCCSurefire
+    extends AbstractPluginConfigurationConverter
+{
+
+    /**
+     * @see org.apache.maven.maven1converter.plugins.AbstractPluginConfigurationConverter#getArtifactId()
+     */
+    public String getArtifactId()
+    {
+        return "maven-surefire-plugin";
+    }
+
+    protected void buildConfiguration( Xpp3Dom configuration, org.apache.maven.model.v3_0_0.Model v3Model,
+                                      Properties projectProperties )
+        throws MojoExecutionException
+    {
+        String testFailureIgnore = projectProperties.getProperty( "maven.test.failure.ignore" );
+
+        if ( testFailureIgnore != null )
+        {
+            configuration.addChild( newXpp3Dom( "<testFailureIgnore>" + testFailureIgnore + "</testFailureIgnore>" ) );
+        }
+
+        if ( v3Model.getBuild() != null && v3Model.getBuild().getUnitTest() != null )
+        {
+            org.apache.maven.model.v3_0_0.UnitTest v3UnitTest = v3Model.getBuild().getUnitTest();
+
+            List excludes = v3UnitTest.getExcludes();
+            if ( excludes != null && excludes.size() > 0 )
+            {
+                Xpp3Dom includesConf = newXpp3Dom( "<excludes></excludes>" );
+                for ( Iterator iter = excludes.iterator(); iter.hasNext(); )
+                {
+                    includesConf.addChild( newXpp3Dom( "<exclude>" + iter.next() + "</exclude>" ) );
+                }
+                configuration.addChild( includesConf );
+            }
+
+            List includes = v3UnitTest.getIncludes();
+            if ( includes != null && includes.size() > 0 )
+            {
+                Xpp3Dom includesConf = newXpp3Dom( "<includes></includes>" );
+                for ( Iterator iter = includes.iterator(); iter.hasNext(); )
+                {
+                    includesConf.addChild( newXpp3Dom( "<include>" + iter.next() + "</include>" ) );
+                }
+                configuration.addChild( includesConf );
+            }
+
+        }
+
+    }
+
+}

Propchange: maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/plugins/PCCSurefire.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/plugins/PCCSurefire.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/plugins/PCCWar.java
URL: http://svn.apache.org/viewvc/maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/plugins/PCCWar.java?rev=409264&view=auto
==============================================================================
--- maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/plugins/PCCWar.java (added)
+++ maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/plugins/PCCWar.java Wed May 24 16:13:13 2006
@@ -0,0 +1,54 @@
+package org.apache.maven.maven1converter.plugins;
+
+/*
+ * Copyright 2001-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.
+ */
+
+import java.util.Properties;
+
+import org.apache.maven.plugin.MojoExecutionException;
+import org.codehaus.plexus.util.StringUtils;
+import org.codehaus.plexus.util.xml.Xpp3Dom;
+
+/**
+ * @author Fabrizio Giustina
+ * @version $Id$
+ */
+public class PCCWar
+    extends AbstractPluginConfigurationConverter
+{
+
+    /**
+     * @see org.apache.maven.maven1converter.plugins.AbstractPluginConfigurationConverter#getArtifactId()
+     */
+    public String getArtifactId()
+    {
+        return "maven-war-plugin";
+    }
+
+    protected void buildConfiguration( Xpp3Dom configuration, org.apache.maven.model.v3_0_0.Model v3Model,
+                                      Properties projectProperties )
+        throws MojoExecutionException
+    {
+
+        String warSourceDirectory = projectProperties.getProperty( "maven.war.src" );
+        if ( warSourceDirectory != null )
+        {
+            configuration.addChild( newXpp3Dom( "<warSourceDirectory>"
+                + StringUtils.replace( warSourceDirectory, "${basedir}/", "" ) + "</warSourceDirectory>" ) );
+        }
+    }
+
+}

Propchange: maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/plugins/PCCWar.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/plugins/PCCWar.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/plugins/PluginConfigurationConverter.java
URL: http://svn.apache.org/viewvc/maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/plugins/PluginConfigurationConverter.java?rev=409264&view=auto
==============================================================================
--- maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/plugins/PluginConfigurationConverter.java (added)
+++ maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/plugins/PluginConfigurationConverter.java Wed May 24 16:13:13 2006
@@ -0,0 +1,33 @@
+package org.apache.maven.maven1converter.plugins;
+
+/*
+ * Copyright 2001-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.
+ */
+
+import java.util.Properties;
+
+import org.apache.maven.model.Model;
+import org.apache.maven.plugin.MojoExecutionException;
+
+/**
+ * A plugin configuration converter reads properties from a v3 pom or project.properties and add them to the v4 pom.
+ * @author Fabrizio Giustina
+ * @version $Id$
+ */
+public interface PluginConfigurationConverter
+{
+    void convertConfiguration( Model v4Model, org.apache.maven.model.v3_0_0.Model v3Model, Properties projectProperties )
+        throws MojoExecutionException;
+}

Propchange: maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/plugins/PluginConfigurationConverter.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/plugins/PluginConfigurationConverter.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/Branch.java
URL: http://svn.apache.org/viewvc/maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/Branch.java?rev=409264&view=auto
==============================================================================
--- maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/Branch.java (added)
+++ maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/Branch.java Wed May 24 16:13:13 2006
@@ -0,0 +1,53 @@
+/*
+ * $Id$
+ */
+
+package org.apache.maven.model.v3_0_0;
+
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
+
+import java.util.*;
+
+/**
+ * Class Branch.
+ * 
+ * @version $Revision$ $Date$
+ */
+public class Branch implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field tag
+     */
+    private String tag;
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * Method getTag
+     */
+    public String getTag()
+    {
+        return this.tag;
+    } //-- String getTag() 
+
+    /**
+     * Method setTag
+     * 
+     * @param tag
+     */
+    public void setTag(String tag)
+    {
+        this.tag = tag;
+    } //-- void setTag(String) 
+
+}

Propchange: maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/Branch.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/Branch.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/Build.java
URL: http://svn.apache.org/viewvc/maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/Build.java?rev=409264&view=auto
==============================================================================
--- maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/Build.java (added)
+++ maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/Build.java Wed May 24 16:13:13 2006
@@ -0,0 +1,219 @@
+/*
+ * $Id$
+ */
+
+package org.apache.maven.model.v3_0_0;
+
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
+
+import java.util.*;
+import java.util.List;
+
+/**
+ * Class Build.
+ * 
+ * @version $Revision$ $Date$
+ */
+public class Build extends BuildBase 
+implements java.io.Serializable
+{
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field nagEmailAddress
+     */
+    private String nagEmailAddress;
+
+    /**
+     * Field sourceDirectory
+     */
+    private String sourceDirectory;
+
+    /**
+     * Field unitTestSourceDirectory
+     */
+    private String unitTestSourceDirectory;
+
+    /**
+     * Field aspectSourceDirectory
+     */
+    private String aspectSourceDirectory;
+
+    /**
+     * Field integrationUnitTestSourceDirectory
+     */
+    private String integrationUnitTestSourceDirectory;
+
+    /**
+     * Field sourceModifications
+     */
+    private java.util.List sourceModifications;
+
+    /**
+     * Field unitTest
+     */
+    private UnitTest unitTest = new UnitTest();
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * Method addSourceModification
+     * 
+     * @param sourceModification
+     */
+    public void addSourceModification(SourceModification sourceModification)
+    {
+        getSourceModifications().add( sourceModification );
+    } //-- void addSourceModification(SourceModification) 
+
+    /**
+     * Method getAspectSourceDirectory
+     */
+    public String getAspectSourceDirectory()
+    {
+        return this.aspectSourceDirectory;
+    } //-- String getAspectSourceDirectory() 
+
+    /**
+     * Method getIntegrationUnitTestSourceDirectory
+     */
+    public String getIntegrationUnitTestSourceDirectory()
+    {
+        return this.integrationUnitTestSourceDirectory;
+    } //-- String getIntegrationUnitTestSourceDirectory() 
+
+    /**
+     * Method getNagEmailAddress
+     */
+    public String getNagEmailAddress()
+    {
+        return this.nagEmailAddress;
+    } //-- String getNagEmailAddress() 
+
+    /**
+     * Method getSourceDirectory
+     */
+    public String getSourceDirectory()
+    {
+        return this.sourceDirectory;
+    } //-- String getSourceDirectory() 
+
+    /**
+     * Method getSourceModifications
+     */
+    public java.util.List getSourceModifications()
+    {
+        if ( this.sourceModifications == null )
+        {
+            this.sourceModifications = new java.util.ArrayList();
+        }
+        
+        return this.sourceModifications;
+    } //-- java.util.List getSourceModifications() 
+
+    /**
+     * Method getUnitTest
+     */
+    public UnitTest getUnitTest()
+    {
+        return this.unitTest;
+    } //-- UnitTest getUnitTest() 
+
+    /**
+     * Method getUnitTestSourceDirectory
+     */
+    public String getUnitTestSourceDirectory()
+    {
+        return this.unitTestSourceDirectory;
+    } //-- String getUnitTestSourceDirectory() 
+
+    /**
+     * Method removeSourceModification
+     * 
+     * @param sourceModification
+     */
+    public void removeSourceModification(SourceModification sourceModification)
+    {
+        getSourceModifications().remove( sourceModification );
+    } //-- void removeSourceModification(SourceModification) 
+
+    /**
+     * Method setAspectSourceDirectory
+     * 
+     * @param aspectSourceDirectory
+     */
+    public void setAspectSourceDirectory(String aspectSourceDirectory)
+    {
+        this.aspectSourceDirectory = aspectSourceDirectory;
+    } //-- void setAspectSourceDirectory(String) 
+
+    /**
+     * Method setIntegrationUnitTestSourceDirectory
+     * 
+     * @param integrationUnitTestSourceDirectory
+     */
+    public void setIntegrationUnitTestSourceDirectory(String integrationUnitTestSourceDirectory)
+    {
+        this.integrationUnitTestSourceDirectory = integrationUnitTestSourceDirectory;
+    } //-- void setIntegrationUnitTestSourceDirectory(String) 
+
+    /**
+     * Method setNagEmailAddress
+     * 
+     * @param nagEmailAddress
+     */
+    public void setNagEmailAddress(String nagEmailAddress)
+    {
+        this.nagEmailAddress = nagEmailAddress;
+    } //-- void setNagEmailAddress(String) 
+
+    /**
+     * Method setSourceDirectory
+     * 
+     * @param sourceDirectory
+     */
+    public void setSourceDirectory(String sourceDirectory)
+    {
+        this.sourceDirectory = sourceDirectory;
+    } //-- void setSourceDirectory(String) 
+
+    /**
+     * Method setSourceModifications
+     * 
+     * @param sourceModifications
+     */
+    public void setSourceModifications(java.util.List sourceModifications)
+    {
+        this.sourceModifications = sourceModifications;
+    } //-- void setSourceModifications(java.util.List) 
+
+    /**
+     * Method setUnitTest
+     * 
+     * @param unitTest
+     */
+    public void setUnitTest(UnitTest unitTest)
+    {
+        this.unitTest = unitTest;
+    } //-- void setUnitTest(UnitTest) 
+
+    /**
+     * Method setUnitTestSourceDirectory
+     * 
+     * @param unitTestSourceDirectory
+     */
+    public void setUnitTestSourceDirectory(String unitTestSourceDirectory)
+    {
+        this.unitTestSourceDirectory = unitTestSourceDirectory;
+    } //-- void setUnitTestSourceDirectory(String) 
+
+}

Propchange: maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/Build.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/Build.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/BuildBase.java
URL: http://svn.apache.org/viewvc/maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/BuildBase.java?rev=409264&view=auto
==============================================================================
--- maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/BuildBase.java (added)
+++ maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/BuildBase.java Wed May 24 16:13:13 2006
@@ -0,0 +1,104 @@
+/*
+ * $Id$
+ */
+
+package org.apache.maven.model.v3_0_0;
+
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
+
+import java.util.*;
+import java.util.List;
+
+/**
+ * Class BuildBase.
+ * 
+ * @version $Revision$ $Date$
+ */
+public class BuildBase extends PluginConfiguration 
+implements java.io.Serializable
+{
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field defaultGoal
+     */
+    private String defaultGoal;
+
+    /**
+     * Field resources
+     */
+    private java.util.List resources;
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * Method addResource
+     * 
+     * @param resource
+     */
+    public void addResource(Resource resource)
+    {
+        getResources().add( resource );
+    } //-- void addResource(Resource) 
+
+    /**
+     * Method getDefaultGoal
+     */
+    public String getDefaultGoal()
+    {
+        return this.defaultGoal;
+    } //-- String getDefaultGoal() 
+
+    /**
+     * Method getResources
+     */
+    public java.util.List getResources()
+    {
+        if ( this.resources == null )
+        {
+            this.resources = new java.util.ArrayList();
+        }
+        
+        return this.resources;
+    } //-- java.util.List getResources() 
+
+    /**
+     * Method removeResource
+     * 
+     * @param resource
+     */
+    public void removeResource(Resource resource)
+    {
+        getResources().remove( resource );
+    } //-- void removeResource(Resource) 
+
+    /**
+     * Method setDefaultGoal
+     * 
+     * @param defaultGoal
+     */
+    public void setDefaultGoal(String defaultGoal)
+    {
+        this.defaultGoal = defaultGoal;
+    } //-- void setDefaultGoal(String) 
+
+    /**
+     * Method setResources
+     * 
+     * @param resources
+     */
+    public void setResources(java.util.List resources)
+    {
+        this.resources = resources;
+    } //-- void setResources(java.util.List) 
+
+}

Propchange: maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/BuildBase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/BuildBase.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/Contributor.java
URL: http://svn.apache.org/viewvc/maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/Contributor.java?rev=409264&view=auto
==============================================================================
--- maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/Contributor.java (added)
+++ maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/Contributor.java Wed May 24 16:13:13 2006
@@ -0,0 +1,257 @@
+/*
+ * $Id$
+ */
+
+package org.apache.maven.model.v3_0_0;
+
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
+
+import java.util.*;
+import java.util.List;
+import java.util.Properties;
+
+/**
+ * Class Contributor.
+ * 
+ * @version $Revision$ $Date$
+ */
+public class Contributor implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field name
+     */
+    private String name;
+
+    /**
+     * Field email
+     */
+    private String email;
+
+    /**
+     * Field url
+     */
+    private String url;
+
+    /**
+     * Field organization
+     */
+    private String organization;
+
+    /**
+     * Field organizationUrl
+     */
+    private String organizationUrl;
+
+    /**
+     * Field roles
+     */
+    private java.util.List roles;
+
+    /**
+     * Field timezone
+     */
+    private String timezone;
+
+    /**
+     * Field properties
+     */
+    private java.util.Properties properties;
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * Method addProperty
+     * 
+     * @param key
+     * @param value
+     */
+    public void addProperty(String key, String value)
+    {
+        getProperties().put( key, value );
+    } //-- void addProperty(String, String) 
+
+    /**
+     * Method addRole
+     * 
+     * @param string
+     */
+    public void addRole(String string)
+    {
+        getRoles().add( string );
+    } //-- void addRole(String) 
+
+    /**
+     * Method getEmail
+     */
+    public String getEmail()
+    {
+        return this.email;
+    } //-- String getEmail() 
+
+    /**
+     * Method getName
+     */
+    public String getName()
+    {
+        return this.name;
+    } //-- String getName() 
+
+    /**
+     * Method getOrganization
+     */
+    public String getOrganization()
+    {
+        return this.organization;
+    } //-- String getOrganization() 
+
+    /**
+     * Method getOrganizationUrl
+     */
+    public String getOrganizationUrl()
+    {
+        return this.organizationUrl;
+    } //-- String getOrganizationUrl() 
+
+    /**
+     * Method getProperties
+     */
+    public java.util.Properties getProperties()
+    {
+        if ( this.properties == null )
+        {
+            this.properties = new java.util.Properties();
+        }
+        
+        return this.properties;
+    } //-- java.util.Properties getProperties() 
+
+    /**
+     * Method getRoles
+     */
+    public java.util.List getRoles()
+    {
+        if ( this.roles == null )
+        {
+            this.roles = new java.util.ArrayList();
+        }
+        
+        return this.roles;
+    } //-- java.util.List getRoles() 
+
+    /**
+     * Method getTimezone
+     */
+    public String getTimezone()
+    {
+        return this.timezone;
+    } //-- String getTimezone() 
+
+    /**
+     * Method getUrl
+     */
+    public String getUrl()
+    {
+        return this.url;
+    } //-- String getUrl() 
+
+    /**
+     * Method removeRole
+     * 
+     * @param string
+     */
+    public void removeRole(String string)
+    {
+        getRoles().remove( string );
+    } //-- void removeRole(String) 
+
+    /**
+     * Method setEmail
+     * 
+     * @param email
+     */
+    public void setEmail(String email)
+    {
+        this.email = email;
+    } //-- void setEmail(String) 
+
+    /**
+     * Method setName
+     * 
+     * @param name
+     */
+    public void setName(String name)
+    {
+        this.name = name;
+    } //-- void setName(String) 
+
+    /**
+     * Method setOrganization
+     * 
+     * @param organization
+     */
+    public void setOrganization(String organization)
+    {
+        this.organization = organization;
+    } //-- void setOrganization(String) 
+
+    /**
+     * Method setOrganizationUrl
+     * 
+     * @param organizationUrl
+     */
+    public void setOrganizationUrl(String organizationUrl)
+    {
+        this.organizationUrl = organizationUrl;
+    } //-- void setOrganizationUrl(String) 
+
+    /**
+     * Method setProperties
+     * 
+     * @param properties
+     */
+    public void setProperties(java.util.Properties properties)
+    {
+        this.properties = properties;
+    } //-- void setProperties(java.util.Properties) 
+
+    /**
+     * Method setRoles
+     * 
+     * @param roles
+     */
+    public void setRoles(java.util.List roles)
+    {
+        this.roles = roles;
+    } //-- void setRoles(java.util.List) 
+
+    /**
+     * Method setTimezone
+     * 
+     * @param timezone
+     */
+    public void setTimezone(String timezone)
+    {
+        this.timezone = timezone;
+    } //-- void setTimezone(String) 
+
+    /**
+     * Method setUrl
+     * 
+     * @param url
+     */
+    public void setUrl(String url)
+    {
+        this.url = url;
+    } //-- void setUrl(String) 
+
+}

Propchange: maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/Contributor.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/Contributor.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/Dependency.java
URL: http://svn.apache.org/viewvc/maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/Dependency.java?rev=409264&view=auto
==============================================================================
--- maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/Dependency.java (added)
+++ maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/Dependency.java Wed May 24 16:13:13 2006
@@ -0,0 +1,319 @@
+/*
+ * $Id$
+ */
+
+package org.apache.maven.model.v3_0_0;
+
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
+
+import java.util.*;
+import java.util.Properties;
+
+/**
+ * Class Dependency.
+ * 
+ * @version $Revision$ $Date$
+ */
+public class Dependency implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field id
+     */
+    private String id;
+
+    /**
+     * Field groupId
+     */
+    private String groupId;
+
+    /**
+     * Field artifactId
+     */
+    private String artifactId;
+
+    /**
+     * Field version
+     */
+    private String version;
+
+    /**
+     * Field url
+     */
+    private String url;
+
+    /**
+     * Field jar
+     */
+    private String jar;
+
+    /**
+     * Field type
+     */
+    private String type = "jar";
+
+    /**
+     * Field properties
+     */
+    private java.util.Properties properties;
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * Method addProperty
+     * 
+     * @param key
+     * @param value
+     */
+    public void addProperty(String key, String value)
+    {
+        getProperties().put( key, value );
+    } //-- void addProperty(String, String) 
+
+    /**
+     * Method getArtifactId
+     */
+    public String getArtifactId()
+    {
+        return this.artifactId;
+    } //-- String getArtifactId() 
+
+    /**
+     * Method getGroupId
+     */
+    public String getGroupId()
+    {
+        return this.groupId;
+    } //-- String getGroupId() 
+
+    /**
+     * Method getId
+     */
+    public String getId()
+    {
+        return this.id;
+    } //-- String getId() 
+
+    /**
+     * Method getJar
+     */
+    public String getJar()
+    {
+        return this.jar;
+    } //-- String getJar() 
+
+    /**
+     * Method getProperties
+     */
+    public java.util.Properties getProperties()
+    {
+        if ( this.properties == null )
+        {
+            this.properties = new java.util.Properties();
+        }
+        
+        return this.properties;
+    } //-- java.util.Properties getProperties() 
+
+    /**
+     * Method getType
+     */
+    public String getType()
+    {
+        return this.type;
+    } //-- String getType() 
+
+    /**
+     * Method getUrl
+     */
+    public String getUrl()
+    {
+        return this.url;
+    } //-- String getUrl() 
+
+    /**
+     * Method getVersion
+     */
+    public String getVersion()
+    {
+        return this.version;
+    } //-- String getVersion() 
+
+    /**
+     * Method setArtifactId
+     * 
+     * @param artifactId
+     */
+    public void setArtifactId(String artifactId)
+    {
+        this.artifactId = artifactId;
+    } //-- void setArtifactId(String) 
+
+    /**
+     * Method setGroupId
+     * 
+     * @param groupId
+     */
+    public void setGroupId(String groupId)
+    {
+        this.groupId = groupId;
+    } //-- void setGroupId(String) 
+
+    /**
+     * Method setId
+     * 
+     * @param id
+     */
+    public void setId(String id)
+    {
+        this.id = id;
+    } //-- void setId(String) 
+
+    /**
+     * Method setJar
+     * 
+     * @param jar
+     */
+    public void setJar(String jar)
+    {
+        this.jar = jar;
+    } //-- void setJar(String) 
+
+    /**
+     * Method setProperties
+     * 
+     * @param properties
+     */
+    public void setProperties(java.util.Properties properties)
+    {
+        this.properties = properties;
+    } //-- void setProperties(java.util.Properties) 
+
+    /**
+     * Method setType
+     * 
+     * @param type
+     */
+    public void setType(String type)
+    {
+        this.type = type;
+    } //-- void setType(String) 
+
+    /**
+     * Method setUrl
+     * 
+     * @param url
+     */
+    public void setUrl(String url)
+    {
+        this.url = url;
+    } //-- void setUrl(String) 
+
+    /**
+     * Method setVersion
+     * 
+     * @param version
+     */
+    public void setVersion(String version)
+    {
+        this.version = version;
+    } //-- void setVersion(String) 
+
+
+            public String toString()
+            {
+                return groupId + "/" + type + "s:" + artifactId + "-" + version;
+            }
+          
+            public String getKey()
+            {
+                return getId() + ":" + getType();
+            }
+
+            public String getArtifactDirectory()
+            {
+                return getGroupId();
+            }
+        
+            public String getArtifact()
+            {
+                // If the jar name has been explicty set then use that. This
+                // is when the <jar/> element is explicity used in the POM.
+                if ( getJar() != null)
+                {
+                    return getJar();
+                }
+
+                String artifact;
+
+                if ("ejb-client".equals(getType())) {
+                  artifact = getArtifactId() + "-" + getVersion() + "-client." + getExtension();
+                } else {
+                  artifact = getArtifactId() + "-" + getVersion() + "." + getExtension();
+                }
+
+                return artifact;
+            }
+
+            public String getTypeDirectory()
+            {
+                String path;
+                if (getType().equals("ejb-client")) {
+                    path = "ejbs";
+                } else {
+                    path = getType() + "s";
+                }
+               return path;
+            }
+        
+            public String getExtension()
+            {
+                if ("ejb".equals(getType()) || "ejb-client".equals(getType()) || "plugin".equals(getType()) || "aspect".equals(getType()) || "uberjar".equals(getType())) return "jar";
+                return getType();
+            }
+        
+            public boolean isAddedToClasspath()
+            {
+                return ("jar".equals(getType()) || "ejb".equals(getType()) || "ejb-client".equals(getType()) || "sar".equals(getType()));
+            }
+        
+            public boolean isPlugin()
+            {
+                return ("plugin".equals(getType()));
+            }
+        
+            public String getProperty( String property )
+            {
+                return getProperties().getProperty( property );
+            }
+
+            public boolean equals( Object o )
+            {
+                if ( this == o )
+                {
+                    return true;
+                }
+            
+                if ( !( o instanceof Dependency ) )
+                {
+                    return false;
+                }
+            
+                Dependency d  = (Dependency) o;
+                return getId().equals( d.getId() );
+            }
+            
+            public int hashCode()
+            {
+                return getId().hashCode();
+            }
+          }

Propchange: maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/Dependency.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/Developer.java
URL: http://svn.apache.org/viewvc/maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/Developer.java?rev=409264&view=auto
==============================================================================
--- maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/Developer.java (added)
+++ maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/Developer.java Wed May 24 16:13:13 2006
@@ -0,0 +1,55 @@
+/*
+ * $Id$
+ */
+
+package org.apache.maven.model.v3_0_0;
+
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
+
+import java.util.*;
+
+/**
+ * Class Developer.
+ * 
+ * @version $Revision$ $Date$
+ */
+public class Developer extends Contributor 
+implements java.io.Serializable
+{
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field id
+     */
+    private String id;
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * Method getId
+     */
+    public String getId()
+    {
+        return this.id;
+    } //-- String getId() 
+
+    /**
+     * Method setId
+     * 
+     * @param id
+     */
+    public void setId(String id)
+    {
+        this.id = id;
+    } //-- void setId(String) 
+
+}

Propchange: maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/Developer.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/Developer.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/FileSet.java
URL: http://svn.apache.org/viewvc/maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/FileSet.java?rev=409264&view=auto
==============================================================================
--- maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/FileSet.java (added)
+++ maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/FileSet.java Wed May 24 16:13:13 2006
@@ -0,0 +1,55 @@
+/*
+ * $Id$
+ */
+
+package org.apache.maven.model.v3_0_0;
+
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
+
+import java.util.*;
+
+/**
+ * Class FileSet.
+ * 
+ * @version $Revision$ $Date$
+ */
+public class FileSet extends PatternSet 
+implements java.io.Serializable
+{
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field directory
+     */
+    private String directory;
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * Method getDirectory
+     */
+    public String getDirectory()
+    {
+        return this.directory;
+    } //-- String getDirectory() 
+
+    /**
+     * Method setDirectory
+     * 
+     * @param directory
+     */
+    public void setDirectory(String directory)
+    {
+        this.directory = directory;
+    } //-- void setDirectory(String) 
+
+}

Propchange: maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/FileSet.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/FileSet.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"



Re: svn commit: r409264 [1/4] - in /maven/sandbox/plugins/maven-maven1-plugin: ./ src/ src/main/ src/main/java/ src/main/java/org/ src/main/java/org/apache/ src/main/java/org/apache/maven/ src/main/java/org/apache/maven/maven1converter/ src/main/java/org/a...

Posted by Dennis Lundberg <de...@apache.org>.
Trygve Laugstøl wrote:
> carlos@apache.org wrote:
>> Author: carlos
>> Date: Wed May 24 16:13:13 2006
>> New Revision: 409264
>>
>> URL: http://svn.apache.org/viewvc?rev=409264&view=rev
>> Log:
>> [MNG-1530] Added plugin for converting maven 1 projects
>>
>> Added:
>>     maven/sandbox/plugins/maven-maven1-plugin/
>>     maven/sandbox/plugins/maven-maven1-plugin/pom.xml   (with props)
>>     maven/sandbox/plugins/maven-maven1-plugin/src/
>>     maven/sandbox/plugins/maven-maven1-plugin/src/main/
>>     maven/sandbox/plugins/maven-maven1-plugin/src/main/java/
>>     maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/
>>     maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/
>>     
>> maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/
>>     
>> maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/ 
>>
>>     
>> maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/PomV3ConvertMojo.java   
>> (with props)
>>     
>> maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/PomV3ToV4Converter.java   
>> (with props)
>>     
>> maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/plugins/ 
>>
>>     
>> maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/plugins/AbstractPluginConfigurationConverter.java   
>> (with props)
>>     
>> maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/plugins/PCCCompiler.java   
>> (with props)
>>     
>> maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/plugins/PCCMultiproject.java   
>> (with props)
>>     
>> maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/plugins/PCCSurefire.java   
>> (with props)
>>     
>> maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/plugins/PCCWar.java   
>> (with props)
>>     
>> maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/plugins/PluginConfigurationConverter.java   
>> (with props)
>>     
>> maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/ 
>>
>>     
>> maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/ 
>>
> 
> Is there a reason to check in these files when they are generated? We 
> used to publish an "all" jar[1] that contained all the model versions 
> which contained all the model versions.
> 
> I assume this is the plugin that Dennis was talking about so this might 
> be here just because that someone didn't know of this all jar but it 
> should be changed before a release.
> 
> [1]: 
> http://www.ibiblio.org/maven2/org/apache/maven/maven-model/2.0-beta-1/maven-model-2.0-beta-1-all.jar 
> 
> -- 
> Trygve

Right, this was one of the items left on Fabrizio's to do list. A patch 
which uses mavel-model-v3-2.0 instead of the bundled classes is provided 
in MNG-2320. The reason for the "v3" is described in MNG-1436.

--
Dennis Lundberg


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


Re: svn commit: r409264 [1/4] - in /maven/sandbox/plugins/maven-maven1-plugin: ./ src/ src/main/ src/main/java/ src/main/java/org/ src/main/java/org/apache/ src/main/java/org/apache/maven/ src/main/java/org/apache/maven/maven1converter/ src/main/java/org/a...

Posted by Trygve Laugstøl <tr...@apache.org>.
carlos@apache.org wrote:
> Author: carlos
> Date: Wed May 24 16:13:13 2006
> New Revision: 409264
> 
> URL: http://svn.apache.org/viewvc?rev=409264&view=rev
> Log:
> [MNG-1530] Added plugin for converting maven 1 projects
> 
> Added:
>     maven/sandbox/plugins/maven-maven1-plugin/
>     maven/sandbox/plugins/maven-maven1-plugin/pom.xml   (with props)
>     maven/sandbox/plugins/maven-maven1-plugin/src/
>     maven/sandbox/plugins/maven-maven1-plugin/src/main/
>     maven/sandbox/plugins/maven-maven1-plugin/src/main/java/
>     maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/
>     maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/
>     maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/
>     maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/
>     maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/PomV3ConvertMojo.java   (with props)
>     maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/PomV3ToV4Converter.java   (with props)
>     maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/plugins/
>     maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/plugins/AbstractPluginConfigurationConverter.java   (with props)
>     maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/plugins/PCCCompiler.java   (with props)
>     maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/plugins/PCCMultiproject.java   (with props)
>     maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/plugins/PCCSurefire.java   (with props)
>     maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/plugins/PCCWar.java   (with props)
>     maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/maven1converter/plugins/PluginConfigurationConverter.java   (with props)
>     maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/
>     maven/sandbox/plugins/maven-maven1-plugin/src/main/java/org/apache/maven/model/v3_0_0/

Is there a reason to check in these files when they are generated? We 
used to publish an "all" jar[1] that contained all the model versions 
which contained all the model versions.

I assume this is the plugin that Dennis was talking about so this might 
be here just because that someone didn't know of this all jar but it 
should be changed before a release.

[1]: 
http://www.ibiblio.org/maven2/org/apache/maven/maven-model/2.0-beta-1/maven-model-2.0-beta-1-all.jar
--
Trygve

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org