continuum-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From eveni...@apache.org
Subject svn commit: r468118 [1/2] - in /maven/continuum/trunk: continuum-plexus-runtime/ continuum-web-test/ continuum-webapp-test/ continuum-webapp-test/src/ continuum-webapp-test/src/test/ continuum-webapp-test/src/test/it/ continuum-webapp-test/src/test/it/...
Date Thu, 26 Oct 2006 20:31:33 GMT
Author: evenisse
Date: Thu Oct 26 13:31:31 2006
New Revision: 468118

URL: http://svn.apache.org/viewvc?view=rev&rev=468118
Log:
o Add continuum-webapp-test.
o Remove old continuum-web-test

Added:
    maven/continuum/trunk/continuum-webapp-test/   (with props)
    maven/continuum/trunk/continuum-webapp-test/pom.xml   (with props)
    maven/continuum/trunk/continuum-webapp-test/src/
    maven/continuum/trunk/continuum-webapp-test/src/test/
    maven/continuum/trunk/continuum-webapp-test/src/test/it/
    maven/continuum/trunk/continuum-webapp-test/src/test/it/org/
    maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/
    maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/continuum/
    maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/continuum/web/
    maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/continuum/web/test/
    maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/continuum/web/test/AbstractAuthenticatedAccessTestCase.java   (with props)
    maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/continuum/web/test/AbstractGuestAccessTestCase.java   (with props)
    maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/continuum/web/test/AbstractSeleniumTestCase.java   (with props)
    maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/continuum/web/test/LoginTest.java   (with props)
    maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/
    maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/
    maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/Catalina/
    maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/Catalina/localhost/
    maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/Catalina/localhost/continuum.xml   (with props)
    maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/Catalina/localhost/host-manager.xml   (with props)
    maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/Catalina/localhost/manager.xml   (with props)
    maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/catalina.policy
    maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/catalina.properties   (with props)
    maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/context.xml   (with props)
    maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/logging.properties   (with props)
    maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/server-minimal.xml   (with props)
    maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/server.xml   (with props)
    maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/tomcat-users.xml   (with props)
    maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/web.xml   (with props)
    maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/logs/
    maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/temp/
    maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/webapps/
Removed:
    maven/continuum/trunk/continuum-web-test/
Modified:
    maven/continuum/trunk/continuum-plexus-runtime/pom.xml

Modified: maven/continuum/trunk/continuum-plexus-runtime/pom.xml
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-plexus-runtime/pom.xml?view=diff&rev=468118&r1=468117&r2=468118
==============================================================================
--- maven/continuum/trunk/continuum-plexus-runtime/pom.xml (original)
+++ maven/continuum/trunk/continuum-plexus-runtime/pom.xml Thu Oct 26 13:31:31 2006
@@ -87,7 +87,6 @@
           <runtimeConfiguration>src/conf/plexus.xml</runtimeConfiguration>
           <runtimeConfigurationProperties>src/plexus.properties</runtimeConfigurationProperties>
           <runtimePath>target/plexus-continuum-runtime</runtimePath>
-          <addManagementAgent>true</addManagementAgent>
           <additionalCoreArtifacts>
             <additionalCoreArtifact>commons-logging:commons-logging-api</additionalCoreArtifact>
             <additionalCoreArtifact>log4j:log4j</additionalCoreArtifact>

Propchange: maven/continuum/trunk/continuum-webapp-test/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Thu Oct 26 13:31:31 2006
@@ -0,0 +1,5 @@
+*.iml
+*.ipr
+*.iws
+*.log
+target

Added: maven/continuum/trunk/continuum-webapp-test/pom.xml
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp-test/pom.xml?view=auto&rev=468118
==============================================================================
--- maven/continuum/trunk/continuum-webapp-test/pom.xml (added)
+++ maven/continuum/trunk/continuum-webapp-test/pom.xml Thu Oct 26 13:31:31 2006
@@ -0,0 +1,212 @@
+<!--
+  ~ Copyright 2005-2006 The Apache Software Foundation.
+  ~
+  ~ Licensed 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>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.apache.maven.continuum</groupId>
+    <artifactId>continuum-parent</artifactId>
+    <version>1.1-SNAPSHOT</version>
+  </parent>
+  <artifactId>continuum-webapp-test</artifactId>
+  <name>Continuum Webapp Test</name>
+  <packaging>pom</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.continuum</groupId>
+      <artifactId>continuum-webapp</artifactId>
+      <type>war</type>
+    </dependency>
+    <dependency>
+      <groupId>org.openqa.selenium.client-drivers</groupId>
+      <artifactId>selenium-java-client-driver</artifactId>
+      <version>0.8.1</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.openqa.selenium.client-drivers</groupId>
+      <artifactId>selenium-java-client-driver</artifactId>
+      <version>0.8.1</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.openqa.selenium.server</groupId>
+      <artifactId>selenium-server</artifactId>
+      <version>0.8.1</version>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+  <repositories>
+    <repository>
+      <id>openqa</id>
+      <name>OpenQA Repository</name>
+      <url>http://maven.openqa.org</url>
+      <layout>default</layout>
+      <snapshots>
+        <enabled>true</enabled>
+      </snapshots>
+      <releases>
+        <enabled>true</enabled>
+      </releases>
+    </repository>
+  </repositories>
+
+  <build>
+    <testSourceDirectory>src/test/it</testSourceDirectory>
+    <plugins>
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>dependency-maven-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>unzip-continuum-webapp</id>
+            <phase>generate-resources</phase>
+            <goals>
+              <goal>unpack</goal>
+            </goals>
+            <configuration>
+              <artifactItems>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>continuum-webapp</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                </artifactItem>
+              </artifactItems>
+              <outputDirectory>${project.build.directory}/${container.name}conf/webapps/continuum</outputDirectory>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <artifactId>maven-antrun-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>copy-container-conf</id>
+            <phase>package</phase>
+            <configuration>
+              <tasks>
+                <copy todir="${project.build.directory}/${container.name}conf">
+                  <fileset dir="src/test/${container.name}"/>
+                </copy>
+                <copy todir="${project.build.directory}/installs/${container.name}/apache-tomcat-5.5.20/apache-tomcat-5.5.20/common/lib">
+                  <fileset dir="${project.build.directory}/${container.name}conf/webapps/continuum/WEB-INF/lib">
+                    <include name="**/derby-*.jar"/>
+                  </fileset>
+                </copy>
+              </tasks>
+            </configuration>
+            <goals>
+              <goal>run</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <executions>
+          <execution>
+            <goals>
+              <goal>testCompile</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>selenium-maven-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>start-selenium</id>
+            <phase>pre-integration-test</phase>
+            <goals>
+              <goal>start-server</goal>
+            </goals>
+          </execution>
+        </executions>
+        <configuration>
+          <background>true</background>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.codehaus.cargo</groupId>
+        <artifactId>cargo-maven2-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>start-container</id>
+            <phase>pre-integration-test</phase>
+            <goals>
+              <goal>start</goal>
+            </goals>
+          </execution>
+          <execution>
+            <id>stop-container</id>
+            <phase>post-integration-test</phase>
+            <goals>
+                <goal>stop</goal>
+            </goals>
+          </execution>
+        </executions>
+        <configuration>
+          <wait>false</wait>
+          <container>
+            <containerId>${container.name}</containerId>
+            <zipUrlInstaller>
+              <url>${container.url}</url>
+              <installDir>${project.build.directory}/installs/${container.name}</installDir>
+            </zipUrlInstaller>
+            <log>${project.build.directory}/logs/${container.name}.log</log>
+            <output>${project.build.directory}/logs/${container.name}.out</output>
+            <timeout>600000</timeout>
+          </container>
+          <configuration>
+            <home>${project.build.directory}/${container.name}conf</home>
+            <type>existing</type>
+            <properties>
+              <cargo.servlet.port>9595</cargo.servlet.port>
+            </properties>
+          </configuration>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <executions>
+          <execution>
+            <phase>integration-test</phase>
+            <goals>
+              <goal>test</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+  
+  <profiles>
+    <profile>
+      <id>tomcat5x</id>
+      <activation>
+        <activeByDefault>true</activeByDefault>
+      </activation>
+      <properties>
+        <container.name>tomcat5x</container.name>
+        <container.url>http://apache.multidist.com/tomcat/tomcat-5/v5.5.20/bin/apache-tomcat-5.5.20.zip</container.url>
+      </properties>
+    </profile>
+  </profiles>
+</project>
\ No newline at end of file

Propchange: maven/continuum/trunk/continuum-webapp-test/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/continuum/trunk/continuum-webapp-test/pom.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/continuum/web/test/AbstractAuthenticatedAccessTestCase.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/continuum/web/test/AbstractAuthenticatedAccessTestCase.java?view=auto&rev=468118
==============================================================================
--- maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/continuum/web/test/AbstractAuthenticatedAccessTestCase.java (added)
+++ maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/continuum/web/test/AbstractAuthenticatedAccessTestCase.java Thu Oct 26 13:31:31 2006
@@ -0,0 +1,37 @@
+package org.apache.continuum.web.test;
+
+/*
+ * Copyright 2005-2006 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ */
+
+/**
+ * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
+ * @version $Id$
+ */
+public abstract class AbstractAuthenticatedAccessTestCase
+    extends AbstractGuestAccessTestCase
+{
+    public void setUp()
+    {
+        super.setUp();
+        clickLinkWithText( "Login" );
+        assertLoginPage();
+        submitLoginPage( getUsername(), getPassword() );
+    }
+
+    public abstract String getUsername();
+
+    public abstract String getPassword();
+}

Propchange: maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/continuum/web/test/AbstractAuthenticatedAccessTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/continuum/web/test/AbstractAuthenticatedAccessTestCase.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/continuum/web/test/AbstractGuestAccessTestCase.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/continuum/web/test/AbstractGuestAccessTestCase.java?view=auto&rev=468118
==============================================================================
--- maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/continuum/web/test/AbstractGuestAccessTestCase.java (added)
+++ maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/continuum/web/test/AbstractGuestAccessTestCase.java Thu Oct 26 13:31:31 2006
@@ -0,0 +1,31 @@
+package org.apache.continuum.web.test;
+
+/*
+ * Copyright 2005-2006 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ */
+
+/**
+ * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
+ * @version $Id$
+ */
+public abstract class AbstractGuestAccessTestCase
+    extends AbstractSeleniumTestCase
+{
+    public void setUp()
+    {
+        super.setUp();
+        assertFalse( "User was authenticated.", isAuthenticated() );
+    }
+}

Propchange: maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/continuum/web/test/AbstractGuestAccessTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/continuum/web/test/AbstractGuestAccessTestCase.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/continuum/web/test/AbstractSeleniumTestCase.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/continuum/web/test/AbstractSeleniumTestCase.java?view=auto&rev=468118
==============================================================================
--- maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/continuum/web/test/AbstractSeleniumTestCase.java (added)
+++ maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/continuum/web/test/AbstractSeleniumTestCase.java Thu Oct 26 13:31:31 2006
@@ -0,0 +1,283 @@
+package org.apache.continuum.web.test;
+
+/*
+ * Copyright 2005-2006 The Apache Software Foundation.
+ *
+ * Licensed 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 com.thoughtworks.selenium.DefaultSelenium;
+import com.thoughtworks.selenium.Selenium;
+import junit.framework.TestCase;
+import org.openqa.selenium.server.SeleniumServer;
+
+import java.util.Calendar;
+
+/**
+ * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
+ * @version $Id$
+ */
+public abstract class AbstractSeleniumTestCase
+    extends TestCase
+{
+    private Selenium sel;
+
+    protected String adminUsername = "admin";
+
+    protected String adminPassword = "admin1";
+
+    protected String adminFullName = "Continuum Admin";
+
+    protected String adminEmail = "admin@localhost.localdomain.com";
+
+    private String baseUrl = "http://localhost:9595/continuum";
+
+    public void setUp()
+    {
+        sel = new DefaultSelenium( "localhost", SeleniumServer.DEFAULT_PORT, "*firefox", baseUrl );
+        sel.start();
+        initialize();
+    }
+
+    public void tearDown()
+    {
+        sel.stop();
+    }
+
+    public Selenium getSelenium()
+    {
+        return sel;
+    }
+
+    /**
+     * We create an admin user if it doesn't exist
+     */
+    private void initialize()
+    {
+        sel.open( "/continuum" );
+        waitPage();
+
+        if ( "Create Admin User".equals( sel.getTitle() ) )
+        {
+            assertCreateAdminUserPage();
+            submitCreateAdminUserPage( adminFullName, adminEmail, adminPassword, adminPassword );
+            assertLoginPage();
+            submitLoginPage( adminUsername, adminPassword );
+            assertEditConfigurationPage();
+            submitConfigurationPage( baseUrl, null, null, null );
+            logout();
+        }
+    }
+
+    public String getHtmlContent()
+    {
+        return getSelenium().getHtmlSource();
+    }
+
+    public void assertTextPresent( String text )
+    {
+        assertTrue( "'" + text + "' isn't present.", sel.isTextPresent( text ) );
+    }
+
+    public void assertTextNotPresent( String text )
+    {
+        assertFalse( "'" + text + "' is present.", sel.isTextPresent( text ) );
+    }
+
+    public void assertElementPresent( String elementLocator )
+    {
+        assertTrue( "'" + elementLocator + "' isn't present.", sel.isElementPresent( elementLocator ) );
+    }
+
+    public void assertElementNotPresent( String elementLocator )
+    {
+        assertFalse( "'" + elementLocator + "' is present.", sel.isElementPresent( elementLocator ) );
+    }
+
+    public void assertLinkPresent( String text )
+    {
+        assertTrue( "The link '" + text + "' isn't present.", sel.isElementPresent( "link=" + text ) );
+    }
+
+    public void assertLinkNotPresent( String text )
+    {
+        assertFalse( "The link '" + text + "' is present.", sel.isElementPresent( "link=" + text ) );
+    }
+
+    public void waitPage()
+    {
+        waitPage( 30000 );
+    }
+
+    public void waitPage( int nbMillisecond )
+    {
+        sel.waitForPageToLoad( String.valueOf( nbMillisecond ) );
+    }
+
+    public void assertPage( String title )
+    {
+        assertEquals( title, sel.getTitle() );
+        assertTrue( sel.getText( "xpath=//div[@id='footer']/table/tbody/tr/td" ).startsWith( "Continuum " ) );
+        int currentYear = Calendar.getInstance().get( Calendar.YEAR );
+        assertTrue( sel.getText( "xpath=//div[@id='footer']/table/tbody/tr/td" ).endsWith(
+            " 2005-" + currentYear + " Apache Software Foundation" ) );
+    }
+
+    public void clickLinkWithText( String text )
+    {
+        clickLinkWithLocator( "link=" + text );
+    }
+
+    public void clickLinkWithXPath( String xpath )
+    {
+        clickLinkWithLocator( "xpath=" + xpath );
+    }
+
+    public void clickLinkWithLocator( String locator )
+    {
+        sel.click( locator );
+        waitPage();
+    }
+
+    //////////////////////////////////////
+    // Create Admin User
+    //////////////////////////////////////
+    public void assertCreateAdminUserPage()
+    {
+        assertPage( "Create Admin User" );
+        assertTextPresent( "Create Admin User" );
+        assertTextPresent( "Username" );
+        assertElementPresent( "user.username" );
+        assertTextPresent( "Full Name" );
+        assertElementPresent( "user.fullName" );
+        assertTextPresent( "Email Address" );
+        assertElementPresent( "user.email" );
+        assertTextPresent( "Password" );
+        assertElementPresent( "user.password" );
+        assertTextPresent( "Confirm Password" );
+        assertElementPresent( "user.confirmPassword" );
+    }
+
+    public void submitCreateAdminUserPage( String fullName, String email, String password, String confirmPassword )
+    {
+        sel.type( "user.fullName", fullName );
+        sel.type( "user.email", email );
+        sel.type( "user.password", password );
+        sel.type( "user.confirmPassword", confirmPassword );
+        sel.click( "//input[@type='submit']" );
+        waitPage();
+    }
+
+    //////////////////////////////////////
+    // Login
+    //////////////////////////////////////
+    public void assertLoginPage()
+    {
+        assertPage( "Login Page" );
+        assertTextPresent( "Login" );
+        assertTextPresent( "Username" );
+        assertTextPresent( "Password" );
+        assertTextPresent( "Remember Me" );
+        assertFalse( sel.isChecked( "rememberMe" ) );
+    }
+
+    public void submitLoginPage( String username, String password )
+    {
+        submitLoginPage( username, password, false, true );
+    }
+
+    public void submitLoginPage( String username, String password, boolean validUsernamePassword )
+    {
+        submitLoginPage( username, password, false, validUsernamePassword );
+    }
+
+    public void submitLoginPage( String username, String password, boolean rememberMe, boolean validUsernamePassword )
+    {
+        sel.type( "username", username );
+        sel.type( "password", password );
+        if ( rememberMe )
+        {
+            sel.check( "rememberMe" );
+        }
+        sel.click( "submitButton" );
+        waitPage();
+        if ( validUsernamePassword )
+        {
+            assertTextPresent( "Welcome, " + username + " - Logout" );
+            assertLinkPresent( username );
+            assertLinkPresent( "Logout" );
+        }
+        else
+        {
+            assertLoginPage();
+        }
+    }
+
+    public boolean isAuthenticated()
+    {
+        return !( sel.isElementPresent( "link=Login" ) && sel.isElementPresent( "link=Register" ) );
+    }
+
+    //////////////////////////////////////
+    // Logout
+    //////////////////////////////////////
+    public void logout()
+    {
+        assertTrue( "User wasn't authenticated.", isAuthenticated() );
+        clickLinkWithText( "Logout" );
+        assertFalse( "The user is always authenticated after a logout.", isAuthenticated() );
+    }
+
+    //////////////////////////////////////
+    // Configuration
+    //////////////////////////////////////
+    public void assertEditConfigurationPage()
+    {
+        assertPage( "Continuum - Configuration" );
+        assertTextPresent( "Guest" );
+        assertElementPresent( "guestAccountEnabled" );
+        assertTextPresent( "Working Directory" );
+        assertElementPresent( "workingDirectory" );
+        assertTextPresent( "Build Output Directory" );
+        assertElementPresent( "buildOutputDirectory" );
+        assertTextPresent( "Deployment Repository Directory" );
+        assertElementPresent( "deploymentRepositoryDirectory" );
+        assertTextPresent( "Base URL" );
+        assertElementPresent( "baseUrl" );
+        assertTextPresent( "Company Name" );
+        assertElementPresent( "companyName" );
+        assertTextPresent( "Company Logo" );
+        assertElementPresent( "companyLogo" );
+        assertTextPresent( "Company URL" );
+        assertElementPresent( "companyUrl" );
+    }
+
+    public void submitConfigurationPage( String baseUrl, String companyName, String companyLogo, String companyUrl )
+    {
+        sel.type( "baseUrl", baseUrl );
+        if ( companyName != null )
+        {
+            sel.type( "companyName", companyName );
+        }
+        if ( companyLogo != null )
+        {
+            sel.type( "companyLogo", companyLogo );
+        }
+        if ( companyUrl != null )
+        {
+            sel.type( "companyUrl", companyUrl );
+        }
+        sel.click( "//input[@type='submit']" );
+        waitPage();
+    }
+}

Propchange: maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/continuum/web/test/AbstractSeleniumTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/continuum/web/test/AbstractSeleniumTestCase.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/continuum/web/test/LoginTest.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/continuum/web/test/LoginTest.java?view=auto&rev=468118
==============================================================================
--- maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/continuum/web/test/LoginTest.java (added)
+++ maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/continuum/web/test/LoginTest.java Thu Oct 26 13:31:31 2006
@@ -0,0 +1,66 @@
+package org.apache.continuum.web.test;
+
+/*
+ * Copyright 2005-2006 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ */
+
+/**
+ * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
+ * @version $Id$
+ */
+public class LoginTest
+    extends AbstractGuestAccessTestCase
+{
+    public void setUp()
+    {
+        super.setUp();
+        clickLinkWithText( "Login" );
+        assertLoginPage();
+    }
+
+    public void testWithBadUsername()
+    {
+        submitLoginPage( "badUsername", "badPassword", false );
+        assertLoginPage();
+        assertTextPresent( "Authentication failed" );
+    }
+
+    public void testWithBadPassword()
+    {
+        submitLoginPage( adminUsername, "badPassword", false );
+        assertLoginPage();
+        assertTextPresent( "Authentication failed" );
+    }
+
+    public void testWithEmptyUsername()
+    {
+        submitLoginPage( "", "badPassword", false );
+        assertLoginPage();
+        assertTextPresent( "Username cannot be empty." );
+    }
+
+    public void testWithEmptyPassword()
+    {
+        submitLoginPage( adminUsername, "", false );
+        assertLoginPage();
+        assertTextPresent( "Authentication failed" );
+    }
+
+    public void testWithCorrectUsernamePassword()
+    {
+        submitLoginPage( adminUsername, adminPassword );
+        logout();
+    }
+}

