1 8 package org.apache.avalon.phoenix.components.application; 9 10 import org.apache.avalon.excalibur.i18n.ResourceManager; 11 import org.apache.avalon.excalibur.i18n.Resources; 12 import org.apache.avalon.framework.component.ComponentManager; 13 import org.apache.avalon.framework.configuration.Configuration; 14 import org.apache.avalon.framework.configuration.ConfigurationException; 15 import org.apache.avalon.framework.context.Context; 16 import org.apache.avalon.framework.logger.AbstractLogEnabled; 17 import org.apache.avalon.framework.logger.Logger; 18 import org.apache.avalon.framework.parameters.Parameters; 19 import org.apache.avalon.framework.service.ServiceManager; 20 import org.apache.avalon.phoenix.interfaces.ApplicationContext; 21 import org.apache.avalon.phoenix.metadata.BlockListenerMetaData; 22 import org.apache.excalibur.containerkit.lifecycle.ResourceProvider; 23 24 31 class ListenerResourceProvider 32 extends AbstractLogEnabled 33 implements ResourceProvider 34 { 35 private static final Resources REZ = 36 ResourceManager.getPackageResources( ListenerResourceProvider.class ); 37 38 41 private final ApplicationContext m_context; 42 43 public ListenerResourceProvider( final ApplicationContext context ) 44 { 45 if( null == context ) 46 { 47 throw new NullPointerException ( "context" ); 48 } 49 50 m_context = context; 51 } 52 53 60 public Object createObject( final Object entry ) 61 throws Exception 62 { 63 final BlockListenerMetaData metaData = getMetaData( entry ); 64 final ClassLoader classLoader = m_context.getClassLoader(); 65 final Class clazz = 66 classLoader.loadClass( metaData.getClassname() ); 67 return clazz.newInstance(); 68 } 69 70 77 public Logger createLogger( final Object entry ) 78 throws Exception 79 { 80 final BlockListenerMetaData metaData = getMetaData( entry ); 81 final String name = metaData.getName(); 82 return m_context.getLogger( name ); 83 } 84 85 public Context createContext( Object entry ) 86 throws Exception 87 { 88 throw new UnsupportedOperationException (); 89 } 90 91 public ComponentManager createComponentManager( final Object entry ) 92 throws Exception 93 { 94 throw new UnsupportedOperationException (); 95 } 96 97 public ServiceManager createServiceManager( final Object entry ) 98 throws Exception 99 { 100 throw new UnsupportedOperationException (); 101 } 102 103 112 public Configuration createConfiguration( final Object entry ) 113 throws Exception 114 { 115 final BlockListenerMetaData metaData = getMetaData( entry ); 116 final String name = metaData.getName(); 117 try 118 { 119 return m_context.getConfiguration( name ); 120 } 121 catch( final ConfigurationException ce ) 122 { 123 final String message = 126 REZ.getString( "missing-listener-configuration", 127 name ); 128 throw new ConfigurationException( message, ce ); 129 } 130 } 131 132 public Parameters createParameters( final Object entry ) 133 throws Exception 134 { 135 final Configuration configuration = createConfiguration( entry ); 136 final Parameters parameters = 137 Parameters.fromConfiguration( configuration ); 138 parameters.makeReadOnly(); 139 return parameters; 140 } 141 142 148 private BlockListenerMetaData getMetaData( final Object entry ) 149 { 150 return (BlockListenerMetaData)entry; 151 } 152 } 153 | Popular Tags |