Permalink
Browse files

Initialize project repository

  • Loading branch information...
0 parents commit 1aef661a55605143dc8e587370dce5b8632c3e94 @ccordenier committed Sep 20, 2010
Showing with 1,442 additions and 0 deletions.
  1. +12 −0 .gitignore
  2. 0 README
  3. +125 −0 pom.xml
  4. +44 −0 src/main/java/com/tap5/hotelbooking/components/Layout.java
  5. +6 −0 src/main/java/com/tap5/hotelbooking/pages/About.java
  6. +6 −0 src/main/java/com/tap5/hotelbooking/pages/Contact.java
  7. +14 −0 src/main/java/com/tap5/hotelbooking/pages/Index.java
  8. +119 −0 src/main/java/com/tap5/hotelbooking/services/AppModule.java
  9. +82 −0 src/main/resources/com/tap5/hotelbooking/components/Layout.tml
  10. +1 −0 src/main/resources/com/tap5/hotelbooking/pages/Index.properties
  11. +44 −0 src/main/resources/log4j.properties
  12. +7 −0 src/main/webapp/About.tml
  13. +7 −0 src/main/webapp/Contact.tml
  14. +23 −0 src/main/webapp/Index.tml
  15. +4 −0 src/main/webapp/WEB-INF/app.properties
  16. +22 −0 src/main/webapp/WEB-INF/web.xml
  17. BIN src/main/webapp/favicon.ico
  18. BIN src/main/webapp/layout/images/img01.jpg
  19. BIN src/main/webapp/layout/images/img02.jpg
  20. BIN src/main/webapp/layout/images/img03.jpg
  21. BIN src/main/webapp/layout/images/img04.jpg
  22. BIN src/main/webapp/layout/images/img05.gif
  23. BIN src/main/webapp/layout/images/img06.gif
  24. BIN src/main/webapp/layout/images/img07.gif
  25. BIN src/main/webapp/layout/images/img08.gif
  26. BIN src/main/webapp/layout/images/img09.gif
  27. BIN src/main/webapp/layout/images/img10.gif
  28. BIN src/main/webapp/layout/images/img11.gif
  29. BIN src/main/webapp/layout/images/img12.gif
  30. BIN src/main/webapp/layout/images/img13.gif
  31. BIN src/main/webapp/layout/images/img14.gif
  32. BIN src/main/webapp/layout/images/img15.gif
  33. BIN src/main/webapp/layout/images/img16.gif
  34. BIN src/main/webapp/layout/images/img17.gif
  35. BIN src/main/webapp/layout/images/img18.gif
  36. BIN src/main/webapp/layout/images/img19.gif
  37. BIN src/main/webapp/layout/images/img20.gif
  38. BIN src/main/webapp/layout/images/spacer.gif
  39. +369 −0 src/main/webapp/layout/layout.css
  40. +243 −0 src/main/webapp/layout/license.txt
  41. +9 −0 src/site/apt/index.apt
  42. +17 −0 src/site/site.xml
  43. +8 −0 src/test/conf/testng.xml
  44. +278 −0 src/test/conf/webdefault.xml
  45. +1 −0 src/test/java/PLACEHOLDER
  46. +1 −0 src/test/resources/PLACEHOLDER
