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 2004/07/02 14:27:22 UTC
svn commit: rev 22473 - avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks
Author: mcconnell
Date: Fri Jul 2 05:27:22 2004
New Revision: 22473
Modified:
avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/BlockTask.java
avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/DeclareTask.java
Log:
add support for the declaration of component parameters
Modified: avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/BlockTask.java
==============================================================================
--- avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/BlockTask.java (original)
+++ avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/BlockTask.java Fri Jul 2 05:27:22 2004
@@ -68,6 +68,8 @@
private String m_classname;
private String m_profile;
private boolean m_context = false;
+ private boolean m_parameters = false;
+ private boolean m_dependencies = false;
private ArrayList m_children = new ArrayList();
public void setClass( final String classname )
@@ -107,6 +109,40 @@
}
}
+ public Parameters createParameters()
+ {
+ if( !m_parameters )
+ {
+ Parameters parameters = new Parameters();
+ m_children.add( parameters );
+ m_parameters = true;
+ return parameters;
+ }
+ else
+ {
+ final String error =
+ "Parameters definition already set!";
+ throw new BuildException( error );
+ }
+ }
+
+ public Dependencies createDependencies()
+ {
+ if( !m_dependencies )
+ {
+ Dependencies deps = new Dependencies();
+ m_children.add( deps );
+ m_dependencies = true;
+ return deps;
+ }
+ else
+ {
+ final String error =
+ "Dependencies definition already set!";
+ throw new BuildException( error );
+ }
+ }
+
public Object[] getChildren()
{
return m_children.toArray();
@@ -245,9 +281,10 @@
public static class Dependency
{
- private String m_key;
private String m_source;
+ private String m_key;
+
public void setKey( final String key )
{
m_key = key;
@@ -269,6 +306,55 @@
}
}
+ public static class Dependencies
+ {
+ private List m_dependencies = new ArrayList();
+
+ public Dependency createDependency()
+ {
+ final Dependency dep = new Dependency();
+ m_dependencies.add( dep );
+ return dep;
+ }
+
+ public Dependency[] getDependencies()
+ {
+ return (Dependency[]) m_dependencies.toArray( new Dependency[0] );
+ }
+ }
+
+ public static class Parameter extends Identifiable
+ {
+ private String m_value;
+
+ public void setValue( final String value )
+ {
+ m_value = value;
+ }
+
+ public String getValue()
+ {
+ return m_value;
+ }
+ }
+
+ public static class Parameters
+ {
+ private List m_parameters = new ArrayList();
+
+ public Parameter createParameter()
+ {
+ final Parameter parameter = new Parameter();
+ m_parameters.add( parameter );
+ return parameter;
+ }
+
+ public Parameter[] getParameters()
+ {
+ return (Parameter[]) m_parameters.toArray( new Parameter[0] );
+ }
+ }
+
private String m_target;
private String m_container;
private List m_content = new ArrayList();
@@ -402,19 +488,26 @@
protected void writePlugin( final Writer writer, final Definition def )
throws IOException
{
+ writeContainer( "", writer, def );
+ }
+
+ protected void writeContainer( final String pad, final Writer writer, final Definition def )
+ throws IOException
+ {
final Info info = def.getInfo();
- writer.write( "\n\n<container name=\"" + getName( def ) + "\">" );
+ writer.write( "\n\n" + pad + "<container name=\"" + getName( def ) + "\">" );
if( null != m_service )
{
- writeService( writer, m_service );
+ writeService( pad + " ", writer, m_service );
}
- writer.write( "\n\n <classloader>" );
+ final String indent = pad + " ";
+ writer.write( "\n\n" + indent + "<classloader>" );
boolean standalone = (null == m_target);
- writeClasspath( writer, def, " ", standalone );
- writer.write( "\n </classloader>" );
+ writeClasspath( writer, def, indent + " ", standalone );
+ writer.write( "\n" + indent + "</classloader>" );
Identifiable[] components =
(Identifiable[]) m_content.toArray( new Identifiable[0] );
@@ -423,21 +516,21 @@
Identifiable identifiable = components[i];
if( identifiable instanceof Component )
{
- writeComponent( writer, (Component) identifiable );
+ writeComponent( indent, writer, (Component) identifiable );
}
else if( identifiable instanceof Include )
{
- writeInclude( writer, (Include) identifiable );
+ writeInclude( indent, writer, (Include) identifiable );
}
}
- writer.write( "\n\n</container>\n" );
+ writer.write( "\n\n" + pad + "</container>\n" );
}
- private void writeComponent( final Writer writer, final Component component )
+ private void writeComponent( final String pad, final Writer writer, final Component component )
throws IOException
{
- writer.write( "\n\n <component name=\"" + component.getName()
+ writer.write( "\n\n" + pad + "<component name=\"" + component.getName()
+ "\" class=\"" + component.getClassname() + "\"" );
if( null != component.getProfile() )
@@ -458,21 +551,25 @@
Object child = children[i];
if( child instanceof Context )
{
- writeContext( writer, (Context) child );
+ writeContext( pad + " ", writer, (Context) child );
}
- else if( child instanceof Dependency )
+ else if( child instanceof Dependencies )
{
- writeDependency( writer, (Dependency) child );
+ writeDependencies( pad + " ", writer, (Dependencies) child );
+ }
+ else if( child instanceof Parameters )
+ {
+ writeParameters( pad + " ", writer, (Parameters) child );
}
}
- writer.write( "\n </component>" );
+ writer.write( "\n" + pad + "</component>" );
}
}
- private void writeContext( final Writer writer, final Context context )
+ private void writeContext( final String pad, final Writer writer, final Context context )
throws IOException
{
- writer.write( "\n <context" );
+ writer.write( "\n" + pad + "<context" );
if( null != context.getClassname() )
{
writer.write( " class=\"" + context.getClassname() + "\"" );
@@ -487,17 +584,17 @@
writer.write( ">" );
for( int i=0; i<entries.length; i++ )
{
- writeEntry( writer, entries[i] );
+ writeEntry( pad + " ", writer, entries[i] );
}
writer.write( "\n </context>" );
}
}
- private void writeEntry( final Writer writer, final Entry entry )
+ private void writeEntry( final String pad, final Writer writer, final Entry entry )
throws IOException
{
writer.write(
- "\n <entry key=\"" + entry.getKey() + "\"" );
+ "\n" + pad + "<entry key=\"" + entry.getKey() + "\"" );
if( null != entry.getClassname() )
{
@@ -520,43 +617,44 @@
writer.write( ">" );
for( int i=0; i<params.length; i++ )
{
- writeParam( writer, params[i] );
+ writeParam( pad + " ", writer, params[i] );
}
- writer.write( "\n </entry>" );
+ writer.write( "\n" + pad + "</entry>" );
}
}
}
- private void writeInclude( final Writer writer, final Include include )
+ private void writeInclude( final String pad, final Writer writer, final Include include )
throws IOException
{
writer.write(
- "\n <include name=\""
+ "\n\n" + pad + "<include name=\""
+ include.getName() + "\" artifact=\""
- + include.getArtifact() + "\"/>\n" );
+ + include.getArtifact() + "\"/>" );
}
- private void writeService( final Writer writer, final Service service )
+ private void writeService( final String pad, final Writer writer, final Service service )
throws IOException
{
+ final String lead = "\n" + pad;
writer.write( "\n" );
- writer.write( "\n <services>" );
- writer.write( "\n <service type=\"" + service.getType() + "\">" );
- writer.write( "\n <source>" + service.getSource() + "</source>" );
- writer.write( "\n </service>" );
- writer.write( "\n </services>" );
+ writer.write( lead + "<services>" );
+ writer.write( lead + " <service type=\"" + service.getType() + "\">" );
+ writer.write( lead + " <source>" + service.getSource() + "</source>" );
+ writer.write( lead + " </service>" );
+ writer.write( lead + "</services>" );
}
- private void writeParam( final Writer writer, final Param param )
+ private void writeParam( final String pad, final Writer writer, final Param param )
throws IOException
{
if( null == param.getClassname() )
{
- writer.write( "\n <param>" );
+ writer.write( "\n" + pad + "<param>" );
}
else
{
- writer.write( "\n <param class=\"" + param.getClassname() + "\">" );
+ writer.write( "\n" + pad + "<param class=\"" + param.getClassname() + "\">" );
}
String value = param.getValue();
@@ -576,19 +674,53 @@
writer.write( ">" );
for( int i=0; i<parameters.length; i++ )
{
- writeParam( writer, parameters[i] );
+ writeParam( pad + " ", writer, parameters[i] );
}
- writer.write( "\n </param>" );
+ writer.write( "\n" + pad + "</param>" );
}
}
}
- private void writeDependency( final Writer writer, final Dependency dep )
+ private void writeDependencies( final String pad, final Writer writer, final Dependencies deps )
+ throws IOException
+ {
+ writer.write( "\n" + pad + "<dependencies>" );
+ Dependency[] dependencies = deps.getDependencies();
+ for( int i=0; i<dependencies.length; i++ )
+ {
+ writeDependency( pad + " ", writer, dependencies[i] );
+ }
+ writer.write( "\n" + pad + "</dependencies>" );
+ }
+
+ private void writeDependency( final String pad, final Writer writer, final Dependency dep )
throws IOException
{
writer.write(
- "\n <dependency key=\""
+ "\n" + pad + "<dependency key=\""
+ dep.getKey() + "\" source=\""
+ dep.getSource() + "\"/>" );
}
+
+ private void writeParameters( final String pad, final Writer writer, final Parameters parameters )
+ throws IOException
+ {
+ writer.write( "\n" + pad + "<parameters>" );
+ Parameter[] params = parameters.getParameters();
+ for( int i=0; i<params.length; i++ )
+ {
+ writeParameter( pad + " ", writer, params[i] );
+ }
+ writer.write( "\n" + pad + "</parameters>" );
+ }
+
+ private void writeParameter( final String pad, final Writer writer, final Parameter param )
+ throws IOException
+ {
+ writer.write(
+ "\n" + pad + "<parameter name=\""
+ + param.getName() + "\" value=\""
+ + param.getValue() + "\"/>" );
+ }
+
}
Modified: avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/DeclareTask.java
==============================================================================
--- avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/DeclareTask.java (original)
+++ avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/DeclareTask.java Fri Jul 2 05:27:22 2004
@@ -181,10 +181,6 @@
writer.write( "\n </info>" );
}
- /**
- * Write the classpath. If the fag is true, then include this defintion
- * in the claspath.
- */
protected void writeClasspath(
final Writer writer, final Definition def, String padding, boolean flag )
throws IOException
---------------------------------------------------------------------
To unsubscribe, e-mail: cvs-unsubscribe@avalon.apache.org
For additional commands, e-mail: cvs-help@avalon.apache.org