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/12/22 22:28:10 UTC
cvs commit: avalon/merlin/kernel/cli/src/java/org/apache/avalon/merlin/cli Main.java Resources_pt.properties
mcconnell 2003/12/22 13:28:10
Modified: merlin/activation/impl/src/java/org/apache/avalon/activation/appliance/impl
AbstractBlock.java DefaultAppliance.java
merlin/composition/impl/src/java/org/apache/avalon/composition/model/impl
DefaultDependencyModel.java
merlin/kernel/cli/src/java/org/apache/avalon/merlin/cli
Main.java Resources_pt.properties
Log:
Fix two bugs - one in composition and another in activation dealing with relative references to blocks.
Revision Changes Path
1.8 +57 -17 avalon/merlin/activation/impl/src/java/org/apache/avalon/activation/appliance/impl/AbstractBlock.java
Index: AbstractBlock.java
===================================================================
RCS file: /home/cvs/avalon/merlin/activation/impl/src/java/org/apache/avalon/activation/appliance/impl/AbstractBlock.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- AbstractBlock.java 22 Dec 2003 09:06:41 -0000 1.7
+++ AbstractBlock.java 22 Dec 2003 21:28:09 -0000 1.8
@@ -403,13 +403,13 @@
{
return this;
}
-
- if( path.startsWith( base ) )
+ else if( path.startsWith( base ) )
{
//
// its a local appliance
//
+
String name = path.substring( base.length() );
int j = name.indexOf( "/" );
if( j == -1 )
@@ -418,7 +418,25 @@
}
else if( j == 0 )
{
- return getLocalAppliance( name.substring( 1 ) );
+ int d = name.lastIndexOf( "/" );
+ if( d > j )
+ {
+ String root = name.substring( 1, d );
+ Appliance child = getLocalAppliance( root );
+ if( child instanceof Engine )
+ {
+ return ((Engine)child).locate( name.substring( d+1 ) );
+ }
+ else
+ {
+ final String error = "Not a container: " + "/" + name;
+ throw new IllegalArgumentException( error );
+ }
+ }
+ else
+ {
+ return getLocalAppliance( name.substring( 1 ) );
+ }
}
else
{
@@ -426,11 +444,11 @@
Appliance child = getLocalAppliance( root );
if( child instanceof Engine )
{
- return ((Engine)child).locate( path );
+ return ((Engine)child).locate( name.substring( j+1 ) );
}
else
{
- final String error = "Not a container: " + path;
+ final String error = "Not a container: " + "/" + name;
throw new IllegalArgumentException( error );
}
}
@@ -438,7 +456,7 @@
else
{
//
- // its either a relative path or a absolute path resolvable by
+ // its either a relative path or an absolute path resolvable by
// a parent
//
@@ -448,15 +466,16 @@
// its a parent reference
//
- if( m_context.getEngine() != null )
- {
- return m_context.getEngine().locate( path );
- }
- else
- {
- final String error = "Invalid absolute reference: [" + path + "]";
- throw new IllegalArgumentException( error );
- }
+ return parentLocate( path );
+ }
+ else if( base.startsWith( "../" ) )
+ {
+ //
+ // its a relative reference relative to the parent
+ //
+
+ String relative = base.substring( 3 );
+ return getLocalAppliance( relative );
}
else
{
@@ -464,9 +483,30 @@
// its a relative reference
//
- return getLocalAppliance( path );
+ if( path.indexOf( "/" ) < 0 )
+ {
+ return getLocalAppliance( path );
+ }
+ else
+ {
+ return parentLocate( path );
+ }
}
}
+ }
+
+ private Appliance parentLocate( final String path )
+ throws IllegalArgumentException, ApplianceException
+ {
+ if( m_context.getEngine() != null )
+ {
+ return m_context.getEngine().locate( path );
+ }
+ else
+ {
+ final String error = "Invalid absolute reference: [" + path + "]";
+ throw new IllegalArgumentException( error );
+ }
}
private Appliance getLocalAppliance( final String name )
1.15 +5 -2 avalon/merlin/activation/impl/src/java/org/apache/avalon/activation/appliance/impl/DefaultAppliance.java
Index: DefaultAppliance.java
===================================================================
RCS file: /home/cvs/avalon/merlin/activation/impl/src/java/org/apache/avalon/activation/appliance/impl/DefaultAppliance.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- DefaultAppliance.java 12 Dec 2003 14:02:35 -0000 1.14
+++ DefaultAppliance.java 22 Dec 2003 21:28:09 -0000 1.15
@@ -277,7 +277,10 @@
return;
}
- getLogger().debug( "assembly phase" );
+ if( getLogger().isDebugEnabled() )
+ {
+ getLogger().debug( "assembly phase" );
+ }
//
// check if we need a contextualization handler
1.3 +4 -2 avalon/merlin/composition/impl/src/java/org/apache/avalon/composition/model/impl/DefaultDependencyModel.java
Index: DefaultDependencyModel.java
===================================================================
RCS file: /home/cvs/avalon/merlin/composition/impl/src/java/org/apache/avalon/composition/model/impl/DefaultDependencyModel.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- DefaultDependencyModel.java 28 Oct 2003 20:21:00 -0000 1.2
+++ DefaultDependencyModel.java 22 Dec 2003 21:28:09 -0000 1.3
@@ -130,7 +130,9 @@
{
if( directive.getSource() != null )
{
+System.out.println( "## DIRECTIVE SOURCE: " + directive.getSource() );
m_source = resolvePath( partition, directive.getSource() );
+System.out.println( "## DIRECTIVE RESOLVED: " + m_source );
final String message =
REZ.getString( "dependency.path.debug", m_source, directive.getKey() );
getLogger().debug( message );
@@ -310,7 +312,7 @@
}
else
{
- return partition.substring( 0, index );
+ return partition.substring( 0, index ) + "/";
}
}
else
1.11 +9 -11 avalon/merlin/kernel/cli/src/java/org/apache/avalon/merlin/cli/Main.java
Index: Main.java
===================================================================
RCS file: /home/cvs/avalon/merlin/kernel/cli/src/java/org/apache/avalon/merlin/cli/Main.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- Main.java 21 Dec 2003 23:13:43 -0000 1.10
+++ Main.java 22 Dec 2003 21:28:09 -0000 1.11
@@ -250,7 +250,14 @@
Locale.setDefault( locale );
REZ = ResourceManager.getPackageResources( Main.class );
}
- Main.printHelpInfo();
+
+ HelpFormatter formatter = new HelpFormatter();
+ formatter.printHelp(
+ "merlin [block]",
+ " ",
+ buildCommandLineOptions(),
+ "",
+ true );
return;
}
else
@@ -508,15 +515,6 @@
+ ":" + artifact.getName()
+ ";" + artifact.getVersion() );
}
- }
-
- /**
- * Print out information to System.out detailing theb help options.
- */
- private static void printHelpInfo()
- {
- HelpFormatter formatter = new HelpFormatter();
- formatter.printHelp( "merlin [block]", " ", CL_OPTIONS, "", true );
}
/**
1.2 +5 -6 avalon/merlin/kernel/cli/src/java/org/apache/avalon/merlin/cli/Resources_pt.properties
Index: Resources_pt.properties
===================================================================
RCS file: /home/cvs/avalon/merlin/kernel/cli/src/java/org/apache/avalon/merlin/cli/Resources_pt.properties,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- Resources_pt.properties 22 Dec 2003 01:19:12 -0000 1.1
+++ Resources_pt.properties 22 Dec 2003 21:28:09 -0000 1.2
@@ -11,11 +11,10 @@
cli-language-description=Um codigo de lingua de dois caracteres.
-cli-execute-description=Se presente, o kernel ir� iniciar um shutdown imediatamente ap�s o deployment.
-
+cli-execute-description=Se presente, o kernel ir� iniciar um shutdown imediatamente ap�s o deployment
cli-version-description=Imprime informa��es sobre a vers�o.
-cli-info-description=Lista informa��es sobre o contexto dos deployments.
+cli-info-description=Lista de informa��es sobre o contexto do deployment.
cli-install-description=Instala um bloco (block archive) no reposit�rio local.
@@ -25,11 +24,11 @@
cli-home-description=Um caminho relativo ou absoluto para um diret�rio de trabalho. Se n�o informado o sistema usar� o diret�rio corrente.
-cli-context-description=O diret�rio raiz pelo qual urn:avalon:home diret�rios s�o resolvidos. Default para ${merlin.dir}/home.
+cli-context-description=O diret�rio raiz pelo qual urn:avalon:home diret�rios s�o resolvidos. Padr�o para ${merlin.dir}/home.
cli-kernel-description=Nome de um arquivo para um profile alternativo do kernel.
-cli-block-description=Um nome de arquivo relativo ou absoluto para arquivo de bloco ou jar (contendo uma defini��o de bloco).
+cli-block-description=Um nome de arquivo relativo ou absoluto para um bloco ou jar (contendo uma defini��o de bloco).
cli-config-description=O nome de um arquivo que sobrescreve as configura��es dos componentes.
@@ -39,4 +38,4 @@
cli-library-description=Um diret�rio que serve como raiz para as bibliotecas referenciadas.
-cli-description=\nDescri��o: Executa o deployment de um ou mais blocos de componentes. O argumento [block] pode ser tanto um descriptor em forma de arquivo ou um arquivo jar contendo um descriptor. Se nada for especificado Merlin tentar� executar a partir deum arquivo 'block.xml' no diret�rio local.
\ No newline at end of file
+cli-description=\nDescri��o: Executa o deployment de um ou varios blocos de componentes. O argumento [block] pode ser tanto um descriptor em forma de arquivo ou um arquivo jar contendo um descriptor. Se nada for especificado Merlin tentar� executar a partir de um arquivo 'block.xml' no diret�rio local.
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: cvs-unsubscribe@avalon.apache.org
For additional commands, e-mail: cvs-help@avalon.apache.org