From 65065a8979ff6e72385fe8dc4bb1a98dba6a491e Mon Sep 17 00:00:00 2001
From: Thibault Duchateau <thibault.duchateau@gmail.com>
Date: Sun, 24 Feb 2013 21:36:36 +0100
Subject: [PATCH] Added compatibility with Servlet2.x containers

---
 pom.xml                         |   6 ++
 src/main/webapp/WEB-INF/web.xml | 152 ++++++++++++++++++--------------
 2 files changed, 94 insertions(+), 64 deletions(-)

diff --git a/pom.xml b/pom.xml
index 03307a2..9bd081f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -49,6 +49,7 @@
         <webjars-jquery.version>1.9.0</webjars-jquery.version>
         <dandelion.datatables.version>0.8.5</dandelion.datatables.version>
         <dandelion.datatables.export.itext.version>0.1.5</dandelion.datatables.export.itext.version>
+        <dandelion.datatables.servlet2.version>0.1.4</dandelion.datatables.servlet2.version>
       
         <maven-assembly-plugin.version>2.4</maven-assembly-plugin.version>
         <maven-clean-plugin.version>2.5</maven-clean-plugin.version>
@@ -247,6 +248,11 @@
             <artifactId>datatables-export-itext</artifactId>
             <version>${dandelion.datatables.export.itext.version}</version>
          </dependency>
+         <dependency>
+            <groupId>com.github.dandelion</groupId>
+            <artifactId>datatables-servlet2</artifactId>
+            <version>${dandelion.datatables.servlet2.version}</version>
+         </dependency>
        </dependencies>
 
     <!-- all Maven plugin versions are mentioned in order to guarantee the build reproducibility in the long term -->
diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml
index ef04c4a..f987a66 100644
--- a/src/main/webapp/WEB-INF/web.xml
+++ b/src/main/webapp/WEB-INF/web.xml
@@ -1,65 +1,89 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xmlns="http://java.sun.com/xml/ns/javaee"
-         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
-           http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
-         id="WebApp_ID" version="2.5">
-
-    <display-name>Spring PetClinic</display-name>
-    <description>Spring PetClinic sample application</description>
-
-    <context-param>
-        <param-name>spring.profiles.active</param-name>
-        <param-value>jdbc</param-value>
-        <!-- Available profiles:
-            <param-value>jdbc</param-value>
-            <param-value>jpa</param-value> (in the case of plain JPA)
-            <param-value>spring-data-jpa</param-value> (in the case of Spring Data JPA)
-         -->
-    </context-param>
-
-    <!--
-        - Location of the XML file that defines the root application context.
-        - Applied by ContextLoaderServlet.
-    -->
-    <context-param>
-        <param-name>contextConfigLocation</param-name>
-        <param-value>classpath:spring/dao-config.xml, classpath:spring/tools-config.xml</param-value>
-    </context-param>
-
-    <listener>
-        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
-    </listener>
-
-    <!--
-        - Servlet that dispatches request to registered handlers (Controller implementations).
-    -->
-    <servlet>
-        <servlet-name>petclinic</servlet-name>
-        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
-        <init-param>
-            <param-name>contextConfigLocation</param-name>
-            <param-value>classpath:spring/mvc-core-config.xml</param-value>
-        </init-param>
-        <load-on-startup>1</load-on-startup>
-    </servlet>
-
-    <servlet-mapping>
-        <servlet-name>petclinic</servlet-name>
-        <url-pattern>/</url-pattern>
-    </servlet-mapping>
-
-    <!-- used so we can use forms of method type 'PUT' and 'DELETE' 
-    see here: http://static.springsource.org/spring/docs/current/spring-framework-reference/html/view.html#rest-method-conversion
-    -->
-    <filter>
-        <filter-name>httpMethodFilter</filter-name>
-        <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
-    </filter>
-
-    <filter-mapping>
-        <filter-name>httpMethodFilter</filter-name>
-        <servlet-name>petclinic</servlet-name>
-    </filter-mapping>
-
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xmlns="http://java.sun.com/xml/ns/javaee"
+         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
+           http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
+         id="WebApp_ID" version="2.5">
+
+    <display-name>Spring PetClinic</display-name>
+    <description>Spring PetClinic sample application</description>
+
+    <context-param>
+        <param-name>spring.profiles.active</param-name>
+        <param-value>jdbc</param-value>
+        <!-- Available profiles:
+            <param-value>jdbc</param-value>
+            <param-value>jpa</param-value> (in the case of plain JPA)
+            <param-value>spring-data-jpa</param-value> (in the case of Spring Data JPA)
+         -->
+    </context-param>
+
+    <!--
+        - Location of the XML file that defines the root application context.
+        - Applied by ContextLoaderServlet.
+    -->
+    <context-param>
+        <param-name>contextConfigLocation</param-name>
+        <param-value>classpath:spring/dao-config.xml, classpath:spring/tools-config.xml</param-value>
+    </context-param>
+
+    <listener>
+        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
+    </listener>
+
+    <!--
+        - Servlet that dispatches request to registered handlers (Controller implementations).
+    -->
+    <servlet>
+        <servlet-name>petclinic</servlet-name>
+        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
+        <init-param>
+            <param-name>contextConfigLocation</param-name>
+            <param-value>classpath:spring/mvc-core-config.xml</param-value>
+        </init-param>
+        <load-on-startup>1</load-on-startup>
+    </servlet>
+
+    <servlet-mapping>
+        <servlet-name>petclinic</servlet-name>
+        <url-pattern>/</url-pattern>
+    </servlet-mapping>
+
+    <!-- Dandelion-Datatables servlet definition -->
+    <servlet>
+        <servlet-name>datatablesController</servlet-name>
+        <servlet-class>com.github.dandelion.datatables.extras.servlet2.servlet.DatatablesServlet</servlet-class>
+    </servlet>
+   
+    <!-- Dandelion-Datatables servlet mapping -->
+    <servlet-mapping>
+        <servlet-name>datatablesController</servlet-name>
+        <url-pattern>/datatablesController/*</url-pattern>
+    </servlet-mapping>
+   
+    <!-- Dandelion-Datatables filter definition -->
+    <filter>
+        <filter-name>datatablesFilter</filter-name>
+        <filter-class>com.github.dandelion.datatables.extras.servlet2.filter.DatatablesFilter</filter-class>
+    </filter>
+    
+    <!-- Dandelion-Datatables filter mapping -->
+    <filter-mapping>
+        <filter-name>datatablesFilter</filter-name>
+        <url-pattern>/*</url-pattern>
+    </filter-mapping>
+
+    <!-- used so we can use forms of method type 'PUT' and 'DELETE' 
+    see here: http://static.springsource.org/spring/docs/current/spring-framework-reference/html/view.html#rest-method-conversion
+    -->
+    <filter>
+        <filter-name>httpMethodFilter</filter-name>
+        <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
+    </filter>
+
+    <filter-mapping>
+        <filter-name>httpMethodFilter</filter-name>
+        <servlet-name>petclinic</servlet-name>
+    </filter-mapping>
+
 </web-app>
\ No newline at end of file
-- 
GitLab