@@ -64,6 +64,12 @@ public class ServletHandlerTest
64
64
FilterHolder fh5 = new FilterHolder (Source .JAVAX_API );
65
65
FilterMapping fm5 = new FilterMapping ();
66
66
67
+ FilterHolder fh6 = new FilterHolder (Source .EMBEDDED );
68
+ FilterMapping fm6 = new FilterMapping ();
69
+
70
+ FilterHolder fh7 = new FilterHolder (Source .EMBEDDED );
71
+ FilterMapping fm7 = new FilterMapping ();
72
+
67
73
ServletHolder sh1 = new ServletHolder (new Source (Source .Origin .DESCRIPTOR , "foo.xml" ));
68
74
ServletMapping sm1 = new ServletMapping ();
69
75
@@ -73,6 +79,12 @@ public class ServletHandlerTest
73
79
ServletHolder sh3 = new ServletHolder (new Source (Source .Origin .DESCRIPTOR , "foo.xml" ));
74
80
ServletMapping sm3 = new ServletMapping ();
75
81
82
+ ServletHolder sh4 = new ServletHolder (Source .EMBEDDED );
83
+ ServletMapping sm4 = new ServletMapping ();
84
+
85
+ ServletHolder sh5 = new ServletHolder (Source .EMBEDDED );
86
+ ServletMapping sm5 = new ServletMapping ();
87
+
76
88
@ BeforeEach
77
89
public void initMappings ()
78
90
{
@@ -842,50 +854,61 @@ public void testDurable() throws Exception
842
854
ServletContextHandler context = new ServletContextHandler ();
843
855
server .setHandler (context );
844
856
ServletHandler handler = new ServletHandler ();
857
+ handler .setEnsureDefaultServlet (false );
845
858
context .setHandler (handler );
846
859
ListenerHolder lh1 = new ListenerHolder (HSListener .class );
847
860
ListenerHolder lh2 = new ListenerHolder (SCListener .class );
848
861
849
- fh1 .setFilter (new SomeFilter ());
850
- fm1 .setPathSpec ("/sm1 " );
851
- fm1 .setFilterHolder (fh1 );
852
- fh2 .setFilter (new SomeFilter (){});
853
- fm2 .setPathSpec ("/sm2 " );
854
- fm2 .setFilterHolder (fh2 );
855
- sh1 .setServlet (new SomeServlet ());
856
- sm1 .setPathSpec ("/sm1 " );
857
- sm1 .setServletName (sh1 .getName ());
858
- sh2 .setServlet (new SomeServlet ());
859
- sm2 .setPathSpec ("/sm2 " );
860
- sm2 .setServletName (sh2 .getName ());
862
+ fh6 .setFilter (new SomeFilter ());
863
+ fm6 .setPathSpec ("/sm4 " );
864
+ fm6 .setFilterHolder (fh6 );
865
+ fh7 .setFilter (new SomeFilter (){});
866
+ fm7 .setPathSpec ("/sm5 " );
867
+ fm7 .setFilterHolder (fh7 );
868
+ sh4 .setServlet (new SomeServlet ());
869
+ sm4 .setPathSpec ("/sm4 " );
870
+ sm4 .setServletName (sh4 .getName ());
871
+ sh5 .setServlet (new SomeServlet ());
872
+ sm5 .setPathSpec ("/sm5 " );
873
+ sm5 .setServletName (sh5 .getName ());
861
874
862
875
handler .setListeners (new ListenerHolder [] {lh1 });
863
- handler .setFilters (new FilterHolder [] {fh1 });
864
- handler .setFilterMappings (new FilterMapping [] {fm1 });
865
- handler .setServlets (new ServletHolder [] {sh1 });
866
- handler .setServletMappings (new ServletMapping [] {sm1 });
876
+ handler .setFilters (new FilterHolder [] {fh6 });
877
+ handler .setFilterMappings (new FilterMapping [] {fm6 });
878
+ handler .setServlets (new ServletHolder [] {sh4 });
879
+ handler .setServletMappings (new ServletMapping [] {sm4 });
867
880
868
881
server .start ();
869
882
883
+ //emulate some listeners, servlets and filters added after the ServletHandler has started,
884
+ //these cannot be durable
870
885
handler .setListeners (new ListenerHolder [] {lh1 , lh2 });
871
- handler .setFilters (new FilterHolder [] {fh1 , fh2 });
872
- handler .setFilterMappings (new FilterMapping [] {fm1 , fm2 });
873
- handler .setServlets (new ServletHolder [] {sh1 , sh2 });
874
- handler .setServletMappings (new ServletMapping [] {sm1 , sm2 });
886
+ handler .setFilters (new FilterHolder [] {fh6 , fh7 });
887
+ handler .setFilterMappings (new FilterMapping [] {fm6 , fm7 });
888
+ handler .setServlets (new ServletHolder [] {sh4 , sh5 });
889
+ handler .setServletMappings (new ServletMapping [] {sm4 , sm5 });
875
890
876
891
assertThat (Arrays .asList (handler .getListeners ()), contains (lh1 , lh2 ));
877
- assertThat (Arrays .asList (handler .getFilters ()), contains (fh1 , fh2 ));
878
- assertThat (Arrays .asList (handler .getFilterMappings ()), contains (fm1 , fm2 ));
879
- assertThat (Arrays .asList (handler .getServlets ()), contains (sh1 , sh2 ));
880
- assertThat (Arrays .asList (handler .getServletMappings ()), contains (sm1 , sm2 ));
892
+ assertThat (Arrays .asList (handler .getFilters ()), contains (fh6 , fh7 ));
893
+ assertThat (Arrays .asList (handler .getFilterMappings ()), contains (fm6 , fm7 ));
894
+ assertThat (Arrays .asList (handler .getServlets ()), contains (sh4 , sh5 ));
895
+ assertThat (Arrays .asList (handler .getServletMappings ()), contains (sm4 , sm5 ));
881
896
882
897
server .stop ();
883
898
884
899
assertThat (Arrays .asList (handler .getListeners ()), contains (lh1 ));
885
- assertThat (Arrays .asList (handler .getFilters ()), contains (fh1 ));
886
- assertThat (Arrays .asList (handler .getFilterMappings ()), contains (fm1 ));
887
- assertThat (Arrays .asList (handler .getServlets ()), contains (sh1 ));
888
- assertThat (Arrays .asList (handler .getServletMappings ()), contains (sm1 ));
900
+ assertThat (Arrays .asList (handler .getFilters ()), contains (fh6 ));
901
+ assertThat (Arrays .asList (handler .getFilterMappings ()), contains (fm6 ));
902
+ assertThat (Arrays .asList (handler .getServlets ()), contains (sh4 ));
903
+ assertThat (Arrays .asList (handler .getServletMappings ()), contains (sm4 ));
904
+
905
+ server .start ();
906
+
907
+ assertThat (handler .getListeners ().length , is (1 ));
908
+ assertThat (handler .getFilters ().length , is (1 ));
909
+ assertThat (handler .getFilterMappings ().length , is (1 ));
910
+ assertThat (handler .getServlets ().length , is (1 ));
911
+ assertThat (handler .getServletMappings ().length , is (1 ));
889
912
}
890
913
891
914
public static class HSListener implements HttpSessionListener
0 commit comments