001/*
002 * jPOS Project [http://jpos.org]
003 * Copyright (C) 2000-2026 jPOS Software SRL
004 *
005 * This program is free software: you can redistribute it and/or modify
006 * it under the terms of the GNU Affero General Public License as
007 * published by the Free Software Foundation, either version 3 of the
008 * License, or (at your option) any later version.
009 *
010 * This program is distributed in the hope that it will be useful,
011 * but WITHOUT ANY WARRANTY; without even the implied warranty of
012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
013 * GNU Affero General Public License for more details.
014 *
015 * You should have received a copy of the GNU Affero General Public License
016 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
017 */
018
019package org.jpos.q2;
020
021import org.jdom2.Element;
022
023import java.net.URL;
024
025/**
026 * JMX management interface for {@link QBeanSupport}-based QBeans.
027 * @author <a href="mailto:taherkordy@dpi2.dpi.net.ir">Alireza Taherkordi</a>
028 * @author <a href="mailto:apr@cs.com.uy">Alejandro P. Revilla</a>
029 * @version $Revision$ $Date$
030 */
031public interface QBeanSupportMBean extends QBean, QPersist {
032    /**
033     * Sets the Q2 server instance for this QBean.
034     * @param server the Q2 server
035     */
036    void setServer(Q2 server);
037    /**
038     * Returns the Q2 server instance.
039     * @return the Q2 server
040     */
041    Q2 getServer();
042    /**
043     * Sets the persistent configuration element.
044     * @param e the configuration element
045     */
046    void setPersist(Element e);
047    /**
048     * Sets the bean name.
049     * @param name the bean name
050     */
051    void setName(String name);
052    /**
053     * Returns the bean name.
054     * @return the bean name
055     */
056    String getName();
057    /**
058     * Sets the logger by name.
059     * @param name the logger name
060     */
061    void setLogger(String name);
062    /**
063     * Sets the logging realm.
064     * @param realm the realm string
065     */
066    void setRealm(String realm);
067    /**
068     * Returns the logging realm.
069     * @return the realm string
070     */
071    String getRealm();
072    /**
073     * Returns the logger name.
074     * @return the logger name
075     */
076    String getLogger();
077    /**
078     * Returns the URLs registered with the class loader.
079     * @return array of loader URLs
080     */
081    URL[] getLoaderURLS();
082    /**
083     * Returns the QClassLoader for this bean.
084     * @return the class loader
085     */
086    QClassLoader getLoader();
087    /**
088     * Returns a human-readable dump of this bean's state.
089     * @return dump string
090     */
091    String getDump();
092}