/ Configuração externa de boot Spring e quartz.properties em apache camel - spring, spring-boot, apache-camel, scheduler-quartz

Configuração externa de boot Spring e quartz.properties em apache camel - spring, spring-boot, apache-camelo, quartz-scheduler

Estou implementando meu código na inicialização do Spring usandoApache camel como camada intermediária e ao definir as rotas em camel eu estava usando o componente quartz2 para isso eu queria usar o arquivo quartz.properties externo para substituir arquivo quartz.properties padrão.Pode alguém, por favor me ajudar neste fora. Eu tentei implementar usando CommandLineRunner, mas estou recebendo exceção como abaixo org.springframework.beans.factory.BeanCreationException: Erro ao criar bean com o nome "schedulerApplication": Falha na injeção de dependências autowired; exceção aninhada é java.lang.IllegalArgumentException: Não foi possível resolver o espaço reservado "org.quartz.scheduler.instanceName" no valor "$ {org.quartz.scheduler.instanceName}"

Respostas:

0 para resposta № 1

Se eu entendi direito você deve estar querendo externar suas próprias propriedades de quartzo e tentar usá-lo no componente camelo-quartzo2. Crie sua entrada personalizada em quartz.properties como abaixo

quartz.uri=quartz://group/quartzScheduler?cron=0+05+21+?+*+*

Abaixo está um exemplo de rota

public void configure() throws Exception {
super.configure();
String externalService= PropertyParser.getInstance().getStringProperty(Key.Service);
from(quartzEndpoint("sampleQuartz"))
.to(externalService)
.process(new Processor() {
public void process(Exchange e) throws Exception {
log.info("Before storing " + MessageHelper.extractBodyAsString(e.getIn()));
MyHelper.writeCLOBPut(e);
log.info("After storing " + MessageHelper.extractBodyAsString(e.getIn()));
}
}).log("Stored in DB");
}

Espero que isso tenha ajudado