+++ /dev/null
-ReadMe
-----------
-Run selenium tests in src/test/testng with Maven and TestNG
- - mvn clean install
-
-Run Selenium tests in src/test/testng against an existing Archiva instance
- - Start Archiva
- - Configure admin user for archiva (match values in src/test/resources/testng.properties )
- - modify src/test/resources/testng.properties as needed
- - mvn clean install -Dcontainer-existing
-
-The Cargo installations are stored outside of target to avoid multiple downloads.
-To remove the Cargo installations and re-download them next run, use:
- - mvn -Pclean-cargo clean
-
-Internet Explorer and Safari users must disable their popup blockers. Using *iexplore as
-the browser requires running as an Administrator on Windows 7/Vista, or alternatively you
-can use *iexploreproxy.
-
-
-
-
-IMPORTANT:
-
-When writing Selenium tests for artifact upload, please avoid using the "test" syllable/word for
-the groupId or artifactId (ex. test.group:testAddArtifactValidValues:1.0) as this is used for the
-search tests. The tests explicitly assert the returned number of hits for searching an artifact with
-a groupId or artifactId containing the word "test", so if you upload or add a new artifact which has
-the term "test", the number of hits will be different and the search tests will fail.
-
-See org.apache.archiva.web.test.SearchTest.java or read the related thread discussion at
-http://old.nabble.com/Selenium-tests-failure-in-trunk-td27830786.html
-
-
+++ /dev/null
-<?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.archiva</groupId>
- <artifactId>archiva-web</artifactId>
- <version>1.4-M3-SNAPSHOT</version>
- </parent>
- <artifactId>archiva-webapp-test</artifactId>
- <packaging>pom</packaging>
- <name>Archiva Web :: Application Tests</name>
-
- <dependencies>
- <dependency>
- <groupId>org.testng</groupId>
- <artifactId>testng</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>commons-io</groupId>
- <artifactId>commons-io</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.archiva</groupId>
- <artifactId>archiva-webapp</artifactId>
- <type>war</type>
- </dependency>
- <dependency>
- <groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-utils</artifactId>
- </dependency>
- <dependency>
- <groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-slf4j-logging</artifactId>
- <exclusions>
- <exclusion>
- <artifactId>plexus-component-api</artifactId>
- <groupId>org.codehaus.plexus</groupId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.seleniumhq.selenium.client-drivers</groupId>
- <artifactId>selenium-java-client-driver</artifactId>
- <scope>test</scope>
- <exclusions>
- <exclusion>
- <groupId>commons-logging</groupId>
- <artifactId>commons-logging</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
-
- <!-- Dependency for MavenConnectionTest -->
- <dependency>
- <groupId>jdom</groupId>
- <artifactId>jdom</artifactId>
- </dependency>
- <dependency>
- <groupId>jaxen</groupId>
- <artifactId>jaxen</artifactId>
- </dependency>
-
- <!-- Dependencies below are provided by the appserver -->
- <dependency>
- <groupId>org.apache.derby</groupId>
- <artifactId>derby</artifactId>
- </dependency>
- <dependency>
- <groupId>javax.mail</groupId>
- <artifactId>mail</artifactId>
- </dependency>
- <dependency>
- <groupId>javax.activation</groupId>
- <artifactId>activation</artifactId>
- </dependency>
- </dependencies>
-
- <build>
- <testSourceDirectory>src/test/testng</testSourceDirectory>
- <testResources>
- <testResource>
- <directory>src/test/resources</directory>
- <filtering>true</filtering>
- <includes>
- <include>**/*</include>
- </includes>
- </testResource>
- </testResources>
- <pluginManagement>
- <plugins>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>selenium-maven-plugin</artifactId>
- <dependencies>
- <dependency>
- <groupId>org.seleniumhq.selenium</groupId>
- <artifactId>selenium-server</artifactId>
- <version>${selenium-server.version}</version>
- </dependency>
-
- <dependency>
- <groupId>org.seleniumhq.selenium</groupId>
- <artifactId>selenium-remote-driver</artifactId>
- <version>${selenium-server.version}</version>
- </dependency>
-
- <dependency>
- <groupId>org.seleniumhq.selenium</groupId>
- <artifactId>selenium-api</artifactId>
- <version>${selenium-server.version}</version>
- </dependency>
- </dependencies>
- </plugin>
- <plugin>
- <groupId>org.apache.rat</groupId>
- <artifactId>apache-rat-plugin</artifactId>
- <configuration>
- <excludes>
- <exclude>src/test/resources/appserver-base/**</exclude>
- <exclude>src/test/resources/repository/**</exclude>
- <exclude>src/test/resources/local-repo/**</exclude>
- <exclude>src/test/resources/projects/**</exclude>
- <exclude>src/test/resources/snapshots/**</exclude>
- <exclude>src/test/tomcat*/conf/catalina.policy</exclude>
- </excludes>
- </configuration>
- </plugin>
- </plugins>
- </pluginManagement>
- <plugins>
- <plugin>
- <artifactId>maven-resources-plugin</artifactId>
- <executions>
- <execution>
- <goals>
- <goal>testResources</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <configuration>
- <source>1.5</source>
- <target>1.5</target>
- <verbose>true</verbose>
- </configuration>
- <executions>
- <execution>
- <goals>
- <goal>testCompile</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
-
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <configuration>
- <redirectTestOutputToFile>false</redirectTestOutputToFile>
- <properties>
- <!--
- Use this instead of suiteXmlFiles so that we can add the exclusion, as it is only accepted without suiteXmlFiles
- -->
- <property>
- <name>listener</name>
- <value>org.apache.archiva.web.test.listener.CaptureScreenShotsListener</value>
- </property>
- <property>
- <name>excludegroups</name>
- <!-- Exclude on all browsers but Firefox, as it is the only one that Selenium supports file uploads on -->
- <value>${excluded.groups}</value>
- </property>
- </properties>
- <runOrder>alphabetical</runOrder>
- </configuration>
- <executions>
- <execution>
- <id>integration-tests</id>
- <phase>integration-test</phase>
- <goals>
- <goal>test</goal>
- </goals>
- <configuration>
- <systemProperties>
- <property>
- <name>browser</name>
- <value>${selenium.browser}</value>
- </property>
- <property>
- <name>baseUrl</name>
- <value>${baseUrl}</value>
- </property>
- <property>
- <name>maxWaitTimeInMs</name>
- <value>${maxWaitTimeInMs}</value>
- </property>
- </systemProperties>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
-
- <profiles>
- <profile>
- <id>create-container</id>
- <activation>
- <property>
- <name>!container</name>
- </property>
- </activation>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <executions>
- <execution>
- <id>unzip-archiva-webapp</id>
- <phase>generate-resources</phase>
- <goals>
- <goal>unpack</goal>
- </goals>
- <configuration>
- <artifactItems>
- <artifactItem>
- <groupId>${project.groupId}</groupId>
- <artifactId>archiva-webapp</artifactId>
- <version>${project.version}</version>
- <type>war</type>
- </artifactItem>
- </artifactItems>
- <outputDirectory>${project.build.directory}/${container.name}conf/webapps/archiva</outputDirectory>
- <overWriteSnapshots>true</overWriteSnapshots>
- </configuration>
- </execution>
- <execution>
- <id>prepare-provided-dependencies</id>
- <phase>generate-resources</phase>
- <goals>
- <goal>copy-dependencies</goal>
- </goals>
- <configuration>
- <!-- TODO: this sometimes copies everything, causing problems with the server start up -->
- <includeGroupIds>org.apache.derby,javax.mail,javax.activation</includeGroupIds>
- <overWriteReleases>false</overWriteReleases>
- <overWriteSnapshots>true</overWriteSnapshots>
- <excludeTransitive>false</excludeTransitive>
- <outputDirectory>${project.build.directory}/providedDependencies</outputDirectory>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-antrun-plugin</artifactId>
- <executions>
- <execution>
- <phase>generate-resources</phase>
- <goals>
- <goal>run</goal>
- </goals>
- <configuration>
- <tasks>
- <copy todir="${project.build.directory}/appserver-base">
- <fileset dir="src/test/resources/appserver-base"/>
- </copy>
- <copy todir="${project.build.directory}/repository">
- <fileset dir="src/test/resources/repository"/>
- </copy>
- <copy todir="${project.build.directory}/index">
- <fileset dir="src/test/resources/index"/>
- </copy>
- <copy todir="${project.build.directory}/snapshots">
- <fileset dir="src/test/resources/snapshots"/>
- </copy>
- <copy todir="${project.build.directory}/projects">
- <fileset dir="src/test/resources/projects"/>
- </copy>
- <copy todir="${project.build.directory}/local-repo">
- <fileset dir="src/test/resources/local-repo"/>
- </copy>
- </tasks>
- </configuration>
- </execution>
- <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="${cargo.install.dir}/apache-tomcat-${tomcat.version}/apache-tomcat-${tomcat.version}/common/lib">
- <fileset dir="${project.build.directory}/providedDependencies">
- <include name="**/*.jar"/>
- </fileset>
- </copy>
- <!-- for tomcat 6 -->
- <copy
- todir="${cargo.install.dir}/apache-tomcat-${tomcat.version}/apache-tomcat-${tomcat.version}/lib">
- <fileset dir="${project.build.directory}/providedDependencies">
- <include name="**/*.jar"/>
- </fileset>
- </copy>
- </tasks>
- </configuration>
- <goals>
- <goal>run</goal>
- </goals>
- </execution>
- <execution>
- <id>check-archiva-loaded</id>
- <phase>integration-test</phase>
- <configuration>
- <tasks>
- <get src="http://localhost:${container.test.port}/archiva/" dest="${project.build.directory}/index.html"/>
- <delete file="${project.build.directory}/index.html"/>
- </tasks>
- </configuration>
- <goals>
- <goal>run</goal>
- </goals>
- </execution>
- </executions>
- </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>${cargo.wait}</wait>
- <container>
- <containerId>${container.name}</containerId>
- <zipUrlInstaller>
- <url>${container.url}</url>
- <downloadDir>${user.home}/.cargo</downloadDir>
- </zipUrlInstaller>
- <log>${project.build.directory}/logs/${container.name}.log</log>
- <output>${project.build.directory}/logs/${container.name}.out</output>
- <timeout>${cargo.timeout}</timeout>
- <systemProperties>
- <appserver.base>${project.build.directory}/appserver-base</appserver.base>
- <appserver.home>${project.build.directory}/appserver-base</appserver.home>
- <derby.system.home>${project.build.directory}</derby.system.home>
- <java.io.tmpdir>${project.build.directory}</java.io.tmpdir>
- </systemProperties>
- </container>
- <configuration>
- <home>${project.build.directory}/${container.name}conf</home>
- <type>existing</type>
- <properties>
- <cargo.servlet.port>${container.test.port}</cargo.servlet.port>
- <cargo.jvmargs>${cargo.jvm.args}</cargo.jvmargs>
- </properties>
- </configuration>
- </configuration>
- </plugin>
- </plugins>
- </build>
- </profile>
- <profile>
- <id>existing-container</id>
- <activation>
- <property>
- <name>!baseUrl</name>
- </property>
- </activation>
- <properties>
- <baseUrl>http://localhost:${container.test.port}/archiva/</baseUrl>
- </properties>
- </profile>
- <profile>
- <id>start-selenium</id>
- <activation>
- <property>
- <name>!seleniumHost</name>
- </property>
- </activation>
- <properties>
- <seleniumHost>localhost</seleniumHost>
- <seleniumPort>4444</seleniumPort>
- </properties>
- <build>
- <plugins>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>selenium-maven-plugin</artifactId>
- <executions>
- <execution>
- <phase>pre-integration-test</phase>
- <goals>
- <goal>start-server</goal>
- </goals>
- <configuration>
- <background>true</background>
- <port>${seleniumPort}</port>
- <logOutput>true</logOutput>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- </profile>
- <profile>
- <id>tomcat5x</id>
- <activation>
- <property>
- <name>tomcat5</name>
- </property>
- </activation>
- <properties>
- <container.name>tomcat5x</container.name>
- <tomcat.version>${tomcat5x.version}</tomcat.version>
- <container.url>
- ${apache.mirror.url}/tomcat/tomcat-5/v${tomcat5x.version}/bin/apache-tomcat-${tomcat5x.version}.zip
- </container.url>
- </properties>
- </profile>
- <profile>
- <id>tomcat6x</id>
- <activation>
- <property>
- <name>!container</name>
- </property>
- </activation>
- <properties>
- <container.name>tomcat6x</container.name>
- <tomcat.version>${tomcat6x.version}</tomcat.version>
- <container.url>
- ${apache.mirror.url}/tomcat/tomcat-6/v${tomcat6x.version}/bin/apache-tomcat-${tomcat6x.version}.zip
- </container.url>
- </properties>
- </profile>
- <profile>
- <id>firefox</id>
- <activation>
- <property>
- <name>!browser</name>
- </property>
- </activation>
- <properties>
- <selenium.browser>*firefox</selenium.browser>
- <excluded.groups/>
- </properties>
- </profile>
- <profile>
- <id>chrome</id>
- <activation>
- <property>
- <name>browser</name>
- <value>chrome</value>
- </property>
- </activation>
- <properties>
- <selenium.browser>*googlechrome</selenium.browser>
- <excluded.groups>requiresUpload</excluded.groups>
- </properties>
- </profile>
- <profile>
- <id>iexplore</id>
- <activation>
- <property>
- <name>browser</name>
- <value>iexplore</value>
- </property>
- </activation>
- <properties>
- <selenium.browser>*iexplore</selenium.browser>
- <excluded.groups>requiresUpload</excluded.groups>
- </properties>
- </profile>
- <profile>
- <id>safari</id>
- <activation>
- <property>
- <name>browser</name>
- <value>safari</value>
- </property>
- </activation>
- <properties>
- <selenium.browser>*safari</selenium.browser>
- <excluded.groups>requiresUpload</excluded.groups>
- </properties>
- </profile>
- <profile>
- <id>otherbrowser</id>
- <activation>
- <property>
- <name>browser</name>
- <value>other</value>
- </property>
- </activation>
- <properties>
- <selenium.browser>*custom ${browserPath}</selenium.browser>
- <excluded.groups>requiresUpload</excluded.groups>
- </properties>
- </profile>
- <profile>
- <id>headless</id>
- <build>
- <plugins>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>selenium-maven-plugin</artifactId>
- <executions>
- <execution>
- <id>xvfb</id>
- <phase>validate</phase>
- <goals>
- <goal>xvfb</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- </profile>
- <profile>
- <id>debug</id>
- <properties>
- <!-- TODO: review how appropriate the memory settings are - should work with less -->
- <cargo.jvm.args>
- -Xdebug -Xnoagent -Djava.compiler=NONE
- -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=${cargo.debug.port}
- -Xmx512m -XX:MaxPermSize=256m
- </cargo.jvm.args>
- <cargo.debug.port>8000</cargo.debug.port>
- <!-- wait an unusual amount of time (1hr) to allow debugging to occur -->
- <maxWaitTimeInMs>3600000</maxWaitTimeInMs>
- </properties>
- </profile>
- <profile>
- <id>ci-server</id>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-antrun-plugin</artifactId>
- <executions>
- <execution>
- <id>cleanup-files</id>
- <goals>
- <goal>run</goal>
- </goals>
- <configuration>
- <tasks>
- <delete file="${user.home}/.m2/archiva.xml" quiet="true"/>
- </tasks>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- </profile>
- </profiles>
-
-</project>
+++ /dev/null
-<configuration>
- <localRepository></localRepository>
- <webapp>
- <ui>
- <appletFindEnabled>false</appletFindEnabled>
- </ui>
- </webapp>
-</configuration>
+++ /dev/null
-<!--
- ~ 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 Repository PUBLIC "-//The Apache Software Foundation//DTD Jackrabbit 1.6//EN"
- "http://jackrabbit.apache.org/dtd/repository-1.6.dtd">
-
-<Repository>
- <FileSystem class="org.apache.jackrabbit.core.fs.mem.MemoryFileSystem"/>
- <!--<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
- <param name="path" value="${rep.home}/repository"/>
-</FileSystem> -->
- <Security appName="Jackrabbit">
- <SecurityManager class="org.apache.jackrabbit.core.security.simple.SimpleSecurityManager" workspaceName="security"/>
- <AccessManager class="org.apache.jackrabbit.core.security.simple.SimpleAccessManager"/>
- <LoginModule class="org.apache.jackrabbit.core.security.simple.SimpleLoginModule"/>
- </Security>
- <Workspaces rootPath="${rep.home}/workspaces" defaultWorkspace="default"/>
- <Workspace name="${wsp.name}">
- <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
- <param name="path" value="${wsp.home}"/>
- </FileSystem>
- <PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.BundleFsPersistenceManager"/>
- <SearchIndex class="org.apache.jackrabbit.core.query.lucene.SearchIndex">
- <param name="path" value="${wsp.home}/index"/>
- </SearchIndex>
- </Workspace>
- <Versioning rootPath="${rep.home}/version">
- <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
- <param name="path" value="${rep.home}/version"/>
- </FileSystem>
- <PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.BundleFsPersistenceManager"/>
- </Versioning>
-</Repository>
+++ /dev/null
-<configuration />
+++ /dev/null
-ea7dea9244b2a0975cfa117dc34fe18e
\ No newline at end of file
+++ /dev/null
-1039566ff5361d07eccd1243c45929b96441c7d6
\ No newline at end of file
+++ /dev/null
-<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>test</groupId>
- <artifactId>test</artifactId>
- <packaging>jar</packaging>
- <version>1.0</version>
- <name>test</name>
- <url>http://maven.apache.org</url>
-
- <licenses>
- <license>
- <name>Test License</name>
- <url>http://www.test.org/test.html</url>
- </license>
- </licenses>
-
- <mailingLists>
- <mailingList>
- <name>test user list</name>
- <subscribe>http://test.net/lists/listinfo/test-user</subscribe>
- <unsubscribe>http://test.net/lists/listinfo/test-user</unsubscribe>
- <archive>http://www.test-archive.com/test-user%40lists.test.net/</archive>
- </mailingList>
- <mailingList>
- <name>test developer list</name>
- <subscribe>http://test.net/lists/listinfo/test-dev</subscribe>
- <unsubscribe>http://test.net/lists/listinfo/test-dev</unsubscribe>
- <archive>http://www.test-archive.com/test-dev%40lists.test.net/</archive>
- </mailingList>
- </mailingLists>
-
- <dependencies>
- <dependency>
- <groupId>test.group.id</groupId>
- <artifactId>testArtifactId</artifactId>
- <version>1.0</version>
- </dependency>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>3.8.1</version>
- <scope>test</scope>
- </dependency>
- </dependencies>
-
-<distributionManagement>
-<repository>
- <id>test</id>
-<url>file://localhost/Users/brett/scm/archiva/archiva/archiva-modules/archiva-web/archiva-webapp-test/src/test/it-resources/appserver-base/data/repositories/internal</url>
-</repository>
-</distributionManagement>
-</project>
-
+++ /dev/null
-f80c7c493716de649a99db00cd2ff34c
\ No newline at end of file
+++ /dev/null
-4b95c6fa09d1e02efdb69129f53f025e33bc8958
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<metadata>
- <groupId>test</groupId>
- <artifactId>test</artifactId>
- <version>1.0</version>
- <versioning>
- <versions>
- <version>1.0</version>
- </versions>
- <lastUpdated>20100114015837</lastUpdated>
- </versioning>
-</metadata>
+++ /dev/null
-dab1b8c2475fe839f387ceaef0d82b30
\ No newline at end of file
+++ /dev/null
-4e5b414d5419121ef75131cb52235a9abbf2095a
\ No newline at end of file
+++ /dev/null
-<settings>
- <localRepository></localRepository>
- <servers>
- <server>
- <id>snapshots</id>
- <username>admin</username>
- <password>admin1</password>
- </server>
- </servers>
- <profiles>
- <profile>
- <id>repositories</id>
- <repositories>
- <repository>
- <id>snapshots</id>
- <name>snapshots-repository</name>
- <url>http://localhost:9696/archiva/repository/snapshots/</url>
- <releases>
- <enabled>false</enabled>
- </releases>
- <snapshots>
- <enabled>true</enabled>
- </snapshots>
- </repository>
- </repositories>
- <pluginRepositories>
- <pluginRepository>
- <id>snapshots</id>
- <name>snapshots-repository</name>
- <url>http://localhost:9696/archiva/repository/snapshot/</url>
- <releases>
- <enabled>false</enabled>
- </releases>
- <snapshots>
- <enabled>true</enabled>
- </snapshots>
- </pluginRepository>
- </pluginRepositories>
- </profile>
- </profiles>
- <activeProfiles>
- <activeProfile>repositories</activeProfile>
- </activeProfiles>
-</settings>
\ No newline at end of file
+++ /dev/null
-<?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>
- <groupId>org.apache.archiva</groupId>
- <artifactId>bad-dependency</artifactId>
- <version>1.0</version>
- <packaging>jar</packaging>
- <name>Bad Dependency</name>
- <dependencies>
- <dependency>
- <groupId>org.apache.archiva.web.test</groupId>
- <artifactId>bad-dependency</artifactId>
- <version>1.0</version>
- </dependency>
- <dependency>
- <groupId>org.apache.archiva.web.test</groupId>
- <artifactId>foo-bar</artifactId>
- <version>1.2-SNAPSHOT</version>
- </dependency>
- </dependencies>
-</project>
\ No newline at end of file
+++ /dev/null
-<?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>
- <groupId>org.apache.archiva</groupId>
- <artifactId>dependency-in-proxied</artifactId>
- <version>1.0</version>
- <packaging>jar</packaging>
- <name>Dependency In Proxied</name>
- <dependencies>
- <!--dependency>
- <groupId>org.apache.maven</groupId>
- <artifactId>maven-jxr</artifactId>
- <version>2.1</version>
- </dependency-->
- <dependency>
- <groupId>com.lowagie</groupId>
- <artifactId>itext</artifactId>
- <version>1.3</version>
- </dependency>
- </dependencies>
-</project>
\ No newline at end of file
+++ /dev/null
-#Last Scan Information, managed by Archiva. DO NOT EDIT
-#Thu Apr 19 17:04:36 PHT 2007
-scan.included.files=12
-scan.skipped.files=0
-scan.finished.timestamp=1176973476967
-scan.consumed.files=20
-scan.started.timestamp=1176973467414
+++ /dev/null
-0360f14347d5502114ba7afe4ea2e07f
\ No newline at end of file
+++ /dev/null
-4a667b9923fb936409b96c8242bebc2f96f374f5
\ No newline at end of file
+++ /dev/null
-<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>org.apache.maven.archiva.web.test</groupId>
- <artifactId>artifact-a</artifactId>
- <packaging>jar</packaging>
- <version>1.0</version>
- <name>artifact-a</name>
- <url>http://maven.apache.org</url>
- <dependencies>
- <dependency>
- <groupId>org.apache.maven.archiva.web.test</groupId>
- <artifactId>artifact-b</artifactId>
- <version>2.0</version>
- </dependency>
- </dependencies>
- <build>
- <extensions>
- <extension>
- <groupId>org.apache.maven.wagon</groupId>
- <artifactId>wagon-webdav</artifactId>
- </extension>
- </extensions>
- </build>
-</project>
+++ /dev/null
-cdf69ffbcb888aacea6cfeaf479fefd1
\ No newline at end of file
+++ /dev/null
-f6a384b1ab62ed45ae7dee1a059815e94bbc7fa6
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?><metadata>
- <groupId>org.apache.maven.archiva.web.test</groupId>
- <artifactId>artifact-a</artifactId>
- <version>1.0</version>
- <versioning>
- <versions>
- <version>1.0</version>
- </versions>
- <lastUpdated>20070417090928</lastUpdated>
- </versioning>
-</metadata>
\ No newline at end of file
+++ /dev/null
-bc87573a595a2c387b5baa4ad7d06743
\ No newline at end of file
+++ /dev/null
-e9ecaaa14a3c09b07206980c15749a631dbc986a
\ No newline at end of file
+++ /dev/null
-16a308257949f23afa5d1f1dec41aa44
\ No newline at end of file
+++ /dev/null
-36a3a9cc35b8ca0d73998d7b39d290b489800a22
\ No newline at end of file
+++ /dev/null
-<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>org.apache.maven.archiva.web.test</groupId>
- <artifactId>artifact-b</artifactId>
- <packaging>jar</packaging>
- <version>2.0</version>
- <name>artifact-b</name>
- <url>http://maven.apache.org</url>
- <dependencies>
- <dependency>
- <groupId>org.apache.maven.archiva.web.test</groupId>
- <artifactId>artifact-c</artifactId>
- <version>3.0</version>
- </dependency>
- </dependencies>
- <build>
- <extensions>
- <extension>
- <groupId>org.apache.maven.wagon</groupId>
- <artifactId>wagon-webdav</artifactId>
- </extension>
- </extensions>
- </build>
-</project>
+++ /dev/null
-be5b8f8539a62b5935793ebeb87215fd
\ No newline at end of file
+++ /dev/null
-012a658d4a4f70aa3e8dd4b2db67020817b7dfcc
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?><metadata>
- <groupId>org.apache.maven.archiva.web.test</groupId>
- <artifactId>artifact-b</artifactId>
- <version>2.0</version>
- <versioning>
- <versions>
- <version>2.0</version>
- </versions>
- <lastUpdated>20070417090908</lastUpdated>
- </versioning>
-</metadata>
\ No newline at end of file
+++ /dev/null
-bedfccc27fc7dc262d5c99a7aa8b83d8
\ No newline at end of file
+++ /dev/null
-4902ea6b16838ff26f9136460c4394b0ad7cc7f5
\ No newline at end of file
+++ /dev/null
-853a10a201f8a296e37e856615c5349c
\ No newline at end of file
+++ /dev/null
-5155da8820ed77c43e983c1244d94a3b27bf08f7
\ No newline at end of file
+++ /dev/null
-<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>org.apache.maven.archiva.web.test</groupId>
- <artifactId>artifact-c</artifactId>
- <packaging>jar</packaging>
- <version>3.0</version>
- <name>artifact-c</name>
- <url>http://maven.apache.org</url>
- <dependencies>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>3.8.1</version>
- <scope>test</scope>
- </dependency>
- </dependencies>
- <build>
- <extensions>
- <extension>
- <groupId>org.apache.maven.wagon</groupId>
- <artifactId>wagon-webdav</artifactId>
- </extension>
- </extensions>
- </build>
-</project>
+++ /dev/null
-4df0417579b1492f37da14316adb85af
\ No newline at end of file
+++ /dev/null
-c3b007acd9c17b80753b39a4121255965e7e2e65
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?><metadata>
- <groupId>org.apache.maven.archiva.web.test</groupId>
- <artifactId>artifact-c</artifactId>
- <version>3.0</version>
- <versioning>
- <versions>
- <version>3.0</version>
- </versions>
- <lastUpdated>20070417090835</lastUpdated>
- </versioning>
-</metadata>
\ No newline at end of file
+++ /dev/null
-74d58d97e78d5e51cc02c489c5edba0d
\ No newline at end of file
+++ /dev/null
-5c7571eb35248be0f65758783b036e8f7899c146
\ No newline at end of file
+++ /dev/null
-55f498a518e1151ce2e54daa674691de
\ No newline at end of file
+++ /dev/null
-730551bde461564d3f8a7e0178ef9bc54a86d2dd
\ No newline at end of file
+++ /dev/null
-<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>org.apache.maven.archiva.web.test</groupId>
- <artifactId>artifact-s</artifactId>
- <packaging>jar</packaging>
- <version>0.1</version>
- <name>artifact-s</name>
- <url>http://maven.apache.org</url>
- <dependencies>
- <dependency>
- <groupId>org.apache.maven.archiva.web.test</groupId>
- <artifactId>artifact-a</artifactId>
- <version>1.0</version>
- </dependency>
- </dependencies>
- <build>
- <extensions>
- <extension>
- <groupId>org.apache.maven.wagon</groupId>
- <artifactId>wagon-webdav</artifactId>
- </extension>
- </extensions>
- </build>
-</project>
+++ /dev/null
-746ba2848229dbc1c9683ece0e7f02c8
\ No newline at end of file
+++ /dev/null
-0d068f63069a86d982075a1dca7fe74fd95a29df
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?><metadata>
- <groupId>org.apache.maven.archiva.web.test</groupId>
- <artifactId>artifact-s</artifactId>
- <version>0.1</version>
- <versioning>
- <versions>
- <version>0.1</version>
- </versions>
- <lastUpdated>20070417090721</lastUpdated>
- </versioning>
-</metadata>
\ No newline at end of file
+++ /dev/null
-baa0ad0afaba9cee66ec262b38f796b6
\ No newline at end of file
+++ /dev/null
-dea84d579f673d2d87c7bd47e4318cdf8e59e4d0
\ No newline at end of file
+++ /dev/null
-#Last Scan Information, managed by Archiva. DO NOT EDIT
-#Thu Apr 19 17:04:36 PHT 2007
-scan.included.files=12
-scan.skipped.files=0
-scan.finished.timestamp=1176973476967
-scan.consumed.files=20
-scan.started.timestamp=1176973467414
+++ /dev/null
-306d556e6e5e4d604dc854d09ddcdefd
\ No newline at end of file
+++ /dev/null
-afb6586f5eb4c63dd5735a0bed11c99c7fac6755
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?><project>
- <modelVersion>4.0.0</modelVersion>
- <groupId>org.apache.maven.archiva.web.test</groupId>
- <artifactId>foo-bar</artifactId>
- <version>1.0-SNAPSHOT</version>
- <distributionManagement>
- <status>deployed</status>
- </distributionManagement>
-</project>
\ No newline at end of file
+++ /dev/null
-8e896baea663a45d7bd2737f8e464481
\ No newline at end of file
+++ /dev/null
-e37897c617d78dedd978766a2db318d301e80105
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?><metadata>
- <groupId>org.apache.maven.archiva.web.test</groupId>
- <artifactId>foo-bar</artifactId>
- <version>1.0-SNAPSHOT</version>
- <versioning>
- <snapshot>
- <buildNumber>1</buildNumber>
- </snapshot>
- <lastUpdated>20070425105840</lastUpdated>
- </versioning>
-</metadata>
\ No newline at end of file
+++ /dev/null
-add4f71a005137e9a296c5b192e900c2
\ No newline at end of file
+++ /dev/null
-b505e302169e04fc821bf571da7435b1e42ef8d7
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?><metadata>
- <groupId>org.apache.maven.archiva.web.test</groupId>
- <artifactId>foo-bar</artifactId>
- <version>1.0-SNAPSHOT</version>
- <versioning>
- <versions>
- <version>1.0-SNAPSHOT</version>
- </versions>
- <lastUpdated>20070425105840</lastUpdated>
- </versioning>
-</metadata>
\ No newline at end of file
+++ /dev/null
-f3b657fb48d2e82fee5fada169756938
\ No newline at end of file
+++ /dev/null
-f4629e609deb95cefdcdddc6dd8c2942d1c3e47f
\ No newline at end of file
+++ /dev/null
-#
-# 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.
-#
-
-# properties for integration tests
-
-ADMIN_USERNAME=admin
-ADMIN_FULLNAME=Administrator
-ADMIN_EMAIL=admin@localhost
-ADMIN_PASSWORD=admin1
-
-SELENIUM_HOST=localhost
-SELENIUM_PORT=4444
-SELENIUM_BROWSER=*firefox
-
-# Search, Artifact Management
-SEARCH_BAD_ARTIFACT=asdf
-# Existing Artifact
-ARTIFACT_GROUPID=test
-ARTIFACT_ARTIFACTID=test
-ARTIFACT_VERSION=1.0
-ARTIFACT_PACKAGING=jar
-ARTIFACT_CLASSNAME=test.App
-
-# Artifact for testing add artifact with valid values
-VALIDARTIFACT_GROUPID=addArtifactValidValues
-VALIDARTIFACT_ARTIFACTID=addArtifactValidValues-artifact
-
-# Artifact for upload action in audit log report - MRM-1304
-AUDITLOGARTIFACT_GROUPID=group.auditLogUpload
-AUDITLOGARTIFACT_ARTIFACTID=auditLogUpload-artifact
-AUDITLOG_EXPECTED_ARTIFACT=group/auditLogUpload/auditLogUpload-artifact/1.0/auditLogUpload-artifact-1.0.jar
-
-# Reports
-REPOSITORY_NAME=internal
-START_DATE=05/01/2009
-END_DATE=05/30/2009
-
-# User Management
-# For password and new password
-USERROLE_EMAIL=admin@localhost
-USERROLE_PASSWORD=password1
-NEW_USERROLE_PASSWORD=password123
-
-# Guest Role
-GUEST_USERNAME=guest_user
-GUEST_FULLNAME=Guest
-# Registered User Role
-REGISTERED_USERNAME=reg_user
-REGISTERED_FULLNAME=Registered User
-# System Administrator
-SYSAD_USERNAME=sys_admin
-SYSAD_FULLNAME=System Administrator
-# User Administrator
-USERADMIN_USERNAME=user_admin
-USERADMIN_FULLNAME=User Administrator
-# Global Repository Manager
-GLOBALREPOMANAGER_USERNAME=globalrepo_manager
-GLOBALREPOMANAGER_FULLNAME=Global Repository Manager
-# Global Repository Observer
-GLOBALREPOOBSERVER_USERNAME=globalrepo_observer
-GLOBALREPOOBSERVER_FULLNAME=Global Repository Observer
-# Repository Manager - internal
-REPOMANAGER_INTERNAL_USERNAME=repomanager_internal
-REPOMANAGER_INTERNAL_FULLNAME=Repository Manager - internal
-# Repository Manager - snapshots
-REPOMANAGER_SNAPSHOTS_USERNAME=repomanager_snapshots
-REPOMANAGER_SNAPSHOTS_FULLNAME=Repository Manager - snapshots
-# Repository Observer - internal
-REPOOBSERVER_INTERNAL_USERNAME=repoobserver_internal
-REPOOBSERVER_INTERNAL_FULLNAME=Repository Observer - internal
-# Repository Observer - snapshots
-REPOOBSERVER_SNAPSHOTS_USERNAME=repoobserver_snapshots
-REPOOBSERVER_SNAPSHOTS_FULLNAME=Repository Observer - snapshots
-
-# Add Artifact
-GROUPID=test
-ARTIFACTID=test
-VERSION=1.0
-PACKAGING=jar
-ARTIFACTFILEPATH=test
-REPOSITORYID=internal
-
-GROUPID1=delete
-ARTIFACTID1=delete
-VERSION1=1.0
-PACKAGING1=jar
-ARTIFACTFILEPATH1=test
-REPOSITORYID1=internal
-
-GROUPID_DOTNETARTIFACT=dotNetTypes
-ARTIFACTID_DOTNETARTIFACT=dotNetTypes
-PACKAGING_DOTNETARTIFACT=library
-
-SNAPSHOT_GROUPID=org.apache.archiva
-SNAPSHOT_ARTIFACTID=archiva-test
-SNAPSHOT_VERSION=1.0-SNAPSHOT
-SNAPSHOT_PACKAGING=jar
-SNAPSHOT_ARTIFACTFILEPATH=src/test/resources/snapshots/org/apache/maven/archiva/web/test/foo-bar/1.0-SNAPSHOT/foo-bar-1.0-SNAPSHOT.jar
-SNAPSHOT_REPOSITORYID=snapshots
-
-ADD_REMOVE_GROUPID=artifact.dummy
-ADD_REMOVE_ARTIFACTID=artifact-dummy
-
-# REPOSITORIES
-# Manage Repositories
-MANAGED_IDENTIFIER=testing1
-MANAGED_NAME=Testing Managed Repository
-MANAGED_DIRECTORY=
-MANAGED_INDEX_DIRECTORY=
-MANAGED_TYPE=
-MANAGED_CRON=
-MANAGED_REPOPURGE_DAYSOLDERTHAN=
-MANAGED_REPOPURGE_RETENTIONCOUNT=
-
-# Network Proxies
-NETWORKPROXY_IDENTIFIER=networkproxytest
-NETWORKPROXY_PROTOCOL=http
-NETWORKPROXY_HOSTNAME=
-NETWORKPROXY_PORT=8080
-NETWORKPROXY_USERNAME=admin
-NETWORKPROXY_PASSWORD=admin123
-
-# Browse - MRM-1278 test
-SNAPSHOTS_REPOSITORY=snapshots
-RELEASES_REPOSITORY=releases
-
-
+++ /dev/null
-package org.apache.archiva.web.test;
-
-/*
- * 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.archiva.web.test.parent.AbstractArchivaTest;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-@Test( groups = { "appearance" }, dependsOnMethods = { "testWithCorrectUsernamePassword" }, sequential = true )
-public class AppearanceTest
- extends AbstractArchivaTest
-{
- public void testAddAppearanceEmptyValues()
- {
- goToAppearancePage();
- clickLinkWithText( "Edit" );
- addEditAppearance( "", "", "", false );
- assertTextPresent( "You must enter a name" );
- }
-
- @Test( dependsOnMethods = { "testAddAppearanceEmptyValues" } )
- public void testAddAppearanceInvalidValues()
- {
- goToAppearancePage();
- clickLinkWithText( "Edit" );
- addEditAppearance( "<>~+[ ]'\"", "/home/user/abcXYZ0129._/\\~:?!&=-<> ~+[ ]'\"",
- "/home/user/abcXYZ0129._/\\~:?!&=-<> ~+[ ]'\"", false );
- assertTextPresent(
- "Organisation name must only contain alphanumeric characters, white-spaces(' '), equals(=), question-marks(?), exclamation-points(!), ampersands(&), forward-slashes(/), back-slashes(\\), underscores(_), dots(.), colons(:), tildes(~), and dashes(-)." );
- assertTextPresent( "You must enter a URL" );
- assertTextPresent( "You must enter a URL for your logo" );
- }
-
- @Test( dependsOnMethods = { "testAddAppearanceInvalidValues" } )
- public void testAddAppearanceInvalidOrganisationName()
- {
- goToAppearancePage();
- clickLinkWithText( "Edit" );
- addEditAppearance( "<>~+[ ]'\"", "http://www.apache.org/", "http://www.apache.org/images/asf_logo_wide.gifs",
- false );
- assertTextPresent(
- "Organisation name must only contain alphanumeric characters, white-spaces(' '), equals(=), question-marks(?), exclamation-points(!), ampersands(&), forward-slashes(/), back-slashes(\\), underscores(_), dots(.), colons(:), tildes(~), and dashes(-)." );
- }
-
- public void testAddAppearanceInvalidOrganisationUrl()
- {
- goToAppearancePage();
- clickLinkWithText( "Edit" );
- addEditAppearance( "The Apache Software Foundation", "/home/user/abcXYZ0129._/\\~:?!&=-<> ~+[ ]'\"",
- "http://www.apache.org/images/asf_logo_wide.gifs", false );
- assertTextPresent( "You must enter a URL." );
- }
-
- @Test
- public void testAddAppearanceInvalidOrganisationLogo()
- {
- goToAppearancePage();
- clickLinkWithText( "Edit" );
- addEditAppearance( "The Apache Software Foundation", "http://www.apache.org/",
- "/home/user/abcXYZ0129._/\\~:?!&=-<> ~+[ ]'\"", false );
- assertTextPresent( "You must enter a URL for your logo." );
- }
-
- @Test
- public void testAddAppearanceValidValues()
- {
- goToAppearancePage();
- clickLinkWithText( "Edit" );
- addEditAppearance( "The Apache Software Foundation", "http://www.apache.org/",
- "http://www.apache.org/images/asf_logo_wide.gifs", true );
- assertTextPresent( "The Apache Software Foundation" );
- }
-
- @Test( dependsOnMethods = { "testAddAppearanceValidValues" } )
- public void testEditAppearance()
- {
- goToAppearancePage();
-
- clickLinkWithText( "Edit" );
- addEditAppearance( "Apache Software Foundation", "http://www.apache.org/",
- "http://www.apache.org/images/asf_logo_wide.gifs", true );
- assertTextPresent( "Apache Software Foundation" );
- }
-
-}
+++ /dev/null
-package org.apache.archiva.web.test;
-
-/*
- * 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.archiva.web.test.parent.AbstractArchivaTest;
-import org.testng.annotations.AfterTest;
-import org.testng.annotations.BeforeSuite;
-import org.testng.annotations.BeforeTest;
-import org.testng.annotations.Optional;
-import org.testng.annotations.Parameters;
-import org.testng.annotations.Test;
-
-public class ArchivaAdminTest
- extends AbstractArchivaTest
-{
-
- @Override
- @AfterTest
- public void close()
- throws Exception
- {
- super.close();
- }
-
- @Override
- @BeforeSuite
- public void open()
- throws Exception
- {
- super.open();
- }
-
- @BeforeTest
- @Parameters( { "baseUrl", "browser", "maxWaitTimeInMs", "seleniumHost", "seleniumPort" } )
- public void initializeArchiva( String baseUrl, String browser, int maxWaitTimeInMs,
- @Optional( "localhost" ) String seleniumHost, @Optional( "4444" ) int seleniumPort )
- throws Exception
- {
- super.open( baseUrl, browser, seleniumHost, seleniumPort, Integer.toString( maxWaitTimeInMs ) );
-
- getSelenium().open( baseUrl );
- // if not admin user created create one
- if ( isElementPresent( "adminCreateForm" ) )
- {
- assertCreateAdmin();
- String fullname = getProperty( "ADMIN_FULLNAME" );
- String username = getProperty( "ADMIN_USERNAME" );
- String mail = getProperty( "ADMIN_EMAIL" );
- String password = getProperty( "ADMIN_PASSWORD" );
- submitAdminData( fullname, mail, password );
- assertUserLoggedIn( username );
- clickLinkWithLocator( "logoutLink" );
- }
- else
- {
- login( getAdminUsername(), getAdminPassword() );
- }
-
- // take care about repositories : internal
- }
-
- @Test( groups = { "about" }, alwaysRun = true )
- public void testHome()
- {
- getSelenium().open( baseUrl );
- assertPage( "Apache Archiva \\ Quick Search" );
- }
-}
\ No newline at end of file
+++ /dev/null
-package org.apache.archiva.web.test;
-
-/*
- * 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.archiva.web.test.parent.AbstractArtifactManagementTest;
-import org.testng.annotations.Test;
-
-@Test( groups = { "artifactmanagement" }, dependsOnGroups = { "about" } )
-public class ArtifactManagementTest
- extends AbstractArtifactManagementTest
-{
-
- @Test( alwaysRun = true, dependsOnGroups = "about" )
- public void testAddArtifactNullValues()
- {
- goToAddArtifactPage();
- clickButtonWithValue( "Submit", false );
- //assertTextPresent( "Please add a file to upload." );
- assertTextPresent( "You must enter a version." );
- assertTextPresent( "You must enter a groupId." );
- assertTextPresent( "You must enter an artifactId." );
- assertTextPresent( "You must enter a version" );
- assertTextPresent( "You must enter a packaging" );
- }
-
- @Test( dependsOnMethods = { "testAddArtifactNullValues" }, alwaysRun = true )
- public void testAddArtifactNoGroupId()
- {
- addArtifact( " ", getArtifactId(), getVersion(), getPackaging(), getArtifactFilePath(), getRepositoryId(),
- false );
- assertTextPresent( "You must enter a groupId." );
- }
-
- @Test( dependsOnMethods = { "testAddArtifactNoGroupId" }, alwaysRun = true )
- public void testAddArtifactNoArtifactId()
- {
- addArtifact( getGroupId(), " ", getVersion(), getPackaging(), getArtifactFilePath(), getRepositoryId(), false );
- assertTextPresent( "You must enter an artifactId." );
- }
-
- @Test( dependsOnMethods = { "testAddArtifactNoGroupId" }, alwaysRun = true )
- public void testAddArtifactNoVersion()
- {
- addArtifact( getGroupId(), getArtifactId(), " ", getPackaging(), getArtifactFilePath(), getRepositoryId(),
- false );
- assertTextPresent( "You must enter a version." );
- }
-
- @Test( dependsOnMethods = { "testAddArtifactNoGroupId" }, alwaysRun = true )
- public void testAddArtifactInvalidVersion()
- {
- addArtifact( getGroupId(), getArtifactId(), "asdf", getPackaging(), getArtifactFilePath(), getRepositoryId(),
- true );
- assertTextPresent( "Invalid version." );
- }
-
- @Test( dependsOnMethods = { "testAddArtifactNoGroupId" }, alwaysRun = true )
- public void testAddArtifactNoPackaging()
- {
- addArtifact( getGroupId(), getArtifactId(), getVersion(), " ", getArtifactFilePath(), getRepositoryId(),
- false );
- assertTextPresent( "You must enter a packaging." );
- }
-
- @Test( dependsOnMethods = { "testAddArtifactNoGroupId" }, alwaysRun = true )
- public void testAddArtifactNoFilePath()
- {
- addArtifact( getGroupId(), getArtifactId(), getVersion(), getPackaging(), " ", getRepositoryId(), true );
- assertTextPresent( "Please add a file to upload." );
- }
-
- @Test( groups = "requiresUpload" )
- public void testAddArtifactValidValues()
- {
- String groupId = getProperty( "VALIDARTIFACT_GROUPID" );
- String artifactId = getProperty( "VALIDARTIFACT_ARTIFACTID" );
-
- addArtifact( groupId, artifactId, getVersion(), getPackaging(), getArtifactFilePath(), getRepositoryId(),
- true );
- assertTextPresent( "Artifact '" + groupId + ":" + artifactId + ":" + getVersion()
- + "' was successfully deployed to repository 'internal'" );
- }
-
- @Test( groups = "requiresUpload" )
- public void testDotNetTypes()
- {
- String groupId = getProperty( "GROUPID_DOTNETARTIFACT" );
- String artifactId = getProperty( "ARTIFACTID_DOTNETARTIFACT" );
- String packaging = getProperty( "PACKAGING_DOTNETARTIFACT" );
-
- addArtifact( groupId, artifactId, getVersion(), packaging, getArtifactFilePath(), getRepositoryId(), true );
- assertTextPresent( "Artifact '" + groupId + ":" + artifactId + ":" + getVersion()
- + "' was successfully deployed to repository 'internal'" );
- getSelenium().open( baseUrl + "/browse/" + groupId + "/" + artifactId + "/" + getVersion() );
- waitPage();
-
- assertTextPresent( "<type>library</type>" );
- String basePath =
- "/archiva/repository/internal/" + groupId + "/" + artifactId + "/" + getVersion() + "/" + artifactId + "-"
- + getVersion();
- assertLinkPresent( ".NET Library" );
- assertElementPresent( "//a[@href='" + basePath + ".dll']" );
- assertElementPresent( "//a[@href='" + basePath + ".pom']" );
- }
-
- // MRM-747
- @Test( groups = "requiresUpload" )
- public void testAddArtifactBlockRedeployments()
- {
- addArtifact( getGroupId(), getArtifactId(), getVersion(), getPackaging(), getArtifactFilePath(),
- getRepositoryId(), true );
- assertTextPresent( "Overwriting released artifacts in repository '" + getRepositoryId() + "' is not allowed." );
- }
-
- @Test( groups = "requiresUpload" )
- public void testDeleteArtifact()
- {
- // prep
- String groupId = getProperty( "GROUPID1" );
- String artifactId = getProperty( "ARTIFACTID1" );
- String version = getProperty( "VERSION1" );
- String packaging = getProperty( "PACKAGING1" );
- String repositoryId = getProperty( "REPOSITORYID1" );
- // TODO: do this differently as it only works in Firefox's chrome mode
- addArtifact( groupId, artifactId, version, packaging, getArtifactFilePath(), repositoryId, true );
- assertTextPresent( "Artifact 'delete:delete:1.0' was successfully deployed to repository 'internal'" );
-
- deleteArtifact( "delete", "delete", "1.0", "internal", true );
- assertTextPresent( "Artifact 'delete:delete:1.0' was successfully deleted from repository 'internal'" );
- }
-
- @Test( alwaysRun = true, dependsOnMethods = { "testAddArtifactNullValues" } )
- public void testDeleteArtifactNoGroupId()
- {
- deleteArtifact( " ", "delete", "1.0", "internal" );
- assertTextPresent( "You must enter a groupId." );
- }
-
- @Test( alwaysRun = true, dependsOnMethods = { "testAddArtifactNullValues" } )
- public void testDeleteArtifactNoArtifactId()
- {
- deleteArtifact( "delete", " ", "1.0", "internal" );
- assertTextPresent( "You must enter an artifactId." );
- }
-
- @Test( alwaysRun = true, dependsOnMethods = { "testAddArtifactNullValues" } )
- public void testDeleteArtifactNoVersion()
- {
- deleteArtifact( "delete", "delete", " ", "internal", false );
- assertTextPresent( "You must enter a version." );
- }
-
- @Test( alwaysRun = true, dependsOnMethods = { "testAddArtifactNullValues" } )
- public void testDeleteArtifactInvalidVersion()
- {
- deleteArtifact( "delete", "delete", "asdf", "internal", true );
- assertTextPresent( "Invalid version." );
- }
-
- // HTML select should have the proper value, else it will cause a selenium error: Option with label 'customValue' not found
- @Test( alwaysRun = true, dependsOnMethods = { "testAddArtifactNullValues" } )
- public void testDeleteArtifactInvalidValues()
- {
- deleteArtifact( "<> \\/~+[ ]'\"", "<> \\/~+[ ]'\"", "<>", "internal" );
- assertTextPresent(
- "Group id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
- assertTextPresent(
- "Artifact id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
- // as it's a validation on server side it's not available here but tested in testDeleteArtifactInvalidVersion
- //assertTextPresent( "Invalid version." );
- }
-
-
- @Test( alwaysRun = true, dependsOnMethods = { "testAddArtifactNullValues" } )
- public void testDeleteArtifactInvalidGroupId()
- {
- deleteArtifact( "<> \\/~+[ ]'\"", "delete", "1.0", "internal" );
- assertTextPresent(
- "Group id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
- }
-
- @Test( alwaysRun = true, dependsOnMethods = { "testAddArtifactNullValues" } )
- public void testDeleteArtifactInvalidArtifactId()
- {
- deleteArtifact( "delete", "<> \\/~+[ ]'\"", "1.0", "internal" );
- assertTextPresent(
- "Artifact id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
- }
-}
\ No newline at end of file
+++ /dev/null
-package org.apache.archiva.web.test;
-
-/*
- * 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.archiva.web.test.parent.AbstractArchivaTest;
-import org.testng.annotations.Test;
-
-@Test( groups = { "auditlogsreport" }, dependsOnMethods = { "testWithCorrectUsernamePassword" } )
-public class AuditLogsReportTest
- extends AbstractArchivaTest
-{
- private void goToAuditLogReports()
- {
- getSelenium().open( "/archiva/report/queryAuditLogReport.action" );
- }
-
- private void assertAuditLogsReportPage()
- {
- assertPage( "Apache Archiva \\ Audit Log Report" );
- assertTextPresent( "Audit Log Report" );
-
- assertElementPresent( "repository" );
- assertElementPresent( "groupId" );
- assertElementPresent( "artifactId" );
- assertElementPresent( "startDate" );
- assertElementPresent( "endDate" );
- assertElementPresent( "rowCount" );
- assertButtonWithValuePresent( "View Audit Log" );
- }
-
- @Test( dependsOnMethods = { "testWithCorrectUsernamePassword" } )
- public void testAuditLogsReport()
- {
- goToAuditLogReports();
- assertAuditLogsReportPage();
- assertTextPresent( "Latest Events" );
- }
-
- @Test( dependsOnMethods = { "testWithCorrectUsernamePassword" } )
- public void testViewAuditLogsNoDataFound()
- {
- goToAuditLogReports();
- assertAuditLogsReportPage();
-
- setFieldValue( "groupId", "non.existing" );
- submit();
-
- assertPage( "Apache Archiva \\ Audit Log Report" );
- assertTextPresent( "Results" );
- assertTextPresent( "No audit logs found." );
- }
-
- // TODO: add test for adding via WebDAV
- @Test( dependsOnMethods = { "testAddArtifactValidValues" }, groups = "requiresUpload" )
- public void testViewAuditLogsDataFound()
- {
- goToAuditLogReports();
- assertAuditLogsReportPage();
-
- selectValue( "repository", "internal" );
- setFieldValue( "groupId", getProperty( "VALIDARTIFACT_GROUPID" ) );
- submit();
-
- assertAuditLogsReportPage();
- assertTextPresent( "Results" );
- assertTextNotPresent( "No audit logs found." );
- assertTextPresent(
- getProperty( "VALIDARTIFACT_ARTIFACTID" ) + "-" + getProperty( "ARTIFACT_VERSION" ) + "." + getProperty(
- "ARTIFACT_PACKAGING" ) );
- assertTextPresent( "Uploaded File" );
- assertTextPresent( "internal" );
- assertTextPresent( "admin" );
- }
-
- // TODO: add test for adding via WebDAV
- @Test( dependsOnMethods = { "testAddArtifactValidValues" }, groups = "requiresUpload" )
- public void testViewAuditLogsOnlyArtifactIdIsSpecified()
- {
- goToAuditLogReports();
- assertAuditLogsReportPage();
-
- selectValue( "repository", "internal" );
- setFieldValue( "artifactId", getProperty( "AUDITLOGARTIFACT_ARTIFACTID" ) );
- submit();
-
- assertAuditLogsReportPage();
- assertTextPresent( "If you specify an artifact ID, you must specify a group ID" );
- assertTextNotPresent( "Results" );
- assertTextNotPresent( "No audit logs found." );
- assertTextNotPresent(
- getProperty( "VALIDARTIFACT_ARTIFACTID" ) + "-" + getProperty( "ARTIFACT_VERSION" ) + "." + getProperty(
- "ARTIFACT_PACKAGING" ) );
- assertTextNotPresent( "Uploaded File" );
- }
-
- // TODO: add test for adding via WebDAV
- @Test( dependsOnMethods = { "testAddArtifactValidValues" }, groups = "requiresUpload" )
- public void testViewAuditLogsForAllRepositories()
- {
- goToAuditLogReports();
- assertAuditLogsReportPage();
-
- selectValue( "repository", "all" );
- submit();
-
- assertAuditLogsReportPage();
- assertTextPresent( "Results" );
- assertTextNotPresent( "No audit logs found." );
- assertTextPresent(
- getProperty( "VALIDARTIFACT_ARTIFACTID" ) + "-" + getProperty( "ARTIFACT_VERSION" ) + "." + getProperty(
- "ARTIFACT_PACKAGING" ) );
- assertTextPresent( "Uploaded File" );
- assertTextPresent( "internal" );
- assertTextPresent( "admin" );
- }
-
- @Test( dependsOnMethods = { "testAddArtifactValidValues", "testUserWithRepoManagerInternalRole" },
- groups = "requiresUpload" )
- public void testViewAuditLogsViewAuditEventsForManageableRepositoriesOnly()
- {
- String groupId = getProperty( "SNAPSHOT_GROUPID" );
- String artifactId = getProperty( "SNAPSHOT_ARTIFACTID" );
- String version = getProperty( "SNAPSHOT_VERSION" );
- String repo = getProperty( "SNAPSHOT_REPOSITORYID" );
- String packaging = getProperty( "SNAPSHOT_PACKAGING" );
-
- addArtifact( groupId, artifactId, version, packaging, getProperty( "SNAPSHOT_ARTIFACTFILEPATH" ), repo, true );
- assertTextPresent(
- "Artifact '" + groupId + ":" + artifactId + ":" + version + "' was successfully deployed to repository '"
- + repo + "'" );
-
- clickLinkWithText( "Logout" );
-
- login( getProperty( "REPOMANAGER_INTERNAL_USERNAME" ), getUserRoleNewPassword() );
-
- goToAuditLogReports();
- assertAuditLogsReportPage();
-
- selectValue( "repository", "all" );
- submit();
-
- assertAuditLogsReportPage();
- assertTextPresent( "Results" );
- assertTextNotPresent( "No audit logs found." );
- assertTextPresent(
- getProperty( "VALIDARTIFACT_ARTIFACTID" ) + "-" + getProperty( "ARTIFACT_VERSION" ) + "." + packaging );
- assertTextPresent( "Uploaded File" );
- assertTextPresent( "internal" );
- assertTextPresent( "admin" );
-
- assertTextNotPresent( artifactId + "-" + version + "." + packaging );
- clickLinkWithText( "Logout" );
- login( getProperty( "ADMIN_USERNAME" ), getProperty( "ADMIN_PASSWORD" ) );
- }
-
- // MRM-1304
- @Test( dependsOnMethods = { "testAddArtifactValidValues" }, groups = "requiresUpload" )
- public void testViewAuditLogsReportForGroupId()
- {
- String groupId = getProperty( "AUDITLOGARTIFACT_GROUPID" );
- String artifactId = getProperty( "AUDITLOGARTIFACT_ARTIFACTID" );
- String version = getProperty( "VERSION" );
- String packaging = getProperty( "PACKAGING" );
- String repositoryId = getProperty( "REPOSITORYID" );
- String expectedArtifact = getProperty( "AUDITLOG_EXPECTED_ARTIFACT" );
-
- addArtifact( groupId, artifactId, version, packaging, getProperty( "SNAPSHOT_ARTIFACTFILEPATH" ), repositoryId,
- true );
-
- goToAuditLogReports();
-
- selectValue( "repository", repositoryId );
- setFieldValue( "groupId", groupId );
- submit();
-
- assertAuditLogsReportPage();
- assertTextPresent( expectedArtifact );
- assertTextPresent( repositoryId );
- }
-}
+++ /dev/null
-package org.apache.archiva.web.test;
-
-/*
- * 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.archiva.web.test.parent.AbstractBrowseTest;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import java.io.File;
-
-@Test( groups = { "browse" }, dependsOnMethods = { "testAddArtifactNullValues" } )
-public class BrowseTest
- extends AbstractBrowseTest
-{
- public void testBrowseArtifactPageTabs()
- {
- goToBrowsePage();
- clickLinkWithText( getProperty( "ARTIFACT_GROUPID" ) + "/" );
- clickLinkWithText( getProperty( "ARTIFACT_ARTIFACTID" ) + "/" );
- clickLinkWithText( getProperty( "ARTIFACT_VERSION" ) + "/" );
-
- assertTextPresent( "Info" );
- assertTextPresent( "Dependencies" );
- assertTextPresent( "Dependency Tree" );
- assertTextPresent( "Used By" );
- assertTextPresent( "Mailing Lists" );
- assertTextPresent( "Metadata" );
- }
-
- public void testBrowseArtifact()
- {
- goToBrowsePage();
- assertBrowsePage();
- }
-
- @Test( dependsOnMethods = { "testAddArtifactValidValues" }, groups = { "requiresUpload" } )
- public void testClickArtifactFromBrowse()
- {
- goToBrowsePage();
- assertBrowsePage();
- clickLinkWithText( getProperty( "ARTIFACT_ARTIFACTID" ) + "/" );
- assertPage( "Apache Archiva \\ Browse Repository" );
- assertTextPresent( "Artifacts" );
- }
-
- // MRM-1278
- @Test( groups = { "requiresUpload" } )
- public void testCorrectRepositoryInBrowse()
- {
- String releasesRepo = getProperty( "RELEASES_REPOSITORY" );
-
- // create releases repository first
- goToRepositoriesPage();
- clickLinkWithText( "Add" );
- addManagedRepository( getProperty( "RELEASES_REPOSITORY" ), "Releases Repository",
- new File( getBasedir(), "target/repository/releases" ).getPath(), "",
- "Maven 2.x Repository", "0 0 * * * ?", "", "", true );
- assertTextPresent( "Releases Repository" );
-
- String snapshotsRepo = getProperty( "SNAPSHOTS_REPOSITORY" );
-
- String path =
- "src/test/resources/snapshots/org/apache/maven/archiva/web/test/foo-bar/1.0-SNAPSHOT/foo-bar-1.0-SNAPSHOT.jar";
- // TODO: do this differently as uploading doesn't work on browsers other than *chrome (below as well)
- // upload a snapshot artifact to repository 'releases'
- addArtifact( "archiva", "archiva-webapp", "1.0-SNAPSHOT", "jar", path, releasesRepo, true );
- assertTextPresent(
- "Artifact 'archiva:archiva-webapp:1.0-SNAPSHOT' was successfully deployed to repository '" + releasesRepo
- + "'" );
-
- goToBrowsePage();
- assertBrowsePage();
- assertGroupsPage( "archiva/" );
- assertArtifactsPage( "archiva-webapp/" );
- assertArtifactInfoPage( "1.0-SNAPSHOT/", releasesRepo, "archiva", "archiva-webapp", "1.0-SNAPSHOT", "jar" );
-
- // upload a snapshot artifact to repository 'snapshots'
- addArtifact( "continuum", "continuum-core", "1.0-SNAPSHOT", "jar", path, snapshotsRepo, true );
- assertTextPresent(
- "Artifact 'continuum:continuum-core:1.0-SNAPSHOT' was successfully deployed to repository '" + snapshotsRepo
- + "'" );
-
- goToBrowsePage();
- assertBrowsePage();
- assertGroupsPage( "continuum/" );
- assertArtifactsPage( "continuum-core/" );
- assertArtifactInfoPage( "1.0-SNAPSHOT/", snapshotsRepo, "continuum", "continuum-core", "1.0-SNAPSHOT", "jar" );
- }
-
- // MRM-1353
- @Test( groups = { "requiresUpload" } )
- public void testBuildNumberOfSnapshotArtifact()
- {
- String snapshotsRepo = getProperty( "SNAPSHOTS_REPOSITORY" );
-
- String path =
- "src/test/resources/snapshots/org/apache/maven/archiva/web/test/foo-bar/1.0-SNAPSHOT/foo-bar-1.0-SNAPSHOT.jar";
- // TODO: do this differently as uploading doesn't work on browsers other than *chrome (below as well)
- // upload a snapshot artifact to repository 'releases'
- addArtifact( "archiva", "archiva-multiple-artifacts", "1.0-SNAPSHOT", "jar", path, snapshotsRepo, true );
- assertTextPresent(
- "Artifact 'archiva:archiva-multiple-artifacts:1.0-SNAPSHOT' was successfully deployed to repository '"
- + snapshotsRepo + "'" );
-
- goToBrowsePage();
- assertBrowsePage();
- assertGroupsPage( "archiva/" );
- assertArtifactsPage( "archiva-multiple-artifacts/" );
- assertArtifactInfoPage( "1.0-SNAPSHOT/", snapshotsRepo, "archiva", "archiva-multiple-artifacts", "1.0-SNAPSHOT",
- "jar" );
-
- addArtifact( "archiva", "archiva-multiple-artifacts", "1.0-SNAPSHOT", "jar", path, snapshotsRepo, true );
- assertTextPresent(
- "Artifact 'archiva:archiva-multiple-artifacts:1.0-SNAPSHOT' was successfully deployed to repository '"
- + snapshotsRepo + "'" );
-
- goToBrowsePage();
- assertBrowsePage();
- assertGroupsPage( "archiva/" );
- assertArtifactsPage( "archiva-multiple-artifacts/" );
- assertArtifactInfoPage( "1.0-SNAPSHOT/", snapshotsRepo, "archiva", "archiva-multiple-artifacts", "1.0-SNAPSHOT",
- "jar" );
-
- String firstSnapshotVersion = getText( "//div[@id='download']/div[@id='accordion']/p[2]/a/" );
- Assert.assertTrue( firstSnapshotVersion.endsWith( "-1" ) );
-
- String secondSnapshotVersion = getText( "//div[@id='download']/div[@id='accordion']/p[1]/a/" );
- Assert.assertTrue( secondSnapshotVersion.endsWith( "-2" ) );
- }
-
- public void testAddMetadataPropertyEmpty()
- {
- goToBrowsePage();
- clickLinkWithText( getProperty( "ARTIFACT_GROUPID" ) + "/" );
- clickLinkWithText( getProperty( "ARTIFACT_ARTIFACTID" ) + "/" );
- clickLinkWithText( getProperty( "ARTIFACT_VERSION" ) + "/" );
- clickLinkWithText( "Metadata" );
-
- assertTextPresent( "No metadata content." );
- assertButtonWithValuePresent( "Add" );
-
- clickButtonWithValue( "Add" );
-
- waitPage();
-
- assertTextPresent( "Property Name and Property Value are required." );
- }
-
- @Test( dependsOnMethods = { "testAddMetadataPropertyEmpty" } )
- public void testAddMetadataProperty()
- {
- addMetadataProperty();
- }
-
- @Test( dependsOnMethods = { "testAddMetadataProperty", "testWithCorrectUsernamePassword" } )
- public void testDeleteMetadataProperty()
- {
- deleteMetadataProperty();
- }
-
- @Test( dependsOnMethods = { "testDeleteMetadataProperty" } )
- public void testMetadataAccessWithRepositoryObserverRole()
- {
- addMetadataProperty();
-
- logout();
-
- goToBrowsePage();
- clickLinkWithText( getProperty( "ARTIFACT_GROUPID" ) + "/" );
- clickLinkWithText( getProperty( "ARTIFACT_ARTIFACTID" ) + "/" );
- clickLinkWithText( getProperty( "ARTIFACT_VERSION" ) + "/" );
- clickLinkWithText( "Metadata" );
-
- waitPage();
-
- assertTextNotPresent( "No metadata content." );
- assertButtonWithValueNotPresent( "Add" );
- assertTextNotPresent( "Add Property" );
- assertImgWithAltNotPresent( "Delete" );
-
- login( getAdminUsername(), getAdminPassword() );
-
- deleteMetadataProperty();
- }
-
- private void addMetadataProperty()
- {
- goToBrowsePage();
- clickLinkWithText( getProperty( "ARTIFACT_GROUPID" ) + "/" );
- clickLinkWithText( getProperty( "ARTIFACT_ARTIFACTID" ) + "/" );
- clickLinkWithText( getProperty( "ARTIFACT_VERSION" ) + "/" );
- clickLinkWithText( "Metadata" );
-
- assertTextPresent( "No metadata content." );
- assertButtonWithValuePresent( "Add" );
- assertTextPresent( "Add Property" );
-
- setFieldValue( "propertyName", "foo" );
- setFieldValue( "propertyValue", "bar" );
-
- clickButtonWithValue( "Add" );
-
- waitPage();
-
- assertTextNotPresent( "No metadata content." );
- assertTextPresent( "foo=bar" );
- }
-
- private void deleteMetadataProperty()
- {
- goToBrowsePage();
- clickLinkWithText( getProperty( "ARTIFACT_GROUPID" ) + "/" );
- clickLinkWithText( getProperty( "ARTIFACT_ARTIFACTID" ) + "/" );
- clickLinkWithText( getProperty( "ARTIFACT_VERSION" ) + "/" );
- clickLinkWithText( "Metadata" );
-
- assertTextPresent( "foo=bar" );
- assertButtonWithValuePresent( "Add" );
- assertTextPresent( "Add Property" );
-
- clickImgWithAlt( "Delete" );
-
- waitPage();
-
- assertTextNotPresent( "foo=bar" );
- assertTextPresent( "Property successfully deleted." );
- assertImgWithAltNotPresent( "Delete" );
- assertTextPresent( "No metadata content." );
- }
-
- private void assertArtifactInfoPage( String version, String artifactInfoRepositoryId, String artifactInfoGroupId,
- String artifactInfoArtifactId, String artifactInfoVersion,
- String artifactInfoPackaging )
- {
- clickLinkWithText( version );
- assertPage( "Apache Archiva \\ Browse Repository" );
- assertTextPresent( artifactInfoRepositoryId );
- assertTextPresent( artifactInfoGroupId );
- assertTextPresent( artifactInfoArtifactId );
- assertTextPresent( artifactInfoVersion );
- assertTextPresent( artifactInfoPackaging );
- }
-
- private void assertArtifactsPage( String artifactId )
- {
- clickLinkWithText( artifactId );
- assertPage( "Apache Archiva \\ Browse Repository" );
- assertTextPresent( "Versions" );
- }
-
- private void assertGroupsPage( String groupId )
- {
- clickLinkWithText( groupId );
- assertPage( "Apache Archiva \\ Browse Repository" );
- assertTextPresent( "Artifacts" );
- }
-}
+++ /dev/null
-package org.apache.archiva.web.test;
-
-/*
- * 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.archiva.web.test.parent.AbstractArchivaTest;
-import org.testng.annotations.Test;
-
-/**
- * Test all actions affected with CSRF security issue.
- */
-@Test( groups = { "csrf" }, dependsOnMethods = { "testWithCorrectUsernamePassword" }, sequential = true )
-public class CSRFSecurityTest
- extends AbstractArchivaTest
-{
- public void testCSRFDeleteRepository()
- {
- getSelenium().open( baseUrl );
- getSelenium().open( baseUrl + "/admin/deleteRepository.action?repoid=test&method%3AdeleteContents=Delete+Configuration+and+Contents" );
- assertTextPresent( "Security Alert - Invalid Token Found" );
- assertTextPresent( "Possible CSRF attack detected! Invalid token found in the request." );
- }
-
- public void testCSRFDeleteArtifact()
- {
- getSelenium().open( baseUrl );
- getSelenium().open( baseUrl + "/deleteArtifact!doDelete.action?groupId=1&artifactId=1&version=1&repositoryId=snapshots" );
- assertTextPresent( "Security Alert - Invalid Token Found" );
- assertTextPresent( "Possible CSRF attack detected! Invalid token found in the request." );
- }
-
- public void testCSRFAddRepositoryGroup()
- {
- getSelenium().open( baseUrl );
- getSelenium().open( baseUrl + "/admin/addRepositoryGroup.action?repositoryGroup.id=csrfgrp" );
- assertTextPresent( "Security Alert - Invalid Token Found" );
- assertTextPresent( "Possible CSRF attack detected! Invalid token found in the request." );
- }
-
- public void testCSRFDeleteRepositoryGroup()
- {
- getSelenium().open( baseUrl );
- getSelenium().open( baseUrl + "/admin/deleteRepositoryGroup.action?repoGroupId=test&method%3Adelete=Confirm" );
- assertTextPresent( "Security Alert - Invalid Token Found" );
- assertTextPresent( "Possible CSRF attack detected! Invalid token found in the request." );
- }
-
- public void testCSRFDisableProxyConnector()
- {
- getSelenium().open( baseUrl );
- getSelenium().open( baseUrl + "/admin/disableProxyConnector!disable.action?target=maven2-repository.dev.java.net&source=internal" );
- assertTextPresent( "Security Alert - Invalid Token Found" );
- assertTextPresent( "Possible CSRF attack detected! Invalid token found in the request." );
- }
-
- public void testCSRFDeleteProxyConnector()
- {
- getSelenium().open( baseUrl );
- getSelenium().open( baseUrl + "/admin/deleteProxyConnector!delete.action?target=maven2-repository.dev.java.net&source=snapshots" );
- assertTextPresent( "Security Alert - Invalid Token Found" );
- assertTextPresent( "Possible CSRF attack detected! Invalid token found in the request." );
- }
-
- public void testCSRFDeleteLegacyArtifactPath()
- {
- getSelenium().open( baseUrl );
- getSelenium().open( baseUrl + "/admin/deleteLegacyArtifactPath.action?path=jaxen%2Fjars%2Fjaxen-1.0-FCS-full.jar" );
- assertTextPresent( "Security Alert - Invalid Token Found" );
- assertTextPresent( "Possible CSRF attack detected! Invalid token found in the request." );
- }
-
- public void testCSRFSaveNetworkProxy()
- {
- getSelenium().open( baseUrl );
- getSelenium().open( baseUrl + "/admin/saveNetworkProxy.action?mode=add&proxy.id=ntwrk&proxy.protocol=http&" +
- "proxy.host=test&proxy.port=8080&proxy.username=&proxy.password=" );
- assertTextPresent( "Security Alert - Invalid Token Found" );
- assertTextPresent( "Possible CSRF attack detected! Invalid token found in the request." );
- }
-
- public void testCSRFDeleteNetworkProxy()
- {
- getSelenium().open( baseUrl );
- getSelenium().open( baseUrl + "/admin/deleteNetworkProxy!delete.action?proxyid=myproxy" );
- assertTextPresent( "Security Alert - Invalid Token Found" );
- assertTextPresent( "Possible CSRF attack detected! Invalid token found in the request." );
- }
-
- public void testCSRFAddFileTypePattern()
- {
- getSelenium().open( baseUrl );
- getSelenium().open( baseUrl + "/admin/repositoryScanning!addFiletypePattern.action?pattern=**%2F*.rum&fileTypeId=artifacts" );
- assertTextPresent( "Security Alert - Invalid Token Found" );
- assertTextPresent( "Possible CSRF attack detected! Invalid token found in the request." );
- }
-
- public void testCSRFRemoveFileTypePattern()
- {
- getSelenium().open( baseUrl );
- getSelenium().open( baseUrl + "/admin/repositoryScanning!removeFiletypePattern.action?pattern=**%2F*.rum&fileTypeId=artifacts" );
- assertTextPresent( "Security Alert - Invalid Token Found" );
- assertTextPresent( "Possible CSRF attack detected! Invalid token found in the request." );
- }
-
- public void testCSRFUpdateKnownConsumers()
- {
- getSelenium().open( baseUrl );
- getSelenium().open( baseUrl + "/admin/repositoryScanning!updateKnownConsumers.action?enabledKnownContentConsumers=auto-remove&" +
- "enabledKnownContentConsumers=auto-rename&enabledKnownContentConsumers=create-missing-checksums&" +
- "enabledKnownContentConsumers=index-content&enabledKnownContentConsumers=metadata-updater&" +
- "enabledKnownContentConsumers=repository-purge&enabledKnownContentConsumers=update-db-artifact&" +
- "enabledKnownContentConsumers=validate-checksums" );
- assertTextPresent( "Security Alert - Invalid Token Found" );
- assertTextPresent( "Possible CSRF attack detected! Invalid token found in the request." );
- }
-}
+++ /dev/null
-package org.apache.archiva.web.test;
-
-/*
- * 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.archiva.web.test.parent.AbstractArchivaTest;
-import org.testng.annotations.Test;
-
-@Test( groups = { "findartifact" }, dependsOnGroups = {"about"}, sequential = true )
-public class FindArtifactTest
- extends AbstractArchivaTest
-{
- @Test(alwaysRun = true)
- public void testFindArtifactNullValues()
- {
- goToFindArtifactPage();
- clickButtonWithValue( "Search" );
- assertTextPresent( "You must select a file, or enter the checksum. If the file was given and you receive this message, there may have been an error generating the checksum." );
- }
-
- @Test(alwaysRun = true)
- public void testFindArtifactUsingChecksum()
- {
- goToFindArtifactPage();
- setFieldValue( "checksumSearch_q", "8e896baea663a45d7bd2737f8e464481" );
- clickButtonWithValue( "Search" );
- assertTextPresent( "No results found" );
- }
-
- // TODO: test using file upload on Firefox versions that support getAsBinary (ie, no applet)
-}
\ No newline at end of file
+++ /dev/null
-package org.apache.archiva.web.test;
-
-/*
- * 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.archiva.web.test.parent.AbstractArtifactManagementTest;
-import org.testng.annotations.Test;
-
-@Test( groups = { "legacysupport" }, dependsOnMethods = { "testWithCorrectUsernamePassword" }, sequential = true )
-public class LegacySupportTest
- extends AbstractArtifactManagementTest
-{
- public void testAddLegacyArtifact_NullValues()
- {
- goToLegacySupportPage();
- clickLinkWithText( "Add" );
- addLegacyArtifactPath( "", "", "", "", "", "", false );
- assertTextPresent( "You must enter a legacy path." );
- assertTextPresent( "You must enter a groupId." );
- assertTextPresent( "You must enter an artifactId." );
- assertTextPresent( "You must enter a version." );
- assertTextPresent( "You must enter a type." );
- }
-
- public void testAddLegacyArtifact_NullLegacyPath()
- {
- goToLegacySupportPage();
- clickLinkWithText( "Add" );
- addLegacyArtifactPath( "", "test", "test", "1.0-SNAPSHOT", "testing", "jar", false );
- assertTextPresent( "You must enter a legacy path." );
- }
-
- public void testAddLegacyArtifact_NullGroupId()
- {
- goToLegacySupportPage();
- clickLinkWithText( "Add" );
- addLegacyArtifactPath( "test", "", "test", "1.0-SNAPSHOT", "testing", "jar", false );
- assertTextPresent( "You must enter a groupId." );
- }
-
- public void testAddLegacyArtifact_NullArtifactId()
- {
- goToLegacySupportPage();
- clickLinkWithText( "Add" );
- addLegacyArtifactPath( "test", "test", "", "1.0-SNAPSHOT", "testing", "jar", false );
- assertTextPresent( "You must enter an artifactId." );
- }
-
- public void testAddLegacyArtifact_NullVersion()
- {
- goToLegacySupportPage();
- clickLinkWithText( "Add" );
- addLegacyArtifactPath( "test", "test", "test", "", "testing", "jar", false );
- assertTextPresent( "You must enter a version." );
- }
-
- public void testAddLegacyArtifact_NullType()
- {
- goToLegacySupportPage();
- clickLinkWithText( "Add" );
- addLegacyArtifactPath( "test", "test", "test", "1.0-SNAPSHOT", "testing", "", false );
- assertTextPresent( "You must enter a type." );
- }
-
- public void testAddLegacyArtifact_InvalidValues()
- {
- goToLegacySupportPage();
- clickLinkWithText( "Add" );
- addLegacyArtifactPath( "<> ~+[ ]'\"" , "<> \\/~+[ ]'\"" , "<> \\/~+[ ]'\"" , "<> \\/~+[ ]'\"" , "<> \\/~+[ ]'\"" , "<> \\/~+[ ]'\"",
- false );
- assertTextPresent( "Legacy path must only contain alphanumeric characters, forward-slashes(/), back-slashes(\\), underscores(_), dots(.), and dashes(-)." );
- assertTextPresent( "Group id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
- assertTextPresent( "Artifact id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
- assertTextPresent( "Version must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
- assertTextPresent( "Classifier must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
- assertTextPresent( "Type must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
- }
-
- public void testAddLegacyArtifact_InvalidLegacyPath()
- {
- goToLegacySupportPage();
- clickLinkWithText( "Add" );
- addLegacyArtifactPath( "<> ~+[ ]'\"" , "test" , "test" , "1.0-SNAPSHOT" , "testing" , "jar", false );
- assertTextPresent( "Legacy path must only contain alphanumeric characters, forward-slashes(/), back-slashes(\\), underscores(_), dots(.), and dashes(-)." );
- }
-
- public void testAddLegacyArtifact_InvalidGroupId()
- {
- goToLegacySupportPage();
- clickLinkWithText( "Add" );
- addLegacyArtifactPath( "test" , "<> \\/~+[ ]'\"" , "test" , "1.0-SNAPSHOT" , "testing" , "jar", false );
- assertTextPresent( "Group id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
- }
-
- public void testAddLegacyArtifact_InvalidArtifactId()
- {
- goToLegacySupportPage();
- clickLinkWithText( "Add" );
- addLegacyArtifactPath( "test" , "test" , "<> \\/~+[ ]'\"" , "1.0-SNAPSHOT" , "testing" , "jar", false );
- assertTextPresent( "Artifact id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
- }
-
- public void testAddLegacyArtifact_InvalidVersion()
- {
- goToLegacySupportPage();
- clickLinkWithText( "Add" );
- addLegacyArtifactPath( "test" , "test" , "test" , "<> \\/~+[ ]'\"" , "testing" , "jar", false );
- assertTextPresent( "Version must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
- }
-
- public void testAddLegacyArtifact_InvalidType()
- {
- goToLegacySupportPage();
- clickLinkWithText( "Add" );
- addLegacyArtifactPath( "test" , "test" , "test" , "1.0-SNAPSHOT" , "testing" , "<> \\/~+[ ]'\"", false );
- assertTextPresent( "Type must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
- }
-
- public void testAddLegacyArtifact_InvalidClassifier()
- {
- goToLegacySupportPage();
- clickLinkWithText( "Add" );
- addLegacyArtifactPath( "test" , "test" , "test" , "1.0-SNAPSHOT" , "<> \\/~+[ ]'\"" , "jar", false );
- assertTextPresent( "Classifier must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
- }
-}
+++ /dev/null
-package org.apache.archiva.web.test;
-
-/*
- * 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.archiva.web.test.parent.AbstractArchivaTest;
-import org.testng.annotations.AfterTest;
-import org.testng.annotations.BeforeTest;
-import org.testng.annotations.Test;
-
-/*
- * Bug in TestNG. TESTNG-285: @Test(sequential=true) works incorrectly for classes with inheritance
- * http://code.google.com/p/testng/source/browse/trunk/CHANGES.txt
- * Waiting 5.9 release. It's comming soon.
- */
-/**
- * Based on LoginTest of Emmanuel Venisse test.
- *
- * @author José Morales MartÃnez
- *
- */
-
-@Test( groups = { "login" }, dependsOnGroups = {"about"})
-public class LoginTest
- extends AbstractArchivaTest
-{
- @Test(alwaysRun = true)
- public void testWithBadUsername()
- {
- goToLoginPage();
- setFieldValue( "loginForm_username", "badUsername" );
- getSelenium().click( "loginSubmit" );
- //getSelenium().waitForPageToLoad( maxWaitTimeInMs );
- waitPage();
- assertElementPresent( "//ul[@class=\'errorMessage\']" );
- //assertTextPresent( "You have entered an incorrect username and/or password" );
- }
-
- @Test( dependsOnMethods = { "testWithBadUsername" }, alwaysRun = true )
- public void testWithBadPassword()
- {
- goToLoginPage();
- setFieldValue( "loginForm_username", getProperty( "ADMIN_USERNAME" ) );
- setFieldValue( "loginForm_password", "badPassword" );
- getSelenium().click( "loginSubmit" );
- //getSelenium().waitForPageToLoad( maxWaitTimeInMs );
- waitPage();
- //assertTextPresent( "You have entered an incorrect username and/or password" );
- //<ul class="errorMessage"><li><span>
- assertElementPresent( "//ul[@class=\'errorMessage\']" );
- }
-
- @Test( dependsOnMethods = { "testWithBadPassword" }, alwaysRun = true )
- public void testWithEmptyUsername()
- {
- goToLoginPage();
- setFieldValue( "loginForm_password", "password" );
- getSelenium().click( "loginSubmit" );
- //getSelenium().waitForPageToLoad( maxWaitTimeInMs );
- waitPage();
- //assertTextPresent( "User Name is required" );
- assertElementPresent( "//tr[@errorFor=\'loginForm_username\']");
- }
-
- @Test( dependsOnMethods = { "testWithEmptyUsername" }, alwaysRun = true )
- public void testWithEmptyPassword()
- {
- goToLoginPage();
- setFieldValue( "loginForm_username", getProperty( "ADMIN_USERNAME" ) );
- getSelenium().click( "loginSubmit" );
- //getSelenium().waitForPageToLoad( maxWaitTimeInMs );
- waitPage();
- //assertTextPresent( "You have entered an incorrect username and/or password" );
- assertElementPresent( "//ul[@class=\'errorMessage\']" );
- }
-
- @Test( groups = { "loginSuccess" }, dependsOnMethods = { "testWithEmptyPassword" }, alwaysRun = true )
- public void testWithCorrectUsernamePassword()
- {
- goToLoginPage();
- setFieldValue( "loginForm_username", getProperty( "ADMIN_USERNAME" ) );
- setFieldValue( "loginForm_password", getProperty( "ADMIN_PASSWORD" ) );
- getSelenium().click( "loginSubmit" );
- //getSelenium().waitForPageToLoad( maxWaitTimeInMs );
- waitPage();
- //assertTextPresent( "Logout" );
- assertElementPresent( "logoutLink" );
- //assertTextPresent( "Edit Details" );
- assertElementPresent( "editUserLink" );
- assertTextPresent( getProperty( "ADMIN_USERNAME" ) );
- }
-
- @BeforeTest
- public void open()
- throws Exception
- {
- super.open();
- }
-
- @Override
- @AfterTest
- public void close()
- throws Exception
- {
- super.close();
- }
-}
\ No newline at end of file
+++ /dev/null
-package org.apache.archiva.web.test;
-
-/*
- * 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.archiva.web.test.parent.AbstractMergingRepositoriesTest;
-import org.testng.annotations.Test;
-
-@Test(groups = {"merging"}, dependsOnMethods = {"testWithCorrectUsernamePassword"}, sequential = true)
-public class MergingRepositoriesTest
- extends AbstractMergingRepositoriesTest
-{
-
- public void testAddStagingRepository()
- {
- goToRepositoriesPage();
- getSelenium().open( "/archiva/admin/addRepository.action" );
- addStagingRepository( "merging-repo", "merging-repo", getRepositoryDir() + "merging-repo/", "",
- "Maven 2.x Repository", "0 0 * * * ?", "", "" );
- assertTextPresent( "merging-repo" );
- }
-
- // here we upload an artifact to the staging repository
- @Test(dependsOnMethods = {"testAddStagingRepository"}, groups = "requiresUpload" )
- public void testAddArtifactToStagingRepository()
- {
- addArtifact( getGroupId(), getArtifactId(), getVersion(), getPackaging(), getValidArtifactFilePath(),
- "merging-repo-stage", true );
- assertTextPresent( "Artifact '" + getGroupId() + ":" + getArtifactId() + ":" + getVersion() +
- "' was successfully deployed to repository 'merging-repo-stage'" );
- }
-
- // here we test the merging (no conflicts artifacts are available)
- @Test(dependsOnMethods = {"testAddArtifactToStagingRepository"})
- public void testMerging()
- {
- goToRepositoriesPage();
- clickButtonWithValue( "Merge" );
- assertTextPresent( "No conflicting artifacts" );
- clickButtonWithValue( "Merge All" );
- assertTextPresent( "Repository 'merging-repo-stage' successfully merged to 'merging-repo'." );
- }
-
- // check audit updating is done properly or not
- @Test(dependsOnMethods = {"testMerging"})
- public void testAuditLogs()
- {
- goToAuditLogReports();
- assertTextPresent( "Merged Artifact" );
- assertTextPresent( "merging-repo" );
- }
-
- // merging is done by skipping conflicts
- @Test(dependsOnMethods = {"testMerging"})
- public void testMergingWithSkippingConflicts()
- {
- goToRepositoriesPage();
- clickButtonWithValue( "Merge" );
- assertTextPresent( "WARNING: The following are the artifacts in conflict." );
- clickButtonWithValue( "Merge With Skip" );
- assertTextPresent( "Repository 'merging-repo-stage' successfully merged to 'merging-repo'." );
- }
-
- // merging all
- @Test(dependsOnMethods = {"testMerging"})
- public void testMergingWithOutSkippingConflicts()
- {
- goToRepositoriesPage();
- clickButtonWithValue( "Merge" );
- assertTextPresent( "WARNING: The following are the artifacts in conflict." );
- clickButtonWithValue( "Merge All" );
- assertTextPresent( "Repository 'merging-repo-stage' successfully merged to 'merging-repo'." );
- }
-
- // change the configuaration first and try to upload existing artifact to the repository
- @Test(dependsOnMethods = {"testAddArtifactToStagingRepository"})
- public void testConfigurationChangesOfStagingRepository()
- {
- editManagedRepository();
- addArtifact( getGroupId(), getArtifactId(), getVersion(), getPackaging(), getValidArtifactFilePath(),
- "merging-repo-stage", true );
- assertTextPresent(
- "Overwriting released artifacts in repository '" + "merging-repo-stage" + "' is not allowed." );
- }
-
-}
\ No newline at end of file
+++ /dev/null
-package org.apache.archiva.web.test;
-
-/*
- * 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.archiva.web.test.parent.AbstractRepositoryTest;
-import org.testng.annotations.Test;
-
-@Test( groups = { "networkproxies" }, dependsOnMethods = { "testWithCorrectUsernamePassword" } )
-public class NetworkProxiesTest
- extends AbstractRepositoryTest
-{
- @Test( dependsOnMethods = { "testDeleteRepositoryGroup" } )
- public void testAddNetworkProxyNullValues()
- {
- goToNetworkProxiesPage();
- addNetworkProxy( "", "", "", "", "", "" );
- assertTextPresent( "You must enter an identifier." );
- assertTextPresent( "You must enter a protocol." );
- assertTextPresent( "You must enter a host." );
- }
-
- @Test( dependsOnMethods = { "testAddNetworkProxyNullValues" } )
- public void testAddNetworkProxyNullIdentifier()
- {
- goToNetworkProxiesPage();
- addNetworkProxy( "", "http", "localhost", "8080", "", "" );
- assertTextPresent( "You must enter an identifier." );
- }
-
- @Test( dependsOnMethods = { "testAddNetworkProxyNullIdentifier" } )
- public void testAddNetworkProxyNullProtocol()
- {
- goToNetworkProxiesPage();
- addNetworkProxy( "testing123", "", "localhost", "8080", "", "" );
- assertTextPresent( "You must enter a protocol." );
- }
-
- @Test( dependsOnMethods = { "testAddNetworkProxyNullProtocol" } )
- public void testAddNetworkProxiesNullHostname()
- {
- goToNetworkProxiesPage();
- addNetworkProxy( "testing123", "http", "", "8080", "", "" );
- assertTextPresent( "You must enter a host." );
- }
-
- @Test (dependsOnMethods = { "testAddNetworkProxiesNullHostname" } )
- public void testAddNetworkProxiesInvalidValues()
- {
- goToNetworkProxiesPage();
- addNetworkProxy( "<> \\/~+[ ]'\"", "<> ~+[ ]'\"", "<> ~+[ ]'\"", "0", "<> ~+[ ]'\"", "");
- assertTextPresent( "Proxy id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
- assertTextPresent( "Protocol must only contain alphanumeric characters, forward-slashes(/), back-slashes(\\), dots(.), colons(:), and dashes(-)." );
- assertTextPresent( "Host must only contain alphanumeric characters, equals(=), question-marks(?), exclamation-points(!), ampersands(&), forward-slashes(/), back-slashes(\\), underscores(_), dots(.), colons(:), tildes(~), and dashes(-)." );
- assertTextPresent( "Port needs to be larger than 1" );
- assertTextPresent( "Username must only contain alphanumeric characters, at's(@), forward-slashes(/), back-slashes(\\), underscores(_), dots(.), and dashes(-)." );
- }
-
- @Test (dependsOnMethods = { "testAddNetworkProxiesInvalidValues" } )
- public void testAddNetworkProxiesInvalidIdentifier()
- {
- goToNetworkProxiesPage();
- addNetworkProxy( "<> \\/~+[ ]'\"", "http", "localhost", "8080", "", "");
- assertTextPresent( "Proxy id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
- }
-
- @Test (dependsOnMethods = { "testAddNetworkProxiesInvalidIdentifier" } )
- public void testAddNetworkProxiesInvalidProtocol()
- {
- goToNetworkProxiesPage();
- addNetworkProxy( "testing123", "<> ~+[ ]'\"", "localhost", "8080", "", "");
- assertTextPresent( "Protocol must only contain alphanumeric characters, forward-slashes(/), back-slashes(\\), dots(.), colons(:), and dashes(-)." );
- }
-
- @Test (dependsOnMethods = { "testAddNetworkProxiesInvalidProtocol" } )
- public void testAddNetworkProxiesInvalidHostname()
- {
- goToNetworkProxiesPage();
- addNetworkProxy( "testing123", "http", "<> ~+[ ]'\"", "8080", "", "");
- assertTextPresent( "Host must only contain alphanumeric characters, equals(=), question-marks(?), exclamation-points(!), ampersands(&), forward-slashes(/), back-slashes(\\), underscores(_), dots(.), colons(:), tildes(~), and dashes(-)." );
- }
-
- @Test (dependsOnMethods = { "testAddNetworkProxiesInvalidHostname" } )
- public void testAddNetworkProxiesInvalidPort()
- {
- goToNetworkProxiesPage();
- addNetworkProxy( "testing123", "http", "localhost", "0", "", "");
- assertTextPresent( "Port needs to be larger than 1" );
- }
-
- @Test (dependsOnMethods = { "testAddNetworkProxiesInvalidPort" } )
- public void testAddNetworkProxiesInvalidUsername()
- {
- goToNetworkProxiesPage();
- addNetworkProxy( "testing123", "http", "localhost", "8080", "<> ~+[ ]'\"", "");
- assertTextPresent( "Username must only contain alphanumeric characters, at's(@), forward-slashes(/), back-slashes(\\), underscores(_), dots(.), and dashes(-)." );
- }
-
- @Test (dependsOnMethods = { "testAddNetworkProxiesInvalidUsername" } )
- public void testAddNetworkProxiesValidValues()
- {
- goToNetworkProxiesPage();
- addNetworkProxy( "testing123", "http", "localhost", "8080", "", "" );
- assertPage( "Apache Archiva \\ Administration - Network Proxies" );
- assertTextPresent( "testing123" );
- }
-
- @Test( dependsOnMethods = { "testAddNetworkProxiesValidValues" } )
- public void testEditNetworkProxy()
- {
- editNetworkProxies( "proxy.host", "localhost" );
- assertPage( "Apache Archiva \\ Administration - Network Proxies" );
- assertTextPresent( "localhost" );
- }
-
- @Test( dependsOnMethods = { "testEditNetworkProxy" } )
- public void testDeleteNetworkProxy()
- {
- deleteNetworkProxy();
- assertPage( "Apache Archiva \\ Administration - Network Proxies" );
- assertTextPresent( "There are no network proxies configured yet." );
- }
-
- @Test( dependsOnMethods = { "testDeleteNetworkProxy" } )
- public void testAddNetworkProxyAfterDelete()
- {
- addNetworkProxy( "testing123", "http", "localhost", "8080", "", "" );
- assertPage( "Apache Archiva \\ Administration - Network Proxies" );
- assertTextPresent( "testing123" );
- }
-
-}
+++ /dev/null
-package org.apache.archiva.web.test;
-
-/*
- * 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.archiva.web.test.parent.AbstractArtifactReportsTest;
-import org.testng.annotations.Test;
-
-@Test( groups = { "reports" }, dependsOnMethods = { "testWithCorrectUsernamePassword" } )
-public class ReportsTest
- extends AbstractArtifactReportsTest
-{
- // TODO Tests for repository with defects
-
- public void testRepoStatisticsWithoutRepoCompared()
- {
- goToReportsPage();
- clickButtonWithValue( "View Statistics" );
- assertTextPresent( "Please select a repository (or repositories) from the list." );
- }
-
- @Test( dependsOnMethods = { "testRepoStatisticsWithoutRepoCompared" } )
- public void testRepositoryStatisticsWithoutDate()
- {
- String repositoryName = getProperty( "REPOSITORY_NAME" );
- compareRepositories( "label=" + repositoryName, "", "" );
- // TODO
- // assertTextPresent( "Statistics Report" );
- }
-
- @Test( dependsOnMethods = { "testRepoStatisticsWithoutRepoCompared" } )
- public void testRepositoryStatisticsEndEarlierThanStart()
- {
- String repositoryName = getProperty( "REPOSITORY_NAME" );
- String startDate = getProperty( "END_DATE" );
- String endDate = getProperty( "START_DATE" );
- compareRepositories( "label=" + repositoryName, startDate, endDate );
- // assertTextPresent( "Statistics for Repository '" + repositoryName + "'" );
- assertPage( "Apache Archiva \\ Reports" );
- assertTextPresent( "Start Date must be earlier than the End Date" );
- }
-
- public void testRepositoryStatistics()
- {
- String repositoryName = getProperty( "REPOSITORY_NAME" );
- String startDate = getProperty( "START_DATE" );
- String endDate = getProperty( "END_DATE" );
- compareRepositories( "label=" + repositoryName, startDate, endDate );
- // assertTextPresent( "Statistics for Repository '" + repositoryName + "'" );
- // assertPage( "Apache Archiva \\ Reports" );
- // assertTextPresent( "Statistics Report" );
- }
-
- /*
- * @Test( dependsOnMethods = { "testRepositoryStatistics" } ) public void
- * testRepositoriesStatisticComparisonReport() { //goToReportsPage(); clickButtonWithValue( "-->>" , false );
- * clickButtonWithValue( "View Statistics" ); assertTextPresent( "Statistics Report" ); } public void
- * testRepositoryHealthWithoutDefect() { goToReportsPage(); String groupId = getProperty( "ARTIFACT_GROUPID" );
- * getSelenium().type( "generateReport_groupId" , groupId ); clickButtonWithValue( "Show Report" ); assertPage(
- * "Apache Archiva \\ Reports" ); assertTextPresent( "The operation generated an empty report." ); } public void
- * testRepositoryHealthWithoutGroupId() { goToReportsPage(); clickButtonWithValue( "Show Report" ); assertPage(
- * "Apache Archiva \\ Reports" ); assertTextPresent( "The operation generated an empty report." ); //TODO As of the
- * creation of the tests, GroupId is not a required field in showing the reports of repository health. GroupId
- * should be required I think. }
- */
-
-}
\ No newline at end of file
+++ /dev/null
-package org.apache.archiva.web.test;
-
-/*
- * 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.archiva.web.test.parent.AbstractRepositoryTest;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-@Test( groups = { "reposcan" }, dependsOnMethods = { "testWithCorrectUsernamePassword" }, sequential = true )
-public class RepositoryScanningTest
- extends AbstractRepositoryTest
-{
- public void testAddArtifactFileType_NullValue()
- {
- goToRepositoryScanningPage();
- clickAddIcon( "newpattern_0" );
- assertTextPresent( "Unable to process blank pattern." );
- }
-
- @Test
- public void testAddArtifactFileType()
- {
- goToRepositoryScanningPage();
- setFieldValue( "newpattern_0", "**/*.dll" );
- clickAddIcon( "newpattern_0" );
- Assert.assertEquals( getSelenium().getTable( "//div[@id='contentArea']/div/div[1]/table.13.0" ), "**/*.dll" );
- }
-
- @Test( dependsOnMethods = { "testAddArtifactFileType" } )
- public void testAddArtifactFileType_ExistingValue()
- {
- goToRepositoryScanningPage();
- setFieldValue( "newpattern_0", "**/*.zip" );
- clickAddIcon( "newpattern_0" );
- Assert.assertEquals( getErrorMessageText(), "File type [artifacts] already contains pattern [**/*.zip]" );
- }
-
- @Test( dependsOnMethods = { "testAddArtifactFileType" } )
- public void testDeleteArtifactFileType()
- {
- goToRepositoryScanningPage();
- String path = "//div[@id='contentArea']/div/div/table/tbody/tr[14]/td/code";
- assertElementPresent( path );
- Assert.assertEquals( getSelenium().getText( path ), "**/*.dll" );
- clickDeleteIcon( "**/*.dll" );
- assertElementNotPresent( path );
- }
-
- @Test( dependsOnMethods = { "testDeleteArtifactFileType" } )
- public void testAddAutoRemove_NullValue()
- {
- goToRepositoryScanningPage();
- setFieldValue( "newpattern_1", "" );
- clickAddIcon( "newpattern_1" );
- assertTextPresent( "Unable to process blank pattern." );
- }
-
- @Test( dependsOnMethods = { "testAddAutoRemove_NullValue" } )
- public void testAddAutoRemove_ExistingValue()
- {
- goToRepositoryScanningPage();
- setFieldValue( "newpattern_1", "**/*-" );
- clickAddIcon( "newpattern_1" );
- Assert.assertEquals( getErrorMessageText(), "File type [auto-remove] already contains pattern [**/*-]" );
- }
-
- @Test( dependsOnMethods = { "testAddAutoRemove_NullValue" } )
- public void testAddAutoRemove()
- {
- goToRepositoryScanningPage();
- setFieldValue( "newpattern_1", "**/*.test" );
- clickAddIcon( "newpattern_1" );
- Assert.assertEquals( getSelenium().getTable( "//div[@id='contentArea']/div/div[2]/table.3.0" ), "**/*.test" );
- }
-
- @Test( dependsOnMethods = { "testAddAutoRemove" } )
- public void testDeleteAutoRemove()
- {
- goToRepositoryScanningPage();
- String path = "//div[@id='contentArea']/div/div[2]/table/tbody/tr[4]/td/code";
- assertElementPresent( path );
- Assert.assertEquals( getSelenium().getText( path ), "**/*.test" );
- clickDeleteIcon( "**/*.test" );
- assertElementNotPresent( path );
- }
-
- @Test( dependsOnMethods = { "testDeleteAutoRemove" } )
- public void testAddIgnoredArtifacts_NullValue()
- {
- goToRepositoryScanningPage();
- setFieldValue( "newpattern_2", "" );
- clickAddIcon( "newpattern_2" );
- Assert.assertEquals( getErrorMessageText(),
- "Unable to process blank pattern." );
- }
-
- @Test
- public void testAddIgnoredArtifacts_ExistingValue()
- {
- goToRepositoryScanningPage();
- setFieldValue( "newpattern_2", "**/*.sh" );
- clickAddIcon( "newpattern_2" );
- Assert.assertEquals( getErrorMessageText(), "File type [ignored] already contains pattern [**/*.sh]" );
- }
-
- @Test
- public void testAddIgnoredArtifacts()
- {
- goToRepositoryScanningPage();
- setFieldValue( "newpattern_2", "**/*.log" );
- clickAddIcon( "newpattern_2" );
- Assert.assertEquals( getSelenium().getTable( "//div[@id='contentArea']/div/div[3]/table.6.0" ), "**/*.log" );
- }
-
- @Test( dependsOnMethods = { "testAddIgnoredArtifacts" } )
- public void testDeleteIgnoredArtifacts()
- {
- goToRepositoryScanningPage();
- String pattern = "**/*.log";
- String path = "//div[@id='contentArea']/div/div[3]/table/tbody/tr[7]/td/code";
- assertElementPresent( path );
- Assert.assertEquals( getSelenium().getText( path ), pattern );
- clickDeleteIcon( pattern );
- assertElementNotPresent( path );
- }
-
- //
- @Test( dependsOnMethods = { "testDeleteIgnoredArtifacts" } )
- public void testAddIndexableContent_NullValue()
- {
- goToRepositoryScanningPage();
- setFieldValue( "newpattern_3", "" );
- clickAddIcon( "newpattern_3" );
- Assert.assertEquals( getErrorMessageText(),
- "Unable to process blank pattern." );
- }
-
- @Test
- public void testAddIndexableContent_ExistingValue()
- {
- goToRepositoryScanningPage();
- setFieldValue( "newpattern_3", "**/*.xml" );
- clickAddIcon( "newpattern_3" );
- Assert.assertEquals( getErrorMessageText(),
- "File type [indexable-content] already contains pattern [**/*.xml]" );
- }
-
- @Test
- public void testAddIndexableContent()
- {
- goToRepositoryScanningPage();
- setFieldValue( "newpattern_3", "**/*.html" );
- clickAddIcon( "newpattern_3" );
- Assert.assertEquals( getSelenium().getTable( "//div[@id='contentArea']/div/div[4]/table.9.0" ), "**/*.html" );
- }
-
- @Test( dependsOnMethods = { "testAddIndexableContent" } )
- public void testDeleteIndexableContent()
- {
- goToRepositoryScanningPage();
- String pattern = "**/*.html";
- String path = "//div[@id='contentArea']/div/div[4]/table/tbody/tr[10]/td/code";
- assertElementPresent( path );
- Assert.assertEquals( getSelenium().getText( path ), pattern );
- clickDeleteIcon( pattern );
- assertElementNotPresent( path );
- }
-
- @Test( dependsOnMethods = { "testDeleteIndexableContent" } )
- public void testUpdateConsumers()
- {
- goToRepositoryScanningPage();
- checkField( "enabledKnownContentConsumers" );
- checkField( "//input[@name='enabledKnownContentConsumers' and @value='auto-rename']" );
- clickButtonWithValue( "Update Consumers" );
- assertPage( "Apache Archiva \\ Administration - Repository Scanning" );
- }
-
- @Test( dependsOnMethods = { "testUpdateConsumers" } )
- public void testUpdateConsumers_UnsetAll()
- {
- goToRepositoryScanningPage();
- getSelenium().uncheck( "enabledKnownContentConsumers" );
- getSelenium().uncheck( "//input[@name='enabledKnownContentConsumers' and @value='auto-rename']" );
- getSelenium().uncheck( "//input[@name='enabledKnownContentConsumers' and @value='create-missing-checksums']" );
- getSelenium().uncheck( "//input[@name='enabledKnownContentConsumers' and @value='index-content']" );
- getSelenium().uncheck( "//input[@name='enabledKnownContentConsumers' and @value='metadata-updater']" );
- getSelenium().uncheck( "//input[@name='enabledKnownContentConsumers' and @value='repository-purge']" );
- getSelenium().uncheck( "//input[@name='enabledKnownContentConsumers' and @value='validate-checksums']" );
- clickButtonWithValue( "Update Consumers" );
-
- assertPage( "Apache Archiva \\ Administration - Repository Scanning" );
- }
-
- private void clickAddIcon( String fieldId )
- {
- String xPath = "//preceding::td/input[@id='" + fieldId + "']//following::td/a/img";
- clickLinkWithLocator( xPath );
- }
-
- private void clickDeleteIcon( String pattern )
- {
- String xPath = "//preceding::td/code[contains(text(),'" + pattern + "')]//following::td/a/img";
- clickLinkWithLocator( xPath );
- }
-
-}
+++ /dev/null
-package org.apache.archiva.web.test;
-
-/*
- * 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.archiva.web.test.parent.AbstractRepositoryTest;
-import org.testng.annotations.Test;
-
-@Test( groups = { "repository" }, dependsOnMethods = { "testWithCorrectUsernamePassword" }, sequential = true )
-public class RepositoryTest
- extends AbstractRepositoryTest
-{
- @Test
- public void testAddManagedRepoValidValues()
- {
- goToRepositoriesPage();
- getSelenium().open( "/archiva/admin/addRepository.action" );
- addManagedRepository( "managedrepo1", "Managed Repository Sample 1", getRepositoryDir() + "repository/", "",
- "Maven 2.x Repository", "0 0 * * * ?", "", "", true );
- clickButtonWithValue( "Save" );
- assertTextPresent( "Managed Repository Sample 1" );
- assertRepositoriesPage();
- }
-
- @Test( dependsOnMethods = { "testAddManagedRepoValidValues" } )
- public void testAddManagedRepoInvalidValues()
- {
- getSelenium().open( "/archiva/admin/addRepository.action" );
-
- addManagedRepository( "<> \\/~+[ ]'\"", "<>\\~+[]'\"", "<> ~+[ ]'\"", "<> ~+[ ]'\"", "Maven 2.x Repository", "",
- "-1", "101", false );
- assertTextPresent(
- "Identifier must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
- assertTextPresent(
- "Directory must only contain alphanumeric characters, equals(=), question-marks(?), exclamation-points(!), ampersands(&), forward-slashes(/), back-slashes(\\), underscores(_), dots(.), colons(:), tildes(~), and dashes(-)." );
- assertTextPresent(
- "Repository Name must only contain alphanumeric characters, white-spaces(' '), forward-slashes(/), open-parenthesis('('), close-parenthesis(')'), underscores(_), dots(.), and dashes(-)." );
- assertTextPresent(
- "Index directory must only contain alphanumeric characters, equals(=), question-marks(?), exclamation-points(!), ampersands(&), forward-slashes(/), back-slashes(\\), underscores(_), dots(.), colons(:), tildes(~), and dashes(-)." );
- assertTextPresent( "Repository Purge By Retention Count needs to be between 1 and 100." );
- assertTextPresent( "Repository Purge By Days Older Than needs to be larger than 0." );
- assertTextPresent( "Cron expression is required." );
- }
-
- @Test
- public void testAddManagedRepoInvalidIdentifier()
- {
- getSelenium().open( "/archiva/admin/addRepository.action" );
-
- addManagedRepository( "<> \\/~+[ ]'\"", "name", "/home", "/.index", "Maven 2.x Repository", "0 0 * * * ?", "1",
- "1", false );
- assertTextPresent(
- "Identifier must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
- }
-
- @Test
- public void testAddManagedRepoInvalidRepoName()
- {
- getSelenium().open( "/archiva/admin/addRepository.action" );
-
- addManagedRepository( "identifier", "<>\\~+[]'\"", "/home", "/.index", "Maven 2.x Repository", "0 0 * * * ?",
- "1", "1", false );
- assertTextPresent(
- "Repository Name must only contain alphanumeric characters, white-spaces(' '), forward-slashes(/), open-parenthesis('('), close-parenthesis(')'), underscores(_), dots(.), and dashes(-)." );
- }
-
- @Test
- public void testAddManagedRepoInvalidDirectory()
- {
- getSelenium().open( "/archiva/admin/addRepository.action" );
-
- addManagedRepository( "identifier", "name", "<> ~+[ ]'\"", "/.index", "Maven 2.x Repository", "0 0 * * * ?",
- "1", "1", false );
- assertTextPresent(
- "Directory must only contain alphanumeric characters, equals(=), question-marks(?), exclamation-points(!), ampersands(&), forward-slashes(/), back-slashes(\\), underscores(_), dots(.), colons(:), tildes(~), and dashes(-)." );
- }
-
- @Test
- public void testAddManagedRepoInvalidIndexDir()
- {
- getSelenium().open( "/archiva/admin/addRepository.action" );
-
- addManagedRepository( "identifier", "name", "/home", "<> ~+[ ]'\"", "Maven 2.x Repository", "0 0 * * * ?", "1",
- "1", false );
- assertTextPresent(
- "Index directory must only contain alphanumeric characters, equals(=), question-marks(?), exclamation-points(!), ampersands(&), forward-slashes(/), back-slashes(\\), underscores(_), dots(.), colons(:), tildes(~), and dashes(-)." );
- }
-
- @Test
- public void testAddManagedRepoInvalidRetentionCount()
- {
- getSelenium().open( "/archiva/admin/addRepository.action" );
-
- addManagedRepository( "identifier", "name", "/home", "/.index", "Maven 2.x Repository", "0 0 * * * ?", "1",
- "101", false );
- assertTextPresent( "Repository Purge By Retention Count needs to be between 1 and 100." );
- }
-
- @Test
- public void testAddManagedRepoInvalidDaysOlder()
- {
- getSelenium().open( "/archiva/admin/addRepository.action" );
-
- addManagedRepository( "identifier", "name", "/home", "/.index", "Maven 2.x Repository", "0 0 * * * ?", "-1",
- "1", false );
- assertTextPresent( "Repository Purge By Days Older Than needs to be larger than 0." );
- }
-
- @Test
- public void testAddManagedRepoBlankValues()
- {
- getSelenium().open( "/archiva/admin/addRepository.action" );
-
- addManagedRepository( "", "", "", "", "Maven 2.x Repository", "", "", "", false );
- assertTextPresent( "You must enter a repository identifier." );
- assertTextPresent( "You must enter a repository name." );
- assertTextPresent( "You must enter a directory." );
- assertTextPresent( "Cron expression is required." );
- }
-
- @Test
- public void testAddManagedRepoNoIdentifier()
- {
- getSelenium().open( "/archiva/admin/addRepository.action" );
-
- addManagedRepository( "", "name", "/home", "/.index", "Maven 2.x Repository", "0 0 * * * ?", "", "", false );
- assertTextPresent( "You must enter a repository identifier." );
- }
-
- @Test
- public void testAddManagedRepoNoRepoName()
- {
- getSelenium().open( "/archiva/admin/addRepository.action" );
-
- addManagedRepository( "identifier", "", "/home", "/.index", "Maven 2.x Repository", "0 0 * * * ?", "", "",
- false );
- assertTextPresent( "You must enter a repository name." );
- }
-
- @Test
- public void testAddManagedRepoNoDirectory()
- {
- getSelenium().open( "/archiva/admin/addRepository.action" );
-
- addManagedRepository( "identifier", "name", "", "/.index", "Maven 2.x Repository", "0 0 * * * ?", "", "",
- false );
- assertTextPresent( "You must enter a directory." );
- }
-
- @Test
- public void testAddManagedRepoNoCron()
- {
- getSelenium().open( "/archiva/admin/addRepository.action" );
-
- addManagedRepository( "identifier", "name", "/home", "/.index", "Maven 2.x Repository", "", "", "", false );
-
- assertTextPresent( "Cron expression is required." );
- }
-
- @Test
- public void testAddManagedRepoForEdit()
- {
- getSelenium().open( "/archiva/admin/addRepository.action" );
- addManagedRepository( "managedrepo", "Managed Repository Sample", getRepositoryDir() + "local-repo/", "",
- "Maven 2.x Repository", "0 0 * * * ?", "", "", true );
- clickButtonWithValue( "Save" );
- assertTextPresent( "Managed Repository Sample" );
- }
-
- @Test( dependsOnMethods = { "testAddManagedRepoForEdit" } )
- public void testEditManagedRepoInvalidValues()
- {
- editManagedRepository( "<>\\~+[]'\"", "<> ~+[ ]'\"", "<> ~+[ ]'\"", "Maven 2.x Repository", "", "-1", "101" );
- assertTextPresent(
- "Directory must only contain alphanumeric characters, equals(=), question-marks(?), exclamation-points(!), ampersands(&), forward-slashes(/), back-slashes(\\), underscores(_), dots(.), colons(:), tildes(~), and dashes(-)." );
- assertTextPresent(
- "Repository Name must only contain alphanumeric characters, white-spaces(' '), forward-slashes(/), open-parenthesis('('), close-parenthesis(')'), underscores(_), dots(.), and dashes(-)." );
- assertTextPresent(
- "Index directory must only contain alphanumeric characters, equals(=), question-marks(?), exclamation-points(!), ampersands(&), forward-slashes(/), back-slashes(\\), underscores(_), dots(.), colons(:), tildes(~), and dashes(-)." );
- assertTextPresent( "Repository Purge By Retention Count needs to be between 1 and 100." );
- assertTextPresent( "Repository Purge By Days Older Than needs to be larger than 0." );
- assertTextPresent( "Cron expression is required." );
- }
-
- @Test( dependsOnMethods = { "testAddManagedRepoForEdit" } )
- public void testEditManagedRepoInvalidRepoName()
- {
- editManagedRepository( "<>\\~+[]'\"", "/home", "/.index", "Maven 2.x Repository", "0 0 * * * ?", "1", "1" );
- assertTextPresent(
- "Repository Name must only contain alphanumeric characters, white-spaces(' '), forward-slashes(/), open-parenthesis('('), close-parenthesis(')'), underscores(_), dots(.), and dashes(-)." );
- }
-
- @Test( dependsOnMethods = { "testAddManagedRepoForEdit" } )
- public void testEditManagedRepoInvalidDirectory()
- {
- editManagedRepository( "name", "<> ~+[ ]'\"", "/.index", "Maven 2.x Repository", "0 0 * * * ?", "1", "1" );
- assertTextPresent(
- "Directory must only contain alphanumeric characters, equals(=), question-marks(?), exclamation-points(!), ampersands(&), forward-slashes(/), back-slashes(\\), underscores(_), dots(.), colons(:), tildes(~), and dashes(-)." );
- }
-
- @Test( dependsOnMethods = { "testAddManagedRepoForEdit" } )
- public void testEditManagedRepoInvalidIndexDir()
- {
- editManagedRepository( "name", "/home", "<> ~+[ ]'\"", "Maven 2.x Repository", "0 0 * * * ?", "1", "1" );
- assertTextPresent(
- "Index directory must only contain alphanumeric characters, equals(=), question-marks(?), exclamation-points(!), ampersands(&), forward-slashes(/), back-slashes(\\), underscores(_), dots(.), colons(:), tildes(~), and dashes(-)." );
- }
-
- @Test( dependsOnMethods = { "testAddManagedRepoForEdit" } )
- public void testEditManagedRepoInvalidCronBadText()
- {
- editManagedRepository( "name", "/home", "/.index", "Maven 2.x Repository", "asdf", "1", "1" );
- assertTextPresent( "Invalid cron expression." );
- }
-
- @Test( dependsOnMethods = { "testAddManagedRepoForEdit" } )
- public void testEditManagedRepoInvalidCronBadValue()
- {
- editManagedRepository( "name", "/home", "/.index", "Maven 2.x Repository", "60 0 * * * ?", "1", "1" );
- assertTextPresent( "Invalid cron expression." );
- }
-
- @Test( dependsOnMethods = { "testAddManagedRepoForEdit" } )
- public void testEditManagedRepoInvalidCronTooManyElements()
- {
- editManagedRepository( "name", "/home", "/.index", "Maven 2.x Repository", "* * * * * * * *", "1", "1" );
- assertTextPresent( "Invalid cron expression." );
- }
-
- @Test( dependsOnMethods = { "testAddManagedRepoForEdit" } )
- public void testEditManagedRepoInvalidRetentionCount()
- {
- editManagedRepository( "name", "/home", "/.index", "Maven 2.x Repository", "0 0 * * * ?", "1", "101" );
- assertTextPresent( "Repository Purge By Retention Count needs to be between 1 and 100." );
- }
-
- @Test( dependsOnMethods = { "testAddManagedRepoForEdit" } )
- public void testEditManagedRepoInvalidDaysOlder()
- {
- editManagedRepository( "name", "/home", "/.index", "Maven 2.x Repository", "0 0 * * * ?", "-1", "1" );
- assertTextPresent( "Repository Purge By Days Older Than needs to be larger than 0." );
- }
-
- // TODO
- @Test( dependsOnMethods = { "testAddManagedRepoForEdit" } )
- public void testEditManagedRepo()
- {
- editManagedRepository( "repository.name", "Managed Repo" );
- assertTextPresent( "Managed Repository Sample" );
- }
-
- // TODO
- @Test( dependsOnMethods = { "testEditManagedRepo" }, enabled = false )
- public void testDeleteManageRepo()
- {
- deleteManagedRepository();
- // assertTextNotPresent( "managedrepo" );
- }
-
- @Test( dependsOnMethods = { "testAddRemoteRepoValidValues" } )
- public void testAddRemoteRepoNullValues()
- {
- getSelenium().open( "/archiva/admin/addRemoteRepository.action" );
- addRemoteRepository( "", "", "", "", "", "", "Maven 2.x Repository", false );
- assertTextPresent( "You must enter a repository identifier." );
- assertTextPresent( "You must enter a repository name." );
- assertTextPresent( "You must enter a url." );
- }
-
- @Test
- public void testAddRemoteRepositoryNullIdentifier()
- {
- getSelenium().open( "/archiva/admin/addRemoteRepository.action" );
- addRemoteRepository( "", "Remote Repository Sample", "http://repository.codehaus.org/org/codehaus/mojo/", "",
- "", "", "Maven 2.x Repository", false );
- assertTextPresent( "You must enter a repository identifier." );
- }
-
- @Test( dependsOnMethods = { "testAddRemoteRepositoryNullIdentifier" } )
- public void testAddRemoteRepoNullName()
- {
- addRemoteRepository( "remoterepo", "", "http://repository.codehaus.org/org/codehaus/mojo/", "", "", "",
- "Maven 2.x Repository", false );
- assertTextPresent( "You must enter a repository name." );
- }
-
- @Test
- public void testAddRemoteRepoNullURL()
- {
- getSelenium().open( "/archiva/admin/addRemoteRepository.action" );
- addRemoteRepository( "remoterepo", "Remote Repository Sample", "", "", "", "", "Maven 2.x Repository", false );
- assertTextPresent( "You must enter a url." );
- }
-
- @Test( dependsOnMethods = { "testAddRemoteRepoNullURL" } )
- public void testAddProxyConnectorValidValues()
- throws Exception
- {
- getSelenium().open( "/archiva/admin/addProxyConnector.action" );
- addProxyConnector( "(direct connection)", "internal", "remoterepo" );
- assertTextPresent( "remoterepo" );
- assertTextPresent( "Remote Repository Sample" );
- }
-
- @Test
- public void testAddRemoteRepoValidValues()
- {
- getSelenium().open( "/archiva/admin/addRemoteRepository.action" );
- addRemoteRepository( "remoterepo", "Remote Repository Sample",
- "http://repository.codehaus.org/org/codehaus/mojo/", "", "", "", "Maven 2.x Repository",
- true );
- assertTextPresent( "Remote Repository Sample" );
- }
-
- // *** BUNDLED REPOSITORY TEST ***
-
- @Test( dependsOnMethods = { "testWithCorrectUsernamePassword" }, alwaysRun = true )
- public void testBundledRepository()
- {
- String repo1 = baseUrl + "repository/internal/";
- String repo2 = baseUrl + "repository/snapshots/";
-
- assertRepositoryAccess( repo1 );
- assertRepositoryAccess( repo2 );
-
- getSelenium().open( "/archiva" );
- }
-
- private void assertRepositoryAccess( String repo )
- {
- getSelenium().open( "/archiva" );
- goToRepositoriesPage();
- assertLinkPresent( repo );
- clickLinkWithText( repo );
- assertPage( "Collection: /" );
- assertTextPresent( "Collection: /" );
- }
-}
+++ /dev/null
-package org.apache.archiva.web.test;
-
-/*
- * 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.archiva.web.test.parent.AbstractSearchTest;
-import org.testng.annotations.Test;
-
-@Test( groups = { "search" }, dependsOnGroups = { "about" }, sequential = true )
-public class SearchTest
- extends AbstractSearchTest
-{
-
- @Test( alwaysRun = true )
- public void testSearchNonExistingArtifact()
- throws Exception
- {
- searchForArtifact( getProperty( "SEARCH_BAD_ARTIFACT" ) );
- assertTextPresent( "No results found" );
- }
-
- // TODO: make search tests more robust especially when comparing/asserting number of hits
- @Test( alwaysRun = true )
- public void testSearchExistingArtifact()
- {
- searchForArtifact( "artifactId:" + getProperty( "ARTIFACT_ARTIFACTID" ) );
- //assertTextPresent( "Results" );
- assertElementPresent( "resultsBox" );
- assertTextPresent( "1 to 1 of 1" );
- assertLinkPresent( "test" );
- }
-
- @Test( alwaysRun = true )
- public void testViewSearchedArtifact()
- {
- searchForArtifact( getProperty( "ARTIFACT_ARTIFACTID" ) );
- clickLinkWithLocator( "//span[@class=\"artifact-title\"]/a[text()='" + getProperty( "ARTIFACT_ARTIFACTID" ) + "']" );
- assertPage( "Apache Archiva \\ Browse Repository" );
- assertTextPresent( getProperty( "ARTIFACT_ARTIFACTID" ) );
- clickLinkWithText( getProperty( "ARTIFACT_VERSION" ) + "/" );
- assertPage( "Apache Archiva \\ Browse Repository" );
- }
-
- @Test( alwaysRun = true )
- public void testSearchWithMultipleKeywords()
- {
- String groupId = getProperty( "ADD_REMOVE_GROUPID" );
- String version = getProperty( "SNAPSHOT_VERSION" );
- String packaging = getProperty( "SNAPSHOT_PACKAGING" );
- String filePath = getProperty( "SNAPSHOT_ARTIFACTFILEPATH" );
- String repoId = getProperty( "SNAPSHOT_REPOSITORYID" );
-
- String existingArtifactId = getProperty( "ADD_REMOVE_ARTIFACTID" );
- String multiKeywords = existingArtifactId.replace( "-", " " );
-
- addArtifact( groupId, existingArtifactId, version, packaging, filePath, repoId, true );
-
- // verify artifact is existing
- searchForArtifact( existingArtifactId );
- assertTextPresent( "Results" );
- assertTextPresent( "Hits: 1 to 1 of 1" );
- assertLinkPresent( existingArtifactId );
-
- // search for existing artifact using multiple keywords
- searchForArtifact( multiKeywords );
- assertTextPresent( "Results" );
- assertTextPresent( "Hits: 1 to 1 of 1" );
- assertLinkPresent( existingArtifactId );
- }
-
- @Test( alwaysRun = true )
- public void testSearchNonExistingArtifactInAdvancedSearch()
- {
- searchForArtifactAdvancedSearch( null, getProperty( "SEARCH_BAD_ARTIFACT" ), null, null, null, null );
- assertTextPresent( "No results found" );
- }
-
- @Test( alwaysRun = true )
- public void testSearchNoSearchCriteriaSpecifiedInAdvancedSearch()
- {
- searchForArtifactAdvancedSearch( null, null, null, null, null, null );
- assertTextPresent( "Advanced Search - At least one search criteria must be provided." );
- }
-
- @Test( alwaysRun = true )
- public void testSearchExistingArtifactUsingAdvancedSearchArtifactId()
- {
- searchForArtifactAdvancedSearch( null, getProperty( "ARTIFACT_ARTIFACTID" ), null,
- getProperty( "REPOSITORYID" ), null, null );
- assertTextPresent( "Results" );
- assertTextPresent( "Hits: 1 to 1 of 1" );
- assertLinkPresent( "test" );
- }
-
- @Test( alwaysRun = true )
- public void testSearchExistingArtifactUsingAdvancedSearchGroupId()
- {
- searchForArtifactAdvancedSearch( getProperty( "GROUPID" ), null, null, getProperty( "REPOSITORYID" ), null,
- null );
- assertTextPresent( "Results" );
- assertTextPresent( "Hits: 1 to 1 of 1" );
- assertLinkPresent( "test" );
- }
-
- @Test( alwaysRun = true )
- public void testSearchExistingArtifactAllCriteriaSpecifiedInAdvancedSearch()
- {
- searchForArtifactAdvancedSearch( getProperty( "GROUPID" ), getProperty( "ARTIFACT_ARTIFACTID" ),
- getProperty( "ARTIFACT_VERSION" ), getProperty( "REPOSITORYID" ),
- getProperty( "ARTIFACT_CLASSNAME" ), null );
- assertTextPresent( "Results" );
- assertTextPresent( "Hits: 1 to 1 of 1" );
- assertLinkPresent( "test" );
- }
-
- @Test( alwaysRun = true )
- public void testSearchExistingArtifactUsingAdvancedSearchNotInRepository()
- {
- searchForArtifactAdvancedSearch( null, getProperty( "ARTIFACT_ARTIFACTID" ), null, "snapshots", null, null );
- assertTextPresent( "No results found" );
- assertTextNotPresent( "Results" );
- assertTextNotPresent( "Hits: 1 to 1 of 1" );
- assertLinkNotPresent( "test" );
- }
-}
+++ /dev/null
-package org.apache.archiva.web.test;
-
-/*
- * 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.archiva.web.test.parent.AbstractArchivaTest;
-import org.testng.annotations.Test;
-
-@Test( groups = {"userroles"}, dependsOnMethods = {"testWithCorrectUsernamePassword"} )
-public class UserRolesTest
- extends AbstractArchivaTest
-{
-
- private static final String EDIT_ROLES = "Roles";
-
- public void testBasicAddDeleteUser()
- {
- username = getProperty( "GUEST_USERNAME" );
- fullname = getProperty( "GUEST_FULLNAME" );
-
- createUser( username, fullname, getUserEmail(), getUserRolePassword(), true );
- deleteUser( username, fullname, getUserEmail() );
- logout();
- login( getAdminUsername(), getAdminPassword() );
- }
-
- @Test( dependsOnMethods = {"testBasicAddDeleteUser"} )
- public void testUserWithGuestRole()
- {
- username = getProperty( "GUEST_USERNAME" );
- fullname = getProperty( "GUEST_FULLNAME" );
-
- createUser( username, fullname, getUserEmail(), getUserRolePassword(), true );
- clickLinkWithText( username );
- clickLinkWithText( EDIT_ROLES );
- checkUserRoleWithValue( fullname );
- clickButtonWithValue( "Submit" );
-
- logout();
- login( username, getUserRolePassword() );
- changePassword( getUserRolePassword(), getUserRoleNewPassword() );
- assertTextPresent( "Password successfully changed" );
- assertLeftNavMenuWithRole( fullname );
- logout();
- login( getAdminUsername(), getAdminPassword() );
- }
-
- @Test( dependsOnMethods = {"testUserWithGuestRole"} )
- public void testUserWithRegisteredUserRole()
- {
- username = getProperty( "REGISTERED_USERNAME" );
- fullname = getProperty( "REGISTERED_FULLNAME" );
-
- createUser( username, fullname, getUserEmail(), getUserRolePassword(), true );
- clickLinkWithText( username );
- clickLinkWithText( EDIT_ROLES );
- checkUserRoleWithValue( fullname );
- clickButtonWithValue( "Submit" );
-
- logout();
- login( username, getUserRolePassword() );
- changePassword( getUserRolePassword(), getUserRoleNewPassword() );
- assertTextPresent( "Password successfully changed" );
- assertLeftNavMenuWithRole( fullname );
- logout();
- login( getAdminUsername(), getAdminPassword() );
- }
-
- @Test( dependsOnMethods = {"testUserWithRegisteredUserRole"} )
- public void testUserWithSysAdminUserRole()
- {
- username = getProperty( "SYSAD_USERNAME" );
- fullname = getProperty( "SYSAD_FULLNAME" );
-
- createUser( username, fullname, getUserEmail(), getUserRolePassword(), true );
- clickLinkWithText( username );
- clickLinkWithText( EDIT_ROLES );
- checkUserRoleWithValue( fullname );
- clickButtonWithValue( "Submit" );
-
- logout();
- login( username, getUserRolePassword() );
- changePassword( getUserRolePassword(), getUserRoleNewPassword() );
- assertTextPresent( "Password successfully changed" );
- assertLeftNavMenuWithRole( fullname );
- logout();
- login( getAdminUsername(), getAdminPassword() );
- }
-
- @Test( dependsOnMethods = {"testUserWithSysAdminUserRole"} )
- public void testUserWithUserAdminUserRole()
- {
- username = getProperty( "USERADMIN_USERNAME" );
- fullname = getProperty( "USERADMIN_FULLNAME" );
-
- createUser( username, fullname, getUserEmail(), getUserRolePassword(), true );
- clickLinkWithText( username );
- clickLinkWithText( EDIT_ROLES );
- checkUserRoleWithValue( fullname );
- clickButtonWithValue( "Submit" );
-
- logout();
- login( username, getUserRolePassword() );
- changePassword( getUserRolePassword(), getUserRoleNewPassword() );
- assertTextPresent( "Password successfully changed" );
- assertLeftNavMenuWithRole( fullname );
- logout();
- login( getAdminUsername(), getAdminPassword() );
- }
-
- @Test( dependsOnMethods = {"testUserWithUserAdminUserRole"} )
- public void testUserWithGlobalRepoManagerRole()
- {
- username = getProperty( "GLOBALREPOMANAGER_USERNAME" );
- fullname = getProperty( "GLOBALREPOMANAGER_FULLNAME" );
-
- createUser( username, fullname, getUserEmail(), getUserRolePassword(), true );
- clickLinkWithText( username );
- clickLinkWithText( EDIT_ROLES );
- checkUserRoleWithValue( fullname );
- clickButtonWithValue( "Submit" );
-
- logout();
- login( username, getUserRolePassword() );
- changePassword( getUserRolePassword(), getUserRoleNewPassword() );
- assertTextPresent( "Password successfully changed" );
- assertLeftNavMenuWithRole( fullname );
- logout();
- login( getAdminUsername(), getAdminPassword() );
- }
-
- @Test( dependsOnMethods = {"testUserWithGlobalRepoManagerRole"} )
- public void testUserWithGlobalRepoObserverRole()
- {
- username = getProperty( "GLOBALREPOOBSERVER_USERNAME" );
- fullname = getProperty( "GLOBALREPOOBSERVER_FULLNAME" );
-
- createUser( username, fullname, getUserEmail(), getUserRolePassword(), true );
- clickLinkWithText( username );
- clickLinkWithText( EDIT_ROLES );
- checkUserRoleWithValue( fullname );
- clickButtonWithValue( "Submit" );
-
- logout();
- login( username, getUserRolePassword() );
- changePassword( getUserRolePassword(), getUserRoleNewPassword() );
- assertTextPresent( "Password successfully changed" );
- assertLeftNavMenuWithRole( fullname );
- logout();
- login( getAdminUsername(), getAdminPassword() );
- }
-
- @Test( dependsOnMethods = {"testUserWithGlobalRepoObserverRole"} )
- public void testUserWithRepoManagerInternalRole()
- {
- username = getProperty( "REPOMANAGER_INTERNAL_USERNAME" );
- fullname = getProperty( "REPOMANAGER_INTERNAL_FULLNAME" );
-
- createUser( username, fullname, getUserEmail(), getUserRolePassword(), true );
- clickLinkWithText( username );
- clickLinkWithText( EDIT_ROLES );
- checkResourceRoleWithValue( fullname );
- clickButtonWithValue( "Submit" );
-
- logout();
- login( username, getUserRolePassword() );
- changePassword( getUserRolePassword(), getUserRoleNewPassword() );
- assertTextPresent( "Password successfully changed" );
- assertLeftNavMenuWithRole( fullname );
- logout();
- login( getAdminUsername(), getAdminPassword() );
- }
-
- /*
- * @Test (dependsOnMethods = { "testUserWithRepoManagerInternalRole" } ) public void
- * testUserWithRepoManagerSnapshotsRole() { username = getProperty("REPOMANAGER_SNAPSHOTS_USERNAME"); fullname =
- * getProperty("REPOMANAGER_SNAPSHOTS_FULLNAME"); createUser(username, fullname, getUserEmail(),
- * getUserRolePassword(), true); clickLinkWithText( username ); clickLinkWithText( "Edit Roles" );
- * checkResourceRoleWithValue( fullname ); clickButtonWithValue( "Submit" ); clickLinkWithText("Logout");
- * login(username, getUserRolePassword()); changePassword( getUserRolePassword(), getUserRoleNewPassword()); // this
- * section will be removed if issue from redback after changing password will be fixed. getSelenium().goBack();
- * clickLinkWithText("Logout"); //assertTextPresent("You are already logged in."); login(username,
- * getUserRoleNewPassword()); assertLeftNavMenuWithRole( fullname ); clickLinkWithText("Logout"); login(
- * getAdminUsername() , getAdminPassword() ); }
- */
-
- @Test( dependsOnMethods = {"testUserWithRepoManagerInternalRole"} )
- public void testUserWithRepoObserverInternalRole()
- {
- username = getProperty( "REPOOBSERVER_INTERNAL_USERNAME" );
- fullname = getProperty( "REPOOBSERVER_INTERNAL_FULLNAME" );
-
- createUser( username, fullname, getUserEmail(), getUserRolePassword(), true );
- clickLinkWithText( username );
- clickLinkWithText( EDIT_ROLES );
- checkResourceRoleWithValue( fullname );
- clickButtonWithValue( "Submit" );
-
- logout();
- login( username, getUserRolePassword() );
- changePassword( getUserRolePassword(), getUserRoleNewPassword() );
-
- // this section will be removed if issue from redback after changing password will be fixed.
- getSelenium().goBack();
- logout();
- // assertTextPresent("You are already logged in.");
-
- login( username, getUserRoleNewPassword() );
- assertLeftNavMenuWithRole( fullname );
- logout();
- login( getAdminUsername(), getAdminPassword() );
- }
-
- /*
- * @Test (dependsOnMethods = { "testUserWithRepoObserverInternalRole" } ) public void
- * testUserWithRepoObserverSnapshotsRole() { username = getProperty( "REPOOBSERVER_SNAPSHOTS_USERNAME" ); fullname =
- * getProperty( "REPOOBSERVER_SNAPSHOTS_FULLNAME" ); createUser(username, fullname, getUserEmail(),
- * getUserRolePassword(), true); clickLinkWithText( username ); clickLinkWithText( "Edit Roles" );
- * checkResourceRoleWithValue( fullname ); clickButtonWithValue( "Submit" ); clickLinkWithText("Logout");
- * login(username, getUserRolePassword()); changePassword( getUserRolePassword(), getUserRoleNewPassword()); // this
- * section will be removed if issue from redback after changing password will be fixed. getSelenium().goBack();
- * clickLinkWithText("Logout"); //assertTextPresent("You are already logged in."); login(username,
- * getUserRoleNewPassword()); assertLeftNavMenuWithRole( fullname ); clickLinkWithText("Logout"); login(
- * getAdminUsername() , getAdminPassword() ); }
- */
-}
\ No newline at end of file
+++ /dev/null
-package org.apache.archiva.web.test;
-
-/*
- * 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.archiva.web.test.parent.AbstractRepositoryTest;
-import org.testng.annotations.Test;
-import org.testng.Assert;
-
-@Test( groups = { "virtualrepository" }, dependsOnMethods = { "testWithCorrectUsernamePassword" } )
-public class VirtualRepositoryTest
- extends AbstractRepositoryTest
-{
- @Test
- public void testAddRepositoryGroupNullValue()
- {
- addRepositoryGroup( " ", false );
- assertTextPresent( "Identifier field is required." );
- }
-
- @Test( dependsOnMethods = { "testWithCorrectUsernamePassword" } )
- public void testAddRepositoryGroupValidValue()
- {
- addRepositoryGroup( "testing", true );
- Assert.assertEquals( getSelenium().getText( "//div[@id='contentArea']/div[2]/div/div[1]/p[1]" ), "testing" );
- }
-
- @Test( dependsOnMethods = { "testAddRepositoryGroupValidValue" } )
- public void testAddRepositoryToRepositoryGroup()
- {
- addRepositoryToRepositoryGroup( "testing", "internal" );
- Assert.assertEquals( getSelenium().getText( "//div[@id='contentArea']/div[2]/div/div[3]/div[2]/p[1]" ),
- "internal" );
- }
-
- @Test( dependsOnMethods = { "testAddRepositoryToRepositoryGroup" } )
- public void testDeleteRepositoryOfRepositoryGroup()
- {
- goToRepositoryGroupsPage();
- deleteRepositoryInRepositoryGroups();
- assertTextPresent( "Repository Groups" );
- assertTextNotPresent( "No Repository Groups Defined." );
- Assert.assertFalse( getSelenium().isElementPresent( "//div[@id='contentArea']/div[2]/div/div[3]/div[2]/p[1]" ) );
- }
-
- @Test( dependsOnMethods = { "testDeleteRepositoryOfRepositoryGroup" } )
- public void testDeleteRepositoryGroup()
- {
- goToRepositoryGroupsPage();
- deleteRepositoryGroup( "testing" );
- assertTextPresent( "No Repository Groups Defined." );
- }
-
-}
+++ /dev/null
-package org.apache.archiva.web.test;
-
-/*
- * 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.
- */
-
-/**
- * Utility class for creating xpath expressions
- */
-public class XPathExpressionUtil
-{
- public static final String CONTAINS = "contains";
-
- public static final String AND = " and ";
-
- public static final String CURRENT_NODE = "./";
-
- public static final String PARENT_NODE = "../";
-
- public static final String GRANDPARENT_NODE = "../../";
-
- public static final String ELEMENT_ANY_LEVEL = "//";
-
- public static final String TABLE_COLUMN = "td";
-
- public static final String TABLE_ROW = "tr";
-
- public static final String START_NODE_TEST = "[";
-
- public static final String END_NODE_TEST = "]";
-
- public static final String ANCHOR = "a";
-
- public static final String IMG = "img";
-
- public static final String LIST = "ul";
-
- public static final String LINE = "li";
-
- public static String getList( String[] values )
- {
- String xpathExpression = "";
-
- if ( values.length > 0 )
- {
- xpathExpression += ELEMENT_ANY_LEVEL;
- xpathExpression += LIST;
- xpathExpression += START_NODE_TEST;
-
- for ( int nIndex = 0; nIndex < values.length; nIndex++ )
- {
- xpathExpression += ( ( nIndex > 0 ) ? AND : "" );
- xpathExpression += contains( LINE + position( nIndex + 1 ), values[nIndex] );
- }
-
- xpathExpression += END_NODE_TEST;
- }
-
- return xpathExpression;
- }
-
- /**
- * expression for acquiring an element in one of the table columns
- *
- * @param element the node element
- * @param elementIndex column index of the element, used for skipping
- * @param columnValues the values to be matched in each column, element column is included
- * @return
- */
- public static String getColumnElement( String element, int elementIndex, String[] columnValues )
- {
- return getColumnElement( element, elementIndex, null, columnValues );
- }
-
- /**
- * expression for acquiring an element in one of the table columns
- *
- * @param element the node element
- * @param elementIndex column index of the element, used for skipping
- * @param elementValue the matched element value
- * @param columnValues the values to be matched in each column, element column is included
- * @return
- */
- public static String getColumnElement( String element, int elementIndex, String elementValue, String[] columnValues )
- {
- return getColumnElement( element, elementIndex, elementValue, "TEXT", columnValues );
- }
-
- /**
- * expression for acquiring an element in one of the table columns
- *
- * @param element the node element
- * @param elementIndex column index of the element, used for skipping
- * @param imageName the matched image name
- * @param columnValues the values to be matched in each column, element column is included
- * @return
- */
- public static String getImgColumnElement( String element, int elementIndex, String imageName, String[] columnValues )
- {
- return getColumnElement( element, elementIndex, imageName, IMG, columnValues );
- }
-
- /**
- * expression for acquiring an element in one of the table columns
- *
- * @param element the node element
- * @param elementIndex column index of the element, used for skipping
- * @param imageName the matched image name
- * @param columnValues the values to be matched in each column, element column is included
- * @return
- */
- private static String getColumnElement( String element, int elementIndex, String elementValue,
- String elementValueType, String[] columnValues )
- {
- String xpathExpression = null;
-
- if ( ( columnValues != null ) && ( columnValues.length > 0 ) )
- {
- xpathExpression = ELEMENT_ANY_LEVEL + element;
- xpathExpression += START_NODE_TEST;
-
- if ( elementValue != null )
- {
- if ( "TEXT".equals( elementValueType ) )
- {
- xpathExpression += contains( elementValue );
- xpathExpression += ( columnValues.length > 0 ) ? AND : "";
- }
- }
-
- // we are two levels below the table row element ( tr/td/<element> )
- xpathExpression += matchColumns( GRANDPARENT_NODE, columnValues, elementIndex );
-
- xpathExpression += END_NODE_TEST;
- }
-
- if ( IMG.equals( elementValueType ) )
- {
- xpathExpression += "/img[contains(@src, '" + elementValue + "')]";
- }
-
- return xpathExpression;
- }
-
- /**
- * expression for acquiring the table row that matches all column values with the same order as the list
- *
- * @param columnValues the matched list of columnValues
- * @return
- */
- public static String getTableRow( String[] columnValues )
- {
- String xpathExpression = null;
-
- if ( ( columnValues != null ) && ( columnValues.length > 0 ) )
- {
- xpathExpression = new String( ELEMENT_ANY_LEVEL + TABLE_ROW + START_NODE_TEST );
- xpathExpression += matchColumns( columnValues );
- xpathExpression += END_NODE_TEST;
- }
-
- return xpathExpression;
- }
-
- private static String matchColumns( String[] columnValues )
- {
- return matchColumns( columnValues, -1 );
- }
-
- private static String matchColumns( String[] columnValues, int skipIndex )
- {
- return matchColumns( null, columnValues, skipIndex );
- }
-
- private static String matchColumns( String parent, String[] columnValues, int skipIndex )
- {
- String xpathExpression = "";
-
- for ( int nIndex = 0; nIndex < columnValues.length; nIndex++ )
- {
- if ( ( skipIndex != nIndex ) || ( skipIndex == -1 ) )
- {
- // prepend "and" if index > 0
- xpathExpression += ( ( nIndex > 0 ) ? AND : "" );
- xpathExpression += contains( parent, TABLE_COLUMN + position( nIndex + 1 ), columnValues[nIndex] );
- }
- }
-
- return xpathExpression;
- }
-
- private static String position( int nIndex )
- {
- return new String( "[" + nIndex + "]" );
- }
-
- private static String contains( String parent, String element, String matchedString )
- {
- String finalElement = ( parent != null ) ? parent : "";
- finalElement += element;
-
- return contains( finalElement, matchedString );
- }
-
- private static String contains( String matchedString )
- {
- return contains( ".", matchedString );
- }
-
- private static String contains( String axis, String matchedString )
- {
- return new String( CONTAINS + "(" + axis + "," + "'" + matchedString + "')" );
- }
-
- private static String equals( String parent, String element, String matchedString )
- {
- String finalElement = ( parent != null ) ? parent : "";
- finalElement += element;
-
- return equals( finalElement, matchedString );
- }
-
- private static String equals( String axis, String matchedString )
- {
- return new String( axis + "==" + "'" + matchedString + "'" );
- }
-}
\ No newline at end of file
+++ /dev/null
-package org.apache.archiva.web.test;
-
-/*
- * 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.archiva.web.test.parent.AbstractArchivaTest;
-import org.testng.annotations.Test;
-
-/**
- * Test all actions affected with XSS security issue.
- */
-@Test( groups = { "xss" }, dependsOnMethods = { "testWithCorrectUsernamePassword" }, sequential = true )
-public class XSSSecurityTest
- extends AbstractArchivaTest
-{
- public void testDeleteArtifactImmunityToURLCrossSiteScripting()
- {
- getSelenium().open(
- "/archiva/deleteArtifact!doDelete.action?groupId=\"/>1<script>alert('xss')</script>&artifactId=\"/>1<script>alert('xss')</script>&version=\"/>1<script>alert('xss')</script>&repositoryId=\"/>1<script>alert('xss')</script>" );
- assertDeleteArtifactPage();
- assertTextPresent( "Invalid version." );
- assertTextPresent(
- "User is not authorized to delete artifacts in repository '\"/>1<script>alert('xss')</script>'." );
- assertTextPresent(
- "Group id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
- assertTextPresent(
- "Artifact id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
- assertTextPresent(
- "Repository id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
- assertElementValue( "//input[@id='deleteArtifact_groupId']", "\"/>1<script>alert('xss')</script>" );
- assertElementValue( "//input[@id='deleteArtifact_artifactId']", "\"/>1<script>alert('xss')</script>" );
- assertElementValue( "//input[@id='deleteArtifact_version']", "\"/>1<script>alert('xss')</script>" );
- assertElementValue( "//select[@id='deleteArtifact_repositoryId']", "internal" );
- }
-
- public void testDeleteArtifactImmunityToEncodedURLCrossSiteScripting()
- {
- getSelenium().open(
- "/archiva/deleteArtifact!doDelete.action?groupId=%22%2F%3E1%3Cscript%3Ealert('xss')%3C%2Fscript%3E&artifactId=%22%2F%3E1%3Cscript%3Ealert('xss')%3C%2Fscript%3E&version=%22%2F%3E1%3Cscript%3Ealert('xss')%3C%2Fscript%3E&repositoryId=%22%2F%3E1%3Cscript%3Ealert('xss')%3C%2Fscript%3E" );
- assertDeleteArtifactPage();
- assertTextPresent( "Invalid version." );
- assertTextPresent(
- "User is not authorized to delete artifacts in repository '\"/>1<script>alert('xss')</script>'." );
- assertTextPresent(
- "Group id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
- assertTextPresent(
- "Artifact id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
- assertTextPresent(
- "Repository id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
- assertElementValue( "//input[@id='deleteArtifact_groupId']", "\"/>1<script>alert('xss')</script>" );
- assertElementValue( "//input[@id='deleteArtifact_artifactId']", "\"/>1<script>alert('xss')</script>" );
- assertElementValue( "//input[@id='deleteArtifact_version']", "\"/>1<script>alert('xss')</script>" );
- assertElementValue( "//select[@id='deleteArtifact_repositoryId']", "internal" );
- }
-
- public void testEditAppearanceImmunityToURLCrossSiteScripting()
- {
- getSelenium().open(
- "/archiva/admin/configureAppearance.action?organisationName=<script>alert('xss')</script>&organisationUrl=<script>alert('xss')</script>&organisationLogo=<script>alert('xss')</script>" );
- assertAppearancePage();
- assertXpathCount( "//td[text()=\"<script>alert('xss')</script>\"]", 1 );
- assertXpathCount( "//code[text()=\"<script>alert('xss')</script>\"]", 2 );
-
- }
-
- public void testEditAppearanceImmunityToEncodedURLCrossSiteScripting()
- {
- getSelenium().open(
- "/archiva/admin/configureAppearance.action?organisationName=%3Cscript%3Ealert('xss')%3C%2Fscript%3E&organisationUrl=%3Cscript%3Ealert('xss')%3C%2Fscript%3E&organisationLogo=%3Cscript%3Ealert('xss')%3C%2Fscript%3E" );
- assertAppearancePage();
- assertXpathCount( "//td[text()=\"<script>alert('xss')</script>\"]", 1 );
- assertXpathCount( "//code[text()=\"<script>alert('xss')</script>\"]", 2 );
- }
-
- public void testAddLegacyArtifactImmunityToURLCrossSiteScripting()
- {
- getSelenium().open(
- "/archiva/admin/addLegacyArtifactPath!commit.action?legacyArtifactPath.path=\"/>1<script>alert('xss')</script>&groupId=\"/>1<script>alert('xss')</script>&artifactId=\"/>1<script>alert('xss')</script>&version=\"/>1<script>alert('xss')</script>&classifier=\"/>1<script>alert('xss')</script>&type=\"/>1<script>alert('xss')</script>" );
- assertAddLegacyArtifactPathPage();
- assertTextPresent(
- "Legacy path must only contain alphanumeric characters, forward-slashes(/), back-slashes(\\), underscores(_), dots(.), and dashes(-)." );
- assertTextPresent(
- "Group id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
- assertTextPresent(
- "Artifact id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
- assertTextPresent(
- "Version must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
- assertTextPresent(
- "Classifier must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
- assertTextPresent( "Type must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
- assertElementValue( "//input[@id='addLegacyArtifactPath_legacyArtifactPath_path']",
- "\"/>1<script>alert('xss')</script>" );
- assertElementValue( "//input[@id='addLegacyArtifactPath_artifactId']", "\"/>1<script>alert('xss')</script>" );
- assertElementValue( "//input[@id='addLegacyArtifactPath_version']", "\"/>1<script>alert('xss')</script>" );
- assertElementValue( "//input[@id='addLegacyArtifactPath_groupId']", "\"/>1<script>alert('xss')</script>" );
- assertElementValue( "//input[@id='addLegacyArtifactPath_classifier']", "\"/>1<script>alert('xss')</script>" );
- assertElementValue( "//input[@id='addLegacyArtifactPath_type']", "\"/>1<script>alert('xss')</script>" );
- }
-
- public void testAddLegacyArtifactImmunityToEncodedURLCrossSiteScripting()
- {
- getSelenium().open(
- "/archiva/admin/addLegacyArtifactPath!commit.action?legacyArtifactPath.path=%22%2F%3E1%3Cscript%3Ealert('xss')%3C%2Fscript%3E&groupId=%22%2F%3E1%3Cscript%3Ealert('xss')%3C%2Fscript%3E&artifactId=%22%2F%3E1%3Cscript%3Ealert('xss')%3C%2Fscript%3E&version=%22%2F%3E1%3Cscript%3Ealert('xss')%3C%2Fscript%3E&classifier=%22%2F%3E1%3Cscript%3Ealert('xss')%3C%2Fscript%3E&type=%22%2F%3E1%3Cscript%3Ealert('xss')%3C%2Fscript%3E" );
- assertAddLegacyArtifactPathPage();
- assertTextPresent(
- "Legacy path must only contain alphanumeric characters, forward-slashes(/), back-slashes(\\), underscores(_), dots(.), and dashes(-)." );
- assertTextPresent(
- "Group id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
- assertTextPresent(
- "Artifact id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
- assertTextPresent(
- "Version must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
- assertTextPresent(
- "Classifier must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
- assertTextPresent( "Type must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
- assertElementValue( "//input[@id='addLegacyArtifactPath_legacyArtifactPath_path']",
- "\"/>1<script>alert('xss')</script>" );
- assertElementValue( "//input[@id='addLegacyArtifactPath_artifactId']", "\"/>1<script>alert('xss')</script>" );
- assertElementValue( "//input[@id='addLegacyArtifactPath_version']", "\"/>1<script>alert('xss')</script>" );
- assertElementValue( "//input[@id='addLegacyArtifactPath_groupId']", "\"/>1<script>alert('xss')</script>" );
- assertElementValue( "//input[@id='addLegacyArtifactPath_classifier']", "\"/>1<script>alert('xss')</script>" );
- assertElementValue( "//input[@id='addLegacyArtifactPath_type']", "\"/>1<script>alert('xss')</script>" );
- }
-
- public void testDeleteNetworkProxyImmunityToURLCrossSiteScripting()
- {
- getSelenium().open(
- "/archiva/admin/deleteNetworkProxy!confirm.action?proxyid=\"/>1<script>alert('xss')</script>" );
- assertTextPresent( "Security Alert - Invalid Token Found" );
- assertTextPresent( "Possible CSRF attack detected! Invalid token found in the request." );
- }
-
- public void testDeleteNetworkProxyImmunityToEncodedURLCrossSiteScripting()
- {
- getSelenium().open(
- "/archiva/admin/deleteNetworkProxy!confirm.action?proxyid=%22%2F%3E1%3Cscript%3Ealert('xss')%3C%2Fscript%3E" );
- assertTextPresent( "Security Alert - Invalid Token Found" );
- assertTextPresent( "Possible CSRF attack detected! Invalid token found in the request." );
- }
-
- @Test
- public void testAddManagedRepositoryImmunityToInputFieldCrossSiteScripting()
- {
- // TODO: these are evaluated client side now - we should force it to do server-side to make sure (though this could probably be tested in the webapp tests instead)
- getSelenium().open( "/archiva/admin/addRepository.action" );
- addManagedRepository( "test\"><script>alert('xss')</script>", "test\"><script>alert('xss')</script>",
- "test\"><script>alert('xss')</script>", "test\"><script>alert('xss')</script>",
- "Maven 2.x Repository", "", "-1", "101", false );
- // xss inputs are blocked by validation.
- assertTextPresent(
- "Identifier must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
- assertTextPresent(
- "Directory must only contain alphanumeric characters, equals(=), question-marks(?), exclamation-points(!), ampersands(&), forward-slashes(/), back-slashes(\\), underscores(_), dots(.), colons(:), tildes(~), and dashes(-)." );
- assertTextPresent(
- "Repository Name must only contain alphanumeric characters, white-spaces(' '), forward-slashes(/), open-parenthesis('('), close-parenthesis(')'), underscores(_), dots(.), and dashes(-)." );
- assertTextPresent(
- "Index directory must only contain alphanumeric characters, equals(=), question-marks(?), exclamation-points(!), ampersands(&), forward-slashes(/), back-slashes(\\), underscores(_), dots(.), colons(:), tildes(~), and dashes(-)." );
- assertTextPresent( "Repository Purge By Retention Count needs to be between 1 and 100." );
- assertTextPresent( "Repository Purge By Days Older Than needs to be larger than 0." );
- assertTextPresent( "Cron expression is required." );
- }
-
- @Test
- public void testAddManagedRepositoryImmunityToInputFieldCrossSiteScriptingCron()
- {
- // separate test because cron is evaluated server side, not client side
- getSelenium().open( "/archiva/admin/addRepository.action" );
- addManagedRepository( "id", "name", "/home", "/.index", "Maven 2.x Repository",
- "<test\"><script>alert('xss')</script>", "1", "1", true );
- assertTextPresent( "Invalid cron expression." );
- }
-
- public void testEditAppearanceImmunityToInputFieldCrossSiteScripting()
- {
- goToAppearancePage();
- clickLinkWithText( "Edit" );
- addEditAppearance( "test<script>alert('xss')</script>", "test<script>alert('xss')</script>",
- "test<script>alert('xss')</script>", false );
- // xss inputs are blocked by validation.
- assertTextPresent(
- "Organisation name must only contain alphanumeric characters, white-spaces(' '), equals(=), question-marks(?), exclamation-points(!), ampersands(&), forward-slashes(/), back-slashes(\\), underscores(_), dots(.), colons(:), tildes(~), and dashes(-)." );
- assertTextPresent( "You must enter a URL." );
- assertTextPresent( "You must enter a URL for your logo." );
- }
-
- public void testEditAppearanceImmunityToCrossSiteScriptingRendering()
- {
- goToAppearancePage();
- clickLinkWithText( "Edit" );
- addEditAppearance( "xss", "http://\">test<script>alert(\"xss\")</script>",
- "http://\">test<script>alert(\"xss\")</script>", false );
- // escaped html/url prevents cross-site scripting exploits
-// assertXpathCount( "//td[text()=\"xss\"]", 1 );
-// assertXpathCount( "//code[text()='http://\">test<script>alert(\"xss\")</script>']", 2 );
- // Javascript catches this instead now
- assertTextPresent( "You must enter a URL." );
- assertTextPresent( "You must enter a URL for your logo." );
- }
-
- public void testAddLegacyArtifactPathImmunityToInputFieldCrossSiteScripting()
- {
- goToLegacySupportPage();
- clickLinkWithText( "Add" );
- addLegacyArtifactPath( "test<script>alert('xss')</script>", "test<script>alert('xss')</script>",
- "test<script>alert('xss')</script>", "test<script>alert('xss')</script>",
- "test<script>alert('xss')</script>", "test<script>alert('xss')</script>", false );
- // xss inputs are blocked by validation.
- assertTextPresent(
- "Legacy path must only contain alphanumeric characters, forward-slashes(/), back-slashes(\\), underscores(_), dots(.), and dashes(-)." );
- assertTextPresent(
- "Group id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
- assertTextPresent(
- "Artifact id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
- assertTextPresent(
- "Version must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
- assertTextPresent(
- "Classifier must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
- assertTextPresent( "Type must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
- }
-
- public void testAddNetworkProxyImmunityToInputFieldCrossSiteScripting()
- {
- goToNetworkProxiesPage();
- addNetworkProxy( "test<script>alert('xss')</script>", "test<script>alert('xss')</script>",
- "test<script>alert('xss')</script>", "test<script>alert('xss')</script>",
- "test<script>alert('xss')</script>", "" );
- // xss inputs are blocked by validation.
- assertTextPresent(
- "Proxy id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
- assertTextPresent(
- "Protocol must only contain alphanumeric characters, forward-slashes(/), back-slashes(\\), dots(.), colons(:), and dashes(-)." );
- assertTextPresent(
- "Host must only contain alphanumeric characters, equals(=), question-marks(?), exclamation-points(!), ampersands(&), forward-slashes(/), back-slashes(\\), underscores(_), dots(.), colons(:), tildes(~), and dashes(-)." );
- assertTextPresent( "Invalid field value for field \"proxy.port\"." );
- assertTextPresent(
- "Username must only contain alphanumeric characters, at's(@), forward-slashes(/), back-slashes(\\), underscores(_), dots(.), and dashes(-)." );
- }
-}
+++ /dev/null
-package org.apache.archiva.web.test.listener;
-
-/*
- * 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 com.thoughtworks.selenium.Selenium;
-import org.apache.archiva.web.test.parent.AbstractSeleniumTest;
-import org.apache.commons.io.FileUtils;
-import org.testng.ITestResult;
-import org.testng.TestListenerAdapter;
-
-import java.io.File;
-import java.io.IOException;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.regex.Pattern;
-
-public class CaptureScreenShotsListener
- extends TestListenerAdapter
-{
- @Override
- public void onTestSkipped( ITestResult tr )
- {
- System.out.println( "Test " + tr.getName() + " -> Skipped" );
- super.onTestSkipped( tr );
- }
-
- @Override
- public void onTestFailure( ITestResult tr )
- {
- captureError( tr );
- System.out.println( "Test " + tr.getName() + " -> Failed" );
- super.onTestFailure( tr );
- }
-
- @Override
- public void onTestSuccess( ITestResult tr )
- {
- System.out.println( "Test " + tr.getName() + " -> Success" );
- super.onTestFailure( tr );
- }
-
- private void captureError( ITestResult tr )
- {
- SimpleDateFormat sdf = new SimpleDateFormat( "yyyy.MM.dd-HH_mm_ss" );
- String time = sdf.format( new Date() );
- File targetPath = new File( "target", "screenshots" );
- StackTraceElement stackTrace[] = tr.getThrowable().getStackTrace();
- String cName = tr.getTestClass().getName();
- int index = getStackTraceIndexOfCallingClass( cName, stackTrace );
- String methodName = stackTrace[index].getMethodName();
- int lNumber = stackTrace[index].getLineNumber();
- String lineNumber = Integer.toString( lNumber );
- String className = cName.substring( cName.lastIndexOf( '.' ) + 1 );
- targetPath.mkdirs();
- Selenium selenium = AbstractSeleniumTest.getSelenium();
- String fileBaseName = methodName + "_" + className + ".java_" + lineNumber + "-" + time;
- try
- {
- selenium.windowMaximize();
- File fileName = new File( targetPath, fileBaseName + ".png" );
- selenium.captureEntirePageScreenshot( fileName.getAbsolutePath(), "background=#FFFFFF" );
- }
- catch ( RuntimeException e )
- {
- System.out.println( "Error when take screenshot for test " + tr.getName() + ": " + e.getMessage() );
- }
- try
- {
- File fileName = new File( targetPath, fileBaseName + ".html" );
- FileUtils.writeStringToFile( fileName, selenium.getHtmlSource() );
- }
- catch ( IOException ioe )
- {
- System.out.println( ioe.getMessage() );
- }
- }
-
- private int getStackTraceIndexOfCallingClass( String nameOfClass, StackTraceElement stackTrace[] )
- {
- boolean match = false;
- int i = 0;
- do
- {
- String className = stackTrace[i].getClassName();
- match = Pattern.matches( nameOfClass, className );
- i++;
- }
- while ( match == false );
- i--;
- return i;
- }
-}
\ No newline at end of file
+++ /dev/null
-package org.apache.archiva.web.test.parent;
-
-import org.apache.archiva.web.test.XPathExpressionUtil;
-
-import java.io.File;
-import java.io.IOException;
-
-/*
- * 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.
- */
-
-public abstract class AbstractArchivaTest
- extends AbstractSeleniumTest
-{
- protected String username;
-
- protected String fullname;
-
- protected static String getErrorMessageText()
- {
- return getSelenium().getText( "//ul[@class='errorMessage']/li/span" );
- }
-
- public String getUserEmail()
- {
- String email = getProperty( "USERROLE_EMAIL" );
- return email;
- }
-
- public String getUserRolePassword()
- {
- String password = getProperty( "USERROLE_PASSWORD" );
- return password;
- }
-
- public String getUserRoleNewPassword()
- {
- String password_new = getProperty( "NEW_USERROLE_PASSWORD" );
- return password_new;
- }
-
- public String getBasedir()
- {
- String basedir = System.getProperty( "basedir" );
-
- if ( basedir == null )
- {
- basedir = new File( "" ).getAbsolutePath();
- }
-
- return basedir;
- }
-
- public String getAdminUsername()
- {
- String adminUsername = getProperty( "ADMIN_USERNAME" );
- return adminUsername;
- }
-
- public String getAdminPassword()
- {
- String adminPassword = getProperty( "ADMIN_PASSWORD" );
- return adminPassword;
- }
-
- public void assertCreateAdmin()
- {
- assertElementPresent( "adminCreateForm" );
- //assertPage( "Apache Archiva \\ Create Admin User" );
- //assertTextPresent( "Username" );
- assertFieldValue( "admin", "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" );
- //assertButtonWithValuePresent( "Create Admin" );
- }
-
- public void submitAdminData( String fullname, String email, String password )
- {
- setFieldValue( "user.fullName", fullname );
- setFieldValue( "user.email", email );
- setFieldValue( "user.password", password );
- setFieldValue( "user.confirmPassword", password );
- submit();
- }
-
- // Go to Login Page
- public void goToLoginPage()
- {
- getSelenium().open( baseUrl );
- // are we already logged in ?
- if ( isElementPresent( "logoutLink" ) )
- {
- // so logout
- clickLinkWithLocator( "logoutLink" );
- clickLinkWithLocator( "loginLink" );
- }
- else if ( isElementPresent( "loginLink" ) )
- {
- clickLinkWithLocator( "loginLink" );
- }
- assertLoginPage();
- }
-
- public void submitUserData( String username, String password, boolean rememberme, boolean success )
- {
-
- setFieldValue( "username", username );
- setFieldValue( "password", password );
- if ( rememberme )
- {
- checkField( "rememberMe" );
- }
-
- submit();
- if ( success )
- {
- assertUserLoggedIn( username );
- }
- else
- {
- assertLoginPage();
- }
- }
-
- public void assertLoginPage()
- {
- //assertPage( "Apache Archiva \\ Login Page" );
- //assertTextPresent( "Login" );
- assertElementPresent( "loginForm" );
- //assertTextPresent( "Register" );
- assertElementPresent( "registerLink" );
- //assertTextPresent( "Username" );
- assertElementPresent( "username" );
- //assertTextPresent( "Password" );
- assertElementPresent( "password" );
- //assertTextPresent( "Remember Me" );
- assertElementPresent( "rememberMe" );
- //assertButtonWithValuePresent( "Login" );
- assertButtonWithIdPresent( "loginSubmit" );
- //assertButtonWithValuePresent( "Cancel" );
- assertButtonWithIdPresent( "loginCancel" );
- //assertTextPresent( "Need an Account? Register!" );
- //assertTextPresent( "Forgot your Password? Request a password reset." );
- assertElementPresent( "registerLinkLoginPage" );
- assertElementPresent( "forgottenPasswordLink" );
- }
-
- // User Management
- public void goToUserManagementPage()
- {
- getSelenium().open( "/archiva/security/userlist.action" );
- assertUserManagementPage();
- }
-
- public void assertUserManagementPage()
- {
- assertPage( "Apache Archiva \\ [Admin] User List" );
- assertTextPresent( "[Admin] List of Users in Role: Any" );
- assertTextPresent( "Navigation" );
- assertImgWithAlt( "First" );
- assertImgWithAlt( "Prev" );
- assertImgWithAlt( "Next" );
- assertImgWithAlt( "Last" );
- assertTextPresent( "Display Rows" );
- assertTextPresent( "Username" );
- assertTextPresent( "Full Name" );
- assertTextPresent( "Email" );
- assertTextPresent( "Permanent" );
- assertTextPresent( "Validated" );
- assertTextPresent( "Locked" );
- assertTextPresent( "Tasks" );
- assertTextPresent( "Tools" );
- assertTextPresent( "Tasks" );
- assertTextPresent( "The following tools are available for administrators to manipulate the user list." );
- assertButtonWithValuePresent( "Create New User" );
- assertButtonWithValuePresent( "Show Users In Role" );
- assertElementPresent( "roleName" );
- assertTextPresent( "Reports" );
- assertTextPresent( "Name" );
- assertTextPresent( "Types" );
- assertTextPresent( "User List" );
- assertTextPresent( "Roles Matrix" );
- }
-
- /*
- * //User Role public void goToUserRolesPage() { clickLinkWithText( "User Roles" ); assertUserRolesPage(); }
- */
-
- public void assertUserRolesPage()
- {
- //assertPage( "Apache Archiva \\ [Admin] User Edit" );
- //[Admin] Rôles de l'utilisateur
-
- assertTextPresent( "[Admin] User Roles", "[Admin] R\u00F4les de l'utilisateur" );
- assertTextPresent( "Username", "Nom d'utilisateur" );
- assertTextPresent( "Full Name", "Nom complet" );
- String userRoles =
- "Guest,Registered User,System Administrator,User Administrator,Global Repository Observer,Global Repository Manager,Repository Observer,Repository Manager,internal";
- String[] arrayRole = userRoles.split( "," );
- for ( String userroles : arrayRole )
- {
- assertTextPresent( userroles );
- }
- }
-
- public void assertDeleteUserPage( String username )
- {
- assertTextPresent( "[Admin] User Delete", "[Admin] Suppression de l'utilisateur", "L'utilisateur suivant va \u00EAtre supprim\u00E9:" );
- assertTextPresent( "The following user will be deleted:" );
- assertTextPresent( "Username: " + username , "Nom d'utilisateur:" + username);
- assertButtonWithIdPresent( "userDeleteSubmit" );
- }
-
- public void createUser( String userName, String fullName, String email, String password, boolean valid )
- {
- createUser( userName, fullName, email, password, password, valid );
- }
-
- private void createUser( String userName, String fullName, String emailAd, String password, String confirmPassword,
- boolean valid )
- {
- // login( getAdminUsername() , getAdminPassword() );
- getSelenium().open( "/archiva/security/userlist.action" );
- clickButtonWithLocator( "userCreateButton", true );
- //clickButtonWithValue( "Create New User" );
- assertCreateUserPage();
- setFieldValue( "user.username", userName );
- setFieldValue( "user.fullName", fullName );
- setFieldValue( "user.email", emailAd );
- setFieldValue( "user.password", password );
- setFieldValue( "user.confirmPassword", confirmPassword );
- submit();
-
- assertUserRolesPage();
-
- //clickButtonWithValue( "Submit" );
- clickButtonWithName( "submitRolesButton", true );
-
- if ( valid )
- {
- String[] columnValues = { userName, fullName, emailAd };
- assertElementPresent( XPathExpressionUtil.getTableRow( columnValues ) );
- }
- else
- {
- assertCreateUserPage();
- }
- }
-
- public void deleteUser( String userName, String fullName, String emailAdd )
- {
- deleteUser( userName, fullName, emailAdd, false, false );
- }
-
- public void deleteUser( String userName, String fullName, String emailAd, boolean validated, boolean locked )
- {
- String[] columnValues = { userName, fullName, emailAd };
- // clickLinkWithText( "userlist" );
- clickLinkWithXPath( "//table[@id='ec_table']/tbody[2]/tr[3]/td[7]/a/img" );
- assertDeleteUserPage( userName );
- submit();
- assertElementNotPresent( XPathExpressionUtil.getTableRow( columnValues ) );
- }
-
- public void login( String username, String password )
- {
- login( username, password, true, "Login Page" );
- }
-
- public void login( String username, String password, boolean valid, String assertReturnPage )
- {
- if ( isElementPresent( "loginLink" ) )
- {
- goToLoginPage();
-
- submitLoginPage( username, password, false, valid, assertReturnPage );
- }
- if ( valid )
- {
- assertUserLoggedIn( username );
- }
- }
-
- public void submitLoginPage( String username, String password )
- {
- submitLoginPage( username, password, false, true, "Login Page" );
- }
-
- public void submitLoginPage( String username, String password, boolean validUsernamePassword )
- {
- submitLoginPage( username, password, false, validUsernamePassword, "Login Page" );
- }
-
- public void submitLoginPage( String username, String password, boolean rememberMe, boolean validUsernamePassword,
- String assertReturnPage )
- {
- assertLoginPage();
- setFieldValue( "username", username );
- setFieldValue( "password", password );
- if ( rememberMe )
- {
- checkField( "rememberMe" );
- }
- //clickButtonWithValue( "Login" );
- clickButtonWithLocator( "loginSubmit" );
- if ( validUsernamePassword )
- {
- assertUserLoggedIn( username );
- }
- else
- {
- if ( "Login Page".equals( assertReturnPage ) )
- {
- assertLoginPage();
- }
- else
- {
- assertPage( assertReturnPage );
- }
- }
- }
-
- protected void assertUserLoggedIn( String username )
- {
- //assertTextPresent( "Current User:" );
- assertTextPresent( username );
- //assertLinkPresent( "Edit Details" );
- assertElementPresent( "editUserLink" );
- assertElementPresent( "logoutLink" );
- //assertLinkPresent( "Logout" );
- //assertTextNotPresent( "Login" );
- assertElementNotPresent( "loginLink" );
- }
-
- // User Roles
- public void assertUserRoleCheckBoxPresent( String value )
- {
- getSelenium().isElementPresent(
- "xpath=//input[@id='addRolesToUser_addNDSelectedRoles' and @name='addNDSelectedRoles' and @value='" + value
- + "']" );
- }
-
- public void assertResourceRolesCheckBoxPresent( String value )
- {
- getSelenium().isElementPresent( "xpath=//input[@name='addDSelectedRoles' and @value='" + value + "']" );
- }
-
- public void checkUserRoleWithValue( String value )
- {
- assertUserRoleCheckBoxPresent( value );
- getSelenium().click(
- "xpath=//input[@id='addRolesToUser_addNDSelectedRoles' and @name='addNDSelectedRoles' and @value='" + value
- + "']" );
- }
-
- public void checkResourceRoleWithValue( String value )
- {
- assertResourceRolesCheckBoxPresent( value );
- getSelenium().click( "xpath=//input[@name='addDSelectedRoles' and @value='" + value + "']" );
- }
-
- public void changePassword( String oldPassword, String newPassword )
- {
- assertPage( "Apache Archiva \\ Change Password" );
- setFieldValue( "existingPassword", oldPassword );
- setFieldValue( "newPassword", newPassword );
- setFieldValue( "newPasswordConfirm", newPassword );
- clickButtonWithValue( "Change Password" );
- }
-
- public void assertCreateUserPage()
- {
- //assertPage( "Apache Archiva \\ [Admin] User Create" );
- //assertTextPresent( "[Admin] User Create" );
- assertTextPresent( "Username*:", "Nom d'utilisateur*:" );
- assertElementPresent( "user.username" );
- assertTextPresent( "Full Name*:", "Nom complet*:" );
- assertElementPresent( "user.fullName" );
- assertTextPresent( "Email Address*:", "Adresse email*:" );
- assertElementPresent( "user.email" );
- assertTextPresent( "Password*:", "Mot de passe*:" );
- assertElementPresent( "user.password" );
- assertTextPresent( "Confirm Password*:", "Confirmer le mot de passe*" );
- assertElementPresent( "user.confirmPassword" );
- //assertButtonWithValuePresent( "Create User" );
- assertButtonWithIdPresent( "userCreateSubmit" );
-// assertElementNotPresent( "userCreateSubmit" );
- }
-
- public void assertLeftNavMenuWithRole( String role )
- {
- if ( role.equals( "Guest" ) || role.equals( "Registered User" ) || role.equals( "Global Repository Observer" )
- || role.equals( "Repository Observer - internal" ) || role.equals( "Repository Observer - snapshots" ) )
- {
- assertTextPresent( "Search" );
- assertLinkPresent( "Find Artifact" );
- assertLinkPresent( "Browse" );
- assertLinkNotPresent( "Repositories" );
- }
- else if ( role.equals( "User Administrator" ) )
- {
- assertTextPresent( "Search" );
- assertLinkPresent( "Find Artifact" );
- assertLinkPresent( "Browse" );
- assertLinkPresent( "User Management" );
- assertLinkPresent( "User Roles" );
- assertLinkNotPresent( "Repositories" );
- }
- else if ( role.equals( "Global Repository Manager" ) || role.equals( "Repository Manager - internal" )
- || role.equals( "Repository Manager - snapshots" ) )
- {
- assertTextPresent( "Search" );
- assertLinkPresent( "Find Artifact" );
- assertLinkPresent( "Browse" );
- assertLinkPresent( "Upload Artifact" );
- assertLinkPresent( "Delete Artifact" );
- assertLinkNotPresent( "Repositories" );
- }
- else
- {
- assertTextPresent( "Search" );
- String navMenu =
- "Find Artifact,Browse,Reports,User Management,User Roles,Appearance,Upload Artifact,Delete Artifact,Repository Groups,Repositories,Proxy Connectors,Legacy Support,Network Proxies,Repository Scanning";
- String[] arrayMenu = navMenu.split( "," );
- for ( String navmenu : arrayMenu )
- {
- assertLinkPresent( navmenu );
- }
- }
- }
-
- // Find Artifact
- public void goToFindArtifactPage()
- {
- getSelenium().open( "/archiva/findArtifact.action" );
- assertFindArtifactPage();
- }
-
- public void assertFindArtifactPage()
- {
- //assertPage( "Apache Archiva \\ Find Artifact" );
- assertElementPresent( "searchBox" );
- //assertTextPresent( "Find Artifact" );
- //assertTextPresent( "Search for:" );
- //assertTextPresent( "Checksum:" );
- assertElementPresent( "quickSearchBox" );
- assertElementPresent( "checksumSearch" );
- //assertButtonWithValuePresent( "Search" );
- assertElementPresent( "checksumSearch_0" );
- }
-
- // Appearance
- public void goToAppearancePage()
- {
- getSelenium().open( "/archiva/admin/configureAppearance.action" );
- assertAppearancePage();
- }
-
- public void assertAppearancePage()
- {
- assertPage( "Apache Archiva \\ Configure Appearance" );
- String appearance =
- "Appearance,Organization Details,The logo in the top right of the screen is controlled by the following settings.,Organization Information,Name,URL,Logo URL";
- String[] arrayAppearance = appearance.split( "," );
- for ( String appear : arrayAppearance )
- {
- assertTextPresent( appear );
- }
- assertLinkPresent( "Edit" );
- assertLinkPresent( "Change your appearance" );
- }
-
- public void addEditAppearance( String name, String url, String logoUrl, boolean wait)
- {
- setFieldValue( "organisationName", name );
- setFieldValue( "organisationUrl", url );
- setFieldValue( "organisationLogo", logoUrl );
- clickButtonWithValue( "Save", wait );
- }
-
- public void goToHomePage()
- {
- getSelenium().open( "" );
- }
-
- // Upload Artifact
- public void goToAddArtifactPage()
- {
- // must be logged as admin
- getSelenium().open( "/archiva/upload.action" );
- assertAddArtifactPage();
- }
-
- public void assertAddArtifactPage()
- {
- assertPage( "Apache Archiva \\ Upload Artifact" );
- assertTextPresent( "Upload Artifact" );
-
- String artifact =
- "Upload Artifact,Group Id*:,Artifact Id*:,Version*:,Packaging*:,Classifier:,Generate Maven 2 POM,Artifact File*:,POM File:,Repository Id:";
- String[] arrayArtifact = artifact.split( "," );
- for ( String arrayartifact : arrayArtifact )
- {
- assertTextPresent( arrayartifact );
- }
-
- String artifactElements =
- "upload_groupId,upload_artifactId,upload_version,upload_packaging,upload_classifier,upload_generatePom,upload_artifact,upload_pom,upload_repositoryId,uploadSubmit";
- String[] arrayArtifactElements = artifactElements.split( "," );
- for ( String artifactelements : arrayArtifactElements )
- {
- assertElementPresent( artifactelements );
- }
- }
-
- public void addArtifact( String groupId, String artifactId, String version, String packaging,
- String artifactFilePath, String repositoryId, boolean wait )
- {
- addArtifact( groupId, artifactId, version, packaging, true, artifactFilePath, repositoryId, wait );
- }
-
- public void addArtifact( String groupId, String artifactId, String version, String packaging, boolean generatePom,
- String artifactFilePath, String repositoryId, boolean wait )
- {
- login( getProperty( "ADMIN_USERNAME" ), getProperty( "ADMIN_PASSWORD" ) );
- goToAddArtifactPage();
- setFieldValue( "groupId", groupId );
- setFieldValue( "artifactId", artifactId );
- setFieldValue( "version", version );
- setFieldValue( "packaging", packaging );
-
- if ( generatePom )
- {
- checkField( "generatePom" );
- }
-
- String path;
- if ( artifactFilePath != null && artifactFilePath.trim().length() > 0 )
- {
- File f = new File( artifactFilePath );
- try
- {
- path = f.getCanonicalPath();
- }
- catch ( IOException e )
- {
- path = f.getAbsolutePath();
- }
- }
- else
- {
- path = artifactFilePath;
- }
-
- setFieldValue( "artifact", path );
- selectValue( "upload_repositoryId", repositoryId );
-
- //clickButtonWithValue( "Submit" );
- clickButtonWithLocator( "uploadSubmit", wait );
- }
-
- public void goToRepositoriesPage()
- {
- if ( !getTitle().equals( "Apache Archiva \\ Administration - Repositories" ) )
- {
- getSelenium().open( "/archiva/admin/repositories.action" );
- }
- assertRepositoriesPage();
- }
-
- public void assertRepositoriesPage()
- {
- assertPage( "Apache Archiva \\ Administration - Repositories" );
- assertTextPresent( "Administration - Repositories" );
- assertTextPresent( "Managed Repositories" );
- assertTextPresent( "Remote Repositories" );
- }
-
- public void addManagedRepository( String identifier, String name, String directory, String indexDirectory,
- String type, String cron, String daysOlder, String retentionCount, boolean wait)
- {
- // goToRepositoriesPage();
- // clickLinkWithText( "Add" );
- setFieldValue( "repository.id", identifier );
- setFieldValue( "repository.name", name );
- setFieldValue( "repository.location", directory );
- setFieldValue( "repository.indexDirectory", indexDirectory );
- selectValue( "repository.layout", type );
- setFieldValue( "repository.cronExpression", cron );
- setFieldValue( "repository.daysOlder", daysOlder );
- setFieldValue( "repository.retentionCount", retentionCount );
- // TODO
- clickButtonWithValue( "Add Repository", wait );
- }
-
- // artifact management
- public void assertDeleteArtifactPage()
- {
- assertPage( "Apache Archiva \\ Delete Artifact" );
- assertTextPresent( "Delete Artifact" );
- assertTextPresent( "Group Id*:" );
- assertTextPresent( "Artifact Id*:" );
- assertTextPresent( "Version*:" );
- assertTextPresent( "Repository Id:" );
- assertElementPresent( "groupId" );
- assertElementPresent( "artifactId" );
- assertElementPresent( "version" );
- assertElementPresent( "repositoryId" );
- assertButtonWithValuePresent( "Submit" );
- }
-
- // network proxies
- public void goToNetworkProxiesPage()
- {
- clickLinkWithText( "Network Proxies" );
- assertNetworkProxiesPage();
- }
-
- public void assertNetworkProxiesPage()
- {
- assertPage( "Apache Archiva \\ Administration - Network Proxies" );
- assertTextPresent( "Administration - Network Proxies" );
- assertTextPresent( "Network Proxies" );
- assertLinkPresent( "Add Network Proxy" );
- }
-
- public void addNetworkProxy( String identifier, String protocol, String hostname, String port, String username,
- String password )
- {
- //goToNetworkProxiesPage();
- clickLinkWithText( "Add Network Proxy" );
- assertAddNetworkProxy();
- setFieldValue( "proxy.id", identifier );
- setFieldValue( "proxy.protocol", protocol );
- setFieldValue( "proxy.host", hostname );
- setFieldValue( "proxy.port", port );
- setFieldValue( "proxy.username", username );
- setFieldValue( "proxy.password", password );
- clickButtonWithValue( "Save Network Proxy" );
- }
-
- public void assertAddNetworkProxy()
- {
- assertPage( "Apache Archiva \\ Admin: Add Network Proxy" );
- assertTextPresent( "Admin: Add Network Proxy" );
- assertTextPresent( "Add network proxy:" );
- assertTextPresent( "Identifier*:" );
- assertTextPresent( "Protocol*:" );
- assertTextPresent( "Hostname*:" );
- assertTextPresent( "Port*:" );
- assertTextPresent( "Username:" );
- assertTextPresent( "Password:" );
- assertButtonWithValuePresent( "Save Network Proxy" );
- }
-
- // Legacy Support
- public void goToLegacySupportPage()
- {
- getSelenium().open( "/archiva/admin/legacyArtifactPath.action" );
- assertLegacySupportPage();
- }
-
- public void assertLegacySupportPage()
- {
- assertPage( "Apache Archiva \\ Administration - Legacy Support" );
- assertTextPresent( "Administration - Legacy Artifact Path Resolution" );
- assertTextPresent( "Path Mappings" );
- assertLinkPresent( "Add" );
- }
-
- public void addLegacyArtifactPath( String path, String groupId, String artifactId, String version,
- String classifier, String type, boolean wait )
- {
- assertAddLegacyArtifactPathPage();
- setFieldValue( "legacyArtifactPath.path", path );
- setFieldValue( "groupId", groupId );
- setFieldValue( "artifactId", artifactId );
- setFieldValue( "version", version );
- setFieldValue( "classifier", classifier );
- setFieldValue( "type", type );
- clickButtonWithValue( "Add Legacy Artifact Path", wait );
- }
-
- public void assertAddLegacyArtifactPathPage()
- {
- assertPage( "Apache Archiva \\ Admin: Add Legacy Artifact Path" );
- assertTextPresent( "Admin: Add Legacy Artifact Path" );
- assertTextPresent(
- "Enter the legacy path to map to a particular artifact reference, then adjust the fields as necessary." );
- String element =
- "addLegacyArtifactPath_legacyArtifactPath_path,addLegacyArtifactPath_groupId,addLegacyArtifactPath_artifactId,addLegacyArtifactPath_version,addLegacyArtifactPath_classifier,addLegacyArtifactPath_type";
- String[] arrayElement = element.split( "," );
- for ( String arrayelement : arrayElement )
- {
- assertElementPresent( arrayelement );
- }
- assertButtonWithValuePresent( "Add Legacy Artifact Path" );
- }
-
- // add managed repository and its staging repository
- public void addStagingRepository( String identifier, String name, String directory, String indexDirectory,
- String type, String cron, String daysOlder, String retentionCount )
- {
- setFieldValue( "repository.id", identifier );
- setFieldValue( "repository.name", name );
- setFieldValue( "repository.location", directory );
- setFieldValue( "repository.indexDirectory", indexDirectory );
- selectValue( "repository.layout", type );
- setFieldValue( "repository.cronExpression", cron );
- setFieldValue( "repository.daysOlder", daysOlder );
- setFieldValue( "repository.retentionCount", retentionCount );
- checkField( "stageNeeded" );
-
- clickButtonWithValue( "Add Repository" );
- }
-
- protected void logout()
- {
- clickLinkWithText( "Logout" );
- assertTextNotPresent( "Current User:" );
- assertLinkNotPresent( "Edit Details" );
- assertLinkNotPresent( "Logout" );
- assertLinkPresent( "Login" );
- }
-}
+++ /dev/null
-package org.apache.archiva.web.test.parent;
-
-/*
- * 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.
- */
-
-public abstract class AbstractArtifactManagementTest
- extends AbstractArchivaTest
-{
-
- public String getGroupId()
- {
- String groupId = getProperty( "GROUPID" );
- return groupId;
- }
-
- public String getArtifactId()
- {
- String artifactId = getProperty( "ARTIFACTID" );
- return artifactId;
- }
-
- public String getVersion()
- {
- String version = getProperty( "VERSION" );
- return version;
- }
-
- public String getPackaging()
- {
- String packaging = getProperty( "PACKAGING" );
- return packaging;
- }
-
- public String getArtifactFilePath()
- {
- return "src/test/resources/snapshots/org/apache/maven/archiva/web/test/foo-bar/1.0-SNAPSHOT/foo-bar-1.0-SNAPSHOT.jar";
- }
-
- public String getRepositoryId()
- {
- String repositoryId = getProperty( "REPOSITORYID" );
- return repositoryId;
- }
-
- public void goToDeleteArtifactPage()
- {
- login( getProperty( "ADMIN_USERNAME" ), getProperty( "ADMIN_PASSWORD" ) );
- getSelenium().open( "/archiva/deleteArtifact.action" );
- assertDeleteArtifactPage();
- }
-
- public void deleteArtifact( String groupId, String artifactId, String version, String repositoryId )
- {
- deleteArtifact( groupId, artifactId, version, repositoryId, false );
- }
-
- public void deleteArtifact( String groupId, String artifactId, String version, String repositoryId, boolean wait )
- {
- goToDeleteArtifactPage();
- setFieldValue( "groupId", groupId );
- setFieldValue( "artifactId", artifactId );
- setFieldValue( "version", version );
- selectValue( "repositoryId", repositoryId );
- clickButtonWithValue( "Submit", wait );
- }
-}
+++ /dev/null
-package org.apache.archiva.web.test.parent;
-
-/*
- * 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.
- */
-
-public abstract class AbstractArtifactReportsTest
- extends AbstractArchivaTest
-{
-
- // Reports
- public void goToReportsPage()
- {
- getSelenium().open( "/archiva/report/pickReport.action" );
- assertReportsPage();
- }
-
- public void assertReportsPage()
- {
- assertPage( "Apache Archiva \\ Reports" );
- assertTextPresent( "Reports" );
- assertTextPresent( "Repository Statistics" );
- assertTextPresent( "Repositories To Be Compared" );
- assertElementPresent( "availableRepositories" );
- assertButtonWithValuePresent( "v" );
- assertButtonWithValuePresent( "^" );
- assertButtonWithValuePresent( "<-" );
- assertButtonWithValuePresent( "->" );
- assertButtonWithValuePresent( "<<--" );
- assertButtonWithValuePresent( "-->>" );
- assertButtonWithValuePresent( "<*>" );
- assertElementPresent( "selectedRepositories" );
- assertButtonWithValuePresent( "v" );
- assertButtonWithValuePresent( "^" );
- assertTextPresent( "Row Count" );
- assertElementPresent( "rowCount" );
- assertTextPresent( "Start Date" );
- assertElementPresent( "startDate" );
- assertTextPresent( "End Date" );
- assertElementPresent( "endDate" );
- assertButtonWithValuePresent( "View Statistics" );
- assertTextPresent( "Repository Health" );
- assertTextPresent( "Row Count" );
- assertElementPresent( "rowCount" );
- assertTextPresent( "Group ID" );
- assertElementPresent( "groupId" );
- assertTextPresent( "Repository ID" );
- assertElementPresent( "repositoryId" );
- assertButtonWithValuePresent( "Show Report" );
- }
-
- public void compareRepositories( String labelSelected, String startDate, String endDate )
- {
- goToReportsPage();
- getSelenium().removeSelection( "generateStatisticsReport_availableRepositories", labelSelected );
- clickButtonWithValue( "->", false );
- getSelenium().type( "startDate", startDate );
- // clickLinkWithLocator( "1" , false );
- // getSelenium().click( "endDate" );
- getSelenium().type( "endDate", endDate );
- // clickLinkWithLocator( "30" , false );
- clickButtonWithValue( "View Statistics" );
- }
-
-}
+++ /dev/null
-package org.apache.archiva.web.test.parent;
-
-/*
- * 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.
- */
-
-public abstract class AbstractBrowseTest
- extends AbstractArchivaTest
-{
-
- // Browse
- public void goToBrowsePage()
- {
- getSelenium().open( "/archiva/browse" );
- assertBrowsePage();
- }
-
- public void assertBrowsePage()
- {
- assertPage( "Apache Archiva \\ Browse Repository" );
- assertTextPresent( "Browse Repository" );
- assertTextPresent( "Groups" );
- }
-
-}
+++ /dev/null
-package org.apache.archiva.web.test.parent;
-
-/*
- * 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 java.io.File;
-
-public class AbstractMergingRepositoriesTest
- extends AbstractArchivaTest
-{
-
- public void goToAuditLogReports()
- {
- getSelenium().open( "/archiva/report/queryAuditLogReport.action" );
- }
-
- public String getRepositoryDir()
- {
- File f = new File( "" );
- String artifactFilePath = f.getAbsolutePath();
- return artifactFilePath + "/target/";
- }
-
- public void editManagedRepository()
- {
- goToRepositoriesPage();
- clickLinkWithXPath( "//div[@id='contentArea']/div/div[5]/div[1]/a[1]/img" );
- assertPage( "Apache Archiva \\ Admin: Edit Managed Repository" );
- checkField( "repository.blockRedeployments" );
- clickButtonWithValue( "Update Repository" );
- }
-
- public String getGroupId()
- {
- return getProperty( "VALIDARTIFACT_GROUPID" );
- }
-
- public String getArtifactId()
- {
- return getProperty( "VALIDARTIFACT_ARTIFACTID" );
- }
-
- public String getVersion()
- {
- return getProperty( "VERSION" );
- }
-
- public String getPackaging()
- {
- return getProperty( "PACKAGING" );
- }
-
- public String getValidArtifactFilePath()
- {
- return "src/test/resources/snapshots/org/apache/maven/archiva/web/test/foo-bar/1.0-SNAPSHOT/foo-bar-1.0-SNAPSHOT.jar";
- }
-
-}
+++ /dev/null
-package org.apache.archiva.web.test.parent;
-
-/*
- * 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 java.io.File;
-import org.testng.Assert;
-
-public abstract class AbstractRepositoryTest
- extends AbstractArchivaTest
-{
- // Repository Groups
- public void goToRepositoryGroupsPage()
- {
- if ( !getTitle().equals( "Apache Archiva \\ Administration - Repository Groups" ) )
- {
- getSelenium().open( "/archiva/admin/repositoryGroups.action" );
- }
- assertRepositoryGroupsPage();
- }
-
- public void assertRepositoryGroupsPage()
- {
- assertPage( "Apache Archiva \\ Administration - Repository Groups" );
- assertTextPresent( "Administration - Repository Groups" );
- assertTextPresent( "Identifier*:" );
- assertElementPresent( "repositoryGroup.id" );
- assertButtonWithValuePresent( "Add Group" );
- assertTextPresent( "Repository Groups" );
- }
-
- public void assertAddedRepositoryLink( String repositoryGroupName )
- {
- assertPage( "Apache Archiva \\ Administration - Repository Groups" );
- String repositoryGroupUrlValue = "repository/" + repositoryGroupName + "/";
- String baseUrlValue = "archiva";
- String repositoryGroupLink = baseUrl.replaceFirst( baseUrlValue, repositoryGroupUrlValue );
- assertTextPresent( repositoryGroupLink );
- }
-
- public void assertAddedRepositoryToRepositoryGroups( String repositoryName )
- {
- assertPage( "Apache Archiva \\ Administration - Repository Groups" );
- assertTextPresent( repositoryName );
- assertTextPresent( "Archiva Managed Internal Repository" );
- assertAddedRepositoryLink( repositoryName );
- }
-
- public void assertDeleteRepositoryGroupPage( String repositoryName )
- {
- assertPage( "Apache Archiva \\ Admin: Delete Repository Group" );
- assertTextPresent( "WARNING: This operation can not be undone." );
- assertTextPresent( "Are you sure you want to delete the following repository group?" );
- assertTextPresent( "ID:" );
- assertTextPresent( repositoryName );
- assertButtonWithValuePresent( "Confirm" );
- assertButtonWithValuePresent( "Cancel" );
- }
-
- public void addRepositoryGroup( String repoGroupName, boolean wait )
- {
- goToRepositoryGroupsPage();
- setFieldValue( "repositoryGroup.id", repoGroupName );
- clickButtonWithValue( "Add Group", wait );
- }
-
- public void addRepositoryToRepositoryGroup( String repositoryGroupName, String repositoryName )
- {
- goToRepositoryGroupsPage();
- String s = getSelenium().getBodyText();
- if ( s.contains( "No Repository Groups Defined." ) )
- {
- setFieldValue( "repositoryGroup.id", repositoryGroupName );
- clickButtonWithValue( "Add Group" );
- // assertAddedRepositoryLink( repositoryGroupName );
-
- selectValue( "addRepositoryToGroup_repoId", repositoryName );
- clickButtonWithValue( "Add Repository" );
- assertAddedRepositoryToRepositoryGroups( repositoryName );
- }
- else
- {
- // assertAddedRepositoryLink( repositoryGroupName );
- selectValue( "addRepositoryToGroup_repoId", repositoryName );
- clickButtonWithValue( "Add Repository" );
- }
- }
-
- public void deleteRepositoryInRepositoryGroups()
- {
- goToRepositoryGroupsPage();
- getSelenium().click( "xpath=//div[@id='contentArea']/div[2]/div/div[3]/div[1]/a/img" );
- waitPage();
- }
-
- public void deleteRepositoryGroup( String repositoryName )
- {
- getSelenium().click( "xpath=//div[@id='contentArea']/div[2]/div/div[1]/div/a/img" );
- waitPage();
- assertDeleteRepositoryGroupPage( repositoryName );
- clickButtonWithValue( "Confirm" );
- }
-
- // /////////////////////////////
- // proxy connectors
- // /////////////////////////////
- public void goToProxyConnectorsPage()
- {
- clickLinkWithText( "Proxy Connectors" );
- assertProxyConnectorsPage();
- }
-
- public void assertProxyConnectorsPage()
- {
- assertPage( "Apache Archiva \\ Administration - Proxy Connectors" );
- assertTextPresent( "Administration - Proxy Connectors" );
- assertTextPresent( "Repository Proxy Connectors" );
- assertTextPresent( "internal" );
- assertTextPresent( "Archiva Managed Internal Repository" );
- assertTextPresent( "Proxy Connector" );
- assertTextPresent( "Central Repository" );
- }
-
- public void assertAddProxyConnectorPage()
- {
- assertPage( "Apache Archiva \\ Admin: Add Proxy Connector" );
- assertTextPresent( "Admin: Add Proxy Connector" );
- String proxy =
- "Network Proxy*:,Managed Repository*:,Remote Repository*:,Policies:,Return error when:,On remote error:,Releases:,Snapshots:,Checksum:,Cache failures:,Properties:,No properties have been set.,Black List:,No black list patterns have been set.,White List:,No white list patterns have been set.";
- String[] arrayProxy = proxy.split( "," );
- for ( String arrayproxy : arrayProxy )
- assertTextPresent( arrayproxy );
- /*
- * String proxyElements =
- * "addProxyConnector_connector_proxyId,addProxyConnector_connector_sourceRepoId,addProxyConnector_connector_targetRepoId,policy_propagate-errors-on-update,policy_propagate-errors,policy_releases,policy_snapshots,policy_checksum,policy_cache-failures,propertiesEntry,propertiesValue,blackListEntry,whiteListEntry"
- * ; String[] arrayProxyElements = proxyElements.split( "," ); for ( String arrayproxyelements :
- * arrayProxyElements ) assertTextPresent( arrayproxyelements );
- */
- assertButtonWithValuePresent( "Add Property" );
- assertButtonWithValuePresent( "Add Pattern" );
- assertButtonWithValuePresent( "Add Proxy Connector" );
- }
-
- // this only fills in the values of required fields in adding Proxy Connectors
- public void addProxyConnector( String networkProxy, String managedRepo, String remoteRepo )
- {
- goToProxyConnectorsPage();
- clickLinkWithText( "Add" );
- assertAddProxyConnectorPage();
- selectValue( "connector.proxyId", networkProxy );
- selectValue( "connector.sourceRepoId", managedRepo );
- selectValue( "connector.targetRepoId", remoteRepo );
- clickButtonWithValue( "Add Proxy Connector" );
- }
-
- public void deleteProxyConnector()
- {
- goToProxyConnectorsPage();
- clickLinkWithXPath( "//div[@id='contentArea']/div[2]/div[1]/div[2]/div[1]/a[3]/img" );
- assertPage( "Apache Archiva \\ Admin: Delete Proxy Connectors" );
- clickButtonWithValue( "Delete" );
- assertPage( "Apache Archiva \\ Administration - Proxy Connectors" );
- }
-
- // /////////////////////////////
- // network proxies
- // /////////////////////////////
-
- public void editNetworkProxies( String fieldName, String value )
- {
- // goToNetworkProxiesPage();
- clickLinkWithText( "Edit Network Proxy" );
- setFieldValue( fieldName, value );
- clickButtonWithValue( "Save Network Proxy" );
- }
-
- public void deleteNetworkProxy()
- {
- // goToNetworkProxiesPage();
- clickLinkWithText( "Delete Network Proxy" );
- assertPage( "Apache Archiva \\ Admin: Delete Network Proxy" );
- assertTextPresent( "WARNING: This operation can not be undone." );
- clickButtonWithValue( "Delete" );
- }
-
- // remote repositories
- public void assertAddRemoteRepository()
- {
- assertPage( "Apache Archiva \\ Admin: Add Remote Repository" );
- String remote = "Identifier*:,Name*:,URL*:,Username:,Password:,Timeout in seconds:,Type:";
- String[] arrayRemote = remote.split( "," );
- for ( String arrayremote : arrayRemote )
- assertTextPresent( arrayremote );
- String remoteElements =
- "addRemoteRepository_repository_id,addRemoteRepository_repository_name,addRemoteRepository_repository_url,addRemoteRepository_repository_userName,addRemoteRepository_repository_password,addRemoteRepository_repository_timeout,addRemoteRepository_repository_layout";
- String[] arrayRemoteElements = remoteElements.split( "," );
- for ( String arrayremotelement : arrayRemoteElements )
- assertElementPresent( arrayremotelement );
- }
-
- public void assertDeleteRemoteRepositoryPage()
- {
- assertPage( "Apache Archiva \\ Admin: Delete Remote Repository" );
- assertTextPresent( "Admin: Delete Remote Repository" );
- assertTextPresent( "WARNING: This operation can not be undone." );
- assertTextPresent( "Are you sure you want to delete the following remote repository?" );
- assertButtonWithValuePresent( "Confirm" );
- assertButtonWithValuePresent( "Cancel" );
- }
-
- public void addRemoteRepository( String identifier, String name, String url, String username, String password,
- String timeout, String type, boolean wait )
- {
- assertAddRemoteRepository();
- setFieldValue( "addRemoteRepository_repository_id", identifier );
- setFieldValue( "addRemoteRepository_repository_name", name );
- setFieldValue( "addRemoteRepository_repository_url", url );
- setFieldValue( "addRemoteRepository_repository_userName", username );
- setFieldValue( "addRemoteRepository_repository_password", password );
- setFieldValue( "addRemoteRepository_repository_timeout", timeout );
- selectValue( "addRemoteRepository_repository_layout", type );
- clickButtonWithValue( "Add Repository", wait );
- }
-
- public void deleteRemoteRepository()
- {
- goToRepositoriesPage();
- clickLinkWithXPath( "//div[@id='contentArea']/div/div[8]/div[1]/a[2]" );
- assertDeleteRemoteRepositoryPage();
- clickButtonWithValue( "Confirm" );
- }
-
- public void editRemoteRepository( String fieldName, String value )
- {
- goToRepositoriesPage();
- clickLinkWithXPath( "//div[@id='contentArea']/div/div[8]/div[1]/a[1]" );
- setFieldValue( fieldName, value );
- clickButtonWithValue( "Update Repository" );
- }
-
- public void editManagedRepository( String fieldName, String value )
- {
- goToRepositoriesPage();
- clickLinkWithXPath( "//div[@id='contentArea']/div/div[5]/div[1]/a[1]/img" );
- assertPage( "Apache Archiva \\ Admin: Edit Managed Repository" );
- setFieldValue( fieldName, value );
- // TODO
- clickButtonWithValue( "Update Repository" );
- }
-
- public void editManagedRepository(String name, String directory, String indexDirectory, String type, String cron, String daysOlder, String retentionCount)
- {
- goToRepositoriesPage();
- clickLinkWithXPath( "//div[@id='contentArea']/div/div[5]/div[1]/a[1]/img" );
- assertPage( "Apache Archiva \\ Admin: Edit Managed Repository" );
- setFieldValue( "repository.name" , name );
- setFieldValue( "repository.location" , directory );
- setFieldValue( "repository.indexDirectory" , indexDirectory );
- selectValue( "repository.layout", type );
- setFieldValue( "repository.cronExpression" , cron );
- setFieldValue( "repository.daysOlder" , daysOlder );
- setFieldValue( "repository.retentionCount" , retentionCount );
- clickButtonWithValue( "Update Repository" );
- }
-
- public void deleteManagedRepository()
- {
- clickLinkWithXPath( "//div[@id='contentArea']/div/div[5]/div[1]/a[2]" );
- assertPage( "Apache Archiva \\ Admin: Delete Managed Repository" );
- clickButtonWithValue( "Delete Configuration Only" );
- }
-
- public String getRepositoryDir()
- {
- File f = new File( "" );
- String artifactFilePath = f.getAbsolutePath();
- return artifactFilePath + "/target/";
- }
-
- // ///////////////////////////////////////////
- // Repository Scanning
- // ///////////////////////////////////////////
- public void goToRepositoryScanningPage()
- {
- getSelenium().open( "/archiva/admin/repositoryScanning.action" );
- assertRepositoryScanningPage();
- }
-
- public void assertRepositoryScanningPage()
- {
- assertPage( "Apache Archiva \\ Administration - Repository Scanning" );
- assertTextPresent( "Administration - Repository Scanning" );
- assertTextPresent( "Repository Scanning - File Types" );
- String artifactsTypes =
- "**/*.pom,**/*.jar,**/*.ear,**/*.war,**/*.car,**/*.sar,**/*.mar,**/*.rar,**/*.dtd,**/*.tld,**/*.tar.gz,**/*.tar.bz2,**/*.zip";
- String[] arrayArtifactTypes = artifactsTypes.split( "," );
- for ( int i = 0; i < arrayArtifactTypes.length; i++ )
- Assert.assertEquals( getSelenium().getTable( "//div[@id='contentArea']/div/div[1]/table." + i + ".0" ),
- arrayArtifactTypes[i] );
-
- String autoremove = "**/*.bak,**/*~,**/*-";
- String[] arrayAutoremove = autoremove.split( "," );
- for ( int i = 0; i < arrayAutoremove.length; i++ )
- Assert.assertEquals( getSelenium().getTable( "//div[@id='contentArea']/div/div[2]/table." + i + ".0" ),
- arrayAutoremove[i] );
-
- String ignored = "**/.htaccess,**/KEYS,**/*.rb,**/*.sh,**/.svn/**,**/.DAV/**";
- String[] arrayIgnored = ignored.split( "," );
- for ( int i = 0; i < arrayIgnored.length; i++ )
- Assert.assertEquals( getSelenium().getTable( "//div[@id='contentArea']/div/div[3]/table." + i + ".0" ),
- arrayIgnored[i] );
-
- String indexableContent =
- "**/*.txt,**/*.TXT,**/*.block,**/*.config,**/*.pom,**/*.xml,**/*.xsd,**/*.dtd,**/*.tld";
- String[] arrayIndexableContent = indexableContent.split( "," );
- for ( int i = 0; i < arrayIndexableContent.length; i++ )
- Assert.assertEquals( getSelenium().getTable( "//div[@id='contentArea']/div/div[4]/table." + i + ".0" ),
- arrayIndexableContent[i] );
- }
-
- // ///////////////////////////////////////////
- // Database
- // ///////////////////////////////////////////
- public void goToDatabasePage()
- {
- clickLinkWithText( "Database" );
- assertDatabasePage();
- }
-
- public void assertDatabasePage()
- {
- assertPage( "Apache Archiva \\ Administration - Database" );
- assertTextPresent( "Administration - Database" );
- assertTextPresent( "Database - Unprocessed Artifacts Scanning" );
- assertTextPresent( "Cron:" );
- assertElementPresent( "database_cron" );
- assertButtonWithValuePresent( "Update Cron" );
- assertButtonWithValuePresent( "Update Database Now" );
- assertTextPresent( "Database - Unprocessed Artifacts Scanning" );
- assertTextPresent( "Database - Artifact Cleanup Scanning" );
- }
-}
+++ /dev/null
-package org.apache.archiva.web.test.parent;
-
-/*
- * 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.
- */
-
-public abstract class AbstractSearchTest
- extends AbstractArchivaTest
-{
- // Search
- public void goToSearchPage()
- {
- goToHomePage();
- if (!isElementPresent( "quickSearchBox" ) )
- {
- getSelenium().open( "/index.action");
- //getSelenium().waitForPageToLoad( maxWaitTimeInMs );
- waitPage();
- assertElementPresent( "quickSearchSubmit" );
- }
- }
-
- public void assertSearchPage()
- {
- assertPage( "Apache Archiva \\ Quick Search" );
- assertTextPresent( "Search for" );
- assertElementPresent( "quickSearchSubmit" );
- assertButtonWithValuePresent( "Search" );
- // assertLinkPresent( "Advanced Search" );
- assertTextPresent( "Enter your search terms. A variety of data will be searched for your keywords." );
- // assertButtonWithDivIdPresent( "searchHint" );
- }
-
- public void searchForArtifact( String artifactId )
- {
- goToSearchPage();
-
- setFieldValue( "quickSearchValue", artifactId );
- clickButtonWithLocator( "quickSearchSubmit" );
- }
-
- public void searchForArtifactAdvancedSearch( String groupId, String artifactId, String version, String repositoryId,
- String className, String rowCount )
- {
- goToSearchPage();
-
- clickLinkWithXPath( "//div[@id='contentArea']/div[1]/a[1]/strong", false );
- assertElementPresent( "filteredSearch_searchField" );
- assertElementPresent( "filteredSearch_repositoryId" );
-
- if ( groupId != null )
- {
- selectValue( "filteredSearch_searchField", "Group ID" );
- clickLinkWithLocator( "//a[@id='filteredSearch_']/img", false );
-
- assertElementPresent( "groupId" );
- setFieldValue( "groupId", groupId );
- }
-
- if ( artifactId != null )
- {
- selectValue( "filteredSearch_searchField", "Artifact ID" );
- clickLinkWithLocator( "//a[@id='filteredSearch_']/img", false );
-
- assertElementPresent( "artifactId" );
- setFieldValue( "artifactId", artifactId );
- }
-
- if ( version != null )
- {
- selectValue( "filteredSearch_searchField", "Version" );
- clickLinkWithLocator( "//a[@id='filteredSearch_']/img", false );
-
- assertElementPresent( "version" );
- setFieldValue( "version", version );
- }
-
- if ( className != null )
- {
- selectValue( "filteredSearch_searchField", "Class/Package Name" );
- clickLinkWithLocator( "//a[@id='filteredSearch_']/img", false );
-
- assertElementPresent( "className" );
- setFieldValue( "className", className );
- }
-
- if ( rowCount != null )
- {
- selectValue( "filteredSearch_searchField", "Row Count" );
- clickLinkWithLocator( "//a[@id='filteredSearch_']/img", false );
-
- assertElementPresent( "rowCount" );
- setFieldValue( "rowCount", rowCount );
- }
-
- if ( repositoryId != null )
- {
- selectValue( "filteredSearch_repositoryId", repositoryId );
- }
- clickSubmitWithLocator( "filteredSearch_0" );
- }
-}
\ No newline at end of file
+++ /dev/null
-package org.apache.archiva.web.test.parent;
-
-/*
- * 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 com.thoughtworks.selenium.DefaultSelenium;
-import com.thoughtworks.selenium.Selenium;
-import org.apache.commons.io.IOUtils;
-import org.testng.Assert;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Properties;
-
-/**
- * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
- *
- */
-
-public abstract class AbstractSeleniumTest
-{
-
- public static String baseUrl;
-
- public static String maxWaitTimeInMs;
-
- private static ThreadLocal<Selenium> selenium = new ThreadLocal<Selenium>();
-
- public static Properties p;
-
- private final static String PROPERTIES_SEPARATOR = "=";
-
- public void open()
- throws Exception
- {
- p = new Properties();
- p.load( this.getClass().getClassLoader().getResourceAsStream( "testng.properties" ) );
- }
-
- /**
- * Initialize selenium
- */
- public void open( String baseUrl, String browser, String seleniumHost, int seleniumPort, String maxWaitTimeInMs )
- throws Exception
- {
- try
- {
- AbstractSeleniumTest.baseUrl = baseUrl;
- AbstractSeleniumTest.maxWaitTimeInMs = maxWaitTimeInMs;
-
- if ( getSelenium() == null )
- {
- DefaultSelenium s = new DefaultSelenium( seleniumHost, seleniumPort, browser, baseUrl );
- s.start();
- s.setTimeout( maxWaitTimeInMs );
- selenium.set( s );
- }
- }
- catch ( Exception e )
- {
- // yes
- System.out.print( e.getMessage() );
- e.printStackTrace();
- }
- }
-
- public static Selenium getSelenium()
- {
- return selenium == null ? null : selenium.get();
- }
-
- protected String getProperty( String key )
- {
- return p.getProperty( key );
- }
-
- protected String getEscapeProperty( String key )
- {
- InputStream input = this.getClass().getClassLoader().getResourceAsStream( "testng.properties" );
- String value = null;
- List<String> lines;
- try
- {
- lines = IOUtils.readLines( input );
- }
- catch ( IOException e )
- {
- lines = new ArrayList<String>();
- }
- for ( String l : lines )
- {
- if ( l != null && l.startsWith( key ) )
- {
- int indexSeparator = l.indexOf( PROPERTIES_SEPARATOR );
- value = l.substring( indexSeparator + 1 ).trim();
- break;
- }
- }
- return value;
- }
-
- /**
- * Close selenium session. Called from AfterSuite method of sub-class
- */
- public void close()
- throws Exception
- {
- if ( getSelenium() != null )
- {
- getSelenium().stop();
- selenium.set( null );
- }
- }
-
- // *******************************************************
- // Auxiliar methods. This method help us and simplify test.
- // *******************************************************
-
- public void assertFieldValue( String fieldValue, String fieldName )
- {
- assertElementPresent( fieldName );
- Assert.assertEquals( fieldValue, getSelenium().getValue( fieldName ) );
- }
-
- public void assertPage( String title )
- {
- Assert.assertEquals( getTitle(), title );
- }
-
- public String getTitle()
- {
- // Collapse spaces
- return getSelenium().getTitle().replaceAll( "[ \n\r]+", " " );
- }
-
- public String getHtmlContent()
- {
- return getSelenium().getHtmlSource();
- }
-
- public String getText( String locator )
- {
- return getSelenium().getText( locator );
- }
-
- public void assertTextPresent( String text )
- {
- Assert.assertTrue( getSelenium().isTextPresent( text ), "'" + text + "' isn't present." );
- }
-
- /**
- * one of text args must be in the page so use en and fr text (olamy use en locale :-) )
- *
- * @param texts
- */
- public void assertTextPresent( String... texts )
- {
- boolean present = false;
- StringBuilder sb = new StringBuilder();
- for ( String text : texts )
- {
- present = present || getSelenium().isTextPresent( text );
- sb.append( " " + text + " " );
- }
- Assert.assertTrue( present, "'one of the following test " + sb.toString() + "' isn't present." );
- }
-
- public void assertTextNotPresent( String text )
- {
- Assert.assertFalse( getSelenium().isTextPresent( text ), "'" + text + "' is present." );
- }
-
- public void assertElementPresent( String elementLocator )
- {
- Assert.assertTrue( isElementPresent( elementLocator ), "'" + elementLocator + "' isn't present." );
- }
-
- public void assertElementNotPresent( String elementLocator )
- {
- Assert.assertFalse( isElementPresent( elementLocator ), "'" + elementLocator + "' is present." );
- }
-
- public void assertLinkPresent( String text )
- {
- Assert.assertTrue( isElementPresent( "link=" + text ), "The link '" + text + "' isn't present." );
- }
-
- public void assertLinkNotPresent( String text )
- {
- Assert.assertFalse( isElementPresent( "link=" + text ), "The link('" + text + "' is present." );
- }
-
- public void assertImgWithAlt( String alt )
- {
- assertElementPresent( "/¯img[@alt='" + alt + "']" );
- }
-
- public void assertImgWithAltAtRowCol( boolean isALink, String alt, int row, int column )
- {
- String locator = "//tr[" + row + "]/td[" + column + "]/";
- locator += isALink ? "a/" : "";
- locator += "img[@alt='" + alt + "']";
-
- assertElementPresent( locator );
- }
-
- public void assertImgWithAltNotPresent( String alt )
- {
- assertElementNotPresent( "/¯img[@alt='" + alt + "']" );
- }
-
- public void assertCellValueFromTable( String expected, String tableElement, int row, int column )
- {
- Assert.assertEquals( expected, getCellValueFromTable( tableElement, row, column ) );
- }
-
- public boolean isTextPresent( String text )
- {
- return getSelenium().isTextPresent( text );
- }
-
- public boolean isLinkPresent( String text )
- {
- return isElementPresent( "link=" + text );
- }
-
- public boolean isElementPresent( String locator )
- {
- return getSelenium().isElementPresent( locator );
- }
-
- public void waitPage()
- {
- // TODO define a smaller maxWaitTimeJsInMs for wait javascript response for browser side validation
- getSelenium().waitForPageToLoad( maxWaitTimeInMs );
- // http://jira.openqa.org/browse/SRC-302
- // those hack looks to break some tests :-(
- // getSelenium().waitForCondition( "selenium.isElementPresent('document.body');", maxWaitTimeInMs );
- //getSelenium().waitForCondition( "selenium.isElementPresent('footer');", maxWaitTimeInMs );
- //getSelenium().waitForCondition( "selenium.browserbot.getCurrentWindow().document.getElementById('footer')",
- // maxWaitTimeInMs );
- // so the only hack is to not use a too small wait time
- /*
- try
- {
- Thread.sleep( 1000 );
- }
- catch ( InterruptedException e )
- {
- throw new RuntimeException( "issue on Thread.sleep : " + e.getMessage(), e );
- }*/
- }
-
- public String getFieldValue( String fieldName )
- {
- return getSelenium().getValue( fieldName );
- }
-
- public String getCellValueFromTable( String tableElement, int row, int column )
- {
- return getSelenium().getTable( tableElement + "." + row + "." + column );
- }
-
- public void selectValue( String locator, String value )
- {
- getSelenium().select( locator, "label=" + value );
- }
-
-
- public void assertOptionPresent( String selectField, String[] options )
- {
- assertElementPresent( selectField );
- String[] optionsPresent = getSelenium().getSelectOptions( selectField );
- List<String> expected = Arrays.asList( options );
- List<String> present = Arrays.asList( optionsPresent );
- Assert.assertTrue( present.containsAll( expected ), "Options expected are not included in present options" );
- }
-
- public void assertSelectedValue( String value, String fieldName )
- {
- assertElementPresent( fieldName );
- String optionsPresent = getSelenium().getSelectedLabel( value );
- Assert.assertEquals( optionsPresent, value );
- }
-
- public void submit()
- {
- clickLinkWithXPath( "//input[@type='submit']" );
- }
-
- public void assertButtonWithValuePresent( String text )
- {
- Assert.assertTrue( isButtonWithValuePresent( text ), "'" + text + "' button isn't present" );
- }
-
- public void assertButtonWithIdPresent( String id )
- {
- Assert.assertTrue( isButtonWithIdPresent( id ), "'Button with id =" + id + "' isn't present" );
- }
-
- public void assertButtonWithValueNotPresent( String text )
- {
- Assert.assertFalse( isButtonWithValuePresent( text ), "'" + text + "' button is present" );
- }
-
- public boolean isButtonWithValuePresent( String text )
- {
- return isElementPresent( "//button[@value='" + text + "']" ) || isElementPresent(
- "//input[@value='" + text + "']" );
- }
-
- public boolean isButtonWithIdPresent( String text )
- {
- return isElementPresent( "//button[@id='" + text + "']" ) || isElementPresent( "//input[@id='" + text + "']" );
- }
-
- public void clickButtonWithName( String text, boolean wait )
- {
- clickLinkWithXPath( "//input[@name='" + text + "']", wait );
- }
-
- public void clickButtonWithValue( String text )
- {
- clickButtonWithValue( text, true );
- }
-
- public void clickButtonWithValue( String text, boolean wait )
- {
- assertButtonWithValuePresent( text );
-
- if ( isElementPresent( "//button[@value='" + text + "']" ) )
- {
- clickLinkWithXPath( "//button[@value='" + text + "']", wait );
- }
- else
- {
- clickLinkWithXPath( "//input[@value='" + text + "']", wait );
- }
- }
-
- public void clickSubmitWithLocator( String locator )
- {
- clickLinkWithLocator( locator );
- }
-
- public void clickSubmitWithLocator( String locator, boolean wait )
- {
- clickLinkWithLocator( locator, wait );
- }
-
- public void clickImgWithAlt( String alt )
- {
- clickLinkWithLocator( "//img[@alt='" + alt + "']" );
- }
-
- public void clickLinkWithText( String text )
- {
- clickLinkWithText( text, true );
- }
-
- public void clickLinkWithText( String text, boolean wait )
- {
- clickLinkWithLocator( "link=" + text, wait );
- }
-
- public void clickLinkWithXPath( String xpath )
- {
- clickLinkWithXPath( xpath, true );
- }
-
- public void clickLinkWithXPath( String xpath, boolean wait )
- {
- clickLinkWithLocator( "xpath=" + xpath, wait );
- }
-
- public void clickLinkWithLocator( String locator )
- {
- clickLinkWithLocator( locator, true );
- }
-
- public void clickLinkWithLocator( String locator, boolean wait )
- {
- assertElementPresent( locator );
- getSelenium().click( locator );
- if ( wait )
- {
- waitPage();
- }
- }
-
- public void clickButtonWithLocator( String locator )
- {
- clickButtonWithLocator( locator, true );
- }
-
- public void clickButtonWithLocator( String locator, boolean wait )
- {
- assertElementPresent( locator );
- getSelenium().click( locator );
- if ( wait )
- {
- waitPage();
- }
- }
-
- public void setFieldValues( Map<String, String> fieldMap )
- {
- Map.Entry<String, String> entry;
-
- for ( Iterator<Entry<String, String>> entries = fieldMap.entrySet().iterator(); entries.hasNext(); )
- {
- entry = entries.next();
-
- getSelenium().type( entry.getKey(), entry.getValue() );
- }
- }
-
- public void setFieldValue( String fieldName, String value )
- {
- getSelenium().type( fieldName, value );
- }
-
- public void checkField( String locator )
- {
- getSelenium().check( locator );
- }
-
- public void uncheckField( String locator )
- {
- getSelenium().uncheck( locator );
- }
-
- public boolean isChecked( String locator )
- {
- return getSelenium().isChecked( locator );
- }
-
- public void assertIsChecked( String locator )
- {
- Assert.assertTrue( getSelenium().isChecked( locator ) );
- }
-
- public void assertIsNotChecked( String locator )
- {
- Assert.assertFalse( getSelenium().isChecked( locator ) );
- }
-
- public void assertXpathCount( String locator, int expectedCount )
- {
- int count = getSelenium().getXpathCount( locator ).intValue();
- Assert.assertEquals( count, expectedCount );
- }
-
- public void assertElementValue( String locator, String expectedValue )
- {
- Assert.assertEquals( getSelenium().getValue( locator ), expectedValue );
- }
-
-}
\ No newline at end of file
+++ /dev/null
-<?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.
- -->
-
-<Context path="/archiva"
- docBase="${catalina.base}/webapps/archiva">
-
- <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"
- />
-</Context>
+++ /dev/null
-<!--
- ~ 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.
- -->
-
- <!--
-
- 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>
+++ /dev/null
-<!--
- ~ 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.
- -->
-
- <!--
-
- 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>
+++ /dev/null
-// ============================================================================\r
-// catalina.corepolicy - Security Policy Permissions for Tomcat 5\r
-//\r
-// This file contains a default set of security policies to be enforced (by the\r
-// JVM) when Catalina is executed with the "-security" option. In addition\r
-// to the permissions granted here, the following additional permissions are\r
-// granted to the codebase specific to each web application:\r
-//\r
-// * Read access to the document root directory\r
-//\r
-// $Id: catalina.policy 393732 2006-04-13 06:32:25Z pero $\r
-// ============================================================================\r
-\r
-\r
-// ========== SYSTEM CODE PERMISSIONS =========================================\r
-\r
-\r
-// These permissions apply to javac\r
-grant codeBase "file:${java.home}/lib/-" {\r
- permission java.security.AllPermission;\r
-};\r
-\r
-// These permissions apply to all shared system extensions\r
-grant codeBase "file:${java.home}/jre/lib/ext/-" {\r
- permission java.security.AllPermission;\r
-};\r
-\r
-// These permissions apply to javac when ${java.home] points at $JAVA_HOME/jre\r
-grant codeBase "file:${java.home}/../lib/-" {\r
- permission java.security.AllPermission;\r
-};\r
-\r
-// These permissions apply to all shared system extensions when\r
-// ${java.home} points at $JAVA_HOME/jre\r
-grant codeBase "file:${java.home}/lib/ext/-" {\r
- permission java.security.AllPermission;\r
-};\r
-\r
-\r
-// ========== CATALINA CODE PERMISSIONS =======================================\r
-\r
-\r
-// These permissions apply to the launcher code\r
-grant codeBase "file:${catalina.home}/bin/commons-launcher.jar" {\r
- permission java.security.AllPermission;\r
-};\r
-\r
-// These permissions apply to the daemon code\r
-grant codeBase "file:${catalina.home}/bin/commons-daemon.jar" {\r
- permission java.security.AllPermission;\r
-};\r
-\r
-// These permissions apply to the commons-logging API\r
-grant codeBase "file:${catalina.home}/bin/commons-logging-api.jar" {\r
- permission java.security.AllPermission;\r
-};\r
-\r
-// These permissions apply to the server startup code\r
-grant codeBase "file:${catalina.home}/bin/bootstrap.jar" {\r
- permission java.security.AllPermission;\r
-};\r
-\r
-// These permissions apply to the JMX server\r
-grant codeBase "file:${catalina.home}/bin/jmx.jar" {\r
- permission java.security.AllPermission;\r
-};\r
-\r
-// These permissions apply to JULI\r
-grant codeBase "file:${catalina.home}/bin/tomcat-juli.jar" {\r
- permission java.security.AllPermission;\r
-};\r
-\r
-// These permissions apply to the servlet API classes\r
-// and those that are shared across all class loaders\r
-// located in the "common" directory\r
-grant codeBase "file:${catalina.home}/common/-" {\r
- permission java.security.AllPermission;\r
-};\r
-\r
-// These permissions apply to the container's core code, plus any additional\r
-// libraries installed in the "server" directory\r
-grant codeBase "file:${catalina.home}/server/-" {\r
- permission java.security.AllPermission;\r
-};\r
-\r
-// The permissions granted to the balancer WEB-INF/classes and WEB-INF/lib directory\r
-grant codeBase "file:${catalina.home}/webapps/balancer/-" {\r
- permission java.lang.RuntimePermission "accessClassInPackage.org.apache.tomcat.util.digester";\r
- permission java.lang.RuntimePermission "accessClassInPackage.org.apache.tomcat.util.digester.*";\r
-};\r
-// ========== WEB APPLICATION PERMISSIONS =====================================\r
-\r
-\r
-// These permissions are granted by default to all web applications\r
-// In addition, a web application will be given a read FilePermission\r
-// and JndiPermission for all files and directories in its document root.\r
-grant { \r
- // Required for JNDI lookup of named JDBC DataSource's and\r
- // javamail named MimePart DataSource used to send mail\r
- permission java.util.PropertyPermission "java.home", "read";\r
- permission java.util.PropertyPermission "java.naming.*", "read";\r
- permission java.util.PropertyPermission "javax.sql.*", "read";\r
-\r
- // OS Specific properties to allow read access\r
- permission java.util.PropertyPermission "os.name", "read";\r
- permission java.util.PropertyPermission "os.version", "read";\r
- permission java.util.PropertyPermission "os.arch", "read";\r
- permission java.util.PropertyPermission "file.separator", "read";\r
- permission java.util.PropertyPermission "path.separator", "read";\r
- permission java.util.PropertyPermission "line.separator", "read";\r
-\r
- // JVM properties to allow read access\r
- permission java.util.PropertyPermission "java.version", "read";\r
- permission java.util.PropertyPermission "java.vendor", "read";\r
- permission java.util.PropertyPermission "java.vendor.url", "read";\r
- permission java.util.PropertyPermission "java.class.version", "read";\r
- permission java.util.PropertyPermission "java.specification.version", "read";\r
- permission java.util.PropertyPermission "java.specification.vendor", "read";\r
- permission java.util.PropertyPermission "java.specification.name", "read";\r
-\r
- permission java.util.PropertyPermission "java.vm.specification.version", "read";\r
- permission java.util.PropertyPermission "java.vm.specification.vendor", "read";\r
- permission java.util.PropertyPermission "java.vm.specification.name", "read";\r
- permission java.util.PropertyPermission "java.vm.version", "read";\r
- permission java.util.PropertyPermission "java.vm.vendor", "read";\r
- permission java.util.PropertyPermission "java.vm.name", "read";\r
-\r
- // Required for OpenJMX\r
- permission java.lang.RuntimePermission "getAttribute";\r
-\r
- // Allow read of JAXP compliant XML parser debug\r
- permission java.util.PropertyPermission "jaxp.debug", "read";\r
-\r
- // Precompiled JSPs need access to this package.\r
- permission java.lang.RuntimePermission "accessClassInPackage.org.apache.jasper.runtime";\r
- permission java.lang.RuntimePermission "accessClassInPackage.org.apache.jasper.runtime.*";\r
- \r
-};\r
-\r
-\r
-// You can assign additional permissions to particular web applications by\r
-// adding additional "grant" entries here, based on the code base for that\r
-// application, /WEB-INF/classes/, or /WEB-INF/lib/ jar files.\r
-//\r
-// Different permissions can be granted to JSP pages, classes loaded from\r
-// the /WEB-INF/classes/ directory, all jar files in the /WEB-INF/lib/\r
-// directory, or even to individual jar files in the /WEB-INF/lib/ directory.\r
-//\r
-// For instance, assume that the standard "examples" application\r
-// included a JDBC driver that needed to establish a network connection to the\r
-// corresponding database and used the scrape taglib to get the weather from\r
-// the NOAA web server. You might create a "grant" entries like this:\r
-//\r
-// The permissions granted to the context root directory apply to JSP pages.\r
-// grant codeBase "file:${catalina.home}/webapps/examples/-" {\r
-// permission java.net.SocketPermission "dbhost.mycompany.com:5432", "connect";\r
-// permission java.net.SocketPermission "*.noaa.gov:80", "connect";\r
-// };\r
-//\r
-// The permissions granted to the context WEB-INF/classes directory\r
-// grant codeBase "file:${catalina.home}/webapps/examples/WEB-INF/classes/-" {\r
-// };\r
-//\r
-// The permission granted to your JDBC driver\r
-// grant codeBase "jar:file:${catalina.home}/webapps/examples/WEB-INF/lib/driver.jar!/-" {\r
-// permission java.net.SocketPermission "dbhost.mycompany.com:5432", "connect";\r
-// };\r
-// The permission granted to the scrape taglib\r
-// grant codeBase "jar:file:${catalina.home}/webapps/examples/WEB-INF/lib/scrape.jar!/-" {\r
-// permission java.net.SocketPermission "*.noaa.gov:80", "connect";\r
-// };\r
-\r
+++ /dev/null
-#
-# 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.
-#
-
-#
-# 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
+++ /dev/null
-<!--
- ~ 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.
- -->
-
- <!-- 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
+++ /dev/null
-#
-# 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.
-#
-
-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
+++ /dev/null
-<!--
- ~ 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.
- -->
-
-<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>
+++ /dev/null
-<!--
- ~ 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.
- -->
-
- <!-- 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="9696" 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>
+++ /dev/null
-<!--
- ~ 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.
- -->
-
- <!--
- 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>
+++ /dev/null
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
- ~ 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 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"
- version="2.4">
-
- <!-- ======================== Introduction ============================== -->
- <!-- This document defines default values for *all* web applications -->
- <!-- loaded into this instance of Tomcat. As each application is -->
- <!-- deployed, this file is processed, followed by the -->
- <!-- "/WEB-INF/web.xml" deployment descriptor from your own -->
- <!-- applications. -->
- <!-- -->
- <!-- WARNING: Do not configure application-specific resources here! -->
- <!-- They should go in the "/WEB-INF/web.xml" file in your application. -->
-
-
- <!-- ================== Built In Servlet Definitions ==================== -->
-
-
- <!-- The default servlet for all web applications, that serves static -->
- <!-- resources. It processes all requests that are not mapped to other -->
- <!-- servlets with servlet mappings (defined either here or in your own -->
- <!-- web.xml file. This servlet supports the following initialization -->
- <!-- parameters (default values are in square brackets): -->
- <!-- -->
- <!-- debug Debugging detail level for messages logged -->
- <!-- by this servlet. [0] -->
- <!-- -->
- <!-- fileEncoding Encoding to be used to read static resources -->
- <!-- [platform default] -->
- <!-- -->
- <!-- input Input buffer size (in bytes) when reading -->
- <!-- resources to be served. [2048] -->
- <!-- -->
- <!-- listings Should directory listings be produced if there -->
- <!-- is no welcome file in this directory? [false] -->
- <!-- WARNING: Listings for directories with many -->
- <!-- entries can be slow and may consume -->
- <!-- significant proportions of server resources. -->
- <!-- -->
- <!-- output Output buffer size (in bytes) when writing -->
- <!-- resources to be served. [2048] -->
- <!-- -->
- <!-- readonly Is this context "read only", so HTTP -->
- <!-- commands like PUT and DELETE are -->
- <!-- rejected? [true] -->
- <!-- -->
- <!-- readmeFile File name to display with the directory -->
- <!-- contents. [null] -->
- <!-- -->
- <!-- sendfileSize If the connector used supports sendfile, this -->
- <!-- represents the minimal file size in KB for -->
- <!-- which sendfile will be used. Use a negative -->
- <!-- value to always disable sendfile. [48] -->
- <!-- -->
- <!-- For directory listing customization. Checks localXsltFile, then -->
- <!-- globalXsltFile, then defaults to original behavior. -->
- <!-- -->
- <!-- localXsltFile Make directory listings an XML doc and -->
- <!-- pass the result to this style sheet residing -->
- <!-- in that directory. This overrides -->
- <!-- globalXsltFile[null] -->
- <!-- -->
- <!-- globalXsltFile Site wide configuration version of -->
- <!-- localXsltFile This argument is expected -->
- <!-- to be a physical file. [null] -->
- <!-- -->
- <!-- -->
-
- <servlet>
- <servlet-name>default</servlet-name>
- <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
- <init-param>
- <param-name>debug</param-name>
- <param-value>0</param-value>
- </init-param>
- <init-param>
- <param-name>listings</param-name>
- <param-value>false</param-value>
- </init-param>
- <load-on-startup>1</load-on-startup>
- </servlet>
-
-
- <!-- The "invoker" servlet, which executes anonymous servlet classes -->
- <!-- that have not been defined in a web.xml file. Traditionally, this -->
- <!-- servlet is mapped to the URL pattern "/servlet/*", but you can map -->
- <!-- it to other patterns as well. The extra path info portion of such a -->
- <!-- request must be the fully qualified class name of a Java class that -->
- <!-- implements Servlet (or extends HttpServlet), or the servlet name -->
- <!-- of an existing servlet definition. This servlet supports the -->
- <!-- following initialization parameters (default values are in square -->
- <!-- brackets): -->
- <!-- -->
- <!-- debug Debugging detail level for messages logged -->
- <!-- by this servlet. [0] -->
-
- <!--
- <servlet>
- <servlet-name>invoker</servlet-name>
- <servlet-class>
- org.apache.catalina.servlets.InvokerServlet
- </servlet-class>
- <init-param>
- <param-name>debug</param-name>
- <param-value>0</param-value>
- </init-param>
- <load-on-startup>2</load-on-startup>
- </servlet>
- -->
-
-
- <!-- The JSP page compiler and execution servlet, which is the mechanism -->
- <!-- used by Tomcat to support JSP pages. Traditionally, this servlet -->
- <!-- is mapped to the URL pattern "*.jsp". This servlet supports the -->
- <!-- following initialization parameters (default values are in square -->
- <!-- brackets): -->
- <!-- -->
- <!-- checkInterval If development is false and checkInterval is -->
- <!-- greater than zero, background compilations are -->
- <!-- enabled. checkInterval is the time in seconds -->
- <!-- between checks to see if a JSP page needs to -->
- <!-- be recompiled. [0] -->
- <!-- -->
- <!-- modificationTestInterval -->
- <!-- Causes a JSP (and its dependent files) to not -->
- <!-- be checked for modification during the -->
- <!-- specified time interval (in seconds) from the -->
- <!-- last time the JSP was checked for -->
- <!-- modification. A value of 0 will cause the JSP -->
- <!-- to be checked on every access. -->
- <!-- Used in development mode only. [4] -->
- <!-- -->
- <!-- compiler Which compiler Ant should use to compile JSP -->
- <!-- pages. See the Ant documentation for more -->
- <!-- information. [javac] -->
- <!-- -->
- <!-- classdebuginfo Should the class file be compiled with -->
- <!-- debugging information? [true] -->
- <!-- -->
- <!-- classpath What class path should I use while compiling -->
- <!-- generated servlets? [Created dynamically -->
- <!-- based on the current web application] -->
- <!-- -->
- <!-- development Is Jasper used in development mode? If true, -->
- <!-- the frequency at which JSPs are checked for -->
- <!-- modification may be specified via the -->
- <!-- modificationTestInterval parameter. [true] -->
- <!-- -->
- <!-- enablePooling Determines whether tag handler pooling is -->
- <!-- enabled [true] -->
- <!-- -->
- <!-- fork Tell Ant to fork compiles of JSP pages so that -->
- <!-- a separate JVM is used for JSP page compiles -->
- <!-- from the one Tomcat is running in. [true] -->
- <!-- -->
- <!-- ieClassId The class-id value to be sent to Internet -->
- <!-- Explorer when using <jsp:plugin> tags. -->
- <!-- [clsid:8AD9C840-044E-11D1-B3E9-00805F499D93] -->
- <!-- -->
- <!-- javaEncoding Java file encoding to use for generating java -->
- <!-- source files. [UTF8] -->
- <!-- -->
- <!-- keepgenerated Should we keep the generated Java source code -->
- <!-- for each page instead of deleting it? [true] -->
- <!-- -->
- <!-- mappedfile Should we generate static content with one -->
- <!-- print statement per input line, to ease -->
- <!-- debugging? [true] -->
- <!-- -->
- <!-- trimSpaces Should white spaces in template text between -->
- <!-- actions or directives be trimmed? [false] -->
- <!-- -->
- <!-- suppressSmap Should the generation of SMAP info for JSR45 -->
- <!-- debugging be suppressed? [false] -->
- <!-- -->
- <!-- dumpSmap Should the SMAP info for JSR45 debugging be -->
- <!-- dumped to a file? [false] -->
- <!-- False if suppressSmap is true -->
- <!-- -->
- <!-- genStrAsCharArray Should text strings be generated as char -->
- <!-- arrays, to improve performance in some cases? -->
- <!-- [false] -->
- <!-- -->
- <!-- errorOnUseBeanInvalidClassAttribute -->
- <!-- Should Jasper issue an error when the value of -->
- <!-- the class attribute in an useBean action is -->
- <!-- not a valid bean class? [true] -->
- <!-- -->
- <!-- scratchdir What scratch directory should we use when -->
- <!-- compiling JSP pages? [default work directory -->
- <!-- for the current web application] -->
- <!-- -->
- <!-- xpoweredBy Determines whether X-Powered-By response -->
- <!-- header is added by generated servlet [false] -->
- <!-- -->
- <!-- compilerTargetVM Compiler target VM -->
- <!-- default is System.properties -->
- <!-- java.specification.version > 1.4 -->
- <!-- [1.5] else [1.4] -->
- <!-- -->
- <!-- compilerSourceVM Compiler source VM -->
- <!-- default is System.properties -->
- <!-- java.specification.version > 1.4 -->
- <!-- [1.5] else [1.4] -->
- <!-- -->
- <!-- If you wish to use Jikes to compile JSP pages: -->
- <!-- Please see the "Using Jikes" section of the Jasper-HowTo -->
- <!-- page in the Tomcat documentation. -->
-
- <servlet>
- <servlet-name>jsp</servlet-name>
- <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
- <init-param>
- <param-name>fork</param-name>
- <param-value>false</param-value>
- </init-param>
- <init-param>
- <param-name>xpoweredBy</param-name>
- <param-value>false</param-value>
- </init-param>
- <load-on-startup>3</load-on-startup>
- </servlet>
-
-
- <!-- NOTE: An SSI Filter is also available as an alternative SSI -->
- <!-- implementation. Use either the Servlet or the Filter but NOT both. -->
- <!-- -->
- <!-- Server Side Includes processing servlet, which processes SSI -->
- <!-- directives in HTML pages consistent with similar support in web -->
- <!-- servers like Apache. Traditionally, this servlet is mapped to the -->
- <!-- URL pattern "*.shtml". This servlet supports the following -->
- <!-- initialization parameters (default values are in square brackets): -->
- <!-- -->
- <!-- buffered Should output from this servlet be buffered? -->
- <!-- (0=false, 1=true) [0] -->
- <!-- -->
- <!-- debug Debugging detail level for messages logged -->
- <!-- by this servlet. [0] -->
- <!-- -->
- <!-- expires The number of seconds before a page with SSI -->
- <!-- directives will expire. [No default] -->
- <!-- -->
- <!-- isVirtualWebappRelative -->
- <!-- Should "virtual" paths be interpreted as -->
- <!-- relative to the context root, instead of -->
- <!-- the server root? (0=false, 1=true) [0] -->
- <!-- -->
- <!-- inputEncoding The encoding to assume for SSI resources if -->
- <!-- one is not available from the resource. -->
- <!-- [Platform default] -->
- <!-- -->
- <!-- outputEncoding The encoding to use for the page that results -->
- <!-- from the SSI processing. [UTF-8] -->
- <!-- -->
- <!-- -->
- <!-- IMPORTANT: To use the SSI servlet, you also need to rename the -->
- <!-- $CATALINA_HOME/server/lib/servlets-ssi.renametojar file -->
- <!-- to $CATALINA_HOME/server/lib/servlets-ssi.jar -->
-
- <!--
- <servlet>
- <servlet-name>ssi</servlet-name>
- <servlet-class>
- org.apache.catalina.ssi.SSIServlet
- </servlet-class>
- <init-param>
- <param-name>buffered</param-name>
- <param-value>1</param-value>
- </init-param>
- <init-param>
- <param-name>debug</param-name>
- <param-value>0</param-value>
- </init-param>
- <init-param>
- <param-name>expires</param-name>
- <param-value>666</param-value>
- </init-param>
- <init-param>
- <param-name>isVirtualWebappRelative</param-name>
- <param-value>0</param-value>
- </init-param>
- <load-on-startup>4</load-on-startup>
- </servlet>
- -->
-
-
- <!-- Common Gateway Includes (CGI) processing servlet, which supports -->
- <!-- execution of external applications that conform to the CGI spec -->
- <!-- requirements. Typically, this servlet is mapped to the URL pattern -->
- <!-- "/cgi-bin/*", which means that any CGI applications that are -->
- <!-- executed must be present within the web application. This servlet -->
- <!-- supports the following initialization parameters (default values -->
- <!-- are in square brackets): -->
- <!-- -->
- <!-- cgiPathPrefix The CGI search path will start at -->
- <!-- webAppRootDir + File.separator + this prefix. -->
- <!-- [WEB-INF/cgi] -->
- <!-- -->
- <!-- debug Debugging detail level for messages logged -->
- <!-- by this servlet. [0] -->
- <!-- -->
- <!-- executable Name of the exectuable used to run the -->
- <!-- script. [perl] -->
- <!-- -->
- <!-- parameterEncoding Name of parameter encoding to be used with -->
- <!-- CGI servlet. -->
- <!-- [System.getProperty("file.encoding","UTF-8")] -->
- <!-- -->
- <!-- passShellEnvironment Should the shell environment variables (if -->
- <!-- any) be passed to the CGI script? [false] -->
- <!-- -->
- <!-- IMPORTANT: To use the CGI servlet, you also need to rename the -->
- <!-- $CATALINA_HOME/server/lib/servlets-cgi.renametojar file -->
- <!-- to $CATALINA_HOME/server/lib/servlets-cgi.jar -->
-
- <!--
- <servlet>
- <servlet-name>cgi</servlet-name>
- <servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class>
- <init-param>
- <param-name>debug</param-name>
- <param-value>0</param-value>
- </init-param>
- <init-param>
- <param-name>cgiPathPrefix</param-name>
- <param-value>WEB-INF/cgi</param-value>
- </init-param>
- <load-on-startup>5</load-on-startup>
- </servlet>
- -->
-
-
- <!-- ================ Built In Servlet Mappings ========================= -->
-
-
- <!-- The servlet mappings for the built in servlets defined above. Note -->
- <!-- that, by default, the CGI and SSI servlets are *not* mapped. You -->
- <!-- must uncomment these mappings (or add them to your application's own -->
- <!-- web.xml deployment descriptor) to enable these services -->
-
- <!-- The mapping for the default servlet -->
- <servlet-mapping>
- <servlet-name>default</servlet-name>
- <url-pattern>/</url-pattern>
- </servlet-mapping>
-
- <!-- The mapping for the invoker servlet -->
- <!--
- <servlet-mapping>
- <servlet-name>invoker</servlet-name>
- <url-pattern>/servlet/*</url-pattern>
- </servlet-mapping>
- -->
-
- <!-- The mapping for the JSP servlet -->
- <servlet-mapping>
- <servlet-name>jsp</servlet-name>
- <url-pattern>*.jsp</url-pattern>
- </servlet-mapping>
-
- <servlet-mapping>
- <servlet-name>jsp</servlet-name>
- <url-pattern>*.jspx</url-pattern>
- </servlet-mapping>
-
- <!-- The mapping for the SSI servlet -->
- <!--
- <servlet-mapping>
- <servlet-name>ssi</servlet-name>
- <url-pattern>*.shtml</url-pattern>
- </servlet-mapping>
- -->
-
- <!-- The mapping for the CGI Gateway servlet -->
-
- <!--
- <servlet-mapping>
- <servlet-name>cgi</servlet-name>
- <url-pattern>/cgi-bin/*</url-pattern>
- </servlet-mapping>
- -->
-
-
- <!-- ================== Built In Filter Definitions ===================== -->
-
- <!-- NOTE: An SSI Servlet is also available as an alternative SSI -->
- <!-- implementation. Use either the Servlet or the Filter but NOT both. -->
- <!-- -->
- <!-- Server Side Includes processing filter, which processes SSI -->
- <!-- directives in HTML pages consistent with similar support in web -->
- <!-- servers like Apache. Traditionally, this filter is mapped to the -->
- <!-- URL pattern "*.shtml", though it can be mapped to "*" as it will -->
- <!-- selectively enable/disable SSI processing based on mime types. For -->
- <!-- this to work you will need to uncomment the .shtml mime type -->
- <!-- definition towards the bottom of this file. -->
- <!-- The contentType init param allows you to apply SSI processing to JSP -->
- <!-- pages, javascript, or any other content you wish. This filter -->
- <!-- supports the following initialization parameters (default values are -->
- <!-- in square brackets): -->
- <!-- -->
- <!-- contentType A regex pattern that must be matched before -->
- <!-- SSI processing is applied. -->
- <!-- [text/x-server-parsed-html(;.*)?] -->
- <!-- -->
- <!-- debug Debugging detail level for messages logged -->
- <!-- by this servlet. [0] -->
- <!-- -->
- <!-- expires The number of seconds before a page with SSI -->
- <!-- directives will expire. [No default] -->
- <!-- -->
- <!-- isVirtualWebappRelative -->
- <!-- Should "virtual" paths be interpreted as -->
- <!-- relative to the context root, instead of -->
- <!-- the server root? (0=false, 1=true) [0] -->
- <!-- -->
- <!-- -->
- <!-- IMPORTANT: To use the SSI filter, you also need to rename the -->
- <!-- $CATALINA_HOME/server/lib/servlets-ssi.renametojar file -->
- <!-- to $CATALINA_HOME/server/lib/servlets-ssi.jar -->
-
- <!--
- <filter>
- <filter-name>ssi</filter-name>
- <filter-class>
- org.apache.catalina.ssi.SSIFilter
- </filter-class>
- <init-param>
- <param-name>contentType</param-name>
- <param-value>text/x-server-parsed-html(;.*)?</param-value>
- </init-param>
- <init-param>
- <param-name>debug</param-name>
- <param-value>0</param-value>
- </init-param>
- <init-param>
- <param-name>expires</param-name>
- <param-value>666</param-value>
- </init-param>
- <init-param>
- <param-name>isVirtualWebappRelative</param-name>
- <param-value>0</param-value>
- </init-param>
- </filter>
- -->
-
-
- <!-- ==================== Built In Filter Mappings ====================== -->
-
- <!-- The mapping for the SSI Filter -->
- <!--
- <filter-mapping>
- <filter-name>ssi</filter-name>
- <url-pattern>*.shtml</url-pattern>
- </filter-mapping>
- -->
-
-
- <!-- ==================== Default Session Configuration ================= -->
- <!-- You can set the default session timeout (in minutes) for all newly -->
- <!-- created sessions by modifying the value below. -->
-
- <session-config>
- <session-timeout>30</session-timeout>
- </session-config>
-
-
- <!-- ===================== Default MIME Type Mappings =================== -->
- <!-- When serving static resources, Tomcat will automatically generate -->
- <!-- a "Content-Type" header based on the resource's filename extension, -->
- <!-- based on these mappings. Additional mappings can be added here (to -->
- <!-- apply to all web applications), or in your own application's web.xml -->
- <!-- deployment descriptor. -->
-
- <mime-mapping>
- <extension>abs</extension>
- <mime-type>audio/x-mpeg</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ai</extension>
- <mime-type>application/postscript</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>aif</extension>
- <mime-type>audio/x-aiff</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>aifc</extension>
- <mime-type>audio/x-aiff</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>aiff</extension>
- <mime-type>audio/x-aiff</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>aim</extension>
- <mime-type>application/x-aim</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>art</extension>
- <mime-type>image/x-jg</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>asf</extension>
- <mime-type>video/x-ms-asf</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>asx</extension>
- <mime-type>video/x-ms-asf</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>au</extension>
- <mime-type>audio/basic</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>avi</extension>
- <mime-type>video/x-msvideo</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>avx</extension>
- <mime-type>video/x-rad-screenplay</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>bcpio</extension>
- <mime-type>application/x-bcpio</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>bin</extension>
- <mime-type>application/octet-stream</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>bmp</extension>
- <mime-type>image/bmp</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>body</extension>
- <mime-type>text/html</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>cdf</extension>
- <mime-type>application/x-netcdf</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>cer</extension>
- <mime-type>application/x-x509-ca-cert</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>class</extension>
- <mime-type>application/java</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>cpio</extension>
- <mime-type>application/x-cpio</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>csh</extension>
- <mime-type>application/x-csh</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>css</extension>
- <mime-type>text/css</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>dib</extension>
- <mime-type>image/bmp</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>doc</extension>
- <mime-type>application/msword</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>dtd</extension>
- <mime-type>application/xml-dtd</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>dv</extension>
- <mime-type>video/x-dv</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>dvi</extension>
- <mime-type>application/x-dvi</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>eps</extension>
- <mime-type>application/postscript</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>etx</extension>
- <mime-type>text/x-setext</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>exe</extension>
- <mime-type>application/octet-stream</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>gif</extension>
- <mime-type>image/gif</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>gtar</extension>
- <mime-type>application/x-gtar</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>gz</extension>
- <mime-type>application/x-gzip</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>hdf</extension>
- <mime-type>application/x-hdf</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>htc</extension>
- <mime-type>text/x-component</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>htm</extension>
- <mime-type>text/html</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>html</extension>
- <mime-type>text/html</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>hqx</extension>
- <mime-type>application/mac-binhex40</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ico</extension>
- <mime-type>image/x-icon</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ief</extension>
- <mime-type>image/ief</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>jad</extension>
- <mime-type>text/vnd.sun.j2me.app-descriptor</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>jar</extension>
- <mime-type>application/java-archive</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>java</extension>
- <mime-type>text/plain</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>jnlp</extension>
- <mime-type>application/x-java-jnlp-file</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>jpe</extension>
- <mime-type>image/jpeg</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>jpeg</extension>
- <mime-type>image/jpeg</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>jpg</extension>
- <mime-type>image/jpeg</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>js</extension>
- <mime-type>text/javascript</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>jsf</extension>
- <mime-type>text/plain</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>jspf</extension>
- <mime-type>text/plain</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>kar</extension>
- <mime-type>audio/midi</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>latex</extension>
- <mime-type>application/x-latex</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>m3u</extension>
- <mime-type>audio/x-mpegurl</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mac</extension>
- <mime-type>image/x-macpaint</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>man</extension>
- <mime-type>application/x-troff-man</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mathml</extension>
- <mime-type>application/mathml+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>me</extension>
- <mime-type>application/x-troff-me</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mid</extension>
- <mime-type>audio/midi</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>midi</extension>
- <mime-type>audio/midi</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mif</extension>
- <mime-type>application/vnd.mif</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mov</extension>
- <mime-type>video/quicktime</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>movie</extension>
- <mime-type>video/x-sgi-movie</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mp1</extension>
- <mime-type>audio/x-mpeg</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mp2</extension>
- <mime-type>audio/mpeg</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mp3</extension>
- <mime-type>audio/mpeg</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mpa</extension>
- <mime-type>audio/x-mpeg</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mpe</extension>
- <mime-type>video/mpeg</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mpeg</extension>
- <mime-type>video/mpeg</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mpega</extension>
- <mime-type>audio/x-mpeg</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mpg</extension>
- <mime-type>video/mpeg</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mpv2</extension>
- <mime-type>video/mpeg2</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ms</extension>
- <mime-type>application/x-troff-ms</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>nc</extension>
- <mime-type>application/x-netcdf</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>oda</extension>
- <mime-type>application/oda</mime-type>
- </mime-mapping>
- <mime-mapping>
- <!-- OpenDocument Database -->
- <extension>odb</extension>
- <mime-type>application/vnd.oasis.opendocument.database</mime-type>
- </mime-mapping>
- <mime-mapping>
- <!-- OpenDocument Chart -->
- <extension>odc</extension>
- <mime-type>application/vnd.oasis.opendocument.chart</mime-type>
- </mime-mapping>
- <mime-mapping>
- <!-- OpenDocument Formula -->
- <extension>odf</extension>
- <mime-type>application/vnd.oasis.opendocument.formula</mime-type>
- </mime-mapping>
- <mime-mapping>
- <!-- OpenDocument Drawing -->
- <extension>odg</extension>
- <mime-type>application/vnd.oasis.opendocument.graphics</mime-type>
- </mime-mapping>
- <mime-mapping>
- <!-- OpenDocument Image -->
- <extension>odi</extension>
- <mime-type>application/vnd.oasis.opendocument.image</mime-type>
- </mime-mapping>
- <mime-mapping>
- <!-- OpenDocument Master Document -->
- <extension>odm</extension>
- <mime-type>application/vnd.oasis.opendocument.text-master</mime-type>
- </mime-mapping>
- <mime-mapping>
- <!-- OpenDocument Presentation -->
- <extension>odp</extension>
- <mime-type>application/vnd.oasis.opendocument.presentation</mime-type>
- </mime-mapping>
- <mime-mapping>
- <!-- OpenDocument Spreadsheet -->
- <extension>ods</extension>
- <mime-type>application/vnd.oasis.opendocument.spreadsheet</mime-type>
- </mime-mapping>
- <mime-mapping>
- <!-- OpenDocument Text -->
- <extension>odt</extension>
- <mime-type>application/vnd.oasis.opendocument.text</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ogg</extension>
- <mime-type>application/ogg</mime-type>
- </mime-mapping>
- <mime-mapping>
- <!-- OpenDocument Drawing Template -->
- <extension>otg</extension>
- <mime-type>application/vnd.oasis.opendocument.graphics-template</mime-type>
- </mime-mapping>
- <mime-mapping>
- <!-- HTML Document Template -->
- <extension>oth</extension>
- <mime-type>application/vnd.oasis.opendocument.text-web</mime-type>
- </mime-mapping>
- <mime-mapping>
- <!-- OpenDocument Presentation Template -->
- <extension>otp</extension>
- <mime-type>application/vnd.oasis.opendocument.presentation-template</mime-type>
- </mime-mapping>
- <mime-mapping>
- <!-- OpenDocument Spreadsheet Template -->
- <extension>ots</extension>
- <mime-type>application/vnd.oasis.opendocument.spreadsheet-template</mime-type>
- </mime-mapping>
- <mime-mapping>
- <!-- OpenDocument Text Template -->
- <extension>ott</extension>
- <mime-type>application/vnd.oasis.opendocument.text-template</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>pbm</extension>
- <mime-type>image/x-portable-bitmap</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>pct</extension>
- <mime-type>image/pict</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>pdf</extension>
- <mime-type>application/pdf</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>pgm</extension>
- <mime-type>image/x-portable-graymap</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>pic</extension>
- <mime-type>image/pict</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>pict</extension>
- <mime-type>image/pict</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>pls</extension>
- <mime-type>audio/x-scpls</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>png</extension>
- <mime-type>image/png</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>pnm</extension>
- <mime-type>image/x-portable-anymap</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>pnt</extension>
- <mime-type>image/x-macpaint</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ppm</extension>
- <mime-type>image/x-portable-pixmap</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>pps</extension>
- <mime-type>application/vnd.ms-powerpoint</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ppt</extension>
- <mime-type>application/vnd.ms-powerpoint</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ps</extension>
- <mime-type>application/postscript</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>psd</extension>
- <mime-type>image/x-photoshop</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>qt</extension>
- <mime-type>video/quicktime</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>qti</extension>
- <mime-type>image/x-quicktime</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>qtif</extension>
- <mime-type>image/x-quicktime</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ras</extension>
- <mime-type>image/x-cmu-raster</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>rdf</extension>
- <mime-type>application/rdf+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>rgb</extension>
- <mime-type>image/x-rgb</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>rm</extension>
- <mime-type>application/vnd.rn-realmedia</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>roff</extension>
- <mime-type>application/x-troff</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>rtf</extension>
- <mime-type>text/rtf</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>rtx</extension>
- <mime-type>text/richtext</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>sh</extension>
- <mime-type>application/x-sh</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>shar</extension>
- <mime-type>application/x-shar</mime-type>
- </mime-mapping>
- <!--
- <mime-mapping>
- <extension>shtml</extension>
- <mime-type>text/x-server-parsed-html</mime-type>
- </mime-mapping>
- -->
- <mime-mapping>
- <extension>smf</extension>
- <mime-type>audio/x-midi</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>sit</extension>
- <mime-type>application/x-stuffit</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>snd</extension>
- <mime-type>audio/basic</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>src</extension>
- <mime-type>application/x-wais-source</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>sv4cpio</extension>
- <mime-type>application/x-sv4cpio</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>sv4crc</extension>
- <mime-type>application/x-sv4crc</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>svg</extension>
- <mime-type>image/svg+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>svgz</extension>
- <mime-type>image/svg</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>swf</extension>
- <mime-type>application/x-shockwave-flash</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>t</extension>
- <mime-type>application/x-troff</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>tar</extension>
- <mime-type>application/x-tar</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>tcl</extension>
- <mime-type>application/x-tcl</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>tex</extension>
- <mime-type>application/x-tex</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>texi</extension>
- <mime-type>application/x-texinfo</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>texinfo</extension>
- <mime-type>application/x-texinfo</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>tif</extension>
- <mime-type>image/tiff</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>tiff</extension>
- <mime-type>image/tiff</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>tr</extension>
- <mime-type>application/x-troff</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>tsv</extension>
- <mime-type>text/tab-separated-values</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>txt</extension>
- <mime-type>text/plain</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ulw</extension>
- <mime-type>audio/basic</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ustar</extension>
- <mime-type>application/x-ustar</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>vrml</extension>
- <mime-type>model/vrml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>vsd</extension>
- <mime-type>application/x-visio</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>vxml</extension>
- <mime-type>application/voicexml+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>wav</extension>
- <mime-type>audio/x-wav</mime-type>
- </mime-mapping>
- <mime-mapping>
- <!-- Wireless Bitmap -->
- <extension>wbmp</extension>
- <mime-type>image/vnd.wap.wbmp</mime-type>
- </mime-mapping>
- <mime-mapping>
- <!-- WML Source -->
- <extension>wml</extension>
- <mime-type>text/vnd.wap.wml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <!-- Compiled WML -->
- <extension>wmlc</extension>
- <mime-type>application/vnd.wap.wmlc</mime-type>
- </mime-mapping>
- <mime-mapping>
- <!-- WML Script Source -->
- <extension>wmls</extension>
- <mime-type>text/vnd.wap.wmlscript</mime-type>
- </mime-mapping>
- <mime-mapping>
- <!-- Compiled WML Script -->
- <extension>wmlscriptc</extension>
- <mime-type>application/vnd.wap.wmlscriptc</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>wrl</extension>
- <mime-type>model/vrml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xbm</extension>
- <mime-type>image/x-xbitmap</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xht</extension>
- <mime-type>application/xhtml+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xhtml</extension>
- <mime-type>application/xhtml+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xls</extension>
- <mime-type>application/vnd.ms-excel</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xml</extension>
- <mime-type>application/xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xpm</extension>
- <mime-type>image/x-xpixmap</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xsl</extension>
- <mime-type>application/xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xslt</extension>
- <mime-type>application/xslt+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xul</extension>
- <mime-type>application/vnd.mozilla.xul+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xwd</extension>
- <mime-type>image/x-xwindowdump</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>Z</extension>
- <mime-type>application/x-compress</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>z</extension>
- <mime-type>application/x-compress</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>zip</extension>
- <mime-type>application/zip</mime-type>
- </mime-mapping>
-
- <!-- ==================== Default Welcome File List ===================== -->
- <!-- When a request URI refers to a directory, the default servlet looks -->
- <!-- for a "welcome file" within that directory and, if present, -->
- <!-- to the corresponding resource URI for display. If no welcome file -->
- <!-- is present, the default servlet either serves a directory listing, -->
- <!-- or returns a 404 status, depending on how it is configured. -->
- <!-- -->
- <!-- If you define welcome files in your own application's web.xml -->
- <!-- deployment descriptor, that list *replaces* the list configured -->
- <!-- here, so be sure that you include any of the default values that -->
- <!-- you wish to include. -->
-
- <welcome-file-list>
- <welcome-file>index.html</welcome-file>
- <welcome-file>index.htm</welcome-file>
- <welcome-file>index.jsp</welcome-file>
- </welcome-file-list>
-
-</web-app>
+++ /dev/null
-<?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.
- -->
-
-<Context path="/archiva"
- docBase="${catalina.base}/webapps/archiva">
-
- <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"
- />
-</Context>
+++ /dev/null
-<!--
- ~ 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.
- -->
-
- <!--
-
- Context configuration file for the Tomcat Host Manager Web App
-
- $Id$
-
- -->
-
-
-<Context docBase="${catalina.home}/webapps/host-manager"/>
- <!--
- privileged="true" antiResourceLocking="false" antiJARLocking="false">
-
-</Context>
--->
+++ /dev/null
-<!--
- ~ 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.
- -->
-
- <!--
-
- Context configuration file for the Tomcat Manager Web App
-
- $Id$
-
- -->
-
-
-<Context docBase="${catalina.home}/webapps/manager"/>
- <!--
- privileged="true" antiResourceLocking="false" antiJARLocking="false">
-
-
- <ResourceLink name="users" global="UserDatabase"
- type="org.apache.catalina.UserDatabase"/>
-
-</Context>
- -->
\ No newline at end of file
+++ /dev/null
- grant {\r
- permission java.security.AllPermission;\r
- };\r
-\r
-grant codeBase "file:${catalina.home}/lib/tomcat-juli.jar" {\r
- permission java.lang.RuntimePermission "setContextClassLoader";\r
-};
\ No newline at end of file
+++ /dev/null
-# Licensed to the Apache Software Foundation (ASF) under one or more\r
-# contributor license agreements. See the NOTICE file distributed with\r
-# this work for additional information regarding copyright ownership.\r
-# The ASF licenses this file to You under the Apache License, Version 2.0\r
-# (the "License"); you may not use this file except in compliance with\r
-# the License. You may obtain a copy of the License at\r
-#\r
-# http://www.apache.org/licenses/LICENSE-2.0\r
-#\r
-# Unless required by applicable law or agreed to in writing, software\r
-# distributed under the License is distributed on an "AS IS" BASIS,\r
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
-# See the License for the specific language governing permissions and\r
-# limitations under the License.\r
-\r
-#\r
-# List of comma-separated packages that start with or equal this string\r
-# will cause a security exception to be thrown when\r
-# passed to checkPackageAccess unless the\r
-# corresponding RuntimePermission ("accessClassInPackage."+package) has\r
-# been granted.\r
-package.access=sun.,org.apache.catalina.,org.apache.coyote.,org.apache.tomcat.,org.apache.jasper.,sun.beans.\r
-#\r
-# List of comma-separated packages that start with or equal this string\r
-# will cause a security exception to be thrown when\r
-# passed to checkPackageDefinition unless the\r
-# corresponding RuntimePermission ("defineClassInPackage."+package) has\r
-# been granted.\r
-#\r
-# by default, no packages are restricted for definition, and none of\r
-# the class loaders supplied with the JDK call checkPackageDefinition.\r
-#\r
-package.definition=sun.,java.,org.apache.catalina.,org.apache.coyote.,org.apache.tomcat.,org.apache.jasper.\r
-\r
-#\r
-#\r
-# List of comma-separated paths defining the contents of the "common" \r
-# classloader. Prefixes should be used to define what is the repository type.\r
-# Path may be relative to the CATALINA_HOME or CATALINA_BASE path or absolute.\r
-# If left as blank,the JVM system loader will be used as Catalina's "common" \r
-# loader.\r
-# Examples:\r
-# "foo": Add this folder as a class repository\r
-# "foo/*.jar": Add all the JARs of the specified folder as class \r
-# repositories\r
-# "foo/bar.jar": Add bar.jar as a class repository\r
-common.loader=${catalina.base}/lib,${catalina.base}/lib/*.jar,${catalina.home}/lib,${catalina.home}/lib/*.jar\r
-\r
-#\r
-# List of comma-separated paths defining the contents of the "server" \r
-# classloader. Prefixes should be used to define what is the repository type.\r
-# Path may be relative to the CATALINA_HOME or CATALINA_BASE path or absolute.\r
-# If left as blank, the "common" loader will be used as Catalina's "server" \r
-# loader.\r
-# Examples:\r
-# "foo": Add this folder as a class repository\r
-# "foo/*.jar": Add all the JARs of the specified folder as class \r
-# repositories\r
-# "foo/bar.jar": Add bar.jar as a class repository\r
-server.loader=\r
-\r
-#\r
-# List of comma-separated paths defining the contents of the "shared" \r
-# classloader. Prefixes should be used to define what is the repository type.\r
-# Path may be relative to the CATALINA_BASE path or absolute. If left as blank,\r
-# the "common" loader will be used as Catalina's "shared" loader.\r
-# Examples:\r
-# "foo": Add this folder as a class repository\r
-# "foo/*.jar": Add all the JARs of the specified folder as class \r
-# repositories\r
-# "foo/bar.jar": Add bar.jar as a class repository \r
-# Please note that for single jars, e.g. bar.jar, you need the URL form\r
-# starting with file:.\r
-shared.loader=\r
-\r
-#\r
-# String cache configuration.\r
-tomcat.util.buf.StringCache.byte.enabled=true\r
-#tomcat.util.buf.StringCache.char.enabled=true\r
-#tomcat.util.buf.StringCache.trainThreshold=500000\r
-#tomcat.util.buf.StringCache.cacheSize=5000\r
+++ /dev/null
-<?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.
--->
-<!-- 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="" />
- -->
-
- <!-- Uncomment this to enable Comet connection tacking (provides events
- on session expiration as well as webapp lifecycle) -->
- <!--
- <Valve className="org.apache.catalina.valves.CometConnectionManagerValve" />
- -->
-
-</Context>
+++ /dev/null
-# Licensed to the Apache Software Foundation (ASF) under one or more\r
-# contributor license agreements. See the NOTICE file distributed with\r
-# this work for additional information regarding copyright ownership.\r
-# The ASF licenses this file to You under the Apache License, Version 2.0\r
-# (the "License"); you may not use this file except in compliance with\r
-# the License. You may obtain a copy of the License at\r
-#\r
-# http://www.apache.org/licenses/LICENSE-2.0\r
-#\r
-# Unless required by applicable law or agreed to in writing, software\r
-# distributed under the License is distributed on an "AS IS" BASIS,\r
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
-# See the License for the specific language governing permissions and\r
-# limitations under the License.\r
-\r
-handlers = java.util.logging.ConsoleHandler\r
-\r
-############################################################\r
-# Handler specific properties.\r
-# Describes specific configuration info for Handlers.\r
-############################################################\r
-\r
-java.util.logging.ConsoleHandler.level = FINE\r
-java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter\r
-\r
-############################################################\r
-# Facility specific properties.\r
-# Provides extra control for each logger.\r
-############################################################\r
-\r
-org.apache.catalina.level = @catalina.logging.level@\r
-org.apache.catalina.startup.HostConfig.level = INFO\r
-org.apache.catalina.session.ManagerBase.level = INFO\r
-\r
-\r
-org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO\r
-org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = java.util.logging.ConsoleHandler\r
-\r
-org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO\r
-org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = java.util.logging.ConsoleHandler\r
-\r
-org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/admin].level = INFO\r
-org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/admin].handlers = java.util.logging.ConsoleHandler\r
-\r
-org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].level = INFO\r
-org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].handlers = java.util.logging.ConsoleHandler
\ No newline at end of file
+++ /dev/null
-<?xml version='1.0' encoding='utf-8'?>\r
-<!--\r
- Licensed to the Apache Software Foundation (ASF) under one or more\r
- contributor license agreements. See the NOTICE file distributed with\r
- this work for additional information regarding copyright ownership.\r
- The ASF licenses this file to You under the Apache License, Version 2.0\r
- (the "License"); you may not use this file except in compliance with\r
- the License. You may obtain a copy of the License at\r
-\r
- http://www.apache.org/licenses/LICENSE-2.0\r
-\r
- Unless required by applicable law or agreed to in writing, software\r
- distributed under the License is distributed on an "AS IS" BASIS,\r
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- See the License for the specific language governing permissions and\r
- limitations under the License.\r
--->\r
-<!-- Note: A "Server" is not itself a "Container", so you may not\r
- define subcomponents such as "Valves" at this level.\r
- Documentation at /docs/config/server.html\r
- -->\r
-<Server port="9695" shutdown="SHUTDOWN">\r
-\r
- <!--APR library loader. Documentation at /docs/apr.html -->\r
- <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />\r
- <!--Initialize Jasper prior to webapps are loaded. Documentation at /docs/jasper-howto.html -->\r
- <Listener className="org.apache.catalina.core.JasperListener" />\r
- <!-- Prevent memory leaks due to use of particular java/javax APIs-->\r
- <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />\r
- <!-- JMX Support for the Tomcat server. Documentation at /docs/non-existent.html -->\r
- <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" />\r
- <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />\r
-\r
- <!-- Global JNDI resources\r
- Documentation at /docs/jndi-resources-howto.html\r
- -->\r
- <GlobalNamingResources>\r
- <!-- Editable user database that can also be used by\r
- UserDatabaseRealm to authenticate users\r
- -->\r
- <Resource name="UserDatabase" auth="Container"\r
- type="org.apache.catalina.UserDatabase"\r
- description="User database that can be updated and saved"\r
- factory="org.apache.catalina.users.MemoryUserDatabaseFactory"\r
- pathname="conf/tomcat-users.xml" />\r
- </GlobalNamingResources>\r
-\r
- <Service name="Catalina">\r
-\r
- <Connector port="9696" protocol="HTTP/1.1"\r
- connectionTimeout="20000" \r
- redirectPort="8443" />\r
-\r
- <Engine name="Catalina" defaultHost="localhost">\r
-\r
- <Realm className="org.apache.catalina.realm.UserDatabaseRealm"\r
- resourceName="UserDatabase"/>\r
- <Valve className="org.apache.catalina.valves.AccessLogValve"\r
- resolveHosts="false" pattern="%t-m:%m-url:%U-%q-%Dms"/>\r
-\r
- <Host name="localhost" appBase="webapps"\r
- unpackWARs="true" autoDeploy="true"\r
- xmlValidation="false" xmlNamespaceAware="false">\r
-\r
- </Host>\r
- </Engine>\r
- </Service>\r
-</Server>\r
+++ /dev/null
-<?xml version='1.0' encoding='utf-8'?>\r
-<!--\r
- Licensed to the Apache Software Foundation (ASF) under one or more\r
- contributor license agreements. See the NOTICE file distributed with\r
- this work for additional information regarding copyright ownership.\r
- The ASF licenses this file to You under the Apache License, Version 2.0\r
- (the "License"); you may not use this file except in compliance with\r
- the License. You may obtain a copy of the License at\r
-\r
- http://www.apache.org/licenses/LICENSE-2.0\r
-\r
- Unless required by applicable law or agreed to in writing, software\r
- distributed under the License is distributed on an "AS IS" BASIS,\r
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- See the License for the specific language governing permissions and\r
- limitations under the License.\r
--->\r
-<tomcat-users>\r
-<!--\r
- NOTE: By default, no user is included in the "manager-gui" role required\r
- to operate the "/manager/html" web application. If you wish to use this app,\r
- you must define such a user - the username and password are arbitrary.\r
--->\r
-<!--\r
- NOTE: The sample user and role entries below are wrapped in a comment\r
- and thus are ignored when reading this file. Do not forget to remove\r
- <!.. ..> that surrounds them.\r
--->\r
-<!--\r
- <role rolename="tomcat"/>\r
- <role rolename="role1"/>\r
- <user username="tomcat" password="tomcat" roles="tomcat"/>\r
- <user username="both" password="tomcat" roles="tomcat,role1"/>\r
- <user username="role1" password="tomcat" roles="role1"/>\r
--->\r
-</tomcat-users>\r
+++ /dev/null
-<?xml version="1.0" encoding="ISO-8859-1"?>\r
-<!--\r
- Licensed to the Apache Software Foundation (ASF) under one or more\r
- contributor license agreements. See the NOTICE file distributed with\r
- this work for additional information regarding copyright ownership.\r
- The ASF licenses this file to You under the Apache License, Version 2.0\r
- (the "License"); you may not use this file except in compliance with\r
- the License. You may obtain a copy of the License at\r
-\r
- http://www.apache.org/licenses/LICENSE-2.0\r
-\r
- Unless required by applicable law or agreed to in writing, software\r
- distributed under the License is distributed on an "AS IS" BASIS,\r
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- See the License for the specific language governing permissions and\r
- limitations under the License.\r
--->\r
-<web-app xmlns="http://java.sun.com/xml/ns/javaee"\r
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\r
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"\r
- version="2.5">\r
-\r
- <!-- ======================== Introduction ============================== -->\r
- <!-- This document defines default values for *all* web applications -->\r
- <!-- loaded into this instance of Tomcat. As each application is -->\r
- <!-- deployed, this file is processed, followed by the -->\r
- <!-- "/WEB-INF/web.xml" deployment descriptor from your own -->\r
- <!-- applications. -->\r
- <!-- -->\r
- <!-- WARNING: Do not configure application-specific resources here! -->\r
- <!-- They should go in the "/WEB-INF/web.xml" file in your application. -->\r
-\r
-\r
- <!-- ================== Built In Servlet Definitions ==================== -->\r
-\r
-\r
- <!-- The default servlet for all web applications, that serves static -->\r
- <!-- resources. It processes all requests that are not mapped to other -->\r
- <!-- servlets with servlet mappings (defined either here or in your own -->\r
- <!-- web.xml file. This servlet supports the following initialization -->\r
- <!-- parameters (default values are in square brackets): -->\r
- <!-- -->\r
- <!-- debug Debugging detail level for messages logged -->\r
- <!-- by this servlet. [0] -->\r
- <!-- -->\r
- <!-- fileEncoding Encoding to be used to read static resources -->\r
- <!-- [platform default] -->\r
- <!-- -->\r
- <!-- input Input buffer size (in bytes) when reading -->\r
- <!-- resources to be served. [2048] -->\r
- <!-- -->\r
- <!-- listings Should directory listings be produced if there -->\r
- <!-- is no welcome file in this directory? [false] -->\r
- <!-- WARNING: Listings for directories with many -->\r
- <!-- entries can be slow and may consume -->\r
- <!-- significant proportions of server resources. -->\r
- <!-- -->\r
- <!-- output Output buffer size (in bytes) when writing -->\r
- <!-- resources to be served. [2048] -->\r
- <!-- -->\r
- <!-- readonly Is this context "read only", so HTTP -->\r
- <!-- commands like PUT and DELETE are -->\r
- <!-- rejected? [true] -->\r
- <!-- -->\r
- <!-- readmeFile File name to display with the directory -->\r
- <!-- contents. [null] -->\r
- <!-- -->\r
- <!-- sendfileSize If the connector used supports sendfile, this -->\r
- <!-- represents the minimal file size in KB for -->\r
- <!-- which sendfile will be used. Use a negative -->\r
- <!-- value to always disable sendfile. [48] -->\r
- <!-- -->\r
- <!-- useAcceptRanges Should the Accept-Ranges header be included -->\r
- <!-- in responses where appropriate? [true] -->\r
- <!-- -->\r
- <!-- For directory listing customization. Checks localXsltFile, then -->\r
- <!-- globalXsltFile, then defaults to original behavior. -->\r
- <!-- -->\r
- <!-- localXsltFile Make directory listings an XML doc and -->\r
- <!-- pass the result to this style sheet residing -->\r
- <!-- in that directory. This overrides -->\r
- <!-- contextXsltFile and globalXsltFile[null] -->\r
- <!-- -->\r
- <!-- contextXsltFile Make directory listings an XML doc and -->\r
- <!-- pass the result to this style sheet which is -->\r
- <!-- relative to the context root. This overrides -->\r
- <!-- globalXsltFile[null] -->\r
- <!-- -->\r
- <!-- globalXsltFile Site wide configuration version of -->\r
- <!-- localXsltFile This argument is expected -->\r
- <!-- to be a physical file. [null] -->\r
- <!-- -->\r
- <!-- -->\r
-\r
- <servlet>\r
- <servlet-name>default</servlet-name>\r
- <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>\r
- <init-param>\r
- <param-name>debug</param-name>\r
- <param-value>0</param-value>\r
- </init-param>\r
- <init-param>\r
- <param-name>listings</param-name>\r
- <param-value>false</param-value>\r
- </init-param>\r
- <load-on-startup>1</load-on-startup>\r
- </servlet>\r
-\r
-\r
- <!-- This servlet has been deprecated due to security concerns. Servlets -->\r
- <!-- should be explicitly mapped in web.xml -->\r
- <!-- -->\r
- <!-- The "invoker" servlet, which executes anonymous servlet classes -->\r
- <!-- that have not been defined in a web.xml file. Traditionally, this -->\r
- <!-- servlet is mapped to the URL pattern "/servlet/*", but you can map -->\r
- <!-- it to other patterns as well. The extra path info portion of such a -->\r
- <!-- request must be the fully qualified class name of a Java class that -->\r
- <!-- implements Servlet (or extends HttpServlet), or the servlet name -->\r
- <!-- of an existing servlet definition. This servlet supports the -->\r
- <!-- following initialization parameters (default values are in square -->\r
- <!-- brackets): -->\r
- <!-- -->\r
- <!-- debug Debugging detail level for messages logged -->\r
- <!-- by this servlet. [0] -->\r
-\r
-<!--\r
- <servlet>\r
- <servlet-name>invoker</servlet-name>\r
- <servlet-class>\r
- org.apache.catalina.servlets.InvokerServlet\r
- </servlet-class>\r
- <init-param>\r
- <param-name>debug</param-name>\r
- <param-value>0</param-value>\r
- </init-param>\r
- <load-on-startup>2</load-on-startup>\r
- </servlet>\r
--->\r
-\r
-\r
- <!-- The JSP page compiler and execution servlet, which is the mechanism -->\r
- <!-- used by Tomcat to support JSP pages. Traditionally, this servlet -->\r
- <!-- is mapped to the URL pattern "*.jsp". This servlet supports the -->\r
- <!-- following initialization parameters (default values are in square -->\r
- <!-- brackets): -->\r
- <!-- -->\r
- <!-- checkInterval If development is false and checkInterval is -->\r
- <!-- greater than zero, background compilations are -->\r
- <!-- enabled. checkInterval is the time in seconds -->\r
- <!-- between checks to see if a JSP page (and its -->\r
- <!-- dependent files) needs to be recompiled. [0] -->\r
- <!-- -->\r
- <!-- classdebuginfo Should the class file be compiled with -->\r
- <!-- debugging information? [true] -->\r
- <!-- -->\r
- <!-- classpath What class path should I use while compiling -->\r
- <!-- generated servlets? [Created dynamically -->\r
- <!-- based on the current web application] -->\r
- <!-- -->\r
- <!-- compiler Which compiler Ant should use to compile JSP -->\r
- <!-- pages. See the jasper documentation for more -->\r
- <!-- information. -->\r
- <!-- -->\r
- <!-- compilerSourceVM Compiler source VM. [1.5] -->\r
- <!-- -->\r
- <!-- compilerTargetVM Compiler target VM. [1.5] --> \r
- <!-- -->\r
- <!-- development Is Jasper used in development mode? If true, -->\r
- <!-- the frequency at which JSPs are checked for -->\r
- <!-- modification may be specified via the -->\r
- <!-- modificationTestInterval parameter. [true] -->\r
- <!-- -->\r
- <!-- displaySourceFragment -->\r
- <!-- Should a source fragment be included in -->\r
- <!-- exception messages? [true] -->\r
- <!-- -->\r
- <!-- dumpSmap Should the SMAP info for JSR45 debugging be -->\r
- <!-- dumped to a file? [false] -->\r
- <!-- False if suppressSmap is true -->\r
- <!-- -->\r
- <!-- enablePooling Determines whether tag handler pooling is -->\r
- <!-- enabled. This is a compilation option. It will -->\r
- <!-- not alter the behaviour of JSPs that have -->\r
- <!-- already been compiled. [true] -->\r
- <!-- -->\r
- <!-- engineOptionsClass Allows specifying the Options class used to -->\r
- <!-- configure Jasper. If not present, the default -->\r
- <!-- EmbeddedServletOptions will be used. -->\r
- <!-- -->\r
- <!-- errorOnUseBeanInvalidClassAttribute -->\r
- <!-- Should Jasper issue an error when the value of -->\r
- <!-- the class attribute in an useBean action is -->\r
- <!-- not a valid bean class? [true] -->\r
- <!-- -->\r
- <!-- fork Tell Ant to fork compiles of JSP pages so that -->\r
- <!-- a separate JVM is used for JSP page compiles -->\r
- <!-- from the one Tomcat is running in. [true] -->\r
- <!-- -->\r
- <!-- genStrAsCharArray Should text strings be generated as char -->\r
- <!-- arrays, to improve performance in some cases? -->\r
- <!-- [false] -->\r
- <!-- -->\r
- <!-- ieClassId The class-id value to be sent to Internet -->\r
- <!-- Explorer when using <jsp:plugin> tags. -->\r
- <!-- [clsid:8AD9C840-044E-11D1-B3E9-00805F499D93] -->\r
- <!-- -->\r
- <!-- javaEncoding Java file encoding to use for generating java -->\r
- <!-- source files. [UTF8] -->\r
- <!-- -->\r
- <!-- keepgenerated Should we keep the generated Java source code -->\r
- <!-- for each page instead of deleting it? [true] -->\r
- <!-- -->\r
- <!-- mappedfile Should we generate static content with one -->\r
- <!-- print statement per input line, to ease -->\r
- <!-- debugging? [true] -->\r
- <!-- -->\r
- <!-- modificationTestInterval -->\r
- <!-- Causes a JSP (and its dependent files) to not -->\r
- <!-- be checked for modification during the -->\r
- <!-- specified time interval (in seconds) from the -->\r
- <!-- last time the JSP was checked for -->\r
- <!-- modification. A value of 0 will cause the JSP -->\r
- <!-- to be checked on every access. -->\r
- <!-- Used in development mode only. [4] -->\r
- <!-- -->\r
- <!-- recompileOnFail If a JSP compilation fails should the -->\r
- <!-- modificationTestInterval be ignored and the -->\r
- <!-- next access trigger a re-compilation attempt? -->\r
- <!-- Used in development mode only and is disabled -->\r
- <!-- by default as compilation may be expensive and -->\r
- <!-- could lead to excessive resource usage. -->\r
- <!-- [false] -->\r
- <!-- -->\r
- <!-- scratchdir What scratch directory should we use when -->\r
- <!-- compiling JSP pages? [default work directory -->\r
- <!-- for the current web application] -->\r
- <!-- -->\r
- <!-- suppressSmap Should the generation of SMAP info for JSR45 -->\r
- <!-- debugging be suppressed? [false] -->\r
- <!-- -->\r
- <!-- trimSpaces Should white spaces in template text between -->\r
- <!-- actions or directives be trimmed? [false] -->\r
- <!-- -->\r
- <!-- xpoweredBy Determines whether X-Powered-By response -->\r
- <!-- header is added by generated servlet [false] -->\r
- <!-- -->\r
- <!-- If you wish to use Jikes to compile JSP pages: -->\r
- <!-- Please see the "Using Jikes" section of the Jasper-HowTo -->\r
- <!-- page in the Tomcat documentation. -->\r
-\r
- <servlet>\r
- <servlet-name>jsp</servlet-name>\r
- <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>\r
- <init-param>\r
- <param-name>fork</param-name>\r
- <param-value>false</param-value>\r
- </init-param>\r
- <init-param>\r
- <param-name>xpoweredBy</param-name>\r
- <param-value>false</param-value>\r
- </init-param>\r
- <load-on-startup>3</load-on-startup>\r
- </servlet>\r
-\r
-\r
- <!-- NOTE: An SSI Filter is also available as an alternative SSI -->\r
- <!-- implementation. Use either the Servlet or the Filter but NOT both. -->\r
- <!-- -->\r
- <!-- Server Side Includes processing servlet, which processes SSI -->\r
- <!-- directives in HTML pages consistent with similar support in web -->\r
- <!-- servers like Apache. Traditionally, this servlet is mapped to the -->\r
- <!-- URL pattern "*.shtml". This servlet supports the following -->\r
- <!-- initialization parameters (default values are in square brackets): -->\r
- <!-- -->\r
- <!-- buffered Should output from this servlet be buffered? -->\r
- <!-- (0=false, 1=true) [0] -->\r
- <!-- -->\r
- <!-- debug Debugging detail level for messages logged -->\r
- <!-- by this servlet. [0] -->\r
- <!-- -->\r
- <!-- expires The number of seconds before a page with SSI -->\r
- <!-- directives will expire. [No default] -->\r
- <!-- -->\r
- <!-- isVirtualWebappRelative -->\r
- <!-- Should "virtual" paths be interpreted as -->\r
- <!-- relative to the context root, instead of -->\r
- <!-- the server root? (0=false, 1=true) [0] -->\r
- <!-- -->\r
- <!-- inputEncoding The encoding to assume for SSI resources if -->\r
- <!-- one is not available from the resource. -->\r
- <!-- [Platform default] -->\r
- <!-- -->\r
- <!-- outputEncoding The encoding to use for the page that results -->\r
- <!-- from the SSI processing. [UTF-8] -->\r
- <!-- -->\r
- <!-- allowExec Is use of the exec command enabled? [false] -->\r
-\r
-<!--\r
- <servlet>\r
- <servlet-name>ssi</servlet-name>\r
- <servlet-class>\r
- org.apache.catalina.ssi.SSIServlet\r
- </servlet-class>\r
- <init-param>\r
- <param-name>buffered</param-name>\r
- <param-value>1</param-value>\r
- </init-param>\r
- <init-param>\r
- <param-name>debug</param-name>\r
- <param-value>0</param-value>\r
- </init-param>\r
- <init-param>\r
- <param-name>expires</param-name>\r
- <param-value>666</param-value>\r
- </init-param>\r
- <init-param>\r
- <param-name>isVirtualWebappRelative</param-name>\r
- <param-value>0</param-value>\r
- </init-param>\r
- <load-on-startup>4</load-on-startup>\r
- </servlet>\r
--->\r
-\r
-\r
- <!-- Common Gateway Includes (CGI) processing servlet, which supports -->\r
- <!-- execution of external applications that conform to the CGI spec -->\r
- <!-- requirements. Typically, this servlet is mapped to the URL pattern -->\r
- <!-- "/cgi-bin/*", which means that any CGI applications that are -->\r
- <!-- executed must be present within the web application. This servlet -->\r
- <!-- supports the following initialization parameters (default values -->\r
- <!-- are in square brackets): -->\r
- <!-- -->\r
- <!-- cgiPathPrefix The CGI search path will start at -->\r
- <!-- webAppRootDir + File.separator + this prefix. -->\r
- <!-- [WEB-INF/cgi] -->\r
- <!-- -->\r
- <!-- debug Debugging detail level for messages logged -->\r
- <!-- by this servlet. [0] -->\r
- <!-- -->\r
- <!-- executable Name of the executable used to run the -->\r
- <!-- script. [perl] -->\r
- <!-- -->\r
- <!-- parameterEncoding Name of parameter encoding to be used with -->\r
- <!-- CGI servlet. -->\r
- <!-- [System.getProperty("file.encoding","UTF-8")] -->\r
- <!-- -->\r
- <!-- passShellEnvironment Should the shell environment variables (if -->\r
- <!-- any) be passed to the CGI script? [false] -->\r
- <!-- -->\r
- <!-- stderrTimeout The time (in milliseconds) to wait for the -->\r
- <!-- reading of stderr to complete before -->\r
- <!-- terminating the CGI process. [2000] -->\r
-\r
-<!--\r
- <servlet>\r
- <servlet-name>cgi</servlet-name>\r
- <servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class>\r
- <init-param>\r
- <param-name>debug</param-name>\r
- <param-value>0</param-value>\r
- </init-param>\r
- <init-param>\r
- <param-name>cgiPathPrefix</param-name>\r
- <param-value>WEB-INF/cgi</param-value>\r
- </init-param>\r
- <load-on-startup>5</load-on-startup>\r
- </servlet>\r
--->\r
-\r
-\r
- <!-- ================ Built In Servlet Mappings ========================= -->\r
-\r
-\r
- <!-- The servlet mappings for the built in servlets defined above. Note -->\r
- <!-- that, by default, the CGI and SSI servlets are *not* mapped. You -->\r
- <!-- must uncomment these mappings (or add them to your application's own -->\r
- <!-- web.xml deployment descriptor) to enable these services -->\r
-\r
- <!-- The mapping for the default servlet -->\r
- <servlet-mapping>\r
- <servlet-name>default</servlet-name>\r
- <url-pattern>/</url-pattern>\r
- </servlet-mapping>\r
-\r
- <!-- The mapping for the deprecated invoker servlet -->\r
-<!--\r
- <servlet-mapping>\r
- <servlet-name>invoker</servlet-name>\r
- <url-pattern>/servlet/*</url-pattern>\r
- </servlet-mapping>\r
--->\r
-\r
- <!-- The mapping for the JSP servlet -->\r
- <servlet-mapping>\r
- <servlet-name>jsp</servlet-name>\r
- <url-pattern>*.jsp</url-pattern>\r
- </servlet-mapping>\r
-\r
- <servlet-mapping>\r
- <servlet-name>jsp</servlet-name>\r
- <url-pattern>*.jspx</url-pattern>\r
- </servlet-mapping>\r
-\r
- <!-- The mapping for the SSI servlet -->\r
-<!--\r
- <servlet-mapping>\r
- <servlet-name>ssi</servlet-name>\r
- <url-pattern>*.shtml</url-pattern>\r
- </servlet-mapping>\r
--->\r
-\r
- <!-- The mapping for the CGI Gateway servlet -->\r
-\r
-<!--\r
- <servlet-mapping>\r
- <servlet-name>cgi</servlet-name>\r
- <url-pattern>/cgi-bin/*</url-pattern>\r
- </servlet-mapping>\r
--->\r
-\r
-\r
- <!-- ================== Built In Filter Definitions ===================== -->\r
-\r
- <!-- NOTE: An SSI Servlet is also available as an alternative SSI -->\r
- <!-- implementation. Use either the Servlet or the Filter but NOT both. -->\r
- <!-- -->\r
- <!-- Server Side Includes processing filter, which processes SSI -->\r
- <!-- directives in HTML pages consistent with similar support in web -->\r
- <!-- servers like Apache. Traditionally, this filter is mapped to the -->\r
- <!-- URL pattern "*.shtml", though it can be mapped to "*" as it will -->\r
- <!-- selectively enable/disable SSI processing based on mime types. For -->\r
- <!-- this to work you will need to uncomment the .shtml mime type -->\r
- <!-- definition towards the bottom of this file. -->\r
- <!-- The contentType init param allows you to apply SSI processing to JSP -->\r
- <!-- pages, javascript, or any other content you wish. This filter -->\r
- <!-- supports the following initialization parameters (default values are -->\r
- <!-- in square brackets): -->\r
- <!-- -->\r
- <!-- contentType A regex pattern that must be matched before -->\r
- <!-- SSI processing is applied. -->\r
- <!-- [text/x-server-parsed-html(;.*)?] -->\r
- <!-- -->\r
- <!-- debug Debugging detail level for messages logged -->\r
- <!-- by this servlet. [0] -->\r
- <!-- -->\r
- <!-- expires The number of seconds before a page with SSI -->\r
- <!-- directives will expire. [No default] -->\r
- <!-- -->\r
- <!-- isVirtualWebappRelative -->\r
- <!-- Should "virtual" paths be interpreted as -->\r
- <!-- relative to the context root, instead of -->\r
- <!-- the server root? (0=false, 1=true) [0] -->\r
- <!-- -->\r
- <!-- allowExec Is use of the exec command enabled? [false] -->\r
-\r
-<!--\r
- <filter>\r
- <filter-name>ssi</filter-name>\r
- <filter-class>\r
- org.apache.catalina.ssi.SSIFilter\r
- </filter-class>\r
- <init-param>\r
- <param-name>contentType</param-name>\r
- <param-value>text/x-server-parsed-html(;.*)?</param-value>\r
- </init-param>\r
- <init-param>\r
- <param-name>debug</param-name>\r
- <param-value>0</param-value>\r
- </init-param>\r
- <init-param>\r
- <param-name>expires</param-name>\r
- <param-value>666</param-value>\r
- </init-param>\r
- <init-param>\r
- <param-name>isVirtualWebappRelative</param-name>\r
- <param-value>0</param-value>\r
- </init-param>\r
- </filter>\r
--->\r
-\r
-\r
- <!-- ==================== Built In Filter Mappings ====================== -->\r
-\r
- <!-- The mapping for the SSI Filter -->\r
-<!--\r
- <filter-mapping>\r
- <filter-name>ssi</filter-name>\r
- <url-pattern>*.shtml</url-pattern>\r
- </filter-mapping>\r
--->\r
-\r
-\r
- <!-- ==================== Default Session Configuration ================= -->\r
- <!-- You can set the default session timeout (in minutes) for all newly -->\r
- <!-- created sessions by modifying the value below. -->\r
-\r
- <session-config>\r
- <session-timeout>30</session-timeout>\r
- </session-config>\r
-\r
-\r
- <!-- ===================== Default MIME Type Mappings =================== -->\r
- <!-- When serving static resources, Tomcat will automatically generate -->\r
- <!-- a "Content-Type" header based on the resource's filename extension, -->\r
- <!-- based on these mappings. Additional mappings can be added here (to -->\r
- <!-- apply to all web applications), or in your own application's web.xml -->\r
- <!-- deployment descriptor. -->\r
-\r
- <mime-mapping>\r
- <extension>abs</extension>\r
- <mime-type>audio/x-mpeg</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>ai</extension>\r
- <mime-type>application/postscript</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>aif</extension>\r
- <mime-type>audio/x-aiff</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>aifc</extension>\r
- <mime-type>audio/x-aiff</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>aiff</extension>\r
- <mime-type>audio/x-aiff</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>aim</extension>\r
- <mime-type>application/x-aim</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>art</extension>\r
- <mime-type>image/x-jg</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>asf</extension>\r
- <mime-type>video/x-ms-asf</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>asx</extension>\r
- <mime-type>video/x-ms-asf</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>au</extension>\r
- <mime-type>audio/basic</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>avi</extension>\r
- <mime-type>video/x-msvideo</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>avx</extension>\r
- <mime-type>video/x-rad-screenplay</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>bcpio</extension>\r
- <mime-type>application/x-bcpio</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>bin</extension>\r
- <mime-type>application/octet-stream</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>bmp</extension>\r
- <mime-type>image/bmp</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>body</extension>\r
- <mime-type>text/html</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>cdf</extension>\r
- <mime-type>application/x-cdf</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>cer</extension>\r
- <mime-type>application/x-x509-ca-cert</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>class</extension>\r
- <mime-type>application/java</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>cpio</extension>\r
- <mime-type>application/x-cpio</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>csh</extension>\r
- <mime-type>application/x-csh</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>css</extension>\r
- <mime-type>text/css</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>dib</extension>\r
- <mime-type>image/bmp</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>doc</extension>\r
- <mime-type>application/msword</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>dtd</extension>\r
- <mime-type>application/xml-dtd</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>dv</extension>\r
- <mime-type>video/x-dv</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>dvi</extension>\r
- <mime-type>application/x-dvi</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>eps</extension>\r
- <mime-type>application/postscript</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>etx</extension>\r
- <mime-type>text/x-setext</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>exe</extension>\r
- <mime-type>application/octet-stream</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>gif</extension>\r
- <mime-type>image/gif</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>gtar</extension>\r
- <mime-type>application/x-gtar</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>gz</extension>\r
- <mime-type>application/x-gzip</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>hdf</extension>\r
- <mime-type>application/x-hdf</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>hqx</extension>\r
- <mime-type>application/mac-binhex40</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>htc</extension>\r
- <mime-type>text/x-component</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>htm</extension>\r
- <mime-type>text/html</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>html</extension>\r
- <mime-type>text/html</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>hqx</extension>\r
- <mime-type>application/mac-binhex40</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>ief</extension>\r
- <mime-type>image/ief</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>jad</extension>\r
- <mime-type>text/vnd.sun.j2me.app-descriptor</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>jar</extension>\r
- <mime-type>application/java-archive</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>java</extension>\r
- <mime-type>text/plain</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>jnlp</extension>\r
- <mime-type>application/x-java-jnlp-file</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>jpe</extension>\r
- <mime-type>image/jpeg</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>jpeg</extension>\r
- <mime-type>image/jpeg</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>jpg</extension>\r
- <mime-type>image/jpeg</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>js</extension>\r
- <mime-type>text/javascript</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>jsf</extension>\r
- <mime-type>text/plain</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>jspf</extension>\r
- <mime-type>text/plain</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>kar</extension>\r
- <mime-type>audio/x-midi</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>latex</extension>\r
- <mime-type>application/x-latex</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>m3u</extension>\r
- <mime-type>audio/x-mpegurl</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>mac</extension>\r
- <mime-type>image/x-macpaint</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>man</extension>\r
- <mime-type>application/x-troff-man</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>mathml</extension>\r
- <mime-type>application/mathml+xml</mime-type> \r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>me</extension>\r
- <mime-type>application/x-troff-me</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>mid</extension>\r
- <mime-type>audio/x-midi</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>midi</extension>\r
- <mime-type>audio/x-midi</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>mif</extension>\r
- <mime-type>application/x-mif</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>mov</extension>\r
- <mime-type>video/quicktime</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>movie</extension>\r
- <mime-type>video/x-sgi-movie</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>mp1</extension>\r
- <mime-type>audio/x-mpeg</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>mp2</extension>\r
- <mime-type>audio/x-mpeg</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>mp3</extension>\r
- <mime-type>audio/x-mpeg</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>mp4</extension>\r
- <mime-type>video/mp4</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>mpa</extension>\r
- <mime-type>audio/x-mpeg</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>mpe</extension>\r
- <mime-type>video/mpeg</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>mpeg</extension>\r
- <mime-type>video/mpeg</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>mpega</extension>\r
- <mime-type>audio/x-mpeg</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>mpg</extension>\r
- <mime-type>video/mpeg</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>mpv2</extension>\r
- <mime-type>video/mpeg2</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>ms</extension>\r
- <mime-type>application/x-wais-source</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>nc</extension>\r
- <mime-type>application/x-netcdf</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>oda</extension>\r
- <mime-type>application/oda</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <!-- OpenDocument Database -->\r
- <extension>odb</extension>\r
- <mime-type>application/vnd.oasis.opendocument.database</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <!-- OpenDocument Chart -->\r
- <extension>odc</extension>\r
- <mime-type>application/vnd.oasis.opendocument.chart</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <!-- OpenDocument Formula -->\r
- <extension>odf</extension>\r
- <mime-type>application/vnd.oasis.opendocument.formula</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <!-- OpenDocument Drawing -->\r
- <extension>odg</extension>\r
- <mime-type>application/vnd.oasis.opendocument.graphics</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <!-- OpenDocument Image -->\r
- <extension>odi</extension>\r
- <mime-type>application/vnd.oasis.opendocument.image</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <!-- OpenDocument Master Document -->\r
- <extension>odm</extension>\r
- <mime-type>application/vnd.oasis.opendocument.text-master</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <!-- OpenDocument Presentation -->\r
- <extension>odp</extension>\r
- <mime-type>application/vnd.oasis.opendocument.presentation</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <!-- OpenDocument Spreadsheet -->\r
- <extension>ods</extension>\r
- <mime-type>application/vnd.oasis.opendocument.spreadsheet</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <!-- OpenDocument Text -->\r
- <extension>odt</extension>\r
- <mime-type>application/vnd.oasis.opendocument.text</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>ogg</extension>\r
- <mime-type>application/ogg</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <!-- OpenDocument Drawing Template -->\r
- <extension>otg </extension>\r
- <mime-type>application/vnd.oasis.opendocument.graphics-template</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <!-- HTML Document Template -->\r
- <extension>oth</extension>\r
- <mime-type>application/vnd.oasis.opendocument.text-web</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <!-- OpenDocument Presentation Template -->\r
- <extension>otp</extension>\r
- <mime-type>application/vnd.oasis.opendocument.presentation-template</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <!-- OpenDocument Spreadsheet Template -->\r
- <extension>ots</extension>\r
- <mime-type>application/vnd.oasis.opendocument.spreadsheet-template </mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <!-- OpenDocument Text Template -->\r
- <extension>ott</extension>\r
- <mime-type>application/vnd.oasis.opendocument.text-template</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>pbm</extension>\r
- <mime-type>image/x-portable-bitmap</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>pct</extension>\r
- <mime-type>image/pict</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>pdf</extension>\r
- <mime-type>application/pdf</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>pgm</extension>\r
- <mime-type>image/x-portable-graymap</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>pic</extension>\r
- <mime-type>image/pict</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>pict</extension>\r
- <mime-type>image/pict</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>pls</extension>\r
- <mime-type>audio/x-scpls</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>png</extension>\r
- <mime-type>image/png</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>pnm</extension>\r
- <mime-type>image/x-portable-anymap</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>pnt</extension>\r
- <mime-type>image/x-macpaint</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>ppm</extension>\r
- <mime-type>image/x-portable-pixmap</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>ppt</extension>\r
- <mime-type>application/vnd.ms-powerpoint</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>pps</extension>\r
- <mime-type>application/vnd.ms-powerpoint</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>ps</extension>\r
- <mime-type>application/postscript</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>psd</extension>\r
- <mime-type>image/x-photoshop</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>qt</extension>\r
- <mime-type>video/quicktime</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>qti</extension>\r
- <mime-type>image/x-quicktime</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>qtif</extension>\r
- <mime-type>image/x-quicktime</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>ras</extension>\r
- <mime-type>image/x-cmu-raster</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>rdf</extension>\r
- <mime-type>application/rdf+xml</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>rgb</extension>\r
- <mime-type>image/x-rgb</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>rm</extension>\r
- <mime-type>application/vnd.rn-realmedia</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>roff</extension>\r
- <mime-type>application/x-troff</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>rtf</extension>\r
- <mime-type>application/rtf</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>rtx</extension>\r
- <mime-type>text/richtext</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>sh</extension>\r
- <mime-type>application/x-sh</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>shar</extension>\r
- <mime-type>application/x-shar</mime-type>\r
- </mime-mapping>\r
-<!--\r
- <mime-mapping>\r
- <extension>shtml</extension>\r
- <mime-type>text/x-server-parsed-html</mime-type>\r
- </mime-mapping>\r
--->\r
- <mime-mapping>\r
- <extension>smf</extension>\r
- <mime-type>audio/x-midi</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>sit</extension>\r
- <mime-type>application/x-stuffit</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>snd</extension>\r
- <mime-type>audio/basic</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>src</extension>\r
- <mime-type>application/x-wais-source</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>sv4cpio</extension>\r
- <mime-type>application/x-sv4cpio</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>sv4crc</extension>\r
- <mime-type>application/x-sv4crc</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>svg</extension>\r
- <mime-type>image/svg+xml</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>svgz</extension>\r
- <mime-type>image/svg+xml</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>swf</extension>\r
- <mime-type>application/x-shockwave-flash</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>t</extension>\r
- <mime-type>application/x-troff</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>tar</extension>\r
- <mime-type>application/x-tar</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>tcl</extension>\r
- <mime-type>application/x-tcl</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>tex</extension>\r
- <mime-type>application/x-tex</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>texi</extension>\r
- <mime-type>application/x-texinfo</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>texinfo</extension>\r
- <mime-type>application/x-texinfo</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>tif</extension>\r
- <mime-type>image/tiff</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>tiff</extension>\r
- <mime-type>image/tiff</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>tr</extension>\r
- <mime-type>application/x-troff</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>tsv</extension>\r
- <mime-type>text/tab-separated-values</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>txt</extension>\r
- <mime-type>text/plain</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>ulw</extension>\r
- <mime-type>audio/basic</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>ustar</extension>\r
- <mime-type>application/x-ustar</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>vxml</extension>\r
- <mime-type>application/voicexml+xml</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>xbm</extension>\r
- <mime-type>image/x-xbitmap</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>xht</extension>\r
- <mime-type>application/xhtml+xml</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>xhtml</extension>\r
- <mime-type>application/xhtml+xml</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>xls</extension>\r
- <mime-type>application/vnd.ms-excel</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>xml</extension>\r
- <mime-type>application/xml</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>xpm</extension>\r
- <mime-type>image/x-xpixmap</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>xsl</extension>\r
- <mime-type>application/xml</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>xslt</extension>\r
- <mime-type>application/xslt+xml</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>xul</extension>\r
- <mime-type>application/vnd.mozilla.xul+xml</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>xwd</extension>\r
- <mime-type>image/x-xwindowdump</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>vsd</extension>\r
- <mime-type>application/x-visio</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>wav</extension>\r
- <mime-type>audio/x-wav</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <!-- Wireless Bitmap -->\r
- <extension>wbmp</extension>\r
- <mime-type>image/vnd.wap.wbmp</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <!-- WML Source -->\r
- <extension>wml</extension>\r
- <mime-type>text/vnd.wap.wml</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <!-- Compiled WML -->\r
- <extension>wmlc</extension>\r
- <mime-type>application/vnd.wap.wmlc</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <!-- WML Script Source -->\r
- <extension>wmls</extension>\r
- <mime-type>text/vnd.wap.wmlscript</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <!-- Compiled WML Script -->\r
- <extension>wmlscriptc</extension>\r
- <mime-type>application/vnd.wap.wmlscriptc</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>wmv</extension>\r
- <mime-type>video/x-ms-wmv</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>wrl</extension>\r
- <mime-type>x-world/x-vrml</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>wspolicy</extension>\r
- <mime-type>application/wspolicy+xml</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>Z</extension>\r
- <mime-type>application/x-compress</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>z</extension>\r
- <mime-type>application/x-compress</mime-type>\r
- </mime-mapping>\r
- <mime-mapping>\r
- <extension>zip</extension>\r
- <mime-type>application/zip</mime-type>\r
- </mime-mapping>\r
-\r
- <!-- ==================== Default Welcome File List ===================== -->\r
- <!-- When a request URI refers to a directory, the default servlet looks -->\r
- <!-- for a "welcome file" within that directory and, if present, -->\r
- <!-- to the corresponding resource URI for display. If no welcome file -->\r
- <!-- is present, the default servlet either serves a directory listing, -->\r
- <!-- or returns a 404 status, depending on how it is configured. -->\r
- <!-- -->\r
- <!-- If you define welcome files in your own application's web.xml -->\r
- <!-- deployment descriptor, that list *replaces* the list configured -->\r
- <!-- here, so be sure that you include any of the default values that -->\r
- <!-- you wish to include. -->\r
-\r
- <welcome-file-list>\r
- <welcome-file>index.html</welcome-file>\r
- <welcome-file>index.htm</welcome-file>\r
- <welcome-file>index.jsp</welcome-file>\r
- </welcome-file-list>\r
-\r
-</web-app>\r