org.mortbay.jetty.plus.naming.EnvEntry resourceB = new org.mortbay.jetty.plus.naming.EnvEntry(server, "resB", new Integer(2000), false);
AnnotationParser processor = new AnnotationParser();
processor.processClass(ResourceA.class);
InjectionCollection injections = new InjectionCollection();
LifeCycleCallbackCollection callbacks = new LifeCycleCallbackCollection();
RunAsCollection runAses = new RunAsCollection();
AnnotationCollection collection = processor.processClass(ResourceB.class);
assertEquals(1, collection.getClasses().size());
assertEquals(3, collection.getMethods().size());
assertEquals(6, collection.getFields().size());
//process with all the specific annotations turned into injections, callbacks etc
processor.parseAnnotations(wac, ResourceB.class, runAses, injections, callbacks);
//processing classA should give us these jndi name bindings:
// java:comp/env/myf
// java:comp/env/org.mortbay.jetty.annotations.resources.ResourceA/g
// java:comp/env/mye
// java:comp/env/org.mortbay.jetty.annotations.resources.ResourceA/h
// java:comp/env/resA
// java:comp/env/org.mortbay.jetty.annotations.resources.ResourceB/f
// java:comp/env/org.mortbay.jetty.annotations.resources.ResourceA/n
//
assertEquals(resourceB.getObjectToBind(), env.lookup("myf"));
assertEquals(resourceA.getObjectToBind(), env.lookup("mye"));
assertEquals(resourceA.getObjectToBind(), env.lookup("resA"));
assertEquals(resourceA.getObjectToBind(), env.lookup("org.mortbay.jetty.annotations.resources.ResourceA/g"));
assertEquals(resourceA.getObjectToBind(), env.lookup("org.mortbay.jetty.annotations.resources.ResourceA/h"));
assertEquals(resourceB.getObjectToBind(), env.lookup("org.mortbay.jetty.annotations.resources.ResourceB/f"));
assertEquals(resourceB.getObjectToBind(), env.lookup("org.mortbay.jetty.annotations.resources.ResourceA/n"));
//we should have these Injections
assertNotNull(injections);
List fieldInjections = injections.getFieldInjections(ResourceB.class);
assertNotNull(fieldInjections);
Iterator itor = fieldInjections.iterator();
System.err.println("Field injections:");
while (itor.hasNext())
{
System.err.println(itor.next());
}
assertEquals(5, fieldInjections.size());
List methodInjections = injections.getMethodInjections(ResourceB.class);
itor = methodInjections.iterator();
System.err.println("Method injections:");
while (itor.hasNext())
System.err.println(itor.next());
assertNotNull(methodInjections);