mirror of https://github.com/apache/maven.git
Adding ability to reorient the build context manager to a new container context.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@504418 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
ad35b458bf
commit
9e03384f41
|
@ -1,5 +1,7 @@
|
|||
package org.apache.maven.context;
|
||||
|
||||
import org.codehaus.plexus.context.Context;
|
||||
|
||||
/**
|
||||
* Manager interface used to store, read, and clear the BuildContext out of the container.
|
||||
*
|
||||
|
@ -10,11 +12,6 @@ public interface BuildContextManager
|
|||
|
||||
String ROLE = BuildContextManager.class.getName();
|
||||
|
||||
/**
|
||||
* Create a new instance of BuildContext
|
||||
*/
|
||||
BuildContext newUnstoredInstance();
|
||||
|
||||
/**
|
||||
* Read the BuildContext from the container. If it doesn't already exist, optionally create it.
|
||||
*/
|
||||
|
@ -31,4 +28,12 @@ public interface BuildContextManager
|
|||
*/
|
||||
void clearBuildContext();
|
||||
|
||||
/**
|
||||
* Re-orient this BuildContextManager to use the given Plexus Context instance, returning
|
||||
* the original Context instance so it can be restored later. This can be important when the
|
||||
* BuildContextManager is instantiated inside a Maven plugin, but the plugin needs to use the
|
||||
* context associated with the core of Maven (in case multiple contexts are used).
|
||||
*/
|
||||
Context reorientToContext( Context context );
|
||||
|
||||
}
|
||||
|
|
|
@ -32,15 +32,6 @@ public DefaultBuildContextManager( Context context )
|
|||
this.context = context;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new instance of DefaultBuildContext, and return it. Each method call creates a brand
|
||||
* new instance.
|
||||
*/
|
||||
public BuildContext newUnstoredInstance()
|
||||
{
|
||||
return new DefaultBuildContext();
|
||||
}
|
||||
|
||||
/**
|
||||
* Clear the contents of the build context inside the container context.
|
||||
*/
|
||||
|
@ -128,4 +119,12 @@ public void contextualize( Context context )
|
|||
this.context = context;
|
||||
}
|
||||
|
||||
public Context reorientToContext( Context context )
|
||||
{
|
||||
Context oldContext = this.context;
|
||||
this.context = context;
|
||||
|
||||
return oldContext;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -9,6 +9,8 @@ public abstract class AbstractBuildContextManagerTest
|
|||
|
||||
protected abstract String getRoleHintBeforeSetUp();
|
||||
|
||||
protected abstract BuildContext createBuildContext();
|
||||
|
||||
protected BuildContextManager getBuildContextManager()
|
||||
{
|
||||
return mgr;
|
||||
|
@ -21,28 +23,10 @@ public void setUp() throws Exception
|
|||
mgr = (BuildContextManager) lookup( BuildContextManager.ROLE, getRoleHintBeforeSetUp() );
|
||||
}
|
||||
|
||||
public void testNewUnstoredInstance_ShouldReturnValidContextInstance()
|
||||
{
|
||||
BuildContext context = mgr.newUnstoredInstance();
|
||||
|
||||
assertNotNull( context );
|
||||
|
||||
String key = "key";
|
||||
String value = "value";
|
||||
|
||||
context.put( key, value );
|
||||
|
||||
assertEquals( value, context.get( key ) );
|
||||
|
||||
context.delete( key );
|
||||
|
||||
assertNull( context.get( key ) );
|
||||
}
|
||||
|
||||
public void testNewUnstoredInstance_SuccessiveCallsShouldReturnDistinctContextInstances()
|
||||
{
|
||||
BuildContext context = mgr.newUnstoredInstance();
|
||||
BuildContext context2 = mgr.newUnstoredInstance();
|
||||
BuildContext context = createBuildContext();
|
||||
BuildContext context2 = createBuildContext();
|
||||
|
||||
assertNotNull( context );
|
||||
assertNotNull( context2 );
|
||||
|
@ -51,7 +35,7 @@ public void testNewUnstoredInstance_SuccessiveCallsShouldReturnDistinctContextIn
|
|||
|
||||
public void testStoreAndRead_ShouldRetrieveStoredValueAfterRead()
|
||||
{
|
||||
BuildContext ctx = mgr.newUnstoredInstance();
|
||||
BuildContext ctx = createBuildContext();
|
||||
|
||||
String key = "key";
|
||||
String value = "value";
|
||||
|
@ -68,7 +52,7 @@ public void testStoreAndRead_ShouldRetrieveStoredValueAfterRead()
|
|||
|
||||
public void testStoreAndClear_ShouldNotRetrieveStoredValueAfterClear()
|
||||
{
|
||||
BuildContext ctx = mgr.newUnstoredInstance();
|
||||
BuildContext ctx = createBuildContext();
|
||||
|
||||
String key = "key";
|
||||
String value = "value";
|
||||
|
|
|
@ -9,4 +9,9 @@ protected String getRoleHintBeforeSetUp()
|
|||
return DefaultBuildContextManager.ROLE_HINT;
|
||||
}
|
||||
|
||||
protected BuildContext createBuildContext()
|
||||
{
|
||||
return new DefaultBuildContext();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue