Class JAXBTransformerResolver

  extended by org.mule.module.xml.transformer.jaxb.JAXBTransformerResolver
All Implemented Interfaces:
MuleContextAware, Disposable, TransformerResolver

public class JAXBTransformerResolver
extends Object
implements TransformerResolver, MuleContextAware, Disposable

A TransformerResolver implementation used to discover whether the current transform requests requires JAXB. The resolver will scan the source and return type for JAXB 2 annotations and will configure a JAXB transformer accordingly. The transformer is cached and will be used for any subsequent requests. The JAXBContext instance needed for the transform can be discovered from the registry, this means one can be pre-configured in Spring or Guice. If there is no pre-configured JAXBContext one will be created with the annotated JAXB class. This context will cached with the transformer.


Nested Class Summary
Nested classes/interfaces inherited from interface org.mule.api.registry.TransformerResolver
Field Summary
static String[] ignoredPackages
protected  Log logger
          logger used by this class
Fields inherited from interface org.mule.api.lifecycle.Disposable
Constructor Summary
Method Summary
 void dispose()
          A lifecycle method where implementor should free up any resources.
protected  JAXBContextResolver getContextResolver()
protected  boolean hasJaxbAnnotations(Class annotatedType)
 Transformer resolve(DataType source, DataType result)
          Responsible for finding a transformer with the given criteria.
 void setMuleContext(MuleContext context)
 void transformerChange(Transformer transformer, TransformerResolver.RegistryAction registryAction)
          A callback that is called when a transformer is registered or unregistered from the registry.
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Detail


public static final String[] ignoredPackages


protected final transient Log logger
logger used by this class

Constructor Detail


public JAXBTransformerResolver()
Method Detail


public void setMuleContext(MuleContext context)
Specified by:
setMuleContext in interface MuleContextAware


public Transformer resolve(DataType source,
                           DataType result)
                    throws ResolverException
Description copied from interface: TransformerResolver
Responsible for finding a transformer with the given criteria. Note that if a transformer is not found null should be return, an exception must NOT be thrown.

Specified by:
resolve in interface TransformerResolver
source - information about the source object including the object iself
result - information about the result object to transform to
a transformer from the registry that matches the criteria or null if a transformer was not found
ResolverException - Only thrown if an exception is thrown during the search, this exception will just be a wrapper


public void transformerChange(Transformer transformer,
                              TransformerResolver.RegistryAction registryAction)
Description copied from interface: TransformerResolver
A callback that is called when a transformer is registered or unregistered from the registry. This is used in situations where the resolver caches transformers and the cache needs to be updated.

Specified by:
transformerChange in interface TransformerResolver
transformer - the transformer that has changed
registryAction - whether the transformer was added or removed


public void dispose()
Description copied from interface: Disposable
A lifecycle method where implementor should free up any resources. If an exception is thrown it should just be logged and processing should continue. This method should not throw Runtime exceptions.

Specified by:
dispose in interface Disposable


protected JAXBContextResolver getContextResolver()
                                          throws RegistrationException


protected boolean hasJaxbAnnotations(Class annotatedType)

Copyright © 2003-2012 MuleSoft, Inc.. All Rights Reserved.