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 @Metadata(javaType = "java.lang.Long") 047 private String connectTimeoutMillis; 048 @XmlAttribute 049 @Metadata(javaType = "java.lang.Long") 050 private String readTimeoutMillis; 051 @XmlAttribute 052 @Metadata(javaType = "java.lang.Long") 053 private String writeTimeoutMillis; 054 @XmlAttribute 055 @Metadata(javaType = "java.lang.Integer", defaultValue = "10") 056 private String blockSeconds = Integer.toString(10); 057 @XmlTransient 058 private SSLContextParameters sslContextParameters; 059 060 public ConsulServiceCallServiceDiscoveryConfiguration() { 061 this(null); 062 } 063 064 public ConsulServiceCallServiceDiscoveryConfiguration(ServiceCallDefinition parent) { 065 super(parent, "consul-service-discovery"); 066 } 067 068 // ************************************************************************* 069 // Getter/Setter 070 // ************************************************************************* 071 072 /** 073 * The Consul agent URL 074 */ 075 public String getUrl() { 076 return url; 077 } 078 079 public void setUrl(String url) { 080 this.url = url; 081 } 082 083 public String getDatacenter() { 084 return datacenter; 085 } 086 087 /** 088 * The data center 089 */ 090 public void setDatacenter(String datacenter) { 091 this.datacenter = datacenter; 092 } 093 094 public String getAclToken() { 095 return aclToken; 096 } 097 098 /** 099 * Sets the ACL token to be used with Consul 100 */ 101 public void setAclToken(String aclToken) { 102 this.aclToken = aclToken; 103 } 104 105 public String getUserName() { 106 return userName; 107 } 108 109 /** 110 * Sets the username to be used for basic authentication 111 */ 112 public void setUserName(String userName) { 113 this.userName = userName; 114 } 115 116 public String getPassword() { 117 return password; 118 } 119 120 /** 121 * Sets the password to be used for basic authentication 122 */ 123 public void setPassword(String password) { 124 this.password = password; 125 } 126 127 public String getConnectTimeoutMillis() { 128 return connectTimeoutMillis; 129 } 130 131 /** 132 * Connect timeout for OkHttpClient 133 */ 134 public void setConnectTimeoutMillis(String connectTimeoutMillis) { 135 this.connectTimeoutMillis = connectTimeoutMillis; 136 } 137 138 public String getReadTimeoutMillis() { 139 return readTimeoutMillis; 140 } 141 142 /** 143 * Read timeout for OkHttpClient 144 */ 145 public void setReadTimeoutMillis(String readTimeoutMillis) { 146 this.readTimeoutMillis = readTimeoutMillis; 147 } 148 149 public String getWriteTimeoutMillis() { 150 return writeTimeoutMillis; 151 } 152 153 /** 154 * Write timeout for OkHttpClient 155 */ 156 public void setWriteTimeoutMillis(String writeTimeoutMillis) { 157 this.writeTimeoutMillis = writeTimeoutMillis; 158 } 159 160 public String getBlockSeconds() { 161 return blockSeconds; 162 } 163 164 /** 165 * The seconds to wait for a watch event, default 10 seconds 166 */ 167 public void setBlockSeconds(String blockSeconds) { 168 this.blockSeconds = blockSeconds; 169 } 170 171 public SSLContextParameters getSslContextParameters() { 172 return sslContextParameters; 173 } 174 175 /** 176 * To configure security using SSLContextParameters. 177 */ 178 public void setSslContextParameters(SSLContextParameters sslContextParameters) { 179 this.sslContextParameters = sslContextParameters; 180 } 181 182 // ************************************************************************* 183 // Fluent API 184 // ************************************************************************* 185 186 /** 187 * The Consul agent URL 188 */ 189 public ConsulServiceCallServiceDiscoveryConfiguration url(String url) { 190 setUrl(url); 191 return this; 192 } 193 194 /** 195 * The data center 196 */ 197 public ConsulServiceCallServiceDiscoveryConfiguration dataCenter(String dc) { 198 setDatacenter(dc); 199 return this; 200 } 201 202 /** 203 * Sets the ACL token to be used with Consul 204 */ 205 public ConsulServiceCallServiceDiscoveryConfiguration aclToken(String aclToken) { 206 setAclToken(aclToken); 207 return this; 208 } 209 210 /** 211 * Sets the username to be used for basic authentication 212 */ 213 public ConsulServiceCallServiceDiscoveryConfiguration userName(String userName) { 214 setUserName(userName); 215 return this; 216 } 217 218 /** 219 * Sets the password to be used for basic authentication 220 */ 221 public ConsulServiceCallServiceDiscoveryConfiguration password(String password) { 222 setPassword(password); 223 return this; 224 } 225 226 /** 227 * Connect timeout for OkHttpClient 228 */ 229 public ConsulServiceCallServiceDiscoveryConfiguration connectTimeoutMillis(long connectTimeoutMillis) { 230 return connectTimeoutMillis(Long.toString(connectTimeoutMillis)); 231 } 232 233 /** 234 * Connect timeout for OkHttpClient 235 */ 236 public ConsulServiceCallServiceDiscoveryConfiguration connectTimeoutMillis(String connectTimeoutMillis) { 237 setConnectTimeoutMillis(connectTimeoutMillis); 238 return this; 239 } 240 241 /** 242 * Read timeout for OkHttpClient 243 */ 244 public ConsulServiceCallServiceDiscoveryConfiguration readTimeoutMillis(Long readTimeoutMillis) { 245 return readTimeoutMillis(Long.toString(readTimeoutMillis)); 246 } 247 248 /** 249 * Read timeout for OkHttpClient 250 */ 251 public ConsulServiceCallServiceDiscoveryConfiguration readTimeoutMillis(String readTimeoutMillis) { 252 setReadTimeoutMillis(readTimeoutMillis); 253 return this; 254 } 255 256 /** 257 * Write timeout for OkHttpClient 258 */ 259 public ConsulServiceCallServiceDiscoveryConfiguration writeTimeoutMillis(Long writeTimeoutMillis) { 260 return writeTimeoutMillis(Long.toString(writeTimeoutMillis)); 261 } 262 263 /** 264 * Write timeout for OkHttpClient 265 */ 266 public ConsulServiceCallServiceDiscoveryConfiguration writeTimeoutMillis(String writeTimeoutMillis) { 267 setWriteTimeoutMillis(writeTimeoutMillis); 268 return this; 269 } 270 271 /** 272 * The seconds to wait for a watch event, default 10 seconds 273 */ 274 public ConsulServiceCallServiceDiscoveryConfiguration blockSeconds(Integer blockSeconds) { 275 return blockSeconds(Integer.toString(blockSeconds)); 276 } 277 278 /** 279 * The seconds to wait for a watch event, default 10 seconds 280 */ 281 public ConsulServiceCallServiceDiscoveryConfiguration blockSeconds(String blockSeconds) { 282 setBlockSeconds(blockSeconds); 283 return this; 284 } 285 286 /** 287 * To configure security using SSLContextParameters. 288 */ 289 public ConsulServiceCallServiceDiscoveryConfiguration sslContextParameters(SSLContextParameters sslContextParameters) { 290 setSslContextParameters(sslContextParameters); 291 return this; 292 } 293}