Propchange: maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/continuum/web/test/LoginTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/continuum/web/test/LoginTest.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/Catalina/localhost/continuum.xml
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/Catalina/localhost/continuum.xml?view=auto&rev=468118
==============================================================================
--- maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/Catalina/localhost/continuum.xml (added)
+++ maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/Catalina/localhost/continuum.xml Thu Oct 26 13:31:31 2006
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Context path="/continuum"
+         docBase="${catalina.base}/webapps/continuum">
+
+    <Resource name="jdbc/users" auth="Container" type="javax.sql.DataSource"
+              username="sa"
+              password=""
+              driverClassName="org.apache.derby.jdbc.EmbeddedDriver"
+              url="jdbc:derby:target/database/users;create=true"
+    />
+    <Resource name="jdbc/continuum" auth="Container" type="javax.sql.DataSource"
+              username="sa"
+              password=""
+              driverClassName="org.apache.derby.jdbc.EmbeddedDriver"
+              url="jdbc:derby:target/database/continuum;create=true"
+    />
+</Context>

Propchange: maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/Catalina/localhost/continuum.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/Catalina/localhost/continuum.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/Catalina/localhost/host-manager.xml
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/Catalina/localhost/host-manager.xml?view=auto&rev=468118
==============================================================================
--- maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/Catalina/localhost/host-manager.xml (added)
+++ maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/Catalina/localhost/host-manager.xml Thu Oct 26 13:31:31 2006
@@ -0,0 +1,13 @@
+<!--
+
+    Context configuration file for the Tomcat Host Manager Web App
+
+    $Id$
+
+-->
+
+
+<Context docBase="${catalina.home}/server/webapps/host-manager"
+         privileged="true" antiResourceLocking="false" antiJARLocking="false">
+
+</Context>

Propchange: maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/Catalina/localhost/host-manager.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/Catalina/localhost/host-manager.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/Catalina/localhost/manager.xml
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/Catalina/localhost/manager.xml?view=auto&rev=468118
==============================================================================
--- maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/Catalina/localhost/manager.xml (added)
+++ maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/Catalina/localhost/manager.xml Thu Oct 26 13:31:31 2006
@@ -0,0 +1,17 @@
+<!--
+
+    Context configuration file for the Tomcat Manager Web App
+
+    $Id$
+
+-->
+
+
+<Context docBase="${catalina.home}/server/webapps/manager"
+         privileged="true" antiResourceLocking="false" antiJARLocking="false">
+
+  <!-- Link to the user database we will get roles from -->
+  <ResourceLink name="users" global="UserDatabase"
+                type="org.apache.catalina.UserDatabase"/>
+
+</Context>

