Package play

Class PlayPlugin

    • Field Detail

      • index

        public int index
        Plugin priority (0 for highest priority)
    • Constructor Detail

      • PlayPlugin

        public PlayPlugin()
    • Method Detail

      • onLoad

        public void onLoad()
        Called at plugin loading
      • compileSources

        public boolean compileSources()
      • runTest

        public TestEngine.TestResults runTest​(java.lang.Class<BaseTest> clazz)
        Run a test class
        Parameters:
        clazz - the class to run
        Returns:
        : tests results
      • bind

        @Deprecated
        public java.lang.Object bind​(java.lang.String name,
                                     java.lang.Class clazz,
                                     java.lang.reflect.Type type,
                                     java.lang.annotation.Annotation[] annotations,
                                     java.util.Map<java.lang.String,​java.lang.String[]> params)
        Use method using RootParamNode instead
        Parameters:
        name - the name of the object
        clazz - the class of the object to bind
        type - type
        annotations - annotation on the object
        params - parameters to bind
        Returns:
        binding object
      • bind

        public java.lang.Object bind​(RootParamNode rootParamNode,
                                     java.lang.String name,
                                     java.lang.Class<?> clazz,
                                     java.lang.reflect.Type type,
                                     java.lang.annotation.Annotation[] annotations)
        Called when play need to bind a Java object from HTTP params. When overriding this method, do not call super impl.. super impl is calling old bind method to be backward compatible.
        Parameters:
        rootParamNode - parameters to bind
        name - the name of the object
        clazz - the class of the object to bind
        type - type
        annotations - annotation on the object
        Returns:
        binding object
      • bind

        @Deprecated
        public java.lang.Object bind​(java.lang.String name,
                                     java.lang.Object o,
                                     java.util.Map<java.lang.String,​java.lang.String[]> params)
        Deprecated.
        Use bindBean instead
        Parameters:
        name - the name of the object
        o - object to bind
        params - parameters to bind
        Returns:
        binding object
      • bindBean

        public java.lang.Object bindBean​(RootParamNode rootParamNode,
                                         java.lang.String name,
                                         java.lang.Object bean)
        Called when play need to bind an existing Java object from HTTP params. When overriding this method, DO NOT call the super method, since its default impl is to call the old bind method to be backward compatible.
        Parameters:
        rootParamNode - parameters to bind
        name - the name of the object
        bean - object to bind
        Returns:
        binding object
      • unBind

        public java.util.Map<java.lang.String,​java.lang.Object> unBind​(java.lang.Object src,
                                                                             java.lang.String name)
        Unbind an object
        Parameters:
        src - object to unbind
        name - the name of the object
        Returns:
        List of parameters
      • getMessage

        public java.lang.String getMessage​(java.lang.String locale,
                                           java.lang.Object key,
                                           java.lang.Object... args)
        Translate the given key for the given locale and arguments. If null is returned, Play's normal message translation mechanism will be used.
        Parameters:
        locale - the locale we want
        key - the message key
        args - arguments of the messages
        Returns:
        the formatted string
      • getStatus

        public java.lang.String getStatus()
        Return the plugin status
        Returns:
        the plugin status
      • getJsonStatus

        public com.google.gson.JsonObject getJsonStatus()
        Return the plugin status in JSON format
        Returns:
        the plugin status in JSON format
      • enhance

        public void enhance​(ApplicationClasses.ApplicationClass applicationClass)
                     throws java.lang.Exception
        Enhance this class
        Parameters:
        applicationClass - the class to enhance
        Throws:
        java.lang.Exception - if cannot enhance the class
      • onTemplateCompilation

        @Deprecated
        public void onTemplateCompilation​(Template template)
        Deprecated.
        This hook is not plugged, don't implement it
        Parameters:
        template - the template to compile
      • rawInvocation

        public boolean rawInvocation​(Http.Request request,
                                     Http.Response response)
                              throws java.lang.Exception
        Give a chance to this plugin to fully manage this request
        Parameters:
        request - The Play request
        response - The Play response
        Returns:
        true if this plugin has managed this request
        Throws:
        java.lang.Exception - if cannot enhance the class
      • serveStatic

        public boolean serveStatic​(VirtualFile file,
                                   Http.Request request,
                                   Http.Response response)
        Let a chance to this plugin to manage a static resource
        Parameters:
        file - The requested file
        request - The Play request
        response - The Play response
        Returns:
        true if this plugin has managed this request
      • beforeDetectingChanges

        public void beforeDetectingChanges()
      • loadTemplate

        public Template loadTemplate​(VirtualFile file)
        Parameters:
        file - the file of the template to load
        Returns:
        the template object
      • detectChange

        public void detectChange()
        It's time for the plugin to detect changes. Throw an exception is the application must be reloaded.
      • detectClassesChange

        public boolean detectClassesChange()
        It's time for the plugin to detect changes. Throw an exception is the application must be reloaded.
        Returns:
        false si no change detected
      • onApplicationStart

        public void onApplicationStart()
        Called at application start (and at each reloading) Time to start stateful things.
      • afterApplicationStart

        public void afterApplicationStart()
        Called after the application start.
      • onApplicationStop

        public void onApplicationStop()
        Called at application stop (and before each reloading) Time to shutdown stateful things.
      • beforeInvocation

        public void beforeInvocation()
        Called before a Play! invocation. Time to prepare request specific things.
      • afterInvocation

        public void afterInvocation()
        Called after an invocation. (unless an exception has been thrown). Time to close request specific things.
      • onInvocationException

        public void onInvocationException​(java.lang.Throwable e)
        Called if an exception occurred during the invocation.
        Parameters:
        e - The caught exception.
      • invocationFinally

        public void invocationFinally()
        Called at the end of the invocation. (even if an exception occurred). Time to close request specific things.
      • beforeActionInvocation

        public void beforeActionInvocation​(java.lang.reflect.Method actionMethod)
        Called before an 'action' invocation, ie an HTTP request processing.
        Parameters:
        actionMethod - name of the method
      • onActionInvocationResult

        public void onActionInvocationResult​(Result result)
        Called when the action method has thrown a result.
        Parameters:
        result - The result object for the request.
      • onInvocationSuccess

        public void onInvocationSuccess()
      • onRequestRouting

        public void onRequestRouting​(Router.Route route)
        Called when the request has been routed.
        Parameters:
        route - The route selected.
      • afterActionInvocation

        public void afterActionInvocation()
        Called at the end of the action invocation.
      • onActionInvocationFinally

        public void onActionInvocationFinally()
        Called at the end of the action invocation (either in case of success or any failure).
      • onConfigurationRead

        public void onConfigurationRead()
        Called when the application.conf has been read.
      • onRoutesLoaded

        public void onRoutesLoaded()
        Called after routes loading.
      • onEvent

        public void onEvent​(java.lang.String message,
                            java.lang.Object context)
        Event may be sent by plugins or other components
        Parameters:
        message - convention: pluginClassShortName.message
        context - depends on the plugin
      • addTemplateExtensions

        public java.util.List<java.lang.String> addTemplateExtensions()
        Returns:
        List of the template extension
      • addMimeTypes

        public java.util.Map<java.lang.String,​java.lang.String> addMimeTypes()
        Override to provide additional mime types from your plugin. These mimetypes get priority over the default framework mimetypes but not over the application's configuration.
        Returns:
        a Map from extensions (without dot) to mimetypes
      • compileAll

        @Deprecated
        public void compileAll​(java.util.List<ApplicationClasses.ApplicationClass> classes)
        Deprecated.
        Let a chance to the plugin to compile it owns classes. Must be added to the mutable list.
        Parameters:
        classes - list of class to compile
      • routeRequest

        public void routeRequest​(Http.Request request)
        Let some plugins route themself
        Parameters:
        request - the current request
      • modelFactory

        public Model.Factory modelFactory​(java.lang.Class<? extends Model> modelClass)
        Parameters:
        modelClass - class of the model
        Returns:
        the Model factory
      • afterFixtureLoad

        public void afterFixtureLoad()
      • postEvent

        public static void postEvent​(java.lang.String message,
                                     java.lang.Object context)
        Inter-plugin communication.
        Parameters:
        message - the message to post
        context - an object
      • onApplicationReady

        public void onApplicationReady()
      • compareTo

        public int compareTo​(PlayPlugin o)
        Specified by:
        compareTo in interface java.lang.Comparable<PlayPlugin>
      • overrideTemplateSource

        public java.lang.String overrideTemplateSource​(BaseTemplate template,
                                                       java.lang.String source)
      • willBeValidated

        public java.lang.Object willBeValidated​(java.lang.Object value)
      • getUnitTests

        public java.util.Collection<java.lang.Class> getUnitTests()
        Implement to add some classes that should be considered unit tests but do not extend Assert to tests that can be executed by test runner (will be visible in test UI).

        Note:You probably will also need to override runTest(java.lang.Class) method to handle unsupported tests execution properly.

        Keep in mind that this method can only add tests to currently loaded ones. You cannot disable tests this way. You should also make sure you do not duplicate already loaded tests.

        Returns:
        list of plugin supported unit test classes (empty list in default implementation)
      • getFunctionalTests

        public java.util.Collection<java.lang.Class> getFunctionalTests()
        Implement to add some classes that should be considered functional tests but do not extend FunctionalTest to tests that can be executed by test runner (will be visible in test UI).

        Note:You probably will also need to override runTest(java.lang.Class) method to handle unsupported tests execution properly.

        Keep in mind that this method can only add tests to currently loaded ones. You cannot disable tests this way. You should also make sure you do not duplicate already loaded tests.

        Returns:
        list of plugin supported functional test classes (empty list in default implementation)
      • hasFilter

        public final boolean hasFilter()
      • getFilter

        public PlayPlugin.Filter getFilter()
        Return the filter implementation for this plugin.
        Returns:
        filter object of this plugin