package com.github.signed.integration.camel;
import java.util.HashMap;
import org.apache.camel.CamelContext;
import org.apache.camel.Exchange;
import org.apache.camel.ProducerTemplate;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.file.remote.FtpComponent;
import org.apache.camel.component.stream.StreamComponent;
import org.apache.camel.impl.DefaultCamelContext;
public class FtpUpload {
public static void main(String[] args) throws Exception {
CamelContext context = new DefaultCamelContext();
context.addComponent("ftp", new FtpComponent(context));
context.addComponent("stream", new StreamComponent());
//context.addRoutes(ftpMulticast());
context.addRoutes(new RouteBuilder() {
@Override
public void configure() throws Exception {
from("direct:trigger-download").to("http://scm:8081/nexus/content/repositories/releases/de/idos/operatingreserve/moccamote-application/1.3.0/moccamote-application-1.3.0.pom.sha1").to("stream:out");
}
});
context.addRoutes(directSystemOut());
context.start();
ProducerTemplate template = context.createProducerTemplate();
HashMap<String, Object> headers = new HashMap<String, Object>();
headers.put(Exchange.HTTP_URI, "http://scm:8081/nexus/content/repositories/releases/de/idos/operatingreserve/moccamote-application/1.3.0/moccamote-application-1.3.0.pom");
template.sendBodyAndHeaders("direct:trigger-download", null, headers);
//template.sendBody("direct:trigger-download", null);
//template.sendBody("direct:system-out", new URI("http://scm:8081/nexus/content/repositories/releases/de/idos/operatingreserve/moccamote-application/1.3.0/moccamote-application-1.3.0.pom"));
Thread.sleep(100000);
context.stop();
}
private static RouteBuilder directSystemOut() {
return new RouteBuilder() {
@Override
public void configure() throws Exception {
from("direct:system-out").to("stream:out");
}
};
}
private static RouteBuilder ftpMulticast() {
return new RouteBuilder() {
@Override
public void configure() throws Exception {
from("file:/home/signed/dev/arbeitskopie/customers/build/files/?noop=true")
.log("Uploading file ${file:name}")
.multicast().parallelProcessing().to("ftp://localhost:10021?username=sally&password=secret&delay=2500", "ftp://localhost:10021?username=harry&password=secret&delay=2500")
.log("Uploaded file ${file:name} complete.");
from("file:camel/src/main/resources/?noop=true&fileName=sample.txt").log("GOTCHA").routeId("print text file").to("stream:out");
}
};
}
}