You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jv...@apache.org on 2008/11/25 17:13:29 UTC

svn commit: r720525 - in /maven/components/trunk/maven-core/src: main/java/org/apache/maven/listeners/ test/java/org/apache/maven/listeners/

Author: jvanzyl
Date: Tue Nov 25 08:13:29 2008
New Revision: 720525

URL: http://svn.apache.org/viewvc?rev=720525&view=rev
Log:
o adding missing model extensions i added

Added:
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/listeners/DefaultMavenModelEventProcessor.java   (with props)
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/listeners/MavenModelEventListener.java   (with props)
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/listeners/MavenModelEventProcessor.java   (with props)
    maven/components/trunk/maven-core/src/test/java/org/apache/maven/listeners/
    maven/components/trunk/maven-core/src/test/java/org/apache/maven/listeners/BuildExtensionListenerTest.java   (with props)

Added: maven/components/trunk/maven-core/src/main/java/org/apache/maven/listeners/DefaultMavenModelEventProcessor.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/listeners/DefaultMavenModelEventProcessor.java?rev=720525&view=auto
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/listeners/DefaultMavenModelEventProcessor.java (added)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/listeners/DefaultMavenModelEventProcessor.java Tue Nov 25 08:13:29 2008
@@ -0,0 +1,23 @@
+package org.apache.maven.listeners;
+
+import java.util.List;
+
+import org.apache.maven.execution.MavenSession;
+import org.codehaus.plexus.component.annotations.Component;
+import org.codehaus.plexus.component.annotations.Requirement;
+
+@Component(role = MavenModelEventProcessor.class)
+public class DefaultMavenModelEventProcessor
+    implements MavenModelEventProcessor
+{
+    @Requirement
+    List<MavenModelEventListener> listeners;
+
+    public void processModelContainers( MavenSession session )
+    {
+        for( MavenModelEventListener listener : listeners )
+        {
+            listener.processModelContainers( session );
+        }
+    }        
+}

Propchange: maven/components/trunk/maven-core/src/main/java/org/apache/maven/listeners/DefaultMavenModelEventProcessor.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-core/src/main/java/org/apache/maven/listeners/DefaultMavenModelEventProcessor.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/components/trunk/maven-core/src/main/java/org/apache/maven/listeners/MavenModelEventListener.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/listeners/MavenModelEventListener.java?rev=720525&view=auto
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/listeners/MavenModelEventListener.java (added)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/listeners/MavenModelEventListener.java Tue Nov 25 08:13:29 2008
@@ -0,0 +1,10 @@
+package org.apache.maven.listeners;
+
+import org.apache.maven.execution.MavenSession;
+import org.apache.maven.shared.model.ModelEventListener;
+
+public interface MavenModelEventListener
+    extends ModelEventListener
+{
+    void processModelContainers( MavenSession session );
+}

Propchange: maven/components/trunk/maven-core/src/main/java/org/apache/maven/listeners/MavenModelEventListener.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-core/src/main/java/org/apache/maven/listeners/MavenModelEventListener.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/components/trunk/maven-core/src/main/java/org/apache/maven/listeners/MavenModelEventProcessor.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/listeners/MavenModelEventProcessor.java?rev=720525&view=auto
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/listeners/MavenModelEventProcessor.java (added)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/listeners/MavenModelEventProcessor.java Tue Nov 25 08:13:29 2008
@@ -0,0 +1,8 @@
+package org.apache.maven.listeners;
+
+import org.apache.maven.execution.MavenSession;
+
+public interface MavenModelEventProcessor
+{
+    void processModelContainers( MavenSession session );
+}

