diff --git a/turbine-webapp-4.0/LICENSE b/LICENSE
similarity index 100%
rename from turbine-webapp-4.0/LICENSE
rename to LICENSE
diff --git a/turbine-webapp-4.0/NOTICE b/NOTICE
similarity index 100%
rename from turbine-webapp-4.0/NOTICE
rename to NOTICE
diff --git a/README b/README
new file mode 100644
index 0000000..d7e9268
--- /dev/null
+++ b/README
@@ -0,0 +1,5 @@
+If you get that goal integration-test of maven-archetype-plugin fails with 
+
+'Cannot run additions goals." cft. https://issues.apache.org/jira/browse/ARCHETYPE-488.
+
+Fastest workaround (Dez 2016) ist to copy  mvn.cmd to mvn.bat.
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 08872d0..ab0c389 100644
--- a/pom.xml
+++ b/pom.xml
@@ -20,10 +20,10 @@
 <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">
 
   <modelVersion>4.0.0</modelVersion>
-  <parent>
-     <groupId>org.apache.turbine</groupId>
-     <artifactId>turbine-parent</artifactId>
-     <version>3</version>
+    <parent>
+    <groupId>org.apache</groupId>
+    <artifactId>apache</artifactId>
+    <version>18</version>
   </parent>
   <groupId>org.apache.turbine</groupId>
   <artifactId>turbine-webapp-4.0</artifactId>
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 94aa70b..c231563 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -24,7 +24,43 @@
   </properties>
 
   <body>
-    <release version="1.0.0" date="in Subversion">
+   <release version="1.0.1" date="in Subversion">
+       <action dev="gk" type="add">
+       Password change action, Check anonymous login
+      </action>
+      <action dev="gk" type="update">
+       JNDI Jetty Update
+      </action>
+      <action dev="tv" type="add">
+       Add testing in place with "integration-test"
+      </action>
+      <action dev="tv" type="update">
+       Turbine annotations, use auto detect Torque adapter
+      </action>
+       <action dev="gk" type="update">
+       Fulcrum Torque Security added manager, om classes
+      </action>
+      <action dev="painter" type="add">
+       Added readme, docs, helper sql..
+      </action>
+       <action dev="painter" type="update">
+       MySQL is now default
+      </action>
+      <action dev="gk" type="update">
+       Update schema to torque / intake 4.0, dependencies, configurations
+       Update to MemoryGroupManagerImpl, Fulcrum     
+      </action>
+      <action dev="gk" type="add">
+        Jetty support
+      </action>
+      <action dev="tv" type="fix">
+        TRB-95
+      </action>
+      <action dev="gk" type="update ">
+        Update to Turbine 4-M2
+      </action>
+    </release>
+    <release version="1.0.0" date="2012-11-06">
       <action dev="tv" type="fix">
         Fixed missing dependencies and wrong class names as reported on the mailing list
       </action>
diff --git a/src/main/resources/META-INF/maven/archetype-metadata.xml b/src/main/resources/META-INF/maven/archetype-metadata.xml
index e5a8d71..b6481b5 100644
--- a/src/main/resources/META-INF/maven/archetype-metadata.xml
+++ b/src/main/resources/META-INF/maven/archetype-metadata.xml
@@ -34,13 +34,24 @@
       <defaultValue>turbine</defaultValue>
     </requiredProperty>
     <requiredProperty key="turbine_database_adapter">
-      <defaultValue>mysql</defaultValue>
+      <defaultValue>auto</defaultValue>
     </requiredProperty>
     <requiredProperty key="turbine_database_jndipath">
-      <defaultValue>java:comp/env/jdbc/Turbine</defaultValue>
+      <defaultValue>jdbc/turbine</defaultValue>
+    </requiredProperty>
+    <requiredProperty key="turbine_database_driver">
+      <defaultValue>com.mysql.jdbc.Driver</defaultValue>
+    </requiredProperty>
+    <requiredProperty key="turbine_database_url">
+      <defaultValue>jdbc:mysql://localhost:3306/</defaultValue>
+    </requiredProperty>
+    <requiredProperty key="turbine_database_user">
+      <defaultValue>db_user</defaultValue>
+    </requiredProperty>
+    <requiredProperty key="turbine_database_password">
+      <defaultValue>db_password</defaultValue>
     </requiredProperty>
   </requiredProperties>
-
   <fileSets>
     <fileSet filtered="true" packaged="true" encoding="UTF-8">
       <directory>src/main/java</directory>
@@ -49,6 +60,13 @@
         <include>**/*.properties</include>
       </includes>
     </fileSet>
+    <fileSet filtered="false" packaged="false" encoding="UTF-8">
+      <directory>docs</directory>
+      <includes>
+        <include>**/*.txt</include>
+        <include>**/*.sql</include>
+      </includes>
+    </fileSet>
     <fileSet filtered="true" packaged="false" encoding="UTF-8">
       <directory>src/main/torque-schema</directory>
       <includes>
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/docs/README.txt b/src/main/resources/archetype-resources/docs/README.txt
similarity index 100%
rename from turbine-webapp-4.0/src/main/resources/archetype-resources/docs/README.txt
rename to src/main/resources/archetype-resources/docs/README.txt
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/docs/sample-mysql-data/_application-data.sql b/src/main/resources/archetype-resources/docs/sample-mysql-data/_application-data.sql
similarity index 100%
rename from turbine-webapp-4.0/src/main/resources/archetype-resources/docs/sample-mysql-data/_application-data.sql
rename to src/main/resources/archetype-resources/docs/sample-mysql-data/_application-data.sql
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/docs/sample-mysql-data/_turbine-security-data.sql b/src/main/resources/archetype-resources/docs/sample-mysql-data/_turbine-security-data.sql
similarity index 100%
rename from turbine-webapp-4.0/src/main/resources/archetype-resources/docs/sample-mysql-data/_turbine-security-data.sql
rename to src/main/resources/archetype-resources/docs/sample-mysql-data/_turbine-security-data.sql
diff --git a/src/main/resources/archetype-resources/pom.xml b/src/main/resources/archetype-resources/pom.xml
index 0bb18d2..1c6e32c 100644
--- a/src/main/resources/archetype-resources/pom.xml
+++ b/src/main/resources/archetype-resources/pom.xml
@@ -38,8 +38,12 @@
                     <include>**/*.properties</include>
                 </includes>
             </resource>
-            <resource>
-                <targetPath>#var("project.build.directory")/torque/schema</targetPath>
+            <!-- (target) resource and filtering is not used  at all ? 
+            at least removed setting absolute path e.g. with #var("project.build.directory"), 
+            which does thrown an exception with mvn eclipse:eclipse - path is then incorrectly relativized.
+                --> 
+            <resource> 
+                <targetPath>../torque/schema</targetPath>
                 <filtering>true</filtering>
                 <directory>src/main/torque-schema</directory>
                 <includes>
@@ -63,59 +67,59 @@
                 <artifactId>torque-maven-plugin</artifactId>
                 <version>4.0</version>
                 <configuration>
-                    <schemaDir>#var("basedir")/src/main/torque-schema</schemaDir>
+                    <schemaDir>#var("project.basedir")/src/main/torque-schema</schemaDir>
                     <useClasspath>true</useClasspath>
                     <runOnlyOnSchemaChange>false</runOnlyOnSchemaChange>
-                    <targetDatabase>mysql</targetDatabase>
+                    <targetDatabase>${turbine_database_adapter}</targetDatabase>
                 </configuration>
                 <executions>
-                 <execution>
-                    <id>torque-om</id>
-                    <phase>generate-sources</phase>
-                    <goals>
-                      <goal>generate</goal>
-                    </goals>
-                    <configuration>
-                      <packaging>classpath</packaging>
-                      <configPackage>org.apache.torque.templates.om</configPackage>
-                      <sourceDir>#var("basedir")/src/main/torque-schema</sourceDir>
-                      <loglevel>error</loglevel>
-                      <options>
-                        <torque.database>mysql</torque.database>
-                        <torque.om.package>${package}.om</torque.om.package>
-                        <torque.om.addGetByNameMethods>false</torque.om.addGetByNameMethods>
-                        <torque.om.save.saveException>TorqueException</torque.om.save.saveException>
-                        <torque.om.useIsForBooleanGetters>true</torque.om.useIsForBooleanGetters>
-                        <torque.om.useManagers>false</torque.om.useManagers>
-                        <torque.om.addTimeStamp>true</torque.om.addTimeStamp>
-                        <torque.om.objectIsCaching>true</torque.om.objectIsCaching>
-                        <torque.om.save.addSaveMethods>true</torque.om.save.addSaveMethods>
-                        <torque.om.addGetByNameMethods>true</torque.om.addGetByNameMethods>
-                        <torque.om.complexObjectModel>true</torque.om.complexObjectModel>                        
-                      </options>
-                      <outputDirMap>
-                        <modifiable>#var("project.build.sourceDirectory")</modifiable>
-                      </outputDirMap>
-                    </configuration>
-                  </execution>
-                  <execution>
-                    <id>torque-sql-${turbine_database_adapter}</id>
-                    <phase>package</phase>
-                    <goals>
-                      <goal>generate</goal>
-                    </goals>
-                    <configuration>
-                      <packaging>classpath</packaging>
-                      <configPackage>org.apache.torque.templates.sql</configPackage>
-                      <sourceDir>#var("basedir")/src/main/torque-schema</sourceDir>
-                      <defaultOutputDir>#var("project.build.directory")/generated-sql/torque/${turbine_database_adapter}</defaultOutputDir>
-                      <defaultOutputDirUsage>none</defaultOutputDirUsage>
-                      <loglevel>error</loglevel>
-                      <options>
-                        <torque.database>${turbine_database_adapter}</torque.database>
-                      </options>
-                    </configuration>
-                  </execution>
+          <execution>
+            <id>torque-om</id>
+            <phase>generate-sources</phase>
+            <goals>
+              <goal>generate</goal>
+            </goals>
+            <configuration>
+              <packaging>classpath</packaging>
+              <configPackage>org.apache.torque.templates.om</configPackage>
+              <sourceDir>#var("project.basedir")/src/main/torque-schema</sourceDir>
+              <loglevel>error</loglevel>
+              <options>
+                <torque.database>${turbine_database_adapter}</torque.database>
+                <torque.om.package>${package}.om</torque.om.package>
+                <torque.om.addGetByNameMethods>false</torque.om.addGetByNameMethods>
+                <torque.om.save.saveException>TorqueException</torque.om.save.saveException>
+                <torque.om.useIsForBooleanGetters>true</torque.om.useIsForBooleanGetters>
+                <torque.om.useManagers>false</torque.om.useManagers>
+                <torque.om.addTimeStamp>true</torque.om.addTimeStamp>
+                <torque.om.objectIsCaching>true</torque.om.objectIsCaching>
+                <torque.om.save.addSaveMethods>true</torque.om.save.addSaveMethods>
+                <torque.om.addGetByNameMethods>true</torque.om.addGetByNameMethods>
+                <torque.om.complexObjectModel>true</torque.om.complexObjectModel>
+              </options>
+              <outputDirMap>
+                <modifiable>#var("project.build.sourceDirectory")</modifiable>
+              </outputDirMap>
+            </configuration>
+          </execution>
+          <execution>
+            <id>torque-sql-mysql</id><!-- ${turbine_database_adapter} -->
+            <phase>generate-sources</phase>
+            <goals>
+              <goal>generate</goal>
+            </goals>
+            <configuration>
+              <packaging>classpath</packaging>
+              <configPackage>org.apache.torque.templates.sql</configPackage>
+              <sourceDir>#var("project.basedir")/src/main/torque-schema</sourceDir>
+              <defaultOutputDir>#var("project.build.directory")/generated-sql/torque/mysql</defaultOutputDir>
+              <defaultOutputDirUsage>none</defaultOutputDirUsage>
+              <loglevel>error</loglevel>
+              <options>
+                <torque.database>mysql</torque.database>
+              </options>
+            </configuration>
+          </execution>
                 </executions>
                 <dependencies>
                   <dependency>
@@ -139,7 +143,48 @@
                     <!-- containerConfigXML>WEB-INF/build/context.xml</containerConfigXML -->
                 </configuration>
             </plugin>
-            
+
+
+      <!-- Required to execute torque database build -->
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>sql-maven-plugin</artifactId>
+        <version>1.5</version>
+        <configuration>
+
+          <!-- Please update with your database configuration -->
+          <driver>${turbine_database_driver}</driver>
+          <url>${turbine_database_url}${turbine_database_name}</url>
+          <username>${turbine_database_user}</username>
+          <password>${turbine_database_password}</password>
+          <onError>continue</onError>
+          <autocommit>true</autocommit>
+          <orderFile>descending</orderFile>
+          <!-- this is mysql specific -->
+          <fileset>
+              <basedir>${project.build.directory}/generated-sql/torque/mysql</basedir>
+              <!-- basedir>${basedir}/target/generated-sql</basedir -->
+              <includes>
+                <include>*.sql</include>
+              </includes>
+           </fileset>
+           <srcFiles>
+              <srcFile>${basedir}/docs/sample-mysql-data/_application-data.sql</srcFile>
+              <srcFile>${basedir}/docs/sample-mysql-data/_turbine-security-data.sql</srcFile>
+           </srcFiles>
+        </configuration>
+        
+        <!-- update with your database driver dependency -->
+        
+        <dependencies>
+          <dependency>
+            <artifactId>mysql-connector-java</artifactId>
+            <groupId>mysql</groupId>
+            <version>5.1.40</version>
+          </dependency>
+        </dependencies>
+      </plugin>
+
             <!-- jetty:run checks deployed war http://localhost:8081/app/ 
             
             Using jetty 8 as supporting java 6. Other specs cft. http://www.eclipse.org/jetty/documentation/9.3.0.v20150612/what-jetty-version.html
@@ -165,6 +210,13 @@
     </build>
 
     <dependencies>
+    
+    <!-- update with the database driver of your choice -->
+    <dependency>
+      <artifactId>mysql-connector-java</artifactId>
+      <groupId>mysql</groupId>
+      <version>5.1.40</version>
+    </dependency>    
         <dependency>
             <groupId>javax.activation</groupId>
             <artifactId>activation</artifactId>
@@ -198,7 +250,7 @@
         <dependency>
           <groupId>org.apache.fulcrum</groupId>
           <artifactId>fulcrum-intake</artifactId>
-          <version>1.2.0</version>
+          <version>1.2.2</version>
          </dependency>
          <!-- include some optional dependencies required in example componentConfiguration.xml -->
         <dependency>
@@ -234,4 +286,5 @@
         <maven.compile.target>1.6</maven.compile.target>
         <project.build.sourceEncoding>utf-8</project.build.sourceEncoding>
     </properties>
+    
 </project>
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/L10N.properties b/src/main/resources/archetype-resources/src/main/java/L10N.properties
similarity index 100%
rename from turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/L10N.properties
rename to src/main/resources/archetype-resources/src/main/java/L10N.properties
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/L10N_de_DE.properties b/src/main/resources/archetype-resources/src/main/java/L10N_de_DE.properties
similarity index 100%
rename from turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/L10N_de_DE.properties
rename to src/main/resources/archetype-resources/src/main/java/L10N_de_DE.properties
diff --git a/src/main/resources/archetype-resources/src/main/java/L10N_en_US.properties b/src/main/resources/archetype-resources/src/main/java/L10N_en_US.properties
index 60c2677..0ceed48 100644
--- a/src/main/resources/archetype-resources/src/main/java/L10N_en_US.properties
+++ b/src/main/resources/archetype-resources/src/main/java/L10N_en_US.properties
@@ -16,4 +16,8 @@
 # specific language governing permissions and limitations
 # under the License.
 *#
-l10nkey=US-English value
\ No newline at end of file
+l10nkey=US-English value
+username_required_msg=Please enter an email address as user name
+username_min_length_msg=Please enter at least {0} characters
+username_mask_msg=Please enter a valid email address as user name
+password_msg=Please enter a password
\ No newline at end of file
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/fulcrum/security/torque/TorqueAbstractUserManager.java b/src/main/resources/archetype-resources/src/main/java/fulcrum/security/torque/TorqueAbstractUserManager.java
similarity index 100%
rename from turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/fulcrum/security/torque/TorqueAbstractUserManager.java
rename to src/main/resources/archetype-resources/src/main/java/fulcrum/security/torque/TorqueAbstractUserManager.java
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/fulcrum/security/torque/turbine/TorqueAbstractTurbineGroup.java b/src/main/resources/archetype-resources/src/main/java/fulcrum/security/torque/turbine/TorqueAbstractTurbineGroup.java
similarity index 100%
rename from turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/fulcrum/security/torque/turbine/TorqueAbstractTurbineGroup.java
rename to src/main/resources/archetype-resources/src/main/java/fulcrum/security/torque/turbine/TorqueAbstractTurbineGroup.java
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/fulcrum/security/torque/turbine/TorqueAbstractTurbinePermission.java b/src/main/resources/archetype-resources/src/main/java/fulcrum/security/torque/turbine/TorqueAbstractTurbinePermission.java
similarity index 100%
rename from turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/fulcrum/security/torque/turbine/TorqueAbstractTurbinePermission.java
rename to src/main/resources/archetype-resources/src/main/java/fulcrum/security/torque/turbine/TorqueAbstractTurbinePermission.java
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/fulcrum/security/torque/turbine/TorqueAbstractTurbineRole.java b/src/main/resources/archetype-resources/src/main/java/fulcrum/security/torque/turbine/TorqueAbstractTurbineRole.java
similarity index 100%
rename from turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/fulcrum/security/torque/turbine/TorqueAbstractTurbineRole.java
rename to src/main/resources/archetype-resources/src/main/java/fulcrum/security/torque/turbine/TorqueAbstractTurbineRole.java
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/fulcrum/security/torque/turbine/TorqueAbstractTurbineUser.java b/src/main/resources/archetype-resources/src/main/java/fulcrum/security/torque/turbine/TorqueAbstractTurbineUser.java
similarity index 100%
rename from turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/fulcrum/security/torque/turbine/TorqueAbstractTurbineUser.java
rename to src/main/resources/archetype-resources/src/main/java/fulcrum/security/torque/turbine/TorqueAbstractTurbineUser.java
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/fulcrum/security/torque/turbine/TorqueTurbineGroupManagerImpl.java b/src/main/resources/archetype-resources/src/main/java/fulcrum/security/torque/turbine/TorqueTurbineGroupManagerImpl.java
similarity index 100%
rename from turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/fulcrum/security/torque/turbine/TorqueTurbineGroupManagerImpl.java
rename to src/main/resources/archetype-resources/src/main/java/fulcrum/security/torque/turbine/TorqueTurbineGroupManagerImpl.java
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/fulcrum/security/torque/turbine/TorqueTurbineRoleManagerImpl.java b/src/main/resources/archetype-resources/src/main/java/fulcrum/security/torque/turbine/TorqueTurbineRoleManagerImpl.java
similarity index 100%
rename from turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/fulcrum/security/torque/turbine/TorqueTurbineRoleManagerImpl.java
rename to src/main/resources/archetype-resources/src/main/java/fulcrum/security/torque/turbine/TorqueTurbineRoleManagerImpl.java
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/fulcrum/security/torque/turbine/TorqueTurbineUserManagerImpl.java b/src/main/resources/archetype-resources/src/main/java/fulcrum/security/torque/turbine/TorqueTurbineUserManagerImpl.java
similarity index 100%
rename from turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/fulcrum/security/torque/turbine/TorqueTurbineUserManagerImpl.java
rename to src/main/resources/archetype-resources/src/main/java/fulcrum/security/torque/turbine/TorqueTurbineUserManagerImpl.java
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/modules/actions/ChangePasswordAction.java b/src/main/resources/archetype-resources/src/main/java/modules/actions/ChangePasswordAction.java
similarity index 100%
rename from turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/modules/actions/ChangePasswordAction.java
rename to src/main/resources/archetype-resources/src/main/java/modules/actions/ChangePasswordAction.java
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/modules/actions/LoginUser.java b/src/main/resources/archetype-resources/src/main/java/modules/actions/LoginUser.java
similarity index 100%
rename from turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/modules/actions/LoginUser.java
rename to src/main/resources/archetype-resources/src/main/java/modules/actions/LoginUser.java
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/modules/actions/LoginUserIntake.java b/src/main/resources/archetype-resources/src/main/java/modules/actions/LoginUserIntake.java
similarity index 100%
rename from turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/modules/actions/LoginUserIntake.java
rename to src/main/resources/archetype-resources/src/main/java/modules/actions/LoginUserIntake.java
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/modules/actions/LogoutUser.java b/src/main/resources/archetype-resources/src/main/java/modules/actions/LogoutUser.java
similarity index 100%
rename from turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/modules/actions/LogoutUser.java
rename to src/main/resources/archetype-resources/src/main/java/modules/actions/LogoutUser.java
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/modules/actions/SecureAction.java b/src/main/resources/archetype-resources/src/main/java/modules/actions/SecureAction.java
similarity index 100%
rename from turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/modules/actions/SecureAction.java
rename to src/main/resources/archetype-resources/src/main/java/modules/actions/SecureAction.java
diff --git a/src/main/resources/archetype-resources/src/main/java/modules/screens/Index.java b/src/main/resources/archetype-resources/src/main/java/modules/screens/Index.java
index 0a4ac84..4990038 100644
--- a/src/main/resources/archetype-resources/src/main/java/modules/screens/Index.java
+++ b/src/main/resources/archetype-resources/src/main/java/modules/screens/Index.java
@@ -20,7 +20,6 @@
 
 import org.apache.turbine.pipeline.PipelineData;
 import org.apache.velocity.context.Context;
