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 */ 017 018package org.apache.camel.model.remote; 019 020import javax.xml.bind.annotation.XmlAccessType; 021import javax.xml.bind.annotation.XmlAccessorType; 022import javax.xml.bind.annotation.XmlAttribute; 023import javax.xml.bind.annotation.XmlRootElement; 024import javax.xml.bind.annotation.XmlTransient; 025 026import org.apache.camel.spi.Metadata; 027import org.apache.camel.util.jsse.SSLContextParameters; 028 029/** 030 * Consul remote service call configuration 031 */ 032@Metadata(label = "eip,routing,remote") 033@XmlRootElement(name = "consulConfiguration") 034@XmlAccessorType(XmlAccessType.FIELD) 035public class ConsulConfigurationDefinition extends ServiceCallConfigurationDefinition { 036 037 @XmlAttribute 038 private String url; 039 @XmlAttribute 040 private String dc; 041 @XmlAttribute @Metadata(label = "security") 042 private String aclToken; 043 @XmlAttribute @Metadata(label = "security") 044 private String userName; 045 @XmlAttribute @Metadata(label = "security") 046 private String password; 047 @XmlAttribute 048 private Long connectTimeoutMillis; 049 @XmlAttribute 050 private Long readTimeoutMillis; 051 @XmlAttribute 052 private Long writeTimeoutMillis; 053 @XmlAttribute @Metadata(defaultValue = "10") 054 private Integer blockSeconds = 10; 055 @XmlTransient 056 private SSLContextParameters sslContextParameters; 057 058 public ConsulConfigurationDefinition() { 059 } 060 061 public ConsulConfigurationDefinition(ServiceCallDefinition parent) { 062 super(parent); 063 } 064 065 // ------------------------------------------------------------------------- 066 // Getter/Setter 067 // ------------------------------------------------------------------------- 068 069 public String getUrl() { 070 return url; 071 } 072 073 public void setUrl(String url) { 074 this.url = url; 075 } 076 077 public String getDc() { 078 return dc; 079 } 080 081 public void setDc(String dc) { 082 this.dc = dc; 083 } 084 085 public String getAclToken() { 086 return aclToken; 087 } 088 089 public void setAclToken(String aclToken) { 090 this.aclToken = aclToken; 091 } 092 093 public String getUserName() { 094 return userName; 095 } 096 097 public void setUserName(String userName) { 098 this.userName = userName; 099 } 100 101 public String getPassword() { 102 return password; 103 } 104 105 public void setPassword(String password) { 106 this.password = password; 107 } 108 109 public Long getConnectTimeoutMillis() { 110 return connectTimeoutMillis; 111 } 112 113 public void setConnectTimeoutMillis(Long connectTimeoutMillis) { 114 this.connectTimeoutMillis = connectTimeoutMillis; 115 } 116 117 public Long getReadTimeoutMillis() { 118 return readTimeoutMillis; 119 } 120 121 public void setReadTimeoutMillis(Long readTimeoutMillis) { 122 this.readTimeoutMillis = readTimeoutMillis; 123 } 124 125 public Long getWriteTimeoutMillis() { 126 return writeTimeoutMillis; 127 } 128 129 public void setWriteTimeoutMillis(Long writeTimeoutMillis) { 130 this.writeTimeoutMillis = writeTimeoutMillis; 131 } 132 133 public Integer getBlockSeconds() { 134 return blockSeconds; 135 } 136 137 public void setBlockSeconds(Integer blockSeconds) { 138 this.blockSeconds = blockSeconds; 139 } 140 141 public SSLContextParameters getSslContextParameters() { 142 return sslContextParameters; 143 } 144 145 public void setSslContextParameters(SSLContextParameters sslContextParameters) { 146 this.sslContextParameters = sslContextParameters; 147 } 148 149 // ------------------------------------------------------------------------- 150 // Fluent API 151 // ------------------------------------------------------------------------- 152 153 /** 154 * The Consul agent URL 155 */ 156 public ConsulConfigurationDefinition url(String url) { 157 setUrl(url); 158 return this; 159 } 160 161 /** 162 * The data center 163 */ 164 public ConsulConfigurationDefinition dc(String dc) { 165 setDc(dc); 166 return this; 167 } 168 169 /** 170 * Sets the ACL token to be used with Consul 171 */ 172 public ConsulConfigurationDefinition aclToken(String aclToken) { 173 setAclToken(aclToken); 174 return this; 175 } 176 177 /** 178 * Sets the username to be used for basic authentication 179 */ 180 public ConsulConfigurationDefinition userName(String userName) { 181 setUserName(userName); 182 return this; 183 } 184 185 /** 186 * Sets the password to be used for basic authentication 187 */ 188 public ConsulConfigurationDefinition password(String password) { 189 setPassword(password); 190 return this; 191 } 192 193 /** 194 * Connect timeout for OkHttpClient 195 */ 196 public ConsulConfigurationDefinition connectTimeoutMillis(Long connectTimeoutMillis) { 197 setConnectTimeoutMillis(connectTimeoutMillis); 198 return this; 199 } 200 201 /** 202 * Read timeout for OkHttpClient 203 */ 204 public ConsulConfigurationDefinition readTimeoutMillis(Long readTimeoutMillis) { 205 setReadTimeoutMillis(readTimeoutMillis); 206 return this; 207 } 208 209 /** 210 * Write timeout for OkHttpClient 211 */ 212 public ConsulConfigurationDefinition writeTimeoutMillis(Long writeTimeoutMillis) { 213 setWriteTimeoutMillis(writeTimeoutMillis); 214 return this; 215 } 216 217 /** 218 * The second to wait for a watch event, default 10 seconds 219 */ 220 public ConsulConfigurationDefinition blockSeconds(Integer blockSeconds) { 221 setBlockSeconds(blockSeconds); 222 return this; 223 } 224 225 /** 226 * To configure security using SSLContextParameters. 227 */ 228 public ConsulConfigurationDefinition sslContextParameters(SSLContextParameters sslContextParameters) { 229 setSslContextParameters(sslContextParameters); 230 return this; 231 } 232}