All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.activemq.artemis.core.protocol.core.impl.wireformat.BackupRegistrationMessage Maven / Gradle / Ivy

/*
 * 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.activemq.artemis.core.protocol.core.impl.wireformat;

import org.apache.activemq.artemis.api.core.ActiveMQBuffer;
import org.apache.activemq.artemis.api.core.TransportConfiguration;
import org.apache.activemq.artemis.core.protocol.core.impl.PacketImpl;

/**
 * Registers a given backup-server as the replicating backup of a live server (i.e. a regular
 * ActiveMQ).
 * 

* If it succeeds the backup will start synchronization of its state with the new backup node, and * replicating any new data. If it fails the backup server will receive a message indicating * failure, and should shutdown. * * @see BackupReplicationStartFailedMessage */ public final class BackupRegistrationMessage extends PacketImpl { private TransportConfiguration connector; private String clusterUser; private String clusterPassword; private boolean backupWantsFailBack; public BackupRegistrationMessage(TransportConfiguration tc, String user, String password, boolean backupWantsFailBack) { this(); connector = tc; clusterUser = user; clusterPassword = password; this.backupWantsFailBack = backupWantsFailBack; } public BackupRegistrationMessage() { super(BACKUP_REGISTRATION); } public TransportConfiguration getConnector() { return connector; } @Override public void encodeRest(final ActiveMQBuffer buffer) { buffer.writeString(clusterUser); buffer.writeString(clusterPassword); buffer.writeBoolean(backupWantsFailBack); connector.encode(buffer); } @Override public void decodeRest(final ActiveMQBuffer buffer) { clusterUser = buffer.readString(); clusterPassword = buffer.readString(); backupWantsFailBack = buffer.readBoolean(); connector = new TransportConfiguration(); connector.decode(buffer); } public String getClusterUser() { return clusterUser; } public String getClusterPassword() { return clusterPassword; } public boolean isFailBackRequest() { return backupWantsFailBack; } @Override public int hashCode() { final int prime = 31; int result = super.hashCode(); result = prime * result + (backupWantsFailBack ? 1231 : 1237); result = prime * result + ((clusterPassword == null) ? 0 : clusterPassword.hashCode()); result = prime * result + ((clusterUser == null) ? 0 : clusterUser.hashCode()); result = prime * result + ((connector == null) ? 0 : connector.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (!super.equals(obj)) return false; if (!(obj instanceof BackupRegistrationMessage)) return false; BackupRegistrationMessage other = (BackupRegistrationMessage) obj; if (backupWantsFailBack != other.backupWantsFailBack) return false; if (clusterPassword == null) { if (other.clusterPassword != null) return false; } else if (!clusterPassword.equals(other.clusterPassword)) return false; if (clusterUser == null) { if (other.clusterUser != null) return false; } else if (!clusterUser.equals(other.clusterUser)) return false; if (connector == null) { if (other.connector != null) return false; } else if (!connector.equals(other.connector)) return false; return true; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy