net.sourceforge.jnlp

## Class JNLPFile

- java.lang.Object
- - net.sourceforge.jnlp.JNLPFile

- Direct Known Subclasses:
    PluginBridge

      public class JNLPFile
      extends java.lang.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 Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected java.net.URL` | `codeBase` the URL used to resolve relative URLs in the file
    `protected ComponentDesc` | `component` the component description
    `protected java.lang.String` | `defaultArch` the default arch
    `protected java.util.Locale` | `defaultLocale` the default JVM locale
    `protected java.lang.String` | `defaultOS` the default OS
    `protected java.net.URL` | `fileLocation` the network location of this JNLP file
    `protected Version` | `fileVersion` file version
    `protected java.util.List<InformationDesc>` | `info` information
    `protected LaunchDesc` | `launchType` the application description
    `protected java.util.List<ResourcesDesc>` | `resources` resources
    `protected SecurityDesc` | `security` the security descriptor
    `protected ResourcesDesc` | `sharedResources` additional resources not in JNLP file (from command line)
    `protected java.net.URL` | `sourceLocation` the location this JNLP file was created from
    `protected Version` | `specVersion` spec version
    `protected java.lang.String` | `uniqueKey` A key that uniquely identifies connected instances (main jnlp+ext)
    `protected UpdateDesc` | `update`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `JNLPFile()` Empty stub, allowing child classes to override the constructor
    `` | `JNLPFile(java.io.InputStream input, boolean strict)` Create a JNLPFile from an input stream.
    `` | `JNLPFile(java.io.InputStream input, java.net.URL codebase, boolean strict)` Create a JNLPFile from an input stream.
    `` | `JNLPFile(java.net.URL location)` Create a JNLPFile from a URL.
    `` | `JNLPFile(java.net.URL location, boolean strict)` Create a JNLPFile from a URL checking for updates using the default policy.
    `` | `JNLPFile(java.net.URL location, java.lang.String uniqueKey, Version version, boolean strict, UpdatePolicy policy)` Create a JNLPFile from a URL, parent URLm a version and checking for updates using the specified policy.
    `` | `JNLPFile(java.net.URL location, Version version, boolean strict)` Create a JNLPFile from a URL and a Version checking for updates using the default policy.
    `` | `JNLPFile(java.net.URL location, Version version, boolean strict, UpdatePolicy policy)` Create a JNLPFile from a URL and a version, checking for updates using the specified policy.
    `protected` | `JNLPFile(java.net.URL location, Version version, boolean strict, UpdatePolicy policy, java.net.URL forceCodebase)` Create a JNLPFile from a URL and a version, checking for updates using the specified policy.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `AppletDesc` | `getApplet()` Returns the launch information for an applet.
    `ApplicationDesc` | `getApplication()` Returns the launch information for an application.
    `java.net.URL` | `getCodeBase()` Returns the codebase URL for the JNLP file.
    `ComponentDesc` | `getComponent()` Returns the launch information for a component.
    `DownloadOptions` | `getDownloadOptionsForJar(JARDesc jar)` XXX: this method does a "==" comparison between the input JARDesc and jars it finds through getResourcesDescs().
    `java.net.URL` | `getFileLocation()` Returns the location of the file parsed to create the JNLP file, or null if it was not created from a URL.
    `Version` | `getFileVersion()` Returns the JNLP file's version.
    `InformationDesc` | `getInformation()` Returns the information section of the JNLP file as viewed through the default locale.
    `InformationDesc` | `getInformation(java.util.Locale locale)` Returns the information section of the JNLP file as viewed through the specified locale.
    `InstallerDesc` | `getInstaller()` Returns the launch information for an installer.
    `LaunchDesc` | `getLaunchInfo()` Returns an object of one of the following types: AppletDesc, ApplicationDesc and InstallerDesc
    `java.util.List<java.lang.String>` | `getNewVMArgs()`
    `ResourcesDesc` | `getResources()` Returns the resources section of the JNLP file as viewed through the default locale and the os.name and os.arch properties.
    `ResourcesDesc` | `getResources(java.util.Locale locale, java.lang.String os, java.lang.String arch)` Returns the resources section of the JNLP file for the specified locale, os, and arch.
    `ResourcesDesc[]` | `getResourcesDescs()` Returns the resources section of the JNLP file as viewed through the default locale and the os.name and os.arch properties.
    `ResourcesDesc[]` | `getResourcesDescs(java.util.Locale locale, java.lang.String os, java.lang.String arch)` Returns the resources section of the JNLP file for the specified locale, os, and arch.
    `SecurityDesc` | `getSecurity()` Returns the security section of the JNLP file.
    `java.net.URL` | `getSourceLocation()` Returns the JNLP file's network location as specified in the JNLP file.
    `Version` | `getSpecVersion()` Returns the specification version required by the file.
    `java.lang.String` | `getTitle()` Returns the JNLP file's best localized title.
    `java.lang.String` | `getUniqueKey()` Returns the location of the parent file if it exists, null otherwise
    `UpdateDesc` | `getUpdate()` Returns the update section of the JNLP file.
    `java.lang.String` | `getVendor()` Returns the JNLP file's best localized vendor.
    `boolean` | `isApplet()` Returns whether the lauch descriptor describes an Applet.
    `boolean` | `isApplication()` Returns whether the lauch descriptor describes an Application.
    `boolean` | `isComponent()` Returns whether the lauch descriptor describes a Component.
    `boolean` | `isInstaller()` Returns whether the lauch descriptor describes an Installer.
    `boolean` | `localeMatches(java.util.Locale requested, java.util.Locale[] available, net.sourceforge.jnlp.JNLPFile.Match matchLevel)` Returns whether a locale is matched by one of more other locales.
    `boolean` | `needsNewVM()`
    `boolean` | `requiresSignedJNLPWarning()` Returns a boolean after determining if a signed JNLP warning should be displayed in the 'More Information' panel.
    `void` | `setDefaults(java.lang.String os, java.lang.String arch, java.util.Locale locale)` Sets the default view of the JNLP file returned by getInformation, getResources, etc.
    `void` | `setSignedJNLPAsMissing()` Informs that a signed JNLP file is missing in the main jar

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### sourceLocation

          protected java.net.URL sourceLocation

      the location this JNLP file was created from

    - #### fileLocation

          protected java.net.URL fileLocation

      the network location of this JNLP file

    - #### uniqueKey

          protected java.lang.String uniqueKey

      A key that uniquely identifies connected instances (main jnlp+ext)

    - #### codeBase

          protected java.net.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 java.util.List<InformationDesc> info

      information

    - #### update

          protected UpdateDesc update

    - #### resources

          protected java.util.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 java.util.Locale defaultLocale

      the default JVM locale

    - #### defaultOS

          protected java.lang.String defaultOS

      the default OS

    - #### defaultArch

          protected java.lang.String defaultArch

      the default arch

  - ### Constructor Detail

    - #### JNLPFile

          protected JNLPFile()

      Empty stub, allowing child classes to override the constructor

    - #### JNLPFile

          public JNLPFile(java.net.URL location)
                   throws java.io.IOException,
                          ParseException

      Create a JNLPFile from a URL.
      Parameters:
        `location` - the location of the JNLP file
      Throws:
        `java.io.IOException` - if an IO exception occurred
        `ParseException` - if the JNLP file was invalid

    - #### JNLPFile

          public JNLPFile(java.net.URL location,
                  boolean strict)
                   throws java.io.IOException,
                          ParseException

      Create a JNLPFile from a URL checking for updates using the default policy.
      Parameters:
        `location` - the location of the JNLP file
        `strict` - whether to enforce the spec when
      Throws:
        `java.io.IOException` - if an IO exception occurred
        `ParseException` - if the JNLP file was invalid

    - #### JNLPFile

          public JNLPFile(java.net.URL location,
                  Version version,
                  boolean strict)
                   throws java.io.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
        `strict` - whether to enforce the spec when
      Throws:
        `java.io.IOException` - if an IO exception occurred
        `ParseException` - if the JNLP file was invalid

    - #### JNLPFile

          public JNLPFile(java.net.URL location,
                  Version version,
                  boolean strict,
                  UpdatePolicy policy)
                   throws java.io.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
        `strict` - whether to enforce the spec when
        `policy` - the update policy
      Throws:
        `java.io.IOException` - if an IO exception occurred
        `ParseException` - if the JNLP file was invalid

    - #### JNLPFile

          protected JNLPFile(java.net.URL location,
                  Version version,
                  boolean strict,
                  UpdatePolicy policy,
                  java.net.URL forceCodebase)
                      throws java.io.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
        `strict` - whether to enforce the spec when
        `policy` - the update policy
        `forceCodebase` - codebase to use if not specified in JNLP file.
      Throws:
        `java.io.IOException` - if an IO exception occurred
        `ParseException` - if the JNLP file was invalid

    - #### JNLPFile

          public JNLPFile(java.net.URL location,
                  java.lang.String uniqueKey,
                  Version version,
                  boolean strict,
                  UpdatePolicy policy)
                   throws java.io.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
        `strict` - whether to enforce the spec when
        `policy` - the update policy
      Throws:
        `java.io.IOException` - if an IO exception occurred
        `ParseException` - if the JNLP file was invalid

    - #### JNLPFile

          public JNLPFile(java.io.InputStream input,
                  boolean strict)
                   throws ParseException

      Create a JNLPFile from an input stream.
      Throws:
        `java.io.IOException` - if an IO exception occurred
        `ParseException` - if the JNLP file was invalid

    - #### JNLPFile

          public JNLPFile(java.io.InputStream input,
                  java.net.URL codebase,
                  boolean strict)
                   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..
        `strict` - whether to enforce the spec rules
      Throws:
        `java.io.IOException` - if an IO exception occurred
        `ParseException` - if the JNLP file was invalid

  - ### Method Detail

    - #### getTitle

          public java.lang.String getTitle()

      Returns the JNLP file's best localized title. This method returns the same value as InformationDesc.getTitle().

    - #### getVendor

          public java.lang.String getVendor()

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

    - #### getSourceLocation

          public java.net.URL getSourceLocation()

      Returns the JNLP file's network location as specified in the JNLP file.

    - #### getFileLocation

          public java.net.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 java.lang.String getUniqueKey()

      Returns the location of the parent file if it exists, null otherwise

    - #### getFileVersion

          public Version getFileVersion()

      Returns the JNLP file's version.

    - #### getSpecVersion

          public Version getSpecVersion()

      Returns the specification version required by the file.

    - #### getCodeBase

          public java.net.URL getCodeBase()

      Returns the codebase URL for the JNLP file.

    - #### getInformation

          public InformationDesc getInformation()

      Returns the information section of the JNLP file as viewed through the default locale.

    - #### getInformation

          public InformationDesc getInformation(java.util.Locale locale)

      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.

    - #### 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(java.util.Locale locale,
                                   java.lang.String os,
                                   java.lang.String arch)

      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(java.util.Locale locale,
                                          java.lang.String os,
                                          java.lang.String arch)

      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:
        `java.lang.UnsupportedOperationException` - if there is no applet information

    - #### getApplication

          public ApplicationDesc getApplication()

      Returns the launch information for an application.
      Throws:
        `java.lang.UnsupportedOperationException` - if there is no application information

    - #### getComponent

          public ComponentDesc getComponent()

      Returns the launch information for a component.
      Throws:
        `java.lang.UnsupportedOperationException` - if there is no component information

    - #### getInstaller

          public InstallerDesc getInstaller()

      Returns the launch information for an installer.
      Throws:
        `java.lang.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(java.lang.String os,
                         java.lang.String arch,
                         java.util.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().

    - #### localeMatches

          public boolean localeMatches(java.util.Locale requested,
                              java.util.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 local
        `available` - the available locales
        `precision` - the depth with which to match locales. 1 checks only language, 2 checks language and country, 3 checks language, country and variant for matches. Passing 0 will always return true.
      Returns:
        true if requested matches any of available, or if available is empty or null.

    - #### 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 java.util.List<java.lang.String> getNewVMArgs()

      Returns:
        a list of args to pass to the new JVM based on this JNLP file

    - #### getDownloadOptionsForJar

          public DownloadOptions getDownloadOptionsForJar(JARDesc jar)

      XXX: this method does a "==" comparison between the input JARDesc and jars it finds through getResourcesDescs(). If ever the implementation of that function should change to return copies of JARDescs objects, then the "jar == aJar" comparison below should change accordingly.
      Parameters:
        `jar` - the jar whose download options to get.
      Returns:
        the download options.

    - #### 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

Submit a bug or feature