001 /***************************************************************************** 002 * Copyright (c) PicoContainer Organization. All rights reserved. * 003 * ------------------------------------------------------------------------- * 004 * The software in this package is published under the terms of the BSD * 005 * style license a copy of which has been included with this distribution in * 006 * the LICENSE.txt file. * 007 * * 008 *****************************************************************************/ 009 010 package org.picocontainer.gems.jndi; 011 012 import java.util.Properties; 013 014 import javax.naming.NamingException; 015 016 import org.picocontainer.ComponentAdapter; 017 import org.picocontainer.ComponentMonitor; 018 import org.picocontainer.LifecycleStrategy; 019 import org.picocontainer.Parameter; 020 import org.picocontainer.PicoCompositionException; 021 import org.picocontainer.behaviors.AbstractBehaviorFactory; 022 023 /** 024 * produce JNDI exposing behaviour 025 * 026 * @author k.pribluda 027 * 028 * @param <T> 029 */ 030 @SuppressWarnings("serial") 031 public class JNDIExposing extends AbstractBehaviorFactory { 032 033 @Override 034 public <T> ComponentAdapter<T> addComponentAdapter( 035 final ComponentMonitor componentMonitor, 036 final LifecycleStrategy lifecycleStrategy, 037 final Properties componentProperties, final ComponentAdapter<T> adapter) { 038 try { 039 return new JNDIExposed<T>(super.addComponentAdapter( 040 componentMonitor, lifecycleStrategy, componentProperties, 041 adapter)); 042 } catch (NamingException e) { 043 throw new PicoCompositionException( 044 "unable to create JNDI behaviour", e); 045 } 046 } 047 048 @Override 049 public <T> ComponentAdapter<T> createComponentAdapter( 050 final ComponentMonitor componentMonitor, 051 final LifecycleStrategy lifecycleStrategy, 052 final Properties componentProperties, final Object componentKey, 053 final Class<T> componentImplementation, final Parameter... parameters) 054 throws PicoCompositionException { 055 // TODO Auto-generated method stub 056 ComponentAdapter<T> componentAdapter = super.createComponentAdapter( 057 componentMonitor, lifecycleStrategy, componentProperties, 058 componentKey, componentImplementation, parameters); 059 060 try { 061 return new JNDIExposed<T>(componentAdapter); 062 } catch (NamingException e) { 063 throw new PicoCompositionException( 064 "unable to create JNDI behaviour", e); 065 } 066 } 067 068 }