Author: pete.muir(a)jboss.org
Date: 2009-06-26 13:12:22 -0400 (Fri, 26 Jun 2009)
New Revision: 2903
Added:
ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/
ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/AnnotationModel.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/BindingTypeModel.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/MetaDataCache.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/ScopeModel.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/StereotypeModel.java
Removed:
ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/AnnotationModel.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/BindingTypeModel.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/MergedStereotypes.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/MetaDataCache.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/ScopeModel.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/StereotypeModel.java
Modified:
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/BeanDeployer.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/bootstrap/ExtensionBeanDeployer.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/NonContextualInjector.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractWBType.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/StereotypesTest.java
Log:
rename package
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-26
17:03:09 UTC (rev 2902)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/BeanManagerImpl.java 2009-06-26
17:12:22 UTC (rev 2903)
@@ -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.MetaDataCache;
+import org.jboss.webbeans.metadata.cache.MetaDataCache;
import org.jboss.webbeans.util.Beans;
import org.jboss.webbeans.util.Proxies;
import org.jboss.webbeans.util.Reflections;
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-26 17:03:09 UTC
(rev 2902)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/FacadeImpl.java 2009-06-26 17:12:22 UTC
(rev 2903)
@@ -24,7 +24,7 @@
import java.util.HashSet;
import java.util.Set;
-import org.jboss.webbeans.metadata.MetaDataCache;
+import org.jboss.webbeans.metadata.cache.MetaDataCache;
/**
* Common implementation for binding-type-based helpers
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-26 17:03:09 UTC
(rev 2902)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/Validator.java 2009-06-26 17:12:22 UTC
(rev 2903)
@@ -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.MetaDataCache;
+import org.jboss.webbeans.metadata.cache.MetaDataCache;
import org.jboss.webbeans.util.Beans;
import org.jboss.webbeans.util.ListComparator;
import org.jboss.webbeans.util.Names;
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-26
17:03:09 UTC (rev 2902)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/AbstractBean.java 2009-06-26
17:12:22 UTC (rev 2903)
@@ -46,8 +46,8 @@
import org.jboss.webbeans.literal.CurrentLiteral;
import org.jboss.webbeans.log.LogProvider;
import org.jboss.webbeans.log.Logging;
-import org.jboss.webbeans.metadata.MergedStereotypes;
-import org.jboss.webbeans.metadata.MetaDataCache;
+import org.jboss.webbeans.metadata.cache.MergedStereotypes;
+import org.jboss.webbeans.metadata.cache.MetaDataCache;
import org.jboss.webbeans.util.Reflections;
/**
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-26
17:03:09 UTC (rev 2902)
+++
ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/AbstractProducerBean.java 2009-06-26
17:12:22 UTC (rev 2903)
@@ -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.MetaDataCache;
+import org.jboss.webbeans.metadata.cache.MetaDataCache;
import org.jboss.webbeans.util.Beans;
import org.jboss.webbeans.util.Names;
import org.jboss.webbeans.util.Reflections;
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-26
17:03:09 UTC (rev 2902)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/SimpleBean.java 2009-06-26
17:12:22 UTC (rev 2903)
@@ -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.MetaDataCache;
+import org.jboss.webbeans.metadata.cache.MetaDataCache;
import org.jboss.webbeans.persistence.PersistenceApiAbstraction;
import org.jboss.webbeans.persistence.spi.JpaServices;
import org.jboss.webbeans.resources.spi.ResourceServices;
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-26
17:03:09 UTC (rev 2902)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/bootstrap/BeanDeployer.java 2009-06-26
17:12:22 UTC (rev 2903)
@@ -61,7 +61,7 @@
ClassTransformer classTransformer =
getManager().getServices().get(ClassTransformer.class);
if (!clazz.isAnnotation() && !clazz.isEnum())
{
- classes.add(classTransformer.classForName(clazz));
+ classes.add(classTransformer.loadClass(clazz));
}
return this;
}
Modified:
ri/trunk/impl/src/main/java/org/jboss/webbeans/bootstrap/ExtensionBeanDeployer.java
===================================================================
---
ri/trunk/impl/src/main/java/org/jboss/webbeans/bootstrap/ExtensionBeanDeployer.java 2009-06-26
17:03:09 UTC (rev 2902)
+++
ri/trunk/impl/src/main/java/org/jboss/webbeans/bootstrap/ExtensionBeanDeployer.java 2009-06-26
17:12:22 UTC (rev 2903)
@@ -48,7 +48,7 @@
for (Extension extension : extensions)
{
@SuppressWarnings("unchecked")
- WBClass<Extension> clazz = (WBClass<Extension>)
classTransformer.classForName(extension.getClass());
+ WBClass<Extension> clazz = (WBClass<Extension>)
classTransformer.loadClass(extension.getClass());
ExtensionBean bean = ExtensionBean.of(getManager(), clazz, extension);
addBean(bean);
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-26
17:03:09 UTC (rev 2902)
+++
ri/trunk/impl/src/main/java/org/jboss/webbeans/bootstrap/WebBeansBootstrap.java 2009-06-26
17:12:22 UTC (rev 2903)
@@ -51,7 +51,7 @@
import org.jboss.webbeans.log.Log;
import org.jboss.webbeans.log.Logging;
import org.jboss.webbeans.messaging.spi.JmsServices;
-import org.jboss.webbeans.metadata.MetaDataCache;
+import org.jboss.webbeans.metadata.cache.MetaDataCache;
import org.jboss.webbeans.persistence.PersistenceApiAbstraction;
import org.jboss.webbeans.persistence.spi.JpaServices;
import org.jboss.webbeans.resources.ClassTransformer;
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-26
17:03:09 UTC (rev 2902)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/event/EventObserver.java 2009-06-26
17:12:22 UTC (rev 2903)
@@ -25,7 +25,7 @@
import javax.enterprise.inject.Current;
import org.jboss.webbeans.BeanManagerImpl;
-import org.jboss.webbeans.metadata.MetaDataCache;
+import org.jboss.webbeans.metadata.cache.MetaDataCache;
import org.jboss.webbeans.util.Reflections;
import org.jboss.webbeans.util.Strings;
Modified:
ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/NonContextualInjector.java
===================================================================
---
ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/NonContextualInjector.java 2009-06-26
17:03:09 UTC (rev 2902)
+++
ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/NonContextualInjector.java 2009-06-26
17:12:22 UTC (rev 2903)
@@ -117,7 +117,7 @@
public Set<FieldInjectionPoint<?>> call() throws Exception
{
- return
Beans.getFieldInjectionPoints(manager.getServices().get(ClassTransformer.class).classForName(instance.getClass()),
nonContextualBean);
+ return
Beans.getFieldInjectionPoints(manager.getServices().get(ClassTransformer.class).loadClass(instance.getClass()),
nonContextualBean);
}
}
Modified:
ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractWBType.java
===================================================================
---
ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractWBType.java 2009-06-26
17:03:09 UTC (rev 2902)
+++
ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractWBType.java 2009-06-26
17:12:22 UTC (rev 2903)
@@ -61,7 +61,7 @@
this._simpleName = rawType.getSimpleName();
if (rawType.getSuperclass() != null)
{
- this.superclass = classTransformer.classForName(rawType.getSuperclass());
+ this.superclass = classTransformer.loadClass(rawType.getSuperclass());
}
else
{
Deleted: ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/AnnotationModel.java
===================================================================
---
ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/AnnotationModel.java 2009-06-26
17:03:09 UTC (rev 2902)
+++
ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/AnnotationModel.java 2009-06-26
17:12:22 UTC (rev 2903)
@@ -1,124 +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;
-
-import java.lang.annotation.Annotation;
-
-import org.jboss.webbeans.DefinitionException;
-import org.jboss.webbeans.introspector.WBAnnotation;
-import org.jboss.webbeans.resources.ClassTransformer;
-
-/**
- * Abstract representation of an annotation model
- *
- * @author Pete Muir
- */
-public abstract class AnnotationModel<T extends Annotation>
-{
- // The underlying annotation
- private WBAnnotation<T> annotatedAnnotation;
- // Is the data valid?
- private boolean valid;
-
- /**
- * Constructor
- *
- * @param type The annotation type
- */
- public AnnotationModel(Class<T> type, ClassTransformer transformer)
- {
- this.annotatedAnnotation = transformer.annotationTypeForName(type);
- init();
- }
-
- /**
- * Initializes the type and validates it
- */
- protected void init()
- {
- initType();
- initValid();
- }
-
- /**
- * Initializes the type
- */
- protected void initType()
- {
- if (!Annotation.class.isAssignableFrom(getRawType()))
- {
- throw new DefinitionException(getMetaAnnotation().toString() + " can only
be applied to an annotation, it was applied to " + getRawType());
- }
- }
-
- /**
- * Validates the data for correct annotation
- */
- protected void initValid()
- {
- this.valid = annotatedAnnotation.isAnnotationPresent(getMetaAnnotation());
- }
-
- /**
- * Gets the type of the annotation
- *
- * @return The type
- */
- public Class<T> getRawType()
- {
- return annotatedAnnotation.getJavaClass();
- }
-
- /**
- * Gets the meta-annotation that should be present
- *
- * @return
- */
- protected abstract Class<? extends Annotation> getMetaAnnotation();
-
- /**
- * Indicates if the annotation is valid
- *
- * @return True if valid, false otherwise
- */
- public boolean isValid()
- {
- return valid;
- }
-
- /**
- * Gets the annotated annotation
- *
- * @return The annotation
- */
- protected WBAnnotation<T> getAnnotatedAnnotation()
- {
- return annotatedAnnotation;
- }
-
- /**
- * Gets a string representation of the annotation model
- *
- * @return The string representation
- */
- @Override
- public String toString()
- {
- return (isValid() ? "Valid" : "Invalid") + " annotation
model for " + getRawType();
- }
-
-}
\ No newline at end of file
Deleted: ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/BindingTypeModel.java
===================================================================
---
ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/BindingTypeModel.java 2009-06-26
17:03:09 UTC (rev 2902)
+++
ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/BindingTypeModel.java 2009-06-26
17:12:22 UTC (rev 2903)
@@ -1,174 +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;
-
-import java.lang.annotation.Annotation;
-import java.lang.reflect.InvocationTargetException;
-import java.util.Set;
-
-import javax.enterprise.inject.BindingType;
-import javax.enterprise.inject.NonBinding;
-
-import org.jboss.webbeans.DefinitionException;
-import org.jboss.webbeans.introspector.WBMethod;
-import org.jboss.webbeans.resources.ClassTransformer;
-import org.jboss.webbeans.util.Reflections;
-
-/**
- *
- * Model of a binding type
- *
- * @author Pete Muir
- *
- */
-public class BindingTypeModel<T extends Annotation> extends
AnnotationModel<T>
-{
- // The non-binding types
- private Set<WBMethod<?>> nonBindingTypes;
-
- /**
- * Constructor
- *
- * @param type The type
- */
- public BindingTypeModel(Class<T> type, ClassTransformer transformer)
- {
- super(type, transformer);
- }
-
- /**
- * Initializes the non-binding types and validates the members
- */
- @Override
- protected void init()
- {
- super.init();
- initNonBindingTypes();
- checkArrayAndAnnotationValuedMembers();
- }
-
- /**
- * Validates the members
- */
- private void checkArrayAndAnnotationValuedMembers()
- {
- for (WBMethod<?> annotatedMethod : getAnnotatedAnnotation().getMembers())
- {
- if ((Reflections.isArrayType(annotatedMethod.getJavaClass()) ||
Annotation.class.isAssignableFrom(annotatedMethod.getJavaClass())) &&
!nonBindingTypes.contains(annotatedMethod))
- {
- throw new DefinitionException("Member of array type or annotation type
must be annotated @NonBinding " + annotatedMethod);
- }
- }
-
- }
-
- /**
- * Gets the meta-annotation type
- *
- * @return The BindingType class
- */
- @Override
- protected Class<? extends Annotation> getMetaAnnotation()
- {
- return BindingType.class;
- }
-
- /**
- * Indicates if there are non-binding types present
- *
- * @return True if present, false otherwise
- */
- public boolean hasNonBindingTypes()
- {
- return nonBindingTypes.size() > 0;
- }
-
- /**
- * Gets the non-binding types
- *
- * @return A set of non-binding types, or an empty set if there are none
- * present
- */
- public Set<WBMethod<?>> getNonBindingTypes()
- {
- return nonBindingTypes;
- }
-
- /**
- * Initializes the non-binding types
- */
- protected void initNonBindingTypes()
- {
- nonBindingTypes = getAnnotatedAnnotation().getAnnotatedMembers(NonBinding.class);
- }
-
- /**
- * Comparator for checking equality
- *
- * @param instance The instance to check against
- * @param other The other binding type
- * @return True if equal, false otherwise
- */
- public boolean isEqual(Annotation instance, Annotation other)
- {
- if (instance.annotationType().equals(getRawType()) &&
other.annotationType().equals(getRawType()))
- {
- for (WBMethod<?> annotatedMethod : getAnnotatedAnnotation().getMembers())
- {
- if (!nonBindingTypes.contains(annotatedMethod))
- {
- try
- {
- Object thisValue = annotatedMethod.invoke(instance);
- Object thatValue = annotatedMethod.invoke(other);
- if (!thisValue.equals(thatValue))
- {
- return false;
- }
- }
- catch (IllegalArgumentException e)
- {
- throw new RuntimeException(e);
- }
- catch (IllegalAccessException e)
- {
- throw new RuntimeException(e);
- }
- catch (InvocationTargetException e)
- {
- throw new RuntimeException(e);
- }
-
- }
- }
- return true;
- }
- return false;
- }
-
- /**
- * Gets a string representation of the binding type model
- *
- * @return The string representation
- */
- @Override
- public String toString()
- {
- return (isValid() ? "Valid" : "Invalid") + " binding type
model for " + getRawType() + " with non-binding types " +
getNonBindingTypes();
- }
-
-}
Deleted: ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/MergedStereotypes.java
===================================================================
---
ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/MergedStereotypes.java 2009-06-26
17:03:09 UTC (rev 2902)
+++
ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/MergedStereotypes.java 2009-06-26
17:12:22 UTC (rev 2903)
@@ -1,167 +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;
-
-import java.lang.annotation.Annotation;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-import org.jboss.webbeans.BeanManagerImpl;
-
-/**
- * Meta model for the merged stereotype for a bean
- *
- * @author Pete Muir
- */
-public class MergedStereotypes<T, E>
-{
- // The possible deployment types
- private final Map<Class<? extends Annotation>, Annotation>
possibleDeploymentTypes;
- // The possible scope types
- private final Set<Annotation> possibleScopeTypes;
- // Is the bean name defaulted?
- private boolean beanNameDefaulted;
- // The required types
- private final Set<Class<?>> requiredTypes;
- // The supported scopes
- private final Set<Class<? extends Annotation>> supportedScopes;
-
- private final BeanManagerImpl manager;
-
- /**
- * Constructor
- *
- * @param stereotypeAnnotations The stereotypes to merge
- */
- public MergedStereotypes(Set<Annotation> stereotypeAnnotations, BeanManagerImpl
manager)
- {
- this.possibleDeploymentTypes = new HashMap<Class<? extends Annotation>,
Annotation>();
- this.possibleScopeTypes = new HashSet<Annotation>();
- this.requiredTypes = new HashSet<Class<?>>();
- this.supportedScopes = new HashSet<Class<? extends Annotation>>();
- this.manager = manager;
- merge(stereotypeAnnotations);
- }
-
- /**
- * Perform the merge
- *
- * @param stereotypeAnnotations The stereotype annotations
- */
- protected void merge(Set<Annotation> stereotypeAnnotations)
- {
- for (Annotation stereotypeAnnotation : stereotypeAnnotations)
- {
- // Retrieve and merge all metadata from stereotypes
- StereotypeModel<?> stereotype =
manager.getServices().get(MetaDataCache.class).getStereotype(stereotypeAnnotation.annotationType());
- if (stereotype == null)
- {
- throw new IllegalStateException("Stereotype " +
stereotypeAnnotation + " not registered with container");
- }
- if (stereotype.getDefaultDeploymentType() != null)
- {
-
possibleDeploymentTypes.put(stereotype.getDefaultDeploymentType().annotationType(),
stereotype.getDefaultDeploymentType());
- }
- if (stereotype.getDefaultScopeType() != null)
- {
- possibleScopeTypes.add(stereotype.getDefaultScopeType());
- }
- requiredTypes.addAll(stereotype.getRequiredTypes());
- supportedScopes.addAll(stereotype.getSupportedScopes());
- if (stereotype.isBeanNameDefaulted())
- {
- beanNameDefaulted = true;
- }
- }
- }
-
- /**
- * Returns the possible deployment typess
- *
- * @return The deployment types
- */
- public Map<Class<? extends Annotation>, Annotation>
getPossibleDeploymentTypes()
- {
- return possibleDeploymentTypes;
- }
-
- /**
- * Returns the possible scope types
- *
- * @return The scope types
- */
- public Set<Annotation> getPossibleScopeTypes()
- {
- return possibleScopeTypes;
- }
-
- /**
- * Indicates if the name i defaulted
- *
- * @return True if defaulted, false if not
- */
- public boolean isBeanNameDefaulted()
- {
- return beanNameDefaulted;
- }
-
- /**
- * Returns the required types
- *
- * @return The required types
- */
- public Set<Class<?>> getRequiredTypes()
- {
- return requiredTypes;
- }
-
- /**
- * Returns the supported scopes
- *
- * @return The supported scopes
- */
- public Set<Class<? extends Annotation>> getSupportedScopes()
- {
- return supportedScopes;
- }
-
- /**
- * Indicates if the bean was declared in XML
- *
- * @return True if declared in XML, else false
- */
- public boolean isDeclaredInXml()
- {
- return false;
- }
-
- /**
- * Gets a string representation of the merged stereotypes
- *
- * @return The string representation
- */
- @Override
- public String toString()
- {
- return "Merged stereotype model with possible deployment types " +
- possibleDeploymentTypes + ", required types " + requiredTypes +
- ", possible scopes " + possibleScopeTypes + " and supported scopes
" + supportedScopes;
- }
-
-}
Deleted: ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/MetaDataCache.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/MetaDataCache.java 2009-06-26
17:03:09 UTC (rev 2902)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/MetaDataCache.java 2009-06-26
17:12:22 UTC (rev 2903)
@@ -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;
-
-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();
- }
-
-}
Deleted: ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/ScopeModel.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/ScopeModel.java 2009-06-26
17:03:09 UTC (rev 2902)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/ScopeModel.java 2009-06-26
17:12:22 UTC (rev 2903)
@@ -1,89 +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;
-
-import java.lang.annotation.Annotation;
-
-import javax.enterprise.context.ScopeType;
-
-import org.jboss.webbeans.resources.ClassTransformer;
-
-/**
- *
- * Model of a scope
- *
- * @author Pete Muir
- *
- */
-public class ScopeModel<T extends Annotation> extends AnnotationModel<T>
-{
- /**
- * Constrctor
- *
- * @param scope The scope type
- */
- public ScopeModel(Class<T> scope, ClassTransformer classTransformer)
- {
- super(scope, classTransformer);
- }
-
- /**
- * Indicates if the scope is "normal"
- *
- * @return True if normal, false otherwise
- */
- public boolean isNormal()
- {
- return getAnnotatedAnnotation().getAnnotation(ScopeType.class).normal();
- }
-
- /**
- * Indicates if the scope is "passivating"
- *
- * @return True if passivating, false otherwise
- */
- public boolean isPassivating()
- {
- return getAnnotatedAnnotation().getAnnotation(ScopeType.class).passivating();
- }
-
- /**
- * Gets the corresponding meta-annotation type class
- *
- * @return The ScopeType class
- */
- @Override
- protected Class<? extends Annotation> getMetaAnnotation()
- {
- return ScopeType.class;
- }
-
- /**
- * Gets a string representation of the scope model
- *
- * @return The string representation
- */
- @Override
- public String toString()
- {
- String valid = isValid() ? "Valid " : "Invalid";
- String normal = isNormal() ? "normal " : "non-normal ";
- String passivating = isPassivating() ? "passivating " :
"pon-passivating ";
- return valid + normal + passivating + " scope model for " +
getRawType();
- }
-
-}
Deleted: ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/StereotypeModel.java
===================================================================
---
ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/StereotypeModel.java 2009-06-26
17:03:09 UTC (rev 2902)
+++
ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/StereotypeModel.java 2009-06-26
17:12:22 UTC (rev 2903)
@@ -1,259 +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;
-
-import java.lang.annotation.Annotation;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.Set;
-
-import javax.enterprise.context.ScopeType;
-import javax.enterprise.inject.BindingType;
-import javax.enterprise.inject.Named;
-import javax.enterprise.inject.deployment.DeploymentType;
-import javax.enterprise.inject.stereotype.Stereotype;
-import javax.interceptor.InterceptorBindingType;
-
-import org.jboss.webbeans.DefinitionException;
-import org.jboss.webbeans.resources.ClassTransformer;
-
-/**
- * A meta model for a stereotype, allows us to cache a stereotype and to
- * validate it
- *
- * @author Pete Muir
- *
- */
-public class StereotypeModel<T extends Annotation> extends
AnnotationModel<T>
-{
- // The default deployment type
- private Annotation defaultDeploymentType;
- // The default scope type
- private Annotation defaultScopeType;
- // Is the bean name defaulted
- private boolean beanNameDefaulted;
- // The supported scopes
- private Set<Class<? extends Annotation>> supportedScopes;
- // The required types
- private Set<Class<?>> requiredTypes;
- // The interceptor bindings
- private Set<Annotation> interceptorBindings;
-
- /**
- * Constructor
- *
- * @param sterotype The stereotype
- */
- public StereotypeModel(Class<T> sterotype, ClassTransformer transformer)
- {
- super(sterotype, transformer);
- initDefaultDeploymentType();
- initDefaultScopeType();
- initBeanNameDefaulted();
- initSupportedScopes();
- initRequiredTypes();
- initInterceptorBindings();
- checkBindings();
- }
-
- /**
- * Validates the binding types
- */
- private void checkBindings()
- {
- Set<Annotation> bindings =
getAnnotatedAnnotation().getMetaAnnotations(BindingType.class);
- if (bindings.size() > 0)
- {
- throw new DefinitionException("Cannot declare binding types on a stereotype
" + getAnnotatedAnnotation());
- }
- }
-
- /**
- * Initializes the interceptor bindings
- */
- private void initInterceptorBindings()
- {
- interceptorBindings =
getAnnotatedAnnotation().getMetaAnnotations(InterceptorBindingType.class);
- }
-
- /**
- * 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()
- {
- if (getAnnotatedAnnotation().isAnnotationPresent(Named.class))
- {
- if
(!"".equals(getAnnotatedAnnotation().getAnnotation(Named.class).value()))
- {
- throw new DefinitionException("Cannot specify a value for a @Named
stereotype " + getAnnotatedAnnotation());
- }
- beanNameDefaulted = true;
- }
- }
-
- /**
- * Initializes the default scope type
- */
- private void initDefaultScopeType()
- {
- Set<Annotation> scopeTypes =
getAnnotatedAnnotation().getMetaAnnotations(ScopeType.class);
- if (scopeTypes.size() > 1)
- {
- throw new DefinitionException("At most one scope type may be specified for
" + getAnnotatedAnnotation());
- }
- else if (scopeTypes.size() == 1)
- {
- this.defaultScopeType = scopeTypes.iterator().next();
- }
- }
-
- /**
- * Initializes the default deployment type
- */
- private void initDefaultDeploymentType()
- {
- Set<Annotation> deploymentTypes =
getAnnotatedAnnotation().getMetaAnnotations(DeploymentType.class);
- if (deploymentTypes.size() > 1)
- {
- throw new DefinitionException("At most one deployment type may be specified
on " + getAnnotatedAnnotation());
- }
- else if (deploymentTypes.size() == 1)
- {
- this.defaultDeploymentType = deploymentTypes.iterator().next();
- }
- }
-
- /**
- * Get the default deployment type the stereotype specifies
- *
- * @return The default deployment type, or null if none is specified
- */
- public Annotation getDefaultDeploymentType()
- {
- return defaultDeploymentType;
- }
-
- /**
- * Get the default scope type the stereotype specifies
- *
- * @return The default scope type, or null if none is specified
- */
- public Annotation getDefaultScopeType()
- {
- return defaultScopeType;
- }
-
- /**
- * Get any interceptor bindings the the stereotype specifies
- *
- * @return The interceptor bindings, or an empty set if none are specified.
- */
- public Set<Annotation> getInterceptorBindings()
- {
- return interceptorBindings;
- }
-
- /**
- * Indicates if the bean name is defaulted
- *
- * @return True if defaulted, false otherwise
- */
- public boolean isBeanNameDefaulted()
- {
- return beanNameDefaulted;
- }
-
- /**
- * Gets the supported scopes
- *
- * @return A set of supported scopes, or an empty set if none are specified
- */
- public Set<Class<? extends Annotation>> getSupportedScopes()
- {
- return supportedScopes;
- }
-
- /**
- * Gets the required types
- *
- * @return A set of required types, or an empty set if none are specified
- */
- public Set<Class<?>> getRequiredTypes()
- {
- return requiredTypes;
- }
-
- /**
- * Gets the type
- *
- * @return The type
- */
- @Deprecated
- public Class<? extends Annotation> getStereotypeClass()
- {
- return getRawType();
- }
-
- /**
- * Gets a string representation of the stereotype
- *
- * @return The string representation
- */
- @Override
- public String toString()
- {
- return "Stereotype model with required types " + requiredTypes + "
and supported scopes " + supportedScopes;
- }
-
- /**
- * Gets the meta-annotation type
- *
- * @return The Stereotype class
- */
- @Override
- protected Class<? extends Annotation> getMetaAnnotation()
- {
- return Stereotype.class;
- }
-
-}
Copied: ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/AnnotationModel.java
(from rev 2896,
ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/AnnotationModel.java)
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/AnnotationModel.java
(rev 0)
+++
ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/AnnotationModel.java 2009-06-26
17:12:22 UTC (rev 2903)
@@ -0,0 +1,124 @@
+/*
+ * 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 org.jboss.webbeans.DefinitionException;
+import org.jboss.webbeans.introspector.WBAnnotation;
+import org.jboss.webbeans.resources.ClassTransformer;
+
+/**
+ * Abstract representation of an annotation model
+ *
+ * @author Pete Muir
+ */
+public abstract class AnnotationModel<T extends Annotation>
+{
+ // The underlying annotation
+ private WBAnnotation<T> annotatedAnnotation;
+ // Is the data valid?
+ private boolean valid;
+
+ /**
+ * Constructor
+ *
+ * @param type The annotation type
+ */
+ public AnnotationModel(Class<T> type, ClassTransformer transformer)
+ {
+ this.annotatedAnnotation = transformer.loadAnnotation(type);
+ init();
+ }
+
+ /**
+ * Initializes the type and validates it
+ */
+ protected void init()
+ {
+ initType();
+ initValid();
+ }
+
+ /**
+ * Initializes the type
+ */
+ protected void initType()
+ {
+ if (!Annotation.class.isAssignableFrom(getRawType()))
+ {
+ throw new DefinitionException(getMetaAnnotation().toString() + " can only
be applied to an annotation, it was applied to " + getRawType());
+ }
+ }
+
+ /**
+ * Validates the data for correct annotation
+ */
+ protected void initValid()
+ {
+ this.valid = annotatedAnnotation.isAnnotationPresent(getMetaAnnotation());
+ }
+
+ /**
+ * Gets the type of the annotation
+ *
+ * @return The type
+ */
+ public Class<T> getRawType()
+ {
+ return annotatedAnnotation.getJavaClass();
+ }
+
+ /**
+ * Gets the meta-annotation that should be present
+ *
+ * @return
+ */
+ protected abstract Class<? extends Annotation> getMetaAnnotation();
+
+ /**
+ * Indicates if the annotation is valid
+ *
+ * @return True if valid, false otherwise
+ */
+ public boolean isValid()
+ {
+ return valid;
+ }
+
+ /**
+ * Gets the annotated annotation
+ *
+ * @return The annotation
+ */
+ protected WBAnnotation<T> getAnnotatedAnnotation()
+ {
+ return annotatedAnnotation;
+ }
+
+ /**
+ * Gets a string representation of the annotation model
+ *
+ * @return The string representation
+ */
+ @Override
+ public String toString()
+ {
+ return (isValid() ? "Valid" : "Invalid") + " annotation
model for " + getRawType();
+ }
+
+}
\ No newline at end of file
Property changes on:
ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/AnnotationModel.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Copied:
ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/BindingTypeModel.java (from
rev 2896, ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/BindingTypeModel.java)
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/BindingTypeModel.java
(rev 0)
+++
ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/BindingTypeModel.java 2009-06-26
17:12:22 UTC (rev 2903)
@@ -0,0 +1,174 @@
+/*
+ * 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.lang.reflect.InvocationTargetException;
+import java.util.Set;
+
+import javax.enterprise.inject.BindingType;
+import javax.enterprise.inject.NonBinding;
+
+import org.jboss.webbeans.DefinitionException;
+import org.jboss.webbeans.introspector.WBMethod;
+import org.jboss.webbeans.resources.ClassTransformer;
+import org.jboss.webbeans.util.Reflections;
+
+/**
+ *
+ * Model of a binding type
+ *
+ * @author Pete Muir
+ *
+ */
+public class BindingTypeModel<T extends Annotation> extends
AnnotationModel<T>
+{
+ // The non-binding types
+ private Set<WBMethod<?>> nonBindingTypes;
+
+ /**
+ * Constructor
+ *
+ * @param type The type
+ */
+ public BindingTypeModel(Class<T> type, ClassTransformer transformer)
+ {
+ super(type, transformer);
+ }
+
+ /**
+ * Initializes the non-binding types and validates the members
+ */
+ @Override
+ protected void init()
+ {
+ super.init();
+ initNonBindingTypes();
+ checkArrayAndAnnotationValuedMembers();
+ }
+
+ /**
+ * Validates the members
+ */
+ private void checkArrayAndAnnotationValuedMembers()
+ {
+ for (WBMethod<?> annotatedMethod : getAnnotatedAnnotation().getMembers())
+ {
+ if ((Reflections.isArrayType(annotatedMethod.getJavaClass()) ||
Annotation.class.isAssignableFrom(annotatedMethod.getJavaClass())) &&
!nonBindingTypes.contains(annotatedMethod))
+ {
+ throw new DefinitionException("Member of array type or annotation type
must be annotated @NonBinding " + annotatedMethod);
+ }
+ }
+
+ }
+
+ /**
+ * Gets the meta-annotation type
+ *
+ * @return The BindingType class
+ */
+ @Override
+ protected Class<? extends Annotation> getMetaAnnotation()
+ {
+ return BindingType.class;
+ }
+
+ /**
+ * Indicates if there are non-binding types present
+ *
+ * @return True if present, false otherwise
+ */
+ public boolean hasNonBindingTypes()
+ {
+ return nonBindingTypes.size() > 0;
+ }
+
+ /**
+ * Gets the non-binding types
+ *
+ * @return A set of non-binding types, or an empty set if there are none
+ * present
+ */
+ public Set<WBMethod<?>> getNonBindingTypes()
+ {
+ return nonBindingTypes;
+ }
+
+ /**
+ * Initializes the non-binding types
+ */
+ protected void initNonBindingTypes()
+ {
+ nonBindingTypes = getAnnotatedAnnotation().getAnnotatedMembers(NonBinding.class);
+ }
+
+ /**
+ * Comparator for checking equality
+ *
+ * @param instance The instance to check against
+ * @param other The other binding type
+ * @return True if equal, false otherwise
+ */
+ public boolean isEqual(Annotation instance, Annotation other)
+ {
+ if (instance.annotationType().equals(getRawType()) &&
other.annotationType().equals(getRawType()))
+ {
+ for (WBMethod<?> annotatedMethod : getAnnotatedAnnotation().getMembers())
+ {
+ if (!nonBindingTypes.contains(annotatedMethod))
+ {
+ try
+ {
+ Object thisValue = annotatedMethod.invoke(instance);
+ Object thatValue = annotatedMethod.invoke(other);
+ if (!thisValue.equals(thatValue))
+ {
+ return false;
+ }
+ }
+ catch (IllegalArgumentException e)
+ {
+ throw new RuntimeException(e);
+ }
+ catch (IllegalAccessException e)
+ {
+ throw new RuntimeException(e);
+ }
+ catch (InvocationTargetException e)
+ {
+ throw new RuntimeException(e);
+ }
+
+ }
+ }
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Gets a string representation of the binding type model
+ *
+ * @return The string representation
+ */
+ @Override
+ public String toString()
+ {
+ return (isValid() ? "Valid" : "Invalid") + " binding type
model for " + getRawType() + " with non-binding types " +
getNonBindingTypes();
+ }
+
+}
Property changes on:
ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/BindingTypeModel.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Copied:
ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/MergedStereotypes.java (from
rev 2896, ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/MergedStereotypes.java)
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/MergedStereotypes.java
(rev 0)
+++
ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/MergedStereotypes.java 2009-06-26
17:12:22 UTC (rev 2903)
@@ -0,0 +1,167 @@
+/*
+ * 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.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+import org.jboss.webbeans.BeanManagerImpl;
+
+/**
+ * Meta model for the merged stereotype for a bean
+ *
+ * @author Pete Muir
+ */
+public class MergedStereotypes<T, E>
+{
+ // The possible deployment types
+ private final Map<Class<? extends Annotation>, Annotation>
possibleDeploymentTypes;
+ // The possible scope types
+ private final Set<Annotation> possibleScopeTypes;
+ // Is the bean name defaulted?
+ private boolean beanNameDefaulted;
+ // The required types
+ private final Set<Class<?>> requiredTypes;
+ // The supported scopes
+ private final Set<Class<? extends Annotation>> supportedScopes;
+
+ private final BeanManagerImpl manager;
+
+ /**
+ * Constructor
+ *
+ * @param stereotypeAnnotations The stereotypes to merge
+ */
+ public MergedStereotypes(Set<Annotation> stereotypeAnnotations, BeanManagerImpl
manager)
+ {
+ this.possibleDeploymentTypes = new HashMap<Class<? extends Annotation>,
Annotation>();
+ this.possibleScopeTypes = new HashSet<Annotation>();
+ this.requiredTypes = new HashSet<Class<?>>();
+ this.supportedScopes = new HashSet<Class<? extends Annotation>>();
+ this.manager = manager;
+ merge(stereotypeAnnotations);
+ }
+
+ /**
+ * Perform the merge
+ *
+ * @param stereotypeAnnotations The stereotype annotations
+ */
+ protected void merge(Set<Annotation> stereotypeAnnotations)
+ {
+ for (Annotation stereotypeAnnotation : stereotypeAnnotations)
+ {
+ // Retrieve and merge all metadata from stereotypes
+ StereotypeModel<?> stereotype =
manager.getServices().get(MetaDataCache.class).getStereotype(stereotypeAnnotation.annotationType());
+ if (stereotype == null)
+ {
+ throw new IllegalStateException("Stereotype " +
stereotypeAnnotation + " not registered with container");
+ }
+ if (stereotype.getDefaultDeploymentType() != null)
+ {
+
possibleDeploymentTypes.put(stereotype.getDefaultDeploymentType().annotationType(),
stereotype.getDefaultDeploymentType());
+ }
+ if (stereotype.getDefaultScopeType() != null)
+ {
+ possibleScopeTypes.add(stereotype.getDefaultScopeType());
+ }
+ requiredTypes.addAll(stereotype.getRequiredTypes());
+ supportedScopes.addAll(stereotype.getSupportedScopes());
+ if (stereotype.isBeanNameDefaulted())
+ {
+ beanNameDefaulted = true;
+ }
+ }
+ }
+
+ /**
+ * Returns the possible deployment typess
+ *
+ * @return The deployment types
+ */
+ public Map<Class<? extends Annotation>, Annotation>
getPossibleDeploymentTypes()
+ {
+ return possibleDeploymentTypes;
+ }
+
+ /**
+ * Returns the possible scope types
+ *
+ * @return The scope types
+ */
+ public Set<Annotation> getPossibleScopeTypes()
+ {
+ return possibleScopeTypes;
+ }
+
+ /**
+ * Indicates if the name i defaulted
+ *
+ * @return True if defaulted, false if not
+ */
+ public boolean isBeanNameDefaulted()
+ {
+ return beanNameDefaulted;
+ }
+
+ /**
+ * Returns the required types
+ *
+ * @return The required types
+ */
+ public Set<Class<?>> getRequiredTypes()
+ {
+ return requiredTypes;
+ }
+
+ /**
+ * Returns the supported scopes
+ *
+ * @return The supported scopes
+ */
+ public Set<Class<? extends Annotation>> getSupportedScopes()
+ {
+ return supportedScopes;
+ }
+
+ /**
+ * Indicates if the bean was declared in XML
+ *
+ * @return True if declared in XML, else false
+ */
+ public boolean isDeclaredInXml()
+ {
+ return false;
+ }
+
+ /**
+ * Gets a string representation of the merged stereotypes
+ *
+ * @return The string representation
+ */
+ @Override
+ public String toString()
+ {
+ return "Merged stereotype model with possible deployment types " +
+ possibleDeploymentTypes + ", required types " + requiredTypes +
+ ", possible scopes " + possibleScopeTypes + " and supported scopes
" + supportedScopes;
+ }
+
+}
Property changes on:
ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/MergedStereotypes.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Name: svn:mergeinfo
+
Copied: ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/MetaDataCache.java
(from rev 2896,
ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/MetaDataCache.java)
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/MetaDataCache.java
(rev 0)
+++
ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/MetaDataCache.java 2009-06-26
17:12:22 UTC (rev 2903)
@@ -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 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();
+ }
+
+}
Copied: ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/ScopeModel.java
(from rev 2896, ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/ScopeModel.java)
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/ScopeModel.java
(rev 0)
+++
ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/ScopeModel.java 2009-06-26
17:12:22 UTC (rev 2903)
@@ -0,0 +1,89 @@
+/*
+ * 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 javax.enterprise.context.ScopeType;
+
+import org.jboss.webbeans.resources.ClassTransformer;
+
+/**
+ *
+ * Model of a scope
+ *
+ * @author Pete Muir
+ *
+ */
+public class ScopeModel<T extends Annotation> extends AnnotationModel<T>
+{
+ /**
+ * Constrctor
+ *
+ * @param scope The scope type
+ */
+ public ScopeModel(Class<T> scope, ClassTransformer classTransformer)
+ {
+ super(scope, classTransformer);
+ }
+
+ /**
+ * Indicates if the scope is "normal"
+ *
+ * @return True if normal, false otherwise
+ */
+ public boolean isNormal()
+ {
+ return getAnnotatedAnnotation().getAnnotation(ScopeType.class).normal();
+ }
+
+ /**
+ * Indicates if the scope is "passivating"
+ *
+ * @return True if passivating, false otherwise
+ */
+ public boolean isPassivating()
+ {
+ return getAnnotatedAnnotation().getAnnotation(ScopeType.class).passivating();
+ }
+
+ /**
+ * Gets the corresponding meta-annotation type class
+ *
+ * @return The ScopeType class
+ */
+ @Override
+ protected Class<? extends Annotation> getMetaAnnotation()
+ {
+ return ScopeType.class;
+ }
+
+ /**
+ * Gets a string representation of the scope model
+ *
+ * @return The string representation
+ */
+ @Override
+ public String toString()
+ {
+ String valid = isValid() ? "Valid " : "Invalid";
+ String normal = isNormal() ? "normal " : "non-normal ";
+ String passivating = isPassivating() ? "passivating " :
"pon-passivating ";
+ return valid + normal + passivating + " scope model for " +
getRawType();
+ }
+
+}
Property changes on:
ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/ScopeModel.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Copied: ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/StereotypeModel.java
(from rev 2896,
ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/StereotypeModel.java)
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/StereotypeModel.java
(rev 0)
+++
ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/StereotypeModel.java 2009-06-26
17:12:22 UTC (rev 2903)
@@ -0,0 +1,259 @@
+/*
+ * 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.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+
+import javax.enterprise.context.ScopeType;
+import javax.enterprise.inject.BindingType;
+import javax.enterprise.inject.Named;
+import javax.enterprise.inject.deployment.DeploymentType;
+import javax.enterprise.inject.stereotype.Stereotype;
+import javax.interceptor.InterceptorBindingType;
+
+import org.jboss.webbeans.DefinitionException;
+import org.jboss.webbeans.resources.ClassTransformer;
+
+/**
+ * A meta model for a stereotype, allows us to cache a stereotype and to
+ * validate it
+ *
+ * @author Pete Muir
+ *
+ */
+public class StereotypeModel<T extends Annotation> extends
AnnotationModel<T>
+{
+ // The default deployment type
+ private Annotation defaultDeploymentType;
+ // The default scope type
+ private Annotation defaultScopeType;
+ // Is the bean name defaulted
+ private boolean beanNameDefaulted;
+ // The supported scopes
+ private Set<Class<? extends Annotation>> supportedScopes;
+ // The required types
+ private Set<Class<?>> requiredTypes;
+ // The interceptor bindings
+ private Set<Annotation> interceptorBindings;
+
+ /**
+ * Constructor
+ *
+ * @param sterotype The stereotype
+ */
+ public StereotypeModel(Class<T> sterotype, ClassTransformer transformer)
+ {
+ super(sterotype, transformer);
+ initDefaultDeploymentType();
+ initDefaultScopeType();
+ initBeanNameDefaulted();
+ initSupportedScopes();
+ initRequiredTypes();
+ initInterceptorBindings();
+ checkBindings();
+ }
+
+ /**
+ * Validates the binding types
+ */
+ private void checkBindings()
+ {
+ Set<Annotation> bindings =
getAnnotatedAnnotation().getMetaAnnotations(BindingType.class);
+ if (bindings.size() > 0)
+ {
+ throw new DefinitionException("Cannot declare binding types on a stereotype
" + getAnnotatedAnnotation());
+ }
+ }
+
+ /**
+ * Initializes the interceptor bindings
+ */
+ private void initInterceptorBindings()
+ {
+ interceptorBindings =
getAnnotatedAnnotation().getMetaAnnotations(InterceptorBindingType.class);
+ }
+
+ /**
+ * 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()
+ {
+ if (getAnnotatedAnnotation().isAnnotationPresent(Named.class))
+ {
+ if
(!"".equals(getAnnotatedAnnotation().getAnnotation(Named.class).value()))
+ {
+ throw new DefinitionException("Cannot specify a value for a @Named
stereotype " + getAnnotatedAnnotation());
+ }
+ beanNameDefaulted = true;
+ }
+ }
+
+ /**
+ * Initializes the default scope type
+ */
+ private void initDefaultScopeType()
+ {
+ Set<Annotation> scopeTypes =
getAnnotatedAnnotation().getMetaAnnotations(ScopeType.class);
+ if (scopeTypes.size() > 1)
+ {
+ throw new DefinitionException("At most one scope type may be specified for
" + getAnnotatedAnnotation());
+ }
+ else if (scopeTypes.size() == 1)
+ {
+ this.defaultScopeType = scopeTypes.iterator().next();
+ }
+ }
+
+ /**
+ * Initializes the default deployment type
+ */
+ private void initDefaultDeploymentType()
+ {
+ Set<Annotation> deploymentTypes =
getAnnotatedAnnotation().getMetaAnnotations(DeploymentType.class);
+ if (deploymentTypes.size() > 1)
+ {
+ throw new DefinitionException("At most one deployment type may be specified
on " + getAnnotatedAnnotation());
+ }
+ else if (deploymentTypes.size() == 1)
+ {
+ this.defaultDeploymentType = deploymentTypes.iterator().next();
+ }
+ }
+
+ /**
+ * Get the default deployment type the stereotype specifies
+ *
+ * @return The default deployment type, or null if none is specified
+ */
+ public Annotation getDefaultDeploymentType()
+ {
+ return defaultDeploymentType;
+ }
+
+ /**
+ * Get the default scope type the stereotype specifies
+ *
+ * @return The default scope type, or null if none is specified
+ */
+ public Annotation getDefaultScopeType()
+ {
+ return defaultScopeType;
+ }
+
+ /**
+ * Get any interceptor bindings the the stereotype specifies
+ *
+ * @return The interceptor bindings, or an empty set if none are specified.
+ */
+ public Set<Annotation> getInterceptorBindings()
+ {
+ return interceptorBindings;
+ }
+
+ /**
+ * Indicates if the bean name is defaulted
+ *
+ * @return True if defaulted, false otherwise
+ */
+ public boolean isBeanNameDefaulted()
+ {
+ return beanNameDefaulted;
+ }
+
+ /**
+ * Gets the supported scopes
+ *
+ * @return A set of supported scopes, or an empty set if none are specified
+ */
+ public Set<Class<? extends Annotation>> getSupportedScopes()
+ {
+ return supportedScopes;
+ }
+
+ /**
+ * Gets the required types
+ *
+ * @return A set of required types, or an empty set if none are specified
+ */
+ public Set<Class<?>> getRequiredTypes()
+ {
+ return requiredTypes;
+ }
+
+ /**
+ * Gets the type
+ *
+ * @return The type
+ */
+ @Deprecated
+ public Class<? extends Annotation> getStereotypeClass()
+ {
+ return getRawType();
+ }
+
+ /**
+ * Gets a string representation of the stereotype
+ *
+ * @return The string representation
+ */
+ @Override
+ public String toString()
+ {
+ return "Stereotype model with required types " + requiredTypes + "
and supported scopes " + supportedScopes;
+ }
+
+ /**
+ * Gets the meta-annotation type
+ *
+ * @return The Stereotype class
+ */
+ @Override
+ protected Class<? extends Annotation> getMetaAnnotation()
+ {
+ return Stereotype.class;
+ }
+
+}
Property changes on:
ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/StereotypeModel.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
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-26
17:03:09 UTC (rev 2902)
+++
ri/trunk/impl/src/main/java/org/jboss/webbeans/resources/ClassTransformer.java 2009-06-26
17:12:22 UTC (rev 2903)
@@ -26,7 +26,7 @@
import org.jboss.webbeans.introspector.jlr.WBClassImpl;
import org.jboss.webbeans.util.collections.ConcurrentCache;
-public class ClassTransformer implements Service
+public class ClassTransformer implements Service
{
private final ConcurrentCache<Class<?>, WBClass<?>> classes;
@@ -42,30 +42,29 @@
annotations = new ConcurrentCache<Class<?>, WBAnnotation<?>>();
}
- public <T> WBClass<T> classForName(final Class<T> clazz)
+ public <T> WBClass<T> loadClass(final Class<T> clazz)
{
return classes.putIfAbsent(clazz, new Callable<WBClass<T>>()
- {
+ {
public WBClass<T> call() throws Exception
{
return WBClassImpl.of(clazz, transformer);
}
- });
+ });
}
- public <T extends Annotation> WBAnnotation<T> annotationTypeForName(final
Class<T> clazz)
+ public <T extends Annotation> WBAnnotation<T> loadAnnotation(final
Class<T> clazz)
{
return annotations.putIfAbsent(clazz, new Callable<WBAnnotation<T>>()
- {
-
+ {
public WBAnnotation<T> call() throws Exception
{
return WBAnnotationImpl.of(clazz, transformer);
}
- });
+ });
}
}
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-26 17:03:09 UTC
(rev 2902)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/util/Beans.java 2009-06-26 17:12:22 UTC
(rev 2903)
@@ -32,8 +32,8 @@
import org.jboss.webbeans.injection.FieldInjectionPoint;
import org.jboss.webbeans.introspector.WBClass;
import org.jboss.webbeans.introspector.WBField;
-import org.jboss.webbeans.metadata.BindingTypeModel;
-import org.jboss.webbeans.metadata.MetaDataCache;
+import org.jboss.webbeans.metadata.cache.BindingTypeModel;
+import org.jboss.webbeans.metadata.cache.MetaDataCache;
/**
* Helper class for bean inspection
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-26
17:03:09 UTC (rev 2902)
+++
ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/context/PassivatingContextTest.java 2009-06-26
17:12:22 UTC (rev 2903)
@@ -6,7 +6,7 @@
import javax.enterprise.context.SessionScoped;
import org.jboss.testharness.impl.packaging.Artifact;
-import org.jboss.webbeans.metadata.MetaDataCache;
+import org.jboss.webbeans.metadata.cache.MetaDataCache;
import org.testng.annotations.Test;
@Artifact
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-26
17:03:09 UTC (rev 2902)
+++
ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/definition/StereotypesTest.java 2009-06-26
17:12:22 UTC (rev 2903)
@@ -5,7 +5,7 @@
import javax.enterprise.context.RequestScoped;
import org.jboss.testharness.impl.packaging.Artifact;
-import org.jboss.webbeans.metadata.StereotypeModel;
+import org.jboss.webbeans.metadata.cache.StereotypeModel;
import org.jboss.webbeans.resources.ClassTransformer;
import org.jboss.webbeans.test.AbstractWebBeansTest;
import org.testng.annotations.Test;