Skip to content

Commit 673ce8b

Browse files
committed
Merge branch 'svrc-pivotal-web_xml_load_on_startup_fix'
[resolves #181][resolves #182]
2 parents 23591d3 + f64e9f8 commit 673ce8b

6 files changed

Lines changed: 61 additions & 2 deletions

File tree

lib/java_buildpack/framework/spring_auto_reconfiguration/web_xml_modifier.rb

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,13 @@ def context_loader_listener?
9595
end
9696

9797
def create_param(root, param_type, name, value)
98-
param = REXML::Element.new param_type, root
99-
98+
load_on_startup = xpath(root, 'load-on-startup')
99+
if load_on_startup.any?
100+
param = REXML::Element.new param_type
101+
load_on_startup.first.previous_sibling = param
102+
else
103+
param = REXML::Element.new param_type, root
104+
end
100105
param_name = REXML::Element.new 'param-name', param
101106
REXML::Text.new name, true, param_name
102107

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?xml version='1.0' encoding='UTF-8'?>
2+
<web-app xsi:schemaLocation='http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd' version='2.5' xmlns='http://java.sun.com/xml/ns/javaee' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
3+
<servlet>
4+
<servlet-name>test</servlet-name>
5+
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
6+
<init-param>
7+
<param-name> contextInitializerClasses </param-name>
8+
<param-value>
9+
com.gopivotal.test,org.cloudfoundry.reconfiguration.spring.CloudProfileApplicationContextInitializer,org.cloudfoundry.reconfiguration.spring.CloudPropertySourceApplicationContextInitializer,org.cloudfoundry.reconfiguration.spring.CloudAutoReconfigurationApplicationContextInitializer
10+
</param-value>
11+
</init-param>
12+
<load-on-startup>1</load-on-startup>
13+
</servlet>
14+
</web-app>
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?xml version='1.0' encoding='UTF-8'?>
2+
<web-app xsi:schemaLocation='http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd' version='2.5' xmlns='http://java.sun.com/xml/ns/javaee' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
3+
<servlet>
4+
<servlet-name>test</servlet-name>
5+
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
6+
<init-param>
7+
<param-name>
8+
contextInitializerClasses
9+
</param-name>
10+
<param-value>
11+
com.gopivotal.test
12+
</param-value>
13+
</init-param>
14+
<load-on-startup>1</load-on-startup>
15+
</servlet>
16+
</web-app>
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?xml version='1.0' encoding='UTF-8'?>
2+
<web-app xsi:schemaLocation='http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd' version='2.5' xmlns='http://java.sun.com/xml/ns/javaee' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
3+
<servlet>
4+
<servlet-name>test</servlet-name>
5+
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
6+
<init-param>
7+
<param-name>contextInitializerClasses</param-name>
8+
<param-value>
9+
org.cloudfoundry.reconfiguration.spring.CloudProfileApplicationContextInitializer,org.cloudfoundry.reconfiguration.spring.CloudPropertySourceApplicationContextInitializer,org.cloudfoundry.reconfiguration.spring.CloudAutoReconfigurationApplicationContextInitializer
10+
</param-value>
11+
</init-param>
12+
<load-on-startup>1</load-on-startup>
13+
</servlet>
14+
</web-app>
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?xml version='1.0' encoding='UTF-8'?>
2+
<web-app xsi:schemaLocation='http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd' version='2.5' xmlns='http://java.sun.com/xml/ns/javaee' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
3+
<servlet>
4+
<servlet-name>test</servlet-name>
5+
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
6+
<load-on-startup>1</load-on-startup>
7+
</servlet>
8+
</web-app>

spec/java_buildpack/framework/spring_auto_reconfiguration/web_xml_modifier_spec.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,13 @@
3030
it 'adds a new contextInitializerClasses if it does not exist' do
3131
assert_equality('web_root_no_params') { |modifier| modifier.augment_root_context }
3232
assert_equality('web_servlet_no_params') { |modifier| modifier.augment_servlet_contexts }
33+
assert_equality('web_servlet_load_on_startup') { |modifier| modifier.augment_servlet_contexts }
3334
end
3435

3536
it 'updates existing contextInitializerClasses if it does exist' do
3637
assert_equality('web_root_existing_params') { |modifier| modifier.augment_root_context }
3738
assert_equality('web_servlet_existing_params') { |modifier| modifier.augment_servlet_contexts }
39+
assert_equality('web_servlet_existing_load_on_startup') { |modifier| modifier.augment_servlet_contexts }
3840
end
3941

4042
def assert_equality(fixture)

0 commit comments

Comments
 (0)