Class JNLPFile

java.lang.Object
net.sourceforge.jnlp.JNLPFile
Direct Known Subclasses:
PluginBridge

public class JNLPFile extends Object

Provides methods to access the information in a Java Network Launching Protocol (JNLP) file. The Java Network Launching Protocol specifies in an XML file the information needed to load, cache, and run Java code over the network and in a secure environment.

This class represents the overall information about a JNLP file from the jnlp element. Other information is accessed through objects that represent the elements of a JNLP file (information, resources, application-desc, etc). References to these objects are obtained by calling the getInformation, getResources, getSecurity, etc methods.

  • Field Details

    • sourceLocation

      protected URL sourceLocation
      the location this JNLP file was created from
    • fileLocation

      protected URL fileLocation
      the network location of this JNLP file
    • parserSettings

      protected ParserSettings parserSettings
      the ParserSettings which were used to parse this file
    • uniqueKey

      protected String uniqueKey
      A key that uniquely identifies connected instances (main jnlp+ext)
    • codeBase

      protected URL codeBase
      the URL used to resolve relative URLs in the file
    • fileVersion

      protected Version fileVersion
      file version
    • specVersion

      protected Version specVersion
      spec version
    • info

      protected List<InformationDesc> info
      information
    • update

      protected UpdateDesc update
    • resources

      protected List<ResourcesDesc> resources
      resources
    • sharedResources

      protected ResourcesDesc sharedResources
      additional resources not in JNLP file (from command line)
    • launchType

      protected LaunchDesc launchType
      the application description
    • component

      protected ComponentDesc component
      the component description
    • security

      protected SecurityDesc security
      the security descriptor
    • defaultLocale

      protected Locale defaultLocale
      the default JVM locale
    • defaultOS

      protected String defaultOS
      the default OS
    • defaultArch

      protected String defaultArch
      the default arch
    • TITLE_NOT_FOUND

      public static final String TITLE_NOT_FOUND
      See Also:
  • Constructor Details

    • JNLPFile

      protected JNLPFile()
      Empty stub, allowing child classes to override the constructor
    • JNLPFile

      public JNLPFile(URL location) throws IOException, ParseException
      Create a JNLPFile from a URL.
      Parameters:
      location - the location of the JNLP file
      Throws:
      IOException - if an IO exception occurred
      ParseException - if the JNLP file was invalid
    • JNLPFile

      public JNLPFile(URL location, ParserSettings settings) throws IOException, ParseException
      Create a JNLPFile from a URL checking for updates using the default policy.
      Parameters:
      location - the location of the JNLP file
      settings - the parser settings to use while parsing the file
      Throws:
      IOException - if an IO exception occurred
      ParseException - if the JNLP file was invalid
    • JNLPFile

      public JNLPFile(URL location, Version version, ParserSettings settings) throws IOException, ParseException
      Create a JNLPFile from a URL and a Version checking for updates using the default policy.
      Parameters:
      location - the location of the JNLP file
      version - the version of the JNLP file
      settings - the parser settings to use while parsing the file
      Throws:
      IOException - if an IO exception occurred
      ParseException - if the JNLP file was invalid
    • JNLPFile

      public JNLPFile(URL location, Version version, ParserSettings settings, UpdatePolicy policy) throws IOException, ParseException
      Create a JNLPFile from a URL and a version, checking for updates using the specified policy.
      Parameters:
      location - the location of the JNLP file
      version - the version of the JNLP file
      settings - the ParserSettings to use when parsing the location
      policy - the update policy
      Throws:
      IOException - if an IO exception occurred
      ParseException - if the JNLP file was invalid
    • JNLPFile

      protected JNLPFile(URL location, Version version, ParserSettings settings, UpdatePolicy policy, URL forceCodebase) throws IOException, ParseException
      Create a JNLPFile from a URL and a version, checking for updates using the specified policy.
      Parameters:
      location - the location of the JNLP file
      version - the version of the JNLP file
      settings - the parser settings to use while parsing the file
      policy - the update policy
      forceCodebase - codebase to use if not specified in JNLP file.
      Throws:
      IOException - if an IO exception occurred
      ParseException - if the JNLP file was invalid
    • JNLPFile

      public JNLPFile(URL location, String uniqueKey, Version version, ParserSettings settings, UpdatePolicy policy) throws IOException, ParseException
      Create a JNLPFile from a URL, parent URLm a version and checking for updates using the specified policy.
      Parameters:
      location - the location of the JNLP file
      uniqueKey - A string that uniquely identifies connected instances
      version - the version of the JNLP file
      settings - the parser settings to use while parsing the file
      policy - the update policy
      Throws:
      IOException - if an IO exception occurred
      ParseException - if the JNLP file was invalid
    • JNLPFile

      public JNLPFile(InputStream input, ParserSettings settings) throws ParseException
      Create a JNLPFile from an input stream.
      Parameters:
      input - input stream from which create jnlp file
      settings - settings of parser
      Throws:
      ParseException - if the JNLP file was invalid
    • JNLPFile

      public JNLPFile(InputStream input, URL codebase, ParserSettings settings) throws ParseException
      Create a JNLPFile from an input stream.
      Parameters:
      input - input stream of JNLP file.
      codebase - codebase to use if not specified in JNLP file..
      settings - the ParserSettings to use when parsing
      Throws:
      ParseException - if the JNLP file was invalid
  • Method Details

    • openURL

      public static InputStream openURL(URL location, Version version, UpdatePolicy policy) throws IOException
      Open the jnlp file URL from the cache if there, otherwise download to the cache. Unless file is find in cache, this method blocks until it is downloaded. This is the best way in itw how to download and cache file
      Parameters:
      location - of resource to open
      version - of resource
      policy - update policy of resource
      Returns:
      opened streamfrom given url
      Throws:
      IOException - if something goes wrong
    • getTitle

      public String getTitle()
      Returns:
      the JNLP file's best localized title. This method returns the same value as InformationDesc.getTitle(). Since jdk7 u45, also manifest title, and mainclass are taken to consideration; See PluginBridge
    • getTitle

      public String getTitle(boolean kill) throws MissingTitleException
      Throws:
      MissingTitleException
    • getTitleFromJnlp

      public String getTitleFromJnlp()
      Returns:
      the JNLP file's best localized title. This method returns the same value as InformationDesc.getTitle().
    • getTitleFromManifest

      public String getTitleFromManifest()
    • getVendor

      public String getVendor()
      Returns:
      the JNLP file's best localized vendor. This method returns the same value as InformationDesc.getVendor().
    • getVendor

      public String getVendor(boolean kill) throws MissingVendorException
      Throws:
      MissingVendorException
    • getSourceLocation

      public URL getSourceLocation()
      Returns:
      the JNLP file's network location as specified in the JNLP file.
    • getFileLocation

      public URL getFileLocation()
      Returns:
      the location of the file parsed to create the JNLP file, or null if it was not created from a URL.
    • getUniqueKey

      public String getUniqueKey()
      Returns:
      the location of the parent file if it exists, null otherwise
    • getParserSettings

      public ParserSettings getParserSettings()
      Returns:
      the ParserSettings that was used to parse this file
    • getFileVersion

      public Version getFileVersion()
      Returns:
      the JNLP file's version.
    • getSpecVersion

      public Version getSpecVersion()
      Returns:
      the specification version required by the file.
    • getCodeBase

      public URL getCodeBase()
      Returns:
      the codebase URL for the JNLP file.
    • getNotNullProbalbeCodeBase

      public URL getNotNullProbalbeCodeBase()
      It is not recommended to use this method for internals of itw - use normal getCodeBase rather, as null is expected always except toString calls. If you are not sure, use getCodeBase and chek null as you need. See that this method is used mostly for xtendedAppletSecuriyty dialogs.
      Returns:
      the codebase URL for the JNLP file or url of location of calling file (jnlp, hreffed jnlp, or directly html)
    • getInformation

      public InformationDesc getInformation()
      Returns:
      the information section of the JNLP file as viewed through the default locale.
    • getInformation

      public InformationDesc getInformation(Locale locale)
      Parameters:
      locale - preferred locale of informations
      Returns:
      the information section of the JNLP file as viewed through the specified locale.
    • getUpdate

      public UpdateDesc getUpdate()
      Returns:
      the update section of the JNLP file.
    • getSecurity

      public SecurityDesc getSecurity()
      Returns:
      the security section of the JNLP file.
    • getRequestedPermissionLevel

      public SecurityDesc.RequestedPermissionLevel getRequestedPermissionLevel()
    • getResources

      public ResourcesDesc getResources()
      Returns:
      the resources section of the JNLP file as viewed through the default locale and the os.name and os.arch properties.
    • getResources

      public ResourcesDesc getResources(Locale locale, String os, String arch)
      Parameters:
      locale - preferred locale of resource
      os - preferred os of resource
      arch - preferred arch of resource
      Returns:
      the resources section of the JNLP file for the specified locale, os, and arch.
    • getResourcesDescs

      public ResourcesDesc[] getResourcesDescs()
      Returns:
      the resources section of the JNLP file as viewed through the default locale and the os.name and os.arch properties. XXX: Before overriding this method or changing its implementation, read the comment in JNLPFile.getDownloadOptionsForJar(JARDesc).
    • getResourcesDescs

      public ResourcesDesc[] getResourcesDescs(Locale locale, String os, String arch)
      Parameters:
      locale - preferred locale of resource
      os - preferred os of resource
      arch - preferred arch of resource
      Returns:
      the resources section of the JNLP file for the specified locale, os, and arch.
    • getLaunchInfo

      public LaunchDesc getLaunchInfo()
      Returns:
      an object of one of the following types: AppletDesc, ApplicationDesc and InstallerDesc
    • getApplet

      public AppletDesc getApplet()
      Returns:
      the launch information for an applet.
      Throws:
      UnsupportedOperationException - if there is no applet information
    • getApplication

      public ApplicationDesc getApplication()
      Returns:
      the launch information for an application.
      Throws:
      UnsupportedOperationException - if there is no application information
    • getComponent

      public ComponentDesc getComponent()
      Returns:
      the launch information for a component.
      Throws:
      UnsupportedOperationException - if there is no component information
    • getInstaller

      public InstallerDesc getInstaller()
      Returns:
      the launch information for an installer.
      Throws:
      UnsupportedOperationException - if there is no installer information
    • isApplet

      public boolean isApplet()
      Returns:
      whether the lauch descriptor describes an Applet.
    • isApplication

      public boolean isApplication()
      Returns:
      whether the lauch descriptor describes an Application.
    • isComponent

      public boolean isComponent()
      Returns:
      whether the lauch descriptor describes a Component.
    • isInstaller

      public boolean isInstaller()
      Returns:
      whether the lauch descriptor describes an Installer.
    • setDefaults

      public void setDefaults(String os, String arch, Locale locale)
      Sets the default view of the JNLP file returned by getInformation, getResources, etc. If unset, the defaults are the properties os.name, os.arch, and the locale returned by Locale.getDefault().
      Parameters:
      os - preferred os of resource
      arch - preferred arch of resource
      locale - preferred locale of resource
    • localeMatches

      public boolean localeMatches(Locale requested, Locale[] available, net.sourceforge.jnlp.JNLPFile.Match matchLevel)
      Returns whether a locale is matched by one of more other locales. Only the non-empty language, country, and variant codes are compared; for example, a requested locale of Locale("","","") would always return true.
      Parameters:
      requested - the requested locale
      available - the available locales
      matchLevel - the depth with which to match locales.
      Returns:
      true if requested matches any of available, or if available is empty or null.
      See Also:
    • needsNewVM

      public boolean needsNewVM()
      Returns:
      true if the JNLP file specifies things that can only be applied on a new vm (eg: different max heap memory)
    • getNewVMArgs

      public List<String> getNewVMArgs()
      Returns:
      a list of args to pass to the new JVM based on this JNLP file
    • getDownloadOptions

      public DownloadOptions getDownloadOptions()
      Returns:
      the download options to use for downloading jars listed in this jnlp file.
    • requiresSignedJNLPWarning

      public boolean requiresSignedJNLPWarning()
      Returns a boolean after determining if a signed JNLP warning should be displayed in the 'More Information' panel.
      Returns:
      true if a warning should be displayed; otherwise false
    • setSignedJNLPAsMissing

      public void setSignedJNLPAsMissing()
      Informs that a signed JNLP file is missing in the main jar
    • getManifestsAttributes

      public JNLPFile.ManifestsAttributes getManifestsAttributes()
    • createJnlpVendorValue

      public String createJnlpVendorValue()
    • createJnlpVendor

      public String createJnlpVendor()
    • createJnlpTitle

      public String createJnlpTitle()
    • createNameForDesktopFile

      public String createNameForDesktopFile()