diff --git a/samples/contacts/maven.xml b/samples/contacts/maven.xml
new file mode 100644
index 0000000000..238ab03652
--- /dev/null
+++ b/samples/contacts/maven.xml
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/contacts/etc/ca/applicationContext.xml b/samples/contacts/src/main/webapp/ca/WEB-INF/applicationContext.xml
similarity index 100%
rename from samples/contacts/etc/ca/applicationContext.xml
rename to samples/contacts/src/main/webapp/ca/WEB-INF/applicationContext.xml
diff --git a/samples/contacts/etc/ca/resin-acegisecurity.xml b/samples/contacts/src/main/webapp/ca/WEB-INF/classes/resin-acegisecurity.xml
similarity index 100%
rename from samples/contacts/etc/ca/resin-acegisecurity.xml
rename to samples/contacts/src/main/webapp/ca/WEB-INF/classes/resin-acegisecurity.xml
diff --git a/samples/contacts/etc/ca/jboss-web.xml b/samples/contacts/src/main/webapp/ca/WEB-INF/jboss-web.xml
similarity index 100%
rename from samples/contacts/etc/ca/jboss-web.xml
rename to samples/contacts/src/main/webapp/ca/WEB-INF/jboss-web.xml
diff --git a/samples/contacts/etc/ca/resin-web.xml b/samples/contacts/src/main/webapp/ca/WEB-INF/resin-web.xml
similarity index 100%
rename from samples/contacts/etc/ca/resin-web.xml
rename to samples/contacts/src/main/webapp/ca/WEB-INF/resin-web.xml
diff --git a/samples/contacts/etc/ca/web.xml b/samples/contacts/src/main/webapp/ca/WEB-INF/web.xml
similarity index 100%
rename from samples/contacts/etc/ca/web.xml
rename to samples/contacts/src/main/webapp/ca/WEB-INF/web.xml
diff --git a/samples/contacts/etc/ca/login.jsp b/samples/contacts/src/main/webapp/ca/login.jsp
similarity index 97%
rename from samples/contacts/etc/ca/login.jsp
rename to samples/contacts/src/main/webapp/ca/login.jsp
index 3a587ca1ea..9d952ce225 100644
--- a/samples/contacts/etc/ca/login.jsp
+++ b/samples/contacts/src/main/webapp/ca/login.jsp
@@ -1,43 +1,43 @@
-<%@ taglib prefix='c' uri='http://java.sun.com/jstl/core' %>
-<%-- This page will be copied into WAR's root directory if using container adapter --%>
-
-
- Login
-
-
-
- Login
-
- If you've used the standard springsecurity.xml, try these users:
-
-
username marissa, password koala (granted ROLE_SUPERVISOR)
-
username dianne, password emu (not a supervisor)
-
username scott, password wombat (not a supervisor)
-
-
- <%-- this form-login-page form is also used as the
- form-error-page to ask for a login again.
- --%>
-
-
- Your login attempt was not successful, try again.
-
-
-
-
-
-
-
+<%@ taglib prefix='c' uri='http://java.sun.com/jstl/core' %>
+<%-- This page will be copied into WAR's root directory if using container adapter --%>
+
+
+ Login
+
+
+
+ Login
+
+ If you've used the standard springsecurity.xml, try these users:
+
+
username marissa, password koala (granted ROLE_SUPERVISOR)
+
username dianne, password emu (not a supervisor)
+
username scott, password wombat (not a supervisor)
+
+
+ <%-- this form-login-page form is also used as the
+ form-error-page to ask for a login again.
+ --%>
+
+
+ Your login attempt was not successful, try again.
+
+
+
+
+
+
+
diff --git a/samples/contacts/etc/cas/applicationContext.xml b/samples/contacts/src/main/webapp/cas/WEB-INF/applicationContext.xml
similarity index 100%
rename from samples/contacts/etc/cas/applicationContext.xml
rename to samples/contacts/src/main/webapp/cas/WEB-INF/applicationContext.xml
diff --git a/samples/contacts/etc/cas/web.xml b/samples/contacts/src/main/webapp/cas/WEB-INF/web.xml
similarity index 100%
rename from samples/contacts/etc/cas/web.xml
rename to samples/contacts/src/main/webapp/cas/WEB-INF/web.xml
diff --git a/samples/contacts/etc/cas/casfailed.jsp b/samples/contacts/src/main/webapp/cas/casfailed.jsp
similarity index 96%
rename from samples/contacts/etc/cas/casfailed.jsp
rename to samples/contacts/src/main/webapp/cas/casfailed.jsp
index 0d0b9d3246..da2f14cc15 100644
--- a/samples/contacts/etc/cas/casfailed.jsp
+++ b/samples/contacts/src/main/webapp/cas/casfailed.jsp
@@ -1,20 +1,20 @@
-<%@ taglib prefix='c' uri='http://java.sun.com/jstl/core' %>
-<%@ page import="net.sf.acegisecurity.ui.AbstractProcessingFilter" %>
-<%@ page import="net.sf.acegisecurity.AuthenticationException" %>
-<%-- This page will be copied into WAR's root directory if using CAS --%>
-
-
-
- Login to CAS failed!
-
-
-
- Login to CAS failed!
-
-
- Your CAS credentials were rejected.
- Reason: <%= ((AuthenticationException) session.getAttribute(AbstractProcessingFilter.ACEGI_SECURITY_LAST_EXCEPTION_KEY)).getMessage() %>
-
-
-
-
+<%@ taglib prefix='c' uri='http://java.sun.com/jstl/core' %>
+<%@ page import="net.sf.acegisecurity.ui.AbstractProcessingFilter" %>
+<%@ page import="net.sf.acegisecurity.AuthenticationException" %>
+<%-- This page will be copied into WAR's root directory if using CAS --%>
+
+
+
+ Login to CAS failed!
+
+
+
+ Login to CAS failed!
+
+
+ Your CAS credentials were rejected.
+ Reason: <%= ((AuthenticationException) session.getAttribute(AbstractProcessingFilter.ACEGI_SECURITY_LAST_EXCEPTION_KEY)).getMessage() %>
+
+
+
+
diff --git a/samples/contacts/etc/filter/applicationContext.xml b/samples/contacts/src/main/webapp/filter/WEB-INF/applicationContext.xml
similarity index 100%
rename from samples/contacts/etc/filter/applicationContext.xml
rename to samples/contacts/src/main/webapp/filter/WEB-INF/applicationContext.xml
diff --git a/samples/contacts/etc/filter/web.xml b/samples/contacts/src/main/webapp/filter/WEB-INF/web.xml
similarity index 100%
rename from samples/contacts/etc/filter/web.xml
rename to samples/contacts/src/main/webapp/filter/WEB-INF/web.xml
diff --git a/samples/contacts/etc/filter/acegilogin.jsp b/samples/contacts/src/main/webapp/filter/acegilogin.jsp
similarity index 97%
rename from samples/contacts/etc/filter/acegilogin.jsp
rename to samples/contacts/src/main/webapp/filter/acegilogin.jsp
index 32334406f8..53010c8f9c 100644
--- a/samples/contacts/etc/filter/acegilogin.jsp
+++ b/samples/contacts/src/main/webapp/filter/acegilogin.jsp
@@ -1,43 +1,43 @@
-<%@ taglib prefix='c' uri='http://java.sun.com/jstl/core' %>
-<%@ page import="net.sf.acegisecurity.ui.AbstractProcessingFilter" %>
-<%@ page import="net.sf.acegisecurity.AuthenticationException" %>
-<%-- This page will be copied into WAR's root directory if NOT using container adapter --%>
-
-
-
- Login
-
-
-
- Login
-
- If you've used the standard springsecurity.xml, try these users:
-
-
username marissa, password koala (granted ROLE_SUPERVISOR)
-
username dianne, password emu (not a supervisor)
-
username scott, password wombat (not a supervisor)
-
-
- <%-- this form-login-page form is also used as the
- form-error-page to ask for a login again.
- --%>
-
-
- Your login attempt was not successful, try again.
- Reason: <%= ((AuthenticationException) session.getAttribute(AbstractProcessingFilter.ACEGI_SECURITY_LAST_EXCEPTION_KEY)).getMessage() %>
-
-
-
-
-
-
-
+<%@ taglib prefix='c' uri='http://java.sun.com/jstl/core' %>
+<%@ page import="net.sf.acegisecurity.ui.AbstractProcessingFilter" %>
+<%@ page import="net.sf.acegisecurity.AuthenticationException" %>
+<%-- This page will be copied into WAR's root directory if NOT using container adapter --%>
+
+
+
+ Login
+
+
+
+ Login
+
+ If you've used the standard springsecurity.xml, try these users:
+
+
username marissa, password koala (granted ROLE_SUPERVISOR)
+
username dianne, password emu (not a supervisor)
+
username scott, password wombat (not a supervisor)
+
+
+ <%-- this form-login-page form is also used as the
+ form-error-page to ask for a login again.
+ --%>
+
+
+ Your login attempt was not successful, try again.
+ Reason: <%= ((AuthenticationException) session.getAttribute(AbstractProcessingFilter.ACEGI_SECURITY_LAST_EXCEPTION_KEY)).getMessage() %>
+
+
+
+
+
+
+