1 /* 2 * Copyright (c) 1998-2006 Caucho Technology -- all rights reserved 3 * 4 * This file is part of Resin(R) Open Source 5 * 6 * Each copy or derived work must preserve the copyright notice and this 7 * notice unmodified. 8 * 9 * Resin Open Source is free software; you can redistribute it and/or modify 10 * it under the terms of the GNU General Public License as published by 11 * the Free Software Foundation; either version 2 of the License, or 12 * (at your option) any later version. 13 * 14 * Resin Open Source is distributed in the hope that it will be useful, 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, or any warranty 17 * of NON-INFRINGEMENT. See the GNU General Public License for more 18 * details. 19 * 20 * You should have received a copy of the GNU General Public License 21 * along with Resin Open Source; if not, write to the 22 * Free SoftwareFoundation, Inc. 23 * 59 Temple Place, Suite 330 24 * Boston, MA 02111-1307 USA 25 * 26 * @author Scott Ferguson 27 */ 28 29 package com.caucho.config.core; 30 31 import com.caucho.config.BuilderProgram; 32 import com.caucho.config.BuilderProgramContainer; 33 import com.caucho.loader.EnvironmentBean; 34 import com.caucho.loader.EnvironmentClassLoader; 35 import com.caucho.util.L10N; 36 37 import javax.annotation.PostConstruct; 38 39 /** 40 * Separate environment for a bean 41 */ 42 public class ResinEnv extends ResinControl implements EnvironmentBean { 43 private static final L10N L = new L10N(ResinEnv.class); 44 45 private EnvironmentClassLoader _loader; 46 47 private BuilderProgramContainer _init = new BuilderProgramContainer(); 48 49 private boolean _test; 50 51 /** 52 * Instantiates the environment. 53 */ 54 public ResinEnv() 55 { 56 _loader = new EnvironmentClassLoader(); 57 _loader.setOwner(this); 58 } 59 60 /** 61 * Returns the class loader. 62 */ 63 public ClassLoader getClassLoader() 64 { 65 return _loader; 66 } 67 68 /** 69 * Sets the class loader. 70 */ 71 public void setEnvironmentClassLoader(EnvironmentClassLoader loader) 72 { 73 _loader = loader; 74 } 75 76 /** 77 * Adds to the builder program. 78 */ 79 public void addBuilderProgram(BuilderProgram program) 80 { 81 _init.addProgram(program); 82 } 83 84 @PostConstruct 85 public void init() 86 throws Throwable 87 { 88 Object object = getObject(); 89 90 if (object != null) 91 _init.configure(object); 92 } 93 } 94 95