这是一个散列处理器,我想在其中使用SHA-1算法对FileInputStream进行散列,然后将散列添加到“HashValue”下的交换标头中
@Component
公共类FileContentHashExpression实现表达式{
@Override
public <T> T evaluate(Exchange exchange, Class<T> type) {
// TODO Check for String type and generic file message
if (type != String.class){
throw new IllegalArgumentException("This is String only expression");
}
try (FileInputStream fileInputStream = new FileInputStream(((File)exchange.getIn(GenericFileMessage.class).getGenericFile().getFile()))) {
exchange.getIn().setHeader("HashValue", DigestUtils.sha1(fileInputStream));
return (T) (DigestUtils.sha1(fileInputStream));
} catch (IOException e) {
throw new RuntimeException(e);
}
}
1条答案
按热度按时间osh3o9ms1#
这是一个单元测试,因此您所需要做的就是编写一个测试,该测试生成一个具有null(或空)输入Message正文的Exchange,然后调用方法。测试您所期望的条件。