2016-12-29 3 views
0

Wir sind dabei, das aktuelle Frühjahrsprojekt in Spring Boot zu konvertieren und gleichzeitig alle Spring Beans von XML nach Java Config zu konvertieren.konvertieren apache camel config zu java config

ich bin fest stecken camel xml-Konfiguration in Java-basierte Konfiguration zu konvertieren.

gerade wir angegeben Kamel Config, Routen und Endpunkte, die ein Beispiel, wie unten

<camel:camelContext id="camelClient"> 
     <camel:template id="camelTemplate"/> 
    </camel:camelContext> 


     <template id="camelTemplate"/> 

hier sind einige Endpunkte

 <endpoint id="archiveUserQueue" 
        uri="swiftmq:${hk.jms.archive.queue.name}?concurrentConsumers=${hk.jms.archive.queue.consumers}"/> 

     <endpoint id="directSmsNotification" uri="direct:sendSMS"/> 

eine der Routen definiert

 <route> 
      <from ref="directSmsNotification"/> 
      <to uri="bean:messengerService?method=sendSmsMessage"/> 
     </route> 

In Java Code greifen wir auf den Endpunkt wie unten

smsEndpoint = _camelContext.getEndpoint("directSmsNotification"); 

Wie können wir die Camel-Konfiguration von XML in Java-basierte Konfiguration konvertieren.

Ich habe die Anweisungen unter http://camel.apache.org/spring-java-config.html befolgt, aber es war zu schwer zu verstehen, da ich Camel nicht kenne.

Antwort

0

Sie können die Spring Java-Konfiguration mit der Apache Camel XML-Konfiguration kombinieren. Ich frage mich, warum du diese Konvertierung überhaupt durchführst.

Das heißt, wenn Sie sich die camel docs betrachten, werden Sie sehen, es gibt ein Beispiel für die Arbeit mit RouteBuilder.

Sie könnten auch die Probe spring-boot application betrachten. Hier ist eine modifizierte RouteBuilder aus diesem Beispiel:

@Component 
public class MySpringBootRouter extends RouteBuilder { 

    @Override 
    public void configure() { 

     Context context = getContext(); 
     MyEndpoint ep = context.getEndpoint("someURI", MyEndpoint.class); 

     from(ep) 
      .transform().simple("ref:myBean") 
      .to("log:out"); 
    } 
} 

aktualisieren: Ich habe das Snippet geändert zu zeigen, einen Endpunkt direkt bekommen. Sie können weitere Informationen in der Camel docs erhalten. Ich bin mir nicht sicher, wie verbreitet dieser Ansatz ist. Als ich Camel regelmäßig benutzt habe, wurden die Endpunkte deklarativ über ihre URI-Werte konfiguriert. Ich glaube nicht, dass ich jemals einen Endpunkt in meinem Camel XML- oder Java-Code explizit definiert habe. Ich bin mir sicher, dass es Anwendungsfälle dafür gibt, aber es ist möglicherweise einfacher für Sie, nur per URI zu konfigurieren.

+0

Ich konvertiere das Projekt in Spring Boot, also habe ich Camel Routen und Endpunkte konvertiert. Ich habe Kamel Spring Boot-Beispiele gesehen und die meisten von ihnen haben Beispiele zum Erstellen von Route, aber keine von ihnen haben Beispiel zum Erstellen von Endpunkten. In dem Beispiel, das Sie zur Verfügung gestellt haben, wird gezeigt, wie Sie eine Route erstellen können. Können Sie ein Beispiel zum Erstellen von Endpunkten auf nicht-xml-Weise angeben? – rpr