-
 import org.apache.turbine.modules.screens.VelocitySecureScreen;
 
 /**
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/modules/screens/Password.java b/src/main/resources/archetype-resources/src/main/java/modules/screens/Password.java
similarity index 100%
rename from turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/modules/screens/Password.java
rename to src/main/resources/archetype-resources/src/main/java/modules/screens/Password.java
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/modules/screens/SecureScreen.java b/src/main/resources/archetype-resources/src/main/java/modules/screens/SecureScreen.java
similarity index 100%
rename from turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/modules/screens/SecureScreen.java
rename to src/main/resources/archetype-resources/src/main/java/modules/screens/SecureScreen.java
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/modules/screens/TestSecure.java b/src/main/resources/archetype-resources/src/main/java/modules/screens/TestSecure.java
similarity index 100%
rename from turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/modules/screens/TestSecure.java
rename to src/main/resources/archetype-resources/src/main/java/modules/screens/TestSecure.java
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/om/TurbineGroup.java b/src/main/resources/archetype-resources/src/main/java/om/TurbineGroup.java
similarity index 100%
rename from turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/om/TurbineGroup.java
rename to src/main/resources/archetype-resources/src/main/java/om/TurbineGroup.java
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/om/TurbineGroupPeer.java b/src/main/resources/archetype-resources/src/main/java/om/TurbineGroupPeer.java
similarity index 100%
rename from turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/om/TurbineGroupPeer.java
rename to src/main/resources/archetype-resources/src/main/java/om/TurbineGroupPeer.java
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/om/TurbineGroupPeerImpl.java b/src/main/resources/archetype-resources/src/main/java/om/TurbineGroupPeerImpl.java
similarity index 100%
rename from turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/om/TurbineGroupPeerImpl.java
rename to src/main/resources/archetype-resources/src/main/java/om/TurbineGroupPeerImpl.java
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/om/TurbinePermission.java b/src/main/resources/archetype-resources/src/main/java/om/TurbinePermission.java
similarity index 100%
rename from turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/om/TurbinePermission.java
rename to src/main/resources/archetype-resources/src/main/java/om/TurbinePermission.java
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/om/TurbineRole.java b/src/main/resources/archetype-resources/src/main/java/om/TurbineRole.java
similarity index 100%
rename from turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/om/TurbineRole.java
rename to src/main/resources/archetype-resources/src/main/java/om/TurbineRole.java
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/om/TurbineRolePeer.java b/src/main/resources/archetype-resources/src/main/java/om/TurbineRolePeer.java
similarity index 100%
rename from turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/om/TurbineRolePeer.java
rename to src/main/resources/archetype-resources/src/main/java/om/TurbineRolePeer.java
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/om/TurbineRolePeerImpl.java b/src/main/resources/archetype-resources/src/main/java/om/TurbineRolePeerImpl.java
similarity index 100%
rename from turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/om/TurbineRolePeerImpl.java
rename to src/main/resources/archetype-resources/src/main/java/om/TurbineRolePeerImpl.java
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/om/TurbineRolePermission.java b/src/main/resources/archetype-resources/src/main/java/om/TurbineRolePermission.java
similarity index 100%
rename from turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/om/TurbineRolePermission.java
rename to src/main/resources/archetype-resources/src/main/java/om/TurbineRolePermission.java
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/om/TurbineUser.java b/src/main/resources/archetype-resources/src/main/java/om/TurbineUser.java
similarity index 100%
rename from turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/om/TurbineUser.java
rename to src/main/resources/archetype-resources/src/main/java/om/TurbineUser.java
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/om/TurbineUserPeer.java b/src/main/resources/archetype-resources/src/main/java/om/TurbineUserPeer.java
similarity index 100%
rename from turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/om/TurbineUserPeer.java
rename to src/main/resources/archetype-resources/src/main/java/om/TurbineUserPeer.java
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/om/TurbineUserPeerImpl.java b/src/main/resources/archetype-resources/src/main/java/om/TurbineUserPeerImpl.java
similarity index 100%
rename from turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/om/TurbineUserPeerImpl.java
rename to src/main/resources/archetype-resources/src/main/java/om/TurbineUserPeerImpl.java
diff --git a/src/main/resources/archetype-resources/src/main/torque-schema/application-schema.xml b/src/main/resources/archetype-resources/src/main/torque-schema/application-schema.xml
index cba8f3f..8e867d5 100644
--- a/src/main/resources/archetype-resources/src/main/torque-schema/application-schema.xml
+++ b/src/main/resources/archetype-resources/src/main/torque-schema/application-schema.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no" ?>
-#*
+<!--
  Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements.  See the NOTICE file
  distributed with this work for additional information
@@ -16,21 +16,38 @@
  KIND, either express or implied.  See the License for the
  specific language governing permissions and limitations
  under the License.
-*#
-<!DOCTYPE database SYSTEM "http://db.apache.org/torque/dtd/database_3_3.dtd">
+-->
 
 <!-- ============================================================================== -->
 <!--                                                                                -->
 <!--  Database Definition for the Application                                       -->
 <!--                                                                                -->
-<!--  @version $Id: application-schema.xml 615328 2008-01-25 20:25:05Z tv $  -->
+<!--  @version $Id: application-schema.xml                                          -->
 <!--                                                                                -->
 <!-- ============================================================================== -->
 
-<database name="${turbine_database_name}">
-    <table name="table1" idMethod="idbroker">
-        <column name="test_col1" type="INTEGER" />
-        <column name="test_col2" type="VARCHAR" size="10" />
-        <!-- Add your database schema here -->
-    </table>
+<database xmlns="http://db.apache.org/torque/4.0/templates/database"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://db.apache.org/torque/4.0/templates/database
+        http://db.apache.org/torque/4.0/templates/database-strict.xsd"
+  name="${turbine_database_name}"
+  defaultIdMethod="native">
+
+
+	<!--  Simple author/book database example -->
+	<table name="AUTHOR" idMethod="idbroker">
+		<column name="AUTH_ID"     required="true" primaryKey="true" type="INTEGER" />
+		<column name="FIRST_NAME"  required="true" size="64" type="VARCHAR" />
+		<column name="LAST_NAME"   required="true" size="64" type="VARCHAR" />
+	</table>
+
+    <table name="BOOK" idMethod="idbroker">
+		<column name="BOOK_ID"     required="true" primaryKey="true" type="INTEGER" />
+		<column name="AUTH_ID"     required="true" type="INTEGER" />
+		<column name="TITLE"       required="true" size="64" type="VARCHAR" />
+		<column name="SUBJECT"     required="true" size="64" type="VARCHAR" />
+		<foreign-key foreignTable="AUTHOR">
+			<reference local="AUTH_ID" foreign="AUTH_ID"></reference>
+		</foreign-key>		
+	</table>
 </database>
diff --git a/src/main/resources/archetype-resources/src/main/torque-schema/id-table-schema.xml b/src/main/resources/archetype-resources/src/main/torque-schema/id-table-schema.xml
index 3d845de..5002f21 100644
--- a/src/main/resources/archetype-resources/src/main/torque-schema/id-table-schema.xml
+++ b/src/main/resources/archetype-resources/src/main/torque-schema/id-table-schema.xml
@@ -17,7 +17,6 @@
  specific language governing permissions and limitations
  under the License.
 -->
-<!DOCTYPE database SYSTEM "http://db.apache.org/torque/dtd/database_3_3.dtd">
 
 <!-- ========================================================================= -->
 <!--                                                                           -->
@@ -27,11 +26,13 @@
 <!--                                                                           -->
 <!-- ========================================================================= -->
 
-<database name="@DATABASE_DEFAULT@"
-  defaultIdMethod="idbroker"
-  defaultJavaType="primitive"
-  defaultJavaNamingMethod="underscore"
-  package="@DATABASE_PACKAGE@">
+<database xmlns="http://db.apache.org/torque/4.0/templates/database"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://db.apache.org/torque/4.0/templates/database
+        http://db.apache.org/torque/4.0/templates/database-strict.xsd"
+  name="${turbine_database_name}"
+  defaultIdMethod="native">
+
   <table name="ID_TABLE" idMethod="idbroker">
     <column name="ID_TABLE_ID" required="true" primaryKey="true" type="INTEGER" javaName="IdTableId"/>
     <column name="TABLE_NAME" required="true" size="255" type="VARCHAR" javaName="TableName"/>
diff --git a/src/main/resources/archetype-resources/src/main/torque-schema/torque-security-data.xml b/src/main/resources/archetype-resources/src/main/torque-schema/torque-security-data.xml
index 642a72b..8503f8f 100644
--- a/src/main/resources/archetype-resources/src/main/torque-schema/torque-security-data.xml
+++ b/src/main/resources/archetype-resources/src/main/torque-schema/torque-security-data.xml
@@ -43,13 +43,13 @@
 
   <!-- Turbine Permissions -->
 
-  <TurbinePermission PermissionId="1" Name="TurbineAdmin"/>
-  <TurbinePermission PermissionId="2" Name="Turbine"/>
+  <TurbinePermission PermissionId="1" Name="turbineadmin"/>
+  <TurbinePermission PermissionId="2" Name="turbine"/>
 
   <!-- Turbine Roles -->
 
-  <TurbineRole RoleId="1" Name="TurbineAdmin"/>
-  <TurbineRole RoleId="2" Name="TurbineUser"/>
+  <TurbineRole RoleId="1" Name="turbineadmin"/>
+  <TurbineRole RoleId="2" Name="turbineuser"/>
 
  <!-- Turbine Groups -->
 
diff --git a/src/main/resources/archetype-resources/src/main/torque-schema/torque-security-schema.xml b/src/main/resources/archetype-resources/src/main/torque-schema/torque-security-schema.xml
index 35daf91..84cbd6b 100644
--- a/src/main/resources/archetype-resources/src/main/torque-schema/torque-security-schema.xml
+++ b/src/main/resources/archetype-resources/src/main/torque-schema/torque-security-schema.xml
@@ -17,7 +17,7 @@
  specific language governing permissions and limitations
  under the License.
 -->
-<!DOCTYPE database SYSTEM "http://db.apache.org/torque/dtd/database_3_3.dtd">
+
 
 <!-- ======================================================================== -->
 <!--                                                                          -->
@@ -27,11 +27,17 @@
 <!--                                                                          -->
 <!-- ======================================================================== -->
 
-<database name="${turbine_database_name}">
+<database xmlns="http://db.apache.org/torque/4.0/templates/database"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://db.apache.org/torque/4.0/templates/database
+        http://db.apache.org/torque/4.0/templates/database-strict.xsd"
+  name="${turbine_database_name}"
+  defaultIdMethod="idbroker">
 
-  <table name="TURBINE_PERMISSION" idMethod="idbroker">
-    <column name="PERMISSION_ID" required="true" primaryKey="true" type="INTEGER"/>
-    <column name="PERMISSION_NAME" required="true" size="64" type="VARCHAR" javaName="Name"/>
+
+  <table name="TURBINE_PERMISSION" idMethod="idbroker" baseClass="${package}.fulcrum.security.torque.turbine.TorqueAbstractTurbinePermission">
+    <column name="PERMISSION_ID" required="true" primaryKey="true" type="INTEGER" javaType="object"/>
+    <column name="PERMISSION_NAME" required="true" size="64" type="VARCHAR" javaName="EntityName"/>
 
     <unique>
       <unique-column name="PERMISSION_NAME"/>
@@ -39,9 +45,9 @@
 
   </table>
 
-  <table name="TURBINE_ROLE" idMethod="idbroker">
-    <column name="ROLE_ID" required="true" primaryKey="true" type="INTEGER"/>
-    <column name="ROLE_NAME" required="true" size="64" type="VARCHAR" javaName="Name"/>
+  <table name="TURBINE_ROLE" idMethod="idbroker" baseClass="${package}.fulcrum.security.torque.turbine.TorqueAbstractTurbineRole">
+    <column name="ROLE_ID" required="true" primaryKey="true" type="INTEGER" javaType="object"/>
+    <column name="ROLE_NAME" required="true" size="64" type="VARCHAR" javaName="EntityName"/>
 
     <unique>
         <unique-column name="ROLE_NAME"/>
@@ -49,9 +55,9 @@
 
   </table>
 
-  <table name="TURBINE_GROUP" idMethod="idbroker">
-    <column name="GROUP_ID" required="true" primaryKey="true" type="INTEGER"/>
-    <column name="GROUP_NAME" required="true" type="VARCHAR" size="64" javaName="Name"/>
+  <table name="TURBINE_GROUP" idMethod="idbroker" baseClass="${package}.fulcrum.security.torque.turbine.TorqueAbstractTurbineGroup">
+    <column name="GROUP_ID" required="true" primaryKey="true" type="INTEGER" javaType="object"/>
+    <column name="GROUP_NAME" required="true" type="VARCHAR" size="64" javaName="EntityName"/>
 
     <unique>
         <unique-column name="GROUP_NAME"/>
@@ -72,15 +78,17 @@
     </foreign-key>
   </table>
 
-  <table name="TURBINE_USER" idMethod="idbroker">
-    <column name="USER_ID" required="true" primaryKey="true" type="INTEGER"/>
-    <column name="LOGIN_NAME" required="true" size="64" type="VARCHAR" javaName="UserName"/>
+  <!-- org.apache.fulcrum.security.torque.TorqueAbstractSecurityEntity -->
+  <table name="TURBINE_USER" idMethod="idbroker" baseClass="org.apache.fulcrum.security.torque.turbine.TorqueAbstractTurbineTurbineSecurityEntity"
+  interface="org.apache.fulcrum.security.model.turbine.entity.TurbineUser">
+    <column name="USER_ID" required="true" primaryKey="true" type="INTEGER" javaType="object" javaName="EntityId"/>
+    <column name="LOGIN_NAME" required="true" size="64" type="VARCHAR" javaName="EntityName"/>
     <column name="PASSWORD_VALUE" required="true" size="16" type="VARCHAR" javaName="Password"/>
     <column name="FIRST_NAME" required="true" size="64" type="VARCHAR"/>
     <column name="LAST_NAME" required="true" size="64" type="VARCHAR"/>
     <column name="EMAIL" size="64" type="VARCHAR"/>
     <column name="CONFIRM_VALUE" size="16" type="VARCHAR" javaName="Confirmed"/>
-    <column name="MODIFIEDDATE" type="TIMESTAMP" javaName="ModifiedDate"/>
+    <column name="MODIFIED_DATE" type="TIMESTAMP" javaName="ModifiedDate"/>
     <column name="CREATED" type="TIMESTAMP" javaName="CreateDate"/>
     <column name="LAST_LOGIN" type="TIMESTAMP"/>
     <column name="OBJECTDATA" type="VARBINARY"/>
diff --git a/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/conf/Torque.properties b/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/conf/Torque.properties
index 4a342b0..023ef76 100644
--- a/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/conf/Torque.properties
+++ b/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/conf/Torque.properties
@@ -35,14 +35,43 @@
 # configure these properly.
 # -------------------------------------------------------------------
 
-torque.database.default=${turbine_database_name}
-torque.database.turbine.adapter=${turbine_database_adapter}
 
-# Using JNDI
+
+#
+# For JNDI configuration please see: https://db.apache.org/torque/torque-4.0/documentation/orm-reference/initialisation-configuration.html
+# 
+#
 torque.dsfactory.${turbine_database_name}.factory=org.apache.torque.dsfactory.JndiDataSourceFactory
-torque.dsfactory.${turbine_database_name}.jndi.path=${turbine_database_jndipath}
+torque.dsfactory.${turbine_database_name}.jndi.path=java:comp/env/${turbine_database_jndipath}
 torque.dsfactory.${turbine_database_name}.jndi.ttl=300000
 
+# -------------------------------------------------------------------
+#
+# Shared Pool Data Source Factory
+#
+# -------------------------------------------------------------------
+#torque.database.default=${turbine_database_name}
+torque.database.${turbine_database_name}.adapter=${turbine_database_adapter}
+
+#torque.database.${turbine_database_name}.user=${turbine_database_user}
+#torque.database.${turbine_database_name}.password=${turbine_database_password}
+#
+#torque.defaults.pool.maxActive =       	30
+#torque.defaults.pool.testOnBorrow =    	true
+#torque.defaults.pool.validationQuery = 	SELECT 1
+#
+#torque.defaults.connection.driver =    	${turbine_database_driver}
+#torque.defaults.connection.url =       	${turbine_database_url}${turbine_database_name}
+#torque.defaults.connection.user =      	${turbine_database_user}
+#torque.defaults.connection.password =  	${turbine_database_password}
+#
+#torque.dsfactory.${turbine_database_name}.connection.driver =    	${turbine_database_driver}
+#torque.dsfactory.${turbine_database_name}.connection.url =       	${turbine_database_url}${turbine_database_name}
+#torque.dsfactory.${turbine_database_name}.connection.user =      	${turbine_database_user}
+#torque.dsfactory.${turbine_database_name}.connection.password =  	${turbine_database_password}
+#torque.dsfactory.${turbine_database_name}.factory=org.apache.torque.dsfactory.SharedPoolDataSourceFactory
+# -------------------------------------------------------------------
+
 # Determines if the quantity column of the IDBroker's id_table should
 # be increased automatically if requests for ids reaches a high
 # volume.
@@ -51,5 +80,47 @@
 
 # Determines whether the managers cache instances of the business objects.
 # And also whether the MethodResultCache will really cache results.
-
 torque.manager.useCache = true
+
+# Determines if IDBroker should prefetch IDs or not.  If set to false
+# this property has the effect of shutting off the housekeeping thread
+# that attempts to prefetch the id's.  It also sets the # of id's grabbed
+# per request to 1 regardless of the settings in the database.
+# Default: true
+torque.idbroker.prefetch = true
+
+# Controls the starting id of table entries when creating SQL for 
+# the id-table. If you have two projects that use the same id-table 
+# in the same database with different tables, make sure that they have 
+# different initialID settings and the ranges (initialID is incremented 
+# for every new table) don't overlap.
+torque.idbroker.initialId = 101 
+
+# The start value of the ID broker for supplying IDs to Torque. This value 
+# is incremented every time Torque requests ID keys from the broker. If you 
+# pre-load your table straight from SQL, make sure that you don't accidentially 
+# overlap with this setting, because Torque doesn't keep record of what IDs are 
+# already taken in the database. If you overlap, inserting new objects will fail 
+# because the ID assigned by Torque is already taken.
+torque.idBroker.initialIdValue = 100
+
+# For performance reasons, the ID Broker does not request a single ID at a time
+# but fetches a whole range and increments the current next ID Value in the ID
+# Table by this step. If you have to do lots of inserts straight in a row, increment
+# this value to get slightly better performance.
+torque.idbroker.initialIdStep = 500
+
+# IDBroker can grab its own connection from the pool to use when retrieving
+# more id's to minimize the amount of time ID_TABLE will be locked.
+# Some usage of IDBroker or assumptions made by connection pools or jdbc
+# drivers may disallow this optimization in which case the property
+# should be set to false.
+torque.idbroker.usenewconnection = true
+
+# Comment if not using shared data source factory
+torque.database.default=${turbine_database_name}
+
+
+
+
+
diff --git a/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/conf/TurbineResources.properties b/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/conf/TurbineResources.properties
index 58c1fce..e24decf 100644
--- a/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/conf/TurbineResources.properties
+++ b/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/conf/TurbineResources.properties
@@ -125,7 +125,7 @@
 # modules before the others.
 #
 # Note: org.apache.turbine.modules will always be added to the search
-# path.  If it is not explictly added here, it will be added to the
+# path.  If it is not explicitly added here, it will be added to the
 # end.
 #
 # Default: org.apache.turbine.modules
@@ -212,7 +212,7 @@
 # implementation of the login action, make sure that you change this
 # to reflect the new name.
 
-action.login=LoginUser
+action.login=LoginUserIntake
 
 # This is the default action to log a user out. If you write your own
 # implementation of the logout action, make sure that you change this
@@ -545,8 +545,6 @@
 #
 # -------------------------------------------------------------------
 
-services.VelocityService.earlyInit= true
-
 # The location of Velocity configuration file, relative to webapp root
 # These properties will override the default properties set by Velocity.
 # You should specify the path to the templates directories as well as
@@ -564,12 +562,11 @@
 # Set this to true to catch Velocity Errors and display them in the log file
 services.VelocityService.catch.errors = true
 
-services.VelocityService.runtime.log=/logs/velocity.log
 services.VelocityService.input.encoding=UTF-8
 
 #
 # Class Path Loader, Turbine jar
-services.VelocityService.velocimacro.library = macros/TurbineMacros.vm
+services.VelocityService.velocimacro.library = macros/TurbineMacros.vm,macros/applicationMacros.vm
 
 # Set the following line to true to cause velocity to automatically reload
 # library macro files if they change.  This is useful for debugging.
@@ -594,7 +591,7 @@
 
 #
 # Set enabled to true to start the scheduler.  The scheduler can be
-# stopped and started after Turbine has been intialized.  See the
+# stopped and started after Turbine has been initialized.  See the
 # javadocs for org.apache.turbine.services.schedule.TurbineScheduler
 # for the methods calls.
 #
@@ -618,6 +615,9 @@
 services.SecurityService.classname=org.apache.turbine.services.security.DefaultSecurityService
 services.SecurityService.user.manager = org.apache.turbine.services.security.DefaultUserManager
 
+services.SecurityService.user.class=org.apache.fulcrum.security.model.turbine.entity.impl.TurbineUserImpl
+
+
 
 # -------------------------------------------------------------------
 #
@@ -631,13 +631,11 @@
 #
 # Name and location to the configuration file for the components.
 #
-services.AvalonComponentService.containerConfiguration = #var("applicationRoot")/WEB-INF/conf/containerConfiguration.xml
-services.AvalonComponentService.earlyInit= true
+services.AvalonComponentService.containerConfiguration = /WEB-INF/conf/containerConfiguration.xml
 #
 # Name and location to the configuration file for the component roles.
 #
-#services.AvalonComponentService.componentRoles =  #var("applicationRoot")/WEB-INF/conf/roleConfiguration.xml
-
+#services.AvalonComponentService.componentRoles =  /WEB-INF/conf/roleConfiguration.xml
 #
 #services.AvalonComponentService.componentConfiguration = /WEB-INF/conf/componentConfiguration.xml
 
diff --git a/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/conf/componentConfiguration.xml b/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/conf/componentConfiguration.xml
index 20aa128..7502ca4 100644
--- a/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/conf/componentConfiguration.xml
+++ b/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/conf/componentConfiguration.xml
@@ -37,6 +37,7 @@
         <bundle>${package}.L10N</bundle>
       </bundles>
     </localization>
+    <!-- Disable if you experience startup problems with Java8 -->
     <intake>
       <serialDataPath>WEB-INF/appData.ser</serialDataPath>
       <xmlPaths>
@@ -56,9 +57,15 @@
     <modelManager/>
     <aclFactory/>
     
-    <!--  More Fulcrum Components, e.g. json, XmlRpcServerComponent, cft. Fulcrum Component Configurations
+    <!--  
+       Fulcrum Components, e.g. json, XmlRpcServerComponent, cft. Fulcrum Component Configurations 
+     -->
+       
+     
+     <!--  
+     Pure Fulcrum Model
     -->
-    
+    <!--
      <userManager> 
        <className>org.apache.fulcrum.security.torque.om.TorqueTurbineUser</className>
     </userManager>
@@ -71,9 +78,10 @@
     <permissionManager>
         <className>org.apache.fulcrum.security.torque.om.TorqueTurbinePermission</className>
     </permissionManager>
+    -->
  
      <!-- 
-     default classes implementing org.apache.fulcrum.security.model.turbine.entity interfaces 
+     Default classes implementing org.apache.fulcrum.security.model.turbine.entity interfaces 
      -->
     <!--userManager>
         <className>org.apache.fulcrum.security.model.turbine.entity.impl.TurbineUserImpl</className>
@@ -90,17 +98,17 @@
     
     <!-- 
      Custom Turbine ORM Torque classes could not yet be used: 
-     - requires Torque 4.1
+     - requires Torque 4.1 or if using Torque 4.0 reqires manually adding the interfaces in T-classes
      - requires attribute baseClass in fulcrum-turbine-schema.xml table elements set to appropriate org.apache.fulcrum.security.model.turbine.entity interfaces
      - requires attribute peerClass in fulcrum-turbine-schema.xml table elements set to org.apache.fulcrum.security.torque.peer.TorqueTurbinePeer 
      -->
-     <!-- 
+     
      <userManager>
      <className>${package}.om.TurbineUser</className>
-        <peerClassName>${package}.om.TurbineUserPeer</peerClassName>
+        <peerClassName>${package}.om.TurbineUserPeerImpl</peerClassName>
     </userManager>
     <groupManager>
-        <className>${package}.om.TorqueTurbineGroup</className>
+        <className>${package}.om.TurbineGroup</className>
         <peerClassName>${package}.om.TurbineGroupPeerImpl</peerClassName>
     </groupManager>
     <roleManager>
@@ -112,5 +120,5 @@
         <peerClassName>${package}.om.TurbinePermissionPeerImpl</peerClassName>
     </permissionManager>
      <peerManager/>
-     -->
+     
 </componentConfig>
\ No newline at end of file
diff --git a/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/conf/intake.xml b/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/conf/intake.xml
index bfc6dfb..7c00de2 100644
--- a/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/conf/intake.xml
+++ b/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/conf/intake.xml
@@ -31,4 +31,15 @@
     <group name="example" key="example" mapToObject="om.Table1">
         <field name="TestCol2" key="testCol2" type="String"/>
     </group>
+    <group name="Login" key="login">
+    <field name="Username" key="u" type="String">
+      <!-- l10n keys -->
+      <rule name="required" value="true">username_required_msg</rule>
+      <rule name="minLength" value="4">username_min_length_msg</rule>
+      <!--rule name="mask" value=".+@.+\..+">username_mask_msg</rule-->
+    </field>
+    <field name="Password" key="p" type="String">
+      <rule name="required" value="true">password_msg</rule>
+    </field>
+</group>
 </input-data>
diff --git a/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/conf/log4j.properties b/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/conf/log4j.properties
index 9879a83..f29d85a 100644
--- a/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/conf/log4j.properties
+++ b/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/conf/log4j.properties
@@ -23,7 +23,7 @@
 # If we don't know the logging facility, put it into the
 # turbine.log
 #
-log4j.rootLogger = INFO, app
+log4j.rootLogger = INFO, app, console
 
 #
 # App log
@@ -45,13 +45,13 @@
 
 #
 # sql log
-#
+# allows TRACE
 log4j.logger.org.apache.torque.util = DEBUG, sql, console
 log4j.additivity.org.apache.torque.util = false
 
 #
 # Torque log
-#
+# allows TRACE
 log4j.logger.org.apache.torque = DEBUG, torque
 log4j.additivity.org.apache.torque = false
 
@@ -79,7 +79,7 @@
 log4j.appender.app = org.apache.log4j.RollingFileAppender
 log4j.appender.app.MaxFileSize=5MB
 log4j.appender.app.MaxBackupIndex=5
-log4j.appender.app.file = #var("catalina.base")/logs/application.log
+log4j.appender.app.file = ${applicationRoot}/logs/application.log
 log4j.appender.app.layout = org.apache.log4j.PatternLayout
 log4j.appender.app.layout.conversionPattern = %d [%t] %-5p %c - %m%n
 log4j.appender.app.append = false
@@ -90,7 +90,7 @@
 log4j.appender.turbine = org.apache.log4j.RollingFileAppender
 log4j.appender.turbine.MaxFileSize=5MB
 log4j.appender.turbine.MaxBackupIndex=5
-log4j.appender.turbine.file = #var("catalina.base")/logs/turbine.log
+log4j.appender.turbine.file = ${applicationRoot}/logs/turbine.log
 log4j.appender.turbine.layout = org.apache.log4j.PatternLayout
 log4j.appender.turbine.layout.conversionPattern = %d [%t] %-5p %c - %m%n
 log4j.appender.turbine.append = false
@@ -99,7 +99,7 @@
 # sql.log
 #
 log4j.appender.sql = org.apache.log4j.RollingFileAppender
-log4j.appender.sql.file = #var("catalina.base")/logs/sql.log
+log4j.appender.sql.file = ${applicationRoot}/logs/sql.log
 log4j.appender.sql.MaxFileSize=5MB
 log4j.appender.sql.MaxBackupIndex=5
 log4j.appender.sql.layout = org.apache.log4j.PatternLayout
@@ -111,7 +111,7 @@
 #
 log4j.appender.console = org.apache.log4j.ConsoleAppender
 log4j.appender.console.layout = org.apache.log4j.PatternLayout
-log4j.appender.console.layout.conversionPattern = %d [%t] %-5p - %m%n
+log4j.appender.console.layout.conversionPattern = %d [%t] %-5p %C{1} - %m%n
 
 #
 # torque.log
@@ -119,7 +119,7 @@
 log4j.appender.torque = org.apache.log4j.RollingFileAppender
 log4j.appender.torque.MaxFileSize=5MB
 log4j.appender.torque.MaxBackupIndex=5
-log4j.appender.torque.file = #var("catalina.base")/logs/torque.log
+log4j.appender.torque.file = ${applicationRoot}/logs/torque.log
 log4j.appender.torque.layout = org.apache.log4j.PatternLayout
 log4j.appender.torque.layout.conversionPattern = %d [%t] %-5p %c - %m%n
 log4j.appender.torque.append = false
@@ -131,7 +131,7 @@
 log4j.appender.velocity = org.apache.log4j.RollingFileAppender
 log4j.appender.velocity.MaxFileSize=5MB
 log4j.appender.velocity.MaxBackupIndex=5
-log4j.appender.velocity.file = #var("catalina.base")/logs/velocity.log
+log4j.appender.velocity.file = ${applicationRoot}/logs/velocity.log
 log4j.appender.velocity.layout = org.apache.log4j.PatternLayout
 log4j.appender.velocity.layout.conversionPattern = %d [%t] %-5p %c - %m%n
 log4j.appender.velocity.append = false
diff --git a/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/conf/roleConfiguration.xml b/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/conf/roleConfiguration.xml
index e59a24d..a0886a4 100644
--- a/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/conf/roleConfiguration.xml
+++ b/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/conf/roleConfiguration.xml
@@ -44,6 +44,7 @@
         shorthand="localization"
         default-class="org.apache.fulcrum.localization.DefaultLocalizationService"/>
 
+	<!-- Disable if you experience startup problems with Java8 -->
     <role
         name="org.apache.fulcrum.intake.IntakeService"
         shorthand="intake"
@@ -80,7 +81,34 @@
         shorthand="securityService"
         default-class="org.apache.fulcrum.security.BaseSecurityService"/>
 
-        <!-- five memory managers : remove later and .. -->
+    <role
+        name="org.apache.fulcrum.security.UserManager"
+        shorthand="userManager"
+        early-init="true"
+        default-class="${package}.fulcrum.security.torque.turbine.TorqueTurbineUserManagerImpl"/>
+
+    <role
+        name="org.apache.fulcrum.security.GroupManager"
+        shorthand="groupManager"
+        default-class="${package}.fulcrum.security.torque.turbine.TorqueTurbineGroupManagerImpl"/>
+
+    <role
+        name="org.apache.fulcrum.security.RoleManager"
+        shorthand="roleManager"
+        default-class="${package}.fulcrum.security.torque.turbine.TorqueTurbineRoleManagerImpl"/>
+
+    <role
+        name="org.apache.fulcrum.security.PermissionManager"
+        shorthand="permissionManager"
+        default-class="org.apache.fulcrum.security.memory.MemoryPermissionManagerImpl"/>
+        
+    <role
+        name="org.apache.fulcrum.security.torque.peer.PeerManager"
+        shorthand="peerManager"
+        default-class="org.apache.fulcrum.security.torque.peer.PeerManagerDefaultImpl"/>
+        
+    <!-- optionally five memory managers : remove later and .. -->
+   <!-- 
     <role
         name="org.apache.fulcrum.security.UserManager"
         shorthand="userManager"
@@ -101,6 +129,7 @@
         name="org.apache.fulcrum.security.PermissionManager"
         shorthand="permissionManager"
         default-class="org.apache.fulcrum.security.memory.MemoryPermissionManagerImpl"/>
+     -->
 
     <role
         name="org.apache.fulcrum.security.ModelManager"
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/jetty-env.xml b/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/jetty-env.xml
similarity index 100%
rename from turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/jetty-env.xml
rename to src/main/resources/archetype-resources/src/main/webapp/WEB-INF/jetty-env.xml
diff --git a/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/web.xml b/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/web.xml
index d499857..7241e9d 100644
--- a/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/web.xml
+++ b/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/web.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" ?>
-#*
+<!--
  Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements.  See the NOTICE file
  distributed with this work for additional information
@@ -16,17 +16,15 @@
  KIND, either express or implied.  See the License for the
  specific language governing permissions and limitations
  under the License.
-*#
-<web-app id="WebApp_ID" version="2.4" 
+-->
+<web-app id="WebApp_ID" version="2.5" 
     xmlns="http://java.sun.com/xml/ns/j2ee" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
-    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
+    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/javaee/web-app_2_5.xsd">
 <!-- ======================================================================== -->
 <!--                                                                          -->
 <!-- Web Application descriptor                                               -->
 <!--                                                                          -->
-<!-- $Id: web.xml 615328 2008-01-25 20:25:05Z tv $                            -->
-<!--                                                                          -->
 <!-- ======================================================================== -->
 
 <!-- ======================================================================== -->
@@ -73,6 +71,18 @@
   <welcome-file-list>
     <welcome-file>app</welcome-file>
   </welcome-file-list>
+  
+  
+ <!-- ======================================================================== -->
+<!--                                                                          -->
+<!-- JNDI Ressource                                                           -->
+<!-- ======================================================================== -->
+  
+   <resource-ref>
+    <res-ref-name>${turbine_database_jndipath}</res-ref-name>
+    <res-type>javax.sql.DataSource</res-type>
+    <res-auth>Container</res-auth>
+  </resource-ref>
 
 <!-- ======================================================================== -->
 <!--                                                                          -->
diff --git a/src/main/resources/archetype-resources/src/main/webapp/templates/layouts/Default.vm b/src/main/resources/archetype-resources/src/main/webapp/templates/layouts/Default.vm
index 95ab364..c9f94d0 100644
--- a/src/main/resources/archetype-resources/src/main/webapp/templates/layouts/Default.vm
+++ b/src/main/resources/archetype-resources/src/main/webapp/templates/layouts/Default.vm
@@ -14,16 +14,44 @@
 ## KIND, either express or implied.  See the License for the
 ## specific language governing permissions and limitations
 ## under the License.
+
+$page.addStyleSheet("http://www.w3schools.com/lib/w3.css")
+$page.addStyleSheet("http://www.w3schools.com/lib/w3-theme-blue-grey.css")
+$page.setTitle("Sample Apache Turbine Application")
+
+
 <html>
+
 #TurbineHtmlHead()
-<body #TurbineHtmlBodyAttributes() >
-  <table bgcolor="$ui.bgcolor" width="100%">
-    <tr>
-      <td>&nbsp;</td>
-       <td align="right"><img src="$ui.image('turbine-project.png')"/></td>
-    </tr>
-  </table>
-$screen_placeholder
-  <img src="$ui.image('powered-by-logo.gif')"/>
+
+<body #TurbineHtmlBodyAttributes() class="w3-theme-l4">
+
+	<div class="w3-wrapper">
+
+		<!-- Header -->
+		<header class="w3-container w3-center w3-padding-32 w3-theme">
+        	<img class="w3-right" src="$ui.image('turbine-project.png')" /> 
+	        #if ( $data.getUser().hasLoggedIn() ) 
+		        #set ( $u = $data.getUser() )
+		        <div class="w3-right">
+					<h5>Hello $!u.FirstName</h5>
+		        </div>
+			#end
+		</header>
+
+        <!-- Default Menu -->
+        $navigation.setTemplate("/Menu.vm")
+
+        <!-- Content -->
+        <div class="w3-left w3-padding" id="content">
+                $screen_placeholder
+        </div>
+
+        <!-- Footer -->
+        <footer class="w3-bottom">
+			<p>Powered by <img src="$ui.image('powered-by-logo.gif')"/></p>
+        </footer>
+	</div>
+
 </body>
 </html>
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/templates/macros/applicationMacros.vm b/src/main/resources/archetype-resources/src/main/webapp/templates/macros/applicationMacros.vm
similarity index 100%
rename from turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/templates/macros/applicationMacros.vm
rename to src/main/resources/archetype-resources/src/main/webapp/templates/macros/applicationMacros.vm
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/templates/navigations/Menu.vm b/src/main/resources/archetype-resources/src/main/webapp/templates/navigations/Menu.vm
similarity index 100%
rename from turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/templates/navigations/Menu.vm
rename to src/main/resources/archetype-resources/src/main/webapp/templates/navigations/Menu.vm
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/templates/screens/Error.vm b/src/main/resources/archetype-resources/src/main/webapp/templates/screens/Error.vm
similarity index 100%
rename from turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/templates/screens/Error.vm
rename to src/main/resources/archetype-resources/src/main/webapp/templates/screens/Error.vm
diff --git a/src/main/resources/archetype-resources/src/main/webapp/templates/screens/Index.vm b/src/main/resources/archetype-resources/src/main/webapp/templates/screens/Index.vm
index fdc5dcd..f1eb477 100644
--- a/src/main/resources/archetype-resources/src/main/webapp/templates/screens/Index.vm
+++ b/src/main/resources/archetype-resources/src/main/webapp/templates/screens/Index.vm
@@ -15,27 +15,25 @@
 ## specific language governing permissions and limitations
 ## under the License.
 
-<div align="center"><h1>$success</h1></div>
 
-You're now successfully running a <a
-href="http://turbine.apache.org/">Turbine</a> based
-application, deployed to <font color="red">$data.ServerData.ContextPath</a></font> on
-your web container.<p/>
 
-You can (and should!) change or remove this page at any time. It is
-intended to give you immediate feedback if you just deployed an newly
-setup Turbine application.</p>
 
-Login here
+#if ( $data.getMessage() )
+        #info( $data.getMessage() )
+#end
 
-<form method="post" enctype="application/x-www-form-urlencoded" name="loginForm" id="loginForm">
-  <fieldset>
-    <legend>Login</legend>
-    <input name="action" type="hidden" value="LoginUser">
-   <label for="username">Username</label>
-    <input type="text" id="username" name="username" value="" tabindex="1" autocomplete="off" autofocus="">
-    <label for="password">Password</label>
-    <input type="password" id="password" name="password" value="" tabindex="2" autocomplete="off"> 
-    <input type="submit" id="submitLogin" value="Login" tabindex="3">
- </fieldset>
-</form>
+     <div align="center"><h1>$success</h1></div>
+
+     <p>
+             You're now successfully running a <a href="http://turbine.apache.org/">Turbine</a> based
+             application, deployed to <font color="red">$data.ServerData.ContextPath</a></font> on
+             your web container.
+     </p>
+
+     <p>
+             You can (and should!) change or remove this page at any time. It is
+             intended to give you immediate feedback if you just deployed an newly
+             setup Turbine application.
+     </p>
+
+     <a href="$link.setPage("TestSecure.vm")">Test a secure access page</a>
diff --git a/src/main/resources/archetype-resources/src/main/webapp/templates/screens/Login.vm b/src/main/resources/archetype-resources/src/main/webapp/templates/screens/Login.vm
index a5fc2b7..71fc50a 100644
--- a/src/main/resources/archetype-resources/src/main/webapp/templates/screens/Login.vm
+++ b/src/main/resources/archetype-resources/src/main/webapp/templates/screens/Login.vm
@@ -15,14 +15,87 @@
 ## specific language governing permissions and limitations
 ## under the License.
 
-<div align="center"><h1>Welcome </h1></div>
-User created : $data.user.createDate
-User lastLogin : $data.user.lastLogin
-<form method="post" name="logoutForm" id="logoutForm">
-  <fieldset>
-    <legend>Logout</legend>
-    <input name="action" type="hidden" value="LogoutUser">
-    <input type="submit" id="submitLogout" value="Logout" tabindex="1">
- </fieldset>
-</form>
+##
+## If you want to use intake to process the data, uncomment below
+##
 
+#set ( $loginGroup = $intake.Login.Default )
+  
+#set ( $valid = true )  
+#if (!$loginGroup.Username.isValid() ) 
+    ## this should be improved ...
+    #if ("$loginGroup.Username.Message" == "username_min_length_msg") 
+       #info( $l10n.format("$loginGroup.Username.Message","4") )
+    #else
+      #info( $l10n.get("$loginGroup.Username.Message") )
+    #end
+    #set ( $valid = false )
+ #end
+ 
+ #if ( !$loginGroup.Password.isValid() ) 
+    #info( $l10n.get("$loginGroup.Password.Message") )
+    #set ( $valid = false )
+ #end
+
+<p/>
+  #if (! $data.user.hasLoggedIn()) 
+  
+  <div class="w3-display-middle w3-card-8 w3-center w3-light-grey" style="max-width: 500px">
+
+		<form class="w3-container w3-light-grey" name="login" method="post" enctype="application/x-www-form-urlencoded" action="$link.setAction("LoginUserIntake").setPage($data.templateInfo.screenTemplate)">
+       <div class="w3-section">
+        
+                <p>
+                	<input class="w3-input w3-border" style="margin: auto; width: 200px;" placeholder="Username" type="text" name="$loginGroup.Username.Key" value="$!loginGroup.Username" tabindex="1" autocomplete="off" autofocus="">
+                </p>
+
+                <p>
+                	<input class="w3-input w3-border" style="margin: auto; width: 200px;" placeholder="Password" type="password" name="$loginGroup.Password.Key" value="" tabindex="2" autocomplete="off">
+                </p>
+
+                <button type="submit" name="submit" id="submit" value="eventSubmit_doPerform" class="w3-ripple" tabindex="3">#if (! $valid ) Retry #else Sign in #end</button>
+                
+                <p/>
+    ##$intake.declareGroups()
+        
+      </div>
+    </form>
+    
+    <!--  default login without Intake  -->
+    <!-- 
+    		<form class="w3-container w3-light-grey" name="login" method="post" action="$link.setAction("LoginUser").setPage($data.templateInfo.screenTemplate)">
+       <div class="w3-section">
+       
+                <p>
+                	<input class="w3-input w3-border" style="margin: auto; width: 200px;" placeholder="Username" type="text" name="username" value="" tabindex="1"  autocomplete="off" autofocus="">
+                </p>
+
+                <p>
+                	<input class="w3-input w3-border" style="margin: auto; width: 200px;" placeholder="Password" type="password" name="password" value="" tabindex="2" autocomplete="off">
+                </p>
+
+                <button type="submit" name="submit" id="submit" value="eventSubmit_doPerform" class="w3-ripple" tabindex="3">Sign in</button>
+                
+                <p/>
+
+      </div>
+    </form>
+    
+    
+    
+    -->
+
+
+    <div class="w3-container w3-border-top w3-padding-16 w3-light-grey">
+          <span class="w3-right w3-padding w3-hide-small">Forgot <a href="#">password?</a></span>
+    </div>
+
+    ## Display System messages here if there are any
+        #if($data.getMessage())
+         #info( $data.getMessage() ) <br/>
+        #end 
+
+    </div>
+  #end             
+
+## $intake.declareGroups()
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/templates/screens/Password.vm b/src/main/resources/archetype-resources/src/main/webapp/templates/screens/Password.vm
similarity index 100%
rename from turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/templates/screens/Password.vm
rename to src/main/resources/archetype-resources/src/main/webapp/templates/screens/Password.vm
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/templates/screens/TestSecure.vm b/src/main/resources/archetype-resources/src/main/webapp/templates/screens/TestSecure.vm
similarity index 100%
rename from turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/templates/screens/TestSecure.vm
rename to src/main/resources/archetype-resources/src/main/webapp/templates/screens/TestSecure.vm
diff --git a/turbine-webapp-4.0/src/test/resources/projects/first/archetype.properties b/src/test/resources/projects/first/archetype.properties
similarity index 100%
rename from turbine-webapp-4.0/src/test/resources/projects/first/archetype.properties
rename to src/test/resources/projects/first/archetype.properties
diff --git a/turbine-webapp-4.0/src/test/resources/projects/first/goal.txt b/src/test/resources/projects/first/goal.txt
similarity index 100%
rename from turbine-webapp-4.0/src/test/resources/projects/first/goal.txt
rename to src/test/resources/projects/first/goal.txt
diff --git a/turbine-webapp-4.0/pom.xml b/turbine-webapp-4.0/pom.xml
deleted file mode 100644
index ab0c389..0000000
--- a/turbine-webapp-4.0/pom.xml
+++ /dev/null
@@ -1,64 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-
-   http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
--->
-<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">
-
-  <modelVersion>4.0.0</modelVersion>
-    <parent>
-    <groupId>org.apache</groupId>
-    <artifactId>apache</artifactId>
-    <version>18</version>
-  </parent>
-  <groupId>org.apache.turbine</groupId>
-  <artifactId>turbine-webapp-4.0</artifactId>
-  <version>1.0.1</version>
-  <packaging>maven-archetype</packaging>
-
-  <name>Archetype - Turbine 4.0M2 WebApp</name>
-  <description>This archetype sets up a web application project based on Apache Turbine 4.0M2</description>
-  <url>http://turbine.apache.org</url>
-
-  <inceptionYear>2011</inceptionYear>
-
-  <scm>
-    <connection>scm:svn:http://svn.apache.org/repos/asf/turbine/maven/archetypes/tags/turbine-webapp-4.0-1.0.1</connection>
-    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/turbine/maven/archetypes/tags/turbine-webapp-4.0-1.0.1</developerConnection>
-    <url>http://svn.apache.org/viewvc/turbine/maven/archetypes/tags/turbine-webapp-4.0-1.0.1</url>
-  </scm>
-  
-<build>
-    <extensions>
-      <extension>
-        <groupId>org.apache.maven.archetype</groupId>
-        <artifactId>archetype-packaging</artifactId>
-        <version>2.4</version>
-      </extension>
-    </extensions>
-
-    <pluginManagement>
-      <plugins>
-        <plugin>
-          <artifactId>maven-archetype-plugin</artifactId>
-          <version>2.4</version>
-        </plugin>
-      </plugins>
-    </pluginManagement>
-  </build>
-
-</project>
diff --git a/turbine-webapp-4.0/src/changes/changes.xml b/turbine-webapp-4.0/src/changes/changes.xml
deleted file mode 100644
index c231563..0000000
--- a/turbine-webapp-4.0/src/changes/changes.xml
+++ /dev/null
@@ -1,75 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-
-   http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
--->
-<document>
-  <properties>
-    <title>Changes</title>
-    <author email="tv@apache.org">Thomas Vandahl</author>
-  </properties>
-
-  <body>
-   <release version="1.0.1" date="in Subversion">
-       <action dev="gk" type="add">
-       Password change action, Check anonymous login
-      </action>
-      <action dev="gk" type="update">
-       JNDI Jetty Update
-      </action>
-      <action dev="tv" type="add">
-       Add testing in place with "integration-test"
-      </action>
-      <action dev="tv" type="update">
-       Turbine annotations, use auto detect Torque adapter
-      </action>
-       <action dev="gk" type="update">
-       Fulcrum Torque Security added manager, om classes
-      </action>
-      <action dev="painter" type="add">
-       Added readme, docs, helper sql..
-      </action>
-       <action dev="painter" type="update">
-       MySQL is now default
-      </action>
-      <action dev="gk" type="update">
-       Update schema to torque / intake 4.0, dependencies, configurations
-       Update to MemoryGroupManagerImpl, Fulcrum     
-      </action>
-      <action dev="gk" type="add">
-        Jetty support
-      </action>
-      <action dev="tv" type="fix">
-        TRB-95
-      </action>
-      <action dev="gk" type="update ">
-        Update to Turbine 4-M2
-      </action>
-    </release>
-    <release version="1.0.0" date="2012-11-06">
-      <action dev="tv" type="fix">
-        Fixed missing dependencies and wrong class names as reported on the mailing list
-      </action>
-      <action dev="tv" type="add">
-        Add information required for a release to the POM
-      </action>
-      <action dev="tv" type="add">
-        Initial version
-      </action>
-    </release>
-  </body>
-</document>
diff --git a/turbine-webapp-4.0/src/main/resources/META-INF/maven/archetype-metadata.xml b/turbine-webapp-4.0/src/main/resources/META-INF/maven/archetype-metadata.xml
deleted file mode 100644
index b6481b5..0000000
--- a/turbine-webapp-4.0/src/main/resources/META-INF/maven/archetype-metadata.xml
+++ /dev/null
@@ -1,96 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-
-   http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
--->
-<archetype-descriptor 
-  xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0"
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0 http://maven.apache.org/xsd/archetype-descriptor-1.0.0.xsd"
-  name="turbine-4.0-velocity">
-
-  <requiredProperties>
-    <requiredProperty key="turbine_app_name">
-      <defaultValue>My Turbine Web Application</defaultValue>
-    </requiredProperty>
-    <requiredProperty key="turbine_intake_file">
-      <defaultValue>intake.xml</defaultValue>
-    </requiredProperty>
-    <requiredProperty key="turbine_database_name">
-      <defaultValue>turbine</defaultValue>
-    </requiredProperty>
-    <requiredProperty key="turbine_database_adapter">
-      <defaultValue>auto</defaultValue>
-    </requiredProperty>
-    <requiredProperty key="turbine_database_jndipath">
-      <defaultValue>jdbc/turbine</defaultValue>
-    </requiredProperty>
-    <requiredProperty key="turbine_database_driver">
-      <defaultValue>com.mysql.jdbc.Driver</defaultValue>
-    </requiredProperty>
-    <requiredProperty key="turbine_database_url">
-      <defaultValue>jdbc:mysql://localhost:3306/</defaultValue>
-    </requiredProperty>
-    <requiredProperty key="turbine_database_user">
-      <defaultValue>db_user</defaultValue>
-    </requiredProperty>
-    <requiredProperty key="turbine_database_password">
-      <defaultValue>db_password</defaultValue>
-    </requiredProperty>
-  </requiredProperties>
-  <fileSets>
-    <fileSet filtered="true" packaged="true" encoding="UTF-8">
-      <directory>src/main/java</directory>
-      <includes>
-        <include>**/*.java</include>
-        <include>**/*.properties</include>
-      </includes>
-    </fileSet>
-    <fileSet filtered="false" packaged="false" encoding="UTF-8">
-      <directory>docs</directory>
-      <includes>
-        <include>**/*.txt</include>
-        <include>**/*.sql</include>
-      </includes>
-    </fileSet>
-    <fileSet filtered="true" packaged="false" encoding="UTF-8">
-      <directory>src/main/torque-schema</directory>
-      <includes>
-        <include>**/*.xml</include>
-      </includes>
-    </fileSet>
-    <fileSet filtered="true" packaged="false" encoding="UTF-8">
-      <directory>src/main/webapp/WEB-INF</directory>
-      <includes>
-        <include>**/*.xml</include>
-        <include>**/*.properties</include>
-      </includes>
-    </fileSet>
-    <fileSet filtered="false" packaged="false" encoding="UTF-8">
-      <directory>src/main/webapp/templates</directory>
-      <includes>
-        <include>**/*.vm</include>
-      </includes>
-    </fileSet>
-    <fileSet filtered="false" packaged="false" encoding="UTF-8">
-      <directory>src/main/webapp/resources</directory>
-      <includes>
-        <include>**/*</include>
-      </includes>
-    </fileSet>
-  </fileSets>
-</archetype-descriptor>
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/pom.xml b/turbine-webapp-4.0/src/main/resources/archetype-resources/pom.xml
deleted file mode 100644
index f9ad7df..0000000
--- a/turbine-webapp-4.0/src/main/resources/archetype-resources/pom.xml
+++ /dev/null
@@ -1,290 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-#*
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements. See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership. The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License. You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied. See the License for the
-specific language governing permissions and limitations
-under the License.
-*#
-#set($dollar = '$')
-#macro (var $label)${dollar}{${label}}#end
-<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">
-
-    <modelVersion>4.0.0</modelVersion>
-    <groupId>${package}</groupId>
-    <artifactId>${artifactId}</artifactId>
-    <version>${version}</version>
-    <packaging>war</packaging>
-
-    <name>${turbine_app_name}</name>
-
-    <build>
-        <resources>
-            <resource>
-                <directory>src/main/java</directory>
-                <includes>
-                    <include>**/*.properties</include>
-                </includes>
-            </resource>
-            <!-- (target) resource and filtering is not used  at all ? 
-            at least removed setting absolute path e.g. with #var("project.build.directory"), 
-            which does thrown an exception with mvn eclipse:eclipse - path is then incorrectly relativized.
-                --> 
-            <resource> 
-                <targetPath>../torque/schema</targetPath>
-                <filtering>true</filtering>
-                <directory>src/main/torque-schema</directory>
-                <includes>
-                    <include>*.xml</include>
-                </includes>
-            </resource>
-        </resources>
-        <plugins>
-            <plugin>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <version>2.5.1</version>
-                <configuration>
-                    <source>${maven.compile.source}</source>
-                    <target>${maven.compile.target}</target>
-                    <encoding>${project.build.sourceEncoding}</encoding>
-                </configuration>
-            </plugin>
-            
-             <plugin>
-                <groupId>org.apache.torque</groupId>
-                <artifactId>torque-maven-plugin</artifactId>
-                <version>4.0</version>
-                <configuration>
-                    <schemaDir>#var("project.basedir")/src/main/torque-schema</schemaDir>
-                    <useClasspath>true</useClasspath>
-                    <runOnlyOnSchemaChange>false</runOnlyOnSchemaChange>
-                    <targetDatabase>${turbine_database_adapter}</targetDatabase>
-                </configuration>
-                <executions>
-          <execution>
-            <id>torque-om</id>
-            <phase>generate-sources</phase>
-            <goals>
-              <goal>generate</goal>
-            </goals>
-            <configuration>
-              <packaging>classpath</packaging>
-              <configPackage>org.apache.torque.templates.om</configPackage>
-              <sourceDir>#var("project.basedir")/src/main/torque-schema</sourceDir>
-              <loglevel>error</loglevel>
-              <options>
-                <torque.database>${turbine_database_adapter}</torque.database>
-                <torque.om.package>${package}.om</torque.om.package>
-                <torque.om.addGetByNameMethods>false</torque.om.addGetByNameMethods>
-                <torque.om.save.saveException>TorqueException</torque.om.save.saveException>
-                <torque.om.useIsForBooleanGetters>true</torque.om.useIsForBooleanGetters>
-                <torque.om.useManagers>false</torque.om.useManagers>
-                <torque.om.addTimeStamp>true</torque.om.addTimeStamp>
-                <torque.om.objectIsCaching>true</torque.om.objectIsCaching>
-                <torque.om.save.addSaveMethods>true</torque.om.save.addSaveMethods>
-                <torque.om.addGetByNameMethods>true</torque.om.addGetByNameMethods>
-                <torque.om.complexObjectModel>true</torque.om.complexObjectModel>
-              </options>
-              <outputDirMap>
-                <modifiable>#var("project.build.sourceDirectory")</modifiable>
-              </outputDirMap>
-            </configuration>
-          </execution>
-          <execution>
-            <id>torque-sql-mysql</id><!-- ${turbine_database_adapter} -->
-            <phase>generate-sources</phase>
-            <goals>
-              <goal>generate</goal>
-            </goals>
-            <configuration>
-              <packaging>classpath</packaging>
-              <configPackage>org.apache.torque.templates.sql</configPackage>
-              <sourceDir>#var("project.basedir")/src/main/torque-schema</sourceDir>
-              <defaultOutputDir>#var("project.build.directory")/generated-sql/torque/mysql</defaultOutputDir>
-              <defaultOutputDirUsage>none</defaultOutputDirUsage>
-              <loglevel>error</loglevel>
-              <options>
-                <torque.database>mysql</torque.database>
-              </options>
-            </configuration>
-          </execution>
-                </executions>
-                <dependencies>
-                  <dependency>
-                    <groupId>org.apache.torque</groupId>
-                    <artifactId>torque-templates</artifactId>
-                    <version>4.0</version>
-                  </dependency>
-                </dependencies>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-war-plugin</artifactId>
-                 <version>2.3</version>
-                <configuration>
-                    <archive>
-                        <manifestEntries>
-                            <X-Compile-Source-JDK>#var("maven.compile.source")</X-Compile-Source-JDK>
-                            <X-Compile-Target-JDK>#var("maven.compile.target")</X-Compile-Target-JDK>
-                        </manifestEntries>
-                    </archive>
-                    <!-- containerConfigXML>WEB-INF/build/context.xml</containerConfigXML -->
-                </configuration>
-            </plugin>
-
-
-      <!-- Required to execute torque database build -->
-      <plugin>
-        <groupId>org.codehaus.mojo</groupId>
-        <artifactId>sql-maven-plugin</artifactId>
-        <version>1.5</version>
-        <configuration>
-
-          <!-- Please update with your database configuration -->
-          <driver>${turbine_database_driver}</driver>
-          <url>${turbine_database_url}${turbine_database_name}</url>
-          <username>${turbine_database_user}</username>
-          <password>${turbine_database_password}</password>
-          <onError>continue</onError>
-          <autocommit>true</autocommit>
-          <orderFile>ascending</orderFile>
-          <!-- this is mysql specific -->
-          <fileset>
-              <basedir>${project.build.directory}/generated-sql/torque/mysql</basedir>
-              <!-- basedir>${basedir}/target/generated-sql</basedir -->
-              <includes>
-                <include>*.sql</include>
-              </includes>
-           </fileset>
-           <srcFiles>
-              <srcFile>${basedir}/docs/sample-mysql-data/_application-data.sql</srcFile>
-              <srcFile>${basedir}/docs/sample-mysql-data/_turbine-security-data.sql</srcFile>
-           </srcFiles>
-        </configuration>
-        
-        <!-- update with your database driver dependency -->
-        
-        <dependencies>
-          <dependency>
-            <artifactId>mysql-connector-java</artifactId>
-            <groupId>mysql</groupId>
-            <version>5.1.40</version>
-          </dependency>
-        </dependencies>
-      </plugin>
-
-            <!-- jetty:run checks deployed war http://localhost:8081/app/ 
-            
-            Using jetty 8 as supporting java 6. Other specs cft. http://www.eclipse.org/jetty/documentation/9.3.0.v20150612/what-jetty-version.html
-            -->
-            <plugin>
-               <groupId>org.mortbay.jetty</groupId>
-               <artifactId>jetty-maven-plugin</artifactId>
-               <version>8.1.16.v20140903</version>
-              <configuration>
-                <scanIntervalSeconds>10</scanIntervalSeconds>
-                <dumpOnStart>true</dumpOnStart>
-                <connectors>
-                <connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
-                  <port>8081</port>
-                </connector>
-                </connectors>
-                <!--webApp>
-                  <contextPath>/app</contextPath>
-                </webApp-->
-              </configuration>
-            </plugin>
-        </plugins>
-    </build>
-
-    <dependencies>
-    
-    <!-- update with the database driver of your choice -->
-    <dependency>
-      <artifactId>mysql-connector-java</artifactId>
-      <groupId>mysql</groupId>
-      <version>5.1.40</version>
-    </dependency>    
-        <dependency>
-            <groupId>javax.activation</groupId>
-            <artifactId>activation</artifactId>
-            <version>1.1.1</version>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>javax.mail</groupId>
-            <artifactId>mail</artifactId>
-            <version>1.4.5</version>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>javax.servlet</groupId>
-            <artifactId>servlet-api</artifactId>
-            <version>2.5</version>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.turbine</groupId>
-            <artifactId>turbine</artifactId>
-            <version>4.0-M2</version>
-        </dependency>
-        <!-- yaafi is optional. NOTICE: 1.0.7 has group org.apache.turbine not org.apache.fulcrum  -->
-        <dependency>
-          <groupId>org.apache.turbine</groupId>
-          <artifactId>fulcrum-yaafi</artifactId>
-          <version>1.0.7</version>
-        </dependency>
-        <!-- if using intake -->
-        <dependency>
-          <groupId>org.apache.fulcrum</groupId>
-          <artifactId>fulcrum-intake</artifactId>
-          <version>1.2.2</version>
-         </dependency>
-         <!-- include some optional dependencies required in example componentConfiguration.xml -->
-        <dependency>
-          <groupId>org.apache.fulcrum</groupId>
-          <artifactId>fulcrum-cache</artifactId>
-          <version>1.1.0</version>
-        </dependency>
-         <dependency>
-          <groupId>org.apache.fulcrum</groupId>
-          <artifactId>fulcrum-upload</artifactId>
-          <version>1.0.5</version>
-        </dependency>
-        <dependency>
-          <groupId>org.apache.fulcrum</groupId>
-          <artifactId>fulcrum-security-memory</artifactId>
-          <version>1.1.0</version>
-        </dependency>
-         <dependency>             
-            <groupId>org.apache.fulcrum</groupId>
-            <artifactId>fulcrum-security-torque</artifactId>
-            <version>1.1.0</version>
-        </dependency>	
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <version>4.11</version>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-
-    <properties>
-        <maven.compile.source>1.6</maven.compile.source>
-        <maven.compile.target>1.6</maven.compile.target>
-        <project.build.sourceEncoding>utf-8</project.build.sourceEncoding>
-    </properties>
-    
-</project>
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/L10N_en_US.properties b/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/L10N_en_US.properties
deleted file mode 100644
index 0ceed48..0000000
--- a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/L10N_en_US.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-#*
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-*#
-l10nkey=US-English value
-username_required_msg=Please enter an email address as user name
-username_min_length_msg=Please enter at least {0} characters
-username_mask_msg=Please enter a valid email address as user name
-password_msg=Please enter a password
\ No newline at end of file
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/modules/screens/Index.java b/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/modules/screens/Index.java
deleted file mode 100644
index 4990038..0000000
--- a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/java/modules/screens/Index.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package ${package}.modules.screens;
-#*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
-*#
-
-import org.apache.turbine.pipeline.PipelineData;
-import org.apache.velocity.context.Context;
-import org.apache.turbine.modules.screens.VelocitySecureScreen;
-
-/**
- * This class provides the data required for displaying content in the
- * Velocity page. 
- */
-public class Index extends VelocitySecureScreen
-{
-	/**
-	 * This method is called by the Turbine framework when the
-	 * associated Velocity template, Index.vm is requested
-	 * 
-	 * @param data the Turbine request data
-	 * @param context the Velocity context
-	 * @throws Exception a generic Exception
-	 */
-	@Override
-	protected void doBuildTemplate(PipelineData data, Context context)
-			throws Exception
-	{
-		context.put("success", "Congratulations, it worked!");
-	}
-
-	/**
-	 * This method is called bythe Turbine framework to determine if
-	 * the current user is allowed to use this screen. If this method
-	 * returns false, the doBuildTemplate() method will not be called.
-	 * If a redirect to some "access denied" page is required, do the
-	 * necessary redirect here.
-	 * 
-	 * @param data the Turbine request data
-	 * @return true if this screen may be accessed
-	 * @throws Exception a generic Exception
-	 */
-	@Override
-	protected boolean isAuthorized(PipelineData data) throws Exception
-	{
-		// use data.getACL() 
-		return true;
-	}
-}
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/torque-schema/application-data.xml b/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/torque-schema/application-data.xml
deleted file mode 100644
index eeef5cd..0000000
--- a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/torque-schema/application-data.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
-#*
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-
-   http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
-*#
-<!DOCTYPE dataset SYSTEM "file://application-data.dtd">
-
-<!-- =============================================================================== -->
-<!--                                                                                 -->
-<!-- Application Data in XML. Add your custom values to this file                    -->
-<!--                                                                                 -->
-<!-- @version $Id: application-data.xml 615328 2008-01-25 20:25:05Z tv $ -->
-<!--                                                                                 -->
-<!-- =============================================================================== -->
-
-<dataset name="all"/>
-
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/torque-schema/application-schema.xml b/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/torque-schema/application-schema.xml
deleted file mode 100644
index 8e867d5..0000000
--- a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/torque-schema/application-schema.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-
-   http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
--->
-
-<!-- ============================================================================== -->
-<!--                                                                                -->
-<!--  Database Definition for the Application                                       -->
-<!--                                                                                -->
-<!--  @version $Id: application-schema.xml                                          -->
-<!--                                                                                -->
-<!-- ============================================================================== -->
-
-<database xmlns="http://db.apache.org/torque/4.0/templates/database"
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://db.apache.org/torque/4.0/templates/database
-        http://db.apache.org/torque/4.0/templates/database-strict.xsd"
-  name="${turbine_database_name}"
-  defaultIdMethod="native">
-
-
-	<!--  Simple author/book database example -->
-	<table name="AUTHOR" idMethod="idbroker">
-		<column name="AUTH_ID"     required="true" primaryKey="true" type="INTEGER" />
-		<column name="FIRST_NAME"  required="true" size="64" type="VARCHAR" />
-		<column name="LAST_NAME"   required="true" size="64" type="VARCHAR" />
-	</table>
-
-    <table name="BOOK" idMethod="idbroker">
-		<column name="BOOK_ID"     required="true" primaryKey="true" type="INTEGER" />
-		<column name="AUTH_ID"     required="true" type="INTEGER" />
-		<column name="TITLE"       required="true" size="64" type="VARCHAR" />
-		<column name="SUBJECT"     required="true" size="64" type="VARCHAR" />
-		<foreign-key foreignTable="AUTHOR">
-			<reference local="AUTH_ID" foreign="AUTH_ID"></reference>
-		</foreign-key>		
-	</table>
-</database>
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/torque-schema/id-table-schema.xml b/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/torque-schema/id-table-schema.xml
deleted file mode 100644
index 5002f21..0000000
--- a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/torque-schema/id-table-schema.xml
+++ /dev/null
@@ -1,47 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-
-   http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
--->
-
-<!-- ========================================================================= -->
-<!--                                                                           -->
-<!-- Table definition for the ID Broker Table used by Torque                   -->
-<!--                                                                           -->
-<!-- @version $Id: id-table-schema.xml 615328 2008-01-25 20:25:05Z tv $ -->
-<!--                                                                           -->
-<!-- ========================================================================= -->
-
-<database xmlns="http://db.apache.org/torque/4.0/templates/database"
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://db.apache.org/torque/4.0/templates/database
-        http://db.apache.org/torque/4.0/templates/database-strict.xsd"
-  name="${turbine_database_name}"
-  defaultIdMethod="native">
-
-  <table name="ID_TABLE" idMethod="idbroker">
-    <column name="ID_TABLE_ID" required="true" primaryKey="true" type="INTEGER" javaName="IdTableId"/>
-    <column name="TABLE_NAME" required="true" size="255" type="VARCHAR" javaName="TableName"/>
-    <column name="NEXT_ID" required="true" type="INTEGER" javaName="NextId"/>
-    <column name="QUANTITY" required="true" type="INTEGER" javaName="Quantity"/>
-
-    <unique>
-      <unique-column name="TABLE_NAME"/>
-    </unique>
-
-  </table>
-</database>
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/torque-schema/torque-security-data.xml b/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/torque-schema/torque-security-data.xml
deleted file mode 100644
index 8503f8f..0000000
--- a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/torque-schema/torque-security-data.xml
+++ /dev/null
@@ -1,67 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
-#*
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-
-   http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
-*#
-<!DOCTYPE dataset SYSTEM "file://torque-security-data.dtd">
-
-<!-- =============================================================================== -->
-<!--                                                                                 -->
-<!-- Default Values for Admin and normal User                                        -->
-<!--                                                                                 -->
-<!-- @version $Id: turbine-security-data.xml 615328 2008-01-25 20:25:05Z tv $ -->
-<!--                                                                                 -->
-<!-- =============================================================================== -->
-
-<dataset name="all">
-
-  <TurbineUser UserId="1"
-               UserName="admin"
-               Password="password"
-               FirstName=""
-               LastName="Admin"/>
-
-  <TurbineUser UserId="2"
-               UserName="user"
-               Password="password"
-               FirstName=""
-               LastName="User"/>
-
-  <!-- Turbine Permissions -->
-
-  <TurbinePermission PermissionId="1" Name="turbineadmin"/>
-  <TurbinePermission PermissionId="2" Name="turbine"/>
-
-  <!-- Turbine Roles -->
-
-  <TurbineRole RoleId="1" Name="turbineadmin"/>
-  <TurbineRole RoleId="2" Name="turbineuser"/>
-
- <!-- Turbine Groups -->
-
-  <TurbineGroup GroupId="1" Name="global"/>
-  <TurbineGroup GroupId="2" Name="Turbine"/>
-
-  <TurbineRolePermission RoleId="1" PermissionId="1"/>
-  <TurbineRolePermission RoleId="2" PermissionId="2"/>
-
-  <!-- Associate Users, Groups, and Roles -->
-
-  <TurbineUserGroupRole UserId="1" GroupId="2" RoleId="1"/>
-  <TurbineUserGroupRole UserId="2" GroupId="2" RoleId="2"/>
-
-</dataset>
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/torque-schema/torque-security-schema.xml b/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/torque-schema/torque-security-schema.xml
deleted file mode 100644
index 84cbd6b..0000000
--- a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/torque-schema/torque-security-schema.xml
+++ /dev/null
@@ -1,120 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-
-   http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
--->
-
-
-<!-- ======================================================================== -->
-<!--                                                                          -->
-<!--  Turbine Torque based Security Service Schema                            -->
-<!--                                                                          -->
-<!-- $Id: turbine-security-schema.xml 615328 2008-01-25 20:25:05Z tv $ -->
-<!--                                                                          -->
-<!-- ======================================================================== -->
-
-<database xmlns="http://db.apache.org/torque/4.0/templates/database"
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://db.apache.org/torque/4.0/templates/database
-        http://db.apache.org/torque/4.0/templates/database-strict.xsd"
-  name="${turbine_database_name}"
-  defaultIdMethod="idbroker">
-
-
-  <table name="TURBINE_PERMISSION" idMethod="idbroker" baseClass="${package}.fulcrum.security.torque.turbine.TorqueAbstractTurbinePermission">
-    <column name="PERMISSION_ID" required="true" primaryKey="true" type="INTEGER" javaType="object"/>
-    <column name="PERMISSION_NAME" required="true" size="64" type="VARCHAR" javaName="EntityName"/>
-
-    <unique>
-      <unique-column name="PERMISSION_NAME"/>
-    </unique>
-
-  </table>
-
-  <table name="TURBINE_ROLE" idMethod="idbroker" baseClass="${package}.fulcrum.security.torque.turbine.TorqueAbstractTurbineRole">
-    <column name="ROLE_ID" required="true" primaryKey="true" type="INTEGER" javaType="object"/>
-    <column name="ROLE_NAME" required="true" size="64" type="VARCHAR" javaName="EntityName"/>
-
-    <unique>
-        <unique-column name="ROLE_NAME"/>
-    </unique>
-
-  </table>
-
-  <table name="TURBINE_GROUP" idMethod="idbroker" baseClass="${package}.fulcrum.security.torque.turbine.TorqueAbstractTurbineGroup">
-    <column name="GROUP_ID" required="true" primaryKey="true" type="INTEGER" javaType="object"/>
-    <column name="GROUP_NAME" required="true" type="VARCHAR" size="64" javaName="EntityName"/>
-
-    <unique>
-        <unique-column name="GROUP_NAME"/>
-    </unique>
-
-  </table>
-
-  <table name="TURBINE_ROLE_PERMISSION">
-    <column name="ROLE_ID" required="true" primaryKey="true" type="INTEGER"/>
-    <column name="PERMISSION_ID" required="true" primaryKey="true" type="INTEGER"/>
-
-    <foreign-key foreignTable="TURBINE_ROLE">
-      <reference local="ROLE_ID" foreign="ROLE_ID"/>
-    </foreign-key>
-
-    <foreign-key foreignTable="TURBINE_PERMISSION">
-      <reference local="PERMISSION_ID" foreign="PERMISSION_ID"/>
-    </foreign-key>
-  </table>
-
-  <!-- org.apache.fulcrum.security.torque.TorqueAbstractSecurityEntity -->
-  <table name="TURBINE_USER" idMethod="idbroker" baseClass="org.apache.fulcrum.security.torque.turbine.TorqueAbstractTurbineTurbineSecurityEntity"
-  interface="org.apache.fulcrum.security.model.turbine.entity.TurbineUser">
-    <column name="USER_ID" required="true" primaryKey="true" type="INTEGER" javaType="object" javaName="EntityId"/>
-    <column name="LOGIN_NAME" required="true" size="64" type="VARCHAR" javaName="EntityName"/>
-    <column name="PASSWORD_VALUE" required="true" size="16" type="VARCHAR" javaName="Password"/>
-    <column name="FIRST_NAME" required="true" size="64" type="VARCHAR"/>
-    <column name="LAST_NAME" required="true" size="64" type="VARCHAR"/>
-    <column name="EMAIL" size="64" type="VARCHAR"/>
-    <column name="CONFIRM_VALUE" size="16" type="VARCHAR" javaName="Confirmed"/>
-    <column name="MODIFIED_DATE" type="TIMESTAMP" javaName="ModifiedDate"/>
-    <column name="CREATED" type="TIMESTAMP" javaName="CreateDate"/>
-    <column name="LAST_LOGIN" type="TIMESTAMP"/>
-    <column name="OBJECTDATA" type="VARBINARY"/>
-
-    <unique>
-        <unique-column name="LOGIN_NAME"/>
-    </unique>
-
-  </table>
-
-  <table name="TURBINE_USER_GROUP_ROLE">
-    <column name="USER_ID" required="true" primaryKey="true" type="INTEGER"/>
-    <column name="GROUP_ID" required="true" primaryKey="true" type="INTEGER"/>
-    <column name="ROLE_ID" required="true" primaryKey="true" type="INTEGER"/>
-
-    <foreign-key foreignTable="TURBINE_USER">
-      <reference local="USER_ID" foreign="USER_ID"/>
-    </foreign-key>
-
-    <foreign-key foreignTable="TURBINE_GROUP">
-      <reference local="GROUP_ID" foreign="GROUP_ID"/>
-    </foreign-key>
-
-    <foreign-key foreignTable="TURBINE_ROLE">
-      <reference local="ROLE_ID" foreign="ROLE_ID"/>
-    </foreign-key>
-  </table>
-
-</database>
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/conf/Torque.properties b/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/conf/Torque.properties
deleted file mode 100644
index 023ef76..0000000
--- a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/conf/Torque.properties
+++ /dev/null
@@ -1,126 +0,0 @@
-#*
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-*#
-# -------------------------------------------------------------------
-#
-# This is the configuration file for Torque.
-#
-# Note that strings containing "," (comma) characters must backslash
-# escape the comma (i.e. '\,')
-#
-# -------------------------------------------------------------------
-#
-#  T O R Q U E  P R O P E R T I E S
-#
-# -------------------------------------------------------------------
-# These are your database settings. Look in the
-# org.apache.torque.pool.* packages for more information.
-#
-# The parameters to connect to the default database.  You MUST
-# configure these properly.
-# -------------------------------------------------------------------
-
-
-
-#
-# For JNDI configuration please see: https://db.apache.org/torque/torque-4.0/documentation/orm-reference/initialisation-configuration.html
-# 
-#
-torque.dsfactory.${turbine_database_name}.factory=org.apache.torque.dsfactory.JndiDataSourceFactory
-torque.dsfactory.${turbine_database_name}.jndi.path=java:comp/env/${turbine_database_jndipath}
-torque.dsfactory.${turbine_database_name}.jndi.ttl=300000
-
-# -------------------------------------------------------------------
-#
-# Shared Pool Data Source Factory
-#
-# -------------------------------------------------------------------
-#torque.database.default=${turbine_database_name}
-torque.database.${turbine_database_name}.adapter=${turbine_database_adapter}
-
-#torque.database.${turbine_database_name}.user=${turbine_database_user}
-#torque.database.${turbine_database_name}.password=${turbine_database_password}
-#
-#torque.defaults.pool.maxActive =       	30
-#torque.defaults.pool.testOnBorrow =    	true
-#torque.defaults.pool.validationQuery = 	SELECT 1
-#
-#torque.defaults.connection.driver =    	${turbine_database_driver}
-#torque.defaults.connection.url =       	${turbine_database_url}${turbine_database_name}
-#torque.defaults.connection.user =      	${turbine_database_user}
-#torque.defaults.connection.password =  	${turbine_database_password}
-#
-#torque.dsfactory.${turbine_database_name}.connection.driver =    	${turbine_database_driver}
-#torque.dsfactory.${turbine_database_name}.connection.url =       	${turbine_database_url}${turbine_database_name}
-#torque.dsfactory.${turbine_database_name}.connection.user =      	${turbine_database_user}
-#torque.dsfactory.${turbine_database_name}.connection.password =  	${turbine_database_password}
-#torque.dsfactory.${turbine_database_name}.factory=org.apache.torque.dsfactory.SharedPoolDataSourceFactory
-# -------------------------------------------------------------------
-
-# Determines if the quantity column of the IDBroker's id_table should
-# be increased automatically if requests for ids reaches a high
-# volume.
-
-torque.idbroker.cleverquantity=true
-
-# Determines whether the managers cache instances of the business objects.
-# And also whether the MethodResultCache will really cache results.
-torque.manager.useCache = true
-
-# Determines if IDBroker should prefetch IDs or not.  If set to false
-# this property has the effect of shutting off the housekeeping thread
-# that attempts to prefetch the id's.  It also sets the # of id's grabbed
-# per request to 1 regardless of the settings in the database.
-# Default: true
-torque.idbroker.prefetch = true
-
-# Controls the starting id of table entries when creating SQL for 
-# the id-table. If you have two projects that use the same id-table 
-# in the same database with different tables, make sure that they have 
-# different initialID settings and the ranges (initialID is incremented 
-# for every new table) don't overlap.
-torque.idbroker.initialId = 101 
-
-# The start value of the ID broker for supplying IDs to Torque. This value 
-# is incremented every time Torque requests ID keys from the broker. If you 
-# pre-load your table straight from SQL, make sure that you don't accidentially 
-# overlap with this setting, because Torque doesn't keep record of what IDs are 
-# already taken in the database. If you overlap, inserting new objects will fail 
-# because the ID assigned by Torque is already taken.
-torque.idBroker.initialIdValue = 100
-
-# For performance reasons, the ID Broker does not request a single ID at a time
-# but fetches a whole range and increments the current next ID Value in the ID
-# Table by this step. If you have to do lots of inserts straight in a row, increment
-# this value to get slightly better performance.
-torque.idbroker.initialIdStep = 500
-
-# IDBroker can grab its own connection from the pool to use when retrieving
-# more id's to minimize the amount of time ID_TABLE will be locked.
-# Some usage of IDBroker or assumptions made by connection pools or jdbc
-# drivers may disallow this optimization in which case the property
-# should be set to false.
-torque.idbroker.usenewconnection = true
-
-# Comment if not using shared data source factory
-torque.database.default=${turbine_database_name}
-
-
-
-
-
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/conf/TurbineConfigurationBuilder.xml b/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/conf/TurbineConfigurationBuilder.xml
deleted file mode 100644
index 4c6407e..0000000
--- a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/conf/TurbineConfigurationBuilder.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-
-<configuration>
-   <header>
-    <!-- Meta data about the resulting combined configuration -->
-  </header>
-  <override><!-- only allowed configurations are user and turbine, realtive paths   -->
-    <properties config-name="user" fileName="WEB-INF/conf/usersettings.properties" config-optional="true" config-forceCreate="true"/> 
-    <!-- xml fileName="conf/test/TurbineResources.xml"/-->
-    <properties config-name="turbine" fileName="WEB-INF/conf/TurbineResources.properties" throwExceptionOnMissing="true"/>
-   </override>
-  <additional>
-    <!-- Configuration declarations that form a union configuration, always provide a unique config-name attribute  -->
-  </additional>
-</configuration>
\ No newline at end of file
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/conf/TurbineResources.properties b/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/conf/TurbineResources.properties
deleted file mode 100644
index e24decf..0000000
--- a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/conf/TurbineResources.properties
+++ /dev/null
@@ -1,652 +0,0 @@
-#*
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-*#
-# -------------------------------------------------------------------
-#
-# This is the configuration file for Turbine.
-#
-# Note that strings containing "," (comma) characters must backslash
-# escape the comma (i.e. '\,')
-#
-# -------------------------------------------------------------------
-
-# -------------------------------------------------------------------
-#
-#  P I P E L I N E
-#
-# -------------------------------------------------------------------
-pipeline.default.descriptor = WEB-INF/conf/turbine-classic-pipeline.xml
-
-# -------------------------------------------------------------------
-#
-#  L O G 4 J - L O G G I N G
-#
-# -------------------------------------------------------------------
-
-log4j.file = WEB-INF/conf/log4j.properties
-
-# -------------------------------------------------------------------
-#
-#  M A I L  S E R V E R
-#
-# -------------------------------------------------------------------
-# Your mail server for outgoing email.
-#
-# Default: null
-# -------------------------------------------------------------------
-
-mail.server=
-
-# -------------------------------------------------------------------
-# SMTP-From header for your outgoing messages
-#
-# All failed delivery messages will be returned to this address.
-# If unset, these messages will be sent to the address in the
-# From header (standard behaviour)
-#
-# Default: null
-# -------------------------------------------------------------------
-
-mail.smtp.from=
-
-# -------------------------------------------------------------------
-#
-#  S E R V E R   D A T A
-#
-# -------------------------------------------------------------------
-# Default ServerData that can be used if asked for before the first
-# request is made.
-#
-# Defaults:
-#
-# serverdata.default.serverName=
-# serverdata.default.serverPort=80
-# serverdata.default.serverScheme=http
-# serverdata.default.scriptName=
-# serverdata.default.contextPath=
-# -------------------------------------------------------------------
-
-serverdata.default.serverName=
-serverdata.default.serverPort=80
-serverdata.default.serverScheme=http
-serverdata.default.scriptName=
-serverdata.default.contextPath=
-
-# -------------------------------------------------------------------
-#
-#  M O D U L E  C A C H I N G
-#
-# -------------------------------------------------------------------
-# This determines whether or not to cache the modules in memory.  For
-# development, turn this off.  For production, turn this on.
-#
-# Default: false
-# -------------------------------------------------------------------
-
-module.cache=false
-
-# If module.cache=true, then how large should we make the hashtables
-# by default.
-
-action.cache.size=20
-layout.cache.size=10
-navigation.cache.size=10
-page.cache.size=5
-screen.cache.size=50
-scheduledjob.cache.size=10
-
-# -------------------------------------------------------------------
-#
-#  M O D U L E  P A C K A G E S
-#
-# -------------------------------------------------------------------
-# This is the "classpath" for Turbine.  In order to locate your own
-# modules, you should add them to this path.  For example, if you have
-# com.company.actions, com.company.screens, com.company.navigations,
-# then this setting would be "com.company,org.apache.turbine.modules".
-# This path is searched in order.  For example, Turbine comes with a
-# screen module named "Login".  If you wanted to have your own screen
-# module named "Login", then you would specify the path to your
-# modules before the others.
-#
-# Note: org.apache.turbine.modules will always be added to the search
-# path.  If it is not explicitly added here, it will be added to the
-# end.
-#
-# Default: org.apache.turbine.modules
-# -------------------------------------------------------------------
-
-module.packages=${package}.modules,org.apache.turbine.modules
-
-# -------------------------------------------------------------------
-#
-#  F R A M E W O R K  S E T T I N G S
-#
-# -------------------------------------------------------------------
-# These are settings that control the behavior of the framework,
-# such as determining whether a template system is in use, what
-# the default templates and screens are and session handling settings.
-# -------------------------------------------------------------------
-
-# Used to set the template homepage if you are using a template
-# layout.  This is the template that will be displayed to the user
-# when no specific template is requested.  This is normally executed
-# as the first template the user sees when they access the system.
-#
-# Default: Index.vm
-
-template.homepage=Index.vm
-
-# This is the default screen to show to people when they first access
-# the system.  This is only used if there is no value for
-# template.homepage.  This is for use when you are not using a
-# templating system such as Velocity or JSP.
-#
-# Default: Login
-
-screen.homepage=
-
-# This is the template that is shown on an incorrect login attempt.
-# Setting this property will override any value of screen.login specified
-# below.
-#
-# Default: Login.vm
-
-template.login=Login.vm
-
-# This is the page that is shown on an incorrect login attempt.  It is
-# referenced in the LoginUser action. This is only used if there is no value
-# for template.login.  This is for use when you are not using a
-# templating system such as Velocity or JSP.
-#
-# Default: Login
-
-screen.login=
-
-# This is the template that is used by the respective Template based
-# ErrorScreen for displaying the error. If you are not using a Template based
-# ErrorScreen, then this is ignored.
-#
-# Default: Error.vm
-
-template.error=Error.vm
-
-# This is the default error screen.
-#
-# Default: VelocityErrorScreen
-
-screen.error=VelocityErrorScreen
-
-# This is the screen that is displayed when the user's web page is in
-# an invalid state.
-#
-# Default: error.InvalidState
-
-screen.invalidstate=error.InvalidState
-
-# Set the components of the default Doctype for use in html documents.
-#
-# Defaults: There are no defaults - if default.html.doctype.root.element is not
-#           set then no default doctype will be available.
-
-default.html.doctype.root.element=HTML
-default.html.doctype.identifier=-//W3C//DTD HTML 4.01 Transitional//EN
-default.html.doctype.url=http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd
-
-# This is the default action to log a user in.  If you write your own
-# implementation of the login action, make sure that you change this
-# to reflect the new name.
-
-action.login=LoginUserIntake
-
-# This is the default action to log a user out. If you write your own
-# implementation of the logout action, make sure that you change this
-# to reflect the new name.
-
-action.logout=LogoutUser
-
-# This is the default action to validate whether or not a session is
-# valid.  For example, if you want to make sure if a user has already
-# logged in or not.
-#
-# Default: SessionValidator
-
-action.sessionvalidator=sessionvalidator.TemplateSessionValidator
-
-#
-# Use this setting if you want your application to display the Login Screen
-# as first action and does not allow any operation before the user has
-# logged in
-#
-# action.sessionvalidator=sessionvalidator.TemplateSecureSessionValidator
-
-# This is the timeout in seconds for sessions. If left commented out, the
-# servlet container's default timeout will be left as is.
-
-# session.timeout=1800
-
-# This is the default action that builds up the AccessControlList for
-# the individual users session.
-
-action.accesscontroller=AccessController
-
-#
-# Set this value to true if you want to be able to submit multiple
-# events to an Action by doing eventSubmit_do<action> and consider
-# only events that have a non-empty, non-zero value. This is useful
-# if you submit your form with JavaScript
-#
-action.eventsubmit.needsvalue = false
-
-# If the web container does not supply an explicit encoding for the
-# request data, assume that is has this encoding. If you use e.g.
-# UTF-8 or ISO-8859-<something>, change this parameter to keep your
-# special characters. Default is ISO-8859-1
-input.encoding=UTF-8
-
-
-# -------------------------------------------------------------------
-#
-#  J N D I  C O N T E X T S
-#
-# -------------------------------------------------------------------
-
-# This indicates whether Turbine should try to create JNDI contexts.
-#
-# Default: false
-#
-# contexts=true
-
-# These are the JNDI context properties.  Each context's properties
-# are defined by the properties beginning with context.name.
-#
-# Default: none
-#
-# Example: The following will create a JNDI context named "name" in
-# the data.contexts Hashtable.  It will point at the RMI registry on
-# localhost running on port 1099, and will use
-# com.sun.jndi.rmi.registry.RegistryContextFactory as the initial
-# context factory:
-#
-# context.name.java.naming.provider.url=rmi://localhost:1099
-# context.name.java.naming.factory.initial=com.sun.jndi.rmi.registry.RegistryContextFactory
-
-# -------------------------------------------------------------------
-#
-#  M E S S A G E S
-#
-# -------------------------------------------------------------------
-# Note that strings containing "," (comma) characters must backslash
-# escape the comma (i.e. '\,')
-
-# The message that can be displayed before a user logs in.
-
-login.message=Thank you for your visit. Please log into the system.
-
-# The message that can be displayed when no screen is defined.
-
-login.message.noscreen=There has been an error. Your session is valid but the screen variable is not defined.
-
-# The message that can be displayed when a user enters an incorrect
-# password or username.
-
-login.error=Sorry your username or password is incorrect!
-
-# The message that can be displayed when a user logs out.
-
-logout.message=Thank you for using the system. Please come back soon.
-
-# -------------------------------------------------------------------
-#
-#  S E C U R E  S O C K E T S  L A Y E R
-#
-# -------------------------------------------------------------------
-# Whether the web server is able to use SSL.  Links in Turbine can
-# check this property to determine if SSL can be used.
-#
-# Default: true
-# -------------------------------------------------------------------
-
-use.ssl=true
-
-# -------------------------------------------------------------------
-#
-#  S E R V I C E S
-#
-# -------------------------------------------------------------------
-# Classes for Turbine Services should be defined here.
-# Format: services.[name].classname=[implementing class]
-#
-# To specify properties of a service use the following syntax:
-# service.[name].[property]=[value]
-#
-# The order that these services is listed is important! The
-# order that is stated here is the order in which the services
-# will be initialized. Keep this is mind if you have services
-# that depend on other services during initialization.
-# -------------------------------------------------------------------
-services.AvalonComponentService.classname=org.apache.turbine.services.avaloncomponent.TurbineYaafiComponentService
-
-services.RunDataService.classname=org.apache.turbine.services.rundata.TurbineRunDataService
-services.ServletService.classname=org.apache.turbine.services.servlet.TurbineServletService
-services.AssemblerBrokerService.classname=org.apache.turbine.services.assemblerbroker.TurbineAssemblerBrokerService
-services.PullService.classname=org.apache.turbine.services.pull.TurbinePullService
-services.TemplateService.classname=org.apache.turbine.services.template.TurbineTemplateService
-services.UIService.classname = org.apache.turbine.services.ui.TurbineUIService
-services.VelocityService.classname=org.apache.turbine.services.velocity.TurbineVelocityService
-services.JsonRpcService.classname=org.apache.turbine.services.jsonrpc.TurbineJsonRpcService
-
-# -------------------------------------------------------------------
-#
-#  R U N   D A T A   S E R V I C E
-#
-# -------------------------------------------------------------------
-# Default implementations of base interfaces for request processing.
-# Additional configurations can be defined by using other keys
-# in the place of the <default> key.
-# -------------------------------------------------------------------
-
-services.RunDataService.default.run.data=org.apache.turbine.services.rundata.DefaultTurbineRunData
-services.RunDataService.default.parameter.parser=org.apache.fulcrum.parser.DefaultParameterParser
-services.RunDataService.default.cookie.parser=org.apache.fulcrum.parser.DefaultCookieParser
-
-# -------------------------------------------------------------------
-#
-#  A S S E M B L E R  B R O K E R  S E R V I C E
-#
-# -------------------------------------------------------------------
-# A list of AssemblerFactory classes that will be registered
-# with TurbineAssemblerBrokerService
-# -------------------------------------------------------------------
-
-services.AssemblerBrokerService.screen=org.apache.turbine.services.assemblerbroker.util.java.JavaScreenFactory
-services.AssemblerBrokerService.action=org.apache.turbine.services.assemblerbroker.util.java.JavaActionFactory
-services.AssemblerBrokerService.layout=org.apache.turbine.services.assemblerbroker.util.java.JavaLayoutFactory
-services.AssemblerBrokerService.page=org.apache.turbine.services.assemblerbroker.util.java.JavaPageFactory
-services.AssemblerBrokerService.navigation=org.apache.turbine.services.assemblerbroker.util.java.JavaNavigationFactory
-services.AssemblerBrokerService.scheduledjob=org.apache.turbine.services.assemblerbroker.util.java.JavaScheduledJobFactory
-
-# -------------------------------------------------------------------
-#
-#  T E M P L A T E  S E R V I C E
-#
-# -------------------------------------------------------------------
-
-# Roughly, the number of templates in each category.
-#
-# Defaults: layout=2, navigation=10, screen=50
-
-services.TemplateService.layout.cache.size=2
-services.TemplateService.navigation.cache.size=10
-services.TemplateService.screen.cache.size=50
-
-# -------------------------------------------------------------------
-#
-#  P U L L  S E R V I C E
-#
-# -------------------------------------------------------------------
-# These are the properties for the Pull Service, the service
-# that works in conjunction with the Turbine Pull Model API.
-# -------------------------------------------------------------------
-
-services.PullService.earlyInit= true
-
-# This determines whether the non-request tools are refreshed
-# on each request (request tools aren't ever, because they're
-# instantiated for the request only anyway).
-
-#services.PullService.tools.per.request.refresh=true
-
-# Path to the resources of the application tools, relative to the
-# application root
-
-services.PullService.tools.resources.dir=/resources/
-
-# These are tools that are placed in the context by the service
-# These tools will be made available to all your
-# templates. You list the tools in the following way:
-#
-# tool.<scope>.<id> = <classname>
-#
-# <scope>      is the tool scope: global, request, session
-#              or persistent (see below for more details)
-# <id>         is the name of the tool in the context
-#
-# You can configure the tools in this way:
-# tool.<id>.<parameter> = <value>
-#
-# So if you find "global", "request", "session" or "persistent" as second
-# part, it is a configuration to put a tool into the toolbox, else it is a
-# tool specific configuration.
-#
-# For example:
-#
-# tool.global.ui    = org.apache.turbine.util.pull.tools.UITool
-# tool.global.mm    = org.apache.turbine.util.pull.MessageManager
-# tool.request.link = org.apache.turbine.services.pull.tools.TemplateLink
-# tool.request.page = org.apache.turbine.util.template.HtmlPageAttributes
-#
-# Then:
-#
-# tool.ui.skin = default
-#
-# configures the value of "skin" for the "ui" tool.
-#
-# Tools are accessible in all templates by the <id> given
-# to the tool. So for the above listings the UITool would
-# be available as $ui, the MessageManager as $mm, the TemplateLink
-# as $link and the HtmlPageAttributes as $page.
-#
-# You should avoid using tool names called "global", "request",
-# "session" or "persistent" because of clashes with the possible Scopes.
-#
-# Scopes:
-#
-#   global:     tool is instantiated once and that instance is available
-#               to all templates for all requests. Tool must be threadsafe.
-#
-#   request:    tool is instantiated once for each request (although the
-#               PoolService is used to recycle instances). Tool need not
-#               be threadsafe.
-#
-#   session:    tool is instantiated once for each user session, and is
-#               stored in the user's temporary hashtable. Tool should be
-#               threadsafe.
-#
-#   authorized: tool is instantiated once for each user session once the
-#               user logs in. After this, it is a normal session tool.
-#
-# Defaults: none
-
-tool.request.link=org.apache.turbine.services.pull.tools.TemplateLink
-tool.request.page=org.apache.turbine.util.template.HtmlPageAttributes
-tool.request.content=org.apache.turbine.services.pull.tools.ContentTool
-
-# Localization and Internationalization
-tool.request.l10n=org.apache.turbine.services.localization.LocalizationTool
-
-# This pull tool is to allow for easy formatting of Date object into Strings
-tool.request.dateFormatter=org.apache.turbine.services.pull.util.DateFormatter
-
-# Use this tool if you need a place to store data that will persist between
-# requests.  Any data stored using this tool will be stored in the session.
-tool.session.sessionData=org.apache.turbine.services.pull.util.SessionData
-
-# These are intake tools.
-tool.request.intake=org.apache.turbine.services.intake.IntakeTool
-
-# This is a tool that allows access to the scheduler service.
-# tool.request.scheduler=org.apache.turbine.services.SchedulerTool
-
-# The UITool will allow you to skin your Turbine application using simple
-# properties files that are located in the WEBAPP/resources/ directory
-# hierarchy.
-tool.global.ui=org.apache.turbine.services.pull.tools.UITool
-
-# Path to the UI resources, relative to the resources directory defined above
-# tool.ui.dir.skin=/ui/skins
-
-# Path to the images of a skin, relative to the skin directory defined above
-# tool.ui.dir.image=/images
-
-# Default CSS file for a skin
-# tool.ui.css=skin.css
-
-# Default skin name
-# tool.ui.skin=default
-
-#
-# The ui tool normally returns absolute URIs.
-# Setting this property to true allows you to change the behavior if you
-# want only relative URIs (e.g. if you run behind a reverse proxy or a load
-# balancer).
-tool.ui.want.relative=true
-
-#
-# The content tool can put its URIs through the Servlet container,
-# which might attach things like the jsessionid even to URIs that
-# are not served by the container.
-#
-# The default behavior was not to put these through the container.
-#
-# Set this to true if you need things like jsessionid attached to all
-# links generated from the $content pull tool.
-#
-tool.content.want.encoding = false
-
-#
-# Both the link and the content tool normally return absolute URIs
-# You can change this by exchanging the tool classes but this is not
-# really recommended. Setting these properties to true allow you
-# to change the behaviour if you want only relative URIs (e.g. if you
-# run behind a reverse proxy or a load balancer).
-#
-tool.content.want.relative = true
-tool.link.want.relative = true
-
-# -------------------------------------------------------------------
-#
-#  V E L O C I T Y  S E R V I C E
-#
-# -------------------------------------------------------------------
-
-# The location of Velocity configuration file, relative to webapp root
-# These properties will override the default properties set by Velocity.
-# You should specify the path to the templates directories as well as
-# the path to the log file and they should also be relative to webapp root
-
-services.VelocityService.template.extension=vm
-services.VelocityService.default.page = VelocityPage
-services.VelocityService.default.screen = VelocityScreen
-services.VelocityService.default.layout = VelocityOnlyLayout
-services.VelocityService.default.navigation = VelocityNavigation
-services.VelocityService.default.error.screen = VelocityErrorScreen
-services.VelocityService.default.layout.template = Default.vm
-
-#
-# Set this to true to catch Velocity Errors and display them in the log file
-services.VelocityService.catch.errors = true
-
-services.VelocityService.input.encoding=UTF-8
-
-#
-# Class Path Loader, Turbine jar
-services.VelocityService.velocimacro.library = macros/TurbineMacros.vm,macros/applicationMacros.vm
-
-# Set the following line to true to cause velocity to automatically reload
-# library macro files if they change.  This is useful for debugging.
-services.VelocityService.velocimacro.library.autoreload = true
-
-services.VelocityService.resource.loader = file
-services.VelocityService.file.resource.loader.description = Velocity File Resource Loader
-services.VelocityService.file.resource.loader.class = org.apache.velocity.runtime.resource.loader.FileResourceLoader
-services.VelocityService.file.resource.loader.path = /templates
-services.VelocityService.file.resource.loader.cache = false
-services.VelocityService.file.resource.loader.modificationCheckInterval = 2
-
-services.VelocityService.resource.loader = classpath
-services.VelocityService.classpath.resource.loader.description = Velocity Classpath Resource Loader
-services.VelocityService.classpath.resource.loader.class = org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader
-
-# -------------------------------------------------------------------
-#
-#  S C H E D U L E R  S E R V I C E
-#
-# -------------------------------------------------------------------
-
-#
-# Set enabled to true to start the scheduler.  The scheduler can be
-# stopped and started after Turbine has been initialized.  See the
-# javadocs for org.apache.turbine.services.schedule.TurbineScheduler
-# for the methods calls.
-#
-# Default = false
-#
-
-services.SchedulerService.enabled=false
-
-# Determines if the scheduler service should be initialized early.  This
-# Should always be set to true!!!!
-
-services.SchedulerService.earlyInit=true
-
-# -------------------------------------------------------------------
-#
-#  S E C U R I T Y  S E R V I C E
-#
-# -------------------------------------------------------------------
-
-# Configure Torque Security Service
-services.SecurityService.classname=org.apache.turbine.services.security.DefaultSecurityService
-services.SecurityService.user.manager = org.apache.turbine.services.security.DefaultUserManager
-
-services.SecurityService.user.class=org.apache.fulcrum.security.model.turbine.entity.impl.TurbineUserImpl
-
-
-
-# -------------------------------------------------------------------
-#
-#  A V A L O N   C O M P O N E N T   S E R V I C E
-#
-# -------------------------------------------------------------------
-# Components implementing the Avalon lifecycle interfaces can be loaded,
-# configured and initialized by Turbine
-# -------------------------------------------------------------------
-
-#
-# Name and location to the configuration file for the components.
-#
-services.AvalonComponentService.containerConfiguration = /WEB-INF/conf/containerConfiguration.xml
-#
-# Name and location to the configuration file for the component roles.
-#
-#services.AvalonComponentService.componentRoles =  /WEB-INF/conf/roleConfiguration.xml
-#
-#services.AvalonComponentService.componentConfiguration = /WEB-INF/conf/componentConfiguration.xml
-
-# -------------------------------------------------------------------
-#
-#  A D D I T I O N A L  P R O P E R T I E S
-#
-# -------------------------------------------------------------------
-# The full path name to an additional properties file. Properties in
-# this file will be included in this property set. Duplicate name
-# values will be replaced, so be careful.
-#
-# Default: none
-# -------------------------------------------------------------------
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/conf/componentConfiguration.xml b/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/conf/componentConfiguration.xml
deleted file mode 100644
index 7502ca4..0000000
--- a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/conf/componentConfiguration.xml
+++ /dev/null
@@ -1,124 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-#*
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-
-   http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
-*#
-<componentConfig>
-    <!-- Torque Component -->
-    <torque>
-       <configfile>/WEB-INF/conf/Torque.properties</configfile>
-    </torque>
-    <cache cacheInitialSize="20" cacheCheckFrequency="5"/>
-    <mimetype/>
-    <crypto>
-      <algorithm>
-        <unix>org.apache.fulcrum.crypto.provider.UnixCrypt</unix>
-        <clear>org.apache.fulcrum.crypto.provider.ClearCrypt</clear>
-        <java>org.apache.fulcrum.crypto.provider.JavaCrypt</java>
-        <oldjava>org.apache.fulcrum.crypto.provider.OldJavaCrypt</oldjava>
-      </algorithm>
-    </crypto>
-    <localization>
-      <bundles>
-        <bundle>${package}.L10N</bundle>
-      </bundles>
-    </localization>
-    <!-- Disable if you experience startup problems with Java8 -->
-    <intake>
-      <serialDataPath>WEB-INF/appData.ser</serialDataPath>
-      <xmlPaths>
-        <xmlPath>WEB-INF/conf/${turbine_intake_file}</xmlPath>
-      </xmlPaths>
-    </intake>
-    <factory/>
-    <pool/>
-    <parser>
-        <parameterEncoding>utf-8</parameterEncoding>
-        <automaticUpload>true</automaticUpload>
-    </parser>
-    <upload repository="/tmp" sizeMax="1048576" sizeThreshold="10240"/>
-        <!-- These components belong to the Fulcrum-Security services -->        
-    <securityService/>
-    <authenticator/>
-    <modelManager/>
-    <aclFactory/>
-    
-    <!--  
-       Fulcrum Components, e.g. json, XmlRpcServerComponent, cft. Fulcrum Component Configurations 
-     -->
-       
-     
-     <!--  
-     Pure Fulcrum Model
-    -->
-    <!--
-     <userManager> 
-       <className>org.apache.fulcrum.security.torque.om.TorqueTurbineUser</className>
-    </userManager>
-    <groupManager>
-        <className>org.apache.fulcrum.security.torque.om.TorqueTurbineGroup</className>
-    </groupManager>
-    <roleManager>
-        <className>org.apache.fulcrum.security.torque.om.TorqueTurbineRole</className>
-    </roleManager>
-    <permissionManager>
-        <className>org.apache.fulcrum.security.torque.om.TorqueTurbinePermission</className>
-    </permissionManager>
-    -->
- 
-     <!-- 
-     Default classes implementing org.apache.fulcrum.security.model.turbine.entity interfaces 
-     -->
-    <!--userManager>
-        <className>org.apache.fulcrum.security.model.turbine.entity.impl.TurbineUserImpl</className>
-    </userManager>
-    <groupManager>
-        <className>org.apache.fulcrum.security.model.turbine.entity.impl.TurbineGroupImpl</className>
-    </groupManager>
-    <roleManager>
-        <className>org.apache.fulcrum.security.model.turbine.entity.impl.TurbineRoleImpl</className>
-    </roleManager>
-    <permissionManager>
-        <className>org.apache.fulcrum.security.model.turbine.entity.impl.TurbinePermissionImpl</className>
-    </permissionManager -->
-    
-    <!-- 
-     Custom Turbine ORM Torque classes could not yet be used: 
-     - requires Torque 4.1 or if using Torque 4.0 reqires manually adding the interfaces in T-classes
-     - requires attribute baseClass in fulcrum-turbine-schema.xml table elements set to appropriate org.apache.fulcrum.security.model.turbine.entity interfaces
-     - requires attribute peerClass in fulcrum-turbine-schema.xml table elements set to org.apache.fulcrum.security.torque.peer.TorqueTurbinePeer 
-     -->
-     
-     <userManager>
-     <className>${package}.om.TurbineUser</className>
-        <peerClassName>${package}.om.TurbineUserPeerImpl</peerClassName>
-    </userManager>
-    <groupManager>
-        <className>${package}.om.TurbineGroup</className>
-        <peerClassName>${package}.om.TurbineGroupPeerImpl</peerClassName>
-    </groupManager>
-    <roleManager>
-        <className>${package}.om.TurbineRole</className>
-        <peerClassName>${package}.om.TurbineRolePeerImpl</peerClassName>
-    </roleManager>
-    <permissionManager>
-        <className>${package}.om.TurbinePermission</className>
-        <peerClassName>${package}.om.TurbinePermissionPeerImpl</peerClassName>
-    </permissionManager>
-     <peerManager/>
-     
-</componentConfig>
\ No newline at end of file
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/conf/containerConfiguration.xml b/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/conf/containerConfiguration.xml
deleted file mode 100644
index f676999..0000000
--- a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/conf/containerConfiguration.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-#*
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-
-   http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
-*#
-<fulcrum-yaafi>
-	<containerFlavour>yaafi</containerFlavour>
-	<containerClazzName>org.apache.fulcrum.yaafi.framework.container.ServiceContainerImpl</containerClazzName>
-	<componentRoles>
-		<location>/WEB-INF/conf/roleConfiguration.xml</location>
-		<isEncrypted>false</isEncrypted>
-	</componentRoles>
-	<componentConfiguration>
-		<location>/WEB-INF/conf/componentConfiguration.xml</location>
-		<isEncrypted>false</isEncrypted>
-	</componentConfiguration>
-	<parameters>
-		<location>/WEB-INF/conf/parameters.properties</location>
-		<isEncrypted>false</isEncrypted>
-	</parameters>
-</fulcrum-yaafi>
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/conf/intake.xml b/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/conf/intake.xml
deleted file mode 100644
index 7c00de2..0000000
--- a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/conf/intake.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-#*
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-
-   http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
-*#
-
-<!-- ======================================================================== -->
-<!--                                                                          -->
-<!--  Default Intake file for Turbine Skeleton                                -->
-<!--                                                                          -->
-<!-- $Id: intake.xml 615350 2008-01-25 21:28:10Z tv $                         -->
-<!--                                                                          -->
-<!-- ======================================================================== -->
-
-<input-data xmlns="http://turbine.apache.org/schema/intake/4.0"
-    basePackage="${package}.">
-    <group name="example" key="example" mapToObject="om.Table1">
-        <field name="TestCol2" key="testCol2" type="String"/>
-    </group>
-    <group name="Login" key="login">
-    <field name="Username" key="u" type="String">
-      <!-- l10n keys -->
-      <rule name="required" value="true">username_required_msg</rule>
-      <rule name="minLength" value="4">username_min_length_msg</rule>
-      <!--rule name="mask" value=".+@.+\..+">username_mask_msg</rule-->
-    </field>
-    <field name="Password" key="p" type="String">
-      <rule name="required" value="true">password_msg</rule>
-    </field>
-</group>
-</input-data>
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/conf/log4j.properties b/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/conf/log4j.properties
deleted file mode 100644
index f29d85a..0000000
--- a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/conf/log4j.properties
+++ /dev/null
@@ -1,137 +0,0 @@
-#*
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-*#
-##set($dollar = '$')
-##macro (var $label)${dollar}{${label}}#end
-# Turbine logging configuration
-#
-# If we don't know the logging facility, put it into the
-# turbine.log
-#
-log4j.rootLogger = INFO, app, console
-
-#
-# App log
-#
-log4j.logger.${package} = DEBUG, app
-log4j.additivity.${package} = false
-
-#
-# Avalon log
-#
-log4j.logger.avalon = DEBUG, app
-log4j.additivity.avalon = false
-
-#
-# Scheduler Category
-#
-log4j.logger.scheduler = INFO, app
-log4j.additivity.scheduler = false
-
-#
-# sql log
-# allows TRACE
-log4j.logger.org.apache.torque.util = DEBUG, sql, console
-log4j.additivity.org.apache.torque.util = false
-
-#
-# Torque log
-# allows TRACE
-log4j.logger.org.apache.torque = DEBUG, torque
-log4j.additivity.org.apache.torque = false
-
-#
-# Turbine goes into "turbine" loggers
-#
-log4j.logger.org.apache.turbine = INFO, turbine
-log4j.additivity.org.apache.turbine = false
-
-#
-# Velocity log
-#
-log4j.logger.velocity = INFO, velocity
-log4j.additivity.velocity = false
-
-# #######################################################################
-#
-# Logfile definitions
-#
-# #######################################################################
-
-#
-# Application.log
-#
-log4j.appender.app = org.apache.log4j.RollingFileAppender
-log4j.appender.app.MaxFileSize=5MB
-log4j.appender.app.MaxBackupIndex=5
-log4j.appender.app.file = ${applicationRoot}/logs/application.log
-log4j.appender.app.layout = org.apache.log4j.PatternLayout
-log4j.appender.app.layout.conversionPattern = %d [%t] %-5p %c - %m%n
-log4j.appender.app.append = false
-
-#
-# turbine.log
-#
-log4j.appender.turbine = org.apache.log4j.RollingFileAppender
-log4j.appender.turbine.MaxFileSize=5MB
-log4j.appender.turbine.MaxBackupIndex=5
-log4j.appender.turbine.file = ${applicationRoot}/logs/turbine.log
-log4j.appender.turbine.layout = org.apache.log4j.PatternLayout
-log4j.appender.turbine.layout.conversionPattern = %d [%t] %-5p %c - %m%n
-log4j.appender.turbine.append = false
-
-#
-# sql.log
-#
-log4j.appender.sql = org.apache.log4j.RollingFileAppender
-log4j.appender.sql.file = ${applicationRoot}/logs/sql.log
-log4j.appender.sql.MaxFileSize=5MB
-log4j.appender.sql.MaxBackupIndex=5
-log4j.appender.sql.layout = org.apache.log4j.PatternLayout
-log4j.appender.sql.layout.conversionPattern = %d [%t] %-5p %c - %m%n
-log4j.appender.sql.append = true
-
-#
-# console
-#
-log4j.appender.console = org.apache.log4j.ConsoleAppender
-log4j.appender.console.layout = org.apache.log4j.PatternLayout
-log4j.appender.console.layout.conversionPattern = %d [%t] %-5p %C{1} - %m%n
-
-#
-# torque.log
-#
-log4j.appender.torque = org.apache.log4j.RollingFileAppender
-log4j.appender.torque.MaxFileSize=5MB
-log4j.appender.torque.MaxBackupIndex=5
-log4j.appender.torque.file = ${applicationRoot}/logs/torque.log
-log4j.appender.torque.layout = org.apache.log4j.PatternLayout
-log4j.appender.torque.layout.conversionPattern = %d [%t] %-5p %c - %m%n
-log4j.appender.torque.append = false
-
-#
-# Velocity gets configured to write its output onto the velocity
-# category.
-#
-log4j.appender.velocity = org.apache.log4j.RollingFileAppender
-log4j.appender.velocity.MaxFileSize=5MB
-log4j.appender.velocity.MaxBackupIndex=5
-log4j.appender.velocity.file = ${applicationRoot}/logs/velocity.log
-log4j.appender.velocity.layout = org.apache.log4j.PatternLayout
-log4j.appender.velocity.layout.conversionPattern = %d [%t] %-5p %c - %m%n
-log4j.appender.velocity.append = false
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/conf/roleConfiguration.xml b/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/conf/roleConfiguration.xml
deleted file mode 100644
index a0886a4..0000000
--- a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/conf/roleConfiguration.xml
+++ /dev/null
@@ -1,179 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-#*
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-
-   http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
-*#
-<role-list>
-    <!-- Torque Component Role Configuration -->
-    <role name="org.apache.torque.avalon.Torque"
-          shorthand="torque"
-          default-class="org.apache.torque.avalon.TorqueComponent"
-          early-init = "true" />
-        
-    <role
-        name="org.apache.fulcrum.cache.GlobalCacheService"
-        shorthand="cache"
-        default-class="org.apache.fulcrum.cache.impl.DefaultGlobalCacheService"/>
-
-    <role
-        name="org.apache.fulcrum.mimetype.MimeTypeService"
-        shorthand="mimetype"
-        default-class="org.apache.fulcrum.mimetype.DefaultMimeTypeService"/>
-
-    <role
-        name="org.apache.fulcrum.crypto.CryptoService"
-        shorthand="crypto"
-        default-class="org.apache.fulcrum.crypto.DefaultCryptoService"/>
-
-    <role
-        name="org.apache.fulcrum.localization.LocalizationService"
-        shorthand="localization"
-        default-class="org.apache.fulcrum.localization.DefaultLocalizationService"/>
-
-	<!-- Disable if you experience startup problems with Java8 -->
-    <role
-        name="org.apache.fulcrum.intake.IntakeService"
-        shorthand="intake"
-        default-class="org.apache.fulcrum.intake.IntakeServiceImpl"/>
-
-    <role
-        name="org.apache.fulcrum.factory.FactoryService"
-        shorthand="factory"
-        default-class="org.apache.fulcrum.factory.DefaultFactoryService"/>
-
-    <role
-        name="org.apache.fulcrum.pool.PoolService"
-        shorthand="pool"
-        default-class="org.apache.fulcrum.pool.DefaultPoolService"/>
-
-    <role
-        name="org.apache.fulcrum.upload.UploadService"
-        shorthand="upload"
-        default-class="org.apache.fulcrum.upload.DefaultUploadService"/>
-
-    <role
-        name="org.apache.fulcrum.parser.ParserService"
-        shorthand="parser"
-        default-class="org.apache.fulcrum.parser.DefaultParserService"/>
-       
-    <role
-        name="org.apache.fulcrum.xslt.XSLTService"
-        shorthand="xslt"
-        default-class="org.apache.fulcrum.xslt.DefaultXSLTService"/>
-        
-         <!-- These components belong to the Fulcrum-Security services -->        
-    <role
-        name="org.apache.fulcrum.security.SecurityService"
-        shorthand="securityService"
-        default-class="org.apache.fulcrum.security.BaseSecurityService"/>
-
-    <role
-        name="org.apache.fulcrum.security.UserManager"
-        shorthand="userManager"
-        early-init="true"
-        default-class="${package}.fulcrum.security.torque.turbine.TorqueTurbineUserManagerImpl"/>
-
-    <role
-        name="org.apache.fulcrum.security.GroupManager"
-        shorthand="groupManager"
-        default-class="${package}.fulcrum.security.torque.turbine.TorqueTurbineGroupManagerImpl"/>
-
-    <role
-        name="org.apache.fulcrum.security.RoleManager"
-        shorthand="roleManager"
-        default-class="${package}.fulcrum.security.torque.turbine.TorqueTurbineRoleManagerImpl"/>
-
-    <role
-        name="org.apache.fulcrum.security.PermissionManager"
-        shorthand="permissionManager"
-        default-class="org.apache.fulcrum.security.memory.MemoryPermissionManagerImpl"/>
-        
-    <role
-        name="org.apache.fulcrum.security.torque.peer.PeerManager"
-        shorthand="peerManager"
-        default-class="org.apache.fulcrum.security.torque.peer.PeerManagerDefaultImpl"/>
-        
-    <!-- optionally five memory managers : remove later and .. -->
-   <!-- 
-    <role
-        name="org.apache.fulcrum.security.UserManager"
-        shorthand="userManager"
-        early-init="true"
-        default-class="org.apache.fulcrum.security.memory.turbine.MemoryTurbineUserManagerImpl"/>
-
-    <role
-        name="org.apache.fulcrum.security.GroupManager"
-        shorthand="groupManager"
-        default-class="org.apache.fulcrum.security.memory.MemoryGroupManagerImpl"/>
-
-    <role
-        name="org.apache.fulcrum.security.RoleManager"
-        shorthand="roleManager"
-        default-class="org.apache.fulcrum.security.memory.MemoryRoleManagerImpl"/>
-
-    <role
-        name="org.apache.fulcrum.security.PermissionManager"
-        shorthand="permissionManager"
-        default-class="org.apache.fulcrum.security.memory.MemoryPermissionManagerImpl"/>
-     -->
-
-    <role
-        name="org.apache.fulcrum.security.ModelManager"
-        shorthand="modelManager"
-        default-class="org.apache.fulcrum.security.memory.turbine.MemoryTurbineModelManagerImpl"/>
-
-    <role
-        name="org.apache.fulcrum.security.authenticator.Authenticator"
-        shorthand="authenticator"
-        default-class="org.apache.fulcrum.security.authenticator.TextMatchAuthenticator"/>
-
-    <role
-        name="org.apache.fulcrum.security.model.ACLFactory"
-        shorthand="aclFactory"
-        default-class="org.apache.fulcrum.security.model.turbine.TurbineACLFactory"/>
-        
-    <!-- use torque managers for database mysql et al. -->
-    <!--   <role
-        name="org.apache.fulcrum.security.UserManager"
-        shorthand="userManager"
-        early-init="true"
-        default-class="org.apache.fulcrum.security.torque.turbine.TorqueTurbineUserManagerImpl"/>
-    <role
-        name="org.apache.fulcrum.security.GroupManager"
-        shorthand="groupManager"
-        default-class="org.apache.fulcrum.security.torque.turbine.TorqueTurbineGroupManagerImpl"/>
-    <role
-        name="org.apache.fulcrum.security.RoleManager"
-        shorthand="roleManager"
-        default-class="org.apache.fulcrum.security.torque.turbine.TorqueTurbineRoleManagerImpl"/>
-    <role
-        name="org.apache.fulcrum.security.PermissionManager"
-        shorthand="permissionManager"
-        default-class="org.apache.fulcrum.security.torque.turbine.TorqueTurbinePermissionManagerImpl"/>
-    <role
-        name="org.apache.fulcrum.security.ModelManager"
-        shorthand="modelManager"
-        default-class="org.apache.fulcrum.security.torque.turbine.TorqueTurbineModelManagerImpl"/-->
-            
-     <!-- role
-        name="org.apache.fulcrum.json.JsonService"
-        shorthand="json"
-        default-class="org.apache.fulcrum.json.jackson.Jackson2MapperService"/-->
-
-    <!-- Add your services here -->
-        
-</role-list>
\ No newline at end of file
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/conf/turbine-classic-pipeline.xml b/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/conf/turbine-classic-pipeline.xml
deleted file mode 100644
index 1cb9053..0000000
--- a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/conf/turbine-classic-pipeline.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-
-   http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
--->
-<org.apache.turbine.pipeline.TurbinePipeline>
-  <valves>
-    <org.apache.turbine.pipeline.DetermineActionValve/>
-    <org.apache.turbine.pipeline.DetermineTargetValve/>
-    <org.apache.turbine.pipeline.DefaultSessionTimeoutValve/>
-    <org.apache.turbine.pipeline.DefaultLoginValve/>
-    <org.apache.turbine.pipeline.DefaultSessionValidationValve/>
-    <org.apache.turbine.pipeline.DefaultACLCreationValve/>
-    <org.apache.turbine.pipeline.ExecutePageValve/>
-    <org.apache.turbine.pipeline.CleanUpValve/>
-    <org.apache.turbine.pipeline.DetermineRedirectRequestedValve/>
-  </valves>
-</org.apache.turbine.pipeline.TurbinePipeline>
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/conf/usersettings.properties b/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/conf/usersettings.properties
deleted file mode 100644
index e69de29..0000000
--- a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/conf/usersettings.properties
+++ /dev/null
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/web.xml b/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/web.xml
deleted file mode 100644
index 7241e9d..0000000
--- a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/web.xml
+++ /dev/null
@@ -1,106 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-
-   http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
--->
-<web-app id="WebApp_ID" version="2.5" 
-    xmlns="http://java.sun.com/xml/ns/j2ee" 
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
-    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/javaee/web-app_2_5.xsd">
-<!-- ======================================================================== -->
-<!--                                                                          -->
-<!-- Web Application descriptor                                               -->
-<!--                                                                          -->
-<!-- ======================================================================== -->
-
-<!-- ======================================================================== -->
-<!--                                                                          -->
-<!-- Uncomment the following block if you want to use the Session Service     -->
-<!--                                                                          -->
-<!-- ======================================================================== -->
-<!--
-  <listener>
-    <listener-class>org.apache.turbine.services.session.SessionListener</listener-class>
-  </listener>
--->
-
-  <servlet>
-    <description>${turbine_app_name}</description>
-    <servlet-name>Turbine</servlet-name>
-    <servlet-class>org.apache.turbine.Turbine</servlet-class>
-    <init-param>
-      <param-name>applicationRoot</param-name>
-      <param-value>webContext</param-value>
-    </init-param>
-    <init-param>
-      <param-name>loggingRoot</param-name>
-      <param-value>/.</param-value>
-    </init-param>
-    <init-param>
-      <param-name>properties</param-name>
-      <param-value>WEB-INF/conf/TurbineResources.properties</param-value>
-    </init-param>
-    <load-on-startup>1</load-on-startup>
-  </servlet>
-
-  <servlet-mapping>
-    <servlet-name>Turbine</servlet-name>
-    <url-pattern>/app/*</url-pattern>
-  </servlet-mapping>
-
-<!-- ======================================================================== -->
-<!--                                                                          -->
-<!-- Redirect the home page of the application to the turbine servlet         -->
-<!--                                                                          -->
-<!-- ======================================================================== -->
-
-  <welcome-file-list>
-    <welcome-file>app</welcome-file>
-  </welcome-file-list>
-  
-  
- <!-- ======================================================================== -->
-<!--                                                                          -->
-<!-- JNDI Ressource                                                           -->
-<!-- ======================================================================== -->
-  
-   <resource-ref>
-    <res-ref-name>${turbine_database_jndipath}</res-ref-name>
-    <res-type>javax.sql.DataSource</res-type>
-    <res-auth>Container</res-auth>
-  </resource-ref>
-
-<!-- ======================================================================== -->
-<!--                                                                          -->
-<!-- Make sure that templates and logs are not available through              -->
-<!-- the servlet container. Remove security constraints or add an authen-     -->
-<!-- tication role if you need access to these paths.                         -->
-<!--                                                                          -->
-<!-- ======================================================================== -->
-
-  <security-constraint>
-    <web-resource-collection>
-      <web-resource-name>templates</web-resource-name>
-      <url-pattern>/templates/*</url-pattern>
-    </web-resource-collection>
-    <web-resource-collection>
-      <web-resource-name>logs</web-resource-name>
-      <url-pattern>/logs/*</url-pattern>
-    </web-resource-collection>
-    <auth-constraint/>
-  </security-constraint>
-</web-app>
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/resources/ui/skins/default/images/powered-by-logo.gif b/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/resources/ui/skins/default/images/powered-by-logo.gif
deleted file mode 100644
index 94c6554..0000000
--- a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/resources/ui/skins/default/images/powered-by-logo.gif
+++ /dev/null
Binary files differ
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/resources/ui/skins/default/images/turbine-project.png b/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/resources/ui/skins/default/images/turbine-project.png
deleted file mode 100644
index 6d80184..0000000
--- a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/resources/ui/skins/default/images/turbine-project.png
+++ /dev/null
Binary files differ
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/resources/ui/skins/default/skin.props b/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/resources/ui/skins/default/skin.props
deleted file mode 100644
index dde7066..0000000
--- a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/resources/ui/skins/default/skin.props
+++ /dev/null
@@ -1,19 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-# Configuration file for the user interface
-bgcolor=#023262
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/templates/layouts/Default.vm b/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/templates/layouts/Default.vm
deleted file mode 100644
index c9f94d0..0000000
--- a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/templates/layouts/Default.vm
+++ /dev/null
@@ -1,57 +0,0 @@
-## Licensed to the Apache Software Foundation (ASF) under one
-## or more contributor license agreements.  See the NOTICE file
-## distributed with this work for additional information
-## regarding copyright ownership.  The ASF licenses this file
-## to you under the Apache License, Version 2.0 (the
-## "License"); you may not use this file except in compliance
-## with the License.  You may obtain a copy of the License at
-##
-##   http://www.apache.org/licenses/LICENSE-2.0
-##
-## Unless required by applicable law or agreed to in writing,
-## software distributed under the License is distributed on an
-## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-## KIND, either express or implied.  See the License for the
-## specific language governing permissions and limitations
-## under the License.
-
-$page.addStyleSheet("http://www.w3schools.com/lib/w3.css")
-$page.addStyleSheet("http://www.w3schools.com/lib/w3-theme-blue-grey.css")
-$page.setTitle("Sample Apache Turbine Application")
-
-
-<html>
-
-#TurbineHtmlHead()
-
-<body #TurbineHtmlBodyAttributes() class="w3-theme-l4">
-
-	<div class="w3-wrapper">
-
-		<!-- Header -->
-		<header class="w3-container w3-center w3-padding-32 w3-theme">
-        	<img class="w3-right" src="$ui.image('turbine-project.png')" /> 
-	        #if ( $data.getUser().hasLoggedIn() ) 
-		        #set ( $u = $data.getUser() )
-		        <div class="w3-right">
-					<h5>Hello $!u.FirstName</h5>
-		        </div>
-			#end
-		</header>
-
-        <!-- Default Menu -->
-        $navigation.setTemplate("/Menu.vm")
-
-        <!-- Content -->
-        <div class="w3-left w3-padding" id="content">
-                $screen_placeholder
-        </div>
-
-        <!-- Footer -->
-        <footer class="w3-bottom">
-			<p>Powered by <img src="$ui.image('powered-by-logo.gif')"/></p>
-        </footer>
-	</div>
-
-</body>
-</html>
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/templates/screens/Index.vm b/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/templates/screens/Index.vm
deleted file mode 100644
index f1eb477..0000000
--- a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/templates/screens/Index.vm
+++ /dev/null
@@ -1,39 +0,0 @@
-## Licensed to the Apache Software Foundation (ASF) under one
-## or more contributor license agreements.  See the NOTICE file
-## distributed with this work for additional information
-## regarding copyright ownership.  The ASF licenses this file
-## to you under the Apache License, Version 2.0 (the
-## "License"); you may not use this file except in compliance
-## with the License.  You may obtain a copy of the License at
-##
-##   http://www.apache.org/licenses/LICENSE-2.0
-##
-## Unless required by applicable law or agreed to in writing,
-## software distributed under the License is distributed on an
-## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-## KIND, either express or implied.  See the License for the
-## specific language governing permissions and limitations
-## under the License.
-
-
-
-
-#if ( $data.getMessage() )
-        #info( $data.getMessage() )
-#end
-
-     <div align="center"><h1>$success</h1></div>
-
-     <p>
-             You're now successfully running a <a href="http://turbine.apache.org/">Turbine</a> based
-             application, deployed to <font color="red">$data.ServerData.ContextPath</a></font> on
-             your web container.
-     </p>
-
-     <p>
-             You can (and should!) change or remove this page at any time. It is
-             intended to give you immediate feedback if you just deployed an newly
-             setup Turbine application.
-     </p>
-
-     <a href="$link.setPage("TestSecure.vm")">Test a secure access page</a>
diff --git a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/templates/screens/Login.vm b/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/templates/screens/Login.vm
deleted file mode 100644
index 71fc50a..0000000
--- a/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/webapp/templates/screens/Login.vm
+++ /dev/null
@@ -1,101 +0,0 @@
-## Licensed to the Apache Software Foundation (ASF) under one
-## or more contributor license agreements.  See the NOTICE file
-## distributed with this work for additional information
-## regarding copyright ownership.  The ASF licenses this file
-## to you under the Apache License, Version 2.0 (the
-## "License"); you may not use this file except in compliance
-## with the License.  You may obtain a copy of the License at
-##
-##   http://www.apache.org/licenses/LICENSE-2.0
-##
-## Unless required by applicable law or agreed to in writing,
-## software distributed under the License is distributed on an
-## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-## KIND, either express or implied.  See the License for the
-## specific language governing permissions and limitations
-## under the License.
-
-##
-## If you want to use intake to process the data, uncomment below
-##
-
-#set ( $loginGroup = $intake.Login.Default )
-  
-#set ( $valid = true )  
-#if (!$loginGroup.Username.isValid() ) 
-    ## this should be improved ...
-    #if ("$loginGroup.Username.Message" == "username_min_length_msg") 
-       #info( $l10n.format("$loginGroup.Username.Message","4") )
-    #else
-      #info( $l10n.get("$loginGroup.Username.Message") )
-    #end
-    #set ( $valid = false )
- #end
- 
- #if ( !$loginGroup.Password.isValid() ) 
-    #info( $l10n.get("$loginGroup.Password.Message") )
-    #set ( $valid = false )
- #end
-
-<p/>
-  #if (! $data.user.hasLoggedIn()) 
-  
-  <div class="w3-display-middle w3-card-8 w3-center w3-light-grey" style="max-width: 500px">
-
-		<form class="w3-container w3-light-grey" name="login" method="post" enctype="application/x-www-form-urlencoded" action="$link.setAction("LoginUserIntake").setPage($data.templateInfo.screenTemplate)">
-       <div class="w3-section">
-        
-                <p>
-                	<input class="w3-input w3-border" style="margin: auto; width: 200px;" placeholder="Username" type="text" name="$loginGroup.Username.Key" value="$!loginGroup.Username" tabindex="1" autocomplete="off" autofocus="">
-                </p>
-
-                <p>
-                	<input class="w3-input w3-border" style="margin: auto; width: 200px;" placeholder="Password" type="password" name="$loginGroup.Password.Key" value="" tabindex="2" autocomplete="off">
-                </p>
-
-                <button type="submit" name="submit" id="submit" value="eventSubmit_doPerform" class="w3-ripple" tabindex="3">#if (! $valid ) Retry #else Sign in #end</button>
-                
-                <p/>
-    ##$intake.declareGroups()
-        
-      </div>
-    </form>
-    
-    <!--  default login without Intake  -->
-    <!-- 
-    		<form class="w3-container w3-light-grey" name="login" method="post" action="$link.setAction("LoginUser").setPage($data.templateInfo.screenTemplate)">
-       <div class="w3-section">
-       
-                <p>
-                	<input class="w3-input w3-border" style="margin: auto; width: 200px;" placeholder="Username" type="text" name="username" value="" tabindex="1"  autocomplete="off" autofocus="">
-                </p>
-
-                <p>
-                	<input class="w3-input w3-border" style="margin: auto; width: 200px;" placeholder="Password" type="password" name="password" value="" tabindex="2" autocomplete="off">
-                </p>
-
-                <button type="submit" name="submit" id="submit" value="eventSubmit_doPerform" class="w3-ripple" tabindex="3">Sign in</button>
-                
-                <p/>
-
-      </div>
-    </form>
-    
-    
-    
-    -->
-
-
-    <div class="w3-container w3-border-top w3-padding-16 w3-light-grey">
-          <span class="w3-right w3-padding w3-hide-small">Forgot <a href="#">password?</a></span>
-    </div>
-
-    ## Display System messages here if there are any
-        #if($data.getMessage())
-         #info( $data.getMessage() ) <br/>
-        #end 
-
-    </div>
-  #end             
-
-## $intake.declareGroups()
