jvanzyl     02/04/18 18:54:08

  Modified:    src/java/org/apache/maven ProjectProperties.java
  Log:
  There is now a set of properties that are pushed into the ant project
  instead of doing it manually. Eventually we can get this list from a
  properties file that is stored in the JAR.
  
  We use the BeanMap from the commons-collections to turn the maven project
  bean into a Map and use that with the property names. Less maintenance, can
  become an SCM issue and not a programmatic one.
  
  Revision  Changes    Path
  1.25      +44 -55    
jakarta-turbine-maven/src/java/org/apache/maven/ProjectProperties.java
  
  Index: ProjectProperties.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-turbine-maven/src/java/org/apache/maven/ProjectProperties.java,v
  retrieving revision 1.24
  retrieving revision 1.25
  diff -u -r1.24 -r1.25
  --- ProjectProperties.java    18 Apr 2002 14:51:26 -0000      1.24
  +++ ProjectProperties.java    19 Apr 2002 01:54:08 -0000      1.25
  @@ -58,10 +58,13 @@
   
   import java.util.Iterator;
   import java.util.List;
  +import java.util.Map;
   import java.util.Vector;
   
   import org.apache.commons.lang.Strings;
   
  +import org.apache.commons.collections.BeanMap;
  +
   import org.apache.maven.ant.AntUtils;
   import org.apache.maven.executor.ProjectExecutor;
   import org.apache.maven.project.Dependency;
  @@ -76,7 +79,7 @@
    * paths required to build the project.
    *
    * @author <a href="[EMAIL PROTECTED]">Jason van Zyl</a>
  - * @version $Id: ProjectProperties.java,v 1.24 2002/04/18 14:51:26 jvanzyl Exp $
  + * @version $Id: ProjectProperties.java,v 1.25 2002/04/19 01:54:08 jvanzyl Exp $
    */
   public class ProjectProperties
       extends ProjectExecutor
  @@ -96,60 +99,28 @@
       {
           // Grab the libRepo property.
           libRepo = getProject().getProperty("lib.repo");
  -
  -        // Add some basic attribute values of the project in
  -        // the ant build process.
  -        if (mavenProject.getName() != null)
  -        {
  -            getProject().setProperty("name", mavenProject.getName());
  -            getProject().setProperty("gump.descriptor", mavenProject.getName());
  -        }
  -
  -        if (mavenProject.getCurrentVersion() != null)
  -        {
  -            getProject().setProperty("currentVersion",
  -                                     mavenProject.getCurrentVersion());
  -        }
  -
  -        if (mavenProject.getId() != null)
  -        {
  -            getProject().setProperty("id", mavenProject.getId());
  -        }
  -
  -        if (mavenProject.getOrganization() != null)
  -        {
  -            getProject().setProperty("organization",
  -                                     mavenProject.getOrganization());
  -        }
  -
  -        if (mavenProject.getInceptionYear() != null)
  -        {
  -            getProject().setProperty("inceptionYear",
  -                                     mavenProject.getInceptionYear());
  -        }
  -
  -        if (mavenProject.getPackage() != null)
  -        {
  -            getProject().setProperty("package", mavenProject.getPackage());
  -        }
  -
  -        if (mavenProject.getUrl() != null)
  -        {
  -            getProject().setProperty("url", mavenProject.getUrl());
  -        }
  -
  -        if (mavenProject.getSiteAddress() != null)
  -        {
  -            getProject().setProperty("siteAddress",
  -                                     mavenProject.getSiteAddress());
  -        }
  -
  -        if (mavenProject.getSiteDirectory() != null)
  -        {
  -            getProject().setProperty("siteDirectory",
  -                                     mavenProject.getSiteDirectory());
  -        }
  -
  +        
  +        Map mavenProjectMap = new BeanMap(mavenProject);
  +        
  +        // We can store these values in a properties file in the JAR
  +        // eventually so it's highly configurable, less code maintenance.
  +        String[] properties =
  +        {
  +            "name",
  +            "currentVersion",
  +            "id",
  +            "inceptionYear",
  +            "package",
  +            "url",
  +            "siteAddress",
  +            "siteDirectory"
  +        };
  +        
  +        for (int i = 0; i < properties.length; i++)
  +        {
  +            setProjectProperty(properties[i], mavenProjectMap);            
  +        }    
  +                
           // Let the build process know that the POM has
           // been loaded.
           getProject().setProperty("pomLoaded","true");
  @@ -209,6 +180,24 @@
           }
   
           createJarResourcesProperty();
  +    }
  +    
  +    /**
  +     * Set a project property. We check to see that the value
  +     * exists in the POM by turning the mavenProject bean into
  +     * a Map using the BeanMap utility in the commons-collections.
  +     */
  +    private void setProjectProperty(String key, Map values)
  +    {
  +        if (values.get(key) != null)
  +        {
  +            String value = (String) values.get(key);
  +            
  +            if (value.length() > 0)
  +            {
  +                getProject().setProperty(key, (String)values.get(key));
  +            }                
  +        }
       }
   
       /**
  
  
  


Reply via email to