KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jboss > mx > mxbean > MXBeanFactory


1 /*
2 * JBoss, Home of Professional Open Source
3 * Copyright 2006, JBoss Inc., and individual contributors as indicated
4 * by the @authors tag. See the copyright.txt in the distribution for a
5 * full listing of individual contributors.
6 *
7 * This is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU Lesser General Public License as
9 * published by the Free Software Foundation; either version 2.1 of
10 * the License, or (at your option) any later version.
11 *
12 * This software is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this software; if not, write to the Free
19 * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
20 * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
21 */

22 package org.jboss.mx.mxbean;
23
24 import java.lang.reflect.Proxy JavaDoc;
25
26 import javax.management.DynamicMBean JavaDoc;
27 import javax.management.MBeanServerConnection JavaDoc;
28 import javax.management.ObjectName JavaDoc;
29
30 /**
31  * MXBeanFactory.
32  *
33  * @author <a HREF="adrian@jboss.com">Adrian Brock</a>
34  * @version $Revision: 1.1 $
35  */

36 public class MXBeanFactory
37 {
38    /**
39     * Create a proxy
40     *
41     * @param <T> the interface type
42     * @param mbeanServerConnection the connection
43     * @param objectName the object name
44     * @param mxbeanInterface the interface
45     * @return the proxy
46     */

47    public static <T> T makeProxy(MBeanServerConnection JavaDoc mbeanServerConnection, ObjectName JavaDoc objectName, Class JavaDoc<T> mxbeanInterface)
48    {
49       MXBeanInvocationHandler handler = new MXBeanInvocationHandler(mbeanServerConnection, mxbeanInterface, objectName);
50       Object JavaDoc object = Proxy.newProxyInstance(mxbeanInterface.getClassLoader(), new Class JavaDoc[] { mxbeanInterface }, handler);
51       return mxbeanInterface.cast(object);
52    }
53    
54    /**
55     * Create a new MXBean
56     *
57     * @param resource the resource
58     * @return the MXBean
59     */

60    public static DynamicMBean JavaDoc newMXBean(Object JavaDoc resource)
61    {
62       return MXBeanUtils.createMXBean(resource, null);
63    }
64
65    /**
66     * Create a new MXBean
67     *
68     * @param <T> the interface type
69     * @param resource the resource
70     * @param mxbeanInterface the interface
71     * @return the MXBean
72     */

73    public static <T> DynamicMBean JavaDoc newMXBean(T resource, Class JavaDoc<T> mxbeanInterface)
74    {
75       return MXBeanUtils.createMXBean(resource, mxbeanInterface);
76    }
77 }
78
Popular Tags