/* * Copyright 2014 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.gradle.play; import org.gradle.api.Incubating; import org.gradle.internal.HasInternalProtocol; import org.gradle.model.Managed; import org.gradle.platform.base.ApplicationSpec; /** * Definition of a Play Framework software component that is built by Gradle. */ @Managed @Incubating @HasInternalProtocol public interface PlayApplicationSpec extends ApplicationSpec, PlayPlatformAwareComponentSpec { /** * Specifies a {@link org.gradle.play.platform.PlayPlatform} with a given set of requirements that this * component should be built be for. Can accept a map of play, scala and/or java requirements or a string * representation of the desired play platform. * <pre> * model { * components { * play { * platform 'play-2.3.9' * platform play: '2.3.2' * platform play: '2.3.6', scala: '2.10' * platform play: '2.3.7', scala: '2.11', java: '1.8' * } * } * } * </pre> * @param platformRequirements Map of Play requirements or the name of an Play platform. */ @Override void platform(Object platformRequirements); /** * Configures the style of router to use with this application. * * <p> * By default, a static routes generator is used to generate a singleton router. This requires that all the actions * that the router invokes on the application's controllers are either Scala singleton objects, or Java static methods. * </p> * * <p> * In Play 2.4+, a injected routes generator is recommended. This requires that the router declares its * dependencies to the application's controllers in its constructor. The controllers methods need to be instance methods. * </p> * * @param injectedRoutesGenerator false if a static router should be generated (default). * true if an injected router should be generated. */ void setInjectedRoutesGenerator(boolean injectedRoutesGenerator); /** * Will an injected router be generated for this application? * * @return false if a static router will be generated for the application, * true if an injected router will be generated. */ boolean getInjectedRoutesGenerator(); }