Class JNLPFile
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.
- Version:
- $Revision: 1.21 $
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected URLthe URL used to resolve relative URLs in the filestatic final Stringprotected ComponentDescthe component descriptionprivate booleanJNLP file contains special propertiesprotected Stringthe default archprotected Localethe default JVM localeprotected Stringthe default OSprotected EntryPointthe application entry pointprivate static final Stringprotected final URLthe network location of this JNLP fileprotected VersionIdThe version attribute of the jnlp element specifies the version of the application being launched, as well as the version of the JNLP file itself.private final String[]List of acceptable properties (not-special)static final Stringprotected List<InformationDesc> informationstatic final Stringprivate static final Loggerprivate final ManifestAttributesReaderimportant manifests' attributesprivate booleanA signed JNLP file is missing from the main jarprotected final ParserSettingsthe ParserSettings which were used to parse this fileprotected List<ResourcesDesc> resourcesprotected SecurityDescthe security descriptorprotected final ResourcesDescadditional resources not in JNLP file (from command line)protected URLthe location this JNLP file was created fromstatic final Stringstatic final Stringprotected VersionStringSpecifies the versions of the specification that this JNLP file requires.private static final Stringprotected final StringA key that uniquely identifies connected instances (main jnlp+ext)protected UpdateDescstatic final String -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedJNLPFile()Empty stub, allowing child classes to override the constructorJNLPFile(InputStream input, URL codebase, ParserSettings settings) Create a JNLPFile from an input stream.(package private)JNLPFile(InputStream input, URL location, ParserSettings settings, String uniqueKey) Create a JNLPFile from a URL and a version, checking for updates using the specified policy.JNLPFile(InputStream input, ParserSettings settings) Create a JNLPFile from an input stream. -
Method Summary
Modifier and TypeMethodDescriptionprivate voidInspects the JNLP file to check if it contains any special propertiesprivate StringgetInformation(Locale locale) getInformation(Locale locale, String os, String arch) It is not recommended to use this method for internals of itw - use normal getCodeBase rather, as null is expected always except toString calls.getResources(Locale locale, String os, String arch) private List<ResourcesDesc> getResourcesDescs(Locale locale, String os, String arch) Returns the versions of the specification that this JNLP file requires.getTitle()getTitle(boolean kill) private StringgetVendor(boolean kill) private StringbooleanisApplet()booleanbooleanbooleanbooleanprivate voidparse(InputStream input, URL location, URL forceCodebase) Initialize the JNLPFile fields.booleanReturns a boolean after determining if a signed JNLP warning should be displayed in the 'More Information' panel.voidsetDefaults(String os, String arch, Locale locale) Sets the default view of the JNLP file returned by getInformation, getResources, etc.voidInforms that a signed JNLP file is missing in the main jar
-
Field Details
-
LOG
-
JNLP_ROOT_ELEMENT
- See Also:
-
SPEC_ATTRIBUTE
- See Also:
-
VERSION_ATTRIBUTE
- See Also:
-
HREF_ATTRIBUTE
- See Also:
-
CODEBASE_ATTRIBUTE
- See Also:
-
SPEC_VERSION_DEFAULT
- See Also:
-
sourceLocation
the location this JNLP file was created from -
fileLocation
the network location of this JNLP file -
parserSettings
the ParserSettings which were used to parse this file -
uniqueKey
A key that uniquely identifies connected instances (main jnlp+ext) -
codeBase
the URL used to resolve relative URLs in the file -
fileVersion
The version attribute of the jnlp element specifies the version of the application being launched, as well as the version of the JNLP file itself. -
specVersion
Specifies the versions of the specification that this JNLP file requires. The value of the attribute is specified as a version string, see JSR-56, section 3.1 -
infos
information -
update
-
resources
resources -
entryPointDesc
the application entry point -
component
the component description -
security
the security descriptor -
defaultLocale
the default JVM locale -
defaultOS
the default OS -
defaultArch
the default arch -
missingSignedJNLP
private boolean missingSignedJNLPA signed JNLP file is missing from the main jar -
containsSpecialProperties
private boolean containsSpecialPropertiesJNLP file contains special properties -
generalProperties
List of acceptable properties (not-special) -
manifestAttributesReader
important manifests' attributes -
TITLE_NOT_FOUND
- See Also:
-
FAKE_TITLE
- See Also:
-
-
Constructor Details
-
JNLPFile
protected JNLPFile()Empty stub, allowing child classes to override the constructor -
JNLPFile
JNLPFile(InputStream input, URL location, ParserSettings settings, String uniqueKey) 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 filesettings- the parser settings to use while parsing the file- Throws:
IOException- if an IO exception occurredParseException- if the JNLP file was invalid
-
JNLPFile
Create a JNLPFile from an input stream.- Parameters:
input- input stream from which create jnlp filesettings- settings of parser- Throws:
ParseException- if the JNLP file was invalid
-
JNLPFile
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- theParserSettingsto use when parsing- Throws:
ParseException- if the JNLP file was invalid
-
-
Method Details
-
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
- Throws:
MissingTitleException
-
getTitleImpl
-
getTitleFromJnlp
- Returns:
- the JNLP file's best localized title. This method returns the same value as InformationDesc.getTitle().
-
getTitleFromManifest
-
getVendor
- Returns:
- the JNLP file's best localized vendor. This method returns the same value as InformationDesc.getVendor().
-
getVendor
- Throws:
MissingVendorException
-
getVendorImpl
-
getSourceLocation
- Returns:
- the JNLP file's network location as specified in the JNLP file.
-
getFileLocation
- Returns:
- the location of the file parsed to create the JNLP file, or null if it was not created from a URL.
-
getUniqueKey
- Returns:
- the location of the parent file if it exists, null otherwise
-
getParserSettings
- Returns:
- the ParserSettings that was used to parse this file
-
getFileVersion
- Returns:
- the JNLP file's version.
-
getSpecVersion
Returns the versions of the specification that this JNLP file requires. The value of the attribute is specified as a version string, see JSR-56, section 3.1- Returns:
- the versions of the specification that this JNLP file requires.
-
getCodeBase
- Returns:
- the codebase URL for the JNLP file.
-
getNotNullProbableCodeBase
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 check 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
- Returns:
- the information section of the JNLP file as viewed through the default locale.
-
getInformation
- Parameters:
locale- preferred locale of information element- Returns:
- the information section of the JNLP file as viewed through the specified locale.
-
getInformation
- Parameters:
locale- preferred locale of information elementos- preferred os of information elementarch- preferred arch of information element- Returns:
- the information section of the JNLP file as viewed through the specified locale.
-
getUpdate
- Returns:
- the update section of the JNLP file.
-
getSecurity
- Returns:
- the security section of the JNLP file.
-
getApplicationPermissionLevel
- Returns:
- the requested security level of the application represented by this JNLP file.
-
getAppletPermissionLevel
- Returns:
- the requested security level of the applet represented by this JNLP file.
-
getResources
- Returns:
- the resources section of the JNLP file as viewed through the default locale and the os.name and os.arch properties.
-
getResources
- Parameters:
locale- preferred locale of resourceos- preferred os of resourcearch- preferred arch of resource- Returns:
- the resources section of the JNLP file for the specified locale, os, and arch.
-
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
-
getEntryPointDesc
- Returns:
- an object of one of the following types: AppletDesc, ApplicationDesc and InstallerDesc
-
getApplet
- Returns:
- the launch information for an applet.
- Throws:
UnsupportedOperationException- if there is no applet information
-
getApplication
- Returns:
- the launch information for an application.
- Throws:
UnsupportedOperationException- if there is no application information
-
getComponent
- Returns:
- the launch information for a component.
- Throws:
UnsupportedOperationException- if there is no component information
-
getInstaller
- Returns:
- the launch information for an installer.
- Throws:
UnsupportedOperationException- if there is no installer information
-
isApplet
public boolean isApplet()- Returns:
- whether the launch descriptor describes an Applet.
-
isApplication
public boolean isApplication()- Returns:
- whether the launch descriptor describes an Application.
-
isComponent
public boolean isComponent()- Returns:
- whether the launch descriptor describes a Component.
-
isInstaller
public boolean isInstaller()- Returns:
- whether the launch descriptor describes an Installer.
-
setDefaults
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 resourcearch- preferred arch of resourcelocale- preferred locale of resource
-
parse
Initialize the JNLPFile fields. Private because it's called from the constructor.- Parameters:
location- the file location ornull- Throws:
ParseException
-
checkForSpecialProperties
private void checkForSpecialProperties()Inspects the JNLP file to check if it contains any special properties -
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
-
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 -
getManifestAttributesReader
-
createShortcutNameFromLocation
-
getShortcutName
-