392237 fixed many TODOs and many minor code cleanups

This commit is contained in:
Greg Wilkins 2012-10-19 16:17:30 +11:00
parent f420f5016d
commit 2b13648b0e
90 changed files with 429 additions and 474 deletions

View File

@ -25,10 +25,7 @@ import java.net.URL;
import java.net.URLClassLoader; import java.net.URLClassLoader;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.jar.JarEntry; import java.util.jar.JarEntry;
import org.eclipse.jetty.util.Loader; import org.eclipse.jetty.util.Loader;
@ -105,11 +102,13 @@ public class AnnotationParser
{ {
_val=val; _val=val;
} }
@Override
public Object getValue() public Object getValue()
{ {
return _val; return _val;
} }
@Override
public String toString() public String toString()
{ {
return "("+getName()+":"+_val+")"; return "("+getName()+":"+_val+")";
@ -126,6 +125,7 @@ public class AnnotationParser
_val = new ArrayList<Value>(); _val = new ArrayList<Value>();
} }
@Override
public Object getValue() public Object getValue()
{ {
return _val; return _val;
@ -146,6 +146,7 @@ public class AnnotationParser
return _val.size(); return _val.size();
} }
@Override
public String toString() public String toString()
{ {
StringBuffer buff = new StringBuffer(); StringBuffer buff = new StringBuffer();
@ -300,6 +301,7 @@ public class AnnotationParser
* Visit a single-valued (name,value) pair for this annotation * Visit a single-valued (name,value) pair for this annotation
* @see org.objectweb.asm.AnnotationVisitor#visit(java.lang.String, java.lang.Object) * @see org.objectweb.asm.AnnotationVisitor#visit(java.lang.String, java.lang.Object)
*/ */
@Override
public void visit(String aname, Object avalue) public void visit(String aname, Object avalue)
{ {
SimpleValue v = new SimpleValue(aname); SimpleValue v = new SimpleValue(aname);
@ -311,6 +313,7 @@ public class AnnotationParser
* Visit a (name,value) pair whose value is another Annotation * Visit a (name,value) pair whose value is another Annotation
* @see org.objectweb.asm.AnnotationVisitor#visitAnnotation(java.lang.String, java.lang.String) * @see org.objectweb.asm.AnnotationVisitor#visitAnnotation(java.lang.String, java.lang.String)
*/ */
@Override
public AnnotationVisitor visitAnnotation(String name, String desc) public AnnotationVisitor visitAnnotation(String name, String desc)
{ {
String s = normalize(desc); String s = normalize(desc);
@ -324,6 +327,7 @@ public class AnnotationParser
* Visit an array valued (name, value) pair for this annotation * Visit an array valued (name, value) pair for this annotation
* @see org.objectweb.asm.AnnotationVisitor#visitArray(java.lang.String) * @see org.objectweb.asm.AnnotationVisitor#visitArray(java.lang.String)
*/ */
@Override
public AnnotationVisitor visitArray(String name) public AnnotationVisitor visitArray(String name)
{ {
ListValue v = new ListValue(name); ListValue v = new ListValue(name);
@ -336,11 +340,13 @@ public class AnnotationParser
* Visit a enum-valued (name,value) pair for this annotation * Visit a enum-valued (name,value) pair for this annotation
* @see org.objectweb.asm.AnnotationVisitor#visitEnum(java.lang.String, java.lang.String, java.lang.String) * @see org.objectweb.asm.AnnotationVisitor#visitEnum(java.lang.String, java.lang.String, java.lang.String)
*/ */
@Override
public void visitEnum(String name, String desc, String value) public void visitEnum(String name, String desc, String value)
{ {
//TODO //TODO
} }
@Override
public void visitEnd() public void visitEnd()
{ {
} }
@ -364,6 +370,7 @@ public class AnnotationParser
int _version; int _version;
@Override
public void visit (int version, public void visit (int version,
final int access, final int access,
final String name, final String name,
@ -398,10 +405,12 @@ public class AnnotationParser
} }
} }
@Override
public AnnotationVisitor visitAnnotation (String desc, boolean visible) public AnnotationVisitor visitAnnotation (String desc, boolean visible)
{ {
MyAnnotationVisitor visitor = new MyAnnotationVisitor(normalize(desc), new ArrayList<Value>()) MyAnnotationVisitor visitor = new MyAnnotationVisitor(normalize(desc), new ArrayList<Value>())
{ {
@Override
public void visitEnd() public void visitEnd()
{ {
super.visitEnd(); super.visitEnd();
@ -422,6 +431,7 @@ public class AnnotationParser
return visitor; return visitor;
} }
@Override
public MethodVisitor visitMethod (final int access, public MethodVisitor visitMethod (final int access,
final String name, final String name,
final String methodDesc, final String methodDesc,
@ -431,10 +441,12 @@ public class AnnotationParser
return new EmptyVisitor () return new EmptyVisitor ()
{ {
@Override
public AnnotationVisitor visitAnnotation(String desc, boolean visible) public AnnotationVisitor visitAnnotation(String desc, boolean visible)
{ {
MyAnnotationVisitor visitor = new MyAnnotationVisitor (normalize(desc), new ArrayList<Value>()) MyAnnotationVisitor visitor = new MyAnnotationVisitor (normalize(desc), new ArrayList<Value>())
{ {
@Override
public void visitEnd() public void visitEnd()
{ {
super.visitEnd(); super.visitEnd();
@ -456,6 +468,7 @@ public class AnnotationParser
}; };
} }
@Override
public FieldVisitor visitField (final int access, public FieldVisitor visitField (final int access,
final String fieldName, final String fieldName,
final String fieldType, final String fieldType,
@ -465,10 +478,12 @@ public class AnnotationParser
return new EmptyVisitor () return new EmptyVisitor ()
{ {
@Override
public AnnotationVisitor visitAnnotation(String desc, boolean visible) public AnnotationVisitor visitAnnotation(String desc, boolean visible)
{ {
MyAnnotationVisitor visitor = new MyAnnotationVisitor(normalize(desc), new ArrayList<Value>()) MyAnnotationVisitor visitor = new MyAnnotationVisitor(normalize(desc), new ArrayList<Value>())
{ {
@Override
public void visitEnd() public void visitEnd()
{ {
super.visitEnd(); super.visitEnd();
@ -498,6 +513,7 @@ public class AnnotationParser
* @param annotationName * @param annotationName
* @param handler * @param handler
*/ */
@Deprecated
public void registerAnnotationHandler (String annotationName, DiscoverableAnnotationHandler handler) public void registerAnnotationHandler (String annotationName, DiscoverableAnnotationHandler handler)
{ {
_handlers.add(handler); _handlers.add(handler);
@ -509,6 +525,7 @@ public class AnnotationParser
* @param annotationName * @param annotationName
* @return * @return
*/ */
@Deprecated
public List<DiscoverableAnnotationHandler> getAnnotationHandlers(String annotationName) public List<DiscoverableAnnotationHandler> getAnnotationHandlers(String annotationName)
{ {
List<DiscoverableAnnotationHandler> handlers = new ArrayList<DiscoverableAnnotationHandler>(); List<DiscoverableAnnotationHandler> handlers = new ArrayList<DiscoverableAnnotationHandler>();
@ -529,6 +546,7 @@ public class AnnotationParser
* @deprecated * @deprecated
* @return * @return
*/ */
@Deprecated
public List<DiscoverableAnnotationHandler> getAnnotationHandlers() public List<DiscoverableAnnotationHandler> getAnnotationHandlers()
{ {
List<DiscoverableAnnotationHandler> allAnnotationHandlers = new ArrayList<DiscoverableAnnotationHandler>(); List<DiscoverableAnnotationHandler> allAnnotationHandlers = new ArrayList<DiscoverableAnnotationHandler>();
@ -544,6 +562,7 @@ public class AnnotationParser
* @deprecated see registerHandler(Handler) * @deprecated see registerHandler(Handler)
* @param handler * @param handler
*/ */
@Deprecated
public void registerClassHandler (ClassHandler handler) public void registerClassHandler (ClassHandler handler)
{ {
_handlers.add(handler); _handlers.add(handler);
@ -649,10 +668,10 @@ public class AnnotationParser
* @param visitSuperClasses * @param visitSuperClasses
* @throws Exception * @throws Exception
*/ */
public void parse (Class clazz, ClassNameResolver resolver, boolean visitSuperClasses) public void parse (Class<?> clazz, ClassNameResolver resolver, boolean visitSuperClasses)
throws Exception throws Exception
{ {
Class cz = clazz; Class<?> cz = clazz;
while (cz != null) while (cz != null)
{ {
if (!resolver.isExcluded(cz.getName())) if (!resolver.isExcluded(cz.getName()))
@ -782,6 +801,7 @@ public class AnnotationParser
JarScanner scanner = new JarScanner() JarScanner scanner = new JarScanner()
{ {
@Override
public void processEntry(URI jarUri, JarEntry entry) public void processEntry(URI jarUri, JarEntry entry)
{ {
try try
@ -827,6 +847,7 @@ public class AnnotationParser
JarScanner scanner = new JarScanner() JarScanner scanner = new JarScanner()
{ {
@Override
public void processEntry(URI jarUri, JarEntry entry) public void processEntry(URI jarUri, JarEntry entry)
{ {
try try

View File

@ -90,30 +90,27 @@ public class ResourceA implements javax.servlet.Servlet
{ {
System.err.println("ResourceA.x"); System.err.println("ResourceA.x");
} }
@Override
public void destroy() public void destroy()
{ {
// TODO Auto-generated method stub
} }
@Override
public ServletConfig getServletConfig() public ServletConfig getServletConfig()
{ {
// TODO Auto-generated method stub
return null; return null;
} }
@Override
public String getServletInfo() public String getServletInfo()
{ {
// TODO Auto-generated method stub
return null; return null;
} }
@Override
public void init(ServletConfig arg0) throws ServletException public void init(ServletConfig arg0) throws ServletException
{ {
// TODO Auto-generated method stub
} }
@Override
public void service(ServletRequest arg0, ServletResponse arg1) public void service(ServletRequest arg0, ServletResponse arg1)
throws ServletException, IOException throws ServletException, IOException
{ {
// TODO Auto-generated method stub
} }
} }

View File

@ -55,7 +55,7 @@ class FauxContinuation implements FilteredContinuation
private boolean _resumed=false; private boolean _resumed=false;
private boolean _timeout=false; private boolean _timeout=false;
private boolean _responseWrapped=false; private boolean _responseWrapped=false;
private long _timeoutMs=30000; // TODO configure private long _timeoutMs=30000;
private ArrayList<ContinuationListener> _listeners; private ArrayList<ContinuationListener> _listeners;
@ -84,12 +84,14 @@ class FauxContinuation implements FilteredContinuation
/** /**
* @see org.eclipse.jetty.continuation.Continuation#isResponseWrapped() * @see org.eclipse.jetty.continuation.Continuation#isResponseWrapped()
*/ */
@Override
public boolean isResponseWrapped() public boolean isResponseWrapped()
{ {
return _responseWrapped; return _responseWrapped;
} }
/* ------------------------------------------------------------ */ /* ------------------------------------------------------------ */
@Override
public boolean isInitial() public boolean isInitial()
{ {
synchronized(this) synchronized(this)
@ -99,6 +101,7 @@ class FauxContinuation implements FilteredContinuation
} }
/* ------------------------------------------------------------ */ /* ------------------------------------------------------------ */
@Override
public boolean isResumed() public boolean isResumed()
{ {
synchronized(this) synchronized(this)
@ -108,6 +111,7 @@ class FauxContinuation implements FilteredContinuation
} }
/* ------------------------------------------------------------ */ /* ------------------------------------------------------------ */
@Override
public boolean isSuspended() public boolean isSuspended()
{ {
synchronized(this) synchronized(this)
@ -129,6 +133,7 @@ class FauxContinuation implements FilteredContinuation
} }
/* ------------------------------------------------------------ */ /* ------------------------------------------------------------ */
@Override
public boolean isExpired() public boolean isExpired()
{ {
synchronized(this) synchronized(this)
@ -138,12 +143,14 @@ class FauxContinuation implements FilteredContinuation
} }
/* ------------------------------------------------------------ */ /* ------------------------------------------------------------ */
@Override
public void setTimeout(long timeoutMs) public void setTimeout(long timeoutMs)
{ {
_timeoutMs = timeoutMs; _timeoutMs = timeoutMs;
} }
/* ------------------------------------------------------------ */ /* ------------------------------------------------------------ */
@Override
public void suspend(ServletResponse response) public void suspend(ServletResponse response)
{ {
_response=response; _response=response;
@ -152,6 +159,7 @@ class FauxContinuation implements FilteredContinuation
} }
/* ------------------------------------------------------------ */ /* ------------------------------------------------------------ */
@Override
public void suspend() public void suspend()
{ {
synchronized (this) synchronized (this)
@ -185,6 +193,7 @@ class FauxContinuation implements FilteredContinuation
/* (non-Javadoc) /* (non-Javadoc)
* @see org.mortbay.jetty.Suspendor#resume() * @see org.mortbay.jetty.Suspendor#resume()
*/ */
@Override
public void resume() public void resume()
{ {
synchronized (this) synchronized (this)
@ -223,6 +232,7 @@ class FauxContinuation implements FilteredContinuation
/* ------------------------------------------------------------ */ /* ------------------------------------------------------------ */
@Override
public void complete() public void complete()
{ {
// just like resume, except don't set _resumed=true; // just like resume, except don't set _resumed=true;
@ -261,6 +271,7 @@ class FauxContinuation implements FilteredContinuation
/** /**
* @see org.eclipse.jetty.continuation.Continuation#getServletResponse() * @see org.eclipse.jetty.continuation.Continuation#getServletResponse()
*/ */
@Override
public boolean enter(ServletResponse response) public boolean enter(ServletResponse response)
{ {
_response=response; _response=response;
@ -271,6 +282,7 @@ class FauxContinuation implements FilteredContinuation
/** /**
* @see org.eclipse.jetty.continuation.Continuation#getServletResponse() * @see org.eclipse.jetty.continuation.Continuation#getServletResponse()
*/ */
@Override
public ServletResponse getServletResponse() public ServletResponse getServletResponse()
{ {
return _response; return _response;
@ -297,6 +309,9 @@ class FauxContinuation implements FilteredContinuation
case __SUSPENDED: case __SUSPENDED:
fauxResume(); fauxResume();
_state=__HANDLING;
return;
case __UNSUSPENDING: case __UNSUSPENDING:
_state=__HANDLING; _state=__HANDLING;
return; return;
@ -312,6 +327,7 @@ class FauxContinuation implements FilteredContinuation
/** /**
* @return true if handling is complete * @return true if handling is complete
*/ */
@Override
public boolean exit() public boolean exit()
{ {
synchronized (this) synchronized (this)
@ -454,6 +470,7 @@ class FauxContinuation implements FilteredContinuation
} }
@Override
public void addContinuationListener(ContinuationListener listener) public void addContinuationListener(ContinuationListener listener)
{ {
if (_listeners==null) if (_listeners==null)
@ -466,6 +483,7 @@ class FauxContinuation implements FilteredContinuation
/** /**
* @see org.eclipse.jetty.continuation.Continuation#getAttribute(java.lang.String) * @see org.eclipse.jetty.continuation.Continuation#getAttribute(java.lang.String)
*/ */
@Override
public Object getAttribute(String name) public Object getAttribute(String name)
{ {
return _request.getAttribute(name); return _request.getAttribute(name);
@ -475,6 +493,7 @@ class FauxContinuation implements FilteredContinuation
/** /**
* @see org.eclipse.jetty.continuation.Continuation#removeAttribute(java.lang.String) * @see org.eclipse.jetty.continuation.Continuation#removeAttribute(java.lang.String)
*/ */
@Override
public void removeAttribute(String name) public void removeAttribute(String name)
{ {
_request.removeAttribute(name); _request.removeAttribute(name);
@ -484,6 +503,7 @@ class FauxContinuation implements FilteredContinuation
/** /**
* @see org.eclipse.jetty.continuation.Continuation#setAttribute(java.lang.String, java.lang.Object) * @see org.eclipse.jetty.continuation.Continuation#setAttribute(java.lang.String, java.lang.Object)
*/ */
@Override
public void setAttribute(String name, Object attribute) public void setAttribute(String name, Object attribute)
{ {
_request.setAttribute(name,attribute); _request.setAttribute(name,attribute);
@ -493,6 +513,7 @@ class FauxContinuation implements FilteredContinuation
/** /**
* @see org.eclipse.jetty.continuation.Continuation#undispatch() * @see org.eclipse.jetty.continuation.Continuation#undispatch()
*/ */
@Override
public void undispatch() public void undispatch()
{ {
if (isSuspended()) if (isSuspended())

View File

@ -134,12 +134,13 @@ public class ScanningAppProviderRuntimeUpdatesTest
jetty.assertWebAppContextsExists("/foo"); jetty.assertWebAppContextsExists("/foo");
jetty.removeWebapp("foo.war");
jetty.removeWebapp("foo.xml"); jetty.removeWebapp("foo.xml");
waitForDirectoryScan(); waitForDirectoryScan();
waitForDirectoryScan(); waitForDirectoryScan();
// FIXME: hot undeploy with removal not working! - jetty.assertNoWebAppContexts(); jetty.assertNoWebAppContexts();
} }
/** /**

View File

@ -46,9 +46,7 @@ import org.eclipse.jetty.util.StringUtil;
import org.eclipse.jetty.util.log.Log; import org.eclipse.jetty.util.log.Log;
import org.eclipse.jetty.util.log.Logger; import org.eclipse.jetty.util.log.Logger;
// TODO: Make this class inherit from oej.util.Fields // TODO Make this class inherit from oej.util.Fields
// TODO move this class to jetty-http?
/** /**
* HTTP Fields. A collection of HTTP header and or Trailer fields. * HTTP Fields. A collection of HTTP header and or Trailer fields.

View File

@ -36,15 +36,14 @@ import static org.junit.Assert.assertTrue;
*/ */
public class HttpParserTest public class HttpParserTest
{ {
/* ------------------------------------------------------------------------------- */ /* ------------------------------------------------------------------------------- */
/** /**
* Parse until {@link #END END} state. * Parse until {@link #END END} state.
* If the parser is already in the END state, then it is {@link #reset reset} and re-parsed. * If the parser is already in the END state, then it is {@link #reset reset} and re-parsed.
* @param parser TODO * @param parser The parser to test
* @throws IllegalStateException If the buffers have already been partially parsed. * @throws IllegalStateException If the buffers have already been partially parsed.
*/ */
public static void parseAll(HttpParser parser, ByteBuffer buffer) throws EofException public static void parseAll(HttpParser parser, ByteBuffer buffer)
{ {
if (parser.isState(State.END)) if (parser.isState(State.END))
parser.reset(); parser.reset();

View File

@ -257,27 +257,25 @@ public abstract class AbstractConnection implements Connection
@Override @Override
public int getMessagesIn() public int getMessagesIn()
{ {
return 0; return -1;
} }
@Override @Override
public int getMessagesOut() public int getMessagesOut()
{ {
return 0; return -1;
} }
@Override @Override
public long getBytesIn() public long getBytesIn()
{ {
// TODO Auto-generated method stub return -1;
return 0;
} }
@Override @Override
public long getBytesOut() public long getBytesOut()
{ {
// TODO Auto-generated method stub return -1;
return 0;
} }
@Override @Override

View File

@ -309,8 +309,6 @@ public class SslConnection extends AbstractConnection
} }
getWriteFlusher().onFail(x); getWriteFlusher().onFail(x);
// TODO release all buffers??? or may in onClose
} }
} }
}; };
@ -596,7 +594,6 @@ public class SslConnection extends AbstractConnection
} }
catch (SSLException e) catch (SSLException e)
{ {
LOG.warn(getEndPoint().toString(),e);
getEndPoint().close(); getEndPoint().close();
throw new EofException(e); throw new EofException(e);
} }

View File

@ -24,6 +24,7 @@ import java.lang.reflect.Modifier;
import org.eclipse.jetty.util.IntrospectionUtil; import org.eclipse.jetty.util.IntrospectionUtil;
import org.eclipse.jetty.util.Loader; import org.eclipse.jetty.util.Loader;
import org.eclipse.jetty.util.TypeUtil;
@ -106,7 +107,7 @@ public abstract class LifeCycleCallback
{ {
if (_targetClass == null) if (_targetClass == null)
_targetClass = Loader.loadClass(null, _className); _targetClass = Loader.loadClass(null, _className);
_target = _targetClass.getDeclaredMethod(_methodName, new Class[]{}); //TODO _target = _targetClass.getDeclaredMethod(_methodName, TypeUtil.NO_ARGS);
} }
if (_target != null) if (_target != null)

View File

@ -49,7 +49,7 @@ public abstract class Rule
* @param response * @param response
* *
* @return The new target if the rule has matched, else null * @return The new target if the rule has matched, else null
* @throws IOException TODO * @throws IOException
*/ */
public abstract String matchAndApply(String target, HttpServletRequest request, HttpServletResponse response) throws IOException; public abstract String matchAndApply(String target, HttpServletRequest request, HttpServletResponse response) throws IOException;

View File

@ -60,6 +60,7 @@ public class SpnegoLoginService extends AbstractLifeCycle implements LoginServic
setConfig(config); setConfig(config);
} }
@Override
public String getName() public String getName()
{ {
return _name; return _name;
@ -109,6 +110,7 @@ public class SpnegoLoginService extends AbstractLifeCycle implements LoginServic
/** /**
* username will be null since the credentials will contain all the relevant info * username will be null since the credentials will contain all the relevant info
*/ */
@Override
public UserIdentity login(String username, Object credentials) public UserIdentity login(String username, Object credentials)
{ {
String encodedAuthToken = (String)credentials; String encodedAuthToken = (String)credentials;
@ -161,24 +163,28 @@ public class SpnegoLoginService extends AbstractLifeCycle implements LoginServic
return null; return null;
} }
@Override
public boolean validate(UserIdentity user) public boolean validate(UserIdentity user)
{ {
return false; return false;
} }
@Override
public IdentityService getIdentityService() public IdentityService getIdentityService()
{ {
return _identityService; return _identityService;
} }
@Override
public void setIdentityService(IdentityService service) public void setIdentityService(IdentityService service)
{ {
_identityService = service; _identityService = service;
} }
public void logout(UserIdentity user) { @Override
public void logout(UserIdentity user)
{
// TODO Auto-generated method stub // TODO Auto-generated method stub
} }
} }

View File

@ -112,7 +112,7 @@
<Set name="stopAtShutdown">true</Set> <Set name="stopAtShutdown">true</Set>
<Set name="sendServerVersion">true</Set> <Set name="sendServerVersion">true</Set>
<Set name="sendDateHeader">true</Set> <Set name="sendDateHeader">true</Set>
<Set name="stopTimeout">1000</Set> <Set name="stopTimeout">5000</Set>
<Set name="dumpAfterStart">false</Set> <Set name="dumpAfterStart">false</Set>
<Set name="dumpBeforeStop">false</Set> <Set name="dumpBeforeStop">false</Set>

View File

@ -198,7 +198,6 @@ public class CookieCutter
continue; continue;
case ';': case ';':
// TODO case ',':
if (tokenstart>=0) if (tokenstart>=0)
value = hdr.substring(tokenstart, tokenend+1); value = hdr.substring(tokenstart, tokenend+1);
else else
@ -244,7 +243,6 @@ public class CookieCutter
continue; continue;
case ';': case ';':
// TODO case ',':
if (tokenstart>=0) if (tokenstart>=0)
{ {
name = hdr.substring(tokenstart, tokenend+1); name = hdr.substring(tokenstart, tokenend+1);
@ -278,7 +276,6 @@ public class CookieCutter
// If after processing the current character we have a value and a name, then it is a cookie // If after processing the current character we have a value and a name, then it is a cookie
if (value!=null && name!=null) if (value!=null && name!=null)
{ {
// TODO handle unquoting during parsing! But quoting is uncommon
name=QuotedStringTokenizer.unquote(name); name=QuotedStringTokenizer.unquote(name);
value=QuotedStringTokenizer.unquote(value); value=QuotedStringTokenizer.unquote(value);

View File

@ -119,15 +119,11 @@ public class Dispatcher implements RequestDispatcher
{ {
Request baseRequest=(request instanceof Request)?((Request)request):HttpChannel.getCurrentHttpChannel().getRequest(); Request baseRequest=(request instanceof Request)?((Request)request):HttpChannel.getCurrentHttpChannel().getRequest();
if (!(request instanceof HttpServletRequest)) if (!(request instanceof HttpServletRequest))
request = new ServletRequestHttpWrapper(request); request = new ServletRequestHttpWrapper(request);
if (!(response instanceof HttpServletResponse)) if (!(response instanceof HttpServletResponse))
response = new ServletResponseHttpWrapper(response); response = new ServletResponseHttpWrapper(response);
// TODO - allow stream or writer????
final DispatcherType old_type = baseRequest.getDispatcherType(); final DispatcherType old_type = baseRequest.getDispatcherType();
final Attributes old_attr=baseRequest.getAttributes(); final Attributes old_attr=baseRequest.getAttributes();
MultiMap<String> old_params=baseRequest.getParameters(); MultiMap<String> old_params=baseRequest.getParameters();
@ -330,6 +326,7 @@ public class Dispatcher implements RequestDispatcher
} }
/* ------------------------------------------------------------ */ /* ------------------------------------------------------------ */
@Override
public Object getAttribute(String key) public Object getAttribute(String key)
{ {
if (Dispatcher.this._named==null) if (Dispatcher.this._named==null)
@ -353,13 +350,14 @@ public class Dispatcher implements RequestDispatcher
} }
/* ------------------------------------------------------------ */ /* ------------------------------------------------------------ */
public Enumeration getAttributeNames() @Override
public Enumeration<String> getAttributeNames()
{ {
HashSet set=new HashSet(); HashSet<String> set=new HashSet<>();
Enumeration e=_attr.getAttributeNames(); Enumeration<String> e=_attr.getAttributeNames();
while(e.hasMoreElements()) while(e.hasMoreElements())
{ {
String name=(String)e.nextElement(); String name=e.nextElement();
if (!name.startsWith(__INCLUDE_PREFIX) && if (!name.startsWith(__INCLUDE_PREFIX) &&
!name.startsWith(__FORWARD_PREFIX)) !name.startsWith(__FORWARD_PREFIX))
set.add(name); set.add(name);
@ -384,6 +382,7 @@ public class Dispatcher implements RequestDispatcher
} }
/* ------------------------------------------------------------ */ /* ------------------------------------------------------------ */
@Override
public void setAttribute(String key, Object value) public void setAttribute(String key, Object value)
{ {
if (_named==null && key.startsWith("javax.servlet.")) if (_named==null && key.startsWith("javax.servlet."))
@ -418,12 +417,14 @@ public class Dispatcher implements RequestDispatcher
} }
/* ------------------------------------------------------------ */ /* ------------------------------------------------------------ */
@Override
public void clearAttributes() public void clearAttributes()
{ {
throw new IllegalStateException(); throw new IllegalStateException();
} }
/* ------------------------------------------------------------ */ /* ------------------------------------------------------------ */
@Override
public void removeAttribute(String name) public void removeAttribute(String name)
{ {
setAttribute(name,null); setAttribute(name,null);
@ -449,6 +450,7 @@ public class Dispatcher implements RequestDispatcher
/* ------------------------------------------------------------ */ /* ------------------------------------------------------------ */
/* ------------------------------------------------------------ */ /* ------------------------------------------------------------ */
/* ------------------------------------------------------------ */ /* ------------------------------------------------------------ */
@Override
public Object getAttribute(String key) public Object getAttribute(String key)
{ {
if (Dispatcher.this._named==null) if (Dispatcher.this._named==null)
@ -467,13 +469,14 @@ public class Dispatcher implements RequestDispatcher
} }
/* ------------------------------------------------------------ */ /* ------------------------------------------------------------ */
public Enumeration getAttributeNames() @Override
public Enumeration<String> getAttributeNames()
{ {
HashSet set=new HashSet(); HashSet<String> set=new HashSet<>();
Enumeration e=_attr.getAttributeNames(); Enumeration<String> e=_attr.getAttributeNames();
while(e.hasMoreElements()) while(e.hasMoreElements())
{ {
String name=(String)e.nextElement(); String name=e.nextElement();
if (!name.startsWith(__INCLUDE_PREFIX)) if (!name.startsWith(__INCLUDE_PREFIX))
set.add(name); set.add(name);
} }
@ -497,6 +500,7 @@ public class Dispatcher implements RequestDispatcher
} }
/* ------------------------------------------------------------ */ /* ------------------------------------------------------------ */
@Override
public void setAttribute(String key, Object value) public void setAttribute(String key, Object value)
{ {
if (_named==null && key.startsWith("javax.servlet.")) if (_named==null && key.startsWith("javax.servlet."))
@ -525,12 +529,14 @@ public class Dispatcher implements RequestDispatcher
} }
/* ------------------------------------------------------------ */ /* ------------------------------------------------------------ */
@Override
public void clearAttributes() public void clearAttributes()
{ {
throw new IllegalStateException(); throw new IllegalStateException();
} }
/* ------------------------------------------------------------ */ /* ------------------------------------------------------------ */
@Override
public void removeAttribute(String name) public void removeAttribute(String name)
{ {
setAttribute(name,null); setAttribute(name,null);

View File

@ -398,7 +398,6 @@ public class HttpChannelState implements AsyncContext, Continuation
{ {
synchronized (this) synchronized (this)
{ {
// TODO should we change state here?
if (_event!=null) if (_event!=null)
_event._cause=th; _event._cause=th;
} }
@ -554,7 +553,6 @@ public class HttpChannelState implements AsyncContext, Continuation
if (_continuation) if (_continuation)
dispatch(); dispatch();
else else
// TODO maybe error dispatch?
complete(); complete();
} }
} }

View File

@ -21,12 +21,13 @@ package org.eclipse.jetty.server;
import java.io.IOException; import java.io.IOException;
import java.io.PrintWriter; import java.io.PrintWriter;
import java.nio.channels.IllegalSelectorException; import java.nio.channels.IllegalSelectorException;
import java.util.Collection;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections; import java.util.Collections;
import java.util.Enumeration; import java.util.Enumeration;
import java.util.Locale; import java.util.Locale;
import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicInteger;
import javax.servlet.RequestDispatcher; import javax.servlet.RequestDispatcher;
import javax.servlet.ServletOutputStream; import javax.servlet.ServletOutputStream;
import javax.servlet.http.Cookie; import javax.servlet.http.Cookie;
@ -790,19 +791,6 @@ public class Response implements HttpServletResponse
} }
} }
} }
/* TODO merged code not used???
else if (_mimeType!=null)
_contentType=_mimeType;
if (_contentType==null)
_connection.getResponseFields().remove(HttpHeaders.CONTENT_TYPE_BUFFER);
else
_connection.getResponseFields().put(HttpHeaders.CONTENT_TYPE_BUFFER,_contentType);
*/
} }
@Override @Override

View File

@ -44,14 +44,11 @@ import org.eclipse.jetty.util.Attributes;
import org.eclipse.jetty.util.AttributesMap; import org.eclipse.jetty.util.AttributesMap;
import org.eclipse.jetty.util.Jetty; import org.eclipse.jetty.util.Jetty;
import org.eclipse.jetty.util.MultiException; import org.eclipse.jetty.util.MultiException;
import org.eclipse.jetty.util.TypeUtil;
import org.eclipse.jetty.util.URIUtil; import org.eclipse.jetty.util.URIUtil;
import org.eclipse.jetty.util.annotation.ManagedAttribute; import org.eclipse.jetty.util.annotation.ManagedAttribute;
import org.eclipse.jetty.util.annotation.ManagedObject; import org.eclipse.jetty.util.annotation.ManagedObject;
import org.eclipse.jetty.util.annotation.Name; import org.eclipse.jetty.util.annotation.Name;
import org.eclipse.jetty.util.component.Destroyable;
import org.eclipse.jetty.util.component.Graceful; import org.eclipse.jetty.util.component.Graceful;
import org.eclipse.jetty.util.component.LifeCycle;
import org.eclipse.jetty.util.log.Log; import org.eclipse.jetty.util.log.Log;
import org.eclipse.jetty.util.log.Logger; import org.eclipse.jetty.util.log.Logger;
import org.eclipse.jetty.util.thread.QueuedThreadPool; import org.eclipse.jetty.util.thread.QueuedThreadPool;
@ -570,21 +567,6 @@ public class Server extends HandlerWrapper implements Attributes
_attributes.setAttribute(name, attribute); _attributes.setAttribute(name, attribute);
} }
/* ------------------------------------------------------------ */
/**
* Set graceful shutdown timeout. If set, the internal <code>doStop()</code> method will not immediately stop the
* server. Instead, all {@link Connector}s will be closed so that new connections will not be accepted
* and all handlers that implement {@link Graceful} will be put into the shutdown mode so that no new requests
* will be accepted, but existing requests can complete. The server will then wait the configured timeout
* before stopping.
* @param timeoutMS the milliseconds to wait for existing request to complete before stopping the server.
*
*/
public void setGracefulShutdown(int timeoutMS)
{
// TODO
}
/* ------------------------------------------------------------ */ /* ------------------------------------------------------------ */
@Override @Override
public String toString() public String toString()

View File

@ -20,13 +20,10 @@
package org.eclipse.jetty.server; package org.eclipse.jetty.server;
import java.nio.channels.SocketChannel;
import javax.net.ssl.SSLEngine; import javax.net.ssl.SSLEngine;
import javax.net.ssl.SSLSession; import javax.net.ssl.SSLSession;
import org.eclipse.jetty.http.HttpVersion; import org.eclipse.jetty.http.HttpVersion;
import org.eclipse.jetty.io.ChannelEndPoint;
import org.eclipse.jetty.io.Connection; import org.eclipse.jetty.io.Connection;
import org.eclipse.jetty.io.EndPoint; import org.eclipse.jetty.io.EndPoint;
import org.eclipse.jetty.io.ssl.SslConnection; import org.eclipse.jetty.io.ssl.SslConnection;

View File

@ -19,14 +19,12 @@
package org.eclipse.jetty.server.handler; package org.eclipse.jetty.server.handler;
import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import org.eclipse.jetty.server.Handler; import org.eclipse.jetty.server.Handler;
import org.eclipse.jetty.server.HandlerContainer; import org.eclipse.jetty.server.HandlerContainer;
import org.eclipse.jetty.util.TypeUtil;
/* ------------------------------------------------------------ */ /* ------------------------------------------------------------ */

View File

@ -33,9 +33,11 @@ import java.util.EventListener;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.ListIterator;
import java.util.Locale; import java.util.Locale;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.Future; import java.util.concurrent.Future;
import javax.servlet.DispatcherType; import javax.servlet.DispatcherType;
@ -67,11 +69,9 @@ import org.eclipse.jetty.server.Handler;
import org.eclipse.jetty.server.HandlerContainer; import org.eclipse.jetty.server.HandlerContainer;
import org.eclipse.jetty.server.Request; import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.util.ArrayUtil;
import org.eclipse.jetty.util.Attributes; import org.eclipse.jetty.util.Attributes;
import org.eclipse.jetty.util.AttributesMap; import org.eclipse.jetty.util.AttributesMap;
import org.eclipse.jetty.util.FutureCallback; import org.eclipse.jetty.util.FutureCallback;
import org.eclipse.jetty.util.LazyList;
import org.eclipse.jetty.util.Loader; import org.eclipse.jetty.util.Loader;
import org.eclipse.jetty.util.StringUtil; import org.eclipse.jetty.util.StringUtil;
import org.eclipse.jetty.util.URIUtil; import org.eclipse.jetty.util.URIUtil;
@ -127,9 +127,7 @@ public class ContextHandler extends ScopedHandler implements Attributes, Gracefu
private final AttributesMap _attributes; private final AttributesMap _attributes;
private final AttributesMap _contextAttributes; private final AttributesMap _contextAttributes;
private final Map<String, String> _initParams; private final Map<String, String> _initParams;
private ClassLoader _classLoader; private ClassLoader _classLoader;
private String _contextPath = "/"; private String _contextPath = "/";
@ -138,30 +136,23 @@ public class ContextHandler extends ScopedHandler implements Attributes, Gracefu
private Resource _baseResource; private Resource _baseResource;
private MimeTypes _mimeTypes; private MimeTypes _mimeTypes;
private Map<String, String> _localeEncodingMap; private Map<String, String> _localeEncodingMap;
private String[] _welcomeFiles; private String[] _welcomeFiles;
private ErrorHandler _errorHandler; private ErrorHandler _errorHandler;
private String[] _vhosts; private String[] _vhosts;
private EventListener[] _eventListeners;
private Logger _logger; private Logger _logger;
private boolean _allowNullPathInfo; private boolean _allowNullPathInfo;
private int _maxFormKeys = Integer.getInteger("org.eclipse.jetty.server.Request.maxFormKeys",1000).intValue(); private int _maxFormKeys = Integer.getInteger("org.eclipse.jetty.server.Request.maxFormKeys",1000).intValue();
private int _maxFormContentSize = Integer.getInteger("org.eclipse.jetty.server.Request.maxFormContentSize",200000).intValue(); private int _maxFormContentSize = Integer.getInteger("org.eclipse.jetty.server.Request.maxFormContentSize",200000).intValue();
private boolean _compactPath = false; private boolean _compactPath = false;
private boolean _aliases = false; private boolean _aliases = false;
private Object _contextListeners; private final List<EventListener> _eventListeners=new CopyOnWriteArrayList<>();
private Object _contextAttributeListeners; private final List<EventListener> _programmaticListeners=new CopyOnWriteArrayList<>();
private Object _requestListeners; private final List<ServletContextListener> _contextListeners=new CopyOnWriteArrayList<>();
private Object _requestAttributeListeners; private final List<ServletContextAttributeListener> _contextAttributeListeners=new CopyOnWriteArrayList<>();
private final List<ServletRequestListener> _requestListeners=new CopyOnWriteArrayList<>();
private final List<ServletRequestAttributeListener> _requestAttributeListeners=new CopyOnWriteArrayList<>();
private Map<String, Object> _managedAttributes; private Map<String, Object> _managedAttributes;
private String[] _protectedTargets; private String[] _protectedTargets;
@ -396,9 +387,8 @@ public class ContextHandler extends ScopedHandler implements Attributes, Gracefu
/* /*
* @see javax.servlet.ServletContext#getAttributeNames() * @see javax.servlet.ServletContext#getAttributeNames()
*/ */
@SuppressWarnings("unchecked")
@Override @Override
public Enumeration getAttributeNames() public Enumeration<String> getAttributeNames()
{ {
return AttributesMap.getAttributeNamesCopy(_attributes); return AttributesMap.getAttributeNamesCopy(_attributes);
} }
@ -518,7 +508,7 @@ public class ContextHandler extends ScopedHandler implements Attributes, Gracefu
/* ------------------------------------------------------------ */ /* ------------------------------------------------------------ */
public EventListener[] getEventListeners() public EventListener[] getEventListeners()
{ {
return _eventListeners; return _eventListeners.toArray(new EventListener[_eventListeners.size()]);
} }
/* ------------------------------------------------------------ */ /* ------------------------------------------------------------ */
@ -534,29 +524,14 @@ public class ContextHandler extends ScopedHandler implements Attributes, Gracefu
*/ */
public void setEventListeners(EventListener[] eventListeners) public void setEventListeners(EventListener[] eventListeners)
{ {
_contextListeners = null; _contextListeners.clear();
_contextAttributeListeners = null; _contextAttributeListeners.clear();
_requestListeners = null; _requestListeners.clear();
_requestAttributeListeners = null; _requestAttributeListeners.clear();
_eventListeners = eventListeners; if (eventListeners!=null)
for (EventListener listener : _eventListeners)
for (int i = 0; eventListeners != null && i < eventListeners.length; i++) addEventListener(listener);
{
EventListener listener = _eventListeners[i];
if (listener instanceof ServletContextListener)
_contextListeners = LazyList.add(_contextListeners,listener);
if (listener instanceof ServletContextAttributeListener)
_contextAttributeListeners = LazyList.add(_contextAttributeListeners,listener);
if (listener instanceof ServletRequestListener)
_requestListeners = LazyList.add(_requestListeners,listener);
if (listener instanceof ServletRequestAttributeListener)
_requestAttributeListeners = LazyList.add(_requestAttributeListeners,listener);
}
} }
/* ------------------------------------------------------------ */ /* ------------------------------------------------------------ */
@ -570,20 +545,62 @@ public class ContextHandler extends ScopedHandler implements Attributes, Gracefu
*/ */
public void addEventListener(EventListener listener) public void addEventListener(EventListener listener)
{ {
setEventListeners((EventListener[])ArrayUtil.addToArray(getEventListeners(),listener,EventListener.class)); _eventListeners.add(listener);
if (listener instanceof ServletContextListener)
_contextListeners.add((ServletContextListener)listener);
if (listener instanceof ServletContextAttributeListener)
_contextAttributeListeners.add((ServletContextAttributeListener)listener);
if (listener instanceof ServletRequestListener)
_requestListeners.add((ServletRequestListener)listener);
if (listener instanceof ServletRequestAttributeListener)
_requestAttributeListeners.add((ServletRequestAttributeListener)listener);
} }
/* ------------------------------------------------------------ */
/** /**
* Apply any necessary restrictions on a programmatically added * Remove a context event listeners.
* listener.
* *
* Superclasses should implement. * @see ServletContextListener
* @see ServletContextAttributeListener
* @see ServletRequestListener
* @see ServletRequestAttributeListener
*/
public void removeEventListener(EventListener listener)
{
_eventListeners.remove(listener);
if (listener instanceof ServletContextListener)
_contextListeners.remove(listener);
if (listener instanceof ServletContextAttributeListener)
_contextAttributeListeners.remove(listener);
if (listener instanceof ServletRequestListener)
_requestListeners.remove(listener);
if (listener instanceof ServletRequestAttributeListener)
_requestAttributeListeners.remove(listener);
}
/* ------------------------------------------------------------ */
/**
* Apply any necessary restrictions on a programmatic added listener.
* *
* @param listener * @param listener
*/ */
public void restrictEventListener (EventListener listener) protected void addProgrammaticListener (EventListener listener)
{ {
_programmaticListeners.add(listener);
}
/* ------------------------------------------------------------ */
protected boolean isProgrammaticListener(EventListener listener)
{
return _programmaticListeners.contains(listener);
} }
/* ------------------------------------------------------------ */ /* ------------------------------------------------------------ */
@ -696,12 +713,9 @@ public class ContextHandler extends ScopedHandler implements Attributes, Gracefu
__context.set(old_context); __context.set(old_context);
// reset the classloader // reset the classloader
if (_classLoader != null) if (_classLoader != null && current_thread!=null)
{
current_thread.setContextClassLoader(old_classloader); current_thread.setContextClassLoader(old_classloader);
} }
}
} }
/* ------------------------------------------------------------ */ /* ------------------------------------------------------------ */
@ -721,10 +735,10 @@ public class ContextHandler extends ScopedHandler implements Attributes, Gracefu
for (String attribute : attributes) for (String attribute : attributes)
_managedAttributes.put(attribute,null); _managedAttributes.put(attribute,null);
Enumeration e = _scontext.getAttributeNames(); Enumeration<String> e = _scontext.getAttributeNames();
while (e.hasMoreElements()) while (e.hasMoreElements())
{ {
String name = (String)e.nextElement(); String name = e.nextElement();
Object value = _scontext.getAttribute(name); Object value = _scontext.getAttribute(name);
checkManagedAttribute(name,value); checkManagedAttribute(name,value);
} }
@ -733,24 +747,22 @@ public class ContextHandler extends ScopedHandler implements Attributes, Gracefu
super.doStart(); super.doStart();
// Context listeners // Context listeners
if (_contextListeners != null) if (!_contextListeners.isEmpty())
{ {
ServletContextEvent event = new ServletContextEvent(_scontext); ServletContextEvent event = new ServletContextEvent(_scontext);
for (int i = 0; i < LazyList.size(_contextListeners); i++) for (ServletContextListener listener:_contextListeners)
{ callContextInitialized(listener, event);
callContextInitialized(((ServletContextListener)LazyList.get(_contextListeners, i)), event);
}
} }
} }
/* ------------------------------------------------------------ */ /* ------------------------------------------------------------ */
public void callContextInitialized (ServletContextListener l, ServletContextEvent e) protected void callContextInitialized (ServletContextListener l, ServletContextEvent e)
{ {
l.contextInitialized(e); l.contextInitialized(e);
} }
/* ------------------------------------------------------------ */ /* ------------------------------------------------------------ */
public void callContextDestroyed (ServletContextListener l, ServletContextEvent e) protected void callContextDestroyed (ServletContextListener l, ServletContextEvent e)
{ {
l.contextDestroyed(e); l.contextDestroyed(e);
} }
@ -782,31 +794,33 @@ public class ContextHandler extends ScopedHandler implements Attributes, Gracefu
super.doStop(); super.doStop();
// Context listeners // Context listeners
if (_contextListeners != null) if (!_contextListeners.isEmpty())
{ {
ServletContextEvent event = new ServletContextEvent(_scontext); ServletContextEvent event = new ServletContextEvent(_scontext);
for (int i = LazyList.size(_contextListeners); i-- > 0;) for (ServletContextListener listener : _contextListeners)
{ callContextDestroyed(listener,event);
((ServletContextListener)LazyList.get(_contextListeners,i)).contextDestroyed(event);
}
} }
if (_errorHandler != null) if (_errorHandler != null)
_errorHandler.stop(); _errorHandler.stop();
Enumeration e = _scontext.getAttributeNames(); Enumeration<String> e = _scontext.getAttributeNames();
while (e.hasMoreElements()) while (e.hasMoreElements())
{ {
String name = (String)e.nextElement(); String name = e.nextElement();
checkManagedAttribute(name,null); checkManagedAttribute(name,null);
} }
for (EventListener l : _programmaticListeners)
removeEventListener(l);
_programmaticListeners.clear();
} }
finally finally
{ {
LOG.info("stopped {}",this); LOG.info("stopped {}",this);
__context.set(old_context); __context.set(old_context);
// reset the classloader // reset the classloader
if (_classLoader != null) if (_classLoader != null && current_thread!=null)
current_thread.setContextClassLoader(old_classloader); current_thread.setContextClassLoader(old_classloader);
} }
@ -817,7 +831,7 @@ public class ContextHandler extends ScopedHandler implements Attributes, Gracefu
/* /*
* @see org.eclipse.jetty.server.Handler#handle(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) * @see org.eclipse.jetty.server.Handler#handle(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/ */
public boolean checkContext(final String target, final Request baseRequest, final HttpServletResponse response) throws IOException, ServletException public boolean checkContext(final String target, final Request baseRequest, final HttpServletResponse response) throws IOException
{ {
DispatcherType dispatch = baseRequest.getDispatcherType(); DispatcherType dispatch = baseRequest.getDispatcherType();
@ -840,7 +854,6 @@ public class ContextHandler extends ScopedHandler implements Attributes, Gracefu
boolean match = false; boolean match = false;
// TODO non-linear lookup
for (int i = 0; !match && i < _vhosts.length; i++) for (int i = 0; !match && i < _vhosts.length; i++)
{ {
String contextVhost = _vhosts[i]; String contextVhost = _vhosts[i];
@ -982,7 +995,7 @@ public class ContextHandler extends ScopedHandler implements Attributes, Gracefu
if (old_context != _scontext) if (old_context != _scontext)
{ {
// reset the classloader // reset the classloader
if (_classLoader != null) if (_classLoader != null && current_thread!=null)
{ {
current_thread.setContextClassLoader(old_classloader); current_thread.setContextClassLoader(old_classloader);
} }
@ -1012,20 +1025,15 @@ public class ContextHandler extends ScopedHandler implements Attributes, Gracefu
if (new_context) if (new_context)
{ {
// Handle the REALLY SILLY request events! // Handle the REALLY SILLY request events!
if (_requestAttributeListeners != null) if (!_requestAttributeListeners.isEmpty())
{ for (ServletRequestAttributeListener l :_requestAttributeListeners)
// TODO COW lists ??? baseRequest.addEventListener(l);
final int s = LazyList.size(_requestAttributeListeners);
for (int i = 0; i < s; i++)
baseRequest.addEventListener(((EventListener)LazyList.get(_requestAttributeListeners,i)));
}
if (_requestListeners != null) if (!_requestListeners.isEmpty())
{ {
final int s = LazyList.size(_requestListeners);
final ServletRequestEvent sre = new ServletRequestEvent(_scontext,request); final ServletRequestEvent sre = new ServletRequestEvent(_scontext,request);
for (int i = 0; i < s; i++) for (ServletRequestListener l : _requestListeners)
((ServletRequestListener)LazyList.get(_requestListeners,i)).requestInitialized(sre); l.requestInitialized(sre);
} }
} }
@ -1051,17 +1059,23 @@ public class ContextHandler extends ScopedHandler implements Attributes, Gracefu
// Handle more REALLY SILLY request events! // Handle more REALLY SILLY request events!
if (new_context) if (new_context)
{ {
if (_requestListeners != null) if (!_requestListeners.isEmpty())
{ {
final ServletRequestEvent sre = new ServletRequestEvent(_scontext,request); final ServletRequestEvent sre = new ServletRequestEvent(_scontext,request);
for (int i = LazyList.size(_requestListeners); i-- > 0;) ListIterator<ServletRequestListener> iter = _requestListeners.listIterator(_requestListeners.size());
((ServletRequestListener)LazyList.get(_requestListeners,i)).requestDestroyed(sre); while (iter.hasNext())
iter.next();
while (iter.hasPrevious())
iter.previous().requestDestroyed(sre);
} }
if (_requestAttributeListeners != null) if (!_requestAttributeListeners.isEmpty())
{ {
for (int i = LazyList.size(_requestAttributeListeners); i-- > 0;) ListIterator<ServletRequestAttributeListener> iter = _requestAttributeListeners.listIterator(_requestAttributeListeners.size());
baseRequest.removeEventListener(((EventListener)LazyList.get(_requestAttributeListeners,i))); while(iter.hasNext())
iter.next();
while(iter.hasPrevious())
baseRequest.removeEventListener(iter.previous());
} }
} }
} }
@ -1094,7 +1108,7 @@ public class ContextHandler extends ScopedHandler implements Attributes, Gracefu
finally finally
{ {
__context.set(old_context); __context.set(old_context);
if (old_classloader != null) if (old_classloader != null && current_thread!=null)
{ {
current_thread.setContextClassLoader(old_classloader); current_thread.setContextClassLoader(old_classloader);
} }
@ -1182,10 +1196,10 @@ public class ContextHandler extends ScopedHandler implements Attributes, Gracefu
{ {
_attributes.clearAttributes(); _attributes.clearAttributes();
_attributes.addAll(attributes); _attributes.addAll(attributes);
Enumeration e = _attributes.getAttributeNames(); Enumeration<String> e = _attributes.getAttributeNames();
while (e.hasMoreElements()) while (e.hasMoreElements())
{ {
String name = (String)e.nextElement(); String name = e.nextElement();
checkManagedAttribute(name,attributes.getAttribute(name)); checkManagedAttribute(name,attributes.getAttribute(name));
} }
} }
@ -1194,10 +1208,10 @@ public class ContextHandler extends ScopedHandler implements Attributes, Gracefu
@Override @Override
public void clearAttributes() public void clearAttributes()
{ {
Enumeration e = _attributes.getAttributeNames(); Enumeration<String> e = _attributes.getAttributeNames();
while (e.hasMoreElements()) while (e.hasMoreElements())
{ {
String name = (String)e.nextElement(); String name = e.nextElement();
checkManagedAttribute(name,null); checkManagedAttribute(name,null);
} }
_attributes.clearAttributes(); _attributes.clearAttributes();
@ -1651,7 +1665,6 @@ public class ContextHandler extends ScopedHandler implements Attributes, Gracefu
/* ------------------------------------------------------------ */ /* ------------------------------------------------------------ */
public ContextHandler getContextHandler() public ContextHandler getContextHandler()
{ {
// TODO reduce visibility of this method
return ContextHandler.this; return ContextHandler.this;
} }
@ -1890,7 +1903,7 @@ public class ContextHandler extends ScopedHandler implements Attributes, Gracefu
* @see javax.servlet.ServletContext#getResourcePaths(java.lang.String) * @see javax.servlet.ServletContext#getResourcePaths(java.lang.String)
*/ */
@Override @Override
public Set getResourcePaths(String path) public Set<String> getResourcePaths(String path)
{ {
return ContextHandler.this.getResourcePaths(path); return ContextHandler.this.getResourcePaths(path);
} }
@ -1923,7 +1936,7 @@ public class ContextHandler extends ScopedHandler implements Attributes, Gracefu
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
@Override @Override
@Deprecated @Deprecated
public Enumeration getServletNames() public Enumeration<String> getServletNames()
{ {
return Collections.enumeration(Collections.EMPTY_LIST); return Collections.enumeration(Collections.EMPTY_LIST);
} }
@ -1935,7 +1948,7 @@ public class ContextHandler extends ScopedHandler implements Attributes, Gracefu
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
@Override @Override
@Deprecated @Deprecated
public Enumeration getServlets() public Enumeration<Servlet> getServlets()
{ {
return Collections.enumeration(Collections.EMPTY_LIST); return Collections.enumeration(Collections.EMPTY_LIST);
} }
@ -1986,7 +1999,7 @@ public class ContextHandler extends ScopedHandler implements Attributes, Gracefu
*/ */
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
@Override @Override
public Enumeration getInitParameterNames() public Enumeration<String> getInitParameterNames()
{ {
return ContextHandler.this.getInitParameterNames(); return ContextHandler.this.getInitParameterNames();
} }
@ -2008,9 +2021,8 @@ public class ContextHandler extends ScopedHandler implements Attributes, Gracefu
/* /*
* @see javax.servlet.ServletContext#getAttributeNames() * @see javax.servlet.ServletContext#getAttributeNames()
*/ */
@SuppressWarnings("unchecked")
@Override @Override
public synchronized Enumeration getAttributeNames() public synchronized Enumeration<String> getAttributeNames()
{ {
HashSet<String> set = new HashSet<String>(); HashSet<String> set = new HashSet<String>();
if (_contextAttributes != null) if (_contextAttributes != null)
@ -2041,14 +2053,12 @@ public class ContextHandler extends ScopedHandler implements Attributes, Gracefu
else else
_contextAttributes.setAttribute(name,value); _contextAttributes.setAttribute(name,value);
if (_contextAttributeListeners != null) if (!_contextAttributeListeners.isEmpty())
{ {
ServletContextAttributeEvent event = new ServletContextAttributeEvent(_scontext,name,old_value == null?value:old_value); ServletContextAttributeEvent event = new ServletContextAttributeEvent(_scontext,name,old_value == null?value:old_value);
for (int i = 0; i < LazyList.size(_contextAttributeListeners); i++) for (ServletContextAttributeListener l : _contextAttributeListeners)
{ {
ServletContextAttributeListener l = (ServletContextAttributeListener)LazyList.get(_contextAttributeListeners,i);
if (old_value == null) if (old_value == null)
l.attributeAdded(event); l.attributeAdded(event);
else if (value == null) else if (value == null)
@ -2077,15 +2087,12 @@ public class ContextHandler extends ScopedHandler implements Attributes, Gracefu
Object old_value = _contextAttributes.getAttribute(name); Object old_value = _contextAttributes.getAttribute(name);
_contextAttributes.removeAttribute(name); _contextAttributes.removeAttribute(name);
if (old_value != null) if (old_value != null &&!_contextAttributeListeners.isEmpty())
{
if (_contextAttributeListeners != null)
{ {
ServletContextAttributeEvent event = new ServletContextAttributeEvent(_scontext,name,old_value); ServletContextAttributeEvent event = new ServletContextAttributeEvent(_scontext,name,old_value);
for (int i = 0; i < LazyList.size(_contextAttributeListeners); i++) for (ServletContextAttributeListener l : _contextAttributeListeners)
((ServletContextAttributeListener)LazyList.get(_contextAttributeListeners,i)).attributeRemoved(event); l.attributeRemoved(event);
}
} }
} }
@ -2278,7 +2285,7 @@ public class ContextHandler extends ScopedHandler implements Attributes, Gracefu
{ {
EventListener e = createListener(listenerClass); EventListener e = createListener(listenerClass);
ContextHandler.this.addEventListener(e); ContextHandler.this.addEventListener(e);
ContextHandler.this.restrictEventListener(e); ContextHandler.this.addProgrammaticListener(e);
} }
catch (ServletException e) catch (ServletException e)
{ {
@ -2351,9 +2358,6 @@ public class ContextHandler extends ScopedHandler implements Attributes, Gracefu
throw new IllegalStateException (); throw new IllegalStateException ();
if (!_enabled) if (!_enabled)
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();
// TODO Auto-generated method stub
} }
public void setEnabled(boolean enabled) public void setEnabled(boolean enabled)

View File

@ -46,7 +46,6 @@ import org.eclipse.jetty.util.resource.Resource;
* For requests for favicon.ico, the Jetty icon is served. * For requests for favicon.ico, the Jetty icon is served.
* For reqests to '/' a 404 with a list of known contexts is served. * For reqests to '/' a 404 with a list of known contexts is served.
* For all other requests a normal 404 is served. * For all other requests a normal 404 is served.
* TODO Implement OPTIONS and TRACE methods for the server.
* *
* *
* @org.apache.xbean.XBean * @org.apache.xbean.XBean

View File

@ -62,7 +62,7 @@ public class ErrorHandler extends AbstractHandler
if (_cacheControl!=null) if (_cacheControl!=null)
response.setHeader(HttpHeader.CACHE_CONTROL.asString(), _cacheControl); response.setHeader(HttpHeader.CACHE_CONTROL.asString(), _cacheControl);
ByteArrayISO8859Writer writer= new ByteArrayISO8859Writer(4096); ByteArrayISO8859Writer writer= new ByteArrayISO8859Writer(4096);
String reason=(response instanceof Response)?((Response)response).getReason():null; // TODO String reason=(response instanceof Response)?((Response)response).getReason():null;
handleErrorPage(request, writer, response.getStatus(), reason); handleErrorPage(request, writer, response.getStatus(), reason);
writer.flush(); writer.flush();
response.setContentLength(writer.size()); response.setContentLength(writer.size());

View File

@ -20,7 +20,6 @@ package org.eclipse.jetty.server.handler;
import java.io.IOException; import java.io.IOException;
import java.util.List; import java.util.List;
import java.util.concurrent.CountDownLatch;
import javax.servlet.ServletException; import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;

View File

@ -29,7 +29,6 @@ import org.eclipse.jetty.server.HttpChannelState;
import org.eclipse.jetty.server.Request; import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.RequestLog; import org.eclipse.jetty.server.RequestLog;
import org.eclipse.jetty.server.Response; import org.eclipse.jetty.server.Response;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.util.log.Log; import org.eclipse.jetty.util.log.Log;
import org.eclipse.jetty.util.log.Logger; import org.eclipse.jetty.util.log.Logger;

View File

@ -27,15 +27,14 @@ import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.Executor; import java.util.concurrent.Executor;
import org.eclipse.jetty.io.ByteBufferPool; import org.eclipse.jetty.io.ByteBufferPool;
import org.eclipse.jetty.io.EndPoint;
import org.eclipse.jetty.io.NetworkTrafficListener; import org.eclipse.jetty.io.NetworkTrafficListener;
import org.eclipse.jetty.io.NetworkTrafficSelectChannelEndPoint; import org.eclipse.jetty.io.NetworkTrafficSelectChannelEndPoint;
import org.eclipse.jetty.io.SelectChannelEndPoint; import org.eclipse.jetty.io.SelectChannelEndPoint;
import org.eclipse.jetty.io.SelectorManager; import org.eclipse.jetty.io.SelectorManager;
import org.eclipse.jetty.server.ConnectionFactory; import org.eclipse.jetty.server.ConnectionFactory;
import org.eclipse.jetty.server.HttpConnectionFactory; import org.eclipse.jetty.server.HttpConnectionFactory;
import org.eclipse.jetty.server.ServerConnector;
import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.ServerConnector;
import org.eclipse.jetty.util.ssl.SslContextFactory; import org.eclipse.jetty.util.ssl.SslContextFactory;
import org.eclipse.jetty.util.thread.Scheduler; import org.eclipse.jetty.util.thread.Scheduler;

View File

@ -21,6 +21,7 @@ package org.eclipse.jetty.server.session;
import java.io.IOException; import java.io.IOException;
import java.util.EnumSet; import java.util.EnumSet;
import java.util.EventListener; import java.util.EventListener;
import javax.servlet.DispatcherType; import javax.servlet.DispatcherType;
import javax.servlet.ServletException; import javax.servlet.ServletException;
import javax.servlet.SessionTrackingMode; import javax.servlet.SessionTrackingMode;
@ -31,7 +32,6 @@ import javax.servlet.http.HttpSession;
import org.eclipse.jetty.http.HttpCookie; import org.eclipse.jetty.http.HttpCookie;
import org.eclipse.jetty.server.Request; import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.SessionManager; import org.eclipse.jetty.server.SessionManager;
import org.eclipse.jetty.server.handler.ScopedHandler; import org.eclipse.jetty.server.handler.ScopedHandler;
import org.eclipse.jetty.util.log.Log; import org.eclipse.jetty.util.log.Log;
@ -319,6 +319,16 @@ public class SessionHandler extends ScopedHandler
_sessionManager.addEventListener(listener); _sessionManager.addEventListener(listener);
} }
/* ------------------------------------------------------------ */
/**
* @param listener
*/
public void removeEventListener(EventListener listener)
{
if (_sessionManager != null)
_sessionManager.removeEventListener(listener);
}
/* ------------------------------------------------------------ */ /* ------------------------------------------------------------ */
public void clearEventListeners() public void clearEventListeners()
{ {

View File

@ -20,8 +20,8 @@ package org.eclipse.jetty.server.ssl;
import org.eclipse.jetty.server.AbstractConnectionFactory; import org.eclipse.jetty.server.AbstractConnectionFactory;
import org.eclipse.jetty.server.HttpConnectionFactory; import org.eclipse.jetty.server.HttpConnectionFactory;
import org.eclipse.jetty.server.ServerConnector;
import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.ServerConnector;
import org.eclipse.jetty.util.ssl.SslContextFactory; import org.eclipse.jetty.util.ssl.SslContextFactory;
/* ------------------------------------------------------------ */ /* ------------------------------------------------------------ */

View File

@ -45,7 +45,6 @@ import org.eclipse.jetty.util.log.Logger;
import org.eclipse.jetty.util.thread.QueuedThreadPool; import org.eclipse.jetty.util.thread.QueuedThreadPool;
import org.junit.After; import org.junit.After;
import org.junit.Before; import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;

View File

@ -27,6 +27,7 @@ import java.net.Socket;
import java.util.concurrent.CountDownLatch; import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicInteger;
import javax.servlet.ServletException; import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;

View File

@ -18,6 +18,11 @@
package org.eclipse.jetty.server; package org.eclipse.jetty.server;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.matchers.JUnitMatchers.containsString;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.OutputStream; import java.io.OutputStream;
@ -25,6 +30,7 @@ import java.net.Socket;
import java.net.SocketException; import java.net.SocketException;
import java.util.concurrent.Exchanger; import java.util.concurrent.Exchanger;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import javax.net.ssl.SSLException; import javax.net.ssl.SSLException;
import javax.servlet.ServletException; import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
@ -37,11 +43,6 @@ import org.eclipse.jetty.util.IO;
import org.junit.Assert; import org.junit.Assert;
import org.junit.Test; import org.junit.Test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.matchers.JUnitMatchers.containsString;
public abstract class ConnectorTimeoutTest extends HttpServerTestFixture public abstract class ConnectorTimeoutTest extends HttpServerTestFixture
{ {
protected static final int MAX_IDLE_TIME=500; protected static final int MAX_IDLE_TIME=500;

View File

@ -409,7 +409,7 @@ public class HttpManyWaysToAsyncCommitTest extends AbstractHttpTest
assertThat("response code is 200", response.getCode(), is("200")); assertThat("response code is 200", response.getCode(), is("200"));
assertThat("no exceptions", handler.failure(), is(nullValue())); assertThat("no exceptions", handler.failure(), is(nullValue()));
if (!"HTTP/1.0".equals(httpVersion)) if (!"HTTP/1.0".equals(httpVersion))
assertHeader(response, "transfer-encoding", "chunked"); // TODO HTTP/1.0 does not do chunked assertHeader(response, "transfer-encoding", "chunked");
} }
private class WriteFlushWriteMoreHandler extends ThrowExceptionOnDemandHandler private class WriteFlushWriteMoreHandler extends ThrowExceptionOnDemandHandler

View File

@ -19,6 +19,7 @@
package org.eclipse.jetty.server; package org.eclipse.jetty.server;
import static org.hamcrest.Matchers.greaterThanOrEqualTo; import static org.hamcrest.Matchers.greaterThanOrEqualTo;
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertThat; import static org.junit.Assert.assertThat;
@ -37,6 +38,7 @@ import java.util.Arrays;
import java.util.Random; import java.util.Random;
import java.util.concurrent.Exchanger; import java.util.concurrent.Exchanger;
import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicBoolean;
import javax.servlet.ServletException; import javax.servlet.ServletException;
import javax.servlet.ServletInputStream; import javax.servlet.ServletInputStream;
import javax.servlet.ServletOutputStream; import javax.servlet.ServletOutputStream;
@ -54,9 +56,6 @@ import org.hamcrest.Matchers;
import org.junit.Assert; import org.junit.Assert;
import org.junit.Test; import org.junit.Test;
import org.junit.matchers.JUnitMatchers; import org.junit.matchers.JUnitMatchers;
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertTrue;
/** /**
* *
*/ */
@ -186,7 +185,7 @@ public abstract class HttpServerTestBase extends HttpServerTestFixture
@Override @Override
public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
{ {
throw new ServletException("handler exception"); throw new ServletException("TEST handler exception");
} }
}); });
@ -196,12 +195,21 @@ public abstract class HttpServerTestBase extends HttpServerTestFixture
Socket client = newSocket(HOST, _connector.getLocalPort()); Socket client = newSocket(HOST, _connector.getLocalPort());
OutputStream os = client.getOutputStream(); OutputStream os = client.getOutputStream();
try
{
((StdErrLog)Log.getLogger(HttpChannel.class)).setHideStacks(true);
Log.getLogger(HttpChannel.class).info("Expecting ServletException: TEST handler exception...");
os.write(request.toString().getBytes()); os.write(request.toString().getBytes());
os.flush(); os.flush();
String response = readResponse(client); String response = readResponse(client);
assertThat("response code is 500", response.contains("500"), is(true)); assertThat("response code is 500", response.contains("500"), is(true));
} }
finally
{
((StdErrLog)Log.getLogger(HttpChannel.class)).setHideStacks(false);
}
}
@Test @Test
public void testInterruptedRequest() throws Exception public void testInterruptedRequest() throws Exception

View File

@ -18,13 +18,16 @@
package org.eclipse.jetty.server; package org.eclipse.jetty.server;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException;
import java.net.URLDecoder; import java.net.URLDecoder;
import java.net.URLEncoder; import java.net.URLEncoder;
import java.nio.charset.Charset; import java.nio.charset.Charset;
import java.util.Iterator;
import java.util.Set;
import org.eclipse.jetty.http.HttpURI; import org.eclipse.jetty.http.HttpURI;
import org.eclipse.jetty.util.MultiMap; import org.eclipse.jetty.util.MultiMap;
@ -33,11 +36,6 @@ import org.eclipse.jetty.util.TypeUtil;
import org.junit.Assert; import org.junit.Assert;
import org.junit.Test; import org.junit.Test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
public class HttpURITest public class HttpURITest
{ {
private final String[][] partial_tests= private final String[][] partial_tests=

View File

@ -18,6 +18,10 @@
package org.eclipse.jetty.server; package org.eclipse.jetty.server;
import static org.hamcrest.Matchers.containsString;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
import java.util.concurrent.CountDownLatch; import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
@ -26,10 +30,6 @@ import org.junit.After;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import static org.hamcrest.Matchers.containsString;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
public class LocalConnectorTest public class LocalConnectorTest
{ {
private Server _server; private Server _server;

View File

@ -18,6 +18,9 @@
package org.eclipse.jetty.server; package org.eclipse.jetty.server;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.IOException; import java.io.IOException;
import java.io.InputStreamReader; import java.io.InputStreamReader;
@ -25,6 +28,7 @@ import java.io.PrintWriter;
import java.net.Socket; import java.net.Socket;
import java.util.concurrent.CountDownLatch; import java.util.concurrent.CountDownLatch;
import java.util.concurrent.CyclicBarrier; import java.util.concurrent.CyclicBarrier;
import javax.servlet.ServletException; import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
@ -40,9 +44,6 @@ import org.junit.BeforeClass;
import org.junit.Ignore; import org.junit.Ignore;
import org.junit.Test; import org.junit.Test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
@Ignore("Ignored while refactoring the connection events and statistics") @Ignore("Ignored while refactoring the connection events and statistics")
public class SelectChannelStatisticsTest public class SelectChannelStatisticsTest
{ {

View File

@ -42,8 +42,8 @@ import org.eclipse.jetty.http.HttpStatus;
import org.eclipse.jetty.server.Connector; import org.eclipse.jetty.server.Connector;
import org.eclipse.jetty.server.NetworkConnector; import org.eclipse.jetty.server.NetworkConnector;
import org.eclipse.jetty.server.Request; import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.ServerConnector;
import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.ServerConnector;
import org.junit.AfterClass; import org.junit.AfterClass;
import org.junit.BeforeClass; import org.junit.BeforeClass;
import org.junit.Test; import org.junit.Test;

View File

@ -24,6 +24,7 @@ import java.io.IOException;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.io.OutputStream; import java.io.OutputStream;
import java.net.Socket; import java.net.Socket;
import javax.net.ssl.SSLContext; import javax.net.ssl.SSLContext;
import javax.servlet.ServletException; import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;

View File

@ -51,8 +51,8 @@ import javax.servlet.http.HttpServletResponse;
import org.eclipse.jetty.server.HttpConnectionFactory; import org.eclipse.jetty.server.HttpConnectionFactory;
import org.eclipse.jetty.server.Request; import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.ServerConnector;
import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.ServerConnector;
import org.eclipse.jetty.server.handler.AbstractHandler; import org.eclipse.jetty.server.handler.AbstractHandler;
import org.eclipse.jetty.toolchain.test.MavenTestingUtils; import org.eclipse.jetty.toolchain.test.MavenTestingUtils;
import org.eclipse.jetty.util.IO; import org.eclipse.jetty.util.IO;

View File

@ -41,8 +41,8 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import org.eclipse.jetty.server.Request; import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.ServerConnector;
import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.ServerConnector;
import org.eclipse.jetty.server.handler.AbstractHandler; import org.eclipse.jetty.server.handler.AbstractHandler;
import org.eclipse.jetty.util.ssl.SslContextFactory; import org.eclipse.jetty.util.ssl.SslContextFactory;
import org.junit.AfterClass; import org.junit.AfterClass;

View File

@ -18,12 +18,15 @@
package org.eclipse.jetty.server.ssl; package org.eclipse.jetty.server.ssl;
import static org.junit.Assert.assertEquals;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.OutputStream; import java.io.OutputStream;
import java.net.Socket; import java.net.Socket;
import java.net.SocketException; import java.net.SocketException;
import java.security.KeyStore; import java.security.KeyStore;
import java.util.Arrays; import java.util.Arrays;
import javax.net.ssl.HttpsURLConnection; import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLContext; import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManagerFactory; import javax.net.ssl.TrustManagerFactory;
@ -36,8 +39,6 @@ import org.eclipse.jetty.util.ssl.SslContextFactory;
import org.junit.Before; import org.junit.Before;
import org.junit.Ignore; import org.junit.Ignore;
import org.junit.Test; import org.junit.Test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;
/** /**
* HttpServer Tester. * HttpServer Tester.

View File

@ -39,6 +39,7 @@ import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicReference; import java.util.concurrent.atomic.AtomicReference;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import javax.net.ssl.SSLContext; import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLEngine; import javax.net.ssl.SSLEngine;
import javax.net.ssl.SSLSocket; import javax.net.ssl.SSLSocket;

View File

@ -36,8 +36,8 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import org.eclipse.jetty.server.Request; import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.ServerConnector;
import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.ServerConnector;
import org.eclipse.jetty.server.SslConnectionFactory; import org.eclipse.jetty.server.SslConnectionFactory;
import org.eclipse.jetty.server.handler.AbstractHandler; import org.eclipse.jetty.server.handler.AbstractHandler;
import org.eclipse.jetty.util.IO; import org.eclipse.jetty.util.IO;

View File

@ -235,14 +235,6 @@ public class ErrorPageErrorHandler extends ErrorHandler
_servletContext=ContextHandler.getCurrentContext(); _servletContext=ContextHandler.getCurrentContext();
} }
/* ------------------------------------------------------------ */
@Override
protected void doStop() throws Exception
{
// TODO Auto-generated method stub
super.doStop();
}
/* ------------------------------------------------------------ */ /* ------------------------------------------------------------ */
/* ------------------------------------------------------------ */ /* ------------------------------------------------------------ */
private class ErrorCodeRange private class ErrorCodeRange

View File

@ -89,8 +89,6 @@ public class ServletContextHandler extends ContextHandler
protected ServletHandler _servletHandler; protected ServletHandler _servletHandler;
protected int _options; protected int _options;
protected JspConfigDescriptor _jspConfig; protected JspConfigDescriptor _jspConfig;
protected List<ServletContextListener> _restrictedContextListeners = new ArrayList<>();
private boolean _restrictListeners = true;
/* ------------------------------------------------------------ */ /* ------------------------------------------------------------ */
public ServletContextHandler() public ServletContextHandler()
@ -413,30 +411,13 @@ public class ServletContextHandler extends ContextHandler
return Collections.emptySet(); return Collections.emptySet();
} }
@Override
public void restrictEventListener (EventListener e)
{
if (_restrictListeners && e instanceof ServletContextListener)
{
_restrictedContextListeners.add((ServletContextListener)e);
}
}
public boolean isRestrictListeners() {
return _restrictListeners;
}
public void setRestrictListeners(boolean restrictListeners) {
this._restrictListeners = restrictListeners;
}
@Override @Override
public void callContextInitialized(ServletContextListener l, ServletContextEvent e) public void callContextInitialized(ServletContextListener l, ServletContextEvent e)
{ {
try try
{ {
//toggle state of the dynamic API so that the listener cannot use it //toggle state of the dynamic API so that the listener cannot use it
if(_restrictedContextListeners.contains(l)) if(isProgrammaticListener(l))
this.getServletContext().setEnabled(false); this.getServletContext().setEnabled(false);
super.callContextInitialized(l, e); super.callContextInitialized(l, e);
@ -1066,7 +1047,6 @@ public class ServletContextHandler extends ContextHandler
@Override @Override
public boolean setInitParameter(String name, String value) public boolean setInitParameter(String name, String value)
{ {
// TODO other started conditions
if (!isStarting()) if (!isStarting())
throw new IllegalStateException(); throw new IllegalStateException();
@ -1197,7 +1177,6 @@ public class ServletContextHandler extends ContextHandler
@Override @Override
public SessionCookieConfig getSessionCookieConfig() public SessionCookieConfig getSessionCookieConfig()
{ {
// TODO other started conditions
if (!_enabled) if (!_enabled)
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();
@ -1209,7 +1188,6 @@ public class ServletContextHandler extends ContextHandler
@Override @Override
public void setSessionTrackingModes(Set<SessionTrackingMode> sessionTrackingModes) public void setSessionTrackingModes(Set<SessionTrackingMode> sessionTrackingModes)
{ {
// TODO other started conditions
if (!isStarting()) if (!isStarting())
throw new IllegalStateException(); throw new IllegalStateException();
if (!_enabled) if (!_enabled)
@ -1223,7 +1201,6 @@ public class ServletContextHandler extends ContextHandler
@Override @Override
public void addListener(String className) public void addListener(String className)
{ {
// TODO other started conditions
if (!isStarting()) if (!isStarting())
throw new IllegalStateException(); throw new IllegalStateException();
if (!_enabled) if (!_enabled)
@ -1234,7 +1211,6 @@ public class ServletContextHandler extends ContextHandler
@Override @Override
public <T extends EventListener> void addListener(T t) public <T extends EventListener> void addListener(T t)
{ {
// TODO other started conditions
if (!isStarting()) if (!isStarting())
throw new IllegalStateException(); throw new IllegalStateException();
if (!_enabled) if (!_enabled)
@ -1245,7 +1221,6 @@ public class ServletContextHandler extends ContextHandler
@Override @Override
public void addListener(Class<? extends EventListener> listenerClass) public void addListener(Class<? extends EventListener> listenerClass)
{ {
// TODO other started conditions
if (!isStarting()) if (!isStarting())
throw new IllegalStateException(); throw new IllegalStateException();
if (!_enabled) if (!_enabled)

View File

@ -36,7 +36,7 @@
<property name="stopAtShutdown" value="true"/> <property name="stopAtShutdown" value="true"/>
<property name="sendServerVersion" value="true"/> <property name="sendServerVersion" value="true"/>
<property name="sendDateHeader" value="true"/> <property name="sendDateHeader" value="true"/>
<property name="gracefulShutdown" value="1000"/> <property name="stopTimeout" value="1000"/>
<property name="dumpAfterStart" value="true"/> <property name="dumpAfterStart" value="true"/>
<property name="dumpBeforeStop" value="false"/> <property name="dumpBeforeStop" value="false"/>

View File

@ -856,22 +856,11 @@ public class Main
{ {
return JarVersion.getVersion(element); return JarVersion.getVersion(element);
} }
if (name.endsWith(".zip"))
{
return getZipVersion(element);
}
} }
return ""; return "";
} }
private String getZipVersion(File element)
{
// TODO - find version in zip file. Look for META-INF/MANIFEST.MF ?
return "";
}
private List<String> resolveXmlConfigs(List<String> xmls) throws FileNotFoundException private List<String> resolveXmlConfigs(List<String> xmls) throws FileNotFoundException
{ {
List<String> ret = new ArrayList<String>(); List<String> ret = new ArrayList<String>();

View File

@ -466,8 +466,6 @@ public class BufferUtil
boolean started = false; boolean started = false;
boolean minus = false; boolean minus = false;
// TODO add version that operates on array
for (int i = buffer.position(); i < buffer.limit(); i++) for (int i = buffer.position(); i < buffer.limit(); i++)
{ {
byte b = buffer.get(i); byte b = buffer.get(i);
@ -506,7 +504,6 @@ public class BufferUtil
long val = 0; long val = 0;
boolean started = false; boolean started = false;
boolean minus = false; boolean minus = false;
// TODO add version that operates on array
for (int i = buffer.position(); i < buffer.limit(); i++) for (int i = buffer.position(); i < buffer.limit(); i++)
{ {

View File

@ -34,6 +34,7 @@ import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import javax.servlet.MultipartConfigElement; import javax.servlet.MultipartConfigElement;
import javax.servlet.ServletException; import javax.servlet.ServletException;
import javax.servlet.http.Part; import javax.servlet.http.Part;

View File

@ -47,6 +47,7 @@ import org.eclipse.jetty.util.log.Logger;
public class TypeUtil public class TypeUtil
{ {
private static final Logger LOG = Log.getLogger(TypeUtil.class); private static final Logger LOG = Log.getLogger(TypeUtil.class);
public static final Class<?>[] NO_ARGS = new Class[]{};
public static int CR = '\015'; public static int CR = '\015';
public static int LF = '\012'; public static int LF = '\012';

View File

@ -31,7 +31,6 @@ import java.net.URL;
import java.net.URLConnection; import java.net.URLConnection;
import java.nio.channels.FileChannel; import java.nio.channels.FileChannel;
import java.nio.channels.ReadableByteChannel; import java.nio.channels.ReadableByteChannel;
import java.nio.file.OpenOption;
import java.nio.file.StandardOpenOption; import java.nio.file.StandardOpenOption;
import java.security.Permission; import java.security.Permission;

View File

@ -323,6 +323,6 @@ public class URLResource extends Resource
@Override @Override
public boolean isContainedIn (Resource containingResource) throws MalformedURLException public boolean isContainedIn (Resource containingResource) throws MalformedURLException
{ {
return false; //TODO check this! return false;
} }
} }

View File

@ -22,6 +22,7 @@ import java.net.Socket;
import java.security.Principal; import java.security.Principal;
import java.security.PrivateKey; import java.security.PrivateKey;
import java.security.cert.X509Certificate; import java.security.cert.X509Certificate;
import javax.net.ssl.SSLEngine; import javax.net.ssl.SSLEngine;
import javax.net.ssl.X509ExtendedKeyManager; import javax.net.ssl.X509ExtendedKeyManager;
import javax.net.ssl.X509KeyManager; import javax.net.ssl.X509KeyManager;

View File

@ -22,6 +22,7 @@ import java.net.Socket;
import java.security.Principal; import java.security.Principal;
import java.security.PrivateKey; import java.security.PrivateKey;
import java.security.cert.X509Certificate; import java.security.cert.X509Certificate;
import javax.net.ssl.X509KeyManager; import javax.net.ssl.X509KeyManager;

View File

@ -41,6 +41,7 @@ import java.util.Collections;
import java.util.LinkedHashSet; import java.util.LinkedHashSet;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
import javax.net.ssl.CertPathTrustManagerParameters; import javax.net.ssl.CertPathTrustManagerParameters;
import javax.net.ssl.KeyManager; import javax.net.ssl.KeyManager;
import javax.net.ssl.KeyManagerFactory; import javax.net.ssl.KeyManagerFactory;

View File

@ -18,12 +18,12 @@
package org.eclipse.jetty.util; package org.eclipse.jetty.util;
import org.junit.Test;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;
import org.junit.Test;
public class ArrayQueueTest public class ArrayQueueTest
{ {

View File

@ -18,6 +18,9 @@
package org.eclipse.jetty.util; package org.eclipse.jetty.util;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import java.util.HashSet; import java.util.HashSet;
import java.util.Random; import java.util.Random;
import java.util.concurrent.ConcurrentLinkedQueue; import java.util.concurrent.ConcurrentLinkedQueue;
@ -29,9 +32,6 @@ import org.eclipse.jetty.toolchain.test.annotation.Slow;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
@RunWith(AdvancedRunner.class) @RunWith(AdvancedRunner.class)
public class BlockingArrayQueueTest public class BlockingArrayQueueTest
{ {
@ -256,7 +256,6 @@ public class BlockingArrayQueueTest
} }
catch (Exception e) catch (Exception e)
{ {
// TODO Auto-generated catch block
e.printStackTrace(); e.printStackTrace();
} }
} }
@ -298,7 +297,6 @@ public class BlockingArrayQueueTest
} }
catch (Exception e) catch (Exception e)
{ {
// TODO Auto-generated catch block
e.printStackTrace(); e.printStackTrace();
} }
} }

View File

@ -19,15 +19,15 @@
package org.eclipse.jetty.util; package org.eclipse.jetty.util;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import java.nio.ByteBuffer; import java.nio.ByteBuffer;
import java.util.Arrays; import java.util.Arrays;
import org.junit.Assert; import org.junit.Assert;
import org.junit.Test; import org.junit.Test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
public class BufferUtilTest public class BufferUtilTest
{ {
@Test @Test

View File

@ -18,12 +18,12 @@
package org.eclipse.jetty.util; package org.eclipse.jetty.util;
import org.junit.Test;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull; import static org.junit.Assert.assertNull;
import org.junit.Test;
public class IPAddressMapTest public class IPAddressMapTest
{ {

View File

@ -18,6 +18,12 @@
package org.eclipse.jetty.util; package org.eclipse.jetty.util;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import java.net.URI; import java.net.URI;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
@ -30,12 +36,6 @@ import java.util.ListIterator;
import org.junit.Assume; import org.junit.Assume;
import org.junit.Test; import org.junit.Test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
/** /**
* Tests for LazyList utility class. * Tests for LazyList utility class.
*/ */

View File

@ -18,13 +18,13 @@
package org.eclipse.jetty.util; package org.eclipse.jetty.util;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import java.io.IOException; import java.io.IOException;
import org.junit.Test; import org.junit.Test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
public class MultiExceptionTest public class MultiExceptionTest
{ {

View File

@ -18,6 +18,8 @@
package org.eclipse.jetty.util; package org.eclipse.jetty.util;
import static org.hamcrest.Matchers.nullValue;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
@ -26,8 +28,6 @@ import java.util.Map;
import org.junit.Assert; import org.junit.Assert;
import org.junit.Test; import org.junit.Test;
import static org.hamcrest.Matchers.nullValue;
public class MultiMapTest public class MultiMapTest
{ {
/** /**

View File

@ -18,20 +18,6 @@
package org.eclipse.jetty.util; package org.eclipse.jetty.util;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Collection;
import javax.servlet.MultipartConfigElement;
import javax.servlet.ServletException;
import javax.servlet.http.Part;
import org.eclipse.jetty.util.MultiPartInputStream.MultiPart;
import org.junit.Test;
import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.not; import static org.hamcrest.Matchers.not;
import static org.hamcrest.Matchers.notNullValue; import static org.hamcrest.Matchers.notNullValue;
@ -44,6 +30,20 @@ import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail; import static org.junit.Assert.fail;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.Collection;
import javax.servlet.MultipartConfigElement;
import javax.servlet.ServletException;
import javax.servlet.http.Part;
import org.eclipse.jetty.util.MultiPartInputStream.MultiPart;
import org.junit.Test;
/** /**
* MultiPartInputStreamTest * MultiPartInputStreamTest
* *

View File

@ -18,12 +18,12 @@
package org.eclipse.jetty.util; package org.eclipse.jetty.util;
import org.junit.Test;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;
import org.junit.Test;
/** /**
* *

View File

@ -18,15 +18,15 @@
package org.eclipse.jetty.util; package org.eclipse.jetty.util;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import java.util.Set; import java.util.Set;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
/** /**
* *

View File

@ -18,13 +18,13 @@
package org.eclipse.jetty.util; package org.eclipse.jetty.util;
import org.junit.Assert;
import org.junit.Test;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;
import org.junit.Assert;
import org.junit.Test;
public class StringUtilTest public class StringUtilTest
{ {
@Test @Test

View File

@ -18,15 +18,15 @@
package org.eclipse.jetty.util; package org.eclipse.jetty.util;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import org.junit.BeforeClass; import org.junit.BeforeClass;
import org.junit.Test; import org.junit.Test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
/** /**
* TestInjection * TestInjection

View File

@ -18,10 +18,10 @@
package org.eclipse.jetty.util; package org.eclipse.jetty.util;
import org.junit.Test;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import org.junit.Test;
/* ------------------------------------------------------------ */ /* ------------------------------------------------------------ */
/** Util meta Tests. /** Util meta Tests.

View File

@ -18,14 +18,14 @@
package org.eclipse.jetty.util; package org.eclipse.jetty.util;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import java.io.ByteArrayInputStream; import java.io.ByteArrayInputStream;
import org.junit.Assert; import org.junit.Assert;
import org.junit.Test; import org.junit.Test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
/* ------------------------------------------------------------ */ /* ------------------------------------------------------------ */
/** Util meta Tests. /** Util meta Tests.

View File

@ -18,6 +18,9 @@
package org.eclipse.jetty.util; package org.eclipse.jetty.util;
import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.lessThan;
import java.nio.ByteBuffer; import java.nio.ByteBuffer;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -25,9 +28,6 @@ import java.util.List;
import org.junit.Assert; import org.junit.Assert;
import org.junit.Test; import org.junit.Test;
import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.lessThan;
public class Utf8LineParserTest public class Utf8LineParserTest
{ {
private void appendUtf8(ByteBuffer buf, String line) private void appendUtf8(ByteBuffer buf, String line)

View File

@ -18,13 +18,13 @@
package org.eclipse.jetty.util; package org.eclipse.jetty.util;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException;
import org.junit.Test; import org.junit.Test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
public class Utf8StringBufferTest public class Utf8StringBufferTest
{ {
@Test @Test

View File

@ -18,12 +18,12 @@
package org.eclipse.jetty.util; package org.eclipse.jetty.util;
import org.junit.Assert;
import org.junit.Test;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;
import org.junit.Assert;
import org.junit.Test;
public class Utf8StringBuilderTest public class Utf8StringBuilderTest
{ {
@Test @Test

View File

@ -24,7 +24,6 @@ import java.io.StringReader;
import java.util.Queue; import java.util.Queue;
import java.util.concurrent.ConcurrentLinkedQueue; import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicReference;
import org.eclipse.jetty.util.TypeUtil; import org.eclipse.jetty.util.TypeUtil;
import org.junit.Assert; import org.junit.Assert;

View File

@ -18,14 +18,14 @@
package org.eclipse.jetty.util.component; package org.eclipse.jetty.util.component;
import org.eclipse.jetty.util.log.Log;
import org.eclipse.jetty.util.log.StdErrLog;
import org.junit.Test;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;
import org.eclipse.jetty.util.log.Log;
import org.eclipse.jetty.util.log.StdErrLog;
import org.junit.Test;
public class LifeCycleListenerTest public class LifeCycleListenerTest
{ {

View File

@ -18,6 +18,8 @@
package org.eclipse.jetty.util.log; package org.eclipse.jetty.util.log;
import static org.hamcrest.Matchers.containsString;
import java.io.PrintWriter; import java.io.PrintWriter;
import java.io.StringWriter; import java.io.StringWriter;
import java.util.logging.Handler; import java.util.logging.Handler;
@ -26,8 +28,6 @@ import java.util.logging.LogRecord;
import org.eclipse.jetty.util.IO; import org.eclipse.jetty.util.IO;
import org.junit.Assert; import org.junit.Assert;
import static org.hamcrest.Matchers.containsString;
public class CapturingJULHandler extends Handler public class CapturingJULHandler extends Handler
{ {
private static final String LN = System.getProperty("line.separator"); private static final String LN = System.getProperty("line.separator");

View File

@ -18,6 +18,8 @@
package org.eclipse.jetty.util.log; package org.eclipse.jetty.util.log;
import static org.hamcrest.Matchers.is;
import java.io.PrintWriter; import java.io.PrintWriter;
import java.io.StringWriter; import java.io.StringWriter;
import java.util.logging.Handler; import java.util.logging.Handler;
@ -29,8 +31,6 @@ import org.junit.Assert;
import org.junit.BeforeClass; import org.junit.BeforeClass;
import org.junit.Test; import org.junit.Test;
import static org.hamcrest.Matchers.is;
public class JavaUtilLogTest public class JavaUtilLogTest
{ {
private static Handler[] originalHandlers; private static Handler[] originalHandlers;

View File

@ -18,14 +18,14 @@
package org.eclipse.jetty.util.log; package org.eclipse.jetty.util.log;
import static org.hamcrest.Matchers.containsString;
import static org.hamcrest.Matchers.not;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
import java.io.PrintStream; import java.io.PrintStream;
import org.junit.Assert; import org.junit.Assert;
import static org.hamcrest.Matchers.containsString;
import static org.hamcrest.Matchers.not;
public class StdErrCapture public class StdErrCapture
{ {
private ByteArrayOutputStream test; private ByteArrayOutputStream test;

View File

@ -18,6 +18,9 @@
package org.eclipse.jetty.util.log; package org.eclipse.jetty.util.log;
import static org.hamcrest.Matchers.containsString;
import static org.hamcrest.Matchers.is;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
import java.io.PrintStream; import java.io.PrintStream;
import java.io.PrintWriter; import java.io.PrintWriter;
@ -29,9 +32,6 @@ import org.junit.Assert;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import static org.hamcrest.Matchers.containsString;
import static org.hamcrest.Matchers.is;
/** /**
* Tests for StdErrLog * Tests for StdErrLog
*/ */

View File

@ -18,6 +18,9 @@
package org.eclipse.jetty.util.resource; package org.eclipse.jetty.util.resource;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.File; import java.io.File;
import java.io.InputStreamReader; import java.io.InputStreamReader;
@ -25,9 +28,6 @@ import java.io.InputStreamReader;
import org.eclipse.jetty.util.IO; import org.eclipse.jetty.util.IO;
import org.junit.Test; import org.junit.Test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
public class ResourceCollectionTest public class ResourceCollectionTest
{ {

View File

@ -18,6 +18,11 @@
package org.eclipse.jetty.util.resource; package org.eclipse.jetty.util.resource;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.Assume.assumeTrue;
import java.io.File; import java.io.File;
import java.io.FilePermission; import java.io.FilePermission;
import java.io.FilenameFilter; import java.io.FilenameFilter;
@ -35,11 +40,6 @@ import org.eclipse.jetty.util.IO;
import org.junit.BeforeClass; import org.junit.BeforeClass;
import org.junit.Test; import org.junit.Test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.Assume.assumeTrue;
public class ResourceTest public class ResourceTest
{ {

View File

@ -18,6 +18,11 @@
package org.eclipse.jetty.util.ssl; package org.eclipse.jetty.util.ssl;
import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.security.KeyStore; import java.security.KeyStore;
@ -30,11 +35,6 @@ import org.junit.Assert;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
public class SslContextFactoryTest public class SslContextFactoryTest
{ {

View File

@ -18,12 +18,12 @@
package org.eclipse.jetty.util.statistic; package org.eclipse.jetty.util.statistic;
import static org.junit.Assert.assertEquals;
import org.hamcrest.Matchers; import org.hamcrest.Matchers;
import org.junit.Assert; import org.junit.Assert;
import org.junit.Test; import org.junit.Test;
import static org.junit.Assert.assertEquals;
/* ------------------------------------------------------------ */ /* ------------------------------------------------------------ */
public class SampleStatisticTest public class SampleStatisticTest

View File

@ -18,6 +18,8 @@
package org.eclipse.jetty.util.thread; package org.eclipse.jetty.util.thread;
import static org.junit.Assert.assertTrue;
import java.util.concurrent.CountDownLatch; import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicInteger;
@ -28,8 +30,6 @@ import org.junit.Assert;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import static org.junit.Assert.assertTrue;
@RunWith(AdvancedRunner.class) @RunWith(AdvancedRunner.class)
public class QueuedThreadPoolTest public class QueuedThreadPoolTest
{ {

View File

@ -18,14 +18,14 @@
package org.eclipse.jetty.util.thread; package org.eclipse.jetty.util.thread;
import static org.junit.Assert.assertEquals;
import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicIntegerArray; import java.util.concurrent.atomic.AtomicIntegerArray;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class TimeoutTest public class TimeoutTest
{ {

View File

@ -292,7 +292,6 @@ public class WebAppClassLoader extends URLClassLoader
/* ------------------------------------------------------------ */ /* ------------------------------------------------------------ */
public PermissionCollection getPermissions(CodeSource cs) public PermissionCollection getPermissions(CodeSource cs)
{ {
// TODO check CodeSource
PermissionCollection permissions=_context.getPermissions(); PermissionCollection permissions=_context.getPermissions();
PermissionCollection pc= (permissions == null) ? super.getPermissions(cs) : permissions; PermissionCollection pc= (permissions == null) ? super.getPermissions(cs) : permissions;
return pc; return pc;

View File

@ -32,12 +32,9 @@ import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import javax.servlet.HttpMethodConstraintElement;
import javax.servlet.ServletContext; import javax.servlet.ServletContext;
import javax.servlet.ServletRegistration.Dynamic; import javax.servlet.ServletRegistration.Dynamic;
import javax.servlet.ServletSecurityElement; import javax.servlet.ServletSecurityElement;
import javax.servlet.annotation.ServletSecurity.EmptyRoleSemantic;
import javax.servlet.annotation.ServletSecurity.TransportGuarantee;
import javax.servlet.http.HttpSessionActivationListener; import javax.servlet.http.HttpSessionActivationListener;
import javax.servlet.http.HttpSessionAttributeListener; import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionBindingListener; import javax.servlet.http.HttpSessionBindingListener;
@ -66,7 +63,6 @@ import org.eclipse.jetty.util.log.Log;
import org.eclipse.jetty.util.log.Logger; import org.eclipse.jetty.util.log.Logger;
import org.eclipse.jetty.util.resource.Resource; import org.eclipse.jetty.util.resource.Resource;
import org.eclipse.jetty.util.resource.ResourceCollection; import org.eclipse.jetty.util.resource.ResourceCollection;
import org.eclipse.jetty.util.security.Constraint;
/* ------------------------------------------------------------ */ /* ------------------------------------------------------------ */
/** Web Application Context Handler. /** Web Application Context Handler.
@ -115,7 +111,6 @@ public class WebAppContext extends ServletContextHandler implements WebAppClassL
"javax.", // Java SE classes (per servlet spec v2.5 / SRV.9.7.2) "javax.", // Java SE classes (per servlet spec v2.5 / SRV.9.7.2)
"org.xml.", // needed by javax.xml "org.xml.", // needed by javax.xml
"org.w3c.", // needed by javax.xml "org.w3c.", // needed by javax.xml
"org.apache.commons.logging.", // TODO: review if special case still needed
"org.eclipse.jetty.continuation.", // webapp cannot change continuation classes "org.eclipse.jetty.continuation.", // webapp cannot change continuation classes
"org.eclipse.jetty.jndi.", // webapp cannot change naming classes "org.eclipse.jetty.jndi.", // webapp cannot change naming classes
"org.eclipse.jetty.plus.jaas.", // webapp cannot change jaas classes "org.eclipse.jetty.plus.jaas.", // webapp cannot change jaas classes
@ -149,7 +144,7 @@ public class WebAppContext extends ServletContextHandler implements WebAppClassL
private boolean _distributable=false; private boolean _distributable=false;
private boolean _extractWAR=true; private boolean _extractWAR=true;
private boolean _copyDir=false; private boolean _copyDir=false;
private boolean _copyWebInf=false; // TODO change to true? private boolean _copyWebInf=false;
private boolean _logUrlOnStart =false; private boolean _logUrlOnStart =false;
private boolean _parentLoaderPriority= Boolean.getBoolean("org.eclipse.jetty.server.webapp.parentLoaderPriority"); private boolean _parentLoaderPriority= Boolean.getBoolean("org.eclipse.jetty.server.webapp.parentLoaderPriority");
private PermissionCollection _permissions; private PermissionCollection _permissions;
@ -635,6 +630,7 @@ public class WebAppContext extends ServletContextHandler implements WebAppClassL
/** /**
* @return Returns the permissions. * @return Returns the permissions.
*/ */
@Override
public PermissionCollection getPermissions() public PermissionCollection getPermissions()
{ {
return _permissions; return _permissions;
@ -686,6 +682,7 @@ public class WebAppContext extends ServletContextHandler implements WebAppClassL
} }
/* ------------------------------------------------------------ */ /* ------------------------------------------------------------ */
@Override
public boolean isServerClass(String name) public boolean isServerClass(String name)
{ {
if (_serverClasses == null) if (_serverClasses == null)
@ -695,6 +692,7 @@ public class WebAppContext extends ServletContextHandler implements WebAppClassL
} }
/* ------------------------------------------------------------ */ /* ------------------------------------------------------------ */
@Override
public boolean isSystemClass(String name) public boolean isSystemClass(String name)
{ {
if (_systemClasses == null) if (_systemClasses == null)
@ -821,6 +819,7 @@ public class WebAppContext extends ServletContextHandler implements WebAppClassL
* should first try to load from WEB-INF/lib or WEB-INF/classes (servlet * should first try to load from WEB-INF/lib or WEB-INF/classes (servlet
* spec recommendation). * spec recommendation).
*/ */
@Override
@ManagedAttribute(value="parent classloader given priority", readonly=true) @ManagedAttribute(value="parent classloader given priority", readonly=true)
public boolean isParentLoaderPriority() public boolean isParentLoaderPriority()
{ {
@ -985,11 +984,17 @@ public class WebAppContext extends ServletContextHandler implements WebAppClassL
_sessionHandler.clearEventListeners(); _sessionHandler.clearEventListeners();
super.setEventListeners(eventListeners); super.setEventListeners(eventListeners);
}
for (int i=0; eventListeners!=null && i<eventListeners.length;i ++) /* ------------------------------------------------------------ */
/** Add EventListener
* Convenience method that calls {@link #setEventListeners(EventListener[])}
* @param listener
*/
@Override
public void addEventListener(EventListener listener)
{ {
EventListener listener = eventListeners[i]; super.addEventListener(listener);
if ((listener instanceof HttpSessionActivationListener) if ((listener instanceof HttpSessionActivationListener)
|| (listener instanceof HttpSessionAttributeListener) || (listener instanceof HttpSessionAttributeListener)
|| (listener instanceof HttpSessionBindingListener) || (listener instanceof HttpSessionBindingListener)
@ -998,21 +1003,22 @@ public class WebAppContext extends ServletContextHandler implements WebAppClassL
if (_sessionHandler!=null) if (_sessionHandler!=null)
_sessionHandler.addEventListener(listener); _sessionHandler.addEventListener(listener);
} }
}
} }
/* ------------------------------------------------------------ */
/** Add EventListener
* Conveniance method that calls {@link #setEventListeners(EventListener[])}
* @param listener
*/
@Override @Override
public void addEventListener(EventListener listener) public void removeEventListener(EventListener listener)
{ {
setEventListeners(ArrayUtil.addToArray(getEventListeners(), listener, EventListener.class)); super.removeEventListener(listener);
if ((listener instanceof HttpSessionActivationListener)
|| (listener instanceof HttpSessionAttributeListener)
|| (listener instanceof HttpSessionBindingListener)
|| (listener instanceof HttpSessionListener))
{
if (_sessionHandler!=null)
_sessionHandler.removeEventListener(listener);
} }
}
/* ------------------------------------------------------------ */ /* ------------------------------------------------------------ */
/** /**
@ -1174,6 +1180,7 @@ public class WebAppContext extends ServletContextHandler implements WebAppClassL
* pointing to directories or jar files. Directories should end * pointing to directories or jar files. Directories should end
* with '/'. * with '/'.
*/ */
@Override
@ManagedAttribute(value="extra classpath for context classloader", readonly=true) @ManagedAttribute(value="extra classpath for context classloader", readonly=true)
public String getExtraClasspath() public String getExtraClasspath()
{ {
@ -1290,7 +1297,7 @@ public class WebAppContext extends ServletContextHandler implements WebAppClassL
Collection<String> pathMappings = registration.getMappings(); Collection<String> pathMappings = registration.getMappings();
if (pathMappings != null) if (pathMappings != null)
{ {
Constraint constraint = ConstraintSecurityHandler.createConstraint(registration.getName(), servletSecurityElement); ConstraintSecurityHandler.createConstraint(registration.getName(), servletSecurityElement);
for (String pathSpec:pathMappings) for (String pathSpec:pathMappings)
{ {

View File

@ -72,7 +72,6 @@ public class DefaultWebSocketClient extends FutureCallback<UpgradeResponse> impl
public void completed(UpgradeResponse context) public void completed(UpgradeResponse context)
{ {
LOG.debug("completed() - {}",context); LOG.debug("completed() - {}",context);
// TODO Auto-generated method stub
super.completed(context); super.completed(context);
} }
@ -130,7 +129,6 @@ public class DefaultWebSocketClient extends FutureCallback<UpgradeResponse> impl
{ {
LOG.debug("failed() - {}, {}",context,cause); LOG.debug("failed() - {}, {}",context,cause);
LOG.info(cause); LOG.info(cause);
// TODO Auto-generated method stub
super.failed(context,cause); super.failed(context,cause);
} }

View File

@ -82,11 +82,8 @@ public class WebSocketClientSelectorManager extends SelectorManager
return sslConnection; return sslConnection;
} }
else else
{
// FIXME: throw error
throw new IOException("Cannot init SSL"); throw new IOException("Cannot init SSL");
} }
}
else else
{ {
// Standard "ws://" // Standard "ws://"

View File

@ -23,7 +23,6 @@ import java.net.URI;
import java.util.Arrays; import java.util.Arrays;
import java.util.Random; import java.util.Random;
import java.util.concurrent.BlockingQueue; import java.util.concurrent.BlockingQueue;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicInteger;
@ -51,13 +50,11 @@ public class TestClient
@Override @Override
public void onWebSocketBinary(byte[] payload, int offset, int len) public void onWebSocketBinary(byte[] payload, int offset, int len)
{ {
// TODO
} }
@Override @Override
public void onWebSocketClose(int statusCode, String reason) public void onWebSocketClose(int statusCode, String reason)
{ {
// TODO Auto-generated method stub
super.onWebSocketClose(statusCode,reason); super.onWebSocketClose(statusCode,reason);
} }
@ -84,19 +81,6 @@ public class TestClient
while (off < data.length) while (off < data.length)
{ {
__framesSent++; __framesSent++;
byte flags = (byte)((off + len) == data.length?0x8:0);
// byte op = (byte)(off == 0?opcode:WebSocketConnectionRFC6455.OP_CONTINUATION);
if (_verbose)
{
// System.err.printf("%s#sendFrame %s|%s %s\n",
// this.getClass().getSimpleName(),
// TypeUtil.toHexString(flags),
// TypeUtil.toHexString(op),
// TypeUtil.toHexString(data,off,len));
}
// _connection.sendFrame(flags,op,data,off,len);
off += len; off += len;
if ((data.length - off) > len) if ((data.length - off) > len)
@ -121,7 +105,6 @@ public class TestClient
private final String _protocol; private final String _protocol;
private final int _timeout; private final int _timeout;
private static boolean __quiet;
private static int __framesSent; private static int __framesSent;
private static int __messagesSent; private static int __messagesSent;
private static AtomicInteger __framesReceived = new AtomicInteger(); private static AtomicInteger __framesReceived = new AtomicInteger();
@ -187,10 +170,6 @@ public class TestClient
{ {
delay = Integer.parseInt(args[++i]); delay = Integer.parseInt(args[++i]);
} }
else if ("-q".equals(a) || "--quiet".equals(a))
{
__quiet = true;
}
else if (a.startsWith("-")) else if (a.startsWith("-"))
{ {
usage(args); usage(args);
@ -287,7 +266,6 @@ public class TestClient
System.err.println(" -p|--port PORT (default 8080)"); System.err.println(" -p|--port PORT (default 8080)");
System.err.println(" -b|--binary"); System.err.println(" -b|--binary");
System.err.println(" -v|--verbose"); System.err.println(" -v|--verbose");
System.err.println(" -q|--quiet");
System.err.println(" -c|--count n (default 10)"); System.err.println(" -c|--count n (default 10)");
System.err.println(" -s|--size n (default 64)"); System.err.println(" -s|--size n (default 64)");
System.err.println(" -f|--fragment n (default 4000) "); System.err.println(" -f|--fragment n (default 4000) ");
@ -302,7 +280,6 @@ public class TestClient
int _messageBytes; int _messageBytes;
int _frames; int _frames;
byte _opcode = -1; byte _opcode = -1;
private final CountDownLatch _handshook = new CountDownLatch(1);
private WebSocketClientFactory factory; private WebSocketClientFactory factory;
private TestSocket socket; private TestSocket socket;

View File

@ -75,13 +75,11 @@ public class WebSocketLoadRFC6455Test
@Override @Override
public void incoming(WebSocketException e) public void incoming(WebSocketException e)
{ {
// TODO Auto-generated method stub
} }
@Override @Override
public void incoming(WebSocketFrame frame) public void incoming(WebSocketFrame frame)
{ {
// TODO Auto-generated method stub
} }
}; };
private volatile ByteBuffer _response; private volatile ByteBuffer _response;

View File

@ -31,7 +31,6 @@ import javax.servlet.ServletRegistration;
import javax.servlet.FilterRegistration; import javax.servlet.FilterRegistration;
import javax.servlet.ServletSecurityElement; import javax.servlet.ServletSecurityElement;
import javax.servlet.HttpConstraintElement; import javax.servlet.HttpConstraintElement;
import javax.servlet.HttpMethodConstraintElement;
import javax.servlet.annotation.ServletSecurity; import javax.servlet.annotation.ServletSecurity;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSessionActivationListener; import javax.servlet.http.HttpSessionActivationListener;
@ -45,31 +44,37 @@ import java.util.Set;
public class TestListener implements HttpSessionListener, HttpSessionAttributeListener, HttpSessionActivationListener, ServletContextListener, ServletContextAttributeListener, ServletRequestListener, ServletRequestAttributeListener public class TestListener implements HttpSessionListener, HttpSessionAttributeListener, HttpSessionActivationListener, ServletContextListener, ServletContextAttributeListener, ServletRequestListener, ServletRequestAttributeListener
{ {
@Override
public void attributeAdded(HttpSessionBindingEvent se) public void attributeAdded(HttpSessionBindingEvent se)
{ {
// System.err.println("attributedAdded "+se); // System.err.println("attributedAdded "+se);
} }
@Override
public void attributeRemoved(HttpSessionBindingEvent se) public void attributeRemoved(HttpSessionBindingEvent se)
{ {
// System.err.println("attributeRemoved "+se); // System.err.println("attributeRemoved "+se);
} }
@Override
public void attributeReplaced(HttpSessionBindingEvent se) public void attributeReplaced(HttpSessionBindingEvent se)
{ {
// System.err.println("attributeReplaced "+se); // System.err.println("attributeReplaced "+se);
} }
@Override
public void sessionWillPassivate(HttpSessionEvent se) public void sessionWillPassivate(HttpSessionEvent se)
{ {
// System.err.println("sessionWillPassivate "+se); // System.err.println("sessionWillPassivate "+se);
} }
@Override
public void sessionDidActivate(HttpSessionEvent se) public void sessionDidActivate(HttpSessionEvent se)
{ {
// System.err.println("sessionDidActivate "+se); // System.err.println("sessionDidActivate "+se);
} }
@Override
public void contextInitialized(ServletContextEvent sce) public void contextInitialized(ServletContextEvent sce)
{ {
//configure programmatic security //configure programmatic security
@ -98,26 +103,31 @@ public class TestListener implements HttpSessionListener, HttpSessionAttributeL
new String[]{"/*"}); new String[]{"/*"});
} }
@Override
public void contextDestroyed(ServletContextEvent sce) public void contextDestroyed(ServletContextEvent sce)
{ {
// System.err.println("contextDestroyed "+sce); // System.err.println("contextDestroyed "+sce);
} }
@Override
public void attributeAdded(ServletContextAttributeEvent scab) public void attributeAdded(ServletContextAttributeEvent scab)
{ {
// System.err.println("attributeAdded "+scab); // System.err.println("attributeAdded "+scab);
} }
@Override
public void attributeRemoved(ServletContextAttributeEvent scab) public void attributeRemoved(ServletContextAttributeEvent scab)
{ {
// System.err.println("attributeRemoved "+scab); // System.err.println("attributeRemoved "+scab);
} }
@Override
public void attributeReplaced(ServletContextAttributeEvent scab) public void attributeReplaced(ServletContextAttributeEvent scab)
{ {
// System.err.println("attributeReplaced "+scab); // System.err.println("attributeReplaced "+scab);
} }
@Override
public void requestDestroyed(ServletRequestEvent sre) public void requestDestroyed(ServletRequestEvent sre)
{ {
((HttpServletRequest)sre.getServletRequest()).getSession(false); ((HttpServletRequest)sre.getServletRequest()).getSession(false);
@ -125,53 +135,42 @@ public class TestListener implements HttpSessionListener, HttpSessionAttributeL
// System.err.println("requestDestroyed "+sre); // System.err.println("requestDestroyed "+sre);
} }
@Override
public void requestInitialized(ServletRequestEvent sre) public void requestInitialized(ServletRequestEvent sre)
{ {
sre.getServletRequest().setAttribute("requestInitialized","'"+sre.getServletContext().getContextPath()+"'"); sre.getServletRequest().setAttribute("requestInitialized","'"+sre.getServletContext().getContextPath()+"'");
// System.err.println("requestInitialized "+sre); // System.err.println("requestInitialized "+sre);
} }
@Override
public void attributeAdded(ServletRequestAttributeEvent srae) public void attributeAdded(ServletRequestAttributeEvent srae)
{ {
// System.err.println("attributeAdded "+srae); // System.err.println("attributeAdded "+srae);
} }
@Override
public void attributeRemoved(ServletRequestAttributeEvent srae) public void attributeRemoved(ServletRequestAttributeEvent srae)
{ {
// System.err.println("attributeRemoved "+srae); // System.err.println("attributeRemoved "+srae);
} }
@Override
public void attributeReplaced(ServletRequestAttributeEvent srae) public void attributeReplaced(ServletRequestAttributeEvent srae)
{ {
// System.err.println("attributeReplaced "+srae); // System.err.println("attributeReplaced "+srae);
} }
@Override
public void sessionCreated(HttpSessionEvent se) public void sessionCreated(HttpSessionEvent se)
{ {
// System.err.println("sessionCreated "+se); // System.err.println("sessionCreated "+se);
} }
@Override
public void sessionDestroyed(HttpSessionEvent se) public void sessionDestroyed(HttpSessionEvent se)
{ {
// System.err.println("sessionDestroyed "+se); // System.err.println("sessionDestroyed "+se);
} }
public void requestCompleted(ServletRequestEvent rre)
{
// TODO Auto-generated method stub
}
public void requestResumed(ServletRequestEvent rre)
{
// TODO Auto-generated method stub
}
public void requestSuspended(ServletRequestEvent rre)
{
// TODO Auto-generated method stub
}
} }