}
protected void process(ServiceReferenceMetaData refs, E element, HandlerChain annotation)
{
String fileName = annotation.file();
ServiceReferenceHandlerChainsMetaData handlerChains = null;
try
{
// get inputStream for the file
InputStream in = getResourceInputStream(element, fileName);
// unmarshal
handlerChains = unmarshall(in);
}
catch (Exception e)
{
throw new IllegalStateException("Could not process file: "+ fileName, e);
}
if (handlerChains == null)
return;
// Merge if there are already handlerChains
if (refs.getHandlerChains() != null)
{
ServiceReferenceHandlerChainsMetaData merged = new ServiceReferenceHandlerChainsMetaData();
merged.merge(handlerChains, refs.getHandlerChains());
refs.setHandlerChains(merged);
}
else
{
refs.setHandlerChains(handlerChains);