Я использую верблюд для передачи файлов с одной конечной точки на другую. Я запускаю несколько маршрутов, в которых некоторые маршруты должны дешифровать файлы. Как я могу сделать процесс unmarshal необязательным в определенном маршруте на основе логического состояния?Как использовать java boolean condition на верблюжьем маршруте?
from(source)
.choice()
.when(isEncrypted())) //Java boolean value
.unmarshal(decrypt(pgpEncryptionDetails))
.endChoice()
to(destination);
PGPDataFormat decrypt(PGPEncryptionDetails pgpEncryptionDetails) {
PGPDataFormat pgpDataFormat = new PGPDataFormat();
pgpDataFormat.setKeyFileName(pgpEncryptionDetails.getPrivateKeyPath());
pgpDataFormat.setPassword(pgpEncryptionDetails.getPassphrase());
pgpDataFormat.setKeyUserid(pgpEncryptionDetails.getUserId());
return pgpDataFormat;
}
Я знаю, как это сделать с простым выражением, но здесь мое состояние не зависит от обмена.
Почему может вы не проверяете, требуется ли дешифрование внутри 'decrypt()' self? – SubOptimal
@SubOptimal, мне нужно обработать это до вызова 'unmarshal'. Я должен пропустить 'unmarshal()' сам, а не только 'decrypt()'. Я обновил код для лучшего понимания. – Gangaraju