Propchange: maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/Catalina/localhost/manager.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/Catalina/localhost/manager.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/catalina.policy
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/catalina.policy?view=auto&rev=468118
==============================================================================
--- maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/catalina.policy (added)
+++ maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/catalina.policy Thu Oct 26 13:31:31 2006
@@ -0,0 +1,172 @@
+// ============================================================================
+// catalina.corepolicy - Security Policy Permissions for Tomcat 5
+//
+// This file contains a default set of security policies to be enforced (by the
+// JVM) when Catalina is executed with the "-security" option.  In addition
+// to the permissions granted here, the following additional permissions are
+// granted to the codebase specific to each web application:
+//
+// * Read access to the document root directory
+//
+// $Id: catalina.policy 393732 2006-04-13 06:32:25Z pero $
+// ============================================================================
+
+
+// ========== SYSTEM CODE PERMISSIONS =========================================
+
+
+// These permissions apply to javac
+grant codeBase "file:${java.home}/lib/-" {
+        permission java.security.AllPermission;
+};
+
+// These permissions apply to all shared system extensions
+grant codeBase "file:${java.home}/jre/lib/ext/-" {
+        permission java.security.AllPermission;
+};
+
+// These permissions apply to javac when ${java.home] points at $JAVA_HOME/jre
+grant codeBase "file:${java.home}/../lib/-" {
+        permission java.security.AllPermission;
+};
+
+// These permissions apply to all shared system extensions when
+// ${java.home} points at $JAVA_HOME/jre
+grant codeBase "file:${java.home}/lib/ext/-" {
+        permission java.security.AllPermission;
+};
+
+
+// ========== CATALINA CODE PERMISSIONS =======================================
+
+
+// These permissions apply to the launcher code
+grant codeBase "file:${catalina.home}/bin/commons-launcher.jar" {
+        permission java.security.AllPermission;
+};
+
+// These permissions apply to the daemon code
+grant codeBase "file:${catalina.home}/bin/commons-daemon.jar" {
+        permission java.security.AllPermission;
+};
+
+// These permissions apply to the commons-logging API
+grant codeBase "file:${catalina.home}/bin/commons-logging-api.jar" {
+        permission java.security.AllPermission;
+};
+
+// These permissions apply to the server startup code
+grant codeBase "file:${catalina.home}/bin/bootstrap.jar" {
+        permission java.security.AllPermission;
+};
+
+// These permissions apply to the JMX server
+grant codeBase "file:${catalina.home}/bin/jmx.jar" {
+        permission java.security.AllPermission;
+};
+
+// These permissions apply to JULI
+grant codeBase "file:${catalina.home}/bin/tomcat-juli.jar" {
+        permission java.security.AllPermission;
+};
+
+// These permissions apply to the servlet API classes
+// and those that are shared across all class loaders
+// located in the "common" directory
+grant codeBase "file:${catalina.home}/common/-" {
+        permission java.security.AllPermission;
+};
+
+// These permissions apply to the container's core code, plus any additional
+// libraries installed in the "server" directory
+grant codeBase "file:${catalina.home}/server/-" {
+        permission java.security.AllPermission;
+};
+
+// The permissions granted to the balancer WEB-INF/classes and WEB-INF/lib directory
+grant codeBase "file:${catalina.home}/webapps/balancer/-" {
+        permission java.lang.RuntimePermission "accessClassInPackage.org.apache.tomcat.util.digester";
+        permission java.lang.RuntimePermission "accessClassInPackage.org.apache.tomcat.util.digester.*";
+};
+// ========== WEB APPLICATION PERMISSIONS =====================================
+
+
+// These permissions are granted by default to all web applications
+// In addition, a web application will be given a read FilePermission
+// and JndiPermission for all files and directories in its document root.
+grant { 
+    // Required for JNDI lookup of named JDBC DataSource's and
+    // javamail named MimePart DataSource used to send mail
+    permission java.util.PropertyPermission "java.home", "read";
+    permission java.util.PropertyPermission "java.naming.*", "read";
+    permission java.util.PropertyPermission "javax.sql.*", "read";
+
+    // OS Specific properties to allow read access
+    permission java.util.PropertyPermission "os.name", "read";
+    permission java.util.PropertyPermission "os.version", "read";
+    permission java.util.PropertyPermission "os.arch", "read";
+    permission java.util.PropertyPermission "file.separator", "read";
+    permission java.util.PropertyPermission "path.separator", "read";
+    permission java.util.PropertyPermission "line.separator", "read";
+
+    // JVM properties to allow read access
+    permission java.util.PropertyPermission "java.version", "read";
+    permission java.util.PropertyPermission "java.vendor", "read";
+    permission java.util.PropertyPermission "java.vendor.url", "read";
+    permission java.util.PropertyPermission "java.class.version", "read";
+	permission java.util.PropertyPermission "java.specification.version", "read";
+	permission java.util.PropertyPermission "java.specification.vendor", "read";
+	permission java.util.PropertyPermission "java.specification.name", "read";
+
+	permission java.util.PropertyPermission "java.vm.specification.version", "read";
+	permission java.util.PropertyPermission "java.vm.specification.vendor", "read";
+	permission java.util.PropertyPermission "java.vm.specification.name", "read";
+	permission java.util.PropertyPermission "java.vm.version", "read";
+	permission java.util.PropertyPermission "java.vm.vendor", "read";
+	permission java.util.PropertyPermission "java.vm.name", "read";
+
+    // Required for OpenJMX
+    permission java.lang.RuntimePermission "getAttribute";
+
+	// Allow read of JAXP compliant XML parser debug
+	permission java.util.PropertyPermission "jaxp.debug", "read";
+
+    // Precompiled JSPs need access to this package.
+    permission java.lang.RuntimePermission "accessClassInPackage.org.apache.jasper.runtime";
+    permission java.lang.RuntimePermission "accessClassInPackage.org.apache.jasper.runtime.*";
+    
+};
+
+
+// You can assign additional permissions to particular web applications by
+// adding additional "grant" entries here, based on the code base for that
+// application, /WEB-INF/classes/, or /WEB-INF/lib/ jar files.
+//
+// Different permissions can be granted to JSP pages, classes loaded from
+// the /WEB-INF/classes/ directory, all jar files in the /WEB-INF/lib/
+// directory, or even to individual jar files in the /WEB-INF/lib/ directory.
+//
+// For instance, assume that the standard "examples" application
+// included a JDBC driver that needed to establish a network connection to the
+// corresponding database and used the scrape taglib to get the weather from
+// the NOAA web server.  You might create a "grant" entries like this:
+//
+// The permissions granted to the context root directory apply to JSP pages.
+// grant codeBase "file:${catalina.home}/webapps/examples/-" {
+//      permission java.net.SocketPermission "dbhost.mycompany.com:5432", "connect";
+//      permission java.net.SocketPermission "*.noaa.gov:80", "connect";
+// };
+//
+// The permissions granted to the context WEB-INF/classes directory
+// grant codeBase "file:${catalina.home}/webapps/examples/WEB-INF/classes/-" {
+// };
+//
+// The permission granted to your JDBC driver
+// grant codeBase "jar:file:${catalina.home}/webapps/examples/WEB-INF/lib/driver.jar!/-" {
+//      permission java.net.SocketPermission "dbhost.mycompany.com:5432", "connect";
+// };
+// The permission granted to the scrape taglib
+// grant codeBase "jar:file:${catalina.home}/webapps/examples/WEB-INF/lib/scrape.jar!/-" {
+//      permission java.net.SocketPermission "*.noaa.gov:80", "connect";
+// };
+

