donaldp 2002/11/15 21:15:45
Modified: info/src/java/org/apache/avalon/framework/tools/ant
MetaGenerateTask.java
info/src/test/org/apache/avalon/framework/tools/infobuilder/test
InfoBuilderTestCase.java
Added: info/src/java/org/apache/avalon/framework/tools/qdox
DefaultInfoBuilder.java
Removed: info/src/java/org/apache/avalon/framework/tools/qdox
QDoxInfoBuilder.java
Log:
Rename QDoxInfoBuilder to DefaultInfoBuilder
Revision Changes Path
1.3 +3 -3
jakarta-avalon-excalibur/info/src/java/org/apache/avalon/framework/tools/ant/MetaGenerateTask.java
Index: MetaGenerateTask.java
===================================================================
RCS file:
/home/cvs/jakarta-avalon-excalibur/info/src/java/org/apache/avalon/framework/tools/ant/MetaGenerateTask.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- MetaGenerateTask.java 16 Nov 2002 05:00:05 -0000 1.2
+++ MetaGenerateTask.java 16 Nov 2002 05:15:45 -0000 1.3
@@ -18,7 +18,7 @@
import org.apache.avalon.framework.tools.infobuilder.SerializedInfoWriter;
import org.apache.avalon.framework.tools.infobuilder.InfoWriter;
import org.apache.avalon.framework.tools.infobuilder.XMLInfoWriter;
-import org.apache.avalon.framework.tools.qdox.QDoxInfoBuilder;
+import org.apache.avalon.framework.tools.qdox.DefaultInfoBuilder;
import org.apache.avalon.framework.tools.ant.FormatEnum;
import org.apache.tools.ant.BuildException;
@@ -136,7 +136,7 @@
final DocletTag tag = javaClass.getTagByName( "avalon.component" );
if( null != tag )
{
- final QDoxInfoBuilder infoBuilder = new QDoxInfoBuilder();
+ final DefaultInfoBuilder infoBuilder = new DefaultInfoBuilder();
info = infoBuilder.buildComponentInfo( javaClass );
}
else
1.1
jakarta-avalon-excalibur/info/src/java/org/apache/avalon/framework/tools/qdox/DefaultInfoBuilder.java
Index: DefaultInfoBuilder.java
===================================================================
/*
* Copyright (C) The Apache Software Foundation. All rights reserved.
*
* This software is published under the terms of the Apache Software License
* version 1.1, a copy of which has been included with this distribution in
* the LICENSE.txt file.
*/
package org.apache.avalon.framework.tools.qdox;
import com.thoughtworks.qdox.model.DocletTag;
import com.thoughtworks.qdox.model.JavaClass;
import com.thoughtworks.qdox.model.JavaMethod;
import java.util.ArrayList;
import org.apache.avalon.framework.info.ComponentDescriptor;
import org.apache.avalon.framework.info.ComponentInfo;
import org.apache.avalon.framework.info.ContextDescriptor;
import org.apache.avalon.framework.info.DependencyDescriptor;
import org.apache.avalon.framework.info.EntryDescriptor;
import org.apache.avalon.framework.info.LoggerDescriptor;
import org.apache.avalon.framework.info.SchemaDescriptor;
import org.apache.avalon.framework.info.ServiceDescriptor;
/**
* This is a utility class that is used to build a ComponentInfo object
* from QDoxs JavaClass object model. This essentially involves interpreting
* all of the javadoc tags present in JavaClass object model.
*
* @author <a href="mailto:peter at apache.org">Peter Donald</a>
* @version $Revision: 1.1 $ $Date: 2002/11/16 05:15:45 $
*/
public class DefaultInfoBuilder
extends AbstractInfoBuilder
{
/**
* Build a ComponentInfo object for specified class.
*
* @param javaClass the class
* @return the ComponentInfo object
*/
public ComponentInfo buildComponentInfo( final JavaClass javaClass )
{
final ComponentDescriptor component = buildComponent( javaClass );
final ServiceDescriptor[] services = buildServices( javaClass );
final ContextDescriptor context = buildContext( javaClass );
final LoggerDescriptor[] loggers = buildLoggers( javaClass );
final SchemaDescriptor schema = buildSchema( javaClass );
final DependencyDescriptor[] dependencies = buildDependencies( javaClass );
return new ComponentInfo( component, services, loggers, context,
dependencies, schema );
}
/**
* Build the component descriptor for specified class.
*
* @param javaClass the class
* @return the component descriptor
*/
private ComponentDescriptor buildComponent( final JavaClass javaClass )
{
final String type = javaClass.getFullyQualifiedName();
return new ComponentDescriptor( type, EMPTY_ATTRIBUTES );
}
/**
* Build the set of service descriptors for specified class.
*
* @param javaClass the class
* @return the set of service descriptors
*/
private ServiceDescriptor[] buildServices( final JavaClass javaClass )
{
final ArrayList services = new ArrayList();
final DocletTag[] tags = javaClass.getTagsByName( "avalon.service" );
for( int i = 0; i < tags.length; i++ )
{
final DocletTag tag = tags[ i ];
final String unresolvedType = getNamedParameter( tag, "type" );
final String type = resolveType( javaClass, unresolvedType );
final ServiceDescriptor service = new ServiceDescriptor( type,
EMPTY_ATTRIBUTES );
services.add( service );
}
return (ServiceDescriptor[])services.toArray( new ServiceDescriptor[
services.size() ] );
}
/**
* Build the set of logger descriptors for specified class.
*
* @param javaClass the class
* @return the set of logger descriptors
*/
private LoggerDescriptor[] buildLoggers( final JavaClass javaClass )
{
final JavaMethod method =
getLifecycleMethod( javaClass, "enableLogging", LOGGER_CLASS );
if( null == method )
{
return new LoggerDescriptor[ 0 ];
}
else
{
final ArrayList loggers = new ArrayList();
final DocletTag[] tags = method.getTagsByName( "avalon.logger" );
for( int i = 0; i < tags.length; i++ )
{
final String name =
getNamedParameter( tags[ i ], "name", "" );
final LoggerDescriptor logger =
new LoggerDescriptor( name, EMPTY_ATTRIBUTES );
loggers.add( logger );
}
return (LoggerDescriptor[])loggers.toArray( new LoggerDescriptor[
loggers.size() ] );
}
}
/**
* Build the context descriptor for specified class.
*
* @param javaClass the class
* @return the context descriptor
*/
private ContextDescriptor buildContext( final JavaClass javaClass )
{
final JavaMethod method =
getLifecycleMethod( javaClass, "contextualize", CONTEXT_CLASS );
if( null == method )
{
return new ContextDescriptor( CONTEXT_CLASS,
new EntryDescriptor[ 0 ],
EMPTY_ATTRIBUTES );
}
else
{
String type = CONTEXT_CLASS;
final DocletTag tag = method.getTagByName( "avalon.context" );
if( null != tag && null != tag.getNamedParameter( "type" ) )
{
final String value = getNamedParameter( tag, "type" );
type = resolveType( javaClass, value );
}
final ArrayList entrySet = new ArrayList();
final DocletTag[] tags = method.getTagsByName( "avalon.entry" );
for( int i = 0; i < tags.length; i++ )
{
final String key = getNamedParameter( tags[ i ], "key" );
final String entryType = getNamedParameter( tags[ i ], "type" );
final String optional = getNamedParameter( tags[ i ], "optional",
"false" );
final boolean isOptional = "true".equals( optional );
final EntryDescriptor entry =
new EntryDescriptor( key, entryType, isOptional,
EMPTY_ATTRIBUTES );
entrySet.add( entry );
}
final EntryDescriptor[] entrys =
(EntryDescriptor[])entrySet.toArray( new EntryDescriptor[
entrySet.size() ] );
return new ContextDescriptor( type, entrys, EMPTY_ATTRIBUTES );
}
}
/**
* Build the schema descriptor for specified class.
*
* @param javaClass the class
* @return the schema descriptor
*/
private SchemaDescriptor buildSchema( final JavaClass javaClass )
{
String category = "configuration";
JavaMethod method =
getLifecycleMethod( javaClass, "configure", CONFIGURATION_CLASS );
DocletTag tag = null;
if( null != method )
{
tag = method.getTagByName( "avalon.configuration" );
}
else
{
method =
getLifecycleMethod( javaClass, "parameterize", PARAMETERS_CLASS );
category = "parameters";
if( null == method )
{
return new SchemaDescriptor( "", "", "", EMPTY_ATTRIBUTES );
}
tag = method.getTagByName( "avalon.parameters" );
}
final String location = getNamedParameter( tag, "location", "" );
final String type = getNamedParameter( tag, "type", "" );
return new SchemaDescriptor( category, location, type, EMPTY_ATTRIBUTES );
}
/**
* Build the set of dependency descriptors for specified class.
*
* @param javaClass the class
* @return the set of dependency descriptors
*/
private DependencyDescriptor[] buildDependencies( final JavaClass javaClass )
{
JavaMethod method =
getLifecycleMethod( javaClass, "compose", COMPONENT_MANAGER_CLASS );
//If no compose then try for a service method ...
if( null == method )
{
method =
getLifecycleMethod( javaClass, "service", SERVICE_MANAGER_CLASS );
}
if( null == method )
{
return new DependencyDescriptor[ 0 ];
}
else
{
final ArrayList deps = new ArrayList();
final DocletTag[] tags = method.getTagsByName( "avalon.dependency" );
for( int i = 0; i < tags.length; i++ )
{
final DocletTag tag = tags[ i ];
final String unresolvedType = getNamedParameter( tag, "type" );
final String type = resolveType( javaClass, unresolvedType );
final String key = getNamedParameter( tag, "key", type );
final String optional = getNamedParameter( tag, "optional", "false"
);
final boolean isOptional = "true".equals( optional );
final DependencyDescriptor dependency =
new DependencyDescriptor( key, type, isOptional,
EMPTY_ATTRIBUTES );
deps.add( dependency );
}
return (DependencyDescriptor[])deps.toArray( new DependencyDescriptor[
deps.size() ] );
}
}
}
1.14 +3 -3
jakarta-avalon-excalibur/info/src/test/org/apache/avalon/framework/tools/infobuilder/test/InfoBuilderTestCase.java
Index: InfoBuilderTestCase.java
===================================================================
RCS file:
/home/cvs/jakarta-avalon-excalibur/info/src/test/org/apache/avalon/framework/tools/infobuilder/test/InfoBuilderTestCase.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- InfoBuilderTestCase.java 16 Nov 2002 04:34:50 -0000 1.13
+++ InfoBuilderTestCase.java 16 Nov 2002 05:15:45 -0000 1.14
@@ -25,7 +25,7 @@
import org.apache.avalon.framework.tools.infobuilder.InfoWriter;
import org.apache.avalon.framework.tools.infobuilder.InfoReader;
import org.apache.avalon.framework.tools.infobuilder.XMLInfoReader;
-import org.apache.avalon.framework.tools.qdox.QDoxInfoBuilder;
+import org.apache.avalon.framework.tools.qdox.DefaultInfoBuilder;
import org.apache.avalon.framework.container.ContainerUtil;
import java.util.Properties;
import java.util.Arrays;
@@ -120,7 +120,7 @@
System.out.println( "source.getImports() = " + Arrays.asList(
source.getImports() ) );
- final QDoxInfoBuilder infoBuilder = new QDoxInfoBuilder();
+ final DefaultInfoBuilder infoBuilder = new DefaultInfoBuilder();
final ComponentInfo actual = infoBuilder.buildComponentInfo( classes[ 0 ] );
final ComponentInfo expected = loadComponentInfo( SOURCE1_INFO );
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>