}
public IoCComponentProvider getComponentProvider(final Class c) {
if (PostConstructListener.class.isAssignableFrom(c)) {
final ComponentScope cs = SingletonScope.class.isAssignableFrom(c) ? ComponentScope.Singleton : ComponentScope.PerRequest;
final IoCComponentProcessor cp = cpf.get(c, cs);
return new IoCFullyManagedComponentProvider() {
public Object getInstance() {
componentClass = c;
Object o = null;
try {
o = c.newInstance();
} catch (InstantiationException ex) {
throw new RuntimeException(ex);
} catch (IllegalAccessException ex) {
throw new RuntimeException(ex);
}
cp.postConstruct(o);
((PostConstructListener)o).postConstruct();
return o;
}
public ComponentScope getScope() {