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 20:18:09 UTC

svn commit: r714109 - in /maven/components/trunk: maven-project/src/main/java/org/apache/maven/project/builder/ maven-project/src/main/java/org/apache/maven/project/builder/impl/ maven-shared-model/src/main/java/org/apache/maven/shared/model/

Author: sisbell
Date: Fri Nov 14 11:18:09 2008
New Revision: 714109

URL: http://svn.apache.org/viewvc?rev=714109&view=rev
Log:
Added in Project Event Listeners. Still need to hook up a plexus component and a model container factory for configuring listeners.

Added:
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/ProjectEventListeners.java
    maven/components/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelEventListener.java
Modified:
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/PomClassicTransformer.java
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java
    maven/components/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelTransformer.java
    maven/components/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelTransformerContext.java

Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/PomClassicTransformer.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/PomClassicTransformer.java?rev=714109&r1=714108&r2=714109&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/PomClassicTransformer.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/PomClassicTransformer.java Fri Nov 14 11:18:09 2008
@@ -115,9 +115,9 @@
     }
 
     /**
-     * @see ModelTransformer#transformToDomainModel(java.util.List)
+     * @see ModelTransformer#transformToDomainModel(java.util.List, java.util.List)
      */
-    public DomainModel transformToDomainModel( List<ModelProperty> properties )
+    public DomainModel transformToDomainModel( List<ModelProperty> properties, List<ModelEventListener> eventListeners)
         throws IOException
     {
         if ( properties == null )
@@ -125,6 +125,15 @@
             throw new IllegalArgumentException( "properties: null" );
         }
 
+        if( eventListeners == null )
+        {
+            eventListeners = new ArrayList<ModelEventListener>();
+        }
+        else
+        {
+            eventListeners = new ArrayList<ModelEventListener>(eventListeners);
+        }
+
         List<ModelProperty> props = new ArrayList<ModelProperty>( properties );
 
         //dependency management
@@ -226,6 +235,16 @@
         }
         props.removeAll( removeProperties );
 
+        for(ModelEventListener listener : eventListeners)
+        {
+            ModelDataSource ds = new DefaultModelDataSource();
+            ds.init( props, listener.getModelContainerFactories() );
+            for(String uri : listener.getUris() )
+            {
+                listener.fire(ds.queryFor(uri));
+            }
+        }
+
         String xml = null;
         try
         {

Added: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/ProjectEventListeners.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/ProjectEventListeners.java?rev=714109&view=auto
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/ProjectEventListeners.java (added)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/ProjectEventListeners.java Fri Nov 14 11:18:09 2008
@@ -0,0 +1,4 @@
+package org.apache.maven.project.builder;
+
+public class ProjectEventListeners {
+}

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=714109&r1=714108&r2=714109&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 11:18:09 2008
@@ -177,7 +177,8 @@
                                                                                                 transformer,
                                                                                                 transformer,
                                                                                                 importModels,
-                                                                                                properties ) );
+                                                                                                properties,
+                                                                                                null) );
         try
         {
             MavenProject mavenProject = new MavenProject( transformedDomainModel.getModel(), artifactFactory,

Added: maven/components/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelEventListener.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelEventListener.java?rev=714109&view=auto
==============================================================================
--- maven/components/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelEventListener.java (added)
+++ maven/components/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelEventListener.java Fri Nov 14 11:18:09 2008
@@ -0,0 +1,13 @@
+package org.apache.maven.shared.model;
+
+import java.util.List;
+import java.util.Collection;
+
+public interface ModelEventListener {
+
+    public void fire(List<ModelContainer> modelContainers);
+
+    List<String> getUris();
+    
+    Collection<ModelContainerFactory> getModelContainerFactories();
+}

Modified: maven/components/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelTransformer.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelTransformer.java?rev=714109&r1=714108&r2=714109&view=diff
==============================================================================
--- maven/components/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelTransformer.java (original)
+++ maven/components/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelTransformer.java Fri Nov 14 11:18:09 2008
@@ -39,7 +39,7 @@
      * @param properties list of model properties to transform into domain model. List may not be null.
      * @return domain model
      */
-    DomainModel transformToDomainModel( List<ModelProperty> properties )
+    DomainModel transformToDomainModel( List<ModelProperty> properties, List<ModelEventListener> eventListeners)
         throws IOException;
 
     /**

Modified: maven/components/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelTransformerContext.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelTransformerContext.java?rev=714109&r1=714108&r2=714109&view=diff
==============================================================================
--- maven/components/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelTransformerContext.java (original)
+++ maven/components/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelTransformerContext.java Fri Nov 14 11:18:09 2008
@@ -213,12 +213,24 @@
      * @param interpolatorProperties properties to use during interpolation. @return processed domain model
      * @throws IOException if there was a problem with the transform
      */
-    public DomainModel transform(List<DomainModel> domainModels, ModelTransformer fromModelTransformer,
+    public DomainModel transform(List<DomainModel> domainModels,
+                                 ModelTransformer fromModelTransformer,
                                  ModelTransformer toModelTransformer,
-                                 Collection<ImportModel> importModels, List<InterpolatorProperty> interpolatorProperties)
+                                 Collection<ImportModel> importModels,
+                                 List<InterpolatorProperty> interpolatorProperties,
+                                 List<ModelEventListener> eventListeners)
         throws IOException
     {
 
+        if( eventListeners == null )
+        {
+            eventListeners = new ArrayList<ModelEventListener>();
+        }
+        else
+        {
+            eventListeners = new ArrayList<ModelEventListener>(eventListeners);
+        }
+
         List<ModelProperty> transformedProperties =
                 importModelProperties(importModels, fromModelTransformer.transformToModelProperties( domainModels));
 
@@ -290,7 +302,7 @@
 
         try
         {
-            DomainModel domainModel = toModelTransformer.transformToDomainModel( mps );
+            DomainModel domainModel = toModelTransformer.transformToDomainModel( mps, eventListeners );
             domainModel.setEventHistory(modelDataSource.getEventHistory());
             return domainModel;
         }
@@ -316,7 +328,7 @@
                                   ModelTransformer toModelTransformer )
         throws IOException
     {
-        return this.transform( domainModels, fromModelTransformer, toModelTransformer, null, systemInterpolatorProperties );
+        return this.transform( domainModels, fromModelTransformer, toModelTransformer, null, systemInterpolatorProperties, null );
     }
 
     private static List<ModelProperty> importModelProperties(Collection<ImportModel> importModels,