So, what is your question?
On Thu, Jun 2, 2016 at 11:56 AM, Daniel Pompa [via Camel] <
[email protected]> wrote:
> Hi, I created a project, I want that the route stops when the Camel Batch
> are complete, I used
> SimpleScheduledRoutePolicy but you have to define a start an end date, and
> always stop the route before the route finish to process. I did this, works
> fine, but I think there is a better way
>
>
> //Creamos una ruta adicional en el contexto
> context.addRoutes(new RouteBuilder() {
>
>
> public void configure() {
>
> onException(Exception.class).setRedeliveryPolicy(redeliveryPolicy);
>
>
> from("smb://"+ inputXrtSmbDomain +";"+ inputXrtSmbUser +"@"+
> inputXrtSmbServer +"/"+ inputXrtSmbFolder +"?password="+
> inputXrtSmbPassword + "&delete=false&delay=60000")
> .routeId("sap-xrt-connect-interface-receive-" + fileNameOnly)
>
> .setProperty("CamelBatchComplete").simple("${property.CamelBatchComplete}")
> .process(new Processor() {
> @Override
> public void process(Exchange exchange) throws Exception {
>
> CamelBatchComplete =
> exchange.getProperty("CamelBatchComplete").toString();
> }
> })
> .filter().method(new GenericFileFilter<T> (){
>
> @Override
> public boolean accept(GenericFile<T> file) {
>
> Date fileNameLastModified = new
> Date(file.getLastModified());
>
>
> //Se realiza la comprobacion de fechas
> if(fileNameLastModified.after(documentDateBefore) &&
> fileNameLastModified.before(documentDateAfter)){
> return true;
> }else{
> return false;
> }
>
> }
> }).process(new Processor() {
> @Override
> public void process(Exchange exchange) throws Exception {
>
> GenericFileMessage<File> msg =
> exchange.getIn(GenericFileMessage.class);
> String fileName []=
> msg.getGenericFile().getFileNameOnly().split("\\.");
>
> // Se realiza la validacion de cuando el fichero
> tiene extension o no
> String destinationPath = String.format("%s%s_%s",
> fileNameOnly,fileName[0], 2 <= fileName.length ? fileName[1] : "");
>
> exchange.getOut().setBody(msg.getBody());
> exchange.getOut().setHeader(Exchange.FILE_NAME,
> destinationPath);
>
> }
> })
> .to("sftp://"+ outputSapFtpUser +"@"+ outputSapFtpServer
> +"/"+ outputSapFtpPFolder +"?flatten=true&password="+ outputSapFtpPassword
> +"&passiveMode="+ outputSapFtpPassiveMode +"&binary=true&autoCreate=false")
> .log("sent file ${file:name} to SAP");
> }
> });
>
>
> The Stop Code
>
>
> if(context.getRouteStatus("sap-xrt-connect-interface-receive-" +
> fileNameOnly).isStarted()){ // Se verifica si se inicio la ruta
>
> int CamelBatchValidator = 0;
> do{
>
> Thread.sleep(10000); // Se realiza la verificacion cada 10
> segundos si la interfaz culmino su procesamiento
>
> if (CamelBatchComplete=="true"){
>
> Thread.sleep(20000); // Tiempo adicional para verificar
> que todo ha culminado
>
> context.stopRoute("sap-xrt-connect-interface-receive-" +
> fileNameOnly);
>
> Thread.sleep(10000);
>
> context.removeRoute("sap-xrt-connect-interface-receive-"
> + fileNameOnly);
>
> CamelBatchValidator=1;
> CamelBatchComplete = null;
> }else{
>
> //Si la ruta esta vacia o hay error al conectar , esto
> hara que entre en el IF de arriba y elimine la ruta
> if(CamelBatchComplete == null){
>
> CamelBatchComplete="true";
> }
>
> }
>
>
> }while(CamelBatchValidator==0);
>
> ------------------------------
> If you reply to this email, your message will be added to the discussion
> below:
>
> http://camel.465427.n5.nabble.com/How-to-stop-a-dynamic-route-tp5783385.html
> To start a new topic under Camel - Users, email
> [email protected]
> To unsubscribe from Camel - Users, click here
> <http://camel.465427.n5.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=465428&code=c291Y2lhbmNlLmVxZGFtLnJhc2h0aUBnbWFpbC5jb218NDY1NDI4fDE1MzI5MTE2NTY=>
> .
> NAML
> <http://camel.465427.n5.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>
>
--
View this message in context:
http://camel.465427.n5.nabble.com/How-to-stop-a-dynamic-route-tp5783385p5783387.html
Sent from the Camel - Users mailing list archive at Nabble.com.