You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jd...@apache.org on 2011/07/30 00:54:21 UTC

svn commit: r1152392 - in /maven/sandbox/trunk/mae: ./ boms/mae-library-bom/ mae-api/ mae-api/src/main/java/org/apache/maven/mae/conf/ mae-api/src/main/java/org/apache/maven/mae/internal/container/ mae-api/src/test/java/org/apache/maven/mae/ mae-booter...

Author: jdcasey
Date: Fri Jul 29 22:54:19 2011
New Revision: 1152392

URL: http://svn.apache.org/viewvc?rev=1152392&view=rev
Log:
Removing mae-container and switching to rely on modified version of sisu, which is explained in the README.markdown file

Removed:
    maven/sandbox/trunk/mae/mae-container/
Modified:
    maven/sandbox/trunk/mae/README.markdown
    maven/sandbox/trunk/mae/boms/mae-library-bom/pom.xml
    maven/sandbox/trunk/mae/mae-api/pom.xml
    maven/sandbox/trunk/mae/mae-api/src/main/java/org/apache/maven/mae/conf/AbstractMAELibrary.java
    maven/sandbox/trunk/mae/mae-api/src/main/java/org/apache/maven/mae/conf/MAEConfiguration.java
    maven/sandbox/trunk/mae/mae-api/src/main/java/org/apache/maven/mae/conf/MAELibrary.java
    maven/sandbox/trunk/mae/mae-api/src/main/java/org/apache/maven/mae/internal/container/ComponentKey.java
    maven/sandbox/trunk/mae/mae-api/src/main/java/org/apache/maven/mae/internal/container/ComponentSelector.java
    maven/sandbox/trunk/mae/mae-api/src/main/java/org/apache/maven/mae/internal/container/InstanceRegistry.java
    maven/sandbox/trunk/mae/mae-api/src/main/java/org/apache/maven/mae/internal/container/ServiceAuthorizer.java
    maven/sandbox/trunk/mae/mae-api/src/main/java/org/apache/maven/mae/internal/container/VirtualInstance.java
    maven/sandbox/trunk/mae/mae-api/src/test/java/org/apache/maven/mae/ComponentSelectorTest.java
    maven/sandbox/trunk/mae/mae-booter/pom.xml
    maven/sandbox/trunk/mae/mae-booter/src/main/java/org/apache/maven/mae/app/AbstractMAEApplication.java
    maven/sandbox/trunk/mae/mae-booter/src/main/java/org/apache/maven/mae/boot/embed/MAEEmbedder.java
    maven/sandbox/trunk/mae/mae-booter/src/main/java/org/apache/maven/mae/boot/embed/MAEEmbedderBuilder.java
    maven/sandbox/trunk/mae/mae-components/mae-project-tools/pom.xml
    maven/sandbox/trunk/mae/pom.xml

Modified: maven/sandbox/trunk/mae/README.markdown
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mae/README.markdown?rev=1152392&r1=1152391&r2=1152392&view=diff
==============================================================================
--- maven/sandbox/trunk/mae/README.markdown (original)
+++ maven/sandbox/trunk/mae/README.markdown Fri Jul 29 22:54:19 2011
@@ -1,10 +1,24 @@
-# EMB - Extensible, Modular Builds #
+# MAE - Maven App Engine #
 
