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