package com.megatim.apifdxweb.service.impl.camel.routes.in;
|
|
import com.megatim.apifdxweb.service.impl.camel.config.CamelRouteConfiguration;
|
import com.megatim.apifdxweb.service.impl.camel.config.LocalConfiguration;
|
import com.megatim.apifdxweb.service.impl.camel.filters.ReferentielFilter;
|
import com.megatim.apifdxweb.service.impl.camel.processors.ReferentielProcessor;
|
import com.megatim.fdxcommons.model.pojo.ReferentielToImportData;
|
import com.megatim.fdxcommons.tools.context.AppContext;
|
import com.megatim.fdxcommons.tools.resolvers.JacksonMapperFormat;
|
import java.util.concurrent.RejectedExecutionException;
|
import javax.inject.Inject;
|
import org.apache.camel.builder.RouteBuilder;
|
|
/**
|
*
|
* @author ASUS
|
*/
|
public class ReferentielIntegrationLocalRoute extends RouteBuilder {
|
|
@Inject
|
private ReferentielProcessor referentielProcessor;
|
|
@Override
|
public void configure() throws Exception {
|
|
LocalConfiguration localConfiguration
|
= new CamelRouteConfiguration(com.megatim.apifdxweb.tools.AppContext.PROPERTY_FILE_PATH).getLocalConfiguration();
|
|
onException(IllegalArgumentException.class)
|
.process(exchange -> {
|
exchange.getException().printStackTrace();
|
})
|
.handled(true);
|
|
onException(RejectedExecutionException.class)
|
.log("Caught RejectedExecutionException: ${exception.message}")
|
.handled(true);
|
|
from(localConfiguration.referentielRouteURI())
|
.filter()
|
.method(ReferentielFilter.class, "isConsumable")
|
.process(referentielProcessor)
|
.marshal(JacksonMapperFormat.jacksonDataFormat(ReferentielToImportData.class))
|
.to("rabbitmq:"
|
+ AppContext.REFERENTIEL_INTEGRATION_EXCHANGE
|
+ "?queue=" + AppContext.REFERENTIEL_INTEGRATION_QUEUE
|
+ "&routingKey=" + AppContext.REFERENTIEL_INTEGRATION_ROUTING_KEY
|
+ "&autoDelete=false");
|
}
|
|
}
|