2014-11-17 3 views
1

Я хочу создать свой собственный компонент верблюда. На основе компонента http4. Я хочу по умолчанию устанавливать только сервер и порт. Так что я могу написать:собственный http4 Компонент Camel с собственным URI

from("myhttp://test1.php") 
.to("myhttp://test2.php") 

И мой компонент изменить URI на "HTTP: // MyHost: 8080/test1.php" и "HTTP: // MyHost: 8080/test2.php", но я могу» t создать свою собственную схему Name. Испытываю @UriEndpoint (схема = "myhttp") в классе

public class myhttpEndpoint extends org.apache.camel.component.http4.HttpEndpoint { 
} 

Можете ли вы мне помочь?

Что я делаю:

public class myhttpComponent extends org.apache.camel.component.http4.HttpComponent { 

    @Override 
    protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception { 
    ... 
    ... 
    HttpEndpoint endpoint = new myhttpEndpoint(endpointUriString, this, clientBuilder, localConnectionManager, configurer); 
    ... 
    ... 
    } 
} 

@UriEndpoint(scheme = "myhttp") 
public class myhttpEndpoint extends org.apache.camel.component.http4.HttpEndpoint { 

    public myhttpEndpoint(String endpointUriString, 
      cacheComponent cacheComponent, HttpClientBuilder clientBuilder, 
      HttpClientConnectionManager localConnectionManager, 
      HttpClientConfigurer configurer) throws URISyntaxException { 
     super(endpointUriString, cacheComponent, clientBuilder, localConnectionManager, configurer); 
    } 

ответ

0

@UriEndpoint аннотация на самом деле необязательно при создании пользовательского компонента верблюда, и я думаю, что он используется только, если вы хотите, документация конфигурации, которые будут автоматически генерироваться. Дополнительная информация: http://camel.apache.org/endpoint-annotations.html

Чтобы связать ваш класс компонента с именем компонента «myhttp», вам необходимо добавить файл в папку META-INF в ваш проект. Дополнительная информация: http://camel.apache.org/writing-components.html

Смежные вопросы