001 //$HeadURL: svn+ssh://rbezema@svn.wald.intevation.org/deegree/base/branches/2.2_testing/src/org/deegree/framework/jndi/JndiUtils.java $ 002 /*---------------- FILE HEADER ------------------------------------------ 003 004 This file is part of deegree. 005 Copyright (C) 2001-2008 by: 006 EXSE, Department of Geography, University of Bonn 007 http://www.giub.uni-bonn.de/deegree/ 008 lat/lon GmbH 009 http://www.lat-lon.de 010 011 This library is free software; you can redistribute it and/or 012 modify it under the terms of the GNU Lesser General Public 013 License as published by the Free Software Foundation; either 014 version 2.1 of the License, or (at your option) any later version. 015 016 This library is distributed in the hope that it will be useful, 017 but WITHOUT ANY WARRANTY; without even the implied warranty of 018 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 019 Lesser General Public License for more details. 020 021 You should have received a copy of the GNU Lesser General Public 022 License along with this library; if not, write to the Free Software 023 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 024 025 Contact: 026 027 Andreas Poth 028 lat/lon GmbH 029 Aennchenstr. 19 030 53115 Bonn 031 Germany 032 E-Mail: poth@lat-lon.de 033 034 Prof. Dr. Klaus Greve 035 Department of Geography 036 University of Bonn 037 Meckenheimer Allee 166 038 53115 Bonn 039 Germany 040 E-Mail: greve@giub.uni-bonn.de 041 042 043 ---------------------------------------------------------------------------*/ 044 package org.deegree.framework.jndi; 045 046 // J2EE 1.3 047 048 import javax.naming.Context; 049 import javax.naming.InitialContext; 050 import javax.naming.NamingEnumeration; 051 import javax.naming.NamingException; 052 import javax.rmi.PortableRemoteObject; 053 054 055 056 /** 057 * Utility class for retrieving home interfaces and environment values. 058 * 059 * 060 * @author <a href="mailto:tfr@users.sourceforge.net">Torsten Friebe</A> 061 * @author last edited by: $Author: apoth $ 062 * 063 * @version $Revision: 9339 $, $Date: 2007-12-27 13:31:52 +0100 (Do, 27 Dez 2007) $ 064 */ 065 public final class JndiUtils { 066 067 /** 068 * Default constructor is hidden to protect this class for unwanted instantiation. 069 */ 070 private JndiUtils() {} 071 072 /** 073 * Lookup using <b>no</b> caching functionality. 074 * 075 * @param name 076 * @param classForNarrow 077 * 078 * @return 079 * 080 * @throws NamingException 081 */ 082 public static Object lookup(String name, Class classForNarrow) 083 throws NamingException 084 { 085 return PortableRemoteObject.narrow( JndiUtils.getInitialContext().lookup( name ), 086 classForNarrow ); 087 } 088 089 /** 090 * Lookup at Enterprise Java Beans environment value. 091 * For home interfaces use EJBRemoteFactory instead 092 * 093 * @param name the environment name 094 * @param classForNarrow the class to narrow 095 * 096 * @return if an entry exists, an instance of the given class 097 * with a value retrieved from the JNDI tree otherwise 098 * <code>null</code>. 099 * 100 * @throws NamingException if the given lookup name is not in the JNDI tree 101 * 102 * 103 */ 104 public static Object lookupEnv( String name, Class classForNarrow ) 105 throws NamingException 106 { 107 return lookup("java:/comp/env/" + name, classForNarrow); 108 } 109 110 /** 111 * Returns a list of naming entries for the given root node. 112 * @param rootNode 113 * 114 * @return list of naming entries 115 * 116 * @throws NamingException when the given root node doesn't exists 117 */ 118 public static NamingEnumeration getNamingList(String rootNode) 119 throws NamingException 120 { 121 return JndiUtils.getInitialContext().listBindings( rootNode ); 122 } 123 124 /** 125 * Returns the initial context for this application. 126 * 127 * @return the inital context for this appication. This depends on the 128 * system environment. 129 * 130 * @throws NamingException if the context is not available 131 */ 132 private static Context getInitialContext() throws NamingException 133 { 134 return ( new InitialContext() ); 135 } 136 137 }