Skip to content

Commit

Permalink
Preliminary support for @New Simple Bean case
Browse files Browse the repository at this point in the history
removal of toDetailedString():s
Manager.resolveDecorators param Class<?> -> Type
WS, cleanups

git-svn-id: http://anonsvn.jboss.org/repos/weld/ri/trunk@793 1c488680-804c-0410-94cd-c6b725194a0e
  • Loading branch information
nickarls committed Jan 6, 2009
1 parent c05a307 commit a416e4c
Show file tree
Hide file tree
Showing 38 changed files with 395 additions and 360 deletions.
5 changes: 4 additions & 1 deletion webbeans-api/src/main/java/javax/webbeans/manager/Bean.java
Expand Up @@ -21,6 +21,8 @@
import java.lang.reflect.Type;
import java.util.Set;

import javax.webbeans.InjectionPoint;

/**
* The contract between the Web Bean manager and a Web Bean. This interface
* should not be called directly by the application.
Expand All @@ -31,7 +33,6 @@
*/
public abstract class Bean<T> implements Contextual<T>
{

private final Manager manager;

protected Bean(Manager manager)
Expand Down Expand Up @@ -62,4 +63,6 @@ protected Manager getManager()

public abstract boolean isNullable();

// public abstract Set<InjectionPoint> getInjectionPoints();

}
Expand Up @@ -19,6 +19,7 @@

import java.io.InputStream;
import java.lang.annotation.Annotation;
import java.lang.reflect.Type;
import java.util.List;
import java.util.Set;

Expand Down Expand Up @@ -81,6 +82,6 @@ public interface Manager

public List<Interceptor> resolveInterceptors(InterceptionType type, Annotation... interceptorBindings);

public List<Decorator> resolveDecorators(Set<Class<?>> types, Annotation... bindings);
public List<Decorator> resolveDecorators(Set<Type> types, Annotation... bindings);

}
47 changes: 4 additions & 43 deletions webbeans-ri/src/main/java/org/jboss/webbeans/ManagerImpl.java
Expand Up @@ -60,7 +60,6 @@
import org.jboss.webbeans.introspector.jlr.AnnotatedClassImpl;
import org.jboss.webbeans.resources.spi.Naming;
import org.jboss.webbeans.util.Reflections;
import org.jboss.webbeans.util.Strings;

/**
* Implementation of the Web Beans Manager.
Expand Down Expand Up @@ -175,7 +174,8 @@ public Manager addBean(Bean<?> bean)
*/
public <T> Set<AnnotatedMethod<Object>> resolveDisposalMethods(Class<T> apiType, Annotation... bindings)
{
return new HashSet<AnnotatedMethod<Object>>();
//TODO Implement disposal methods
return Collections.emptySet();
}

/**
Expand Down Expand Up @@ -634,15 +634,15 @@ public Set<Bean<?>> resolveByName(String name)

/**
* Resolves a list of decorators based on API types and binding types
*
* Os
* @param types The set of API types to match
* @param bindingTypes The binding types to match
* @return A list of matching decorators
*
* @see javax.webbeans.manager.Manager#resolveDecorators(java.util.Set,
* java.lang.annotation.Annotation[])
*/
public List<Decorator> resolveDecorators(Set<Class<?>> types, Annotation... bindings)
public List<Decorator> resolveDecorators(Set<Type> types, Annotation... bindings)
{
return resolver.resolveDecorators(types, bindings);
}
Expand Down Expand Up @@ -696,21 +696,6 @@ public String toString()
return buffer.toString();
}

public String toDetailedString()
{
StringBuilder buffer = new StringBuilder();
buffer.append(Strings.collectionToString("Enabled deployment types: ", getEnabledDeploymentTypes()));
buffer.append(eventManager.toString() + "\n");
buffer.append(MetaDataCache.instance().toString() + "\n");
buffer.append(resolver.toString() + "\n");
buffer.append(contextMap.toString() + "\n");
buffer.append(proxyPool.toString() + "\n");
buffer.append(Strings.collectionToString("Registered beans: ", getBeans()));
buffer.append(Strings.collectionToString("Registered decorators: ", decorators));
buffer.append(Strings.collectionToString("Registered interceptors: ", interceptors));
return buffer.toString();
}

public Manager parse(InputStream xmlStream)
{
// TODO Implement XML parsing
Expand All @@ -732,30 +717,6 @@ private void checkPassivation()
{
throw new UnserializableDependencyException(bean + " is not serializable or has unserializable dependencies");
}
// // TODO: Not that pretty. Can this logic be moved to the
// isSerializable()
// // of SimpleBean and EnterpriseBean or are they too strict there?
// if (bean instanceof EnterpriseBean)
// {
// boolean stateful =
// getEjbDescriptorCache().containsKey(((EnterpriseBean<?>)
// bean).getType());
// if (stateful && !bean.isSerializable())
// {
// throw new UnserializableDependencyException(bean +
// " is not serializable or has unserializable dependencies");
// }
// }
// else if (bean instanceof SimpleBean)
// {
// boolean passivating =
// MetaDataCache.instance().getScopeModel(bean.getScopeType()).isPassivating();
// if (passivating && !bean.isSerializable())
// {
// throw new UnserializableDependencyException(bean +
// " is not serializable or has unserializable dependencies");
// }
// }
}
}

Expand Down
5 changes: 3 additions & 2 deletions webbeans-ri/src/main/java/org/jboss/webbeans/Resolver.java
Expand Up @@ -18,6 +18,7 @@
package org.jboss.webbeans;

