JSEC-45 Initial work.  Samples still needs to be completed

git-svn-id: https://svn.apache.org/repos/asf/incubator/jsecurity/trunk@736249 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/core/pom.xml b/core/pom.xml
new file mode 100644
index 0000000..83ca59c
--- /dev/null
+++ b/core/pom.xml
@@ -0,0 +1,37 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+    <parent>
+        <groupId>org.apache.jsecurity</groupId>
+        <artifactId>jsecurity-root</artifactId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>jsecurity-core</artifactId>
+    <name>Apache JSecurity :: Core</name>
+    <packaging>jar</packaging>
+
+    <build/>
+
+    <dependencies>
+
+        <dependency>
+            <groupId>commons-beanutils</groupId>
+            <artifactId>commons-beanutils</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>commons-logging</groupId>
+            <artifactId>commons-logging</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.easymock</groupId>
+            <artifactId>easymock</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+    </dependencies>
+
+</project>
diff --git a/pom.xml b/pom.xml
index 8ca7b8b..699cb2b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -22,12 +22,16 @@
 
     <modelVersion>4.0.0</modelVersion>
 
-    <groupId>org.jsecurity</groupId>
-    <artifactId>jsecurity</artifactId>
-    <version>0.9.0</version>
-    <name>JSecurity</name>
-    <url>http://www.jsecurity.org</url>
-    <description>JSecurity is a powerful and flexible open-source Java security framework that cleanly handles
+    <groupId>org.apache.jsecurity</groupId>
+    <artifactId>jsecurity-root</artifactId>
+    <packaging>pom</packaging>
+
+    <version>1.0-SNAPSHOT</version>
+    <name>Apache JSecurity</name>
+
+    <url>http://incubator.apache.org/jsecurity/</url>
+    <description>
+        Apache JSecurity is a powerful and flexible open-source Java security framework that cleanly handles
         authentication, authorization, enterprise session management, single sign-on and cryptography services.
     </description>
 
@@ -46,328 +50,220 @@
 
     <scm>
         <connection>scm:svn:http://svn.apache.org/repos/asf/incubator/jsecurity/import/trunk</connection>
-        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/incubator/jsecurity/import/trunk
-        </developerConnection>
+        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/incubator/jsecurity/import/trunk</developerConnection>
         <url>http://svn.apache.org/repos/asf/incubator/jsecurity/import/trunk</url>
     </scm>
 
