in container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java [3880:4166]
public void buildAnnotatedRefs(final JndiConsumer consumer, final IAnnotationFinder annotationFinder, final ClassLoader classLoader) throws OpenEJBException {
//
// @EJB
//
final List<EJB> ejbList = new ArrayList<>();
for (final Annotated<Class<?>> clazz : annotationFinder.findMetaAnnotatedClasses(EJBs.class)) {
final EJBs ejbs = clazz.getAnnotation(EJBs.class);
ejbList.addAll(Arrays.asList(ejbs.value()));
}
for (final Annotated<Class<?>> clazz : annotationFinder.findMetaAnnotatedClasses(EJB.class)) {
final EJB e = clazz.getAnnotation(EJB.class);
ejbList.add(e);
}
for (final EJB ejb : ejbList) {
buildEjbRef(consumer, ejb, null);
}
for (final Annotated<Field> field : annotationFinder.findMetaAnnotatedFields(EJB.class)) {
final EJB ejb = field.getAnnotation(EJB.class);
final Member member = new FieldMember(field.get());
buildEjbRef(consumer, ejb, member);
}
for (final Annotated<Method> method : annotationFinder.findMetaAnnotatedMethods(EJB.class)) {
final EJB ejb = method.getAnnotation(EJB.class);
final Member member = new MethodMember(method.get());
buildEjbRef(consumer, ejb, member);
}
//
// @Resource
//
final List<Resource> resourceList = new ArrayList<>();
for (final Annotated<Class<?>> clazz : annotationFinder.findMetaAnnotatedClasses(Resources.class)) {
final Resources resources = clazz.getAnnotation(Resources.class);
resourceList.addAll(Arrays.asList(resources.value()));
}
for (final Annotated<Class<?>> clazz : annotationFinder.findMetaAnnotatedClasses(Resource.class)) {
final Resource resource = clazz.getAnnotation(Resource.class);
resourceList.add(resource);
}
for (final Resource resource : resourceList) {
buildResource(consumer, resource, null);
}
for (final Annotated<Field> field : annotationFinder.findMetaAnnotatedFields(Resource.class)) {
final Resource resource = field.getAnnotation(Resource.class);
final Member member = new FieldMember(field.get());
buildResource(consumer, resource, member);
}
for (final Annotated<Method> method : annotationFinder.findMetaAnnotatedMethods(Resource.class)) {
final Resource resource = method.getAnnotation(Resource.class);
final Member member = new MethodMember(method.get());
buildResource(consumer, resource, member);
}
//
// @Context (REST)
//
for (final Annotated<Field> field : annotationFinder.findMetaAnnotatedFields(Context.class)) {
final Member member = new FieldMember(field.get());
buildContext(consumer, member);
}
//
// @WebServiceRef
//
final List<WebServiceRef> webservicerefList = new ArrayList<>();
for (final Annotated<Class<?>> clazz : annotationFinder.findMetaAnnotatedClasses(WebServiceRefs.class)) {
final WebServiceRefs webServiceRefs = clazz.getAnnotation(WebServiceRefs.class);
webservicerefList.addAll(Arrays.asList(webServiceRefs.value()));
}
for (final Annotated<Class<?>> clazz : annotationFinder.findMetaAnnotatedClasses(WebServiceRef.class)) {
final WebServiceRef webServiceRef = clazz.getAnnotation(WebServiceRef.class);
webservicerefList.add(webServiceRef);
}
for (final WebServiceRef webserviceref : webservicerefList) {
buildWebServiceRef(consumer, webserviceref, null, null, classLoader);
}
for (final Annotated<Field> field : annotationFinder.findMetaAnnotatedFields(WebServiceRef.class)) {
final WebServiceRef webserviceref = field.getAnnotation(WebServiceRef.class);
final HandlerChain handlerChain = field.getAnnotation(HandlerChain.class);
final Member member = new FieldMember(field.get());
buildWebServiceRef(consumer, webserviceref, handlerChain, member, classLoader);
}
for (final Annotated<Method> method : annotationFinder.findMetaAnnotatedMethods(WebServiceRef.class)) {
final WebServiceRef webserviceref = method.getAnnotation(WebServiceRef.class);
final HandlerChain handlerChain = method.getAnnotation(HandlerChain.class);
final Member member = new MethodMember(method.get());
buildWebServiceRef(consumer, webserviceref, handlerChain, member, classLoader);
}
//
// @PersistenceUnit
//
final List<PersistenceUnit> persistenceUnitList = new ArrayList<>();
for (final Annotated<Class<?>> clazz : annotationFinder.findMetaAnnotatedClasses(PersistenceUnits.class)) {
final PersistenceUnits persistenceUnits = clazz.getAnnotation(PersistenceUnits.class);
persistenceUnitList.addAll(Arrays.asList(persistenceUnits.value()));
}
for (final Annotated<Class<?>> clazz : annotationFinder.findMetaAnnotatedClasses(PersistenceUnit.class)) {
final PersistenceUnit persistenceUnit = clazz.getAnnotation(PersistenceUnit.class);
persistenceUnitList.add(persistenceUnit);
}
for (final PersistenceUnit pUnit : persistenceUnitList) {
buildPersistenceUnit(consumer, pUnit, null);
}
for (final Annotated<Field> field : annotationFinder.findMetaAnnotatedFields(PersistenceUnit.class)) {
final PersistenceUnit pUnit = field.getAnnotation(PersistenceUnit.class);
final Member member = new FieldMember(field.get());
buildPersistenceUnit(consumer, pUnit, member);
}
for (final Annotated<Method> method : annotationFinder.findMetaAnnotatedMethods(PersistenceUnit.class)) {
final PersistenceUnit pUnit = method.getAnnotation(PersistenceUnit.class);
final Member member = new MethodMember(method.get());
buildPersistenceUnit(consumer, pUnit, member);
}
//
// @PersistenceContext
//
final PersistenceContextAnnFactory pcFactory = new PersistenceContextAnnFactory();
final List<PersistenceContext> persistenceContextList = new ArrayList<>();
for (final Annotated<Class<?>> clazz : annotationFinder.findMetaAnnotatedClasses(PersistenceContexts.class)) {
final PersistenceContexts persistenceContexts = clazz.getAnnotation(PersistenceContexts.class);
persistenceContextList.addAll(Arrays.asList(persistenceContexts.value()));
pcFactory.addAnnotations(clazz.get());
}
for (final Annotated<Class<?>> clazz : annotationFinder.findMetaAnnotatedClasses(PersistenceContext.class)) {
final PersistenceContext persistenceContext = clazz.getAnnotation(PersistenceContext.class);
persistenceContextList.add(persistenceContext);
pcFactory.addAnnotations(clazz.get());
// dynamic proxy implementation
if (clazz.get().isInterface()) {
final Member member = new FilledMember("em", EntityManager.class, clazz.get());
buildPersistenceContext(consumer, pcFactory.create(persistenceContext, member), member);
}
}
for (final PersistenceContext pCtx : persistenceContextList) {
buildPersistenceContext(consumer, pcFactory.create(pCtx, null), null);
}
for (final Annotated<Field> field : annotationFinder.findMetaAnnotatedFields(PersistenceContext.class)) {
final PersistenceContext pCtx = field.getAnnotation(PersistenceContext.class);
final Member member = new FieldMember(field.get());
buildPersistenceContext(consumer, pcFactory.create(pCtx, member), member);
}
for (final Annotated<Method> method : annotationFinder.findMetaAnnotatedMethods(PersistenceContext.class)) {
final PersistenceContext pCtx = method.getAnnotation(PersistenceContext.class);
final Member member = new MethodMember(method.get());
buildPersistenceContext(consumer, pcFactory.create(pCtx, member), member);
}
//
// @DataSourceDefinition
//
for (final Annotated<Class<?>> annotated : annotationFinder.findMetaAnnotatedClasses(DataSourceDefinitions.class)) {
final DataSourceDefinitions defs = annotated.getAnnotation(DataSourceDefinitions.class);
for (final DataSourceDefinition definition : defs.value()) {
buildDataSourceDefinition(consumer, definition);
}
}
for (final Annotated<Class<?>> annotated : annotationFinder.findMetaAnnotatedClasses(DataSourceDefinition.class)) {
final DataSourceDefinition definition = annotated.getAnnotation(DataSourceDefinition.class);
buildDataSourceDefinition(consumer, definition);
}
//
// @ContextServiceDefinition
//
for (final Annotated<Class<?>> annotated : annotationFinder.findMetaAnnotatedClasses(ContextServiceDefinition.List.class)) {
final ContextServiceDefinition.List defs = annotated.getAnnotation(ContextServiceDefinition.List.class);
for (final ContextServiceDefinition definition : defs.value()) {
buildContextServiceDefinition(consumer, definition);
}
}
for (final Annotated<Class<?>> annotated : annotationFinder.findMetaAnnotatedClasses(ContextServiceDefinition.class)) {
final ContextServiceDefinition definition = annotated.getAnnotation(ContextServiceDefinition.class);
buildContextServiceDefinition(consumer, definition);
}
//
// @ManagedExecutorDefinition
//
for (final Annotated<Class<?>> annotated : annotationFinder.findMetaAnnotatedClasses(ManagedExecutorDefinition.List.class)) {
final ManagedExecutorDefinition.List defs = annotated.getAnnotation(ManagedExecutorDefinition.List.class);
for (final ManagedExecutorDefinition definition : defs.value()) {
buildManagedExecutorDefinition(consumer, definition);
}
}
for (final Annotated<Class<?>> annotated : annotationFinder.findMetaAnnotatedClasses(ManagedExecutorDefinition.class)) {
final ManagedExecutorDefinition definition = annotated.getAnnotation(ManagedExecutorDefinition.class);
buildManagedExecutorDefinition(consumer, definition);
}
//
// @ManagedScheduledExecutorDefinition
//
for (final Annotated<Class<?>> annotated : annotationFinder.findMetaAnnotatedClasses(ManagedScheduledExecutorDefinition.List.class)) {
final ManagedScheduledExecutorDefinition.List defs = annotated.getAnnotation(ManagedScheduledExecutorDefinition.List.class);
for (final ManagedScheduledExecutorDefinition definition : defs.value()) {
buildManagedScheduledExecutorDefinition(consumer, definition);
}
}
for (final Annotated<Class<?>> annotated : annotationFinder.findMetaAnnotatedClasses(ManagedScheduledExecutorDefinition.class)) {
final ManagedScheduledExecutorDefinition definition = annotated.getAnnotation(ManagedScheduledExecutorDefinition.class);
buildManagedScheduledExecutorDefinition(consumer, definition);
}
//
// @ManagedThreadFactoryDefinition
//
for (final Annotated<Class<?>> annotated : annotationFinder.findMetaAnnotatedClasses(ManagedThreadFactoryDefinition.List.class)) {
final ManagedThreadFactoryDefinition.List defs = annotated.getAnnotation(ManagedThreadFactoryDefinition.List.class);
for (final ManagedThreadFactoryDefinition definition : defs.value()) {
buildManagedThreadFactoryDefinition(consumer, definition);
}
}
for (final Annotated<Class<?>> annotated : annotationFinder.findMetaAnnotatedClasses(ManagedThreadFactoryDefinition.class)) {
final ManagedThreadFactoryDefinition definition = annotated.getAnnotation(ManagedThreadFactoryDefinition.class);
buildManagedThreadFactoryDefinition(consumer, definition);
}
//
// @JMSConnectionFactoryDefinition
//
for (final Annotated<Class<?>> annotated : annotationFinder.findMetaAnnotatedClasses(JMSConnectionFactoryDefinitions.class)) {
final JMSConnectionFactoryDefinitions defs = annotated.getAnnotation(JMSConnectionFactoryDefinitions.class);
for (final JMSConnectionFactoryDefinition definition : defs.value()) {
buildConnectionFactoryDefinition(consumer, definition);
}
}
for (final Annotated<Class<?>> annotated : annotationFinder.findMetaAnnotatedClasses(JMSConnectionFactoryDefinition.class)) {
final JMSConnectionFactoryDefinition definition = annotated.getAnnotation(JMSConnectionFactoryDefinition.class);
buildConnectionFactoryDefinition(consumer, definition);
}
//
// @JMSDestinationDefinition
//
for (final Annotated<Class<?>> annotated : annotationFinder.findMetaAnnotatedClasses(JMSDestinationDefinitions.class)) {
final JMSDestinationDefinitions defs = annotated.getAnnotation(JMSDestinationDefinitions.class);
for (final JMSDestinationDefinition definition : defs.value()) {
buildDestinationDefinition(consumer, definition);
}
}
for (final Annotated<Class<?>> annotated : annotationFinder.findMetaAnnotatedClasses(JMSDestinationDefinition.class)) {
buildDestinationDefinition(consumer, annotated.getAnnotation(JMSDestinationDefinition.class));
}
}