-EMB is a build tool that wraps and extends [Apache Maven](http://maven.apache.org/). Its goal is to provide a mechanism for changing the core functionality of Maven using sets of add-on libraries.
+Maven App Engine is a wrapper around Apache Maven, which focuses on making it easy to embed Maven and make use of its components inside a third-party application.
+
+## Before You Start ##
+
+Before you can build MAE, you'll need a special variant of Sonatype's Sisu Plexus Container. You can find it here:
+
+[https://github.com/jdcasey/sisu/tree/2.1.1-selectable](https://github.com/jdcasey/sisu/tree/2.1.1-selectable)
+
+To build:
+
+    $ git clone https://github.com/jdcasey/sisu.git
+    $ cd sisu
+    $ git fetch origin 2.1.1-selectable
+    $ git checkout 2.1.1-selectable
+    $ mvn clean install
 
 ## Getting Started ##
 
-The simplest way to use EMB is via the emb-booter. To do this, first add a dependency in your POM to emb-booter:
+The simplest way to use MAE is via the mae-booter. To do this, first add a dependency in your POM to mae-booter:
 
     <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
@@ -14,35 +28,34 @@ The simplest way to use EMB is via the e
       <version>1.0-SNAPSHOT</version>
       <properties>
         <mavenVersion>3.0-beta-2</mavenVersion>
-        <embVersion>0.3-SNAPSHOT</embVersion>
       </properties>
       <dependencies>
         <dependency>
-          <groupId>org.commonjava.emb</groupId>
-          <artifactId>emb-booter</artifactId>
-          <version>${embVersion}</version>
+          <groupId>org.apache.maven.mae</groupId>
+          <artifactId>mae-booter</artifactId>
+          <version>1.0-alpha-1-SNAPSHOT</version>
         </dependency>
       </dependencies>
     </project>
 
-Then, create a new EMBEmbedder instance, and use it to build a project:
+Then, create a new MAEEmbedder instance, and use it to build a project:
 
     List<String> goals = new ArrayList<String>();
     goals.add( "clean" );
     goals.add( "install" );
 
-    new EMBEmbedderBuilder().build().execute( new EMBExecutionRequest().setGoals( goals ) );
+    new MAEEmbedderBuilder().build().execute( new MAEExecutionRequest().setGoals( goals ) );
   
 ## Using Services ##
 
 You can use allowed Maven components via the ServiceManager. For instance, to resolve an artifact:
 
-    EMBEmbeder emb = new EMBEmbedderBuilder().build();
-    emb.serviceManager().repositorySystem().resolve( artifact );
+    MAEEmbedder mae = new MAEEmbedderBuilder().build();
+    mae.serviceManager().repositorySystem().resolve( artifact );
   
 Or, to build a set of MavenProject instances from POM files:
 
-    EMBEmbeder emb = new EMBEmbedderBuilder().build();
+    MAEEmbedder mae = new MAEEmbedderBuilder().build();
     
     ProjectBuildingRequest req = new DefaultProjectBuildingRequest()
                                       .setSystemProperties( System.getProperties() )
@@ -50,11 +63,11 @@ Or, to build a set of MavenProject insta
                                       .setForceUpdate( true )
                                       .setProcessPlugins( false )
                                       .setRepositoryCache( new InternalRepositoryCache() )
-                                      .setLocalRepository( emb.serviceManager()
+                                      .setLocalRepository( mae.serviceManager()
                                                               .repositorySystem()
                                                               .createLocalRepository( new File( workDir, "local-repository" ) ) );
                              
-    List<ProjectBuildingResult> results = emb.serviceManager().projectBuilder().build( pomFiles, useReactor, req );
+    List<ProjectBuildingResult> results = mae.serviceManager().projectBuilder().build( pomFiles, useReactor, req );
     
     List<MavenProject> projects = new ArrayList<MavenProject>( pomFiles.size() );
     for ( final ProjectBuildingResult result : results )

Modified: maven/sandbox/trunk/mae/boms/mae-library-bom/pom.xml
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mae/boms/mae-library-bom/pom.xml?rev=1152392&r1=1152391&r2=1152392&view=diff
==============================================================================
--- maven/sandbox/trunk/mae/boms/mae-library-bom/pom.xml (original)
+++ maven/sandbox/trunk/mae/boms/mae-library-bom/pom.xml Fri Jul 29 22:54:19 2011
@@ -29,6 +29,11 @@
   
   <dependencyManagement>
     <dependencies>
+      <dependency>
+      	<groupId>org.sonatype.sisu</groupId>
+      	<artifactId>sisu-inject-plexus</artifactId>
+      	<version>2.1.1-selectable-1-SNAPSHOT</version>
+      </dependency>
       <!-- <dependency>
         <groupId>org.apache.maven.mae.event</groupId>
         <artifactId>mae-event-api</artifactId>

Modified: maven/sandbox/trunk/mae/mae-api/pom.xml
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mae/mae-api/pom.xml?rev=1152392&r1=1152391&r2=1152392&view=diff
==============================================================================
--- maven/sandbox/trunk/mae/mae-api/pom.xml (original)
+++ maven/sandbox/trunk/mae/mae-api/pom.xml Fri Jul 29 22:54:19 2011
@@ -78,6 +78,16 @@
     	<version>1</version>
     	<scope>provided</scope>
     </dependency>
+    <!-- <dependency>
+      <groupId>org.sonatype.sisu.inject</groupId>
+      <artifactId>guice-bean-locators</artifactId>
+      <version>2.1.1-selectable-1-SNAPSHOT</version>
+    </dependency> -->
+    <dependency>
+    	<groupId>org.sonatype.sisu</groupId>
+    	<artifactId>sisu-inject-plexus</artifactId>
+    	<version>2.1.1-selectable-1-SNAPSHOT</version>
+    </dependency>
   </dependencies>
   
 </project>

Modified: maven/sandbox/trunk/mae/mae-api/src/main/java/org/apache/maven/mae/conf/AbstractMAELibrary.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mae/mae-api/src/main/java/org/apache/maven/mae/conf/AbstractMAELibrary.java?rev=1152392&r1=1152391&r2=1152392&view=diff
==============================================================================
--- maven/sandbox/trunk/mae/mae-api/src/main/java/org/apache/maven/mae/conf/AbstractMAELibrary.java (original)
+++ maven/sandbox/trunk/mae/mae-api/src/main/java/org/apache/maven/mae/conf/AbstractMAELibrary.java Fri Jul 29 22:54:19 2011
@@ -23,9 +23,9 @@ import org.apache.log4j.Logger;
 import org.apache.maven.mae.conf.ext.ExtensionConfiguration;
 import org.apache.maven.mae.conf.ext.ExtensionConfigurationException;
 import org.apache.maven.mae.conf.ext.ExtensionConfigurationLoader;
-import org.apache.maven.mae.internal.container.ComponentKey;
-import org.apache.maven.mae.internal.container.ComponentSelector;
-import org.apache.maven.mae.internal.container.InstanceRegistry;
+import org.sonatype.guice.bean.locators.ComponentKey;
+import org.sonatype.guice.bean.locators.ComponentSelector;
+import org.sonatype.guice.bean.locators.InstanceRegistry;
 
 import java.util.HashMap;
 import java.util.HashSet;

Modified: maven/sandbox/trunk/mae/mae-api/src/main/java/org/apache/maven/mae/conf/MAEConfiguration.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mae/mae-api/src/main/java/org/apache/maven/mae/conf/MAEConfiguration.java?rev=1152392&r1=1152391&r2=1152392&view=diff
==============================================================================
--- maven/sandbox/trunk/mae/mae-api/src/main/java/org/apache/maven/mae/conf/MAEConfiguration.java (original)
+++ maven/sandbox/trunk/mae/mae-api/src/main/java/org/apache/maven/mae/conf/MAEConfiguration.java Fri Jul 29 22:54:19 2011
@@ -21,10 +21,10 @@ package org.apache.maven.mae.conf;
 
 import org.apache.maven.mae.MAEExecutionRequest;
 import org.apache.maven.mae.conf.ext.ExtensionConfiguration;
-import org.apache.maven.mae.internal.container.ComponentKey;
-import org.apache.maven.mae.internal.container.ComponentSelector;
-import org.apache.maven.mae.internal.container.InstanceRegistry;
 import org.apache.maven.mae.internal.container.ServiceAuthorizer;
+import org.sonatype.guice.bean.locators.ComponentKey;
+import org.sonatype.guice.bean.locators.ComponentSelector;
+import org.sonatype.guice.bean.locators.InstanceRegistry;
 
 import java.io.File;
 import java.io.InputStream;

Modified: maven/sandbox/trunk/mae/mae-api/src/main/java/org/apache/maven/mae/conf/MAELibrary.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mae/mae-api/src/main/java/org/apache/maven/mae/conf/MAELibrary.java?rev=1152392&r1=1152391&r2=1152392&view=diff
==============================================================================
--- maven/sandbox/trunk/mae/mae-api/src/main/java/org/apache/maven/mae/conf/MAELibrary.java (original)
+++ maven/sandbox/trunk/mae/mae-api/src/main/java/org/apache/maven/mae/conf/MAELibrary.java Fri Jul 29 22:54:19 2011
@@ -22,9 +22,9 @@ package org.apache.maven.mae.conf;
 import org.apache.log4j.Logger;
 import org.apache.maven.mae.conf.ext.ExtensionConfiguration;
 import org.apache.maven.mae.conf.ext.ExtensionConfigurationException;
-import org.apache.maven.mae.internal.container.ComponentKey;
-import org.apache.maven.mae.internal.container.ComponentSelector;
-import org.apache.maven.mae.internal.container.InstanceRegistry;
+import org.sonatype.guice.bean.locators.ComponentKey;
+import org.sonatype.guice.bean.locators.ComponentSelector;
+import org.sonatype.guice.bean.locators.InstanceRegistry;
 
 import java.util.Map;
 import java.util.Set;

Modified: maven/sandbox/trunk/mae/mae-api/src/main/java/org/apache/maven/mae/internal/container/ComponentKey.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mae/mae-api/src/main/java/org/apache/maven/mae/internal/container/ComponentKey.java?rev=1152392&r1=1152391&r2=1152392&view=diff
==============================================================================
--- maven/sandbox/trunk/mae/mae-api/src/main/java/org/apache/maven/mae/internal/container/ComponentKey.java (original)
+++ maven/sandbox/trunk/mae/mae-api/src/main/java/org/apache/maven/mae/internal/container/ComponentKey.java Fri Jul 29 22:54:19 2011
@@ -19,110 +19,32 @@
 
 package org.apache.maven.mae.internal.container;
 
-import static org.codehaus.plexus.util.StringUtils.isBlank;
-
+/**
+ * Use {@link org.sonatype.guice.bean.locators.ComponentKey} instead.
+ */
+@Deprecated
 public class ComponentKey<T>
+    extends org.sonatype.guice.bean.locators.ComponentKey<T>
 {
 
-    public static final String DEFAULT_HINT = "default".intern();
-
-    public static final String LITERAL_SUFFIX = "_";
-
-    private final Class<T> roleClass;
-
-    private final String hint;
-
     public ComponentKey( final Class<T> role, final String hint )
     {
-        roleClass = role;
-        this.hint = isBlank( hint ) || DEFAULT_HINT.equals( hint ) ? DEFAULT_HINT : hint.intern();
+        super( role, hint );
     }
 
     public ComponentKey( final Class<T> role )
     {
-        roleClass = role;
-        hint = DEFAULT_HINT;
-    }
-
-    public String getRole()
-    {
-        return roleClass.getName();
-    }
-
-    public String getHint()
-    {
-        return hint;
-    }
-
-    public String key()
-    {
-        return roleClass + ( DEFAULT_HINT.equals( hint ) ? "" : "#" + hint );
-    }
-
-    @Override
-    public String toString()
-    {
-        return key();
-    }
-
-    @Override
-    public int hashCode()
-    {
-        final int prime = 31;
-        int result = 1;
-        result = prime * result + hint.hashCode();
-        result = prime * result + roleClass.getName().hashCode();
-        return result;
-    }
-
-    @Override
-    public boolean equals( final Object obj )
-    {
-        if ( this == obj )
-        {
-            return true;
-        }
-        if ( obj == null )
-        {
-            return false;
-        }
-        if ( getClass() != obj.getClass() )
-        {
-            return false;
-        }
-
-        final ComponentKey<?> other = ComponentKey.class.cast( obj );
-        if ( !hint.equals( other.hint ) )
-        {
-            return false;
-        }
-
-        if ( !roleClass.getName().equals( other.roleClass.getName() ) )
-        {
-            return false;
-        }
-
-        return true;
-    }
-
-    public Class<T> getRoleClass()
-    {
-        return roleClass;
-    }
-
-    public T castValue( final Object instance )
-    {
-        return instance == null ? null : roleClass.cast( instance );
+        super( role );
     }
 
     public static boolean isLiteral( final String value )
     {
-        return value != null && value.length() > 1 && value.endsWith( LITERAL_SUFFIX );
+        return org.sonatype.guice.bean.locators.ComponentKey.isLiteral( value );
     }
 
     public static String getLiteralHint( final String value )
     {
-        return isLiteral( value ) ? value.substring( 0, value.length() - 1 ) : value;
+        return org.sonatype.guice.bean.locators.ComponentKey.getLiteralHint( value );
     }
 
 }

Modified: maven/sandbox/trunk/mae/mae-api/src/main/java/org/apache/maven/mae/internal/container/ComponentSelector.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mae/mae-api/src/main/java/org/apache/maven/mae/internal/container/ComponentSelector.java?rev=1152392&r1=1152391&r2=1152392&view=diff
==============================================================================
--- maven/sandbox/trunk/mae/mae-api/src/main/java/org/apache/maven/mae/internal/container/ComponentSelector.java (original)
+++ maven/sandbox/trunk/mae/mae-api/src/main/java/org/apache/maven/mae/internal/container/ComponentSelector.java Fri Jul 29 22:54:19 2011
@@ -19,91 +19,11 @@
 
 package org.apache.maven.mae.internal.container;
 
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
+/**
+ * Use {@link org.sonatype.guice.bean.locators.ComponentSelector} instead.
+ */
+@Deprecated
 public class ComponentSelector
+    extends org.sonatype.guice.bean.locators.ComponentSelector
 {
-
-    private Map<ComponentKey<?>, ComponentKey<?>> remappedComponentHints =
-        new HashMap<ComponentKey<?>, ComponentKey<?>>();
-
-    public ComponentSelector()
-    {
-    }
-
-    public ComponentSelector merge( final ComponentSelector selectorToCopy )
-    {
-        if ( selectorToCopy != null && !selectorToCopy.isEmpty() )
-        {
-            final Map<ComponentKey<?>, ComponentKey<?>> result = new HashMap<ComponentKey<?>, ComponentKey<?>>();
-            result.putAll( selectorToCopy.remappedComponentHints );
-
-            if ( !remappedComponentHints.isEmpty() )
-            {
-                result.putAll( remappedComponentHints );
-            }
-
-            remappedComponentHints = result;
-        }
-
-        return this;
-    }
-
-    public boolean isEmpty()
-    {
-        return remappedComponentHints.isEmpty();
-    }
-
-    public <T> boolean hasOverride( final Class<T> role, final String hint )
-    {
-        final ComponentKey<T> check = new ComponentKey<T>( role, hint );
-        return remappedComponentHints.containsKey( check );
-    }
-
-    public <T> boolean hasOverride( final Class<T> role )
-    {
-        final ComponentKey<T> check = new ComponentKey<T>( role );
-        return remappedComponentHints.containsKey( check );
-    }
-
-    public Set<ComponentKey<?>> getKeysOverriddenBy( final Class<?> role, final String hint )
-    {
-        @SuppressWarnings( { "rawtypes", "unchecked" } )
-        final ComponentKey check = new ComponentKey( role, hint );
-
-        final Set<ComponentKey<?>> result = new HashSet<ComponentKey<?>>();
-        for ( final Map.Entry<ComponentKey<?>, ComponentKey<?>> mapping : remappedComponentHints.entrySet() )
-        {
-            if ( mapping.getValue().equals( check ) )
-            {
-                result.add( mapping.getKey() );
-            }
-        }
-
-        return result;
-    }
-
-    public <T> ComponentSelector setSelection( final ComponentKey<T> originalKey, final String newHint )
-    {
-        remappedComponentHints.put( originalKey, new ComponentKey<T>( originalKey.getRoleClass(), newHint ) );
-        return this;
-    }
-
-    public <T> ComponentSelector setSelection( final Class<T> role, final String oldHint, final String newHint )
-    {
-        final ComponentKey<T> originalKey = new ComponentKey<T>( role, oldHint );
-        remappedComponentHints.put( originalKey, new ComponentKey<T>( role, newHint ) );
-        return this;
-    }
-
-    public <T> ComponentSelector setSelection( final Class<T> role, final String newHint )
-    {
-        final ComponentKey<T> originalKey = new ComponentKey<T>( role );
-        remappedComponentHints.put( originalKey, new ComponentKey<T>( role, newHint ) );
-        return this;
-    }
-
 }

Modified: maven/sandbox/trunk/mae/mae-api/src/main/java/org/apache/maven/mae/internal/container/InstanceRegistry.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mae/mae-api/src/main/java/org/apache/maven/mae/internal/container/InstanceRegistry.java?rev=1152392&r1=1152391&r2=1152392&view=diff
==============================================================================
--- maven/sandbox/trunk/mae/mae-api/src/main/java/org/apache/maven/mae/internal/container/InstanceRegistry.java (original)
+++ maven/sandbox/trunk/mae/mae-api/src/main/java/org/apache/maven/mae/internal/container/InstanceRegistry.java Fri Jul 29 22:54:19 2011
@@ -19,182 +19,17 @@
 
 package org.apache.maven.mae.internal.container;
 
-import java.util.HashMap;
-import java.util.Map;
-
+/**
+ * Use {@link org.sonatype.guice.bean.locators.InstanceRegistry} instead.
+ */
+@Deprecated
 public class InstanceRegistry
+    extends org.sonatype.guice.bean.locators.InstanceRegistry
 {
 
-    private final Map<ComponentKey<?>, Object> instances = new HashMap<ComponentKey<?>, Object>();
-
-    public InstanceRegistry()
-    {
-    }
-
     public InstanceRegistry( final InstanceRegistry... delegates )
     {
-        if ( delegates != null && delegates.length > 0 )
-        {
-            for ( final InstanceRegistry delegate : delegates )
-            {
-                overrideMerge( delegate );
-            }
-        }
-    }
-
-    public boolean has( final ComponentKey<?> key )
-    {
-        if ( key == null )
-        {
-            return false;
-        }
-
-        return instances.containsKey( key );
-    }
-
-    public <T> boolean has( final Class<T> role, final String hint )
-    {
-        return has( new ComponentKey<T>( role, hint ) );
-    }
-
-    public <T> T get( final ComponentKey<T> key )
-    {
-        return key.castValue( instances.get( key ) );
-    }
-
-    public <T> T get( final Class<T> role, final String hint )
-    {
-        return get( new ComponentKey<T>( role, hint ) );
-    }
-
-    public <C, T extends C> InstanceRegistry add( final ComponentKey<C> key, final T instance )
-    {
-        if ( instance != null )
-        {
-            instances.put( key, instance );
-        }
-        return this;
-    }
-
-    public <C, T extends C> InstanceRegistry add( final Class<C> role, final String hint, final T instance )
-    {
-        if ( role == null )
-        {
-            throw new NullPointerException( "Role class is null." );
-        }
-
-        if ( instance == null )
-        {
-            throw new NullPointerException( "Instance is null." );
-        }
-
-        if ( !role.isAssignableFrom( instance.getClass() ) )
-        {
-            throw new IllegalArgumentException( "Instance class: " + instance.getClass().getName()
-                            + " is not assignable to role: " + role.getClass() );
-        }
-
-        return add( new ComponentKey<C>( role, hint ), instance );
-    }
-
-    public <C, T extends C> InstanceRegistry add( final Class<C> role, final T instance )
-    {
-        if ( role == null )
-        {
-            throw new NullPointerException( "Role class is null." );
-        }
-
-        if ( instance == null )
-        {
-            throw new NullPointerException( "Instance is null." );
-        }
-
-        if ( !role.isAssignableFrom( instance.getClass() ) )
-        {
-            throw new IllegalArgumentException( "Instance class: " + instance.getClass().getName()
-                            + " is not assignable to role: " + role.getClass() );
-        }
-
-        return add( new ComponentKey<C>( role ), instance );
-    }
-
-    @SuppressWarnings( { "unchecked", "rawtypes" } )
-    public <C, T extends C> InstanceRegistry setVirtualInstance( final ComponentKey<C> key, final T instance )
-    {
-        final Object virt = instances.get( key );
-        if ( virt != null && ( virt instanceof VirtualInstance ) )
-        {
-            final VirtualInstance vi = (VirtualInstance) virt;
-            if ( vi.getVirtualClass().equals( key.getRoleClass() ) && vi.getRawInstance() == null )
-            {
-                vi.setInstance( instance );
-            }
-        }
-
-        return this;
-    }
-
-    public <C, T extends C> InstanceRegistry setVirtualInstance( final Class<C> role, final String hint,
-                                                                 final T instance )
-    {
-        return setVirtualInstance( new ComponentKey<C>( role, hint ), instance );
-    }
-
-    public <C, T extends C> InstanceRegistry setVirtualInstance( final Class<C> role, final T instance )
-    {
-        return setVirtualInstance( new ComponentKey<C>( role ), instance );
-    }
-
-    public <T> InstanceRegistry addVirtual( final ComponentKey<T> key, final VirtualInstance<T> virt )
-    {
-        instances.put( key, virt );
-        return this;
-    }
-
-    public <T> InstanceRegistry addVirtual( final String hint, final VirtualInstance<T> instance )
-    {
-        if ( instance == null )
-        {
-            throw new NullPointerException( "Instance is null." );
-        }
-
-        return addVirtual( new ComponentKey<T>( instance.getVirtualClass(), hint ), instance );
+        super( delegates );
     }
-
-    public <T> InstanceRegistry addVirtual( final VirtualInstance<T> instance )
-    {
-        if ( instance == null )
-        {
-            throw new NullPointerException( "Instance is null." );
-        }
-
-        return addVirtual( new ComponentKey<T>( instance.getVirtualClass() ), instance );
-    }
-
-    public InstanceRegistry overrideMerge( final InstanceRegistry instanceRegistry )
-    {
-        if ( !instanceRegistry.instances.isEmpty() )
-        {
-            instances.putAll( instanceRegistry.instances );
-        }
-
-        return this;
-    }
-
-    public Map<ComponentKey<?>, Object> getInstances()
-    {
-        return instances;
-    }
-
-    @SuppressWarnings( "unchecked" )
-    public <T> InstanceRegistry add( final T instance )
-    {
-        if ( instance == null )
-        {
-            throw new NullPointerException( "Instance is null." );
-        }
-
-        return add( new ComponentKey<T>( (Class<T>) instance.getClass() ), instance );
-    }
-
+    
 }

Modified: maven/sandbox/trunk/mae/mae-api/src/main/java/org/apache/maven/mae/internal/container/ServiceAuthorizer.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mae/mae-api/src/main/java/org/apache/maven/mae/internal/container/ServiceAuthorizer.java?rev=1152392&r1=1152391&r2=1152392&view=diff
==============================================================================
--- maven/sandbox/trunk/mae/mae-api/src/main/java/org/apache/maven/mae/internal/container/ServiceAuthorizer.java (original)
+++ maven/sandbox/trunk/mae/mae-api/src/main/java/org/apache/maven/mae/internal/container/ServiceAuthorizer.java Fri Jul 29 22:54:19 2011
@@ -21,6 +21,8 @@ package org.apache.maven.mae.internal.co
 
 import java.util.Set;
 
+import org.sonatype.guice.bean.locators.ComponentKey;
+
 public class ServiceAuthorizer
 {
 

Modified: maven/sandbox/trunk/mae/mae-api/src/main/java/org/apache/maven/mae/internal/container/VirtualInstance.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mae/mae-api/src/main/java/org/apache/maven/mae/internal/container/VirtualInstance.java?rev=1152392&r1=1152391&r2=1152392&view=diff
==============================================================================
--- maven/sandbox/trunk/mae/mae-api/src/main/java/org/apache/maven/mae/internal/container/VirtualInstance.java (original)
+++ maven/sandbox/trunk/mae/mae-api/src/main/java/org/apache/maven/mae/internal/container/VirtualInstance.java Fri Jul 29 22:54:19 2011
@@ -19,50 +19,17 @@
 
 package org.apache.maven.mae.internal.container;
 
-import com.google.inject.Inject;
-import com.google.inject.Injector;
-import com.google.inject.Provider;
-
+/**
+ * Use {@link org.sonatype.guice.bean.locators.VirtualInstance} instead.
+ */
+@Deprecated
 public class VirtualInstance<T>
-    implements Provider<T>
+    extends org.sonatype.guice.bean.locators.VirtualInstance<T>
 {
 
-    @Inject
-    private Injector injector;
-
-    private T instance;
-
-    private final Class<T> virtualClass;
-
     public VirtualInstance( final Class<T> virtualClass )
     {
-        this.virtualClass = virtualClass;
-    }
-
-    public void setInstance( final T instance )
-    {
-        this.instance = instance;
-    }
-
-    public Class<T> getVirtualClass()
-    {
-        return virtualClass;
-    }
-
-    public T getRawInstance()
-    {
-        return instance;
-    }
-
-    @Override
-    public T get()
-    {
-        if ( injector != null && instance != null )
-        {
-            injector.injectMembers( instance );
-        }
-
-        return instance;
+        super( virtualClass );
     }
 
 }

Modified: maven/sandbox/trunk/mae/mae-api/src/test/java/org/apache/maven/mae/ComponentSelectorTest.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mae/mae-api/src/test/java/org/apache/maven/mae/ComponentSelectorTest.java?rev=1152392&r1=1152391&r2=1152392&view=diff
==============================================================================
--- maven/sandbox/trunk/mae/mae-api/src/test/java/org/apache/maven/mae/ComponentSelectorTest.java (original)
+++ maven/sandbox/trunk/mae/mae-api/src/test/java/org/apache/maven/mae/ComponentSelectorTest.java Fri Jul 29 22:54:19 2011
@@ -30,10 +30,10 @@ import org.apache.log4j.Logger;
 import org.apache.log4j.SimpleLayout;
 import org.apache.log4j.spi.Configurator;
 import org.apache.log4j.spi.LoggerRepository;
-import org.apache.maven.mae.internal.container.ComponentKey;
-import org.apache.maven.mae.internal.container.ComponentSelector;
 import org.junit.BeforeClass;
 import org.junit.Test;
+import org.sonatype.guice.bean.locators.ComponentKey;
+import org.sonatype.guice.bean.locators.ComponentSelector;
 
 import java.net.URL;
 import java.util.Enumeration;

Modified: maven/sandbox/trunk/mae/mae-booter/pom.xml
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mae/mae-booter/pom.xml?rev=1152392&r1=1152391&r2=1152392&view=diff
==============================================================================
--- maven/sandbox/trunk/mae/mae-booter/pom.xml (original)
+++ maven/sandbox/trunk/mae/mae-booter/pom.xml Fri Jul 29 22:54:19 2011
@@ -47,12 +47,6 @@
       <scope>compile</scope>
     </dependency>
     <dependency>
-      <groupId>org.apache.maven.mae</groupId>
-      <artifactId>mae-container</artifactId>
-      <version>${project.version}</version>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
       <groupId>log4j</groupId>
       <artifactId>log4j</artifactId>
       <scope>compile</scope>
@@ -76,6 +70,16 @@
       <groupId>commons-cli</groupId>
       <artifactId>commons-cli</artifactId>
     </dependency>
+    <!-- <dependency>
+      <groupId>org.sonatype.sisu.inject</groupId>
+      <artifactId>guice-plexus-shim</artifactId>
+      <version>2.1.1-selectable-1-SNAPSHOT</version>
+    </dependency> -->
+    <dependency>
+    	<groupId>org.sonatype.sisu</groupId>
+    	<artifactId>sisu-inject-plexus</artifactId>
+    	<version>2.1.1-selectable-1-SNAPSHOT</version>
+    </dependency>
   </dependencies>
   
   <build>

Modified: maven/sandbox/trunk/mae/mae-booter/src/main/java/org/apache/maven/mae/app/AbstractMAEApplication.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mae/mae-booter/src/main/java/org/apache/maven/mae/app/AbstractMAEApplication.java?rev=1152392&r1=1152391&r2=1152392&view=diff
==============================================================================
--- maven/sandbox/trunk/mae/mae-booter/src/main/java/org/apache/maven/mae/app/AbstractMAEApplication.java (original)
+++ maven/sandbox/trunk/mae/mae-booter/src/main/java/org/apache/maven/mae/app/AbstractMAEApplication.java Fri Jul 29 22:54:19 2011
@@ -29,11 +29,11 @@ import org.apache.maven.mae.conf.Version
 import org.apache.maven.mae.conf.ext.ExtensionConfiguration;
 import org.apache.maven.mae.conf.ext.ExtensionConfigurationException;
 import org.apache.maven.mae.conf.loader.InstanceLibraryLoader;
-import org.apache.maven.mae.internal.container.ComponentKey;
-import org.apache.maven.mae.internal.container.ComponentSelector;
-import org.apache.maven.mae.internal.container.InstanceRegistry;
-import org.apache.maven.mae.internal.container.VirtualInstance;
 import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
+import org.sonatype.guice.bean.locators.ComponentKey;
+import org.sonatype.guice.bean.locators.ComponentSelector;
+import org.sonatype.guice.bean.locators.InstanceRegistry;
+import org.sonatype.guice.bean.locators.VirtualInstance;
 
 import java.util.ArrayList;
 import java.util.List;

Modified: maven/sandbox/trunk/mae/mae-booter/src/main/java/org/apache/maven/mae/boot/embed/MAEEmbedder.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mae/mae-booter/src/main/java/org/apache/maven/mae/boot/embed/MAEEmbedder.java?rev=1152392&r1=1152391&r2=1152392&view=diff
==============================================================================
--- maven/sandbox/trunk/mae/mae-booter/src/main/java/org/apache/maven/mae/boot/embed/MAEEmbedder.java (original)
+++ maven/sandbox/trunk/mae/mae-booter/src/main/java/org/apache/maven/mae/boot/embed/MAEEmbedder.java Fri Jul 29 22:54:19 2011
@@ -43,8 +43,6 @@ import org.apache.maven.mae.conf.mgmt.Lo
 import org.apache.maven.mae.conf.mgmt.LoadOnStart;
 import org.apache.maven.mae.conf.mgmt.MAEManagementException;
 import org.apache.maven.mae.conf.mgmt.MAEManagementView;
-import org.apache.maven.mae.internal.container.ComponentKey;
-import org.apache.maven.mae.internal.container.ExtrudablePlexusContainer;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.properties.internal.EnvironmentUtils;
 import org.apache.maven.settings.Settings;
@@ -54,12 +52,14 @@ import org.apache.maven.settings.buildin
 import org.apache.maven.settings.building.SettingsBuildingRequest;
 import org.apache.maven.settings.building.SettingsBuildingResult;
 import org.apache.maven.settings.building.SettingsProblem;
+import org.codehaus.plexus.ExtrudablePlexusContainer;
 import org.codehaus.plexus.PlexusConstants;
 import org.codehaus.plexus.PlexusContainer;
 import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
 import org.codehaus.plexus.logging.Logger;
 import org.codehaus.plexus.util.StringUtils;
+import org.sonatype.guice.bean.locators.ComponentKey;
 import org.sonatype.plexus.components.cipher.DefaultPlexusCipher;
 import org.sonatype.plexus.components.cipher.PlexusCipherException;
 import org.sonatype.plexus.components.sec.dispatcher.DefaultSecDispatcher;

Modified: maven/sandbox/trunk/mae/mae-booter/src/main/java/org/apache/maven/mae/boot/embed/MAEEmbedderBuilder.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mae/mae-booter/src/main/java/org/apache/maven/mae/boot/embed/MAEEmbedderBuilder.java?rev=1152392&r1=1152391&r2=1152392&view=diff
==============================================================================
--- maven/sandbox/trunk/mae/mae-booter/src/main/java/org/apache/maven/mae/boot/embed/MAEEmbedderBuilder.java (original)
+++ maven/sandbox/trunk/mae/mae-booter/src/main/java/org/apache/maven/mae/boot/embed/MAEEmbedderBuilder.java Fri Jul 29 22:54:19 2011
@@ -32,20 +32,20 @@ import org.apache.maven.mae.conf.MAEConf
 import org.apache.maven.mae.conf.MAELibrary;
 import org.apache.maven.mae.conf.loader.MAELibraryLoader;
 import org.apache.maven.mae.conf.loader.ServiceLibraryLoader;
-import org.apache.maven.mae.internal.container.ComponentKey;
-import org.apache.maven.mae.internal.container.ComponentSelector;
-import org.apache.maven.mae.internal.container.InstanceRegistry;
-import org.apache.maven.mae.internal.container.MAEContainer;
-import org.apache.maven.mae.internal.container.ExtrudablePlexusContainer;
-import org.apache.maven.mae.internal.container.VirtualInstance;
 import org.apache.maven.model.building.ModelProcessor;
 import org.apache.maven.settings.building.SettingsBuilder;
 import org.codehaus.plexus.ContainerConfiguration;
 import org.codehaus.plexus.DefaultContainerConfiguration;
+import org.codehaus.plexus.DefaultPlexusContainer;
+import org.codehaus.plexus.ExtrudablePlexusContainer;
 import org.codehaus.plexus.PlexusContainerException;
 import org.codehaus.plexus.classworlds.ClassWorld;
 import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
 import org.codehaus.plexus.logging.Logger;
+import org.sonatype.guice.bean.locators.ComponentKey;
+import org.sonatype.guice.bean.locators.ComponentSelector;
+import org.sonatype.guice.bean.locators.InstanceRegistry;
+import org.sonatype.guice.bean.locators.VirtualInstance;
 import org.sonatype.plexus.components.sec.dispatcher.DefaultSecDispatcher;
 import org.sonatype.plexus.components.sec.dispatcher.SecDispatcher;
 
@@ -474,10 +474,10 @@ public class MAEEmbedderBuilder
             final InstanceRegistry reg = new InstanceRegistry( instanceRegistry() );
             reg.addVirtual( new ComponentKey<MAEEmbedder>( MAEEmbedder.class ), embVirtual );
 
-            MAEContainer c;
+            DefaultPlexusContainer c;
             try
             {
-                c = new MAEContainer( cc, selector(), reg );
+                c = new DefaultPlexusContainer( cc, selector(), reg );
             }
             catch ( final PlexusContainerException e )
             {

Modified: maven/sandbox/trunk/mae/mae-components/mae-project-tools/pom.xml
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mae/mae-components/mae-project-tools/pom.xml?rev=1152392&r1=1152391&r2=1152392&view=diff
==============================================================================
--- maven/sandbox/trunk/mae/mae-components/mae-project-tools/pom.xml (original)
+++ maven/sandbox/trunk/mae/mae-components/mae-project-tools/pom.xml Fri Jul 29 22:54:19 2011
@@ -71,5 +71,10 @@
       <artifactId>commons-lang</artifactId>
       <version>2.5</version>
     </dependency>
+    <dependency>
+    	<groupId>org.sonatype.sisu</groupId>
+    	<artifactId>sisu-inject-plexus</artifactId>
+    	<version>2.1.1-selectable-1-SNAPSHOT</version>
+    </dependency>
   </dependencies>
 </project>

Modified: maven/sandbox/trunk/mae/pom.xml
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mae/pom.xml?rev=1152392&r1=1152391&r2=1152392&view=diff
==============================================================================
--- maven/sandbox/trunk/mae/pom.xml (original)
+++ maven/sandbox/trunk/mae/pom.xml Fri Jul 29 22:54:19 2011
@@ -74,7 +74,6 @@
   <modules>
     <module>boms</module>
     <module>mae-api</module>
-    <module>mae-container</module>
     <module>mae-booter</module>
     <module>mae-app</module>
     <module>mae-prompter-cli</module>