jdk/test/javax/management/Introspector/ObjectNameTemplateTest.java
author jfdenise
Tue, 09 Dec 2008 15:57:09 +0100
changeset 1700 4506662fb2ee
permissions -rw-r--r--
6675526: Define an Annotation to name registered MBeans Reviewed-by: emcmanus
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1700
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
     1
/*
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
     2
 * Copyright 2008 Sun Microsystems, Inc.  All Rights Reserved.
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
     4
 *
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
     7
 * published by the Free Software Foundation.
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
     8
 *
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
     9
 * This code is distributed in the hope that it will be useful, but WITHOUT
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    10
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    11
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    12
 * version 2 for more details (a copy is included in the LICENSE file that
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    13
 * accompanied this code).
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    14
 *
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    15
 * You should have received a copy of the GNU General Public License version
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    16
 * 2 along with this work; if not, write to the Free Software Foundation,
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    17
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    18
 *
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    19
 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    20
 * CA 95054 USA or visit www.sun.com if you need additional information or
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    21
 * have any questions.
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    22
 */
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    23
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    24
/*
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    25
 * @test %M% %I%
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    26
 * @bug 6675526
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    27
 * @summary Test MBeans named with @ObjectNameTemplate
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    28
 * @author Jean-Francois Denise
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    29
 * @run main/othervm ObjectNameTemplateTest
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    30
 */
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    31
import java.lang.management.ManagementFactory;
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    32
import java.lang.reflect.Constructor;
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    33
import java.util.ArrayList;
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    34
import java.util.List;
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    35
import javax.management.Attribute;
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    36
import javax.management.AttributeList;
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    37
import javax.management.AttributeNotFoundException;
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    38
import javax.management.DynamicMBean;
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    39
import javax.management.ImmutableDescriptor;
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    40
import javax.management.InvalidAttributeValueException;
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    41
import javax.management.JMX;
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    42
import javax.management.MBeanException;
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    43
import javax.management.MBeanInfo;
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    44
import javax.management.MBeanServer;
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    45
import javax.management.MXBean;
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    46
import javax.management.MBean;
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    47
import javax.management.ManagedAttribute;
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    48
import javax.management.NotCompliantMBeanException;
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    49
import javax.management.ObjectName;
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    50
import javax.management.ObjectNameTemplate;
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    51
import javax.management.ReflectionException;
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    52
import javax.management.StandardMBean;
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    53
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    54
public class ObjectNameTemplateTest {
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    55
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    56
    private static MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    57
    private static final String NAME_TEMPLATE_MULTI =
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    58
            "com.example:type=MultiStdCache,name={Name}";
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    59
    private static final String NAME_TEMPLATE_MONO =
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    60
            "com.example:{Type}={TypeValue}";
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    61
    private static final String NAME_TEMPLATE_QUOTED =
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    62
            "com.example:type=Quotted,name=\"{Name}\"";
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    63
    private static final String NAME_TEMPLATE_WRAPPED =
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    64
            "com.example:type=MgtInterface,id={Id}";
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    65
    private static final String NAME_TEMPLATE_FULL =
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    66
            "{Naming}";
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    67
    private static final String FULL_NAME = "com.example:type=NotAdvised";
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    68
    private static final String NAME1 = "toto1";
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    69
    private static final String NAME2 = "toto2";
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    70
    private static final String TYPE_KEY = "thisIsTheType";
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    71
    private static final String TYPE_VALUE = "aTypeValue";
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    72
    private static final String INVALID_NAME = "?,=*,\n, ";
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    73
    private static final int ID = 999;
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    74
    private static Object[] EMPTY_PARAMS = {};
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    75
    private static String[] EMPTY_SIGNATURE = {};
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    76
    private static final ObjectName OBJECTNAME_CACHE =
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    77
            ObjectName.valueOf("com.example:type=Cache");
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    78
    private static final ObjectName OBJECTNAME_SUBCACHE =
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    79
            ObjectName.valueOf("com.example:type=SubCache");
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    80
    private static final ObjectName OBJECTNAME_CACHEMX =
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    81
            ObjectName.valueOf("com.example:type=CacheMX");
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    82
    private static final ObjectName OBJECTNAME_SUBCACHEMX =
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    83
            ObjectName.valueOf("com.example:type=SubCacheMX");
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    84
    private static final ObjectName OBJECTNAME_DYNACACHE =
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    85
            ObjectName.valueOf("com.example:type=DynaCache");
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    86
    private static final ObjectName OBJECTNAME_STDCACHE =
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    87
            ObjectName.valueOf("com.example:type=StdCache");
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    88
    private static final ObjectName OBJECTNAME_STDCACHEMX =
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    89
            ObjectName.valueOf("com.example:type=StdCacheMX");
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    90
    private static final ObjectName OBJECTNAME_MULTI_1 =
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    91
            ObjectName.valueOf("com.example:" +
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    92
            "type=MultiStdCache,name=" + NAME1);
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    93
    private static final ObjectName OBJECTNAME_MULTI_2 =
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    94
            ObjectName.valueOf("com.example:" +
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    95
            "type=MultiStdCache,name=" + NAME2);
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    96
    private static final ObjectName OBJECTNAME_MONO =
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    97
            ObjectName.valueOf("com.example:" + TYPE_KEY + "=" +
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    98
            TYPE_VALUE);
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
    99
    private static final ObjectName OBJECTNAME_QUOTED =
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   100
            ObjectName.valueOf("com.example:type=Quotted," +
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   101
            "name="+ObjectName.quote(INVALID_NAME));
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   102
    private static final ObjectName OBJECTNAME_WRAPPED_RESOURCE =
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   103
            ObjectName.valueOf("com.example:type=MgtInterface,id=" + ID);
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   104
    private static final ObjectName OBJECTNAME_FULL =
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   105
            ObjectName.valueOf(FULL_NAME);
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   106
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   107
    private static void test(Class<?> mbean, Object[] params,
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   108
            String[] signature, ObjectName name, String template)
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   109
            throws Exception {
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   110
        mbs.createMBean(mbean.getName(), null, params, signature);
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   111
        test(name, template);
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   112
        List<Class<?>> parameters = new ArrayList<Class<?>>();
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   113
        for (String sig : signature) {
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   114
            parameters.add(Class.forName(sig));
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   115
        }
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   116
        Class<?> classes[] = new Class<?>[parameters.size()];
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   117
        Constructor ctr = mbean.getConstructor(parameters.toArray(classes));
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   118
        Object inst = ctr.newInstance(params);
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   119
        test(inst, name, template);
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   120
    }
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   121
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   122
    private static void test(Object obj, ObjectName name, String template)
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   123
            throws Exception {
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   124
        mbs.registerMBean(obj, null);
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   125
        test(name, template);
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   126
    }
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   127
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   128
    private static void test(ObjectName name, String template)
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   129
            throws Exception {
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   130
        if (!mbs.isRegistered(name)) {
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   131
            throw new Exception("Wrong " + name + " name");
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   132
        }
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   133
        if (template != null && !mbs.getMBeanInfo(name).getDescriptor().
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   134
                getFieldValue("objectNameTemplate").equals(template)) {
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   135
            throw new Exception("Invalid Derscriptor");
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   136
        }
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   137
        mbs.unregisterMBean(name);
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   138
    }
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   139
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   140
    public static void main(String[] args) throws Exception {
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   141
        test(Cache.class, EMPTY_PARAMS, EMPTY_SIGNATURE, OBJECTNAME_CACHE,
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   142
                OBJECTNAME_CACHE.toString());
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   143
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   144
        test(CacheMX.class, EMPTY_PARAMS, EMPTY_SIGNATURE, OBJECTNAME_CACHEMX,
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   145
                OBJECTNAME_CACHEMX.toString());
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   146
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   147
        test(SubCache.class, EMPTY_PARAMS, EMPTY_SIGNATURE, OBJECTNAME_SUBCACHE,
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   148
                OBJECTNAME_SUBCACHE.toString());
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   149
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   150
        test(SubCacheMX.class, EMPTY_PARAMS, EMPTY_SIGNATURE, OBJECTNAME_SUBCACHEMX,
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   151
                OBJECTNAME_SUBCACHEMX.toString());
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   152
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   153
        test(DynaCache.class, EMPTY_PARAMS, EMPTY_SIGNATURE, OBJECTNAME_DYNACACHE,
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   154
                null);
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   155
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   156
        test(StdCacheMX.class, EMPTY_PARAMS, EMPTY_SIGNATURE, OBJECTNAME_STDCACHEMX,
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   157
                OBJECTNAME_STDCACHEMX.toString());
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   158
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   159
        test(StdCache.class, EMPTY_PARAMS, EMPTY_SIGNATURE, OBJECTNAME_STDCACHE,
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   160
                OBJECTNAME_STDCACHE.toString());
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   161
        String[] sig = {String.class.getName()};
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   162
        Object[] params = {NAME1};
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   163
        test(MultiStdCache.class, params, sig, OBJECTNAME_MULTI_1,
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   164
                NAME_TEMPLATE_MULTI);
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   165
        Object[] params2 = {NAME2};
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   166
        test(MultiStdCache.class, params2, sig, OBJECTNAME_MULTI_2,
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   167
                NAME_TEMPLATE_MULTI);
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   168
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   169
        test(MonoStdCache.class, EMPTY_PARAMS, EMPTY_SIGNATURE, OBJECTNAME_MONO,
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   170
                NAME_TEMPLATE_MONO);
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   171
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   172
        test(Quoted.class, EMPTY_PARAMS, EMPTY_SIGNATURE, OBJECTNAME_QUOTED,
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   173
                NAME_TEMPLATE_QUOTED);
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   174
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   175
        test(new StandardMBean(new WrappedResource(), MgtInterface.class),
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   176
                OBJECTNAME_WRAPPED_RESOURCE, NAME_TEMPLATE_WRAPPED);
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   177
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   178
        test(FullName.class, EMPTY_PARAMS, EMPTY_SIGNATURE, OBJECTNAME_FULL,
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   179
                NAME_TEMPLATE_FULL);
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   180
        try {
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   181
            test(Wrong.class, EMPTY_PARAMS, EMPTY_SIGNATURE, null, null);
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   182
            throw new Exception("No treceived expected Exception");
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   183
        } catch (NotCompliantMBeanException ncex) {
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   184
            if (!(ncex.getCause() instanceof AttributeNotFoundException)) {
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   185
                throw new Exception("Invalid initCause");
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   186
            }
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   187
        }
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   188
    }
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   189
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   190
    @MBean
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   191
    @ObjectNameTemplate("{Naming}")
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   192
    public static class FullName {
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   193
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   194
        @ManagedAttribute
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   195
        public String getNaming() {
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   196
            return FULL_NAME;
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   197
        }
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   198
    }
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   199
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   200
    @ObjectNameTemplate("com.example:type=MgtInterface,id={Id}")
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   201
    public interface MgtInterface {
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   202
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   203
        public int getId();
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   204
    }
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   205
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   206
    public static class WrappedResource implements MgtInterface {
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   207
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   208
        public int getId() {
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   209
            return ID;
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   210
        }
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   211
    }
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   212
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   213
    @MBean
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   214
    @ObjectNameTemplate("com.example:type=Cache")
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   215
    public static class Cache {
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   216
    }
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   217
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   218
    @ObjectNameTemplate("com.example:type=SubCache")
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   219
    public static class SubCache extends Cache {
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   220
    }
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   221
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   222
    @MXBean
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   223
    @ObjectNameTemplate("com.example:type=CacheMX")
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   224
    public static class CacheMX {
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   225
    }
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   226
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   227
    @ObjectNameTemplate("com.example:type=SubCacheMX")
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   228
    public static class SubCacheMX extends CacheMX {
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   229
    }
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   230
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   231
    @ObjectNameTemplate("com.example:type=StdCache")
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   232
    public interface StdCacheMBean {
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   233
    }
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   234
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   235
    public static class StdCache implements StdCacheMBean {
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   236
    }
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   237
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   238
    @ObjectNameTemplate("com.example:type=StdCacheMX")
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   239
    public interface StdCacheMXBean {
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   240
    }
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   241
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   242
    public static class StdCacheMX implements StdCacheMXBean {
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   243
    }
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   244
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   245
    public static class DynaCache implements DynamicMBean {
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   246
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   247
        public Object getAttribute(String attribute) throws AttributeNotFoundException, MBeanException, ReflectionException {
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   248
            throw new UnsupportedOperationException("Not supported yet.");
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   249
        }
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   250
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   251
        public void setAttribute(Attribute attribute) throws AttributeNotFoundException, InvalidAttributeValueException, MBeanException, ReflectionException {
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   252
            throw new UnsupportedOperationException("Not supported yet.");
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   253
        }
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   254
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   255
        public AttributeList getAttributes(String[] attributes) {
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   256
            throw new UnsupportedOperationException("Not supported yet.");
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   257
        }
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   258
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   259
        public AttributeList setAttributes(AttributeList attributes) {
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   260
            throw new UnsupportedOperationException("Not supported yet.");
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   261
        }
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   262
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   263
        public Object invoke(String actionName, Object[] params, String[] signature) throws MBeanException, ReflectionException {
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   264
            throw new UnsupportedOperationException("Not supported yet.");
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   265
        }
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   266
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   267
        public MBeanInfo getMBeanInfo() {
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   268
            ImmutableDescriptor d = new ImmutableDescriptor(JMX.OBJECT_NAME_TEMPLATE + "=com.example:type=DynaCache");
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   269
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   270
            return new MBeanInfo("DynaCache", "Description", null, null, null, null, d);
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   271
        }
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   272
    }
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   273
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   274
    @ObjectNameTemplate("com.example:type=MultiStdCache,name={Name}")
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   275
    public interface MultiStdCacheMXBean {
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   276
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   277
        public String getName();
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   278
    }
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   279
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   280
    public static class MultiStdCache implements MultiStdCacheMXBean {
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   281
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   282
        private String name;
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   283
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   284
        public MultiStdCache(String name) {
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   285
            this.name = name;
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   286
        }
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   287
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   288
        public String getName() {
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   289
            return name;
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   290
        }
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   291
    }
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   292
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   293
    @ObjectNameTemplate("com.example:{Type}={TypeValue}")
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   294
    public interface MonoStdCacheMXBean {
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   295
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   296
        public String getTypeValue();
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   297
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   298
        public String getType();
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   299
    }
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   300
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   301
    public static class MonoStdCache implements MonoStdCacheMXBean {
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   302
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   303
        public String getTypeValue() {
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   304
            return TYPE_VALUE;
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   305
        }
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   306
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   307
        public String getType() {
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   308
            return TYPE_KEY;
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   309
        }
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   310
    }
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   311
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   312
    @ObjectNameTemplate("com.example:type=Quotted,name=\"{Name}\"")
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   313
    public interface QuottedMXBean {
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   314
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   315
        public String getName();
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   316
    }
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   317
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   318
    public static class Quoted implements QuottedMXBean {
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   319
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   320
        public String getName() {
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   321
            return INVALID_NAME;
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   322
        }
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   323
    }
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   324
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   325
    @ObjectNameTemplate("com.example:{Type}={TypeValue}, name={Name}")
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   326
    public interface WrongMXBean {
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   327
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   328
        public String getTypeValue();
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   329
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   330
        public String getType();
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   331
    }
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   332
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   333
    public static class Wrong implements WrongMXBean {
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   334
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   335
        public String getTypeValue() {
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   336
            return TYPE_VALUE;
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   337
        }
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   338
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   339
        public String getType() {
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   340
            return TYPE_KEY;
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   341
        }
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   342
    }
4506662fb2ee 6675526: Define an Annotation to name registered MBeans
jfdenise
parents:
diff changeset
   343
}