Permalink
Browse files

Sample app

  • Loading branch information...
1 parent c5cc6b0 commit 68f7a64082934633b681f9202b70e59298a63ad7 @pepite pepite committed Mar 16, 2010
View
@@ -0,0 +1,40 @@
+h1. Netty module
+
+p(note). **Warning! This version contains JBoss Netty 3.1.5 GA. Be sure to remove the previous version of Netty in your module directory**
+
+The netty module allows you to use JBoss Netty:http://jboss.org/netty as a play! server.
+
+Version 3.1.5 GA of Netty.
+
+h2. <a>Enable the Netty module for the application</a>
+
+In the **/conf/application.conf** file, enable the Netty module by adding this line:
+
+bc. # The netty module
+module.netty=${play.path}/modules/netty
+
+h2. <a>Starting the Play! with netty as application server</a>
+
+bc. play netty:run myapplication
+
+h2. <a>Configuration</a>
+
+By default, there is no maximum upload size. But the max upload size can be configured. In your application.conf add the following line:
+
+bc. play.module.netty.maxContentLength=1048576
+
+This line set the maximum upload size to 1048576 bytes.
+
+A value of -1 means that there is no maximum upload size (the default).
+
+If the limit is exceeded, then an error message is set in the error scope. You can access it with the #{error} tag:
+
+bc. #{errors}
+ <li>${error}</li>
+#{/errors}
+
+To change the default message, use the following message key:
+
+play.module.netty.content.length.exceeded=My error
+
+This property is currently set in the conf/messages directory of the netty module.
@@ -0,0 +1,21 @@
+package controllers;
+
+import org.apache.commons.io.FileUtils;
+import play.Play;
+import play.mvc.*;
+import play.Logger;
+import java.io.File;
+
+public class Application extends Controller {
+
+ public static void index() {
+ render();
+ }
+
+ public static void upload(File file) throws Exception {
+ Logger.info("File is " + file.getAbsolutePath() + "]");
+ FileUtils.copyFile(file, new File(Play.getFile("data/"), file.getName()));
+ Logger.info("File size [" + file.length() + "]");
+ }
+
+}
@@ -0,0 +1,10 @@
+#{extends 'main.html' /}
+#{set title:'Home' /}
+
+<form action="@{Application.upload()}" method="post" enctype="multipart/form-data">
+
+ <input type="file" name="file" />
+
+ <input type="submit">
+
+</form>
@@ -0,0 +1,18 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+ <head>
+ <title>Not found</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+ </head>
+ <body>
+ #{if play.mode.name() == 'DEV'}
+ #{404 result /}
+ #{/if}
+ #{else}
+ <h1>Not found</h1>
+ <p>
+ ${result.message}
+ </p>
+ #{/else}
+ </body>
+</html>
@@ -0,0 +1,18 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+ <head>
+ <title>Application error</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+ </head>
+ <body>
+ #{if play.mode.name() == 'DEV'}
+ #{500 exception /}
+ #{/if}
+ #{else}
+ <h1>Oops, an error occured</h1>
+ <p>
+ This exception has been logged with id <strong>${exception.id}</strong>.
+ </p>
+ #{/else}
+ </body>
+</html>
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+
+<html>
+ <head>
+ <title>#{get 'title' /}</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <link rel="stylesheet" type="text/css" media="screen" href="@{'/public/stylesheets/main.css'}">
+ #{get 'moreStyles' /}
+ <link rel="shortcut icon" type="image/png" href="@{'/public/images/favicon.png'}">
+ <script src="@{'/public/javascripts/jquery-1.4.2.min.js'}" type="text/javascript" charset="utf-8"></script>
+ #{get 'moreScripts' /}
+ </head>
+ <body>
+ #{doLayout /}
+ </body>
+</html>
@@ -0,0 +1,177 @@
+# This is the main configuration file for the application.
+# ~~~~~
+application.name=Test
+
+# Application mode
+# ~~~~~
+# Set to dev to enable instant reloading and other development help.
+# Otherwise set to prod.
+application.mode=dev
+
+# Secret key
+# ~~~~~
+# The secret key is used to secure cryptographics functions
+# If you deploy your application to several instances be sure to use the same key !
+application.secret=e8f5uk3qbb6xg388gscznaskzjnanaacfo51smh0ygt2wx8ay0027v48ibrbc219
+
+# Additional modules
+# ~~~~~
+# A module is another play! application. Add a line for each module you want
+# to add to your application. Modules path are either absolutes or relative to
+# the application root.
+# They get loaded from top to bottom; Syntax: module.{name}={path}
+#
+# Keep the next line as is to help the play script to manage modules.
+# ---- MODULES ----
+module.netty=../../
+
+# i18n
+# ~~~~~
+# Define locales used by your application.
+# You can then place localized messages in conf/messages.{locale} files
+# application.langs=fr,en,ja
+
+# Date format
+# ~~~~~
+date.format=dd-MM-yyyy
+# date.format.us=MM-dd-yyyy
+
+# Server configuration
+# ~~~~~
+# If you need to change the HTTP port, uncomment this (default is set to 9000)
+# http.port=9000
+#
+# By default the server listen for HTTP on the wilcard address.
+# You can restrict this.
+# http.address=127.0.0.1
+
+# Session configuration
+# ~~~~~~~~~~~~~~~~~~~~~~
+# By default, session will be written to the transient PLAY_SESSION cookie.
+# application.session.cookie=PLAY
+# application.session.maxAge=1h
+
+# JVM configuration
+# ~~~~~
+# Define which port is used by JPDA when application is in debug mode (default is set to 8000)
+# jpda.port=8000
+#
+# Java source level => 1.5, 1.6 or 1.7 (experimental)
+# java.source=1.5
+
+# Log level
+# ~~~~~
+# Specify log level for your application.
+# If you want a very customized log, create a log4j.properties file in the conf directory
+# application.log=INFO
+#
+# More logging configuration
+# application.log.path=/log4j.properties
+# application.log.system.out=off
+
+# Database configuration
+# ~~~~~
+# Enable a database engine if needed.
+#
+# To quickly set up a development database, use either:
+# - mem : for a transient in memory database (HSQL in memory)
+# - fs : for a simple file written database (HSQL file stored)
+# db=mem
+#
+# To connect to a local MySQL5 database, use:
+# db=mysql:user:pwd@database_name
+#
+# If you need a full JDBC configuration use the following :
+# db.url=jdbc:postgresql:database_name
+# db.driver=org.postgresql.Driver
+# db.user=root
+# db.pass=secret
+#
+# Connections pool configuration :
+# db.pool.timeout=1000
+# db.pool.maxSize=30
+# db.pool.minSize=10
+#
+# If you want to reuse an existing Datasource from your application server, use:
+# db=java:/comp/env/jdbc/myDatasource
+
+# JPA Configuration (Hibernate)
+# ~~~~~
+#
+# Specify the custom JPA dialect to use here (default to guess):
+# jpa.dialect=org.hibernate.dialect.PostgreSQLDialect
+#
+# Specify the ddl generation pattern to use (default to update, set to none to disable it):
+# jpa.ddl=update
+#
+# Debug SQL statements (logged using DEBUG level):
+# jpa.debugSQL=true
+#
+# You can even specify additional hibernate properties here:
+# hibernate.use_sql_comments=true
+# ...
+
+# Memcached configuration
+# ~~~~~
+# Enable memcached if needed. Otherwise a local cache is used.
+# memcached=enabled
+#
+# Specify memcached host (default to 127.0.0.1:11211)
+# memcached.host=127.0.0.1:11211
+#
+# Or you can specify multiple host to build a distributed cache
+# memcached.1.host=127.0.0.1:11211
+# memcached.2.host=127.0.0.1:11212
+
+# HTTP Response headers control for static files
+# ~~~~~
+# Set the default max-age, telling the user's browser how long it should cache the page.
+# Default is 3600 (one hour). Set it to 0 to send no-cache.
+# This is only read in prod mode, in dev mode the cache is disabled.
+# http.cacheControl=3600
+
+# If enabled, Play will generate entity tags automatically and send a 304 when needed.
+# Default is true, set it to false to deactivate use of entity tags.
+# http.useETag=true
+
+# WS configuration
+# ~~~~~
+# If you need to set proxy params for WS requests
+# http.proxyHost = localhost
+# http.proxyPort = 3128
+# http.proxyUser = jojo
+# http.proxyPassword = jojo
+
+# Mail configuration
+# ~~~~~
+# Default is to use a mock Mailer
+mail.smtp=mock
+
+# Or, specify mail host configuration
+# mail.smtp.host=127.0.0.1
+# mail.smtp.user=admin
+# mail.smtp.pass=
+# mail.smtp.channel=ssl
+
+# Execution pool
+# ~~~~~
+# Default to 1 thread in DEV mode or (nb processors + 1) threads in PROD mode.
+# Try to keep a low as possible. 1 thread will serialize all requests (very useful for debugging purpose)
+# play.pool=3
+
+# Open file from errors pages
+# ~~~~~
+# If your text editor supports opening files by URL, Play! will
+# dynamically link error pages to files
+#
+# Example, for textmate:
+# play.editor=txmt://open?url=file://%s&line=%s
+
+# Testing. Set up a custom configuration for test mode
+# ~~~~~
+#%test.module.cobertura=${play.path}/modules/cobertura
+%test.application.mode=dev
+%test.db=mem
+%test.jpa.ddl=create-drop
+%test.mail.smtp=mock
+
@@ -0,0 +1,3 @@
+# You can specialize this file for each language.
+# For example, for French create a messages.fr file
+#
@@ -0,0 +1,12 @@
+# Routes
+# This file defines all application routes (Higher priority routes first)
+# ~~~~
+
+# Home page
+GET / Application.index
+
+# Map static resources from the /app/public folder to the /public path
+GET /public/ staticDir:public
+
+# Catch all
+* /{controller}/{action} {controller}.{action}
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Oops, something went wrong.

0 comments on commit 68f7a64

Please sign in to comment.