001/* 002 * Licensed to the Apache Software Foundation (ASF) under one or more 003 * contributor license agreements. See the NOTICE file distributed with 004 * this work for additional information regarding copyright ownership. 005 * The ASF licenses this file to You under the Apache License, Version 2.0 006 * (the "License"); you may not use this file except in compliance with 007 * the License. You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the License for the specific language governing permissions and 015 * limitations under the License. 016 */ 017package org.apache.camel.model.cloud; 018 019import javax.xml.bind.annotation.XmlAccessType; 020import javax.xml.bind.annotation.XmlAccessorType; 021import javax.xml.bind.annotation.XmlAttribute; 022import javax.xml.bind.annotation.XmlRootElement; 023import javax.xml.bind.annotation.XmlTransient; 024 025import org.apache.camel.spi.Metadata; 026import org.apache.camel.support.jsse.SSLContextParameters; 027 028@Metadata(label = "routing,cloud,service-discovery") 029@XmlRootElement(name = "consulServiceDiscovery") 030@XmlAccessorType(XmlAccessType.FIELD) 031public class ConsulServiceCallServiceDiscoveryConfiguration extends ServiceCallServiceDiscoveryConfiguration { 032 @XmlAttribute 033 private String url; 034 @XmlAttribute 035 private String datacenter; 036 @XmlAttribute 037 @Metadata(label = "security") 038 private String aclToken; 039 @XmlAttribute 040 @Metadata(label = "security") 041 private String userName; 042 @XmlAttribute 043 @Metadata(label = "security") 044 private String password; 045 @XmlAttribute 046 private Long connectTimeoutMillis; 047 @XmlAttribute 048 private Long readTimeoutMillis; 049 @XmlAttribute 050 private Long writeTimeoutMillis; 051 @XmlAttribute 052 @Metadata(defaultValue = "10") 053 private Integer blockSeconds = 10; 054 @XmlTransient 055 private SSLContextParameters sslContextParameters; 056 057 public ConsulServiceCallServiceDiscoveryConfiguration() { 058 this(null); 059 } 060 061 public ConsulServiceCallServiceDiscoveryConfiguration(ServiceCallDefinition parent) { 062 super(parent, "consul-service-discovery"); 063 } 064 065 // ************************************************************************* 066 // Getter/Setter 067 // ************************************************************************* 068 069 /** 070 * The Consul agent URL 071 */ 072 public String getUrl() { 073 return url; 074 } 075 076 public void setUrl(String url) { 077 this.url = url; 078 } 079 080 public String getDatacenter() { 081 return datacenter; 082 } 083 084 /** 085 * The data center 086 */ 087 public void setDatacenter(String datacenter) { 088 this.datacenter = datacenter; 089 } 090 091 public String getAclToken() { 092 return aclToken; 093 } 094 095 /** 096 * Sets the ACL token to be used with Consul 097 */ 098 public void setAclToken(String aclToken) { 099 this.aclToken = aclToken; 100 } 101 102 public String getUserName() { 103 return userName; 104 } 105 106 /** 107 * Sets the username to be used for basic authentication 108 */ 109 public void setUserName(String userName) { 110 this.userName = userName; 111 } 112 113 public String getPassword() { 114 return password; 115 } 116 117 /** 118 * Sets the password to be used for basic authentication 119 */ 120 public void setPassword(String password) { 121 this.password = password; 122 } 123 124 public Long getConnectTimeoutMillis() { 125 return connectTimeoutMillis; 126 } 127 128 /** 129 * Connect timeout for OkHttpClient 130 */ 131 public void setConnectTimeoutMillis(Long connectTimeoutMillis) { 132 this.connectTimeoutMillis = connectTimeoutMillis; 133 } 134 135 public Long getReadTimeoutMillis() { 136 return readTimeoutMillis; 137 } 138 139 /** 140 * Read timeout for OkHttpClient 141 */ 142 public void setReadTimeoutMillis(Long readTimeoutMillis) { 143 this.readTimeoutMillis = readTimeoutMillis; 144 } 145 146 public Long getWriteTimeoutMillis() { 147 return writeTimeoutMillis; 148 } 149 150 /** 151 * Write timeout for OkHttpClient 152 */ 153 public void setWriteTimeoutMillis(Long writeTimeoutMillis) { 154 this.writeTimeoutMillis = writeTimeoutMillis; 155 } 156 157 public Integer getBlockSeconds() { 158 return blockSeconds; 159 } 160 161 /** 162 * The seconds to wait for a watch event, default 10 seconds 163 */ 164 public void setBlockSeconds(Integer blockSeconds) { 165 this.blockSeconds = blockSeconds; 166 } 167 168 public SSLContextParameters getSslContextParameters() { 169 return sslContextParameters; 170 } 171 172 /** 173 * To configure security using SSLContextParameters. 174 */ 175 public void setSslContextParameters(SSLContextParameters sslContextParameters) { 176 this.sslContextParameters = sslContextParameters; 177 } 178 179 // ************************************************************************* 180 // Fluent API 181 // ************************************************************************* 182 183 /** 184 * The Consul agent URL 185 */ 186 public ConsulServiceCallServiceDiscoveryConfiguration url(String url) { 187 setUrl(url); 188 return this; 189 } 190 191 /** 192 * The data center 193 */ 194 public ConsulServiceCallServiceDiscoveryConfiguration dataCenter(String dc) { 195 setDatacenter(dc); 196 return this; 197 } 198 199 /** 200 * Sets the ACL token to be used with Consul 201 */ 202 public ConsulServiceCallServiceDiscoveryConfiguration aclToken(String aclToken) { 203 setAclToken(aclToken); 204 return this; 205 } 206 207 /** 208 * Sets the username to be used for basic authentication 209 */ 210 public ConsulServiceCallServiceDiscoveryConfiguration userName(String userName) { 211 setUserName(userName); 212 return this; 213 } 214 215 /** 216 * Sets the password to be used for basic authentication 217 */ 218 public ConsulServiceCallServiceDiscoveryConfiguration password(String password) { 219 setPassword(password); 220 return this; 221 } 222 223 /** 224 * Connect timeout for OkHttpClient 225 */ 226 public ConsulServiceCallServiceDiscoveryConfiguration connectTimeoutMillis(Long connectTimeoutMillis) { 227 setConnectTimeoutMillis(connectTimeoutMillis); 228 return this; 229 } 230 231 /** 232 * Read timeout for OkHttpClient 233 */ 234 public ConsulServiceCallServiceDiscoveryConfiguration readTimeoutMillis(Long readTimeoutMillis) { 235 setReadTimeoutMillis(readTimeoutMillis); 236 return this; 237 } 238 239 /** 240 * Write timeout for OkHttpClient 241 */ 242 public ConsulServiceCallServiceDiscoveryConfiguration writeTimeoutMillis(Long writeTimeoutMillis) { 243 setWriteTimeoutMillis(writeTimeoutMillis); 244 return this; 245 } 246 247 /** 248 * The seconds to wait for a watch event, default 10 seconds 249 */ 250 public ConsulServiceCallServiceDiscoveryConfiguration blockSeconds(Integer blockSeconds) { 251 setBlockSeconds(blockSeconds); 252 return this; 253 } 254 255 /** 256 * To configure security using SSLContextParameters. 257 */ 258 public ConsulServiceCallServiceDiscoveryConfiguration sslContextParameters(SSLContextParameters sslContextParameters) { 259 setSslContextParameters(sslContextParameters); 260 return this; 261 } 262}