Propchange: maven/components/trunk/maven-core/src/main/java/org/apache/maven/listeners/MavenModelEventProcessor.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-core/src/main/java/org/apache/maven/listeners/MavenModelEventProcessor.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/components/trunk/maven-core/src/test/java/org/apache/maven/listeners/BuildExtensionListenerTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/test/java/org/apache/maven/listeners/BuildExtensionListenerTest.java?rev=720525&view=auto
==============================================================================
--- maven/components/trunk/maven-core/src/test/java/org/apache/maven/listeners/BuildExtensionListenerTest.java (added)
+++ maven/components/trunk/maven-core/src/test/java/org/apache/maven/listeners/BuildExtensionListenerTest.java Tue Nov 25 08:13:29 2008
@@ -0,0 +1,103 @@
+package org.apache.maven.listeners;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.apache.maven.execution.DefaultMavenExecutionRequest;
+import org.apache.maven.execution.DuplicateProjectException;
+import org.apache.maven.execution.MavenExecutionRequest;
+import org.apache.maven.execution.MavenSession;
+import org.apache.maven.execution.ReactorManager;
+import org.apache.maven.model.Model;
+import org.apache.maven.monitor.event.DefaultEventDispatcher;
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.project.builder.ProjectUri;
+import org.apache.maven.shared.model.ModelContainer;
+import org.apache.maven.shared.model.ModelContainerAction;
+import org.apache.maven.shared.model.ModelProperty;
+import org.apache.maven.wagon.Wagon;
+import org.codehaus.plexus.PlexusTestCase;
+import org.codehaus.plexus.util.dag.CycleDetectedException;
+
+public class BuildExtensionListenerTest
+    extends PlexusTestCase
+{
+    public void testBuildExtensionListener()
+        throws Exception
+    {
+        BuildExtensionListener listener = (BuildExtensionListener) lookup( MavenModelEventListener.class, "extensions" );
+
+        // Create the model properties and the model container to feed to the event firing
+        List<ModelProperty> modelProperties = new ArrayList<ModelProperty>();
+        modelProperties.add( new ModelProperty( ProjectUri.Build.Extensions.Extension.xUri, null ) );
+        modelProperties.add( new ModelProperty( ProjectUri.Build.Extensions.Extension.groupId, "org.apache.maven.wagon" ) );
+        modelProperties.add( new ModelProperty( ProjectUri.Build.Extensions.Extension.artifactId, "wagon-webdav" ) );
+        modelProperties.add( new ModelProperty( ProjectUri.Build.Extensions.Extension.version, "1.0-beta-2" ) );
+        ModelContainer container = new TestModelContainer( modelProperties );
+
+        // Fire the event.
+        listener.fire( Arrays.asList( container ) );
+
+        try
+        {
+            lookup( Wagon.class, "dav" );
+            fail( "The lookup for the wagon dav extension should not be possible yet." );
+        }
+        catch( Exception e )
+        {
+            // We should get an exception.
+        }
+        
+        // Process the data we have collected.
+        listener.processModelContainers( newMavenSession() );
+        
+        // Now we should be able to find the extension.
+        lookup( Wagon.class, "dav" );        
+    }
+
+    private MavenSession newMavenSession()
+        throws CycleDetectedException, DuplicateProjectException
+    {
+        Model model = new Model();
+        model.setGroupId( "group" );
+        model.setArtifactId( "artifact" );
+        model.setVersion( "1" );
+
+        MavenProject project = new MavenProject( model );
+        ReactorManager rm = new ReactorManager( Collections.singletonList( project ), ReactorManager.FAIL_FAST );
+        MavenExecutionRequest request = new DefaultMavenExecutionRequest();
+        request.setLocalRepositoryPath( new File( "/Users/jvanzyl/.m2/repository" ) );        
+        MavenSession session = new MavenSession( getContainer(), request, new DefaultEventDispatcher(), rm );
+
+        return session;
+    }
+
+    public class TestModelContainer
+        implements ModelContainer
+    {
+        List<ModelProperty> modelProperties;
+
+        public TestModelContainer( List<ModelProperty> properties )
+        {
+            this.modelProperties = properties;
+        }
+
+        public List<ModelProperty> getProperties()
+        {
+            return new ArrayList<ModelProperty>( modelProperties );
+        }
+
+        public ModelContainerAction containerAction( ModelContainer modelContainer )
+        {
+            return null;
+        }
+
+        public ModelContainer createNewInstance( List<ModelProperty> modelProperties )
+        {
+            return null;
+        }
+    }
+}

Propchange: maven/components/trunk/maven-core/src/test/java/org/apache/maven/listeners/BuildExtensionListenerTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-core/src/test/java/org/apache/maven/listeners/BuildExtensionListenerTest.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"



Re: svn commit: r720525 - in /maven/components/trunk/maven-core/src: main/java/org/apache/maven/listeners/ test/java/org/apache/maven/listeners/

Posted by Benjamin Bentmann <be...@udo.edu>.
Barrie Treloar wrote:

> On Wed, Nov 26, 2008 at 2:49 AM, Benjamin Bentmann
> <be...@udo.edu> wrote:
>>> +        request.setLocalRepositoryPath( new File(
>>> "/Users/jvanzyl/.m2/repository" ) );
>> This path might be troublesome for others...
> 
> Hahahaha.
> Only for those that aren't jason clones :)

Hm, you make me curious: How many of those are floating around here ;-) ?


Benjamin

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


Re: svn commit: r720525 - in /maven/components/trunk/maven-core/src: main/java/org/apache/maven/listeners/ test/java/org/apache/maven/listeners/

Posted by Barrie Treloar <ba...@gmail.com>.
On Wed, Nov 26, 2008 at 2:49 AM, Benjamin Bentmann
<be...@udo.edu> wrote:
>> +        request.setLocalRepositoryPath( new File(
>> "/Users/jvanzyl/.m2/repository" ) );
>
> This path might be troublesome for others...

Hahahaha.
Only for those that aren't jason clones :)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


Re: svn commit: r720525 - in /maven/components/trunk/maven-core/src: main/java/org/apache/maven/listeners/ test/java/org/apache/maven/listeners/

Posted by Benjamin Bentmann <be...@udo.edu>.
jvanzyl wrote:

> Author: jvanzyl
> Date: Tue Nov 25 08:13:29 2008
> New Revision: 720525
> 
> URL: http://svn.apache.org/viewvc?rev=720525&view=rev
> Log:
> o adding missing model extensions i added
> 
> Added:
>     maven/components/trunk/maven-core/src/main/java/org/apache/maven/listeners/DefaultMavenModelEventProcessor.java   (with props)
>     maven/components/trunk/maven-core/src/main/java/org/apache/maven/listeners/MavenModelEventListener.java   (with props)
>     maven/components/trunk/maven-core/src/main/java/org/apache/maven/listeners/MavenModelEventProcessor.java   (with props)
>     maven/components/trunk/maven-core/src/test/java/org/apache/maven/listeners/
>     maven/components/trunk/maven-core/src/test/java/org/apache/maven/listeners/BuildExtensionListenerTest.java   (with props)
> 
> +    private MavenSession newMavenSession()
> +        throws CycleDetectedException, DuplicateProjectException
> +    {
> +        Model model = new Model();
> +        model.setGroupId( "group" );
> +        model.setArtifactId( "artifact" );
> +        model.setVersion( "1" );
> +
> +        MavenProject project = new MavenProject( model );
> +        ReactorManager rm = new ReactorManager( Collections.singletonList( project ), ReactorManager.FAIL_FAST );
> +        MavenExecutionRequest request = new DefaultMavenExecutionRequest();
> +        request.setLocalRepositoryPath( new File( "/Users/jvanzyl/.m2/repository" ) );        

This path might be troublesome for others...


Benjamin

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org