Class ApplicationInstance

  • Direct Known Subclasses:
    AppletInstance

    public class ApplicationInstance
    extends java.lang.Object
    Represents a running instance of an application described in a JNLPFile. This class provides a way to track the application's resources and destroy the application.
    Version:
    $Revision: 1.15 $
    • Field Detail

      • LOG

        private static final Logger LOG
      • DEPLOYMENT_SYSPROP

        private static final java.lang.String DEPLOYMENT_SYSPROP
        See Also:
        Constant Field Values
      • DEPLOYMENT_SYSPROP_VALUE

        private static final java.lang.String DEPLOYMENT_SYSPROP_VALUE
        See Also:
        Constant Field Values
      • BLACKLIST_FOR_JNLP_PROPERTIES

        public static final java.lang.String BLACKLIST_FOR_JNLP_PROPERTIES
        See Also:
        Constant Field Values
      • BLACKLISTED_PROPERTIES_SEPARATOR

        public static final java.lang.String BLACKLISTED_PROPERTIES_SEPARATOR
        See Also:
        Constant Field Values
      • file

        private final JNLPFile file
        the file
      • group

        private final java.lang.ThreadGroup group
        the thread group
      • stopped

        private boolean stopped
        whether the application has stopped running
      • weakWindows

        private final WeakList<java.awt.Window> weakWindows
        weak list of windows opened by the application
      • listeners

        private final javax.swing.event.EventListenerList listeners
        list of application listeners
      • isSigned

        private boolean isSigned
        whether or not this application is signed
    • Constructor Detail

      • ApplicationInstance

        public ApplicationInstance​(JNLPFile file,
                                   java.lang.ThreadGroup group,
                                   JNLPClassLoader loader)
        Create an application instance for the file. This should be done in the appropriate ThreadGroup only.
        Parameters:
        file - jnlpfile for which the instance do exists
        group - thread group to which it belongs
        loader - loader for this application
    • Method Detail

      • getBlackListedJnlpProperties

        public static java.util.Set<java.lang.String> getBlackListedJnlpProperties()
      • fireDestroyed

        private void fireDestroyed()
        Notify listeners that the application has been terminated.
      • initialize

        public void initialize()
        Initialize the application's environment (installs environment variables, etc).
      • finalize

        public void finalize()
        Releases the application's resources before it is collected. Only collectable if classloader and thread group are also collectable so basically is almost never called (an application would have to close its windows and exit its threads but not call JNLPRuntime.exit).
        Overrides:
        finalize in class java.lang.Object
      • installEnvironment

        private void installEnvironment()
        Install the environment variables.
      • setSystemPropertiesFromJnlp

        private void setSystemPropertiesFromJnlp()
      • setSystemProperty

        private void setSystemProperty​(PropertyDesc propDesc)
      • getJNLPFile

        public JNLPFile getJNLPFile()
        Returns the jnlpfile on which is this application based
        Returns:
        JNLP file for this task.
      • getTitle

        public java.lang.String getTitle()
        Returns the application title.
        Returns:
        the title of this application
      • isRunning

        public boolean isRunning()
        Returns whether the application is running.
        Returns:
        state of application
      • destroy

        public void destroy()
        Stop the application and destroy its resources.
      • getThreadGroup

        public java.lang.ThreadGroup getThreadGroup()
                                             throws java.lang.IllegalStateException
        Returns the thread group.
        Returns:
        thread group of this application, unless it is stopped
        Throws:
        java.lang.IllegalStateException - if the app is not running
      • getClassLoader

        public JNLPClassLoader getClassLoader()
                                       throws java.lang.IllegalStateException
        Returns the classloader.
        Returns:
        the classloader of this application, unless it is stopped
        Throws:
        java.lang.IllegalStateException - if the app is not running
      • getMainClassName

        public java.lang.String getMainClassName()
                                          throws java.io.IOException
        Throws:
        java.io.IOException
      • addWindow

        void addWindow​(java.awt.Window window)
        Adds a window that this application opened. When the application is disposed, these windows will also be disposed.
        Parameters:
        window - to be added
      • isSigned

        public boolean isSigned()
        Returns:
        whether or not this application is signed.
      • collectPropertiesFromJnlpHierarchy

        private java.util.List<PropertyDesc> collectPropertiesFromJnlpHierarchy​(java.util.List<PropertyDesc> props,
                                                                                JNLPFile jnlpFile)
        Collects properties from the full hierarchy of JNLP files
        Parameters:
        props - a list of all properties collected so far
        jnlpFile - the current tip of the jnlp hierarchy
        Returns:
        a list of properties collected from the full hierarchy of JNLP files