From eec6ed1e2c8260c1808576f086a9801b500b1699 Mon Sep 17 00:00:00 2001 From: Jason van Zyl Date: Mon, 17 Nov 2008 03:23:35 +0000 Subject: [PATCH] o adding new logic to process build extensions git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@718165 13f79535-47bb-0310-9956-ffa450edef68 --- .../ArtifactModelContainerFactory.java | 3 +- .../builder/impl/DefaultProjectBuilder.java | 4 +- .../listeners/BuildExtensionListener.java | 85 +++++++++++++++++++ .../listeners/PluginExtensionListener.java | 66 -------------- .../maven/shared/model/ModelMarshaller.java | 11 --- 5 files changed, 89 insertions(+), 80 deletions(-) create mode 100644 maven-project/src/main/java/org/apache/maven/project/builder/listeners/BuildExtensionListener.java delete mode 100644 maven-project/src/main/java/org/apache/maven/project/builder/listeners/PluginExtensionListener.java diff --git a/maven-project/src/main/java/org/apache/maven/project/builder/ArtifactModelContainerFactory.java b/maven-project/src/main/java/org/apache/maven/project/builder/ArtifactModelContainerFactory.java index 3d3dd964c0..31c1a7d73b 100644 --- a/maven-project/src/main/java/org/apache/maven/project/builder/ArtifactModelContainerFactory.java +++ b/maven-project/src/main/java/org/apache/maven/project/builder/ArtifactModelContainerFactory.java @@ -42,7 +42,8 @@ public final class ArtifactModelContainerFactory ProjectUri.Build.PluginManagement.Plugins.Plugin.Dependencies.Dependency.xUri, ProjectUri.Build.Plugins.Plugin.xUri, ProjectUri.Build.Plugins.Plugin.Dependencies.Dependency.xUri, - ProjectUri.Build.Plugins.Plugin.Dependencies.Dependency.Exclusions.Exclusion.xUri + ProjectUri.Build.Plugins.Plugin.Dependencies.Dependency.Exclusions.Exclusion.xUri, + ProjectUri.Build.Extensions.Extension.xUri ) ); public Collection getUris() diff --git a/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java b/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java index 8f74e7d1fb..668af95d5a 100644 --- a/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java +++ b/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java @@ -33,7 +33,7 @@ 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.builder.listeners.BuildExtensionListener; import org.apache.maven.project.validation.ModelValidationResult; import org.apache.maven.project.validation.ModelValidator; import org.apache.maven.shared.model.*; @@ -176,7 +176,7 @@ public MavenProject buildFromLocalPath( InputStream pom, List inheritedMo transformer, importModels, properties, - Arrays.asList((ModelEventListener) new PluginExtensionListener())) ); + Arrays.asList((ModelEventListener) new BuildExtensionListener())) ); try { MavenProject mavenProject = new MavenProject( transformedDomainModel.getModel(), artifactFactory, diff --git a/maven-project/src/main/java/org/apache/maven/project/builder/listeners/BuildExtensionListener.java b/maven-project/src/main/java/org/apache/maven/project/builder/listeners/BuildExtensionListener.java new file mode 100644 index 0000000000..0744f03b06 --- /dev/null +++ b/maven-project/src/main/java/org/apache/maven/project/builder/listeners/BuildExtensionListener.java @@ -0,0 +1,85 @@ +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.Iterator; +import java.util.List; +import java.util.Collection; +import java.util.Arrays; +import java.util.ArrayList; + +public class BuildExtensionListener + implements ModelEventListener +{ + public void fire( List modelContainers ) + { + List buildExtensions = new ArrayList(); + for ( ModelContainer mc : modelContainers ) + { + if ( hasExtension( mc ) ) + { + buildExtensions.add( new BuildExtension( mc.getProperties() ) ); + } + } + + for( BuildExtension be : buildExtensions ) + { + System.out.println( "Extension ---> " + be.groupId + " : " + be.artifactId + " : " + be.version ); + } + } + + public List getUris() + { + return Arrays.asList( ProjectUri.Build.Extensions.Extension.xUri ); + } + + public Collection getModelContainerFactories() + { + return Arrays.asList( (ModelContainerFactory) new ArtifactModelContainerFactory() ); + } + + private static boolean hasExtension( ModelContainer container ) + { + for ( ModelProperty mp : container.getProperties() ) + { + if ( mp.getUri().equals( ProjectUri.Build.Extensions.Extension.xUri ) ) + { + return true; + } + } + return false; + } + + private static class BuildExtension + { + private String groupId; + + private String artifactId; + + private String version; + + BuildExtension( List modelProperties ) + { + for ( ModelProperty mp : modelProperties ) + { + if ( mp.getUri().equals( ProjectUri.Build.Extensions.Extension.groupId ) ) + { + groupId = mp.getValue(); + } + else if ( mp.getUri().equals( ProjectUri.Build.Extensions.Extension.artifactId ) ) + { + artifactId = mp.getValue(); + } + else if ( mp.getUri().equals( ProjectUri.Build.Extensions.Extension.version ) ) + { + version = mp.getValue(); + } + } + } + } +} diff --git a/maven-project/src/main/java/org/apache/maven/project/builder/listeners/PluginExtensionListener.java b/maven-project/src/main/java/org/apache/maven/project/builder/listeners/PluginExtensionListener.java deleted file mode 100644 index 4a568596ed..0000000000 --- a/maven-project/src/main/java/org/apache/maven/project/builder/listeners/PluginExtensionListener.java +++ /dev/null @@ -1,66 +0,0 @@ -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 modelContainers) { - List pluginsWithExtension = new ArrayList(); - for (ModelContainer mc : modelContainers) { - if(hasExtension(mc)) { - pluginsWithExtension.add(new Plugin(mc.getProperties())); - } - } - - //Do something with plugins here - } - - public List getUris() { - return Arrays.asList(ProjectUri.Build.Plugins.Plugin.xUri); - } - - public Collection 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 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 - } - } - } -} diff --git a/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelMarshaller.java b/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelMarshaller.java index 6dcd99ca26..95f90cd862 100644 --- a/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelMarshaller.java +++ b/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelMarshaller.java @@ -38,7 +38,6 @@ * Provides methods for marshalling and unmarshalling XML that does not contain attributes. */ public final class ModelMarshaller - implements ModelPropertiesGenerator { /** @@ -47,16 +46,6 @@ public final class ModelMarshaller private ModelMarshaller() { } - - public List generateModelProperties( InputStream inputStream, String baseUri, Set collections ) - throws IOException - { - return marshallXmlToModelProperties( inputStream, baseUri, collections ); - } - - public void registerModelPropertyListener( String uri ) - { - } /** * Returns list of model properties transformed from the specified input stream.