Class ApplicationBean

  • All Implemented Interfaces:
    java.io.Serializable

    public class ApplicationBean
    extends java.lang.Object
    implements java.io.Serializable
    Application bean that provides a handle to the scripting environment to application specific functionality.
    See Also:
    Serialized Form
    • Constructor Summary

      Constructors 
      Constructor Description
      ApplicationBean​(Application app)
      Creates a new ApplicationBean object.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addCronJob​(java.lang.String functionName)
      Add a cron job that will run once a minute
      void addCronJob​(java.lang.String functionName, java.lang.String year, java.lang.String month, java.lang.String day, java.lang.String weekday, java.lang.String hour, java.lang.String minute)
      Add a cron job that will run at the specified time intervals
      void addRepository​(java.lang.Object obj)
      Add a repository to the app's repository list.
      void clearCache()
      Clear the application cache.
      int countSessions()
      Return the number of currently active sessions
      SessionBean createSession​(java.lang.String sessionID)
      Create a new session with the given session id
      void debug​(java.lang.Object msg)
      Log a DEBUG message to the app log if debug is set to true in app.properties.
      void debug​(java.lang.String logname, java.lang.Object msg)
      Log a DEBUG message to the log defined by logname if debug is set to true in app.properties.
      Application get__app__()  
      int getActiveThreads()
      Get the number of currently active request threads
      INode[] getActiveUsers()
      Get an array of currently active registered users
      java.lang.String getAppDir()
      Return the absolute application directory (appdir property in apps.properties file)
      java.util.Map getAppsProperties()
      Get a wrapper around the app's apps.properties
      int getCacheusage()
      Returns the number of elements in the NodeManager's cache
      java.lang.String getCharset()
      Return the app's default charset/encoding.
      java.lang.ClassLoader getClassLoader()
      Get the app's classloader
      java.util.Map getCronJobs()
      Returns an read-only map of the custom cron jobs registered with the app
      INode getData()
      Returns the app's data node used to share data between the app's evaluators
      java.util.Map getDbProperties()
      Get a wrapper around the app's db properties
      DbSource getDbSource​(java.lang.String name)
      Return a DbSource object for a given name.
      java.lang.String getDir()
      Returns the absolute path of the app dir.
      long getErrorCount()  
      int getFreeThreads()
      Get the number of currently available threads/request evaluators
      java.lang.String[] getGlobalMacroPath()
      Get the path for global macro resolution
      org.apache.commons.logging.Log getLogger()
      Get the app's event logger.
      org.apache.commons.logging.Log getLogger​(java.lang.String logname)
      Get the app logger.
      int getMaxThreads()
      Get the maximal thread number for this application
      java.util.Map getModules()
      Returns the app's modules map used to register application modules
      java.lang.String getName()  
      java.util.Map getProperties()
      Get a wrapper around the app's properties
      Prototype getPrototype​(java.lang.String name)
      Get a prototype by name.
      Prototype[] getPrototypes()
      Get an array of this app's prototypes
      INode[] getRegisteredUsers()
      Get an array of all registered users
      java.lang.Object[] getRepositories()
      Returns the app's repository list.
      long getRequestCount()  
      java.lang.String getServerDir()
      Return the absolute server directory
      SessionBean getSession​(java.lang.String sessionID)
      Get a session object for the specified session id
      SessionBean[] getSessions()
      Get an array of all active sessions
      SessionBean[] getSessionsForUser​(INode usernode)
      Get an array of all currently active sessions for a given user node
      SessionBean[] getSessionsForUser​(java.lang.String username)
      Get an array of all currently active sessions for a given user name
      Skin getSkin​(java.lang.String protoname, java.lang.String skinname, java.lang.Object[] skinpath)
      Return a skin for a given object.
      java.util.Map getSkinfiles()
      Return a map of skin resources
      java.util.Map getSkinfilesInPath​(java.lang.Object[] skinpath)
      Return a map of skin resources including the app-specific skinpath
      java.util.Date getUpSince()  
      INode getUser​(java.lang.String username)
      Get a user object with the given name
      long getXmlrpcCount()  
      java.lang.Object invoke​(java.lang.Object thisObject, java.lang.Object function, java.lang.Object[] args)
      Trigger a synchronous Helma invocation with a default timeout of 30 seconds.
      java.lang.Object invoke​(java.lang.Object thisObject, java.lang.Object function, java.lang.Object[] args, long timeout)
      Trigger a synchronous Helma invocation.
      FutureResult invokeAsync​(java.lang.Object thisObject, java.lang.Object function, java.lang.Object[] args)
      Trigger an asynchronous Helma invocation.
      FutureResult invokeAsync​(java.lang.Object thisObject, java.lang.Object function, java.lang.Object[] args, long timeout)
      Trigger an asynchronous Helma invocation.
      void log​(java.lang.Object msg)
      Log a INFO message to the app log.
      void log​(java.lang.String logname, java.lang.Object msg)
      Log a INFO message to the log defined by logname.
      INode registerUser​(java.lang.String username, java.lang.String password)
      Register a user with the given name and password using the database mapping of the User prototype
      void removeCronJob​(java.lang.String functionName)
      Unregister a previously registered cron job
      void setGlobalMacroPath​(java.lang.String[] path)
      Set the path for global macro resolution
      void setMaxThreads​(int n)
      Set the maximal thread number for this application
      java.lang.String toString()
      Return a string presentation of this AppBean
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • ApplicationBean

        public ApplicationBean​(Application app)
        Creates a new ApplicationBean object.
        Parameters:
        app - ...
    • Method Detail

      • clearCache

        public void clearCache()
        Clear the application cache.
      • getLogger

        public org.apache.commons.logging.Log getLogger()
        Get the app's event logger. This is a Log with the category helma.[appname].event.
        Returns:
        the app logger.
      • getLogger

        public org.apache.commons.logging.Log getLogger​(java.lang.String logname)
        Get the app logger. This is a commons-logging Log with the category logname.
        Returns:
        a logger for the given log name.
      • log

        public void log​(java.lang.Object msg)
        Log a INFO message to the app log.
        Parameters:
        msg - the log message
      • log

        public void log​(java.lang.String logname,
                        java.lang.Object msg)
        Log a INFO message to the log defined by logname.
        Parameters:
        logname - the name (category) of the log
        msg - the log message
      • debug

        public void debug​(java.lang.Object msg)
        Log a DEBUG message to the app log if debug is set to true in app.properties.
        Parameters:
        msg - the log message
      • debug

        public void debug​(java.lang.String logname,
                          java.lang.Object msg)
        Log a DEBUG message to the log defined by logname if debug is set to true in app.properties.
        Parameters:
        logname - the name (category) of the log
        msg - the log message
      • getRepositories

        public java.lang.Object[] getRepositories()
        Returns the app's repository list.
        Returns:
        the an array containing this app's repositories
      • addRepository

        public void addRepository​(java.lang.Object obj)
        Add a repository to the app's repository list. The .zip extension is automatically added, if the original library path does not point to an existing file or directory.
        Parameters:
        obj - the repository, relative or absolute path to the library.
      • getClassLoader

        public java.lang.ClassLoader getClassLoader()
        Get the app's classloader
        Returns:
        the app's classloader
      • countSessions

        public int countSessions()
        Return the number of currently active sessions
        Returns:
        the current number of active sessions
      • getSession

        public SessionBean getSession​(java.lang.String sessionID)
        Get a session object for the specified session id
        Parameters:
        sessionID - the session id
        Returns:
        the session belonging to the session id, or null
      • createSession

        public SessionBean createSession​(java.lang.String sessionID)
        Create a new session with the given session id
        Parameters:
        sessionID - the session id
        Returns:
        the newly created session
      • getSessions

        public SessionBean[] getSessions()
        Get an array of all active sessions
        Returns:
        an array of session beans
      • registerUser

        public INode registerUser​(java.lang.String username,
                                  java.lang.String password)
        Register a user with the given name and password using the database mapping of the User prototype
        Parameters:
        username - the user name
        password - the user password
        Returns:
        the newly registered user, or null if we failed
      • getUser

        public INode getUser​(java.lang.String username)
        Get a user object with the given name
        Parameters:
        username - the user name
        Returns:
        the user object, or null
      • getActiveUsers

        public INode[] getActiveUsers()
        Get an array of currently active registered users
        Returns:
        an array of user nodes
      • getRegisteredUsers

        public INode[] getRegisteredUsers()
        Get an array of all registered users
        Returns:
        an array containing all registered users
      • getSessionsForUser

        public SessionBean[] getSessionsForUser​(INode usernode)
        Get an array of all currently active sessions for a given user node
        Parameters:
        usernode - the user node
        Returns:
        an array of sessions for the given user
      • getSessionsForUser

        public SessionBean[] getSessionsForUser​(java.lang.String username)
        Get an array of all currently active sessions for a given user name
        Parameters:
        username - the user node
        Returns:
        an array of sessions for the given user
      • addCronJob

        public void addCronJob​(java.lang.String functionName)
        Add a cron job that will run once a minute
        Parameters:
        functionName - the function name
      • addCronJob

        public void addCronJob​(java.lang.String functionName,
                               java.lang.String year,
                               java.lang.String month,
                               java.lang.String day,
                               java.lang.String weekday,
                               java.lang.String hour,
                               java.lang.String minute)
        Add a cron job that will run at the specified time intervals
        Parameters:
        functionName - the function name
        year - comma separated list of years, or *
        month - comma separated list of months, or *
        day - comma separated list of days, or *
        weekday - comma separated list of weekdays, or *
        hour - comma separated list of hours, or *
        minute - comma separated list of minutes, or *
      • removeCronJob

        public void removeCronJob​(java.lang.String functionName)
        Unregister a previously registered cron job
        Parameters:
        functionName - the function name
      • getCronJobs

        public java.util.Map getCronJobs()
        Returns an read-only map of the custom cron jobs registered with the app
        Returns:
        a map of cron jobs
      • getCacheusage

        public int getCacheusage()
        Returns the number of elements in the NodeManager's cache
      • getData

        public INode getData()
        Returns the app's data node used to share data between the app's evaluators
        Returns:
        the app.data node
      • getModules

        public java.util.Map getModules()
        Returns the app's modules map used to register application modules
        Returns:
        the module map
      • getDir

        public java.lang.String getDir()
        Returns the absolute path of the app dir. When using repositories this equals the first file based repository.
        Returns:
        the app dir
      • getName

        public java.lang.String getName()
        Returns:
        the app name
      • getUpSince

        public java.util.Date getUpSince()
        Returns:
        the application start time
      • getRequestCount

        public long getRequestCount()
        Returns:
        the number of requests processed by this app
      • getXmlrpcCount

        public long getXmlrpcCount()
        Returns:
        the number of XML-RPC requests processed
      • getErrorCount

        public long getErrorCount()
        Returns:
        the number of errors encountered
      • get__app__

        public Application get__app__()
        Returns:
        the wrapped helma.framework.core.Application object
      • getProperties

        public java.util.Map getProperties()
        Get a wrapper around the app's properties
        Returns:
        a readonly wrapper around the application's app properties
      • getDbProperties

        public java.util.Map getDbProperties()
        Get a wrapper around the app's db properties
        Returns:
        a readonly wrapper around the application's db properties
      • getDbSource

        public DbSource getDbSource​(java.lang.String name)
        Return a DbSource object for a given name.
      • getAppsProperties

        public java.util.Map getAppsProperties()
        Get a wrapper around the app's apps.properties
        Returns:
        a readonly wrapper around the application's apps.properties
      • getPrototypes

        public Prototype[] getPrototypes()
        Get an array of this app's prototypes
        Returns:
        an array containing the app's prototypes
      • getPrototype

        public Prototype getPrototype​(java.lang.String name)
        Get a prototype by name.
        Parameters:
        name - the prototype name
        Returns:
        the prototype
      • getFreeThreads

        public int getFreeThreads()
        Get the number of currently available threads/request evaluators
        Returns:
        the currently available threads
      • getActiveThreads

        public int getActiveThreads()
        Get the number of currently active request threads
        Returns:
        the number of currently active threads
      • getMaxThreads

        public int getMaxThreads()
        Get the maximal thread number for this application
        Returns:
        the maximal number of threads/request evaluators
      • setMaxThreads

        public void setMaxThreads​(int n)
        Set the maximal thread number for this application
        Parameters:
        n - the maximal number of threads/request evaluators
      • getSkin

        public Skin getSkin​(java.lang.String protoname,
                            java.lang.String skinname,
                            java.lang.Object[] skinpath)
        Return a skin for a given object. The skin is found by determining the prototype to use for the object, then looking up the skin for the prototype.
      • getSkinfiles

        public java.util.Map getSkinfiles()
        Return a map of skin resources
        Returns:
        a map containing the skin resources
      • getSkinfilesInPath

        public java.util.Map getSkinfilesInPath​(java.lang.Object[] skinpath)
        Return a map of skin resources including the app-specific skinpath
        Parameters:
        skinpath - an array of directory paths or HopObjects to search for skins
        Returns:
        a map containing the skin resources
      • getAppDir

        public java.lang.String getAppDir()
        Return the absolute application directory (appdir property in apps.properties file)
        Returns:
        the app directory as absolute path
      • getServerDir

        public java.lang.String getServerDir()
        Return the absolute server directory
        Returns:
        the server directory as absolute path
      • getCharset

        public java.lang.String getCharset()
        Return the app's default charset/encoding.
        Returns:
        the app's charset
      • setGlobalMacroPath

        public void setGlobalMacroPath​(java.lang.String[] path)
        Set the path for global macro resolution
        Parameters:
        path - an array of global namespaces, or null
      • getGlobalMacroPath

        public java.lang.String[] getGlobalMacroPath()
        Get the path for global macro resolution
        Returns:
        an array of global namespaces, or null
      • invoke

        public java.lang.Object invoke​(java.lang.Object thisObject,
                                       java.lang.Object function,
                                       java.lang.Object[] args)
                                throws java.lang.Exception
        Trigger a synchronous Helma invocation with a default timeout of 30 seconds.
        Parameters:
        thisObject - the object to invoke the function on, or null for global invokation
        function - the function or function name to invoke
        args - an array of arguments
        Returns:
        the value returned by the function
        Throws:
        java.lang.Exception - exception thrown by the function
      • invoke

        public java.lang.Object invoke​(java.lang.Object thisObject,
                                       java.lang.Object function,
                                       java.lang.Object[] args,
                                       long timeout)
                                throws java.lang.Exception
        Trigger a synchronous Helma invocation.
        Parameters:
        thisObject - the object to invoke the function on, or null for global invokation
        function - the function or function name to invoke
        args - an array of arguments
        timeout - the timeout in milliseconds. After waiting this long, we will try to interrupt the invocation
        Returns:
        the value returned by the function
        Throws:
        java.lang.Exception - exception thrown by the function
      • invokeAsync

        public FutureResult invokeAsync​(java.lang.Object thisObject,
                                        java.lang.Object function,
                                        java.lang.Object[] args)
        Trigger an asynchronous Helma invocation. This method returns immedately with an object that allows to track the result of the function invocation with the following properties:
        • running - true while the function is running, false afterwards
        • result - the value returned by the function, if any
        • exception - the exception thrown by the function, if any
        • waitForResult() - wait indefinitely until invocation terminates and return the result
        • waitForResult(t) - wait for the specified number of milliseconds for invocation to terminate and return the result
        Parameters:
        thisObject - the object to invoke the function on, or null for global invokation
        function - the function or function name to invoke
        args - an array of arguments this long, we will try to interrupt the invocation
        Returns:
        an object with the properties described above
      • invokeAsync

        public FutureResult invokeAsync​(java.lang.Object thisObject,
                                        java.lang.Object function,
                                        java.lang.Object[] args,
                                        long timeout)
        Trigger an asynchronous Helma invocation. This method returns immedately with an object that allows to track the result of the function invocation with the following methods and properties:
        • running - true while the function is running, false afterwards
        • result - the value returned by the function, if any
        • exception - the exception thrown by the function, if any
        • waitForResult() - wait indefinitely until invocation terminates and return the result
        • waitForResult(t) - wait for the specified number of milliseconds for invocation to terminate and return the result
        Parameters:
        thisObject - the object to invoke the function on, or null for global invokation
        function - the function or function name to invoke
        args - an array of arguments
        timeout - the timeout in milliseconds. After waiting this long, we will try to interrupt the invocation
        Returns:
        an object with the properties described above
      • toString

        public java.lang.String toString()
        Return a string presentation of this AppBean
        Overrides:
        toString in class java.lang.Object
        Returns:
        string description of this app bean object