You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by do...@apache.org on 2001/12/17 09:48:57 UTC
cvs commit: jakarta-ant/proposal/myrmidon/src/java/org/apache/antlib/runtime ConverterDef.java Facility.java Import.java Resources.properties TypeDef.java
donaldp 01/12/17 00:48:57
Added: proposal/myrmidon/src/java/org/apache/antlib/runtime
ConverterDef.java Facility.java Import.java
Resources.properties TypeDef.java
Log:
Move runtime tasks from myrmidon.libs package
to abtlib package
Revision Changes Path
1.1 jakarta-ant/proposal/myrmidon/src/java/org/apache/antlib/runtime/ConverterDef.java
Index: ConverterDef.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 file.
*/
package org.apache.antlib.runtime;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import org.apache.avalon.excalibur.i18n.ResourceManager;
import org.apache.avalon.excalibur.i18n.Resources;
import org.apache.avalon.framework.component.ComponentException;
import org.apache.avalon.framework.component.ComponentManager;
import org.apache.avalon.framework.component.Composable;
import org.apache.myrmidon.api.AbstractTask;
import org.apache.myrmidon.api.TaskException;
import org.apache.myrmidon.interfaces.converter.ConverterRegistry;
import org.apache.myrmidon.interfaces.type.DefaultTypeFactory;
import org.apache.myrmidon.interfaces.type.TypeManager;
import org.apache.myrmidon.converter.Converter;
/**
* Task to define a converter.
*
* @author <a href="mailto:peter@apache.org">Peter Donald</a>
*/
public class ConverterDef
extends AbstractTask
implements Composable
{
private static final Resources REZ =
ResourceManager.getPackageResources( ConverterDef.class );
private String m_sourceType;
private String m_destinationType;
private File m_lib;
private String m_classname;
private ConverterRegistry m_converterRegistry;
private TypeManager m_typeManager;
public void compose( final ComponentManager componentManager )
throws ComponentException
{
m_converterRegistry = (ConverterRegistry)componentManager.lookup( ConverterRegistry.ROLE );
m_typeManager = (TypeManager)componentManager.lookup( TypeManager.ROLE );
}
public void setLib( final File lib )
{
m_lib = lib;
}
public void setClassname( final String classname )
{
m_classname = classname;
}
public void setSourceType( final String sourceType )
{
m_sourceType = sourceType;
}
public void setDestinationType( final String destinationType )
{
m_destinationType = destinationType;
}
public void execute()
throws TaskException
{
if( null == m_classname )
{
final String message = REZ.getString( "converterdef.no-classname.error" );
throw new TaskException( message );
}
else if( null == m_sourceType )
{
final String message = REZ.getString( "converterdef.no-source.error" );
throw new TaskException( message );
}
else if( null == m_destinationType )
{
final String message = REZ.getString( "converterdef.no-destination.error" );
throw new TaskException( message );
}
else if( null == m_lib )
{
final String message = REZ.getString( "converterdef.no-lib.error" );
throw new TaskException( message );
}
try
{
m_converterRegistry.registerConverter( m_classname, m_sourceType, m_destinationType );
final URL url = m_lib.toURL();
final DefaultTypeFactory factory = new DefaultTypeFactory( new URL[] { url } );
factory.addNameClassMapping( m_classname, m_classname );
m_typeManager.registerType( Converter.ROLE, m_classname, factory );
}
catch( final Exception e )
{
final String message = REZ.getString( "converterdef.no-register.error", m_classname );
throw new TaskException( message, e );
}
}
}
1.1 jakarta-ant/proposal/myrmidon/src/java/org/apache/antlib/runtime/Facility.java
Index: Facility.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 file.
*/
package org.apache.antlib.runtime;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import org.apache.avalon.excalibur.i18n.ResourceManager;
import org.apache.avalon.excalibur.i18n.Resources;
import org.apache.avalon.framework.component.ComponentException;
import org.apache.avalon.framework.component.ComponentManager;
import org.apache.avalon.framework.component.Composable;
import org.apache.avalon.framework.configuration.Configurable;
import org.apache.avalon.framework.configuration.Configuration;
import org.apache.avalon.framework.configuration.ConfigurationException;
import org.apache.myrmidon.api.AbstractTask;
import org.apache.myrmidon.api.TaskException;
import org.apache.myrmidon.aspects.AspectHandler;
import org.apache.myrmidon.interfaces.aspect.AspectManager;
import org.apache.myrmidon.interfaces.type.TypeException;
import org.apache.myrmidon.interfaces.type.TypeFactory;
import org.apache.myrmidon.interfaces.type.TypeManager;
import org.apache.myrmidon.framework.AbstractContainerTask;
/**
* Task that definesMethod to register a single converter.
*
* @author <a href="mailto:peter@apache.org">Peter Donald</a>
*/
public class Facility
extends AbstractContainerTask
implements Composable, Configurable
{
private static final Resources REZ =
ResourceManager.getPackageResources( Facility.class );
private String m_namespace;
private AspectHandler m_aspectHandler;
private AspectManager m_aspectManager;
private TypeFactory m_factory;
public void compose( final ComponentManager componentManager )
throws ComponentException
{
super.compose( componentManager );
m_aspectManager = (AspectManager)componentManager.lookup( AspectManager.ROLE );
final TypeManager typeManager = (TypeManager)componentManager.lookup( TypeManager.ROLE );
try { m_factory = typeManager.getFactory( AspectHandler.ROLE ); }
catch( final TypeException te )
{
final String message = REZ.getString( "facility.no-factory.error" );
throw new ComponentException( message, te );
}
}
public void configure( final Configuration configuration )
throws ConfigurationException
{
final String[] attributes = configuration.getAttributeNames();
for( int i = 0; i < attributes.length; i++ )
{
final String name = attributes[ i ];
final String value = configuration.getAttribute( name );
configure( this, name, value );
}
final Configuration[] children = configuration.getChildren();
if( 1 == children.length )
{
try
{
m_aspectHandler = (AspectHandler)m_factory.create( children[ 0 ].getName() );
}
catch( final Exception e )
{
final String message =
REZ.getString( "facility.no-create.error", children[ 0 ].getName() );
throw new ConfigurationException( message, e );
}
configure( m_aspectHandler, children[ 0 ] );
}
else
{
final String message = REZ.getString( "facility.multi-element.error" );
throw new ConfigurationException( message );
}
}
public void setNamespace( final String namespace )
{
m_namespace = namespace;
}
public void execute()
throws TaskException
{
if( null == m_namespace )
{
final String message = REZ.getString( "facility.no-namespace.error" );
throw new TaskException( message );
}
m_aspectManager.addAspectHandler( m_namespace, m_aspectHandler );
}
}
1.1 jakarta-ant/proposal/myrmidon/src/java/org/apache/antlib/runtime/Import.java
Index: Import.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 file.
*/
package org.apache.antlib.runtime;
import org.apache.avalon.excalibur.i18n.ResourceManager;
import org.apache.avalon.excalibur.i18n.Resources;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import org.apache.avalon.framework.component.ComponentException;
import org.apache.avalon.framework.component.ComponentManager;
import org.apache.avalon.framework.component.Composable;
import org.apache.myrmidon.api.AbstractTask;
import org.apache.myrmidon.api.TaskException;
import org.apache.myrmidon.interfaces.deployer.Deployer;
import org.apache.myrmidon.interfaces.deployer.DeploymentException;
/**
* Task to import a tasklib.
*
* @author <a href="mailto:peter@apache.org">Peter Donald</a>
*/
public class Import
extends AbstractTask
implements Composable
{
private static final Resources REZ =
ResourceManager.getPackageResources( Import.class );
private File m_lib;
private Deployer m_deployer;
public void compose( final ComponentManager componentManager )
throws ComponentException
{
m_deployer = (Deployer)componentManager.lookup( Deployer.ROLE );
}
public void setLib( final File lib )
{
m_lib = lib;
}
public void execute()
throws TaskException
{
if( null == m_lib )
{
final String message = REZ.getString( "import.no-lib.error" );
throw new TaskException( message );
}
try
{
m_deployer.deploy( m_lib );
}
catch( final DeploymentException de )
{
final String message = REZ.getString( "import.no-deploy.error" );
throw new TaskException( message, de );
}
}
}
1.1 jakarta-ant/proposal/myrmidon/src/java/org/apache/antlib/runtime/Resources.properties
Index: Resources.properties
===================================================================
converterdef.no-classname.error=Must specify classname parameter.
converterdef.no-source.error=Must specify the source-type parameter.
converterdef.no-destination.error=Must specify the destination-type parameter.
converterdef.no-lib.error=Must specify the lib parameter.
converterdef.no-register.error=Failed to register converter {0}.
facility.no-factory.error=Unable to retrieve AspectHandler factory from TypeManager.
facility.no-create.error=Failed to create aspect handler of type {0}.
facility.multi-element.error=Expected one sub-element to configure facility.
facility.no-namespace.error=Must specify namespace parameter.
import.no-lib.error=Must specify lib parameter.
import.no-deploy.error=Error importing tasklib.
1.1 jakarta-ant/proposal/myrmidon/src/java/org/apache/antlib/runtime/TypeDef.java
Index: TypeDef.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 file.
*/
package org.apache.antlib.runtime;
import org.apache.myrmidon.api.Task;
import org.apache.myrmidon.framework.AbstractTypeDef;
/**
* Task to define a type.
*
* @author <a href="mailto:peter@apache.org">Peter Donald</a>
*/
public class TypeDef
extends AbstractTypeDef
{
private String m_type;
public void setType( final String type )
{
m_type = type;
}
protected String getTypeName()
{
return m_type;
}
}
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>