Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGreg Wilkins2010-07-16 08:26:11 +0000
committerGreg Wilkins2010-07-16 08:26:11 +0000
commit659800b5afa848b21012d360fef83e794cee52bd (patch)
treea56e8d4fe533645db31d4679dcfd249e2783db82
parent230eca0fb0e9563f686c306eae95e3c79118a971 (diff)
downloadorg.eclipse.jetty.project-659800b5afa848b21012d360fef83e794cee52bd.tar.gz
org.eclipse.jetty.project-659800b5afa848b21012d360fef83e794cee52bd.tar.xz
org.eclipse.jetty.project-659800b5afa848b21012d360fef83e794cee52bd.zip
320073
git-svn-id: svn+ssh://dev.eclipse.org/svnroot/rt/org.eclipse.jetty/jetty/branches/jetty-8@2146 7e9141cc-0065-0410-87d8-b60c137991c4
-rw-r--r--VERSION.txt1
-rw-r--r--jetty-annotations/src/main/java/org/eclipse/jetty/annotations/AbstractConfiguration.java19
-rw-r--r--jetty-annotations/src/main/java/org/eclipse/jetty/annotations/AnnotationConfiguration.java3
-rw-r--r--jetty-annotations/src/main/java/org/eclipse/jetty/annotations/MultiPartConfigAnnotationHandler.java2
-rw-r--r--jetty-annotations/src/main/java/org/eclipse/jetty/annotations/PostConstructAnnotationHandler.java2
-rw-r--r--jetty-annotations/src/main/java/org/eclipse/jetty/annotations/PreDestroyAnnotationHandler.java2
-rw-r--r--jetty-annotations/src/main/java/org/eclipse/jetty/annotations/ResourceAnnotationHandler.java4
-rw-r--r--jetty-annotations/src/main/java/org/eclipse/jetty/annotations/RunAsAnnotationHandler.java2
-rw-r--r--jetty-annotations/src/main/java/org/eclipse/jetty/annotations/WebFilterAnnotation.java2
-rw-r--r--jetty-annotations/src/main/java/org/eclipse/jetty/annotations/WebListenerAnnotation.java2
-rw-r--r--jetty-annotations/src/main/java/org/eclipse/jetty/annotations/WebServletAnnotation.java2
-rw-r--r--jetty-annotations/src/test/java/org/eclipse/jetty/annotations/TestAnnotationConfiguration.java8
-rw-r--r--jetty-annotations/src/test/java/org/eclipse/jetty/annotations/TestServletAnnotations.java2
-rw-r--r--jetty-annotations/src/test/java/org/eclipse/jetty/annotations/resources/TestResourceAnnotations.java1
-rw-r--r--jetty-deploy/src/test/java/org/eclipse/jetty/deploy/providers/MonitoredDirAppProviderStartupTest.java2
-rw-r--r--jetty-plus/src/main/java/org/eclipse/jetty/plus/webapp/Configuration.java25
-rw-r--r--jetty-plus/src/main/java/org/eclipse/jetty/plus/webapp/PlusDescriptorProcessor.java185
-rw-r--r--jetty-plus/src/test/java/org/eclipse/jetty/plus/webapp/TestConfiguration.java1
-rw-r--r--jetty-servlet/src/main/java/org/eclipse/jetty/servlet/ErrorPageErrorHandler.java40
-rw-r--r--jetty-servlet/src/main/java/org/eclipse/jetty/servlet/ServletContextHandler.java27
-rw-r--r--jetty-webapp/src/main/java/org/eclipse/jetty/webapp/Configuration.java1
-rw-r--r--jetty-webapp/src/main/java/org/eclipse/jetty/webapp/DefaultsDescriptor.java5
-rw-r--r--jetty-webapp/src/main/java/org/eclipse/jetty/webapp/Descriptor.java11
-rw-r--r--jetty-webapp/src/main/java/org/eclipse/jetty/webapp/DescriptorProcessor.java2
-rw-r--r--jetty-webapp/src/main/java/org/eclipse/jetty/webapp/FragmentConfiguration.java12
-rw-r--r--jetty-webapp/src/main/java/org/eclipse/jetty/webapp/FragmentDescriptor.java12
-rw-r--r--jetty-webapp/src/main/java/org/eclipse/jetty/webapp/IterativeDescriptorProcessor.java18
-rw-r--r--jetty-webapp/src/main/java/org/eclipse/jetty/webapp/MetaData.java66
-rw-r--r--jetty-webapp/src/main/java/org/eclipse/jetty/webapp/OverrideDescriptor.java4
-rw-r--r--jetty-webapp/src/main/java/org/eclipse/jetty/webapp/StandardDescriptorProcessor.java590
-rw-r--r--jetty-webapp/src/main/java/org/eclipse/jetty/webapp/WebAppContext.java34
-rw-r--r--jetty-webapp/src/main/java/org/eclipse/jetty/webapp/WebXmlConfiguration.java26
-rw-r--r--jetty-webapp/src/test/java/org/eclipse/jetty/webapp/OrderingTest.java121
-rw-r--r--jetty-xml/src/main/java/org/eclipse/jetty/xml/XmlParser.java9
-rw-r--r--test-jetty-webapp/src/test/java/org/eclipse/jetty/TestServer.java1
35 files changed, 566 insertions, 678 deletions
diff --git a/VERSION.txt b/VERSION.txt
index 55ca6a9d8c..9aa66e1d51 100644
--- a/VERSION.txt
+++ b/VERSION.txt
@@ -1,4 +1,5 @@
jetty-8.0.0.M2-SNAPSHOT
+ + 320073 Reconsile configuration mechanism
jetty-7.2-SNAPSHOT
+ 319334 Concurrent, sharable ResourceCache
diff --git a/jetty-annotations/src/main/java/org/eclipse/jetty/annotations/AbstractConfiguration.java b/jetty-annotations/src/main/java/org/eclipse/jetty/annotations/AbstractConfiguration.java
index f245642b9d..d1424732b9 100644
--- a/jetty-annotations/src/main/java/org/eclipse/jetty/annotations/AbstractConfiguration.java
+++ b/jetty-annotations/src/main/java/org/eclipse/jetty/annotations/AbstractConfiguration.java
@@ -34,7 +34,6 @@ public abstract class AbstractConfiguration implements Configuration
public static final String CONTAINER_JAR_RESOURCES = WebInfConfiguration.CONTAINER_JAR_RESOURCES;
public static final String WEB_INF_JAR_RESOURCES = WebInfConfiguration.WEB_INF_JAR_RESOURCES;
public static final String WEB_INF_ORDERED_JAR_RESOURCES = WebInfConfiguration.WEB_INF_ORDERED_JAR_RESOURCES;
- public static final String METADATA_COMPLETE = MetaData.METADATA_COMPLETE;
public static final String WEBXML_CLASSNAMES = MetaData.WEBXML_CLASSNAMES;
public static final String DISCOVERED_ANNOTATIONS = "org.eclipse.jetty.discoveredAnnotations";
@@ -74,11 +73,8 @@ public abstract class AbstractConfiguration implements Configuration
return false;
}
});
- MetaData metaData = (MetaData)context.getAttribute(MetaData.METADATA);
- if (metaData == null)
- throw new IllegalStateException ("No metadata");
- metaData.addDiscoveredAnnotations((List<DiscoveredAnnotation>)context.getAttribute(DISCOVERED_ANNOTATIONS));
+ context.getMetaData().addDiscoveredAnnotations((List<DiscoveredAnnotation>)context.getAttribute(DISCOVERED_ANNOTATIONS));
context.removeAttribute(DISCOVERED_ANNOTATIONS);
}
@@ -86,11 +82,7 @@ public abstract class AbstractConfiguration implements Configuration
public void parseWebInfLib (final WebAppContext context, final AnnotationParser parser)
throws Exception
{
- MetaData metaData = (MetaData)context.getAttribute(MetaData.METADATA);
- if (metaData == null)
- throw new IllegalStateException ("No metadata");
-
- List<FragmentDescriptor> frags = metaData.getFragments();
+ List<FragmentDescriptor> frags = context.getMetaData().getFragments();
//email from Rajiv Mordani jsrs 315 7 April 2010
//jars that do not have a web-fragment.xml are still considered fragments
@@ -135,7 +127,7 @@ public abstract class AbstractConfiguration implements Configuration
}
});
- metaData.addDiscoveredAnnotations(r, discoveredAnnotations);
+ context.getMetaData().addDiscoveredAnnotations(r, discoveredAnnotations);
}
}
context.removeAttribute(DISCOVERED_ANNOTATIONS);
@@ -150,9 +142,6 @@ public abstract class AbstractConfiguration implements Configuration
Resource classesDir = context.getWebInf().addPath("classes/");
if (classesDir.exists())
{
- MetaData metaData = (MetaData)context.getAttribute(MetaData.METADATA);
- if (metaData == null)
- throw new IllegalStateException ("No metadata");
List<DiscoveredAnnotation> discoveredAnnotations = new ArrayList<DiscoveredAnnotation>();
context.setAttribute(DISCOVERED_ANNOTATIONS, discoveredAnnotations);
@@ -177,7 +166,7 @@ public abstract class AbstractConfiguration implements Configuration
});
//TODO - where to set the annotations discovered from WEB-INF/classes?
- metaData.addDiscoveredAnnotations (discoveredAnnotations);
+ context.getMetaData().addDiscoveredAnnotations (discoveredAnnotations);
context.removeAttribute(DISCOVERED_ANNOTATIONS);
}
}
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 bb03499d8e..8c6b851e6a 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
@@ -45,8 +45,7 @@ public class AnnotationConfiguration extends AbstractConfiguration
public void configure(WebAppContext context) throws Exception
{
- Boolean b = (Boolean)context.getAttribute(METADATA_COMPLETE);
- boolean metadataComplete = (b != null && b.booleanValue());
+ boolean metadataComplete = context.getMetaData().isMetaDataComplete();
WebAppDecoratorWrapper wrapper = new WebAppDecoratorWrapper(context, context.getDecorator());
context.setDecorator(wrapper);
diff --git a/jetty-annotations/src/main/java/org/eclipse/jetty/annotations/MultiPartConfigAnnotationHandler.java b/jetty-annotations/src/main/java/org/eclipse/jetty/annotations/MultiPartConfigAnnotationHandler.java
index 24a21c5dd0..7a02031352 100644
--- a/jetty-annotations/src/main/java/org/eclipse/jetty/annotations/MultiPartConfigAnnotationHandler.java
+++ b/jetty-annotations/src/main/java/org/eclipse/jetty/annotations/MultiPartConfigAnnotationHandler.java
@@ -50,7 +50,7 @@ public class MultiPartConfigAnnotationHandler extends AbstractIntrospectableAnno
if (multi == null)
return;
- MetaData metaData = ((MetaData)_context.getAttribute(MetaData.METADATA));
+ MetaData metaData = _context.getMetaData();
//TODO: The MultipartConfigElement needs to be set on the ServletHolder's Registration.
//How to identify the correct Servlet? If the Servlet has no WebServlet annotation on it, does it mean that this MultipartConfig
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 357cd4e39f..5f89e85717 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
@@ -59,7 +59,7 @@ public class PostConstructAnnotationHandler extends AbstractIntrospectableAnnota
//ServletSpec 3.0 p80 If web.xml declares even one post-construct then all post-constructs
//in fragments must be ignored. Otherwise, they are additive.
- MetaData metaData = ((MetaData)_context.getAttribute(MetaData.METADATA));
+ MetaData metaData = _context.getMetaData();
MetaData.Origin origin = metaData.getOrigin("post-construct");
if (origin != null &&
(origin == MetaData.Origin.WebXml ||
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 3b593f5ca7..7b058e20ff 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
@@ -58,7 +58,7 @@ public class PreDestroyAnnotationHandler extends AbstractIntrospectableAnnotatio
//ServletSpec 3.0 p80 If web.xml declares even one predestroy then all predestroys
//in fragments must be ignored. Otherwise, they are additive.
- MetaData metaData = ((MetaData)_context.getAttribute(MetaData.METADATA));
+ MetaData metaData = _context.getMetaData();
MetaData.Origin origin = metaData.getOrigin("pre-destroy");
if (origin != null &&
(origin == MetaData.Origin.WebXml ||
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 c3e5548146..20332dc7fa 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
@@ -122,7 +122,7 @@ public class ResourceAnnotationHandler extends AbstractIntrospectableAnnotationH
//Servlet Spec 3.0 p. 76
//If a descriptor has specified at least 1 injection target for this
//resource, then it overrides this annotation
- MetaData metaData = ((MetaData)_context.getAttribute(MetaData.METADATA));
+ MetaData metaData = _context.getMetaData();
if (metaData.getOriginDescriptor("resource-ref."+name+".injection") != null)
{
//at least 1 injection was specified for this resource by a descriptor, so
@@ -265,7 +265,7 @@ public class ResourceAnnotationHandler extends AbstractIntrospectableAnnotationH
//Servlet Spec 3.0 p. 76
//If a descriptor has specified at least 1 injection target for this
//resource, then it overrides this annotation
- MetaData metaData = ((MetaData)_context.getAttribute(MetaData.METADATA));
+ MetaData metaData = _context.getMetaData();
if (metaData.getOriginDescriptor("resource-ref."+name+".injection") != null)
{
//at least 1 injection was specified for this resource by a descriptor, so
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 cf849771d7..6a3f92f713 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
@@ -54,7 +54,7 @@ public class RunAsAnnotationHandler extends AbstractIntrospectableAnnotationHand
ServletHolder holder = getServletHolderForClass(clazz);
if (holder != null)
{
- MetaData metaData = ((MetaData)_context.getAttribute(MetaData.METADATA));
+ MetaData metaData = _context.getMetaData();
Descriptor d = metaData.getOriginDescriptor(holder.getName()+".servlet.run-as");
//if a descriptor has already set the value for run-as, do not
//let the annotation override it
diff --git a/jetty-annotations/src/main/java/org/eclipse/jetty/annotations/WebFilterAnnotation.java b/jetty-annotations/src/main/java/org/eclipse/jetty/annotations/WebFilterAnnotation.java
index 5a101f60cf..388dda91e0 100644
--- a/jetty-annotations/src/main/java/org/eclipse/jetty/annotations/WebFilterAnnotation.java
+++ b/jetty-annotations/src/main/java/org/eclipse/jetty/annotations/WebFilterAnnotation.java
@@ -68,7 +68,7 @@ public class WebFilterAnnotation extends DiscoveredAnnotation
Log.warn(clazz.getName()+" is not assignable from javax.servlet.Filter");
return;
}
- MetaData metaData = ((MetaData)_context.getAttribute(MetaData.METADATA));
+ MetaData metaData = _context.getMetaData();
WebFilter filterAnnotation = (WebFilter)clazz.getAnnotation(WebFilter.class);
diff --git a/jetty-annotations/src/main/java/org/eclipse/jetty/annotations/WebListenerAnnotation.java b/jetty-annotations/src/main/java/org/eclipse/jetty/annotations/WebListenerAnnotation.java
index a92a27c9c5..f3d1886cf2 100644
--- a/jetty-annotations/src/main/java/org/eclipse/jetty/annotations/WebListenerAnnotation.java
+++ b/jetty-annotations/src/main/java/org/eclipse/jetty/annotations/WebListenerAnnotation.java
@@ -68,7 +68,7 @@ public class WebListenerAnnotation extends DiscoveredAnnotation
HttpSessionAttributeListener.class.isAssignableFrom(clazz))
{
java.util.EventListener listener = (java.util.EventListener)clazz.newInstance();
- MetaData metaData = ((MetaData)_context.getAttribute(MetaData.METADATA));
+ MetaData metaData = _context.getMetaData();
if (metaData.getOrigin(clazz.getName()+".listener") == Origin.NotSet)
_context.addEventListener(listener);
}
diff --git a/jetty-annotations/src/main/java/org/eclipse/jetty/annotations/WebServletAnnotation.java b/jetty-annotations/src/main/java/org/eclipse/jetty/annotations/WebServletAnnotation.java
index ee78f38030..f8953e7d1d 100644
--- a/jetty-annotations/src/main/java/org/eclipse/jetty/annotations/WebServletAnnotation.java
+++ b/jetty-annotations/src/main/java/org/eclipse/jetty/annotations/WebServletAnnotation.java
@@ -88,7 +88,7 @@ public class WebServletAnnotation extends DiscoveredAnnotation
String servletName = (annotation.name().equals("")?clazz.getName():annotation.name());
- MetaData metaData = ((MetaData)_context.getAttribute(MetaData.METADATA));
+ MetaData metaData = _context.getMetaData();
//Find out if a <servlet> of this type already exists with this name
ServletHolder[] holders = _context.getServletHandler().getServlets();
diff --git a/jetty-annotations/src/test/java/org/eclipse/jetty/annotations/TestAnnotationConfiguration.java b/jetty-annotations/src/test/java/org/eclipse/jetty/annotations/TestAnnotationConfiguration.java
index 764aaddaf0..e9bf229a03 100644
--- a/jetty-annotations/src/test/java/org/eclipse/jetty/annotations/TestAnnotationConfiguration.java
+++ b/jetty-annotations/src/test/java/org/eclipse/jetty/annotations/TestAnnotationConfiguration.java
@@ -31,10 +31,6 @@ import org.eclipse.jetty.webapp.WebAppContext;
*/
public class TestAnnotationConfiguration extends TestCase
{
-
-
-
-
public void testGetFragmentFromJar ()
throws Exception
{
@@ -49,8 +45,8 @@ public class TestAnnotationConfiguration extends TestCase
WebAppContext wac = new WebAppContext();
List<FragmentDescriptor> frags = new ArrayList<FragmentDescriptor>();
- frags.add(new FragmentDescriptor(Resource.newResource("jar:"+url+"file.jar!/fooa.props"), null));
- frags.add(new FragmentDescriptor(Resource.newResource("jar:"+url+"file2.jar!/foob.props"), null));
+ frags.add(new FragmentDescriptor(Resource.newResource("jar:"+url+"file.jar!/fooa.props")));
+ frags.add(new FragmentDescriptor(Resource.newResource("jar:"+url+"file2.jar!/foob.props")));
assertNotNull(config.getFragmentFromJar(jar1, frags));
}
diff --git a/jetty-annotations/src/test/java/org/eclipse/jetty/annotations/TestServletAnnotations.java b/jetty-annotations/src/test/java/org/eclipse/jetty/annotations/TestServletAnnotations.java
index f7f6c7ffdc..9b7e002899 100644
--- a/jetty-annotations/src/test/java/org/eclipse/jetty/annotations/TestServletAnnotations.java
+++ b/jetty-annotations/src/test/java/org/eclipse/jetty/annotations/TestServletAnnotations.java
@@ -48,7 +48,6 @@ public class TestServletAnnotations
AnnotationParser parser = new AnnotationParser();
WebAppContext wac = new WebAppContext();
- wac.setAttribute(MetaData.METADATA, new MetaData(wac));
LifeCycleCallbackCollection collection = new LifeCycleCallbackCollection();
wac.setAttribute(LifeCycleCallbackCollection.LIFECYCLE_CALLBACK_COLLECTION, collection);
RunAsCollection runAsCollection = new RunAsCollection();
@@ -94,7 +93,6 @@ public class TestServletAnnotations
throws Exception
{
WebAppContext wac = new WebAppContext();
- wac.setAttribute(MetaData.METADATA, new MetaData(wac));
ConstraintSecurityHandler sh = new ConstraintSecurityHandler();
wac.setSecurityHandler(sh);
sh.setRoles(new HashSet<String>(Arrays.asList(new String[]{"humpty", "dumpty"})));
diff --git a/jetty-annotations/src/test/java/org/eclipse/jetty/annotations/resources/TestResourceAnnotations.java b/jetty-annotations/src/test/java/org/eclipse/jetty/annotations/resources/TestResourceAnnotations.java
index 6fdef5830c..ebed271f0c 100644
--- a/jetty-annotations/src/test/java/org/eclipse/jetty/annotations/resources/TestResourceAnnotations.java
+++ b/jetty-annotations/src/test/java/org/eclipse/jetty/annotations/resources/TestResourceAnnotations.java
@@ -34,7 +34,6 @@ public class TestResourceAnnotations
wac.setServer(server);
InjectionCollection injections = new InjectionCollection();
wac.setAttribute(InjectionCollection.INJECTION_COLLECTION, injections);
- wac.setAttribute(MetaData.METADATA, new MetaData(wac));
InitialContext ic = new InitialContext();
Context comp = (Context)ic.lookup("java:comp");
Context env = comp.createSubcontext("env");
diff --git a/jetty-deploy/src/test/java/org/eclipse/jetty/deploy/providers/MonitoredDirAppProviderStartupTest.java b/jetty-deploy/src/test/java/org/eclipse/jetty/deploy/providers/MonitoredDirAppProviderStartupTest.java
index aa2abfe731..9f032d8b74 100644
--- a/jetty-deploy/src/test/java/org/eclipse/jetty/deploy/providers/MonitoredDirAppProviderStartupTest.java
+++ b/jetty-deploy/src/test/java/org/eclipse/jetty/deploy/providers/MonitoredDirAppProviderStartupTest.java
@@ -16,6 +16,7 @@
package org.eclipse.jetty.deploy.providers;
import org.eclipse.jetty.deploy.test.XmlConfiguredJetty;
+import org.eclipse.jetty.util.log.Log;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
@@ -30,6 +31,7 @@ public class MonitoredDirAppProviderStartupTest
@BeforeClass
public static void setupEnvironment() throws Exception
{
+ Log.getLog().setDebugEnabled(true);
jetty = new XmlConfiguredJetty();
jetty.addConfiguration("jetty.xml");
jetty.addConfiguration("jetty-deploymgr-contexts.xml");
diff --git a/jetty-plus/src/main/java/org/eclipse/jetty/plus/webapp/Configuration.java b/jetty-plus/src/main/java/org/eclipse/jetty/plus/webapp/Configuration.java
index b767c5e78b..484e450883 100644
--- a/jetty-plus/src/main/java/org/eclipse/jetty/plus/webapp/Configuration.java
+++ b/jetty-plus/src/main/java/org/eclipse/jetty/plus/webapp/Configuration.java
@@ -26,7 +26,6 @@ import org.eclipse.jetty.plus.jndi.Transaction;
import org.eclipse.jetty.util.log.Log;
import org.eclipse.jetty.webapp.FragmentDescriptor;
import org.eclipse.jetty.webapp.WebAppContext;
-import org.eclipse.jetty.webapp.MetaData;
/**
@@ -59,29 +58,7 @@ public class Configuration implements org.eclipse.jetty.webapp.Configuration
{
bindUserTransaction(context);
- MetaData metaData = (MetaData)context.getAttribute(MetaData.METADATA);
- if (metaData == null)
- throw new IllegalStateException ("No metadata");
-
- metaData.addDescriptorProcessor(new PlusDescriptorProcessor());
-
- /*
- * THE PROCESSING IS NOW DONE IN metadata.resolve ()
-
- PlusDescriptorProcessor plusProcessor = new PlusDescriptorProcessor(metaData);
- plusProcessor.process(metaData.getWebDefault());
- plusProcessor.process(metaData.getWebXml());
-
-
- //Process plus-elements of each descriptor
- for (FragmentDescriptor frag: metaData.getOrderedFragments())
- {
- plusProcessor.process(frag);
- }
-
- //process the override-web.xml descriptor
- plusProcessor.process(metaData.getOverrideWeb());
- */
+ context.getMetaData().addDescriptorProcessor(new PlusDescriptorProcessor());
}
public void postConfigure(WebAppContext context) throws Exception
diff --git a/jetty-plus/src/main/java/org/eclipse/jetty/plus/webapp/PlusDescriptorProcessor.java b/jetty-plus/src/main/java/org/eclipse/jetty/plus/webapp/PlusDescriptorProcessor.java
index bd39d05e4b..e2325c674c 100644
--- a/jetty-plus/src/main/java/org/eclipse/jetty/plus/webapp/PlusDescriptorProcessor.java
+++ b/jetty-plus/src/main/java/org/eclipse/jetty/plus/webapp/PlusDescriptorProcessor.java
@@ -48,9 +48,6 @@ import org.eclipse.jetty.xml.XmlParser;
public class PlusDescriptorProcessor extends IterativeDescriptorProcessor
{
- protected WebAppContext _context;
- protected MetaData _metaData;
-
public PlusDescriptorProcessor ()
{
try
@@ -69,22 +66,18 @@ public class PlusDescriptorProcessor extends IterativeDescriptorProcessor
}
/**
- * @see org.eclipse.jetty.webapp.IterativeDescriptorProcessor#start(org.eclipse.jetty.webapp.Descriptor)
+ * @see org.eclipse.jetty.webapp.IterativeDescriptorProcessor#start(WebAppContext, org.eclipse.jetty.webapp.Descriptor)
*/
- public void start(Descriptor descriptor)
+ public void start(WebAppContext context, Descriptor descriptor)
{
- _metaData = descriptor.getMetaData();
- _context = _metaData.getContext();
}
/**
- * @see org.eclipse.jetty.webapp.IterativeDescriptorProcessor#end(org.eclipse.jetty.webapp.Descriptor)
+ * @see org.eclipse.jetty.webapp.IterativeDescriptorProcessor#end(org.eclipse.jetty.webapp.Descriptor, WebAppContext)
*/
- public void end(Descriptor descriptor)
+ public void end(WebAppContext context,Descriptor descriptor)
{
- _metaData = null;
- _context = null;
}
@@ -96,7 +89,7 @@ public class PlusDescriptorProcessor extends IterativeDescriptorProcessor
* @param node
* @throws Exception
*/
- public void visitEnvEntry (Descriptor descriptor, XmlParser.Node node)
+ public void visitEnvEntry (WebAppContext context, Descriptor descriptor, XmlParser.Node node)
throws Exception
{
String name=node.getString("env-entry-name",false,true);
@@ -111,19 +104,19 @@ public class PlusDescriptorProcessor extends IterativeDescriptorProcessor
return;
}
- Origin o = _metaData.getOrigin("env-entry."+name);
+ Origin o = context.getMetaData().getOrigin("env-entry."+name);
switch (o)
{
case NotSet:
{
//no descriptor has configured an env-entry of this name previously
- _metaData.setOrigin("env-entry."+name, descriptor);
+ context.getMetaData().setOrigin("env-entry."+name, descriptor);
//the javaee_5.xsd says that the env-entry-type is optional
//if there is an <injection> element, because you can get
//type from the element, but what to do if there is more
//than one <injection> element, do you just pick the type
//of the first one?
- addInjections (descriptor, node, name, TypeUtil.fromName(type));
+ addInjections (context, descriptor, node, name, TypeUtil.fromName(type));
Object value = TypeUtil.valueOf(type,valueStr);
bindEnvEntry(name, value);
break;
@@ -139,8 +132,8 @@ public class PlusDescriptorProcessor extends IterativeDescriptorProcessor
{
//We're processing web-defaults, web.xml or web-override. Any of them can
//set or change the env-entry.
- _metaData.setOrigin("env-entry."+name, descriptor);
- addInjections (descriptor, node, name, TypeUtil.fromName(type));
+ context.getMetaData().setOrigin("env-entry."+name, descriptor);
+ addInjections (context, descriptor, node, name, TypeUtil.fromName(type));
Object value = TypeUtil.valueOf(type,valueStr);
bindEnvEntry(name, value);
}
@@ -149,9 +142,9 @@ public class PlusDescriptorProcessor extends IterativeDescriptorProcessor
//A web.xml declared the env-entry. Check to see if any injections have been
//declared for it. If it was declared in web.xml then don't merge any injections.
//If it was declared in a web-fragment, then we can keep merging fragments.
- Descriptor d = _metaData.getOriginDescriptor("env-entry."+name+".injection");
+ Descriptor d = context.getMetaData().getOriginDescriptor("env-entry."+name+".injection");
if (d==null || d instanceof FragmentDescriptor)
- addInjections(descriptor, node, name, TypeUtil.fromName(type));
+ addInjections(context, descriptor, node, name, TypeUtil.fromName(type));
}
break;
}
@@ -193,7 +186,7 @@ public class PlusDescriptorProcessor extends IterativeDescriptorProcessor
* @param node
* @throws Exception
*/
- public void visitResourceRef (Descriptor descriptor, XmlParser.Node node)
+ public void visitResourceRef (WebAppContext context, Descriptor descriptor, XmlParser.Node node)
throws Exception
{
String jndiName = node.getString("res-ref-name",false,true);
@@ -201,20 +194,20 @@ public class PlusDescriptorProcessor extends IterativeDescriptorProcessor
String auth = node.getString("res-auth", false, true);
String shared = node.getString("res-sharing-scope", false, true);
- Origin o = _metaData.getOrigin("resource-ref."+jndiName);
+ Origin o = context.getMetaData().getOrigin("resource-ref."+jndiName);
switch (o)
{
case NotSet:
{
//No descriptor or annotation previously declared a resource-ref of this name.
- _metaData.setOrigin("resource-ref."+jndiName, descriptor);
+ context.getMetaData().setOrigin("resource-ref."+jndiName, descriptor);
//check for <injection> elements
- Class typeClass = TypeUtil.fromName(type);
+ Class<?> typeClass = TypeUtil.fromName(type);
if (typeClass==null)
- typeClass = _context.loadClass(type);
- addInjections(descriptor, node, jndiName, typeClass);
- bindResourceRef(jndiName, typeClass);
+ typeClass = context.loadClass(type);
+ addInjections(context, descriptor, node, jndiName, typeClass);
+ bindResourceRef(context,jndiName, typeClass);
break;
}
case WebXml:
@@ -226,17 +219,17 @@ public class PlusDescriptorProcessor extends IterativeDescriptorProcessor
{
//We're processing web-defaults, web.xml or web-override. Any of them can
//set or change the resource-ref.
- _metaData.setOrigin("resource-ref."+jndiName, descriptor);
+ context.getMetaData().setOrigin("resource-ref."+jndiName, descriptor);
//check for <injection> elements
- Class typeClass = TypeUtil.fromName(type);
+ Class<?> typeClass = TypeUtil.fromName(type);
if (typeClass==null)
- typeClass = _context.loadClass(type);
+ typeClass = context.loadClass(type);
- addInjections(descriptor, node, jndiName, typeClass);
+ addInjections(context, descriptor, node, jndiName, typeClass);
//bind the entry into jndi
- bindResourceRef(jndiName, typeClass);
+ bindResourceRef(context,jndiName, typeClass);
}
else
{
@@ -244,13 +237,13 @@ public class PlusDescriptorProcessor extends IterativeDescriptorProcessor
//web-fragment. Check to see if any injections were declared for it by web.xml.
//If any injection was declared in web.xml then don't merge any injections.
//If it was declared in a web-fragment, then we can keep merging fragments.
- Descriptor d = _metaData.getOriginDescriptor("resource-ref."+jndiName+".injection");
+ Descriptor d = context.getMetaData().getOriginDescriptor("resource-ref."+jndiName+".injection");
if (d==null || d instanceof FragmentDescriptor)
{
- Class typeClass = TypeUtil.fromName(type);
+ Class<?> typeClass = TypeUtil.fromName(type);
if (typeClass==null)
- typeClass = _context.loadClass(type);
- addInjections(descriptor, node, jndiName, TypeUtil.fromName(type));
+ typeClass = context.loadClass(type);
+ addInjections(context, descriptor, node, jndiName, TypeUtil.fromName(type));
}
}
break;
@@ -275,13 +268,13 @@ public class PlusDescriptorProcessor extends IterativeDescriptorProcessor
* @param node
* @throws Exception
*/
- public void visitResourceEnvRef (Descriptor descriptor, XmlParser.Node node)
+ public void visitResourceEnvRef (WebAppContext context, Descriptor descriptor, XmlParser.Node node)
throws Exception
{
String jndiName = node.getString("resource-env-ref-name",false,true);
String type = node.getString("resource-env-ref-type", false, true);
- Origin o = _metaData.getOrigin("resource-env-ref."+jndiName);
+ Origin o = context.getMetaData().getOrigin("resource-env-ref."+jndiName);
switch (o)
{
case NotSet:
@@ -289,11 +282,11 @@ public class PlusDescriptorProcessor extends IterativeDescriptorProcessor
//First declaration of resource-env-ref with this jndiName
//JavaEE Spec sec 5.7.1.3 says the resource-env-ref-type
//is mandatory, but the schema says it is optional!
- Class typeClass = TypeUtil.fromName(type);
+ Class<?> typeClass = TypeUtil.fromName(type);
if (typeClass==null)
- typeClass = _context.loadClass(type);
- addInjections (descriptor, node, jndiName, typeClass);
- bindResourceEnvRef(jndiName, typeClass);
+ typeClass = context.loadClass(type);
+ addInjections (context, descriptor, node, jndiName, typeClass);
+ bindResourceEnvRef(context,jndiName, typeClass);
break;
}
case WebXml:
@@ -306,24 +299,24 @@ public class PlusDescriptorProcessor extends IterativeDescriptorProcessor
{
//We're processing web-defaults, web.xml or web-override. Any of them can
//set or change the resource-env-ref.
- _metaData.setOrigin("resource-env-ref."+jndiName, descriptor);
- Class typeClass = TypeUtil.fromName(type);
+ context.getMetaData().setOrigin("resource-env-ref."+jndiName, descriptor);
+ Class<?> typeClass = TypeUtil.fromName(type);
if (typeClass==null)
- typeClass = _context.loadClass(type);
- addInjections (descriptor, node, jndiName, typeClass);
- bindResourceEnvRef(jndiName, typeClass);
+ typeClass = context.loadClass(type);
+ addInjections (context, descriptor, node, jndiName, typeClass);
+ bindResourceEnvRef(context,jndiName, typeClass);
}
else
{
//We're processing a web-fragment. It can only contribute injections if the
//there haven't been any injections declared yet, or they weren't declared in a WebXml file.
- Descriptor d = _metaData.getOriginDescriptor("resource-env-ref."+jndiName+".injection");
+ Descriptor d = context.getMetaData().getOriginDescriptor("resource-env-ref."+jndiName+".injection");
if (d == null || d instanceof FragmentDescriptor)
{
- Class typeClass = TypeUtil.fromName(type);
+ Class<?> typeClass = TypeUtil.fromName(type);
if (typeClass==null)
- typeClass = _context.loadClass(type);
- addInjections (descriptor, node, jndiName, typeClass);
+ typeClass = context.loadClass(type);
+ addInjections (context, descriptor, node, jndiName, typeClass);
}
}
break;
@@ -345,25 +338,25 @@ public class PlusDescriptorProcessor extends IterativeDescriptorProcessor
* @param node
* @throws Exception
*/
- public void visitMessageDestinationRef (Descriptor descriptor, XmlParser.Node node)
+ public void visitMessageDestinationRef (WebAppContext context, Descriptor descriptor, XmlParser.Node node)
throws Exception
{
String jndiName = node.getString("message-destination-ref-name",false,true);
String type = node.getString("message-destination-type",false,true);
String usage = node.getString("message-destination-usage",false,true);
- Origin o = _metaData.getOrigin("message-destination-ref."+jndiName);
+ Origin o = context.getMetaData().getOrigin("message-destination-ref."+jndiName);
switch (o)
{
case NotSet:
{
//A message-destination-ref of this name has not been previously declared
- Class typeClass = TypeUtil.fromName(type);
+ Class<?> typeClass = TypeUtil.fromName(type);
if (typeClass==null)
- typeClass = _context.loadClass(type);
- addInjections(descriptor, node, jndiName, typeClass);
- bindMessageDestinationRef(jndiName, typeClass);
- _metaData.setOrigin("message-destination-ref."+jndiName, descriptor);
+ typeClass = context.loadClass(type);
+ addInjections(context, descriptor, node, jndiName, typeClass);
+ bindMessageDestinationRef(context,jndiName, typeClass);
+ context.getMetaData().setOrigin("message-destination-ref."+jndiName, descriptor);
break;
}
case WebXml:
@@ -374,24 +367,24 @@ public class PlusDescriptorProcessor extends IterativeDescriptorProcessor
//Only allow other web-default, web.xml, web-override to change it.
if (!(descriptor instanceof FragmentDescriptor))
{
- Class typeClass = TypeUtil.fromName(type);
+ Class<?> typeClass = TypeUtil.fromName(type);
if (typeClass==null)
- typeClass = _context.loadClass(type);
- addInjections(descriptor, node, jndiName, typeClass);
- bindMessageDestinationRef(jndiName, typeClass);
- _metaData.setOrigin("message-destination-ref."+jndiName, descriptor);
+ typeClass = context.loadClass(type);
+ addInjections(context, descriptor, node, jndiName, typeClass);
+ bindMessageDestinationRef(context,jndiName, typeClass);
+ context.getMetaData().setOrigin("message-destination-ref."+jndiName, descriptor);
}
else
{
//A web-fragment has declared a message-destination-ref with the same name as a web xml.
//It can only contribute injections, and only if the web xml didn't declare any.
- Descriptor d = _metaData.getOriginDescriptor("message-destination-ref."+jndiName+".injection");
+ Descriptor d = context.getMetaData().getOriginDescriptor("message-destination-ref."+jndiName+".injection");
if (d == null || d instanceof FragmentDescriptor)
{
- Class typeClass = TypeUtil.fromName(type);
+ Class<?> typeClass = TypeUtil.fromName(type);
if (typeClass==null)
- typeClass = _context.loadClass(type);
- addInjections(descriptor, node, jndiName, typeClass);
+ typeClass = context.loadClass(type);
+ addInjections(context, descriptor, node, jndiName, typeClass);
}
}
break;
@@ -416,7 +409,7 @@ public class PlusDescriptorProcessor extends IterativeDescriptorProcessor
* resources have been setup but before the class is put into use
* @param node
*/
- public void visitPostConstruct(Descriptor descriptor, XmlParser.Node node)
+ public void visitPostConstruct(WebAppContext context, Descriptor descriptor, XmlParser.Node node)
{
String className = node.getString("lifecycle-callback-class", false, true);
String methodName = node.getString("lifecycle-callback-method", false, true);
@@ -431,20 +424,20 @@ public class PlusDescriptorProcessor extends IterativeDescriptorProcessor
Log.warn("No lifecycle-callback-method specified for class "+className);
return;
}
- LifeCycleCallbackCollection callbacks = (LifeCycleCallbackCollection)_context.getAttribute(LifeCycleCallbackCollection.LIFECYCLE_CALLBACK_COLLECTION);
+ LifeCycleCallbackCollection callbacks = (LifeCycleCallbackCollection)context.getAttribute(LifeCycleCallbackCollection.LIFECYCLE_CALLBACK_COLLECTION);
//ServletSpec 3.0 p80 If web.xml declares a post-construct then all post-constructs
//in fragments must be ignored. Otherwise, they are additive.
- Origin o = _metaData.getOrigin("post-construct");
+ Origin o = context.getMetaData().getOrigin("post-construct");
switch (o)
{
case NotSet:
{
//No post-constructs have been declared previously.
- _metaData.setOrigin("post-construct", descriptor);
+ context.getMetaData().setOrigin("post-construct", descriptor);
try
{
- Class clazz = _context.loadClass(className);
+ Class<?> clazz = context.loadClass(className);
LifeCycleCallback callback = new PostConstructCallback();
callback.setTarget(clazz, methodName);
callbacks.add(callback);
@@ -465,7 +458,7 @@ public class PlusDescriptorProcessor extends IterativeDescriptorProcessor
{
try
{
- Class clazz = _context.loadClass(className);
+ Class<?> clazz = context.loadClass(className);
LifeCycleCallback callback = new PostConstructCallback();
callback.setTarget(clazz, methodName);
callbacks.add(callback);
@@ -482,7 +475,7 @@ public class PlusDescriptorProcessor extends IterativeDescriptorProcessor
//A web-fragment first declared a post-construct. Allow all other web-fragments to merge in their post-constructs
try
{
- Class clazz = _context.loadClass(className);
+ Class<?> clazz = context.loadClass(className);
LifeCycleCallback callback = new PostConstructCallback();
callback.setTarget(clazz, methodName);
callbacks.add(callback);
@@ -504,7 +497,7 @@ public class PlusDescriptorProcessor extends IterativeDescriptorProcessor
* the instance is being destroyed
* @param node
*/
- public void visitPreDestroy(Descriptor descriptor, XmlParser.Node node)
+ public void visitPreDestroy(WebAppContext context, Descriptor descriptor, XmlParser.Node node)
{
String className = node.getString("lifecycle-callback-class", false, true);
String methodName = node.getString("lifecycle-callback-method", false, true);
@@ -518,19 +511,19 @@ public class PlusDescriptorProcessor extends IterativeDescriptorProcessor
Log.warn("No lifecycle-callback-method specified for pre-destroy class "+className);
return;
}
- LifeCycleCallbackCollection callbacks = (LifeCycleCallbackCollection)_context.getAttribute(LifeCycleCallbackCollection.LIFECYCLE_CALLBACK_COLLECTION);
+ LifeCycleCallbackCollection callbacks = (LifeCycleCallbackCollection)context.getAttribute(LifeCycleCallbackCollection.LIFECYCLE_CALLBACK_COLLECTION);
- Origin o = _metaData.getOrigin("pre-destroy");
+ Origin o = context.getMetaData().getOrigin("pre-destroy");
switch(o)
{
case NotSet:
{
//No pre-destroys have been declared previously. Record this descriptor
//as the first declarer.
- _metaData.setOrigin("pre-destroy", descriptor);
+ context.getMetaData().setOrigin("pre-destroy", descriptor);
try
{
- Class clazz = _context.loadClass(className);
+ Class<?> clazz = context.loadClass(className);
LifeCycleCallback callback = new PreDestroyCallback();
callback.setTarget(clazz, methodName);
callbacks.add(callback);
@@ -551,7 +544,7 @@ public class PlusDescriptorProcessor extends IterativeDescriptorProcessor
{
try
{
- Class clazz = _context.loadClass(className);
+ Class<?> clazz = context.loadClass(className);
LifeCycleCallback callback = new PreDestroyCallback();
callback.setTarget(clazz, methodName);
callbacks.add(callback);
@@ -568,7 +561,7 @@ public class PlusDescriptorProcessor extends IterativeDescriptorProcessor
//No pre-destroys in web xml, so allow all fragments to merge their pre-destroys.
try
{
- Class clazz = _context.loadClass(className);
+ Class<?> clazz = context.loadClass(className);
LifeCycleCallback callback = new PreDestroyCallback();
callback.setTarget(clazz, methodName);
callbacks.add(callback);
@@ -592,7 +585,7 @@ public class PlusDescriptorProcessor extends IterativeDescriptorProcessor
* @param valueClass
* @return
*/
- public void addInjections (Descriptor descriptor, XmlParser.Node node, String jndiName, Class valueClass)
+ public void addInjections (WebAppContext context, Descriptor descriptor, XmlParser.Node node, String jndiName, Class<?> valueClass)
{
Iterator itor = node.iterator("injection-target");
@@ -612,20 +605,20 @@ public class PlusDescriptorProcessor extends IterativeDescriptorProcessor
continue;
}
- InjectionCollection injections = (InjectionCollection)_context.getAttribute(InjectionCollection.INJECTION_COLLECTION);
+ InjectionCollection injections = (InjectionCollection)context.getAttribute(InjectionCollection.INJECTION_COLLECTION);
// comments in the javaee_5.xsd file specify that the targetName is looked
// for first as a java bean property, then if that fails, as a field
try
{
- Class clazz = _context.loadClass(targetClassName);
+ Class<?> clazz = context.loadClass(targetClassName);
Injection injection = new Injection();
injection.setJndiName(jndiName);
injection.setTarget(clazz, targetName, valueClass);
injections.add(injection);
//Record which was the first descriptor to declare an injection for this name
- if (_metaData.getOriginDescriptor(node.getTag()+"."+jndiName+".injection") == null)
- _metaData.setOrigin(node.getTag()+"."+jndiName+".injection", descriptor);
+ if (context.getMetaData().getOriginDescriptor(node.getTag()+"."+jndiName+".injection") == null)
+ context.getMetaData().setOrigin(node.getTag()+"."+jndiName+".injection", descriptor);
}
catch (ClassNotFoundException e)
{
@@ -683,10 +676,10 @@ public class PlusDescriptorProcessor extends IterativeDescriptorProcessor
* @param name
* @throws Exception
*/
- public void bindResourceRef(String name, Class typeClass)
+ public void bindResourceRef(WebAppContext context, String name, Class<?> typeClass)
throws Exception
{
- bindEntry(name, typeClass);
+ bindEntry(context, name, typeClass);
}
/**
@@ -694,17 +687,17 @@ public class PlusDescriptorProcessor extends IterativeDescriptorProcessor
* @param name
* @throws Exception
*/
- public void bindResourceEnvRef(String name, Class typeClass)
+ public void bindResourceEnvRef(WebAppContext context, String name, Class<?> typeClass)
throws Exception
{
- bindEntry(name, typeClass);
+ bindEntry(context, name, typeClass);
}
- public void bindMessageDestinationRef(String name, Class typeClass)
+ public void bindMessageDestinationRef(WebAppContext context, String name, Class<?> typeClass)
throws Exception
{
- bindEntry(name, typeClass);
+ bindEntry(context, name, typeClass);
}
@@ -723,7 +716,7 @@ public class PlusDescriptorProcessor extends IterativeDescriptorProcessor
* @param typeClass
* @throws Exception
*/
- protected void bindEntry (String name, Class typeClass)
+ protected void bindEntry (WebAppContext context, String name, Class<?> typeClass)
throws Exception
{
String nameInEnvironment = name;
@@ -731,7 +724,7 @@ public class PlusDescriptorProcessor extends IterativeDescriptorProcessor
//check if the name in web.xml has been mapped to something else
//check a context-specific naming environment first
- Object scope = _context;
+ Object scope = context;
NamingEntry ne = NamingEntryUtil.lookupNamingEntry(scope, name);
if (ne!=null && (ne instanceof Link))
@@ -742,14 +735,14 @@ public class PlusDescriptorProcessor extends IterativeDescriptorProcessor
}
//try finding that mapped name in the webapp's environment first
- scope = _context;
+ scope = context;
bound = NamingEntryUtil.bindToENC(scope, name, nameInEnvironment);
if (bound)
return;
//try the server's environment
- scope = _context.getServer();
+ scope = context.getServer();
bound = NamingEntryUtil.bindToENC(scope, name, nameInEnvironment);
if (bound)
return;
@@ -764,7 +757,7 @@ public class PlusDescriptorProcessor extends IterativeDescriptorProcessor
//eg javax.sql.DataSource/default
nameInEnvironment = typeClass.getName()+"/default";
//First try the server scope
- NamingEntry defaultNE = NamingEntryUtil.lookupNamingEntry(_context.getServer(), nameInEnvironment);
+ NamingEntry defaultNE = NamingEntryUtil.lookupNamingEntry(context.getServer(), nameInEnvironment);
if (defaultNE==null)
defaultNE = NamingEntryUtil.lookupNamingEntry(null, nameInEnvironment);
diff --git a/jetty-plus/src/test/java/org/eclipse/jetty/plus/webapp/TestConfiguration.java b/jetty-plus/src/test/java/org/eclipse/jetty/plus/webapp/TestConfiguration.java
index e96b69008d..c8a3a93fe0 100644
--- a/jetty-plus/src/test/java/org/eclipse/jetty/plus/webapp/TestConfiguration.java
+++ b/jetty-plus/src/test/java/org/eclipse/jetty/plus/webapp/TestConfiguration.java
@@ -83,6 +83,7 @@ public class TestConfiguration
Thread.currentThread().setContextClassLoader(wac.getClassLoader());
+ MetaData metadata = new MetaData(wac);
envConfig.preConfigure(wac);
envConfig.configure(wac);
envConfig.bindEnvEntries(wac);
diff --git a/jetty-servlet/src/main/java/org/eclipse/jetty/servlet/ErrorPageErrorHandler.java b/jetty-servlet/src/main/java/org/eclipse/jetty/servlet/ErrorPageErrorHandler.java
index 94d0515e8f..3b08f40674 100644
--- a/jetty-servlet/src/main/java/org/eclipse/jetty/servlet/ErrorPageErrorHandler.java
+++ b/jetty-servlet/src/main/java/org/eclipse/jetty/servlet/ErrorPageErrorHandler.java
@@ -43,8 +43,8 @@ public class ErrorPageErrorHandler extends ErrorHandler
public final static String ERROR_PAGE="org.eclipse.jetty.server.error_page";
protected ServletContext _servletContext;
- protected Map _errorPages; // code or exception to URL
- protected List _errorPageList; // list of ErrorCode by range
+ private final Map<String,String> _errorPages= new HashMap<String,String>(); // code or exception to URL
+ private final List<ErrorCodeRange> _errorPageList=new ArrayList<ErrorCodeRange>(); // list of ErrorCode by range
/* ------------------------------------------------------------ */
public ErrorPageErrorHandler()
@@ -54,6 +54,7 @@ public class ErrorPageErrorHandler extends ErrorHandler
/**
* @see org.eclipse.jetty.server.handler.ErrorHandler#handle(String, Request, HttpServletRequest, HttpServletResponse)
*/
+ @Override
public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException
{
String method = request.getMethod();
@@ -65,7 +66,7 @@ public class ErrorPageErrorHandler extends ErrorHandler
if (_errorPages!=null)
{
String error_page= null;
- Class exClass= (Class)request.getAttribute(Dispatcher.ERROR_EXCEPTION_TYPE);
+ Class<?> exClass= (Class<?>)request.getAttribute(Dispatcher.ERROR_EXCEPTION_TYPE);
if (ServletException.class.equals(exClass))
{
@@ -147,7 +148,7 @@ public class ErrorPageErrorHandler extends ErrorHandler
/**
* @return Returns the errorPages.
*/
- public Map getErrorPages()
+ public Map<String,String> getErrorPages()
{
return _errorPages;
}
@@ -156,9 +157,11 @@ public class ErrorPageErrorHandler extends ErrorHandler
/**
* @param errorPages The errorPages to set. A map of Exception class name or error code as a string to URI string
*/
- public void setErrorPages(Map errorPages)
+ public void setErrorPages(Map<String,String> errorPages)
{
- _errorPages = errorPages;
+ _errorPages.clear();
+ if (errorPages!=null)
+ _errorPages.putAll(errorPages);
}
/* ------------------------------------------------------------ */
@@ -168,12 +171,22 @@ public class ErrorPageErrorHandler extends ErrorHandler
* @param exception The exception
* @param uri The URI of the error page.
*/
- public void addErrorPage(Class exception,String uri)
+ public void addErrorPage(Class<? extends Throwable> exception,String uri)
{
- if (_errorPages==null)
- _errorPages=new HashMap();
_errorPages.put(exception.getName(),uri);
}
+
+ /* ------------------------------------------------------------ */
+ /** Add Error Page mapping for an exception class
+ * This method is called as a result of an exception-type element in a web.xml file
+ * or may be called directly
+ * @param exception The exception
+ * @param uri The URI of the error page.
+ */
+ public void addErrorPage(String exceptionClassName,String uri)
+ {
+ _errorPages.put(exceptionClassName,uri);
+ }
/* ------------------------------------------------------------ */
/** Add Error Page mapping for a status code.
@@ -184,8 +197,6 @@ public class ErrorPageErrorHandler extends ErrorHandler
*/
public void addErrorPage(int code,String uri)
{
- if (_errorPages==null)
- _errorPages=new HashMap();
_errorPages.put(Integer.toString(code),uri);
}
@@ -199,14 +210,11 @@ public class ErrorPageErrorHandler extends ErrorHandler
*/
public void addErrorPage(int from, int to, String uri)
{
- if (_errorPageList == null)
- {
- _errorPageList = new ArrayList();
- }
_errorPageList.add(new ErrorCodeRange(from, to, uri));
}
/* ------------------------------------------------------------ */
+ @Override
protected void doStart() throws Exception
{
super.doStart();
@@ -214,6 +222,7 @@ public class ErrorPageErrorHandler extends ErrorHandler
}
/* ------------------------------------------------------------ */
+ @Override
protected void doStop() throws Exception
{
// TODO Auto-generated method stub
@@ -254,6 +263,7 @@ public class ErrorPageErrorHandler extends ErrorHandler
return _uri;
}
+ @Override
public String toString()
{
return "from: " + _from + ",to: " + _to + ",uri: " + _uri;
diff --git a/jetty-servlet/src/main/java/org/eclipse/jetty/servlet/ServletContextHandler.java b/jetty-servlet/src/main/java/org/eclipse/jetty/servlet/ServletContextHandler.java
index f739b1dc3d..553782e7cc 100644
--- a/jetty-servlet/src/main/java/org/eclipse/jetty/servlet/ServletContextHandler.java
+++ b/jetty-servlet/src/main/java/org/eclipse/jetty/servlet/ServletContextHandler.java
@@ -13,16 +13,13 @@
package org.eclipse.jetty.servlet;
-import java.security.AccessController;
import java.util.Arrays;
-import java.util.Collections;
import java.util.EnumSet;
import java.util.EventListener;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
-import java.util.concurrent.ConcurrentHashMap;
import javax.servlet.DispatcherType;
import javax.servlet.Filter;
@@ -36,7 +33,6 @@ import javax.servlet.ServletException;
import javax.servlet.ServletRegistration;
import javax.servlet.SessionCookieConfig;
import javax.servlet.SessionTrackingMode;
-import javax.servlet.FilterRegistration.Dynamic;
import javax.servlet.descriptor.JspConfigDescriptor;
import org.eclipse.jetty.security.ConstraintAware;
@@ -49,11 +45,8 @@ import org.eclipse.jetty.server.handler.ContextHandler;
import org.eclipse.jetty.server.handler.ErrorHandler;
import org.eclipse.jetty.server.handler.HandlerCollection;
import org.eclipse.jetty.server.handler.HandlerWrapper;
-import org.eclipse.jetty.server.handler.ScopedHandler;
import org.eclipse.jetty.server.session.SessionHandler;
import org.eclipse.jetty.util.LazyList;
-import org.eclipse.jetty.util.Loader;
-import org.eclipse.jetty.util.log.Log;
/* ------------------------------------------------------------ */
@@ -83,8 +76,6 @@ public class ServletContextHandler extends ContextHandler
protected JspConfigDescriptor _jspConfig;
protected Object _restrictedContextListeners;
- protected final Set<Object> _created = Collections.newSetFromMap(new ConcurrentHashMap<Object,Boolean>());
-
/* ------------------------------------------------------------ */
public ServletContextHandler()
{
@@ -151,7 +142,6 @@ public class ServletContextHandler extends ContextHandler
@Override
protected void doStart() throws Exception
{
- _created.clear();
super.doStart();
}
@@ -163,20 +153,6 @@ public class ServletContextHandler extends ContextHandler
protected void doStop() throws Exception
{
super.doStop();
- _created.clear();
- }
-
- /* ------------------------------------------------------------ */
- /**
- * Check if instance was created by a call to {@link ServletContext#createFilter(Class)},
- * {@link ServletContext#createServlet(Class)} or {@link ServletContext#createListener(Class)}
- * @param instance Instance of {@link Servlet}, {@link Filter} or {@link EventListener}
- * @return True if the instance was created by a call to {@link ServletContext#createFilter(Class)},
- * {@link ServletContext#createServlet(Class)} or {@link ServletContext#createListener(Class)}
- */
- public boolean isCreatedInstance(Object instance)
- {
- return _created.contains(instance);
}
/* ------------------------------------------------------------ */
@@ -626,7 +602,6 @@ public class ServletContextHandler extends ContextHandler
T f = c.newInstance();
if (_decorator!=null)
f=_decorator.decorateFilterInstance(f);
- _created.add(f);
return f;
}
catch (InstantiationException e)
@@ -648,7 +623,6 @@ public class ServletContextHandler extends ContextHandler
T s = c.newInstance();
if (_decorator!=null)
s=_decorator.decorateServletInstance(s);
- _created.add(s);
return s;
}
catch (InstantiationException e)
@@ -798,7 +772,6 @@ public class ServletContextHandler extends ContextHandler
T l = super.createListener(clazz);
if (_decorator!=null)
l=_decorator.decorateListenerInstance(l);
- _created.add(l);
return l;
}
catch(ServletException e)
diff --git a/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/Configuration.java b/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/Configuration.java
index 57c6202577..49f09fdc93 100644
--- a/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/Configuration.java
+++ b/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/Configuration.java
@@ -31,7 +31,6 @@ public interface Configuration
/* ------------------------------------------------------------------------------- */
/** Configure WebApp.
- *
* @throws Exception
*/
public void configure (WebAppContext context) throws Exception;
diff --git a/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/DefaultsDescriptor.java b/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/DefaultsDescriptor.java
index e7331f6972..6feae9b9ed 100644
--- a/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/DefaultsDescriptor.java
+++ b/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/DefaultsDescriptor.java
@@ -18,12 +18,11 @@ import org.eclipse.jetty.util.resource.Resource;
/**
* DefaultsDescriptor
*
- *
*/
public class DefaultsDescriptor extends Descriptor
{
- public DefaultsDescriptor(Resource xml, MetaData processor)
+ public DefaultsDescriptor(Resource xml)
{
- super(xml, processor);
+ super(xml);
}
}
diff --git a/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/Descriptor.java b/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/Descriptor.java
index e6aca3c819..89daa75edb 100644
--- a/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/Descriptor.java
+++ b/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/Descriptor.java
@@ -44,7 +44,6 @@ public class Descriptor
protected ArrayList<String> _classNames = new ArrayList<String>();
protected boolean _distributable;
protected boolean _validating;
- protected MetaData _metaData;
protected boolean _isOrdered = false;
protected List<String> _ordering = new ArrayList<String>();
@@ -75,7 +74,7 @@ public class Descriptor
try
{
- Class jsp_page = Loader.loadClass(WebXmlConfiguration.class, "javax.servlet.jsp.JspPage");
+ Class<?> jsp_page = Loader.loadClass(WebXmlConfiguration.class, "javax.servlet.jsp.JspPage");
jsp20xsd = jsp_page.getResource("/javax/servlet/resources/jsp_2_0.xsd");
jsp21xsd = jsp_page.getResource("/javax/servlet/resources/jsp_2_1.xsd");
}
@@ -131,10 +130,9 @@ public class Descriptor
- public Descriptor (Resource xml, MetaData md)
+ public Descriptor (Resource xml)
{
_xml = xml;
- _metaData = md;
}
public void parse ()
@@ -180,11 +178,6 @@ public class Descriptor
return _xml;
}
- public MetaData getMetaData()
- {
- return _metaData;
- }
-
public void processVersion ()
{
String version = _root.getAttribute("version", "DTD");
diff --git a/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/DescriptorProcessor.java b/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/DescriptorProcessor.java
index 88a0e143d5..840b61e807 100644
--- a/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/DescriptorProcessor.java
+++ b/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/DescriptorProcessor.java
@@ -20,5 +20,5 @@ package org.eclipse.jetty.webapp;
*/
public interface DescriptorProcessor
{
- public void process (Descriptor descriptor) throws Exception;
+ public void process (WebAppContext context, Descriptor descriptor) throws Exception;
}
diff --git a/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/FragmentConfiguration.java b/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/FragmentConfiguration.java
index 4828738c94..5472f721f0 100644
--- a/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/FragmentConfiguration.java
+++ b/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/FragmentConfiguration.java
@@ -34,12 +34,8 @@ public class FragmentConfiguration implements Configuration
if (!context.isConfigurationDiscovered())
return;
- MetaData metaData = (MetaData)context.getAttribute(MetaData.METADATA);
- if (metaData == null)
- throw new IllegalStateException("No metadata");
-
//find all web-fragment.xmls
- findWebFragments(context, metaData);
+ findWebFragments(context, context.getMetaData());
}
@@ -48,12 +44,8 @@ public class FragmentConfiguration implements Configuration
if (!context.isConfigurationDiscovered())
return;
- MetaData metaData = (MetaData)context.getAttribute(MetaData.METADATA);
- if (metaData == null)
- throw new IllegalStateException("No metadata");
-
//order the fragments
- metaData.orderFragments();
+ context.getMetaData().orderFragments();
}
public void deconfigure(WebAppContext context) throws Exception
diff --git a/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/FragmentDescriptor.java b/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/FragmentDescriptor.java
index 75c36de57a..49dca136b0 100644
--- a/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/FragmentDescriptor.java
+++ b/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/FragmentDescriptor.java
@@ -40,11 +40,11 @@ public class FragmentDescriptor extends Descriptor
protected List<String> _afters = new ArrayList<String>();
protected String _name;
-
- public FragmentDescriptor (Resource xml, MetaData processor)
- throws Exception
+
+ public FragmentDescriptor (Resource xml)
+ throws Exception
{
- super (xml, processor);
+ super (xml);
}
public String getName ()
@@ -52,8 +52,9 @@ public class FragmentDescriptor extends Descriptor
return _name;
}
+ @Override
public void parse ()
- throws Exception
+ throws Exception
{
super.parse();
processName();
@@ -71,6 +72,7 @@ public class FragmentDescriptor extends Descriptor
_name = tmp;
}
}
+ @Override
public void processOrdering ()
{
//Process a fragment jar's web-fragment.xml<ordering> elements
diff --git a/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/IterativeDescriptorProcessor.java b/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/IterativeDescriptorProcessor.java
index fd1507649e..bccf493ad8 100644
--- a/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/IterativeDescriptorProcessor.java
+++ b/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/IterativeDescriptorProcessor.java
@@ -29,10 +29,10 @@ import org.eclipse.jetty.xml.XmlParser;
*/
public abstract class IterativeDescriptorProcessor implements DescriptorProcessor
{
- public static final Class[] __signature = new Class[]{Descriptor.class, XmlParser.Node.class};
+ public static final Class<?>[] __signature = new Class[]{WebAppContext.class, Descriptor.class, XmlParser.Node.class};
protected Map<String, Method> _visitors = new HashMap<String, Method>();
- public abstract void start(Descriptor descriptor);
- public abstract void end(Descriptor descriptor);
+ public abstract void start(WebAppContext context, Descriptor descriptor);
+ public abstract void end(WebAppContext context, Descriptor descriptor);
/**
* Register a method to be called back when visiting the node with the given name.
@@ -50,13 +50,13 @@ public abstract class IterativeDescriptorProcessor implements DescriptorProcesso
/**
* @see org.eclipse.jetty.webapp.DescriptorProcessor#process(org.eclipse.jetty.webapp.Descriptor)
*/
- public void process(Descriptor descriptor)
+ public void process(WebAppContext context, Descriptor descriptor)
throws Exception
{
if (descriptor == null)
return;
- start(descriptor);
+ start(context,descriptor);
XmlParser.Node root = descriptor.getRoot();
Iterator iter = root.iterator();
@@ -66,19 +66,19 @@ public abstract class IterativeDescriptorProcessor implements DescriptorProcesso
Object o = iter.next();
if (!(o instanceof XmlParser.Node)) continue;
node = (XmlParser.Node) o;
- visit(descriptor, node);
+ visit(context, descriptor, node);
}
- end(descriptor);
+ end(context,descriptor);
}
- protected void visit (final Descriptor descriptor, final XmlParser.Node node)
+ protected void visit (WebAppContext context, Descriptor descriptor, XmlParser.Node node)
throws Exception
{
String name = node.getTag();
Method m = _visitors.get(name);
if (m != null)
- m.invoke(this, new Object[]{descriptor, node});
+ m.invoke(this, new Object[]{context, descriptor, node});
}
}
diff --git a/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/MetaData.java b/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/MetaData.java
index 0a55b57b80..5afb5f0311 100644
--- a/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/MetaData.java
+++ b/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/MetaData.java
@@ -36,8 +36,6 @@ import org.eclipse.jetty.util.resource.Resource;
*/
public class MetaData
{
- public static final String METADATA = "org.eclipse.jetty.metaData";
- public static final String METADATA_COMPLETE = "org.eclipse.jetty.metadataComplete";
public static final String WEBXML_MAJOR_VERSION = "org.eclipse.jetty.webXmlMajorVersion";
public static final String WEBXML_MINOR_VERSION = "org.eclipse.jetty.webXmlMinorVersion";
public static final String WEBXML_CLASSNAMES = "org.eclipse.jetty.webXmlClassNames";
@@ -49,6 +47,7 @@ public class MetaData
protected Descriptor _webDefaultsRoot;
protected Descriptor _webXmlRoot;
protected Descriptor _webOverrideRoot;
+ protected boolean _metaDataComplete;
protected List<DiscoveredAnnotation> _annotations = new ArrayList<DiscoveredAnnotation>();
protected List<DescriptorProcessor> _descriptorProcessors = new ArrayList<DescriptorProcessor>();
protected List<FragmentDescriptor> _webFragmentRoots = new ArrayList<FragmentDescriptor>();
@@ -136,6 +135,7 @@ public class MetaData
* Order the list of jars in WEB-INF/lib according to the ordering declarations in the descriptors
* @see org.eclipse.jetty.webapp.MetaData.Ordering#order(java.util.List)
*/
+ @Override
public List<Resource> order(List<Resource> jars)
{
List<Resource> orderedList = new ArrayList<Resource>();
@@ -143,7 +143,7 @@ public class MetaData
//1. put everything into the list of named others, and take the named ones out of there,
//assuming we will want to use the <other> clause
- Map<String,FragmentDescriptor> others = new HashMap(getNamedFragments());
+ Map<String,FragmentDescriptor> others = new HashMap<String,FragmentDescriptor>(getNamedFragments());
//2. for each name, take out of the list of others, add to tail of list
int index = -1;
@@ -173,6 +173,7 @@ public class MetaData
return orderedList;
}
+ @Override
public boolean isAbsolute()
{
return true;
@@ -192,6 +193,7 @@ public class MetaData
_order.add(OTHER);
}
+ @Override
public boolean hasOther ()
{
return _hasOther;
@@ -215,6 +217,7 @@ public class MetaData
* in the various web-fragment.xml files.
* @see org.eclipse.jetty.webapp.MetaData.Ordering#order(java.util.List)
*/
+ @Override
public List<Resource> order(List<Resource> jars)
{
//for each jar, put it into the ordering according to the fragment ordering
@@ -284,11 +287,13 @@ public class MetaData
return orderedList;
}
+ @Override
public boolean isAbsolute ()
{
return false;
}
+ @Override
public boolean hasOther ()
{
return !_beforeOthers.isEmpty() || !_afterOthers.isEmpty();
@@ -313,7 +318,7 @@ public class MetaData
{
//Take a copy of the list so we can iterate over it and at the same time do random insertions
boolean changes = false;
- List<Resource> iterable = new ArrayList(list);
+ List<Resource> iterable = new ArrayList<Resource>(list);
Iterator<Resource> itor = iterable.iterator();
while (itor.hasNext())
@@ -552,10 +557,8 @@ public class MetaData
return resources.indexOf(r);
}
}
-
-
- public MetaData (WebAppContext context) throws ClassNotFoundException
+ public MetaData (WebAppContext context)
{
_context = context;
@@ -571,7 +574,7 @@ public class MetaData
public void setDefaults (Resource webDefaults)
throws Exception
{
- _webDefaultsRoot = new DefaultsDescriptor(webDefaults, this);
+ _webDefaultsRoot = new DefaultsDescriptor(webDefaults);
_webDefaultsRoot.parse();
if (_webDefaultsRoot.isOrdered())
{
@@ -592,12 +595,9 @@ public class MetaData
public void setWebXml (Resource webXml)
throws Exception
{
- _webXmlRoot = new Descriptor(webXml, this);
+ _webXmlRoot = new Descriptor(webXml);
_webXmlRoot.parse();
- if (_webXmlRoot.getMetaDataComplete() == Descriptor.MetaDataComplete.True)
- _context.setAttribute(METADATA_COMPLETE, Boolean.TRUE);
- else
- _context.setAttribute(METADATA_COMPLETE, Boolean.FALSE);
+ _metaDataComplete=_webXmlRoot.getMetaDataComplete() == Descriptor.MetaDataComplete.True;
_context.getServletContext().setEffectiveMajorVersion(_webXmlRoot.getMajorVersion());
_context.getServletContext().setEffectiveMinorVersion(_webXmlRoot.getMinorVersion());
_context.setAttribute(WEBXML_CLASSNAMES, _webXmlRoot.getClassNames());
@@ -621,13 +621,21 @@ public class MetaData
public void setOverride (Resource override)
throws Exception
{
- _webOverrideRoot = new OverrideDescriptor(override, this);
+ _webOverrideRoot = new OverrideDescriptor(override);
_webOverrideRoot.setValidating(false);
_webOverrideRoot.parse();
- if (_webOverrideRoot.getMetaDataComplete() == Descriptor.MetaDataComplete.True)
- _context.setAttribute(METADATA_COMPLETE, Boolean.TRUE);
- else if (_webOverrideRoot.getMetaDataComplete() == Descriptor.MetaDataComplete.False)
- _context.setAttribute(METADATA_COMPLETE, Boolean.FALSE);
+
+ switch(_webOverrideRoot.getMetaDataComplete())
+ {
+ case True:
+ _metaDataComplete=true;
+ break;
+ case False:
+ _metaDataComplete=true;
+ break;
+ case NotSet:
+ break;
+ }
if (_webOverrideRoot.isOrdered())
{
@@ -656,12 +664,11 @@ public class MetaData
public void addFragment (Resource jarResource, Resource xmlResource)
throws Exception
{
- Boolean metaComplete = (Boolean)_context.getAttribute(METADATA_COMPLETE);
- if (metaComplete != null && metaComplete.booleanValue())
+ if (_metaDataComplete)
return; //do not process anything else if web.xml/web-override.xml set metadata-complete
//Metadata-complete is not set, or there is no web.xml
- FragmentDescriptor descriptor = new FragmentDescriptor(xmlResource, this);
+ FragmentDescriptor descriptor = new FragmentDescriptor(xmlResource);
_webFragmentResourceMap.put(jarResource, descriptor);
_webFragmentRoots.add(descriptor);
@@ -732,7 +739,7 @@ public class MetaData
* Resolve all servlet/filter/listener metadata from all sources: descriptors and annotations.
*
*/
- public void resolve ()
+ public void resolve (WebAppContext context)
throws Exception
{
//TODO - apply all descriptors and annotations in order:
@@ -747,9 +754,9 @@ public class MetaData
for (DescriptorProcessor p:_descriptorProcessors)
{
- p.process(getWebDefault());
- p.process(getWebXml());
- p.process(getOverrideWeb());
+ p.process(context,getWebDefault());
+ p.process(context,getWebXml());
+ p.process(context,getOverrideWeb());
}
for (DiscoveredAnnotation a:_annotations)
@@ -764,7 +771,7 @@ public class MetaData
{
for (DescriptorProcessor p:_descriptorProcessors)
{
- p.process(fd);
+ p.process(context,fd);
}
}
@@ -817,7 +824,7 @@ public class MetaData
public List<Resource> getOrderedResources ()
{
- return _orderedResources == null? new ArrayList<Resource>(): _orderedResources;
+ return _orderedResources;
}
public List<FragmentDescriptor> getOrderedFragments ()
@@ -908,4 +915,9 @@ public class MetaData
OriginInfo x = new OriginInfo (name, Origin.Annotation);
_origins.put(name, x);
}
+
+ public boolean isMetaDataComplete()
+ {
+ return _metaDataComplete;
+ }
}
diff --git a/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/OverrideDescriptor.java b/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/OverrideDescriptor.java
index fe7adb3599..7d62bd2529 100644
--- a/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/OverrideDescriptor.java
+++ b/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/OverrideDescriptor.java
@@ -22,8 +22,8 @@ import org.eclipse.jetty.util.resource.Resource;
*/
public class OverrideDescriptor extends Descriptor
{
- public OverrideDescriptor(Resource xml, MetaData processor)
+ public OverrideDescriptor(Resource xml)
{
- super(xml, processor);
+ super(xml);
}
}
diff --git a/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/StandardDescriptorProcessor.java b/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/StandardDescriptorProcessor.java
index d8de387c00..b34e1bdbfd 100644
--- a/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/StandardDescriptorProcessor.java
+++ b/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/StandardDescriptorProcessor.java
@@ -20,7 +20,6 @@ import java.net.URLClassLoader;
import java.util.ArrayList;
import java.util.EnumSet;
import java.util.EventListener;
-import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
@@ -36,13 +35,11 @@ import javax.servlet.SessionTrackingMode;
import org.eclipse.jetty.http.security.Constraint;
import org.eclipse.jetty.security.ConstraintAware;
import org.eclipse.jetty.security.ConstraintMapping;
-import org.eclipse.jetty.security.SecurityHandler;
import org.eclipse.jetty.security.authentication.FormAuthenticator;
import org.eclipse.jetty.servlet.ErrorPageErrorHandler;
import org.eclipse.jetty.servlet.FilterHolder;
import org.eclipse.jetty.servlet.FilterMapping;
import org.eclipse.jetty.servlet.Holder;
-import org.eclipse.jetty.servlet.ServletHandler;
import org.eclipse.jetty.servlet.ServletHolder;
import org.eclipse.jetty.servlet.ServletMapping;
import org.eclipse.jetty.util.LazyList;
@@ -60,27 +57,7 @@ import org.eclipse.jetty.xml.XmlParser;
public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
{
public static final String STANDARD_PROCESSOR = "org.eclipse.jetty.standardDescriptorProcessor";
- protected WebAppContext _context;
- //the shared configuration operated on by web-default.xml, web.xml, web-override.xml and all web-fragment.xml
- protected ServletHandler _servletHandler;
- protected SecurityHandler _securityHandler;
- protected Object _filters;
- protected Object _filterMappings;
- protected Object _servlets;
- protected Object _servletMappings;
- protected Object _listeners;
- protected Object _listenerClassNames;
- protected Object _welcomeFiles;
- protected Set<String> _roles = new HashSet<String>();
- protected List<ConstraintMapping> _constraintMappings = new ArrayList<ConstraintMapping>();
- protected Map _errorPages;
- protected boolean _hasJSP;
- protected String _jspServletName;
- protected String _jspServletClass;
- protected boolean _defaultWelcomeFileList;
- protected MetaData _metaData;
-
public StandardDescriptorProcessor ()
@@ -118,29 +95,8 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
/**
* @see org.eclipse.jetty.webapp.IterativeDescriptorProcessor#start()
*/
- public void start(Descriptor descriptor)
- {
- _metaData = descriptor.getMetaData();
- _context = _metaData.getContext();
-
- //Get the current objects from the context
- _servletHandler = _context.getServletHandler();
- _securityHandler = (SecurityHandler)_context.getSecurityHandler();
- _filters = LazyList.array2List(_servletHandler.getFilters());
- _filterMappings = LazyList.array2List(_servletHandler.getFilterMappings());
- _servlets = LazyList.array2List(_servletHandler.getServlets());
- _servletMappings = LazyList.array2List(_servletHandler.getServletMappings());
- _listeners = LazyList.array2List(_context.getEventListeners());
- _welcomeFiles = LazyList.array2List(_context.getWelcomeFiles());
- if (_securityHandler instanceof ConstraintAware)
- {
- _constraintMappings.addAll(((ConstraintAware) _securityHandler).getConstraintMappings());
- if (((ConstraintAware) _securityHandler).getRoles() != null)
- {
- _roles.addAll(((ConstraintAware) _securityHandler).getRoles());
- }
- }
- _errorPages = _context.getErrorHandler() instanceof ErrorPageErrorHandler ? ((ErrorPageErrorHandler)_context.getErrorHandler()).getErrorPages() : null;
+ public void start(WebAppContext context, Descriptor descriptor)
+ {
}
@@ -148,45 +104,22 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
/**
* @see org.eclipse.jetty.webapp.IterativeDescriptorProcessor#end()
*/
- public void end(Descriptor descriptor)
+ public void end(WebAppContext context, Descriptor descriptor)
{
- //Set the context with the results of the processing
- _servletHandler.setFilters((FilterHolder[]) LazyList.toArray(_filters, FilterHolder.class));
- _servletHandler.setFilterMappings((FilterMapping[]) LazyList.toArray(_filterMappings, FilterMapping.class));
- _servletHandler.setServlets((ServletHolder[]) LazyList.toArray(_servlets, ServletHolder.class));
- _servletHandler.setServletMappings((ServletMapping[]) LazyList.toArray(_servletMappings, ServletMapping.class));
- _context.setEventListeners((EventListener[]) LazyList.toArray(_listeners, EventListener.class));
- _context.setWelcomeFiles((String[]) LazyList.toArray(_welcomeFiles, String.class));
- // TODO jaspi check this
- if (_securityHandler instanceof ConstraintAware)
- {
- for (ConstraintMapping m:_constraintMappings)
- ((ConstraintAware) _securityHandler).addConstraintMapping(m);
- for (String r:_roles)
- ((ConstraintAware) _securityHandler).addRole(r);
- }
-
- if (_errorPages != null && _context.getErrorHandler() instanceof ErrorPageErrorHandler)
- ((ErrorPageErrorHandler)_context.getErrorHandler()).setErrorPages(_errorPages);
-
- _roles.clear();
- _constraintMappings.clear();
- _metaData = null;
- _context = null;
}
- public void visitContextParam (Descriptor descriptor, XmlParser.Node node)
+ public void visitContextParam (WebAppContext context, Descriptor descriptor, XmlParser.Node node)
{
String name = node.getString("param-name", false, true);
String value = node.getString("param-value", false, true);
- Origin o = _metaData.getOrigin("context-param."+name);
+ Origin o = context.getMetaData().getOrigin("context-param."+name);
switch (o)
{
case NotSet:
{
//just set it
- _context.getInitParams().put(name, value);
- _metaData.setOrigin("context-param."+name, descriptor);
+ context.getInitParams().put(name, value);
+ context.getMetaData().setOrigin("context-param."+name, descriptor);
break;
}
case WebXml:
@@ -196,8 +129,8 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
//previously set by a web xml, allow other web xml files to override
if (!(descriptor instanceof FragmentDescriptor))
{
- _context.getInitParams().put(name, value);
- _metaData.setOrigin("context-param."+name, descriptor);
+ context.getInitParams().put(name, value);
+ context.getMetaData().setOrigin("context-param."+name, descriptor);
}
break;
}
@@ -206,7 +139,7 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
//previously set by a web-fragment, this fragment's value must be the same
if (descriptor instanceof FragmentDescriptor)
{
- if (!((String)_context.getInitParams().get(name)).equals(value))
+ if (!((String)context.getInitParams().get(name)).equals(value))
throw new IllegalStateException("Conflicting context-param "+name+"="+value+" in "+descriptor.getResource());
}
break;
@@ -218,32 +151,32 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
/* ------------------------------------------------------------ */
- protected void visitDisplayName(Descriptor descriptor, XmlParser.Node node)
+ protected void visitDisplayName(WebAppContext context, Descriptor descriptor, XmlParser.Node node)
{
//Servlet Spec 3.0 p. 74 Ignore from web-fragments
if (!(descriptor instanceof FragmentDescriptor))
{
- _context.setDisplayName(node.toString(false, true));
- _metaData.setOrigin("display-name", descriptor);
+ context.setDisplayName(node.toString(false, true));
+ context.getMetaData().setOrigin("display-name", descriptor);
}
}
- protected void visitServlet(Descriptor descriptor, XmlParser.Node node)
+ protected void visitServlet(WebAppContext context, Descriptor descriptor, XmlParser.Node node)
{
String id = node.getAttribute("id");
// initialize holder
String servlet_name = node.getString("servlet-name", false, true);
- ServletHolder holder = _servletHandler.getServlet(servlet_name);
+ ServletHolder holder = context.getServletHandler().getServlet(servlet_name);
/*
* If servlet of that name does not already exist, create it.
*/
if (holder == null)
{
- holder = _servletHandler.newServletHolder(Holder.Source.DESCRIPTOR);
+ holder = context.getServletHandler().newServletHolder(Holder.Source.DESCRIPTOR);
holder.setName(servlet_name);
- _servlets = LazyList.add(_servlets, holder);
+ context.getServletHandler().addServlet(holder);
}
ServletRegistration.Dynamic registration = holder.getRegistration();
@@ -255,7 +188,7 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
String pname = paramNode.getString("param-name", false, true);
String pvalue = paramNode.getString("param-value", false, true);
- Origin origin = _metaData.getOrigin(servlet_name+".servlet.init-param."+pname);
+ Origin origin = context.getMetaData().getOrigin(servlet_name+".servlet.init-param."+pname);
switch (origin)
{
@@ -264,7 +197,7 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
//init-param not already set, so set it
registration.setInitParameter(pname, pvalue);
- _metaData.setOrigin(servlet_name+".servlet.init-param."+pname, descriptor);
+ context.getMetaData().setOrigin(servlet_name+".servlet.init-param."+pname, descriptor);
break;
}
case WebXml:
@@ -276,7 +209,7 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
if (!(descriptor instanceof FragmentDescriptor))
{
registration.setInitParameter(pname, pvalue);
- _metaData.setOrigin(servlet_name+".servlet.init-param."+pname, descriptor);
+ context.getMetaData().setOrigin(servlet_name+".servlet.init-param."+pname, descriptor);
}
break;
}
@@ -293,41 +226,44 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
String servlet_class = node.getString("servlet-class", false, true);
// Handle JSP
+ String jspServletName=null;
+ String jspServletClass=null;;
+ boolean hasJSP=false;
if (id != null && id.equals("jsp"))
{
- _jspServletName = servlet_name;
- _jspServletClass = servlet_class;
+ jspServletName = servlet_name;
+ jspServletClass = servlet_class;
try
{
Loader.loadClass(this.getClass(), servlet_class);
- _hasJSP = true;
+ hasJSP = true;
}
catch (ClassNotFoundException e)
{
- Log.info("NO JSP Support for {}, did not find {}", _context.getContextPath(), servlet_class);
- _hasJSP = false;
- _jspServletClass = servlet_class = "org.eclipse.jetty.servlet.NoJspServlet";
+ Log.info("NO JSP Support for {}, did not find {}", context.getContextPath(), servlet_class);
+ jspServletClass = servlet_class = "org.eclipse.jetty.servlet.NoJspServlet";
}
if (registration.getInitParameter("scratchdir") == null)
{
- File tmp = _context.getTempDirectory();
+ File tmp = context.getTempDirectory();
File scratch = new File(tmp, "jsp");
if (!scratch.exists()) scratch.mkdir();
registration.setInitParameter("scratchdir", scratch.getAbsolutePath());
if ("?".equals(registration.getInitParameter("classpath")))
{
- String classpath = _context.getClassPath();
+ String classpath = context.getClassPath();
Log.debug("classpath=" + classpath);
if (classpath != null)
registration.setInitParameter("classpath", classpath);
}
}
+ // TODO is this too soon?
/* Set the webapp's classpath for Jasper */
- _context.setAttribute("org.apache.catalina.jsp_classpath", _context.getClassPath());
+ context.setAttribute("org.apache.catalina.jsp_classpath", context.getClassPath());
/* Set the system classpath for Jasper */
- registration.setInitParameter("com.sun.appserv.jsp.classpath", getSystemClassPath());
+ registration.setInitParameter("com.sun.appserv.jsp.classpath", getSystemClassPath(context));
}
//Set the servlet-class
@@ -335,14 +271,14 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
{
descriptor.addClassName(servlet_class);
- Origin o = _metaData.getOrigin(servlet_name+".servlet.servlet-class");
+ Origin o = context.getMetaData().getOrigin(servlet_name+".servlet.servlet-class");
switch (o)
{
case NotSet:
{
//the class of the servlet has not previously been set, so set it
holder.setClassName(servlet_class);
- _metaData.setOrigin(servlet_name+".servlet.servlet-class", descriptor);
+ context.getMetaData().setOrigin(servlet_name+".servlet.servlet-class", descriptor);
break;
}
case WebXml:
@@ -353,7 +289,7 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
if (!(descriptor instanceof FragmentDescriptor))
{
holder.setClassName(servlet_class);
- _metaData.setOrigin(servlet_name+".servlet.servlet-class", descriptor);
+ context.getMetaData().setOrigin(servlet_name+".servlet.servlet-class", descriptor);
}
break;
}
@@ -372,7 +308,7 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
if (jsp_file != null)
{
holder.setForcedPath(jsp_file);
- holder.setClassName(_jspServletClass);
+ holder.setClassName(jspServletClass);
}
// handle load-on-startup
@@ -399,14 +335,14 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
}
}
- Origin o = _metaData.getOrigin(servlet_name+".servlet.load-on-startup");
+ Origin o = context.getMetaData().getOrigin(servlet_name+".servlet.load-on-startup");
switch (o)
{
case NotSet:
{
//not already set, so set it now
registration.setLoadOnStartup(order);
- _metaData.setOrigin(servlet_name+".servlet.load-on-startup", descriptor);
+ context.getMetaData().setOrigin(servlet_name+".servlet.load-on-startup", descriptor);
break;
}
case WebXml:
@@ -417,7 +353,7 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
if (!(descriptor instanceof FragmentDescriptor))
{
registration.setLoadOnStartup(order);
- _metaData.setOrigin(servlet_name+".servlet.load-on-startup", descriptor);
+ context.getMetaData().setOrigin(servlet_name+".servlet.load-on-startup", descriptor);
}
break;
}
@@ -440,14 +376,14 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
if (roleName != null && roleName.length() > 0 && roleLink != null && roleLink.length() > 0)
{
if (Log.isDebugEnabled()) Log.debug("link role " + roleName + " to " + roleLink + " for " + this);
- Origin o = _metaData.getOrigin(servlet_name+".servlet.role-name."+roleName);
+ Origin o = context.getMetaData().getOrigin(servlet_name+".servlet.role-name."+roleName);
switch (o)
{
case NotSet:
{
//set it
holder.setUserRoleLink(roleName, roleLink);
- _metaData.setOrigin(servlet_name+".servlet.role-name."+roleName, descriptor);
+ context.getMetaData().setOrigin(servlet_name+".servlet.role-name."+roleName, descriptor);
break;
}
case WebXml:
@@ -458,7 +394,7 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
if (!(descriptor instanceof FragmentDescriptor))
{
holder.setUserRoleLink(roleName, roleLink);
- _metaData.setOrigin(servlet_name+".servlet.role-name."+roleName, descriptor);
+ context.getMetaData().setOrigin(servlet_name+".servlet.role-name."+roleName, descriptor);
}
break;
}
@@ -484,14 +420,14 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
if (roleName != null)
{
- Origin o = _metaData.getOrigin(servlet_name+".servlet.run-as");
+ Origin o = context.getMetaData().getOrigin(servlet_name+".servlet.run-as");
switch (o)
{
case NotSet:
{
//run-as not set, so set it
registration.setRunAsRole(roleName);
- _metaData.setOrigin(servlet_name+".servlet.run-as", descriptor);
+ context.getMetaData().setOrigin(servlet_name+".servlet.run-as", descriptor);
break;
}
case WebXml:
@@ -502,7 +438,7 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
if (!(descriptor instanceof FragmentDescriptor))
{
registration.setRunAsRole(roleName);
- _metaData.setOrigin(servlet_name+".servlet.run-as", descriptor);
+ context.getMetaData().setOrigin(servlet_name+".servlet.run-as", descriptor);
}
break;
}
@@ -521,14 +457,14 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
if (async!=null)
{
boolean val = async.length()==0||Boolean.valueOf(async);
- Origin o =_metaData.getOrigin(servlet_name+".servlet.async-supported");
+ Origin o =context.getMetaData().getOrigin(servlet_name+".servlet.async-supported");
switch (o)
{
case NotSet:
{
//set it
registration.setAsyncSupported(val);
- _metaData.setOrigin(servlet_name+".servlet.async-supported", descriptor);
+ context.getMetaData().setOrigin(servlet_name+".servlet.async-supported", descriptor);
break;
}
case WebXml:
@@ -539,7 +475,7 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
if (!(descriptor instanceof FragmentDescriptor))
{
registration.setAsyncSupported(val);
- _metaData.setOrigin(servlet_name+".servlet.async-supported", descriptor);
+ context.getMetaData().setOrigin(servlet_name+".servlet.async-supported", descriptor);
}
break;
}
@@ -556,15 +492,16 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
String enabled = node.getString("enabled", false, true);
if (enabled!=null)
{
- boolean val = enabled.length()==0||Boolean.valueOf(enabled);
- Origin o = _metaData.getOrigin(servlet_name+".servlet.enabled");
+ boolean is_enabled = enabled.length()==0||Boolean.valueOf(enabled);
+ // TODO handle enabled?
+ Origin o = context.getMetaData().getOrigin(servlet_name+".servlet.enabled");
switch (o)
{
case NotSet:
{
//hasn't been set yet, so set it
//TODO
- _metaData.setOrigin(servlet_name+".servlet.enabled", descriptor);
+ context.getMetaData().setOrigin(servlet_name+".servlet.enabled", descriptor);
break;
}
case WebXml:
@@ -575,7 +512,7 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
if (!(descriptor instanceof FragmentDescriptor))
{
//TODO
- _metaData.setOrigin(servlet_name+".servlet.enabled", descriptor);
+ context.getMetaData().setOrigin(servlet_name+".servlet.enabled", descriptor);
}
break;
}
@@ -605,14 +542,14 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
(maxRequest==null||"".equals(maxRequest)?-1L:Long.parseLong(maxRequest)),
(threshold==null||"".equals(threshold)?0:Integer.parseInt(threshold)));
- Origin o = _metaData.getOrigin(servlet_name+".servlet.multipart-config");
+ Origin o = context.getMetaData().getOrigin(servlet_name+".servlet.multipart-config");
switch (o)
{
case NotSet:
{
//hasn't been set, so set it
registration.setMultipartConfig(element);
- _metaData.setOrigin(servlet_name+".servlet.multipart-config", descriptor);
+ context.getMetaData().setOrigin(servlet_name+".servlet.multipart-config", descriptor);
break;
}
case WebXml:
@@ -623,7 +560,7 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
if (!(descriptor instanceof FragmentDescriptor))
{
registration.setMultipartConfig(element);
- _metaData.setOrigin(servlet_name+".servlet.multipart-config", descriptor);
+ context.getMetaData().setOrigin(servlet_name+".servlet.multipart-config", descriptor);
}
break;
}
@@ -647,7 +584,7 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
}
}
- protected void visitServletMapping(Descriptor descriptor, XmlParser.Node node)
+ protected void visitServletMapping(WebAppContext context, Descriptor descriptor, XmlParser.Node node)
{
//Servlet Spec 3.0, p74
//servlet-mappings are always additive, whether from web xml descriptors (web.xml/web-default.xml/web-override.xml) or web-fragments.
@@ -655,29 +592,29 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
ServletMapping mapping = new ServletMapping();
mapping.setServletName(servlet_name);
- if (_metaData.getOrigin(servlet_name+".servlet.mappings") == Origin.NotSet)
- _metaData.setOrigin(servlet_name+".servlet.mappings", descriptor);
+ if (context.getMetaData().getOrigin(servlet_name+".servlet.mappings") == Origin.NotSet)
+ context.getMetaData().setOrigin(servlet_name+".servlet.mappings", descriptor);
- ArrayList paths = new ArrayList();
- Iterator iter = node.iterator("url-pattern");
+ List<String> paths = new ArrayList<String>();
+ Iterator<XmlParser.Node> iter = node.iterator("url-pattern");
while (iter.hasNext())
{
- String p = ((XmlParser.Node) iter.next()).toString(false, true);
+ String p = iter.next().toString(false, true);
p = normalizePattern(p);
paths.add(p);
}
mapping.setPathSpecs((String[]) paths.toArray(new String[paths.size()]));
- _servletMappings = LazyList.add(_servletMappings, mapping);
+ context.getServletHandler().addServletMapping(mapping);
}
- protected void visitSessionConfig(Descriptor descriptor, XmlParser.Node node)
+ protected void visitSessionConfig(WebAppContext context, Descriptor descriptor, XmlParser.Node node)
{
XmlParser.Node tNode = node.get("session-timeout");
if (tNode != null)
{
int timeout = Integer.parseInt(tNode.toString(false, true));
- _context.getSessionHandler().getSessionManager().setMaxInactiveInterval(timeout * 60);
+ context.getSessionHandler().getSessionManager().setMaxInactiveInterval(timeout * 60);
}
//Servlet Spec 3.0
@@ -685,14 +622,14 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
// this is additive across web-fragments
Iterator iter = node.iterator("tracking-mode");
Set<SessionTrackingMode> modes = new HashSet<SessionTrackingMode>();
- modes.addAll(_context.getSessionHandler().getSessionManager().getEffectiveSessionTrackingModes());
+ modes.addAll(context.getSessionHandler().getSessionManager().getEffectiveSessionTrackingModes());
while (iter.hasNext())
{
XmlParser.Node mNode = (XmlParser.Node) iter.next();
String trackMode = mNode.toString(false, true);
modes.add(SessionTrackingMode.valueOf(trackMode));
}
- _context.getSessionHandler().getSessionManager().setSessionTrackingModes(modes);
+ context.getSessionHandler().getSessionManager().setSessionTrackingModes(modes);
//Servlet Spec 3.0
@@ -704,14 +641,14 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
String name = cookieConfig.getString("name", false, true);
if (name != null)
{
- Origin o = _metaData.getOrigin("cookie-config.name");
+ Origin o = context.getMetaData().getOrigin("cookie-config.name");
switch (o)
{
case NotSet:
{
//no <cookie-config><name> set yet, accept it
- _context.getSessionHandler().getSessionManager().getSessionCookieConfig().setName(name);
- _metaData.setOrigin("cookie-config.name", descriptor);
+ context.getSessionHandler().getSessionManager().getSessionCookieConfig().setName(name);
+ context.getMetaData().setOrigin("cookie-config.name", descriptor);
break;
}
case WebXml:
@@ -721,15 +658,15 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
//<cookie-config><name> set in a web xml, only allow web-default/web-override to change
if (!(descriptor instanceof FragmentDescriptor))
{
- _context.getSessionHandler().getSessionManager().getSessionCookieConfig().setName(name);
- _metaData.setOrigin("cookie-config.name", descriptor);
+ context.getSessionHandler().getSessionManager().getSessionCookieConfig().setName(name);
+ context.getMetaData().setOrigin("cookie-config.name", descriptor);
}
break;
}
case WebFragment:
{
//a web-fragment set the value, all web-fragments must have the same value
- if (!_context.getSessionHandler().getSessionManager().getSessionCookieConfig().getName().equals(name))
+ if (!context.getSessionHandler().getSessionManager().getSessionCookieConfig().getName().equals(name))
throw new IllegalStateException("Conflicting cookie-config name "+name+" in "+descriptor.getResource());
break;
}
@@ -740,14 +677,14 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
String domain = cookieConfig.getString("domain", false, true);
if (domain != null)
{
- Origin o = _metaData.getOrigin("cookie-config.domain");
+ Origin o = context.getMetaData().getOrigin("cookie-config.domain");
switch (o)
{
case NotSet:
{
//no <cookie-config><domain> set yet, accept it
- _context.getSessionHandler().getSessionManager().getSessionCookieConfig().setDomain(domain);
- _metaData.setOrigin("cookie-config.domain", descriptor);
+ context.getSessionHandler().getSessionManager().getSessionCookieConfig().setDomain(domain);
+ context.getMetaData().setOrigin("cookie-config.domain", descriptor);
break;
}
case WebXml:
@@ -757,15 +694,15 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
//<cookie-config><domain> set in a web xml, only allow web-default/web-override to change
if (!(descriptor instanceof FragmentDescriptor))
{
- _context.getSessionHandler().getSessionManager().getSessionCookieConfig().setDomain(domain);
- _metaData.setOrigin("cookie-config.domain", descriptor);
+ context.getSessionHandler().getSessionManager().getSessionCookieConfig().setDomain(domain);
+ context.getMetaData().setOrigin("cookie-config.domain", descriptor);
}
break;
}
case WebFragment:
{
//a web-fragment set the value, all web-fragments must have the same value
- if (!_context.getSessionHandler().getSessionManager().getSessionCookieConfig().getDomain().equals(domain))
+ if (!context.getSessionHandler().getSessionManager().getSessionCookieConfig().getDomain().equals(domain))
throw new IllegalStateException("Conflicting cookie-config domain "+domain+" in "+descriptor.getResource());
break;
}
@@ -776,14 +713,14 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
String path = cookieConfig.getString("path", false, true);
if (path != null)
{
- Origin o = _metaData.getOrigin("cookie-config.path");
+ Origin o = context.getMetaData().getOrigin("cookie-config.path");
switch (o)
{
case NotSet:
{
//no <cookie-config><domain> set yet, accept it
- _context.getSessionHandler().getSessionManager().getSessionCookieConfig().setPath(path);
- _metaData.setOrigin("cookie-config.path", descriptor);
+ context.getSessionHandler().getSessionManager().getSessionCookieConfig().setPath(path);
+ context.getMetaData().setOrigin("cookie-config.path", descriptor);
break;
}
case WebXml:
@@ -793,15 +730,15 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
//<cookie-config><domain> set in a web xml, only allow web-default/web-override to change
if (!(descriptor instanceof FragmentDescriptor))
{
- _context.getSessionHandler().getSessionManager().getSessionCookieConfig().setPath(path);
- _metaData.setOrigin("cookie-config.path", descriptor);
+ context.getSessionHandler().getSessionManager().getSessionCookieConfig().setPath(path);
+ context.getMetaData().setOrigin("cookie-config.path", descriptor);
}
break;
}
case WebFragment:
{
//a web-fragment set the value, all web-fragments must have the same value
- if (!_context.getSessionHandler().getSessionManager().getSessionCookieConfig().getPath().equals(path))
+ if (!context.getSessionHandler().getSessionManager().getSessionCookieConfig().getPath().equals(path))
throw new IllegalStateException("Conflicting cookie-config path "+path+" in "+descriptor.getResource());
break;
}
@@ -812,14 +749,14 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
String comment = cookieConfig.getString("comment", false, true);
if (comment != null)
{
- Origin o = _metaData.getOrigin("cookie-config.comment");
+ Origin o = context.getMetaData().getOrigin("cookie-config.comment");
switch (o)
{
case NotSet:
{
//no <cookie-config><comment> set yet, accept it
- _context.getSessionHandler().getSessionManager().getSessionCookieConfig().setComment(comment);
- _metaData.setOrigin("cookie-config.comment", descriptor);
+ context.getSessionHandler().getSessionManager().getSessionCookieConfig().setComment(comment);
+ context.getMetaData().setOrigin("cookie-config.comment", descriptor);
break;
}
case WebXml:
@@ -829,15 +766,15 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
//<cookie-config><comment> set in a web xml, only allow web-default/web-override to change
if (!(descriptor instanceof FragmentDescriptor))
{
- _context.getSessionHandler().getSessionManager().getSessionCookieConfig().setComment(comment);
- _metaData.setOrigin("cookie-config.comment", descriptor);
+ context.getSessionHandler().getSessionManager().getSessionCookieConfig().setComment(comment);
+ context.getMetaData().setOrigin("cookie-config.comment", descriptor);
}
break;
}
case WebFragment:
{
//a web-fragment set the value, all web-fragments must have the same value
- if (!_context.getSessionHandler().getSessionManager().getSessionCookieConfig().getComment().equals(comment))
+ if (!context.getSessionHandler().getSessionManager().getSessionCookieConfig().getComment().equals(comment))
throw new IllegalStateException("Conflicting cookie-config comment "+comment+" in "+descriptor.getResource());
break;
}
@@ -849,14 +786,14 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
if (tNode != null)
{
boolean httpOnly = Boolean.parseBoolean(tNode.toString(false,true));
- Origin o = _metaData.getOrigin("cookie-config.http-only");
+ Origin o = context.getMetaData().getOrigin("cookie-config.http-only");
switch (o)
{
case NotSet:
{
//no <cookie-config><http-only> set yet, accept it
- _context.getSessionHandler().getSessionManager().getSessionCookieConfig().setHttpOnly(httpOnly);
- _metaData.setOrigin("cookie-config.http-only", descriptor);
+ context.getSessionHandler().getSessionManager().getSessionCookieConfig().setHttpOnly(httpOnly);
+ context.getMetaData().setOrigin("cookie-config.http-only", descriptor);
break;
}
case WebXml:
@@ -866,15 +803,15 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
//<cookie-config><http-only> set in a web xml, only allow web-default/web-override to change
if (!(descriptor instanceof FragmentDescriptor))
{
- _context.getSessionHandler().getSessionManager().getSessionCookieConfig().setHttpOnly(httpOnly);
- _metaData.setOrigin("cookie-config.http-only", descriptor);
+ context.getSessionHandler().getSessionManager().getSessionCookieConfig().setHttpOnly(httpOnly);
+ context.getMetaData().setOrigin("cookie-config.http-only", descriptor);
}
break;
}
case WebFragment:
{
//a web-fragment set the value, all web-fragments must have the same value
- if (_context.getSessionHandler().getSessionManager().getSessionCookieConfig().isHttpOnly() != httpOnly)
+ if (context.getSessionHandler().getSessionManager().getSessionCookieConfig().isHttpOnly() != httpOnly)
throw new IllegalStateException("Conflicting cookie-config http-only "+httpOnly+" in "+descriptor.getResource());
break;
}
@@ -886,14 +823,14 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
if (tNode != null)
{
boolean secure = Boolean.parseBoolean(tNode.toString(false,true));
- Origin o = _metaData.getOrigin("cookie-config.secure");
+ Origin o = context.getMetaData().getOrigin("cookie-config.secure");
switch (o)
{
case NotSet:
{
//no <cookie-config><secure> set yet, accept it
- _context.getSessionHandler().getSessionManager().getSessionCookieConfig().setSecure(secure);
- _metaData.setOrigin("cookie-config.secure", descriptor);
+ context.getSessionHandler().getSessionManager().getSessionCookieConfig().setSecure(secure);
+ context.getMetaData().setOrigin("cookie-config.secure", descriptor);
break;
}
case WebXml:
@@ -903,15 +840,15 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
//<cookie-config><secure> set in a web xml, only allow web-default/web-override to change
if (!(descriptor instanceof FragmentDescriptor))
{
- _context.getSessionHandler().getSessionManager().getSessionCookieConfig().setSecure(secure);
- _metaData.setOrigin("cookie-config.secure", descriptor);
+ context.getSessionHandler().getSessionManager().getSessionCookieConfig().setSecure(secure);
+ context.getMetaData().setOrigin("cookie-config.secure", descriptor);
}
break;
}
case WebFragment:
{
//a web-fragment set the value, all web-fragments must have the same value
- if (_context.getSessionHandler().getSessionManager().getSessionCookieConfig().isSecure() != secure)
+ if (context.getSessionHandler().getSessionManager().getSessionCookieConfig().isSecure() != secure)
throw new IllegalStateException("Conflicting cookie-config secure "+secure+" in "+descriptor.getResource());
break;
}
@@ -923,14 +860,14 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
if (tNode != null)
{
int maxAge = Integer.parseInt(tNode.toString(false,true));
- Origin o = _metaData.getOrigin("cookie-config.max-age");
+ Origin o = context.getMetaData().getOrigin("cookie-config.max-age");
switch (o)
{
case NotSet:
{
//no <cookie-config><max-age> set yet, accept it
- _context.getSessionHandler().getSessionManager().getSessionCookieConfig().setMaxAge(maxAge);
- _metaData.setOrigin("cookie-config.max-age", descriptor);
+ context.getSessionHandler().getSessionManager().getSessionCookieConfig().setMaxAge(maxAge);
+ context.getMetaData().setOrigin("cookie-config.max-age", descriptor);
break;
}
case WebXml:
@@ -940,15 +877,15 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
//<cookie-config><max-age> set in a web xml, only allow web-default/web-override to change
if (!(descriptor instanceof FragmentDescriptor))
{
- _context.getSessionHandler().getSessionManager().getSessionCookieConfig().setMaxAge(maxAge);
- _metaData.setOrigin("cookie-config.max-age", descriptor);
+ context.getSessionHandler().getSessionManager().getSessionCookieConfig().setMaxAge(maxAge);
+ context.getMetaData().setOrigin("cookie-config.max-age", descriptor);
}
break;
}
case WebFragment:
{
//a web-fragment set the value, all web-fragments must have the same value
- if (_context.getSessionHandler().getSessionManager().getSessionCookieConfig().getMaxAge() != maxAge)
+ if (context.getSessionHandler().getSessionManager().getSessionCookieConfig().getMaxAge() != maxAge)
throw new IllegalStateException("Conflicting cookie-config max-age "+maxAge+" in "+descriptor.getResource());
break;
}
@@ -957,7 +894,7 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
}
}
- protected void visitMimeMapping(Descriptor descriptor, XmlParser.Node node)
+ protected void visitMimeMapping(WebAppContext context, Descriptor descriptor, XmlParser.Node node)
{
String extension = node.getString("extension", false, true);
if (extension != null && extension.startsWith("."))
@@ -965,14 +902,14 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
String mimeType = node.getString("mime-type", false, true);
if (extension != null)
{
- Origin o = _metaData.getOrigin("extension."+extension);
+ Origin o = context.getMetaData().getOrigin("extension."+extension);
switch (o)
{
case NotSet:
{
//no mime-type set for the extension yet
- _context.getMimeTypes().addMimeMapping(extension, mimeType);
- _metaData.setOrigin("extension."+extension, descriptor);
+ context.getMimeTypes().addMimeMapping(extension, mimeType);
+ context.getMetaData().setOrigin("extension."+extension, descriptor);
break;
}
case WebXml:
@@ -982,15 +919,15 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
//a mime-type was set for the extension in a web xml, only allow web-default/web-override to change
if (!(descriptor instanceof FragmentDescriptor))
{
- _context.getMimeTypes().addMimeMapping(extension, mimeType);
- _metaData.setOrigin("extension."+extension, descriptor);
+ context.getMimeTypes().addMimeMapping(extension, mimeType);
+ context.getMetaData().setOrigin("extension."+extension, descriptor);
}
break;
}
case WebFragment:
{
//a web-fragment set the value, all web-fragments must have the same value
- if (!_context.getMimeTypes().getMimeByExtension("."+extension).equals(_context.getMimeTypes().CACHE.lookup(mimeType)))
+ if (!context.getMimeTypes().getMimeByExtension("."+extension).equals(context.getMimeTypes().CACHE.lookup(mimeType)))
throw new IllegalStateException("Conflicting mime-type "+mimeType+" for extension "+extension+" in "+descriptor.getResource());
break;
}
@@ -998,21 +935,21 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
}
}
- protected void visitWelcomeFileList(Descriptor descriptor, XmlParser.Node node)
+ protected void visitWelcomeFileList(WebAppContext context, Descriptor descriptor, XmlParser.Node node)
{
- Origin o = _metaData.getOrigin("welcome-file-list");
+ Origin o = context.getMetaData().getOrigin("welcome-file-list");
switch (o)
{
case NotSet:
{
- _metaData.setOrigin("welcome-file-list", descriptor);
- addWelcomeFiles(node);
+ context.getMetaData().setOrigin("welcome-file-list", descriptor);
+ addWelcomeFiles(context,node);
break;
}
case WebXml:
{
//web.xml set the welcome-file-list, all other descriptors then just merge in
- addWelcomeFiles(node);
+ addWelcomeFiles(context,node);
break;
}
case WebDefaults:
@@ -1021,45 +958,45 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
//we're processing web.xml then reset the welcome-file-list
if (!(descriptor instanceof DefaultsDescriptor) && !(descriptor instanceof OverrideDescriptor) && !(descriptor instanceof FragmentDescriptor))
{
- _welcomeFiles = null;
+ context.setWelcomeFiles(new String[0]);
}
- addWelcomeFiles(node);
+ addWelcomeFiles(context,node);
break;
}
case WebOverride:
{
//web-override set the list, all other descriptors just merge in
- addWelcomeFiles(node);
+ addWelcomeFiles(context,node);
break;
}
case WebFragment:
{
//A web-fragment first set the welcome-file-list. Other descriptors just add.
- addWelcomeFiles(node);
+ addWelcomeFiles(context,node);
break;
}
}
}
- protected void visitLocaleEncodingList(Descriptor descriptor, XmlParser.Node node)
+ protected void visitLocaleEncodingList(WebAppContext context, Descriptor descriptor, XmlParser.Node node)
{
- Iterator iter = node.iterator("locale-encoding-mapping");
+ Iterator<XmlParser.Node> iter = node.iterator("locale-encoding-mapping");
while (iter.hasNext())
{
- XmlParser.Node mapping = (XmlParser.Node) iter.next();
+ XmlParser.Node mapping = iter.next();
String locale = mapping.getString("locale", false, true);
String encoding = mapping.getString("encoding", false, true);
if (encoding != null)
{
- Origin o = _metaData.getOrigin("locale-encoding."+locale);
+ Origin o = context.getMetaData().getOrigin("locale-encoding."+locale);
switch (o)
{
case NotSet:
{
//no mapping for the locale yet, so set it
- _context.addLocaleEncoding(locale, encoding);
- _metaData.setOrigin("locale-encoding."+locale, descriptor);
+ context.addLocaleEncoding(locale, encoding);
+ context.getMetaData().setOrigin("locale-encoding."+locale, descriptor);
break;
}
case WebXml:
@@ -1069,15 +1006,15 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
//a value was set in a web descriptor, only allow another web descriptor to change it (web-default/web-override)
if (!(descriptor instanceof FragmentDescriptor))
{
- _context.addLocaleEncoding(locale, encoding);
- _metaData.setOrigin("locale-encoding."+locale, descriptor);
+ context.addLocaleEncoding(locale, encoding);
+ context.getMetaData().setOrigin("locale-encoding."+locale, descriptor);
}
break;
}
case WebFragment:
{
//a value was set by a web-fragment, all fragments must have the same value
- if (!encoding.equals(_context.getLocaleEncoding(locale)))
+ if (!encoding.equals(context.getLocaleEncoding(locale)))
throw new IllegalStateException("Conflicting loacle-encoding mapping for locale "+locale+" in "+descriptor.getResource());
break;
}
@@ -1086,23 +1023,31 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
}
}
- protected void visitErrorPage(Descriptor descriptor, XmlParser.Node node)
+ protected void visitErrorPage(WebAppContext context, Descriptor descriptor, XmlParser.Node node)
{
String error = node.getString("error-code", false, true);
- if (error == null || error.length() == 0) error = node.getString("exception-type", false, true);
+ int code=0;
+ if (error == null || error.length() == 0)
+ error = node.getString("exception-type", false, true);
+ else
+ code=Integer.valueOf(error);
String location = node.getString("location", false, true);
- if (_errorPages == null)
- _errorPages = new HashMap();
- Origin o = _metaData.getOrigin("error."+error);
+ ErrorPageErrorHandler handler = (ErrorPageErrorHandler)context.getErrorHandler();
+
+
+ Origin o = context.getMetaData().getOrigin("error."+error);
switch (o)
{
case NotSet:
{
//no error page setup for this code or exception yet
- _errorPages.put(error, location);
- _metaData.setOrigin("error."+error, descriptor);
+ if (code>0)
+ handler.addErrorPage(code,location);
+ else
+ handler.addErrorPage(error,location);
+ context.getMetaData().setOrigin("error."+error, descriptor);
break;
}
case WebXml:
@@ -1112,15 +1057,18 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
//an error page setup was set in web.xml, only allow other web xml descriptors to override it
if (!(descriptor instanceof FragmentDescriptor))
{
- _errorPages.put(error, location);
- _metaData.setOrigin("error."+error, descriptor);
+ if (code>0)
+ handler.addErrorPage(code,location);
+ else
+ handler.addErrorPage(error,location);
+ context.getMetaData().setOrigin("error."+error, descriptor);
}
break;
}
case WebFragment:
{
//another web fragment set the same error code or exception, if its different its an error
- if (!_errorPages.get(error).equals(location))
+ if (!handler.getErrorPages().get(error).equals(location))
throw new IllegalStateException("Conflicting error-code or exception-type "+error+" in "+descriptor.getResource());
break;
}
@@ -1128,67 +1076,74 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
}
- protected void addWelcomeFiles (XmlParser.Node node)
+ protected void addWelcomeFiles(WebAppContext context, XmlParser.Node node)
{
- Iterator iter = node.iterator("welcome-file");
+ Iterator<XmlParser.Node> iter = node.iterator("welcome-file");
while (iter.hasNext())
{
XmlParser.Node indexNode = (XmlParser.Node) iter.next();
String welcome = indexNode.toString(false, true);
//Servlet Spec 3.0 p. 74 welcome files are additive
- _welcomeFiles = LazyList.add(_welcomeFiles, welcome);
+ context.setWelcomeFiles((String[])LazyList.addToArray(context.getWelcomeFiles(),welcome,String.class));
}
}
- protected void visitTagLib(Descriptor descriptor, XmlParser.Node node)
+ protected void visitTagLib(WebAppContext context, Descriptor descriptor, XmlParser.Node node)
{
//Additive across web.xml and web-fragment.xml
String uri = node.getString("taglib-uri", false, true);
String location = node.getString("taglib-location", false, true);
- _context.setResourceAlias(uri, location);
+ context.setResourceAlias(uri, location);
}
- protected void visitJspConfig(Descriptor descriptor, XmlParser.Node node)
+ protected void visitJspConfig(WebAppContext context, Descriptor descriptor, XmlParser.Node node)
{
for (int i = 0; i < node.size(); i++)
{
Object o = node.get(i);
if (o instanceof XmlParser.Node && "taglib".equals(((XmlParser.Node) o).getTag()))
- visitTagLib(descriptor, (XmlParser.Node) o);
+ visitTagLib(context,descriptor, (XmlParser.Node) o);
}
// Map URLs from jsp property groups to JSP servlet.
// this is more JSP stupidness creaping into the servlet spec
- Iterator iter = node.iterator("jsp-property-group");
- Object paths = null;
+ Iterator<XmlParser.Node> iter = node.iterator("jsp-property-group");
+ List<String> paths = new ArrayList<String>();
while (iter.hasNext())
{
- XmlParser.Node group = (XmlParser.Node) iter.next();
- Iterator iter2 = group.iterator("url-pattern");
+ XmlParser.Node group = iter.next();
+ Iterator<XmlParser.Node> iter2 = group.iterator("url-pattern");
while (iter2.hasNext())
{
- String url = ((XmlParser.Node) iter2.next()).toString(false, true);
+ String url = iter2.next().toString(false, true);
url = normalizePattern(url);
- paths = LazyList.add(paths, url);
+ paths.add( url);
}
}
- if (LazyList.size(paths) > 0)
+ if (paths.size() > 0)
{
- String jspName = getJSPServletName();
+ String jspName = "jsp";
+ Map.Entry entry = context.getServletHandler().getHolderEntry("test.jsp");
+ if (entry != null)
+ {
+ ServletHolder holder = (ServletHolder) entry.getValue();
+ jspName = holder.getName();
+ }
+
if (jspName != null)
{
ServletMapping mapping = new ServletMapping();
mapping.setServletName(jspName);
- mapping.setPathSpecs(LazyList.toStringArray(paths));
- _servletMappings = LazyList.add(_servletMappings, mapping);
+ mapping.setPathSpecs(paths.toArray(new String[paths.size()]));
+ context.getServletHandler().addServletMapping(mapping);
}
}
}
- protected void visitSecurityConstraint(Descriptor descriptor, XmlParser.Node node)
+ protected void visitSecurityConstraint(WebAppContext context, Descriptor descriptor, XmlParser.Node node)
{
Constraint scBase = new Constraint();
@@ -1202,14 +1157,14 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
{
scBase.setAuthenticate(true);
// auth-constraint
- Iterator iter = auths.iterator("role-name");
- Object roles = null;
+ Iterator<XmlParser.Node> iter = auths.iterator("role-name");
+ List<String> roles = new ArrayList<String>();
while (iter.hasNext())
{
- String role = ((XmlParser.Node) iter.next()).toString(false, true);
- roles = LazyList.add(roles, role);
+ String role = iter.next().toString(false, true);
+ roles.add(role);
}
- scBase.setRoles(LazyList.toStringArray(roles));
+ scBase.setRoles(roles.toArray(new String[roles.size()]));
}
XmlParser.Node data = node.get("user-data-constraint");
@@ -1229,21 +1184,21 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
scBase.setDataConstraint(Constraint.DC_CONFIDENTIAL);
}
}
- Iterator iter = node.iterator("web-resource-collection");
+ Iterator<XmlParser.Node> iter = node.iterator("web-resource-collection");
while (iter.hasNext())
{
- XmlParser.Node collection = (XmlParser.Node) iter.next();
+ XmlParser.Node collection = iter.next();
String name = collection.getString("web-resource-name", false, true);
Constraint sc = (Constraint) scBase.clone();
sc.setName(name);
- Iterator iter2 = collection.iterator("url-pattern");
+ Iterator<XmlParser.Node> iter2 = collection.iterator("url-pattern");
while (iter2.hasNext())
{
- String url = ((XmlParser.Node) iter2.next()).toString(false, true);
+ String url = iter2.next().toString(false, true);
url = normalizePattern(url);
- Iterator iter3 = collection.iterator("http-method");
+ Iterator<XmlParser.Node> iter3 = collection.iterator("http-method");
if (iter3.hasNext())
{
while (iter3.hasNext())
@@ -1253,7 +1208,8 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
mapping.setMethod(method);
mapping.setPathSpec(url);
mapping.setConstraint(sc);
- _constraintMappings.add(mapping);
+
+ ((ConstraintAware)context.getSecurityHandler()).addConstraintMapping(mapping);
}
}
else
@@ -1261,7 +1217,7 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
ConstraintMapping mapping = new ConstraintMapping();
mapping.setPathSpec(url);
mapping.setConstraint(sc);
- _constraintMappings.add(mapping);
+ ((ConstraintAware)context.getSecurityHandler()).addConstraintMapping(mapping);
}
}
}
@@ -1272,7 +1228,7 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
}
}
- protected void visitLoginConfig(Descriptor descriptor, XmlParser.Node node) throws Exception
+ protected void visitLoginConfig(WebAppContext context, Descriptor descriptor, XmlParser.Node node) throws Exception
{
//ServletSpec 3.0 p74 says elements present 0/1 time if specified in web.xml take
//precendece over any web-fragment. If not specified in web.xml, then if specified
@@ -1281,14 +1237,14 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
if (method != null)
{
//handle auth-method merge
- Origin o = _metaData.getOrigin("auth-method");
+ Origin o = context.getMetaData().getOrigin("auth-method");
switch (o)
{
case NotSet:
{
//not already set, so set it now
- _securityHandler.setAuthMethod(method.toString(false, true));
- _metaData.setOrigin("auth-method", descriptor);
+ context.getSecurityHandler().setAuthMethod(method.toString(false, true));
+ context.getMetaData().setOrigin("auth-method", descriptor);
break;
}
case WebXml:
@@ -1298,15 +1254,15 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
//if it was already set by a web xml descriptor and we're parsing another web xml descriptor, then override it
if (!(descriptor instanceof FragmentDescriptor))
{
- _securityHandler.setAuthMethod(method.toString(false, true));
- _metaData.setOrigin("auth-method", descriptor);
+ context.getSecurityHandler().setAuthMethod(method.toString(false, true));
+ context.getMetaData().setOrigin("auth-method", descriptor);
}
break;
}
case WebFragment:
{
//it was already set by another fragment, if we're parsing a fragment, the values must match
- if (!_securityHandler.getAuthMethod().equals(method.toString(false, true)))
+ if (!context.getSecurityHandler().getAuthMethod().equals(method.toString(false, true)))
throw new IllegalStateException("Conflicting auth-method value in "+descriptor.getResource());
break;
}
@@ -1315,14 +1271,14 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
//handle realm-name merge
XmlParser.Node name = node.get("realm-name");
String nameStr = (name == null ? "default" : name.toString(false, true));
- o = _metaData.getOrigin("realm-name");
+ o = context.getMetaData().getOrigin("realm-name");
switch (o)
{
case NotSet:
{
//no descriptor has set the realm-name yet, so set it
- _securityHandler.setRealmName(nameStr);
- _metaData.setOrigin("realm-name", descriptor);
+ context.getSecurityHandler().setRealmName(nameStr);
+ context.getMetaData().setOrigin("realm-name", descriptor);
break;
}
case WebXml:
@@ -1332,21 +1288,21 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
//set by a web xml file (web.xml/web-default.xm/web-override.xml), only allow it to be changed by another web xml file
if (!(descriptor instanceof FragmentDescriptor))
{
- _securityHandler.setRealmName(nameStr);
- _metaData.setOrigin("realm-name", descriptor);
+ context.getSecurityHandler().setRealmName(nameStr);
+ context.getMetaData().setOrigin("realm-name", descriptor);
}
break;
}
case WebFragment:
{
//a fragment set it, and we must be parsing another fragment, so the values must match
- if (!_securityHandler.getRealmName().equals(nameStr))
+ if (!context.getSecurityHandler().getRealmName().equals(nameStr))
throw new IllegalStateException("Conflicting realm-name value in "+descriptor.getResource());
break;
}
}
- if (Constraint.__FORM_AUTH.equals(_securityHandler.getAuthMethod()))
+ if (Constraint.__FORM_AUTH.equals(context.getSecurityHandler().getAuthMethod()))
{
XmlParser.Node formConfig = node.get("form-login-config");
if (formConfig != null)
@@ -1361,14 +1317,14 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
errorPageName = errorPage.toString(false, true);
//handle form-login-page
- o = _metaData.getOrigin("form-login-page");
+ o = context.getMetaData().getOrigin("form-login-page");
switch (o)
{
case NotSet:
{
//Never been set before, so accept it
- _securityHandler.setInitParameter(FormAuthenticator.__FORM_LOGIN_PAGE,loginPageName);
- _metaData.setOrigin("form-login-page",descriptor);
+ context.getSecurityHandler().setInitParameter(FormAuthenticator.__FORM_LOGIN_PAGE,loginPageName);
+ context.getMetaData().setOrigin("form-login-page",descriptor);
break;
}
case WebXml:
@@ -1378,29 +1334,29 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
//a web xml descriptor previously set it, only allow another one to change it (web.xml/web-default.xml/web-override.xml)
if (!(descriptor instanceof FragmentDescriptor))
{
- _securityHandler.setInitParameter(FormAuthenticator.__FORM_LOGIN_PAGE,loginPageName);
- _metaData.setOrigin("form-login-page",descriptor);
+ context.getSecurityHandler().setInitParameter(FormAuthenticator.__FORM_LOGIN_PAGE,loginPageName);
+ context.getMetaData().setOrigin("form-login-page",descriptor);
}
break;
}
case WebFragment:
{
//a web-fragment previously set it. We must be parsing yet another web-fragment, so the values must agree
- if (!_securityHandler.getInitParameter(FormAuthenticator.__FORM_LOGIN_PAGE).equals(loginPageName))
+ if (!context.getSecurityHandler().getInitParameter(FormAuthenticator.__FORM_LOGIN_PAGE).equals(loginPageName))
throw new IllegalStateException("Conflicting form-login-page value in "+descriptor.getResource());
break;
}
}
//handle form-error-page
- o = _metaData.getOrigin("form-error-page");
+ o = context.getMetaData().getOrigin("form-error-page");
switch (o)
{
case NotSet:
{
//Never been set before, so accept it
- _securityHandler.setInitParameter(FormAuthenticator.__FORM_ERROR_PAGE,errorPageName);
- _metaData.setOrigin("form-error-page",descriptor);
+ context.getSecurityHandler().setInitParameter(FormAuthenticator.__FORM_ERROR_PAGE,errorPageName);
+ context.getMetaData().setOrigin("form-error-page",descriptor);
break;
}
case WebXml:
@@ -1410,15 +1366,15 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
//a web xml descriptor previously set it, only allow another one to change it (web.xml/web-default.xml/web-override.xml)
if (!(descriptor instanceof FragmentDescriptor))
{
- _securityHandler.setInitParameter(FormAuthenticator.__FORM_ERROR_PAGE,errorPageName);
- _metaData.setOrigin("form-error-page",descriptor);
+ context.getSecurityHandler().setInitParameter(FormAuthenticator.__FORM_ERROR_PAGE,errorPageName);
+ context.getMetaData().setOrigin("form-error-page",descriptor);
}
break;
}
case WebFragment:
{
//a web-fragment previously set it. We must be parsing yet another web-fragment, so the values must agree
- if (!_securityHandler.getInitParameter(FormAuthenticator.__FORM_ERROR_PAGE).equals(errorPageName))
+ if (!context.getSecurityHandler().getInitParameter(FormAuthenticator.__FORM_ERROR_PAGE).equals(errorPageName))
throw new IllegalStateException("Conflicting form-error-page value in "+descriptor.getResource());
break;
}
@@ -1432,24 +1388,24 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
}
}
- protected void visitSecurityRole(Descriptor descriptor, XmlParser.Node node)
+ protected void visitSecurityRole(WebAppContext context, Descriptor descriptor, XmlParser.Node node)
{
//ServletSpec 3.0, p74 elements with multiplicity >1 are additive when merged
XmlParser.Node roleNode = node.get("role-name");
String role = roleNode.toString(false, true);
- _roles.add(role);
+ ((ConstraintAware)context.getSecurityHandler()).addRole(role);
}
- protected void visitFilter(Descriptor descriptor, XmlParser.Node node)
+ protected void visitFilter(WebAppContext context, Descriptor descriptor, XmlParser.Node node)
{
String name = node.getString("filter-name", false, true);
- FilterHolder holder = _servletHandler.getFilter(name);
+ FilterHolder holder = context.getServletHandler().getFilter(name);
if (holder == null)
{
- holder = _servletHandler.newFilterHolder(Holder.Source.DESCRIPTOR);
+ holder = context.getServletHandler().newFilterHolder(Holder.Source.DESCRIPTOR);
holder.setName(name);
- _filters = LazyList.add(_filters, holder);
+ context.getServletHandler().addFilter(holder);
}
String filter_class = node.getString("filter-class", false, true);
@@ -1457,14 +1413,14 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
{
descriptor.addClassName(filter_class);
- Origin o = _metaData.getOrigin(name+".filter.filter-class");
+ Origin o = context.getMetaData().getOrigin(name+".filter.filter-class");
switch (o)
{
case NotSet:
{
//no class set yet
holder.setClassName(filter_class);
- _metaData.setOrigin(name+".filter.filter-class", descriptor);
+ context.getMetaData().setOrigin(name+".filter.filter-class", descriptor);
break;
}
case WebXml:
@@ -1475,7 +1431,7 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
if (!(descriptor instanceof FragmentDescriptor))
{
holder.setClassName(filter_class);
- _metaData.setOrigin(name+".filter.filter-class", descriptor);
+ context.getMetaData().setOrigin(name+".filter.filter-class", descriptor);
}
break;
}
@@ -1490,21 +1446,21 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
}
- Iterator iter = node.iterator("init-param");
+ Iterator<XmlParser.Node> iter = node.iterator("init-param");
while (iter.hasNext())
{
- XmlParser.Node paramNode = (XmlParser.Node) iter.next();
+ XmlParser.Node paramNode = iter.next();
String pname = paramNode.getString("param-name", false, true);
String pvalue = paramNode.getString("param-value", false, true);
- Origin origin = _metaData.getOrigin(name+".filter.init-param."+pname);
+ Origin origin = context.getMetaData().getOrigin(name+".filter.init-param."+pname);
switch (origin)
{
case NotSet:
{
//init-param not already set, so set it
holder.setInitParameter(pname, pvalue);
- _metaData.setOrigin(name+".filter.init-param."+pname, descriptor);
+ context.getMetaData().setOrigin(name+".filter.init-param."+pname, descriptor);
break;
}
case WebXml:
@@ -1516,7 +1472,7 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
if (!(descriptor instanceof FragmentDescriptor))
{
holder.setInitParameter(pname, pvalue);
- _metaData.setOrigin(name+".filter.init-param."+pname, descriptor);
+ context.getMetaData().setOrigin(name+".filter.init-param."+pname, descriptor);
}
break;
}
@@ -1536,14 +1492,14 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
if (async!=null)
{
boolean val = async.length()==0||Boolean.valueOf(async);
- Origin o = _metaData.getOrigin(name+".filter.async-supported");
+ Origin o = context.getMetaData().getOrigin(name+".filter.async-supported");
switch (o)
{
case NotSet:
{
//set it
holder.setAsyncSupported(val);
- _metaData.setOrigin(name+".filter.async-supported", descriptor);
+ context.getMetaData().setOrigin(name+".filter.async-supported", descriptor);
break;
}
case WebXml:
@@ -1554,7 +1510,7 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
if (!(descriptor instanceof FragmentDescriptor))
{
holder.setAsyncSupported(val);
- _metaData.setOrigin(name+".filter.async-supported", descriptor);
+ context.getMetaData().setOrigin(name+".filter.async-supported", descriptor);
}
break;
}
@@ -1570,7 +1526,7 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
}
- protected void visitFilterMapping(Descriptor descriptor, XmlParser.Node node)
+ protected void visitFilterMapping(WebAppContext context, Descriptor descriptor, XmlParser.Node node)
{
//Servlet Spec 3.0, p74
//filter-mappings are always additive, whether from web xml descriptors (web.xml/web-default.xml/web-override.xml) or web-fragments.
@@ -1581,17 +1537,17 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
mapping.setFilterName(filter_name);
- ArrayList paths = new ArrayList();
- Iterator iter = node.iterator("url-pattern");
+ List<String> paths = new ArrayList<String>();
+ Iterator<XmlParser.Node> iter = node.iterator("url-pattern");
while (iter.hasNext())
{
- String p = ((XmlParser.Node) iter.next()).toString(false, true);
+ String p = iter.next().toString(false, true);
p = normalizePattern(p);
paths.add(p);
}
mapping.setPathSpecs((String[]) paths.toArray(new String[paths.size()]));
- ArrayList names = new ArrayList();
+ List<String> names = new ArrayList<String>();
iter = node.iterator("servlet-name");
while (iter.hasNext())
{
@@ -1612,35 +1568,43 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
if (dispatches.size()>0)
mapping.setDispatcherTypes(EnumSet.copyOf(dispatches));
- _filterMappings = LazyList.add(_filterMappings, mapping);
+ context.getServletHandler().addFilterMapping(mapping);
}
- protected void visitListener(Descriptor descriptor, XmlParser.Node node)
+ protected void visitListener(WebAppContext context, Descriptor descriptor, XmlParser.Node node)
{
String className = node.getString("listener-class", false, true);
- Object listener = null;
+ EventListener listener = null;
try
{
if (className != null && className.length()> 0)
{
- descriptor.addClassName(className);
-
//Servlet Spec 3.0 p 74
//Duplicate listener declarations don't result in duplicate listener instances
- if (!LazyList.contains(_listenerClassNames, className))
+ EventListener[] listeners=context.getEventListeners();
+ if (listeners!=null)
{
- LazyList.add(_listenerClassNames, className);
- Class listenerClass = _context.loadClass(className);
- listener = newListenerInstance(listenerClass);
- if (!(listener instanceof EventListener))
+ for (EventListener l : listeners)
{
- Log.warn("Not an EventListener: " + listener);
- return;
+ if (l.getClass().getName().equals(className))
+ return;
}
- _metaData.setOrigin(className+".listener", descriptor);
- _listeners = LazyList.add(_listeners, listener);
}
+
+ descriptor.addClassName(className);
+
+ context.addEventListener(listener);
+ Class<? extends EventListener> listenerClass = (Class<? extends EventListener>)context.loadClass(className);
+ listener = newListenerInstance(context,listenerClass);
+ if (!(listener instanceof EventListener))
+ {
+ Log.warn("Not an EventListener: " + listener);
+ return;
+ }
+ context.addEventListener(listener);
+ context.getMetaData().setOrigin(className+".listener", descriptor);
+
}
}
catch (Exception e)
@@ -1650,7 +1614,7 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
}
}
- protected void visitDistributable(Descriptor descriptor, XmlParser.Node node)
+ protected void visitDistributable(WebAppContext context, Descriptor descriptor, XmlParser.Node node)
{
// the element has no content, so its simple presence
// indicates that the webapp is distributable...
@@ -1658,11 +1622,11 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
descriptor.setDistributable(true);
}
- protected Object newListenerInstance(Class<?extends EventListener> clazz) throws ServletException, InstantiationException, IllegalAccessException
+ protected EventListener newListenerInstance(WebAppContext context,Class<? extends EventListener> clazz) throws ServletException, InstantiationException, IllegalAccessException
{
try
{
- return _context.getServletContext().createListener(clazz);
+ return context.getServletContext().createListener(clazz);
}
catch (ServletException se)
{
@@ -1675,20 +1639,6 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
}
}
- protected String getJSPServletName()
- {
- if (_jspServletName == null)
- {
- Map.Entry entry = _context.getServletHandler().getHolderEntry("test.jsp");
- if (entry != null)
- {
- ServletHolder holder = (ServletHolder) entry.getValue();
- _jspServletName = holder.getName();
- }
- }
- return _jspServletName;
- }
-
protected String normalizePattern(String p)
{
if (p != null && p.length() > 0 && !p.startsWith("/") && !p.startsWith("*")) return "/" + p;
@@ -1702,9 +1652,9 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
* This is primarily used for jasper.
* @return
*/
- protected String getSystemClassPath ()
+ protected String getSystemClassPath(WebAppContext context)
{
- ClassLoader loader = _context.getClassLoader();
+ ClassLoader loader = context.getClassLoader();
if (loader.getParent() != null)
loader = loader.getParent();
@@ -1718,7 +1668,7 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
{
try
{
- Resource resource = _context.newResource(urls[i]);
+ Resource resource = context.newResource(urls[i]);
File file=resource.getFile();
if (file!=null && file.exists())
{
diff --git a/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/WebAppContext.java b/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/WebAppContext.java
index 268c074d80..b9e61e7681 100644
--- a/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/WebAppContext.java
+++ b/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/WebAppContext.java
@@ -134,6 +134,8 @@ public class WebAppContext extends ServletContextHandler implements WebAppClassL
private boolean _configurationDiscovered=true;
private boolean _configurationClassesSet=false;
private boolean _configurationsSet=false;
+
+ private final MetaData _metadata;
public static WebAppContext getCurrentWebAppContext()
{
@@ -152,7 +154,9 @@ public class WebAppContext extends ServletContextHandler implements WebAppClassL
{
super(SESSIONS|SECURITY);
_scontext=new Context();
- setErrorHandler(new ErrorPageErrorHandler());
+ setErrorHandler(new ErrorPageErrorHandler());
+ //Make a new MetaData to hold descriptor and annotation metadata
+ _metadata = new MetaData(this);
}
/* ------------------------------------------------------------ */
@@ -166,7 +170,9 @@ public class WebAppContext extends ServletContextHandler implements WebAppClassL
_scontext=new Context();
setContextPath(contextPath);
setWar(webApp);
- setErrorHandler(new ErrorPageErrorHandler());
+ setErrorHandler(new ErrorPageErrorHandler());
+ //Make a new MetaData to hold descriptor and annotation metadata
+ _metadata = new MetaData(this);
}
/* ------------------------------------------------------------ */
@@ -180,7 +186,9 @@ public class WebAppContext extends ServletContextHandler implements WebAppClassL
super(parent,contextPath,SESSIONS|SECURITY);
_scontext=new Context();
setWar(webApp);
- setErrorHandler(new ErrorPageErrorHandler());
+ setErrorHandler(new ErrorPageErrorHandler());
+ //Make a new MetaData to hold descriptor and annotation metadata
+ _metadata = new MetaData(this);
}
/* ------------------------------------------------------------ */
@@ -190,7 +198,9 @@ public class WebAppContext extends ServletContextHandler implements WebAppClassL
{
super(null,sessionHandler,securityHandler,servletHandler,errorHandler);
_scontext=new Context();
- setErrorHandler(errorHandler!=null?errorHandler:new ErrorPageErrorHandler());
+ setErrorHandler(errorHandler!=null?errorHandler:new ErrorPageErrorHandler());
+ //Make a new MetaData to hold descriptor and annotation metadata
+ _metadata = new MetaData(this);
}
/* ------------------------------------------------------------ */
@@ -370,11 +380,7 @@ public class WebAppContext extends ServletContextHandler implements WebAppClassL
}
-
- // Prepare for configuration
- //Make a new MetaData to hold descriptor and annotation metadata
- MetaData metadata = new MetaData(this);
- setAttribute(MetaData.METADATA, metadata);
+ // Prepare for configuration
for (int i=0;i<_configurations.length;i++)
_configurations[i].preConfigure(this);
@@ -802,7 +808,7 @@ public class WebAppContext extends ServletContextHandler implements WebAppClassL
*/
@Override
public void addEventListener(EventListener listener)
- {
+ {
setEventListeners((EventListener[])LazyList.addToArray(getEventListeners(), listener, EventListener.class));
}
@@ -996,7 +1002,7 @@ public class WebAppContext extends ServletContextHandler implements WebAppClassL
_configurations[i].configure(this);
//resolve the metadata
- ((MetaData)getAttribute(MetaData.METADATA)).resolve();
+ _metadata.resolve(this);
super.startContext();
}
@@ -1026,4 +1032,10 @@ public class WebAppContext extends ServletContextHandler implements WebAppClassL
}
}
+ /* ------------------------------------------------------------ */
+ public MetaData getMetaData()
+ {
+ return _metadata;
+ }
+
}
diff --git a/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/WebXmlConfiguration.java b/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/WebXmlConfiguration.java
index abb952d479..03f3d71ab2 100644
--- a/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/WebXmlConfiguration.java
+++ b/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/WebXmlConfiguration.java
@@ -40,12 +40,6 @@ public class WebXmlConfiguration implements Configuration
*/
public void preConfigure (WebAppContext context) throws Exception
{
-
- MetaData metaData = (MetaData)context.getAttribute(MetaData.METADATA);
- if (metaData == null)
- throw new IllegalStateException("No metadata");
-
-
//parse webdefault.xml
String defaultsDescriptor = context.getDefaultsDescriptor();
if (defaultsDescriptor != null && defaultsDescriptor.length() > 0)
@@ -53,7 +47,7 @@ public class WebXmlConfiguration implements Configuration
Resource dftResource = Resource.newSystemResource(defaultsDescriptor);
if (dftResource == null)
dftResource = context.newResource(defaultsDescriptor);
- metaData.setDefaults (dftResource);
+ context.getMetaData().setDefaults (dftResource);
}
@@ -61,7 +55,7 @@ public class WebXmlConfiguration implements Configuration
Resource webxml = findWebXml(context);
if (webxml != null)
{
- metaData.setWebXml(webxml);
+ context.getMetaData().setWebXml(webxml);
}
//parse but don't process override-web.xml
@@ -71,7 +65,7 @@ public class WebXmlConfiguration implements Configuration
Resource orideResource = Resource.newSystemResource(overrideDescriptor);
if (orideResource == null)
orideResource = context.newResource(overrideDescriptor);
- metaData.setOverride(orideResource);
+ context.getMetaData().setOverride(orideResource);
}
}
@@ -89,28 +83,24 @@ public class WebXmlConfiguration implements Configuration
return;
}
- MetaData metaData = (MetaData)context.getAttribute(MetaData.METADATA);
- if (metaData == null)
- throw new IllegalStateException("No metadata");
-
- metaData.addDescriptorProcessor(new StandardDescriptorProcessor());
+ context.getMetaData().addDescriptorProcessor(new StandardDescriptorProcessor());
/*
StandardDescriptorProcessor descriptorProcessor = (StandardDescriptorProcessor)context.getAttribute(StandardDescriptorProcessor.STANDARD_PROCESSOR);
if (descriptorProcessor == null)
{
- descriptorProcessor = new StandardDescriptorProcessor(metaData);
+ descriptorProcessor = new StandardDescriptorProcessor(context.getMetaData());
context.setAttribute(StandardDescriptorProcessor.STANDARD_PROCESSOR, descriptorProcessor);
}
//process web-default.xml
- descriptorProcessor.process(metaData.getWebDefault());
+ descriptorProcessor.process(context.getMetaData().getWebDefault());
//process web.xml
- descriptorProcessor.process(metaData.getWebXml());
+ descriptorProcessor.process(context.getMetaData().getWebXml());
//process override-web.xml
- descriptorProcessor.process(metaData.getOverrideWeb());
+ descriptorProcessor.process(context.getMetaData().getOverrideWeb());
*/
}
diff --git a/jetty-webapp/src/test/java/org/eclipse/jetty/webapp/OrderingTest.java b/jetty-webapp/src/test/java/org/eclipse/jetty/webapp/OrderingTest.java
index 7e20c21da2..a7e557aeab 100644
--- a/jetty-webapp/src/test/java/org/eclipse/jetty/webapp/OrderingTest.java
+++ b/jetty-webapp/src/test/java/org/eclipse/jetty/webapp/OrderingTest.java
@@ -26,7 +26,6 @@ import junit.framework.TestCase;
import org.eclipse.jetty.util.resource.Resource;
import org.eclipse.jetty.webapp.MetaData.AbsoluteOrdering;
-import org.eclipse.jetty.webapp.MetaData.RelativeOrdering;
/**
* OrderingTest
@@ -47,51 +46,52 @@ public class OrderingTest extends TestCase
/**
* @see org.eclipse.jetty.util.resource.Resource#addPath(java.lang.String)
*/
+ @Override
public Resource addPath(String path) throws IOException, MalformedURLException
{
- // TODO Auto-generated method stub
return null;
}
/**
* @see org.eclipse.jetty.util.resource.Resource#delete()
*/
+ @Override
public boolean delete() throws SecurityException
{
- // TODO Auto-generated method stub
return false;
}
/**
* @see org.eclipse.jetty.util.resource.Resource#exists()
*/
+ @Override
public boolean exists()
{
- // TODO Auto-generated method stub
return false;
}
/**
* @see org.eclipse.jetty.util.resource.Resource#getFile()
*/
+ @Override
public File getFile() throws IOException
{
- // TODO Auto-generated method stub
return null;
}
/**
* @see org.eclipse.jetty.util.resource.Resource#getInputStream()
*/
+ @Override
public InputStream getInputStream() throws IOException
{
- // TODO Auto-generated method stub
return null;
}
/**
* @see org.eclipse.jetty.util.resource.Resource#getName()
*/
+ @Override
public String getName()
{
return _name;
@@ -100,81 +100,80 @@ public class OrderingTest extends TestCase
/**
* @see org.eclipse.jetty.util.resource.Resource#getOutputStream()
*/
+ @Override
public OutputStream getOutputStream() throws IOException, SecurityException
{
- // TODO Auto-generated method stub
return null;
}
/**
* @see org.eclipse.jetty.util.resource.Resource#getURL()
*/
+ @Override
public URL getURL()
{
- // TODO Auto-generated method stub
return null;
}
/**
* @see org.eclipse.jetty.util.resource.Resource#isContainedIn(org.eclipse.jetty.util.resource.Resource)
*/
+ @Override
public boolean isContainedIn(Resource r) throws MalformedURLException
{
- // TODO Auto-generated method stub
return false;
}
/**
* @see org.eclipse.jetty.util.resource.Resource#isDirectory()
*/
+ @Override
public boolean isDirectory()
{
- // TODO Auto-generated method stub
return false;
}
/**
* @see org.eclipse.jetty.util.resource.Resource#lastModified()
*/
+ @Override
public long lastModified()
{
- // TODO Auto-generated method stub
return 0;
}
/**
* @see org.eclipse.jetty.util.resource.Resource#length()
*/
+ @Override
public long length()
{
- // TODO Auto-generated method stub
return 0;
}
/**
* @see org.eclipse.jetty.util.resource.Resource#list()
*/
+ @Override
public String[] list()
{
- // TODO Auto-generated method stub
return null;
}
/**
* @see org.eclipse.jetty.util.resource.Resource#release()
*/
+ @Override
public void release()
{
- // TODO Auto-generated method stub
-
}
/**
* @see org.eclipse.jetty.util.resource.Resource#renameTo(org.eclipse.jetty.util.resource.Resource)
*/
+ @Override
public boolean renameTo(Resource dest) throws SecurityException
{
- // TODO Auto-generated method stub
return false;
}
@@ -194,7 +193,7 @@ public class OrderingTest extends TestCase
TestResource jar1 = new TestResource("A");
resources.add(jar1);
TestResource r1 = new TestResource("A/web-fragment.xml");
- FragmentDescriptor f1 = new FragmentDescriptor(r1, metaData);
+ FragmentDescriptor f1 = new FragmentDescriptor(r1);
f1._name = "A";
metaData._webFragmentNameMap.put(f1._name, f1);
metaData._webFragmentResourceMap.put(jar1, f1);
@@ -206,7 +205,7 @@ public class OrderingTest extends TestCase
TestResource jar2 = new TestResource("B");
resources.add(jar2);
TestResource r2 = new TestResource("B/web-fragment.xml");
- FragmentDescriptor f2 = new FragmentDescriptor(r2, metaData);
+ FragmentDescriptor f2 = new FragmentDescriptor(r2);
f2._name="B";
metaData._webFragmentNameMap.put(f2._name, f2);
metaData._webFragmentResourceMap.put(jar2, f2);
@@ -217,7 +216,7 @@ public class OrderingTest extends TestCase
TestResource jar3 = new TestResource("C");
resources.add(jar3);
TestResource r3 = new TestResource("C/web-fragment.xml");
- FragmentDescriptor f3 = new FragmentDescriptor(r3, metaData);
+ FragmentDescriptor f3 = new FragmentDescriptor(r3);
f3._name="C";
metaData._webFragmentNameMap.put(f3._name, f3);
metaData._webFragmentResourceMap.put(jar3, f3);
@@ -228,7 +227,7 @@ public class OrderingTest extends TestCase
TestResource jar4 = new TestResource("D");
resources.add(jar4);
TestResource r4 = new TestResource("D/web-fragment.xml");
- FragmentDescriptor f4 = new FragmentDescriptor(r4, metaData);
+ FragmentDescriptor f4 = new FragmentDescriptor(r4);
f4._name="D";
metaData._webFragmentNameMap.put(f4._name, f4);
metaData._webFragmentResourceMap.put(jar4, f4);
@@ -239,7 +238,7 @@ public class OrderingTest extends TestCase
TestResource jar5 = new TestResource("E");
resources.add(jar5);
TestResource r5 = new TestResource("E/web-fragment.xml");
- FragmentDescriptor f5 = new FragmentDescriptor(r5, metaData);
+ FragmentDescriptor f5 = new FragmentDescriptor(r5);
f5._name="E";
metaData._webFragmentNameMap.put(f5._name, f5);
metaData._webFragmentResourceMap.put(jar5, f5);
@@ -250,7 +249,7 @@ public class OrderingTest extends TestCase
TestResource jar6 = new TestResource("F");
resources.add(jar6);
TestResource r6 = new TestResource("F/web-fragment.xml");
- FragmentDescriptor f6 = new FragmentDescriptor(r6, metaData);
+ FragmentDescriptor f6 = new FragmentDescriptor(r6);
f6._name="F";
metaData._webFragmentNameMap.put(f6._name, f6);
metaData._webFragmentResourceMap.put(jar6,f6);
@@ -288,7 +287,7 @@ public class OrderingTest extends TestCase
TestResource jar1 = new TestResource("plain");
resources.add(jar1);
TestResource r1 = new TestResource("plain/web-fragment.xml");
- FragmentDescriptor f1 = new FragmentDescriptor(r1, metaData);
+ FragmentDescriptor f1 = new FragmentDescriptor(r1);
f1._name = FragmentDescriptor.NAMELESS+"1";
metaData._webFragmentNameMap.put(f1._name, f1);
metaData._webFragmentResourceMap.put(jar1,f1);
@@ -300,7 +299,7 @@ public class OrderingTest extends TestCase
TestResource jar2 = new TestResource("B");
resources.add(jar2);
TestResource r2 = new TestResource("B/web-fragment.xml");
- FragmentDescriptor f2 = new FragmentDescriptor(r2, metaData);
+ FragmentDescriptor f2 = new FragmentDescriptor(r2);
f2._name="B";
metaData._webFragmentNameMap.put(f2._name, f2);
metaData._webFragmentResourceMap.put(jar2,f2);
@@ -311,7 +310,7 @@ public class OrderingTest extends TestCase
TestResource jar3 = new TestResource("C");
resources.add(jar3);
TestResource r3 = new TestResource("C/web-fragment.xml");
- FragmentDescriptor f3 = new FragmentDescriptor(r3, metaData);
+ FragmentDescriptor f3 = new FragmentDescriptor(r3);
f3._name="C";
metaData._webFragmentNameMap.put(f3._name, f3);
metaData._webFragmentResourceMap.put(jar3,f3);
@@ -322,7 +321,7 @@ public class OrderingTest extends TestCase
TestResource jar4 = new TestResource("D");
resources.add(jar4);
TestResource r4 = new TestResource("D/web-fragment.xml");
- FragmentDescriptor f4 = new FragmentDescriptor(r4, metaData);
+ FragmentDescriptor f4 = new FragmentDescriptor(r4);
f4._name="D";
metaData._webFragmentNameMap.put(f4._name, f4);
metaData._webFragmentResourceMap.put(jar4,f4);
@@ -333,7 +332,7 @@ public class OrderingTest extends TestCase
TestResource jar5 = new TestResource("E");
resources.add(jar5);
TestResource r5 = new TestResource("E/web-fragment.xml");
- FragmentDescriptor f5 = new FragmentDescriptor(r5, metaData);
+ FragmentDescriptor f5 = new FragmentDescriptor(r5);
f5._name="E";
metaData._webFragmentNameMap.put(f5._name, f5);
metaData._webFragmentResourceMap.put(jar5,f5);
@@ -344,7 +343,7 @@ public class OrderingTest extends TestCase
TestResource jar6 = new TestResource("F");
resources.add(jar6);
TestResource r6 = new TestResource("F/web-fragment.xml");
- FragmentDescriptor f6 = new FragmentDescriptor(r6, metaData);
+ FragmentDescriptor f6 = new FragmentDescriptor(r6);
f6._name="F";
metaData._webFragmentNameMap.put(f6._name, f6);
metaData._webFragmentResourceMap.put(jar6,f6);
@@ -389,7 +388,7 @@ public class OrderingTest extends TestCase
TestResource jar1 = new TestResource("A");
resources.add(jar1);
TestResource r1 = new TestResource("A/web-fragment.xml");
- FragmentDescriptor f1 = new FragmentDescriptor(r1, metaData);
+ FragmentDescriptor f1 = new FragmentDescriptor(r1);
f1._name = "A";
metaData._webFragmentNameMap.put(f1._name, f1);
metaData._webFragmentResourceMap.put(jar1, f1);
@@ -401,7 +400,7 @@ public class OrderingTest extends TestCase
TestResource jar2 = new TestResource("B");
resources.add(jar2);
TestResource r2 = new TestResource("B/web-fragment.xml");
- FragmentDescriptor f2 = new FragmentDescriptor(r2, metaData);
+ FragmentDescriptor f2 = new FragmentDescriptor(r2);
f2._name="B";
metaData._webFragmentNameMap.put(f2._name, f2);
metaData._webFragmentResourceMap.put(jar2, f2);
@@ -412,7 +411,7 @@ public class OrderingTest extends TestCase
TestResource jar3 = new TestResource("C");
resources.add(jar3);
TestResource r3 = new TestResource("C/web-fragment.xml");
- FragmentDescriptor f3 = new FragmentDescriptor(r3, metaData);
+ FragmentDescriptor f3 = new FragmentDescriptor(r3);
f3._name="C";
metaData._webFragmentNameMap.put(f3._name, f3);
metaData._webFragmentResourceMap.put(jar3,f3);
@@ -423,7 +422,7 @@ public class OrderingTest extends TestCase
TestResource jar4 = new TestResource("D");
resources.add(jar4);
TestResource r4 = new TestResource("D/web-fragment.xml");
- FragmentDescriptor f4 = new FragmentDescriptor(r4, metaData);
+ FragmentDescriptor f4 = new FragmentDescriptor(r4);
f4._name="D";
metaData._webFragmentNameMap.put(f4._name, f4);
metaData._webFragmentResourceMap.put(jar4, f4);
@@ -462,7 +461,7 @@ public class OrderingTest extends TestCase
TestResource jar1 = new TestResource("A");
resources.add(jar1);
TestResource r1 = new TestResource("A/web-fragment.xml");
- FragmentDescriptor f1 = new FragmentDescriptor(r1, metaData);
+ FragmentDescriptor f1 = new FragmentDescriptor(r1);
f1._name = "A";
metaData._webFragmentNameMap.put(f1._name, f1);
metaData._webFragmentResourceMap.put(jar1, f1);
@@ -474,7 +473,7 @@ public class OrderingTest extends TestCase
TestResource jar2 = new TestResource("B");
resources.add(jar2);
TestResource r2 = new TestResource("B/web-fragment.xml");
- FragmentDescriptor f2 = new FragmentDescriptor(r2, metaData);
+ FragmentDescriptor f2 = new FragmentDescriptor(r2);
f2._name="B";
metaData._webFragmentNameMap.put(f2._name, f2);
metaData._webFragmentResourceMap.put(jar2,f2);
@@ -486,7 +485,7 @@ public class OrderingTest extends TestCase
TestResource jar3 = new TestResource("C");
resources.add(jar3);
TestResource r3 = new TestResource("C/web-fragment.xml");
- FragmentDescriptor f3 = new FragmentDescriptor(r3, metaData);
+ FragmentDescriptor f3 = new FragmentDescriptor(r3);
f3._name="C";
metaData._webFragmentNameMap.put(f3._name, f3);
metaData._webFragmentResourceMap.put(jar3,f3);
@@ -520,7 +519,7 @@ public class OrderingTest extends TestCase
TestResource jar1 = new TestResource("A");
resources.add(jar1);
TestResource r1 = new TestResource("A/web-fragment.xml");
- FragmentDescriptor f1 = new FragmentDescriptor(r1, metaData);
+ FragmentDescriptor f1 = new FragmentDescriptor(r1);
f1._name = "A";
metaData._webFragmentNameMap.put(f1._name, f1);
metaData._webFragmentResourceMap.put(jar1, f1);
@@ -532,7 +531,7 @@ public class OrderingTest extends TestCase
TestResource jar2 = new TestResource("B");
resources.add(jar2);
TestResource r2 = new TestResource("B/web-fragment.xml");
- FragmentDescriptor f2 = new FragmentDescriptor(r2, metaData);
+ FragmentDescriptor f2 = new FragmentDescriptor(r2);
f2._name="B";
metaData._webFragmentNameMap.put(f2._name, f2);
metaData._webFragmentResourceMap.put(jar2, f2);
@@ -566,7 +565,7 @@ public class OrderingTest extends TestCase
TestResource jar1 = new TestResource("A");
resources.add(jar1);
TestResource r1 = new TestResource("A/web-fragment.xml");
- FragmentDescriptor f1 = new FragmentDescriptor(r1, metaData);
+ FragmentDescriptor f1 = new FragmentDescriptor(r1);
f1._name = "A";
metaData._webFragmentNameMap.put(f1._name, f1);
metaData._webFragmentResourceMap.put(jar1,f1);
@@ -578,7 +577,7 @@ public class OrderingTest extends TestCase
TestResource jar2 = new TestResource("B");
resources.add(jar2);
TestResource r2 = new TestResource("B/web-fragment.xml");
- FragmentDescriptor f2 = new FragmentDescriptor(r2, metaData);
+ FragmentDescriptor f2 = new FragmentDescriptor(r2);
f2._name="B";
metaData._webFragmentNameMap.put(f2._name, f2);
metaData._webFragmentResourceMap.put(jar2,f2);
@@ -590,7 +589,7 @@ public class OrderingTest extends TestCase
TestResource jar3 = new TestResource("C");
resources.add(jar3);
TestResource r3 = new TestResource("C/web-fragment.xml");
- FragmentDescriptor f3 = new FragmentDescriptor(r3, metaData);
+ FragmentDescriptor f3 = new FragmentDescriptor(r3);
f3._name="C";
metaData._webFragmentNameMap.put(f3._name, f3);
metaData._webFragmentResourceMap.put(jar3,f3);
@@ -631,7 +630,7 @@ public class OrderingTest extends TestCase
TestResource jar1 = new TestResource("A");
resources.add(jar1);
TestResource r1 = new TestResource("A/web-fragment.xml");
- FragmentDescriptor f1 = new FragmentDescriptor(r1, metaData);
+ FragmentDescriptor f1 = new FragmentDescriptor(r1);
f1._name = "A";
metaData._webFragmentNameMap.put(f1._name, f1);
metaData._webFragmentResourceMap.put(jar1,f1);
@@ -639,7 +638,7 @@ public class OrderingTest extends TestCase
TestResource jar2 = new TestResource("B");
resources.add(jar2);
TestResource r2 = new TestResource("B/web-fragment.xml");
- FragmentDescriptor f2 = new FragmentDescriptor(r2, metaData);
+ FragmentDescriptor f2 = new FragmentDescriptor(r2);
f2._name="B";
metaData._webFragmentNameMap.put(f2._name, f2);
metaData._webFragmentResourceMap.put(jar2, f2);
@@ -647,7 +646,7 @@ public class OrderingTest extends TestCase
TestResource jar3 = new TestResource("C");
resources.add(jar3);
TestResource r3 = new TestResource("C/web-fragment.xml");
- FragmentDescriptor f3 = new FragmentDescriptor(r3, metaData);
+ FragmentDescriptor f3 = new FragmentDescriptor(r3);
f3._name="C";
metaData._webFragmentNameMap.put(f3._name, f3);
metaData._webFragmentResourceMap.put(jar3, f3);
@@ -655,7 +654,7 @@ public class OrderingTest extends TestCase
TestResource jar4 = new TestResource("D");
resources.add(jar4);
TestResource r4 = new TestResource("D/web-fragment.xml");
- FragmentDescriptor f4 = new FragmentDescriptor((Resource)null, metaData);
+ FragmentDescriptor f4 = new FragmentDescriptor((Resource)null);
f4._name="D";
metaData._webFragmentNameMap.put(f4._name, f4);
metaData._webFragmentResourceMap.put(jar4, f4);
@@ -663,7 +662,7 @@ public class OrderingTest extends TestCase
TestResource jar5 = new TestResource("E");
resources.add(jar5);
TestResource r5 = new TestResource("E/web-fragment.xml");
- FragmentDescriptor f5 = new FragmentDescriptor((Resource)null, metaData);
+ FragmentDescriptor f5 = new FragmentDescriptor((Resource)null);
f5._name="E";
metaData._webFragmentNameMap.put(f5._name, f5);
metaData._webFragmentResourceMap.put(jar5, f5);
@@ -671,7 +670,7 @@ public class OrderingTest extends TestCase
TestResource jar6 = new TestResource("plain");
resources.add(jar6);
TestResource r6 = new TestResource ("plain/web-fragment.xml");
- FragmentDescriptor f6 = new FragmentDescriptor((Resource)null, metaData);
+ FragmentDescriptor f6 = new FragmentDescriptor((Resource)null);
f6._name=FragmentDescriptor.NAMELESS+"1";
metaData._webFragmentNameMap.put(f6._name, f6);
metaData._webFragmentResourceMap.put(jar6, f6);
@@ -704,7 +703,7 @@ public class OrderingTest extends TestCase
TestResource jar1 = new TestResource("A");
resources.add(jar1);
TestResource r1 = new TestResource("A/web-fragment.xml");
- FragmentDescriptor f1 = new FragmentDescriptor(r1, metaData);
+ FragmentDescriptor f1 = new FragmentDescriptor(r1);
f1._name = "A";
metaData._webFragmentNameMap.put(f1._name, f1);
metaData._webFragmentResourceMap.put(jar1,f1);
@@ -712,7 +711,7 @@ public class OrderingTest extends TestCase
TestResource jar2 = new TestResource("B");
resources.add(jar2);
TestResource r2 = new TestResource("B/web-fragment.xml");
- FragmentDescriptor f2 = new FragmentDescriptor(r2, metaData);
+ FragmentDescriptor f2 = new FragmentDescriptor(r2);
f2._name="B";
metaData._webFragmentNameMap.put(f2._name, f2);
metaData._webFragmentResourceMap.put(jar2,f2);
@@ -720,7 +719,7 @@ public class OrderingTest extends TestCase
TestResource jar3 = new TestResource("C");
resources.add(jar3);
TestResource r3 = new TestResource("C/web-fragment.xml");
- FragmentDescriptor f3 = new FragmentDescriptor(r3, metaData);
+ FragmentDescriptor f3 = new FragmentDescriptor(r3);
f3._name="C";
metaData._webFragmentNameMap.put(f3._name, f3);
metaData._webFragmentResourceMap.put(jar3,f3);
@@ -728,7 +727,7 @@ public class OrderingTest extends TestCase
TestResource jar4 = new TestResource("D");
resources.add(jar4);
TestResource r4 = new TestResource("D/web-fragment.xml");
- FragmentDescriptor f4 = new FragmentDescriptor(r4, metaData);
+ FragmentDescriptor f4 = new FragmentDescriptor(r4);
f4._name="D";
metaData._webFragmentNameMap.put(f4._name, f4);
metaData._webFragmentResourceMap.put(jar4,f4);
@@ -736,7 +735,7 @@ public class OrderingTest extends TestCase
TestResource jar5 = new TestResource("E");
resources.add(jar5);
TestResource r5 = new TestResource("E/web-fragment.xml");
- FragmentDescriptor f5 = new FragmentDescriptor(r5, metaData);
+ FragmentDescriptor f5 = new FragmentDescriptor(r5);
f5._name="E";
metaData._webFragmentNameMap.put(f5._name, f5);
metaData._webFragmentResourceMap.put(jar5,f5);
@@ -744,7 +743,7 @@ public class OrderingTest extends TestCase
TestResource jar6 = new TestResource("plain");
resources.add(jar6);
TestResource r6 = new TestResource("plain/web-fragment.xml");
- FragmentDescriptor f6 = new FragmentDescriptor(r6, metaData);
+ FragmentDescriptor f6 = new FragmentDescriptor(r6);
f6._name=FragmentDescriptor.NAMELESS+"1";
metaData._webFragmentNameMap.put(f6._name, f6);
metaData._webFragmentResourceMap.put(jar6,f6);
@@ -791,7 +790,7 @@ public class OrderingTest extends TestCase
TestResource jar1 = new TestResource("A");
resources.add(jar1);
TestResource r1 = new TestResource("A/web-fragment.xml");
- FragmentDescriptor f1 = new FragmentDescriptor(r1, metaData);
+ FragmentDescriptor f1 = new FragmentDescriptor(r1);
f1._name = "A";
metaData._webFragmentNameMap.put(f1._name, f1);
metaData._webFragmentResourceMap.put(jar1, f1);
@@ -803,7 +802,7 @@ public class OrderingTest extends TestCase
TestResource jar2 = new TestResource("B");
resources.add(jar2);
TestResource r2 = new TestResource("B/web-fragment.xml");
- FragmentDescriptor f2 = new FragmentDescriptor(r2, metaData);
+ FragmentDescriptor f2 = new FragmentDescriptor(r2);
f2._name="B";
metaData._webFragmentNameMap.put(f2._name, f2);
metaData._webFragmentResourceMap.put(jar2,f2);
@@ -815,7 +814,7 @@ public class OrderingTest extends TestCase
TestResource jar3 = new TestResource("C");
resources.add(jar3);
TestResource r3 = new TestResource("C/web-fragment.xml");
- FragmentDescriptor f3 = new FragmentDescriptor(r3, metaData);
+ FragmentDescriptor f3 = new FragmentDescriptor(r3);
f3._name="C";
metaData._webFragmentNameMap.put(f3._name, f3);
metaData._webFragmentResourceMap.put(jar3,f3);
@@ -861,7 +860,7 @@ public class OrderingTest extends TestCase
TestResource jar1 = new TestResource("A");
resources.add(jar1);
TestResource r1 = new TestResource("A/web-fragment.xml");
- FragmentDescriptor f1 = new FragmentDescriptor(r1, metaData);
+ FragmentDescriptor f1 = new FragmentDescriptor(r1);
f1._name = "A";
metaData._webFragmentNameMap.put(f1._name, f1);
metaData._webFragmentResourceMap.put(jar1,f1);
@@ -869,7 +868,7 @@ public class OrderingTest extends TestCase
TestResource jar2 = new TestResource("B");
resources.add(jar2);
TestResource r2 = new TestResource("B/web-fragment.xml");
- FragmentDescriptor f2 = new FragmentDescriptor(r2, metaData);
+ FragmentDescriptor f2 = new FragmentDescriptor(r2);
f2._name="B";
metaData._webFragmentNameMap.put(f2._name, f2);
metaData._webFragmentResourceMap.put(jar2, f2);
@@ -877,7 +876,7 @@ public class OrderingTest extends TestCase
TestResource jar3 = new TestResource("C");
resources.add(jar3);
TestResource r3 = new TestResource("C/web-fragment.xml");
- FragmentDescriptor f3 = new FragmentDescriptor(r3, metaData);
+ FragmentDescriptor f3 = new FragmentDescriptor(r3);
f3._name="C";
metaData._webFragmentNameMap.put(f3._name, f3);
metaData._webFragmentResourceMap.put(jar3, f3);
@@ -885,7 +884,7 @@ public class OrderingTest extends TestCase
TestResource jar4 = new TestResource("D");
resources.add(jar4);
TestResource r4 = new TestResource("D/web-fragment.xml");
- FragmentDescriptor f4 = new FragmentDescriptor((Resource)null, metaData);
+ FragmentDescriptor f4 = new FragmentDescriptor((Resource)null);
f4._name="D";
metaData._webFragmentNameMap.put(f4._name, f4);
metaData._webFragmentResourceMap.put(jar4, f4);
@@ -893,7 +892,7 @@ public class OrderingTest extends TestCase
TestResource jar5 = new TestResource("E");
resources.add(jar5);
TestResource r5 = new TestResource("E/web-fragment.xml");
- FragmentDescriptor f5 = new FragmentDescriptor((Resource)null, metaData);
+ FragmentDescriptor f5 = new FragmentDescriptor((Resource)null);
f5._name="E";
metaData._webFragmentNameMap.put(f5._name, f5);
metaData._webFragmentResourceMap.put(jar5, f5);
@@ -901,7 +900,7 @@ public class OrderingTest extends TestCase
TestResource jar6 = new TestResource("plain");
resources.add(jar6);
TestResource r6 = new TestResource("plain/web-fragment.xml");
- FragmentDescriptor f6 = new FragmentDescriptor((Resource)null, metaData);
+ FragmentDescriptor f6 = new FragmentDescriptor((Resource)null);
f6._name=FragmentDescriptor.NAMELESS+"1";
metaData._webFragmentNameMap.put(f6._name, f6);
metaData._webFragmentResourceMap.put(jar6, f6);
diff --git a/jetty-xml/src/main/java/org/eclipse/jetty/xml/XmlParser.java b/jetty-xml/src/main/java/org/eclipse/jetty/xml/XmlParser.java
index 62ead4165a..e8b5f037de 100644
--- a/jetty-xml/src/main/java/org/eclipse/jetty/xml/XmlParser.java
+++ b/jetty-xml/src/main/java/org/eclipse/jetty/xml/XmlParser.java
@@ -741,14 +741,15 @@ public class XmlParser
* @param tag The tag of the nodes.
* @return Iterator over all child nodes with the specified tag.
*/
- public Iterator iterator(final String tag)
+ public Iterator<Node> iterator(final String tag)
{
- return new Iterator()
+ return new Iterator<Node>()
{
int c = 0;
Node _node;
/* -------------------------------------------------- */
+ @Override
public boolean hasNext()
{
if (_node != null)
@@ -771,7 +772,8 @@ public class XmlParser
}
/* -------------------------------------------------- */
- public Object next()
+ @Override
+ public Node next()
{
try
{
@@ -787,6 +789,7 @@ public class XmlParser
}
/* -------------------------------------------------- */
+ @Override
public void remove()
{
throw new UnsupportedOperationException("Not supported");
diff --git a/test-jetty-webapp/src/test/java/org/eclipse/jetty/TestServer.java b/test-jetty-webapp/src/test/java/org/eclipse/jetty/TestServer.java
index 432a6fe15f..d011e25ac6 100644
--- a/test-jetty-webapp/src/test/java/org/eclipse/jetty/TestServer.java
+++ b/test-jetty-webapp/src/test/java/org/eclipse/jetty/TestServer.java
@@ -18,7 +18,6 @@ import java.lang.management.ManagementFactory;
import org.eclipse.jetty.jmx.MBeanContainer;
import org.eclipse.jetty.security.HashLoginService;
-import org.eclipse.jetty.server.Connector;
import org.eclipse.jetty.server.Handler;
import org.eclipse.jetty.server.NCSARequestLog;
import org.eclipse.jetty.server.Server;

Back to the top