KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > uk > org > primrose > vendor > jetty > BindPrimroseFactoryV6


1 /**
2 * Library name : Primrose - A Java Database Connection Pool.
3 * Published by Ben Keeping, http://primrose.org.uk .
4 * Copyright (C) 2004 Ben Keeping, primrose.org.uk
5 * Email: Use "Contact Us Form" on website
6 *
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
11 *
12 * This library 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 library; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 */

21
22 package uk.org.primrose.vendor.jetty;
23
24 import java.util.ArrayList JavaDoc;
25 import javax.naming.*;
26 import uk.org.primrose.pool.datasource.MasterPoolDataSourceFactory;
27 import uk.org.primrose.pool.jmx.*;
28
29 public class BindPrimroseFactoryV6 {
30     private String JavaDoc poolConfigFile = null;
31     private ArrayList JavaDoc pools = null;
32
33     public void setPoolConfigFile(String JavaDoc poolConfigFile) {
34         if (this.poolConfigFile == null) {
35             initialize(poolConfigFile);
36         }
37
38         this.poolConfigFile = poolConfigFile;
39     }
40
41     public String JavaDoc getPoolConfigFile() {
42         return this.poolConfigFile;
43     }
44
45     public void initialize(String JavaDoc poolConfigFile) {
46             // Initialize the pool and bind all objects under the non-serializable
47
try {
48                 Reference ref = new Reference("uk.org.primrose.pool.datasource.MasterPoolDataSourceFactory");
49                 String JavaDoc refType = "configFile";
50                 String JavaDoc refAddr = poolConfigFile;
51                 StringRefAddr sra = new StringRefAddr(refType, refAddr);
52                 ref.add(sra);
53                 MasterPoolDataSourceFactory mpdsf = new MasterPoolDataSourceFactory();
54                 // Bind the masterPool under the tree.
55
Object JavaDoc o = mpdsf.getObjectInstance(ref, null, null, null);
56                 this.pools = (ArrayList JavaDoc)o;
57
58                 MBeanUtil.bind("masterPool", this);
59                 
60                 Context initCtx = new InitialContext();
61                 Context envCtx = null;
62                 try {
63                     envCtx = (Context)initCtx.lookup("java:comp/env");
64                 } catch (Exception JavaDoc e) {
65                     try {
66                         Context ctx = (Context)initCtx.lookup("java:comp");
67                         envCtx = ctx.createSubcontext("env");
68                     } catch (Exception JavaDoc e2) {
69                         e2.printStackTrace(System.out);
70                         System.out.println("[Primrose] Cannot create sub context 'env'");
71                     }
72                 }
73
74                 for (int i = 0; i < pools.size(); i++) {
75                     Queue q = (Queue)pools.get(i);
76                     Object JavaDoc ctxObj = initCtx.lookup(q.getName());
77                     envCtx.bind(q.getName(), ctxObj);
78                 }
79
80             } catch (Exception JavaDoc e) {
81                 e.printStackTrace(System.out);
82             }
83
84     }
85
86     public ArrayList JavaDoc getPools() {
87         return pools;
88     }
89 }
Popular Tags