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 package org.apache.activemq.command;
018
019 import org.apache.activemq.state.CommandVisitor;
020
021 /**
022 *
023 * @openwire:marshaller code="3"
024 *
025 */
026 public class ConnectionInfo extends BaseCommand {
027
028 public static final byte DATA_STRUCTURE_TYPE = CommandTypes.CONNECTION_INFO;
029
030 protected ConnectionId connectionId;
031 protected String clientId;
032 protected String userName;
033 protected String password;
034 protected BrokerId[] brokerPath;
035 protected boolean brokerMasterConnector;
036 protected boolean manageable;
037 protected boolean clientMaster = true;
038 protected boolean faultTolerant = false;
039 protected transient Object transportContext;
040 private boolean failoverReconnect;
041
042 public ConnectionInfo() {
043 }
044
045 public ConnectionInfo(ConnectionId connectionId) {
046 this.connectionId = connectionId;
047 }
048
049 public byte getDataStructureType() {
050 return DATA_STRUCTURE_TYPE;
051 }
052
053 public ConnectionInfo copy() {
054 ConnectionInfo copy = new ConnectionInfo();
055 copy(copy);
056 return copy;
057 }
058
059 private void copy(ConnectionInfo copy) {
060 super.copy(copy);
061 copy.connectionId = connectionId;
062 copy.clientId = clientId;
063 copy.userName = userName;
064 copy.password = password;
065 copy.brokerPath = brokerPath;
066 copy.brokerMasterConnector = brokerMasterConnector;
067 copy.manageable = manageable;
068 copy.clientMaster = clientMaster;
069 copy.transportContext = transportContext;
070 copy.faultTolerant= faultTolerant;
071 }
072
073 /**
074 * @openwire:property version=1 cache=true
075 */
076 public ConnectionId getConnectionId() {
077 return connectionId;
078 }
079
080 public void setConnectionId(ConnectionId connectionId) {
081 this.connectionId = connectionId;
082 }
083
084 /**
085 * @openwire:property version=1
086 */
087 public String getClientId() {
088 return clientId;
089 }
090
091 public void setClientId(String clientId) {
092 this.clientId = clientId;
093 }
094
095 public RemoveInfo createRemoveCommand() {
096 RemoveInfo command = new RemoveInfo(getConnectionId());
097 command.setResponseRequired(isResponseRequired());
098 return command;
099 }
100
101 /**
102 * @openwire:property version=1
103 */
104 public String getPassword() {
105 return password;
106 }
107
108 public void setPassword(String password) {
109 this.password = password;
110 }
111
112 /**
113 * @openwire:property version=1
114 */
115 public String getUserName() {
116 return userName;
117 }
118
119 public void setUserName(String userName) {
120 this.userName = userName;
121 }
122
123 /**
124 * The route of brokers the command has moved through.
125 *
126 * @openwire:property version=1 cache=true
127 */
128 public BrokerId[] getBrokerPath() {
129 return brokerPath;
130 }
131
132 public void setBrokerPath(BrokerId[] brokerPath) {
133 this.brokerPath = brokerPath;
134 }
135
136 public Response visit(CommandVisitor visitor) throws Exception {
137 return visitor.processAddConnection(this);
138 }
139
140 /**
141 * @openwire:property version=1
142 */
143 public boolean isBrokerMasterConnector() {
144 return brokerMasterConnector;
145 }
146
147 /**
148 * @param slaveBroker The brokerMasterConnector to set.
149 */
150 public void setBrokerMasterConnector(boolean slaveBroker) {
151 this.brokerMasterConnector = slaveBroker;
152 }
153
154 /**
155 * @openwire:property version=1
156 */
157 public boolean isManageable() {
158 return manageable;
159 }
160
161 /**
162 * @param manageable The manageable to set.
163 */
164 public void setManageable(boolean manageable) {
165 this.manageable = manageable;
166 }
167
168 /**
169 * Transports may wish to associate additional data with the connection. For
170 * example, an SSL transport may use this field to attach the client
171 * certificates used when the conection was established.
172 *
173 * @return the transport context.
174 */
175 public Object getTransportContext() {
176 return transportContext;
177 }
178
179 /**
180 * Transports may wish to associate additional data with the connection. For
181 * example, an SSL transport may use this field to attach the client
182 * certificates used when the conection was established.
183 *
184 * @param transportContext value used to set the transport context
185 */
186 public void setTransportContext(Object transportContext) {
187 this.transportContext = transportContext;
188 }
189
190 /**
191 * @openwire:property version=2
192 * @return the clientMaster
193 */
194 public boolean isClientMaster() {
195 return this.clientMaster;
196 }
197
198 /**
199 * @param clientMaster the clientMaster to set
200 */
201 public void setClientMaster(boolean clientMaster) {
202 this.clientMaster = clientMaster;
203 }
204
205 /**
206 * @openwire:property version=6 cache=false
207 * @return the faultTolerant
208 */
209 public boolean isFaultTolerant() {
210 return this.faultTolerant;
211 }
212
213 /**
214 * @param faultTolerant the faultTolerant to set
215 */
216 public void setFaultTolerant(boolean faultTolerant) {
217 this.faultTolerant = faultTolerant;
218 }
219
220 /**
221 * @openwire:property version=6 cache=false
222 * @return failoverReconnect true if this is a reconnect
223 */
224 public boolean isFailoverReconnect() {
225 return this.failoverReconnect;
226 }
227
228 public void setFailoverReconnect(boolean failoverReconnect) {
229 this.failoverReconnect = failoverReconnect;
230 }
231 }