Author: bentmann
Date: Sat Mar 21 18:10:28 2009
New Revision: 756980
URL: http://svn.apache.org/viewvc?rev=756980&view=rev
Log:
o Added contributor/developer processors
Added:
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/processor/ContributorsProcessor.java
(with props)
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/processor/DevelopersProcessor.java
(with props)
Modified:
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/processor/ProcessorContext.java
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/PomConstructionTest.java
Added:
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/processor/ContributorsProcessor.java
URL:
http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/processor/ContributorsProcessor.java?rev=756980&view=auto
==============================================================================
---
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/processor/ContributorsProcessor.java
(added)
+++
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/processor/ContributorsProcessor.java
Sat Mar 21 18:10:28 2009
@@ -0,0 +1,70 @@
+package org.apache.maven.project.processor;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Properties;
+
+import org.apache.maven.model.Contributor;
+import org.apache.maven.model.Model;
+
+public class ContributorsProcessor
+ extends BaseProcessor
+{
+
+ public void process( Object parent, Object child, Object target, boolean
isChildMostSpecialized )
+ {
+ super.process( parent, child, target, isChildMostSpecialized );
+
+ Model p = (Model) parent;
+ Model c = (Model) child;
+ Model t = (Model) target;
+
+ if ( !c.getContributors().isEmpty() )
+ {
+ copyContributors( c.getContributors(), t );
+ }
+ else if ( p != null && !p.getContributors().isEmpty() )
+ {
+ copyContributors( p.getContributors(), t );
+ }
+ }
+
+ private static void copyContributors( List<Contributor> contributors,
Model target )
+ {
+ for ( Contributor contributor : contributors )
+ {
+ Contributor copy = new Contributor();
+ copy.setName( contributor.getName() );
+ copy.setEmail( contributor.getEmail() );
+ copy.setUrl( contributor.getUrl() );
+ copy.setOrganization( contributor.getOrganization() );
+ copy.setOrganizationUrl( contributor.getOrganizationUrl() );
+ copy.setTimezone( contributor.getTimezone() );
+ copy.setRoles( new ArrayList<String>( contributor.getRoles() ) );
+ Properties props = new Properties();
+ props.putAll( contributor.getProperties() );
+ copy.setProperties( props );
+ target.addContributor( copy );
+ }
+ }
+
+}
Propchange:
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/processor/ContributorsProcessor.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/processor/ContributorsProcessor.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added:
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/processor/DevelopersProcessor.java
URL:
http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/processor/DevelopersProcessor.java?rev=756980&view=auto
==============================================================================
---
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/processor/DevelopersProcessor.java
(added)
+++
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/processor/DevelopersProcessor.java
Sat Mar 21 18:10:28 2009
@@ -0,0 +1,71 @@
+package org.apache.maven.project.processor;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Properties;
+
+import org.apache.maven.model.Developer;
+import org.apache.maven.model.Model;
+
+public class DevelopersProcessor
+ extends BaseProcessor
+{
+
+ public void process( Object parent, Object child, Object target, boolean
isChildMostSpecialized )
+ {
+ super.process( parent, child, target, isChildMostSpecialized );
+
+ Model p = (Model) parent;
+ Model c = (Model) child;
+ Model t = (Model) target;
+
+ if ( !c.getDevelopers().isEmpty() )
+ {
+ copyDevelopers( c.getDevelopers(), t );
+ }
+ else if ( p != null && !p.getDevelopers().isEmpty() )
+ {
+ copyDevelopers( p.getDevelopers(), t );
+ }
+ }
+
+ private static void copyDevelopers( List<Developer> developers, Model
target )
+ {
+ for ( Developer developer : developers )
+ {
+ Developer copy = new Developer();
+ copy.setId( developer.getId() );
+ copy.setName( developer.getName() );
+ copy.setEmail( developer.getEmail() );
+ copy.setUrl( developer.getUrl() );
+ copy.setOrganization( developer.getOrganization() );
+ copy.setOrganizationUrl( developer.getOrganizationUrl() );
+ copy.setTimezone( developer.getTimezone() );
+ copy.setRoles( new ArrayList<String>( developer.getRoles() ) );
+ Properties props = new Properties();
+ props.putAll( developer.getProperties() );
+ copy.setProperties( props );
+ target.addDeveloper( copy );
+ }
+ }
+
+}
Propchange:
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/processor/DevelopersProcessor.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/processor/DevelopersProcessor.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Modified:
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/processor/ProcessorContext.java
URL:
http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/processor/ProcessorContext.java?rev=756980&r1=756979&r2=756980&view=diff
==============================================================================
---
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/processor/ProcessorContext.java
(original)
+++
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/processor/ProcessorContext.java
Sat Mar 21 18:10:28 2009
@@ -176,7 +176,8 @@
new MailingListProcessor(), new
IssueManagementProcessor(),
new CiManagementProcessor(), new
ReportingProcessor(),
new RepositoriesProcessor(), new
DistributionManagementProcessor(),
- new LicensesProcessor(), new
ScmProcessor(), new PrerequisitesProcessor() );
+ new LicensesProcessor(), new
ScmProcessor(), new PrerequisitesProcessor(),
+ new ContributorsProcessor(), new
DevelopersProcessor() );
Model target = processModelsForInheritance(
convertDomainModelsToMavenModels( domainModels ), processors, true );
PomClassicDomainModel model = convertToDomainModel( target, false );
Modified:
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/PomConstructionTest.java
URL:
http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/PomConstructionTest.java?rev=756980&r1=756979&r2=756980&view=diff
==============================================================================
---
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/PomConstructionTest.java
(original)
+++
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/PomConstructionTest.java
Sat Mar 21 18:10:28 2009
@@ -983,11 +983,28 @@
assertEquals( "repo", pom.getValue( "licenses[1]/distribution" ) );
assertEquals( "free", pom.getValue( "licenses[1]/comments" ) );
- /* FIXME
- assertEquals( 1, ((List<?>)pom.getValue( "developers" )).size() );
-
- assertEquals( 1, ((List<?>)pom.getValue( "contributors" )).size() );
- //*/
+ assertEquals( 1, ( (List<?>) pom.getValue( "developers" ) ).size() );
+ assertEquals( "dev", pom.getValue( "developers[1]/id" ) );
+ assertEquals( "project-developer", pom.getValue( "developers[1]/name"
) );
+ assertEquals( "developer@", pom.getValue( "developers[1]/email" ) );
+ assertEquals( "http://developer", pom.getValue( "developers[1]/url" )
);
+ assertEquals( "developer", pom.getValue( "developers[1]/organization"
) );
+ assertEquals( "http://devel.org", pom.getValue(
"developers[1]/organizationUrl" ) );
+ assertEquals( "-1", pom.getValue( "developers[1]/timezone" ) );
+ assertEquals( "yes", pom.getValue(
"developers[1]/properties/developer" ) );
+ assertEquals( 1, ( (List<?>) pom.getValue( "developers[1]/roles" )
).size() );
+ assertEquals( "devel", pom.getValue( "developers[1]/roles[1]" ) );
+
+ assertEquals( 1, ( (List<?>) pom.getValue( "contributors" ) ).size() );
+ assertEquals( "project-contributor", pom.getValue(
"contributors[1]/name" ) );
+ assertEquals( "contributor@", pom.getValue( "contributors[1]/email" )
);
+ assertEquals( "http://contributor", pom.getValue(
"contributors[1]/url" ) );
+ assertEquals( "contributor", pom.getValue(
"contributors[1]/organization" ) );
+ assertEquals( "http://contrib.org", pom.getValue(
"contributors[1]/organizationUrl" ) );
+ assertEquals( "+1", pom.getValue( "contributors[1]/timezone" ) );
+ assertEquals( "yes", pom.getValue(
"contributors[1]/properties/contributor" ) );
+ assertEquals( 1, ( (List<?>) pom.getValue( "contributors[1]/roles" )
).size() );
+ assertEquals( "contrib", pom.getValue( "contributors[1]/roles[1]" ) );
assertEquals( 1, ( (List<?>) pom.getValue( "mailingLists" ) ).size() );
assertEquals( "project-mailing-list", pom.getValue(
"mailingLists[1]/name" ) );