diff options
author | Jan Bartel | 2010-07-27 23:59:16 +0000 |
---|---|---|
committer | Jan Bartel | 2010-07-27 23:59:16 +0000 |
commit | bd272143e283786ac1ebf7ca10eae4e7dd66cabf (patch) | |
tree | 3731519658688c82818762fed64697205ca914b6 /jetty-annotations | |
parent | de2e13a9e3f2e6adce9c84c423068833fde17d37 (diff) | |
download | org.eclipse.jetty.project-bd272143e283786ac1ebf7ca10eae4e7dd66cabf.tar.gz org.eclipse.jetty.project-bd272143e283786ac1ebf7ca10eae4e7dd66cabf.tar.xz org.eclipse.jetty.project-bd272143e283786ac1ebf7ca10eae4e7dd66cabf.zip |
320073 ensure Decorators get called in reverse order of addition; refactor TagLibConfiguration and Descriptor classes
git-svn-id: svn+ssh://dev.eclipse.org/svnroot/rt/org.eclipse.jetty/jetty/trunk@2187 7e9141cc-0065-0410-87d8-b60c137991c4
Diffstat (limited to 'jetty-annotations')
5 files changed, 38 insertions, 8 deletions
diff --git a/jetty-annotations/src/main/java/org/eclipse/jetty/annotations/AnnotationConfiguration.java b/jetty-annotations/src/main/java/org/eclipse/jetty/annotations/AnnotationConfiguration.java index 2800bc3524..bb04460c50 100644 --- a/jetty-annotations/src/main/java/org/eclipse/jetty/annotations/AnnotationConfiguration.java +++ b/jetty-annotations/src/main/java/org/eclipse/jetty/annotations/AnnotationConfiguration.java @@ -14,7 +14,6 @@ package org.eclipse.jetty.annotations; import org.eclipse.jetty.webapp.AbstractConfiguration; -import org.eclipse.jetty.webapp.Configuration; import org.eclipse.jetty.webapp.WebAppContext; /** diff --git a/jetty-annotations/src/main/java/org/eclipse/jetty/annotations/PostConstructAnnotationHandler.java b/jetty-annotations/src/main/java/org/eclipse/jetty/annotations/PostConstructAnnotationHandler.java index eff4669f01..80f80e3c11 100644 --- a/jetty-annotations/src/main/java/org/eclipse/jetty/annotations/PostConstructAnnotationHandler.java +++ b/jetty-annotations/src/main/java/org/eclipse/jetty/annotations/PostConstructAnnotationHandler.java @@ -67,7 +67,13 @@ public class PostConstructAnnotationHandler extends AbstractIntrospectableAnnota PostConstructCallback callback = new PostConstructCallback(); callback.setTarget(clazz.getName(), m.getName()); - ((LifeCycleCallbackCollection)_context.getAttribute(LifeCycleCallbackCollection.LIFECYCLE_CALLBACK_COLLECTION)).add(callback); + LifeCycleCallbackCollection lifecycles = (LifeCycleCallbackCollection)_context.getAttribute(LifeCycleCallbackCollection.LIFECYCLE_CALLBACK_COLLECTION); + if (lifecycles == null) + { + lifecycles = new LifeCycleCallbackCollection(); + _context.setAttribute(LifeCycleCallbackCollection.LIFECYCLE_CALLBACK_COLLECTION,lifecycles); + } + lifecycles.add(callback); } } } diff --git a/jetty-annotations/src/main/java/org/eclipse/jetty/annotations/PreDestroyAnnotationHandler.java b/jetty-annotations/src/main/java/org/eclipse/jetty/annotations/PreDestroyAnnotationHandler.java index 53c75e1e6f..f86684314b 100644 --- a/jetty-annotations/src/main/java/org/eclipse/jetty/annotations/PreDestroyAnnotationHandler.java +++ b/jetty-annotations/src/main/java/org/eclipse/jetty/annotations/PreDestroyAnnotationHandler.java @@ -66,7 +66,15 @@ public class PreDestroyAnnotationHandler extends AbstractIntrospectableAnnotatio PreDestroyCallback callback = new PreDestroyCallback(); callback.setTarget(clazz.getName(), m.getName()); - ((LifeCycleCallbackCollection)_context.getAttribute(LifeCycleCallbackCollection.LIFECYCLE_CALLBACK_COLLECTION)).add(callback); + + LifeCycleCallbackCollection lifecycles = (LifeCycleCallbackCollection)_context.getAttribute(LifeCycleCallbackCollection.LIFECYCLE_CALLBACK_COLLECTION); + if (lifecycles == null) + { + lifecycles = new LifeCycleCallbackCollection(); + _context.setAttribute(LifeCycleCallbackCollection.LIFECYCLE_CALLBACK_COLLECTION, lifecycles); + } + + lifecycles.add(callback); } } } diff --git a/jetty-annotations/src/main/java/org/eclipse/jetty/annotations/ResourceAnnotationHandler.java b/jetty-annotations/src/main/java/org/eclipse/jetty/annotations/ResourceAnnotationHandler.java index bb48356cdf..ad1a6c9d5c 100644 --- a/jetty-annotations/src/main/java/org/eclipse/jetty/annotations/ResourceAnnotationHandler.java +++ b/jetty-annotations/src/main/java/org/eclipse/jetty/annotations/ResourceAnnotationHandler.java @@ -128,11 +128,16 @@ public class ResourceAnnotationHandler extends AbstractIntrospectableAnnotationH //it overrides this annotation return; } - + //No injections for this resource in any descriptors, so we can add it //Does the injection already exist? - - Injection injection = ((InjectionCollection)_context.getAttribute(InjectionCollection.INJECTION_COLLECTION)).getInjection(name, clazz, field); + InjectionCollection injections = (InjectionCollection)_context.getAttribute(InjectionCollection.INJECTION_COLLECTION); + if (injections == null) + { + injections = new InjectionCollection(); + _context.setAttribute(InjectionCollection.INJECTION_COLLECTION, injections); + } + Injection injection = injections.getInjection(name, clazz, field); if (injection == null) { //No injection has been specified, add it @@ -167,7 +172,7 @@ public class ResourceAnnotationHandler extends AbstractIntrospectableAnnotationH injection.setTarget(clazz, field, type); injection.setJndiName(name); injection.setMappingName(mappedName); - ((InjectionCollection)_context.getAttribute(InjectionCollection.INJECTION_COLLECTION)).add(injection); + injections.add(injection); //TODO - an @Resource is equivalent to a resource-ref, resource-env-ref, message-destination metaData.setOrigin("resource-ref."+name+".injection"); @@ -275,6 +280,11 @@ public class ResourceAnnotationHandler extends AbstractIntrospectableAnnotationH //check if an injection has already been setup for this target by web.xml InjectionCollection injections = (InjectionCollection)_context.getAttribute(InjectionCollection.INJECTION_COLLECTION); + if (injections == null) + { + injections = new InjectionCollection(); + _context.setAttribute(InjectionCollection.INJECTION_COLLECTION, injections); + } Injection injection = injections.getInjection(name, clazz, method, paramType); if (injection == null) { diff --git a/jetty-annotations/src/main/java/org/eclipse/jetty/annotations/RunAsAnnotationHandler.java b/jetty-annotations/src/main/java/org/eclipse/jetty/annotations/RunAsAnnotationHandler.java index 1bbca1a108..8e8e051d06 100644 --- a/jetty-annotations/src/main/java/org/eclipse/jetty/annotations/RunAsAnnotationHandler.java +++ b/jetty-annotations/src/main/java/org/eclipse/jetty/annotations/RunAsAnnotationHandler.java @@ -26,6 +26,7 @@ import org.eclipse.jetty.webapp.Descriptor; import org.eclipse.jetty.webapp.MetaData; import org.eclipse.jetty.webapp.WebAppContext; + public class RunAsAnnotationHandler extends AbstractIntrospectableAnnotationHandler { protected WebAppContext _context; @@ -62,7 +63,13 @@ public class RunAsAnnotationHandler extends AbstractIntrospectableAnnotationHand org.eclipse.jetty.plus.annotation.RunAs ra = new org.eclipse.jetty.plus.annotation.RunAs(); ra.setTargetClassName(clazz.getCanonicalName()); ra.setRoleName(role); - ((RunAsCollection)_context.getAttribute(RunAsCollection.RUNAS_COLLECTION)).add(ra); + RunAsCollection raCollection = (RunAsCollection)_context.getAttribute(RunAsCollection.RUNAS_COLLECTION); + if (raCollection == null) + { + raCollection = new RunAsCollection(); + _context.setAttribute(RunAsCollection.RUNAS_COLLECTION, raCollection); + } + raCollection.add(ra); } } } |