+    <properties>
+        <hsqldbVersion>1.8.0.7</hsqldbVersion>
+        <jettyVersion>6.1.9</jettyVersion>
+        <jsecurityVersion>1.0-SNAPSHOT</jsecurityVersion>
+        <retroweaverVersion>2.0.5</retroweaverVersion>
+        <springframeworkVersion>2.5.6</springframeworkVersion>
+    </properties>
+
+    <modules>
+        <module>core</module>
+        <module>support</module>
+        <module>samples</module>
+        <module>web</module>
+    </modules>
+
+    <build>
+        <!-- non-standard source locations -->
+        <sourceDirectory>${basedir}/src</sourceDirectory>
+        <testSourceDirectory>${basedir}/test</testSourceDirectory>
+        <resources>
+            <resource>
+                <excludes>
+                    <exclude>**/*.java</exclude>
+                </excludes>
+                <directory>${basedir}/src</directory>
+            </resource>
+        </resources>
+
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <source>1.5</source>
+                    <target>1.5</target>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
     <dependencies>
-        <dependency>
-            <groupId>commons-logging</groupId>
-            <artifactId>commons-logging</artifactId>
-            <version>1.1.1</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>log4j</groupId>
-                    <artifactId>log4j</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>logkit</groupId>
-                    <artifactId>logkit</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>avalon-framework</groupId>
-                    <artifactId>avalon-framework</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>javax.servlet</groupId>
-                    <artifactId>servlet-api</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>commons-beanutils</groupId>
-            <artifactId>commons-beanutils</artifactId>
-            <version>1.7.0</version>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>net.sourceforge.retroweaver</groupId>
-            <artifactId>retroweaver</artifactId>
-            <version>2.0.5</version>
-            <optional>true</optional>
-        </dependency>
-        <dependency>
-            <groupId>net.sourceforge.retroweaver</groupId>
-            <artifactId>retroweaver-rt</artifactId>
-            <version>2.0.5</version>
-            <optional>true</optional>
-        </dependency>
-        <dependency>
-            <groupId>net.sf.ehcache</groupId>
-            <artifactId>ehcache</artifactId>
-            <version>1.4.1</version>
-            <optional>true</optional>
-        </dependency>
-        <dependency>
-            <groupId>quartz</groupId>
-            <artifactId>quartz</artifactId>
-            <version>1.5.2</version>
-            <optional>true</optional>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework</groupId>
-            <artifactId>spring</artifactId>
-            <version>2.5.6</version>
-            <optional>true</optional>
-        </dependency>
-        <dependency>
-            <groupId>javax.servlet</groupId>
-            <artifactId>servlet-api</artifactId>
-            <version>2.5</version>
-            <optional>true</optional>
-        </dependency>
-        <dependency>
-            <groupId>javax.servlet.jsp</groupId>
-            <artifactId>jsp-api</artifactId>
-            <version>2.1</version>
-            <optional>true</optional>
-        </dependency>
-        <dependency>
-            <groupId>log4j</groupId>
-            <artifactId>log4j</artifactId>
-            <version>1.2.15</version>
-            <optional>true</optional>
-            <exclusions>
-                <exclusion>
-                    <groupId>javax.jms</groupId>
-                    <artifactId>jms</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>com.sun.jdmk</groupId>
-                    <artifactId>jmxtools</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>com.sun.jmx</groupId>
-                    <artifactId>jmxri</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>javax.servlet</groupId>
-            <artifactId>jstl</artifactId>
-            <version>1.2</version>
-            <optional>true</optional>
-        </dependency>
-        <dependency>
-            <groupId>taglibs</groupId>
-            <artifactId>standard</artifactId>
-            <version>1.1.2</version>
-            <optional>true</optional>
-        </dependency>
-        <dependency>
-            <groupId>hsqldb</groupId>
-            <artifactId>hsqldb</artifactId>
-            <version>1.8.0.7</version>
-            <optional>true</optional>
-        </dependency>
-        <dependency>
-            <groupId>org.easymock</groupId>
-            <artifactId>easymock</artifactId>
-            <version>2.3</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.easymock</groupId>
-            <artifactId>easymockclassextension</artifactId>
-            <version>2.3</version>
-            <scope>test</scope>
-        </dependency>
+
         <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
             <version>4.4</version>
             <scope>test</scope>
         </dependency>
+
     </dependencies>
 
-    <build>
-        <!-- non-standard source locations -->
-        <sourceDirectory>${basedir}/src</sourceDirectory>
-        <testSourceDirectory>${basedir}/test</testSourceDirectory>
-        <pluginManagement>
-            <plugins>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-gpg-plugin</artifactId>
-                    <version>1.0-alpha-3</version>
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-install-plugin</artifactId>
-                    <version>2.2</version>
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-jar-plugin</artifactId>
-                    <version>2.2</version>
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-source-plugin</artifactId>
-                    <version>2.0.4</version>
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-surefire-plugin</artifactId>
-                    <version>2.4.2</version>
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-assembly-plugin</artifactId>
-                    <version>2.2-beta-1</version>
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-release-plugin</artifactId>
-                    <version>2.0-beta-7</version>
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-javadoc-plugin</artifactId>
-                    <version>2.3</version>
-                    <configuration>
-                        <encoding>${jsecurity.encoding}</encoding>
-                        <docEncoding>${jsecurity.docEncoding}</docEncoding>
-                    </configuration>
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-compiler-plugin</artifactId>
-                    <version>2.0.2</version>
-                    <configuration>
-                        <source>${maven.compile.source}</source>
-                        <target>${maven.compile.target}</target>
-                        <encoding>${jsecurity.encoding}</encoding>
-                    </configuration>
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-antrun-plugin</artifactId>
-                    <version>1.1</version>
-                </plugin>
-            </plugins>
-        </pluginManagement>
-        <plugins>
-            <plugin>
-                <!-- generate the IntelliJ project files -->
-                <artifactId>maven-idea-plugin</artifactId>
-                <configuration>
-                    <jdkLevel>${maven.compile.source}</jdkLevel>
-                    <downloadSources>true</downloadSources>
-                </configuration>
-            </plugin>
-            <plugin>
-                <!-- generate the Eclipse project files -->
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-eclipse-plugin</artifactId>
-                <configuration>
-                    <downloadSources>true</downloadSources>
-                    <downloadJavadocs>false</downloadJavadocs>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
+    <dependencyManagement>
+        <dependencies>
 
-    <reporting>
-        <plugins>
-            <!-- this pulls in a lot of dependencies -->
-            <!--
-            <plugin>
-              <groupId>org.codehaus.mojo</groupId>
-              <artifactId>findbugs-maven-plugin</artifactId>
-              <version>1.1.1</version>
-            </plugin>
-            -->
-            <plugin>
-                <!-- get test coverage for regression tests -->
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>cobertura-maven-plugin</artifactId>
-                <version>2.2</version>
-            </plugin>
-            <plugin>
-                <!-- generate the PMD reports -->
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-pmd-plugin</artifactId>
-                <version>2.3</version>
-                <configuration>
-                    <minimumTokens>200</minimumTokens>
-                    <targetJdk>${maven.compile.source}</targetJdk>
-                    <rulesets>
-                        <ruleset>/rulesets/basic.xml</ruleset>
-                        <ruleset>/rulesets/imports.xml</ruleset>
-                        <ruleset>/rulesets/unusedcode.xml</ruleset>
-                        <ruleset>/rulesets/finalizers.xml</ruleset>
-                    </rulesets>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-project-info-reports-plugin</artifactId>
-                <version>2.0.1</version>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-javadoc-plugin</artifactId>
-                <version>2.3</version>
-                <configuration>
-                    <aggregate>true</aggregate>
-                    <source>${maven.compile.source}</source>
-                    <encoding>${jsecurity.encoding}</encoding>
-                    <docEncoding>${jsecurity.docEncoding}</docEncoding>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-jxr-plugin</artifactId>
+            <dependency>
+                <groupId>commons-beanutils</groupId>
+                <artifactId>commons-beanutils</artifactId>
+                <version>1.7.0</version>
+            </dependency>
+
+            <dependency>
+                <groupId>commons-logging</groupId>
+                <artifactId>commons-logging</artifactId>
+                <version>1.1.1</version>
+                <exclusions>
+                    <exclusion>
+                        <groupId>log4j</groupId>
+                        <artifactId>log4j</artifactId>
+                    </exclusion>
+                    <exclusion>
+                        <groupId>logkit</groupId>
+                        <artifactId>logkit</artifactId>
+                    </exclusion>
+                    <exclusion>
+                        <groupId>avalon-framework</groupId>
+                        <artifactId>avalon-framework</artifactId>
+                    </exclusion>
+                    <exclusion>
+                        <groupId>javax.servlet</groupId>
+                        <artifactId>servlet-api</artifactId>
+                    </exclusion>
+                </exclusions>
+            </dependency>
+
+            <dependency>
+                <groupId>hsqldb</groupId>
+                <artifactId>hsqldb</artifactId>
+                <version>${hsqldbVersion}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>javax.servlet.jsp</groupId>
+                <artifactId>jsp-api</artifactId>
                 <version>2.1</version>
-                <configuration>
-                    <aggregate>true</aggregate>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-site-plugin</artifactId>
-                <version>2.0-beta-6</version>
-                <configuration>
-                    <!-- Exclude the navigation file for Maven 1 sites
-             and the changes file used by the changes-plugin,
-             as they interfere with the site generation. -->
-                    <moduleExcludes>
-                        <xdoc>navigation.xml,changes.xml</xdoc>
-                    </moduleExcludes>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-surefire-report-plugin</artifactId>
-                <version>2.4.2</version>
-            </plugin>
-            <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>jdepend-maven-plugin</artifactId>
-                <version>2.0-beta-1</version>
-            </plugin>
-            <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>rat-maven-plugin</artifactId>
-                <version>1.0-alpha-3</version>
-            </plugin>
-        </plugins>
-    </reporting>
+            </dependency>
 
-    <properties>
-        <!-- Default configuration for compiler source and target JVM -->
-        <maven.compile.source>1.5</maven.compile.source>
-        <maven.compile.target>1.5</maven.compile.target>
-        <!--
-          Encoding of Java source files: Make sure, that the compiler and
-          the javadoc generator use the right encoding. Subprojects may
-          overwrite this, if they are using another encoding.
-        -->
-        <jsecurity.encoding>iso-8859-1</jsecurity.encoding>
-        <jsecurity.docEncoding>${jsecurity.encoding}</jsecurity.docEncoding>
+            <dependency>
+                <groupId>javax.servlet</groupId>
+                <artifactId>jstl</artifactId>
+                <version>1.2</version>
+            </dependency>
 
-    </properties>
+            <dependency>
+                <groupId>javax.servlet</groupId>
+                <artifactId>servlet-api</artifactId>
+                <version>2.5</version>
+            </dependency>
 
-</project>
\ No newline at end of file
+            <dependency>
+                <groupId>junit</groupId>
+                <artifactId>junit</artifactId>
+                <version>4.4</version>
+                <scope>test</scope>
+            </dependency>
+
+            <dependency>
+                <groupId>log4j</groupId>
+                <artifactId>log4j</artifactId>
+                <version>1.2.15</version>
+                <exclusions>
+                    <exclusion>
+                        <groupId>javax.jms</groupId>
+                        <artifactId>jms</artifactId>
+                    </exclusion>
+                    <exclusion>
+                        <groupId>com.sun.jdmk</groupId>
+                        <artifactId>jmxtools</artifactId>
+                    </exclusion>
+                    <exclusion>
+                        <groupId>com.sun.jmx</groupId>
+                        <artifactId>jmxri</artifactId>
+                    </exclusion>
+                </exclusions>
+            </dependency>
+
+            <dependency>
+                <groupId>net.sf.ehcache</groupId>
+                <artifactId>ehcache</artifactId>
+                <version>1.4.1</version>
+            </dependency>
+
+            <dependency>
+                <groupId>net.sourceforge.retroweaver</groupId>
+                <artifactId>retroweaver</artifactId>
+                <version>${retroweaverVersion}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>net.sourceforge.retroweaver</groupId>
+                <artifactId>retroweaver-rt</artifactId>
+                <version>${retroweaverVersion}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>org.apache.jsecurity</groupId>
+                <artifactId>jsecurity-core</artifactId>
+                <version>${jsecurityVersion}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>org.apache.jsecurity</groupId>
+                <artifactId>jsecurity-spring</artifactId>
+                <version>${jsecurityVersion}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>org.apache.jsecurity</groupId>
+                <artifactId>jsecurity-web</artifactId>
+                <version>${jsecurityVersion}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>org.easymock</groupId>
+                <artifactId>easymock</artifactId>
+                <version>2.3</version>
+                <scope>test</scope>
+            </dependency>
+
+            <dependency>
+                <groupId>org.easymock</groupId>
+                <artifactId>easymockclassextension</artifactId>
+                <version>2.3</version>
+                <scope>test</scope>
+            </dependency>
+
+            <dependency>
+                <groupId>org.springframework</groupId>
+                <artifactId>spring</artifactId>
+                <version>${springframeworkVersion}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>org.springframework</groupId>
+                <artifactId>spring-webmvc</artifactId>
+                <version>${springframeworkVersion}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>quartz</groupId>
+                <artifactId>quartz</artifactId>
+                <version>1.5.2</version>
+            </dependency>
+
+            <dependency>
+                <groupId>taglibs</groupId>
+                <artifactId>standard</artifactId>
+                <version>1.1.2</version>
+            </dependency>
+
+        </dependencies>
+    </dependencyManagement>
+
+</project>
diff --git a/samples/pom.xml b/samples/pom.xml
new file mode 100644
index 0000000..0a2daab
--- /dev/null
+++ b/samples/pom.xml
@@ -0,0 +1,22 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+    <parent>
+        <groupId>org.apache.jsecurity</groupId>
+        <artifactId>jsecurity-root</artifactId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+
+    <modelVersion>4.0.0</modelVersion>
+    <groupId>org.apache.jsecurity.samples</groupId>
+    <artifactId>jsecurity-samples</artifactId>
+    <name>Apache JSecurity :: Samples</name>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>quickstart</module>
+        <module>spring</module>
+    </modules>
+
+</project>
+
diff --git a/samples/quickstart/pom.xml b/samples/quickstart/pom.xml
new file mode 100644
index 0000000..b1ad4f6
--- /dev/null
+++ b/samples/quickstart/pom.xml
@@ -0,0 +1,26 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+    <parent>
+        <groupId>org.apache.jsecurity.samples</groupId>
+        <artifactId>jsecurity-samples</artifactId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>quickstart</artifactId>
+    <name>Apache JSecurity :: Samples :: Quick Start</name>
+    <packaging>jar</packaging>
+
+    <build/>
+
+    <dependencies>
+
+        <dependency>
+            <groupId>org.apache.jsecurity</groupId>
+            <artifactId>jsecurity-core</artifactId>
+        </dependency>
+
+    </dependencies>
+
+</project>
diff --git a/samples/quickstart/quickstart.iml b/samples/quickstart/quickstart.iml
index e3e0195..a81b230 100644
--- a/samples/quickstart/quickstart.iml
+++ b/samples/quickstart/quickstart.iml
@@ -4,11 +4,40 @@
     <exclude-output />
     <content url="file://$MODULE_DIR$">
       <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
+      <excludeFolder url="file://$MODULE_DIR$/target" />
     </content>
     <orderEntry type="inheritedJdk" />
     <orderEntry type="sourceFolder" forTests="false" />
     <orderEntry type="module" module-name="jsecurity" />
     <orderEntry type="library" name="quickstart-libs" level="project" />
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.4/junit-4.4.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module" module-name="jsecurity-core" />
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MAVEN_REPOSITORY$/commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MAVEN_REPOSITORY$/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
   </component>
   <component name="copyright">
     <Base>
diff --git a/samples/spring/pom.xml b/samples/spring/pom.xml
new file mode 100644
index 0000000..6ade34f
--- /dev/null
+++ b/samples/spring/pom.xml
@@ -0,0 +1,120 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+    <parent>
+        <groupId>org.apache.jsecurity.samples</groupId>
+        <artifactId>jsecurity-samples</artifactId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>spring</artifactId>
+    <name>Apache JSecurity :: Samples :: Spring</name>
+    <packaging>war</packaging>
+
+    <build>
+        <plugins>
+            <!-- non-standard source locations -->
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-war-plugin</artifactId>
+                <version>2.0</version>
+                <configuration>
+                    <webResources>
+                        <resource>
+                            <directory>${basedir}/webroot</directory>
+                        </resource>
+                        <resource>
+                            <directory>${basedir}/etc</directory>
+                        </resource>
+                        <resource>
+                            <directory>${basedir}/resources</directory>
+                        </resource>
+                    </webResources>
+                </configuration>
+            </plugin>
+
+            <plugin>
+                <groupId>org.mortbay.jetty</groupId>
+                <artifactId>maven-jetty-plugin</artifactId>
+                <version>${jettyVersion}</version>
+                <configuration>
+                    <contextPath>/jsec</contextPath>
+                    <!-- non-standard source locations -->
+                    <webAppSourceDirectory>${basedir}/webroot</webAppSourceDirectory>
+                    <connectors>
+                        <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
+                            <port>9080</port>
+                            <maxIdleTime>60000</maxIdleTime>
+                        </connector>
+                    </connectors>
+                    <requestLog implementation="org.mortbay.jetty.NCSARequestLog">
+                        <filename>./target/yyyy_mm_dd.request.log</filename>
+                        <retainDays>90</retainDays>
+                        <append>true</append>
+                        <extended>false</extended>
+                        <logTimeZone>GMT</logTimeZone>
+                    </requestLog>
+                    <systemProperties>
+                        <systemProperty>
+                            <name>org.apache.commons.logging.Log</name>
+                            <value>org.apache.commons.logging.impl.SimpleLog</value>
+                        </systemProperty>
+                        <systemProperty>
+                            <name>java.util.logging.config.file</name>
+                            <value>./target/test-classes/logging.properties</value>
+                        </systemProperty>
+                    </systemProperties>
+                </configuration>
+                <dependencies>
+                    <dependency>
+                        <groupId>hsqldb</groupId>
+                        <artifactId>hsqldb</artifactId>
+                        <version>${hsqldbVersion}</version>
+                    </dependency>
+                </dependencies>
+            </plugin>
+        </plugins>
+    </build>
+
+    <dependencies>
+
+        <dependency>
+            <groupId>javax.servlet</groupId>
+            <artifactId>servlet-api</artifactId>
+            <scope>provided</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>log4j</groupId>
+            <artifactId>log4j</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.jsecurity</groupId>
+            <artifactId>jsecurity-core</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.jsecurity</groupId>
+            <artifactId>jsecurity-spring</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.jsecurity</groupId>
+            <artifactId>jsecurity-web</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-webmvc</artifactId>
+        </dependency>
+
+    </dependencies>
+
+</project>
diff --git a/support/ehcache/pom.xml b/support/ehcache/pom.xml
new file mode 100644
index 0000000..494e35b
--- /dev/null
+++ b/support/ehcache/pom.xml
@@ -0,0 +1,31 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+    <parent>
+        <groupId>org.apache.jsecurity</groupId>
+        <artifactId>jsecurity-root</artifactId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>jsecurity-ehcache</artifactId>
+    <name>Apache JSecurity :: Support :: EHCache</name>
+    <packaging>jar</packaging>
+
+    <build/>
+
+    <dependencies>
+
+        <dependency>
+            <groupId>org.apache.jsecurity</groupId>
+            <artifactId>jsecurity-core</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>net.sf.ehcache</groupId>
+            <artifactId>ehcache</artifactId>
+        </dependency>
+
+    </dependencies>
+
+</project>
diff --git a/support/pom.xml b/support/pom.xml
new file mode 100644
index 0000000..4e5a7ba
--- /dev/null
+++ b/support/pom.xml
@@ -0,0 +1,22 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+    <parent>
+        <groupId>org.apache.jsecurity</groupId>
+        <artifactId>jsecurity-root</artifactId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>jsecurity-support</artifactId>
+    <name>Apache JSecurity :: Suport</name>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>ehcache</module>
+        <module>quartz</module>
+        <module>spring</module>
+    </modules>
+
+</project>
+
diff --git a/support/quartz/pom.xml b/support/quartz/pom.xml
new file mode 100644
index 0000000..0a19be3
--- /dev/null
+++ b/support/quartz/pom.xml
@@ -0,0 +1,32 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+    <parent>
+        <groupId>org.apache.jsecurity</groupId>
+        <artifactId>jsecurity-root</artifactId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>jsecurity-quartz</artifactId>
+    <name>Apache JSecurity :: Support :: Quartz</name>
+    <packaging>jar</packaging>
+
+    <build/>
+
+    <dependencies>
+
+        <dependency>
+            <groupId>org.apache.jsecurity</groupId>
+            <artifactId>jsecurity-core</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>quartz</groupId>
+            <artifactId>quartz</artifactId>
+        </dependency>
+
+
+    </dependencies>
+
+</project>
diff --git a/support/spring/pom.xml b/support/spring/pom.xml
new file mode 100644
index 0000000..439a1ca
--- /dev/null
+++ b/support/spring/pom.xml
@@ -0,0 +1,48 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+    <parent>
+        <groupId>org.apache.jsecurity</groupId>
+        <artifactId>jsecurity-root</artifactId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>jsecurity-spring</artifactId>
+    <name>Apache JSecurity :: Support :: Spring</name>
+    <packaging>jar</packaging>
+
+    <build/>
+
+    <dependencies>
+
+        <dependency>
+            <groupId>javax.servlet</groupId>
+            <artifactId>servlet-api</artifactId>
+            <scope>provided</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.jsecurity</groupId>
+            <artifactId>jsecurity-core</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.jsecurity</groupId>
+            <artifactId>jsecurity-web</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.easymock</groupId>
+            <artifactId>easymock</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring</artifactId>
+        </dependency>
+
+    </dependencies>
+
+</project>
diff --git a/web/pom.xml b/web/pom.xml
new file mode 100644
index 0000000..e225ebb
--- /dev/null
+++ b/web/pom.xml
@@ -0,0 +1,50 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+    <parent>
+        <groupId>org.apache.jsecurity</groupId>
+        <artifactId>jsecurity-root</artifactId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>jsecurity-web</artifactId>
+    <name>Apache JSecurity :: Web</name>
+    <packaging>jar</packaging>
+
+    <build/>
+
+    <dependencies>
+
+        <dependency>
+            <groupId>javax.servlet.jsp</groupId>
+            <artifactId>jsp-api</artifactId>
+            <scope>provided</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>javax.servlet</groupId>
+            <artifactId>jstl</artifactId>
+            <scope>provided</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>javax.servlet</groupId>
+            <artifactId>servlet-api</artifactId>
+            <scope>provided</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.jsecurity</groupId>
+            <artifactId>jsecurity-core</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.easymock</groupId>
+            <artifactId>easymock</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+    </dependencies>
+
+</project>