You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by si...@apache.org on 2008/11/14 21:10:52 UTC
svn commit: r714122 - in
/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder:
impl/DefaultProjectBuilder.java listeners/
listeners/PluginExtensionListener.java
Author: sisbell
Date: Fri Nov 14 12:10:52 2008
New Revision: 714122
URL: http://svn.apache.org/viewvc?rev=714122&view=rev
Log:
Checked in support for plugin extension listener. Not using a configurable plexus component yet. The listener is added directly to the transform.
Added:
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/listeners/
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/listeners/PluginExtensionListener.java
Modified:
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java
Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java?rev=714122&r1=714121&r2=714122&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java Fri Nov 14 12:10:52 2008
@@ -33,12 +33,10 @@
import org.apache.maven.project.builder.PomClassicDomainModel;
import org.apache.maven.project.builder.PomClassicTransformer;
import org.apache.maven.project.builder.ProjectBuilder;
+import org.apache.maven.project.builder.listeners.PluginExtensionListener;
import org.apache.maven.project.validation.ModelValidationResult;
import org.apache.maven.project.validation.ModelValidator;
-import org.apache.maven.shared.model.DomainModel;
-import org.apache.maven.shared.model.ImportModel;
-import org.apache.maven.shared.model.InterpolatorProperty;
-import org.apache.maven.shared.model.ModelTransformerContext;
+import org.apache.maven.shared.model.*;
import org.codehaus.plexus.logging.LogEnabled;
import org.codehaus.plexus.logging.Logger;
@@ -178,7 +176,7 @@
transformer,
importModels,
properties,
- null) );
+ Arrays.asList((ModelEventListener) new PluginExtensionListener())) );
try
{
MavenProject mavenProject = new MavenProject( transformedDomainModel.getModel(), artifactFactory,
Added: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/listeners/PluginExtensionListener.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/listeners/PluginExtensionListener.java?rev=714122&view=auto
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/listeners/PluginExtensionListener.java (added)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/listeners/PluginExtensionListener.java Fri Nov 14 12:10:52 2008
@@ -0,0 +1,66 @@
+package org.apache.maven.project.builder.listeners;
+
+import org.apache.maven.shared.model.ModelEventListener;
+import org.apache.maven.shared.model.ModelContainer;
+import org.apache.maven.shared.model.ModelContainerFactory;
+import org.apache.maven.shared.model.ModelProperty;
+import org.apache.maven.project.builder.ProjectUri;
+import org.apache.maven.project.builder.ArtifactModelContainerFactory;
+
+import java.util.List;
+import java.util.Collection;
+import java.util.Arrays;
+import java.util.ArrayList;
+
+public class PluginExtensionListener implements ModelEventListener {
+
+ public void fire(List<ModelContainer> modelContainers) {
+ List<Plugin> pluginsWithExtension = new ArrayList<Plugin>();
+ for (ModelContainer mc : modelContainers) {
+ if(hasExtension(mc)) {
+ pluginsWithExtension.add(new Plugin(mc.getProperties()));
+ }
+ }
+
+ //Do something with plugins here
+ }
+
+ public List<String> getUris() {
+ return Arrays.asList(ProjectUri.Build.Plugins.Plugin.xUri);
+ }
+
+ public Collection<ModelContainerFactory> getModelContainerFactories() {
+ return Arrays.asList((ModelContainerFactory) new ArtifactModelContainerFactory());
+ }
+
+ private static boolean hasExtension(ModelContainer container) {
+ for (ModelProperty mp : container.getProperties()) {
+ if (mp.getUri().equals(ProjectUri.Build.Plugins.Plugin.extensions) && mp.getValue().equals("true")) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private static class Plugin {
+
+ private String groupId;
+
+ private String artifactId;
+
+ private String version;
+
+ Plugin(List<ModelProperty> modelProperties) {
+ for(ModelProperty mp : modelProperties) {
+ if(mp.getUri().equals(ProjectUri.Build.Plugins.Plugin.groupId)) {
+ groupId = mp.getValue();
+ } else if(mp.getUri().equals(ProjectUri.Build.Plugins.Plugin.artifactId)) {
+ artifactId = mp.getValue();
+ } else if(mp.getUri().equals(ProjectUri.Build.Plugins.Plugin.version)) {
+ version = mp.getValue();
+ }
+ //Add additional info if needed
+ }
+ }
+ }
+}