    001    /*
    002     * Copyright 2009 Red Hat, Inc.
    003     * Red Hat licenses this file to you under the Apache License, version
    004     * 2.0 (the "License"); you may not use this file except in compliance
    005     * with the License.  You may obtain a copy of the License at
    006     *    http://www.apache.org/licenses/LICENSE-2.0
    007     * Unless required by applicable law or agreed to in writing, software
    008     * distributed under the License is distributed on an "AS IS" BASIS,
    009     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    010     * implied.  See the License for the specific language governing
    011     * permissions and limitations under the License.
    012     */
    013
    014    package org.hornetq.api.core.management;
    015
    016    import java.util.Map;
    017
    018    /**
    019     * A ClusterConnectionControl is used to manage a cluster connection.
    020     *
    021     * @author <a href="jmesnil@redhat.com">Jeff Mesnil</a>
    022     *
    023     */
    024    public interface ClusterConnectionControl extends HornetQComponentControl
    025    {
    026       /**
    027        * Returns the configuration name of this cluster connection.
    028        */
    029       String getName();
    030
    031       /**
    032        * Returns the address used by this cluster connection.
    033        */
    034       String getAddress();
    035
    036       /**
    037        * Returns the node ID used by this cluster connection.
    038        */
    039       String getNodeID();
    040
    041       /**
    042        * Return whether this cluster connection use duplicate detection.
    043        */
    044       boolean isDuplicateDetection();
    045
    046       /**
    047        * Return whether this cluster connection forward messages when it has no local consumers.
    048        */
    049       boolean isForwardWhenNoConsumers();
    050
    051       /**
    052        * Return the Topology that this Cluster Connection knows about
    053        */
    054       String getTopology();
    055       /**
    056        * Returns the maximum number of hops used by this cluster connection.
    057        */
    058       int getMaxHops();
    059
    060       /**
    061        * Returns the list of static connectors
    062        */
    063       Object[] getStaticConnectors();
    064
    065       /**
    066        * Returns the list of static connectors as JSON
    067        */
    068       String getStaticConnectorsAsJSON() throws Exception;
    069
    070       /**
    071        * Returns the name of the discovery group used by this cluster connection.
    072        */
    073       String getDiscoveryGroupName();
    074
    075       /**
    076        * Returns the connection retry interval used by this cluster connection.
    077        */
    078       long getRetryInterval();
    079
    080       /**
    081        * Returns a map of the nodes connected to this cluster connection.
    082        * <br>
    083        * keys are node IDs, values are the addresses used to connect to the nodes.
    084        */
    085       Map<String, String> getNodes() throws Exception;
    086    }