Class ApplicationInstance

java.lang.Object
net.sourceforge.jnlp.runtime.ApplicationInstance
Direct Known Subclasses:
AppletInstance

public class ApplicationInstance extends 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 Details

    • LOG

      private static final Logger LOG
    • DEPLOYMENT_SYSPROP

      private static final String DEPLOYMENT_SYSPROP
      See Also:
    • DEPLOYMENT_SYSPROP_VALUE

      private static final String DEPLOYMENT_SYSPROP_VALUE
      See Also:
    • BLACKLIST_FOR_JNLP_PROPERTIES

      public static final String BLACKLIST_FOR_JNLP_PROPERTIES
      See Also:
    • BLACKLISTED_PROPERTIES_SEPARATOR

      public static final String BLACKLISTED_PROPERTIES_SEPARATOR
      See Also:
    • file

      private final JNLPFile file
      the file
    • group

      private final ThreadGroup group
      the thread group
    • loader

      private final JNLPClassLoader loader
      the classloader
    • stopped

      private boolean stopped
      whether the application has stopped running
    • weakWindows

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

      private final EventListenerList listeners
      list of application listeners
    • isSigned

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

    • ApplicationInstance

      public ApplicationInstance(JNLPFile file, 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 Details

    • getBlackListedJnlpProperties

      public static Set<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 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 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 ThreadGroup getThreadGroup() throws IllegalStateException
      Returns the thread group.
      Returns:
      thread group of this application, unless it is stopped
      Throws:
      IllegalStateException - if the app is not running
    • getClassLoader

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

      public String getMainClassName() throws IOException
      Throws:
      IOException
    • addWindow

      void addWindow(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 List<PropertyDesc> collectPropertiesFromJnlpHierarchy(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