/* * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Sun designates this * particular file as subject to the "Classpath" exception as provided * by Sun in the LICENSE file that accompanied this code. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, * CA 95054 USA or visit www.sun.com if you need additional information or * have any questions. */ package javax.management; import java.lang.annotation.ElementType; import java.lang.annotation.Inherited; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; /** *
Indicates that the annotated class is a Standard MBean. A Standard * MBean class can be defined as in this example:
* ** {@code @MBean} * public class Configuration { * {@link ManagedAttribute @ManagedAttribute} * public int getCacheSize() {...} * {@code @ManagedAttribute} * public void setCacheSize(int size); * * {@code @ManagedAttribute} * public long getLastChangedTime(); * * {@link ManagedOperation @ManagedOperation} * public void save(); * } ** *
The class must be public. Public methods within the class can be * annotated with {@code @ManagedOperation} to indicate that they are * MBean operations. Public getter and setter methods within the class * can be annotated with {@code @ManagedAttribute} to indicate that they define * MBean attributes.
* *If the MBean is to be an MXBean rather than a Standard MBean, then * the {@link MXBean @MXBean} annotation must be used instead of * {@code @MBean}.
*/ @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) @Inherited public @interface MBean { }