Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Bartel2010-07-27 23:59:16 +0000
committerJan Bartel2010-07-27 23:59:16 +0000
commitbd272143e283786ac1ebf7ca10eae4e7dd66cabf (patch)
tree3731519658688c82818762fed64697205ca914b6 /jetty-annotations
parentde2e13a9e3f2e6adce9c84c423068833fde17d37 (diff)
downloadorg.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')
-rw-r--r--jetty-annotations/src/main/java/org/eclipse/jetty/annotations/AnnotationConfiguration.java1
-rw-r--r--jetty-annotations/src/main/java/org/eclipse/jetty/annotations/PostConstructAnnotationHandler.java8
-rw-r--r--jetty-annotations/src/main/java/org/eclipse/jetty/annotations/PreDestroyAnnotationHandler.java10
-rw-r--r--jetty-annotations/src/main/java/org/eclipse/jetty/annotations/ResourceAnnotationHandler.java18
-rw-r--r--jetty-annotations/src/main/java/org/eclipse/jetty/annotations/RunAsAnnotationHandler.java9
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);
}
}
}

Back to the top