KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > sapia > soto > config > JndiRef


1 package org.sapia.soto.config;
2
3 import java.util.ArrayList JavaDoc;
4 import java.util.List JavaDoc;
5 import java.util.Properties JavaDoc;
6
7 import javax.naming.InitialContext JavaDoc;
8 import javax.naming.NamingException JavaDoc;
9
10 import org.sapia.soto.util.Param;
11 import org.sapia.util.xml.confix.ConfigurationException;
12 import org.sapia.util.xml.confix.ObjectCreationCallback;
13
14 /**
15  * @author Yanick Duchesne
16  *
17  * <dl>
18  * <dt><b>Copyright:</b><dd>Copyright &#169; 2002-2004 <a HREF="http://www.sapia-oss.org">Sapia Open Source Software</a>. All Rights Reserved.</dd></dt>
19  * <dt><b>License:</b><dd>Read the license.txt file of the jar or visit the
20  * <a HREF="http://www.sapia-oss.org/license.html">license page</a> at the Sapia OSS web site</dd></dt>
21  * </dl>
22  */

23 public class JndiRef implements ObjectCreationCallback{
24     
25   private String JavaDoc _jndiName;
26   private List JavaDoc _params = new ArrayList JavaDoc();
27   
28   public void setName(String JavaDoc name){
29     _jndiName = name;
30   }
31   
32   public Param createProperty(){
33     Param p = new Param();
34     _params.add(p);
35     return p;
36   }
37   
38   /**
39    * @see org.sapia.util.xml.confix.ObjectCreationCallback#onCreate()
40    */

41   public Object JavaDoc onCreate() throws ConfigurationException {
42     if(_jndiName == null){
43         throw new ConfigurationException("Jndi name not specified");
44     }
45     try{
46         if(_params.size() == 0){
47             InitialContext JavaDoc ctx = new InitialContext JavaDoc();
48             try{
49                 return ctx.lookup(_jndiName);
50             }finally{
51                 ctx.close();
52             }
53         }
54         else{
55             Properties JavaDoc props = new Properties JavaDoc();
56             Param p;
57             for(int i = 0; i < _params.size(); i++){
58                 p = (Param)_params.get(i);
59                 props.setProperty(p.getName(), p.getValue().toString());
60             }
61             InitialContext JavaDoc ctx = new InitialContext JavaDoc(props);
62             try{
63                 return ctx.lookup(_jndiName);
64             }finally{
65                 ctx.close();
66             }
67         }
68     }catch(NamingException JavaDoc e){
69         throw new ConfigurationException("Could not lookup: " + _jndiName, e);
70     }
71   }
72
73 }
74
Popular Tags