org.apache.camel.processor.validation
Class ValidatingProcessor

java.lang.Object
  extended by org.apache.camel.processor.validation.ValidatingProcessor
All Implemented Interfaces:
AsyncProcessor, Processor

public class ValidatingProcessor
extends Object
implements AsyncProcessor

A processor which validates the XML version of the inbound message body against some schema either in XSD or RelaxNG


Constructor Summary
ValidatingProcessor()
           
 
Method Summary
protected  Schema createSchema()
           
protected  SchemaFactory createSchemaFactory()
           
protected  Source createSchemaSource()
           
protected  void doProcess(Exchange exchange)
           
 ValidatorErrorHandler getErrorHandler()
           
 String getHeaderName()
           
 LSResourceResolver getResourceResolver()
           
 Schema getSchema()
           
 byte[] getSchemaAsByteArray()
           
 SchemaFactory getSchemaFactory()
           
 File getSchemaFile()
           
 String getSchemaLanguage()
           
 Source getSchemaSource()
           
 URL getSchemaUrl()
           
protected  Source getSource(Exchange exchange, Object content)
          Converts the inbound body or header to a Source, if it is not already a Source.
 boolean isFailOnNullBody()
           
 boolean isFailOnNullHeader()
           
protected  boolean isInputStreamNeeded(Exchange exchange)
          Checks whether we need an InputStream to access the message body or header.
 boolean isUseDom()
          Deprecated. 
 boolean isUseSharedSchema()
           
 void loadSchema()
           
 void process(Exchange exchange)
          Processes the message exchange
 boolean process(Exchange exchange, AsyncCallback callback)
          Processes the message exchange.
 void setErrorHandler(ValidatorErrorHandler errorHandler)
           
 void setFailOnNullBody(boolean failOnNullBody)
           
 void setFailOnNullHeader(boolean failOnNullHeader)
           
 void setHeaderName(String headerName)
           
 void setResourceResolver(LSResourceResolver resourceResolver)
           
 void setSchema(Schema schema)
           
 void setSchemaAsByteArray(byte[] schemaAsByteArray)
           
 void setSchemaFactory(SchemaFactory schemaFactory)
           
 void setSchemaFile(File schemaFile)
           
 void setSchemaLanguage(String schemaLanguage)
           
 void setSchemaSource(Source schemaSource)
           
 void setSchemaUrl(URL schemaUrl)
           
 void setUseDom(boolean useDom)
          Deprecated. 
 void setUseSharedSchema(boolean useSharedSchema)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ValidatingProcessor

public ValidatingProcessor()
Method Detail

process

public void process(Exchange exchange)
             throws Exception
Description copied from interface: Processor
Processes the message exchange

Specified by:
process in interface Processor
Parameters:
exchange - the message exchange
Throws:
Exception - if an internal processing error has occurred.

process

public boolean process(Exchange exchange,
                       AsyncCallback callback)
Description copied from interface: AsyncProcessor
Processes the message exchange. Similar to Processor.process(org.apache.camel.Exchange), but the caller supports having the exchange asynchronously processed.

If there was a failure processing then the caused Exception would be set on the Exchange.

Specified by:
process in interface AsyncProcessor
Parameters:
exchange - the message exchange
callback - the AsyncCallback will be invoked when the processing of the exchange is completed. If the exchange is completed synchronously, then the callback is also invoked synchronously. The callback should therefore be careful of starting recursive loop.
Returns:
(doneSync) true to continue execute synchronously, false to continue being executed asynchronously

doProcess

protected void doProcess(Exchange exchange)
                  throws Exception
Throws:
Exception

loadSchema

public void loadSchema()
                throws Exception
Throws:
Exception

getSchema

public Schema getSchema()
                 throws IOException,
                        SAXException
Throws:
IOException
SAXException

setSchema

public void setSchema(Schema schema)

getSchemaLanguage

public String getSchemaLanguage()

setSchemaLanguage

public void setSchemaLanguage(String schemaLanguage)

getSchemaSource

public Source getSchemaSource()
                       throws IOException
Throws:
IOException

setSchemaSource

public void setSchemaSource(Source schemaSource)

getSchemaUrl

public URL getSchemaUrl()

setSchemaUrl

public void setSchemaUrl(URL schemaUrl)

getSchemaFile

public File getSchemaFile()

setSchemaFile

public void setSchemaFile(File schemaFile)

getSchemaAsByteArray

public byte[] getSchemaAsByteArray()

setSchemaAsByteArray

public void setSchemaAsByteArray(byte[] schemaAsByteArray)

getSchemaFactory

public SchemaFactory getSchemaFactory()

setSchemaFactory

public void setSchemaFactory(SchemaFactory schemaFactory)

getErrorHandler

public ValidatorErrorHandler getErrorHandler()

setErrorHandler

public void setErrorHandler(ValidatorErrorHandler errorHandler)

isUseDom

@Deprecated
public boolean isUseDom()
Deprecated. 


setUseDom

@Deprecated
public void setUseDom(boolean useDom)
Deprecated. 

Sets whether DOMSource and DOMResult should be used.

Parameters:
useDom - true to use DOM otherwise

isUseSharedSchema

public boolean isUseSharedSchema()

setUseSharedSchema

public void setUseSharedSchema(boolean useSharedSchema)

getResourceResolver

public LSResourceResolver getResourceResolver()

setResourceResolver

public void setResourceResolver(LSResourceResolver resourceResolver)

isFailOnNullBody

public boolean isFailOnNullBody()

setFailOnNullBody

public void setFailOnNullBody(boolean failOnNullBody)

isFailOnNullHeader

public boolean isFailOnNullHeader()

setFailOnNullHeader

public void setFailOnNullHeader(boolean failOnNullHeader)

getHeaderName

public String getHeaderName()

setHeaderName

public void setHeaderName(String headerName)

createSchemaFactory

protected SchemaFactory createSchemaFactory()

createSchemaSource

protected Source createSchemaSource()
                             throws IOException
Throws:
IOException

createSchema

protected Schema createSchema()
                       throws SAXException,
                              IOException
Throws:
SAXException
IOException

isInputStreamNeeded

protected boolean isInputStreamNeeded(Exchange exchange)
Checks whether we need an InputStream to access the message body or header.

Depending on the content in the message body or header, we may not need to convert to InputStream.

Parameters:
exchange - the current exchange
Returns:
true to convert to InputStream beforehand converting to Source afterwards.

getSource

protected Source getSource(Exchange exchange,
                           Object content)
Converts the inbound body or header to a Source, if it is not already a Source.

This implementation will prefer to source in the following order:



Apache Camel