У меня есть этот маршрут верблюда, где значения json из URL-адреса вставляются в мою базу данных. код:apache camel hibernate insert
@Override
public void configure() throws Exception {
//voor elke tabel een andere route want bij wijzigingen json formaat crashed enkel 1 routebuilder
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
DataFormat jenkinsConfigFormat = new JacksonDataFormat(objectMapper, JenkinsConfiguration.class);
jenkinsConfigurations = configurationService.listJenkinsConfigurations();
logger.info("Starting routes for " + jenkinsConfigurations.size() + " jenkins configurations");
for (JenkinsConfiguration configuration : jenkinsConfigurations) {
from("timer://foo?fixedRate=true&period=120s&delay=20s")
.to(configuration.getUrl() + "/api/json")
.routeId(BUILD_ROUTE)
.unmarshal(jenkinsConfigFormat)
.enrich("direct:jenkinsconfig", new UseLatestAggregationStrategy())
.split(simple("${body.builds}"))
.choice()
.when(buildNumberAlreadyExists())
.otherwise()
.to("hibernate:be.kdg.teamf.model.Build")
.end();
from("timer://foo?fixedRate=true&period=120s&delay=20s")
.routeId(HEALTH_ROUTE)
.to(configuration.getUrl() + "/api/json")
.unmarshal(jenkinsConfigFormat)
.enrich("direct:jenkinsconfig", new UseLatestAggregationStrategy())
.split(simple("${body.healthReport}"))
.choice()
.when(healthReportAlreadyExists())
.otherwise()
.to("hibernate:be.kdg.teamf.model.HealthReport")
.end();
from("timer://foo?fixedRate=true&period=120s&delay=20s")
.routeId(MODULE_ROUTE)
.to(configuration.getUrl() + "/api/json")
.unmarshal(jenkinsConfigFormat)
.enrich("direct:jenkinsconfig", new UseLatestAggregationStrategy())
.split(simple("${body.modules}"))
.choice()
.when(moduleAlreadyExists())
.otherwise()
.to("hibernate:be.kdg.teamf.model.Module")
.end();
List<Build> jenkinsBuilds = buildService.getBuildsJenkinsProject(configuration);
DataFormat buildConfigFormat = new JacksonDataFormat(objectMapper, BuildDetail.class);
Как вы можете видеть все jenkinsBuilds загружены в список:
List<Build> jenkinsBuilds = buildService.getBuildsJenkinsProject(configuration);
В первый раз, когда я запускаю программу список пуст. Во второй раз, когда я запускаю программу, список может получить нужные значения из моей базы данных.
Мой вопрос: как настроить маршруты, чтобы список содержал те же значения, что и при первом запуске?
Возможно ли перезапустить весь метод Configure()?
заранее спасибо