Weld SVN: r5213 - cdi-tck/trunk/impl/src/main/java/org/jboss/jsr299/tck.
by weld-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2009-12-04 09:42:41 -0500 (Fri, 04 Dec 2009)
New Revision: 5213
Modified:
cdi-tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/AbstractJSR299Test.java
Log:
stricter check
Modified: cdi-tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/AbstractJSR299Test.java
===================================================================
--- cdi-tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/AbstractJSR299Test.java 2009-12-04 12:14:25 UTC (rev 5212)
+++ cdi-tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/AbstractJSR299Test.java 2009-12-04 14:42:41 UTC (rev 5213)
@@ -114,7 +114,7 @@
public boolean typeSetMatches(Set<Type> types, Type... requiredTypes)
{
List<Type> typeList = Arrays.asList(requiredTypes);
- return types.containsAll(typeList);
+ return requiredTypes.length == types.size() && types.containsAll(typeList);
}
public <T> Bean<T> getUniqueBean(Class<T> type, Annotation... bindings)
15 years, 3 months
Weld SVN: r5211 - in core/trunk/impl/src/main/java/org/jboss/weld: bean and 13 other directories.
by weld-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2009-12-03 13:12:17 -0500 (Thu, 03 Dec 2009)
New Revision: 5211
Added:
core/trunk/impl/src/main/java/org/jboss/weld/util/reflection/HierarchyDiscovery.java
core/trunk/impl/src/main/java/org/jboss/weld/util/reflection/Reflections.java
Removed:
core/trunk/impl/src/main/java/org/jboss/weld/util/Reflections.java
Modified:
core/trunk/impl/src/main/java/org/jboss/weld/BeanManagerImpl.java
core/trunk/impl/src/main/java/org/jboss/weld/Validator.java
core/trunk/impl/src/main/java/org/jboss/weld/bean/AbstractBean.java
core/trunk/impl/src/main/java/org/jboss/weld/bean/AbstractClassBean.java
core/trunk/impl/src/main/java/org/jboss/weld/bean/AbstractProducerBean.java
core/trunk/impl/src/main/java/org/jboss/weld/bean/DecoratorImpl.java
core/trunk/impl/src/main/java/org/jboss/weld/bean/ManagedBean.java
core/trunk/impl/src/main/java/org/jboss/weld/bean/SessionBean.java
core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/CallableMethodHandler.java
core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/ExtensionBean.java
core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/InstanceImpl.java
core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/ee/EEResourceProducerField.java
core/trunk/impl/src/main/java/org/jboss/weld/bean/interceptor/ClassInterceptionHandlerFactory.java
core/trunk/impl/src/main/java/org/jboss/weld/bean/proxy/AbstractDecoratorMethodHandler.java
core/trunk/impl/src/main/java/org/jboss/weld/bean/proxy/ClientProxyMethodHandler.java
core/trunk/impl/src/main/java/org/jboss/weld/bean/proxy/DecoratorProxyMethodHandler.java
core/trunk/impl/src/main/java/org/jboss/weld/bean/proxy/EnterpriseBeanProxyMethodHandler.java
core/trunk/impl/src/main/java/org/jboss/weld/bootstrap/AbstractBeanDeployer.java
core/trunk/impl/src/main/java/org/jboss/weld/event/EventImpl.java
core/trunk/impl/src/main/java/org/jboss/weld/introspector/jlr/AbstractWeldAnnotated.java
core/trunk/impl/src/main/java/org/jboss/weld/introspector/jlr/AbstractWeldMember.java
core/trunk/impl/src/main/java/org/jboss/weld/introspector/jlr/WeldAnnotationImpl.java
core/trunk/impl/src/main/java/org/jboss/weld/introspector/jlr/WeldClassImpl.java
core/trunk/impl/src/main/java/org/jboss/weld/introspector/jlr/WeldConstructorImpl.java
core/trunk/impl/src/main/java/org/jboss/weld/introspector/jlr/WeldFieldImpl.java
core/trunk/impl/src/main/java/org/jboss/weld/introspector/jlr/WeldMethodImpl.java
core/trunk/impl/src/main/java/org/jboss/weld/introspector/jlr/WeldParameterImpl.java
core/trunk/impl/src/main/java/org/jboss/weld/jsf/JsfHelper.java
core/trunk/impl/src/main/java/org/jboss/weld/metadata/cache/BindingTypeModel.java
core/trunk/impl/src/main/java/org/jboss/weld/metadata/cache/InterceptorBindingModel.java
core/trunk/impl/src/main/java/org/jboss/weld/resolution/NewResolvableTransformer.java
core/trunk/impl/src/main/java/org/jboss/weld/resolution/ResolvableFactory.java
core/trunk/impl/src/main/java/org/jboss/weld/resolution/ResolvableWeldClass.java
core/trunk/impl/src/main/java/org/jboss/weld/resolution/TypeSafeBeanResolver.java
core/trunk/impl/src/main/java/org/jboss/weld/resolution/TypeSafeDecoratorResolver.java
core/trunk/impl/src/main/java/org/jboss/weld/resolution/TypeSafeDisposerResolver.java
core/trunk/impl/src/main/java/org/jboss/weld/resolution/TypeSafeObserverResolver.java
core/trunk/impl/src/main/java/org/jboss/weld/util/Beans.java
core/trunk/impl/src/main/java/org/jboss/weld/util/Observers.java
core/trunk/impl/src/main/java/org/jboss/weld/util/Proxies.java
core/trunk/impl/src/main/java/org/jboss/weld/util/serviceProvider/DefaultServiceLoader.java
Log:
move stuff around
Modified: core/trunk/impl/src/main/java/org/jboss/weld/BeanManagerImpl.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/BeanManagerImpl.java 2009-12-03 18:08:11 UTC (rev 5210)
+++ core/trunk/impl/src/main/java/org/jboss/weld/BeanManagerImpl.java 2009-12-03 18:12:17 UTC (rev 5211)
@@ -94,7 +94,8 @@
import org.jboss.weld.util.Beans;
import org.jboss.weld.util.Observers;
import org.jboss.weld.util.Proxies;
-import org.jboss.weld.util.Reflections;
+import org.jboss.weld.util.reflection.HierarchyDiscovery;
+import org.jboss.weld.util.reflection.Reflections;
import com.google.common.base.Function;
import com.google.common.base.Supplier;
@@ -661,7 +662,7 @@
HashSet<Annotation> bindingAnnotations = new HashSet<Annotation>(Arrays.asList(bindings));
bindingAnnotations.add(new AnyLiteral());
Set<ObserverMethod<? super T>> observers = new HashSet<ObserverMethod<? super T>>();
- Set<ObserverMethod<?>> eventObservers = observerResolver.resolve(ResolvableFactory.of(new Reflections.HierarchyDiscovery(eventType).getTypeClosure(), bindingAnnotations, null));
+ Set<ObserverMethod<?>> eventObservers = observerResolver.resolve(ResolvableFactory.of(new HierarchyDiscovery(eventType).getTypeClosure(), bindingAnnotations, null));
for (ObserverMethod<?> observer : eventObservers)
{
observers.add((ObserverMethod<T>) observer);
Modified: core/trunk/impl/src/main/java/org/jboss/weld/Validator.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/Validator.java 2009-12-03 18:08:11 UTC (rev 5210)
+++ core/trunk/impl/src/main/java/org/jboss/weld/Validator.java 2009-12-03 18:12:17 UTC (rev 5211)
@@ -58,7 +58,7 @@
import org.jboss.weld.resolution.ResolvableWeldClass;
import org.jboss.weld.util.Beans;
import org.jboss.weld.util.Proxies;
-import org.jboss.weld.util.Reflections;
+import org.jboss.weld.util.reflection.Reflections;
import com.google.common.base.Supplier;
import com.google.common.collect.Multimap;
Modified: core/trunk/impl/src/main/java/org/jboss/weld/bean/AbstractBean.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/bean/AbstractBean.java 2009-12-03 18:08:11 UTC (rev 5210)
+++ core/trunk/impl/src/main/java/org/jboss/weld/bean/AbstractBean.java 2009-12-03 18:12:17 UTC (rev 5211)
@@ -58,7 +58,7 @@
import org.jboss.weld.metadata.cache.MergedStereotypes;
import org.jboss.weld.metadata.cache.MetaAnnotationStore;
import org.jboss.weld.util.Beans;
-import org.jboss.weld.util.Reflections;
+import org.jboss.weld.util.reflection.Reflections;
import org.slf4j.cal10n.LocLogger;
/**
Modified: core/trunk/impl/src/main/java/org/jboss/weld/bean/AbstractClassBean.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/bean/AbstractClassBean.java 2009-12-03 18:08:11 UTC (rev 5210)
+++ core/trunk/impl/src/main/java/org/jboss/weld/bean/AbstractClassBean.java 2009-12-03 18:12:17 UTC (rev 5211)
@@ -72,9 +72,9 @@
import org.jboss.weld.serialization.spi.helpers.SerializableContextualInstance;
import org.jboss.weld.util.Beans;
import org.jboss.weld.util.Proxies;
-import org.jboss.weld.util.Reflections;
import org.jboss.weld.util.Strings;
import org.jboss.weld.util.Proxies.TypeInfo;
+import org.jboss.weld.util.reflection.Reflections;
import org.slf4j.cal10n.LocLogger;
/**
Modified: core/trunk/impl/src/main/java/org/jboss/weld/bean/AbstractProducerBean.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/bean/AbstractProducerBean.java 2009-12-03 18:08:11 UTC (rev 5210)
+++ core/trunk/impl/src/main/java/org/jboss/weld/bean/AbstractProducerBean.java 2009-12-03 18:12:17 UTC (rev 5211)
@@ -61,7 +61,7 @@
import org.jboss.weld.metadata.cache.MetaAnnotationStore;
import org.jboss.weld.util.Beans;
import org.jboss.weld.util.Names;
-import org.jboss.weld.util.Reflections;
+import org.jboss.weld.util.reflection.Reflections;
import org.slf4j.cal10n.LocLogger;
/**
Modified: core/trunk/impl/src/main/java/org/jboss/weld/bean/DecoratorImpl.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/bean/DecoratorImpl.java 2009-12-03 18:08:11 UTC (rev 5210)
+++ core/trunk/impl/src/main/java/org/jboss/weld/bean/DecoratorImpl.java 2009-12-03 18:12:17 UTC (rev 5211)
@@ -55,7 +55,7 @@
import org.jboss.weld.introspector.jlr.WeldConstructorImpl;
import org.jboss.weld.resources.ClassTransformer;
import org.jboss.weld.util.Proxies;
-import org.jboss.weld.util.Reflections;
+import org.jboss.weld.util.reflection.Reflections;
public class DecoratorImpl<T> extends ManagedBean<T> implements Decorator<T>
{
Modified: core/trunk/impl/src/main/java/org/jboss/weld/bean/ManagedBean.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/bean/ManagedBean.java 2009-12-03 18:08:11 UTC (rev 5210)
+++ core/trunk/impl/src/main/java/org/jboss/weld/bean/ManagedBean.java 2009-12-03 18:12:17 UTC (rev 5211)
@@ -64,7 +64,7 @@
import org.jboss.weld.serialization.spi.helpers.SerializableContextual;
import org.jboss.weld.util.Beans;
import org.jboss.weld.util.Names;
-import org.jboss.weld.util.Reflections;
+import org.jboss.weld.util.reflection.Reflections;
import org.slf4j.cal10n.LocLogger;
import org.slf4j.ext.XLogger;
import org.slf4j.ext.XLogger.Level;
Modified: core/trunk/impl/src/main/java/org/jboss/weld/bean/SessionBean.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/bean/SessionBean.java 2009-12-03 18:08:11 UTC (rev 5210)
+++ core/trunk/impl/src/main/java/org/jboss/weld/bean/SessionBean.java 2009-12-03 18:12:17 UTC (rev 5211)
@@ -73,7 +73,7 @@
import org.jboss.weld.util.Beans;
import org.jboss.weld.util.Proxies;
import org.jboss.weld.util.Proxies.TypeInfo;
-import org.jboss.weld.util.Reflections.HierarchyDiscovery;
+import org.jboss.weld.util.reflection.HierarchyDiscovery;
/**
* An enterprise bean representation
Modified: core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/CallableMethodHandler.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/CallableMethodHandler.java 2009-12-03 18:08:11 UTC (rev 5210)
+++ core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/CallableMethodHandler.java 2009-12-03 18:12:17 UTC (rev 5211)
@@ -18,7 +18,7 @@
import org.jboss.weld.Container;
import org.jboss.weld.NullInstanceException;
import org.jboss.weld.bootstrap.api.Service;
-import org.jboss.weld.util.Reflections;
+import org.jboss.weld.util.reflection.Reflections;
import org.slf4j.cal10n.LocLogger;
public class CallableMethodHandler implements MethodHandler, Serializable
Modified: core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/ExtensionBean.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/ExtensionBean.java 2009-12-03 18:08:11 UTC (rev 5210)
+++ core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/ExtensionBean.java 2009-12-03 18:12:17 UTC (rev 5211)
@@ -26,7 +26,7 @@
import org.jboss.weld.BeanManagerImpl;
import org.jboss.weld.introspector.WeldClass;
-import org.jboss.weld.util.Reflections;
+import org.jboss.weld.util.reflection.Reflections;
/**
* @author pmuir
Modified: core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/InstanceImpl.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/InstanceImpl.java 2009-12-03 18:08:11 UTC (rev 5210)
+++ core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/InstanceImpl.java 2009-12-03 18:12:17 UTC (rev 5211)
@@ -17,7 +17,7 @@
package org.jboss.weld.bean.builtin;
import static org.jboss.weld.logging.messages.BeanMessage.PROXY_REQUIRED;
-import static org.jboss.weld.util.Reflections.EMPTY_ANNOTATIONS;
+import static org.jboss.weld.util.reflection.Reflections.EMPTY_ANNOTATIONS;
import java.io.ObjectInputStream;
import java.io.ObjectStreamException;
Modified: core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/ee/EEResourceProducerField.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/ee/EEResourceProducerField.java 2009-12-03 18:08:11 UTC (rev 5210)
+++ core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/ee/EEResourceProducerField.java 2009-12-03 18:12:17 UTC (rev 5211)
@@ -40,8 +40,8 @@
import org.jboss.weld.persistence.PersistenceApiAbstraction;
import org.jboss.weld.serialization.spi.ContextualStore;
import org.jboss.weld.util.Proxies;
-import org.jboss.weld.util.Reflections;
import org.jboss.weld.util.Proxies.TypeInfo;
+import org.jboss.weld.util.reflection.Reflections;
import org.jboss.weld.ws.WSApiAbstraction;
/**
Modified: core/trunk/impl/src/main/java/org/jboss/weld/bean/interceptor/ClassInterceptionHandlerFactory.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/bean/interceptor/ClassInterceptionHandlerFactory.java 2009-12-03 18:08:11 UTC (rev 5210)
+++ core/trunk/impl/src/main/java/org/jboss/weld/bean/interceptor/ClassInterceptionHandlerFactory.java 2009-12-03 18:12:17 UTC (rev 5211)
@@ -26,7 +26,7 @@
import org.jboss.interceptor.proxy.DirectClassInterceptionHandler;
import org.jboss.weld.BeanManagerImpl;
import org.jboss.weld.DeploymentException;
-import org.jboss.weld.util.Reflections;
+import org.jboss.weld.util.reflection.Reflections;
/**
* @author Marius Bogoevici
Modified: core/trunk/impl/src/main/java/org/jboss/weld/bean/proxy/AbstractDecoratorMethodHandler.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/bean/proxy/AbstractDecoratorMethodHandler.java 2009-12-03 18:08:11 UTC (rev 5210)
+++ core/trunk/impl/src/main/java/org/jboss/weld/bean/proxy/AbstractDecoratorMethodHandler.java 2009-12-03 18:12:17 UTC (rev 5211)
@@ -26,7 +26,7 @@
import org.jboss.weld.injection.ParameterInjectionPoint;
import org.jboss.weld.introspector.WeldClass;
import org.jboss.weld.introspector.jlr.MethodSignatureImpl;
-import org.jboss.weld.util.Reflections;
+import org.jboss.weld.util.reflection.Reflections;
/**
* {@link MethodHandler} for Abstract decorators.
Modified: core/trunk/impl/src/main/java/org/jboss/weld/bean/proxy/ClientProxyMethodHandler.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/bean/proxy/ClientProxyMethodHandler.java 2009-12-03 18:08:11 UTC (rev 5210)
+++ core/trunk/impl/src/main/java/org/jboss/weld/bean/proxy/ClientProxyMethodHandler.java 2009-12-03 18:12:17 UTC (rev 5211)
@@ -33,7 +33,7 @@
import org.jboss.weld.Container;
import org.jboss.weld.context.WeldCreationalContext;
import org.jboss.weld.serialization.spi.ContextualStore;
-import org.jboss.weld.util.Reflections;
+import org.jboss.weld.util.reflection.Reflections;
import org.slf4j.cal10n.LocLogger;
/**
Modified: core/trunk/impl/src/main/java/org/jboss/weld/bean/proxy/DecoratorProxyMethodHandler.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/bean/proxy/DecoratorProxyMethodHandler.java 2009-12-03 18:08:11 UTC (rev 5210)
+++ core/trunk/impl/src/main/java/org/jboss/weld/bean/proxy/DecoratorProxyMethodHandler.java 2009-12-03 18:12:17 UTC (rev 5211)
@@ -17,7 +17,7 @@
package org.jboss.weld.bean.proxy;
import static org.jboss.weld.logging.messages.BeanMessage.UNEXPECTED_UNWRAPPED_CUSTOM_DECORATOR;
-import static org.jboss.weld.util.Reflections.ensureAccessible;
+import static org.jboss.weld.util.reflection.Reflections.ensureAccessible;
import java.lang.reflect.Method;
import java.util.List;
Modified: core/trunk/impl/src/main/java/org/jboss/weld/bean/proxy/EnterpriseBeanProxyMethodHandler.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/bean/proxy/EnterpriseBeanProxyMethodHandler.java 2009-12-03 18:08:11 UTC (rev 5210)
+++ core/trunk/impl/src/main/java/org/jboss/weld/bean/proxy/EnterpriseBeanProxyMethodHandler.java 2009-12-03 18:12:17 UTC (rev 5211)
@@ -36,7 +36,7 @@
import org.jboss.weld.ejb.api.SessionObjectReference;
import org.jboss.weld.introspector.MethodSignature;
import org.jboss.weld.introspector.jlr.MethodSignatureImpl;
-import org.jboss.weld.util.Reflections;
+import org.jboss.weld.util.reflection.Reflections;
import org.slf4j.cal10n.LocLogger;
/**
Modified: core/trunk/impl/src/main/java/org/jboss/weld/bootstrap/AbstractBeanDeployer.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/bootstrap/AbstractBeanDeployer.java 2009-12-03 18:08:11 UTC (rev 5210)
+++ core/trunk/impl/src/main/java/org/jboss/weld/bootstrap/AbstractBeanDeployer.java 2009-12-03 18:12:17 UTC (rev 5211)
@@ -66,7 +66,7 @@
import org.jboss.weld.jsf.JsfApiAbstraction;
import org.jboss.weld.persistence.PersistenceApiAbstraction;
import org.jboss.weld.servlet.ServletApiAbstraction;
-import org.jboss.weld.util.Reflections;
+import org.jboss.weld.util.reflection.Reflections;
import org.jboss.weld.ws.WSApiAbstraction;
import org.slf4j.cal10n.LocLogger;
Modified: core/trunk/impl/src/main/java/org/jboss/weld/event/EventImpl.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/event/EventImpl.java 2009-12-03 18:08:11 UTC (rev 5210)
+++ core/trunk/impl/src/main/java/org/jboss/weld/event/EventImpl.java 2009-12-03 18:12:17 UTC (rev 5211)
@@ -17,7 +17,7 @@
package org.jboss.weld.event;
import static org.jboss.weld.logging.messages.EventMessage.PROXY_REQUIRED;
-import static org.jboss.weld.util.Reflections.EMPTY_ANNOTATIONS;
+import static org.jboss.weld.util.reflection.Reflections.EMPTY_ANNOTATIONS;
import java.io.ObjectInputStream;
import java.io.ObjectStreamException;
Modified: core/trunk/impl/src/main/java/org/jboss/weld/introspector/jlr/AbstractWeldAnnotated.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/introspector/jlr/AbstractWeldAnnotated.java 2009-12-03 18:08:11 UTC (rev 5210)
+++ core/trunk/impl/src/main/java/org/jboss/weld/introspector/jlr/AbstractWeldAnnotated.java 2009-12-03 18:12:17 UTC (rev 5211)
@@ -28,8 +28,9 @@
import org.jboss.weld.introspector.AnnotationStore;
import org.jboss.weld.introspector.WeldAnnotated;
import org.jboss.weld.util.Proxies;
-import org.jboss.weld.util.Reflections;
import org.jboss.weld.util.collections.Arrays2;
+import org.jboss.weld.util.reflection.HierarchyDiscovery;
+import org.jboss.weld.util.reflection.Reflections;
/**
* Represents functionality common for all annotated items, mainly different
@@ -93,7 +94,7 @@
this.interfaceOnlyFlattenedTypes = new HashSet<Type>();
for (Type t : rawType.getGenericInterfaces())
{
- interfaceOnlyFlattenedTypes.addAll(new Reflections.HierarchyDiscovery(t).getTypeClosure());
+ interfaceOnlyFlattenedTypes.addAll(new HierarchyDiscovery(t).getTypeClosure());
}
this.typeClosureAsMap = Reflections.buildTypeMap(typeClosure);
this.typeClosureAsSet = typeClosure;
Modified: core/trunk/impl/src/main/java/org/jboss/weld/introspector/jlr/AbstractWeldMember.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/introspector/jlr/AbstractWeldMember.java 2009-12-03 18:08:11 UTC (rev 5210)
+++ core/trunk/impl/src/main/java/org/jboss/weld/introspector/jlr/AbstractWeldMember.java 2009-12-03 18:12:17 UTC (rev 5211)
@@ -25,7 +25,7 @@
import org.jboss.weld.introspector.ForwardingWeldMember;
import org.jboss.weld.introspector.WeldClass;
import org.jboss.weld.introspector.WeldMember;
-import org.jboss.weld.util.Reflections;
+import org.jboss.weld.util.reflection.Reflections;
/**
* Represents an abstract annotated memeber (field, method or constructor)
Modified: core/trunk/impl/src/main/java/org/jboss/weld/introspector/jlr/WeldAnnotationImpl.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/introspector/jlr/WeldAnnotationImpl.java 2009-12-03 18:08:11 UTC (rev 5210)
+++ core/trunk/impl/src/main/java/org/jboss/weld/introspector/jlr/WeldAnnotationImpl.java 2009-12-03 18:12:17 UTC (rev 5211)
@@ -31,7 +31,7 @@
import org.jboss.weld.introspector.WeldMethod;
import org.jboss.weld.resources.ClassTransformer;
import org.jboss.weld.util.Names;
-import org.jboss.weld.util.Reflections;
+import org.jboss.weld.util.reflection.HierarchyDiscovery;
import com.google.common.base.Supplier;
import com.google.common.collect.Multimaps;
@@ -75,7 +75,7 @@
*/
protected WeldAnnotationImpl(Class<T> annotationType, ClassTransformer classTransformer)
{
- super(annotationType, annotationType, null, new Reflections.HierarchyDiscovery(annotationType).getTypeClosure(), AnnotationStore.of(annotationType, classTransformer.getTypeStore().get(annotationType), classTransformer.getTypeStore().get(annotationType), classTransformer.getTypeStore()), classTransformer);
+ super(annotationType, annotationType, null, new HierarchyDiscovery(annotationType).getTypeClosure(), AnnotationStore.of(annotationType, classTransformer.getTypeStore().get(annotationType), classTransformer.getTypeStore().get(annotationType), classTransformer.getTypeStore()), classTransformer);
this.clazz = annotationType;
this.toString = "class " + Names.classToString(getDelegate());
members = new HashSet<WeldMethod<?, ?>>();
Modified: core/trunk/impl/src/main/java/org/jboss/weld/introspector/jlr/WeldClassImpl.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/introspector/jlr/WeldClassImpl.java 2009-12-03 18:08:11 UTC (rev 5210)
+++ core/trunk/impl/src/main/java/org/jboss/weld/introspector/jlr/WeldClassImpl.java 2009-12-03 18:12:17 UTC (rev 5211)
@@ -46,7 +46,8 @@
import org.jboss.weld.introspector.WeldMethod;
import org.jboss.weld.resources.ClassTransformer;
import org.jboss.weld.util.Names;
-import org.jboss.weld.util.Reflections;
+import org.jboss.weld.util.reflection.HierarchyDiscovery;
+import org.jboss.weld.util.reflection.Reflections;
import com.google.common.base.Supplier;
import com.google.common.collect.Multimaps;
@@ -130,7 +131,7 @@
public static <T> WeldClass<T> of(Class<T> clazz, ClassTransformer classTransformer)
{
AnnotationStore annotationStore = AnnotationStore.of(clazz.getAnnotations(), clazz.getDeclaredAnnotations(), classTransformer.getTypeStore());
- return new WeldClassImpl<T>(clazz, clazz, null, new Reflections.HierarchyDiscovery(clazz).getTypeClosure(), annotationStore, classTransformer);
+ return new WeldClassImpl<T>(clazz, clazz, null, new HierarchyDiscovery(clazz).getTypeClosure(), annotationStore, classTransformer);
}
public static <T> WeldClass<T> of(AnnotatedType<T> annotatedType, ClassTransformer classTransformer)
@@ -142,7 +143,7 @@
public static <T> WeldClass<T> of(Class<T> rawType, Type type, ClassTransformer classTransformer)
{
AnnotationStore annotationStore = AnnotationStore.of(rawType.getAnnotations(), rawType.getDeclaredAnnotations(), classTransformer.getTypeStore());
- return new WeldClassImpl<T>(rawType, type, null, new Reflections.HierarchyDiscovery(type).getTypeClosure(), annotationStore, classTransformer);
+ return new WeldClassImpl<T>(rawType, type, null, new HierarchyDiscovery(type).getTypeClosure(), annotationStore, classTransformer);
}
protected WeldClassImpl(Class<T> rawType, Type type, AnnotatedType<T> annotatedType, Set<Type> typeClosure, AnnotationStore annotationStore, ClassTransformer classTransformer)
Modified: core/trunk/impl/src/main/java/org/jboss/weld/introspector/jlr/WeldConstructorImpl.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/introspector/jlr/WeldConstructorImpl.java 2009-12-03 18:08:11 UTC (rev 5210)
+++ core/trunk/impl/src/main/java/org/jboss/weld/introspector/jlr/WeldConstructorImpl.java 2009-12-03 18:12:17 UTC (rev 5211)
@@ -16,7 +16,7 @@
*/
package org.jboss.weld.introspector.jlr;
-import static org.jboss.weld.util.Reflections.ensureAccessible;
+import static org.jboss.weld.util.reflection.Reflections.ensureAccessible;
import java.lang.annotation.Annotation;
import java.lang.reflect.Constructor;
@@ -40,7 +40,8 @@
import org.jboss.weld.introspector.WeldConstructor;
import org.jboss.weld.introspector.WeldParameter;
import org.jboss.weld.resources.ClassTransformer;
-import org.jboss.weld.util.Reflections;
+import org.jboss.weld.util.reflection.HierarchyDiscovery;
+import org.jboss.weld.util.reflection.Reflections;
import com.google.common.base.Supplier;
import com.google.common.collect.ListMultimap;
@@ -74,7 +75,7 @@
public static <T> WeldConstructor<T> of(Constructor<T> constructor, WeldClass<T> declaringClass, ClassTransformer classTransformer)
{
AnnotationStore annotationStore = AnnotationStore.of(constructor, classTransformer.getTypeStore());
- return new WeldConstructorImpl<T>(ensureAccessible(constructor), constructor.getDeclaringClass(), constructor.getDeclaringClass(), null, new Reflections.HierarchyDiscovery(constructor.getDeclaringClass()).getTypeClosure(), annotationStore, declaringClass, classTransformer);
+ return new WeldConstructorImpl<T>(ensureAccessible(constructor), constructor.getDeclaringClass(), constructor.getDeclaringClass(), null, new HierarchyDiscovery(constructor.getDeclaringClass()).getTypeClosure(), annotationStore, declaringClass, classTransformer);
}
public static <T> WeldConstructor<T> of(AnnotatedConstructor<T> annotatedConstructor, WeldClass<T> declaringClass, ClassTransformer classTransformer)
Modified: core/trunk/impl/src/main/java/org/jboss/weld/introspector/jlr/WeldFieldImpl.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/introspector/jlr/WeldFieldImpl.java 2009-12-03 18:08:11 UTC (rev 5210)
+++ core/trunk/impl/src/main/java/org/jboss/weld/introspector/jlr/WeldFieldImpl.java 2009-12-03 18:12:17 UTC (rev 5211)
@@ -16,7 +16,7 @@
*/
package org.jboss.weld.introspector.jlr;
-import static org.jboss.weld.util.Reflections.ensureAccessible;
+import static org.jboss.weld.util.reflection.Reflections.ensureAccessible;
import java.lang.reflect.Field;
import java.lang.reflect.Type;
@@ -28,7 +28,8 @@
import org.jboss.weld.introspector.WeldClass;
import org.jboss.weld.introspector.WeldField;
import org.jboss.weld.resources.ClassTransformer;
-import org.jboss.weld.util.Reflections;
+import org.jboss.weld.util.reflection.HierarchyDiscovery;
+import org.jboss.weld.util.reflection.Reflections;
/**
* Represents an annotated field
@@ -51,7 +52,7 @@
public static <T, X> WeldFieldImpl<T, X> of(Field field, WeldClass<X> declaringClass, ClassTransformer classTransformer)
{
AnnotationStore annotationStore = AnnotationStore.of(field, classTransformer.getTypeStore());
- return new WeldFieldImpl<T, X>(ensureAccessible(field), (Class<T>) field.getType(), field.getGenericType(), new Reflections.HierarchyDiscovery(field.getGenericType()).getTypeClosure(), annotationStore, declaringClass, classTransformer);
+ return new WeldFieldImpl<T, X>(ensureAccessible(field), (Class<T>) field.getType(), field.getGenericType(), new HierarchyDiscovery(field.getGenericType()).getTypeClosure(), annotationStore, declaringClass, classTransformer);
}
public static <T, X> WeldFieldImpl<T, X> of(AnnotatedField<? super X> annotatedField, WeldClass<X> declaringClass, ClassTransformer classTransformer)
Modified: core/trunk/impl/src/main/java/org/jboss/weld/introspector/jlr/WeldMethodImpl.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/introspector/jlr/WeldMethodImpl.java 2009-12-03 18:08:11 UTC (rev 5210)
+++ core/trunk/impl/src/main/java/org/jboss/weld/introspector/jlr/WeldMethodImpl.java 2009-12-03 18:12:17 UTC (rev 5211)
@@ -16,7 +16,7 @@
*/
package org.jboss.weld.introspector.jlr;
-import static org.jboss.weld.util.Reflections.ensureAccessible;
+import static org.jboss.weld.util.reflection.Reflections.ensureAccessible;
import java.lang.annotation.Annotation;
import java.lang.reflect.InvocationTargetException;
@@ -40,7 +40,8 @@
import org.jboss.weld.introspector.WeldMethod;
import org.jboss.weld.introspector.WeldParameter;
import org.jboss.weld.resources.ClassTransformer;
-import org.jboss.weld.util.Reflections;
+import org.jboss.weld.util.reflection.HierarchyDiscovery;
+import org.jboss.weld.util.reflection.Reflections;
import com.google.common.base.Supplier;
import com.google.common.collect.ListMultimap;
@@ -78,7 +79,7 @@
public static <T, X> WeldMethodImpl<T, X> of(Method method, WeldClass<X> declaringClass, ClassTransformer classTransformer)
{
AnnotationStore annotationStore = AnnotationStore.of(method, classTransformer.getTypeStore());
- return new WeldMethodImpl<T, X>(ensureAccessible(method), (Class<T>) method.getReturnType(), method.getGenericReturnType(), new Reflections.HierarchyDiscovery(method.getGenericReturnType()).getTypeClosure(), null, annotationStore, declaringClass, classTransformer);
+ return new WeldMethodImpl<T, X>(ensureAccessible(method), (Class<T>) method.getReturnType(), method.getGenericReturnType(), new HierarchyDiscovery(method.getGenericReturnType()).getTypeClosure(), null, annotationStore, declaringClass, classTransformer);
}
public static <T, X> WeldMethodImpl<T, X> of(AnnotatedMethod<T> method, WeldClass<X> declaringClass, ClassTransformer classTransformer)
Modified: core/trunk/impl/src/main/java/org/jboss/weld/introspector/jlr/WeldParameterImpl.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/introspector/jlr/WeldParameterImpl.java 2009-12-03 18:08:11 UTC (rev 5210)
+++ core/trunk/impl/src/main/java/org/jboss/weld/introspector/jlr/WeldParameterImpl.java 2009-12-03 18:12:17 UTC (rev 5211)
@@ -29,7 +29,7 @@
import org.jboss.weld.introspector.WeldCallable;
import org.jboss.weld.introspector.WeldParameter;
import org.jboss.weld.resources.ClassTransformer;
-import org.jboss.weld.util.Reflections;
+import org.jboss.weld.util.reflection.HierarchyDiscovery;
/**
* Represents a parameter
@@ -60,12 +60,12 @@
public static <T, X> WeldParameter<T, X> of(Annotation[] annotations, Class<T> rawType, Type type, WeldCallable<?, X, ?> declaringMember, int position, ClassTransformer classTransformer)
{
- return new WeldParameterImpl<T, X>(annotations, rawType, type, new Reflections.HierarchyDiscovery(type).getTypeClosure(), declaringMember, position, classTransformer);
+ return new WeldParameterImpl<T, X>(annotations, rawType, type, new HierarchyDiscovery(type).getTypeClosure(), declaringMember, position, classTransformer);
}
public static <T, X> WeldParameter<T, X> of(Set<Annotation> annotations, Class<T> rawType, Type type, WeldCallable<?, X, ?> declaringMember, int position, ClassTransformer classTransformer)
{
- return new WeldParameterImpl<T, X>(annotations.toArray(EMPTY_ANNOTATION_ARRAY), rawType, type, new Reflections.HierarchyDiscovery(type).getTypeClosure(), declaringMember, position, classTransformer);
+ return new WeldParameterImpl<T, X>(annotations.toArray(EMPTY_ANNOTATION_ARRAY), rawType, type, new HierarchyDiscovery(type).getTypeClosure(), declaringMember, position, classTransformer);
}
/**
Modified: core/trunk/impl/src/main/java/org/jboss/weld/jsf/JsfHelper.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/jsf/JsfHelper.java 2009-12-03 18:08:11 UTC (rev 5210)
+++ core/trunk/impl/src/main/java/org/jboss/weld/jsf/JsfHelper.java 2009-12-03 18:12:17 UTC (rev 5211)
@@ -34,7 +34,7 @@
import org.jboss.weld.ForbiddenStateException;
import org.jboss.weld.conversation.ConversationIdName;
import org.jboss.weld.servlet.ServletHelper;
-import org.jboss.weld.util.Reflections;
+import org.jboss.weld.util.reflection.Reflections;
import org.slf4j.cal10n.LocLogger;
/**
Modified: core/trunk/impl/src/main/java/org/jboss/weld/metadata/cache/BindingTypeModel.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/metadata/cache/BindingTypeModel.java 2009-12-03 18:08:11 UTC (rev 5210)
+++ core/trunk/impl/src/main/java/org/jboss/weld/metadata/cache/BindingTypeModel.java 2009-12-03 18:12:17 UTC (rev 5211)
@@ -30,8 +30,8 @@
import org.jboss.weld.WeldException;
import org.jboss.weld.introspector.WeldMethod;
import org.jboss.weld.resources.ClassTransformer;
-import org.jboss.weld.util.Reflections;
import org.jboss.weld.util.collections.Arrays2;
+import org.jboss.weld.util.reflection.Reflections;
import org.slf4j.cal10n.LocLogger;
/**
Modified: core/trunk/impl/src/main/java/org/jboss/weld/metadata/cache/InterceptorBindingModel.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/metadata/cache/InterceptorBindingModel.java 2009-12-03 18:08:11 UTC (rev 5210)
+++ core/trunk/impl/src/main/java/org/jboss/weld/metadata/cache/InterceptorBindingModel.java 2009-12-03 18:12:17 UTC (rev 5211)
@@ -37,8 +37,8 @@
import org.jboss.weld.WeldException;
import org.jboss.weld.introspector.WeldMethod;
import org.jboss.weld.resources.ClassTransformer;
-import org.jboss.weld.util.Reflections;
import org.jboss.weld.util.collections.Arrays2;
+import org.jboss.weld.util.reflection.Reflections;
import org.slf4j.cal10n.LocLogger;
/**
Modified: core/trunk/impl/src/main/java/org/jboss/weld/resolution/NewResolvableTransformer.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/resolution/NewResolvableTransformer.java 2009-12-03 18:08:11 UTC (rev 5210)
+++ core/trunk/impl/src/main/java/org/jboss/weld/resolution/NewResolvableTransformer.java 2009-12-03 18:12:17 UTC (rev 5211)
@@ -24,7 +24,7 @@
import javax.enterprise.inject.New;
import org.jboss.weld.literal.NewLiteral;
-import org.jboss.weld.util.Reflections;
+import org.jboss.weld.util.reflection.HierarchyDiscovery;
/**
* @author pmuir
@@ -86,7 +86,7 @@
else
{
final Class<?> javaClass = originalNewAnnotation.value();
- final Set<Type> typeClosure = new Reflections.HierarchyDiscovery(javaClass).getTypeClosure();
+ final Set<Type> typeClosure = new HierarchyDiscovery(javaClass).getTypeClosure();
return new ForwardingResolvable()
{
Modified: core/trunk/impl/src/main/java/org/jboss/weld/resolution/ResolvableFactory.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/resolution/ResolvableFactory.java 2009-12-03 18:08:11 UTC (rev 5210)
+++ core/trunk/impl/src/main/java/org/jboss/weld/resolution/ResolvableFactory.java 2009-12-03 18:12:17 UTC (rev 5211)
@@ -28,7 +28,7 @@
import org.jboss.weld.bean.AbstractClassBean;
import org.jboss.weld.introspector.WeldAnnotated;
import org.jboss.weld.literal.DefaultLiteral;
-import org.jboss.weld.util.Reflections;
+import org.jboss.weld.util.reflection.Reflections;
import javax.enterprise.inject.spi.InterceptionType;
Modified: core/trunk/impl/src/main/java/org/jboss/weld/resolution/ResolvableWeldClass.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/resolution/ResolvableWeldClass.java 2009-12-03 18:08:11 UTC (rev 5210)
+++ core/trunk/impl/src/main/java/org/jboss/weld/resolution/ResolvableWeldClass.java 2009-12-03 18:12:17 UTC (rev 5211)
@@ -44,7 +44,7 @@
import org.jboss.weld.introspector.jlr.AbstractWeldAnnotated;
import org.jboss.weld.metadata.TypeStore;
import org.jboss.weld.util.Names;
-import org.jboss.weld.util.Reflections;
+import org.jboss.weld.util.reflection.Reflections;
public class ResolvableWeldClass<T> extends AbstractWeldAnnotated<T, Class<T>> implements Resolvable
{
Modified: core/trunk/impl/src/main/java/org/jboss/weld/resolution/TypeSafeBeanResolver.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/resolution/TypeSafeBeanResolver.java 2009-12-03 18:08:11 UTC (rev 5210)
+++ core/trunk/impl/src/main/java/org/jboss/weld/resolution/TypeSafeBeanResolver.java 2009-12-03 18:12:17 UTC (rev 5211)
@@ -27,8 +27,8 @@
import org.jboss.weld.bean.builtin.EventBean;
import org.jboss.weld.bean.builtin.InstanceBean;
import org.jboss.weld.util.Beans;
-import org.jboss.weld.util.Reflections;
import org.jboss.weld.util.collections.ConcurrentCache;
+import org.jboss.weld.util.reflection.Reflections;
/**
* @author pmuir
Modified: core/trunk/impl/src/main/java/org/jboss/weld/resolution/TypeSafeDecoratorResolver.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/resolution/TypeSafeDecoratorResolver.java 2009-12-03 18:08:11 UTC (rev 5210)
+++ core/trunk/impl/src/main/java/org/jboss/weld/resolution/TypeSafeDecoratorResolver.java 2009-12-03 18:12:17 UTC (rev 5211)
@@ -27,7 +27,7 @@
import org.jboss.weld.BeanManagerImpl;
import org.jboss.weld.bean.DecoratorImpl;
import org.jboss.weld.util.Beans;
-import org.jboss.weld.util.Reflections;
+import org.jboss.weld.util.reflection.Reflections;
/**
* @author pmuir
Modified: core/trunk/impl/src/main/java/org/jboss/weld/resolution/TypeSafeDisposerResolver.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/resolution/TypeSafeDisposerResolver.java 2009-12-03 18:08:11 UTC (rev 5210)
+++ core/trunk/impl/src/main/java/org/jboss/weld/resolution/TypeSafeDisposerResolver.java 2009-12-03 18:12:17 UTC (rev 5211)
@@ -22,7 +22,7 @@
import org.jboss.weld.BeanManagerImpl;
import org.jboss.weld.bean.DisposalMethod;
import org.jboss.weld.util.Beans;
-import org.jboss.weld.util.Reflections;
+import org.jboss.weld.util.reflection.Reflections;
/**
* @author pmuir
Modified: core/trunk/impl/src/main/java/org/jboss/weld/resolution/TypeSafeObserverResolver.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/resolution/TypeSafeObserverResolver.java 2009-12-03 18:08:11 UTC (rev 5210)
+++ core/trunk/impl/src/main/java/org/jboss/weld/resolution/TypeSafeObserverResolver.java 2009-12-03 18:12:17 UTC (rev 5211)
@@ -23,7 +23,7 @@
import org.jboss.weld.BeanManagerImpl;
import org.jboss.weld.util.Beans;
-import org.jboss.weld.util.Reflections;
+import org.jboss.weld.util.reflection.Reflections;
/**
* @author pmuir
Modified: core/trunk/impl/src/main/java/org/jboss/weld/util/Beans.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/util/Beans.java 2009-12-03 18:08:11 UTC (rev 5210)
+++ core/trunk/impl/src/main/java/org/jboss/weld/util/Beans.java 2009-12-03 18:12:17 UTC (rev 5211)
@@ -94,6 +94,7 @@
import org.jboss.weld.metadata.cache.MergedStereotypes;
import org.jboss.weld.metadata.cache.MetaAnnotationStore;
import org.jboss.weld.persistence.PersistenceApiAbstraction;
+import org.jboss.weld.util.reflection.Reflections;
import org.slf4j.cal10n.LocLogger;
import com.google.common.base.Supplier;
Modified: core/trunk/impl/src/main/java/org/jboss/weld/util/Observers.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/util/Observers.java 2009-12-03 18:08:11 UTC (rev 5210)
+++ core/trunk/impl/src/main/java/org/jboss/weld/util/Observers.java 2009-12-03 18:12:17 UTC (rev 5211)
@@ -24,6 +24,7 @@
import java.lang.reflect.TypeVariable;
import org.jboss.weld.ForbiddenArgumentException;
+import org.jboss.weld.util.reflection.HierarchyDiscovery;
/**
* @author pmuir
@@ -35,7 +36,7 @@
public static void checkEventObjectType(Type eventType)
{
Type[] types;
- Type resolvedType = new Reflections.HierarchyDiscovery(eventType).getResolvedType();
+ Type resolvedType = new HierarchyDiscovery(eventType).getResolvedType();
if (resolvedType instanceof Class<?>)
{
types = new Type[0];
Modified: core/trunk/impl/src/main/java/org/jboss/weld/util/Proxies.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/util/Proxies.java 2009-12-03 18:08:11 UTC (rev 5210)
+++ core/trunk/impl/src/main/java/org/jboss/weld/util/Proxies.java 2009-12-03 18:12:17 UTC (rev 5211)
@@ -32,6 +32,7 @@
import javassist.util.proxy.ProxyObject;
import org.jboss.weld.ForbiddenArgumentException;
+import org.jboss.weld.util.reflection.Reflections;
/**
* Utilties for working with Javassist proxies
Deleted: core/trunk/impl/src/main/java/org/jboss/weld/util/Reflections.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/util/Reflections.java 2009-12-03 18:08:11 UTC (rev 5210)
+++ core/trunk/impl/src/main/java/org/jboss/weld/util/Reflections.java 2009-12-03 18:12:17 UTC (rev 5211)
@@ -1,1064 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jboss.weld.util;
-
-import static org.jboss.weld.logging.Category.UTIL;
-import static org.jboss.weld.logging.LoggerFactory.loggerFactory;
-import static org.jboss.weld.logging.messages.UtilMessage.ACCESS_ERROR_ON_CONSTRUCTOR;
-import static org.jboss.weld.logging.messages.UtilMessage.ACCESS_ERROR_ON_FIELD;
-import static org.jboss.weld.logging.messages.UtilMessage.ANNOTATION_VALUES_INACCESSIBLE;
-import static org.jboss.weld.logging.messages.UtilMessage.NO_SUCH_METHOD;
-import static org.jboss.weld.logging.messages.UtilMessage.SECURITY_EXCEPTION_SCANNING;
-
-import java.beans.Introspector;
-import java.io.Serializable;
-import java.lang.annotation.Annotation;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.reflect.Constructor;
-import java.lang.reflect.Field;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Member;
-import java.lang.reflect.Method;
-import java.lang.reflect.Modifier;
-import java.lang.reflect.ParameterizedType;
-import java.lang.reflect.Type;
-import java.lang.reflect.TypeVariable;
-import java.lang.reflect.WildcardType;
-import java.security.AccessControlException;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Set;
-
-import javax.inject.Qualifier;
-
-import org.jboss.weld.DeploymentException;
-import org.jboss.weld.ForbiddenArgumentException;
-import org.jboss.weld.WeldException;
-import org.jboss.weld.util.reflection.ParameterizedTypeImpl;
-import org.slf4j.cal10n.LocLogger;
-import org.slf4j.ext.XLogger;
-import org.slf4j.ext.XLogger.Level;
-
-import ch.qos.cal10n.IMessageConveyor;
-
-import com.google.common.collect.BiMap;
-import com.google.common.collect.HashBiMap;
-
-/**
- * Utility class for static reflection-type operations
- *
- * @author Pete Muir
- *
- */
-public class Reflections
-{
-
- private static final LocLogger log = loggerFactory().getLogger(UTIL);
- private static final XLogger xLog = loggerFactory().getXLogger(UTIL);
-
- // Exception messages
- private static final IMessageConveyor messageConveyer = loggerFactory().getMessageConveyor();
-
- public static final Type[] EMPTY_TYPES = {};
-
- public static final Annotation[] EMPTY_ANNOTATIONS = {};
-
- public static class HierarchyDiscovery
- {
-
- private final Type type;
-
- private BiMap<Type, Class<?>> types;
-
- public HierarchyDiscovery(Type type)
- {
- this.type = type;
- }
-
- protected void add(Class<?> clazz, Type type)
- {
- types.forcePut(type, clazz);
- }
-
- public Set<Type> getTypeClosure()
- {
- if (types == null)
- {
- init();
- }
- return types.keySet();
- }
-
- public Map<Class<?>, Type> getTypeMap()
- {
- if (types == null)
- {
- init();
- }
- return types.inverse();
- }
-
- private void init()
- {
- this.types = HashBiMap.create();
- discoverTypes(type);
- }
-
- public Type getResolvedType()
- {
- if (type instanceof Class<?>)
- {
- Class<?> clazz = (Class<?>) type;
- return resolveType(clazz);
- }
- return type;
- }
-
- private void discoverTypes(Type type)
- {
- if (type != null)
- {
- if (type instanceof Class<?>)
- {
- Class<?> clazz = (Class<?>) type;
- add(clazz, resolveType(clazz));
- discoverFromClass(clazz);
- }
- else
- {
- Class<?> clazz = null;
- if (type instanceof ParameterizedType)
- {
- Type rawType = ((ParameterizedType) type).getRawType();
- if (rawType instanceof Class<?>)
- {
- discoverFromClass((Class<?>) rawType);
- clazz = (Class<?>) rawType;
- }
- }
- add(clazz, type);
- }
- }
- }
-
- private Type resolveType(Class<?> clazz)
- {
- if (clazz.getTypeParameters().length > 0)
- {
- TypeVariable<?>[] actualTypeParameters = clazz.getTypeParameters();
- ParameterizedType parameterizedType = new ParameterizedTypeImpl(clazz, actualTypeParameters, clazz.getDeclaringClass());
- return parameterizedType;
- }
- else
- {
- return clazz;
- }
- }
-
- @SuppressWarnings("unchecked")
- private void discoverFromClass(Class<?> clazz)
- {
- try
- {
- discoverTypes(resolveType(type, clazz.getGenericSuperclass()));
- for (Type c : clazz.getGenericInterfaces())
- {
- discoverTypes(resolveType(type, c));
- }
- }
- catch (AccessControlException e)
- {
- // TODO Hmm, is this a hack?
- log.trace(SECURITY_EXCEPTION_SCANNING, clazz);
- xLog.throwing(Level.TRACE, e);
- }
- }
-
- /**
- * Gets the actual types by resolving TypeParameters.
- *
- * @param beanType
- * @param type
- * @return actual type
- */
- private Type resolveType(Type beanType, Type type)
- {
- if (type instanceof ParameterizedType)
- {
- if (beanType instanceof ParameterizedType)
- {
- return resolveParameterizedType((ParameterizedType) beanType, (ParameterizedType) type);
- }
- if (beanType instanceof Class<?>)
- {
- return resolveType(((Class<?>) beanType).getGenericSuperclass(), type);
- }
- }
-
- if (type instanceof TypeVariable<?>)
- {
- if (beanType instanceof ParameterizedType)
- {
- return resolveTypeParameter((ParameterizedType) beanType, (TypeVariable<?>) type);
- }
- if (beanType instanceof Class<?>)
- {
- return resolveType(((Class<?>) beanType).getGenericSuperclass(), type);
- }
- }
- return type;
- }
-
- private Type resolveParameterizedType(ParameterizedType beanType, ParameterizedType parameterizedType)
- {
- Type rawType = parameterizedType.getRawType();
- Type[] actualTypes = parameterizedType.getActualTypeArguments();
-
- Type resolvedRawType = resolveType(beanType, rawType);
- Type[] resolvedActualTypes = new Type[actualTypes.length];
-
- for (int i = 0; i < actualTypes.length; i++)
- {
- resolvedActualTypes[i] = resolveType(beanType, actualTypes[i]);
- }
- // reconstruct ParameterizedType by types resolved TypeVariable.
- return new ParameterizedTypeImpl(resolvedRawType, resolvedActualTypes, parameterizedType.getOwnerType());
- }
-
- private Type resolveTypeParameter(ParameterizedType beanType, TypeVariable<?> typeVariable)
- {
- // step1. raw type
- Class<?> actualType = (Class<?>) beanType.getRawType();
- TypeVariable<?>[] typeVariables = actualType.getTypeParameters();
- Type[] actualTypes = beanType.getActualTypeArguments();
- for (int i = 0; i < typeVariables.length; i++)
- {
- if (typeVariables[i].equals(typeVariable) && !actualTypes[i].equals(typeVariable))
- {
- return resolveType(type, actualTypes[i]);
- }
- }
-
- // step2. generic super class
- Type genericSuperType = actualType.getGenericSuperclass();
- Type type = resolveType(genericSuperType, typeVariable);
- if (!(type instanceof TypeVariable<?>))
- {
- return type;
- }
-
- // step3. generic interfaces
- for (Type interfaceType : actualType.getGenericInterfaces())
- {
- Type resolvedType = resolveType(interfaceType, typeVariable);
- if (!(resolvedType instanceof TypeVariable<?>))
- {
- return resolvedType;
- }
- }
-
- // don't resolve type variable
- return typeVariable;
- }
-
- }
-
- public static Map<Class<?>, Type> buildTypeMap(Set<Type> types)
- {
- Map<Class<?>, Type> map = new HashMap<Class<?>, Type>();
- for (Type type : types)
- {
- if (type instanceof Class<?>)
- {
- map.put((Class<?>) type, type);
- }
- else if (type instanceof ParameterizedType)
- {
- if (((ParameterizedType) type).getRawType() instanceof Class<?>)
- {
- map.put((Class<?>) ((ParameterizedType) type).getRawType(), type);
- }
- }
- }
- return map;
- }
-
- /**
- * Gets the property name from a getter method
- *
- * @param method The getter method
- * @return The name of the property. Returns null if method wasn't JavaBean
- * getter-styled
- */
- public static String getPropertyName(Method method)
- {
- String methodName = method.getName();
- if (methodName.matches("^(get).*") && method.getParameterTypes().length == 0)
- {
- return Introspector.decapitalize(methodName.substring(3));
- }
- else if (methodName.matches("^(is).*") && method.getParameterTypes().length == 0)
- {
- return Introspector.decapitalize(methodName.substring(2));
- }
- else
- {
- return null;
- }
-
- }
-
- /**
- * Checks if class is final
- *
- * @param clazz The class to check
- * @return True if final, false otherwise
- */
- public static boolean isFinal(Class<?> clazz)
- {
- return Modifier.isFinal(clazz.getModifiers());
- }
-
- public static int getNesting(Class<?> clazz)
- {
- if (clazz.isMemberClass() && !isStatic(clazz))
- {
- return 1 + getNesting(clazz.getDeclaringClass());
- }
- else
- {
- return 0;
- }
- }
-
- /**
- * Checks if member is final
- *
- * @param member The member to check
- * @return True if final, false otherwise
- */
- public static boolean isFinal(Member member)
- {
- return Modifier.isFinal(member.getModifiers());
- }
-
- /**
- * Checks if type or member is final
- *
- * @param type Type or member
- * @return True if final, false otherwise
- */
- public static boolean isTypeOrAnyMethodFinal(Class<?> type)
- {
- if (isFinal(type))
- {
- return true;
- }
- for (Method method : type.getDeclaredMethods())
- {
- if (isFinal(method))
- {
- return true;
- }
- }
- return false;
- }
-
- /**
- * Checks if type is primitive
- *
- * @param type Type to check
- * @return True if primitive, false otherwise
- */
- public static boolean isPrimitive(Class<?> type)
- {
- return type.isPrimitive();
- }
-
- public static boolean isPackagePrivate(int mod)
- {
- return !(Modifier.isPrivate(mod) || Modifier.isProtected(mod) || Modifier.isPublic(mod));
- }
-
- /**
- * Checks if type is static
- *
- * @param type Type to check
- * @return True if static, false otherwise
- */
- public static boolean isStatic(Class<?> type)
- {
- return Modifier.isStatic(type.getModifiers());
- }
-
- /**
- * Checks if member is static
- *
- * @param member Member to check
- * @return True if static, false otherwise
- */
- public static boolean isStatic(Member member)
- {
- return Modifier.isStatic(member.getModifiers());
- }
-
- public static boolean isTransient(Member member)
- {
- return Modifier.isTransient(member.getModifiers());
- }
-
- /**
- * Checks if clazz is abstract
- *
- * @param clazz Class to check
- * @return True if abstract, false otherwise
- */
- public static boolean isAbstract(Class<?> clazz)
- {
- return Modifier.isAbstract(clazz.getModifiers());
- }
-
- /**
- * Checks if a method is abstract
- *
- * @param method
- * @return
- */
- public static boolean isAbstract(Method method)
- {
- return Modifier.isAbstract(method.getModifiers());
- }
-
- /**
- * Gets a constructor with matching parameter types
- *
- * @param <T> The type
- * @param clazz The class
- * @param parameterTypes The parameter types
- * @return The matching constructor. Null is returned if none is found
- */
- public static <T> Constructor<T> getDeclaredConstructor(Class<T> clazz, Class<?>... parameterTypes)
- {
- try
- {
- return clazz.getDeclaredConstructor(parameterTypes);
- }
- catch (NoSuchMethodException e)
- {
- return null;
- }
- catch (Exception e)
- {
- throw new WeldException(ACCESS_ERROR_ON_CONSTRUCTOR, e, clazz);
- }
- }
-
- /**
- * Gets the actual type arguments of a class
- *
- * @param clazz The class to examine
- * @return The type arguments
- */
- public static Type[] getActualTypeArguments(Class<?> clazz)
- {
- Type type = new HierarchyDiscovery(clazz).getResolvedType();
- if (type instanceof ParameterizedType)
- {
- return ((ParameterizedType) type).getActualTypeArguments();
- }
- else
- {
- return EMPTY_TYPES;
- }
- }
-
- /**
- * Checks if raw type is array type
- *
- * @param rawType The raw type to check
- * @return True if array, false otherwise
- */
- public static boolean isArrayType(Class<?> rawType)
- {
- return rawType.isArray();
- }
-
- /**
- * Checks if type is parameterized type
- *
- * @param type The type to check
- * @return True if parameterized, false otherwise
- */
- public static boolean isParameterizedType(Class<?> type)
- {
- return type.getTypeParameters().length > 0;
- }
-
- public static boolean isParamerterizedTypeWithWildcard(Class<?> type)
- {
- if (isParameterizedType(type))
- {
- return containsWildcards(type.getTypeParameters());
- }
- else
- {
- return false;
- }
- }
-
- public static boolean containsWildcards(Type[] types)
- {
- for (Type type : types)
- {
- if (type instanceof WildcardType)
- {
- return true;
- }
- }
- return false;
- }
-
- public static Object invoke(Method method, Object instance, Object... parameters) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException
- {
- ensureAccessible(method);
- return method.invoke(instance, parameters);
- }
-
- public static Object invoke(String methodName, Object instance, Object... parameters) throws SecurityException, NoSuchMethodException, IllegalArgumentException, IllegalAccessException, InvocationTargetException
- {
- Class<?>[] parameterTypes = new Class<?>[parameters.length];
- for (int i = 0; i < parameters.length; i++)
- {
- parameterTypes[i] = parameters[i].getClass();
- }
- Method method = instance.getClass().getMethod(methodName, parameterTypes);
- return invoke(method, instance, parameters);
- }
-
-
- /**
- * Gets value of a field and wraps exceptions
- *
- * @param field The field to set on
- * @param target The instance to set on
- * @return The value to set
- */
- public static Object getAndWrap(Field field, Object target)
- {
- try
- {
- return field.get(target);
- }
- catch (IllegalArgumentException e)
- {
- throw new WeldException(ACCESS_ERROR_ON_FIELD, e, field.getName(), field.getDeclaringClass());
- }
- catch (IllegalAccessException e)
- {
- throw new WeldException(ACCESS_ERROR_ON_FIELD, e, field.getName(), field.getDeclaringClass());
- }
- }
-
- public static Object getAndWrap(String fieldName, Object target)
- {
- try
- {
- return getAndWrap(target.getClass().getField(fieldName), target);
- }
- catch (SecurityException e)
- {
- throw new WeldException(ACCESS_ERROR_ON_FIELD, e, fieldName, target.getClass());
- }
- catch (NoSuchFieldException e)
- {
- throw new WeldException(ACCESS_ERROR_ON_FIELD, e, fieldName, target.getClass());
- }
- }
-
- /**
- * Looks up a method in the type hierarchy of an instance
- *
- * @param method The method to look for
- * @param instance The instance to start from
- * @return The method found
- * @throws IllegalArgumentException if the method is not found
- */
- public static Method lookupMethod(Method method, Object instance)
- {
- try
- {
- return lookupMethod(method.getName(), method.getParameterTypes(), instance);
- }
- catch (NoSuchMethodException e)
- {
- throw new ForbiddenArgumentException(e);
- }
- }
-
- /**
- * Looks up a method in the type hierarchy of an instance
- *
- * @param method The method to look for
- * @param instance The instance to start from
- * @return the method
- * @throws NoSuchMethodException if the method is not found
- */
- public static Method lookupMethod(String methodName, Class<?>[] parameterTypes, Object instance) throws NoSuchMethodException
- {
- return lookupMethod(methodName, parameterTypes, instance.getClass());
- }
-
- private static Method lookupMethod(String methodName, Class<?>[] parameterTypes, Class<?> c) throws NoSuchMethodException
- {
- for (Class<? extends Object> clazz = c; clazz != null; clazz = clazz.getSuperclass())
- {
- for (Class<?> intf : clazz.getInterfaces())
- {
- try
- {
- return lookupMethod(methodName, parameterTypes, intf);
- }
- catch (NoSuchMethodException e)
- {
- // Expected
- }
- }
- try
- {
- Method targetMethod = clazz.getDeclaredMethod(methodName, parameterTypes);
- if (!targetMethod.isAccessible())
- {
- targetMethod.setAccessible(true);
- }
- return targetMethod;
- }
- catch (NoSuchMethodException nsme)
- {
- // Expected, nothing to see here.
- }
- }
- throw new NoSuchMethodException(messageConveyer.getMessage(NO_SUCH_METHOD, methodName + Arrays.asList(parameterTypes).toString().replace("[", "(").replace("]", ")"), c.getName()));
- }
-
- /**
- * Checks the bindingType to make sure the annotation was declared properly
- * as a binding type (annotated with @BindingType) and that it has a runtime
- * retention policy.
- *
- * @param binding The binding type to check
- * @return true only if the annotation is really a binding type
- */
- @Deprecated
- // TODO Replace usage of this with metadatacache
- public static boolean isBindings(Annotation binding)
- {
- boolean isBindingAnnotation = false;
- if (binding.annotationType().isAnnotationPresent(Qualifier.class) && binding.annotationType().isAnnotationPresent(Retention.class) && binding.annotationType().getAnnotation(Retention.class).value().equals(RetentionPolicy.RUNTIME))
- {
- isBindingAnnotation = true;
- }
- return isBindingAnnotation;
- }
-
- /**
- * Check the assignability of one type to another, taking into account the
- * actual type arguements
- *
- * @param rawType1 the raw type of the class to check
- * @param actualTypeArguments1 the actual type arguements to check, or an
- * empty array if not a parameterized type
- * @param rawType2 the raw type of the class to check
- * @param actualTypeArguments2 the actual type arguements to check, or an
- * empty array if not a parameterized type
- * @return
- */
- public static boolean isAssignableFrom(Class<?> rawType1, Type[] actualTypeArguments1, Class<?> rawType2, Type[] actualTypeArguments2)
- {
- return Types.boxedClass(rawType1).isAssignableFrom(Types.boxedClass(rawType2)) && isAssignableFrom(actualTypeArguments1, actualTypeArguments2);
- }
-
- public static boolean matches(Class<?> rawType1, Type[] actualTypeArguments1, Class<?> rawType2, Type[] actualTypeArguments2)
- {
- return Types.boxedClass(rawType1).equals(Types.boxedClass(rawType2)) && isAssignableFrom(actualTypeArguments1, actualTypeArguments2);
- }
-
- public static boolean isAssignableFrom(Type[] actualTypeArguments1, Type[] actualTypeArguments2)
- {
- for (int i = 0; i < actualTypeArguments1.length; i++)
- {
- Type type1 = actualTypeArguments1[i];
- Type type2 = Object.class;
- if (actualTypeArguments2.length > i)
- {
- type2 = actualTypeArguments2[i];
- }
- if (!isAssignableFrom(type1, type2))
- {
- return false;
- }
- }
- return true;
- }
-
- public static boolean isAssignableFrom(Type type1, Set<? extends Type> types2)
- {
- for (Type type2 : types2)
- {
- if (isAssignableFrom(type1, type2))
- {
- return true;
- }
- }
- return false;
- }
-
- public static boolean matches(Type type1, Set<? extends Type> types2)
- {
- for (Type type2 : types2)
- {
- if (matches(type1, type2))
- {
- return true;
- }
- }
- return false;
- }
-
- public static boolean isAssignableFrom(Type type1, Type[] types2)
- {
- for (Type type2 : types2)
- {
- if (isAssignableFrom(type1, type2))
- {
- return true;
- }
- }
- return false;
- }
-
- public static boolean isAssignableFrom(Type type1, Type type2)
- {
- if (type1 instanceof Class)
- {
- Class<?> clazz = (Class<?>) type1;
- if (isAssignableFrom(clazz, EMPTY_TYPES, type2))
- {
- return true;
- }
- }
- if (type1 instanceof ParameterizedType)
- {
- ParameterizedType parameterizedType1 = (ParameterizedType) type1;
- if (parameterizedType1.getRawType() instanceof Class)
- {
- if (isAssignableFrom((Class<?>) parameterizedType1.getRawType(), parameterizedType1.getActualTypeArguments(), type2))
- {
- return true;
- }
- }
- }
- if (type1 instanceof WildcardType)
- {
- WildcardType wildcardType = (WildcardType) type1;
- if (isTypeBounded(type2, wildcardType.getLowerBounds(), wildcardType.getUpperBounds()))
- {
- return true;
- }
- }
- if (type2 instanceof WildcardType)
- {
- WildcardType wildcardType = (WildcardType) type2;
- if (isTypeBounded(type1, wildcardType.getUpperBounds(), wildcardType.getLowerBounds()))
- {
- return true;
- }
- }
- if (type1 instanceof TypeVariable<?>)
- {
- TypeVariable<?> typeVariable = (TypeVariable<?>) type1;
- if (isTypeBounded(type2, EMPTY_TYPES, typeVariable.getBounds()))
- {
- return true;
- }
- }
- if (type2 instanceof TypeVariable<?>)
- {
- TypeVariable<?> typeVariable = (TypeVariable<?>) type2;
- if (isTypeBounded(type1, typeVariable.getBounds(), EMPTY_TYPES))
- {
- return true;
- }
- }
- return false;
- }
-
- public static boolean matches(Type type1, Type type2)
- {
- if (type1 instanceof Class<?>)
- {
- Class<?> clazz = (Class<?>) type1;
- if (matches(clazz, EMPTY_TYPES, type2))
- {
- return true;
- }
- }
- if (type1 instanceof ParameterizedType)
- {
- ParameterizedType parameterizedType1 = (ParameterizedType) type1;
- if (parameterizedType1.getRawType() instanceof Class)
- {
- if (matches((Class<?>) parameterizedType1.getRawType(), parameterizedType1.getActualTypeArguments(), type2))
- {
- return true;
- }
- }
- }
- if (type1 instanceof WildcardType)
- {
- WildcardType wildcardType = (WildcardType) type1;
- if (isTypeBounded(type2, wildcardType.getLowerBounds(), wildcardType.getUpperBounds()))
- {
- return true;
- }
- }
- if (type2 instanceof WildcardType)
- {
- WildcardType wildcardType = (WildcardType) type2;
- if (isTypeBounded(type1, wildcardType.getUpperBounds(), wildcardType.getLowerBounds()))
- {
- return true;
- }
- }
- if (type1 instanceof TypeVariable<?>)
- {
- TypeVariable<?> typeVariable = (TypeVariable<?>) type1;
- if (isTypeBounded(type2, EMPTY_TYPES, typeVariable.getBounds()))
- {
- return true;
- }
- }
- if (type2 instanceof TypeVariable<?>)
- {
- TypeVariable<?> typeVariable = (TypeVariable<?>) type2;
- if (isTypeBounded(type1, typeVariable.getBounds(), EMPTY_TYPES))
- {
- return true;
- }
- }
- return false;
- }
-
- public static boolean isTypeBounded(Type type, Type[] lowerBounds, Type[] upperBounds)
- {
- if (lowerBounds.length > 0)
- {
- if (!isAssignableFrom(type, lowerBounds))
- {
- return false;
- }
- }
- if (upperBounds.length > 0)
- {
- if (!isAssignableFrom(upperBounds, type))
- {
- return false;
- }
- }
- return true;
- }
-
- public static boolean isAssignableFrom(Class<?> rawType1, Type[] actualTypeArguments1, Type type2)
- {
- if (type2 instanceof ParameterizedType)
- {
- ParameterizedType parameterizedType = (ParameterizedType) type2;
- if (parameterizedType.getRawType() instanceof Class)
- {
- if (isAssignableFrom(rawType1, actualTypeArguments1, (Class<?>) parameterizedType.getRawType(), parameterizedType.getActualTypeArguments()))
- {
- return true;
- }
- }
- }
- else if (type2 instanceof Class)
- {
- Class<?> clazz = (Class<?>) type2;
- if (isAssignableFrom(rawType1, actualTypeArguments1, clazz, EMPTY_TYPES))
- {
- return true;
- }
- }
- return false;
- }
-
- public static boolean matches(Class<?> rawType1, Type[] actualTypeArguments1, Type type2)
- {
- if (type2 instanceof ParameterizedType)
- {
- ParameterizedType parameterizedType = (ParameterizedType) type2;
- if (parameterizedType.getRawType() instanceof Class<?>)
- {
- if (matches(rawType1, actualTypeArguments1, (Class<?>) parameterizedType.getRawType(), parameterizedType.getActualTypeArguments()))
- {
- return true;
- }
- }
- }
- else if (type2 instanceof Class<?>)
- {
- Class<?> clazz = (Class<?>) type2;
- if (matches(rawType1, actualTypeArguments1, clazz, EMPTY_TYPES))
- {
- return true;
- }
- }
- return false;
- }
-
- /**
- * Check the assiginability of a set of <b>flattened</b> types. This
- * algorithm will check whether any of the types1 matches a type in types2
- *
- * @param types1
- * @param types2
- * @return
- */
- public static boolean isAssignableFrom(Set<Type> types1, Set<Type> types2)
- {
- for (Type type : types1)
- {
- if (isAssignableFrom(type, types2))
- {
- return true;
- }
- }
- return false;
- }
-
- /**
- * Check whether whether any of the types1 matches a type in types2
- *
- * @param types1
- * @param types2
- * @return
- */
- public static boolean matches(Set<Type> types1, Set<Type> types2)
- {
- for (Type type : types1)
- {
- if (matches(type, types2))
- {
- return true;
- }
- }
- return false;
- }
-
- /**
- * Check the assiginability of a set of <b>flattened</b> types. This
- * algorithm will check whether any of the types1 matches a type in types2
- *
- * @param types1
- * @param types2
- * @return
- */
- public static boolean isAssignableFrom(Set<Type> types1, Type type2)
- {
- for (Type type : types1)
- {
- if (isAssignableFrom(type, type2))
- {
- return true;
- }
- }
- return false;
- }
-
- public static boolean isAssignableFrom(Type[] types1, Type type2)
- {
- for (Type type : types1)
- {
- if (isAssignableFrom(type, type2))
- {
- return true;
- }
- }
- return false;
- }
-
- public static boolean isSerializable(Class<?> clazz)
- {
- return clazz.isPrimitive() || Serializable.class.isAssignableFrom(clazz);
- }
-
- public static Field ensureAccessible(Field field)
- {
- if (!field.isAccessible() && !isIgnorePackage(field.getDeclaringClass().getPackage()))
- {
- field.setAccessible(true);
- }
- return field;
- }
-
- public static Method ensureAccessible(Method method)
- {
- if (!method.isAccessible() && !isIgnorePackage(method.getDeclaringClass().getPackage()))
- {
- method.setAccessible(true);
- }
- return method;
- }
-
- public static <T> Constructor<T> ensureAccessible(Constructor<T> constructor)
- {
- Class<?> c = constructor.getDeclaringClass();
- Package p = c.getPackage();
- if (!constructor.isAccessible() && !isIgnorePackage(p))
- {
- constructor.setAccessible(true);
- }
- return constructor;
- }
-
- private static boolean isIgnorePackage(Package pkg)
- {
- if (pkg != null)
- {
- return pkg.getName().startsWith("java.lang");
- }
- else
- {
- return false;
- }
- }
-
- public static Class<?>[] extractValues(Annotation annotation)
- {
- try
- {
- Class<?>[] valueClasses = (Class<?>[]) annotation.annotationType().getMethod("value").invoke(annotation);
- return valueClasses;
- }
- catch (Exception e)
- {
- throw new DeploymentException(ANNOTATION_VALUES_INACCESSIBLE, e);
- }
- }
-
-}
Added: core/trunk/impl/src/main/java/org/jboss/weld/util/reflection/HierarchyDiscovery.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/util/reflection/HierarchyDiscovery.java (rev 0)
+++ core/trunk/impl/src/main/java/org/jboss/weld/util/reflection/HierarchyDiscovery.java 2009-12-03 18:12:17 UTC (rev 5211)
@@ -0,0 +1,218 @@
+/**
+ *
+ */
+package org.jboss.weld.util.reflection;
+
+import static org.jboss.weld.logging.messages.UtilMessage.SECURITY_EXCEPTION_SCANNING;
+
+import java.lang.reflect.ParameterizedType;
+import java.lang.reflect.Type;
+import java.lang.reflect.TypeVariable;
+import java.security.AccessControlException;
+import java.util.Map;
+import java.util.Set;
+
+import org.slf4j.ext.XLogger.Level;
+
+import com.google.common.collect.BiMap;
+import com.google.common.collect.HashBiMap;
+
+public class HierarchyDiscovery
+{
+
+ private final Type type;
+
+ private BiMap<Type, Class<?>> types;
+
+ public HierarchyDiscovery(Type type)
+ {
+ this.type = type;
+ }
+
+ protected void add(Class<?> clazz, Type type)
+ {
+ types.forcePut(type, clazz);
+ }
+
+ public Set<Type> getTypeClosure()
+ {
+ if (types == null)
+ {
+ init();
+ }
+ return types.keySet();
+ }
+
+ public Map<Class<?>, Type> getTypeMap()
+ {
+ if (types == null)
+ {
+ init();
+ }
+ return types.inverse();
+ }
+
+ private void init()
+ {
+ this.types = HashBiMap.create();
+ discoverTypes(type);
+ }
+
+ public Type getResolvedType()
+ {
+ if (type instanceof Class<?>)
+ {
+ Class<?> clazz = (Class<?>) type;
+ return resolveType(clazz);
+ }
+ return type;
+ }
+
+ private void discoverTypes(Type type)
+ {
+ if (type != null)
+ {
+ if (type instanceof Class<?>)
+ {
+ Class<?> clazz = (Class<?>) type;
+ add(clazz, resolveType(clazz));
+ discoverFromClass(clazz);
+ }
+ else
+ {
+ Class<?> clazz = null;
+ if (type instanceof ParameterizedType)
+ {
+ Type rawType = ((ParameterizedType) type).getRawType();
+ if (rawType instanceof Class<?>)
+ {
+ discoverFromClass((Class<?>) rawType);
+ clazz = (Class<?>) rawType;
+ }
+ }
+ add(clazz, type);
+ }
+ }
+ }
+
+ private Type resolveType(Class<?> clazz)
+ {
+ if (clazz.getTypeParameters().length > 0)
+ {
+ TypeVariable<?>[] actualTypeParameters = clazz.getTypeParameters();
+ ParameterizedType parameterizedType = new ParameterizedTypeImpl(clazz, actualTypeParameters, clazz.getDeclaringClass());
+ return parameterizedType;
+ }
+ else
+ {
+ return clazz;
+ }
+ }
+
+ @SuppressWarnings("unchecked")
+ private void discoverFromClass(Class<?> clazz)
+ {
+ try
+ {
+ discoverTypes(resolveType(type, clazz.getGenericSuperclass()));
+ for (Type c : clazz.getGenericInterfaces())
+ {
+ discoverTypes(resolveType(type, c));
+ }
+ }
+ catch (AccessControlException e)
+ {
+ // TODO Hmm, is this a hack?
+ Reflections.log.trace(SECURITY_EXCEPTION_SCANNING, clazz);
+ Reflections.xLog.throwing(Level.TRACE, e);
+ }
+ }
+
+ /**
+ * Gets the actual types by resolving TypeParameters.
+ *
+ * @param beanType
+ * @param type
+ * @return actual type
+ */
+ private Type resolveType(Type beanType, Type type)
+ {
+ if (type instanceof ParameterizedType)
+ {
+ if (beanType instanceof ParameterizedType)
+ {
+ return resolveParameterizedType((ParameterizedType) beanType, (ParameterizedType) type);
+ }
+ if (beanType instanceof Class<?>)
+ {
+ return resolveType(((Class<?>) beanType).getGenericSuperclass(), type);
+ }
+ }
+
+ if (type instanceof TypeVariable<?>)
+ {
+ if (beanType instanceof ParameterizedType)
+ {
+ return resolveTypeParameter((ParameterizedType) beanType, (TypeVariable<?>) type);
+ }
+ if (beanType instanceof Class<?>)
+ {
+ return resolveType(((Class<?>) beanType).getGenericSuperclass(), type);
+ }
+ }
+ return type;
+ }
+
+ private Type resolveParameterizedType(ParameterizedType beanType, ParameterizedType parameterizedType)
+ {
+ Type rawType = parameterizedType.getRawType();
+ Type[] actualTypes = parameterizedType.getActualTypeArguments();
+
+ Type resolvedRawType = resolveType(beanType, rawType);
+ Type[] resolvedActualTypes = new Type[actualTypes.length];
+
+ for (int i = 0; i < actualTypes.length; i++)
+ {
+ resolvedActualTypes[i] = resolveType(beanType, actualTypes[i]);
+ }
+ // reconstruct ParameterizedType by types resolved TypeVariable.
+ return new ParameterizedTypeImpl(resolvedRawType, resolvedActualTypes, parameterizedType.getOwnerType());
+ }
+
+ private Type resolveTypeParameter(ParameterizedType beanType, TypeVariable<?> typeVariable)
+ {
+ // step1. raw type
+ Class<?> actualType = (Class<?>) beanType.getRawType();
+ TypeVariable<?>[] typeVariables = actualType.getTypeParameters();
+ Type[] actualTypes = beanType.getActualTypeArguments();
+ for (int i = 0; i < typeVariables.length; i++)
+ {
+ if (typeVariables[i].equals(typeVariable) && !actualTypes[i].equals(typeVariable))
+ {
+ return resolveType(type, actualTypes[i]);
+ }
+ }
+
+ // step2. generic super class
+ Type genericSuperType = actualType.getGenericSuperclass();
+ Type type = resolveType(genericSuperType, typeVariable);
+ if (!(type instanceof TypeVariable<?>))
+ {
+ return type;
+ }
+
+ // step3. generic interfaces
+ for (Type interfaceType : actualType.getGenericInterfaces())
+ {
+ Type resolvedType = resolveType(interfaceType, typeVariable);
+ if (!(resolvedType instanceof TypeVariable<?>))
+ {
+ return resolvedType;
+ }
+ }
+
+ // don't resolve type variable
+ return typeVariable;
+ }
+
+}
\ No newline at end of file
Property changes on: core/trunk/impl/src/main/java/org/jboss/weld/util/reflection/HierarchyDiscovery.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Name: svn:eol-style
+ native
Copied: core/trunk/impl/src/main/java/org/jboss/weld/util/reflection/Reflections.java (from rev 5210, core/trunk/impl/src/main/java/org/jboss/weld/util/Reflections.java)
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/util/reflection/Reflections.java (rev 0)
+++ core/trunk/impl/src/main/java/org/jboss/weld/util/reflection/Reflections.java 2009-12-03 18:12:17 UTC (rev 5211)
@@ -0,0 +1,859 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.weld.util.reflection;
+
+import static org.jboss.weld.logging.Category.UTIL;
+import static org.jboss.weld.logging.LoggerFactory.loggerFactory;
+import static org.jboss.weld.logging.messages.UtilMessage.ACCESS_ERROR_ON_CONSTRUCTOR;
+import static org.jboss.weld.logging.messages.UtilMessage.ACCESS_ERROR_ON_FIELD;
+import static org.jboss.weld.logging.messages.UtilMessage.ANNOTATION_VALUES_INACCESSIBLE;
+import static org.jboss.weld.logging.messages.UtilMessage.NO_SUCH_METHOD;
+
+import java.beans.Introspector;
+import java.io.Serializable;
+import java.lang.annotation.Annotation;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.Field;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Member;
+import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
+import java.lang.reflect.ParameterizedType;
+import java.lang.reflect.Type;
+import java.lang.reflect.TypeVariable;
+import java.lang.reflect.WildcardType;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+
+import javax.inject.Qualifier;
+
+import org.jboss.weld.DeploymentException;
+import org.jboss.weld.ForbiddenArgumentException;
+import org.jboss.weld.WeldException;
+import org.jboss.weld.util.Types;
+import org.slf4j.cal10n.LocLogger;
+import org.slf4j.ext.XLogger;
+
+import ch.qos.cal10n.IMessageConveyor;
+
+
+/**
+ * Utility class for static reflection-type operations
+ *
+ * @author Pete Muir
+ *
+ */
+public class Reflections
+{
+
+ static final LocLogger log = loggerFactory().getLogger(UTIL);
+ static final XLogger xLog = loggerFactory().getXLogger(UTIL);
+
+ // Exception messages
+ private static final IMessageConveyor messageConveyer = loggerFactory().getMessageConveyor();
+
+ public static final Type[] EMPTY_TYPES = {};
+
+ public static final Annotation[] EMPTY_ANNOTATIONS = {};
+
+ public static Map<Class<?>, Type> buildTypeMap(Set<Type> types)
+ {
+ Map<Class<?>, Type> map = new HashMap<Class<?>, Type>();
+ for (Type type : types)
+ {
+ if (type instanceof Class<?>)
+ {
+ map.put((Class<?>) type, type);
+ }
+ else if (type instanceof ParameterizedType)
+ {
+ if (((ParameterizedType) type).getRawType() instanceof Class<?>)
+ {
+ map.put((Class<?>) ((ParameterizedType) type).getRawType(), type);
+ }
+ }
+ }
+ return map;
+ }
+
+ /**
+ * Gets the property name from a getter method
+ *
+ * @param method The getter method
+ * @return The name of the property. Returns null if method wasn't JavaBean
+ * getter-styled
+ */
+ public static String getPropertyName(Method method)
+ {
+ String methodName = method.getName();
+ if (methodName.matches("^(get).*") && method.getParameterTypes().length == 0)
+ {
+ return Introspector.decapitalize(methodName.substring(3));
+ }
+ else if (methodName.matches("^(is).*") && method.getParameterTypes().length == 0)
+ {
+ return Introspector.decapitalize(methodName.substring(2));
+ }
+ else
+ {
+ return null;
+ }
+
+ }
+
+ /**
+ * Checks if class is final
+ *
+ * @param clazz The class to check
+ * @return True if final, false otherwise
+ */
+ public static boolean isFinal(Class<?> clazz)
+ {
+ return Modifier.isFinal(clazz.getModifiers());
+ }
+
+ public static int getNesting(Class<?> clazz)
+ {
+ if (clazz.isMemberClass() && !isStatic(clazz))
+ {
+ return 1 + getNesting(clazz.getDeclaringClass());
+ }
+ else
+ {
+ return 0;
+ }
+ }
+
+ /**
+ * Checks if member is final
+ *
+ * @param member The member to check
+ * @return True if final, false otherwise
+ */
+ public static boolean isFinal(Member member)
+ {
+ return Modifier.isFinal(member.getModifiers());
+ }
+
+ /**
+ * Checks if type or member is final
+ *
+ * @param type Type or member
+ * @return True if final, false otherwise
+ */
+ public static boolean isTypeOrAnyMethodFinal(Class<?> type)
+ {
+ if (isFinal(type))
+ {
+ return true;
+ }
+ for (Method method : type.getDeclaredMethods())
+ {
+ if (isFinal(method))
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Checks if type is primitive
+ *
+ * @param type Type to check
+ * @return True if primitive, false otherwise
+ */
+ public static boolean isPrimitive(Class<?> type)
+ {
+ return type.isPrimitive();
+ }
+
+ public static boolean isPackagePrivate(int mod)
+ {
+ return !(Modifier.isPrivate(mod) || Modifier.isProtected(mod) || Modifier.isPublic(mod));
+ }
+
+ /**
+ * Checks if type is static
+ *
+ * @param type Type to check
+ * @return True if static, false otherwise
+ */
+ public static boolean isStatic(Class<?> type)
+ {
+ return Modifier.isStatic(type.getModifiers());
+ }
+
+ /**
+ * Checks if member is static
+ *
+ * @param member Member to check
+ * @return True if static, false otherwise
+ */
+ public static boolean isStatic(Member member)
+ {
+ return Modifier.isStatic(member.getModifiers());
+ }
+
+ public static boolean isTransient(Member member)
+ {
+ return Modifier.isTransient(member.getModifiers());
+ }
+
+ /**
+ * Checks if clazz is abstract
+ *
+ * @param clazz Class to check
+ * @return True if abstract, false otherwise
+ */
+ public static boolean isAbstract(Class<?> clazz)
+ {
+ return Modifier.isAbstract(clazz.getModifiers());
+ }
+
+ /**
+ * Checks if a method is abstract
+ *
+ * @param method
+ * @return
+ */
+ public static boolean isAbstract(Method method)
+ {
+ return Modifier.isAbstract(method.getModifiers());
+ }
+
+ /**
+ * Gets a constructor with matching parameter types
+ *
+ * @param <T> The type
+ * @param clazz The class
+ * @param parameterTypes The parameter types
+ * @return The matching constructor. Null is returned if none is found
+ */
+ public static <T> Constructor<T> getDeclaredConstructor(Class<T> clazz, Class<?>... parameterTypes)
+ {
+ try
+ {
+ return clazz.getDeclaredConstructor(parameterTypes);
+ }
+ catch (NoSuchMethodException e)
+ {
+ return null;
+ }
+ catch (Exception e)
+ {
+ throw new WeldException(ACCESS_ERROR_ON_CONSTRUCTOR, e, clazz);
+ }
+ }
+
+ /**
+ * Gets the actual type arguments of a class
+ *
+ * @param clazz The class to examine
+ * @return The type arguments
+ */
+ public static Type[] getActualTypeArguments(Class<?> clazz)
+ {
+ Type type = new HierarchyDiscovery(clazz).getResolvedType();
+ if (type instanceof ParameterizedType)
+ {
+ return ((ParameterizedType) type).getActualTypeArguments();
+ }
+ else
+ {
+ return EMPTY_TYPES;
+ }
+ }
+
+ /**
+ * Checks if raw type is array type
+ *
+ * @param rawType The raw type to check
+ * @return True if array, false otherwise
+ */
+ public static boolean isArrayType(Class<?> rawType)
+ {
+ return rawType.isArray();
+ }
+
+ /**
+ * Checks if type is parameterized type
+ *
+ * @param type The type to check
+ * @return True if parameterized, false otherwise
+ */
+ public static boolean isParameterizedType(Class<?> type)
+ {
+ return type.getTypeParameters().length > 0;
+ }
+
+ public static boolean isParamerterizedTypeWithWildcard(Class<?> type)
+ {
+ if (isParameterizedType(type))
+ {
+ return containsWildcards(type.getTypeParameters());
+ }
+ else
+ {
+ return false;
+ }
+ }
+
+ public static boolean containsWildcards(Type[] types)
+ {
+ for (Type type : types)
+ {
+ if (type instanceof WildcardType)
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public static Object invoke(Method method, Object instance, Object... parameters) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException
+ {
+ ensureAccessible(method);
+ return method.invoke(instance, parameters);
+ }
+
+ public static Object invoke(String methodName, Object instance, Object... parameters) throws SecurityException, NoSuchMethodException, IllegalArgumentException, IllegalAccessException, InvocationTargetException
+ {
+ Class<?>[] parameterTypes = new Class<?>[parameters.length];
+ for (int i = 0; i < parameters.length; i++)
+ {
+ parameterTypes[i] = parameters[i].getClass();
+ }
+ Method method = instance.getClass().getMethod(methodName, parameterTypes);
+ return invoke(method, instance, parameters);
+ }
+
+
+ /**
+ * Gets value of a field and wraps exceptions
+ *
+ * @param field The field to set on
+ * @param target The instance to set on
+ * @return The value to set
+ */
+ public static Object getAndWrap(Field field, Object target)
+ {
+ try
+ {
+ return field.get(target);
+ }
+ catch (IllegalArgumentException e)
+ {
+ throw new WeldException(ACCESS_ERROR_ON_FIELD, e, field.getName(), field.getDeclaringClass());
+ }
+ catch (IllegalAccessException e)
+ {
+ throw new WeldException(ACCESS_ERROR_ON_FIELD, e, field.getName(), field.getDeclaringClass());
+ }
+ }
+
+ public static Object getAndWrap(String fieldName, Object target)
+ {
+ try
+ {
+ return getAndWrap(target.getClass().getField(fieldName), target);
+ }
+ catch (SecurityException e)
+ {
+ throw new WeldException(ACCESS_ERROR_ON_FIELD, e, fieldName, target.getClass());
+ }
+ catch (NoSuchFieldException e)
+ {
+ throw new WeldException(ACCESS_ERROR_ON_FIELD, e, fieldName, target.getClass());
+ }
+ }
+
+ /**
+ * Looks up a method in the type hierarchy of an instance
+ *
+ * @param method The method to look for
+ * @param instance The instance to start from
+ * @return The method found
+ * @throws IllegalArgumentException if the method is not found
+ */
+ public static Method lookupMethod(Method method, Object instance)
+ {
+ try
+ {
+ return lookupMethod(method.getName(), method.getParameterTypes(), instance);
+ }
+ catch (NoSuchMethodException e)
+ {
+ throw new ForbiddenArgumentException(e);
+ }
+ }
+
+ /**
+ * Looks up a method in the type hierarchy of an instance
+ *
+ * @param method The method to look for
+ * @param instance The instance to start from
+ * @return the method
+ * @throws NoSuchMethodException if the method is not found
+ */
+ public static Method lookupMethod(String methodName, Class<?>[] parameterTypes, Object instance) throws NoSuchMethodException
+ {
+ return lookupMethod(methodName, parameterTypes, instance.getClass());
+ }
+
+ private static Method lookupMethod(String methodName, Class<?>[] parameterTypes, Class<?> c) throws NoSuchMethodException
+ {
+ for (Class<? extends Object> clazz = c; clazz != null; clazz = clazz.getSuperclass())
+ {
+ for (Class<?> intf : clazz.getInterfaces())
+ {
+ try
+ {
+ return lookupMethod(methodName, parameterTypes, intf);
+ }
+ catch (NoSuchMethodException e)
+ {
+ // Expected
+ }
+ }
+ try
+ {
+ Method targetMethod = clazz.getDeclaredMethod(methodName, parameterTypes);
+ if (!targetMethod.isAccessible())
+ {
+ targetMethod.setAccessible(true);
+ }
+ return targetMethod;
+ }
+ catch (NoSuchMethodException nsme)
+ {
+ // Expected, nothing to see here.
+ }
+ }
+ throw new NoSuchMethodException(messageConveyer.getMessage(NO_SUCH_METHOD, methodName + Arrays.asList(parameterTypes).toString().replace("[", "(").replace("]", ")"), c.getName()));
+ }
+
+ /**
+ * Checks the bindingType to make sure the annotation was declared properly
+ * as a binding type (annotated with @BindingType) and that it has a runtime
+ * retention policy.
+ *
+ * @param binding The binding type to check
+ * @return true only if the annotation is really a binding type
+ */
+ @Deprecated
+ // TODO Replace usage of this with metadatacache
+ public static boolean isBindings(Annotation binding)
+ {
+ boolean isBindingAnnotation = false;
+ if (binding.annotationType().isAnnotationPresent(Qualifier.class) && binding.annotationType().isAnnotationPresent(Retention.class) && binding.annotationType().getAnnotation(Retention.class).value().equals(RetentionPolicy.RUNTIME))
+ {
+ isBindingAnnotation = true;
+ }
+ return isBindingAnnotation;
+ }
+
+ /**
+ * Check the assignability of one type to another, taking into account the
+ * actual type arguements
+ *
+ * @param rawType1 the raw type of the class to check
+ * @param actualTypeArguments1 the actual type arguements to check, or an
+ * empty array if not a parameterized type
+ * @param rawType2 the raw type of the class to check
+ * @param actualTypeArguments2 the actual type arguements to check, or an
+ * empty array if not a parameterized type
+ * @return
+ */
+ public static boolean isAssignableFrom(Class<?> rawType1, Type[] actualTypeArguments1, Class<?> rawType2, Type[] actualTypeArguments2)
+ {
+ return Types.boxedClass(rawType1).isAssignableFrom(Types.boxedClass(rawType2)) && isAssignableFrom(actualTypeArguments1, actualTypeArguments2);
+ }
+
+ public static boolean matches(Class<?> rawType1, Type[] actualTypeArguments1, Class<?> rawType2, Type[] actualTypeArguments2)
+ {
+ return Types.boxedClass(rawType1).equals(Types.boxedClass(rawType2)) && isAssignableFrom(actualTypeArguments1, actualTypeArguments2);
+ }
+
+ public static boolean isAssignableFrom(Type[] actualTypeArguments1, Type[] actualTypeArguments2)
+ {
+ for (int i = 0; i < actualTypeArguments1.length; i++)
+ {
+ Type type1 = actualTypeArguments1[i];
+ Type type2 = Object.class;
+ if (actualTypeArguments2.length > i)
+ {
+ type2 = actualTypeArguments2[i];
+ }
+ if (!isAssignableFrom(type1, type2))
+ {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ public static boolean isAssignableFrom(Type type1, Set<? extends Type> types2)
+ {
+ for (Type type2 : types2)
+ {
+ if (isAssignableFrom(type1, type2))
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public static boolean matches(Type type1, Set<? extends Type> types2)
+ {
+ for (Type type2 : types2)
+ {
+ if (matches(type1, type2))
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public static boolean isAssignableFrom(Type type1, Type[] types2)
+ {
+ for (Type type2 : types2)
+ {
+ if (isAssignableFrom(type1, type2))
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public static boolean isAssignableFrom(Type type1, Type type2)
+ {
+ if (type1 instanceof Class)
+ {
+ Class<?> clazz = (Class<?>) type1;
+ if (isAssignableFrom(clazz, EMPTY_TYPES, type2))
+ {
+ return true;
+ }
+ }
+ if (type1 instanceof ParameterizedType)
+ {
+ ParameterizedType parameterizedType1 = (ParameterizedType) type1;
+ if (parameterizedType1.getRawType() instanceof Class)
+ {
+ if (isAssignableFrom((Class<?>) parameterizedType1.getRawType(), parameterizedType1.getActualTypeArguments(), type2))
+ {
+ return true;
+ }
+ }
+ }
+ if (type1 instanceof WildcardType)
+ {
+ WildcardType wildcardType = (WildcardType) type1;
+ if (isTypeBounded(type2, wildcardType.getLowerBounds(), wildcardType.getUpperBounds()))
+ {
+ return true;
+ }
+ }
+ if (type2 instanceof WildcardType)
+ {
+ WildcardType wildcardType = (WildcardType) type2;
+ if (isTypeBounded(type1, wildcardType.getUpperBounds(), wildcardType.getLowerBounds()))
+ {
+ return true;
+ }
+ }
+ if (type1 instanceof TypeVariable<?>)
+ {
+ TypeVariable<?> typeVariable = (TypeVariable<?>) type1;
+ if (isTypeBounded(type2, EMPTY_TYPES, typeVariable.getBounds()))
+ {
+ return true;
+ }
+ }
+ if (type2 instanceof TypeVariable<?>)
+ {
+ TypeVariable<?> typeVariable = (TypeVariable<?>) type2;
+ if (isTypeBounded(type1, typeVariable.getBounds(), EMPTY_TYPES))
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public static boolean matches(Type type1, Type type2)
+ {
+ if (type1 instanceof Class<?>)
+ {
+ Class<?> clazz = (Class<?>) type1;
+ if (matches(clazz, EMPTY_TYPES, type2))
+ {
+ return true;
+ }
+ }
+ if (type1 instanceof ParameterizedType)
+ {
+ ParameterizedType parameterizedType1 = (ParameterizedType) type1;
+ if (parameterizedType1.getRawType() instanceof Class)
+ {
+ if (matches((Class<?>) parameterizedType1.getRawType(), parameterizedType1.getActualTypeArguments(), type2))
+ {
+ return true;
+ }
+ }
+ }
+ if (type1 instanceof WildcardType)
+ {
+ WildcardType wildcardType = (WildcardType) type1;
+ if (isTypeBounded(type2, wildcardType.getLowerBounds(), wildcardType.getUpperBounds()))
+ {
+ return true;
+ }
+ }
+ if (type2 instanceof WildcardType)
+ {
+ WildcardType wildcardType = (WildcardType) type2;
+ if (isTypeBounded(type1, wildcardType.getUpperBounds(), wildcardType.getLowerBounds()))
+ {
+ return true;
+ }
+ }
+ if (type1 instanceof TypeVariable<?>)
+ {
+ TypeVariable<?> typeVariable = (TypeVariable<?>) type1;
+ if (isTypeBounded(type2, EMPTY_TYPES, typeVariable.getBounds()))
+ {
+ return true;
+ }
+ }
+ if (type2 instanceof TypeVariable<?>)
+ {
+ TypeVariable<?> typeVariable = (TypeVariable<?>) type2;
+ if (isTypeBounded(type1, typeVariable.getBounds(), EMPTY_TYPES))
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public static boolean isTypeBounded(Type type, Type[] lowerBounds, Type[] upperBounds)
+ {
+ if (lowerBounds.length > 0)
+ {
+ if (!isAssignableFrom(type, lowerBounds))
+ {
+ return false;
+ }
+ }
+ if (upperBounds.length > 0)
+ {
+ if (!isAssignableFrom(upperBounds, type))
+ {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ public static boolean isAssignableFrom(Class<?> rawType1, Type[] actualTypeArguments1, Type type2)
+ {
+ if (type2 instanceof ParameterizedType)
+ {
+ ParameterizedType parameterizedType = (ParameterizedType) type2;
+ if (parameterizedType.getRawType() instanceof Class)
+ {
+ if (isAssignableFrom(rawType1, actualTypeArguments1, (Class<?>) parameterizedType.getRawType(), parameterizedType.getActualTypeArguments()))
+ {
+ return true;
+ }
+ }
+ }
+ else if (type2 instanceof Class)
+ {
+ Class<?> clazz = (Class<?>) type2;
+ if (isAssignableFrom(rawType1, actualTypeArguments1, clazz, EMPTY_TYPES))
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public static boolean matches(Class<?> rawType1, Type[] actualTypeArguments1, Type type2)
+ {
+ if (type2 instanceof ParameterizedType)
+ {
+ ParameterizedType parameterizedType = (ParameterizedType) type2;
+ if (parameterizedType.getRawType() instanceof Class<?>)
+ {
+ if (matches(rawType1, actualTypeArguments1, (Class<?>) parameterizedType.getRawType(), parameterizedType.getActualTypeArguments()))
+ {
+ return true;
+ }
+ }
+ }
+ else if (type2 instanceof Class<?>)
+ {
+ Class<?> clazz = (Class<?>) type2;
+ if (matches(rawType1, actualTypeArguments1, clazz, EMPTY_TYPES))
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Check the assiginability of a set of <b>flattened</b> types. This
+ * algorithm will check whether any of the types1 matches a type in types2
+ *
+ * @param types1
+ * @param types2
+ * @return
+ */
+ public static boolean isAssignableFrom(Set<Type> types1, Set<Type> types2)
+ {
+ for (Type type : types1)
+ {
+ if (isAssignableFrom(type, types2))
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Check whether whether any of the types1 matches a type in types2
+ *
+ * @param types1
+ * @param types2
+ * @return
+ */
+ public static boolean matches(Set<Type> types1, Set<Type> types2)
+ {
+ for (Type type : types1)
+ {
+ if (matches(type, types2))
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Check the assiginability of a set of <b>flattened</b> types. This
+ * algorithm will check whether any of the types1 matches a type in types2
+ *
+ * @param types1
+ * @param types2
+ * @return
+ */
+ public static boolean isAssignableFrom(Set<Type> types1, Type type2)
+ {
+ for (Type type : types1)
+ {
+ if (isAssignableFrom(type, type2))
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public static boolean isAssignableFrom(Type[] types1, Type type2)
+ {
+ for (Type type : types1)
+ {
+ if (isAssignableFrom(type, type2))
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public static boolean isSerializable(Class<?> clazz)
+ {
+ return clazz.isPrimitive() || Serializable.class.isAssignableFrom(clazz);
+ }
+
+ public static Field ensureAccessible(Field field)
+ {
+ if (!field.isAccessible() && !isIgnorePackage(field.getDeclaringClass().getPackage()))
+ {
+ field.setAccessible(true);
+ }
+ return field;
+ }
+
+ public static Method ensureAccessible(Method method)
+ {
+ if (!method.isAccessible() && !isIgnorePackage(method.getDeclaringClass().getPackage()))
+ {
+ method.setAccessible(true);
+ }
+ return method;
+ }
+
+ public static <T> Constructor<T> ensureAccessible(Constructor<T> constructor)
+ {
+ Class<?> c = constructor.getDeclaringClass();
+ Package p = c.getPackage();
+ if (!constructor.isAccessible() && !isIgnorePackage(p))
+ {
+ constructor.setAccessible(true);
+ }
+ return constructor;
+ }
+
+ private static boolean isIgnorePackage(Package pkg)
+ {
+ if (pkg != null)
+ {
+ return pkg.getName().startsWith("java.lang");
+ }
+ else
+ {
+ return false;
+ }
+ }
+
+ public static Class<?>[] extractValues(Annotation annotation)
+ {
+ try
+ {
+ Class<?>[] valueClasses = (Class<?>[]) annotation.annotationType().getMethod("value").invoke(annotation);
+ return valueClasses;
+ }
+ catch (Exception e)
+ {
+ throw new DeploymentException(ANNOTATION_VALUES_INACCESSIBLE, e);
+ }
+ }
+
+}
Property changes on: core/trunk/impl/src/main/java/org/jboss/weld/util/reflection/Reflections.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Name: svn:eol-style
+ native
Modified: core/trunk/impl/src/main/java/org/jboss/weld/util/serviceProvider/DefaultServiceLoader.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/util/serviceProvider/DefaultServiceLoader.java 2009-12-03 18:08:11 UTC (rev 5210)
+++ core/trunk/impl/src/main/java/org/jboss/weld/util/serviceProvider/DefaultServiceLoader.java 2009-12-03 18:12:17 UTC (rev 5211)
@@ -31,7 +31,7 @@
import org.jboss.weld.ForbiddenStateException;
import org.jboss.weld.InvalidOperationException;
-import org.jboss.weld.util.Reflections;
+import org.jboss.weld.util.reflection.Reflections;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.slf4j.ext.XLogger;
15 years, 3 months
Weld SVN: r5210 - in core/trunk: impl/src/main/java/org/jboss/weld/util and 2 other directories.
by weld-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2009-12-03 13:08:11 -0500 (Thu, 03 Dec 2009)
New Revision: 5210
Added:
core/trunk/tests/src/test/java/org/jboss/weld/tests/enterprise/Animal.java
core/trunk/tests/src/test/java/org/jboss/weld/tests/enterprise/Dog.java
core/trunk/tests/src/test/java/org/jboss/weld/tests/enterprise/DogBean.java
core/trunk/tests/src/test/java/org/jboss/weld/tests/enterprise/EnterpriseBeanDefinitionTest.java
Modified:
core/trunk/impl/src/main/java/org/jboss/weld/bean/AbstractBean.java
core/trunk/impl/src/main/java/org/jboss/weld/bean/SessionBean.java
core/trunk/impl/src/main/java/org/jboss/weld/util/Reflections.java
core/trunk/tests/src/main/java/org/jboss/weld/test/AbstractWeldTest.java
core/trunk/tests/src/test/java/org/jboss/weld/tests/enterprise/EnterpriseBeanTest.java
Log:
WELD-305
Modified: core/trunk/impl/src/main/java/org/jboss/weld/bean/AbstractBean.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/bean/AbstractBean.java 2009-12-03 16:28:16 UTC (rev 5209)
+++ core/trunk/impl/src/main/java/org/jboss/weld/bean/AbstractBean.java 2009-12-03 18:08:11 UTC (rev 5210)
@@ -199,7 +199,7 @@
}
else
{
- this.types = getAnnotatedItem().getTypeClosure();
+ this.types = new HashSet<Type>(getAnnotatedItem().getTypeClosure());
if (getType().isInterface())
{
this.types.add(Object.class);
Modified: core/trunk/impl/src/main/java/org/jboss/weld/bean/SessionBean.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/bean/SessionBean.java 2009-12-03 16:28:16 UTC (rev 5209)
+++ core/trunk/impl/src/main/java/org/jboss/weld/bean/SessionBean.java 2009-12-03 18:08:11 UTC (rev 5210)
@@ -73,6 +73,7 @@
import org.jboss.weld.util.Beans;
import org.jboss.weld.util.Proxies;
import org.jboss.weld.util.Proxies.TypeInfo;
+import org.jboss.weld.util.Reflections.HierarchyDiscovery;
/**
* An enterprise bean representation
@@ -206,9 +207,10 @@
protected void initTypes()
{
Map<Class<?>, Type> types = new LinkedHashMap<Class<?>, Type>();
+
for (BusinessInterfaceDescriptor<?> businessInterfaceDescriptor : ejbDescriptor.getLocalBusinessInterfaces())
{
- types.put(businessInterfaceDescriptor.getInterface(), businessInterfaceDescriptor.getInterface());
+ types.putAll(new HierarchyDiscovery(businessInterfaceDescriptor.getInterface()).getTypeMap());
}
if (getAnnotatedItem().isAnnotationPresent(Typed.class))
{
Modified: core/trunk/impl/src/main/java/org/jboss/weld/util/Reflections.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/util/Reflections.java 2009-12-03 16:28:16 UTC (rev 5209)
+++ core/trunk/impl/src/main/java/org/jboss/weld/util/Reflections.java 2009-12-03 18:08:11 UTC (rev 5210)
@@ -42,7 +42,6 @@
import java.security.AccessControlException;
import java.util.Arrays;
import java.util.HashMap;
-import java.util.HashSet;
import java.util.Map;
import java.util.Set;
@@ -58,6 +57,9 @@
import ch.qos.cal10n.IMessageConveyor;
+import com.google.common.collect.BiMap;
+import com.google.common.collect.HashBiMap;
+
/**
* Utility class for static reflection-type operations
*
@@ -82,7 +84,7 @@
private final Type type;
- private Set<Type> typeSet;
+ private BiMap<Type, Class<?>> types;
public HierarchyDiscovery(Type type)
{
@@ -91,21 +93,30 @@
protected void add(Class<?> clazz, Type type)
{
- typeSet.add(type);
+ types.forcePut(type, clazz);
}
public Set<Type> getTypeClosure()
{
- if (typeSet == null)
+ if (types == null)
{
init();
}
- return typeSet;
+ return types.keySet();
}
+ public Map<Class<?>, Type> getTypeMap()
+ {
+ if (types == null)
+ {
+ init();
+ }
+ return types.inverse();
+ }
+
private void init()
{
- this.typeSet = new HashSet<Type>();
+ this.types = HashBiMap.create();
discoverTypes(type);
}
Modified: core/trunk/tests/src/main/java/org/jboss/weld/test/AbstractWeldTest.java
===================================================================
--- core/trunk/tests/src/main/java/org/jboss/weld/test/AbstractWeldTest.java 2009-12-03 16:28:16 UTC (rev 5209)
+++ core/trunk/tests/src/main/java/org/jboss/weld/test/AbstractWeldTest.java 2009-12-03 18:08:11 UTC (rev 5210)
@@ -90,6 +90,12 @@
}
return annotationTypeList.size() == 0;
}
+
+ public boolean typeSetMatches(Set<Type> types, Type... requiredTypes)
+ {
+ List<Type> typeList = Arrays.asList(requiredTypes);
+ return requiredTypes.length == types.size() && types.containsAll(typeList);
+ }
protected Iterable<URL> getResources(String name)
{
Added: core/trunk/tests/src/test/java/org/jboss/weld/tests/enterprise/Animal.java
===================================================================
--- core/trunk/tests/src/test/java/org/jboss/weld/tests/enterprise/Animal.java (rev 0)
+++ core/trunk/tests/src/test/java/org/jboss/weld/tests/enterprise/Animal.java 2009-12-03 18:08:11 UTC (rev 5210)
@@ -0,0 +1,6 @@
+package org.jboss.weld.tests.enterprise;
+
+public interface Animal
+{
+
+}
Property changes on: core/trunk/tests/src/test/java/org/jboss/weld/tests/enterprise/Animal.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Name: svn:eol-style
+ native
Added: core/trunk/tests/src/test/java/org/jboss/weld/tests/enterprise/Dog.java
===================================================================
--- core/trunk/tests/src/test/java/org/jboss/weld/tests/enterprise/Dog.java (rev 0)
+++ core/trunk/tests/src/test/java/org/jboss/weld/tests/enterprise/Dog.java 2009-12-03 18:08:11 UTC (rev 5210)
@@ -0,0 +1,9 @@
+package org.jboss.weld.tests.enterprise;
+
+import javax.ejb.Local;
+
+@Local
+public interface Dog extends Animal
+{
+
+}
Property changes on: core/trunk/tests/src/test/java/org/jboss/weld/tests/enterprise/Dog.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Name: svn:eol-style
+ native
Added: core/trunk/tests/src/test/java/org/jboss/weld/tests/enterprise/DogBean.java
===================================================================
--- core/trunk/tests/src/test/java/org/jboss/weld/tests/enterprise/DogBean.java (rev 0)
+++ core/trunk/tests/src/test/java/org/jboss/weld/tests/enterprise/DogBean.java 2009-12-03 18:08:11 UTC (rev 5210)
@@ -0,0 +1,10 @@
+package org.jboss.weld.tests.enterprise;
+
+import javax.ejb.Stateless;
+
+
+@Stateless
+public class DogBean implements Dog
+{
+
+}
Property changes on: core/trunk/tests/src/test/java/org/jboss/weld/tests/enterprise/DogBean.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Name: svn:eol-style
+ native
Added: core/trunk/tests/src/test/java/org/jboss/weld/tests/enterprise/EnterpriseBeanDefinitionTest.java
===================================================================
--- core/trunk/tests/src/test/java/org/jboss/weld/tests/enterprise/EnterpriseBeanDefinitionTest.java (rev 0)
+++ core/trunk/tests/src/test/java/org/jboss/weld/tests/enterprise/EnterpriseBeanDefinitionTest.java 2009-12-03 18:08:11 UTC (rev 5210)
@@ -0,0 +1,23 @@
+package org.jboss.weld.tests.enterprise;
+
+import javax.enterprise.inject.spi.Bean;
+
+import org.jboss.testharness.impl.packaging.Artifact;
+import org.jboss.testharness.impl.packaging.Packaging;
+import org.jboss.testharness.impl.packaging.PackagingType;
+import org.jboss.weld.test.AbstractWeldTest;
+import org.testng.annotations.Test;
+
+@Artifact
+(a)Packaging(PackagingType.EAR)
+public class EnterpriseBeanDefinitionTest extends AbstractWeldTest
+{
+
+ @Test(description="WELD-305")
+ public void testSuperInterfacesAreBeanTypes()
+ {
+ Bean<?> bean = getBean(Dog.class);
+ assert typeSetMatches(bean.getTypes(), Object.class, Dog.class, Animal.class);
+ }
+
+}
Property changes on: core/trunk/tests/src/test/java/org/jboss/weld/tests/enterprise/EnterpriseBeanDefinitionTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Name: svn:eol-style
+ native
Modified: core/trunk/tests/src/test/java/org/jboss/weld/tests/enterprise/EnterpriseBeanTest.java
===================================================================
--- core/trunk/tests/src/test/java/org/jboss/weld/tests/enterprise/EnterpriseBeanTest.java 2009-12-03 16:28:16 UTC (rev 5209)
+++ core/trunk/tests/src/test/java/org/jboss/weld/tests/enterprise/EnterpriseBeanTest.java 2009-12-03 18:08:11 UTC (rev 5210)
@@ -36,5 +36,4 @@
assert false : "Expected a BowlerHatException to be in the cause stack";
}
-
}
15 years, 3 months
Weld SVN: r5209 - in core/trunk/tests/src/test/java/org/jboss/weld/tests/producer/method: circular and 1 other directory.
by weld-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2009-12-03 11:28:16 -0500 (Thu, 03 Dec 2009)
New Revision: 5209
Added:
core/trunk/tests/src/test/java/org/jboss/weld/tests/producer/method/circular/
core/trunk/tests/src/test/java/org/jboss/weld/tests/producer/method/circular/Bar.java
core/trunk/tests/src/test/java/org/jboss/weld/tests/producer/method/circular/CircularInjectionTest.java
core/trunk/tests/src/test/java/org/jboss/weld/tests/producer/method/circular/Foo.java
Log:
WELD-310
Added: core/trunk/tests/src/test/java/org/jboss/weld/tests/producer/method/circular/Bar.java
===================================================================
--- core/trunk/tests/src/test/java/org/jboss/weld/tests/producer/method/circular/Bar.java (rev 0)
+++ core/trunk/tests/src/test/java/org/jboss/weld/tests/producer/method/circular/Bar.java 2009-12-03 16:28:16 UTC (rev 5209)
@@ -0,0 +1,11 @@
+package org.jboss.weld.tests.producer.method.circular;
+
+import javax.enterprise.inject.Produces;
+import javax.inject.Inject;
+
+class Bar {
+
+ @Inject void injectFoo(Foo foo) {}
+ @Produces Foo produceFoo() { return new Foo() {}; }
+
+}
\ No newline at end of file
Property changes on: core/trunk/tests/src/test/java/org/jboss/weld/tests/producer/method/circular/Bar.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Name: svn:eol-style
+ native
Added: core/trunk/tests/src/test/java/org/jboss/weld/tests/producer/method/circular/CircularInjectionTest.java
===================================================================
--- core/trunk/tests/src/test/java/org/jboss/weld/tests/producer/method/circular/CircularInjectionTest.java (rev 0)
+++ core/trunk/tests/src/test/java/org/jboss/weld/tests/producer/method/circular/CircularInjectionTest.java 2009-12-03 16:28:16 UTC (rev 5209)
@@ -0,0 +1,17 @@
+package org.jboss.weld.tests.producer.method.circular;
+
+import org.jboss.testharness.impl.packaging.Artifact;
+import org.jboss.weld.test.AbstractWeldTest;
+import org.testng.annotations.Test;
+
+@Artifact
+public class CircularInjectionTest extends AbstractWeldTest
+{
+
+ @Test(description="WELD-310")
+ public void testProducerCalledOnBeanUnderConstruction()
+ {
+
+ }
+
+}
Property changes on: core/trunk/tests/src/test/java/org/jboss/weld/tests/producer/method/circular/CircularInjectionTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Name: svn:eol-style
+ native
Added: core/trunk/tests/src/test/java/org/jboss/weld/tests/producer/method/circular/Foo.java
===================================================================
--- core/trunk/tests/src/test/java/org/jboss/weld/tests/producer/method/circular/Foo.java (rev 0)
+++ core/trunk/tests/src/test/java/org/jboss/weld/tests/producer/method/circular/Foo.java 2009-12-03 16:28:16 UTC (rev 5209)
@@ -0,0 +1,8 @@
+package org.jboss.weld.tests.producer.method.circular;
+
+public abstract class Foo
+{
+
+
+
+}
Property changes on: core/trunk/tests/src/test/java/org/jboss/weld/tests/producer/method/circular/Foo.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Name: svn:eol-style
+ native
15 years, 3 months
Weld SVN: r5208 - in core/trunk/tests/src/test/java/org/jboss/weld/tests: specialization and 1 other directory.
by weld-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2009-12-03 11:23:42 -0500 (Thu, 03 Dec 2009)
New Revision: 5208
Added:
core/trunk/tests/src/test/java/org/jboss/weld/tests/specialization/
core/trunk/tests/src/test/java/org/jboss/weld/tests/specialization/SpecializationTest.java
core/trunk/tests/src/test/java/org/jboss/weld/tests/specialization/User.java
core/trunk/tests/src/test/java/org/jboss/weld/tests/specialization/User2.java
Log:
Test for WELD-321
Added: core/trunk/tests/src/test/java/org/jboss/weld/tests/specialization/SpecializationTest.java
===================================================================
--- core/trunk/tests/src/test/java/org/jboss/weld/tests/specialization/SpecializationTest.java (rev 0)
+++ core/trunk/tests/src/test/java/org/jboss/weld/tests/specialization/SpecializationTest.java 2009-12-03 16:23:42 UTC (rev 5208)
@@ -0,0 +1,17 @@
+package org.jboss.weld.tests.specialization;
+
+import org.jboss.testharness.impl.packaging.Artifact;
+import org.jboss.weld.test.AbstractWeldTest;
+import org.testng.annotations.Test;
+
+@Artifact
+public class SpecializationTest extends AbstractWeldTest
+{
+
+ @Test(groups="WELD-321")
+ public void testSpecialization()
+ {
+ assert getCurrentManager().resolve(getCurrentManager().getBeans(User.class)).getBeanClass().equals(User2.class);
+ }
+
+}
Property changes on: core/trunk/tests/src/test/java/org/jboss/weld/tests/specialization/SpecializationTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Name: svn:eol-style
+ native
Added: core/trunk/tests/src/test/java/org/jboss/weld/tests/specialization/User.java
===================================================================
--- core/trunk/tests/src/test/java/org/jboss/weld/tests/specialization/User.java (rev 0)
+++ core/trunk/tests/src/test/java/org/jboss/weld/tests/specialization/User.java 2009-12-03 16:23:42 UTC (rev 5208)
@@ -0,0 +1,6 @@
+package org.jboss.weld.tests.specialization;
+
+public class User
+{
+
+}
Property changes on: core/trunk/tests/src/test/java/org/jboss/weld/tests/specialization/User.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Name: svn:eol-style
+ native
Added: core/trunk/tests/src/test/java/org/jboss/weld/tests/specialization/User2.java
===================================================================
--- core/trunk/tests/src/test/java/org/jboss/weld/tests/specialization/User2.java (rev 0)
+++ core/trunk/tests/src/test/java/org/jboss/weld/tests/specialization/User2.java 2009-12-03 16:23:42 UTC (rev 5208)
@@ -0,0 +1,8 @@
+package org.jboss.weld.tests.specialization;
+
+import javax.enterprise.inject.Specializes;
+
+@Specializes
+public class User2 extends User
+{
+}
\ No newline at end of file
Property changes on: core/trunk/tests/src/test/java/org/jboss/weld/tests/specialization/User2.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Name: svn:eol-style
+ native
15 years, 3 months
Weld SVN: r5207 - in core/trunk/tests/src/test/java/org/jboss/weld/tests: scope and 1 other directory.
by weld-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2009-12-03 11:18:36 -0500 (Thu, 03 Dec 2009)
New Revision: 5207
Added:
core/trunk/tests/src/test/java/org/jboss/weld/tests/scope/
core/trunk/tests/src/test/java/org/jboss/weld/tests/scope/Bar.java
core/trunk/tests/src/test/java/org/jboss/weld/tests/scope/Foo.java
core/trunk/tests/src/test/java/org/jboss/weld/tests/scope/ScopeTest.java
Log:
WELD-322
Added: core/trunk/tests/src/test/java/org/jboss/weld/tests/scope/Bar.java
===================================================================
--- core/trunk/tests/src/test/java/org/jboss/weld/tests/scope/Bar.java (rev 0)
+++ core/trunk/tests/src/test/java/org/jboss/weld/tests/scope/Bar.java 2009-12-03 16:18:36 UTC (rev 5207)
@@ -0,0 +1,8 @@
+package org.jboss.weld.tests.scope;
+
+import javax.enterprise.context.Dependent;
+
+@Dependent
+class Bar extends Foo
+{
+}
\ No newline at end of file
Property changes on: core/trunk/tests/src/test/java/org/jboss/weld/tests/scope/Bar.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Name: svn:eol-style
+ native
Added: core/trunk/tests/src/test/java/org/jboss/weld/tests/scope/Foo.java
===================================================================
--- core/trunk/tests/src/test/java/org/jboss/weld/tests/scope/Foo.java (rev 0)
+++ core/trunk/tests/src/test/java/org/jboss/weld/tests/scope/Foo.java 2009-12-03 16:18:36 UTC (rev 5207)
@@ -0,0 +1,8 @@
+package org.jboss.weld.tests.scope;
+
+import javax.enterprise.context.RequestScoped;
+
+@RequestScoped
+class Foo
+{
+}
\ No newline at end of file
Property changes on: core/trunk/tests/src/test/java/org/jboss/weld/tests/scope/Foo.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Name: svn:eol-style
+ native
Added: core/trunk/tests/src/test/java/org/jboss/weld/tests/scope/ScopeTest.java
===================================================================
--- core/trunk/tests/src/test/java/org/jboss/weld/tests/scope/ScopeTest.java (rev 0)
+++ core/trunk/tests/src/test/java/org/jboss/weld/tests/scope/ScopeTest.java 2009-12-03 16:18:36 UTC (rev 5207)
@@ -0,0 +1,19 @@
+package org.jboss.weld.tests.scope;
+
+import javax.enterprise.context.Dependent;
+
+import org.jboss.testharness.impl.packaging.Artifact;
+import org.jboss.weld.test.AbstractWeldTest;
+import org.testng.annotations.Test;
+
+@Artifact
+public class ScopeTest extends AbstractWeldTest
+{
+
+ @Test(description="WELD-322")
+ public void testScopeDeclaredOnSubclassOverridesScopeOnSuperClass()
+ {
+ assert getCurrentManager().resolve(getCurrentManager().getBeans(Bar.class)).getScope().equals(Dependent.class);
+ }
+
+}
Property changes on: core/trunk/tests/src/test/java/org/jboss/weld/tests/scope/ScopeTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Name: svn:eol-style
+ native
15 years, 3 months
Weld SVN: r5206 - core/trunk/tests/src/test/java/org/jboss/weld/tests/beanManager/annotation.
by weld-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2009-12-03 11:14:32 -0500 (Thu, 03 Dec 2009)
New Revision: 5206
Modified:
core/trunk/tests/src/test/java/org/jboss/weld/tests/beanManager/annotation/ManagerAnnotationTest.java
Log:
Add issue
Modified: core/trunk/tests/src/test/java/org/jboss/weld/tests/beanManager/annotation/ManagerAnnotationTest.java
===================================================================
--- core/trunk/tests/src/test/java/org/jboss/weld/tests/beanManager/annotation/ManagerAnnotationTest.java 2009-12-03 16:12:19 UTC (rev 5205)
+++ core/trunk/tests/src/test/java/org/jboss/weld/tests/beanManager/annotation/ManagerAnnotationTest.java 2009-12-03 16:14:32 UTC (rev 5206)
@@ -10,37 +10,37 @@
public class ManagerAnnotationTest extends AbstractWeldTest
{
- @Test
+ @Test(description="WELD-299")
public void testIsQualifier() throws Exception
{
assert !getCurrentManager().isQualifier(PersistenceContext.class);
}
- @Test
+ @Test(description="WELD-299")
public void testIsInterceptorBinding() throws Exception
{
assert !getCurrentManager().isInterceptorBinding(PersistenceContext.class);
}
- @Test
+ @Test(description="WELD-299")
public void testIsNormalScope() throws Exception
{
assert !getCurrentManager().isNormalScope(PersistenceContext.class);
}
- @Test
+ @Test(description="WELD-299")
public void testIsPassivatingScope() throws Exception
{
assert !getCurrentManager().isPassivatingScope(PersistenceContext.class);
}
- @Test
+ @Test(description="WELD-299")
public void testIsScope() throws Exception
{
assert !getCurrentManager().isScope(PersistenceContext.class);
}
- @Test
+ @Test(description="WELD-299")
public void testIsStereotype() throws Exception
{
assert !getCurrentManager().isStereotype(PersistenceContext.class);
15 years, 3 months
Weld SVN: r5205 - in core/trunk: tests/src/test/java/org/jboss/weld/tests/beanManager and 1 other directories.
by weld-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2009-12-03 11:12:19 -0500 (Thu, 03 Dec 2009)
New Revision: 5205
Added:
core/trunk/tests/src/test/java/org/jboss/weld/tests/beanManager/annotation/
core/trunk/tests/src/test/java/org/jboss/weld/tests/beanManager/annotation/ManagerAnnotationTest.java
Modified:
core/trunk/impl/src/main/java/org/jboss/weld/metadata/cache/BindingTypeModel.java
Log:
WELD-299
Modified: core/trunk/impl/src/main/java/org/jboss/weld/metadata/cache/BindingTypeModel.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/metadata/cache/BindingTypeModel.java 2009-12-03 15:56:38 UTC (rev 5204)
+++ core/trunk/impl/src/main/java/org/jboss/weld/metadata/cache/BindingTypeModel.java 2009-12-03 16:12:19 UTC (rev 5205)
@@ -16,6 +16,8 @@
*/
package org.jboss.weld.metadata.cache;
+import static org.jboss.weld.logging.Category.REFLECTION;
+import static org.jboss.weld.logging.LoggerFactory.loggerFactory;
import static org.jboss.weld.logging.messages.MetadataMessage.NON_BINDING_MEMBER_TYPE;
import java.lang.annotation.Annotation;
@@ -25,12 +27,12 @@
import javax.enterprise.util.Nonbinding;
import javax.inject.Qualifier;
-import org.jboss.weld.DefinitionException;
import org.jboss.weld.WeldException;
import org.jboss.weld.introspector.WeldMethod;
import org.jboss.weld.resources.ClassTransformer;
import org.jboss.weld.util.Reflections;
import org.jboss.weld.util.collections.Arrays2;
+import org.slf4j.cal10n.LocLogger;
/**
*
@@ -41,8 +43,8 @@
*/
public class BindingTypeModel<T extends Annotation> extends AnnotationModel<T>
{
+ private static final LocLogger log = loggerFactory().getLogger(REFLECTION);
-
private static final Set<Class<? extends Annotation>> META_ANNOTATIONS = Arrays2.<Class<? extends Annotation>>asSet(Qualifier.class);
// The non-binding types
@@ -79,7 +81,8 @@
{
if ((Reflections.isArrayType(annotatedMethod.getJavaClass()) || Annotation.class.isAssignableFrom(annotatedMethod.getJavaClass())) && !nonBindingTypes.contains(annotatedMethod))
{
- throw new DefinitionException(NON_BINDING_MEMBER_TYPE, annotatedMethod);
+ super.valid = false;
+ log.debug(NON_BINDING_MEMBER_TYPE, annotatedMethod);
}
}
Added: core/trunk/tests/src/test/java/org/jboss/weld/tests/beanManager/annotation/ManagerAnnotationTest.java
===================================================================
--- core/trunk/tests/src/test/java/org/jboss/weld/tests/beanManager/annotation/ManagerAnnotationTest.java (rev 0)
+++ core/trunk/tests/src/test/java/org/jboss/weld/tests/beanManager/annotation/ManagerAnnotationTest.java 2009-12-03 16:12:19 UTC (rev 5205)
@@ -0,0 +1,50 @@
+package org.jboss.weld.tests.beanManager.annotation;
+
+import javax.persistence.PersistenceContext;
+
+import org.jboss.testharness.impl.packaging.Artifact;
+import org.jboss.weld.test.AbstractWeldTest;
+import org.testng.annotations.Test;
+
+@Artifact
+public class ManagerAnnotationTest extends AbstractWeldTest
+{
+
+ @Test
+ public void testIsQualifier() throws Exception
+ {
+ assert !getCurrentManager().isQualifier(PersistenceContext.class);
+ }
+
+ @Test
+ public void testIsInterceptorBinding() throws Exception
+ {
+ assert !getCurrentManager().isInterceptorBinding(PersistenceContext.class);
+ }
+
+ @Test
+ public void testIsNormalScope() throws Exception
+ {
+ assert !getCurrentManager().isNormalScope(PersistenceContext.class);
+ }
+
+ @Test
+ public void testIsPassivatingScope() throws Exception
+ {
+ assert !getCurrentManager().isPassivatingScope(PersistenceContext.class);
+ }
+
+ @Test
+ public void testIsScope() throws Exception
+ {
+ assert !getCurrentManager().isScope(PersistenceContext.class);
+ }
+
+ @Test
+ public void testIsStereotype() throws Exception
+ {
+ assert !getCurrentManager().isStereotype(PersistenceContext.class);
+ }
+
+
+}
Property changes on: core/trunk/tests/src/test/java/org/jboss/weld/tests/beanManager/annotation/ManagerAnnotationTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Name: svn:eol-style
+ native
15 years, 3 months
Weld SVN: r5204 - extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated.
by weld-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2009-12-03 10:56:38 -0500 (Thu, 03 Dec 2009)
New Revision: 5204
Added:
extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated/AnnotationBuilder.java
extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated/NewAnnotatedTypeBuilder.java
extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated/TypeClosureBuilder.java
Removed:
extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated/TypeStore.java
Modified:
extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated/AbstractNewAnnotatedCallable.java
extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated/AbstractNewAnnotatedElement.java
extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated/AbstractNewAnnotatedMember.java
extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated/AnnotationStore.java
extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated/NewAnnotatedConstructor.java
extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated/NewAnnotatedField.java
extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated/NewAnnotatedMethod.java
extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated/NewAnnotatedParameter.java
extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated/NewAnnotatedType.java
Log:
WELDX-55
Modified: extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated/AbstractNewAnnotatedCallable.java
===================================================================
--- extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated/AbstractNewAnnotatedCallable.java 2009-12-03 15:10:58 UTC (rev 5203)
+++ extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated/AbstractNewAnnotatedCallable.java 2009-12-03 15:56:38 UTC (rev 5204)
@@ -1,11 +1,10 @@
package org.jboss.weld.extensions.util.annotated;
-import java.lang.reflect.Constructor;
import java.lang.reflect.Member;
-import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
+import java.util.Map;
import javax.enterprise.inject.spi.AnnotatedCallable;
import javax.enterprise.inject.spi.AnnotatedParameter;
@@ -16,58 +15,43 @@
* @author Stuart Douglas
*
*/
-public abstract class AbstractNewAnnotatedCallable<X, Y extends Member> extends AbstractNewAnnotatedMember<X, Y> implements AnnotatedCallable<X>
+abstract class AbstractNewAnnotatedCallable<X, Y extends Member> extends AbstractNewAnnotatedMember<X, Y> implements AnnotatedCallable<X>
{
- private final List<NewAnnotatedParameter<X>> parameters = new ArrayList<NewAnnotatedParameter<X>>();
+ private final List<AnnotatedParameter<X>> parameters;
- protected AbstractNewAnnotatedCallable(AnnotatedType<X> type, Method method, boolean readAnnotations)
+ protected AbstractNewAnnotatedCallable(AnnotatedType<X> declaringType, Y member, Class<?> memberType, Class<?>[] parameterTypes, AnnotationStore annotations, Map<Integer, AnnotationStore> parameterAnnotations)
{
- super(type, (Y) method, method.getReturnType(), readAnnotations);
- int len = method.getTypeParameters().length;
- for (int i = 0; i < len; ++i)
- {
- NewAnnotatedParameter<X> p = new NewAnnotatedParameter<X>(this, method.getParameterTypes()[i], i, readAnnotations);
- parameters.add(p);
- }
+ super(declaringType, member, memberType, annotations);
+ this.parameters = getAnnotatedParameters(this, parameterTypes, parameterAnnotations);
}
- protected AbstractNewAnnotatedCallable(AnnotatedType<X> type, Constructor<X> constructor, boolean readAnnotations)
- {
- super(type, (Y) constructor, constructor.getDeclaringClass(), readAnnotations);
- int len = constructor.getTypeParameters().length;
- for (int i = 0; i < len; ++i)
- {
- NewAnnotatedParameter<X> p = new NewAnnotatedParameter<X>(this, constructor.getParameterTypes()[i], i, readAnnotations);
- parameters.add(p);
- }
- }
-
-
- @Override
- public void clearAllAnnotations()
- {
- super.clearAllAnnotations();
- for (NewAnnotatedParameter<X> p : parameters)
- {
- p.clearAllAnnotations();
- }
- }
-
public List<AnnotatedParameter<X>> getParameters()
{
- return (List) Collections.unmodifiableList(parameters);
- }
-
- public List<NewAnnotatedParameter<X>> getNewAnnotatedParameters()
- {
return Collections.unmodifiableList(parameters);
}
- public NewAnnotatedParameter<X> getParameter(int index)
+ public AnnotatedParameter<X> getParameter(int index)
{
return parameters.get(index);
+ }
+
+ private static <X, Y extends Member> List<AnnotatedParameter<X>> getAnnotatedParameters(AbstractNewAnnotatedCallable<X, Y> callable, Class<?>[] parameterTypes, Map<Integer, AnnotationStore> parameterAnnotations)
+ {
+ List<AnnotatedParameter<X>> parameters = new ArrayList<AnnotatedParameter<X>>();
+ int len = parameterTypes.length;
+ for (int i = 0; i < len; ++i)
+ {
+ AnnotationBuilder builder = new AnnotationBuilder();
+ if (parameterAnnotations != null && parameterAnnotations.containsKey(i))
+ {
+ builder.addAll(parameterAnnotations.get(i));
+ }
+ NewAnnotatedParameter<X> p = new NewAnnotatedParameter<X>(callable, parameterTypes[i], i, builder.create());
+ parameters.add(p);
+ }
+ return parameters;
}
}
Modified: extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated/AbstractNewAnnotatedElement.java
===================================================================
--- extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated/AbstractNewAnnotatedElement.java 2009-12-03 15:10:58 UTC (rev 5203)
+++ extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated/AbstractNewAnnotatedElement.java 2009-12-03 15:56:38 UTC (rev 5204)
@@ -2,6 +2,7 @@
import java.lang.annotation.Annotation;
import java.lang.reflect.Type;
+import java.util.Collections;
import java.util.Set;
import javax.enterprise.inject.spi.Annotated;
@@ -12,44 +13,27 @@
* @author Stuart Douglas
*
*/
-public abstract class AbstractNewAnnotatedElement implements Annotated
+abstract class AbstractNewAnnotatedElement implements Annotated
{
private final Class<?> type;
+ private final Set<Type> typeClosure;
+ private final AnnotationStore annotations;
- private final TypeStore typeStore = new TypeStore();
- private final AnnotationStore annotations = new AnnotationStore();
-
- /**
- * Clears all annotation data from the the class. Useful if we are not
- * interested in the annotations that are actually on the class but instead
- * want to apply our own
- */
- public void clearAllAnnotations()
+ protected AbstractNewAnnotatedElement(Class<?> type, AnnotationStore annotations)
{
- annotations.clear();
- }
-
- protected AbstractNewAnnotatedElement(Class<?> type, boolean readAnnotations)
- {
- typeStore.add(type);
- this.type = type;
- if (readAnnotations)
+ this.typeClosure = new TypeClosureBuilder().add(type).getTypes();
+ if (annotations == null)
{
- annotations.addAll(type);
+ this.annotations = new AnnotationStore();
}
+ else
+ {
+ this.annotations = annotations;
+ }
+ this.type = type;
}
- public void addAnnotation(Annotation a)
- {
- annotations.addAnnotation(a);
- }
-
- public void removeAnnotation(Class<? extends Annotation> c)
- {
- annotations.removeAnnotation(c);
- }
-
public <T extends Annotation> T getAnnotation(Class<T> annotationType)
{
return annotations.getAnnotation(annotationType);
@@ -67,11 +51,12 @@
public Set<Type> getTypeClosure()
{
- return typeStore.getTypes();
+ return Collections.unmodifiableSet(typeClosure);
}
public Type getBaseType()
{
return type;
}
+
}
Modified: extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated/AbstractNewAnnotatedMember.java
===================================================================
--- extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated/AbstractNewAnnotatedMember.java 2009-12-03 15:10:58 UTC (rev 5203)
+++ extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated/AbstractNewAnnotatedMember.java 2009-12-03 15:56:38 UTC (rev 5204)
@@ -11,14 +11,14 @@
* @author Stuart Douglas
*
*/
-public abstract class AbstractNewAnnotatedMember<X, M extends Member> extends AbstractNewAnnotatedElement implements AnnotatedMember<X>
+abstract class AbstractNewAnnotatedMember<X, M extends Member> extends AbstractNewAnnotatedElement implements AnnotatedMember<X>
{
private final AnnotatedType<X> declaringType;
private final M javaMember;
- protected AbstractNewAnnotatedMember(AnnotatedType<X> declaringType, M member, Class<?> memberType, boolean readAnnotations)
+ protected AbstractNewAnnotatedMember(AnnotatedType<X> declaringType, M member, Class<?> memberType, AnnotationStore annotations)
{
- super(memberType, readAnnotations);
+ super(memberType, annotations);
this.declaringType = declaringType;
this.javaMember = member;
}
Copied: extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated/AnnotationBuilder.java (from rev 5190, extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated/AnnotationStore.java)
===================================================================
--- extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated/AnnotationBuilder.java (rev 0)
+++ extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated/AnnotationBuilder.java 2009-12-03 15:56:38 UTC (rev 5204)
@@ -0,0 +1,58 @@
+package org.jboss.weld.extensions.util.annotated;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.AnnotatedElement;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ *
+ * @author Stuart Douglas
+ *
+ */
+class AnnotationBuilder
+{
+ private HashMap<Class<? extends Annotation>, Annotation> annotationMap = new HashMap<Class<? extends Annotation>, Annotation>();
+ private Set<Annotation> annotationSet = new HashSet<Annotation>();
+
+ public AnnotationBuilder add(Annotation a)
+ {
+ annotationSet.add(a);
+ annotationMap.put(a.getClass(), a);
+ return this;
+ }
+
+ public AnnotationStore create()
+ {
+ return new AnnotationStore(annotationMap, annotationSet);
+ }
+
+ public AnnotationBuilder addAll(Set<Annotation> annotations)
+ {
+ for (Annotation annotation : annotations)
+ {
+ add(annotation);
+ }
+ return this;
+ }
+
+ public AnnotationBuilder addAll(AnnotationStore annotations)
+ {
+ for (Annotation annotation : annotations.getAnnotations())
+ {
+ add(annotation);
+ }
+ return this;
+ }
+
+ public AnnotationBuilder addAll(AnnotatedElement element)
+ {
+ for (Annotation a : element.getAnnotations())
+ {
+ add(a);
+ }
+ return this;
+ }
+
+}
Property changes on: extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated/AnnotationBuilder.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Name: svn:eol-style
+ native
Modified: extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated/AnnotationStore.java
===================================================================
--- extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated/AnnotationStore.java 2009-12-03 15:10:58 UTC (rev 5203)
+++ extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated/AnnotationStore.java 2009-12-03 15:56:38 UTC (rev 5204)
@@ -1,7 +1,6 @@
package org.jboss.weld.extensions.util.annotated;
import java.lang.annotation.Annotation;
-import java.lang.reflect.AnnotatedElement;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
@@ -14,52 +13,35 @@
*/
class AnnotationStore
{
- HashMap<Class<? extends Annotation>, Annotation> annotationMap = new HashMap<Class<? extends Annotation>, Annotation>();
- Set<Annotation> annotations = new HashSet<Annotation>();
+
+ private final HashMap<Class<? extends Annotation>, Annotation> annotationMap;
+ private final Set<Annotation> annotationSet;
- public void clear()
+ AnnotationStore(HashMap<Class<? extends Annotation>, Annotation> annotationMap, Set<Annotation> annotationSet)
{
- annotationMap.clear();
- annotations.clear();
+ this.annotationMap = annotationMap;
+ this.annotationSet = annotationSet;
}
-
- public void addAnnotation(Annotation a)
+
+ AnnotationStore()
{
- annotations.add(a);
- annotationMap.put(a.getClass(), a);
+ this.annotationMap = new HashMap<Class<? extends Annotation>, Annotation>();
+ this.annotationSet = new HashSet<Annotation>();
}
- public void removeAnnotation(Class a)
+ public <T extends Annotation> T getAnnotation(Class<T> annotationType)
{
- Annotation an = annotationMap.get(a);
- if (an != null)
- {
- annotations.remove(an);
- annotationMap.remove(a);
- }
+ return annotationType.cast(annotationMap.get(annotationType));
}
- public <T extends Annotation> T getAnnotation(Class<T> type)
- {
- return (T) annotationMap.get(type);
- }
-
public Set<Annotation> getAnnotations()
{
- return Collections.unmodifiableSet(annotations);
+ return Collections.unmodifiableSet(annotationSet);
}
- public boolean isAnnotationPresent(Class<? extends Annotation> type)
+ public boolean isAnnotationPresent(Class<? extends Annotation> annotationType)
{
- return annotationMap.containsKey(type);
+ return annotationMap.containsKey(annotationType);
}
- public void addAll(AnnotatedElement element)
- {
- for (Annotation a : element.getAnnotations())
- {
- addAnnotation(a);
- }
- }
-
}
Modified: extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated/NewAnnotatedConstructor.java
===================================================================
--- extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated/NewAnnotatedConstructor.java 2009-12-03 15:10:58 UTC (rev 5203)
+++ extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated/NewAnnotatedConstructor.java 2009-12-03 15:56:38 UTC (rev 5204)
@@ -1,21 +1,21 @@
package org.jboss.weld.extensions.util.annotated;
import java.lang.reflect.Constructor;
+import java.util.Map;
import javax.enterprise.inject.spi.AnnotatedConstructor;
/**
*
* @author Stuart Douglas
- *
+ *
*/
-class NewAnnotatedConstructor<X> extends AbstractNewAnnotatedCallable<X, Constructor<X>>
- implements AnnotatedConstructor<X>
+class NewAnnotatedConstructor<X> extends AbstractNewAnnotatedCallable<X, Constructor<X>> implements AnnotatedConstructor<X>
{
- NewAnnotatedConstructor(NewAnnotatedType<X> type, Constructor<?> constructor, boolean readAnnotations)
+ NewAnnotatedConstructor(NewAnnotatedType<X> type, Constructor<?> constructor, AnnotationStore annotations, Map<Integer, AnnotationStore> parameterAnnotations)
{
- super(type, (Constructor<X>) constructor, readAnnotations);
+ super(type, (Constructor<X>) constructor, constructor.getDeclaringClass(), constructor.getParameterTypes(), annotations, parameterAnnotations);
}
}
Modified: extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated/NewAnnotatedField.java
===================================================================
--- extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated/NewAnnotatedField.java 2009-12-03 15:10:58 UTC (rev 5203)
+++ extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated/NewAnnotatedField.java 2009-12-03 15:56:38 UTC (rev 5204)
@@ -10,13 +10,12 @@
* @author Stuart Douglas
*
*/
-class NewAnnotatedField<X> extends AbstractNewAnnotatedMember<X, Field> implements
- AnnotatedField<X>
+class NewAnnotatedField<X> extends AbstractNewAnnotatedMember<X, Field> implements AnnotatedField<X>
{
- NewAnnotatedField(AnnotatedType<X> declaringType, Field field, boolean readAnnotations)
+ NewAnnotatedField(AnnotatedType<X> declaringType, Field field, AnnotationStore annotations)
{
- super(declaringType, field, field.getType(), readAnnotations);
+ super(declaringType, field, field.getType(), annotations);
}
}
Modified: extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated/NewAnnotatedMethod.java
===================================================================
--- extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated/NewAnnotatedMethod.java 2009-12-03 15:10:58 UTC (rev 5203)
+++ extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated/NewAnnotatedMethod.java 2009-12-03 15:56:38 UTC (rev 5204)
@@ -1,6 +1,7 @@
package org.jboss.weld.extensions.util.annotated;
import java.lang.reflect.Method;
+import java.util.Map;
import javax.enterprise.inject.spi.AnnotatedMethod;
import javax.enterprise.inject.spi.AnnotatedType;
@@ -12,14 +13,9 @@
*/
class NewAnnotatedMethod<X> extends AbstractNewAnnotatedCallable<X, Method> implements AnnotatedMethod<X>
{
- NewAnnotatedMethod(AnnotatedType<X> type, Method method, boolean readAnnotations)
+ NewAnnotatedMethod(AnnotatedType<X> type, Method method, AnnotationStore annotations, Map<Integer, AnnotationStore> parameterAnnotations)
{
- super(type, method, readAnnotations);
- int count = 0;
- for (Class<?> c : method.getParameterTypes())
- {
- NewAnnotatedParameter<X> mp = new NewAnnotatedParameter<X>(this, c, count++, readAnnotations);
- getParameters().add(mp);
- }
+ super(type, method, method.getReturnType(), method.getParameterTypes(), annotations, parameterAnnotations);
}
+
}
Modified: extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated/NewAnnotatedParameter.java
===================================================================
--- extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated/NewAnnotatedParameter.java 2009-12-03 15:10:58 UTC (rev 5203)
+++ extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated/NewAnnotatedParameter.java 2009-12-03 15:56:38 UTC (rev 5204)
@@ -14,9 +14,9 @@
private final int position;
private final AnnotatedCallable<X> declaringCallable;
- NewAnnotatedParameter(AnnotatedCallable<X> declaringCallable, Class type, int position, boolean readAnnotations)
+ NewAnnotatedParameter(AnnotatedCallable<X> declaringCallable, Class<?> type, int position, AnnotationStore annotations)
{
- super(type, readAnnotations);
+ super(type, annotations);
this.declaringCallable = declaringCallable;
this.position = position;
}
Modified: extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated/NewAnnotatedType.java
===================================================================
--- extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated/NewAnnotatedType.java 2009-12-03 15:10:58 UTC (rev 5203)
+++ extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated/NewAnnotatedType.java 2009-12-03 15:56:38 UTC (rev 5204)
@@ -4,7 +4,6 @@
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.Collections;
-import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
@@ -21,72 +20,47 @@
* @author Stuart Douglas
*
*/
-public class NewAnnotatedType<X> extends AbstractNewAnnotatedElement implements AnnotatedType<X>
+class NewAnnotatedType<X> extends AbstractNewAnnotatedElement implements AnnotatedType<X>
{
- private final Set<NewAnnotatedConstructor<X>> constructors = new HashSet<NewAnnotatedConstructor<X>>();
- private final Set<NewAnnotatedField<? super X>> fields = new HashSet<NewAnnotatedField<? super X>>();
- private final Set<NewAnnotatedMethod<? super X>> methods = new HashSet<NewAnnotatedMethod<? super X>>();
+ private final Set<AnnotatedConstructor<X>> constructors;
+ private final Set<AnnotatedField<? super X>> fields;
+ private final Set<AnnotatedMethod<? super X>> methods;
- // maps fields to the field objects
- private final Map<Field, NewAnnotatedField<X>> fieldMap = new HashMap<Field, NewAnnotatedField<X>>();
- // maps method names to the method objects
- private final Map<Method, NewAnnotatedMethod<X>> methodMap = new HashMap<Method, NewAnnotatedMethod<X>>();
-
private final Class<X> javaClass;
- public NewAnnotatedType(Class<X> clazz, boolean readAnnotations)
+ NewAnnotatedType(Class<X> clazz, AnnotationStore typeAnnotations, Map<Field, AnnotationStore> fieldAnnotations, Map<Method, AnnotationStore> methodAnnotations, Map<Method, Map<Integer, AnnotationStore>> methodParameterAnnotations, Map<Constructor<X>, AnnotationStore> constructorAnnotations, Map<Constructor<X>, Map<Integer, AnnotationStore>> constructorParameterAnnotations)
{
- super(clazz, readAnnotations);
- javaClass = clazz;
+ super(clazz, typeAnnotations);
+ this.javaClass = clazz;
+ this.constructors = new HashSet<AnnotatedConstructor<X>>();
for (Constructor<?> c : clazz.getConstructors())
{
- constructors.add(new NewAnnotatedConstructor<X>(this, c, readAnnotations));
+ NewAnnotatedConstructor<X> nc = new NewAnnotatedConstructor<X>(this, c, constructorAnnotations.get(c), constructorParameterAnnotations.get(c));
+ constructors.add(nc);
}
+ this.methods = new HashSet<AnnotatedMethod<? super X>>();
for (Method m : clazz.getMethods())
{
- NewAnnotatedMethod<X> met = new NewAnnotatedMethod<X>(this, m, readAnnotations);
+ NewAnnotatedMethod<X> met = new NewAnnotatedMethod<X>(this, m, methodAnnotations.get(m), methodParameterAnnotations.get(m));
methods.add(met);
- methodMap.put(m, met);
}
+ this.fields = new HashSet<AnnotatedField<? super X>>();
for (Field f : clazz.getFields())
{
- NewAnnotatedField<X> b = new NewAnnotatedField<X>(this, f, readAnnotations);
+ NewAnnotatedField<X> b = new NewAnnotatedField<X>(this, f, fieldAnnotations.get(f));
fields.add(b);
- fieldMap.put(f, b);
}
-
}
- /**
- * clears all existing annotation data from a type
- */
- @Override
- public void clearAllAnnotations()
- {
- super.clearAllAnnotations();
- for (AbstractNewAnnotatedElement c : constructors)
- {
- c.clearAllAnnotations();
- }
- for (AbstractNewAnnotatedElement c : fields)
- {
- c.clearAllAnnotations();
- }
- for (AbstractNewAnnotatedElement c : methods)
- {
- c.clearAllAnnotations();
- }
- }
-
public Set<AnnotatedConstructor<X>> getConstructors()
{
- return (Set) Collections.unmodifiableSet(constructors);
+ return Collections.unmodifiableSet(constructors);
}
public Set<AnnotatedField<? super X>> getFields()
{
- return (Set) Collections.unmodifiableSet(fields);
+ return Collections.unmodifiableSet(fields);
}
public Class<X> getJavaClass()
@@ -96,17 +70,7 @@
public Set<AnnotatedMethod<? super X>> getMethods()
{
- return (Set) Collections.unmodifiableSet(methods);
+ return Collections.unmodifiableSet(methods);
}
- public NewAnnotatedField<X> getField(Field field)
- {
- return fieldMap.get(field);
- }
-
- public NewAnnotatedMethod<X> getMethod(Method m)
- {
- return methodMap.get(m);
- }
-
}
Added: extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated/NewAnnotatedTypeBuilder.java
===================================================================
--- extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated/NewAnnotatedTypeBuilder.java (rev 0)
+++ extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated/NewAnnotatedTypeBuilder.java 2009-12-03 15:56:38 UTC (rev 5204)
@@ -0,0 +1,161 @@
+package org.jboss.weld.extensions.util.annotated;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Map.Entry;
+
+import javax.enterprise.inject.spi.AnnotatedType;
+
+/**
+ * Class for constructing a new AnnotatedType. A new instance of builder must be
+ * used for each annotated type.
+ *
+ * No annotations will be read from the underlying class definition, all
+ * annotations must be added explicitly
+ *
+ * @author Stuart Douglas
+ * @author Pete Muir
+ *
+ */
+public class NewAnnotatedTypeBuilder<X>
+{
+ private Map<Field, AnnotationBuilder> fields = new HashMap<Field, AnnotationBuilder>();
+ private Map<Method, AnnotationBuilder> methods = new HashMap<Method, AnnotationBuilder>();
+ private Map<Method, Map<Integer, AnnotationBuilder>> methodParameters = new HashMap<Method, Map<Integer, AnnotationBuilder>>();
+ private Map<Constructor<X>, AnnotationBuilder> constructors = new HashMap<Constructor<X>, AnnotationBuilder>();
+ private Map<Constructor<X>, Map<Integer, AnnotationBuilder>> constructorParameters = new HashMap<Constructor<X>, Map<Integer, AnnotationBuilder>>();
+ private AnnotationBuilder typeAnnotations = new AnnotationBuilder();
+ private Class<X> underlying;
+
+ public NewAnnotatedTypeBuilder(Class<X> underlying)
+ {
+ this.underlying = underlying;
+ }
+
+ public NewAnnotatedTypeBuilder<X> addToClass(Annotation a)
+ {
+ typeAnnotations.add(a);
+ return this;
+ }
+
+ public NewAnnotatedTypeBuilder<X> addToField(Field field, Annotation a)
+ {
+ AnnotationBuilder annotations = fields.get(field);
+ if (annotations == null)
+ {
+ annotations = new AnnotationBuilder();
+ fields.put(field, annotations);
+ }
+ annotations.add(a);
+ return this;
+ }
+
+ public NewAnnotatedTypeBuilder<X> addToMethod(Method method, Annotation a)
+ {
+ AnnotationBuilder annotations = methods.get(method);
+ if (annotations == null)
+ {
+ annotations = new AnnotationBuilder();
+ methods.put(method, annotations);
+ }
+ annotations.add(a);
+ return this;
+ }
+
+ public NewAnnotatedTypeBuilder<X> addToMethodParameter(Method method, int parameter, Annotation a)
+ {
+ Map<Integer, AnnotationBuilder> anmap = methodParameters.get(method);
+ if (anmap == null)
+ {
+ anmap = new HashMap<Integer, AnnotationBuilder>();
+ methodParameters.put(method, anmap);
+ }
+ AnnotationBuilder annotations = anmap.get(parameter);
+ if (annotations == null)
+ {
+ annotations = new AnnotationBuilder();
+ anmap.put(parameter, annotations);
+ }
+ annotations.add(a);
+ return this;
+ }
+
+ public NewAnnotatedTypeBuilder<X> addToConstructor(Constructor<X> constructor, Annotation a)
+ {
+ AnnotationBuilder annotations = constructors.get(constructor);
+ if (annotations == null)
+ {
+ annotations = new AnnotationBuilder();
+ constructors.put(constructor, annotations);
+ }
+ annotations.add(a);
+ return this;
+ }
+
+ public NewAnnotatedTypeBuilder<X> addToConstructorParameter(Constructor<X> constructor, int parameter, Annotation a)
+ {
+ Map<Integer, AnnotationBuilder> anmap = constructorParameters.get(constructor);
+ if (anmap == null)
+ {
+ anmap = new HashMap<Integer, AnnotationBuilder>();
+ constructorParameters.put(constructor, anmap);
+ }
+ AnnotationBuilder annotations = anmap.get(parameter);
+ if (annotations == null)
+ {
+ annotations = new AnnotationBuilder();
+ anmap.put(parameter, annotations);
+ }
+ annotations.add(a);
+ return this;
+ }
+
+ public AnnotatedType<X> create()
+ {
+ Map<Constructor<X>, Map<Integer, AnnotationStore>> constructorParameterAnnnotations = new HashMap<Constructor<X>, Map<Integer,AnnotationStore>>();
+ Map<Constructor<X>, AnnotationStore> constructorAnnotations = new HashMap<Constructor<X>, AnnotationStore>();
+ Map<Method, Map<Integer, AnnotationStore>> methodParameterAnnnotations = new HashMap<Method, Map<Integer,AnnotationStore>>();
+ Map<Method, AnnotationStore> methodAnnotations = new HashMap<Method, AnnotationStore>();
+ Map<Field, AnnotationStore> fieldAnnotations = new HashMap<Field, AnnotationStore>();
+
+ for (Entry<Field, AnnotationBuilder> e : fields.entrySet())
+ {
+ fieldAnnotations.put(e.getKey(), e.getValue().create());
+ }
+
+ for (Entry<Method, AnnotationBuilder> e : methods.entrySet())
+ {
+ methodAnnotations.put(e.getKey(), e.getValue().create());
+ }
+ for (Entry<Method, Map<Integer, AnnotationBuilder>> e : methodParameters.entrySet())
+ {
+ Map<Integer, AnnotationStore> parameterAnnotations = new HashMap<Integer, AnnotationStore>();
+ methodParameterAnnnotations.put(e.getKey(), parameterAnnotations);
+ for (Entry<Integer, AnnotationBuilder> pe : e.getValue().entrySet())
+ {
+ parameterAnnotations.put(pe.getKey(), pe.getValue().create());
+ }
+ }
+
+ for (Entry<Constructor<X>, AnnotationBuilder> e : constructors.entrySet())
+ {
+ constructorAnnotations.put(e.getKey(), e.getValue().create());
+ }
+ for (Entry<Constructor<X>, Map<Integer, AnnotationBuilder>> e : constructorParameters.entrySet())
+ {
+ Map<Integer, AnnotationStore> parameterAnnotations = new HashMap<Integer, AnnotationStore>();
+ constructorParameterAnnnotations.put(e.getKey(), parameterAnnotations);
+ for (Entry<Integer, AnnotationBuilder> pe : e.getValue().entrySet())
+ {
+ parameterAnnotations.put(pe.getKey(), pe.getValue().create());
+ }
+ }
+
+ return new NewAnnotatedType<X>(underlying, typeAnnotations.create(), fieldAnnotations, methodAnnotations, methodParameterAnnnotations, constructorAnnotations, constructorParameterAnnnotations);
+ }
+
+}
Property changes on: extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated/NewAnnotatedTypeBuilder.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Name: svn:eol-style
+ native
Copied: extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated/TypeClosureBuilder.java (from rev 5190, extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated/TypeStore.java)
===================================================================
--- extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated/TypeClosureBuilder.java (rev 0)
+++ extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated/TypeClosureBuilder.java 2009-12-03 15:56:38 UTC (rev 5204)
@@ -0,0 +1,48 @@
+package org.jboss.weld.extensions.util.annotated;
+
+import java.lang.reflect.Type;
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * A type closure builder
+ *
+ * @author Stuart Douglas
+ *
+ */
+class TypeClosureBuilder
+{
+
+ final Set<Type> types = new HashSet<Type>();
+
+ public TypeClosureBuilder add(Class<?> beanType)
+ {
+ Class<?> c = beanType;
+ do
+ {
+ types.add(c);
+ c = c.getSuperclass();
+ }
+ while (c != null);
+ for (Class<?> i : beanType.getInterfaces())
+ {
+ types.add(i);
+ }
+ return this;
+ }
+
+ public TypeClosureBuilder addInterfaces(Class<?> beanType)
+ {
+ for (Class<?> i : beanType.getInterfaces())
+ {
+ types.add(i);
+ }
+ return this;
+ }
+
+ public Set<Type> getTypes()
+ {
+ return types;
+ }
+
+}
Property changes on: extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated/TypeClosureBuilder.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Name: svn:eol-style
+ native
Deleted: extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated/TypeStore.java
===================================================================
--- extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated/TypeStore.java 2009-12-03 15:10:58 UTC (rev 5203)
+++ extensions/trunk/core/src/main/java/org/jboss/weld/extensions/util/annotated/TypeStore.java 2009-12-03 15:56:38 UTC (rev 5204)
@@ -1,45 +0,0 @@
-package org.jboss.weld.extensions.util.annotated;
-
-import java.lang.reflect.Type;
-import java.util.HashSet;
-import java.util.Set;
-
-/**
- *
- * @author Stuart Douglas
- *
- */
-class TypeStore
-{
-
- final Set<Type> types = new HashSet<Type>();
-
- public void add(Class<?> beanType)
- {
- Class<?> c = beanType;
- do
- {
- types.add(c);
- c = c.getSuperclass();
- }
- while (c != null);
- for (Class<?> i : beanType.getInterfaces())
- {
- types.add(i);
- }
- }
-
- public void addInterfaces(Class<?> beanType)
- {
- for (Class<?> i : beanType.getInterfaces())
- {
- types.add(i);
- }
- }
-
- public Set<Type> getTypes()
- {
- return types;
- }
-
-}
15 years, 3 months
Weld SVN: r5203 - core/trunk/tests/src/test/java/org/jboss/weld/tests/stereotypes.
by weld-commits@lists.jboss.org
Author: nickarls
Date: 2009-12-03 10:10:58 -0500 (Thu, 03 Dec 2009)
New Revision: 5203
Modified:
core/trunk/tests/src/test/java/org/jboss/weld/tests/stereotypes/StereotypesTest.java
Log:
Oops, cross-project refactor uncommitted
Modified: core/trunk/tests/src/test/java/org/jboss/weld/tests/stereotypes/StereotypesTest.java
===================================================================
--- core/trunk/tests/src/test/java/org/jboss/weld/tests/stereotypes/StereotypesTest.java 2009-12-03 13:31:01 UTC (rev 5202)
+++ core/trunk/tests/src/test/java/org/jboss/weld/tests/stereotypes/StereotypesTest.java 2009-12-03 15:10:58 UTC (rev 5203)
@@ -22,7 +22,7 @@
assert animalStereotype.getDefaultScopeType().annotationType().equals(RequestScoped.class);
assert animalStereotype.getInterceptorBindings().size() == 0;
assert !animalStereotype.isBeanNameDefaulted();
- assert !animalStereotype.isPolicy();
+ assert !animalStereotype.isAlternative();
}
@Test
@@ -32,7 +32,7 @@
assert animalStereotype.getDefaultScopeType() == null;
assert animalStereotype.getInterceptorBindings().size() == 0;
assert !animalStereotype.isBeanNameDefaulted();
- assert !animalStereotype.isPolicy();
+ assert !animalStereotype.isAlternative();
}
@Test
@@ -42,7 +42,7 @@
assert animalStereotype.getDefaultScopeType() == null;
assert animalStereotype.getInterceptorBindings().size() == 0;
assert !animalStereotype.isBeanNameDefaulted();
- assert !animalStereotype.isPolicy();
+ assert !animalStereotype.isAlternative();
}
}
15 years, 3 months