Book Image

Play Framework Cookbook

By : Alexander Reelsen
Book Image

Play Framework Cookbook

By: Alexander Reelsen

Overview of this book

<p>The Play framework is the new kid on the block of Java frameworks. By breaking with existing standards the play framework tries not to abstract away from HTTP as most web frameworks do, but tightly integrates with it. This means quite a shift for Java programmers. Understanding these concepts behind the play framework and its impact on web development with Java are crucial for fast development of applications.<br /><br />The Play Framework Cookbook starts where the beginner documentation ends. It shows you how to utilize advanced features of the Play framework &ndash; piece by piece and completely outlined with working applications!<br /><br />The reader will be taken through all layers of the Play Framework and provided with in-depth knowledge from as many examples and applications as possible. Leveraging the most from the Play framework means to think simple again in a java environment. Implement your own renderers, integrate tightly with HTTP, use existing code, improve site performance with caching and integrate with other web services and interfaces. Learn about non-functional issues like modularity or integration into production and testing environments. In order to provide the best learning experience during reading Play Framework Cookbook, almost every example is provided with source code, so you can start immediately to integrate recipes into your own play applications.</p>
Table of Contents (16 chapters)
Play Framework Cookbook
Credits
Foreword
About the Author
About the Reviewers
www.PacktPub.com
Preface
Further Information About the Play Framework
Index

Running one Play instance for several hosts


As soon as you need multi tenancy support for your application, chances are high that every tenant will also run on its own host, such as http://firsttenant.yourapp.com and http://secondtenant.yourapp.com. For example, this way you can customize the application a little bit and the user who wants to log in does not have to supply any tenant information.

The source code of the example is available at examples/chapter7/virtualhost.

How to do it...

Put the following in your routes file:

GET    {tenant}.mysoftware.com/         Application.index

From then on you can use the client variable in your controller methods:

public static void index(String tenant) {
    renderText(tenant);
}

You can even configure a different handling of CDN-based content for development and production right, use mode in your routes file. Write the following in your routes file:

#{if play.Play.mode.isDev()}
   GET /public/ staticDir:public
#{/}
#{else}
   GET assets.myapp.com/ staticDir...