import java.lang.annotation.Annotation;
import java.lang.reflect.Type;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
Expand Down Expand Up @@ -360,10 +361,10 @@ else if (!bindingTypes.contains(bindingType))
* @param bindingTypes The binding types to match
* @return The set of matching decorators
*/
public List<Decorator> resolveDecorators(Set<Class<?>> types, Annotation[] bindingTypes)
public List<Decorator> resolveDecorators(Set<Type> types, Annotation[] bindingTypes)
{
// TODO Implement decorators
return null;
return Collections.emptyList();
}

/**
Expand Down
Expand Up @@ -48,7 +48,6 @@
import org.jboss.webbeans.log.Logging;
import org.jboss.webbeans.model.MergedStereotypes;
import org.jboss.webbeans.util.Reflections;
import org.jboss.webbeans.util.Strings;

/**
* An abstract bean representation common for all beans
Expand Down Expand Up @@ -559,22 +558,4 @@ public String toString()
{
return "AbstractBean " + getName();
}

public String toDetailedString()
{
StringBuilder buffer = new StringBuilder();
buffer.append("AbstractBean:\n");
buffer.append("Name: " + name + "\n");
buffer.append("Type: " + type + "\n");
buffer.append("Scope type " + scopeType.toString() + "\n");
buffer.append("Deployment type: " + deploymentType.toString() + "\n");
buffer.append("Primitive : " + primitive + "\n");
buffer.append("Declared bean type: " + (declaredBeanType == null ? "null" : declaredBeanType.toString()) + "\n");
buffer.append(Strings.collectionToString("Binding types: ", getBindingTypes()));
buffer.append(Strings.collectionToString("API types: ", getTypes()));
buffer.append(Strings.collectionToString("Injection points: ", getInjectionPoints()));
buffer.append(mergedStereotypes.toString() + "\n");
return buffer.toString();
}

}
Expand Up @@ -26,7 +26,6 @@
import javax.webbeans.Dependent;
import javax.webbeans.Destructor;
import javax.webbeans.Disposes;
import javax.webbeans.IllegalProductException;
import javax.webbeans.Initializer;
import javax.webbeans.Observes;
import javax.webbeans.Produces;
Expand All @@ -40,9 +39,7 @@
import org.jboss.webbeans.MetaDataCache;
import org.jboss.webbeans.introspector.AnnotatedClass;
import org.jboss.webbeans.introspector.AnnotatedField;
import org.jboss.webbeans.introspector.AnnotatedItem;
import org.jboss.webbeans.introspector.AnnotatedMethod;
import org.jboss.webbeans.introspector.jlr.AbstractAnnotatedMember;
import org.jboss.webbeans.introspector.jlr.AnnotatedClassImpl;
import org.jboss.webbeans.log.LogProvider;
import org.jboss.webbeans.log.Logging;
Expand Down Expand Up @@ -315,18 +312,6 @@ public String toString()
return "AbstractClassBean " + getName();
}

public String toDetailedString()
{
StringBuilder buffer = new StringBuilder();
buffer.append("AbstractClassBean:\n");
buffer.append(super.toString() + "\n");
buffer.append("Annotated item: " + annotatedItem.toString() + "\n");
buffer.append(Strings.collectionToString("Initializer methods: ", getInitializerMethods()));
buffer.append(Strings.collectionToString("Injectable fields: ", getInjectableFields()));
buffer.append(Strings.collectionToString("Producer methods: ", getProducerMethods()));
return buffer.toString();
}

@Override
/*
* Gets the default deployment type
Expand Down
Expand Up @@ -130,7 +130,7 @@ public static <T, S> EventBean<T, S> createEventBean(AnnotatedItem<Event<T>, S>
{
return new EventBean<T, S>(field, manager);
}

/**
* Creates an instance Web Bean
*
Expand All @@ -143,7 +143,7 @@ public static <T, S> InstanceBean<T, S> createInstanceBean(AnnotatedItem<Instanc
{
return new InstanceBean<T, S>(field, manager);
}

/**
* Creates an observer
*
Expand All @@ -157,4 +157,9 @@ public static <T> ObserverImpl<T> createObserver(AnnotatedMethod<Object> method,
return new ObserverImpl<T>(method, declaringBean, manager);
}

public static <T> NewSimpleBean<T> createNewSimpleBean(Class<T> type, ManagerImpl manager)
{
return new NewSimpleBean<T>(type, manager);
}

}
62 changes: 62 additions & 0 deletions webbeans-ri/src/main/java/org/jboss/webbeans/bean/NewBean.java
@@ -0,0 +1,62 @@
package org.jboss.webbeans.bean;

import java.lang.annotation.Annotation;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;

import javax.webbeans.Dependent;
import javax.webbeans.Standard;
import javax.webbeans.manager.Bean;
import javax.webbeans.manager.Manager;

import org.jboss.webbeans.binding.NewBinding;
import org.jboss.webbeans.introspector.AnnotatedItem;

public class NewBean<T> extends ForwardingBean<T>
{
private AbstractClassBean<T> wrappedBean;

public NewBean(AbstractClassBean<T> wrappedBean, Manager manager)
{
super(manager);
this.wrappedBean = wrappedBean;
}

@Override
protected Bean<T> delegate()
{
return wrappedBean;
}

@Override
public Class<? extends Annotation> getScopeType()
{
return Dependent.class;
}

@Override
public Class<? extends Annotation> getDeploymentType()
{
return Standard.class;
}

@Override
public String getName()
{
return null;
}

public Set<AnnotatedItem<?, ?>> getInjectionPoints()
{
return wrappedBean.getInjectionPoints();
}

@Override
public Set<Annotation> getBindingTypes()
{
return new HashSet<Annotation>(Arrays.asList(new NewBinding()));
}


}

0 comments on commit a416e4c

Please sign in to comment.