1 21 22 package org.jacorb.notification.container; 23 24 import org.apache.avalon.framework.configuration.Configuration; 25 import org.jacorb.notification.conf.Attributes; 26 import org.jacorb.notification.conf.Default; 27 import org.jacorb.notification.engine.PooledPushTaskExecutorFactory; 28 import org.jacorb.notification.engine.PushTaskExecutorFactory; 29 import org.picocontainer.ComponentAdapter; 30 import org.picocontainer.PicoContainer; 31 import org.picocontainer.PicoInitializationException; 32 import org.picocontainer.PicoIntrospectionException; 33 import org.picocontainer.defaults.DecoratingComponentAdapter; 34 35 public class PushTaskExecutorFactoryComponentAdapter extends DecoratingComponentAdapter 36 { 37 private static final long serialVersionUID = 1L; 38 39 public PushTaskExecutorFactoryComponentAdapter(ComponentAdapter delegate) 40 { 41 super(delegate); 42 } 43 44 public Object getComponentInstance(PicoContainer container) throws PicoInitializationException, 45 PicoIntrospectionException 46 { 47 Configuration config = (Configuration) container 48 .getComponentInstanceOfType(Configuration.class); 49 50 String attribute = config.getAttribute(Attributes.THREADPOLICY, 51 Default.DEFAULT_THREADPOLICY); 52 53 PushTaskExecutorFactory pushTaskExecutorFactory = (PushTaskExecutorFactory) super 54 .getComponentInstance(container); 55 56 if (attribute.equalsIgnoreCase("ThreadPool")) 57 { 58 pushTaskExecutorFactory = new PooledPushTaskExecutorFactory(pushTaskExecutorFactory); 59 } 60 61 return pushTaskExecutorFactory; 62 } 63 } 64 | Popular Tags |