@Override
public <T> Collection<T> produce(final Class<T> type)
{
Collection<T> result = new ArrayList<T>();
BeanManager manager = getBeanManager();
Set<Bean<?>> beans = manager.getBeans(type);
for (Bean<?> bean : beans) {
if (bean != null)
{
CreationalContext<T> context = (CreationalContext<T>) manager.createCreationalContext(bean);
if (context != null)
{
result.add((T) manager.getReference(bean, type, context));
if (log.isDebugEnabled())
{
log.debug("Created CDI enriched service [" + bean.toString() + "]");
}
}