1 /* 2 * Copyright (c) 1998-2006 Caucho Technology -- all rights reserved 3 * 4 * This file is part of Resin(R) Open Source 5 * 6 * Each copy or derived work must preserve the copyright notice and this 7 * notice unmodified. 8 * 9 * Resin Open Source is free software; you can redistribute it and/or modify 10 * it under the terms of the GNU General Public License as published by 11 * the Free Software Foundation; either version 2 of the License, or 12 * (at your option) any later version. 13 * 14 * Resin Open Source is distributed in the hope that it will be useful, 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, or any warranty 17 * of NON-INFRINGEMENT. See the GNU General Public License for more 18 * details. 19 * 20 * You should have received a copy of the GNU General Public License 21 * along with Resin Open Source; if not, write to the 22 * Free SoftwareFoundation, Inc. 23 * 59 Temple Place, Suite 330 24 * Boston, MA 02111-1307 USA 25 * 26 * @author Scott Ferguson 27 */ 28 29 package com.caucho.naming.mbean; 30 31 import com.caucho.jmx.Jmx; 32 import com.caucho.naming.AbstractModel; 33 34 import javax.management.MalformedObjectNameException; 35 import javax.naming.NamingException; 36 import java.util.ArrayList; 37 import java.util.List; 38 39 /** 40 * Memory based model for JNDI. 41 */ 42 public class MBeanModel extends AbstractModel { 43 /** 44 * Creates a new instance of the memory model. 45 */ 46 public MBeanModel() 47 { 48 } 49 50 /** 51 * Creates a new instance of MemoryModel. 52 */ 53 protected AbstractModel create() 54 { 55 return new MBeanModel(); 56 } 57 58 /** 59 * Returns the object from looking up a single link. 60 * 61 * @param name the name segment. 62 * 63 * @return the object stored in the map. 64 */ 65 public Object lookup(String name) 66 throws NamingException 67 { 68 if (name == null) 69 return null; 70 71 if (name.startsWith("mbean:")) 72 name = name.substring(6); 73 74 try { 75 return Jmx.find(Jmx.getObjectName(name)); 76 } catch (MalformedObjectNameException e) { 77 NamingException ne = new NamingException(e.getMessage()); 78 ne.initCause(e); 79 throw ne; 80 } 81 } 82 83 /** 84 * Lists the child names. 85 */ 86 public List list() 87 { 88 return new ArrayList(); 89 } 90 } 91