Added: maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/catalina.properties
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/catalina.properties?view=auto&rev=468118
==============================================================================
--- maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/catalina.properties (added)
+++ maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/catalina.properties Thu Oct 26 13:31:31 2006
@@ -0,0 +1,66 @@
+#
+# List of comma-separated packages that start with or equal this string
+# will cause a security exception to be thrown when
+# passed to checkPackageAccess unless the
+# corresponding RuntimePermission ("accessClassInPackage."+package) has
+# been granted.
+package.access=sun.,org.apache.catalina.,org.apache.coyote.,org.apache.tomcat.,org.apache.jasper.,sun.beans.
+#
+# List of comma-separated packages that start with or equal this string
+# will cause a security exception to be thrown when
+# passed to checkPackageDefinition unless the
+# corresponding RuntimePermission ("defineClassInPackage."+package) has
+# been granted.
+#
+# by default, no packages are restricted for definition, and none of
+# the class loaders supplied with the JDK call checkPackageDefinition.
+#
+package.definition=sun.,java.,org.apache.catalina.,org.apache.coyote.,org.apache.tomcat.,org.apache.jasper.
+
+#
+#
+# List of comma-separated paths defining the contents of the "common" 
+# classloader. Prefixes should be used to define what is the repository type.
+# Path may be relative to the CATALINA_HOME or CATALINA_BASE path or absolute.
+# If left as blank,the JVM system loader will be used as Catalina's "common" 
+# loader.
+# Examples:
+#     "foo": Add this folder as a class repository
+#     "foo/*.jar": Add all the JARs of the specified folder as class 
+#                  repositories
+#     "foo/bar.jar": Add bar.jar as a class repository
+common.loader=${catalina.home}/common/classes,${catalina.home}/common/i18n/*.jar,${catalina.home}/common/endorsed/*.jar,${catalina.home}/common/lib/*.jar
+
+#
+# List of comma-separated paths defining the contents of the "server" 
+# classloader. Prefixes should be used to define what is the repository type.
+# Path may be relative to the CATALINA_HOME or CATALINA_BASE path or absolute.
+# If left as blank, the "common" loader will be used as Catalina's "server" 
+# loader.
+# Examples:
+#     "foo": Add this folder as a class repository
+#     "foo/*.jar": Add all the JARs of the specified folder as class 
+#                  repositories
+#     "foo/bar.jar": Add bar.jar as a class repository
+server.loader=${catalina.home}/server/classes,${catalina.home}/server/lib/*.jar
+
+#
+# List of comma-separated paths defining the contents of the "shared" 
+# classloader. Prefixes should be used to define what is the repository type.
+# Path may be relative to the CATALINA_BASE path or absolute. If left as blank,
+# the "common" loader will be used as Catalina's "shared" loader.
+# Examples:
+#     "foo": Add this folder as a class repository
+#     "foo/*.jar": Add all the JARs of the specified folder as class 
+#                  repositories
+#     "foo/bar.jar": Add bar.jar as a class repository 
+# Please note that for individual jar files, e.g. bar.jar, you need the URL form
+# starting with file:.
+shared.loader=${catalina.base}/shared/classes,${catalina.base}/shared/lib/*.jar
+
+#
+# String cache configuration.
+tomcat.util.buf.StringCache.byte.enabled=true
+#tomcat.util.buf.StringCache.char.enabled=true
+#tomcat.util.buf.StringCache.trainThreshold=500000
+#tomcat.util.buf.StringCache.cacheSize=5000

Propchange: maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/catalina.properties
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/catalina.properties
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/context.xml
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/context.xml?view=auto&rev=468118
==============================================================================
--- maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/context.xml (added)
+++ maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/context.xml Thu Oct 26 13:31:31 2006
@@ -0,0 +1,12 @@
+<!-- The contents of this file will be loaded for each web application -->
+<Context>
+
+    <!-- Default set of monitored resources -->
+    <WatchedResource>WEB-INF/web.xml</WatchedResource>
+	
+    <!-- Uncomment this to disable session persistence across Tomcat restarts -->
+    <!--
+    <Manager pathname="" />
+    -->
+
+</Context>
\ No newline at end of file

Propchange: maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/context.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/context.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/logging.properties
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/logging.properties?view=auto&rev=468118
==============================================================================
--- maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/logging.properties (added)
+++ maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/logging.properties Thu Oct 26 13:31:31 2006
@@ -0,0 +1,55 @@
+handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler, 3manager.org.apache.juli.FileHandler, 4admin.org.apache.juli.FileHandler, 5host-manager.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
+
+.handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
+
+############################################################
+# Handler specific properties.
+# Describes specific configuration info for Handlers.
+############################################################
+
+1catalina.org.apache.juli.FileHandler.level = FINE
+1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
+1catalina.org.apache.juli.FileHandler.prefix = catalina.
+
+2localhost.org.apache.juli.FileHandler.level = FINE
+2localhost.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
+2localhost.org.apache.juli.FileHandler.prefix = localhost.
+
+3manager.org.apache.juli.FileHandler.level = FINE
+3manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
+3manager.org.apache.juli.FileHandler.prefix = manager.
+
+4admin.org.apache.juli.FileHandler.level = FINE
+4admin.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
+4admin.org.apache.juli.FileHandler.prefix = admin.
+
+5host-manager.org.apache.juli.FileHandler.level = FINE
+5host-manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
+5host-manager.org.apache.juli.FileHandler.prefix = host-manager.
+
+java.util.logging.ConsoleHandler.level = FINE
+java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
+
+
+############################################################
+# Facility specific properties.
+# Provides extra control for each logger.
+############################################################
+
+org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO
+org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.FileHandler
+
+org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO
+org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = 3manager.org.apache.juli.FileHandler
+
+org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/admin].level = INFO
+org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/admin].handlers = 4admin.org.apache.juli.FileHandler
+
+org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].level = INFO
+org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].handlers = 5host-manager.org.apache.juli.FileHandler
+
+# For example, set the com.xyz.foo logger to only log SEVERE
+# messages:
+#org.apache.catalina.startup.ContextConfig.level = FINE
+#org.apache.catalina.startup.HostConfig.level = FINE
+#org.apache.catalina.session.ManagerBase.level = FINE

Propchange: maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/logging.properties
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/logging.properties
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/server-minimal.xml
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/server-minimal.xml?view=auto&rev=468118
==============================================================================
--- maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/server-minimal.xml (added)
+++ maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/server-minimal.xml Thu Oct 26 13:31:31 2006
@@ -0,0 +1,25 @@
+<Server port="8005" shutdown="SHUTDOWN">
+
+  <GlobalNamingResources>
+    <!-- Used by Manager webapp -->
+    <Resource name="UserDatabase" auth="Container"
+              type="org.apache.catalina.UserDatabase"
+       description="User database that can be updated and saved"
+           factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
+          pathname="conf/tomcat-users.xml" />
+  </GlobalNamingResources>
+
+  <Service name="Catalina">
+    <Connector port="8080" />
+
+    <!-- This is here for compatibility only, not required -->
+    <Connector port="8009" protocol="AJP/1.3" />
+
+    <Engine name="Catalina" defaultHost="localhost">
+      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
+             resourceName="UserDatabase" />
+      <Host name="localhost" appBase="webapps" />
+    </Engine>
+    
+  </Service>
+</Server>

Propchange: maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/server-minimal.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/server-minimal.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/server.xml
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/server.xml?view=auto&rev=468118
==============================================================================
--- maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/server.xml (added)
+++ maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/server.xml Thu Oct 26 13:31:31 2006
@@ -0,0 +1,366 @@
+<!-- Example Server Configuration File -->
+<!-- Note that component elements are nested corresponding to their
+     parent-child relationships with each other -->
+
+<!-- A "Server" is a singleton element that represents the entire JVM,
+     which may contain one or more "Service" instances.  The Server
+     listens for a shutdown command on the indicated port.
+
+     Note:  A "Server" is not itself a "Container", so you may not
+     define subcomponents such as "Valves" or "Loggers" at this level.
+ -->
+
+<Server port="8005" shutdown="SHUTDOWN">
+
+  <!-- Comment these entries out to disable JMX MBeans support used for the 
+       administration web application -->
+  <Listener className="org.apache.catalina.core.AprLifecycleListener" />
+  <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" />
+  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
+  <Listener className="org.apache.catalina.storeconfig.StoreConfigLifecycleListener"/>
+
+  <!-- Global JNDI resources -->
+  <GlobalNamingResources>
+
+    <!-- Test entry for demonstration purposes -->
+    <Environment name="simpleValue" type="java.lang.Integer" value="30"/>
+
+    <!-- Editable user database that can also be used by
+         UserDatabaseRealm to authenticate users -->
+    <Resource name="UserDatabase" auth="Container"
+              type="org.apache.catalina.UserDatabase"
+       description="User database that can be updated and saved"
+           factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
+          pathname="conf/tomcat-users.xml" />
+
+  </GlobalNamingResources>
+
+  <!-- A "Service" is a collection of one or more "Connectors" that share
+       a single "Container" (and therefore the web applications visible
+       within that Container).  Normally, that Container is an "Engine",
+       but this is not required.
+
+       Note:  A "Service" is not itself a "Container", so you may not
+       define subcomponents such as "Valves" or "Loggers" at this level.
+   -->
+
+  <!-- Define the Tomcat Stand-Alone Service -->
+  <Service name="Catalina">
+
+    <!-- A "Connector" represents an endpoint by which requests are received
+         and responses are returned.  Each Connector passes requests on to the
+         associated "Container" (normally an Engine) for processing.
+
+         By default, a non-SSL HTTP/1.1 Connector is established on port 8080.
+         You can also enable an SSL HTTP/1.1 Connector on port 8443 by
+         following the instructions below and uncommenting the second Connector
+         entry.  SSL support requires the following steps (see the SSL Config
+         HOWTO in the Tomcat 5 documentation bundle for more detailed
+         instructions):
+         * If your JDK version 1.3 or prior, download and install JSSE 1.0.2 or
+           later, and put the JAR files into "$JAVA_HOME/jre/lib/ext".
+         * Execute:
+             %JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA (Windows)
+             $JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA  (Unix)
+           with a password value of "changeit" for both the certificate and
+           the keystore itself.
+
+         By default, DNS lookups are enabled when a web application calls
+         request.getRemoteHost().  This can have an adverse impact on
+         performance, so you can disable it by setting the
+         "enableLookups" attribute to "false".  When DNS lookups are disabled,
+         request.getRemoteHost() will return the String version of the
+         IP address of the remote client.
+    -->
+
+    <!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
+    <Connector port="9595" maxHttpHeaderSize="8192"
+               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
+               enableLookups="false" redirectPort="8443" acceptCount="100"
+               connectionTimeout="20000" disableUploadTimeout="true" />
+    <!-- Note : To disable connection timeouts, set connectionTimeout value
+     to 0 -->
+	
+	<!-- Note : To use gzip compression you could set the following properties :
+	
+			   compression="on" 
+			   compressionMinSize="2048" 
+			   noCompressionUserAgents="gozilla, traviata" 
+			   compressableMimeType="text/html,text/xml"
+	-->
+
+    <!-- Define a SSL HTTP/1.1 Connector on port 8443 -->
+    <!--
+    <Connector port="8443" maxHttpHeaderSize="8192"
+               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
+               enableLookups="false" disableUploadTimeout="true"
+               acceptCount="100" scheme="https" secure="true"
+               clientAuth="false" sslProtocol="TLS" />
+    -->
+
+    <!-- Define an AJP 1.3 Connector on port 8009 -->
+    <Connector port="8009" 
+               enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
+
+    <!-- Define a Proxied HTTP/1.1 Connector on port 8082 -->
+    <!-- See proxy documentation for more information about using this. -->
+    <!--
+    <Connector port="8082" 
+               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
+               enableLookups="false" acceptCount="100" connectionTimeout="20000"
+               proxyPort="80" disableUploadTimeout="true" />
+    -->
+
+    <!-- An Engine represents the entry point (within Catalina) that processes
+         every request.  The Engine implementation for Tomcat stand alone
+         analyzes the HTTP headers included with the request, and passes them
+         on to the appropriate Host (virtual host). -->
+
+    <!-- You should set jvmRoute to support load-balancing via AJP ie :
+    <Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm1">         
+    --> 
+         
+    <!-- Define the top level container in our container hierarchy -->
+    <Engine name="Catalina" defaultHost="localhost">
+
+      <!-- The request dumper valve dumps useful debugging information about
+           the request headers and cookies that were received, and the response
+           headers and cookies that were sent, for all requests received by
+           this instance of Tomcat.  If you care only about requests to a
+           particular virtual host, or a particular application, nest this
+           element inside the corresponding <Host> or <Context> entry instead.
+
+           For a similar mechanism that is portable to all Servlet 2.4
+           containers, check out the "RequestDumperFilter" Filter in the
+           example application (the source for this filter may be found in
+           "$CATALINA_HOME/webapps/examples/WEB-INF/classes/filters").
+
+           Request dumping is disabled by default.  Uncomment the following
+           element to enable it. -->
+      <!--
+      <Valve className="org.apache.catalina.valves.RequestDumperValve"/>
+      -->
+
+      <!-- Because this Realm is here, an instance will be shared globally -->
+
+      <!-- This Realm uses the UserDatabase configured in the global JNDI
+           resources under the key "UserDatabase".  Any edits
+           that are performed against this UserDatabase are immediately
+           available for use by the Realm.  -->
+      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
+             resourceName="UserDatabase"/>
+
+      <!-- Comment out the old realm but leave here for now in case we
+           need to go back quickly -->
+      <!--
+      <Realm className="org.apache.catalina.realm.MemoryRealm" />
+      -->
+
+      <!-- Replace the above Realm with one of the following to get a Realm
+           stored in a database and accessed via JDBC -->
+
+      <!--
+      <Realm  className="org.apache.catalina.realm.JDBCRealm"
+             driverName="org.gjt.mm.mysql.Driver"
+          connectionURL="jdbc:mysql://localhost/authority"
+         connectionName="test" connectionPassword="test"
+              userTable="users" userNameCol="user_name" userCredCol="user_pass"
+          userRoleTable="user_roles" roleNameCol="role_name" />
+      -->
+
+      <!--
+      <Realm  className="org.apache.catalina.realm.JDBCRealm"
+             driverName="oracle.jdbc.driver.OracleDriver"
+          connectionURL="jdbc:oracle:thin:@ntserver:1521:ORCL"
+         connectionName="scott" connectionPassword="tiger"
+              userTable="users" userNameCol="user_name" userCredCol="user_pass"
+          userRoleTable="user_roles" roleNameCol="role_name" />
+      -->
+
+      <!--
+      <Realm  className="org.apache.catalina.realm.JDBCRealm"
+             driverName="sun.jdbc.odbc.JdbcOdbcDriver"
+          connectionURL="jdbc:odbc:CATALINA"
+              userTable="users" userNameCol="user_name" userCredCol="user_pass"
+          userRoleTable="user_roles" roleNameCol="role_name" />
+      -->
+
+      <!-- Define the default virtual host
+           Note: XML Schema validation will not work with Xerces 2.2.
+       -->
+      <Host name="localhost" appBase="webapps"
+       unpackWARs="true" autoDeploy="true"
+       xmlValidation="false" xmlNamespaceAware="false">
+
+        <!-- Defines a cluster for this node,
+             By defining this element, means that every manager will be changed.
+             So when running a cluster, only make sure that you have webapps in there
+             that need to be clustered and remove the other ones.
+             A cluster has the following parameters:
+
+             className = the fully qualified name of the cluster class
+
+             clusterName = a descriptive name for your cluster, can be anything
+
+             mcastAddr = the multicast address, has to be the same for all the nodes
+
+             mcastPort = the multicast port, has to be the same for all the nodes
+             
+             mcastBindAddress = bind the multicast socket to a specific address
+             
+             mcastTTL = the multicast TTL if you want to limit your broadcast
+             
+             mcastSoTimeout = the multicast readtimeout 
+
+             mcastFrequency = the number of milliseconds in between sending a "I'm alive" heartbeat
+
+             mcastDropTime = the number a milliseconds before a node is considered "dead" if no heartbeat is received
+
+             tcpThreadCount = the number of threads to handle incoming replication requests, optimal would be the same amount of threads as nodes 
+
+             tcpListenAddress = the listen address (bind address) for TCP cluster request on this host, 
+                                in case of multiple ethernet cards.
+                                auto means that address becomes
+                                InetAddress.getLocalHost().getHostAddress()
+
+             tcpListenPort = the tcp listen port
+
+             tcpSelectorTimeout = the timeout (ms) for the Selector.select() method in case the OS
+                                  has a wakup bug in java.nio. Set to 0 for no timeout
+
+             printToScreen = true means that managers will also print to std.out
+
+             expireSessionsOnShutdown = true means that 
+
+             useDirtyFlag = true means that we only replicate a session after setAttribute,removeAttribute has been called.
+                            false means to replicate the session after each request.
+                            false means that replication would work for the following piece of code: (only for SimpleTcpReplicationManager)
+                            <%
+                            HashMap map = (HashMap)session.getAttribute("map");
+                            map.put("key","value");
+                            %>
+             replicationMode = can be either 'pooled', 'synchronous' or 'asynchronous'.
+                               * Pooled means that the replication happens using several sockets in a synchronous way. Ie, the data gets replicated, then the request return. This is the same as the 'synchronous' setting except it uses a pool of sockets, hence it is multithreaded. This is the fastest and safest configuration. To use this, also increase the nr of tcp threads that you have dealing with replication.
+                               * Synchronous means that the thread that executes the request, is also the
+                               thread the replicates the data to the other nodes, and will not return until all
+                               nodes have received the information.
+                               * Asynchronous means that there is a specific 'sender' thread for each cluster node,
+                               so the request thread will queue the replication request into a "smart" queue,
+                               and then return to the client.
+                               The "smart" queue is a queue where when a session is added to the queue, and the same session
+                               already exists in the queue from a previous request, that session will be replaced
+                               in the queue instead of replicating two requests. This almost never happens, unless there is a 
+                               large network delay.
+        -->             
+        <!--
+            When configuring for clustering, you also add in a valve to catch all the requests
+            coming in, at the end of the request, the session may or may not be replicated.
+            A session is replicated if and only if all the conditions are met:
+            1. useDirtyFlag is true or setAttribute or removeAttribute has been called AND
+            2. a session exists (has been created)
+            3. the request is not trapped by the "filter" attribute
+
+            The filter attribute is to filter out requests that could not modify the session,
+            hence we don't replicate the session after the end of this request.
+            The filter is negative, ie, anything you put in the filter, you mean to filter out,
+            ie, no replication will be done on requests that match one of the filters.
+            The filter attribute is delimited by ;, so you can't escape out ; even if you wanted to.
+
+            filter=".*\.gif;.*\.js;" means that we will not replicate the session after requests with the URI
+            ending with .gif and .js are intercepted.
+            
+            The deployer element can be used to deploy apps cluster wide.
+            Currently the deployment only deploys/undeploys to working members in the cluster
+            so no WARs are copied upons startup of a broken node.
+            The deployer watches a directory (watchDir) for WAR files when watchEnabled="true"
+            When a new war file is added the war gets deployed to the local instance,
+            and then deployed to the other instances in the cluster.
+            When a war file is deleted from the watchDir the war is undeployed locally 
+            and cluster wide
+        -->
+        
+        <!--
+        <Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster"
+                 managerClassName="org.apache.catalina.cluster.session.DeltaManager"
+                 expireSessionsOnShutdown="false"
+                 useDirtyFlag="true"
+                 notifyListenersOnReplication="true">
+
+            <Membership 
+                className="org.apache.catalina.cluster.mcast.McastService"
+                mcastAddr="228.0.0.4"
+                mcastPort="45564"
+                mcastFrequency="500"
+                mcastDropTime="3000"/>
+
+            <Receiver 
+                className="org.apache.catalina.cluster.tcp.ReplicationListener"
+                tcpListenAddress="auto"
+                tcpListenPort="4001"
+                tcpSelectorTimeout="100"
+                tcpThreadCount="6"/>
+
+            <Sender
+                className="org.apache.catalina.cluster.tcp.ReplicationTransmitter"
+                replicationMode="pooled"
+                ackTimeout="15000"
+                waitForAck="true"/>
+
+            <Valve className="org.apache.catalina.cluster.tcp.ReplicationValve"
+                   filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/>
+                   
+            <Deployer className="org.apache.catalina.cluster.deploy.FarmWarDeployer"
+                      tempDir="/tmp/war-temp/"
+                      deployDir="/tmp/war-deploy/"
+                      watchDir="/tmp/war-listen/"
+                      watchEnabled="false"/>
+                      
+            <ClusterListener className="org.apache.catalina.cluster.session.ClusterSessionListener"/>
+        </Cluster>
+        -->        
+
+
+
+        <!-- Normally, users must authenticate themselves to each web app
+             individually.  Uncomment the following entry if you would like
+             a user to be authenticated the first time they encounter a
+             resource protected by a security constraint, and then have that
+             user identity maintained across *all* web applications contained
+             in this virtual host. -->
+        <!--
+        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
+        -->
+
+        <!-- Access log processes all requests for this virtual host.  By
+             default, log files are created in the "logs" directory relative to
+             $CATALINA_HOME.  If you wish, you can specify a different
+             directory with the "directory" attribute.  Specify either a relative
+             (to $CATALINA_HOME) or absolute path to the desired directory.
+        -->
+        <!--
+        <Valve className="org.apache.catalina.valves.AccessLogValve"
+                 directory="logs"  prefix="localhost_access_log." suffix=".txt"
+                 pattern="common" resolveHosts="false"/>
+        -->
+
+        <!-- Access log processes all requests for this virtual host.  By
+             default, log files are created in the "logs" directory relative to
+             $CATALINA_HOME.  If you wish, you can specify a different
+             directory with the "directory" attribute.  Specify either a relative
+             (to $CATALINA_HOME) or absolute path to the desired directory.
+             This access log implementation is optimized for maximum performance,
+             but is hardcoded to support only the "common" and "combined" patterns.
+        -->
+        <!--
+        <Valve className="org.apache.catalina.valves.FastCommonAccessLogValve"
+                 directory="logs"  prefix="localhost_access_log." suffix=".txt"
+                 pattern="common" resolveHosts="false"/>
+        -->
+
+      </Host>
+
+    </Engine>
+
+  </Service>
+
+</Server>

Propchange: maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/server.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/server.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/tomcat-users.xml
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/tomcat-users.xml?view=auto&rev=468118
==============================================================================
--- maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/tomcat-users.xml (added)
+++ maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/tomcat-users.xml Thu Oct 26 13:31:31 2006
@@ -0,0 +1,10 @@
+<!--
+  NOTE:  By default, no user is included in the "manager" role required
+  to operate the "/manager" web application.  If you wish to use this app,
+  you must define such a user - the username and password are arbitrary.
+-->
+<tomcat-users>
+  <user name="tomcat" password="tomcat" roles="tomcat" />
+  <user name="role1"  password="tomcat" roles="role1"  />
+  <user name="both"   password="tomcat" roles="tomcat,role1" />
+</tomcat-users>

Propchange: maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/tomcat-users.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/continuum/trunk/continuum-webapp-test/src/test/tomcat5x/conf/tomcat-users.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"



Mime
View raw message