[webbeans-commits] Webbeans SVN: r2914 - in ri/trunk: api/src/main/java/javax/enterprise/inject/stereotype and 16 other directories.
webbeans-commits at lists.jboss.org
webbeans-commits at lists.jboss.org
Sun Jun 28 11:17:18 EDT 2009
Author: pete.muir at jboss.org
Date: 2009-06-28 11:17:17 -0400 (Sun, 28 Jun 2009)
New Revision: 2914
Added:
ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/TypeStore.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/MetaAnnotationStore.java
Removed:
ri/trunk/core-api/src/main/java/org/jboss/webbeans/Realizes.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WrappedWBClass.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WrappedWBField.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WrappedWBMethod.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WrappedWBParameter.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/MetaDataCache.java
ri/trunk/tests/src/test/java/org/jboss/jsr299/tck/tests/inheritance/realization/
Modified:
ri/trunk/api/src/main/java/javax/enterprise/inject/spi/BeforeBeanDiscovery.java
ri/trunk/api/src/main/java/javax/enterprise/inject/stereotype/Stereotype.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/BeanManagerImpl.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/FacadeImpl.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/Validator.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/AbstractBean.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/AbstractProducerBean.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/SimpleBean.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/bootstrap/AbstractBeanDeployer.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/bootstrap/BeanDeployer.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/bootstrap/BeforeBeanDiscoveryImpl.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/bootstrap/WebBeansBootstrap.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/event/EventObserver.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/resolution/ResolvableWBClass.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/AnnotationStore.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBAnnotationImpl.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBClassImpl.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBConstructorImpl.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBFieldImpl.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBMethodImpl.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBParameterImpl.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/MergedStereotypes.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/StereotypeModel.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/resources/ClassTransformer.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/util/Beans.java
ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/context/PassivatingContextTest.java
ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/definition/AnimalOrderStereotype.java
ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/definition/AnimalStereotype.java
ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/definition/RequestScopedAnimalStereotype.java
ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/definition/StereotypesTest.java
ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/implementation/annotatedItem/ClassAnnotatedItemTest.java
Log:
Remove realization, remove stereotype requirements, impl BeforeBeanDiscovery
Modified: ri/trunk/api/src/main/java/javax/enterprise/inject/spi/BeforeBeanDiscovery.java
===================================================================
--- ri/trunk/api/src/main/java/javax/enterprise/inject/spi/BeforeBeanDiscovery.java 2009-06-28 15:05:58 UTC (rev 2913)
+++ ri/trunk/api/src/main/java/javax/enterprise/inject/spi/BeforeBeanDiscovery.java 2009-06-28 15:17:17 UTC (rev 2914)
@@ -32,4 +32,6 @@
public void addStereotype(Class<? extends Annotation> stereotype, Annotation... stereotypeDef);
public void addInterceptorBindingType(Class<? extends Annotation> bindingType);
+
+ public void addAnnotatedType(AnnotatedType<?> type);
}
Modified: ri/trunk/api/src/main/java/javax/enterprise/inject/stereotype/Stereotype.java
===================================================================
--- ri/trunk/api/src/main/java/javax/enterprise/inject/stereotype/Stereotype.java 2009-06-28 15:05:58 UTC (rev 2913)
+++ ri/trunk/api/src/main/java/javax/enterprise/inject/stereotype/Stereotype.java 2009-06-28 15:17:17 UTC (rev 2914)
@@ -20,7 +20,6 @@
import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
-import java.lang.annotation.Annotation;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
@@ -35,21 +34,4 @@
@Retention(RUNTIME)
@Target(ANNOTATION_TYPE)
@Documented
-public @interface Stereotype
-{
-
- /**
- * Restrict the scope of the stereotyped bean
- *
- * @return the allowed scopes
- */
- public Class<? extends Annotation>[] supportedScopes() default {};
-
- /**
- * Require that stereotype beans have certain API types
- *
- * @return the required types
- */
- public Class<?>[] requiredTypes() default {};
-
-}
+public @interface Stereotype {}
Deleted: ri/trunk/core-api/src/main/java/org/jboss/webbeans/Realizes.java
===================================================================
--- ri/trunk/core-api/src/main/java/org/jboss/webbeans/Realizes.java 2009-06-28 15:05:58 UTC (rev 2913)
+++ ri/trunk/core-api/src/main/java/org/jboss/webbeans/Realizes.java 2009-06-28 15:17:17 UTC (rev 2914)
@@ -1,40 +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.webbeans;
-
-import static java.lang.annotation.ElementType.TYPE;
-import static java.lang.annotation.RetentionPolicy.RUNTIME;
-
-import java.lang.annotation.Documented;
-import java.lang.annotation.Retention;
-import java.lang.annotation.Target;
-
-/**
- * Specifies that an implementation class directly specializes its superclass,
- * of that a producer method directly specializes the method it overrides.
- *
- * @author Gavin King
- * @author Pete Muir
- */
-
- at Target(TYPE)
- at Retention(RUNTIME)
- at Documented
-public @interface Realizes
-{
-}
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/BeanManagerImpl.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/BeanManagerImpl.java 2009-06-28 15:05:58 UTC (rev 2913)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/BeanManagerImpl.java 2009-06-28 15:17:17 UTC (rev 2914)
@@ -86,7 +86,7 @@
import org.jboss.webbeans.log.Log;
import org.jboss.webbeans.log.Logging;
import org.jboss.webbeans.manager.api.WebBeansManager;
-import org.jboss.webbeans.metadata.cache.MetaDataCache;
+import org.jboss.webbeans.metadata.cache.MetaAnnotationStore;
import org.jboss.webbeans.util.Beans;
import org.jboss.webbeans.util.Proxies;
import org.jboss.webbeans.util.Reflections;
@@ -359,7 +359,7 @@
Class<?> clazz = event.getClass();
for (Annotation annotation : bindings)
{
- if (!getServices().get(MetaDataCache.class).getBindingTypeModel(annotation.annotationType()).isValid())
+ if (!getServices().get(MetaAnnotationStore.class).getBindingTypeModel(annotation.annotationType()).isValid())
{
throw new IllegalArgumentException("Not a binding type " + annotation);
}
@@ -463,7 +463,7 @@
{
for (Annotation annotation : element.getAnnotations())
{
- if (!getServices().get(MetaDataCache.class).getBindingTypeModel(annotation.annotationType()).isValid())
+ if (!getServices().get(MetaAnnotationStore.class).getBindingTypeModel(annotation.annotationType()).isValid())
{
throw new IllegalArgumentException("Not a binding type " + annotation);
}
@@ -704,7 +704,7 @@
{
creationalContext = ((CreationalContextImpl<?>) creationalContext).getCreationalContext(bean);
}
- if (getServices().get(MetaDataCache.class).getScopeModel(bean.getScopeType()).isNormal())
+ if (getServices().get(MetaAnnotationStore.class).getScopeModel(bean.getScopeType()).isNormal())
{
if (creationalContext != null || (creationalContext == null && getContext(bean.getScopeType()).get(bean) != null))
{
@@ -742,7 +742,7 @@
}
WBAnnotated<?, ?> element = ResolvableWBClass.of(injectionPoint.getType(), injectionPoint.getBindings().toArray(new Annotation[0]), this);
Bean<?> resolvedBean = getBean(element, element.getBindingsAsArray());
- if (getServices().get(MetaDataCache.class).getScopeModel(resolvedBean.getScopeType()).isNormal() && !Proxies.isTypeProxyable(injectionPoint.getType()))
+ if (getServices().get(MetaAnnotationStore.class).getScopeModel(resolvedBean.getScopeType()).isNormal() && !Proxies.isTypeProxyable(injectionPoint.getType()))
{
throw new UnproxyableResolutionException("Attempting to inject an unproxyable normal scoped bean " + resolvedBean + " into " + injectionPoint);
}
@@ -802,7 +802,7 @@
throw new AmbiguousResolutionException(element + "Resolved multiple Web Beans");
}
Bean<T> bean = (Bean<T>) beans.iterator().next();
- boolean normalScoped = getServices().get(MetaDataCache.class).getScopeModel(bean.getScopeType()).isNormal();
+ boolean normalScoped = getServices().get(MetaAnnotationStore.class).getScopeModel(bean.getScopeType()).isNormal();
if (normalScoped && !Beans.isBeanProxyable(bean))
{
throw new UnproxyableResolutionException("Normal scoped bean " + bean + " is not proxyable");
@@ -890,7 +890,7 @@
public BeanManagerImpl setCurrent(Class<? extends Annotation> scopeType)
{
- if (!getServices().get(MetaDataCache.class).getScopeModel(scopeType).isNormal())
+ if (!getServices().get(MetaAnnotationStore.class).getScopeModel(scopeType).isNormal())
{
throw new IllegalArgumentException("Scope must be a normal scope type " + scopeType);
}
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/FacadeImpl.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/FacadeImpl.java 2009-06-28 15:05:58 UTC (rev 2913)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/FacadeImpl.java 2009-06-28 15:17:17 UTC (rev 2914)
@@ -24,7 +24,7 @@
import java.util.HashSet;
import java.util.Set;
-import org.jboss.webbeans.metadata.cache.MetaDataCache;
+import org.jboss.webbeans.metadata.cache.MetaAnnotationStore;
/**
* Common implementation for binding-type-based helpers
@@ -77,7 +77,7 @@
result.addAll(bindings);
for (Annotation newAnnotation : newBindings)
{
- if (!getManager().getServices().get(MetaDataCache.class).getBindingTypeModel(newAnnotation.annotationType()).isValid())
+ if (!getManager().getServices().get(MetaAnnotationStore.class).getBindingTypeModel(newAnnotation.annotationType()).isValid())
{
throw new IllegalArgumentException(newAnnotation + " is not a binding for " + this);
}
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/Validator.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/Validator.java 2009-06-28 15:05:58 UTC (rev 2913)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/Validator.java 2009-06-28 15:17:17 UTC (rev 2914)
@@ -48,7 +48,7 @@
import org.jboss.webbeans.bootstrap.api.Service;
import org.jboss.webbeans.injection.resolution.ResolvableWBClass;
import org.jboss.webbeans.introspector.WBAnnotated;
-import org.jboss.webbeans.metadata.cache.MetaDataCache;
+import org.jboss.webbeans.metadata.cache.MetaAnnotationStore;
import org.jboss.webbeans.util.Beans;
import org.jboss.webbeans.util.ListComparator;
import org.jboss.webbeans.util.Names;
@@ -70,7 +70,7 @@
{
validateInjectionPoint(ij, beanManager);
}
- boolean normalScoped = beanManager.getServices().get(MetaDataCache.class).getScopeModel(bean.getScopeType()).isNormal();
+ boolean normalScoped = beanManager.getServices().get(MetaAnnotationStore.class).getScopeModel(bean.getScopeType()).isNormal();
if (normalScoped && !Beans.isBeanProxyable(bean))
{
throw new UnproxyableResolutionException("Normal scoped bean " + bean + " is not proxyable");
@@ -158,7 +158,7 @@
throw new AmbiguousResolutionException("The injection point " + ij + " with binding types " + Names.annotationsToString(ij.getBindings()) + " in " + ij.getBean() + " has ambiguous dependencies");
}
Bean<?> resolvedBean = (Bean<?>) resolvedBeans.iterator().next();
- if (beanManager.getServices().get(MetaDataCache.class).getScopeModel(resolvedBean.getScopeType()).isNormal() && !Proxies.isTypeProxyable(ij.getType()))
+ if (beanManager.getServices().get(MetaAnnotationStore.class).getScopeModel(resolvedBean.getScopeType()).isNormal() && !Proxies.isTypeProxyable(ij.getType()))
{
throw new UnproxyableResolutionException("The injection point " + ij + " has non-proxyable dependencies");
}
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/AbstractBean.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/AbstractBean.java 2009-06-28 15:05:58 UTC (rev 2913)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/AbstractBean.java 2009-06-28 15:17:17 UTC (rev 2914)
@@ -47,7 +47,7 @@
import org.jboss.webbeans.log.LogProvider;
import org.jboss.webbeans.log.Logging;
import org.jboss.webbeans.metadata.cache.MergedStereotypes;
-import org.jboss.webbeans.metadata.cache.MetaDataCache;
+import org.jboss.webbeans.metadata.cache.MetaAnnotationStore;
import org.jboss.webbeans.util.Reflections;
/**
@@ -292,7 +292,7 @@
private boolean checkInjectionPointsAreSerializable()
{
- boolean passivating = manager.getServices().get(MetaDataCache.class).getScopeModel(this.getScopeType()).isPassivating();
+ boolean passivating = manager.getServices().get(MetaAnnotationStore.class).getScopeModel(this.getScopeType()).isPassivating();
for (WBInjectionPoint<?, ?> injectionPoint : getAnnotatedInjectionPoints())
{
Annotation[] bindings = injectionPoint.getMetaAnnotationsAsArray(BindingType.class);
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/AbstractProducerBean.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/AbstractProducerBean.java 2009-06-28 15:05:58 UTC (rev 2913)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/AbstractProducerBean.java 2009-06-28 15:17:17 UTC (rev 2914)
@@ -45,7 +45,7 @@
import org.jboss.webbeans.introspector.WBMember;
import org.jboss.webbeans.log.LogProvider;
import org.jboss.webbeans.log.Logging;
-import org.jboss.webbeans.metadata.cache.MetaDataCache;
+import org.jboss.webbeans.metadata.cache.MetaAnnotationStore;
import org.jboss.webbeans.util.Beans;
import org.jboss.webbeans.util.Names;
import org.jboss.webbeans.util.Reflections;
@@ -206,7 +206,7 @@
{
throw new IllegalProductException("Cannot return null from a non-dependent producer method");
}
- boolean passivating = manager.getServices().get(MetaDataCache.class).getScopeModel(getScopeType()).isPassivating();
+ boolean passivating = manager.getServices().get(MetaAnnotationStore.class).getScopeModel(getScopeType()).isPassivating();
if (passivating && !Reflections.isSerializable(instance.getClass()))
{
throw new IllegalProductException("Producers cannot declare passivating scope and return a non-serializable class");
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/SimpleBean.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/SimpleBean.java 2009-06-28 15:05:58 UTC (rev 2913)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/SimpleBean.java 2009-06-28 15:17:17 UTC (rev 2914)
@@ -44,7 +44,7 @@
import org.jboss.webbeans.introspector.WBParameter;
import org.jboss.webbeans.log.LogProvider;
import org.jboss.webbeans.log.Logging;
-import org.jboss.webbeans.metadata.cache.MetaDataCache;
+import org.jboss.webbeans.metadata.cache.MetaAnnotationStore;
import org.jboss.webbeans.persistence.PersistenceApiAbstraction;
import org.jboss.webbeans.persistence.spi.JpaServices;
import org.jboss.webbeans.resources.spi.ResourceServices;
@@ -335,7 +335,7 @@
{
throw new DefinitionException("Simple bean " + type + " cannot be a parameterized type");
}
- boolean passivating = manager.getServices().get(MetaDataCache.class).getScopeModel(scopeType).isPassivating();
+ boolean passivating = manager.getServices().get(MetaAnnotationStore.class).getScopeModel(scopeType).isPassivating();
if (passivating && !_serializable)
{
throw new DefinitionException("Simple bean declaring a passivating scope must have a serializable implementation class " + toString());
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/bootstrap/AbstractBeanDeployer.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/bootstrap/AbstractBeanDeployer.java 2009-06-28 15:05:58 UTC (rev 2913)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/bootstrap/AbstractBeanDeployer.java 2009-06-28 15:17:17 UTC (rev 2914)
@@ -16,18 +16,14 @@
*/
package org.jboss.webbeans.bootstrap;
-import java.lang.annotation.Annotation;
import java.util.Set;
import javax.enterprise.event.Observes;
-import javax.enterprise.inject.BindingType;
import javax.enterprise.inject.Disposes;
import javax.enterprise.inject.Initializer;
import javax.enterprise.inject.Produces;
-import javax.enterprise.inject.deployment.DeploymentType;
import org.jboss.webbeans.BeanManagerImpl;
-import org.jboss.webbeans.Realizes;
import org.jboss.webbeans.bean.AbstractClassBean;
import org.jboss.webbeans.bean.DecoratorBean;
import org.jboss.webbeans.bean.DisposalMethodBean;
@@ -44,8 +40,6 @@
import org.jboss.webbeans.introspector.WBClass;
import org.jboss.webbeans.introspector.WBField;
import org.jboss.webbeans.introspector.WBMethod;
-import org.jboss.webbeans.introspector.WrappedWBField;
-import org.jboss.webbeans.introspector.WrappedWBMethod;
import org.jboss.webbeans.jsf.JsfApiAbstraction;
import org.jboss.webbeans.log.LogProvider;
import org.jboss.webbeans.log.Logging;
@@ -121,13 +115,6 @@
createObserverMethods(bean, bean.getAnnotatedItem());
createDisposalMethods(bean, bean.getAnnotatedItem());
- if (bean.getAnnotatedItem().isAnnotationPresent(Realizes.class))
- {
- createRealizedProducerMethods(bean, bean.getAnnotatedItem());
- createRealizedProducerFields(bean, bean.getAnnotatedItem());
- createRealizedObserverMethods(bean, bean.getAnnotatedItem());
- }
-
}
protected void createProducerMethods(AbstractClassBean<?> declaringBean, WBClass<?> annotatedClass)
@@ -154,24 +141,6 @@
manager.getResolver().addInjectionPoints(bean.getAnnotatedInjectionPoints());
}
- protected void createRealizedProducerMethods(AbstractClassBean<?> declaringBean, WBClass<?> realizingClass)
- {
- WBClass<?> realizedClass = realizingClass.getSuperclass();
- for (WBMethod<?> realizedMethod : realizedClass.getDeclaredAnnotatedMethods(Produces.class))
- {
- createProducerMethod(declaringBean, realizeProducerMethod(realizedMethod, realizingClass));
- }
- }
-
- protected void createRealizedProducerFields(AbstractClassBean<?> declaringBean, WBClass<?> realizingClass)
- {
- WBClass<?> realizedClass = realizingClass.getSuperclass();
- for (final WBField<?> realizedField : realizedClass.getDeclaredAnnotatedFields(Produces.class))
- {
- createProducerField(declaringBean, realizeProducerField(realizedField, realizingClass));
- }
- }
-
protected <T> void createProducerField(AbstractClassBean<?> declaringBean, WBField<T> field)
{
ProducerFieldBean<T> bean = ProducerFieldBean.of(field, declaringBean, manager);
@@ -194,11 +163,6 @@
}
}
- protected void createRealizedObserverMethods(AbstractClassBean<?> declaringBean, WBClass<?> realizingClass)
- {
- createObserverMethods(declaringBean, realizingClass.getSuperclass());
- }
-
protected void createObserverMethod(RIBean<?> declaringBean, WBMethod<?> method)
{
ObserverImpl<?> observer = ObserverFactory.create(method, declaringBean, manager);
@@ -257,75 +221,7 @@
{
return type.getNoArgsConstructor() != null || type.getAnnotatedConstructors(Initializer.class).size() > 0;
}
-
- private static <T> WBMethod<T> realizeProducerMethod(final WBMethod<T> method, final WBClass<?> realizingClass)
- {
- return new WrappedWBMethod<T>(method, realizingClass.getMetaAnnotations(BindingType.class))
- {
-
- @Override
- public Set<Annotation> getMetaAnnotations(Class<? extends Annotation> metaAnnotationType)
- {
- if (metaAnnotationType.equals(DeploymentType.class))
- {
- return realizingClass.getMetaAnnotations(DeploymentType.class);
- }
- else
- {
- return super.getMetaAnnotations(metaAnnotationType);
- }
- }
-
- @Override
- public Set<Annotation> getDeclaredMetaAnnotations(Class<? extends Annotation> metaAnnotationType)
- {
- if (metaAnnotationType.equals(DeploymentType.class))
- {
- return realizingClass.getDeclaredMetaAnnotations(DeploymentType.class);
- }
- else
- {
- return super.getDeclaredMetaAnnotations(metaAnnotationType);
- }
- }
-
- };
- }
-
- private static <T> WBField<T> realizeProducerField(final WBField<T> field, final WBClass<?> realizingClass)
- {
- return new WrappedWBField<T>(field, realizingClass.getMetaAnnotations(BindingType.class))
- {
-
- @Override
- public Set<Annotation> getMetaAnnotations(Class<? extends Annotation> metaAnnotationType)
- {
- if (metaAnnotationType.equals(DeploymentType.class))
- {
- return realizingClass.getMetaAnnotations(DeploymentType.class);
- }
- else
- {
- return super.getMetaAnnotations(metaAnnotationType);
- }
- }
-
- @Override
- public Set<Annotation> getDeclaredMetaAnnotations(Class<? extends Annotation> metaAnnotationType)
- {
- if (metaAnnotationType.equals(DeploymentType.class))
- {
- return realizingClass.getDeclaredMetaAnnotations(DeploymentType.class);
- }
- else
- {
- return super.getDeclaredMetaAnnotations(metaAnnotationType);
- }
- }
-
- };
- }
-
+
public BeanDeployerEnvironment getBeanDeployerEnvironment()
{
return environment;
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/bootstrap/BeanDeployer.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/bootstrap/BeanDeployer.java 2009-06-28 15:05:58 UTC (rev 2913)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/bootstrap/BeanDeployer.java 2009-06-28 15:17:17 UTC (rev 2914)
@@ -21,6 +21,7 @@
import java.util.Set;
import javax.decorator.Decorator;
+import javax.enterprise.inject.spi.AnnotatedType;
import org.jboss.webbeans.BeanManagerImpl;
import org.jboss.webbeans.bean.RIBean;
@@ -65,6 +66,16 @@
}
return this;
}
+
+ public AbstractBeanDeployer addClass(AnnotatedType<?> clazz)
+ {
+ ClassTransformer classTransformer = getManager().getServices().get(ClassTransformer.class);
+ if (!clazz.getJavaClass().isAnnotation() && !clazz.getJavaClass().isEnum())
+ {
+ classes.add(classTransformer.loadClass(clazz));
+ }
+ return this;
+ }
public AbstractBeanDeployer addClasses(Iterable<Class<?>> classes)
{
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/bootstrap/BeforeBeanDiscoveryImpl.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/bootstrap/BeforeBeanDiscoveryImpl.java 2009-06-28 15:05:58 UTC (rev 2913)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/bootstrap/BeforeBeanDiscoveryImpl.java 2009-06-28 15:17:17 UTC (rev 2914)
@@ -2,31 +2,52 @@
import java.lang.annotation.Annotation;
+import javax.enterprise.inject.spi.AnnotatedType;
import javax.enterprise.inject.spi.BeforeBeanDiscovery;
+import org.jboss.webbeans.BeanManagerImpl;
+import org.jboss.webbeans.literal.BindingTypeLiteral;
+import org.jboss.webbeans.literal.InterceptorBindingTypeLiteral;
+import org.jboss.webbeans.literal.ScopeTypeLiteral;
+import org.jboss.webbeans.metadata.TypeStore;
+
public class BeforeBeanDiscoveryImpl implements BeforeBeanDiscovery
{
+
+ private final TypeStore typeStore;
+ private final BeanDeployer beanDeployer;
+
+ public BeforeBeanDiscoveryImpl(BeanManagerImpl manager, BeanDeployer beanDeployer)
+ {
+ this.typeStore = manager.getServices().get(TypeStore.class);
+ this.beanDeployer = beanDeployer;
+ }
public void addBindingType(Class<? extends Annotation> bindingType)
{
-
+ typeStore.add(bindingType, new BindingTypeLiteral());
}
public void addInterceptorBindingType(Class<? extends Annotation> bindingType)
{
- throw new RuntimeException("Not Yet Implemented");
+ typeStore.add(bindingType, new InterceptorBindingTypeLiteral());
}
public void addScopeType(Class<? extends Annotation> scopeType,
boolean normal, boolean passivating)
{
- throw new RuntimeException("Not Yet Implemented");
+ typeStore.add(scopeType, new ScopeTypeLiteral(normal, passivating));
}
public void addStereotype(Class<? extends Annotation> stereotype,
Annotation... stereotypeDef)
{
- throw new RuntimeException("Not Yet Implemented");
+ throw new UnsupportedOperationException();
}
+
+ public void addAnnotatedType(AnnotatedType<?> type)
+ {
+ beanDeployer.addClass(type);
+ }
}
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/bootstrap/WebBeansBootstrap.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/bootstrap/WebBeansBootstrap.java 2009-06-28 15:05:58 UTC (rev 2913)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/bootstrap/WebBeansBootstrap.java 2009-06-28 15:17:17 UTC (rev 2914)
@@ -51,7 +51,8 @@
import org.jboss.webbeans.log.Log;
import org.jboss.webbeans.log.Logging;
import org.jboss.webbeans.messaging.spi.JmsServices;
-import org.jboss.webbeans.metadata.cache.MetaDataCache;
+import org.jboss.webbeans.metadata.TypeStore;
+import org.jboss.webbeans.metadata.cache.MetaAnnotationStore;
import org.jboss.webbeans.persistence.PersistenceApiAbstraction;
import org.jboss.webbeans.persistence.spi.JpaServices;
import org.jboss.webbeans.resources.ClassTransformer;
@@ -134,9 +135,10 @@
getServices().add(ServletApiAbstraction.class, new ServletApiAbstraction(resourceLoader));
// Temporary workaround to provide context for building annotated class
// TODO expose AnnotatedClass on SPI and allow container to provide impl of this via ResourceLoader
- getServices().add(ClassTransformer.class, new ClassTransformer());
- getServices().add(MetaDataCache.class, new MetaDataCache(getServices().get(ClassTransformer.class)));
getServices().add(Validator.class, new Validator());
+ getServices().add(TypeStore.class, new TypeStore());
+ getServices().add(ClassTransformer.class, new ClassTransformer(getServices().get(TypeStore.class)));
+ getServices().add(MetaAnnotationStore.class, new MetaAnnotationStore(getServices().get(ClassTransformer.class)));
}
public BeanManagerImpl getManager()
@@ -207,7 +209,7 @@
BeanDeployer beanDeployer = new BeanDeployer(manager, ejbDescriptors);
- fireBeforeBeanDiscoveryEvent();
+ fireBeforeBeanDiscoveryEvent(beanDeployer);
registerBeans(getServices().get(WebBeanDiscovery.class).discoverWebBeanClasses(), beanDeployer);
fireAfterBeanDiscoveryEvent();
log.debug("Web Beans initialized. Validating beans.");
@@ -241,12 +243,12 @@
log.debug("Enabled interceptor types: " + manager.getEnabledInterceptorClasses());
}
- private void fireBeforeBeanDiscoveryEvent()
+ private void fireBeforeBeanDiscoveryEvent(BeanDeployer beanDeployer)
{
- BeforeBeanDiscoveryImpl event = new BeforeBeanDiscoveryImpl();
+ BeforeBeanDiscoveryImpl event = new BeforeBeanDiscoveryImpl(getManager(), beanDeployer);
try
{
- manager.fireEvent(event);
+ getManager().fireEvent(event);
}
catch (Exception e)
{
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/event/EventObserver.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/event/EventObserver.java 2009-06-28 15:05:58 UTC (rev 2913)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/event/EventObserver.java 2009-06-28 15:17:17 UTC (rev 2914)
@@ -25,7 +25,7 @@
import javax.enterprise.inject.Current;
import org.jboss.webbeans.BeanManagerImpl;
-import org.jboss.webbeans.metadata.cache.MetaDataCache;
+import org.jboss.webbeans.metadata.cache.MetaAnnotationStore;
import org.jboss.webbeans.util.Reflections;
import org.jboss.webbeans.util.Strings;
@@ -140,7 +140,7 @@
boolean found = false;
for (Annotation y : bindings)
{
- if (manager.getServices().get(MetaDataCache.class).getBindingTypeModel(x.annotationType()).isEqual(x, y))
+ if (manager.getServices().get(MetaAnnotationStore.class).getBindingTypeModel(x.annotationType()).isEqual(x, y))
{
found = true;
}
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/resolution/ResolvableWBClass.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/resolution/ResolvableWBClass.java 2009-06-28 15:05:58 UTC (rev 2913)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/resolution/ResolvableWBClass.java 2009-06-28 15:17:17 UTC (rev 2914)
@@ -35,6 +35,7 @@
import org.jboss.webbeans.introspector.AnnotationStore;
import org.jboss.webbeans.introspector.WBAnnotated;
import org.jboss.webbeans.introspector.jlr.AbstractWBAnnotated;
+import org.jboss.webbeans.metadata.TypeStore;
import org.jboss.webbeans.util.Names;
import org.jboss.webbeans.util.Reflections;
@@ -128,12 +129,12 @@
private ResolvableWBClass(Type type, Annotation[] annotations, BeanManagerImpl manager)
{
- this(type, AnnotationStore.of(annotations, EMPTY_ANNOTATION_ARRAY), manager);
+ this(type, AnnotationStore.of(annotations, EMPTY_ANNOTATION_ARRAY, manager.getServices().get(TypeStore.class)), manager);
}
private ResolvableWBClass(Type type, Set<Annotation>annotations, BeanManagerImpl manager)
{
- this(type, AnnotationStore.of(annotations, EMPTY_ANNOTATION_SET), manager);
+ this(type, AnnotationStore.of(annotations, EMPTY_ANNOTATION_SET, manager.getServices().get(TypeStore.class)), manager);
}
@Override
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/AnnotationStore.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/AnnotationStore.java 2009-06-28 15:05:58 UTC (rev 2913)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/AnnotationStore.java 2009-06-28 15:17:17 UTC (rev 2914)
@@ -30,6 +30,7 @@
import javax.enterprise.inject.BindingType;
import org.jboss.webbeans.literal.CurrentLiteral;
+import org.jboss.webbeans.metadata.TypeStore;
import org.jboss.webbeans.util.collections.multi.SetHashMultiMap;
import org.jboss.webbeans.util.collections.multi.SetMultiMap;
@@ -81,22 +82,22 @@
* @param annotatedElement
* @return
*/
- public static AnnotationStore of(AnnotatedElement annotatedElement)
+ public static AnnotationStore of(AnnotatedElement annotatedElement, TypeStore typeStore)
{
- return new AnnotationStore(buildAnnotationMap(annotatedElement.getAnnotations()), buildAnnotationMap(annotatedElement.getDeclaredAnnotations()));
+ return new AnnotationStore(buildAnnotationMap(annotatedElement.getAnnotations()), buildAnnotationMap(annotatedElement.getDeclaredAnnotations()), typeStore);
}
- public static AnnotationStore of(Annotation[] annotations, Annotation[] declaredAnnotations)
+ public static AnnotationStore of(Annotation[] annotations, Annotation[] declaredAnnotations, TypeStore typeStore)
{
- return new AnnotationStore(buildAnnotationMap(annotations), buildAnnotationMap(declaredAnnotations));
+ return new AnnotationStore(buildAnnotationMap(annotations), buildAnnotationMap(declaredAnnotations), typeStore);
}
- public static AnnotationStore of(Set<Annotation> annotations, Set<Annotation> declaredAnnotations)
+ public static AnnotationStore of(Set<Annotation> annotations, Set<Annotation> declaredAnnotations, TypeStore typeStore)
{
- return new AnnotationStore(buildAnnotationMap(annotations), buildAnnotationMap(declaredAnnotations));
+ return new AnnotationStore(buildAnnotationMap(annotations), buildAnnotationMap(declaredAnnotations), typeStore);
}
- public static AnnotationStore wrap(AnnotationStore annotationStore, Set<Annotation> annotations, Set<Annotation> declaredAnnotations)
+ public static AnnotationStore wrap(AnnotationStore annotationStore, Set<Annotation> annotations, Set<Annotation> declaredAnnotations, TypeStore typeStore)
{
Map<Class<? extends Annotation>, Annotation> annotationMap = new HashMap<Class<? extends Annotation>, Annotation>();
annotationMap.putAll(buildAnnotationMap(annotations));
@@ -106,7 +107,7 @@
declaredAnnotationMap.putAll(buildAnnotationMap(declaredAnnotations));
declaredAnnotationMap.putAll(annotationStore.getDeclaredAnnotationMap());
- return new AnnotationStore(annotationMap, declaredAnnotationMap);
+ return new AnnotationStore(annotationMap, declaredAnnotationMap, typeStore);
}
// The annotation map (annotation type -> annotation) of the item
@@ -134,7 +135,7 @@
* @param annotationMap A map of annotation to register
*
*/
- protected AnnotationStore(Map<Class<? extends Annotation>, Annotation> annotationMap, Map<Class<? extends Annotation>, Annotation> declaredAnnotationMap)
+ protected AnnotationStore(Map<Class<? extends Annotation>, Annotation> annotationMap, Map<Class<? extends Annotation>, Annotation> declaredAnnotationMap, TypeStore typeStore)
{
if (annotationMap == null)
{
@@ -145,14 +146,8 @@
this.metaAnnotationMap = new SetHashMultiMap<Class<? extends Annotation>, Annotation>();
for (Annotation annotation : annotationMap.values())
{
- for (Annotation metaAnnotation : annotation.annotationType().getAnnotations())
- {
- // Only map meta-annotations we are interested in
- if (MAPPED_METAANNOTATIONS.contains(metaAnnotation.annotationType()))
- {
- metaAnnotationMap.put(metaAnnotation.annotationType(), annotation);
- }
- }
+ addMetaAnnotations(metaAnnotationMap, annotation, annotation.annotationType().getAnnotations());
+ addMetaAnnotations(metaAnnotationMap, annotation, typeStore.get(annotation.annotationType()));
annotationSet.add(annotation);
}
@@ -163,20 +158,39 @@
this.declaredAnnotationMap = declaredAnnotationMap;
this.declaredAnnotationSet = new HashSet<Annotation>();
this.declaredMetaAnnotationMap = new SetHashMultiMap<Class<? extends Annotation>, Annotation>();
- for (Annotation annotation : declaredAnnotationMap.values())
+ for (Annotation declaredAnnotation : declaredAnnotationMap.values())
{
- for (Annotation metaAnnotation : annotation.annotationType().getAnnotations())
- {
- // Only map meta-annotations we are interested in
- if (MAPPED_METAANNOTATIONS.contains(metaAnnotation.annotationType()))
- {
- declaredMetaAnnotationMap.put(metaAnnotation.annotationType(), annotation);
- }
- }
- declaredAnnotationSet.add(annotation);
+ addMetaAnnotations(declaredMetaAnnotationMap, declaredAnnotation, declaredAnnotation.annotationType().getAnnotations());
+ addMetaAnnotations(declaredMetaAnnotationMap, declaredAnnotation, typeStore.get(declaredAnnotation.annotationType()));
+ declaredAnnotationSet.add(declaredAnnotation);
}
}
+ private static void addMetaAnnotations(SetMultiMap<Class<? extends Annotation>, Annotation> metaAnnotationMap, Annotation annotation, Annotation[] metaAnnotations)
+ {
+ for (Annotation metaAnnotation : metaAnnotations)
+ {
+ addMetaAnnotation(metaAnnotationMap, annotation, metaAnnotation.annotationType());
+ }
+ }
+
+ private static void addMetaAnnotations(SetMultiMap<Class<? extends Annotation>, Annotation> metaAnnotationMap, Annotation annotation, Iterable<Annotation> metaAnnotations)
+ {
+ for (Annotation metaAnnotation : metaAnnotations)
+ {
+ addMetaAnnotation(metaAnnotationMap, annotation, metaAnnotation.annotationType());
+ }
+ }
+
+ private static void addMetaAnnotation(SetMultiMap<Class<? extends Annotation>, Annotation> metaAnnotationMap, Annotation annotation, Class<? extends Annotation> metaAnnotationType)
+ {
+ // Only map meta-annotations we are interested in
+ if (MAPPED_METAANNOTATIONS.contains(metaAnnotationType))
+ {
+ metaAnnotationMap.put(metaAnnotationType, annotation);
+ }
+ }
+
public Set<Annotation> getAnnotations()
{
return Collections.unmodifiableSet(annotationSet);
Deleted: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WrappedWBClass.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WrappedWBClass.java 2009-06-28 15:05:58 UTC (rev 2913)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WrappedWBClass.java 2009-06-28 15:17:17 UTC (rev 2914)
@@ -1,88 +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.webbeans.introspector;
-
-import java.lang.annotation.Annotation;
-import java.util.Set;
-
-public class WrappedWBClass<T> extends ForwardingWBClass<T>
-{
-
- private final WBClass<T> delegate;
- private AnnotationStore annotationStore;
-
- public WrappedWBClass(WBClass<T> clazz, Set<Annotation> extraAnnotations, Set<Annotation> extraDeclaredAnnotations)
- {
- this.delegate = clazz;
- this.annotationStore = AnnotationStore.wrap(clazz.getAnnotationStore(), extraAnnotations, extraDeclaredAnnotations);
- }
-
- @Override
- protected WBClass<T> delegate()
- {
- return delegate;
- }
-
- @Override
- public AnnotationStore getAnnotationStore()
- {
- return annotationStore;
- }
-
- public <A extends Annotation> A getAnnotation(Class<A> annotationType)
- {
- return getAnnotationStore().getAnnotation(annotationType);
- }
-
- public Set<Annotation> getAnnotations()
- {
- return getAnnotationStore().getAnnotations();
- }
-
- public Set<Annotation> getMetaAnnotations(Class<? extends Annotation> metaAnnotationType)
- {
- return getAnnotationStore().getMetaAnnotations(metaAnnotationType);
- }
-
- public Annotation[] getMetaAnnotationsAsArray(Class<? extends Annotation> metaAnnotationType)
- {
- return getAnnotationStore().getMetaAnnotationsAsArray(metaAnnotationType);
- }
-
- @Deprecated
- public Set<Annotation> getBindings()
- {
- return getAnnotationStore().getBindings();
- }
-
- @Deprecated
- public Annotation[] getBindingsAsArray()
- {
- return getAnnotationStore().getBindingsAsArray();
- }
-
- public boolean isAnnotationPresent(Class<? extends Annotation> annotationType)
- {
- return getAnnotationStore().isAnnotationPresent(annotationType);
- }
-
- public Set<Annotation> getDeclaredMetaAnnotations(Class<? extends Annotation> metaAnnotationType)
- {
- return getAnnotationStore().getDeclaredMetaAnnotations(metaAnnotationType);
- }
-
-}
Deleted: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WrappedWBField.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WrappedWBField.java 2009-06-28 15:05:58 UTC (rev 2913)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WrappedWBField.java 2009-06-28 15:17:17 UTC (rev 2914)
@@ -1,107 +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.webbeans.introspector;
-import java.lang.annotation.Annotation;
-import java.util.Set;
-
-public class WrappedWBField<T> extends ForwardingWBField<T>
-{
-
- private final WBField<T> delegate;
- private AnnotationStore annotationStore;
-
- public WrappedWBField(WBField<T> field, Set<Annotation> extraAnnotations)
- {
- this.delegate = field;
- this.annotationStore = AnnotationStore.wrap(field.getAnnotationStore(), extraAnnotations, extraAnnotations);
- }
-
- @Override
- protected WBField<T> delegate()
- {
- return delegate;
- }
-
- @Override
- public AnnotationStore getAnnotationStore()
- {
- return annotationStore;
- }
-
- /**
- * @see org.jboss.webbeans.introspector.WBAnnotated
- */
- public <A extends Annotation> A getAnnotation(Class<A> annotationType)
- {
- return getAnnotationStore().getAnnotation(annotationType);
- }
-
- /**
- * @see org.jboss.webbeans.introspector.WBAnnotated
- */
- public Set<Annotation> getAnnotations()
- {
- return getAnnotationStore().getAnnotations();
- }
-
- /**
- * @see org.jboss.webbeans.introspector.WBAnnotated
- */
- public Set<Annotation> getMetaAnnotations(Class<? extends Annotation> metaAnnotationType)
- {
- return getAnnotationStore().getMetaAnnotations(metaAnnotationType);
- }
-
- /**
- * @see org.jboss.webbeans.introspector.WBAnnotated
- */
- public Annotation[] getMetaAnnotationsAsArray(Class<? extends Annotation> metaAnnotationType)
- {
- return getAnnotationStore().getMetaAnnotationsAsArray(metaAnnotationType);
- }
-
- /**
- * @see org.jboss.webbeans.introspector.WBAnnotated
- */
- @Deprecated
- public Set<Annotation> getBindings()
- {
- return getAnnotationStore().getBindings();
- }
-
- /**
- * @see org.jboss.webbeans.introspector.WBAnnotated
- */
- @Deprecated
- public Annotation[] getBindingsAsArray()
- {
- return getAnnotationStore().getBindingsAsArray();
- }
-
- /**
- * @see org.jboss.webbeans.introspector.WBAnnotated
- */
- public boolean isAnnotationPresent(Class<? extends Annotation> annotationType)
- {
- return getAnnotationStore().isAnnotationPresent(annotationType);
- }
-
- public Set<Annotation> getDeclaredMetaAnnotations(Class<? extends Annotation> metaAnnotationType)
- {
- return getAnnotationStore().getDeclaredMetaAnnotations(metaAnnotationType);
- }
-
-}
Deleted: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WrappedWBMethod.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WrappedWBMethod.java 2009-06-28 15:05:58 UTC (rev 2913)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WrappedWBMethod.java 2009-06-28 15:17:17 UTC (rev 2914)
@@ -1,109 +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.webbeans.introspector;
-
-import java.lang.annotation.Annotation;
-import java.util.Set;
-
-public class WrappedWBMethod<T> extends ForwardingWBMethod<T>
-{
-
- private final WBMethod<T> delegate;
- private AnnotationStore annotationStore;
-
- public WrappedWBMethod(WBMethod<T> method, Set<Annotation> extraAnnotations)
- {
- this.delegate = method;
- this.annotationStore = AnnotationStore.wrap(method.getAnnotationStore(), extraAnnotations, extraAnnotations);
- }
-
- @Override
- protected WBMethod<T> delegate()
- {
- return delegate;
- }
-
- @Override
- public AnnotationStore getAnnotationStore()
- {
- return annotationStore;
- }
-
- /**
- * @see org.jboss.webbeans.introspector.WBAnnotated
- */
- public <A extends Annotation> A getAnnotation(Class<A> annotationType)
- {
- return getAnnotationStore().getAnnotation(annotationType);
- }
-
- /**
- * @see org.jboss.webbeans.introspector.WBAnnotated
- */
- public Set<Annotation> getAnnotations()
- {
- return getAnnotationStore().getAnnotations();
- }
-
- /**
- * @see org.jboss.webbeans.introspector.WBAnnotated
- */
- public Set<Annotation> getMetaAnnotations(Class<? extends Annotation> metaAnnotationType)
- {
- return getAnnotationStore().getMetaAnnotations(metaAnnotationType);
- }
-
- /**
- * @see org.jboss.webbeans.introspector.WBAnnotated
- */
- public Annotation[] getMetaAnnotationsAsArray(Class<? extends Annotation> metaAnnotationType)
- {
- return getAnnotationStore().getMetaAnnotationsAsArray(metaAnnotationType);
- }
-
- /**
- * @see org.jboss.webbeans.introspector.WBAnnotated
- */
- @Deprecated
- public Set<Annotation> getBindings()
- {
- return getAnnotationStore().getBindings();
- }
-
- /**
- * @see org.jboss.webbeans.introspector.WBAnnotated
- */
- @Deprecated
- public Annotation[] getBindingsAsArray()
- {
- return getAnnotationStore().getBindingsAsArray();
- }
-
- /**
- * @see org.jboss.webbeans.introspector.WBAnnotated
- */
- public boolean isAnnotationPresent(Class<? extends Annotation> annotationType)
- {
- return getAnnotationStore().isAnnotationPresent(annotationType);
- }
-
- public Set<Annotation> getDeclaredMetaAnnotations(Class<? extends Annotation> metaAnnotationType)
- {
- return getAnnotationStore().getDeclaredMetaAnnotations(metaAnnotationType);
- }
-
-}
Deleted: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WrappedWBParameter.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WrappedWBParameter.java 2009-06-28 15:05:58 UTC (rev 2913)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WrappedWBParameter.java 2009-06-28 15:17:17 UTC (rev 2914)
@@ -1,114 +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.webbeans.introspector;
-
-import java.lang.annotation.Annotation;
-import java.util.Set;
-
-public class WrappedWBParameter<T> extends ForwardingWBParameter<T>
-{
-
- public static <T> WrappedWBParameter<T> of(WBParameter<T> parameter, Set<Annotation> extraAnnotations)
- {
- return new WrappedWBParameter<T>(parameter, extraAnnotations);
- }
-
- private final WBParameter<T> delegate;
- private AnnotationStore annotationStore;
-
- public WrappedWBParameter(WBParameter<T> parameter, Set<Annotation> extraAnnotations)
- {
- this.delegate = parameter;
- this.annotationStore = AnnotationStore.wrap(parameter.getAnnotationStore(), extraAnnotations, extraAnnotations);
- }
-
- @Override
- protected WBParameter<T> delegate()
- {
- return delegate;
- }
-
- @Override
- public AnnotationStore getAnnotationStore()
- {
- return annotationStore;
- }
-
- /**
- * @see org.jboss.webbeans.introspector.WBAnnotated
- */
- public <A extends Annotation> A getAnnotation(Class<A> annotationType)
- {
- return getAnnotationStore().getAnnotation(annotationType);
- }
-
- /**
- * @see org.jboss.webbeans.introspector.WBAnnotated
- */
- public Set<Annotation> getAnnotations()
- {
- return getAnnotationStore().getAnnotations();
- }
-
- /**
- * @see org.jboss.webbeans.introspector.WBAnnotated
- */
- public Set<Annotation> getMetaAnnotations(Class<? extends Annotation> metaAnnotationType)
- {
- return getAnnotationStore().getMetaAnnotations(metaAnnotationType);
- }
-
- /**
- * @see org.jboss.webbeans.introspector.WBAnnotated
- */
- public Annotation[] getMetaAnnotationsAsArray(Class<? extends Annotation> metaAnnotationType)
- {
- return getAnnotationStore().getMetaAnnotationsAsArray(metaAnnotationType);
- }
-
- /**
- * @see org.jboss.webbeans.introspector.WBAnnotated
- */
- @Deprecated
- public Set<Annotation> getBindings()
- {
- return getAnnotationStore().getBindings();
- }
-
- /**
- * @see org.jboss.webbeans.introspector.WBAnnotated
- */
- @Deprecated
- public Annotation[] getBindingsAsArray()
- {
- return getAnnotationStore().getBindingsAsArray();
- }
-
- /**
- * @see org.jboss.webbeans.introspector.WBAnnotated
- */
- public boolean isAnnotationPresent(Class<? extends Annotation> annotationType)
- {
- return getAnnotationStore().isAnnotationPresent(annotationType);
- }
-
- public Set<Annotation> getDeclaredMetaAnnotations(Class<? extends Annotation> metaAnnotationType)
- {
- return getAnnotationStore().getDeclaredMetaAnnotations(metaAnnotationType);
- }
-
-}
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBAnnotationImpl.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBAnnotationImpl.java 2009-06-28 15:05:58 UTC (rev 2913)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBAnnotationImpl.java 2009-06-28 15:17:17 UTC (rev 2914)
@@ -70,14 +70,14 @@
*/
protected WBAnnotationImpl(Class<T> annotationType, ClassTransformer classTransformer)
{
- super(AnnotationStore.of(annotationType), annotationType, annotationType, classTransformer);
+ super(AnnotationStore.of(annotationType, classTransformer.getTypeStore()), annotationType, annotationType, classTransformer);
this.clazz = annotationType;
members = new HashSet<WBMethod<?>>();
annotatedMembers = new SetHashMultiMap<Class<? extends Annotation>, WBMethod<?>>();
this.namedMembers = new HashMap<String, WBMethod<?>>();
for (Method member : clazz.getDeclaredMethods())
{
- WBMethod<?> annotatedMethod = WBMethodImpl.of(member, this);
+ WBMethod<?> annotatedMethod = WBMethodImpl.of(member, this, classTransformer);
members.add(annotatedMethod);
for (Annotation annotation : annotatedMethod.getAnnotations())
{
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBClassImpl.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBClassImpl.java 2009-06-28 15:05:58 UTC (rev 2913)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBClassImpl.java 2009-06-28 15:17:17 UTC (rev 2914)
@@ -29,6 +29,8 @@
import java.util.Map;
import java.util.Set;
+import javax.enterprise.inject.spi.AnnotatedType;
+
import org.jboss.webbeans.introspector.AnnotationStore;
import org.jboss.webbeans.introspector.ConstructorSignature;
import org.jboss.webbeans.introspector.MethodSignature;
@@ -53,16 +55,16 @@
*/
public class WBClassImpl<T> extends AbstractWBType<T> implements WBClass<T>
{
-
+
private static List<Class<?>> NO_ARGUMENTS = Collections.emptyList();
-
+
// The set of abstracted fields
private final Set<WBField<?>> fields;
// The map from annotation type to abstracted field with annotation
private final SetMultiMap<Class<? extends Annotation>, WBField<?>> annotatedFields;
// The map from annotation type to abstracted field with meta-annotation
private final SetMultiMap<Class<? extends Annotation>, WBField<?>> metaAnnotatedFields;
-
+
// The set of abstracted fields
private final Set<WBField<?>> declaredFields;
private final Map<String, WBField<?>> declaredFieldsByName;
@@ -70,7 +72,7 @@
private final SetMultiMap<Class<? extends Annotation>, WBField<?>> declaredAnnotatedFields;
// The map from annotation type to abstracted field with meta-annotation
private final SetMultiMap<Class<? extends Annotation>, WBField<?>> declaredMetaAnnotatedFields;
-
+
// The set of abstracted methods
private final Set<WBMethod<?>> methods;
private final Map<MethodSignature, WBMethod<?>> declaredMethodsBySignature;
@@ -79,14 +81,14 @@
private final SetMultiMap<Class<? extends Annotation>, WBMethod<?>> annotatedMethods;
// The map from annotation type to method with a parameter with annotation
private final SetMultiMap<Class<? extends Annotation>, WBMethod<?>> methodsByAnnotatedParameters;
-
+
// The set of abstracted methods
private final Set<WBMethod<?>> declaredMethods;
// The map from annotation type to abstracted method with annotation
private final SetMultiMap<Class<? extends Annotation>, WBMethod<?>> declaredAnnotatedMethods;
// The map from annotation type to method with a parameter with annotation
private final SetMultiMap<Class<? extends Annotation>, WBMethod<?>> declaredMethodsByAnnotatedParameters;
-
+
// The set of abstracted constructors
private final Set<WBConstructor<T>> constructors;
private final Map<ConstructorSignature, WBConstructor<?>> declaredConstructorsBySignature;
@@ -94,26 +96,32 @@
private final SetMultiMap<Class<? extends Annotation>, WBConstructor<T>> annotatedConstructors;
// The map from class list to abstracted constructor
private final Map<List<Class<?>>, WBConstructor<T>> constructorsByArgumentMap;
-
+
private final SetMultiMap<Class<? extends Annotation>, WBConstructor<?>> constructorsByAnnotatedParameters;
-
+
// Cached string representation
private String toString;
-
+
private final boolean _nonStaticMemberClass;
private final boolean _abstract;
private final boolean _enum;
-
public static <T> WBClass<T> of(Class<T> clazz, ClassTransformer classTransformer)
{
- return new WBClassImpl<T>(clazz, clazz, clazz.getAnnotations(), clazz.getDeclaredAnnotations(), classTransformer);
+ AnnotationStore annotationStore = AnnotationStore.of(clazz.getAnnotations(), clazz.getDeclaredAnnotations(), classTransformer.getTypeStore());
+ return new WBClassImpl<T>(clazz, clazz, annotationStore, classTransformer);
}
+
+ public static <T> WBClass<T> of(AnnotatedType<T> annotatedType, ClassTransformer classTransformer)
+ {
+ AnnotationStore annotationStore = AnnotationStore.of(annotatedType.getAnnotations(), annotatedType.getAnnotations(), classTransformer.getTypeStore());
+ return new WBClassImpl<T>(annotatedType.getJavaClass(), annotatedType.getBaseType(), annotationStore, classTransformer);
+ }
- private WBClassImpl(Class<T> rawType, Type type, Annotation[] annotations, Annotation[] declaredAnnotations, ClassTransformer classTransformer)
+ private WBClassImpl(Class<T> rawType, Type type, AnnotationStore annotationStore, ClassTransformer classTransformer)
{
- super(AnnotationStore.of(annotations, declaredAnnotations), rawType, type, classTransformer);
-
+ super(annotationStore, rawType, type, classTransformer);
+
this.fields = new HashSet<WBField<?>>();
this.annotatedFields = new SetHashMultiMap<Class<? extends Annotation>, WBField<?>>();
this.metaAnnotatedFields = new SetHashMultiMap<Class<? extends Annotation>, WBField<?>>();
@@ -132,7 +140,7 @@
{
field.setAccessible(true);
}
- WBField<?> annotatedField = new WBFieldImpl<Object>(field, this);
+ WBField<?> annotatedField = new WBFieldImpl<Object>(field, this, classTransformer);
this.fields.add(annotatedField);
if (c == rawType)
{
@@ -155,10 +163,10 @@
}
}
}
-
+
}
}
-
+
this.constructors = new HashSet<WBConstructor<T>>();
this.constructorsByArgumentMap = new HashMap<List<Class<?>>, WBConstructor<T>>();
this.annotatedConstructors = new SetHashMultiMap<Class<? extends Annotation>, WBConstructor<T>>();
@@ -168,16 +176,16 @@
{
@SuppressWarnings("unchecked")
Constructor<T> c = (Constructor<T>) constructor;
- WBConstructor<T> annotatedConstructor = WBConstructorImpl.of(c, this);
+ WBConstructor<T> annotatedConstructor = WBConstructorImpl.of(c, this, classTransformer);
if (!constructor.isAccessible())
{
constructor.setAccessible(true);
}
this.constructors.add(annotatedConstructor);
this.constructorsByArgumentMap.put(Arrays.asList(constructor.getParameterTypes()), annotatedConstructor);
-
+
this.declaredConstructorsBySignature.put(annotatedConstructor.getSignature(), annotatedConstructor);
-
+
for (Annotation annotation : annotatedConstructor.getAnnotations())
{
if (!annotatedConstructors.containsKey(annotation.annotationType()))
@@ -186,7 +194,7 @@
}
annotatedConstructors.get(annotation.annotationType()).add(annotatedConstructor);
}
-
+
for (Class<? extends Annotation> annotationType : WBConstructor.MAPPED_PARAMETER_ANNOTATIONS)
{
if (annotatedConstructor.getAnnotatedParameters(annotationType).size() > 0)
@@ -195,7 +203,7 @@
}
}
}
-
+
this.methods = new HashSet<WBMethod<?>>();
this.annotatedMethods = new SetHashMultiMap<Class<? extends Annotation>, WBMethod<?>>();
this.methodsByAnnotatedParameters = new SetHashMultiMap<Class<? extends Annotation>, WBMethod<?>>();
@@ -212,8 +220,8 @@
{
method.setAccessible(true);
}
-
- WBMethod<?> annotatedMethod = WBMethodImpl.of(method, this);
+
+ WBMethod<?> annotatedMethod = WBMethodImpl.of(method, this, classTransformer);
this.methods.add(annotatedMethod);
this.methodsBySignature.put(annotatedMethod.getSignature(), annotatedMethod);
if (c == rawType)
@@ -243,7 +251,7 @@
}
}
}
-
+
/**
* Gets the implementing class
*
@@ -253,7 +261,7 @@
{
return getJavaClass();
}
-
+
/**
* Gets the delegate (class)
*
@@ -263,7 +271,7 @@
{
return getJavaClass();
}
-
+
/**
* Gets the abstracted fields of the class
*
@@ -275,22 +283,22 @@
{
return Collections.unmodifiableSet(fields);
}
-
+
public Set<WBField<?>> getDeclaredFields()
{
return Collections.unmodifiableSet(declaredFields);
}
-
+
public <F> WBField<F> getDeclaredField(String fieldName, WBClass<F> expectedType)
{
return (WBField<F>) declaredFieldsByName.get(fieldName);
}
-
+
public Set<WBField<?>> getDeclaredAnnotatedFields(Class<? extends Annotation> annotationType)
{
return Collections.unmodifiableSet(declaredAnnotatedFields.get(annotationType));
}
-
+
/**
* Gets the abstracted constructors of the class
*
@@ -302,12 +310,12 @@
{
return Collections.unmodifiableSet(constructors);
}
-
+
public WBConstructor<T> getDeclaredConstructor(ConstructorSignature signature)
{
return (WBConstructor<T>) declaredConstructorsBySignature.get(signature);
}
-
+
/**
* Gets abstracted fields with requested meta-annotation type present
*
@@ -316,8 +324,7 @@
* populated for the requested meta-annotation type and the result is
* returned
*
- * @param metaAnnotationType
- * The meta-annotation type to match
+ * @param metaAnnotationType The meta-annotation type to match
* @return The set of abstracted fields with meta-annotation present. Returns
* an empty set if no matches are found.
*/
@@ -325,14 +332,13 @@
{
return Collections.unmodifiableSet(metaAnnotatedFields.get(metaAnnotationType));
}
-
+
/**
* Gets the abstracted field annotated with a specific annotation type
*
* If the fields map is null, initialize it first
*
- * @param annotationType
- * The annotation type to match
+ * @param annotationType The annotation type to match
* @return A set of matching abstracted fields, null if none are found.
*
*/
@@ -340,29 +346,28 @@
{
return Collections.unmodifiableSet(annotatedFields.get(annotationType));
}
-
+
public boolean isNonStaticMemberClass()
{
return _nonStaticMemberClass;
}
-
+
public boolean isAbstract()
{
return _abstract;
}
-
+
public boolean isEnum()
{
return _enum;
}
-
+
/**
* Gets the abstracted methods that have a certain annotation type present
*
* If the annotated methods map is null, initialize it first
*
- * @param annotationType
- * The annotation type to match
+ * @param annotationType The annotation type to match
* @return A set of matching method abstractions. Returns an empty set if no
* matches are found.
*
@@ -372,17 +377,16 @@
{
return Collections.unmodifiableSet(annotatedMethods.get(annotationType));
}
-
+
public Set<WBMethod<?>> getDeclaredAnnotatedMethods(Class<? extends Annotation> annotationType)
{
return Collections.unmodifiableSet(declaredAnnotatedMethods.get(annotationType));
}
-
+
/**
* Gets constructors with given annotation type
*
- * @param annotationType
- * The annotation type to match
+ * @param annotationType The annotation type to match
* @return A set of abstracted constructors with given annotation type. If
* the constructors set is empty, initialize it first. Returns an
* empty set if there are no matches.
@@ -393,27 +397,27 @@
{
return Collections.unmodifiableSet(annotatedConstructors.get(annotationType));
}
-
+
public WBConstructor<T> getNoArgsConstructor()
{
return constructorsByArgumentMap.get(NO_ARGUMENTS);
}
-
+
public Set<WBMethod<?>> getMethodsWithAnnotatedParameters(Class<? extends Annotation> annotationType)
{
return Collections.unmodifiableSet(methodsByAnnotatedParameters.get(annotationType));
}
-
+
public Set<WBConstructor<?>> getConstructorsWithAnnotatedParameters(Class<? extends Annotation> annotationType)
{
return Collections.unmodifiableSet(constructorsByAnnotatedParameters.get(annotationType));
}
-
+
public Set<WBMethod<?>> getDeclaredMethodsWithAnnotatedParameters(Class<? extends Annotation> annotationType)
{
return Collections.unmodifiableSet(declaredMethodsByAnnotatedParameters.get(annotationType));
}
-
+
public WBMethod<?> getMethod(Method methodDescriptor)
{
// TODO Should be cached
@@ -426,12 +430,12 @@
}
return null;
}
-
+
public Set<WBMethod<?>> getMethods()
{
return Collections.unmodifiableSet(methods);
}
-
+
public WBMethod<?> getDeclaredMethod(Method method)
{
// TODO Should be cached
@@ -444,19 +448,19 @@
}
return null;
}
-
+
@SuppressWarnings("unchecked")
public <M> WBMethod<M> getDeclaredMethod(MethodSignature signature, WBClass<M> expectedReturnType)
{
return (WBMethod<M>) declaredMethodsBySignature.get(signature);
}
-
+
@SuppressWarnings("unchecked")
public <M> WBMethod<M> getMethod(MethodSignature signature)
{
return (WBMethod<M>) methodsBySignature.get(signature);
}
-
+
/**
* Gets a string representation of the class
*
@@ -472,17 +476,17 @@
toString = "Annotated class " + Names.classToString(getDelegate());
return toString;
}
-
+
@SuppressWarnings("unchecked")
public <U> WBClass<? extends U> asSubclass(WBClass<U> clazz)
{
return (WBClass<? extends U>) this;
}
-
+
@SuppressWarnings("unchecked")
public T cast(Object object)
{
return (T) object;
}
-
+
}
\ No newline at end of file
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBConstructorImpl.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBConstructorImpl.java 2009-06-28 15:05:58 UTC (rev 2913)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBConstructorImpl.java 2009-06-28 15:17:17 UTC (rev 2914)
@@ -30,6 +30,7 @@
import org.jboss.webbeans.introspector.WBConstructor;
import org.jboss.webbeans.introspector.WBParameter;
import org.jboss.webbeans.introspector.WBType;
+import org.jboss.webbeans.resources.ClassTransformer;
import org.jboss.webbeans.util.Names;
import org.jboss.webbeans.util.collections.multi.ListHashMultiMap;
import org.jboss.webbeans.util.collections.multi.ListMultiMap;
@@ -62,9 +63,9 @@
// Cached string representation
private String toString;
- public static <T> WBConstructor<T> of(Constructor<T> constructor, WBType<T> declaringClass)
+ public static <T> WBConstructor<T> of(Constructor<T> constructor, WBType<T> declaringClass, ClassTransformer classTransformer)
{
- return new WBConstructorImpl<T>(constructor, declaringClass);
+ return new WBConstructorImpl<T>(constructor, declaringClass, classTransformer);
}
/**
@@ -75,9 +76,9 @@
* @param constructor The constructor method
* @param declaringClass The declaring class
*/
- protected WBConstructorImpl(Constructor<T> constructor, WBType<T> declaringClass)
+ protected WBConstructorImpl(Constructor<T> constructor, WBType<T> declaringClass, ClassTransformer classTransformer)
{
- super(AnnotationStore.of(constructor), constructor, constructor.getDeclaringClass(), constructor.getDeclaringClass());
+ super(AnnotationStore.of(constructor, classTransformer.getTypeStore()), constructor, constructor.getDeclaringClass(), constructor.getDeclaringClass());
this.constructor = constructor;
this.declaringClass = declaringClass;
@@ -90,7 +91,7 @@
{
Class<?> clazz = constructor.getParameterTypes()[i];
Type type = constructor.getGenericParameterTypes()[i];
- WBParameter<?> parameter = WBParameterImpl.of(constructor.getParameterAnnotations()[i], clazz, type, this);
+ WBParameter<?> parameter = WBParameterImpl.of(constructor.getParameterAnnotations()[i], clazz, type, this, classTransformer);
parameters.add(parameter);
for (Annotation annotation : parameter.getAnnotations())
@@ -110,7 +111,7 @@
{
type = clazz;
}
- WBParameter<?> parameter = WBParameterImpl.of(new Annotation[0], clazz, type, this);
+ WBParameter<?> parameter = WBParameterImpl.of(new Annotation[0], clazz, type, this, classTransformer);
parameters.add(parameter);
for (Annotation annotation : parameter.getAnnotations())
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBFieldImpl.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBFieldImpl.java 2009-06-28 15:05:58 UTC (rev 2913)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBFieldImpl.java 2009-06-28 15:17:17 UTC (rev 2914)
@@ -21,6 +21,7 @@
import org.jboss.webbeans.introspector.AnnotationStore;
import org.jboss.webbeans.introspector.WBField;
import org.jboss.webbeans.introspector.WBType;
+import org.jboss.webbeans.resources.ClassTransformer;
import org.jboss.webbeans.util.Names;
import org.jboss.webbeans.util.Reflections;
@@ -53,9 +54,9 @@
* @param field The actual field
* @param declaringClass The abstraction of the declaring class
*/
- protected WBFieldImpl(Field field, WBType<?> declaringClass)
+ protected WBFieldImpl(Field field, WBType<?> declaringClass, ClassTransformer classTransformer)
{
- super(AnnotationStore.of(field), field, (Class<T>) field.getType(), field.getGenericType());
+ super(AnnotationStore.of(field, classTransformer.getTypeStore()), field, (Class<T>) field.getType(), field.getGenericType());
this.field = field;
field.setAccessible(true);
this.declaringClass = declaringClass;
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBMethodImpl.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBMethodImpl.java 2009-06-28 15:05:58 UTC (rev 2913)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBMethodImpl.java 2009-06-28 15:17:17 UTC (rev 2914)
@@ -30,6 +30,7 @@
import org.jboss.webbeans.introspector.WBMethod;
import org.jboss.webbeans.introspector.WBParameter;
import org.jboss.webbeans.introspector.WBType;
+import org.jboss.webbeans.resources.ClassTransformer;
import org.jboss.webbeans.util.Names;
import org.jboss.webbeans.util.Reflections;
import org.jboss.webbeans.util.collections.multi.ListHashMultiMap;
@@ -67,9 +68,9 @@
private final MethodSignature signature;
- public static <T> WBMethodImpl<T> of(Method method, WBType<?> declaringClass)
+ public static <T> WBMethodImpl<T> of(Method method, WBType<?> declaringClass, ClassTransformer classTransformer)
{
- return new WBMethodImpl<T>(method, declaringClass);
+ return new WBMethodImpl<T>(method, declaringClass, classTransformer);
}
/**
@@ -82,9 +83,9 @@
* @param declaringClass The declaring class abstraction
*/
@SuppressWarnings("unchecked")
- protected WBMethodImpl(Method method, WBType<?> declaringClass)
+ protected WBMethodImpl(Method method, WBType<?> declaringClass, ClassTransformer classTransformer)
{
- super(AnnotationStore.of(method), method, (Class<T>) method.getReturnType(), method.getGenericReturnType());
+ super(AnnotationStore.of(method, classTransformer.getTypeStore()), method, (Class<T>) method.getReturnType(), method.getGenericReturnType());
this.method = method;
this.method.setAccessible(true);
this.declaringClass = declaringClass;
@@ -97,7 +98,7 @@
{
Class<? extends Object> clazz = method.getParameterTypes()[i];
Type type = method.getGenericParameterTypes()[i];
- WBParameter<?> parameter = WBParameterImpl.of(method.getParameterAnnotations()[i], (Class<Object>) clazz, type, this);
+ WBParameter<?> parameter = WBParameterImpl.of(method.getParameterAnnotations()[i], (Class<Object>) clazz, type, this, classTransformer);
this.parameters.add(parameter);
for (Annotation annotation : parameter.getAnnotations())
{
@@ -111,7 +112,7 @@
{
Class<? extends Object> clazz = method.getParameterTypes()[i];
Type type = method.getGenericParameterTypes()[i];
- WBParameter<?> parameter = WBParameterImpl.of(new Annotation[0], (Class<Object>) clazz, type, this);
+ WBParameter<?> parameter = WBParameterImpl.of(new Annotation[0], (Class<Object>) clazz, type, this, classTransformer);
this.parameters.add(parameter);
}
}
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBParameterImpl.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBParameterImpl.java 2009-06-28 15:05:58 UTC (rev 2913)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBParameterImpl.java 2009-06-28 15:17:17 UTC (rev 2914)
@@ -23,6 +23,7 @@
import org.jboss.webbeans.introspector.AnnotationStore;
import org.jboss.webbeans.introspector.WBMember;
import org.jboss.webbeans.introspector.WBParameter;
+import org.jboss.webbeans.resources.ClassTransformer;
/**
* Represents a parameter
@@ -47,9 +48,9 @@
// Cached string representation
private String toString;
- public static <T> WBParameter<T> of(Annotation[] annotations, Class<T> rawType, Type type, WBMember<?, ?> declaringMember)
+ public static <T> WBParameter<T> of(Annotation[] annotations, Class<T> rawType, Type type, WBMember<?, ?> declaringMember, ClassTransformer classTransformer)
{
- return new WBParameterImpl<T>(annotations, rawType, type, declaringMember);
+ return new WBParameterImpl<T>(annotations, rawType, type, declaringMember, classTransformer);
}
/**
@@ -58,9 +59,9 @@
* @param annotations The annotations array
* @param type The type of the parameter
*/
- protected WBParameterImpl(Annotation[] annotations, Class<T> rawType, Type type, WBMember<?, ?> declaringMember)
+ protected WBParameterImpl(Annotation[] annotations, Class<T> rawType, Type type, WBMember<?, ?> declaringMember, ClassTransformer classTransformer)
{
- super(AnnotationStore.of(annotations, annotations), rawType, type);
+ super(AnnotationStore.of(annotations, annotations, classTransformer.getTypeStore()), rawType, type);
this.declaringMember = declaringMember;
}
Added: ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/TypeStore.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/TypeStore.java (rev 0)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/TypeStore.java 2009-06-28 15:17:17 UTC (rev 2914)
@@ -0,0 +1,56 @@
+/*
+ * 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.webbeans.metadata;
+
+import java.lang.annotation.Annotation;
+import java.util.Set;
+import java.util.concurrent.CopyOnWriteArraySet;
+
+import org.jboss.webbeans.bootstrap.api.Service;
+import org.jboss.webbeans.util.collections.multi.ConcurrentSetHashMultiMap;
+import org.jboss.webbeans.util.collections.multi.ConcurrentSetMultiMap;
+
+/**
+ * @author pmuir
+ *
+ */
+public class TypeStore implements Service
+{
+
+ private final ConcurrentSetMultiMap<Class<? extends Annotation>, Annotation> extraAnnotations;
+
+ public TypeStore()
+ {
+ this.extraAnnotations = new ConcurrentSetHashMultiMap<Class<? extends Annotation>, Annotation>();
+ }
+
+ public Set<Annotation> get(Class<? extends Annotation> annotationType)
+ {
+ return extraAnnotations.get(annotationType);
+ }
+
+ public void add(Class<? extends Annotation> annotationType, Annotation annotation)
+ {
+ this.extraAnnotations.put(annotationType, annotation);
+ }
+
+ public void addAll(Class<? extends Annotation> annotationType, Set<Annotation> annotations)
+ {
+ this.extraAnnotations.putIfAbsent(annotationType, new CopyOnWriteArraySet<Annotation>());
+ this.extraAnnotations.get(annotationType).addAll(annotations);
+ }
+}
Property changes on: ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/TypeStore.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/MergedStereotypes.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/MergedStereotypes.java 2009-06-28 15:05:58 UTC (rev 2913)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/MergedStereotypes.java 2009-06-28 15:17:17 UTC (rev 2914)
@@ -69,7 +69,7 @@
for (Annotation stereotypeAnnotation : stereotypeAnnotations)
{
// Retrieve and merge all metadata from stereotypes
- StereotypeModel<?> stereotype = manager.getServices().get(MetaDataCache.class).getStereotype(stereotypeAnnotation.annotationType());
+ StereotypeModel<?> stereotype = manager.getServices().get(MetaAnnotationStore.class).getStereotype(stereotypeAnnotation.annotationType());
if (stereotype == null)
{
throw new IllegalStateException("Stereotype " + stereotypeAnnotation + " not registered with container");
Copied: ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/MetaAnnotationStore.java (from rev 2903, ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/MetaDataCache.java)
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/MetaAnnotationStore.java (rev 0)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/MetaAnnotationStore.java 2009-06-28 15:17:17 UTC (rev 2914)
@@ -0,0 +1,130 @@
+/*
+ * 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.webbeans.metadata.cache;
+
+import java.lang.annotation.Annotation;
+import java.util.concurrent.Callable;
+
+import org.jboss.webbeans.bootstrap.api.Service;
+import org.jboss.webbeans.resources.ClassTransformer;
+import org.jboss.webbeans.util.collections.ConcurrentCache;
+
+/**
+ * Metadata singleton for holding EJB metadata, scope models etc.
+ *
+ * @author Pete Muir
+ *
+ */
+public class MetaAnnotationStore implements Service
+{
+
+ // The stereotype models
+ private ConcurrentCache<Class<? extends Annotation>, StereotypeModel<?>> stereotypes = new ConcurrentCache<Class<? extends Annotation>, StereotypeModel<?>>();
+ // The scope models
+ private ConcurrentCache<Class<? extends Annotation>, ScopeModel<?>> scopes = new ConcurrentCache<Class<? extends Annotation>, ScopeModel<?>>();
+ // The binding type models
+ private ConcurrentCache<Class<? extends Annotation>, BindingTypeModel<?>> bindingTypes = new ConcurrentCache<Class<? extends Annotation>, BindingTypeModel<?>>();
+
+ private final ClassTransformer classTransformer;
+
+ public MetaAnnotationStore(ClassTransformer classTransformer)
+ {
+ this.classTransformer = classTransformer;
+ }
+
+ /**
+ * Gets a stereotype model
+ *
+ * Adds the model if it is not present.
+ *
+ * @param <T> The type
+ * @param stereotype The stereotype
+ * @return The stereotype model
+ */
+ public <T extends Annotation> StereotypeModel<T> getStereotype(final Class<T> stereotype)
+ {
+ return stereotypes.putIfAbsent(stereotype, new Callable<StereotypeModel<T>>()
+ {
+
+ public StereotypeModel<T> call() throws Exception
+ {
+ return new StereotypeModel<T>(stereotype, classTransformer);
+ }
+ });
+ }
+
+ /**
+ * Gets a scope model
+ *
+ * Adds the model if it is not present.
+ *
+ * @param <T> The type
+ * @param scopeType The scope type
+ * @return The scope type model
+ */
+ public <T extends Annotation> ScopeModel<T> getScopeModel(final Class<T> scopeType)
+ {
+ return scopes.putIfAbsent(scopeType, new Callable<ScopeModel<T>>()
+ {
+
+ public ScopeModel<T> call() throws Exception
+ {
+ return new ScopeModel<T>(scopeType, classTransformer);
+ }
+
+ });
+ }
+
+ /**
+ * Gets a binding type model.
+ *
+ * Adds the model if it is not present.
+ *
+ * @param <T> The type
+ * @param bindingType The binding type
+ * @return The binding type model
+ */
+ public <T extends Annotation> BindingTypeModel<T> getBindingTypeModel(final Class<T> bindingType)
+ {
+ return bindingTypes.putIfAbsent(bindingType, new Callable<BindingTypeModel<T>>()
+ {
+
+ public BindingTypeModel<T> call() throws Exception
+ {
+ return new BindingTypeModel<T>(bindingType, classTransformer);
+ }
+
+ });
+ }
+
+ /**
+ * Gets a string representation
+ *
+ * @return A string representation
+ */
+ @Override
+ public String toString()
+ {
+ StringBuilder buffer = new StringBuilder();
+ buffer.append("Metadata cache\n");
+ buffer.append("Registered binding type models: " + bindingTypes.size() + "\n");
+ buffer.append("Registered scope type models: " + scopes.size() + "\n");
+ buffer.append("Registered stereotype models: " + stereotypes.size() + "\n");
+ return buffer.toString();
+ }
+
+}
Deleted: ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/MetaDataCache.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/MetaDataCache.java 2009-06-28 15:05:58 UTC (rev 2913)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/MetaDataCache.java 2009-06-28 15:17:17 UTC (rev 2914)
@@ -1,130 +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.webbeans.metadata.cache;
-
-import java.lang.annotation.Annotation;
-import java.util.concurrent.Callable;
-
-import org.jboss.webbeans.bootstrap.api.Service;
-import org.jboss.webbeans.resources.ClassTransformer;
-import org.jboss.webbeans.util.collections.ConcurrentCache;
-
-/**
- * Metadata singleton for holding EJB metadata, scope models etc.
- *
- * @author Pete Muir
- *
- */
-public class MetaDataCache implements Service
-{
-
- // The stereotype models
- private ConcurrentCache<Class<? extends Annotation>, StereotypeModel<?>> stereotypes = new ConcurrentCache<Class<? extends Annotation>, StereotypeModel<?>>();
- // The scope models
- private ConcurrentCache<Class<? extends Annotation>, ScopeModel<?>> scopes = new ConcurrentCache<Class<? extends Annotation>, ScopeModel<?>>();
- // The binding type models
- private ConcurrentCache<Class<? extends Annotation>, BindingTypeModel<?>> bindingTypes = new ConcurrentCache<Class<? extends Annotation>, BindingTypeModel<?>>();
-
- private final ClassTransformer classTransformer;
-
- public MetaDataCache(ClassTransformer classTransformer)
- {
- this.classTransformer = classTransformer;
- }
-
- /**
- * Gets a stereotype model
- *
- * Adds the model if it is not present.
- *
- * @param <T> The type
- * @param stereotype The stereotype
- * @return The stereotype model
- */
- public <T extends Annotation> StereotypeModel<T> getStereotype(final Class<T> stereotype)
- {
- return stereotypes.putIfAbsent(stereotype, new Callable<StereotypeModel<T>>()
- {
-
- public StereotypeModel<T> call() throws Exception
- {
- return new StereotypeModel<T>(stereotype, classTransformer);
- }
- });
- }
-
- /**
- * Gets a scope model
- *
- * Adds the model if it is not present.
- *
- * @param <T> The type
- * @param scopeType The scope type
- * @return The scope type model
- */
- public <T extends Annotation> ScopeModel<T> getScopeModel(final Class<T> scopeType)
- {
- return scopes.putIfAbsent(scopeType, new Callable<ScopeModel<T>>()
- {
-
- public ScopeModel<T> call() throws Exception
- {
- return new ScopeModel<T>(scopeType, classTransformer);
- }
-
- });
- }
-
- /**
- * Gets a binding type model.
- *
- * Adds the model if it is not present.
- *
- * @param <T> The type
- * @param bindingType The binding type
- * @return The binding type model
- */
- public <T extends Annotation> BindingTypeModel<T> getBindingTypeModel(final Class<T> bindingType)
- {
- return bindingTypes.putIfAbsent(bindingType, new Callable<BindingTypeModel<T>>()
- {
-
- public BindingTypeModel<T> call() throws Exception
- {
- return new BindingTypeModel<T>(bindingType, classTransformer);
- }
-
- });
- }
-
- /**
- * Gets a string representation
- *
- * @return A string representation
- */
- @Override
- public String toString()
- {
- StringBuilder buffer = new StringBuilder();
- buffer.append("Metadata cache\n");
- buffer.append("Registered binding type models: " + bindingTypes.size() + "\n");
- buffer.append("Registered scope type models: " + scopes.size() + "\n");
- buffer.append("Registered stereotype models: " + stereotypes.size() + "\n");
- return buffer.toString();
- }
-
-}
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/StereotypeModel.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/StereotypeModel.java 2009-06-28 15:05:58 UTC (rev 2913)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/StereotypeModel.java 2009-06-28 15:17:17 UTC (rev 2914)
@@ -17,8 +17,6 @@
package org.jboss.webbeans.metadata.cache;
import java.lang.annotation.Annotation;
-import java.util.Arrays;
-import java.util.HashSet;
import java.util.Set;
import javax.enterprise.context.ScopeType;
@@ -64,8 +62,6 @@
initDefaultDeploymentType();
initDefaultScopeType();
initBeanNameDefaulted();
- initSupportedScopes();
- initRequiredTypes();
initInterceptorBindings();
checkBindings();
}
@@ -91,32 +87,6 @@
}
/**
- * Initializes the supported scopes
- */
- private void initSupportedScopes()
- {
- this.supportedScopes = new HashSet<Class<? extends Annotation>>();
- Class<? extends Annotation>[] supportedScopes = getAnnotatedAnnotation().getAnnotation(Stereotype.class).supportedScopes();
- if (supportedScopes.length > 0)
- {
- this.supportedScopes.addAll(Arrays.asList(supportedScopes));
- }
- }
-
- /**
- * Initializes the required types
- */
- private void initRequiredTypes()
- {
- this.requiredTypes = new HashSet<Class<?>>();
- Class<?>[] requiredTypes = getAnnotatedAnnotation().getAnnotation(Stereotype.class).requiredTypes();
- if (requiredTypes.length > 0)
- {
- this.requiredTypes.addAll(Arrays.asList(requiredTypes));
- }
- }
-
- /**
* Initializes the bean name defaulted
*/
private void initBeanNameDefaulted()
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/resources/ClassTransformer.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/resources/ClassTransformer.java 2009-06-28 15:05:58 UTC (rev 2913)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/resources/ClassTransformer.java 2009-06-28 15:17:17 UTC (rev 2914)
@@ -19,27 +19,34 @@
import java.lang.annotation.Annotation;
import java.util.concurrent.Callable;
+import javax.enterprise.inject.spi.AnnotatedType;
+
import org.jboss.webbeans.bootstrap.api.Service;
import org.jboss.webbeans.introspector.WBAnnotation;
import org.jboss.webbeans.introspector.WBClass;
import org.jboss.webbeans.introspector.jlr.WBAnnotationImpl;
import org.jboss.webbeans.introspector.jlr.WBClassImpl;
+import org.jboss.webbeans.metadata.TypeStore;
import org.jboss.webbeans.util.collections.ConcurrentCache;
public class ClassTransformer implements Service
{
private final ConcurrentCache<Class<?>, WBClass<?>> classes;
+ private final ConcurrentCache<AnnotatedType<?>, WBClass<?>> annotatedTypes;
private final ConcurrentCache<Class<?>, WBAnnotation<?>> annotations;
private final ClassTransformer transformer = this;
+ private final TypeStore typeStore;
/**
*
*/
- public ClassTransformer()
+ public ClassTransformer(TypeStore typeStore)
{
classes = new ConcurrentCache<Class<?>, WBClass<?>>();
+ this.annotatedTypes = new ConcurrentCache<AnnotatedType<?>, WBClass<?>>();
annotations = new ConcurrentCache<Class<?>, WBAnnotation<?>>();
+ this.typeStore = typeStore;
}
public <T> WBClass<T> loadClass(final Class<T> clazz)
@@ -54,7 +61,20 @@
});
}
+
+ public <T> WBClass<T> loadClass(final AnnotatedType<T> clazz)
+ {
+ return annotatedTypes.putIfAbsent(clazz, new Callable<WBClass<T>>()
+ {
+ public WBClass<T> call() throws Exception
+ {
+ return WBClassImpl.of(clazz, transformer);
+ }
+
+ });
+ }
+
public <T extends Annotation> WBAnnotation<T> loadAnnotation(final Class<T> clazz)
{
return annotations.putIfAbsent(clazz, new Callable<WBAnnotation<T>>()
@@ -66,5 +86,10 @@
});
}
+
+ public TypeStore getTypeStore()
+ {
+ return typeStore;
+ }
}
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/util/Beans.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/util/Beans.java 2009-06-28 15:05:58 UTC (rev 2913)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/util/Beans.java 2009-06-28 15:17:17 UTC (rev 2914)
@@ -33,7 +33,7 @@
import org.jboss.webbeans.introspector.WBClass;
import org.jboss.webbeans.introspector.WBField;
import org.jboss.webbeans.metadata.cache.BindingTypeModel;
-import org.jboss.webbeans.metadata.cache.MetaDataCache;
+import org.jboss.webbeans.metadata.cache.MetaAnnotationStore;
/**
* Helper class for bean inspection
@@ -58,7 +58,7 @@
}
else
{
- return manager.getServices().get(MetaDataCache.class).getScopeModel(bean.getScopeType()).isPassivating();
+ return manager.getServices().get(MetaAnnotationStore.class).getScopeModel(bean.getScopeType()).isPassivating();
}
}
@@ -122,7 +122,7 @@
{
for (Annotation binding : bindings1)
{
- BindingTypeModel<?> bindingType = manager.getServices().get(MetaDataCache.class).getBindingTypeModel(binding.annotationType());
+ BindingTypeModel<?> bindingType = manager.getServices().get(MetaAnnotationStore.class).getBindingTypeModel(binding.annotationType());
if (bindingType.getNonBindingTypes().size() > 0)
{
boolean matchFound = false;
Modified: ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/context/PassivatingContextTest.java
===================================================================
--- ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/context/PassivatingContextTest.java 2009-06-28 15:05:58 UTC (rev 2913)
+++ ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/context/PassivatingContextTest.java 2009-06-28 15:17:17 UTC (rev 2914)
@@ -6,7 +6,7 @@
import javax.enterprise.context.SessionScoped;
import org.jboss.testharness.impl.packaging.Artifact;
-import org.jboss.webbeans.metadata.cache.MetaDataCache;
+import org.jboss.webbeans.metadata.cache.MetaAnnotationStore;
import org.testng.annotations.Test;
@Artifact
@@ -20,7 +20,7 @@
@Test(groups = { "contexts", "passivation" })
public void testIsSessionScopePassivating()
{
- assert getCurrentManager().getServices().get(MetaDataCache.class).getScopeModel(SessionScoped.class).isPassivating();
+ assert getCurrentManager().getServices().get(MetaAnnotationStore.class).getScopeModel(SessionScoped.class).isPassivating();
}
/**
@@ -30,7 +30,7 @@
@Test(groups = { "contexts", "passivation" })
public void testIsConversationScopePassivating()
{
- assert getCurrentManager().getServices().get(MetaDataCache.class).getScopeModel(ConversationScoped.class).isPassivating();
+ assert getCurrentManager().getServices().get(MetaAnnotationStore.class).getScopeModel(ConversationScoped.class).isPassivating();
}
/**
@@ -40,7 +40,7 @@
@Test(groups = { "contexts", "passivation" })
public void testIsApplicationScopeNonPassivating()
{
- assert !getCurrentManager().getServices().get(MetaDataCache.class).getScopeModel(ApplicationScoped.class).isPassivating();
+ assert !getCurrentManager().getServices().get(MetaAnnotationStore.class).getScopeModel(ApplicationScoped.class).isPassivating();
}
/**
@@ -50,7 +50,7 @@
@Test(groups = { "contexts", "passivation" })
public void testIsRequestScopeNonPassivating()
{
- assert !getCurrentManager().getServices().get(MetaDataCache.class).getScopeModel(RequestScoped.class).isPassivating();
+ assert !getCurrentManager().getServices().get(MetaAnnotationStore.class).getScopeModel(RequestScoped.class).isPassivating();
}
}
Modified: ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/definition/AnimalOrderStereotype.java
===================================================================
--- ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/definition/AnimalOrderStereotype.java 2009-06-28 15:05:58 UTC (rev 2913)
+++ ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/definition/AnimalOrderStereotype.java 2009-06-28 15:17:17 UTC (rev 2914)
@@ -10,7 +10,7 @@
- at Stereotype(requiredTypes={Animal.class, Order.class})
+ at Stereotype
@Target( { TYPE })
@Retention(RUNTIME)
@interface AnimalOrderStereotype
Modified: ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/definition/AnimalStereotype.java
===================================================================
--- ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/definition/AnimalStereotype.java 2009-06-28 15:05:58 UTC (rev 2913)
+++ ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/definition/AnimalStereotype.java 2009-06-28 15:17:17 UTC (rev 2914)
@@ -11,7 +11,7 @@
import javax.enterprise.context.RequestScoped;
import javax.enterprise.inject.stereotype.Stereotype;
- at Stereotype(requiredTypes=Animal.class)
+ at Stereotype
@Target( { TYPE, METHOD, FIELD })
@Retention(RUNTIME)
@RequestScoped
Modified: ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/definition/RequestScopedAnimalStereotype.java
===================================================================
--- ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/definition/RequestScopedAnimalStereotype.java 2009-06-28 15:05:58 UTC (rev 2913)
+++ ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/definition/RequestScopedAnimalStereotype.java 2009-06-28 15:17:17 UTC (rev 2914)
@@ -6,10 +6,9 @@
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
-import javax.enterprise.context.RequestScoped;
import javax.enterprise.inject.stereotype.Stereotype;
- at Stereotype(requiredTypes=Animal.class, supportedScopes=RequestScoped.class)
+ at Stereotype
@Target( { TYPE })
@Retention(RUNTIME)
public @interface RequestScopedAnimalStereotype
Modified: ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/definition/StereotypesTest.java
===================================================================
--- ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/definition/StereotypesTest.java 2009-06-28 15:05:58 UTC (rev 2913)
+++ ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/definition/StereotypesTest.java 2009-06-28 15:17:17 UTC (rev 2914)
@@ -5,6 +5,7 @@
import javax.enterprise.context.RequestScoped;
import org.jboss.testharness.impl.packaging.Artifact;
+import org.jboss.webbeans.metadata.TypeStore;
import org.jboss.webbeans.metadata.cache.StereotypeModel;
import org.jboss.webbeans.resources.ClassTransformer;
import org.jboss.webbeans.test.AbstractWebBeansTest;
@@ -14,7 +15,7 @@
public class StereotypesTest extends AbstractWebBeansTest
{
- private final ClassTransformer transformer = new ClassTransformer();
+ private final ClassTransformer transformer = new ClassTransformer(new TypeStore());
@Test
public void testAnimalStereotype()
Modified: ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/implementation/annotatedItem/ClassAnnotatedItemTest.java
===================================================================
--- ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/implementation/annotatedItem/ClassAnnotatedItemTest.java 2009-06-28 15:05:58 UTC (rev 2913)
+++ ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/implementation/annotatedItem/ClassAnnotatedItemTest.java 2009-06-28 15:17:17 UTC (rev 2914)
@@ -11,6 +11,7 @@
import org.jboss.testharness.impl.packaging.Artifact;
import org.jboss.webbeans.introspector.WBClass;
import org.jboss.webbeans.introspector.jlr.WBClassImpl;
+import org.jboss.webbeans.metadata.TypeStore;
import org.jboss.webbeans.resources.ClassTransformer;
import org.jboss.webbeans.test.AbstractWebBeansTest;
import org.testng.annotations.Test;
@@ -19,7 +20,7 @@
public class ClassAnnotatedItemTest extends AbstractWebBeansTest
{
- private final ClassTransformer transformer = new ClassTransformer();
+ private final ClassTransformer transformer = new ClassTransformer(new TypeStore());
@Test
public void testDeclaredAnnotations()
More information about the weld-commits
mailing list