1 21 22 package uk.org.primrose.vendor.jetty; 23 24 import java.util.ArrayList ; 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 poolConfigFile = null; 31 private ArrayList pools = null; 32 33 public void setPoolConfigFile(String poolConfigFile) { 34 if (this.poolConfigFile == null) { 35 initialize(poolConfigFile); 36 } 37 38 this.poolConfigFile = poolConfigFile; 39 } 40 41 public String getPoolConfigFile() { 42 return this.poolConfigFile; 43 } 44 45 public void initialize(String poolConfigFile) { 46 try { 48 Reference ref = new Reference("uk.org.primrose.pool.datasource.MasterPoolDataSourceFactory"); 49 String refType = "configFile"; 50 String refAddr = poolConfigFile; 51 StringRefAddr sra = new StringRefAddr(refType, refAddr); 52 ref.add(sra); 53 MasterPoolDataSourceFactory mpdsf = new MasterPoolDataSourceFactory(); 54 Object o = mpdsf.getObjectInstance(ref, null, null, null); 56 this.pools = (ArrayList )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 e) { 65 try { 66 Context ctx = (Context)initCtx.lookup("java:comp"); 67 envCtx = ctx.createSubcontext("env"); 68 } catch (Exception 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 ctxObj = initCtx.lookup(q.getName()); 77 envCtx.bind(q.getName(), ctxObj); 78 } 79 80 } catch (Exception e) { 81 e.printStackTrace(System.out); 82 } 83 84 } 85 86 public ArrayList getPools() { 87 return pools; 88 } 89 } | Popular Tags |