You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by mc...@apache.org on 2003/05/01 12:45:24 UTC
cvs commit: avalon-sandbox/merlin/merlin-smp/src/repository/james block.xml
mcconnell 2003/05/01 03:45:23
Modified: merlin project.xml
merlin/assembly project.xml
merlin/assembly/src/java/org/apache/avalon/assembly/appliance/impl
ContextBuilder.java DefaultAppliance.java
merlin/assembly/src/java/org/apache/avalon/assembly/repository/impl
FileRepository.java
merlin/merlin-smp/src/repository/james block.xml
Log:
Update internal documentation on context entries.
Revision Changes Path
1.11 +32 -24 avalon-sandbox/merlin/project.xml
Index: project.xml
===================================================================
RCS file: /home/cvs/avalon-sandbox/merlin/project.xml,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- project.xml 26 Apr 2003 12:37:42 -0000 1.10
+++ project.xml 1 May 2003 10:45:22 -0000 1.11
@@ -71,6 +71,38 @@
<role>Code enhancements.</role>
</roles>
</developer>
+ <developer>
+ <name>Vinay Chandran</name>
+ <id>vinayc</id>
+ <email>vinayc@apache.org</email>
+ <roles>
+ <role>Testing and bug reporting.</role>
+ </roles>
+ </developer>
+ <developer>
+ <name>Marcus Crafter</name>
+ <id>crafterm</id>
+ <email>crafterm@apache.org</email>
+ <roles>
+ <role>Architecture review and Fortress/ECM/Cocoon liason.</role>
+ </roles>
+ </developer>
+ <developer>
+ <name>Peter Royal</name>
+ <id>proyal</id>
+ <email>proyal@apache.org</email>
+ <roles>
+ <role>Test and evaluation.</role>
+ </roles>
+ </developer>
+ <developer>
+ <name>Leif Mortenson</name>
+ <email>leif@apache.org</email>
+ <id>leif</id>
+ <roles>
+ <role>Support on setup of NT service scripts and resources.</role>
+ </roles>
+ </developer>
</developers>
<contributors>
@@ -83,14 +115,6 @@
</roles>
</contributor>
<contributor>
- <name>Marcus Crafter</name>
- <id>crafterm</id>
- <email>crafterm@apache.org</email>
- <roles>
- <role>Architecture review and Fortress/ECM/Cocoon liason.</role>
- </roles>
- </contributor>
- <contributor>
<name>Richard Wallace</name>
<email>rwallace@a--i--m.com</email>
<organization>A-I-M</organization>
@@ -99,27 +123,11 @@
</roles>
</contributor>
<contributor>
- <name>Peter Royal</name>
- <id>proyal</id>
- <email>proyal@apache.org</email>
- <roles>
- <role>Test and evaluation.</role>
- </roles>
- </contributor>
- <contributor>
<name>J�rg Schaible</name>
<email>Joerg.Schaible@gft.com</email>
<organization>GFT</organization>
<roles>
<role>Test, evaluation and contribution of German language i18n resources.</role>
- </roles>
- </contributor>
- <contributor>
- <name>Leif Mortenson</name>
- <email>leif@apache.org</email>
- <id>leif</id>
- <roles>
- <role>Support on setup of NT service scripts and resources.</role>
</roles>
</contributor>
<contributor>
1.6 +2 -0 avalon-sandbox/merlin/assembly/project.xml
Index: project.xml
===================================================================
RCS file: /home/cvs/avalon-sandbox/merlin/assembly/project.xml,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- project.xml 30 Apr 2003 10:41:04 -0000 1.5
+++ project.xml 1 May 2003 10:45:23 -0000 1.6
@@ -105,6 +105,7 @@
</dependencies>
+ <!--
<build>
<nagEmailAddress>dev@avalon.apache.org</nagEmailAddress>
@@ -162,5 +163,6 @@
<jars></jars>
</build>
+ -->
</project>
1.2 +29 -16 avalon-sandbox/merlin/assembly/src/java/org/apache/avalon/assembly/appliance/impl/ContextBuilder.java
Index: ContextBuilder.java
===================================================================
RCS file: /home/cvs/avalon-sandbox/merlin/assembly/src/java/org/apache/avalon/assembly/appliance/impl/ContextBuilder.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ContextBuilder.java 26 Apr 2003 12:37:43 -0000 1.1
+++ ContextBuilder.java 1 May 2003 10:45:23 -0000 1.2
@@ -53,7 +53,7 @@
import java.util.HashMap;
import java.util.Map;
-import org.apache.avalon.assembly.engine.RepositoryManager;
+import org.apache.avalon.assembly.engine.service.ServiceRepository;
import org.apache.avalon.assembly.engine.service.UnknownServiceException;
import org.apache.avalon.framework.context.Context;
import org.apache.avalon.framework.context.ContextException;
@@ -77,7 +77,11 @@
/**
* Internal utility to construct a context map using a descriptor, directive and source
- * context instances.
+ * context instances. The returned map contains the Merlin standard context entries
+ * and equivalent legacy support for Phoenix together with any custom context entries.
+ * Custom entry requirements are established by the supplied ContextDescriptor and
+ * and are populated based on directives contained in the supplied ContextDirective.
+ *
*
* @param classloader the classloader
* @param descriptor the target component context descriptor
@@ -88,7 +92,7 @@
* @exception ContextException if a required context value cannot be resolved
*/
static Map buildContextMap(
- ClassLoader classloader, RepositoryManager repository, ContextDescriptor descriptor,
+ ClassLoader classloader, ServiceRepository services, ContextDescriptor descriptor,
ContextDirective directive, Context context )
throws ContextException
{
@@ -104,15 +108,8 @@
Map map = new HashMap();
//
- // Phoenix legacy support
- //
-
- map.put( "app.name", context.get( "urn:avalon:name" ) );
- map.put( "app.home", context.get( "urn:avalon:home" ) );
-
- //
// Merlin standard entries
- //
+ // -----------------------
map.put( "urn:avalon:name", context.get( "urn:avalon:name" ) );
map.put( "urn:avalon:home", context.get( "urn:avalon:home" ) );
@@ -126,11 +123,28 @@
map.put( "urn:avalon:partition.name", context.get( "urn:avalon:partition" ) );
//
+ // Phoenix legacy support
+ // ----------------------
+ // app.name corresponds to the application name, equivalent to
+ // a Merlin partition
+ // block.name corresponds to the name of the component instance
+ // app.work a directory shared by all of the components within
+ // the appplication (equivalent to a container in
+ // Merlin
+ //
+
+ map.put( "app.name", context.get( "urn:avalon:partition" ) );
+ map.put( "block.name", context.get( "urn:avalon:name" ) );
+ map.put( "app.home", context.get( "urn:avalon:home" ) );
+
+ //
+ // Custom Entries
+ // --------------
// get the entries declared by the context descriptor plus and
// entries declared within a service definition if one exists
//
- EntryDescriptor[] entries = getMergedEntries( repository, descriptor );
+ EntryDescriptor[] entries = getMergedEntries( services, descriptor );
//
// commence population of the map
@@ -271,13 +285,12 @@
}
private static EntryDescriptor[] getMergedEntries(
- RepositoryManager repository, ContextDescriptor descriptor )
+ ServiceRepository services, ContextDescriptor descriptor )
throws IllegalArgumentException
{
try
{
- Service service =
- repository.getServiceRepository().getService( descriptor.getReference() );
+ Service service = services.getService( descriptor.getReference() );
EntryDescriptor[] result = descriptor.merge( service.getEntries() );
return result;
} catch( UnknownServiceException e )
1.6 +5 -3 avalon-sandbox/merlin/assembly/src/java/org/apache/avalon/assembly/appliance/impl/DefaultAppliance.java
Index: DefaultAppliance.java
===================================================================
RCS file: /home/cvs/avalon-sandbox/merlin/assembly/src/java/org/apache/avalon/assembly/appliance/impl/DefaultAppliance.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- DefaultAppliance.java 29 Apr 2003 17:26:26 -0000 1.5
+++ DefaultAppliance.java 1 May 2003 10:45:23 -0000 1.6
@@ -64,8 +64,9 @@
import org.apache.avalon.assembly.appliance.ApplianceException;
import org.apache.avalon.assembly.appliance.ApplianceRuntimeException;
import org.apache.avalon.assembly.engine.Engine;
-import org.apache.avalon.assembly.engine.impl.EngineClassLoader;
import org.apache.avalon.assembly.engine.RepositoryManager;
+import org.apache.avalon.assembly.engine.service.ServiceRepository;
+import org.apache.avalon.assembly.engine.impl.EngineClassLoader;
import org.apache.avalon.assembly.lifestyle.LifestyleHandler;
import org.apache.avalon.assembly.lifestyle.LifestyleService;
import org.apache.avalon.assembly.locator.Contextualizable;
@@ -797,8 +798,9 @@
Context source = new DefaultContext( map, m_system );
ContextDirective directive = m_applianceContext.getContextDirective();
RepositoryManager repository = m_engine.getRepository();
+ ServiceRepository services = repository.getServiceRepository();
return ContextBuilder.buildContextMap(
- m_engine, repository, descriptor, directive, source );
+ m_engine, services, descriptor, directive, source );
} catch( Throwable e )
{
final String error =
1.3 +34 -3 avalon-sandbox/merlin/assembly/src/java/org/apache/avalon/assembly/repository/impl/FileRepository.java
Index: FileRepository.java
===================================================================
RCS file: /home/cvs/avalon-sandbox/merlin/assembly/src/java/org/apache/avalon/assembly/repository/impl/FileRepository.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- FileRepository.java 30 Apr 2003 10:24:12 -0000 1.2
+++ FileRepository.java 1 May 2003 10:45:23 -0000 1.3
@@ -275,16 +275,27 @@
expand( group, file );
}
+ /**
+ * Replicate an group application package using the available hosts in
+ * order implied by the hosts sequence.
+ *
+ * @param group the group identifier
+ * @param file the target file
+ * @exception RepositoryException if the replication was not successful
+ */
public void download( String group, File file ) throws RepositoryException
{
final List errors = new ArrayList();
if( getRemoteResource( group, file, errors ) )
{
- //return getArtifact( group, name, version, type );
- System.out.println( "SUCCESS" );
return;
}
+ //
+ // build a consolidated exception - this code will be updated
+ // to use a special exception that contains the exception set
+ //
+
RepositoryException[] exceptions =
(RepositoryException[]) errors.toArray( new RepositoryException[0] );
@@ -298,14 +309,30 @@
ExceptionHelper.packException( "Connection: " + (i+1), exceptions[i] );
buffer.append( message );
}
+
throw new RepositoryException( buffer.toString() );
}
+ /**
+ * Expand the supplied file under the declared group identifier.
+ * @param group the group identifier
+ * @param file the file to expand
+ */
public void expand( String group, File file )
{
// todo
}
+ /**
+ * Replicate a resource from one of the remote servers to the repository
+ * base directory. If the replication is unsuccessful, the list will
+ * the set of exceptions raised during host traversal.
+ *
+ * @param group the group identifier
+ * @param file the file that the resource should be downloaded to
+ * @param list an empty list into which any exceptions should be included
+ * @return TRUE if the resource was sucefully replicated else FALSE
+ */
private boolean getRemoteResource( String group, File file, List errors )
{
for( int i=0; i<m_hosts.length; i++ )
@@ -313,7 +340,11 @@
URL url = m_hosts[i];
try
{
- final URL path = new URL( url, url.getPath() + group + "/" + group + "-package.zip" );
+ final URL path = new URL(
+ url, url.getPath()
+ + group + "/"
+ + group + "-package.zip" );
+
transfer( path, file );
return true;
}
1.5 +1 -1 avalon-sandbox/merlin/merlin-smp/src/repository/james/block.xml
Index: block.xml
===================================================================
RCS file: /home/cvs/avalon-sandbox/merlin/merlin-smp/src/repository/james/block.xml,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- block.xml 15 Apr 2003 02:39:43 -0000 1.4
+++ block.xml 1 May 2003 10:45:23 -0000 1.5
@@ -3,7 +3,7 @@
Sample block descriptor that demonstrates the James mailsever application as a composite block.
-->
-<block name="james">
+<block>
<info>
<name>james</name>
---------------------------------------------------------------------
To unsubscribe, e-mail: cvs-unsubscribe@avalon.apache.org
For additional commands, e-mail: cvs-help@avalon.apache.org