| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache License, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| package org.apache.camel.component.twitter; |
| |
| import java.util.Map; |
| |
| import org.apache.camel.CamelContext; |
| import org.apache.camel.Endpoint; |
| import org.apache.camel.component.extension.ComponentVerifierExtension; |
| import org.apache.camel.spi.Metadata; |
| import org.apache.camel.support.DefaultComponent; |
| /** |
| * Base Twitter component |
| */ |
| public abstract class AbstractTwitterComponent extends DefaultComponent { |
| @Metadata(label = "security", secret = true) |
| private String consumerKey; |
| @Metadata(label = "security", secret = true) |
| private String consumerSecret; |
| @Metadata(label = "security", secret = true) |
| private String accessToken; |
| @Metadata(label = "security", secret = true) |
| private String accessTokenSecret; |
| @Metadata(label = "proxy") |
| private String httpProxyHost; |
| @Metadata(label = "proxy") |
| private String httpProxyUser; |
| @Metadata(label = "proxy") |
| private String httpProxyPassword; |
| @Metadata(label = "proxy") |
| private Integer httpProxyPort; |
| |
| protected AbstractTwitterComponent(String componentVerifierScheme) { |
| this(null, componentVerifierScheme); |
| } |
| |
| protected AbstractTwitterComponent(CamelContext context, String componentVerifierScheme) { |
| super(context); |
| |
| registerExtension(() -> new TwitterComponentVerifierExtension(componentVerifierScheme)); |
| } |
| |
| @Override |
| protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception { |
| TwitterConfiguration properties = new TwitterConfiguration(); |
| properties.setConsumerKey(consumerKey); |
| properties.setConsumerSecret(consumerSecret); |
| properties.setAccessToken(accessToken); |
| properties.setAccessTokenSecret(accessTokenSecret); |
| properties.setHttpProxyHost(httpProxyHost); |
| properties.setHttpProxyUser(httpProxyUser); |
| properties.setHttpProxyPassword(httpProxyPassword); |
| if (httpProxyPort != null) { |
| properties.setHttpProxyPort(httpProxyPort); |
| } |
| |
| // and then override from parameters |
| setProperties(properties, parameters); |
| return doCreateEndpoint(properties, uri, remaining, parameters); |
| } |
| |
| protected abstract Endpoint doCreateEndpoint(TwitterConfiguration properties, String uri, String remaining, Map<String, Object> parameters) throws Exception; |
| |
| public String getAccessToken() { |
| return accessToken; |
| } |
| |
| /** |
| * The access token |
| */ |
| public void setAccessToken(String accessToken) { |
| this.accessToken = accessToken; |
| } |
| |
| public String getAccessTokenSecret() { |
| return accessTokenSecret; |
| } |
| |
| /** |
| * The access token secret |
| */ |
| public void setAccessTokenSecret(String accessTokenSecret) { |
| this.accessTokenSecret = accessTokenSecret; |
| } |
| |
| public String getConsumerKey() { |
| return consumerKey; |
| } |
| |
| /** |
| * The consumer key |
| */ |
| public void setConsumerKey(String consumerKey) { |
| this.consumerKey = consumerKey; |
| } |
| |
| public String getConsumerSecret() { |
| return consumerSecret; |
| } |
| |
| /** |
| * The consumer secret |
| */ |
| public void setConsumerSecret(String consumerSecret) { |
| this.consumerSecret = consumerSecret; |
| } |
| |
| /** |
| * The http proxy host which can be used for the camel-twitter. |
| */ |
| public void setHttpProxyHost(String httpProxyHost) { |
| this.httpProxyHost = httpProxyHost; |
| } |
| |
| public String getHttpProxyHost() { |
| return httpProxyHost; |
| } |
| |
| /** |
| * The http proxy user which can be used for the camel-twitter. |
| */ |
| public void setHttpProxyUser(String httpProxyUser) { |
| this.httpProxyUser = httpProxyUser; |
| } |
| |
| public String getHttpProxyUser() { |
| return httpProxyUser; |
| } |
| |
| /** |
| * The http proxy password which can be used for the camel-twitter. |
| */ |
| public void setHttpProxyPassword(String httpProxyPassword) { |
| this.httpProxyPassword = httpProxyPassword; |
| } |
| |
| public String getHttpProxyPassword() { |
| return httpProxyPassword; |
| } |
| |
| /** |
| * The http proxy port which can be used for the camel-twitter. |
| */ |
| public void setHttpProxyPort(int httpProxyPort) { |
| this.httpProxyPort = httpProxyPort; |
| } |
| |
| public Integer getHttpProxyPort() { |
| return httpProxyPort; |
| } |
| |
| /** |
| * Get a verifier for the component. |
| */ |
| public ComponentVerifierExtension getVerifier() { |
| return (scope, parameters) -> getExtension(ComponentVerifierExtension.class).orElseThrow(UnsupportedOperationException::new).verify(scope, parameters); |
| } |
| } |