12 .gitignore
@@ -0,0 +1,12 @@
+.springBeans
+test-output/
+.settings/
+.project
+.classpath
+temp-testng-customsuite.xml
+target/
+*.tmp_*
+tidyErrors.txt
+*.origin
+*.orig
+bin/
0 README
No changes.
125 pom.xml
@@ -0,0 +1,125 @@
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>com.tap5.hotelbooking</groupId>
+ <artifactId>tapestry5-hotel-booking</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <packaging>war</packaging>
+ <name>tapestry5-hotel-booking Tapestry 5 Application</name>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.tapestry</groupId>
+ <artifactId>tapestry-core</artifactId>
+ <version>${tapestry-release-version}</version>
+ </dependency>
+ <!-- A dependency on either JUnit or TestNG is required, or the surefire plugin (which runs the tests)
+will fail, preventing Maven from packaging the WAR. Tapestry includes a large number
+of testing facilities designed for use with TestNG (http://testng.org/), so it's recommended. -->
+ <dependency>
+ <groupId>org.testng</groupId>
+ <artifactId>testng</artifactId>
+ <version>5.12.1</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.easymock</groupId>
+ <artifactId>easymock</artifactId>
+ <version>2.4</version>
+ <scope>test</scope>
+ </dependency>
+
+ <!-- tapestry-test will conflict with RunJettyRun inside Eclipse. tapestry-test brings in Selenium, which
+ is based on Jetty 5.1; RunJettyRun uses Jetty 6.
+ <dependency>
+ <groupId>org.apache.tapestry</groupId>
+ <artifactId>tapestry-test</artifactId>
+ <version>${tapestry-release-version}</version>
+ <scope>test</scope>
+ </dependency>
+
+ -->
+
+ <!-- Provided by the servlet container, but sometimes referenced in the application
+ code. -->
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ <version>2.5</version>
+ <scope>provided</scope>
+ </dependency>
+
+ </dependencies>
+ <build>
+ <finalName>tapestry5-hotel-booking</finalName>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>1.5</source>
+ <target>1.5</target>
+ <optimize>true</optimize>
+ </configuration>
+ </plugin>
+
+ <!-- Run the application using "mvn jetty:run" -->
+ <plugin>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>maven-jetty-plugin</artifactId>
+ <version>6.1.9</version>
+ <configuration>
+ <!-- Log to the console. -->
+ <requestLog implementation="org.mortbay.jetty.NCSARequestLog">
+ <!-- This doesn't do anything for Jetty, but is a workaround for a Maven bug
+ that prevents the requestLog from being set. -->
+ <append>true</append>
+ </requestLog>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+ <reporting>
+
+ <!-- Adds a report detailing the components, mixins and base classes defined by this module. -->
+ <plugins>
+ <plugin>
+ <groupId>org.apache.tapestry</groupId>
+ <artifactId>tapestry-component-report</artifactId>
+ <version>${tapestry-release-version}</version>
+ <configuration>
+ <rootPackage>com.tap5.hotelbooking</rootPackage>
+ </configuration>
+ </plugin>
+ </plugins>
+ </reporting>
+
+ <repositories>
+
+ <!-- This repository is only needed when the tapestry-release-version is a snapshot release. -->
+ <repository>
+ <id>tapestry-snapshots</id>
+ <url>http://repository.apache.org/snapshots/</url>
+ </repository>
+
+ <repository>
+ <id>codehaus.snapshots</id>
+ <url>http://snapshots.repository.codehaus.org</url>
+ </repository>
+ </repositories>
+
+ <pluginRepositories>
+
+ <!-- As above, this can be commented out when access to the snapshot version
+of a Tapestry Maven plugin is not required. -->
+ <pluginRepository>
+ <id>tapestry-snapshots</id>
+ <url>http://repository.apache.org/snapshots/</url>
+ </pluginRepository>
+
+ </pluginRepositories>
+
+ <properties>
+ <tapestry-release-version>5.2.0</tapestry-release-version>
+ </properties>
+</project>
44 src/main/java/com/tap5/hotelbooking/components/Layout.java
@@ -0,0 +1,44 @@
+package com.tap5.hotelbooking.components;
+
+import org.apache.tapestry5.*;
+import org.apache.tapestry5.annotations.*;
+import org.apache.tapestry5.ioc.annotations.*;
+import org.apache.tapestry5.BindingConstants;
+
+/**
+ * Layout component for pages of application tapestry5-hotel-booking.
+ */
+@IncludeStylesheet("context:layout/layout.css")
+public class Layout
+{
+ /** The page title, for the <title> element and the <h1> element. */
+ @Property
+ @Parameter(required = true, defaultPrefix = BindingConstants.LITERAL)
+ private String title;
+
+ @Property
+ private String pageName;
+
+ @Property
+ @Parameter(defaultPrefix = BindingConstants.LITERAL)
+ private String sidebarTitle;
+
+ @Property
+ @Parameter(defaultPrefix = BindingConstants.LITERAL)
+ private Block sidebar;
+
+ @Inject
+ private ComponentResources resources;
+
+ public String getClassForPageName()
+ {
+ return resources.getPageName().equalsIgnoreCase(pageName)
+ ? "current_page_item"
+ : null;
+ }
+
+ public String[] getPageNames()
+ {
+ return new String[] { "Index", "About", "Contact" };
+ }
+}
6 src/main/java/com/tap5/hotelbooking/pages/About.java
@@ -0,0 +1,6 @@
+package com.tap5.hotelbooking.pages;
+
+public class About
+{
+
+}
6 src/main/java/com/tap5/hotelbooking/pages/Contact.java
@@ -0,0 +1,6 @@
+package com.tap5.hotelbooking.pages;
+
+public class Contact
+{
+
+}
14 src/main/java/com/tap5/hotelbooking/pages/Index.java
@@ -0,0 +1,14 @@
+package com.tap5.hotelbooking.pages;
+
+import java.util.Date;
+
+/**
+ * Start page of application tapestry5-hotel-booking.
+ */
+public class Index
+{
+ public Date getCurrentTime()
+ {
+ return new Date();
+ }
+}
119 src/main/java/com/tap5/hotelbooking/services/AppModule.java
@@ -0,0 +1,119 @@
+package com.tap5.hotelbooking.services;
+
+import java.io.IOException;
+
+import org.apache.tapestry5.*;
+import org.apache.tapestry5.ioc.MappedConfiguration;
+import org.apache.tapestry5.ioc.OrderedConfiguration;
+import org.apache.tapestry5.ioc.ServiceBinder;
+import org.apache.tapestry5.ioc.annotations.Local;
+import org.apache.tapestry5.services.Request;
+import org.apache.tapestry5.services.RequestFilter;
+import org.apache.tapestry5.services.RequestHandler;
+import org.apache.tapestry5.services.Response;
+import org.slf4j.Logger;
+
+/**
+ * This module is automatically included as part of the Tapestry IoC Registry, it's a good place to
+ * configure and extend Tapestry, or to place your own service definitions.
+ */
+public class AppModule
+{
+ public static void bind(ServiceBinder binder)
+ {
+ // binder.bind(MyServiceInterface.class, MyServiceImpl.class);
+
+ // Make bind() calls on the binder object to define most IoC services.
+ // Use service builder methods (example below) when the implementation
+ // is provided inline, or requires more initialization than simply
+ // invoking the constructor.
+ }
+
+
+ public static void contributeApplicationDefaults(
+ MappedConfiguration<String, String> configuration)
+ {
+ // Contributions to ApplicationDefaults will override any contributions to
+ // FactoryDefaults (with the same key). Here we're restricting the supported
+ // locales to just "en" (English). As you add localised message catalogs and other assets,
+ // you can extend this list of locales (it's a comma separated series of locale names;
+ // the first locale name is the default when there's no reasonable match).
+
+ configuration.add(SymbolConstants.SUPPORTED_LOCALES, "en");
+
+ // The factory default is true but during the early stages of an application
+ // overriding to false is a good idea. In addition, this is often overridden
+ // on the command line as -Dtapestry.production-mode=false
+ configuration.add(SymbolConstants.PRODUCTION_MODE, "false");
+
+ // The application version number is incorprated into URLs for some
+ // assets. Web browsers will cache assets because of the far future expires
+ // header. If existing assets are changed, the version number should also
+ // change, to force the browser to download new versions.
+ configuration.add(SymbolConstants.APPLICATION_VERSION, "1.0-SNAPSHOT");
+ }
+
+
+ /**
+ * This is a service definition, the service will be named "TimingFilter". The interface,
+ * RequestFilter, is used within the RequestHandler service pipeline, which is built from the
+ * RequestHandler service configuration. Tapestry IoC is responsible for passing in an
+ * appropriate Logger instance. Requests for static resources are handled at a higher level, so
+ * this filter will only be invoked for Tapestry related requests.
+ *
+ * <p>
+ * Service builder methods are useful when the implementation is inline as an inner class
+ * (as here) or require some other kind of special initialization. In most cases,
+ * use the static bind() method instead.
+ *
+ * <p>
+ * If this method was named "build", then the service id would be taken from the
+ * service interface and would be "RequestFilter". Since Tapestry already defines
+ * a service named "RequestFilter" we use an explicit service id that we can reference
+ * inside the contribution method.
+ */
+ public RequestFilter buildTimingFilter(final Logger log)
+ {
+ return new RequestFilter()
+ {
+ public boolean service(Request request, Response response, RequestHandler handler)
+ throws IOException
+ {
+ long startTime = System.currentTimeMillis();
+
+ try
+ {
+ // The responsibility of a filter is to invoke the corresponding method
+ // in the handler. When you chain multiple filters together, each filter
+ // received a handler that is a bridge to the next filter.
+
+ return handler.service(request, response);
+ }
+ finally
+ {
+ long elapsed = System.currentTimeMillis() - startTime;
+
+ log.info(String.format("Request time: %d ms", elapsed));
+ }
+ }
+ };
+ }
+
+ /**
+ * This is a contribution to the RequestHandler service configuration. This is how we extend
+ * Tapestry using the timing filter. A common use for this kind of filter is transaction
+ * management or security. The @Local annotation selects the desired service by type, but only
+ * from the same module. Without @Local, there would be an error due to the other service(s)
+ * that implement RequestFilter (defined in other modules).
+ */
+ public void contributeRequestHandler(OrderedConfiguration<RequestFilter> configuration,
+ @Local
+ RequestFilter filter)
+ {
+ // Each contribution to an ordered configuration has a name, When necessary, you may
+ // set constraints to precisely control the invocation order of the contributed filter
+ // within the pipeline.
+
+ configuration.add("Timing", filter);
+ }
+}
82 src/main/resources/com/tap5/hotelbooking/components/Layout.tml
@@ -0,0 +1,82 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!--
+
+Design by Free CSS Templates
+http://www.freecsstemplates.org
+Released for free under a Creative Commons Attribution 2.5 License
+
+Title : Concrete
+Version : 1.0
+Released : 20080825
+Description: A Web 2.0 design with fluid width suitable for blogs and small websites.
+-->
+ <html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd"
+ xmlns:p="tapestry:parameter">
+ <head>
+ <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
+ <title>${title}</title>
+ </head>
+ <body>
+ <!-- start header -->
+ <div id="header">
+ <div id="logo">
+ <h1>
+ <t:pagelink page="index">com.tap5.hotelbooking:tapestry5-hotel-booking</t:pagelink>
+ </h1>
+ </div>
+ <div id="menu">
+ <ul>
+ <li t:type="loop" source="pageNames" value="pageName" class="prop:classForPageName">
+ <t:pagelink page="prop:pageName">${pageName}</t:pagelink>
+ </li>
+ </ul>
+ </div>
+ </div>
+ <!-- end header -->
+ <!-- start page -->
+ <div id="page">
+ <!-- start sidebar -->
+ <div id="sidebar">
+ <ul>
+ <li id="search" style="background: none;">
+ </li>
+ <li t:type="if" test="sidebar">
+ <h2>${sidebarTitle}</h2>
+ <div class="sidebar-content">
+ <t:delegate to="sidebar"/>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <!-- end sidebar -->
+ <!-- start content -->
+ <div id="content">
+ <div class="post">
+ <div class="title">
+ <h2>${title}</h2>
+ </div>
+ <div class="entry">
+ <t:body/>
+ </div>
+ </div>
+ </div>
+ <!-- end content -->
+ <br style="clear: both;"/>
+ </div>
+ <!-- end page -->
+ <!-- start footer -->
+ <div id="footer">
+ <p class="legal">
+ &copy;2009 com.tap5.hotelbooking. All Rights Reserved.
+ &nbsp;&nbsp;&bull;&nbsp;&nbsp;
+ Design by
+ <a href="http://www.freecsstemplates.org/">Free CSS Templates</a>
+ &nbsp;&nbsp;&bull;&nbsp;&nbsp;
+ Icons by
+ <a href="http://famfamfam.com/">FAMFAMFAM</a>.
+ </p>
+ </div>
+ <!-- end footer -->
+ </body>
+</html>
1 src/main/resources/com/tap5/hotelbooking/pages/Index.properties
@@ -0,0 +1 @@
+greeting=Welcome to Tapestry 5! We hope that this project template will get you going in style.
44 src/main/resources/log4j.properties
@@ -0,0 +1,44 @@
+# Default to info level output; this is very handy if you eventually use Hibernate as well.
+log4j.rootCategory=info, A1
+
+# A1 is set to be a ConsoleAppender.
+log4j.appender.A1=org.apache.log4j.ConsoleAppender
+
+# A1 uses PatternLayout.
+log4j.appender.A1.layout=org.apache.log4j.PatternLayout
+log4j.appender.A1.layout.ConversionPattern=[%p] %c{2} %m%n
+
+# Service category names are the name of the defining module class
+# and then the service id.
+log4j.category.com.tap5.hotelbooking.services.AppModule.TimingFilter=info
+
+# Outputs a list of pages, components and mixins at startup.
+log4j.category.org.apache.tapestry5.services.TapestryModule.ComponentClassResolver=info
+
+# Outputs startup statistics; elapsed time to setup and initialize the registry, and a list of
+# available services.
+log4j.category.org.apache.tapestry5.TapestryFilter=info
+
+
+# Turning on debug mode for a page's or component's transformer logger
+# will show all of the code changes that occur when the
+# class is loaded.
+
+# log4j.category.tapestry.transformer.com.tap5.hotelbooking.pages.Index=debug
+
+# Turning on debug mode for a component's events logger will show all the events triggered on the
+# component, and which component methods are invoked as a result.
+
+# log4j.category.tapestry.events.com.tap5.hotelbooking.pages.Index=debug
+
+# Turning on trace mode for a page's render logger provides extended information about every step
+# in rendering (this is not generally helpful). Turning on debug mode will add a one-line
+# summary that includes the elapsed render time, which can be useful in tracking down
+# performance issues.
+
+# log4j.category.tapestry.render.com.tap5.hotelbooking.pages.Index=debug
+
+# Turn on some verbose debugging about everything in the application. This is nice initially,
+# while getting everything set up. You'll probably want to remove this once you are
+# up and running, replacing it with more selective debugging output.
+log4j.category.com.tap5.hotelbooking=debug
7 src/main/webapp/About.tml
@@ -0,0 +1,7 @@
+<html t:type="layout" title="About tapestry5-hotel-booking"
+ xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd"
+ xmlns:p="tapestry:parameter">
+
+ <p>About tapestry5-hotel-booking application ...</p>
+
+</html>
7 src/main/webapp/Contact.tml
@@ -0,0 +1,7 @@
+<html t:type="layout" title="Contact com.tap5.hotelbooking"
+ xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd"
+ xmlns:p="tapestry:parameter">
+
+ <p>Contact com.tap5.hotelbooking ...</p>
+
+</html>
23 src/main/webapp/Index.tml
@@ -0,0 +1,23 @@
+<html t:type="layout" title="tapestry5-hotel-booking Index"
+ t:sidebarTitle="Current Time"
+ xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd"
+ xmlns:p="tapestry:parameter">
+ <!-- Most of the page content, including <head>, <body>, etc. tags, comes from Layout.tml -->
+
+ <p>${message:greeting}</p>
+
+ <p:sidebar>
+
+ <p>
+ Just to prove this is live:
+ </p>
+
+ <p>The current time is: ${currentTime}.</p>
+
+
+ <p>
+ [<t:pagelink page="Index">refresh</t:pagelink>]
+ </p>
+ </p:sidebar>
+
+</html>
4 src/main/webapp/WEB-INF/app.properties
@@ -0,0 +1,4 @@
+# This is where global application properties go.
+# You can also have individual message catalogs for each page and each
+# component that override these defaults.
+# The name of this file is based on the <filter-name> element in web.
22 src/main/webapp/WEB-INF/web.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE web-app
+ PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
+ "http://java.sun.com/dtd/web-app_2_3.dtd">
+<web-app>
+ <display-name>tapestry5-hotel-booking Tapestry 5 Application</display-name>
+ <context-param>
+ <!-- The only significant configuration for Tapestry 5, this informs Tapestry
+of where to look for pages, components and mixins. -->
+ <param-name>tapestry.app-package</param-name>
+ <param-value>com.tap5.hotelbooking</param-value>
+ </context-param>
+ <filter>
+ <filter-name>app</filter-name>
+ <filter-class>org.apache.tapestry5.TapestryFilter</filter-class>
+ </filter>
+ <filter-mapping>
+ <filter-name>app</filter-name>
+ <url-pattern>/*</url-pattern>
+ </filter-mapping>
+</web-app>
+
BIN src/main/webapp/favicon.ico
Binary file not shown.
BIN src/main/webapp/layout/images/img01.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN src/main/webapp/layout/images/img02.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN src/main/webapp/layout/images/img03.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN src/main/webapp/layout/images/img04.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN src/main/webapp/layout/images/img05.gif
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN src/main/webapp/layout/images/img06.gif
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN src/main/webapp/layout/images/img07.gif
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN src/main/webapp/layout/images/img08.gif
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN src/main/webapp/layout/images/img09.gif
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN src/main/webapp/layout/images/img10.gif
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN src/main/webapp/layout/images/img11.gif
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN src/main/webapp/layout/images/img12.gif
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN src/main/webapp/layout/images/img13.gif
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN src/main/webapp/layout/images/img14.gif
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN src/main/webapp/layout/images/img15.gif
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN src/main/webapp/layout/images/img16.gif
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN src/main/webapp/layout/images/img17.gif
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN src/main/webapp/layout/images/img18.gif
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN src/main/webapp/layout/images/img19.gif
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN src/main/webapp/layout/images/img20.gif
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN src/main/webapp/layout/images/spacer.gif
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
369 src/main/webapp/layout/layout.css
@@ -0,0 +1,369 @@
+/*
+Design by Free CSS Templates
+http://www.freecsstemplates.org
+Released for free under a Creative Commons Attribution 2.5 License
+*/
+
+body {
+ margin: 0;
+ padding: 0;
+ background: #FFFFFF url( images/img01.jpg ) repeat-x;
+ text-align: justify;
+ font: 15px Arial, Helvetica, sans-serif;
+ color: #626262;
+}
+
+form {
+ margin: 0;
+ padding: 0;
+}
+
+input {
+ padding: 5px;
+ background: #FEFEFE url( images/img13.gif ) repeat-x;
+ border: 1px solid #626262;
+ font: normal 1em Arial, Helvetica, sans-serif;
+}
+
+h1, h1 a, h2, h2 a, h3, h3 a {
+ margin: 0;
+ text-decoration: none;
+ font-family: Tahoma, Georgia, "Times New Roman", Times, serif;
+ font-weight: normal;
+ color: #444444;
+}
+
+h1 {
+ letter-spacing: -1px;
+ font-size: 2.2em;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+}
+
+h2 {
+ letter-spacing: -1px;
+ font-size: 2em;
+}
+
+h3 {
+ font-size: 1em;
+}
+
+p, ol, ul {
+ margin-bottom: 2em;
+ line-height: 200%;
+}
+
+blockquote {
+ margin: 0 0 0 1.5em;
+ padding-left: 1em;
+ border-left: 5px solid #DDDDDD;
+}
+
+a {
+ color: #1692B8;
+}
+
+a:hover {
+ text-decoration: none;
+}
+
+/* Header */
+
+#header {
+ height: 42px;
+}
+
+#logo h1, #logo p {
+ float: left;
+ text-transform: lowercase;
+}
+
+#logo h1 {
+ padding: 0px 0 0 40px;
+}
+
+#logo p {
+ margin: 0;
+ padding: 14px 0 0 4px;
+ line-height: normal;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 14px;
+}
+
+#logo a {
+ text-decoration: none;
+ color: #D0C7A6;
+}
+
+#menu {
+ float: right;
+}
+
+#menu ul {
+ margin: 0;
+ padding: 0;
+ list-style: none;
+}
+
+#menu li {
+ display: block;
+ float: left;
+ height: 42px;
+}
+
+#menu a {
+ display: block;
+ padding: 8px 20px 0px 20px;
+ text-decoration: none;
+ text-align: center;
+ text-transform: lowercase;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-weight: normal;
+ font-size: 14px;
+ color: #CEC5A4;
+}
+
+#menu .last {
+ margin-right: 20px;
+}
+
+#menu a:hover {
+ color: #FFFFFF;
+}
+
+#menu .current_page_item A {
+ text-decoration: underline;
+}
+
+#menu .current_page_item a {
+}
+
+/* Page */
+
+#page {
+ padding: 40px 40px 0 40px;
+}
+
+/* Content */
+
+#content {
+ margin-right: 340px;
+}
+
+.post {
+ margin-bottom: 10px;
+}
+
+.post .title {
+ border-bottom: 1px #999999 dashed;
+ font-family: Tahoma, Georgia, "Times New Roman", Times, serif;
+}
+
+.post .title h2 {
+ padding: 30px 30px 0 0px;
+ text-transform: lowercase;
+ font-weight: normal;
+ font-size: 2.2em;
+}
+
+.post .title p {
+ margin: 0;
+ padding: 0 0 10px 0px;
+ line-height: normal;
+ color: #BABABA;
+}
+
+.post .title p a {
+ color: #BABABA;
+}
+
+.post .entry {
+ padding: 20px 0px 20px 0px;
+}
+
+.post .links {
+ margin: 0;
+ padding: 0 30px 30px 0px;
+}
+
+.post .links a {
+ display: block;
+ float: left;
+ margin-right: 10px;
+ margin-bottom: 5px;
+ text-align: center;
+ text-decoration: none;
+ font-weight: bold;
+ color: #FFFFFF;
+}
+
+.post .links a:hover {
+}
+
+.post .links .more {
+ width: 128px;
+ height: 30px;
+ background: url( images/img03.jpg ) no-repeat left center;
+}
+
+.post .links .comments {
+ width: 152px;
+ height: 30px;
+ background: url( images/img04.jpg ) no-repeat left center;
+}
+
+/* Sidebar */
+
+#sidebar {
+ float: right;
+ width: 300px;
+ margin-top: 30px;
+}
+
+#sidebar ul {
+ margin: 0;
+ padding: 0;
+ list-style: none;
+}
+
+#sidebar li {
+ margin-bottom: 10px;
+ background: url( images/img10.gif ) no-repeat left bottom;
+}
+
+#sidebar li ul {
+ padding: 0 30px 40px 30px;
+}
+
+#sidebar li li {
+ margin: 0;
+ padding-left: 20px;
+}
+
+#sidebar h2 {
+ padding: 30px 30px 5px 10px;
+ background: url( images/img09.gif ) no-repeat;
+ text-transform: lowercase;
+ font-weight: normal;
+ font-size: 1.6em;
+ color: #302D26;
+}
+
+#sidebar DIV.sidebar-content {
+ width: 265px;
+ margin-left: 10px;
+ padding-bottom: 1px;
+}
+
+/* Search */
+
+#search {
+ padding: 20px 30px 40px 30px;
+}
+
+#search input {
+ padding: 0;
+ width: 70px;
+ height: 29px;
+ background: #DFDFDF url( images/img14.gif ) repeat-x;
+ font-weight: bold;
+}
+
+#search #s {
+ padding: 5px;
+ width: 150px;
+ height: auto;
+ background: #FEFEFE url( images/img13.gif ) repeat-x;
+ border: 1px solid #626262;
+ font: normal 1em Arial, Helvetica, sans-serif;
+}
+
+#search br {
+ display: none;
+}
+
+/* Categories */
+
+#sidebar #categories li {
+ background: url( images/img12.gif ) no-repeat left center;
+}
+
+/* Calendar */
+
+#calendar_wrap {
+ padding: 0 30px 40px 30px;
+}
+
+#calendar table {
+ width: 100%;
+ text-align: center;
+}
+
+#calendar thead {
+ background: #F1F1F1;
+}
+
+#calendar tbody td {
+ border: 1px solid #F1F1F1;
+}
+
+#calendar #prev {
+ text-align: left;
+}
+
+#calendar #next {
+ text-align: right;
+}
+
+#calendar tfoot a {
+ text-decoration: none;
+ font-weight: bold;
+}
+
+#calendar #today {
+ background: #FFF3A7;
+ border: 1px solid #EB1400;
+ font-weight: bold;
+ color: #EB1400
+}
+
+/* Footer */
+
+#footer {
+ padding: 70px 0 50px 0;
+ background: #757575 url( images/img08.gif ) repeat-x;
+}
+
+#footer p {
+ margin-bottom: 1em;
+ text-align: center;
+ line-height: normal;
+ font-size: .9em;
+ color: #BABABA;
+}
+
+#footer a {
+ padding: 0 20px;
+ text-decoration: none;
+ color: #DDDDDD;
+}
+
+#footer a:hover {
+ color: #FFFFFF;
+}
+
+#footer .rss {
+ background: url( images/img18.gif ) no-repeat left center;
+}
+
+#footer .xhtml {
+ background: url( images/img19.gif ) no-repeat left center;
+}
+
+#footer .css {
+ background: url( images/img20.gif ) no-repeat left center;
+}
+
+#footer .legal a {
+ padding: 0;
+}
243 src/main/webapp/layout/license.txt
@@ -0,0 +1,243 @@
+Creative Commons </>
+
+Creative Commons Legal Code
+
+*Attribution 2.5*
+
+CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
+LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN
+ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION
+ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE
+INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM
+ITS USE.
+
+/License/
+
+THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE
+COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY
+COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS
+AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.
+
+BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE
+TO BE BOUND BY THE TERMS OF THIS LICENSE. THE LICENSOR GRANTS YOU THE
+RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS
+AND CONDITIONS.
+
+*1. Definitions*
+
+ 1. *"Collective Work"* means a work, such as a periodical issue,
+ anthology or encyclopedia, in which the Work in its entirety in
+ unmodified form, along with a number of other contributions,
+ constituting separate and independent works in themselves, are
+ assembled into a collective whole. A work that constitutes a
+ Collective Work will not be considered a Derivative Work (as
+ defined below) for the purposes of this License.
+ 2. *"Derivative Work"* means a work based upon the Work or upon the
+ Work and other pre-existing works, such as a translation, musical
+ arrangement, dramatization, fictionalization, motion picture
+ version, sound recording, art reproduction, abridgment,
+ condensation, or any other form in which the Work may be recast,
+ transformed, or adapted, except that a work that constitutes a
+ Collective Work will not be considered a Derivative Work for the
+ purpose of this License. For the avoidance of doubt, where the
+ Work is a musical composition or sound recording, the
+ synchronization of the Work in timed-relation with a moving image
+ ("synching") will be considered a Derivative Work for the purpose
+ of this License.
+ 3. *"Licensor"* means the individual or entity that offers the Work
+ under the terms of this License.
+ 4. *"Original Author"* means the individual or entity who created the
+ Work.
+ 5. *"Work"* means the copyrightable work of authorship offered under
+ the terms of this License.
+ 6. *"You"* means an individual or entity exercising rights under this
+ License who has not previously violated the terms of this License
+ with respect to the Work, or who has received express permission
+ from the Licensor to exercise rights under this License despite a
+ previous violation.
+
+*2. Fair Use Rights.* Nothing in this license is intended to reduce,
+limit, or restrict any rights arising from fair use, first sale or other
+limitations on the exclusive rights of the copyright owner under
+copyright law or other applicable laws.
+
+*3. License Grant.* Subject to the terms and conditions of this License,
+Licensor hereby grants You a worldwide, royalty-free, non-exclusive,
+perpetual (for the duration of the applicable copyright) license to
+exercise the rights in the Work as stated below:
+
+ 1. to reproduce the Work, to incorporate the Work into one or more
+ Collective Works, and to reproduce the Work as incorporated in the
+ Collective Works;
+ 2. to create and reproduce Derivative Works;
+ 3. to distribute copies or phonorecords of, display publicly, perform
+ publicly, and perform publicly by means of a digital audio
+ transmission the Work including as incorporated in Collective Works;
+ 4. to distribute copies or phonorecords of, display publicly, perform
+ publicly, and perform publicly by means of a digital audio
+ transmission Derivative Works.
+ 5.
+
+ For the avoidance of doubt, where the work is a musical composition:
+
+ 1. *Performance Royalties Under Blanket Licenses*. Licensor
+ waives the exclusive right to collect, whether individually
+ or via a performance rights society (e.g. ASCAP, BMI,
+ SESAC), royalties for the public performance or public
+ digital performance (e.g. webcast) of the Work.
+ 2. *Mechanical Rights and Statutory Royalties*. Licensor waives
+ the exclusive right to collect, whether individually or via
+ a music rights agency or designated agent (e.g. Harry Fox
+ Agency), royalties for any phonorecord You create from the
+ Work ("cover version") and distribute, subject to the
+ compulsory license created by 17 USC Section 115 of the US
+ Copyright Act (or the equivalent in other jurisdictions).
+ 6. *Webcasting Rights and Statutory Royalties*. For the avoidance of
+ doubt, where the Work is a sound recording, Licensor waives the
+ exclusive right to collect, whether individually or via a
+ performance-rights society (e.g. SoundExchange), royalties for the
+ public digital performance (e.g. webcast) of the Work, subject to
+ the compulsory license created by 17 USC Section 114 of the US
+ Copyright Act (or the equivalent in other jurisdictions).
+
+The above rights may be exercised in all media and formats whether now
+known or hereafter devised. The above rights include the right to make
+such modifications as are technically necessary to exercise the rights
+in other media and formats. All rights not expressly granted by Licensor
+are hereby reserved.
+
+*4. Restrictions.*The license granted in Section 3 above is expressly
+made subject to and limited by the following restrictions:
+
+ 1. You may distribute, publicly display, publicly perform, or
+ publicly digitally perform the Work only under the terms of this
+ License, and You must include a copy of, or the Uniform Resource
+ Identifier for, this License with every copy or phonorecord of the
+ Work You distribute, publicly display, publicly perform, or
+ publicly digitally perform. You may not offer or impose any terms
+ on the Work that alter or restrict the terms of this License or
+ the recipients' exercise of the rights granted hereunder. You may
+ not sublicense the Work. You must keep intact all notices that
+ refer to this License and to the disclaimer of warranties. You may
+ not distribute, publicly display, publicly perform, or publicly
+ digitally perform the Work with any technological measures that
+ control access or use of the Work in a manner inconsistent with
+ the terms of this License Agreement. The above applies to the Work
+ as incorporated in a Collective Work, but this does not require
+ the Collective Work apart from the Work itself to be made subject
+ to the terms of this License. If You create a Collective Work,
+ upon notice from any Licensor You must, to the extent practicable,
+ remove from the Collective Work any credit as required by clause
+ 4(b), as requested. If You create a Derivative Work, upon notice
+ from any Licensor You must, to the extent practicable, remove from
+ the Derivative Work any credit as required by clause 4(b), as
+ requested.
+ 2. If you distribute, publicly display, publicly perform, or publicly
+ digitally perform the Work or any Derivative Works or Collective
+ Works, You must keep intact all copyright notices for the Work and
+ provide, reasonable to the medium or means You are utilizing: (i)
+ the name of the Original Author (or pseudonym, if applicable) if
+ supplied, and/or (ii) if the Original Author and/or Licensor
+ designate another party or parties (e.g. a sponsor institute,
+ publishing entity, journal) for attribution in Licensor's
+ copyright notice, terms of service or by other reasonable means,
+ the name of such party or parties; the title of the Work if
+ supplied; to the extent reasonably practicable, the Uniform
+ Resource Identifier, if any, that Licensor specifies to be
+ associated with the Work, unless such URI does not refer to the
+ copyright notice or licensing information for the Work; and in the
+ case of a Derivative Work, a credit identifying the use of the
+ Work in the Derivative Work (e.g., "French translation of the Work
+ by Original Author," or "Screenplay based on original Work by
+ Original Author"). Such credit may be implemented in any
+ reasonable manner; provided, however, that in the case of a
+ Derivative Work or Collective Work, at a minimum such credit will
+ appear where any other comparable authorship credit appears and in
+ a manner at least as prominent as such other comparable authorship
+ credit.
+
+*5. Representations, Warranties and Disclaimer*
+
+UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR
+OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY
+KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE,
+INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY,
+FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF
+LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS,
+WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE
+EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU.
+
+*6. Limitation on Liability.* EXCEPT TO THE EXTENT REQUIRED BY
+APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL
+THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY
+DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF
+LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+*7. Termination*
+
+ 1. This License and the rights granted hereunder will terminate
+ automatically upon any breach by You of the terms of this License.
+ Individuals or entities who have received Derivative Works or
+ Collective Works from You under this License, however, will not
+ have their licenses terminated provided such individuals or
+ entities remain in full compliance with those licenses. Sections
+ 1, 2, 5, 6, 7, and 8 will survive any termination of this License.
+ 2. Subject to the above terms and conditions, the license granted
+ here is perpetual (for the duration of the applicable copyright in
+ the Work). Notwithstanding the above, Licensor reserves the right
+ to release the Work under different license terms or to stop
+ distributing the Work at any time; provided, however that any such
+ election will not serve to withdraw this License (or any other
+ license that has been, or is required to be, granted under the
+ terms of this License), and this License will continue in full
+ force and effect unless terminated as stated above.
+
+*8. Miscellaneous*
+
+ 1. Each time You distribute or publicly digitally perform the Work or
+ a Collective Work, the Licensor offers to the recipient a license
+ to the Work on the same terms and conditions as the license
+ granted to You under this License.
+ 2. Each time You distribute or publicly digitally perform a
+ Derivative Work, Licensor offers to the recipient a license to the
+ original Work on the same terms and conditions as the license
+ granted to You under this License.
+ 3. If any provision of this License is invalid or unenforceable under
+ applicable law, it shall not affect the validity or enforceability
+ of the remainder of the terms of this License, and without further
+ action by the parties to this agreement, such provision shall be
+ reformed to the minimum extent necessary to make such provision
+ valid and enforceable.
+ 4. No term or provision of this License shall be deemed waived and no
+ breach consented to unless such waiver or consent shall be in
+ writing and signed by the party to be charged with such waiver or
+ consent.
+ 5. This License constitutes the entire agreement between the parties
+ with respect to the Work licensed here. There are no
+ understandings, agreements or representations with respect to the
+ Work not specified here. Licensor shall not be bound by any
+ additional provisions that may appear in any communication from
+ You. This License may not be modified without the mutual written
+ agreement of the Licensor and You.
+
+Creative Commons is not a party to this License, and makes no warranty
+whatsoever in connection with the Work. Creative Commons will not be
+liable to You or any party on any legal theory for any damages
+whatsoever, including without limitation any general, special,
+incidental or consequential damages arising in connection to this
+license. Notwithstanding the foregoing two (2) sentences, if Creative
+Commons has expressly identified itself as the Licensor hereunder, it
+shall have all rights and obligations of Licensor.
+
+Except for the limited purpose of indicating to the public that the Work
+is licensed under the CCPL, neither party will use the trademark
+"Creative Commons" or any related trademark or logo of Creative Commons
+without the prior written consent of Creative Commons. Any permitted use
+will be in compliance with Creative Commons' then-current trademark
+usage guidelines, as may be published on its website or otherwise made
+available upon request from time to time.
+
+Creative Commons may be contacted at http://creativecommons.org/
+<http://creativecommons.org>.
+
+� Back to Commons Deed <./>
9 src/site/apt/index.apt
@@ -0,0 +1,9 @@
+ ----
+ Module com.tap5.hotelbooking:tapestry5-hotel-booking
+ ----
+
+com.tap5.hotelbooking:tapestry5-hotel-booking Documentation
+
+ This is where you can start to document your module.
+
+ Create new files in the Maven APT format, and update the site.xml file to point to them.
17 src/site/site.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<project name="Generated site for tapestry5-hotel-booking">
+
+ <publishDate format="dd MMM yyyy"/>
+
+ <version/>
+
+ <body>
+
+ <menu name="tapestry5-hotel-booking Project">
+ <item name="About" href="index.html"/>
+ </menu>
+
+ <menu ref="reports"/>
+
+ </body>
+</project>
8 src/test/conf/testng.xml
@@ -0,0 +1,8 @@
+<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
+<suite name="tapestry5-hotel-booking Application Test Suite" annotations="1.5">
+ <test name="Unit Tests">
+ <packages>
+ <package name="com.tap5.hotelbooking"/>
+ </packages>
+ </test>
+</suite>
278 src/test/conf/webdefault.xml
@@ -0,0 +1,278 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<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">
+
+ <description>
+ Default web.xml file.
+ This file is applied to a Web application before it's own WEB_INF/web.xml file
+ </description>
+
+
+ <!-- ==================================================================== -->
+ <!-- Context params to control Session Cookies -->
+ <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+ <!-- UNCOMMENT TO ACTIVATE
+ <context-param>
+ <param-name>org.mortbay.jetty.servlet.SessionDomain</param-name>
+ <param-value>127.0.0.1</param-value>
+ </context-param>
+
+ <context-param>
+ <param-name>org.mortbay.jetty.servlet.SessionPath</param-name>
+ <param-value>/</param-value>
+ </context-param>
+
+ <context-param>
+ <param-name>org.mortbay.jetty.servlet.MaxAge</param-name>
+ <param-value>-1</param-value>
+ </context-param>
+ -->
+
+
+ <!-- ==================================================================== -->
+ <!-- The default servlet. -->
+ <!-- This servlet, normally mapped to /, provides the handling for static -->
+ <!-- content, OPTIONS and TRACE methods for the context. -->
+ <!-- The following initParameters are supported: -->
+ <!-- -->
+ <!-- acceptRanges If true, range requests and responses are -->
+ <!-- supported -->
+ <!-- -->
+ <!-- dirAllowed If true, directory listings are returned if no -->
+ <!-- welcome file is found. Else 403 Forbidden. -->
+ <!-- -->
+ <!-- putAllowed If true, the PUT method is allowed -->
+ <!-- -->
+ <!-- delAllowed If true, the DELETE method is allowed -->
+ <!-- -->
+ <!-- redirectWelcome If true, redirect welcome file requests -->
+ <!-- else use request dispatcher forwards -->
+ <!-- -->
+ <!-- minGzipLength If set to a positive integer, then static content -->
+ <!-- larger than this will be served as gzip content -->
+ <!-- encoded if a matching resource is found ending -->
+ <!-- with ".gz" -->
+ <!-- -->
+ <!-- resoureBase Can be set to replace the context resource base -->
+ <!-- -->
+ <!-- relativeResourceBase -->
+ <!-- Set with a pathname relative to the base of the -->
+ <!-- servlet context root. Useful for only serving -->
+ <!-- static content from only specific subdirectories. -->
+ <!-- -->
+ <!-- The MOVE method is allowed if PUT and DELETE are allowed -->
+ <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+ <servlet>
+ <servlet-name>default</servlet-name>
+ <servlet-class>org.mortbay.jetty.servlet.Default</servlet-class>
+ <init-param>
+ <param-name>acceptRanges</param-name>
+ <param-value>true</param-value>
+ </init-param>
+ <init-param>
+ <param-name>dirAllowed</param-name>
+ <param-value>true</param-value>
+ </init-param>
+ <init-param>
+ <param-name>putAllowed</param-name>
+ <param-value>false</param-value>
+ </init-param>
+ <init-param>
+ <param-name>delAllowed</param-name>
+ <param-value>false</param-value>
+ </init-param>
+ <init-param>
+ <param-name>redirectWelcome</param-name>
+ <param-value>false</param-value>
+ </init-param>
+ <init-param>
+ <param-name>minGzipLength</param-name>
+ <param-value>8192</param-value>
+ </init-param>
+ <load-on-startup>0</load-on-startup>
+ </servlet>
+
+
+ <servlet-mapping>
+ <servlet-name>default</servlet-name>
+ <url-pattern>/</url-pattern>
+ </servlet-mapping>
+
+ <!-- ==================================================================== -->
+ <session-config>
+ <session-timeout>30</session-timeout>
+ </session-config>
+
+
+ <!-- ==================================================================== -->
+ <welcome-file-list>
+ <welcome-file>index.html</welcome-file>
+ <welcome-file>index.htm</welcome-file>
+ </welcome-file-list>
+
+ <!-- ==================================================================== -->
+ <locale-encoding-mapping-list>
+ <locale-encoding-mapping>
+ <locale>ar</locale>
+ <encoding>ISO-8859-6</encoding>
+ </locale-encoding-mapping>
+ <locale-encoding-mapping>
+ <locale>be</locale>
+ <encoding>ISO-8859-5</encoding>
+ </locale-encoding-mapping>
+ <locale-encoding-mapping>
+ <locale>bg</locale>
+ <encoding>ISO-8859-5</encoding>
+ </locale-encoding-mapping>
+ <locale-encoding-mapping>
+ <locale>ca</locale>
+ <encoding>ISO-8859-1</encoding>
+ </locale-encoding-mapping>
+ <locale-encoding-mapping>
+ <locale>cs</locale>
+ <encoding>ISO-8859-2</encoding>
+ </locale-encoding-mapping>
+ <locale-encoding-mapping>
+ <locale>da</locale>
+ <encoding>ISO-8859-1</encoding>
+ </locale-encoding-mapping>
+ <locale-encoding-mapping>
+ <locale>de</locale>
+ <encoding>ISO-8859-1</encoding>
+ </locale-encoding-mapping>
+ <locale-encoding-mapping>
+ <locale>el</locale>
+ <encoding>ISO-8859-7</encoding>
+ </locale-encoding-mapping>
+ <locale-encoding-mapping>
+ <locale>en</locale>
+ <encoding>ISO-8859-1</encoding>
+ </locale-encoding-mapping>
+ <locale-encoding-mapping>
+ <locale>es</locale>
+ <encoding>ISO-8859-1</encoding>
+ </locale-encoding-mapping>
+ <locale-encoding-mapping>
+ <locale>et</locale>
+ <encoding>ISO-8859-1</encoding>
+ </locale-encoding-mapping>
+ <locale-encoding-mapping>
+ <locale>fi</locale>
+ <encoding>ISO-8859-1</encoding>
+ </locale-encoding-mapping>
+ <locale-encoding-mapping>
+ <locale>fr</locale>
+ <encoding>ISO-8859-1</encoding>
+ </locale-encoding-mapping>
+ <locale-encoding-mapping>
+ <locale>hr</locale>
+ <encoding>ISO-8859-2</encoding>
+ </locale-encoding-mapping>
+ <locale-encoding-mapping>
+ <locale>hu</locale>
+ <encoding>ISO-8859-2</encoding>
+ </locale-encoding-mapping>
+ <locale-encoding-mapping>
+ <locale>is</locale>
+ <encoding>ISO-8859-1</encoding>
+ </locale-encoding-mapping>
+ <locale-encoding-mapping>
+ <locale>it</locale>
+ <encoding>ISO-8859-1</encoding>
+ </locale-encoding-mapping>
+ <locale-encoding-mapping>
+ <locale>iw</locale>
+ <encoding>ISO-8859-8</encoding>
+ </locale-encoding-mapping>
+ <locale-encoding-mapping>
+ <locale>ja</locale>
+ <encoding>Shift_JIS</encoding>
+ </locale-encoding-mapping>
+ <locale-encoding-mapping>
+ <locale>ko</locale>
+ <encoding>EUC-KR</encoding>
+ </locale-encoding-mapping>
+ <locale-encoding-mapping>
+ <locale>lt</locale>
+ <encoding>ISO-8859-2</encoding>
+ </locale-encoding-mapping>
+ <locale-encoding-mapping>
+ <locale>lv</locale>
+ <encoding>ISO-8859-2</encoding>
+ </locale-encoding-mapping>
+ <locale-encoding-mapping>
+ <locale>mk</locale>
+ <encoding>ISO-8859-5</encoding>
+ </locale-encoding-mapping>
+ <locale-encoding-mapping>
+ <locale>nl</locale>
+ <encoding>ISO-8859-1</encoding>
+ </locale-encoding-mapping>
+ <locale-encoding-mapping>
+ <locale>no</locale>
+ <encoding>ISO-8859-1</encoding>
+ </locale-encoding-mapping>
+ <locale-encoding-mapping>
+ <locale>pl</locale>
+ <encoding>ISO-8859-2</encoding>
+ </locale-encoding-mapping>
+ <locale-encoding-mapping>
+ <locale>pt</locale>
+ <encoding>ISO-8859-1</encoding>
+ </locale-encoding-mapping>
+ <locale-encoding-mapping>
+ <locale>ro</locale>
+ <encoding>ISO-8859-2</encoding>
+ </locale-encoding-mapping>
+ <locale-encoding-mapping>
+ <locale>ru</locale>
+ <encoding>ISO-8859-5</encoding>
+ </locale-encoding-mapping>
+ <locale-encoding-mapping>
+ <locale>sh</locale>
+ <encoding>ISO-8859-5</encoding>
+ </locale-encoding-mapping>
+ <locale-encoding-mapping>
+ <locale>sk</locale>
+ <encoding>ISO-8859-2</encoding>
+ </locale-encoding-mapping>
+ <locale-encoding-mapping>
+ <locale>sl</locale>
+ <encoding>ISO-8859-2</encoding>
+ </locale-encoding-mapping>
+ <locale-encoding-mapping>
+ <locale>sq</locale>
+ <encoding>ISO-8859-2</encoding>
+ </locale-encoding-mapping>
+ <locale-encoding-mapping>
+ <locale>sr</locale>
+ <encoding>ISO-8859-5</encoding>
+ </locale-encoding-mapping>
+ <locale-encoding-mapping>
+ <locale>sv</locale>
+ <encoding>ISO-8859-1</encoding>
+ </locale-encoding-mapping>
+ <locale-encoding-mapping>
+ <locale>tr</locale>
+ <encoding>ISO-8859-9</encoding>
+ </locale-encoding-mapping>
+ <locale-encoding-mapping>
+ <locale>uk</locale>
+ <encoding>ISO-8859-5</encoding>
+ </locale-encoding-mapping>
+ <locale-encoding-mapping>
+ <locale>zh</locale>
+ <encoding>GB2312</encoding>
+ </locale-encoding-mapping>
+ <locale-encoding-mapping>
+ <locale>zh_TW</locale>
+ <encoding>Big5</encoding>
+ </locale-encoding-mapping>
+ </locale-encoding-mapping-list>
+
+
+</web-app>
+
1 src/test/java/PLACEHOLDER
@@ -0,0 +1 @@
+This placeholder exists to ensure the directory is created. It may be deleted when real files are placed under src/test/java.
1 src/test/resources/PLACEHOLDER
@@ -0,0 +1 @@
+This placeholder exists to ensure the directory is created. It may be deleted when real files are placed under src/test/resources.

0 comments on commit 1aef661

Please sign in to comment.