Tuscany Core

org.apache.tuscany.core.extension.config
Interface ImplementationProcessor

All Known Implementing Classes:
AutowireProcessor, ComponentNameProcessor, ContextProcessor, DefaultProcessor, DestroyProcessor, ImplementationProcessorSupport, InitProcessor, MonitorProcessor, ParentContextProcessor, PropertyProcessor, PropertyReferenceValidator, ReferenceProcessor, ScopeProcessor, SDOHelperProcessor, ServiceProcessor

public interface ImplementationProcessor

Implementations process a Java class and contribute to a ComponentType or provide some validation function. Implementations may contribute to defined ComponentType metadata, a general ComponentType extensibility element, or a more specific Java extensibility element, which is associated with JavaExtensibilityElement and stored in the ComponentType's extensibility collection. Processors will typically use JavaExtensibilityHelper#getExtensibilityElement(org.apache.tuscany.model.assembly.Extensible), which provides methods for retrieving the Java extensibility element.

In the runtime, a ComponentTypeIntrospector system service introspects component implementation types when an assembly is loaded, calling out to registered processors in the order defined by ComponentTypeIntrospector#introspect(Class). Generally, processors are also system services which register themeselves with a ComponentTypeIntrospector. For convenience, a processor implementation can extend <@link org.apache.tuscany.core.config.processor.ImplementationProcessorSupport}, which provides mechanisms for doing this.

There are a series of bootsrap, or primordial, processors configured in the runtime, and they serve as examples of how an ImplementationProcessor can be implemented.

Version:
$$Rev$$ $$Date$$
See Also:
PropertyProcessor, ReferenceProcessor, InitProcessor, DestroyProcessor, ComponentNameProcessor, ImplementationProcessorSupport

Method Summary
 void visitClass(java.lang.Class<?> clazz, org.apache.tuscany.model.assembly.ComponentType type)
           
 void visitConstructor(java.lang.reflect.Constructor<?> constructor, org.apache.tuscany.model.assembly.ComponentType type)
           
 void visitEnd(java.lang.Class<?> clazz, org.apache.tuscany.model.assembly.ComponentType type)
           
 void visitField(java.lang.reflect.Field field, org.apache.tuscany.model.assembly.ComponentType type)
           
 void visitMethod(java.lang.reflect.Method method, org.apache.tuscany.model.assembly.ComponentType type)
           
 void visitSuperClass(java.lang.Class<?> clazz, org.apache.tuscany.model.assembly.ComponentType type)
           
 

Method Detail

visitClass

void visitClass(java.lang.Class<?> clazz,
                org.apache.tuscany.model.assembly.ComponentType type)
                throws ConfigurationLoadException
Throws:
ConfigurationLoadException

visitSuperClass

void visitSuperClass(java.lang.Class<?> clazz,
                     org.apache.tuscany.model.assembly.ComponentType type)
                     throws ConfigurationLoadException
Throws:
ConfigurationLoadException

visitMethod

void visitMethod(java.lang.reflect.Method method,
                 org.apache.tuscany.model.assembly.ComponentType type)
                 throws ConfigurationLoadException
Throws:
ConfigurationLoadException

visitConstructor

void visitConstructor(java.lang.reflect.Constructor<?> constructor,
                      org.apache.tuscany.model.assembly.ComponentType type)
                      throws ConfigurationLoadException
Throws:
ConfigurationLoadException

visitField

void visitField(java.lang.reflect.Field field,
                org.apache.tuscany.model.assembly.ComponentType type)
                throws ConfigurationLoadException
Throws:
ConfigurationLoadException

visitEnd

void visitEnd(java.lang.Class<?> clazz,
              org.apache.tuscany.model.assembly.ComponentType type)
              throws ConfigurationLoadException
Throws:
ConfigurationLoadException

Tuscany Core

-