00001 /** 00002 * C-JDBC: Clustered JDBC. 00003 * Copyright (C) 2002-2004 French National Institute For Research In Computer 00004 * Science And Control (INRIA). 00005 * Contact: c-jdbc@objectweb.org 00006 * 00007 * This library is free software; you can redistribute it and/or modify it 00008 * under the terms of the GNU Lesser General Public License as published by the 00009 * Free Software Foundation; either version 2.1 of the License, or any later 00010 * version. 00011 * 00012 * This library is distributed in the hope that it will be useful, but WITHOUT 00013 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 00014 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 00015 * for more details. 00016 * 00017 * You should have received a copy of the GNU Lesser General Public License 00018 * along with this library; if not, write to the Free Software Foundation, 00019 * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. 00020 * 00021 * Initial developer(s): Marc Wick. 00022 * Contributor(s): ______________________. 00023 */ 00024 00025 package org.objectweb.cjdbc.controller.jmx; 00026 00027 import javax.management.MBeanServer; 00028 import javax.management.MBeanServerDelegate; 00029 00030 /** 00031 * This class is a custom implementation of MBeanServerBuilder, it builds a 00032 * MBeanServer decorated with an AuthenticatingMBeanServer. 00033 * 00034 * @author <a href="mailto:marc.wick@monte-bre.ch">Marc Wick </a> 00035 * @version 1.0 00036 */ 00037 public class MBeanServerBuilder extends ChainedMBeanServerBuilder 00038 { 00039 /** 00040 * Creates a new <code>MBeanServerBuilder.java</code> object 00041 */ 00042 public MBeanServerBuilder() 00043 { 00044 super(new javax.management.MBeanServerBuilder()); 00045 } 00046 00047 /** 00048 * @see javax.management.MBeanServerBuilder#newMBeanServer(java.lang.String, 00049 * javax.management.MBeanServer, javax.management.MBeanServerDelegate) 00050 */ 00051 public MBeanServer newMBeanServer(String defaultDomain, MBeanServer outer, 00052 MBeanServerDelegate delegate) 00053 { 00054 AuthenticatingMBeanServer extern = new AuthenticatingMBeanServer(); 00055 MBeanServer nested = getMBeanServerBuilder().newMBeanServer(defaultDomain, 00056 outer == null ? extern : outer, delegate); 00057 extern.setMBeanServer(nested); 00058 return extern; 00059 } 00060 }