KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jboss > naming > JNDIBindingService


1 /*
2 * JBoss, Home of Professional Open Source
3 * Copyright 2005, 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.naming;
23
24 import javax.naming.Context JavaDoc;
25 import javax.naming.InitialContext JavaDoc;
26 import javax.naming.NamingException JavaDoc;
27
28 /**
29  * A service which allows arbitrary values to be bound into JNDI.
30  *
31  * @author Scott.Stark@jboss.org
32  * @version $Revision: 37459 $
33  */

34 public class JNDIBindingService
35 {
36    /** The JNDI bindings managed by this service */
37    private JNDIBindings bindings;
38
39    /** The root context name under which the values are bound */
40    private String JavaDoc rootName;
41
42    public JNDIBindings getBindings()
43    {
44       return bindings;
45    }
46    public void setBindings(JNDIBindings bindings)
47    {
48       this.bindings = bindings;
49    }
50
51    public String JavaDoc getRootName()
52    {
53       return rootName;
54    }
55    public void setRootName(String JavaDoc rootName)
56    {
57       this.rootName = rootName;
58    }
59
60    public void addBindings() throws NamingException JavaDoc
61    {
62       Context JavaDoc ctx = new InitialContext JavaDoc();
63       if( rootName != null )
64          ctx = (Context JavaDoc) ctx.lookup(rootName);
65
66       JNDIBinding[] values = bindings.getBindings();
67       for(int n = 0; n < values.length; n ++)
68       {
69          String JavaDoc name = values[n].getName();
70          Object JavaDoc value;
71          try
72          {
73             value = values[n].getValue();
74          }
75          catch(Exception JavaDoc e)
76          {
77             NamingException JavaDoc ne = new NamingException JavaDoc("Failed to obtain value from binding: "+name);
78             ne.setRootCause(e);
79             throw ne;
80          }
81          Util.bind(ctx, name, value);
82       }
83       ctx.close();
84    }
85    public void removeBindings() throws NamingException JavaDoc
86    {
87       Context JavaDoc ctx = new InitialContext JavaDoc();
88       if( rootName != null )
89          ctx = (Context JavaDoc) ctx.lookup(rootName);
90
91       JNDIBinding[] values = bindings.getBindings();
92       for(int n = 0; n < values.length; n ++)
93       {
94          String JavaDoc name = values[n].getName();
95          Util.unbind(ctx, name);
96       }
97       ctx.close();
98    }
99
100    public void start() throws Exception JavaDoc
101    {
102       addBindings();
103    }
104    public void stop() throws Exception JavaDoc
105    {
106       removeBindings();
107    }
108 }
109
Popular Tags