Merged branch 'jetty-9.4.x' into 'jetty-9.4.x-2727-mbeanInfoCaching2'.
This commit is contained in:
commit
701a21fb1a
|
@ -82,7 +82,7 @@ def getFullBuild(jdk, os) {
|
|||
//options: [invokerPublisher(disabled: false)],
|
||||
mavenOpts: mavenOpts,
|
||||
mavenLocalRepo: localRepo) {
|
||||
sh "mvn -V -B install -Dmaven.test.failure.ignore=true -e -Pmongodb -T3 -Dunix.socket.tmp="+env.JENKINS_HOME
|
||||
sh "mvn -V -B install -Dmaven.test.failure.ignore=true -e -Pmongodb -T3 -Djetty.testtracker.log=true -Dunix.socket.tmp="+env.JENKINS_HOME
|
||||
}
|
||||
// withMaven doesn't label..
|
||||
// Report failures in the jenkins UI
|
||||
|
@ -137,7 +137,7 @@ def getFullBuild(jdk, os) {
|
|||
globalMavenSettingsConfig: settingsName,
|
||||
mavenOpts: mavenOpts,
|
||||
mavenLocalRepo: localRepo) {
|
||||
sh "mvn -f aggregates/jetty-all-compact3 -V -B -Pcompact3 clean install -T5"
|
||||
sh "mvn -f aggregates/jetty-all-compact3 -V -B -Pcompact3 clean install -T6"
|
||||
}
|
||||
}
|
||||
} catch(Exception e) {
|
||||
|
|
|
@ -81,12 +81,10 @@ public class WebListenerAnnotation extends DiscoveredAnnotation
|
|||
{
|
||||
MetaData metaData = _context.getMetaData();
|
||||
if (metaData.getOrigin(clazz.getName()+".listener") == Origin.NotSet)
|
||||
{
|
||||
java.util.EventListener listener = (java.util.EventListener)_context.getServletContext().createInstance(clazz);
|
||||
{
|
||||
ListenerHolder h = _context.getServletHandler().newListenerHolder(new Source(Source.Origin.ANNOTATION, clazz.getName()));
|
||||
h.setListener(listener);
|
||||
h.setHeldClass(clazz);
|
||||
_context.getServletHandler().addListener(h);
|
||||
_context.addEventListener(listener);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
|
@ -185,6 +185,26 @@
|
|||
<artifactId>jetty-server</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<artifactId>jetty-servlet</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<artifactId>jetty-client</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<artifactId>jetty-http</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<artifactId>jetty-io</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<artifactId>jetty-jmx</artifactId>
|
||||
|
|
|
@ -57,6 +57,7 @@
|
|||
<systemPropertyVariables>
|
||||
<jetty.port.file>${jetty.port.file}</jetty.port.file>
|
||||
<helloServlet>true</helloServlet>
|
||||
<maven.it.name>${project.groupId}:${project.artifactId}</maven.it.name>
|
||||
</systemPropertyVariables>
|
||||
<dependenciesToScan>
|
||||
<dependency>org.eclipse.jetty:jetty-maven-plugin</dependency>
|
||||
|
|
|
@ -43,6 +43,7 @@
|
|||
<configuration>
|
||||
<systemPropertyVariables>
|
||||
<jetty.port.file>${jetty.port.file}</jetty.port.file>
|
||||
<maven.it.name>${project.groupId}:${project.artifactId}</maven.it.name>
|
||||
<contentCheck>Bean Validation Webapp example</contentCheck>
|
||||
</systemPropertyVariables>
|
||||
<dependenciesToScan>
|
||||
|
|
|
@ -70,6 +70,7 @@
|
|||
<jetty.port.file>${jetty.port.file}</jetty.port.file>
|
||||
<pingServlet>true</pingServlet>
|
||||
<helloServlet>true</helloServlet>
|
||||
<maven.it.name>${project.groupId}:${project.artifactId}</maven.it.name>
|
||||
</systemPropertyVariables>
|
||||
<dependenciesToScan>
|
||||
<dependency>org.eclipse.jetty:jetty-maven-plugin</dependency>
|
||||
|
|
|
@ -70,6 +70,7 @@
|
|||
<jetty.port.file>${jetty.port.file}</jetty.port.file>
|
||||
<pingServlet>true</pingServlet>
|
||||
<helloServlet>true</helloServlet>
|
||||
<maven.it.name>${project.groupId}:${project.artifactId}</maven.it.name>
|
||||
</systemPropertyVariables>
|
||||
<dependenciesToScan>
|
||||
<dependency>org.eclipse.jetty:jetty-maven-plugin</dependency>
|
||||
|
|
|
@ -73,6 +73,7 @@
|
|||
<jetty.port.file>${jetty.port.file}</jetty.port.file>
|
||||
<pingServlet>true</pingServlet>
|
||||
<helloServlet>true</helloServlet>
|
||||
<maven.it.name>${project.groupId}:${project.artifactId}</maven.it.name>
|
||||
</systemPropertyVariables>
|
||||
<dependenciesToScan>
|
||||
<dependency>org.eclipse.jetty:jetty-maven-plugin</dependency>
|
||||
|
|
|
@ -71,6 +71,7 @@
|
|||
<jetty.port.file>${jetty.port.file}</jetty.port.file>
|
||||
<pingServlet>true</pingServlet>
|
||||
<helloServlet>true</helloServlet>
|
||||
<maven.it.name>${project.groupId}:${project.artifactId}</maven.it.name>
|
||||
</systemPropertyVariables>
|
||||
<dependenciesToScan>
|
||||
<dependency>org.eclipse.jetty:jetty-maven-plugin</dependency>
|
||||
|
|
|
@ -71,6 +71,7 @@
|
|||
<jetty.port.file>${jetty.port.file}</jetty.port.file>
|
||||
<pingServlet>true</pingServlet>
|
||||
<helloServlet>true</helloServlet>
|
||||
<maven.it.name>${project.groupId}:${project.artifactId}</maven.it.name>
|
||||
</systemPropertyVariables>
|
||||
<dependenciesToScan>
|
||||
<dependency>org.eclipse.jetty:jetty-maven-plugin</dependency>
|
||||
|
|
|
@ -69,6 +69,7 @@
|
|||
<jetty.port.file>${jetty.port.file}</jetty.port.file>
|
||||
<pingServlet>true</pingServlet>
|
||||
<helloServlet>true</helloServlet>
|
||||
<maven.it.name>${project.groupId}:${project.artifactId}</maven.it.name>
|
||||
</systemPropertyVariables>
|
||||
<dependenciesToScan>
|
||||
<dependency>org.eclipse.jetty:jetty-maven-plugin</dependency>
|
||||
|
|
|
@ -74,6 +74,7 @@
|
|||
<systemPropertyVariables>
|
||||
<jetty.port.file>${jetty.port.file}</jetty.port.file>
|
||||
<contentCheck>Please enter your name</contentCheck>
|
||||
<maven.it.name>${project.groupId}:${project.artifactId}</maven.it.name>
|
||||
</systemPropertyVariables>
|
||||
<dependenciesToScan>
|
||||
<dependency>org.eclipse.jetty:jetty-maven-plugin</dependency>
|
||||
|
|
|
@ -51,23 +51,24 @@ public class TestGetContent
|
|||
if (Boolean.getBoolean( "helloServlet" ))
|
||||
{
|
||||
String response = httpClient.GET( "http://localhost:" + port + "/hello?name=beer" ).getContentAsString();
|
||||
assertEquals( "Hello beer", response.trim() );
|
||||
assertEquals( "Hello beer", response.trim(), "it test " + System.getProperty( "maven.it.name" ) );
|
||||
response = httpClient.GET( "http://localhost:" + port + "/hello?name=foo" ).getContentAsString();
|
||||
assertEquals( "Hello foo", response.trim() );
|
||||
assertEquals( "Hello foo", response.trim(), "it test " + System.getProperty( "maven.it.name" ) );
|
||||
System.out.println( "helloServlet" );
|
||||
}
|
||||
if (Boolean.getBoolean( "pingServlet" ))
|
||||
{
|
||||
System.out.println( "pingServlet ok" );
|
||||
String response = httpClient.GET( "http://localhost:" + port + "/ping?name=beer" ).getContentAsString();
|
||||
assertEquals( "pong beer", response.trim() );
|
||||
System.out.println( "pingServlet" );
|
||||
String response = httpClient.GET( "http://localhost:" + port + "/ping?name=beer" ).getContentAsString();
|
||||
assertEquals( "pong beer", response.trim(), "it test " + System.getProperty( "maven.it.name" ) );
|
||||
System.out.println( "pingServlet ok" );
|
||||
}
|
||||
String contentCheck = System.getProperty( "contentCheck" );
|
||||
if(StringUtils.isNotBlank( contentCheck ) )
|
||||
{
|
||||
String response = httpClient.GET( "http://localhost:" + port ).getContentAsString();
|
||||
assertTrue(response.contains(contentCheck), "response not contentCheck: " + contentCheck + ", response:" + response);
|
||||
assertTrue(response.contains(contentCheck), "it test " + System.getProperty( "maven.it.name" )
|
||||
+ ", response not contentCheck: " + contentCheck + ", response:" + response);
|
||||
System.out.println( "contentCheck" );
|
||||
}
|
||||
}
|
||||
|
|
|
@ -45,12 +45,15 @@
|
|||
<artifactId>pax-exam-junit4</artifactId>
|
||||
<version>${exam.version}</version>
|
||||
<scope>test</scope>
|
||||
<!-- not anymore as others tests use junit 5 -->
|
||||
<!--
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
-->
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.ops4j.pax.exam</groupId>
|
||||
|
|
|
@ -51,6 +51,7 @@ import org.eclipse.jetty.security.authentication.FormAuthenticator;
|
|||
import org.eclipse.jetty.servlet.ErrorPageErrorHandler;
|
||||
import org.eclipse.jetty.servlet.FilterHolder;
|
||||
import org.eclipse.jetty.servlet.FilterMapping;
|
||||
import org.eclipse.jetty.servlet.ListenerHolder;
|
||||
import org.eclipse.jetty.servlet.ServletContextHandler.JspConfig;
|
||||
import org.eclipse.jetty.servlet.ServletHandler;
|
||||
import org.eclipse.jetty.servlet.ServletHolder;
|
||||
|
@ -176,10 +177,10 @@ public class QuickStartDescriptorGenerator
|
|||
.tag("param-value",_webApp.getInitParameter(p))
|
||||
.closeTag();
|
||||
|
||||
if (_webApp.getEventListeners() != null)
|
||||
for (EventListener e : _webApp.getEventListeners())
|
||||
out.openTag("listener",origin(md,e.getClass().getCanonicalName() + ".listener"))
|
||||
.tag("listener-class",e.getClass().getCanonicalName())
|
||||
if (_webApp.getServletHandler().getListeners() != null)
|
||||
for (ListenerHolder e : _webApp.getServletHandler().getListeners())
|
||||
out.openTag("listener",origin(md,e.getClassName() + ".listener"))
|
||||
.tag("listener-class",e.getClassName())
|
||||
.closeTag();
|
||||
|
||||
ServletHandler servlets = _webApp.getServletHandler();
|
||||
|
|
|
@ -24,6 +24,7 @@ import static org.junit.jupiter.api.Assertions.*;
|
|||
import java.io.File;
|
||||
|
||||
import org.eclipse.jetty.server.Server;
|
||||
import org.eclipse.jetty.servlet.ListenerHolder;
|
||||
import org.eclipse.jetty.servlet.ServletHolder;
|
||||
import org.eclipse.jetty.toolchain.test.FS;
|
||||
import org.eclipse.jetty.toolchain.test.MavenTestingUtils;
|
||||
|
@ -69,8 +70,10 @@ public class TestQuickStart
|
|||
ServletHolder fooHolder = new ServletHolder();
|
||||
fooHolder.setServlet(new FooServlet());
|
||||
fooHolder.setName("foo");
|
||||
quickstart.getServletHandler().addServlet(fooHolder);
|
||||
quickstart.addEventListener(new FooContextListener());
|
||||
quickstart.getServletHandler().addServlet(fooHolder);
|
||||
ListenerHolder lholder = new ListenerHolder();
|
||||
lholder.setListener(new FooContextListener());
|
||||
quickstart.getServletHandler().addListener(lholder);
|
||||
server.setHandler(quickstart);
|
||||
server.start();
|
||||
server.stop();
|
||||
|
|
|
@ -42,7 +42,7 @@ import java.io.StringReader;
|
|||
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.hamcrest.Matchers.*;
|
||||
import static org.junit.Assert.fail;
|
||||
import static org.junit.jupiter.api.Assertions.fail;
|
||||
|
||||
|
||||
public class CookiePatternRuleTest
|
||||
|
|
|
@ -32,12 +32,7 @@ import javax.servlet.ServletException;
|
|||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.eclipse.jetty.http.CompressedContentFormat;
|
||||
import org.eclipse.jetty.http.HttpField;
|
||||
import org.eclipse.jetty.http.HttpHeader;
|
||||
import org.eclipse.jetty.http.HttpMethod;
|
||||
import org.eclipse.jetty.http.MimeTypes;
|
||||
import org.eclipse.jetty.http.PreEncodedHttpField;
|
||||
import org.eclipse.jetty.http.*;
|
||||
import org.eclipse.jetty.http.pathmap.PathSpecSet;
|
||||
import org.eclipse.jetty.server.DeflaterPool;
|
||||
import org.eclipse.jetty.server.HttpOutput;
|
||||
|
@ -156,6 +151,7 @@ public class GzipHandler extends HandlerWrapper implements GzipFactory
|
|||
public static final int DEFAULT_MIN_GZIP_SIZE=16;
|
||||
private static final Logger LOG = Log.getLogger(GzipHandler.class);
|
||||
private static final HttpField X_CE_GZIP = new PreEncodedHttpField("X-Content-Encoding","gzip");
|
||||
private static final HttpField TE_CHUNKED = new PreEncodedHttpField(HttpHeader.TRANSFER_ENCODING, HttpHeaderValue.CHUNKED.asString());
|
||||
private static final Pattern COMMA_GZIP = Pattern.compile(".*, *gzip");
|
||||
|
||||
private int POOL_CAPACITY = -1;
|
||||
|
@ -622,29 +618,46 @@ public class GzipHandler extends HandlerWrapper implements GzipFactory
|
|||
// Handle request inflation
|
||||
if (_inflateBufferSize>0)
|
||||
{
|
||||
boolean inflate = false;
|
||||
for (ListIterator<HttpField> i = baseRequest.getHttpFields().listIterator(); i.hasNext();)
|
||||
{
|
||||
HttpField field = i.next();
|
||||
if (field.getHeader()!=HttpHeader.CONTENT_ENCODING)
|
||||
continue;
|
||||
|
||||
if (field.getValue().equalsIgnoreCase("gzip"))
|
||||
if (field.getHeader()==HttpHeader.CONTENT_ENCODING)
|
||||
{
|
||||
i.set(X_CE_GZIP);
|
||||
baseRequest.getHttpInput().addInterceptor(new GzipHttpInputInterceptor(baseRequest.getHttpChannel().getByteBufferPool(),_inflateBufferSize));
|
||||
break;
|
||||
}
|
||||
if (field.getValue().equalsIgnoreCase("gzip"))
|
||||
{
|
||||
i.set(X_CE_GZIP);
|
||||
inflate = true;
|
||||
break;
|
||||
}
|
||||
|
||||
if (COMMA_GZIP.matcher(field.getValue()).matches())
|
||||
{
|
||||
String v = field.getValue();
|
||||
v = v.substring(0,v.lastIndexOf(','));
|
||||
i.set(new HttpField(HttpHeader.CONTENT_ENCODING,v));
|
||||
i.add(X_CE_GZIP);
|
||||
baseRequest.getHttpInput().addInterceptor(new GzipHttpInputInterceptor(baseRequest.getHttpChannel().getByteBufferPool(),_inflateBufferSize));
|
||||
break;
|
||||
if (COMMA_GZIP.matcher(field.getValue()).matches())
|
||||
{
|
||||
String v = field.getValue();
|
||||
v = v.substring(0, v.lastIndexOf(','));
|
||||
i.set(new HttpField(HttpHeader.CONTENT_ENCODING, v));
|
||||
i.add(X_CE_GZIP);
|
||||
inflate = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (inflate)
|
||||
{
|
||||
baseRequest.getHttpInput().addInterceptor(new GzipHttpInputInterceptor(baseRequest.getHttpChannel().getByteBufferPool(), _inflateBufferSize));
|
||||
|
||||
for (ListIterator<HttpField> i = baseRequest.getHttpFields().listIterator(); i.hasNext();)
|
||||
{
|
||||
HttpField field = i.next();
|
||||
if (field.getHeader()==HttpHeader.CONTENT_LENGTH)
|
||||
{
|
||||
i.set(new HttpField("X-Content-Length", field.getValue()));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Are we already being gzipped?
|
||||
|
|
|
@ -27,7 +27,6 @@ import org.junit.jupiter.api.AfterEach;
|
|||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.net.Socket;
|
||||
|
@ -38,7 +37,8 @@ import java.util.List;
|
|||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
public class CustomResourcesMonitorTest
|
||||
{
|
||||
|
@ -111,28 +111,14 @@ public class CustomResourcesMonitorTest
|
|||
InputStream input1 = socket1.getInputStream();
|
||||
|
||||
assertTrue(_fileOnDirectoryMonitor.isLowOnResources());
|
||||
try
|
||||
{
|
||||
input1.read();
|
||||
fail();
|
||||
}
|
||||
catch (SocketTimeoutException expected)
|
||||
{
|
||||
}
|
||||
assertThrows(SocketTimeoutException.class, () -> input1.read());
|
||||
|
||||
// Wait a couple of lowResources idleTimeouts.
|
||||
Thread.sleep(2 * lowResourcesIdleTimeout);
|
||||
|
||||
// Verify the new socket is still open.
|
||||
assertTrue(_fileOnDirectoryMonitor.isLowOnResources());
|
||||
try
|
||||
{
|
||||
input1.read();
|
||||
fail();
|
||||
}
|
||||
catch (SocketTimeoutException expected)
|
||||
{
|
||||
}
|
||||
assertThrows(SocketTimeoutException.class, () -> input1.read());
|
||||
|
||||
Files.delete( tmpFile );
|
||||
|
||||
|
|
|
@ -23,6 +23,7 @@ import org.eclipse.jetty.util.thread.QueuedThreadPool;
|
|||
import org.eclipse.jetty.util.thread.TimerScheduler;
|
||||
import org.hamcrest.Matchers;
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
@ -38,7 +39,6 @@ import java.util.concurrent.CountDownLatch;
|
|||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.hamcrest.Matchers.equalTo;
|
||||
import static org.hamcrest.Matchers.not;
|
||||
import static org.junit.Assert.fail;
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
public class LowResourcesMonitorTest
|
||||
|
@ -248,28 +248,15 @@ public class LowResourcesMonitorTest
|
|||
InputStream input1 = socket1.getInputStream();
|
||||
|
||||
assertTrue(_lowResourcesMonitor.isLowOnResources());
|
||||
try
|
||||
{
|
||||
input1.read();
|
||||
fail();
|
||||
}
|
||||
catch (SocketTimeoutException expected)
|
||||
{
|
||||
}
|
||||
assertThrows( SocketTimeoutException.class, () -> input1.read());
|
||||
|
||||
// Wait a couple of lowResources idleTimeouts.
|
||||
Thread.sleep(2 * lowResourcesIdleTimeout);
|
||||
|
||||
// Verify the new socket is still open.
|
||||
assertTrue(_lowResourcesMonitor.isLowOnResources());
|
||||
try
|
||||
{
|
||||
input1.read();
|
||||
fail();
|
||||
}
|
||||
catch (SocketTimeoutException expected)
|
||||
{
|
||||
}
|
||||
assertThrows( SocketTimeoutException.class, () -> input1.read());
|
||||
|
||||
// Let the maxLowResourcesTime elapse.
|
||||
Thread.sleep(maxLowResourcesTime);
|
||||
|
||||
|
|
|
@ -21,54 +21,112 @@ package org.eclipse.jetty.servlet;
|
|||
|
||||
import java.util.EventListener;
|
||||
|
||||
import javax.servlet.ServletContext;
|
||||
import javax.servlet.ServletException;
|
||||
|
||||
/**
|
||||
* ListenerHolder
|
||||
*
|
||||
* Specialization of AbstractHolder for servlet listeners. This
|
||||
* Specialization of BaseHolder for servlet listeners. This
|
||||
* allows us to record where the listener originated - web.xml,
|
||||
* annotation, api etc.
|
||||
*/
|
||||
public class ListenerHolder extends BaseHolder<EventListener>
|
||||
{
|
||||
private EventListener _listener;
|
||||
private boolean _initialized = false;
|
||||
|
||||
|
||||
public ListenerHolder ()
|
||||
{
|
||||
this (Source.EMBEDDED);
|
||||
}
|
||||
|
||||
public ListenerHolder(Source source)
|
||||
{
|
||||
super(source);
|
||||
}
|
||||
|
||||
|
||||
public void setListener(EventListener listener)
|
||||
{
|
||||
_listener = listener;
|
||||
setClassName(listener.getClass().getName());
|
||||
setHeldClass(listener.getClass());
|
||||
_extInstance=true;
|
||||
}
|
||||
|
||||
|
||||
public EventListener getListener()
|
||||
{
|
||||
return _listener;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set an explicit instance. In this case,
|
||||
* just like ServletHolder and FilterHolder,
|
||||
* the listener will not be introspected for
|
||||
* annotations like Resource etc.
|
||||
*
|
||||
* @param listener
|
||||
*/
|
||||
public void setListener (EventListener listener)
|
||||
{
|
||||
_listener = listener;
|
||||
_extInstance=true;
|
||||
setHeldClass(_listener.getClass());
|
||||
setClassName(_listener.getClass().getName());
|
||||
}
|
||||
|
||||
|
||||
public void initialize (ServletContext context) throws Exception
|
||||
{
|
||||
if (!_initialized)
|
||||
{
|
||||
initialize();
|
||||
|
||||
if (_listener == null)
|
||||
{
|
||||
//create an instance of the listener and decorate it
|
||||
try
|
||||
{
|
||||
_listener = (context instanceof ServletContextHandler.Context)
|
||||
?((ServletContextHandler.Context)context).createListener(getHeldClass())
|
||||
:getHeldClass().getDeclaredConstructor().newInstance();
|
||||
|
||||
}
|
||||
catch (ServletException se)
|
||||
{
|
||||
Throwable cause = se.getRootCause();
|
||||
if (cause instanceof InstantiationException)
|
||||
throw (InstantiationException)cause;
|
||||
if (cause instanceof IllegalAccessException)
|
||||
throw (IllegalAccessException)cause;
|
||||
throw se;
|
||||
}
|
||||
}
|
||||
_initialized = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void doStart() throws Exception
|
||||
{
|
||||
//Listeners always have an instance eagerly created, it cannot be deferred to the doStart method
|
||||
if (_listener == null)
|
||||
throw new IllegalStateException("No listener instance");
|
||||
|
||||
super.doStart();
|
||||
if (!java.util.EventListener.class.isAssignableFrom(_class))
|
||||
{
|
||||
String msg = _class+" is not a java.util.EventListener";
|
||||
super.stop();
|
||||
throw new IllegalStateException(msg);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public void doStop() throws Exception
|
||||
{
|
||||
super.doStop();
|
||||
if (!_extInstance)
|
||||
_listener = null;
|
||||
_initialized = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString()
|
||||
{
|
||||
return super.toString()+(_listener == null?"":": "+getClassName());
|
||||
}
|
||||
|
||||
|
||||
return super.toString()+": "+getClassName();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -356,13 +356,16 @@ public class ServletContextHandler extends ContextHandler
|
|||
|
||||
if (_servletHandler != null)
|
||||
{
|
||||
// Call decorators on all holders, and also on any EventListeners before
|
||||
// decorators are called on any other classes (like servlets and filters)
|
||||
//Ensure listener instances are created, added to ContextHandler
|
||||
if(_servletHandler.getListeners() != null)
|
||||
{
|
||||
for (ListenerHolder holder:_servletHandler.getListeners())
|
||||
{
|
||||
_objFactory.decorate(holder.getListener());
|
||||
holder.start();
|
||||
//we need to pass in the context because the ServletHandler has not
|
||||
//yet got a reference to the ServletContext (happens in super.startContext)
|
||||
holder.initialize(_scontext);
|
||||
addEventListener(holder.getListener());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -18,32 +18,6 @@
|
|||
|
||||
package org.eclipse.jetty.servlet;
|
||||
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.hamcrest.Matchers.contains;
|
||||
import static org.hamcrest.Matchers.containsString;
|
||||
import static org.hamcrest.Matchers.equalToIgnoringCase;
|
||||
import static org.hamcrest.Matchers.is;
|
||||
import static org.hamcrest.Matchers.not;
|
||||
import static org.hamcrest.Matchers.nullValue;
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.PrintWriter;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.Arrays;
|
||||
import java.util.Enumeration;
|
||||
import java.util.zip.GZIPInputStream;
|
||||
import java.util.zip.GZIPOutputStream;
|
||||
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.http.HttpServlet;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.eclipse.jetty.http.HttpTester;
|
||||
import org.eclipse.jetty.server.LocalConnector;
|
||||
import org.eclipse.jetty.server.Server;
|
||||
|
@ -54,6 +28,33 @@ import org.junit.jupiter.api.AfterEach;
|
|||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import javax.servlet.DispatcherType;
|
||||
import javax.servlet.Filter;
|
||||
import javax.servlet.FilterChain;
|
||||
import javax.servlet.FilterConfig;
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.ServletRequest;
|
||||
import javax.servlet.ServletResponse;
|
||||
import javax.servlet.http.HttpServlet;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.PrintWriter;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.Arrays;
|
||||
import java.util.EnumSet;
|
||||
import java.util.Enumeration;
|
||||
import java.util.zip.GZIPInputStream;
|
||||
import java.util.zip.GZIPOutputStream;
|
||||
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.hamcrest.Matchers.*;
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
public class GzipHandlerTest
|
||||
{
|
||||
|
@ -104,6 +105,7 @@ public class GzipHandlerTest
|
|||
servlets.addServletWithMapping(IncludeServlet.class,"/include");
|
||||
servlets.addServletWithMapping(EchoServlet.class,"/echo/*");
|
||||
servlets.addServletWithMapping(DumpServlet.class,"/dump/*");
|
||||
servlets.addFilterWithMapping(CheckFilter.class,"/*", EnumSet.of(DispatcherType.REQUEST));
|
||||
|
||||
_server.start();
|
||||
}
|
||||
|
@ -508,6 +510,38 @@ public class GzipHandlerTest
|
|||
assertThat(response.getContent(),is(data));
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testGzipRequestChunked() throws Exception
|
||||
{
|
||||
String data = "Hello Nice World! ";
|
||||
for (int i = 0; i < 10; ++i)
|
||||
data += data;
|
||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||
GZIPOutputStream output = new GZIPOutputStream(baos);
|
||||
output.write(data.getBytes(StandardCharsets.UTF_8));
|
||||
output.close();
|
||||
byte[] bytes = baos.toByteArray();
|
||||
|
||||
// generated and parsed test
|
||||
HttpTester.Request request = HttpTester.newRequest();
|
||||
HttpTester.Response response;
|
||||
|
||||
request.setMethod("POST");
|
||||
request.setURI("/ctx/echo");
|
||||
request.setVersion("HTTP/1.1");
|
||||
request.setHeader("Host","tester");
|
||||
request.setHeader("Content-Type","text/plain");
|
||||
request.setHeader("Content-Encoding","gzip");
|
||||
request.add("Transfer-Encoding", "chunked");
|
||||
request.setContent(bytes);
|
||||
response = HttpTester.parseResponse(_connector.getResponse(request.generate()));
|
||||
|
||||
assertThat(response.getStatus(),is(200));
|
||||
assertThat(response.getContent(),is(data));
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
|
@ -568,5 +602,27 @@ public class GzipHandlerTest
|
|||
assertThat(response.getStatus(),is(200));
|
||||
assertThat(response.getContentBytes().length,is(512*1024));
|
||||
}
|
||||
|
||||
|
||||
public static class CheckFilter implements Filter
|
||||
{
|
||||
@Override
|
||||
public void init(FilterConfig filterConfig) throws ServletException
|
||||
{
|
||||
}
|
||||
|
||||
@Override
|
||||
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException
|
||||
{
|
||||
if (request.getParameter("X-Content-Encoding")!=null)
|
||||
assertEquals(-1,request.getContentLength());
|
||||
else if (request.getContentLength()>=0)
|
||||
assertThat(request.getParameter("X-Content-Encoding"),Matchers.nullValue());
|
||||
chain.doFilter(request,response);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void destroy()
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -21,10 +21,10 @@ package org.eclipse.jetty.util;
|
|||
|
||||
import static org.hamcrest.CoreMatchers.containsString;
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.junit.Assume.assumeTrue;
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
import static org.junit.jupiter.api.Assumptions.assumeTrue;
|
||||
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
|
|
|
@ -24,7 +24,8 @@ import org.hamcrest.Matchers;
|
|||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import static org.hamcrest.Matchers.equalTo;
|
||||
import static org.junit.Assert.assertThat;
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
|
||||
|
||||
|
||||
/* ------------------------------------------------------------ */
|
||||
|
|
|
@ -1911,17 +1911,11 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
|
|||
}
|
||||
|
||||
((WebDescriptor)descriptor).addClassName(className);
|
||||
|
||||
Class<? extends EventListener> listenerClass = (Class<? extends EventListener>)context.loadClass(className);
|
||||
listener = newListenerInstance(context,listenerClass, descriptor);
|
||||
if (!(listener instanceof EventListener))
|
||||
{
|
||||
LOG.warn("Not an EventListener: " + listener);
|
||||
return;
|
||||
}
|
||||
context.addEventListener(listener);
|
||||
|
||||
ListenerHolder h = context.getServletHandler().newListenerHolder(new Source (Source.Origin.DESCRIPTOR, descriptor.getResource().toString()));
|
||||
h.setClassName(className);
|
||||
context.getServletHandler().addListener(h);
|
||||
context.getMetaData().setOrigin(className+".listener", descriptor);
|
||||
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
|
@ -1960,14 +1954,4 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor
|
|||
|
||||
((ConstraintAware)context.getSecurityHandler()).setDenyUncoveredHttpMethods(true);
|
||||
}
|
||||
|
||||
public EventListener newListenerInstance(WebAppContext context,Class<? extends EventListener> clazz, Descriptor descriptor) throws Exception
|
||||
{
|
||||
ListenerHolder h = context.getServletHandler().newListenerHolder(new Source (Source.Origin.DESCRIPTOR, descriptor.getResource().toString()));
|
||||
EventListener l = context.getServletContext().createInstance(clazz);
|
||||
h.setListener(l);
|
||||
context.getServletHandler().addListener(h);
|
||||
return l;
|
||||
|
||||
}
|
||||
}
|
||||
|
|
6
pom.xml
6
pom.xml
|
@ -37,6 +37,8 @@
|
|||
<weld.version>2.4.5.Final</weld.version>
|
||||
<jetty.perf-helper.version>1.0.5</jetty.perf-helper.version>
|
||||
<unix.socket.tmp></unix.socket.tmp>
|
||||
<!-- enable or not TestTracker junit5 extension i.e log message when test method is starting -->
|
||||
<jetty.testtracker.log>false</jetty.testtracker.log>
|
||||
|
||||
<!-- some maven plugins versions -->
|
||||
<maven.surefire.version>2.22.0</maven.surefire.version>
|
||||
|
@ -49,7 +51,7 @@
|
|||
|
||||
|
||||
<!-- testing -->
|
||||
<jetty.test.version>5.0</jetty.test.version>
|
||||
<jetty.test.version>5.1</jetty.test.version>
|
||||
</properties>
|
||||
|
||||
<licenses>
|
||||
|
@ -647,6 +649,8 @@
|
|||
<systemPropertyVariables>
|
||||
<java.io.tmpdir>${project.build.directory}</java.io.tmpdir>
|
||||
<unix.socket.tmp>${unix.socket.tmp}</unix.socket.tmp>
|
||||
<junit.jupiter.extensions.autodetection.enabled>true</junit.jupiter.extensions.autodetection.enabled>
|
||||
<jetty.testtracker.log>${jetty.testtracker.log}</jetty.testtracker.log>
|
||||
</systemPropertyVariables>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
|
|
@ -258,7 +258,7 @@ public class JettyDistro
|
|||
*/
|
||||
public JettyDistro(Class<?> clazz, String artifact) throws IOException
|
||||
{
|
||||
this.jettyHomeDir = MavenTestingUtils.getTargetTestingDir(clazz,"jettyHome");
|
||||
this.jettyHomeDir = MavenTestingUtils.getTargetTestingPath(clazz,"jettyHome").toFile();
|
||||
if (artifact != null)
|
||||
{
|
||||
this.artifactName = artifact;
|
||||
|
|
|
@ -22,6 +22,7 @@ package org.eclipse.jetty.gcloud.session;
|
|||
import org.eclipse.jetty.server.session.AbstractClusteredOrphanedSessionTest;
|
||||
import org.eclipse.jetty.server.session.SessionDataStoreFactory;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
import org.junit.jupiter.api.BeforeAll;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
/**
|
||||
|
@ -32,10 +33,25 @@ import org.junit.jupiter.api.Test;
|
|||
public class ClusteredOrphanedSessionTest extends AbstractClusteredOrphanedSessionTest
|
||||
{
|
||||
|
||||
public static GCloudSessionTestSupport __testSupport;
|
||||
|
||||
@BeforeAll
|
||||
public static void setUp () throws Exception
|
||||
{
|
||||
__testSupport = new GCloudSessionTestSupport();
|
||||
__testSupport.setUp();
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
public static void tearDown () throws Exception
|
||||
{
|
||||
__testSupport.tearDown();
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
public static void teardown () throws Exception
|
||||
{
|
||||
GCloudTestSuite.__testSupport.deleteSessions();
|
||||
__testSupport.deleteSessions();
|
||||
}
|
||||
|
||||
|
||||
|
@ -46,7 +62,7 @@ public class ClusteredOrphanedSessionTest extends AbstractClusteredOrphanedSessi
|
|||
@Override
|
||||
public SessionDataStoreFactory createSessionDataStoreFactory()
|
||||
{
|
||||
return GCloudSessionTestSupport.newSessionDataStoreFactory(GCloudTestSuite.__testSupport.getDatastore());
|
||||
return GCloudSessionTestSupport.newSessionDataStoreFactory(__testSupport.getDatastore());
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -22,6 +22,7 @@ package org.eclipse.jetty.gcloud.session;
|
|||
import org.eclipse.jetty.server.session.AbstractClusteredSessionScavengingTest;
|
||||
import org.eclipse.jetty.server.session.SessionDataStoreFactory;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
import org.junit.jupiter.api.BeforeAll;
|
||||
|
||||
/**
|
||||
* ClusteredSessionScavengingTest
|
||||
|
@ -30,11 +31,26 @@ import org.junit.jupiter.api.AfterAll;
|
|||
*/
|
||||
public class ClusteredSessionScavengingTest extends AbstractClusteredSessionScavengingTest
|
||||
{
|
||||
|
||||
|
||||
public static GCloudSessionTestSupport __testSupport;
|
||||
|
||||
@BeforeAll
|
||||
public static void setUp () throws Exception
|
||||
{
|
||||
__testSupport = new GCloudSessionTestSupport();
|
||||
__testSupport.setUp();
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
public static void tearDown () throws Exception
|
||||
{
|
||||
__testSupport.tearDown();
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
public static void teardown () throws Exception
|
||||
{
|
||||
GCloudTestSuite.__testSupport.deleteSessions();
|
||||
__testSupport.deleteSessions();
|
||||
}
|
||||
|
||||
|
||||
|
@ -44,7 +60,7 @@ public class ClusteredSessionScavengingTest extends AbstractClusteredSessionScav
|
|||
@Override
|
||||
public SessionDataStoreFactory createSessionDataStoreFactory()
|
||||
{
|
||||
return GCloudSessionTestSupport.newSessionDataStoreFactory(GCloudTestSuite.__testSupport.getDatastore());
|
||||
return GCloudSessionTestSupport.newSessionDataStoreFactory(__testSupport.getDatastore());
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -22,7 +22,9 @@ package org.eclipse.jetty.gcloud.session;
|
|||
import org.eclipse.jetty.server.session.AbstractSessionDataStoreTest;
|
||||
import org.eclipse.jetty.server.session.SessionData;
|
||||
import org.eclipse.jetty.server.session.SessionDataStoreFactory;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.BeforeAll;
|
||||
|
||||
/**
|
||||
* GCloudSessionDataStoreTest
|
||||
|
@ -32,24 +34,39 @@ import org.junit.jupiter.api.AfterEach;
|
|||
public class GCloudSessionDataStoreTest extends AbstractSessionDataStoreTest
|
||||
{
|
||||
|
||||
public static GCloudSessionTestSupport __testSupport;
|
||||
|
||||
@BeforeAll
|
||||
public static void setUp () throws Exception
|
||||
{
|
||||
__testSupport = new GCloudSessionTestSupport();
|
||||
__testSupport.setUp();
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
public static void tearDown () throws Exception
|
||||
{
|
||||
__testSupport.tearDown();
|
||||
}
|
||||
|
||||
@AfterEach
|
||||
public void teardown () throws Exception
|
||||
{
|
||||
GCloudTestSuite.__testSupport.deleteSessions();
|
||||
__testSupport.deleteSessions();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public SessionDataStoreFactory createSessionDataStoreFactory()
|
||||
{
|
||||
return GCloudSessionTestSupport.newSessionDataStoreFactory(GCloudTestSuite.__testSupport.getDatastore());
|
||||
return GCloudSessionTestSupport.newSessionDataStoreFactory(__testSupport.getDatastore());
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void persistSession(SessionData data) throws Exception
|
||||
{
|
||||
GCloudTestSuite.__testSupport.createSession(data.getId(), data.getContextPath(), data.getVhost(), data.getLastNode(), data.getCreated(),
|
||||
__testSupport.createSession(data.getId(), data.getContextPath(), data.getVhost(), data.getLastNode(), data.getCreated(),
|
||||
data.getAccessed(), data.getLastAccessed(), data.getMaxInactiveMs(), data.getExpiry(),
|
||||
data.getCookieSet(), data.getLastSaved(), data.getAllAttributes());
|
||||
|
||||
|
@ -60,7 +77,7 @@ public class GCloudSessionDataStoreTest extends AbstractSessionDataStoreTest
|
|||
public void persistUnreadableSession(SessionData data) throws Exception
|
||||
{
|
||||
|
||||
GCloudTestSuite.__testSupport.createSession(data.getId(), data.getContextPath(), data.getVhost(), data.getLastNode(), data.getCreated(),
|
||||
__testSupport.createSession(data.getId(), data.getContextPath(), data.getVhost(), data.getLastNode(), data.getCreated(),
|
||||
data.getAccessed(), data.getLastAccessed(), data.getMaxInactiveMs(), data.getExpiry(),
|
||||
data.getCookieSet(), data.getLastSaved(), null);
|
||||
}
|
||||
|
@ -69,7 +86,7 @@ public class GCloudSessionDataStoreTest extends AbstractSessionDataStoreTest
|
|||
@Override
|
||||
public boolean checkSessionExists(SessionData data) throws Exception
|
||||
{
|
||||
return GCloudTestSuite.__testSupport.checkSessionExists(data.getId());
|
||||
return __testSupport.checkSessionExists(data.getId());
|
||||
}
|
||||
|
||||
|
||||
|
@ -79,7 +96,7 @@ public class GCloudSessionDataStoreTest extends AbstractSessionDataStoreTest
|
|||
@Override
|
||||
public boolean checkSessionPersisted(SessionData data) throws Exception
|
||||
{
|
||||
return GCloudTestSuite.__testSupport.checkSessionPersisted(data);
|
||||
return __testSupport.checkSessionPersisted(data);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,55 +0,0 @@
|
|||
//
|
||||
// ========================================================================
|
||||
// Copyright (c) 1995-2018 Mort Bay Consulting Pty. Ltd.
|
||||
// ------------------------------------------------------------------------
|
||||
// All rights reserved. This program and the accompanying materials
|
||||
// are made available under the terms of the Eclipse Public License v1.0
|
||||
// and Apache License v2.0 which accompanies this distribution.
|
||||
//
|
||||
// The Eclipse Public License is available at
|
||||
// http://www.eclipse.org/legal/epl-v10.html
|
||||
//
|
||||
// The Apache License v2.0 is available at
|
||||
// http://www.opensource.org/licenses/apache2.0.php
|
||||
//
|
||||
// You may elect to redistribute this code under either of these licenses.
|
||||
// ========================================================================
|
||||
//
|
||||
|
||||
package org.eclipse.jetty.gcloud.session;
|
||||
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
import org.junit.jupiter.api.BeforeAll;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.runners.Suite;
|
||||
|
||||
/**
|
||||
* GCloudTestSuite
|
||||
*
|
||||
* Sets up the gcloud emulator once before running all tests.
|
||||
*
|
||||
*/
|
||||
@RunWith(Suite.class)
|
||||
@Suite.SuiteClasses({
|
||||
GCloudSessionDataStoreTest.class,
|
||||
InvalidationSessionTest.class,
|
||||
ClusteredSessionScavengingTest.class,
|
||||
ClusteredOrphanedSessionTest.class
|
||||
})
|
||||
public class GCloudTestSuite
|
||||
{
|
||||
public static GCloudSessionTestSupport __testSupport;
|
||||
|
||||
@BeforeAll
|
||||
public static void setUp () throws Exception
|
||||
{
|
||||
__testSupport = new GCloudSessionTestSupport();
|
||||
__testSupport.setUp();
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
public static void tearDown () throws Exception
|
||||
{
|
||||
__testSupport.tearDown();
|
||||
}
|
||||
}
|
|
@ -23,6 +23,7 @@ package org.eclipse.jetty.gcloud.session;
|
|||
import org.eclipse.jetty.server.session.AbstractClusteredInvalidationSessionTest;
|
||||
import org.eclipse.jetty.server.session.SessionDataStoreFactory;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
import org.junit.jupiter.api.BeforeAll;
|
||||
|
||||
/**
|
||||
* InvalidationSessionTest
|
||||
|
@ -31,11 +32,26 @@ import org.junit.jupiter.api.AfterAll;
|
|||
*/
|
||||
public class InvalidationSessionTest extends AbstractClusteredInvalidationSessionTest
|
||||
{
|
||||
|
||||
|
||||
public static GCloudSessionTestSupport __testSupport;
|
||||
|
||||
@BeforeAll
|
||||
public static void setUp () throws Exception
|
||||
{
|
||||
__testSupport = new GCloudSessionTestSupport();
|
||||
__testSupport.setUp();
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
public static void tearDown () throws Exception
|
||||
{
|
||||
__testSupport.tearDown();
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
public static void teardown () throws Exception
|
||||
{
|
||||
GCloudTestSuite.__testSupport.deleteSessions();
|
||||
__testSupport.deleteSessions();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -44,6 +60,6 @@ public class InvalidationSessionTest extends AbstractClusteredInvalidationSessio
|
|||
@Override
|
||||
public SessionDataStoreFactory createSessionDataStoreFactory()
|
||||
{
|
||||
return GCloudSessionTestSupport.newSessionDataStoreFactory(GCloudTestSuite.__testSupport.getDatastore());
|
||||
return GCloudSessionTestSupport.newSessionDataStoreFactory(__testSupport.getDatastore());
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue