camel_rest
Различные тесты Apache Camel с Kotlin и Spring Boot
Оглавление:
Цель
Cоздать небольшое приложение на Kotlin с использованием Spring Boot и Camel.
Подобный проект на Java https://github.com/cherepakhin/spring-boot-camel.
Ручная проверка работоспособности сервиса
$ http :8980/camel_rest/api/echo/aaa
Для демонстрации сделаны Rest контроллеры в пакете ru.perm.v.camelrest.rest.camel.
Для отправки запросов в REST Controller использована утилита httpie.
Функции Camel
Копирование файлов
ru.perm.v.camelrest.camel.CamelCopyFileRoute:
$ http http://127.0.0.1:8980/camel_rest/api/camel/copy_file
Примечания
camel: springboot: main-run-controller: true
Запускает контроллер Camel и заменяет:
val context = DefaultCamelContext()context.addRoutes(camelCopyFileRoute)context.start()context.stop()
(см. https://github.com/cherepakhin/camel_rest)
Собственные параметры конфигурации в application.yaml
Определение в application.yaml:
myconfig: testDirectory: file:/tmp/testarea camelContainer: jobParamCopyFile: srcDirectory: ${myconfig.testDirectory}/srcDir dstDirectory: ${myconfig.testDirectory}/dstDir
(в yaml файле использована общая переменная myconfig.testDirectory)
myconfig использован в ru.perm.v.camelrest.rest.ParamCtrl.kt
Тестирование получения параметров Camel параметров:
$ http 8980/camel_rest/api/params/myconfig
HTTP/1.1 200 { "camel": { "copyFile": { "dstDirectory": "file:~/tmp/testarea/dstDir", "srcDirectory": "file:~/tmp/testarea/srcDir" } }, "testDirectory": "file:~/tmp/testarea"}
Совет взят тут: https://stackoverflow.com/questions/71689261/how-do-i-set-and-read-properties-in-a-springboot-application-using-kotlin