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