├── .editorconfig ├── .gitattributes ├── .github └── workflows │ ├── build.yml │ ├── codeql-analysis.yml │ └── maven.yml ├── .gitignore ├── AUTHORS ├── CODE_OF_CONDUCTION.md ├── CONTRIBUTING.md ├── INSTALL ├── JAVA_STYLE_GUIDE.md ├── LICENCE_DETAILS.md ├── LICENSE ├── README.md ├── RELEASE.md ├── SECURITY.md ├── artifact-all-dependencies └── pom.xml ├── artifact-no-dependencies └── pom.xml ├── bisect-script.sh ├── clients └── pom.xml ├── common ├── pom.xml └── src │ ├── main │ ├── java │ │ └── net │ │ │ └── adoptopenjdk │ │ │ └── icedteaweb │ │ │ ├── Assert.java │ │ │ ├── CollectionUtils.java │ │ │ ├── IcedTeaWebConstants.java │ │ │ ├── JavaSystemProperties.java │ │ │ ├── JavaSystemPropertiesConstants.java │ │ │ ├── LazyLoaded.java │ │ │ ├── OutputUtils.java │ │ │ ├── ProcessUtils.java │ │ │ ├── StreamUtils.java │ │ │ ├── StringUtils.java │ │ │ ├── commandline │ │ │ ├── CommandLineOptions.java │ │ │ ├── CommandLineOptionsDefinition.java │ │ │ ├── CommandLineOptionsParser.java │ │ │ ├── NumberOfArguments.java │ │ │ ├── ParsedCommandLineOption.java │ │ │ └── UnevenParameterException.java │ │ │ ├── http │ │ │ ├── CloseableConnection.java │ │ │ ├── CloseableHttpConnection.java │ │ │ ├── ConnectionFactory.java │ │ │ ├── HttpMethod.java │ │ │ └── HttpUtils.java │ │ │ ├── i18n │ │ │ ├── SupportedLanguages.java │ │ │ └── Translator.java │ │ │ ├── icon │ │ │ ├── IcoException.java │ │ │ ├── IcoHeader.java │ │ │ ├── IcoHeaderEntry.java │ │ │ ├── IcoReader.java │ │ │ ├── IcoReaderSpi.java │ │ │ ├── IconConstants.java │ │ │ └── Icons.java │ │ │ ├── io │ │ │ ├── FileUtils.java │ │ │ └── IOUtils.java │ │ │ ├── jdk89access │ │ │ ├── JarIndexAccess.java │ │ │ └── SunMiscLauncher.java │ │ │ ├── jnlp │ │ │ └── version │ │ │ │ ├── JNLPVersionPatterns.java │ │ │ │ ├── SimpleRange.java │ │ │ │ ├── VersionId.java │ │ │ │ ├── VersionIdComparator.java │ │ │ │ ├── VersionModifier.java │ │ │ │ ├── VersionRange.java │ │ │ │ └── VersionString.java │ │ │ ├── lockingfile │ │ │ ├── LockableFile.java │ │ │ ├── LockingReaderWriter.java │ │ │ └── StorageIoException.java │ │ │ ├── logging │ │ │ ├── BaseLogger.java │ │ │ ├── Logger.java │ │ │ ├── LoggerFactory.java │ │ │ └── SystemOutLoggerFactory.java │ │ │ ├── os │ │ │ └── OsUtil.java │ │ │ ├── ui │ │ │ └── swing │ │ │ │ ├── ScreenFinder.java │ │ │ │ ├── SwingUtils.java │ │ │ │ └── dialogresults │ │ │ │ ├── AccessWarningPaneComplexReturn.java │ │ │ │ ├── BasicDialogValue.java │ │ │ │ ├── DialogResult.java │ │ │ │ ├── NamePassword.java │ │ │ │ ├── Primitive.java │ │ │ │ ├── Yes.java │ │ │ │ ├── YesCancel.java │ │ │ │ ├── YesCancelSkip.java │ │ │ │ ├── YesNo.java │ │ │ │ ├── YesNoCancel.java │ │ │ │ ├── YesNoSandbox.java │ │ │ │ └── YesNoSandboxLimited.java │ │ │ └── validator │ │ │ ├── DirectoryCheckResult.java │ │ │ ├── DirectoryCheckResults.java │ │ │ └── DirectoryValidator.java │ └── resources │ │ └── net │ │ └── adoptopenjdk │ │ └── icedteaweb │ │ └── i18n │ │ ├── Messages.properties │ │ ├── Messages_cs.properties │ │ ├── Messages_de.properties │ │ ├── Messages_en.properties │ │ ├── Messages_pl.properties │ │ ├── Messages_ru.properties │ │ └── Messages_tr.properties │ └── test │ ├── java │ └── net │ │ └── adoptopenjdk │ │ └── icedteaweb │ │ ├── StringUtilsTest.java │ │ ├── commandline │ │ └── CommandLineOptionsParserTest.java │ │ ├── http │ │ └── HttpUtilsTest.java │ │ ├── i18n │ │ ├── SupportedLanguagesTest.java │ │ └── TranslatorTest.java │ │ ├── io │ │ └── FileUtilsTest.java │ │ ├── jnlp │ │ └── version │ │ │ ├── JNLPVersionPatternsTest.java │ │ │ ├── SimpleRangeTest.java │ │ │ ├── VersionIdComparatorTest.java │ │ │ ├── VersionIdTest.java │ │ │ ├── VersionRangeTest.java │ │ │ ├── VersionSeparator.java │ │ │ └── VersionStringTest.java │ │ └── logging │ │ └── BaseLoggerTest.java │ └── resources │ └── net │ └── adoptopenjdk │ └── icedteaweb │ └── i18n │ ├── res1.properties │ └── res2.properties ├── core ├── pom.xml └── src │ ├── main │ ├── java │ │ └── net │ │ │ ├── adoptopenjdk │ │ │ └── icedteaweb │ │ │ │ ├── client │ │ │ │ ├── BasicExceptionDialog.java │ │ │ │ ├── GuiLaunchHandler.java │ │ │ │ ├── certificateviewer │ │ │ │ │ ├── CertificatePane.java │ │ │ │ │ └── CertificateViewer.java │ │ │ │ ├── commandline │ │ │ │ │ ├── CommandLine.java │ │ │ │ │ └── NonEditableTableModel.java │ │ │ │ ├── console │ │ │ │ │ ├── ConsoleOutputPane.java │ │ │ │ │ ├── ConsoleOutputPaneModel.java │ │ │ │ │ └── JavaConsole.java │ │ │ │ ├── controlpanel │ │ │ │ │ ├── AdvancedProxySettingsDialog.java │ │ │ │ │ ├── AdvancedProxySettingsPane.java │ │ │ │ │ ├── CacheAppViewer.java │ │ │ │ │ ├── CacheFileInfo.java │ │ │ │ │ ├── CacheIdInfo.java │ │ │ │ │ ├── CachePane.java │ │ │ │ │ ├── CacheTableModel.java │ │ │ │ │ ├── CacheViewer.java │ │ │ │ │ ├── ComboItem.java │ │ │ │ │ ├── ControlPanel.java │ │ │ │ │ ├── ControlPanelStyle.java │ │ │ │ │ ├── DefaultControlPanelStyle.java │ │ │ │ │ ├── DocumentAdapter.java │ │ │ │ │ ├── NamedBorderPanel.java │ │ │ │ │ ├── RememberableDialogueEditor.java │ │ │ │ │ ├── UnsignedAppletActionTableModel.java │ │ │ │ │ ├── UnsignedAppletsTrustingListPanel.java │ │ │ │ │ ├── desktopintegrationeditor │ │ │ │ │ │ ├── Blinker.java │ │ │ │ │ │ ├── FreeDesktopIntegrationEditorFrame.java │ │ │ │ │ │ ├── JListUtils.java │ │ │ │ │ │ ├── Panels.java │ │ │ │ │ │ └── PreviewSelectionJTextPane.java │ │ │ │ │ └── panels │ │ │ │ │ │ ├── AboutPanel.java │ │ │ │ │ │ ├── AbstractUrlWhitelistPanel.java │ │ │ │ │ │ ├── DebuggingPanel.java │ │ │ │ │ │ ├── DesktopShortcutPanel.java │ │ │ │ │ │ ├── JVMPanel.java │ │ │ │ │ │ ├── NetworkSettingsPanel.java │ │ │ │ │ │ ├── PolicyPanel.java │ │ │ │ │ │ ├── SecuritySettingsPanel.java │ │ │ │ │ │ ├── ServerWhitelistPanel.java │ │ │ │ │ │ ├── TemporaryInternetFilesPanel.java │ │ │ │ │ │ └── provider │ │ │ │ │ │ ├── AboutPanelProvider.java │ │ │ │ │ │ ├── CacheSettingsPanelProvider.java │ │ │ │ │ │ ├── CertificatesSettingsPanelProvider.java │ │ │ │ │ │ ├── ControlPanelProvider.java │ │ │ │ │ │ ├── DebugSettingsPanelProvider.java │ │ │ │ │ │ ├── DesktopSettingsPanelProvider.java │ │ │ │ │ │ ├── JvmSettingsPanelProvider.java │ │ │ │ │ │ ├── NetworkSettingsPanelProvider.java │ │ │ │ │ │ ├── PolicySettingsPanelProvider.java │ │ │ │ │ │ ├── SecuritySettingsPanelProvider.java │ │ │ │ │ │ ├── ServerWhitelistPanelProvider.java │ │ │ │ │ │ └── UnsignedAppletsTrustingListPanelProvider.java │ │ │ │ ├── parts │ │ │ │ │ ├── about │ │ │ │ │ │ ├── AboutDialog.java │ │ │ │ │ │ ├── HTMLPanel.java │ │ │ │ │ │ └── InternalHTMLPanel.java │ │ │ │ │ ├── browser │ │ │ │ │ │ ├── DocumentChangedListener.java │ │ │ │ │ │ ├── HtmlBrowserPanel.java │ │ │ │ │ │ ├── LinkingBrowser.java │ │ │ │ │ │ └── LinksPanel.java │ │ │ │ │ ├── dialogs │ │ │ │ │ │ ├── FileDialogFactory.java │ │ │ │ │ │ └── security │ │ │ │ │ │ │ ├── AccessWarningPane.java │ │ │ │ │ │ │ ├── AppletWarningPane.java │ │ │ │ │ │ │ ├── CertWarningPane.java │ │ │ │ │ │ │ ├── CertsInfoPane.java │ │ │ │ │ │ │ ├── InetSecurity511Panel.java │ │ │ │ │ │ │ ├── MissingALACAttributePanel.java │ │ │ │ │ │ │ ├── MissingPermissionsAttributePanel.java │ │ │ │ │ │ │ ├── MoreInfoPane.java │ │ │ │ │ │ │ ├── PasswordAuthenticationPane.java │ │ │ │ │ │ │ ├── SecurityDialog.java │ │ │ │ │ │ │ ├── SecurityDialogMessage.java │ │ │ │ │ │ │ ├── SecurityDialogMessageHandler.java │ │ │ │ │ │ │ ├── SecurityDialogPanel.java │ │ │ │ │ │ │ ├── SecurityDialogs.java │ │ │ │ │ │ │ ├── SetValueHandler.java │ │ │ │ │ │ │ ├── SingleCertInfoPane.java │ │ │ │ │ │ │ ├── TemporaryPermissions.java │ │ │ │ │ │ │ ├── TemporaryPermissionsButton.java │ │ │ │ │ │ │ ├── ViwableDialog.java │ │ │ │ │ │ │ ├── appletextendedsecurity │ │ │ │ │ │ │ ├── AppletSecurityLevel.java │ │ │ │ │ │ │ ├── AppletStartupSecuritySettings.java │ │ │ │ │ │ │ ├── ExtendedAppletSecurityHelp.java │ │ │ │ │ │ │ ├── InvalidLineException.java │ │ │ │ │ │ │ ├── UnsignedAppletActionEntry.java │ │ │ │ │ │ │ ├── UnsignedAppletActionStorage.java │ │ │ │ │ │ │ ├── UnsignedAppletTrustConfirmation.java │ │ │ │ │ │ │ ├── UrlRegEx.java │ │ │ │ │ │ │ └── impl │ │ │ │ │ │ │ │ ├── UnsignedAppletActionStorageExtendedImpl.java │ │ │ │ │ │ │ │ └── UnsignedAppletActionStorageImpl.java │ │ │ │ │ │ │ ├── apptrustwarningpanel │ │ │ │ │ │ │ ├── AppTrustWarningDialog.java │ │ │ │ │ │ │ ├── AppTrustWarningPanel.java │ │ │ │ │ │ │ ├── MatchingALACAttributePanel.java │ │ │ │ │ │ │ ├── PartiallySignedAppTrustWarningPanel.java │ │ │ │ │ │ │ └── UnsignedAppletTrustWarningPanel.java │ │ │ │ │ │ │ └── remember │ │ │ │ │ │ │ ├── AppletSecurityActions.java │ │ │ │ │ │ │ ├── ExecuteAppletAction.java │ │ │ │ │ │ │ ├── RememberActionProvider.java │ │ │ │ │ │ │ ├── RememberDialog.java │ │ │ │ │ │ │ ├── RememberPanel.java │ │ │ │ │ │ │ ├── RememberPanelResult.java │ │ │ │ │ │ │ ├── RememberableDialog.java │ │ │ │ │ │ │ └── SavedRememberAction.java │ │ │ │ │ ├── downloadindicator │ │ │ │ │ │ ├── DefaultDownloadIndicator.java │ │ │ │ │ │ ├── DownloadIndicator.java │ │ │ │ │ │ └── DummyDownloadIndicator.java │ │ │ │ │ └── splashscreen │ │ │ │ │ │ ├── JNLPSplashScreen.java │ │ │ │ │ │ ├── SplashPanel.java │ │ │ │ │ │ ├── SplashUtils.java │ │ │ │ │ │ ├── impls │ │ │ │ │ │ ├── DefaultSplashScreen2012.java │ │ │ │ │ │ ├── DefaultSplashScreens2012Commons.java │ │ │ │ │ │ └── defaultsplashscreen2012 │ │ │ │ │ │ │ ├── BasePainter.java │ │ │ │ │ │ │ ├── ControlCurve.java │ │ │ │ │ │ │ ├── Cubic.java │ │ │ │ │ │ │ ├── ErrorPainter.java │ │ │ │ │ │ │ ├── MovingText.java │ │ │ │ │ │ │ ├── NatCubic.java │ │ │ │ │ │ │ ├── NatCubicClosed.java │ │ │ │ │ │ │ ├── SplinesDefs.java │ │ │ │ │ │ │ ├── TextOutlineRenderer.java │ │ │ │ │ │ │ └── TextWithWaterLevel.java │ │ │ │ │ │ └── parts │ │ │ │ │ │ ├── BasicComponentSplashScreen.java │ │ │ │ │ │ ├── DescriptionInfoItem.java │ │ │ │ │ │ ├── InfoItem.java │ │ │ │ │ │ ├── InformationElement.java │ │ │ │ │ │ ├── JEditorPaneBasedExceptionDialog.java │ │ │ │ │ │ └── extensions │ │ │ │ │ │ ├── ChristmasExtension.java │ │ │ │ │ │ ├── ExtensionManager.java │ │ │ │ │ │ ├── NoExtension.java │ │ │ │ │ │ └── SplashExtension.java │ │ │ │ ├── policyeditor │ │ │ │ │ ├── CustomPolicyViewer.java │ │ │ │ │ ├── IndeterminateProgressDialog.java │ │ │ │ │ ├── KeystoreInfo.java │ │ │ │ │ ├── PermissionActions.java │ │ │ │ │ ├── PermissionTarget.java │ │ │ │ │ ├── PermissionType.java │ │ │ │ │ ├── PolicyEditor.java │ │ │ │ │ ├── PolicyEditorAboutDialog.java │ │ │ │ │ ├── PolicyEditorController.java │ │ │ │ │ ├── PolicyEditorPermissions.java │ │ │ │ │ ├── PolicyEntry.java │ │ │ │ │ ├── PolicyFileModel.java │ │ │ │ │ └── PolicyIdentifier.java │ │ │ │ └── util │ │ │ │ │ └── UiLock.java │ │ │ │ ├── config │ │ │ │ ├── ConfigType.java │ │ │ │ ├── FilesystemConfiguration.java │ │ │ │ ├── Target.java │ │ │ │ ├── ValidatorFactory.java │ │ │ │ └── validators │ │ │ │ │ ├── BooleanValidator.java │ │ │ │ │ ├── ConfigurationValidator.java │ │ │ │ │ ├── FilePathValidator.java │ │ │ │ │ ├── MultipleStringValueValidator.java │ │ │ │ │ ├── NotBlankValidator.java │ │ │ │ │ ├── PortValidator.java │ │ │ │ │ ├── RangedIntegerValidator.java │ │ │ │ │ ├── RustCpValidator.java │ │ │ │ │ ├── SecurityValueValidator.java │ │ │ │ │ ├── StringValueValidator.java │ │ │ │ │ ├── UrlValidator.java │ │ │ │ │ ├── ValidatorUtils.java │ │ │ │ │ └── ValueValidator.java │ │ │ │ ├── extensionpoint │ │ │ │ └── ExtensionPoint.java │ │ │ │ ├── jnlp │ │ │ │ └── element │ │ │ │ │ ├── EntryPoint.java │ │ │ │ │ ├── application │ │ │ │ │ ├── AppletDesc.java │ │ │ │ │ ├── ApplicationDesc.java │ │ │ │ │ └── ApplicationType.java │ │ │ │ │ ├── extension │ │ │ │ │ ├── ComponentDesc.java │ │ │ │ │ └── InstallerDesc.java │ │ │ │ │ ├── information │ │ │ │ │ ├── AssociationDesc.java │ │ │ │ │ ├── DescriptionDesc.java │ │ │ │ │ ├── DescriptionKind.java │ │ │ │ │ ├── HomepageDesc.java │ │ │ │ │ ├── IconDesc.java │ │ │ │ │ ├── IconKind.java │ │ │ │ │ ├── InformationDesc.java │ │ │ │ │ ├── MenuDesc.java │ │ │ │ │ ├── RelatedContentDesc.java │ │ │ │ │ └── ShortcutDesc.java │ │ │ │ │ ├── resource │ │ │ │ │ ├── DownloadStrategy.java │ │ │ │ │ ├── ExtensionDesc.java │ │ │ │ │ ├── JARDesc.java │ │ │ │ │ ├── JREDesc.java │ │ │ │ │ ├── PackageDesc.java │ │ │ │ │ ├── PropertyDesc.java │ │ │ │ │ └── ResourcesDesc.java │ │ │ │ │ ├── security │ │ │ │ │ ├── AppletPermissionLevel.java │ │ │ │ │ ├── ApplicationPermissionLevel.java │ │ │ │ │ └── SecurityDesc.java │ │ │ │ │ └── update │ │ │ │ │ ├── UpdateCheck.java │ │ │ │ │ ├── UpdateDesc.java │ │ │ │ │ └── UpdatePolicy.java │ │ │ │ ├── jvm │ │ │ │ └── JvmUtils.java │ │ │ │ ├── launch │ │ │ │ └── JvmLauncher.java │ │ │ │ ├── manifest │ │ │ │ ├── ManifestAttributes.java │ │ │ │ ├── ManifestAttributesChecker.java │ │ │ │ ├── ManifestAttributesReader.java │ │ │ │ └── ManifestBoolean.java │ │ │ │ ├── proxy │ │ │ │ └── ie │ │ │ │ │ ├── RegistryQuery.java │ │ │ │ │ ├── RegistryValue.java │ │ │ │ │ ├── RegistryValueType.java │ │ │ │ │ ├── WindowsProxy.java │ │ │ │ │ └── WindowsProxyConstants.java │ │ │ │ └── resources │ │ │ │ ├── DaemonThreadPoolProvider.java │ │ │ │ ├── IllegalResourceDescriptorException.java │ │ │ │ ├── JnlpDownloadProtocolConstants.java │ │ │ │ ├── PrioritizedParallelExecutor.java │ │ │ │ ├── Resource.java │ │ │ │ ├── ResourceHandler.java │ │ │ │ ├── ResourceStatus.java │ │ │ │ ├── ResourceTracker.java │ │ │ │ ├── UpdatePolicy.java │ │ │ │ ├── cache │ │ │ │ ├── Cache.java │ │ │ │ ├── CacheAction.java │ │ │ │ ├── CacheFileInfoImpl.java │ │ │ │ ├── CacheIdInfoImpl.java │ │ │ │ ├── CacheImpl.java │ │ │ │ ├── CacheIndex.java │ │ │ │ ├── CacheIndexEntries.java │ │ │ │ ├── CacheIndexEntry.java │ │ │ │ ├── CacheIndexFile.java │ │ │ │ ├── CacheIndexHolder.java │ │ │ │ ├── CacheKey.java │ │ │ │ ├── CachedFile.java │ │ │ │ ├── DownloadInfo.java │ │ │ │ ├── OldCacheFileReader.java │ │ │ │ └── ResourceInfo.java │ │ │ │ ├── downloader │ │ │ │ ├── BaseResourceDownloader.java │ │ │ │ ├── CountingInputStream.java │ │ │ │ ├── DownloadDetails.java │ │ │ │ ├── ExactVersionedResourceDownloader.java │ │ │ │ ├── GzipUnpacker.java │ │ │ │ ├── JarDiffUnpacker.java │ │ │ │ ├── NotUnpacker.java │ │ │ │ ├── NotifyingInputStream.java │ │ │ │ ├── PackGzipUnpacker.java │ │ │ │ ├── RangeVersionedResourceDownloader.java │ │ │ │ ├── ResourceDownloader.java │ │ │ │ ├── StreamUnpacker.java │ │ │ │ └── UnversionedResourceDownloader.java │ │ │ │ ├── initializer │ │ │ │ ├── BaseResourceInitializer.java │ │ │ │ ├── ExactVersionedResourceInitializer.java │ │ │ │ ├── InitializationResult.java │ │ │ │ ├── OfflineResourceInitializer.java │ │ │ │ ├── RangeVersionedResourceInitializer.java │ │ │ │ ├── ResourceInitializer.java │ │ │ │ ├── ResourceUrlCreator.java │ │ │ │ ├── UnversionedResourceInitializer.java │ │ │ │ ├── UrlProber.java │ │ │ │ └── UrlRequestResult.java │ │ │ │ └── jardiff │ │ │ │ └── JarDiffMerger.java │ │ │ └── sourceforge │ │ │ └── jnlp │ │ │ ├── AbstractLaunchHandler.java │ │ │ ├── DefaultLaunchHandler.java │ │ │ ├── DownloadOptions.java │ │ │ ├── ItwJvmLauncher.java │ │ │ ├── JNLPFile.java │ │ │ ├── JNLPFileFactory.java │ │ │ ├── JNLPMatcher.java │ │ │ ├── JNLPMatcherException.java │ │ │ ├── LaunchException.java │ │ │ ├── LaunchHandler.java │ │ │ ├── Launcher.java │ │ │ ├── MissingInformationException.java │ │ │ ├── MissingTitleException.java │ │ │ ├── MissingVendorException.java │ │ │ ├── NullJnlpFileException.java │ │ │ ├── Parser.java │ │ │ ├── ParserSettings.java │ │ │ ├── PluginParameterException.java │ │ │ ├── PluginParameters.java │ │ │ ├── RequiredElementException.java │ │ │ ├── cache │ │ │ ├── CacheUtil.java │ │ │ └── NativeLibraryStorage.java │ │ │ ├── config │ │ │ ├── ConfigurationConstants.java │ │ │ ├── Defaults.java │ │ │ ├── DefaultsProvider.java │ │ │ ├── DeploymentConfiguration.java │ │ │ ├── DirectoryValidator.java │ │ │ ├── InfrastructureFileDescriptor.java │ │ │ ├── PathsAndFiles.java │ │ │ └── Setting.java │ │ │ ├── package-info.java │ │ │ ├── proxy │ │ │ ├── JNLPProxySelector.java │ │ │ ├── ProxyConstants.java │ │ │ ├── ProxyType.java │ │ │ ├── browser │ │ │ │ ├── FirefoxConstants.java │ │ │ │ ├── FirefoxPreferencesFinder.java │ │ │ │ ├── FirefoxPreferencesParser.java │ │ │ │ ├── FirefoxProxySelector.java │ │ │ │ ├── FirefoxProxyType.java │ │ │ │ └── PreferencesParser.java │ │ │ └── pac │ │ │ │ ├── FakePacEvaluator.java │ │ │ │ ├── PacConstants.java │ │ │ │ ├── PacEvaluator.java │ │ │ │ ├── PacEvaluatorFactory.java │ │ │ │ ├── PacUtils.java │ │ │ │ └── RhinoBasedPacEvaluator.java │ │ │ ├── runtime │ │ │ ├── AppContextFactory.java │ │ │ ├── AppletAudioClip.java │ │ │ ├── AppletEnvironment.java │ │ │ ├── AppletInstance.java │ │ │ ├── ApplicationEvent.java │ │ │ ├── ApplicationInstance.java │ │ │ ├── ApplicationListener.java │ │ │ ├── Boot.java │ │ │ ├── CachedJarFileCallback.java │ │ │ ├── EnvironmentPrinter.java │ │ │ ├── ForkingStrategy.java │ │ │ ├── ItwMenuAndDesktopIntegration.java │ │ │ ├── JNLPPolicy.java │ │ │ ├── JNLPRuntime.java │ │ │ ├── JNLPSecurityManager.java │ │ │ ├── MenuAndDesktopIntegration.java │ │ │ ├── UpdateOptions.java │ │ │ ├── UpdatePolicyDialog.java │ │ │ ├── classloader │ │ │ │ ├── CodeBaseClassLoader.java │ │ │ │ ├── DelegatingClassLoader.java │ │ │ │ ├── JNLPClassLoader.java │ │ │ │ ├── LocateJnlpClassLoader.java │ │ │ │ ├── ManageJnlpResources.java │ │ │ │ ├── SecurityDelegate.java │ │ │ │ └── SecurityDelegateImpl.java │ │ │ └── package-info.java │ │ │ ├── security │ │ │ ├── AccessType.java │ │ │ ├── AppVerifier.java │ │ │ ├── CertVerifier.java │ │ │ ├── CertificateUtils.java │ │ │ ├── HttpsCertVerifier.java │ │ │ ├── JNLPAppVerifier.java │ │ │ ├── JNLPAuthenticator.java │ │ │ ├── KeyStores.java │ │ │ ├── KeystorePasswordAttempter.java │ │ │ ├── PluginAppVerifier.java │ │ │ ├── SecurityUtil.java │ │ │ ├── VariableX509TrustManager.java │ │ │ ├── VariableX509TrustManagerJDK7.java │ │ │ └── package-info.java │ │ │ ├── services │ │ │ ├── ExtendedSingleInstanceService.java │ │ │ ├── InstanceExistsException.java │ │ │ ├── ServiceUtil.java │ │ │ ├── SingleInstanceLock.java │ │ │ ├── XBasicService.java │ │ │ ├── XClipboardService.java │ │ │ ├── XDownloadService.java │ │ │ ├── XDownloadService2.java │ │ │ ├── XExtendedService.java │ │ │ ├── XExtensionInstallerService.java │ │ │ ├── XFileContents.java │ │ │ ├── XFileOpenService.java │ │ │ ├── XFileSaveService.java │ │ │ ├── XJNLPRandomAccessFile.java │ │ │ ├── XPersistenceService.java │ │ │ ├── XPrintService.java │ │ │ ├── XServiceManagerStub.java │ │ │ ├── XSingleInstanceService.java │ │ │ └── package-info.java │ │ │ ├── tools │ │ │ ├── CertInformation.java │ │ │ └── JarCertVerifier.java │ │ │ └── util │ │ │ ├── AppletUtils.java │ │ │ ├── ClasspathMatcher.java │ │ │ ├── GenericDesktopEntry.java │ │ │ ├── ImageResources.java │ │ │ ├── InvalidJarHeaderException.java │ │ │ ├── IpUtil.java │ │ │ ├── JarFile.java │ │ │ ├── LocaleUtils.java │ │ │ ├── MD5SumWatcher.java │ │ │ ├── PropertiesFile.java │ │ │ ├── RestrictedFileUtils.java │ │ │ ├── ShortcutCreationOptions.java │ │ │ ├── TimedHashMap.java │ │ │ ├── UrlKey.java │ │ │ ├── UrlUtils.java │ │ │ ├── WeakList.java │ │ │ ├── WindowsDesktopEntry.java │ │ │ ├── WindowsShortcutManager.java │ │ │ ├── XDesktopEntry.java │ │ │ ├── docprovider │ │ │ ├── IcedTeaWebTextsProvider.java │ │ │ ├── ItwebPluginTextProvider.java │ │ │ ├── ItwebSettingsTextsProvider.java │ │ │ ├── JavaWsTextsProvider.java │ │ │ ├── PolicyEditorTextsProvider.java │ │ │ ├── TextsProvider.java │ │ │ └── formatters │ │ │ │ └── formatters │ │ │ │ ├── Formatter.java │ │ │ │ ├── HtmlFormatter.java │ │ │ │ ├── ManFormatter.java │ │ │ │ ├── PlainTextFormatter.java │ │ │ │ └── ReplacingTextFormatter.java │ │ │ ├── logging │ │ │ ├── BasicOutputController.java │ │ │ ├── DummyLogger.java │ │ │ ├── FileLog.java │ │ │ ├── LogConfig.java │ │ │ ├── OutputController.java │ │ │ ├── OutputControllerLevel.java │ │ │ ├── OutputControllerLoggerFactory.java │ │ │ ├── PrintStreamLogger.java │ │ │ ├── SingleStreamLogger.java │ │ │ ├── StdInOutErrController.java │ │ │ ├── TeeOutputStream.java │ │ │ ├── UnixSystemLog.java │ │ │ ├── WinSystemLog.java │ │ │ ├── filelogs │ │ │ │ ├── LogBasedFileLog.java │ │ │ │ └── WriterBasedFileLog.java │ │ │ └── headers │ │ │ │ ├── Header.java │ │ │ │ ├── JavaMessage.java │ │ │ │ ├── MessageWithHeader.java │ │ │ │ └── ObservableMessagesProvider.java │ │ │ ├── optionparser │ │ │ └── InvalidArgumentException.java │ │ │ └── whitelist │ │ │ ├── ParsedWhitelistEntry.java │ │ │ ├── UnparsableWhitelistEntry.java │ │ │ ├── UrlWhiteListUtils.java │ │ │ ├── WhiteListEntryParser.java │ │ │ ├── WhitelistEntry.java │ │ │ ├── WhitelistEntryHost.java │ │ │ ├── WhitelistEntryPart.java │ │ │ ├── WhitelistEntryPort.java │ │ │ └── WhitelistEntryProtocol.java │ └── resources │ │ ├── META-INF │ │ └── services │ │ │ └── net.adoptopenjdk.icedteaweb.client.controlpanel.panels.provider.ControlPanelProvider │ │ ├── javaws_splash.png │ │ └── net │ │ └── sourceforge │ │ └── jnlp │ │ ├── build.properties │ │ ├── resources │ │ ├── hideDownloadDetails.png │ │ ├── info-small.png │ │ ├── install.png │ │ ├── itw_logo.png │ │ ├── jamIcon.jpg │ │ ├── netx-icon.png │ │ ├── question.png │ │ ├── showDownloadDetails.png │ │ ├── warn16.png │ │ ├── warning-small.png │ │ └── warning.png │ │ └── runtime │ │ └── pac-funcs.js │ └── test │ ├── java │ └── net │ │ ├── adoptopenjdk │ │ └── icedteaweb │ │ │ ├── client │ │ │ ├── commandline │ │ │ │ ├── AbstractCommandTest.java │ │ │ │ ├── CheckCommandTest.java │ │ │ │ ├── GetCommandTest.java │ │ │ │ ├── HelpCommandTest.java │ │ │ │ ├── InfoCommandTest.java │ │ │ │ ├── ListCommandTest.java │ │ │ │ ├── ResetCommandTest.java │ │ │ │ └── SetCommandTest.java │ │ │ ├── parts │ │ │ │ ├── dialogs │ │ │ │ │ └── security │ │ │ │ │ │ ├── SecurityDialogsTest.java │ │ │ │ │ │ ├── TemporaryPermissionsTest.java │ │ │ │ │ │ ├── appletextendedsecurity │ │ │ │ │ │ ├── UnsignedAppletTrustConfirmationTest.java │ │ │ │ │ │ ├── UrlRegExTest.java │ │ │ │ │ │ └── impl │ │ │ │ │ │ │ ├── LegacyUnsignedAppletActionStorageImplTest.java │ │ │ │ │ │ │ ├── UnsignedAppletActionStorageImplTest.java │ │ │ │ │ │ │ └── VersionRestrictionTest.java │ │ │ │ │ │ ├── apptrustwarningpanel │ │ │ │ │ │ └── AppTrustWarningPanelTest.java │ │ │ │ │ │ └── remember │ │ │ │ │ │ └── AppletSecurityActionsTest.java │ │ │ │ └── splashscreen │ │ │ │ │ ├── SplashScreenTest.java │ │ │ │ │ ├── SplashUtilsTest.java │ │ │ │ │ ├── impls │ │ │ │ │ └── defaultsplashscreen2012 │ │ │ │ │ │ ├── BasePainterTest.java │ │ │ │ │ │ ├── ControlCurveTest.java │ │ │ │ │ │ ├── CubicTest.java │ │ │ │ │ │ ├── ErrorPainterTest.java │ │ │ │ │ │ ├── MovingTextTest.java │ │ │ │ │ │ ├── NatCubicClosedTest.java │ │ │ │ │ │ ├── NatCubicTest.java │ │ │ │ │ │ ├── SplinesDefsTest.java │ │ │ │ │ │ ├── TextOutlineRendererTest.java │ │ │ │ │ │ └── TextWithWaterLevelTest.java │ │ │ │ │ └── parts │ │ │ │ │ ├── BasicComponentSplashScreenTest.java │ │ │ │ │ ├── DescriptionInfoItemTest.java │ │ │ │ │ ├── InfoItemTest.java │ │ │ │ │ ├── InformationElementTest.java │ │ │ │ │ └── JEditorPaneBasedExceptionDialogTest.java │ │ │ └── policyeditor │ │ │ │ ├── CustomPolicyViewerTest.java │ │ │ │ ├── PermissionActionsTest.java │ │ │ │ ├── PermissionTargetTest.java │ │ │ │ ├── PermissionTypeTest.java │ │ │ │ ├── PolicyEditorControllerTest.java │ │ │ │ ├── PolicyEditorParsingTest.java │ │ │ │ ├── PolicyEditorPermissionsTest.java │ │ │ │ ├── PolicyEditorTest.java │ │ │ │ ├── PolicyEntryTest.java │ │ │ │ ├── PolicyFileModelTest.java │ │ │ │ └── PolicyIdentifierTest.java │ │ │ ├── icon │ │ │ └── IconsTest.java │ │ │ ├── jnlp │ │ │ └── element │ │ │ │ ├── application │ │ │ │ ├── AppletDescTest.java │ │ │ │ └── ApplicationDescTest.java │ │ │ │ ├── information │ │ │ │ ├── DescriptionKindTest.java │ │ │ │ ├── IconKindTest.java │ │ │ │ └── InformationDescTest.java │ │ │ │ ├── resource │ │ │ │ ├── JREDescTest.java │ │ │ │ └── ResourcesDescTest.java │ │ │ │ └── security │ │ │ │ └── SecurityDescTest.java │ │ │ ├── jvm │ │ │ └── JvmUtilsTest.java │ │ │ ├── lockingfile │ │ │ ├── LockingReaderWriterTest.java │ │ │ └── WindowsLockableFileTest.java │ │ │ ├── manifest │ │ │ ├── ManifestAttributesCheckerTest.java │ │ │ └── ManifestAttributesReaderTest.java │ │ │ ├── proxy │ │ │ └── ie │ │ │ │ └── RegistryQueryTest.java │ │ │ ├── resources │ │ │ ├── ResourceFactory.java │ │ │ ├── ResourceHandlerTest.java │ │ │ ├── ResourceTest.java │ │ │ ├── ResourceTrackerTest.java │ │ │ ├── cache │ │ │ │ ├── CacheActionTest.java │ │ │ │ ├── CacheIdInfoImplTest.java │ │ │ │ ├── CacheIndexFileTest.java │ │ │ │ ├── CacheIndexHolderTest.java │ │ │ │ └── CachedFileTest.java │ │ │ ├── downloader │ │ │ │ └── NotifyingInputStreamTest.java │ │ │ ├── initializer │ │ │ │ ├── ResourceUrlCreatorTest.java │ │ │ │ ├── UrlProberTest.java │ │ │ │ └── UrlRequestResultTest.java │ │ │ └── jardiff │ │ │ │ └── JarDiffMergerTest.java │ │ │ ├── testing │ │ │ ├── mock │ │ │ │ ├── DummyJNLPFile.java │ │ │ │ ├── DummyJNLPFileWithJar.java │ │ │ │ └── MockJNLPFile.java │ │ │ ├── tools │ │ │ │ └── DeploymentPropertiesModifier.java │ │ │ └── util │ │ │ │ └── NonWindowsLockableFile.java │ │ │ └── ui │ │ │ └── swing │ │ │ └── dialogresults │ │ │ ├── AccessWarningPaneComplexReturnTest.java │ │ │ ├── YesCancelTest.java │ │ │ ├── YesNoCancelTest.java │ │ │ ├── YesNoSandboxTest.java │ │ │ ├── YesNoTestTest.java │ │ │ └── YesTest.java │ │ └── sourceforge │ │ └── jnlp │ │ ├── AsyncCallTest.java │ │ ├── DefaultLaunchHandlerTest.java │ │ ├── JNLPFileTest.java │ │ ├── JNLPMatcherTest.java │ │ ├── JNLPMatcherTestMalformedAllowedTest.java │ │ ├── JnlpInformationElementTest.java │ │ ├── LaunchExceptionTest.java │ │ ├── ParserBasicTest.java │ │ ├── ParserCornerCasesTest.java │ │ ├── ParserTest.java │ │ ├── ParserVersionStringTest.java │ │ ├── PluginParametersTest.java │ │ ├── PropertyDescTest.java │ │ ├── ResourcesTest.java │ │ ├── ServerAccessTest.java │ │ ├── TinyHttpdImplTest.java │ │ ├── cache │ │ ├── CacheUtilTest.java │ │ └── NativeLibraryStorageTest.java │ │ ├── config │ │ ├── BasicValueValidatorsTests.java │ │ ├── DeploymentConfigurationTest.java │ │ └── DirectoryValidatorTest.java │ │ ├── proxy │ │ └── browser │ │ │ └── FirefoxProxySelectorTest.java │ │ ├── resources │ │ └── MessagesPropertiesTest.java │ │ ├── runtime │ │ ├── BootTest.java │ │ ├── DummySecurityDelegate.java │ │ ├── JNLPFileTest.java │ │ ├── JNLPPolicyTest.java │ │ ├── JNLPProxySelectorTest.java │ │ └── classloader │ │ │ ├── CodeBaseClassLoaderTest.java │ │ │ └── JNLPClassLoaderTest.java │ │ ├── security │ │ └── KeyStoresTest.java │ │ ├── services │ │ └── SingleInstanceLockTest.java │ │ ├── tools │ │ ├── DeploymentPropertiesModifierTest.java │ │ └── JarCertVerifierTest.java │ │ └── util │ │ ├── ClasspathMatcherTest.java │ │ ├── ImageResourcesTest.java │ │ ├── IpUtilTest.java │ │ ├── LocaleUtilsTest.java │ │ ├── MD5SumWatcherTest.java │ │ ├── PropertiesFileTest.java │ │ ├── RestrictedFileUtilsTest.java │ │ ├── TimedHashMapTest.java │ │ ├── UrlKeyTest.java │ │ ├── UrlUtilsTest.java │ │ ├── XDesktopEntryTest.java │ │ ├── docprovider │ │ ├── ReadAuthorsTest.java │ │ └── formatters │ │ │ └── formatters │ │ │ ├── FormatterTest.java │ │ │ └── ReplacingTextFormatterTest.java │ │ ├── logging │ │ ├── FileLogTest.java │ │ ├── NoStdOutErrTest.java │ │ ├── OutputControllerLoggerTest.java │ │ ├── OutputControllerTest.java │ │ ├── PrintStreamLoggerTest.java │ │ ├── TeeOutputStreamTest.java │ │ └── WriterBasedFileLogTest.java │ │ └── whitelist │ │ ├── UrlWhiteListUtilsTest.java │ │ └── WhitelistEntryTest.java │ └── resources │ └── net │ ├── adoptopenjdk │ └── icedteaweb │ │ ├── icon │ │ └── resources │ │ │ ├── favicon1.ico │ │ │ ├── favicon2.ico │ │ │ ├── favicon3.ico │ │ │ ├── favicon4.ico │ │ │ ├── favicon5.ico │ │ │ ├── favicon6.ico │ │ │ ├── ico1-bmp-noTrans.ico │ │ │ ├── ico1-bmp-trans.ico │ │ │ ├── ico1-png-noTrans.ico │ │ │ ├── ico1-png-trans.ico │ │ │ ├── ico24-bmp-noTrans.ico │ │ │ ├── ico24-bmp-trans.ico │ │ │ ├── ico24-png-noTrans.ico │ │ │ ├── ico24-png-trans.ico │ │ │ ├── ico32-bmp-noTrans.ico │ │ │ ├── ico32-bmp-trans.ico │ │ │ ├── ico32-png-noTrans.ico │ │ │ ├── ico32-png-trans.ico │ │ │ ├── ico4-bmp-noTrans.ico │ │ │ ├── ico4-bmp-trans.ico │ │ │ ├── ico4-png-noTrans.ico │ │ │ ├── ico4-png-trans.ico │ │ │ ├── ico8-bmp-noTrans.ico │ │ │ ├── ico8-bmp-trans.ico │ │ │ ├── ico8-png-noTrans.ico │ │ │ └── ico8-png-trans.ico │ │ ├── proxy │ │ └── ie │ │ │ └── reg_query.out │ │ └── resources │ │ └── jardiff │ │ ├── diff-1-to-2.jardiff │ │ ├── diff-2-to-3.jardiff │ │ ├── diff-3-to-4.jardiff │ │ ├── diff-4-to-5.jardiff │ │ ├── diff-5-to-6.jardiff │ │ ├── diff-6-to-7.jardiff │ │ ├── diff-7-to-8.jardiff │ │ ├── version-1.jar │ │ ├── version-2.jar │ │ ├── version-3.jar │ │ ├── version-4.jar │ │ ├── version-5.jar │ │ ├── version-6.jar │ │ ├── version-7.jar │ │ └── version-8.jar │ └── sourceforge │ └── jnlp │ ├── ParserVersionStringTest.jnlp │ ├── appletsizes │ ├── abs.jnlp │ ├── bad.jnlp │ ├── nothing.jnlp │ └── percent.jnlp │ ├── application │ ├── application0.jnlp │ ├── application1.jnlp │ ├── application2.jnlp │ ├── application3.jnlp │ ├── application4.jnlp │ ├── application5.jnlp │ ├── application6.jnlp │ ├── application7.jnlp │ └── application8.jnlp │ ├── awt │ └── imagesearch │ │ └── marker.png │ ├── basic.jnlp │ ├── jarsInJreDesc.jnlp │ ├── launchApp.jnlp │ ├── minimal.jnlp │ ├── minimalWithHref.jnlp │ ├── runtime │ ├── j1.jar │ ├── jar03_dotdotN1.jar │ ├── jar_03_dotdot_jarN1.jnlp │ ├── pf.jar-orig │ ├── test.jnlp │ ├── up.jnlp │ └── upEncoded.jnlp │ └── templates │ ├── template0.jnlp │ ├── template1.jnlp │ ├── template2.jnlp │ ├── template3.jnlp │ ├── template4.jnlp │ ├── template5.jnlp │ ├── template6.jnlp │ ├── template7.jnlp │ ├── template8.jnlp │ └── template9.jnlp ├── integration-tests ├── jacoco-operator │ └── org │ │ └── jacoco │ │ └── operator │ │ ├── Main.java │ │ ├── MergeTask.java │ │ └── ReportGenerator.java ├── report-styles │ ├── index.js │ ├── jreport.xsl │ ├── logs.xsl │ ├── output.css │ ├── report.css │ └── textreport.xsl └── reproducers │ ├── README │ ├── cloneReproducer.sh │ ├── custom │ ├── AdditionalJarsInMetaInfIndexList │ │ ├── resources │ │ │ ├── AdditionalJarsInMetaInfIndexListSigned.jnlp │ │ │ └── AdditionalJarsInMetaInfIndexListUnsigned.jnlp │ │ ├── srcs │ │ │ ├── LoadedViaMetaInfIndexList.java │ │ │ └── Makefile │ │ └── testcases │ │ │ └── AdditionalJarsInMetaInfIndexListTests.java │ ├── AppletExtendsFromOutsideJar │ │ ├── README │ │ ├── resources │ │ │ └── AppletExtendsFromOutsideJar.html │ │ ├── srcs │ │ │ ├── AppletReferenceInSameJar.java │ │ │ ├── AppletReferenceOutOfJar.java │ │ │ ├── Makefile │ │ │ └── Referenced.java │ │ └── testcases │ │ │ └── AppletExtendsFromOutsideJarTests.java │ ├── AppletFolderInArchiveTag │ │ ├── resources │ │ │ └── AppletFolderInArchiveTag.html │ │ ├── srcs │ │ │ ├── AppletFolderInArchiveTag.java │ │ │ └── Makefile │ │ └── testcases │ │ │ └── AppletFolderInArchiveTagTests.java │ ├── ExtensionJnlpsInApplet │ │ ├── resources │ │ │ ├── ExtensionJnlpHelper.jnlp │ │ │ ├── ExtensionJnlpTest.html │ │ │ └── ExtensionJnlpTestApplet.jnlp │ │ ├── srcs │ │ │ ├── ExtensionJnlpHelper.java │ │ │ ├── ExtensionJnlpTestApplet.java │ │ │ └── Makefile │ │ └── testcases │ │ │ └── ExtensionJnlpsInAppletTest.java │ ├── GifarCreator │ │ └── srcs │ │ │ └── Makefile │ ├── JNLPClassLoaderDeadlock │ │ ├── resources │ │ │ └── JNLPClassLoaderDeadlock.html │ │ ├── srcs │ │ │ ├── JNLPClassLoaderDeadlock_1.java │ │ │ ├── JNLPClassLoaderDeadlock_2.java │ │ │ └── Makefile │ │ └── testcases │ │ │ └── JNLPClassLoaderDeadlockTest.java │ ├── JavaFx │ │ ├── resources │ │ │ ├── JavaFx.jar │ │ │ └── JavaFx.jnlp │ │ ├── srcs │ │ │ ├── Controller.java │ │ │ ├── Main.java │ │ │ ├── Makefile │ │ │ └── helloworld.fxml │ │ └── testcases │ │ │ └── JavaFxTest.java │ ├── MixedSigningAndTrustedOnly │ │ ├── resources │ │ │ ├── MixedSigningAndTrustedOnly.html.in │ │ │ ├── MixedSigningAndTrustedOnlyApp.jnlp.in │ │ │ └── MixedSigningAndTrustedOnlyApplet.jnlp.in │ │ ├── srcs │ │ │ ├── MANIFEST.MF │ │ │ ├── Makefile │ │ │ ├── MixedSigningAndTrustedOnlyClass1.java │ │ │ └── MixedSigningAndTrustedOnlyClass2.java │ │ └── testcases │ │ │ └── MixedSigningAndTrustedOnlyPackage │ │ │ ├── MixedSigningAndTrustedOnly.java │ │ │ ├── MixedSigningAndTrustedOnlyBS1.java │ │ │ ├── MixedSigningAndTrustedOnlyBSmanifest.java │ │ │ └── MixedSigningAndTrustedOnlyFSSU.java │ ├── MixedSigningApplet │ │ ├── resources │ │ │ ├── MixedSigningApplet.html │ │ │ └── MixedSigningApplet.jnlp │ │ ├── srcs │ │ │ ├── Makefile │ │ │ ├── MixedSigningAppletHelper.java │ │ │ └── MixedSigningAppletSigned.java │ │ └── testcases │ │ │ └── MixedSigningAppletSignedTests.java │ ├── MultipleSignaturesPerJar │ │ ├── resources │ │ │ ├── MultipleSignaturesPerJarMatching.html │ │ │ ├── MultipleSignaturesPerJarMatching.jnlp │ │ │ ├── MultipleSignaturesPerJarMismatching.html │ │ │ └── MultipleSignaturesPerJarMismatching.jnlp │ │ ├── srcs │ │ │ ├── Makefile │ │ │ └── somecrazytestpackage │ │ │ │ └── MultipleSignaturesPerJarMain.java │ │ └── testcases │ │ │ └── MultipleSignaturesPerJarTests.java │ ├── NoClassDeff │ │ ├── resources │ │ │ ├── NoClassDeff.html.in │ │ │ ├── NoClassDeffApp.jnlp.in │ │ │ ├── NoClassDeffApplet.jnlp.in │ │ │ └── NoClassDeffJnlpHref.html.in │ │ ├── srcs │ │ │ ├── Makefile │ │ │ └── NoClassDeff.java │ │ └── testcases │ │ │ └── NoClassDeffTest.java │ ├── PackGZip │ │ ├── resources │ │ │ ├── PackGZip.jnlp │ │ │ ├── PackGZipApplet.html │ │ │ └── PackGZipJNLP.html │ │ ├── srcs │ │ │ ├── Makefile │ │ │ └── PackGZip.java │ │ └── testcases │ │ │ └── PackGZipTest.java │ ├── PartiallySignedAppletManifestSpecifiesSandbox │ │ ├── resources │ │ │ ├── PartiallySignedAppletManifestSpecifiesAllPermissionSigned.html │ │ │ ├── PartiallySignedAppletManifestSpecifiesAllPermissionSigned.jnlp │ │ │ ├── PartiallySignedAppletManifestSpecifiesAllPermissionSignedJNLPhref.html │ │ │ ├── PartiallySignedAppletManifestSpecifiesAllPermissionUnsigned.html │ │ │ ├── PartiallySignedAppletManifestSpecifiesAllPermissionUnsigned.jnlp │ │ │ ├── PartiallySignedAppletManifestSpecifiesAllPermissionUnsignedJNLPhref.html │ │ │ ├── PartiallySignedAppletManifestSpecifiesSandboxSigned.html │ │ │ ├── PartiallySignedAppletManifestSpecifiesSandboxSigned.jnlp │ │ │ ├── PartiallySignedAppletManifestSpecifiesSandboxSignedJNLPhref.html │ │ │ ├── PartiallySignedAppletManifestSpecifiesSandboxUnsigned.html │ │ │ ├── PartiallySignedAppletManifestSpecifiesSandboxUnsigned.jnlp │ │ │ ├── PartiallySignedAppletManifestSpecifiesSandboxUnsignedJNLPhref.html │ │ │ ├── PartiallySignedApplicationManifestSpecifiesAllPermissionSigned.jnlp │ │ │ ├── PartiallySignedApplicationManifestSpecifiesAllPermissionUnsigned.jnlp │ │ │ ├── PartiallySignedApplicationManifestSpecifiesSandboxSigned.jnlp │ │ │ └── PartiallySignedApplicationManifestSpecifiesSandboxUnsigned.jnlp │ │ ├── srcs │ │ │ ├── MANIFEST.MF.1 │ │ │ ├── MANIFEST.MF.2 │ │ │ ├── Makefile │ │ │ ├── PartiallySignedAppletManifestSpecifiesSandboxSigned.java │ │ │ └── PartiallySignedAppletManifestSpecifiesSandboxUnsigned.java │ │ └── testcases │ │ │ └── PartiallySignedAppletManifestSpecifiesSandboxTests.java │ ├── SignedAppletCodebaseLoading │ │ ├── resources │ │ │ └── SignedAppletCodebaseLoading.html │ │ ├── srcs │ │ │ ├── Makefile │ │ │ ├── SignedAppletCodebaseLoading.java │ │ │ └── SignedAppletCodebaseLoadingHelper.java │ │ └── testcases │ │ │ └── SignedAppletCodebaseLoadingTests.java │ ├── SignedAppletExternalMainClass │ │ ├── resources │ │ │ └── SignedAppletExternalMainClass.html │ │ ├── srcs │ │ │ ├── Makefile │ │ │ ├── SignedAppletExternalMainClass.java │ │ │ └── SignedAppletExternalMainClassHelper.java │ │ └── testcases │ │ │ └── SignedAppletExternalMainClassTest.java │ ├── TrustedOnlyAttribute │ │ ├── resources │ │ │ ├── TrustedOnlyAttribute-signed-nosecurity.jnlp │ │ │ ├── TrustedOnlyAttribute-signed-security.jnlp │ │ │ ├── TrustedOnlyAttribute-signed.html │ │ │ ├── TrustedOnlyAttribute-unsigned-nosecurity.jnlp │ │ │ ├── TrustedOnlyAttribute-unsigned-security.jnlp │ │ │ └── TrustedOnlyAttribute-unsigned.html │ │ ├── srcs │ │ │ ├── MANIFEST.MF │ │ │ ├── Makefile │ │ │ └── TrustedOnlyAttribute.java │ │ └── testcases │ │ │ └── TrustedOnlyAttributeTest.java │ ├── UnsignedContentInMETAINF │ │ ├── resources │ │ │ └── UnsignedContentInMETAINF.jnlp │ │ ├── srcs │ │ │ ├── META-INF │ │ │ │ └── unsigned_file_in_metainf │ │ │ └── Makefile │ │ └── testcases │ │ │ └── UnsignedContentInMETAINF.java │ └── remote │ │ ├── srcs │ │ └── Makefile │ │ └── testcases │ │ ├── RemoteApplicationSettings.java │ │ └── RemoteApplicationTests.java │ ├── signed │ ├── AccessClassInPackageSigned │ │ ├── resources │ │ │ ├── AccessClassInPackageSignedJAVAXJNLP.jnlp │ │ │ ├── AccessClassInPackageSignedNETSF.jnlp │ │ │ ├── AccessClassInPackageSignedSELF.jnlp │ │ │ └── AccessClassInPackageSignedSUNSEC.jnlp │ │ └── srcs │ │ │ └── AccessClassInPackageSigned.java │ ├── AppContextHasJNLPClassLoader │ │ ├── resources │ │ │ ├── AppContextHasJNLPClassLoader.html │ │ │ ├── AppContextHasJNLPClassLoader.jnlp │ │ │ └── AppContextHasJNLPClassLoaderForJNLPApplet.jnlp │ │ ├── srcs │ │ │ └── AppContextHasJNLPClassLoader.java │ │ └── testcases │ │ │ └── AppContextHasJNLPClassLoaderTest.java │ ├── AppletTestSigned │ │ ├── resources │ │ │ ├── AppletTestSigned.html │ │ │ ├── AppletTestSigned.jnlp │ │ │ └── AppletTestSigned2.html │ │ ├── srcs │ │ │ └── AppletTestSigned.java │ │ └── testcases │ │ │ └── AppletTestSignedTests.java │ ├── CacheReproducer │ │ ├── resources │ │ │ ├── CacheReproducer1.jnlp │ │ │ ├── CacheReproducer1_1.jnlp │ │ │ ├── CacheReproducer2.jnlp │ │ │ └── CacheReproducer2_1.jnlp │ │ ├── srcs │ │ │ └── CacheReproducer.java │ │ └── testcases │ │ │ └── CacheReproducerTest.java │ ├── CheckPluginParams │ │ ├── resources │ │ │ ├── CheckPluginParams.jnlp │ │ │ ├── CheckPluginParams1.html │ │ │ └── CheckPluginParams2.html │ │ ├── srcs │ │ │ └── CheckPluginParams.java │ │ └── testcases │ │ │ └── CheckPluginParamsTests.java │ ├── Classpath.Manifest.Test.Helper │ │ └── srcs │ │ │ └── CheckForClasspath.java │ ├── ClasspathManifestTest │ │ ├── resources │ │ │ ├── ClasspathManifestAppletTest.html │ │ │ ├── ClasspathManifestAppletTest.jnlp │ │ │ ├── ClasspathManifestApplicationTest.jnlp │ │ │ └── ClasspathManifestJNLPHrefTest.html │ │ ├── srcs │ │ │ ├── ClasspathManifest.java │ │ │ └── META-INF │ │ │ │ └── MANIFEST.MF │ │ └── testcases │ │ │ └── ClasspathManifestTest.java │ ├── ClipboardContentSigned │ │ ├── resources │ │ │ ├── ClipboardContentSignedCopy1.jnlp │ │ │ ├── ClipboardContentSignedCopy2.jnlp │ │ │ ├── ClipboardContentSignedPaste1.jnlp │ │ │ └── ClipboardContentSignedPaste2.jnlp │ │ ├── srcs │ │ │ └── ClipboardContentSigned.java │ │ └── testcases │ │ │ └── ClipboardContentSignedTests.java │ ├── CodeBaseManifestEntrySignedMatching │ │ ├── resources │ │ │ ├── CodeBaseManifestEntrySignedMatching.html │ │ │ ├── CodeBaseManifestEntrySignedMatching.jnlp │ │ │ ├── CodeBaseManifestEntrySignedMatchingApplet.jnlp │ │ │ └── CodeBaseManifestEntrySignedMatchingJnlp.html │ │ ├── srcs │ │ │ ├── CodeBaseManifestEntrySignedMatching.java │ │ │ └── META-INF │ │ │ │ └── MANIFEST.MF │ │ └── testcases │ │ │ ├── CodeBaseManifestEntrySignedMatching.java │ │ │ ├── CodeBaseManifestEntrySignedNotMatching.java │ │ │ ├── CodeBaseManifestEntryUnsignedMatching.java │ │ │ └── CodeBaseManifestEntryUnsignedNotMatching.java │ ├── CodeBaseManifestEntrySignedNotMatching │ │ ├── resources │ │ │ ├── CodeBaseManifestEntrySignedNotMatching.html │ │ │ ├── CodeBaseManifestEntrySignedNotMatching.jnlp │ │ │ ├── CodeBaseManifestEntrySignedNotMatchingApplet.jnlp │ │ │ └── CodeBaseManifestEntrySignedNotMatchingJnlp.html │ │ └── srcs │ │ │ ├── CodeBaseManifestEntrySignedNotMatching.java │ │ │ └── META-INF │ │ │ └── MANIFEST.MF │ ├── CodebasesAttsSigned │ │ ├── resources │ │ │ ├── CodebasesAttsSigned.html.in │ │ │ ├── CodebasesAttsSignedApp.jnlp.in │ │ │ ├── CodebasesAttsSignedApplet.jnlp.in │ │ │ └── CodebasesAttsSignedJnlpHref.html.in │ │ ├── srcs │ │ │ └── CodebasesAttsSigned.java │ │ └── testcases │ │ │ └── CodebasesAttsSignedDialogsTest1.java │ ├── CountingAppletSigned │ │ └── srcs │ │ │ └── CountingAppletSigned.java │ ├── CustomPolicy │ │ ├── resources │ │ │ └── CustomPolicy.jnlp │ │ ├── srcs │ │ │ └── CustomPolicy.java │ │ └── testcases │ │ │ └── CustomPolicyTests.java │ ├── DeploymentPropertiesAreExposed │ │ ├── resources │ │ │ └── DeploymentPropertiesAreExposed.jnlp │ │ ├── srcs │ │ │ └── Test.java │ │ └── testcases │ │ │ └── DeploymentPropertiesAreExposedTest.java │ ├── DownloadService │ │ ├── resources │ │ │ ├── DownloadService.jnlp │ │ │ └── DownloadServiceExtension.jnlp │ │ ├── srcs │ │ │ └── DownloadServiceRunner.java │ │ └── testcases │ │ │ └── DownloadServiceTest.java │ ├── EmptySignedJar │ │ ├── resources │ │ │ ├── EmptySignedJarExtension.jnlp │ │ │ ├── EmptySignedJarInExtensionJnlp.jnlp │ │ │ └── EmptySignedJarInLaunchingJnlp.jnlp │ │ ├── srcs │ │ │ └── META-INF │ │ │ │ └── empty_file │ │ └── testcases │ │ │ └── EmptySignedJarTest.java │ ├── EntryPointSignedSingleBothInvalid │ │ ├── resources │ │ │ ├── EntryPointSignedSingleBothInvalid.html │ │ │ ├── EntryPointSignedSingleBothInvalid.jnlp │ │ │ ├── EntryPointSignedSingleBothInvalid_applet.jnlp │ │ │ ├── EntryPointSignedSingleBothInvalid_applet_security.jnlp │ │ │ └── EntryPointSignedSingleBothInvalid_security.jnlp │ │ ├── srcs │ │ │ ├── EntryPointSignedSingleBothInvalid.java │ │ │ └── META-INF │ │ │ │ └── MANIFEST.MF │ │ └── testcases │ │ │ └── EntryPointSignedSingleBothInvalidTest.java │ ├── EntryPointSignedSingleBothOk │ │ ├── resources │ │ │ ├── EntryPointSignedSingleBothOk1.html │ │ │ ├── EntryPointSignedSingleBothOk1.jnlp │ │ │ ├── EntryPointSignedSingleBothOk2.html │ │ │ ├── EntryPointSignedSingleBothOk2.jnlp │ │ │ ├── EntryPointSignedSingleBothOk_applet1.jnlp │ │ │ ├── EntryPointSignedSingleBothOk_applet2.jnlp │ │ │ ├── EntryPointSignedSingleBothOk_applet_security1.jnlp │ │ │ ├── EntryPointSignedSingleBothOk_applet_security2.jnlp │ │ │ ├── EntryPointSignedSingleBothOk_security1.jnlp │ │ │ └── EntryPointSignedSingleBothOk_security2.jnlp │ │ ├── srcs │ │ │ ├── EntryPointSignedSingleBothOk1.java │ │ │ ├── EntryPointSignedSingleBothOk2.java │ │ │ └── META-INF │ │ │ │ └── MANIFEST.MF │ │ └── testcases │ │ │ ├── EntryPointSignedSingleBothOkTest1.java │ │ │ └── EntryPointSignedSingleBothOkTest2.java │ ├── EntryPointSignedSingleFirstInvalidSecondOk │ │ ├── resources │ │ │ ├── EntryPointSignedSingleFirstInvalidSecondOk.html │ │ │ ├── EntryPointSignedSingleFirstInvalidSecondOk.jnlp │ │ │ ├── EntryPointSignedSingleFirstInvalidSecondOk_applet.jnlp │ │ │ ├── EntryPointSignedSingleFirstInvalidSecondOk_applet_security.jnlp │ │ │ └── EntryPointSignedSingleFirstInvalidSecondOk_security.jnlp │ │ ├── srcs │ │ │ ├── EntryPointSignedSingleFirstInvalidSecondOk.java │ │ │ └── META-INF │ │ │ │ └── MANIFEST.MF │ │ └── testcases │ │ │ └── EntryPointSignedSingleFirstInvalidSecondOkTest.java │ ├── EntryPointSignedSingleInvalid │ │ ├── resources │ │ │ ├── EntryPointSignedSingleInvalid.html │ │ │ ├── EntryPointSignedSingleInvalid.jnlp │ │ │ ├── EntryPointSignedSingleInvalid_applet.jnlp │ │ │ ├── EntryPointSignedSingleInvalid_applet_security.jnlp │ │ │ └── EntryPointSignedSingleInvalid_security.jnlp │ │ ├── srcs │ │ │ ├── EntryPointSignedSingleInvalid.java │ │ │ └── META-INF │ │ │ │ └── MANIFEST.MF │ │ └── testcases │ │ │ └── EntryPointSignedSingleInvalidTest.java │ ├── EntryPointSignedSingleOk │ │ ├── resources │ │ │ ├── EntryPointSignedSingleOk.html │ │ │ ├── EntryPointSignedSingleOk.jnlp │ │ │ ├── EntryPointSignedSingleOk_applet.jnlp │ │ │ ├── EntryPointSignedSingleOk_applet_security.jnlp │ │ │ └── EntryPointSignedSingleOk_security.jnlp │ │ ├── srcs │ │ │ ├── EntryPointSignedSingleOk.java │ │ │ └── META-INF │ │ │ │ └── MANIFEST.MF │ │ └── testcases │ │ │ └── EntryPointSignedSingleOkTest.java │ ├── EntryPointSignedSingleSecondInvalidFirstOk │ │ ├── resources │ │ │ ├── EntryPointSignedSingleSecondInvalidFirstOk.html │ │ │ ├── EntryPointSignedSingleSecondInvalidFirstOk.jnlp │ │ │ ├── EntryPointSignedSingleSecondInvalidFirstOk_applet.jnlp │ │ │ ├── EntryPointSignedSingleSecondInvalidFirstOk_applet_security.jnlp │ │ │ └── EntryPointSignedSingleSecondInvalidFirstOk_security.jnlp │ │ ├── srcs │ │ │ ├── EntryPointSignedSingleSecondInvalidFirstOk.java │ │ │ └── META-INF │ │ │ │ └── MANIFEST.MF │ │ └── testcases │ │ │ └── EntryPointSignedSingleSecondInvalidFirstOkTest.java │ ├── ExtensionJnlp │ │ ├── resources │ │ │ ├── UsesSignedJar.jnlp │ │ │ ├── UsesSignedJarExtension.jnlp │ │ │ ├── UsesSignedJnlp.jnlp │ │ │ ├── UsesSignedJnlpExtension.jnlp │ │ │ └── UsesSignedJnlpJarAndSignedJarExtension.jnlp │ │ └── testcases │ │ │ └── ExtensionJnlpTest.java │ ├── GifarBase │ │ ├── resources │ │ │ ├── gifarView_hacked.html │ │ │ ├── gifarView_ok.html │ │ │ ├── gifar_applet.jnlp │ │ │ ├── gifar_application.jnlp │ │ │ └── happyNonAnimated.gif │ │ ├── srcs │ │ │ └── GifarMain.java │ │ └── testcases │ │ │ └── GifarTestcases.java │ ├── InternalClassloaderWithDownloadedResource │ │ ├── resources │ │ │ ├── InternalClassloaderWithDownloadedResource-applet-hack.jnlp │ │ │ ├── InternalClassloaderWithDownloadedResource-applet-new.jnlp │ │ │ ├── InternalClassloaderWithDownloadedResource-hack.html │ │ │ ├── InternalClassloaderWithDownloadedResource-hack.jnlp │ │ │ ├── InternalClassloaderWithDownloadedResource-new.html │ │ │ └── InternalClassloaderWithDownloadedResource-new.jnlp │ │ ├── srcs │ │ │ └── InternalClassloaderWithDownloadedResource.java │ │ └── testcases │ │ │ └── InternalClassloaderWithDownloadedResourceTest.java │ ├── Kemtrakpro │ │ ├── resources │ │ │ ├── Kemtrak.jnlp │ │ │ └── Kemtrak_javaws.jnlp │ │ ├── srcs │ │ │ ├── Kemtrak.java │ │ │ └── META-INF │ │ │ │ └── MANIFEST.MF │ │ └── testcases │ │ │ └── KemtrakTests.java │ ├── LoadResources │ │ ├── resources │ │ │ ├── LoadResources1.jnlp │ │ │ ├── LoadResources2.jnlp │ │ │ ├── LoadResourcesApplet1.jnlp │ │ │ └── LoadResourcesApplet2.jnlp │ │ ├── srcs │ │ │ ├── LoadResources.java │ │ │ ├── LoadResourcesPackaged.java │ │ │ └── some.file │ │ └── testcases │ │ │ └── LoadResourcesTest.java │ ├── MissingJar │ │ ├── resources │ │ │ ├── MissingJar.jnlp │ │ │ ├── MissingJar2.jnlp │ │ │ ├── MissingJar3.jnlp │ │ │ └── MissingJar4.jnlp │ │ ├── srcs │ │ │ └── MissingJar.java │ │ └── testcases │ │ │ └── MissingJarTest.java │ ├── MultiJar-NoSignedJnlp │ │ ├── resources │ │ │ └── MainJarWithoutSignedJnlp.jnlp │ │ └── srcs │ │ │ └── SimpleApplication.java │ ├── MultiJar-SignedJnlpApplication │ │ ├── resources │ │ │ ├── MainJarWithMatchingSignedJnlpApplication.jnlp │ │ │ └── MainJarWithUnmatchingSignedJnlpApplication.jnlp │ │ ├── srcs │ │ │ ├── JNLP-INF │ │ │ │ └── APPLICATION.jnlp │ │ │ └── SignedJnlpApplication.java │ │ └── testcases │ │ │ └── MultiJarSignedJnlpTest.java │ ├── MultiJar-SignedJnlpTemplate │ │ ├── resources │ │ │ ├── MainJarWithMatchingSignedJnlpTemplate.jnlp │ │ │ └── MainJarWithUnmatchingSignedJnlpTemplate.jnlp │ │ └── srcs │ │ │ ├── JNLP-INF │ │ │ └── APPLICATION_TEMPLATE.jnlp │ │ │ └── SignedJnlpTemplate.java │ ├── ReadPropertiesBySignedHack │ │ ├── resources │ │ │ └── ReadPropertiesBySignedHack.jnlp │ │ ├── srcs │ │ │ └── ReadPropertiesBySignedHack.java │ │ └── testcases │ │ │ └── ReadPropertiesBySignedHackTest.java │ ├── ReadPropertiesSigned │ │ ├── README │ │ ├── resources │ │ │ ├── ReadPropertiesSigned1.jnlp │ │ │ └── ReadPropertiesSigned2.jnlp │ │ ├── srcs │ │ │ └── ReadPropertiesSigned.java │ │ └── testcases │ │ │ └── ReadPropertiesSignedTest.java │ ├── RunInSandbox │ │ ├── resources │ │ │ ├── RunInSandbox.html │ │ │ ├── RunInSandboxApplet.jnlp │ │ │ ├── RunInSandboxApplication.jnlp │ │ │ └── RunInSandboxJnlpHref.html │ │ ├── srcs │ │ │ └── RunInSandbox.java │ │ └── testcases │ │ │ └── RunInSandboxTest.java │ ├── SOPBypassSigned │ │ └── srcs │ │ │ └── SOPBypassSigned.java │ ├── SandboxSignedAllPerm │ │ ├── resources │ │ │ ├── SandboxSignedAllPerm.html │ │ │ ├── SandboxSignedAllPerm.jnlp │ │ │ ├── SandboxSignedAllPerm_applet.jnlp │ │ │ ├── SandboxSignedAllPerm_applet_security.jnlp │ │ │ └── SandboxSignedAllPerm_security.jnlp │ │ ├── srcs │ │ │ ├── META-INF │ │ │ │ └── MANIFEST.MF │ │ │ └── SandboxSignedAllPerm.java │ │ └── testcases │ │ │ └── SandboxSignedAllPermTest.java │ ├── SandboxSignedInvalid │ │ ├── resources │ │ │ ├── SandboxSignedInvalid.html │ │ │ ├── SandboxSignedInvalid.jnlp │ │ │ ├── SandboxSignedInvalid_applet.jnlp │ │ │ ├── SandboxSignedInvalid_applet_security.jnlp │ │ │ └── SandboxSignedInvalid_security.jnlp │ │ ├── srcs │ │ │ ├── META-INF │ │ │ │ └── MANIFEST.MF │ │ │ └── SandboxSignedInvalid.java │ │ └── testcases │ │ │ └── SandboxSignedInvalidTest.java │ ├── SandboxSignedMissing │ │ ├── resources │ │ │ ├── SandboxSignedMissing.html │ │ │ ├── SandboxSignedMissing.jnlp │ │ │ ├── SandboxSignedMissing_applet.jnlp │ │ │ ├── SandboxSignedMissing_applet_security.jnlp │ │ │ └── SandboxSignedMissing_security.jnlp │ │ ├── srcs │ │ │ ├── META-INF │ │ │ │ └── MANIFEST.MF │ │ │ └── SandboxSignedMissing.java │ │ └── testcases │ │ │ ├── SandboxSignedMissingTest.java │ │ │ └── SandboxSignedMissingTestHighSecurity.java │ ├── SandboxSignedSandbox │ │ ├── resources │ │ │ ├── SandboxSignedSandbox.html │ │ │ ├── SandboxSignedSandbox.jnlp │ │ │ ├── SandboxSignedSandbox_applet.jnlp │ │ │ ├── SandboxSignedSandbox_applet_security.jnlp │ │ │ └── SandboxSignedSandbox_security.jnlp │ │ ├── srcs │ │ │ ├── META-INF │ │ │ │ └── MANIFEST.MF │ │ │ └── SandboxSignedSandbox.java │ │ └── testcases │ │ │ └── SandboxSignedSandboxTest.java │ ├── SavingCookies │ │ ├── resources │ │ │ ├── CheckCookie.html │ │ │ ├── CheckCookieAndGotoClear.html │ │ │ ├── ClearPersistentCookie.html │ │ │ ├── SavePersistentCookie.html │ │ │ ├── SavePersistentCookieAndGotoCheck.html │ │ │ ├── SaveSessionCookie.html │ │ │ └── SaveSessionCookieAndGotoCheck.html │ │ ├── srcs │ │ │ ├── CheckingCookies.java │ │ │ └── SavingCookies.java │ │ └── testcases │ │ │ └── SavingCookiesTests.java │ ├── ShowDocument │ │ ├── resources │ │ │ ├── ShowDocumentApplet.jnlp │ │ │ ├── ShowDocumentMain.jnlp │ │ │ └── document.txt │ │ ├── srcs │ │ │ └── ShowDocument.java │ │ └── testcases │ │ │ └── ShowDocumentTest.java │ ├── SignedAppletManifestSpecifiesSandbox │ │ ├── resources │ │ │ ├── SignedAppletManifestSpecifiesSandbox.html │ │ │ ├── SignedAppletManifestSpecifiesSandboxApplet.jnlp │ │ │ ├── SignedAppletManifestSpecifiesSandboxApplication.jnlp │ │ │ └── SignedAppletManifestSpecifiesSandboxJnlpHref.html │ │ ├── srcs │ │ │ ├── META-INF │ │ │ │ └── MANIFEST.MF │ │ │ └── SignedAppletManifestSpecifiesSandbox.java │ │ └── testcases │ │ │ └── SignedAppletManifestSpecifiesSandboxTests.java │ ├── SignedJarResource │ │ ├── resources │ │ │ ├── SignedJarExtension.jnlp │ │ │ └── SignedJarResource.jnlp │ │ └── srcs │ │ │ └── SignedJarResource.java │ ├── SignedJnlpApplication │ │ ├── resources │ │ │ ├── SignedJnlpApplication1.jnlp │ │ │ ├── SignedJnlpApplication2.jnlp │ │ │ └── SignedJnlpApplication3.jnlp │ │ ├── srcs │ │ │ ├── JNLP-INF │ │ │ │ └── APPLICATION.jnlp │ │ │ └── SignedJnlpApplication.java │ │ └── testcases │ │ │ └── SignedJnlpApplicationTest.java │ ├── SignedJnlpCaseTestOne │ │ ├── resources │ │ │ ├── SignedJnlpCaseTestOne1.jnlp │ │ │ └── SignedJnlpCaseTestOne2.jnlp │ │ ├── srcs │ │ │ ├── JNLP-INF │ │ │ │ └── aPpLiCaTioN.jnlp │ │ │ └── SignedJnlpCase.java │ │ └── testcases │ │ │ └── SignedJnlpCaseOneTest.java │ ├── SignedJnlpCaseTestTwo │ │ ├── resources │ │ │ ├── SignedJnlpCaseTestTwo1.jnlp │ │ │ └── SignedJnlpCaseTestTwo2.jnlp │ │ ├── srcs │ │ │ ├── JNLP-INF │ │ │ │ └── aPpLiCaTiOn_tEmPlAte.jnlp │ │ │ └── SignedJnlpCase.java │ │ └── testcases │ │ │ └── SignedJnlpCaseTwoTest.java │ ├── SignedJnlpResource │ │ ├── resources │ │ │ ├── MatchingSignedJnlpExtension.jnlp │ │ │ └── UnmatchingSignedJnlpExtension.jnlp │ │ └── srcs │ │ │ ├── JNLP-INF │ │ │ └── APPLICATION_TEMPLATE.jnlp │ │ │ └── SignedJnlpResource.java │ ├── SignedJnlpTemplate │ │ ├── resources │ │ │ ├── SignedJnlpTemplate1.jnlp │ │ │ ├── SignedJnlpTemplate2.jnlp │ │ │ └── SignedJnlpTemplate3.jnlp │ │ ├── srcs │ │ │ ├── JNLP-INF │ │ │ │ └── APPLICATION_TEMPLATE.jnlp │ │ │ └── SignedJnlpTemplate.java │ │ └── testcases │ │ │ └── SignedJnlpTemplateTest.java │ ├── SimpletestSigned1 │ │ ├── resources │ │ │ └── SimpletestSigned1.jnlp │ │ └── srcs │ │ │ └── SimpletestSigned1.java │ ├── Spaces can be everywhere signed │ │ ├── resources │ │ │ ├── NotOnly spaces can kill ěščřž too signed.jnlp │ │ │ ├── Spaces can be everywhere1 signed.jnlp │ │ │ ├── Spaces can be everywhere2 signed.jnlp │ │ │ ├── SpacesCanBeEverywhere1signed.jnlp │ │ │ └── spaces applet Tests signed.html │ │ ├── srcs │ │ │ └── SpacesCanBeEverywhereSigned.java │ │ └── testcases │ │ │ └── SpacesCanBeEverywhereTestsSigned.java │ ├── jcalendar │ │ └── srcs │ │ │ └── jcalendar.java │ └── jsengineSigned │ │ ├── resources │ │ ├── jsengineAppletSigned.html │ │ ├── jsengineAppletSigned.jnlp │ │ └── jsengineSigned.jnlp │ │ ├── srcs │ │ ├── jsengineAppletSigned.java │ │ └── jsengineSigned.java │ │ └── testcases │ │ └── jsengineSignedTest.java │ ├── signed2 │ ├── AppletTestSigned2 │ │ └── srcs │ │ │ └── AppletTestSigned2.java │ ├── MultipleSignaturesTest │ │ ├── resources │ │ │ ├── MultipleSignaturesTest.html │ │ │ ├── MultipleSignaturesTest1.jnlp │ │ │ ├── MultipleSignaturesTest1_requesting.jnlp │ │ │ ├── MultipleSignaturesTest2.jnlp │ │ │ └── MultipleSignaturesTestUsesPermissions.html │ │ ├── srcs │ │ │ └── somecrazytestpackage │ │ │ │ └── MultipleSignaturesTest.java │ │ └── testcases │ │ │ └── MultipleSignaturesTestTests.java │ └── MultipleSignaturesTestSamePackage │ │ ├── resources │ │ ├── MultipleSignaturesTest1_SamePackage.jnlp │ │ ├── MultipleSignaturesTest1_SamePackage_requesting.jnlp │ │ ├── MultipleSignaturesTest2_SamePackage.jnlp │ │ └── MultipleSignaturesTest_SamePackage.html │ │ ├── srcs │ │ └── MultipleSignaturesTestSamePackage.java │ │ └── testcases │ │ └── MultipleSignaturesTestTestsSamePackage.java │ └── simple │ ├── AWTCommonResourcesOnly │ └── resources │ │ └── marker.png │ ├── AbsolutePathsAndQueryStrings │ └── resources │ │ ├── AbsolutePathsAndQueryStrings.html │ │ └── AbsolutePathsAndQueryStrings.jnlp │ ├── AccessClassInPackage │ ├── resources │ │ ├── AccessClassInPackageJAVAXJNLP.jnlp │ │ ├── AccessClassInPackageNETSF.jnlp │ │ ├── AccessClassInPackageSELF.jnlp │ │ └── AccessClassInPackageSUNSEC.jnlp │ ├── srcs │ │ └── AccessClassInPackage.java │ └── testcases │ │ └── AccessClassInPackageTest.java │ ├── AddShutdownHook │ ├── resources │ │ ├── AddShutdownHook.html │ │ ├── AddShutdownHook.jnlp │ │ └── AddShutdownHook_wrong.html │ ├── srcs │ │ └── AddShutdownHook.java │ └── testcases │ │ ├── AddShutdownHookTest.java │ │ └── HangFirefoxTests.java │ ├── AllStackTraces │ ├── resources │ │ └── AllStackTraces.jnlp │ ├── srcs │ │ └── AllStackTraces.java │ └── testcases │ │ └── AllStackTracesTest.java │ ├── AppletBaseURLTest │ ├── resources │ │ ├── AppletBaseURLTest.html │ │ ├── AppletBaseURLTest.jnlp │ │ └── AppletJNLPHrefBaseURLTest.html │ ├── srcs │ │ └── AppletBaseURL.java │ └── testcases │ │ └── AppletBaseURLTest.java │ ├── AppletJsAppletDeadlock │ ├── resources │ │ └── AppletJsAppletDeadlock.html │ ├── srcs │ │ └── AppletJsAppletDeadlock.java │ └── testcases │ │ └── AppletJsAppletDeadlockTest.java │ ├── AppletReadsInvalidJar │ ├── resources │ │ ├── AppletReadsInvalidJar.html │ │ ├── AppletReadsInvalidJar.jnlp │ │ └── NOT_A_VALID_JAR.jar │ ├── srcs │ │ └── Valid.java │ └── testcases │ │ └── AppletReadsInvalidJarTests.java │ ├── AppletSharedClassLoader │ ├── resources │ │ ├── LaunchSharedClassLoaderApplet-reader1-writer1.html │ │ ├── LaunchSharedClassLoaderApplet-reader1-writer2.html │ │ ├── LaunchSharedClassLoaderApplet-reader1.html │ │ ├── LaunchSharedClassLoaderApplet-reader2.html │ │ ├── LaunchSharedClassLoaderApplet-writer1.html │ │ ├── LaunchSharedClassLoaderApplet-writer2.html │ │ ├── LaunchSharedClassLoaderApplet2-reader1-writer1.html │ │ ├── LaunchSharedClassLoaderApplet2-reader1-writer2.html │ │ ├── LaunchSharedClassLoaderApplet2-reader1.html │ │ ├── LaunchSharedClassLoaderApplet2-reader2.html │ │ ├── LaunchSharedClassLoaderApplet2-writer1.html │ │ └── LaunchSharedClassLoaderApplet2-writer2.html │ ├── srcs │ │ ├── SharedClassLoaderApplet1.java │ │ ├── SharedClassLoaderApplet2.java │ │ └── SharedSecret.java │ └── testcases │ │ ├── SharedClassLoaderApplet_WrittenCompleteCodeBaseTest.java │ │ ├── SharedClassLoaderApplet_WrittenPartialStubCodeBaseTest.java │ │ └── SharedClassLoaderApplet_dotCodeBaseTest.java │ ├── AppletTagWithMissingCodeAttribute │ ├── resources │ │ ├── AppletJnlpWithMainClass.jnlp │ │ └── AppletTagWithMissingCodeAttribute.html │ └── testcases │ │ └── AppletTagWithMissingCodeAttribute.java │ ├── AppletTakesLastParam │ ├── resources │ │ ├── appletTakesLastParam.html │ │ └── appletTakesLastParam.jnlp │ ├── srcs │ │ └── AppletTakesLastParam.java │ └── testcases │ │ └── AppletTakesLastParamTests.java │ ├── AppletTest │ ├── resources │ │ ├── AppletTest.jnlp │ │ ├── appletAutoTests.html │ │ ├── appletAutoTests2.html │ │ ├── appletViewTest.html │ │ ├── appletZeroH.html │ │ ├── appletZeroW.html │ │ ├── appletZeroWH.html │ │ └── errorAppletAutoTests.html │ ├── srcs │ │ ├── AppletErrorTest.java │ │ └── AppletTest.java │ └── testcases │ │ └── AppletTestTests.java │ ├── CheckServices │ ├── resources │ │ ├── CheckPluginServices.html │ │ └── CheckServices.jnlp │ ├── srcs │ │ └── CheckServices.java │ └── testcases │ │ └── CheckServicesTests.java │ ├── ClipboardContent │ ├── resources │ │ ├── ClipboardContentCopy1.jnlp │ │ ├── ClipboardContentCopy2.jnlp │ │ ├── ClipboardContentPaste1.jnlp │ │ └── ClipboardContentPaste2.jnlp │ ├── srcs │ │ └── ClipboardContent.java │ └── testcases │ │ └── ClipboardContentTests.java │ ├── CodeBaseManifestEntryUnsignedMatching │ ├── resources │ │ ├── CodeBaseManifestEntryUnsignedMatching.html │ │ ├── CodeBaseManifestEntryUnsignedMatching.jnlp │ │ ├── CodeBaseManifestEntryUnsignedMatchingApplet.jnlp │ │ └── CodeBaseManifestEntryUnsignedMatchingJnlp.html │ └── srcs │ │ ├── CodeBaseManifestEntryUnsignedMatching.java │ │ └── META-INF │ │ └── MANIFEST.MF │ ├── CodeBaseManifestEntryUnsignedNotMatching │ ├── resources │ │ ├── CodeBaseManifestEntryUnsignedNotMatching.html │ │ ├── CodeBaseManifestEntryUnsignedNotMatching.jnlp │ │ ├── CodeBaseManifestEntryUnsignedNotMatchingApplet.jnlp │ │ └── CodeBaseManifestEntryUnsignedNotMatchingJnlp.html │ └── srcs │ │ ├── CodeBaseManifestEntryUnsignedNotMatching.java │ │ └── META-INF │ │ └── MANIFEST.MF │ ├── CodebasesAtts │ ├── resources │ │ ├── CodebasesAtts.html.in │ │ ├── CodebasesAttsApp.jnlp.in │ │ ├── CodebasesAttsApplet.jnlp.in │ │ └── CodebasesAttsJnlpHref.html.in │ ├── srcs │ │ └── CodebasesAtts.java │ └── testcases │ │ ├── CodebasesAttsDialogsTest1.java │ │ ├── CodebasesAttsNoDialogsTest1.java │ │ ├── CodebasesAttsNoDialogsTest2.java │ │ └── CodebasesAttsNoDialogsTest3.java │ ├── CountingApplet1 │ ├── resources │ │ ├── ParallelAppletsTest_1EE_x_2s.html │ │ ├── ParallelAppletsTest_1_x_1.html │ │ ├── ParallelAppletsTest_1_x_2.html │ │ ├── ParallelAppletsTest_1_x_2EE.html │ │ ├── ParallelAppletsTest_1_x_2e.html │ │ ├── ParallelAppletsTest_1_x_2sk.html │ │ ├── ParallelAppletsTest_1e_x_2s.html │ │ ├── ParallelAppletsTest_1k_x_2.html │ │ ├── ParallelAppletsTest_1s_x_2.html │ │ ├── ParallelAppletsTest_1s_x_2s.html │ │ └── ParallelAppletsTest_1s_x_2ss.html │ ├── srcs │ │ └── CountingApplet1.java │ └── testcases │ │ └── ParallelAppletsTest.java │ ├── CountingApplet2 │ └── srcs │ │ └── CountingApplet2.java │ ├── CreateClassLoader │ ├── resources │ │ └── CreateClassLoader.jnlp │ ├── srcs │ │ └── CreateClassLoader.java │ └── testcases │ │ └── CreateClassLoaderTest.java │ ├── CustomPolicies │ ├── resources │ │ ├── CustomPolicies.html │ │ ├── CustomPoliciesApplet.jnlp │ │ ├── CustomPoliciesApplication.jnlp │ │ └── CustomPoliciesJnlpHref.html │ ├── srcs │ │ └── CustomPolicies.java │ └── testcases │ │ └── CustomPoliciesTest.java │ ├── DocumentBaseEncoding │ ├── resources │ │ └── Document Base Encoding.html │ ├── srcs │ │ └── DocumentBaseEncoding.java │ └── testcases │ │ └── DocumentBaseEncodingTests.java │ ├── DownloadService2 │ ├── resources │ │ ├── DownloadService.jnlp │ │ └── DownloadService2.jnlp │ ├── srcs │ │ ├── DownloadService.java │ │ └── DownloadService2.java │ └── testcases │ │ └── DownloadService2Test.java │ ├── EmbeddedJnlpInApplet │ ├── resources │ │ ├── EmbeddedJnlp.jnlp │ │ ├── EmbeddedJnlpInAppletNoCodebase.html │ │ ├── EmbeddedJnlpInAppletWithDotCodebase.html │ │ └── JnlpInApplet.html │ ├── srcs │ │ └── EmbeddedJnlp.java │ └── testcases │ │ └── EmbeddedJnlpInAppletTest.java │ ├── EntryPointUnsignedSingleInvalid │ ├── resources │ │ ├── EntryPointUnsignedSingleInvalid.html │ │ ├── EntryPointUnsignedSingleInvalid.jnlp │ │ ├── EntryPointUnsignedSingleInvalid_applet.jnlp │ │ ├── EntryPointUnsignedSingleInvalid_applet_security.jnlp │ │ └── EntryPointUnsignedSingleInvalid_security.jnlp │ ├── srcs │ │ ├── EntryPointUnsignedSingleInvalid.java │ │ └── META-INF │ │ │ └── MANIFEST.MF │ └── testcases │ │ └── EntryPointUnsignedSingleInvalidTest.java │ ├── FakeCodebase │ ├── resources │ │ ├── FakeCodebase.html.in │ │ ├── FakeCodebase.jnlp.in │ │ ├── OriginalCodebase.html │ │ └── OriginalCodebase.jnlp │ ├── srcs │ │ └── FakeCodebase.java │ └── testcases │ │ └── FakeCodebaseTests.java │ ├── GeneratedId │ ├── resources │ │ └── GeneratedId.jnlp │ ├── srcs │ │ └── GeneratedId.java │ └── testcases │ │ └── GeneratedIdTest.java │ ├── Http511 │ ├── resources │ │ ├── Http511.html │ │ ├── Http511.jnlp │ │ ├── Http511_applet.jnlp │ │ └── Http511_href.html │ ├── srcs │ │ └── Http511.java │ └── testcases │ │ └── Http511Test.java │ ├── IcoAccess │ ├── resources │ │ ├── IcoAccess.html │ │ ├── IcoAccess.ico │ │ ├── IcoAccess.jnlp │ │ └── IcoAccess.png │ ├── srcs │ │ └── IcoAccess.java │ └── testcases │ │ └── IcoAccessTest.java │ ├── InformationTitleVendorParser │ ├── resources │ │ ├── InformationParser.jnlp │ │ ├── TitleParser.jnlp │ │ ├── TitleVendorParser.jnlp │ │ └── VendorParser.jnlp │ └── testcases │ │ └── InformationTitleVendorParserTest.java │ ├── JSObjectFromEval │ ├── resources │ │ ├── JSObjectFromEval.html │ │ └── JSObjectFromEval.js │ ├── srcs │ │ └── JSObjectFromEval.java │ └── testcases │ │ └── JSObjectFromEvalTest.java │ ├── JSObjectWithoutToString │ ├── resources │ │ ├── JSObjectWithoutToString.html │ │ └── JSObjectWithoutToString.js │ ├── srcs │ │ └── JSObjectWithoutToString.java │ └── testcases │ │ └── JSObjectWithoutToStringTest.java │ ├── JSToJFuncParam │ ├── resources │ │ ├── JSToJFuncParam.html │ │ ├── JSToJava_FuncParam.js │ │ └── jstoj-funcparam.jnlp │ ├── srcs │ │ └── JSToJFuncParam.java │ └── testcases │ │ └── JSToJFuncParamTest.java │ ├── JSToJFuncResol │ ├── resources │ │ ├── JSToJFuncResol.html │ │ ├── JSToJava_FuncResol.js │ │ └── jstoj-funcresol.jnlp │ ├── srcs │ │ └── JSToJFuncResol.java │ └── testcases │ │ └── JSToJFuncResolTest.java │ ├── JSToJFuncReturn │ ├── resources │ │ ├── JSToJFuncReturn.html │ │ ├── JSToJava_FuncReturn.js │ │ └── jstoj-funcreturn.jnlp │ ├── srcs │ │ └── JSToJFuncReturn.java │ └── testcases │ │ └── JSToJFuncReturnTest.java │ ├── JSToJGet │ ├── resources │ │ ├── JSToJGet.html │ │ ├── JSToJ_auxiliary.js │ │ ├── JSToJava_Get.js │ │ └── jstoj-get.jnlp │ ├── srcs │ │ └── JSToJGet.java │ └── testcases │ │ └── JSToJGetTest.java │ ├── JSToJSet │ ├── resources │ │ ├── JSToJSet.html │ │ ├── JSToJava_Set.js │ │ └── jstoj-set.jnlp │ ├── srcs │ │ └── JSToJSet.java │ └── testcases │ │ └── JSToJSetTest.java │ ├── JSToJTypeConv │ ├── resources │ │ ├── JSToJTypeConv.html │ │ ├── JSToJava_TypeConv.js │ │ └── jstoj-typeconv.jnlp │ ├── srcs │ │ └── JSToJTypeConv.java │ └── testcases │ │ └── JSToJTypeConvTest.java │ ├── JToJSString │ ├── resources │ │ ├── JSTest.js │ │ ├── JToJSString.html │ │ ├── JToJSString.js │ │ ├── JToJSStringApplet.jnlp │ │ └── JToJSStringJnlpApplet.html │ ├── srcs │ │ └── JToJSString.java │ └── testcases │ │ └── JToJSStringTest.java │ ├── JavascriptFuncParam │ ├── resources │ │ ├── JavascriptFuncParam.html │ │ ├── JavascriptFuncParam.js │ │ └── javascript-funcparam.jnlp │ ├── srcs │ │ └── JavascriptFuncParam.java │ └── testcases │ │ └── JavascriptFuncParamTest.java │ ├── JavascriptFuncReturn │ ├── resources │ │ ├── JavascriptFuncReturn.html │ │ ├── JavascriptFuncReturn.jnlp │ │ └── JavascriptFuncReturn.js │ ├── srcs │ │ └── JavascriptFuncReturn.java │ └── testcases │ │ └── JavascriptFuncReturnTest.java │ ├── JavascriptGet │ ├── resources │ │ ├── JavascriptGet.html │ │ ├── Javascript_Get.js │ │ └── javascript-get.jnlp │ ├── srcs │ │ └── JavascriptGet.java │ └── testcases │ │ └── JavascriptGetTest.java │ ├── JavascriptSet │ ├── resources │ │ ├── JavascriptSet.html │ │ ├── Javascript_Set.js │ │ └── javascript-set.jnlp │ ├── srcs │ │ └── JavascriptSet.java │ └── testcases │ │ └── JavascriptSetTest.java │ ├── JavascriptURLProtocol │ ├── resources │ │ ├── JavascriptProtocol.html │ │ └── JavascriptProtocol.js │ ├── srcs │ │ └── JavascriptProtocol.java │ └── testcases │ │ └── JavascriptProtocolTest.java │ ├── JavawsAWTRobotFindsButton │ ├── resources │ │ └── javaws-awtrobot-finds-button.jnlp │ ├── srcs │ │ └── JavawsAWTRobotFindsButton.java │ └── testcases │ │ ├── JavawsAWTRobotFindsButtonTest.java │ │ └── buttonA.png │ ├── JavawsAWTRobotUsageSample │ ├── resources │ │ ├── AppletAWTRobotUsageSample.html │ │ └── javaws-awtrobot-usage-sample.jnlp │ ├── srcs │ │ └── JavawsAWTRobotUsageSample.java │ └── testcases │ │ ├── AppletAWTRobotUsageSampleTest.java │ │ └── JavawsAWTRobotUsageSampleTest.java │ ├── JnlpHrefAttribute │ ├── resources │ │ ├── JnlpHrefAttribute.html │ │ └── JnlpHrefAttribute.jnlp │ ├── srcs │ │ └── JnlpHrefAttribute.java │ └── testcases │ │ └── JnlpHrefAttributeTest.java │ ├── LocalesTest │ └── testcases │ │ └── LocalesTestTest.java │ ├── LocalisedInformationElement │ ├── resources │ │ ├── LocalisedInformationElement1.jnlp │ │ ├── LocalisedInformationElement2.jnlp │ │ ├── LocalisedInformationElement3.jnlp │ │ ├── LocalisedInformationElement4.jnlp │ │ └── LocalisedInformationElement_noLoc.jnlp │ ├── srcs │ │ └── LocalisedInformationElement.java │ └── testcases │ │ └── LocalisedInformationElementTest.java │ ├── ManifestedJar1 │ ├── resources │ │ ├── ManifestedJar-1main2mainAppDesc.jnlp │ │ ├── ManifestedJar-1main2mainNoAppDesc.jnlp │ │ ├── ManifestedJar-1main2nothingNoAppDesc.jnlp │ │ ├── ManifestedJar-1mainHaveAppDesc.jnlp │ │ ├── ManifestedJar-1mainNoAppDesc.jnlp │ │ ├── ManifestedJar-1noAppDesc.jnlp │ │ ├── ManifestedJar-1noAppDescAtAll.jnlp │ │ ├── ManifestedJar-1nothing2nothingAppDesc.jnlp │ │ └── ManifestedJar-1nothing2nothingNoAppDesc.jnlp │ ├── srcs │ │ ├── META-INF │ │ │ └── MANIFEST.MF │ │ └── ManifestedJar1.java │ └── testcases │ │ └── ManifestedJar1Test.java │ ├── ManifestedJar2 │ └── srcs │ │ ├── META-INF │ │ └── MANIFEST.MF │ │ └── ManifestedJar2.java │ ├── ParametrizedJarUrl │ ├── resources │ │ ├── ParametrizedJarAppletUrl.jnlp │ │ ├── ParametrizedJarAppletUrl2.jnlp │ │ ├── ParametrizedJarAppletUrlSigned.jnlp │ │ ├── ParametrizedJarAppletUrlSigned2.jnlp │ │ ├── ParametrizedJarUrl.html │ │ ├── ParametrizedJarUrl1.jnlp │ │ ├── ParametrizedJarUrl2.jnlp │ │ ├── ParametrizedJarUrlSigned.html │ │ ├── ParametrizedJarUrlSigned1.jnlp │ │ └── ParametrizedJarUrlSigned2.jnlp │ └── testcases │ │ └── ParametrizedJarUrlTests.java │ ├── ReadEnvironment │ ├── resources │ │ └── ReadEnvironment.jnlp │ ├── srcs │ │ └── ReadEnvironment.java │ └── testcases │ │ └── ReadEnvironmentTest.java │ ├── ReadProperties │ ├── resources │ │ ├── ReadProperties1.jnlp │ │ └── ReadProperties2.jnlp │ ├── srcs │ │ └── ReadProperties.java │ └── testcases │ │ └── ReadPropertiesTest.java │ ├── RedirectStreams │ ├── resources │ │ └── RedirectStreams.jnlp │ ├── srcs │ │ └── RedirectStreams.java │ └── testcases │ │ └── RedirectStreamsTest.java │ ├── ReplaceSecurityManager │ ├── resources │ │ └── ReplaceSecurityManager.jnlp │ ├── srcs │ │ └── ReplaceSecurityManager.java │ └── testcases │ │ └── ReplaceSecurityManagerTest.java │ ├── ResizeApplet │ ├── resources │ │ └── ResizeApplet.html │ ├── srcs │ │ └── ResizeApplet.java │ └── testcases │ │ └── ResizeAppletTests.java │ ├── SOPBypass │ ├── resources │ │ ├── SOPBypass.html │ │ ├── SOPBypass.jnlp │ │ ├── SOPBypassSigned.html │ │ └── SOPBypassSigned.jnlp │ ├── srcs │ │ └── SOPBypass.java │ └── testcases │ │ └── sopbypasstests │ │ ├── SOPBypassBeforeAndAfterChunks.java │ │ ├── SOPBypassHtmlAppletTest.java │ │ ├── SOPBypassJnlpAppletTest.java │ │ ├── SOPBypassJnlpAppletTestWithHtmlSwitch.java │ │ ├── SOPBypassSignedHtmlAppletTest.java │ │ ├── SOPBypassSignedJnlpAppletTest.java │ │ ├── SOPBypassSignedJnlpAppletTestWithHtmlSwitch.java │ │ └── SOPBypassUtil.java │ ├── SandboxUnsignedAllPerm │ ├── resources │ │ ├── SandboxUnsignedAllPerm.html │ │ ├── SandboxUnsignedAllPerm.jnlp │ │ ├── SandboxUnsignedAllPerm_applet.jnlp │ │ ├── SandboxUnsignedAllPerm_applet_security.jnlp │ │ └── SandboxUnsignedAllPerm_security.jnlp │ ├── srcs │ │ ├── META-INF │ │ │ └── MANIFEST.MF │ │ └── SandboxUnsignedAllPerm.java │ └── testcases │ │ └── SandboxUnsignedAllPermTest.java │ ├── SandboxUnsignedInvalid │ ├── resources │ │ ├── SandboxUnsignedInvalid.html │ │ ├── SandboxUnsignedInvalid.jnlp │ │ ├── SandboxUnsignedInvalid_applet.jnlp │ │ ├── SandboxUnsignedInvalid_applet_security.jnlp │ │ └── SandboxUnsignedInvalid_security.jnlp │ ├── srcs │ │ ├── META-INF │ │ │ └── MANIFEST.MF │ │ └── SandboxUnsignedInvalid.java │ └── testcases │ │ └── SandboxUnsignedInvalidTest.java │ ├── SandboxUnsignedMissing │ ├── resources │ │ ├── SandboxUnsignedMissing.html │ │ ├── SandboxUnsignedMissing.jnlp │ │ ├── SandboxUnsignedMissing_applet.jnlp │ │ ├── SandboxUnsignedMissing_applet_security.jnlp │ │ └── SandboxUnsignedMissing_security.jnlp │ ├── srcs │ │ ├── META-INF │ │ │ └── MANIFEST.MF │ │ └── SandboxUnsignedMissing.java │ └── testcases │ │ ├── SandboxUnsignedMissingTest.java │ │ └── SandboxUnsignedMissingTestHighSecurity.java │ ├── SandboxUnsignedSandbox │ ├── resources │ │ ├── SandboxUnsignedSandbox.html │ │ ├── SandboxUnsignedSandbox.jnlp │ │ ├── SandboxUnsignedSandbox_applet.jnlp │ │ ├── SandboxUnsignedSandbox_applet_security.jnlp │ │ └── SandboxUnsignedSandbox_security.jnlp │ ├── srcs │ │ ├── META-INF │ │ │ └── MANIFEST.MF │ │ └── SandboxUnsignedSandbox.java │ └── testcases │ │ └── SandboxUnsignedSandboxTest.java │ ├── SetContextClassLoader │ ├── resources │ │ └── SetContextClassLoader.jnlp │ ├── srcs │ │ └── SetContextClassLoader.java │ └── testcases │ │ └── SetContextClassLoaderTest.java │ ├── SimpleApplet │ └── srcs │ │ └── SimpleApplet.java │ ├── SingleInstanceServiceTest │ ├── resources │ │ ├── SingleInstanceTest.jnlp │ │ ├── SingleInstanceTestWS.jnlp │ │ ├── SingleInstanceTest_clasical.html │ │ └── SingleInstanceTest_jnlpHref.html │ ├── srcs │ │ └── SingleInstanceChecker.java │ └── testcases │ │ └── SingleInstanceTest.java │ ├── Spaces can be everywhere │ ├── resources │ │ ├── NotOnly spaces can kill ěščřž too.jnlp │ │ ├── Spaces can be everywhere1.jnlp │ │ ├── Spaces can be everywhere2.jnlp │ │ ├── SpacesCanBeEverywhere1.jnlp │ │ └── spaces applet Tests.html │ ├── srcs │ │ └── SpacesCanBeEverywhere.java │ └── testcases │ │ └── SpacesCanBeEverywhereTests.java │ ├── StripHttpPathParams │ ├── resources │ │ ├── StripHttpPathParams.html │ │ └── StripHttpPathParams.jnlp │ ├── srcs │ │ └── StripHttpPathParams.java │ └── testcases │ │ └── StripHttpPathParamsTest.java │ ├── UnicodeLineBreak │ ├── resources │ │ └── UnicodeLineBreak.html │ ├── srcs │ │ └── UnicodeLineBreak.java │ └── testcases │ │ └── UnicodeLineBreakTests.java │ ├── UnsignedJnlpApplication │ ├── resources │ │ ├── UnsignedJnlpApplication1.jnlp │ │ ├── UnsignedJnlpApplication2.jnlp │ │ └── UnsignedJnlpApplication3.jnlp │ ├── srcs │ │ ├── JNLP-INF │ │ │ └── APPLICATION.jnlp │ │ └── UnsignedJnlpApplication.java │ └── testcases │ │ └── UnsignedJnlpApplicationTest.java │ ├── UnsignedJnlpTemplate │ ├── resources │ │ ├── UnsignedJnlpTemplate1.jnlp │ │ ├── UnsignedJnlpTemplate2.jnlp │ │ └── UnsignedJnlpTemplate3.jnlp │ ├── srcs │ │ ├── JNLP-INF │ │ │ └── APPLICATION_TEMPLATE.jnlp │ │ └── UnsignedJnlpTemplate.java │ └── testcases │ │ └── UnsignedJnlpTemplateTest.java │ ├── VersionedJar__V1 │ ├── resources │ │ ├── VersionedJarDisabled.jnlp │ │ └── VersionedJarEnabled.jnlp │ ├── srcs │ │ └── VersionedJar.java │ └── testcases │ │ └── VersionedJarTest.java │ ├── deadlocktest │ ├── resources │ │ ├── deadlocktest.jnlp │ │ └── deadlocktest_1.jnlp │ ├── srcs │ │ └── DeadlockTest.java │ └── testcases │ │ └── DeadLockTestTest.java │ ├── encodingTests │ ├── resources │ │ ├── encodingTest1-ISO88592.jnlp │ │ ├── encodingTest1-UTF8.jnlp │ │ ├── encodingTest2-ISO88592.jnlp │ │ ├── encodingTest2-UTF8.jnlp │ │ ├── encodingTest3-ISO88592.jnlp │ │ ├── encodingTest3-UTF8.jnlp │ │ ├── encodingTest4-ISO88592.html │ │ ├── encodingTest4-UTF8.html │ │ ├── encodingTest5-ISO88592.jnlp │ │ └── encodingTest5-UTF8.jnlp │ ├── srcs │ │ └── EncodingTest.java │ └── testcases │ │ └── EncodingTestTest.java │ ├── jsengine │ ├── resources │ │ ├── jsengine.jnlp │ │ ├── jsengineApplet.html │ │ └── jsengineApplet.jnlp │ ├── srcs │ │ ├── jsengine.java │ │ └── jsengineApplet.java │ └── testcases │ │ └── jsengineTest.java │ ├── simpletest1 │ ├── resources │ │ ├── favicon.ico │ │ ├── netxPlugin.png │ │ ├── simpletest1.jnlp │ │ ├── simpletestCustomSplash.jnlp │ │ ├── simpletestMegaSlow.jnlp │ │ ├── simpletestSlow.jnlp │ │ ├── simpletestSlowBrokenCustomSplash.jnlp │ │ └── simpletestSlowSlowCustomSplash.jnlp │ ├── srcs │ │ └── SimpleTest1.java │ └── testcases │ │ ├── SimpleTest1CountRequests.java │ │ ├── SimpleTest1Test.java │ │ ├── SimpleTestDefaultRedirects.java │ │ └── XDGspecificationTests.java │ └── simpletest2 │ ├── resources │ └── simpletest2.jnlp │ ├── srcs │ └── SimpleTest2.java │ └── testcases │ └── SimpleTest2Test.java ├── integration ├── pom.xml └── src │ ├── main │ ├── java │ │ └── net │ │ │ └── adoptopenjdk │ │ │ └── icedteaweb │ │ │ └── integration │ │ │ ├── IntegrationTest.java │ │ │ ├── ItwLauncher.java │ │ │ ├── MapBuilder.java │ │ │ ├── TemporaryItwHome.java │ │ │ ├── WireMockConfigBuilder.java │ │ │ └── serversetup │ │ │ ├── GetRequestConfigBuilder1.java │ │ │ ├── GetRequestConfigBuilder2.java │ │ │ ├── HeadRequestConfigBuilder1.java │ │ │ ├── HeadRequestConfigBuilder2.java │ │ │ ├── HeadRequestConfigBuilder3.java │ │ │ ├── JnlpServer1.java │ │ │ ├── JnlpServer2.java │ │ │ └── ResourceServer.java │ └── resources │ │ └── javaws.ico │ └── test │ ├── java │ └── net │ │ └── adoptopenjdk │ │ └── icedteaweb │ │ └── integration │ │ ├── common │ │ └── ManagedApplicationFileWriter.java │ │ ├── reproducers │ │ ├── appletDescMainClassWithClass │ │ │ ├── AppletDescMainClassWithClass1Test.java │ │ │ ├── AppletDescMainClassWithClass2Test.java │ │ │ ├── applications │ │ │ │ └── AppletDescMainClassWithClass.java │ │ │ └── jnlps │ │ │ │ ├── AppletDescMainClassWithClass1.jnlp │ │ │ │ └── AppletDescMainClassWithClass2.jnlp │ │ ├── extensionresources │ │ │ ├── ManagedApplicationWithExtensionResourceStartedTest.java │ │ │ ├── applications │ │ │ │ └── ExtensionResourceManagedApplication.java │ │ │ └── jnlps │ │ │ │ ├── ComponentExtension.jnlp │ │ │ │ └── ManagedApplicationWithExtensionResource.jnlp │ │ ├── missingCodebases │ │ │ ├── MissingCodebases0Test.java │ │ │ ├── MissingCodebases11Test.java │ │ │ ├── MissingCodebases1Test.java │ │ │ ├── MissingCodebases22Test.java │ │ │ ├── MissingCodebases2Test.java │ │ │ ├── MissingCodebases33Test.java │ │ │ ├── MissingCodebases3Test.java │ │ │ ├── MissingCodebasesH0Test.java │ │ │ ├── MissingCodebasesH11Test.java │ │ │ ├── MissingCodebasesH1Test.java │ │ │ ├── MissingCodebasesH22Test.java │ │ │ ├── MissingCodebasesH2Test.java │ │ │ ├── MissingCodebasesH33Test.java │ │ │ ├── MissingCodebasesH3Test.java │ │ │ ├── applications │ │ │ │ └── MissingCodebases.java │ │ │ └── jnlps │ │ │ │ ├── MissingCodebases0.jnlp │ │ │ │ ├── MissingCodebases1.jnlp │ │ │ │ ├── MissingCodebases11.jnlp │ │ │ │ ├── MissingCodebases2.jnlp │ │ │ │ ├── MissingCodebases22.jnlp │ │ │ │ ├── MissingCodebases3.jnlp │ │ │ │ ├── MissingCodebases33.jnlp │ │ │ │ ├── MissingCodebasesH0.jnlp │ │ │ │ ├── MissingCodebasesH1.jnlp │ │ │ │ ├── MissingCodebasesH11.jnlp │ │ │ │ ├── MissingCodebasesH2.jnlp │ │ │ │ ├── MissingCodebasesH22.jnlp │ │ │ │ ├── MissingCodebasesH3.jnlp │ │ │ │ └── MissingCodebasesH33.jnlp │ │ └── progressclass │ │ │ ├── ManagedApplicationWithProgressClassTest.java │ │ │ ├── applications │ │ │ └── ProgressClassManagedApplication.java │ │ │ └── jnlps │ │ │ └── ManagedApplicationWithProgressClass.jnlp │ │ └── testcase1 │ │ ├── JvmArgumentsPassedTest.java │ │ ├── ManagedApplicationStartedTest.java │ │ ├── ManagedApplicationStartedWithoutHeadTest.java │ │ ├── ManagedApplicationSystemEnvironmentTest.java │ │ ├── SplashScreenIconTest.java │ │ ├── SystemPropertiesSetTest.java │ │ ├── applications │ │ ├── SecureJavaApplication.java │ │ └── SimpleJavaApplication.java │ │ ├── jnlps │ │ ├── SimpleJavaApplication.jnlp │ │ ├── SimpleJavaApplicationWithArguments.jnlp │ │ ├── SimpleJavaApplicationWithProperties.jnlp │ │ └── SimpleJavaApplicationWithSplash.jnlp │ │ └── resources │ │ └── javaws.png │ └── resources │ └── simplelogger.properties ├── jnlp-api ├── pom.xml └── src │ └── main │ └── java │ └── javax │ └── jnlp │ ├── BasicService.java │ ├── ClipboardService.java │ ├── DownloadService.java │ ├── DownloadService2.java │ ├── DownloadServiceListener.java │ ├── ExtendedService.java │ ├── ExtensionInstallerService.java │ ├── FileContents.java │ ├── FileOpenService.java │ ├── FileSaveService.java │ ├── IntegrationService.java │ ├── JNLPRandomAccessFile.java │ ├── PersistenceService.java │ ├── PrintService.java │ ├── ServiceManager.java │ ├── ServiceManagerStub.java │ ├── SingleInstanceListener.java │ ├── SingleInstanceService.java │ └── UnavailableServiceException.java ├── launchers ├── build.sh ├── completion.in │ ├── itweb-settings.bash.in │ ├── javaws.bash.in │ └── policyeditor.bash.in ├── configure.sh ├── itw-modularjdk.args ├── javaws.ico ├── javaws.png ├── metadata │ └── icedtea-web-javaws.appdata.xml ├── pom.xml ├── rust-launcher │ ├── Cargo.toml │ └── src │ │ ├── dirs_paths_helper.rs │ │ ├── hardcoded_paths.rs │ │ ├── jars_helper.rs │ │ ├── log_helper.rs │ │ ├── main.rs │ │ ├── os_access.rs │ │ ├── property.rs │ │ ├── property_from_file.rs │ │ ├── property_from_files_resolver.rs │ │ └── utils.rs ├── shell-launcher │ ├── launchers.bat.in │ └── launchers.sh.in ├── utils.sh ├── win-installer │ ├── LICENSE.rtf │ ├── greetings_banner.bmp │ ├── icon.ico │ ├── installer.json.in │ └── top_banner.bmp └── xdesktop.in │ ├── itweb-settings.desktop.in │ ├── javaws.desktop.in │ └── policyeditor.desktop.in ├── pom.xml ├── test-extensions ├── pom.xml └── src │ └── main │ └── java │ └── net │ └── adoptopenjdk │ └── icedteaweb │ └── testing │ ├── AnnotationConditionChecker.java │ ├── AsyncCall.java │ ├── ClosingListener.java │ ├── ContentReader.java │ ├── ContentReaderListener.java │ ├── LogItem.java │ ├── LoggingBottleneck.java │ ├── ProcessAssassin.java │ ├── ProcessResult.java │ ├── ProcessWrapper.java │ ├── ServerAccess.java │ ├── ServerLauncher.java │ ├── TestsLogs.java │ ├── ThreadedProcess.java │ ├── TinyHttpdImpl.java │ ├── annotations │ ├── Bug.java │ ├── KnownToFail.java │ ├── NeedsDisplay.java │ ├── Remote.java │ ├── TestInBrowsers.java │ └── WindowsIssue.java │ ├── awt │ ├── AWTFrameworkException.java │ ├── AWTHelper.java │ └── MouseActions.java │ ├── browsertesting │ ├── Browser.java │ ├── BrowserFactory.java │ ├── BrowserTest.java │ ├── BrowserTestRunner.java │ ├── Browsers.java │ ├── ReactingProcess.java │ └── browsers │ │ ├── Chrome.java │ │ ├── Chromium.java │ │ ├── Epiphany.java │ │ ├── Firefox.java │ │ ├── LinuxBrowser.java │ │ ├── Midory.java │ │ ├── MozillaFamilyLinuxBrowser.java │ │ ├── Opera.java │ │ └── firefox │ │ └── FirefoxProfilesOperator.java │ ├── closinglisteners │ ├── CountingClosingListener.java │ ├── Rule.java │ ├── RulesFollowingClosingListener.java │ └── StringRule.java │ ├── tools │ └── CodeSignerCreator.java │ └── util │ ├── CacheTestUtils.java │ └── FileTestUtils.java └── xml-parser ├── pom.xml └── src ├── main └── java │ └── net │ └── adoptopenjdk │ └── icedteaweb │ └── xmlparser │ ├── MalformedXMLParser.java │ ├── NodeUtils.java │ ├── ParseException.java │ ├── ParserType.java │ ├── XMLParser.java │ ├── XMLSanitizer.java │ ├── XmlNode.java │ ├── XmlNodeImpl.java │ ├── XmlParserFactory.java │ └── XmlStreamReader.java └── test ├── java └── net │ └── adoptopenjdk │ └── icedteaweb │ └── xmlparser │ ├── ParserMalformedXmlTest.java │ ├── XMLSanitizerTest.java │ └── XmlStreamReaderTest.java └── resources └── jnlps ├── EFBBBF.jnlp └── basic.jnlp /.gitattributes: -------------------------------------------------------------------------------- 1 | # Declare files that will always have LF line endings on checkout. 2 | *.sh eol=lf 3 | 4 | # Declare files that will always have CRLF line endings on checkout. 5 | *.bat text eol=crlf -------------------------------------------------------------------------------- /.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | # See for why we need this blank file https://stackoverflow.com/a/65389878 2 | # This placeholder is used to trigger the actual 1.8 build workflow at https://github.com/AdoptOpenJDK/IcedTea-Web/blob/1.8/.github/workflows/build.yml 3 | 4 | # Steps to run 5 | # Go to Actions, select Build ITW 1.8.x and run workflow with Use workflow from set to 1.8 6 | 7 | name: Build ITW 1.8.x 8 | 9 | on: 10 | workflow_dispatch: 11 | 12 | jobs: 13 | test: 14 | runs-on: ubuntu-latest 15 | steps: 16 | - name: Show environment 17 | run: env | grep ^GITHUB 18 | - name: Show ref v1 19 | run: echo "===============> Version from $GITHUB_REF" 20 | -------------------------------------------------------------------------------- /.github/workflows/maven.yml: -------------------------------------------------------------------------------- 1 | # This workflow will build a Java project with Maven 2 | # For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven 3 | 4 | name: Java CI with Maven 5 | 6 | on: 7 | push: 8 | branches: [ master ] 9 | pull_request: 10 | branches: [ master ] 11 | 12 | jobs: 13 | build: 14 | 15 | runs-on: ubuntu-latest 16 | 17 | steps: 18 | - name: Checkout Project 19 | uses: actions/checkout@v2 20 | - name: Set up JDK 1.8 21 | uses: actions/setup-java@v1 22 | with: 23 | java-version: 1.8 24 | - name: Build with Maven 25 | uses: GabrielBB/xvfb-action@v1 26 | with: 27 | run: mvn clean verify 28 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .classpath 3 | .idea 4 | .project 5 | .settings/ 6 | *.iml 7 | **/target 8 | **/dependency-reduced-pom.xml 9 | 10 | launchers/build.log 11 | launchers/rust-launcher/Cargo.lock 12 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing to IcedTeaWeb 2 | 3 | As an open source project, IcedTeaWeb welcomes contributions of many forms. 4 | 5 | ## Bug reporting 6 | 7 | Please use the [issue tracker on GitHub][1]. 8 | 9 | Please make sure to check these notes whenever you create an issue for IcedTeaWeb: 10 | - If you are not using the latest version of IcedTeaWeb please add the used version in the description 11 | - Please give us some information about the infrastructure that you are using. Examples: AdoptOpenJDK Version 11.0.2 on Win10 12 | - In case of an error / bug it's always helpful to add the error log 13 | 14 | [1]: https://github.com/AdoptOpenJDK/icedtea-web/issues 15 | 16 | ## Patches submission 17 | 18 | Patches are welcome as [pull requests on GitHub][2] 19 | 20 | [2]: https://github.com/AdoptOpenJDK/icedtea-web/pulls 21 | -------------------------------------------------------------------------------- /LICENCE_DETAILS.md: -------------------------------------------------------------------------------- 1 | # Licence details: 2 | All newest files, unless claiming differently and all files inherited from GNU Classpath (mostly base of plugin) are GPL+Exceptions 3 | NetX code is GPL and LGPL only. -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | # Security Policy 2 | 3 | ## Supported Versions 4 | 5 | We currently support the following versions with security updates. 6 | 7 | | Version | Supported | 8 | | ------- | ------------------ | 9 | | 1.x.x | :x: | 10 | | 2.x.x | :white_check_mark: | 11 | | 3.x.x | :white_check_mark: | 12 | 13 | ## Reporting a Vulnerability 14 | 15 | Please report vulnerabilities to [security@adoptopenjdk.net](security@adoptopenjdk.net). 16 | 17 | A member of the security team will respond within 48 hours with details on how to proceed including whether or not the vulnerability was accepted, declined or requires further investigation. 18 | -------------------------------------------------------------------------------- /common/src/main/java/net/adoptopenjdk/icedteaweb/CollectionUtils.java: -------------------------------------------------------------------------------- 1 | package net.adoptopenjdk.icedteaweb; 2 | 3 | import java.util.Collection; 4 | 5 | /** 6 | * Helper methods around collections and arrays. 7 | */ 8 | public class CollectionUtils { 9 | 10 | public static boolean isNullOrEmpty(Collection c) { 11 | return c == null || c.isEmpty(); 12 | } 13 | 14 | public static boolean isNullOrEmpty(Object[] a) { 15 | return a == null || a.length == 0; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /common/src/main/java/net/adoptopenjdk/icedteaweb/IcedTeaWebConstants.java: -------------------------------------------------------------------------------- 1 | package net.adoptopenjdk.icedteaweb; 2 | 3 | public interface IcedTeaWebConstants { 4 | 5 | /** 6 | * Used as default message when logging exception. 7 | * Should be removed in future since each logger call should have a message that describes the error. 8 | */ 9 | @Deprecated 10 | String DEFAULT_ERROR_MESSAGE = "ERROR"; 11 | 12 | String DOUBLE_QUOTE = "\""; 13 | 14 | String JAVAWS = "javaws"; 15 | String ITWEB_SETTINGS = "itweb-settings"; 16 | String POLICY_EDITOR = "policyeditor"; 17 | 18 | String ICEDTEA_WEB_SPLASH = "ICEDTEA_WEB_SPLASH"; 19 | String NO_SPLASH = "none"; 20 | } 21 | -------------------------------------------------------------------------------- /common/src/main/java/net/adoptopenjdk/icedteaweb/OutputUtils.java: -------------------------------------------------------------------------------- 1 | package net.adoptopenjdk.icedteaweb; 2 | 3 | import java.io.PrintWriter; 4 | import java.io.StringWriter; 5 | 6 | public class OutputUtils { 7 | public static String exceptionToString(final Throwable throwable) { 8 | if (throwable == null) { 9 | return null; 10 | } 11 | final StringWriter sw = new StringWriter(); 12 | final PrintWriter pw = new PrintWriter(sw, true); 13 | throwable.printStackTrace(pw); 14 | return sw.getBuffer().toString(); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /common/src/main/java/net/adoptopenjdk/icedteaweb/commandline/NumberOfArguments.java: -------------------------------------------------------------------------------- 1 | package net.adoptopenjdk.icedteaweb.commandline; 2 | 3 | import static net.adoptopenjdk.icedteaweb.i18n.Translator.R; 4 | 5 | public enum NumberOfArguments { 6 | NONE("NOAnone"), 7 | ONE("NOAone"), 8 | ONE_OR_MORE("NOAonemore"), 9 | NONE_OR_ONE("NOAnonorone"), 10 | EVEN_NUMBER_SUPPORTS_EQUALS_CHAR("NOAevennumber"); 11 | 12 | final String messageKey; 13 | 14 | NumberOfArguments(String messageKey) { 15 | this.messageKey = messageKey; 16 | } 17 | 18 | public String getMessage() { 19 | return R(messageKey); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /common/src/main/java/net/adoptopenjdk/icedteaweb/http/CloseableHttpConnection.java: -------------------------------------------------------------------------------- 1 | package net.adoptopenjdk.icedteaweb.http; 2 | 3 | import java.io.Closeable; 4 | import java.io.IOException; 5 | import java.net.HttpURLConnection; 6 | 7 | /** 8 | * {@link Closeable} wrapper around a {@link HttpURLConnection}. 9 | *

10 | * Only the needed methods of HttpURLConnection are exposed. 11 | *

12 | * Closing the connection will trigger a disconnect on the underlying HttpUrlConnection 13 | */ 14 | public class CloseableHttpConnection extends CloseableConnection { 15 | private final HttpURLConnection delegate; 16 | 17 | CloseableHttpConnection(final HttpURLConnection delegate) { 18 | super(delegate); 19 | this.delegate = delegate; 20 | } 21 | 22 | /** 23 | * triggers {@link HttpURLConnection#disconnect()}. 24 | */ 25 | @Override 26 | public void close() { 27 | delegate.disconnect(); 28 | } 29 | 30 | /** 31 | * delegates to {@link HttpURLConnection#getResponseCode()} 32 | */ 33 | public int getResponseCode() throws IOException { 34 | return delegate.getResponseCode(); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /common/src/main/java/net/adoptopenjdk/icedteaweb/http/HttpMethod.java: -------------------------------------------------------------------------------- 1 | package net.adoptopenjdk.icedteaweb.http; 2 | 3 | /** 4 | * An enumeration of the most commonly used methods for HTTP as supported by 5 | * {@link java.net.HttpURLConnection#setRequestMethod(java.lang.String) }. 6 | */ 7 | public enum HttpMethod { 8 | GET, 9 | HEAD, 10 | 11 | // The following methods are currently not used 12 | 13 | // POST, 14 | // PUT, 15 | // OPTIONS, 16 | // DELETE, 17 | // TRACE, 18 | } 19 | -------------------------------------------------------------------------------- /common/src/main/java/net/adoptopenjdk/icedteaweb/i18n/SupportedLanguages.java: -------------------------------------------------------------------------------- 1 | package net.adoptopenjdk.icedteaweb.i18n; 2 | 3 | import java.util.Locale; 4 | 5 | public enum SupportedLanguages { 6 | ENGLISH("en"), 7 | CZECH("cs"), 8 | GERMAN("de"), 9 | POLISH("pl"); 10 | 11 | private Locale locale; 12 | 13 | SupportedLanguages(String language) { 14 | try { 15 | this.locale = new Locale(language); 16 | } catch (Exception ex) { 17 | throw new IllegalStateException("Unknown language."); 18 | } 19 | } 20 | 21 | public Locale getLocale() { 22 | return this.locale; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /common/src/main/java/net/adoptopenjdk/icedteaweb/icon/IconConstants.java: -------------------------------------------------------------------------------- 1 | package net.adoptopenjdk.icedteaweb.icon; 2 | 3 | public interface IconConstants { 4 | 5 | String IMAGE_VND_MICROSOFT_ICON = "image/vnd.microsoft.icon"; 6 | 7 | String ICO = "ico"; 8 | 9 | String ICO_CAMELCASE = "Ico"; 10 | 11 | String ICO_UPPERCASE = "ICO"; 12 | 13 | String IMAGE_X_ICON = "image/x-icon"; 14 | } 15 | -------------------------------------------------------------------------------- /common/src/main/java/net/adoptopenjdk/icedteaweb/os/OsUtil.java: -------------------------------------------------------------------------------- 1 | package net.adoptopenjdk.icedteaweb.os; 2 | 3 | import net.adoptopenjdk.icedteaweb.JavaSystemProperties; 4 | 5 | /** 6 | * Copied from RICO (https://github.com/rico-projects/rico) 7 | */ 8 | public class OsUtil { 9 | 10 | private static final String WIN = "win"; 11 | 12 | private static final String LINUX = "linux"; 13 | 14 | /** 15 | * Returns {@code true} if we are on windows. 16 | * 17 | * @return {@code true} if we are on windows. 18 | */ 19 | public static boolean isWindows() { 20 | return isOs(WIN); 21 | } 22 | 23 | public static boolean isLinux() { 24 | return isOs(LINUX); 25 | } 26 | 27 | private static boolean isOs(String osName) { 28 | String operSys = JavaSystemProperties.getOsName().toLowerCase(); 29 | return (operSys.contains(osName)); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /common/src/main/java/net/adoptopenjdk/icedteaweb/ui/swing/dialogresults/Primitive.java: -------------------------------------------------------------------------------- 1 | package net.adoptopenjdk.icedteaweb.ui.swing.dialogresults; 2 | 3 | public enum Primitive { 4 | 5 | YES(0), NO(1), CANCEL(2), SANDBOX(2), SKIP(0); 6 | 7 | private final int legacyButton; 8 | 9 | Primitive(int legacyButton) { 10 | this.legacyButton = legacyButton; 11 | } 12 | 13 | public int getLegacyButton() { 14 | return legacyButton; 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /common/src/main/resources/net/adoptopenjdk/icedteaweb/i18n/Messages_en.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/common/src/main/resources/net/adoptopenjdk/icedteaweb/i18n/Messages_en.properties -------------------------------------------------------------------------------- /common/src/test/java/net/adoptopenjdk/icedteaweb/jnlp/version/VersionSeparator.java: -------------------------------------------------------------------------------- 1 | package net.adoptopenjdk.icedteaweb.jnlp.version; 2 | 3 | /** 4 | * Enum of all separators as defined for {@link VersionRange}s and {@link VersionString}s as defined 5 | * by JSR-56 Specification, Appendix A. 6 | */ 7 | public enum VersionSeparator { 8 | DOT("."), 9 | MINUS("-"), 10 | UNDERSCORE("_"), 11 | SPACE(" "); 12 | 13 | private String symbol; 14 | 15 | VersionSeparator(final String symbol) { 16 | this.symbol = symbol; 17 | } 18 | 19 | public String symbol() { 20 | return symbol; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /common/src/test/resources/net/adoptopenjdk/icedteaweb/i18n/res1.properties: -------------------------------------------------------------------------------- 1 | foo=11 2 | bar=11 3 | -------------------------------------------------------------------------------- /common/src/test/resources/net/adoptopenjdk/icedteaweb/i18n/res2.properties: -------------------------------------------------------------------------------- 1 | bar=22 2 | baz=22 3 | -------------------------------------------------------------------------------- /core/src/main/java/net/adoptopenjdk/icedteaweb/client/controlpanel/CacheFileInfo.java: -------------------------------------------------------------------------------- 1 | package net.adoptopenjdk.icedteaweb.client.controlpanel; 2 | 3 | import net.adoptopenjdk.icedteaweb.resources.cache.ResourceInfo; 4 | 5 | import java.io.File; 6 | import java.util.Date; 7 | 8 | public interface CacheFileInfo { 9 | 10 | ResourceInfo getInfoFile(); 11 | 12 | File getParentFile(); 13 | 14 | String getProtocol(); 15 | 16 | String getDomain(); 17 | 18 | long getSize(); 19 | 20 | Date getLastModified(); 21 | 22 | String getJnlpPath(); 23 | 24 | long getDownloadedAt(); 25 | } 26 | -------------------------------------------------------------------------------- /core/src/main/java/net/adoptopenjdk/icedteaweb/client/controlpanel/CacheIdInfo.java: -------------------------------------------------------------------------------- 1 | package net.adoptopenjdk.icedteaweb.client.controlpanel; 2 | 3 | import java.util.List; 4 | 5 | /** 6 | * ID for locating resources in the cache either by domain or jnlp-path. 7 | */ 8 | public interface CacheIdInfo { 9 | 10 | enum CacheIdType { 11 | DOMAIN, JNLP_PATH 12 | } 13 | 14 | String getId(); 15 | CacheIdType getType(); 16 | List getFileInfos(); 17 | } 18 | -------------------------------------------------------------------------------- /core/src/main/java/net/adoptopenjdk/icedteaweb/client/controlpanel/ControlPanelStyle.java: -------------------------------------------------------------------------------- 1 | package net.adoptopenjdk.icedteaweb.client.controlpanel; 2 | 3 | import javax.swing.JPanel; 4 | import java.awt.Image; 5 | import java.util.List; 6 | 7 | /** 8 | * Provides branding for the control panel dialog 9 | */ 10 | public interface ControlPanelStyle { 11 | 12 | /** 13 | * Returns the dialog title 14 | * @return dialog title 15 | */ 16 | String getDialogTitle(); 17 | 18 | /** 19 | * Returns a new header instance for the dialog 20 | * @return header instance 21 | */ 22 | JPanel createHeader(); 23 | 24 | /** 25 | * Returns a list of icons that can be used as dialog icons 26 | * @return list of icons 27 | */ 28 | List getDialogIcons(); 29 | 30 | /** 31 | * Returns true if the panel with the given unique name should be displayed in the control panel 32 | * @param panelName the unique panel name 33 | * @return true if the panel should be displayed 34 | */ 35 | default boolean isPanelActive(final String panelName) { 36 | return true; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /core/src/main/java/net/adoptopenjdk/icedteaweb/client/controlpanel/panels/provider/AboutPanelProvider.java: -------------------------------------------------------------------------------- 1 | package net.adoptopenjdk.icedteaweb.client.controlpanel.panels.provider; 2 | 3 | import net.adoptopenjdk.icedteaweb.client.controlpanel.panels.AboutPanel; 4 | import net.adoptopenjdk.icedteaweb.i18n.Translator; 5 | import net.sourceforge.jnlp.config.DeploymentConfiguration; 6 | 7 | import javax.swing.JComponent; 8 | 9 | public class AboutPanelProvider implements ControlPanelProvider { 10 | 11 | public static final String NAME = "AboutPanel"; 12 | 13 | @Override 14 | public String getName() { 15 | return NAME; 16 | } 17 | 18 | @Override 19 | public String getTitle() { 20 | return Translator.R("CPTabAbout"); 21 | } 22 | 23 | @Override 24 | public int getOrder() { 25 | return 10; 26 | } 27 | 28 | @Override 29 | public JComponent createPanel(final DeploymentConfiguration config) { 30 | return new AboutPanel(); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /core/src/main/java/net/adoptopenjdk/icedteaweb/client/controlpanel/panels/provider/CacheSettingsPanelProvider.java: -------------------------------------------------------------------------------- 1 | package net.adoptopenjdk.icedteaweb.client.controlpanel.panels.provider; 2 | 3 | import net.adoptopenjdk.icedteaweb.client.controlpanel.panels.TemporaryInternetFilesPanel; 4 | import net.adoptopenjdk.icedteaweb.i18n.Translator; 5 | import net.sourceforge.jnlp.config.DeploymentConfiguration; 6 | 7 | import javax.swing.JComponent; 8 | 9 | public class CacheSettingsPanelProvider implements ControlPanelProvider { 10 | 11 | public static final String NAME = "TemporaryInternetFilesPanel"; 12 | 13 | @Override 14 | public String getName() { 15 | return NAME; 16 | } 17 | 18 | @Override 19 | public String getTitle() { 20 | return Translator.R("CPTabCache"); 21 | } 22 | 23 | @Override 24 | public int getOrder() { 25 | return 15; 26 | } 27 | 28 | @Override 29 | public JComponent createPanel(final DeploymentConfiguration config) { 30 | return new TemporaryInternetFilesPanel(config); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /core/src/main/java/net/adoptopenjdk/icedteaweb/client/controlpanel/panels/provider/CertificatesSettingsPanelProvider.java: -------------------------------------------------------------------------------- 1 | package net.adoptopenjdk.icedteaweb.client.controlpanel.panels.provider; 2 | 3 | import net.adoptopenjdk.icedteaweb.client.certificateviewer.CertificatePane; 4 | import net.adoptopenjdk.icedteaweb.client.controlpanel.NamedBorderPanel; 5 | import net.adoptopenjdk.icedteaweb.i18n.Translator; 6 | import net.sourceforge.jnlp.config.DeploymentConfiguration; 7 | 8 | import javax.swing.JComponent; 9 | import javax.swing.JPanel; 10 | import java.awt.BorderLayout; 11 | 12 | public class CertificatesSettingsPanelProvider implements ControlPanelProvider { 13 | 14 | public static final String NAME = "CertificatePane"; 15 | 16 | @Override 17 | public String getName() { 18 | return NAME; 19 | } 20 | 21 | @Override 22 | public String getTitle() { 23 | return Translator.R("CPTabCertificate"); 24 | } 25 | 26 | @Override 27 | public int getOrder() { 28 | return 20; 29 | } 30 | 31 | @Override 32 | public JComponent createPanel(final DeploymentConfiguration config) { 33 | JPanel p = new NamedBorderPanel(getName(), new BorderLayout()); 34 | p.add(new CertificatePane(null), BorderLayout.CENTER); 35 | return p; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /core/src/main/java/net/adoptopenjdk/icedteaweb/client/controlpanel/panels/provider/ControlPanelProvider.java: -------------------------------------------------------------------------------- 1 | package net.adoptopenjdk.icedteaweb.client.controlpanel.panels.provider; 2 | 3 | import net.sourceforge.jnlp.config.DeploymentConfiguration; 4 | 5 | import javax.swing.JComponent; 6 | 7 | public interface ControlPanelProvider { 8 | 9 | String getTitle(); 10 | 11 | String getName(); 12 | 13 | int getOrder(); 14 | 15 | JComponent createPanel(DeploymentConfiguration config); 16 | 17 | default boolean isActive(final DeploymentConfiguration config) { 18 | return true; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /core/src/main/java/net/adoptopenjdk/icedteaweb/client/controlpanel/panels/provider/DebugSettingsPanelProvider.java: -------------------------------------------------------------------------------- 1 | package net.adoptopenjdk.icedteaweb.client.controlpanel.panels.provider; 2 | 3 | import net.adoptopenjdk.icedteaweb.client.controlpanel.panels.DebuggingPanel; 4 | import net.adoptopenjdk.icedteaweb.i18n.Translator; 5 | import net.sourceforge.jnlp.config.DeploymentConfiguration; 6 | 7 | import javax.swing.JComponent; 8 | 9 | public class DebugSettingsPanelProvider implements ControlPanelProvider { 10 | 11 | public static final String NAME = "DebuggingPanel"; 12 | 13 | @Override 14 | public String getName() { 15 | return NAME; 16 | } 17 | 18 | @Override 19 | public String getTitle() { 20 | return Translator.R("CPTabDebugging"); 21 | } 22 | 23 | @Override 24 | public int getOrder() { 25 | return 30; 26 | } 27 | 28 | @Override 29 | public JComponent createPanel(final DeploymentConfiguration config) { 30 | return new DebuggingPanel(config); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /core/src/main/java/net/adoptopenjdk/icedteaweb/client/controlpanel/panels/provider/DesktopSettingsPanelProvider.java: -------------------------------------------------------------------------------- 1 | package net.adoptopenjdk.icedteaweb.client.controlpanel.panels.provider; 2 | 3 | import net.adoptopenjdk.icedteaweb.client.controlpanel.panels.DesktopShortcutPanel; 4 | import net.adoptopenjdk.icedteaweb.i18n.Translator; 5 | import net.sourceforge.jnlp.config.DeploymentConfiguration; 6 | 7 | import javax.swing.JComponent; 8 | 9 | public class DesktopSettingsPanelProvider implements ControlPanelProvider { 10 | 11 | public static final String NAME = "DesktopShortcutPanel"; 12 | 13 | @Override 14 | public String getName() { 15 | return NAME; 16 | } 17 | 18 | @Override 19 | public String getTitle() { 20 | return Translator.R("CPTabDesktopIntegration"); 21 | } 22 | 23 | @Override 24 | public int getOrder() { 25 | return 40; 26 | } 27 | 28 | @Override 29 | public JComponent createPanel(final DeploymentConfiguration config) { 30 | return new DesktopShortcutPanel(config); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /core/src/main/java/net/adoptopenjdk/icedteaweb/client/controlpanel/panels/provider/JvmSettingsPanelProvider.java: -------------------------------------------------------------------------------- 1 | package net.adoptopenjdk.icedteaweb.client.controlpanel.panels.provider; 2 | 3 | import net.adoptopenjdk.icedteaweb.client.controlpanel.panels.JVMPanel; 4 | import net.adoptopenjdk.icedteaweb.i18n.Translator; 5 | import net.sourceforge.jnlp.config.DeploymentConfiguration; 6 | 7 | import javax.swing.JComponent; 8 | 9 | public class JvmSettingsPanelProvider implements ControlPanelProvider { 10 | 11 | public static final String NAME = "JVMPanel"; 12 | 13 | @Override 14 | public String getName() { 15 | return NAME; 16 | } 17 | 18 | @Override 19 | public String getTitle() { 20 | return Translator.R("CPTabJVMSettings"); 21 | } 22 | 23 | @Override 24 | public int getOrder() { 25 | return 50; 26 | } 27 | 28 | @Override 29 | public JComponent createPanel(final DeploymentConfiguration config) { 30 | return new JVMPanel(config); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /core/src/main/java/net/adoptopenjdk/icedteaweb/client/controlpanel/panels/provider/NetworkSettingsPanelProvider.java: -------------------------------------------------------------------------------- 1 | package net.adoptopenjdk.icedteaweb.client.controlpanel.panels.provider; 2 | 3 | import net.adoptopenjdk.icedteaweb.client.controlpanel.panels.NetworkSettingsPanel; 4 | import net.adoptopenjdk.icedteaweb.i18n.Translator; 5 | import net.sourceforge.jnlp.config.DeploymentConfiguration; 6 | 7 | import javax.swing.JComponent; 8 | 9 | public class NetworkSettingsPanelProvider implements ControlPanelProvider { 10 | 11 | public static final String NAME = "NetworkSettingsPanel"; 12 | 13 | @Override 14 | public String getName() { 15 | return NAME; 16 | } 17 | 18 | @Override 19 | public String getTitle() { 20 | return Translator.R("CPTabNetwork"); 21 | } 22 | 23 | @Override 24 | public int getOrder() { 25 | return 60; 26 | } 27 | 28 | @Override 29 | public JComponent createPanel(final DeploymentConfiguration config) { 30 | return new NetworkSettingsPanel(config); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /core/src/main/java/net/adoptopenjdk/icedteaweb/client/controlpanel/panels/provider/PolicySettingsPanelProvider.java: -------------------------------------------------------------------------------- 1 | package net.adoptopenjdk.icedteaweb.client.controlpanel.panels.provider; 2 | 3 | import net.adoptopenjdk.icedteaweb.client.controlpanel.panels.PolicyPanel; 4 | import net.adoptopenjdk.icedteaweb.i18n.Translator; 5 | import net.sourceforge.jnlp.config.DeploymentConfiguration; 6 | 7 | import javax.swing.JComponent; 8 | 9 | public class PolicySettingsPanelProvider implements ControlPanelProvider { 10 | 11 | public static final String NAME = "PolicyPanel"; 12 | 13 | @Override 14 | public String getName() { 15 | return NAME; 16 | } 17 | 18 | @Override 19 | public String getTitle() { 20 | return Translator.R("CPTabPolicy"); 21 | } 22 | 23 | @Override 24 | public int getOrder() { 25 | return 80; 26 | } 27 | 28 | @Override 29 | public JComponent createPanel(final DeploymentConfiguration config) { 30 | return new PolicyPanel(config); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /core/src/main/java/net/adoptopenjdk/icedteaweb/client/controlpanel/panels/provider/SecuritySettingsPanelProvider.java: -------------------------------------------------------------------------------- 1 | package net.adoptopenjdk.icedteaweb.client.controlpanel.panels.provider; 2 | 3 | import net.adoptopenjdk.icedteaweb.client.controlpanel.panels.SecuritySettingsPanel; 4 | import net.adoptopenjdk.icedteaweb.i18n.Translator; 5 | import net.sourceforge.jnlp.config.DeploymentConfiguration; 6 | 7 | import javax.swing.JComponent; 8 | 9 | public class SecuritySettingsPanelProvider implements ControlPanelProvider { 10 | 11 | public static final String NAME = "SecuritySettingsPanel"; 12 | 13 | @Override 14 | public String getName() { 15 | return NAME; 16 | } 17 | 18 | @Override 19 | public String getTitle() { 20 | return Translator.R("CPTabSecurity"); 21 | } 22 | 23 | @Override 24 | public int getOrder() { 25 | return 70; 26 | } 27 | 28 | @Override 29 | public JComponent createPanel(final DeploymentConfiguration config) { 30 | return new SecuritySettingsPanel(config); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /core/src/main/java/net/adoptopenjdk/icedteaweb/client/controlpanel/panels/provider/ServerWhitelistPanelProvider.java: -------------------------------------------------------------------------------- 1 | package net.adoptopenjdk.icedteaweb.client.controlpanel.panels.provider; 2 | 3 | import net.adoptopenjdk.icedteaweb.client.controlpanel.panels.ServerWhitelistPanel; 4 | import net.adoptopenjdk.icedteaweb.i18n.Translator; 5 | import net.sourceforge.jnlp.config.DeploymentConfiguration; 6 | 7 | import javax.swing.JComponent; 8 | 9 | public class ServerWhitelistPanelProvider implements ControlPanelProvider { 10 | 11 | public static final String NAME = "ServerWhitelistPanel"; 12 | 13 | @Override 14 | public String getName() { 15 | return NAME; 16 | } 17 | 18 | @Override 19 | public String getTitle() { 20 | return Translator.R("CPTabServerWhitelist"); 21 | } 22 | 23 | @Override 24 | public int getOrder() { 25 | return 100; 26 | } 27 | 28 | @Override 29 | public JComponent createPanel(final DeploymentConfiguration config) { 30 | return new ServerWhitelistPanel(config); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /core/src/main/java/net/adoptopenjdk/icedteaweb/client/controlpanel/panels/provider/UnsignedAppletsTrustingListPanelProvider.java: -------------------------------------------------------------------------------- 1 | package net.adoptopenjdk.icedteaweb.client.controlpanel.panels.provider; 2 | 3 | import net.adoptopenjdk.icedteaweb.client.controlpanel.UnsignedAppletsTrustingListPanel; 4 | import net.adoptopenjdk.icedteaweb.i18n.Translator; 5 | import net.sourceforge.jnlp.config.DeploymentConfiguration; 6 | import net.sourceforge.jnlp.config.PathsAndFiles; 7 | 8 | import javax.swing.JComponent; 9 | 10 | public class UnsignedAppletsTrustingListPanelProvider implements ControlPanelProvider { 11 | 12 | public static final String NAME = "UnsignedAppletsTrustingListPanel"; 13 | 14 | @Override 15 | public String getName() { 16 | return NAME; 17 | } 18 | 19 | @Override 20 | public String getTitle() { 21 | return Translator.R("APPEXTSECControlPanelExtendedAppletSecurityTitle"); 22 | } 23 | 24 | @Override 25 | public int getOrder() { 26 | return 90; 27 | } 28 | 29 | @Override 30 | public JComponent createPanel(final DeploymentConfiguration config) { 31 | return new UnsignedAppletsTrustingListPanel(PathsAndFiles.APPLET_TRUST_SETTINGS_SYS.getFile(), PathsAndFiles.APPLET_TRUST_SETTINGS_USER.getFile(), config); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /core/src/main/java/net/adoptopenjdk/icedteaweb/client/parts/downloadindicator/DummyDownloadIndicator.java: -------------------------------------------------------------------------------- 1 | package net.adoptopenjdk.icedteaweb.client.parts.downloadindicator; 2 | 3 | import javax.jnlp.DownloadServiceListener; 4 | import java.net.URL; 5 | 6 | public class DummyDownloadIndicator implements DownloadIndicator { 7 | 8 | @Override 9 | public DownloadServiceListener getListener(final String downloadName, final URL[] resources) { 10 | return new DownloadServiceListener() { 11 | @Override 12 | public void progress(final URL url, final String s, final long l, final long l1, final int i) {} 13 | 14 | @Override 15 | public void validating(final URL url, final String s, final long l, final long l1, final int i) {} 16 | 17 | @Override 18 | public void upgradingArchive(final URL url, final String s, final int i, final int i1) {} 19 | 20 | @Override 21 | public void downloadFailed(final URL url, final String s) {} 22 | }; 23 | } 24 | 25 | @Override 26 | public void disposeListener(final DownloadServiceListener listener) {} 27 | } 28 | -------------------------------------------------------------------------------- /core/src/main/java/net/adoptopenjdk/icedteaweb/config/ConfigType.java: -------------------------------------------------------------------------------- 1 | package net.adoptopenjdk.icedteaweb.config; 2 | 3 | public enum ConfigType { 4 | SYSTEM, USER 5 | } 6 | -------------------------------------------------------------------------------- /core/src/main/java/net/adoptopenjdk/icedteaweb/config/Target.java: -------------------------------------------------------------------------------- 1 | package net.adoptopenjdk.icedteaweb.config; 2 | 3 | public enum Target { 4 | JAVAWS, PLUGIN, ITWEB_SETTINGS, POLICY_EDITOR 5 | } 6 | -------------------------------------------------------------------------------- /core/src/main/java/net/adoptopenjdk/icedteaweb/config/validators/BooleanValidator.java: -------------------------------------------------------------------------------- 1 | package net.adoptopenjdk.icedteaweb.config.validators; 2 | 3 | import java.util.Locale; 4 | 5 | import static net.adoptopenjdk.icedteaweb.i18n.Translator.R; 6 | 7 | /** 8 | * Checks if a value is a valid boolean 9 | */ 10 | public class BooleanValidator implements ValueValidator { 11 | 12 | @Override 13 | public void validate(final Object value) throws IllegalArgumentException { 14 | if(value instanceof Boolean) { 15 | return; 16 | } 17 | if (value instanceof String) { 18 | final String lower = ((String) value).toLowerCase(Locale.ENGLISH); 19 | if (lower.equals(Boolean.TRUE.toString()) 20 | || (lower.equals(Boolean.FALSE.toString()))) { 21 | return; 22 | } 23 | } 24 | throw new IllegalArgumentException("Not a boolean value: " + value); 25 | } 26 | 27 | @Override 28 | public String getPossibleValues() { 29 | return R("VVPossibleBooleanValues", Boolean.TRUE.toString(), Boolean.FALSE.toString()); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /core/src/main/java/net/adoptopenjdk/icedteaweb/config/validators/FilePathValidator.java: -------------------------------------------------------------------------------- 1 | package net.adoptopenjdk.icedteaweb.config.validators; 2 | 3 | import java.io.File; 4 | 5 | import static net.adoptopenjdk.icedteaweb.i18n.Translator.R; 6 | 7 | /** 8 | * Checks if a value is a valid file path (not a valid file!). The actual 9 | * file may or may not exist 10 | */ 11 | //package private for testing purposes 12 | public class FilePathValidator implements ValueValidator { 13 | 14 | @Override 15 | public void validate(final Object value) throws IllegalArgumentException { 16 | if (value == null) { 17 | return; 18 | } 19 | 20 | if (!(value instanceof String)) { 21 | throw new IllegalArgumentException("Value should be string!"); 22 | } 23 | 24 | final String possibleFile = (String) value; 25 | 26 | if (!new File(possibleFile).isAbsolute()) { 27 | throw new IllegalArgumentException("File must be absolute"); 28 | } 29 | 30 | } 31 | 32 | @Override 33 | public String getPossibleValues() { 34 | return R("VVPossibleFileValues"); 35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /core/src/main/java/net/adoptopenjdk/icedteaweb/config/validators/NotBlankValidator.java: -------------------------------------------------------------------------------- 1 | package net.adoptopenjdk.icedteaweb.config.validators; 2 | 3 | import net.adoptopenjdk.icedteaweb.StringUtils; 4 | 5 | import static net.adoptopenjdk.icedteaweb.i18n.Translator.R; 6 | 7 | /** 8 | * Checks that the value is not null or blank 9 | */ 10 | public class NotBlankValidator implements ValueValidator { 11 | 12 | @Override 13 | public void validate(final Object value) throws IllegalArgumentException { 14 | if (!(value instanceof String)) { 15 | throw new IllegalArgumentException("Must be a string"); 16 | } 17 | 18 | if (StringUtils.isBlank((String) value)) { 19 | throw new IllegalArgumentException("Must not be blank"); 20 | } 21 | } 22 | 23 | @Override 24 | public String getPossibleValues() { 25 | return R("VVAnyNonBlankString"); 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /core/src/main/java/net/adoptopenjdk/icedteaweb/config/validators/PortValidator.java: -------------------------------------------------------------------------------- 1 | package net.adoptopenjdk.icedteaweb.config.validators; 2 | 3 | /** 4 | * Checks that the value is a valid port. 5 | */ 6 | public class PortValidator extends RangedIntegerValidator { 7 | 8 | private static final int HIGHEST_PORT = 65535; 9 | private static final int LOWEST_PORT = 0; 10 | 11 | public PortValidator() { 12 | super(LOWEST_PORT, HIGHEST_PORT); 13 | } 14 | 15 | @Override 16 | public void validate(final Object value) throws IllegalArgumentException { 17 | if (value == null) { 18 | return; // null for a port tells ITW to use the default port 19 | } 20 | super.validate(value); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /core/src/main/java/net/adoptopenjdk/icedteaweb/config/validators/RustCpValidator.java: -------------------------------------------------------------------------------- 1 | package net.adoptopenjdk.icedteaweb.config.validators; 2 | 3 | import static net.adoptopenjdk.icedteaweb.i18n.Translator.R; 4 | 5 | public class RustCpValidator implements ValueValidator { 6 | 7 | 8 | @Override 9 | public void validate(final Object value) throws IllegalArgumentException { 10 | //can't be wrong... 11 | //but we need that getPossibleValues description 12 | } 13 | 14 | 15 | @Override 16 | public String getPossibleValues() { 17 | return R("VVRustCpModifiers"); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /core/src/main/java/net/adoptopenjdk/icedteaweb/config/validators/StringValueValidator.java: -------------------------------------------------------------------------------- 1 | package net.adoptopenjdk.icedteaweb.config.validators; 2 | 3 | import java.util.Arrays; 4 | 5 | /** 6 | * Checks that the value is one of the acceptable String values 7 | */ 8 | public class StringValueValidator implements ValueValidator { 9 | 10 | private final String[] options; 11 | 12 | public StringValueValidator(final String[] acceptableOptions) { 13 | options = acceptableOptions; 14 | } 15 | 16 | @Override 17 | public void validate(final Object value) throws IllegalArgumentException { 18 | if (!(value instanceof String)) { 19 | throw new IllegalArgumentException("Must be a string"); 20 | } 21 | 22 | String stringVal = (String) value; 23 | boolean found = false; 24 | for (String knownVal : options) { 25 | if (knownVal.equals(stringVal)) { 26 | found = true; 27 | break; 28 | } 29 | } 30 | 31 | if (!found) { 32 | throw new IllegalArgumentException("Not a valid value: " + value); 33 | } 34 | } 35 | 36 | @Override 37 | public String getPossibleValues() { 38 | return Arrays.toString(options); 39 | } 40 | 41 | } 42 | -------------------------------------------------------------------------------- /core/src/main/java/net/adoptopenjdk/icedteaweb/config/validators/UrlValidator.java: -------------------------------------------------------------------------------- 1 | package net.adoptopenjdk.icedteaweb.config.validators; 2 | 3 | import java.net.URL; 4 | 5 | import static net.adoptopenjdk.icedteaweb.i18n.Translator.R; 6 | 7 | /** 8 | * Checks that the value is a URL 9 | */ 10 | public class UrlValidator implements ValueValidator { 11 | 12 | @Override 13 | public void validate(final Object value) throws IllegalArgumentException { 14 | if (value == null) { 15 | return; 16 | } 17 | try { 18 | new URL((String) value); 19 | } catch (final Exception e) { 20 | throw new IllegalArgumentException("Not a valid URL", e); 21 | } 22 | } 23 | 24 | @Override 25 | public String getPossibleValues() { 26 | return R("VVPossibleUrlValues"); 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /core/src/main/java/net/adoptopenjdk/icedteaweb/jnlp/element/EntryPoint.java: -------------------------------------------------------------------------------- 1 | package net.adoptopenjdk.icedteaweb.jnlp.element; 2 | 3 | /** 4 | * Provides access to the main entry point where to start a program's execution. 5 | *

6 | * Name inspired by https://en.wikipedia.org/wiki/Entry_point 7 | */ 8 | public interface EntryPoint { 9 | /** 10 | * For Java applications this method returns the name of the class containing the public static 11 | * void main(String[]) method. The name and/or meaning may vary as is appropriate for other types 12 | * of applications. 13 | *

14 | * For Java this attribute can be omitted if the main class can be found from the Main-Class manifest entry 15 | * in the main JAR file. 16 | * 17 | * @return the fully qualified name of the main entry point where to start a program's execution 18 | */ 19 | String getMainClass(); 20 | } 21 | -------------------------------------------------------------------------------- /core/src/main/java/net/adoptopenjdk/icedteaweb/manifest/ManifestBoolean.java: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2019 Karakun AG 2 | // 3 | // This library is free software; you can redistribute it and/or 4 | // modify it under the terms of the GNU Lesser General Public 5 | // License as published by the Free Software Foundation; either 6 | // version 2.1 of the License, or (at your option) any later version. 7 | // 8 | // This library is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 11 | // Lesser General Public License for more details. 12 | // 13 | // You should have received a copy of the GNU Lesser General Public 14 | // License along with this library; if not, write to the Free Software 15 | // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 16 | 17 | package net.adoptopenjdk.icedteaweb.manifest; 18 | 19 | public enum ManifestBoolean { 20 | TRUE, FALSE, UNDEFINED 21 | } 22 | -------------------------------------------------------------------------------- /core/src/main/java/net/adoptopenjdk/icedteaweb/proxy/ie/RegistryValue.java: -------------------------------------------------------------------------------- 1 | package net.adoptopenjdk.icedteaweb.proxy.ie; 2 | 3 | import java.util.Objects; 4 | 5 | public class RegistryValue { 6 | 7 | private final String name; 8 | 9 | private final RegistryValueType type; 10 | 11 | private final String value; 12 | 13 | public RegistryValue(final String name, final RegistryValueType type, final String value) { 14 | this.name = name; 15 | this.type = type; 16 | this.value = value; 17 | } 18 | 19 | public String getName() { 20 | return name; 21 | } 22 | 23 | public RegistryValueType getType() { 24 | return type; 25 | } 26 | 27 | public String getValue() { 28 | return value; 29 | } 30 | 31 | public boolean getValueAsBoolean() { 32 | if (type != RegistryValueType.REG_DWORD) { 33 | throw new IllegalStateException("Can not extract boolean value for value type " + type); 34 | } 35 | return Objects.equals(value, "0x1"); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /core/src/main/java/net/adoptopenjdk/icedteaweb/proxy/ie/RegistryValueType.java: -------------------------------------------------------------------------------- 1 | package net.adoptopenjdk.icedteaweb.proxy.ie; 2 | 3 | public enum RegistryValueType { 4 | REG_BINARY, 5 | REG_DWORD, 6 | REG_DWORD_LITTLE_ENDIAN, 7 | REG_DWORD_BIG_ENDIAN, 8 | REG_EXPAND_SZ, 9 | REG_LINK, 10 | REG_MULTI_SZ, 11 | REG_NONE, 12 | REG_QWORD, 13 | REG_QWORD_LITTLE_ENDIAN, 14 | REG_SZ, 15 | } 16 | -------------------------------------------------------------------------------- /core/src/main/java/net/adoptopenjdk/icedteaweb/proxy/ie/WindowsProxyConstants.java: -------------------------------------------------------------------------------- 1 | package net.adoptopenjdk.icedteaweb.proxy.ie; 2 | 3 | public interface WindowsProxyConstants { 4 | 5 | String PROXY_REGISTRY_KEY = "Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings"; 6 | 7 | String PROXY_SERVER_REGISTRY_VAL = "ProxyServer"; 8 | 9 | String PROXY_SERVER_OVERRIDE_VAL = "ProxyOverride"; 10 | 11 | String PROXY_ENABLED_VAL = "ProxyEnable"; 12 | 13 | String AUTO_CONFIG_URL_VAL = "AutoConfigURL"; 14 | } 15 | -------------------------------------------------------------------------------- /core/src/main/java/net/adoptopenjdk/icedteaweb/resources/JnlpDownloadProtocolConstants.java: -------------------------------------------------------------------------------- 1 | package net.adoptopenjdk.icedteaweb.resources; 2 | 3 | /** 4 | * ... 5 | */ 6 | public interface JnlpDownloadProtocolConstants { 7 | String ACCEPT_ENCODING_HEADER = "Accept-Encoding"; 8 | String CONTENT_ENCODING_HEADER = "Content-Encoding"; 9 | String CONTENT_TYPE_HEADER = "Content-Type"; 10 | String LAST_MODIFIED_HEADER = "Last-Modified"; 11 | 12 | String VERSION_ID_HEADER = "x-java-jnlp-version-id"; 13 | 14 | String ERROR_MIME_TYPE = "application/x-java-jnlp-error"; 15 | String JAR_DIFF_MIME_TYPE = "application/x-java-archive-dif"; 16 | 17 | String PACK_200_OR_GZIP = "pack200-gzip, gzip"; 18 | String INVALID_HTTP_RESPONSE = "Invalid Http response"; 19 | 20 | String VERSION_ID_QUERY_PARAM = "version-id"; 21 | String CURRENT_VERSION_ID_QUERY_PARAM = "current-version-id"; 22 | 23 | String VERSION_PREFIX = "__V"; 24 | } 25 | -------------------------------------------------------------------------------- /core/src/main/java/net/adoptopenjdk/icedteaweb/resources/ResourceStatus.java: -------------------------------------------------------------------------------- 1 | package net.adoptopenjdk.icedteaweb.resources; 2 | 3 | public enum ResourceStatus { 4 | INCOMPLETE, 5 | DOWNLOADED, 6 | ERROR; 7 | 8 | private final String shortName; 9 | 10 | ResourceStatus() { 11 | shortName = name().substring(0,1); 12 | } 13 | 14 | public String getShortName() { 15 | return shortName; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /core/src/main/java/net/adoptopenjdk/icedteaweb/resources/cache/DownloadInfo.java: -------------------------------------------------------------------------------- 1 | package net.adoptopenjdk.icedteaweb.resources.cache; 2 | 3 | import net.adoptopenjdk.icedteaweb.jnlp.version.VersionId; 4 | 5 | import java.net.URL; 6 | 7 | public class DownloadInfo { 8 | 9 | private final CacheKey key; 10 | 11 | private final long lastModified; 12 | private final long downloadedAt; 13 | 14 | public DownloadInfo(URL resourceHref, VersionId version, long lastModified) { 15 | this.key = new CacheKey(resourceHref, version); 16 | 17 | this.lastModified = lastModified; 18 | this.downloadedAt = System.currentTimeMillis(); 19 | } 20 | 21 | CacheKey getCacheKey() { 22 | return key; 23 | } 24 | 25 | long getLastModified() { 26 | return lastModified; 27 | } 28 | 29 | long getDownloadedAt() { 30 | return downloadedAt; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /core/src/main/java/net/adoptopenjdk/icedteaweb/resources/cache/ResourceInfo.java: -------------------------------------------------------------------------------- 1 | package net.adoptopenjdk.icedteaweb.resources.cache; 2 | 3 | /** 4 | * Information about a resource. 5 | */ 6 | public interface ResourceInfo { 7 | /** 8 | * @return the cache key of the resource 9 | */ 10 | CacheKey getCacheKey(); 11 | 12 | /** 13 | * @return the size of the resource in bytes 14 | */ 15 | long getSize(); 16 | 17 | /** 18 | * @return the last time this resource was modified (in Java millis) 19 | */ 20 | long getLastModified(); 21 | 22 | /** 23 | * @return the last time the resource was downloaded (in Java millis) 24 | */ 25 | long getDownloadedAt(); 26 | 27 | } 28 | -------------------------------------------------------------------------------- /core/src/main/java/net/adoptopenjdk/icedteaweb/resources/downloader/DownloadDetails.java: -------------------------------------------------------------------------------- 1 | package net.adoptopenjdk.icedteaweb.resources.downloader; 2 | 3 | import java.io.InputStream; 4 | import java.net.URL; 5 | 6 | /** 7 | * ... 8 | */ 9 | class DownloadDetails { 10 | final URL downloadFrom; 11 | final CountingInputStream inputStream; 12 | final String contentType; 13 | final String contentEncoding; 14 | final String version; 15 | final long lastModified; 16 | final long totalSize; 17 | 18 | DownloadDetails(URL downloadFrom, CountingInputStream inputStream, String contentType, String contentEncoding, String version, long lastModified, long totalSize) { 19 | this.downloadFrom = downloadFrom; 20 | this.inputStream = inputStream; 21 | this.contentType = contentType; 22 | this.contentEncoding = contentEncoding; 23 | this.version = version; 24 | this.lastModified = lastModified; 25 | this.totalSize = totalSize; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /core/src/main/java/net/adoptopenjdk/icedteaweb/resources/downloader/NotUnpacker.java: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2019 Karakun AG 2 | // 3 | // This library is free software; you can redistribute it and/or 4 | // modify it under the terms of the GNU Lesser General Public 5 | // License as published by the Free Software Foundation; either 6 | // version 2.1 of the License, or (at your option) any later version. 7 | // 8 | // This library is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 11 | // Lesser General Public License for more details. 12 | // 13 | // You should have received a copy of the GNU Lesser General Public 14 | // License along with this library; if not, write to the Free Software 15 | // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 16 | 17 | package net.adoptopenjdk.icedteaweb.resources.downloader; 18 | 19 | import java.io.InputStream; 20 | 21 | /** 22 | * NoOp unpacker which returns the input unchanged. 23 | */ 24 | public class NotUnpacker implements StreamUnpacker { 25 | @Override 26 | public InputStream unpack(InputStream input) { 27 | return input; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /core/src/main/java/net/adoptopenjdk/icedteaweb/resources/downloader/ResourceDownloader.java: -------------------------------------------------------------------------------- 1 | package net.adoptopenjdk.icedteaweb.resources.downloader; 2 | 3 | import net.adoptopenjdk.icedteaweb.jnlp.version.VersionString; 4 | import net.adoptopenjdk.icedteaweb.resources.Resource; 5 | 6 | import java.net.URL; 7 | import java.util.List; 8 | 9 | public interface ResourceDownloader { 10 | 11 | static ResourceDownloader of(Resource resource, List downloadUrls) { 12 | final VersionString version = resource.getRequestVersion(); 13 | if (version == null) { 14 | return new UnversionedResourceDownloader(resource, downloadUrls); 15 | } 16 | if (version.isExactVersion()) { 17 | return new ExactVersionedResourceDownloader(resource, downloadUrls); 18 | } else { 19 | return new RangeVersionedResourceDownloader(resource, downloadUrls); 20 | } 21 | } 22 | 23 | Resource download(); 24 | } 25 | -------------------------------------------------------------------------------- /core/src/main/java/net/adoptopenjdk/icedteaweb/resources/downloader/UnversionedResourceDownloader.java: -------------------------------------------------------------------------------- 1 | package net.adoptopenjdk.icedteaweb.resources.downloader; 2 | 3 | import net.adoptopenjdk.icedteaweb.jnlp.version.VersionId; 4 | import net.adoptopenjdk.icedteaweb.resources.Resource; 5 | import net.adoptopenjdk.icedteaweb.resources.cache.Cache; 6 | 7 | import java.net.URL; 8 | import java.util.List; 9 | 10 | /** 11 | * ... 12 | */ 13 | class UnversionedResourceDownloader extends BaseResourceDownloader { 14 | UnversionedResourceDownloader(Resource resource, List downloadUrls) { 15 | super(resource, downloadUrls); 16 | } 17 | 18 | @Override 19 | protected VersionId getVersion(URL downloadFrom, String versionHeaderValue) { 20 | return null; 21 | } 22 | 23 | @Override 24 | protected boolean isUpToDate(URL resourceHref, VersionId version, long lastModified) { 25 | if (!Cache.isCached(resourceHref, null)) { 26 | return false; 27 | } 28 | 29 | final boolean upToDate = Cache.isUpToDate(resourceHref, null, lastModified); 30 | if (!upToDate || resource.forceUpdateRequested()) { 31 | invalidateExistingEntryInCache(null); 32 | } 33 | return upToDate; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /core/src/main/java/net/adoptopenjdk/icedteaweb/resources/initializer/InitializationResult.java: -------------------------------------------------------------------------------- 1 | package net.adoptopenjdk.icedteaweb.resources.initializer; 2 | 3 | import java.net.URL; 4 | import java.util.ArrayList; 5 | import java.util.Arrays; 6 | import java.util.Collections; 7 | import java.util.List; 8 | 9 | public class InitializationResult { 10 | 11 | private final List urls; 12 | 13 | InitializationResult(List urls) { 14 | this.urls = Collections.unmodifiableList(new ArrayList<>(urls)); 15 | } 16 | 17 | InitializationResult(URL... urls) { 18 | this.urls = Collections.unmodifiableList(Arrays.asList(urls)); 19 | } 20 | 21 | public boolean needsDownload() { 22 | return !urls.isEmpty(); 23 | } 24 | 25 | public List getDownloadUrls() { 26 | return urls; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /core/src/main/java/net/adoptopenjdk/icedteaweb/resources/initializer/ResourceInitializer.java: -------------------------------------------------------------------------------- 1 | package net.adoptopenjdk.icedteaweb.resources.initializer; 2 | 3 | import net.adoptopenjdk.icedteaweb.jnlp.version.VersionString; 4 | import net.adoptopenjdk.icedteaweb.resources.Resource; 5 | import net.sourceforge.jnlp.runtime.JNLPRuntime; 6 | 7 | public interface ResourceInitializer { 8 | 9 | static ResourceInitializer of(final Resource resource) { 10 | if (JNLPRuntime.isOfflineForced()) { 11 | return new OfflineResourceInitializer(resource); 12 | } 13 | 14 | final VersionString requestVersion = resource.getRequestVersion(); 15 | if (requestVersion == null) { 16 | return new UnversionedResourceInitializer(resource); 17 | } 18 | 19 | if (requestVersion.isExactVersion()) { 20 | return new ExactVersionedResourceInitializer(resource); 21 | } else { 22 | return new RangeVersionedResourceInitializer(resource); 23 | } 24 | } 25 | 26 | InitializationResult init(); 27 | } 28 | -------------------------------------------------------------------------------- /core/src/main/java/net/sourceforge/jnlp/config/DefaultsProvider.java: -------------------------------------------------------------------------------- 1 | package net.sourceforge.jnlp.config; 2 | 3 | import net.adoptopenjdk.icedteaweb.config.validators.ValueValidator; 4 | 5 | import java.util.List; 6 | 7 | /** 8 | * Provider for Default settings. 9 | *

10 | * This can be used by extensions to register their own default settings. 11 | */ 12 | public interface DefaultsProvider { 13 | 14 | /** 15 | * Default settings from extensions of ITW 16 | * 17 | * @return default settings 18 | * @implNote use {@link Setting#createDefault(String, String, ValueValidator)} to create default settings. 19 | */ 20 | List getDefaults(); 21 | } 22 | -------------------------------------------------------------------------------- /core/src/main/java/net/sourceforge/jnlp/config/DirectoryValidator.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/main/java/net/sourceforge/jnlp/config/DirectoryValidator.java -------------------------------------------------------------------------------- /core/src/main/java/net/sourceforge/jnlp/proxy/ProxyConstants.java: -------------------------------------------------------------------------------- 1 | package net.sourceforge.jnlp.proxy; 2 | 3 | public interface ProxyConstants { 4 | 5 | String HTTP_SCHEMA = "http"; 6 | 7 | String HTTPS_SCHEMA = "https"; 8 | 9 | String FTP_SCHEMA = "ftp"; 10 | 11 | String SOCKET_SCHEMA = "socket"; 12 | 13 | /** The default port to use as a fallback. Currently squid's default port */ 14 | int FALLBACK_PROXY_PORT = 3128; 15 | } 16 | -------------------------------------------------------------------------------- /core/src/main/java/net/sourceforge/jnlp/proxy/ProxyType.java: -------------------------------------------------------------------------------- 1 | package net.sourceforge.jnlp.proxy; 2 | 3 | import java.util.stream.Stream; 4 | 5 | public enum ProxyType { 6 | 7 | PROXY_TYPE_UNKNOWN(-1), 8 | PROXY_TYPE_NONE(0), 9 | PROXY_TYPE_MANUAL(1), 10 | PROXY_TYPE_AUTO(2), 11 | PROXY_TYPE_BROWSER(3), 12 | PROXY_TYPE_SYSTEM(4), 13 | ; 14 | 15 | private final int configValue; 16 | 17 | ProxyType(final int configValue) { 18 | this.configValue = configValue; 19 | } 20 | 21 | public int getConfigValue() { 22 | return configValue; 23 | } 24 | 25 | public static ProxyType getForConfigValue(final int value) { 26 | final ProxyType result = Stream.of(ProxyType.values()) 27 | .filter(t -> value == t.getConfigValue()) 28 | .findFirst() 29 | .orElse(PROXY_TYPE_UNKNOWN); 30 | 31 | if (result == PROXY_TYPE_SYSTEM) { 32 | return PROXY_TYPE_UNKNOWN; // fallback until system is supported 33 | } 34 | 35 | return result; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /core/src/main/java/net/sourceforge/jnlp/proxy/browser/FirefoxConstants.java: -------------------------------------------------------------------------------- 1 | package net.sourceforge.jnlp.proxy.browser; 2 | 3 | public interface FirefoxConstants { 4 | 5 | String PROXY_TYPE_PROPERTY_NAME = "network.proxy.type"; 6 | 7 | String SHARE_SETTINGS_PROPERTY_NAME = "network.proxy.share_proxy_settings"; 8 | 9 | String AUTO_CONFIG_URL_PROPERTY_NAME = "network.proxy.autoconfig_url"; 10 | 11 | String HTTP_PROPERTY_NAME = "network.proxy.http"; 12 | 13 | String HTTP_PORT_PROPERTY_NAME = "network.proxy.http_port"; 14 | 15 | String SSL_PROPERTY_NAME = "network.proxy.ssl"; 16 | 17 | String SSL_PORT_PROPERTY_NAME = "network.proxy.ssl_port"; 18 | 19 | String FTP_PROPERTY_NAME = "network.proxy.ftp"; 20 | 21 | String FTP_PORT_PROPERTY_NAME = "network.proxy.ftp_port"; 22 | 23 | String SOCKS_PROPERTY_NAME = "network.proxy.socks"; 24 | 25 | String SOCKS_PORT_PROPERTY_NAME = "network.proxy.socks_port"; 26 | } 27 | -------------------------------------------------------------------------------- /core/src/main/java/net/sourceforge/jnlp/proxy/browser/FirefoxProxyType.java: -------------------------------------------------------------------------------- 1 | package net.sourceforge.jnlp.proxy.browser; 2 | 3 | import java.util.stream.Stream; 4 | 5 | public enum FirefoxProxyType { 6 | 7 | FF_PROXY_TYPE_NONE(0), 8 | FF_PROXY_TYPE_MANUAL(1), 9 | FF_PROXY_TYPE_PAC(2), 10 | FF_PROXY_TYPE_AUTO(4), 11 | FF_PROXY_TYPE_SYSTEM(5); 12 | 13 | private final int configValue; 14 | 15 | FirefoxProxyType(final int configValue) { 16 | this.configValue = configValue; 17 | } 18 | 19 | public int getConfigValue() { 20 | return configValue; 21 | } 22 | 23 | public static FirefoxProxyType getForConfigValue(final int value) { 24 | return Stream.of(FirefoxProxyType.values()) 25 | .filter(t -> value == t.getConfigValue()) 26 | .findFirst() 27 | .orElse(FF_PROXY_TYPE_NONE); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /core/src/main/java/net/sourceforge/jnlp/proxy/browser/PreferencesParser.java: -------------------------------------------------------------------------------- 1 | package net.sourceforge.jnlp.proxy.browser; 2 | 3 | import java.io.IOException; 4 | import java.util.Map; 5 | 6 | /** 7 | * ... 8 | */ 9 | interface PreferencesParser { 10 | void parse() throws IOException; 11 | Map getPreferences(); 12 | } 13 | -------------------------------------------------------------------------------- /core/src/main/java/net/sourceforge/jnlp/proxy/pac/PacConstants.java: -------------------------------------------------------------------------------- 1 | package net.sourceforge.jnlp.proxy.pac; 2 | 3 | public interface PacConstants { 4 | 5 | String DIRECT = "DIRECT"; 6 | 7 | String SOCKS = "SOCKS"; 8 | 9 | String PROXY = "PROXY"; 10 | } 11 | -------------------------------------------------------------------------------- /core/src/main/java/net/sourceforge/jnlp/runtime/AppContextFactory.java: -------------------------------------------------------------------------------- 1 | package net.sourceforge.jnlp.runtime; 2 | 3 | import net.sourceforge.jnlp.runtime.classloader.DelegatingClassLoader; 4 | import sun.awt.SunToolkit; 5 | 6 | public class AppContextFactory { 7 | public static void createNewAppContext() { 8 | //set temporary classloader for EventQueue initialization 9 | //already a call to AppContext.getAppContext(...) initializes the EventQueue.class 10 | ClassLoader originalLoader = Thread.currentThread().getContextClassLoader(); 11 | try { 12 | DelegatingClassLoader delegatingLoader = DelegatingClassLoader.getInstance(); 13 | delegatingLoader.setClassLoader(originalLoader); 14 | 15 | Thread.currentThread().setContextClassLoader(delegatingLoader); 16 | SunToolkit.createNewAppContext(); 17 | }finally { 18 | //restore original classloader 19 | Thread.currentThread().setContextClassLoader(originalLoader); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /core/src/main/java/net/sourceforge/jnlp/runtime/EnvironmentPrinter.java: -------------------------------------------------------------------------------- 1 | package net.sourceforge.jnlp.runtime; 2 | 3 | import net.adoptopenjdk.icedteaweb.JavaSystemProperties; 4 | import net.adoptopenjdk.icedteaweb.logging.Logger; 5 | import net.adoptopenjdk.icedteaweb.logging.LoggerFactory; 6 | 7 | import java.util.Arrays; 8 | 9 | public class EnvironmentPrinter { 10 | 11 | private static final Logger LOG = LoggerFactory.getLogger(EnvironmentPrinter.class); 12 | 13 | public static void logEnvironment(final String[] args) { 14 | LOG.info("OpenWebStartLauncher called with args: {}.", Arrays.toString(args)); 15 | LOG.info("OS: {}", JavaSystemProperties.getOsName()); 16 | LOG.info("Java Runtime {}-{}", JavaSystemProperties.getJavaVendor(), JavaSystemProperties.getJavaVersion()); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /core/src/main/java/net/sourceforge/jnlp/runtime/ForkingStrategy.java: -------------------------------------------------------------------------------- 1 | package net.sourceforge.jnlp.runtime; 2 | 3 | import net.sourceforge.jnlp.JNLPFile; 4 | 5 | public enum ForkingStrategy { 6 | 7 | IF_JNLP_REQUIRES { 8 | public boolean needsToFork(JNLPFile file) { 9 | return file.needsNewVM(); 10 | } 11 | }, 12 | 13 | NEVER { 14 | public boolean needsToFork(JNLPFile file) { 15 | return false; 16 | } 17 | }, 18 | 19 | ALWAYS { 20 | public boolean needsToFork(JNLPFile file) { 21 | return true; 22 | } 23 | 24 | @Override 25 | public boolean mayRunManagedApplication() { 26 | return false; 27 | } 28 | }, 29 | 30 | ; 31 | 32 | public abstract boolean needsToFork(JNLPFile file); 33 | 34 | public boolean mayRunManagedApplication() { 35 | return true; 36 | } 37 | 38 | } 39 | -------------------------------------------------------------------------------- /core/src/main/java/net/sourceforge/jnlp/runtime/MenuAndDesktopIntegration.java: -------------------------------------------------------------------------------- 1 | package net.sourceforge.jnlp.runtime; 2 | 3 | import net.sourceforge.jnlp.JNLPFile; 4 | 5 | /** 6 | * ... 7 | */ 8 | public interface MenuAndDesktopIntegration { 9 | 10 | /** 11 | * Creates menu and desktop entries if required by the jnlp file or settings 12 | */ 13 | void addMenuAndDesktopEntries(JNLPFile file); 14 | } 15 | -------------------------------------------------------------------------------- /core/src/main/java/net/sourceforge/jnlp/security/AccessType.java: -------------------------------------------------------------------------------- 1 | package net.sourceforge.jnlp.security; 2 | 3 | /** 4 | * The types of access which may need user permission. 5 | */ 6 | public enum AccessType { 7 | 8 | READ_WRITE_FILE, 9 | READ_FILE, 10 | WRITE_FILE, 11 | CREATE_DESKTOP_SHORTCUT, 12 | CLIPBOARD_READ, 13 | CLIPBOARD_WRITE, 14 | PRINTER, 15 | NETWORK, 16 | VERIFIED, 17 | UNVERIFIED, 18 | PARTIALLY_SIGNED, 19 | UNSIGNED, /* requires confirmation with 'high-security' setting */ 20 | SIGNING_ERROR 21 | } 22 | -------------------------------------------------------------------------------- /core/src/main/java/net/sourceforge/jnlp/util/IpUtil.java: -------------------------------------------------------------------------------- 1 | package net.sourceforge.jnlp.util; 2 | 3 | import inet.ipaddr.HostName; 4 | import net.adoptopenjdk.icedteaweb.StringUtils; 5 | 6 | import java.net.URI; 7 | import java.net.URL; 8 | 9 | public class IpUtil { 10 | public static boolean isLocalhostOrLoopback(final URL url) { 11 | return isLocalhostOrLoopback(url.getHost()); 12 | } 13 | 14 | public static boolean isLocalhostOrLoopback(final URI uri) { 15 | return isLocalhostOrLoopback(uri.getHost()); 16 | } 17 | 18 | /** 19 | * @param host host string to verify 20 | * @return true if the given host string is blank or represents or resolves to the hostname or the IP address 21 | * of localhost or the loopback address. 22 | */ 23 | static boolean isLocalhostOrLoopback(final String host) { 24 | if (StringUtils.isBlank(host)) { 25 | return true; // java.net.InetAddress.getByName(host).isLoopbackAddress() returns true 26 | } 27 | final HostName hostName = new HostName(host); 28 | return hostName.resolvesToSelf(); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /core/src/main/java/net/sourceforge/jnlp/util/ShortcutCreationOptions.java: -------------------------------------------------------------------------------- 1 | package net.sourceforge.jnlp.util; 2 | 3 | import net.adoptopenjdk.icedteaweb.jnlp.element.information.ShortcutDesc; 4 | 5 | import java.util.Objects; 6 | import java.util.Optional; 7 | import java.util.stream.Stream; 8 | 9 | public enum ShortcutCreationOptions { 10 | 11 | CREATE_NEVER(ShortcutDesc.CREATE_NEVER), 12 | CREATE_ALWAYS(ShortcutDesc.CREATE_ALWAYS), 13 | CREATE_ASK_USER(ShortcutDesc.CREATE_ASK_USER), 14 | CREATE_ASK_USER_IF_HINTED(ShortcutDesc.CREATE_ASK_USER_IF_HINTED), 15 | CREATE_ALWAYS_IF_HINTED(ShortcutDesc.CREATE_ALWAYS_IF_HINTED); 16 | 17 | 18 | private final String configName; 19 | 20 | ShortcutCreationOptions(final String configName) { 21 | this.configName = configName; 22 | } 23 | 24 | public String getConfigName() { 25 | return configName; 26 | } 27 | 28 | public static Optional forConfigName(final String configName) { 29 | return Stream.of(values()) 30 | .filter(v -> Objects.equals(configName, v.getConfigName())) 31 | .findFirst(); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /core/src/main/java/net/sourceforge/jnlp/util/logging/OutputControllerLevel.java: -------------------------------------------------------------------------------- 1 | package net.sourceforge.jnlp.util.logging; 2 | 3 | /** 4 | * Log levels for ITW internal logging. 5 | */ 6 | public enum OutputControllerLevel { 7 | 8 | ERROR, 9 | WARN, 10 | INFO, 11 | DEBUG, 12 | 13 | ; 14 | 15 | private final String displayName = (name() + " ").substring(0,5); 16 | 17 | public boolean printToOutStream() { 18 | return this == INFO || this == DEBUG || this == WARN; 19 | } 20 | 21 | public boolean printToErrStream() { 22 | return this == ERROR || this == WARN; 23 | } 24 | 25 | public String display() { 26 | return displayName; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /core/src/main/java/net/sourceforge/jnlp/util/whitelist/UnparsableWhitelistEntry.java: -------------------------------------------------------------------------------- 1 | package net.sourceforge.jnlp.util.whitelist; 2 | 3 | import net.adoptopenjdk.icedteaweb.i18n.Translator; 4 | 5 | import java.net.URL; 6 | 7 | /** 8 | * An entry where it was not possible to parse protocol, host and port. 9 | */ 10 | class UnparsableWhitelistEntry implements WhitelistEntry { 11 | 12 | private final String rawWhitelistEntry; 13 | 14 | UnparsableWhitelistEntry(final String rawWhitelistEntry) { 15 | this.rawWhitelistEntry = rawWhitelistEntry; 16 | } 17 | 18 | @Override 19 | public boolean matches(final URL url) { 20 | return false; 21 | } 22 | 23 | @Override 24 | public boolean isValid() { 25 | return false; 26 | } 27 | 28 | @Override 29 | public String getRawWhitelistEntry() { 30 | return rawWhitelistEntry; 31 | } 32 | 33 | @Override 34 | public String getEffectiveWhitelistEntry() { 35 | return ""; 36 | } 37 | 38 | @Override 39 | public String getErrorMessage() { 40 | return Translator.R("WleUnparseableEntry"); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /core/src/main/java/net/sourceforge/jnlp/util/whitelist/WhitelistEntry.java: -------------------------------------------------------------------------------- 1 | package net.sourceforge.jnlp.util.whitelist; 2 | 3 | import java.net.URL; 4 | 5 | /** 6 | * A single entry in the URL whitelist. 7 | */ 8 | public interface WhitelistEntry { 9 | 10 | static WhitelistEntry parse(String rawEntry) { 11 | return WhiteListEntryParser.parse(rawEntry); 12 | } 13 | 14 | boolean matches(URL url); 15 | 16 | boolean isValid(); 17 | 18 | String getRawWhitelistEntry(); 19 | 20 | String getEffectiveWhitelistEntry(); 21 | 22 | String getErrorMessage(); 23 | } 24 | -------------------------------------------------------------------------------- /core/src/main/java/net/sourceforge/jnlp/util/whitelist/WhitelistEntryPart.java: -------------------------------------------------------------------------------- 1 | package net.sourceforge.jnlp.util.whitelist; 2 | 3 | import java.net.URL; 4 | 5 | /** 6 | * A part of a parsed whitelist entry. 7 | */ 8 | abstract class WhitelistEntryPart { 9 | 10 | private final boolean valid; 11 | private final String effective; 12 | private final String error; 13 | 14 | WhitelistEntryPart(final boolean valid, final String effective, final String error) { 15 | this.valid = valid; 16 | this.effective = effective; 17 | this.error = error; 18 | } 19 | 20 | abstract boolean matches(URL url); 21 | 22 | boolean isValid() { 23 | return valid; 24 | } 25 | 26 | String effective() { 27 | return effective; 28 | } 29 | 30 | String error() { 31 | return error; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /core/src/main/resources/META-INF/services/net.adoptopenjdk.icedteaweb.client.controlpanel.panels.provider.ControlPanelProvider: -------------------------------------------------------------------------------- 1 | net.adoptopenjdk.icedteaweb.client.controlpanel.panels.provider.DebugSettingsPanelProvider 2 | net.adoptopenjdk.icedteaweb.client.controlpanel.panels.provider.DesktopSettingsPanelProvider 3 | net.adoptopenjdk.icedteaweb.client.controlpanel.panels.provider.JvmSettingsPanelProvider 4 | net.adoptopenjdk.icedteaweb.client.controlpanel.panels.provider.NetworkSettingsPanelProvider 5 | net.adoptopenjdk.icedteaweb.client.controlpanel.panels.provider.PolicySettingsPanelProvider 6 | net.adoptopenjdk.icedteaweb.client.controlpanel.panels.provider.SecuritySettingsPanelProvider 7 | net.adoptopenjdk.icedteaweb.client.controlpanel.panels.provider.UnsignedAppletsTrustingListPanelProvider 8 | net.adoptopenjdk.icedteaweb.client.controlpanel.panels.provider.AboutPanelProvider 9 | net.adoptopenjdk.icedteaweb.client.controlpanel.panels.provider.CacheSettingsPanelProvider 10 | net.adoptopenjdk.icedteaweb.client.controlpanel.panels.provider.CertificatesSettingsPanelProvider 11 | net.adoptopenjdk.icedteaweb.client.controlpanel.panels.provider.ServerWhitelistPanelProvider 12 | -------------------------------------------------------------------------------- /core/src/main/resources/javaws_splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/main/resources/javaws_splash.png -------------------------------------------------------------------------------- /core/src/main/resources/net/sourceforge/jnlp/build.properties: -------------------------------------------------------------------------------- 1 | rhino.available=true -------------------------------------------------------------------------------- /core/src/main/resources/net/sourceforge/jnlp/resources/hideDownloadDetails.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/main/resources/net/sourceforge/jnlp/resources/hideDownloadDetails.png -------------------------------------------------------------------------------- /core/src/main/resources/net/sourceforge/jnlp/resources/info-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/main/resources/net/sourceforge/jnlp/resources/info-small.png -------------------------------------------------------------------------------- /core/src/main/resources/net/sourceforge/jnlp/resources/install.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/main/resources/net/sourceforge/jnlp/resources/install.png -------------------------------------------------------------------------------- /core/src/main/resources/net/sourceforge/jnlp/resources/itw_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/main/resources/net/sourceforge/jnlp/resources/itw_logo.png -------------------------------------------------------------------------------- /core/src/main/resources/net/sourceforge/jnlp/resources/jamIcon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/main/resources/net/sourceforge/jnlp/resources/jamIcon.jpg -------------------------------------------------------------------------------- /core/src/main/resources/net/sourceforge/jnlp/resources/netx-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/main/resources/net/sourceforge/jnlp/resources/netx-icon.png -------------------------------------------------------------------------------- /core/src/main/resources/net/sourceforge/jnlp/resources/question.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/main/resources/net/sourceforge/jnlp/resources/question.png -------------------------------------------------------------------------------- /core/src/main/resources/net/sourceforge/jnlp/resources/showDownloadDetails.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/main/resources/net/sourceforge/jnlp/resources/showDownloadDetails.png -------------------------------------------------------------------------------- /core/src/main/resources/net/sourceforge/jnlp/resources/warn16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/main/resources/net/sourceforge/jnlp/resources/warn16.png -------------------------------------------------------------------------------- /core/src/main/resources/net/sourceforge/jnlp/resources/warning-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/main/resources/net/sourceforge/jnlp/resources/warning-small.png -------------------------------------------------------------------------------- /core/src/main/resources/net/sourceforge/jnlp/resources/warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/main/resources/net/sourceforge/jnlp/resources/warning.png -------------------------------------------------------------------------------- /core/src/test/java/net/adoptopenjdk/icedteaweb/jnlp/element/application/ApplicationDescTest.java: -------------------------------------------------------------------------------- 1 | package net.adoptopenjdk.icedteaweb.jnlp.element.application; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.hamcrest.MatcherAssert.assertThat; 6 | import static org.hamcrest.Matchers.arrayContaining; 7 | 8 | public class ApplicationDescTest { 9 | 10 | @Test 11 | public void canAddArguments() { 12 | // arrange 13 | final ApplicationDesc applicationDesc = new ApplicationDesc("mainClass", new String[0]); 14 | 15 | // act 16 | applicationDesc.addArgument("someArg"); 17 | 18 | // assert 19 | assertThat(applicationDesc.getArguments(), arrayContaining("someArg")); 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /core/src/test/java/net/adoptopenjdk/icedteaweb/jnlp/element/information/DescriptionKindTest.java: -------------------------------------------------------------------------------- 1 | package net.adoptopenjdk.icedteaweb.jnlp.element.information; 2 | 3 | import org.junit.Assert; 4 | import org.junit.Test; 5 | 6 | import static org.junit.Assert.*; 7 | 8 | public class DescriptionKindTest { 9 | @Test 10 | public void getValue() { 11 | Assert.assertEquals("one-line", DescriptionKind.ONE_LINE.getValue()); 12 | Assert.assertEquals("short", DescriptionKind.SHORT.getValue()); 13 | Assert.assertEquals("tooltip", DescriptionKind.TOOLTIP.getValue()); 14 | Assert.assertEquals("default", DescriptionKind.DEFAULT.getValue()); 15 | } 16 | 17 | @Test 18 | public void testFromString() { 19 | Assert.assertEquals(DescriptionKind.ONE_LINE, DescriptionKind.fromString("one-line")); 20 | Assert.assertEquals(DescriptionKind.SHORT, DescriptionKind.fromString("short")); 21 | Assert.assertEquals(DescriptionKind.TOOLTIP, DescriptionKind.fromString("tooltip")); 22 | Assert.assertEquals(DescriptionKind.DEFAULT, DescriptionKind.fromString("default")); 23 | } 24 | 25 | @Test(expected = IllegalArgumentException.class) 26 | public void testFromStringWithUnknownEnumValue() { 27 | DescriptionKind.fromString("unknown"); 28 | } 29 | } -------------------------------------------------------------------------------- /core/src/test/java/net/adoptopenjdk/icedteaweb/resources/ResourceFactory.java: -------------------------------------------------------------------------------- 1 | package net.adoptopenjdk.icedteaweb.resources; 2 | 3 | import net.adoptopenjdk.icedteaweb.jnlp.version.VersionString; 4 | import net.sourceforge.jnlp.DownloadOptions; 5 | 6 | import java.net.URL; 7 | 8 | /** 9 | * Factory to allow creating {@link Resource Resources} outside of its package for testing purposes. 10 | */ 11 | public class ResourceFactory { 12 | public static Resource createResource(final URL location, final VersionString requestVersion, final DownloadOptions downloadOptions, final UpdatePolicy updatePolicy) { 13 | return Resource.createOrGetResource(location, requestVersion, downloadOptions, updatePolicy); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /core/src/test/java/net/adoptopenjdk/icedteaweb/testing/util/NonWindowsLockableFile.java: -------------------------------------------------------------------------------- 1 | 2 | package net.adoptopenjdk.icedteaweb.testing.util; 3 | 4 | import net.adoptopenjdk.icedteaweb.JavaSystemProperties; 5 | import net.adoptopenjdk.icedteaweb.lockingfile.WindowsLockableFileTest; 6 | import org.junit.AfterClass; 7 | import org.junit.BeforeClass; 8 | 9 | import static net.adoptopenjdk.icedteaweb.JavaSystemPropertiesConstants.OS_NAME; 10 | 11 | /** 12 | * 13 | * @author jvanek 14 | */ 15 | public class NonWindowsLockableFile extends WindowsLockableFileTest { 16 | 17 | private static String os; 18 | 19 | @BeforeClass 20 | public static void smuggleOs() { 21 | os = JavaSystemProperties.getOsName(); 22 | System.setProperty(OS_NAME, "No Microsoft OS for itw"); 23 | } 24 | 25 | @AfterClass 26 | public static void restoreOs() { 27 | System.setProperty(OS_NAME, os); 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /core/src/test/resources/net/adoptopenjdk/icedteaweb/icon/resources/favicon1.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/test/resources/net/adoptopenjdk/icedteaweb/icon/resources/favicon1.ico -------------------------------------------------------------------------------- /core/src/test/resources/net/adoptopenjdk/icedteaweb/icon/resources/favicon2.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/test/resources/net/adoptopenjdk/icedteaweb/icon/resources/favicon2.ico -------------------------------------------------------------------------------- /core/src/test/resources/net/adoptopenjdk/icedteaweb/icon/resources/favicon3.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/test/resources/net/adoptopenjdk/icedteaweb/icon/resources/favicon3.ico -------------------------------------------------------------------------------- /core/src/test/resources/net/adoptopenjdk/icedteaweb/icon/resources/favicon4.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/test/resources/net/adoptopenjdk/icedteaweb/icon/resources/favicon4.ico -------------------------------------------------------------------------------- /core/src/test/resources/net/adoptopenjdk/icedteaweb/icon/resources/favicon5.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/test/resources/net/adoptopenjdk/icedteaweb/icon/resources/favicon5.ico -------------------------------------------------------------------------------- /core/src/test/resources/net/adoptopenjdk/icedteaweb/icon/resources/favicon6.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/test/resources/net/adoptopenjdk/icedteaweb/icon/resources/favicon6.ico -------------------------------------------------------------------------------- /core/src/test/resources/net/adoptopenjdk/icedteaweb/icon/resources/ico1-bmp-noTrans.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/test/resources/net/adoptopenjdk/icedteaweb/icon/resources/ico1-bmp-noTrans.ico -------------------------------------------------------------------------------- /core/src/test/resources/net/adoptopenjdk/icedteaweb/icon/resources/ico1-bmp-trans.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/test/resources/net/adoptopenjdk/icedteaweb/icon/resources/ico1-bmp-trans.ico -------------------------------------------------------------------------------- /core/src/test/resources/net/adoptopenjdk/icedteaweb/icon/resources/ico1-png-noTrans.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/test/resources/net/adoptopenjdk/icedteaweb/icon/resources/ico1-png-noTrans.ico -------------------------------------------------------------------------------- /core/src/test/resources/net/adoptopenjdk/icedteaweb/icon/resources/ico1-png-trans.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/test/resources/net/adoptopenjdk/icedteaweb/icon/resources/ico1-png-trans.ico -------------------------------------------------------------------------------- /core/src/test/resources/net/adoptopenjdk/icedteaweb/icon/resources/ico24-bmp-noTrans.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/test/resources/net/adoptopenjdk/icedteaweb/icon/resources/ico24-bmp-noTrans.ico -------------------------------------------------------------------------------- /core/src/test/resources/net/adoptopenjdk/icedteaweb/icon/resources/ico24-bmp-trans.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/test/resources/net/adoptopenjdk/icedteaweb/icon/resources/ico24-bmp-trans.ico -------------------------------------------------------------------------------- /core/src/test/resources/net/adoptopenjdk/icedteaweb/icon/resources/ico24-png-noTrans.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/test/resources/net/adoptopenjdk/icedteaweb/icon/resources/ico24-png-noTrans.ico -------------------------------------------------------------------------------- /core/src/test/resources/net/adoptopenjdk/icedteaweb/icon/resources/ico24-png-trans.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/test/resources/net/adoptopenjdk/icedteaweb/icon/resources/ico24-png-trans.ico -------------------------------------------------------------------------------- /core/src/test/resources/net/adoptopenjdk/icedteaweb/icon/resources/ico32-bmp-noTrans.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/test/resources/net/adoptopenjdk/icedteaweb/icon/resources/ico32-bmp-noTrans.ico -------------------------------------------------------------------------------- /core/src/test/resources/net/adoptopenjdk/icedteaweb/icon/resources/ico32-bmp-trans.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/test/resources/net/adoptopenjdk/icedteaweb/icon/resources/ico32-bmp-trans.ico -------------------------------------------------------------------------------- /core/src/test/resources/net/adoptopenjdk/icedteaweb/icon/resources/ico32-png-noTrans.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/test/resources/net/adoptopenjdk/icedteaweb/icon/resources/ico32-png-noTrans.ico -------------------------------------------------------------------------------- /core/src/test/resources/net/adoptopenjdk/icedteaweb/icon/resources/ico32-png-trans.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/test/resources/net/adoptopenjdk/icedteaweb/icon/resources/ico32-png-trans.ico -------------------------------------------------------------------------------- /core/src/test/resources/net/adoptopenjdk/icedteaweb/icon/resources/ico4-bmp-noTrans.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/test/resources/net/adoptopenjdk/icedteaweb/icon/resources/ico4-bmp-noTrans.ico -------------------------------------------------------------------------------- /core/src/test/resources/net/adoptopenjdk/icedteaweb/icon/resources/ico4-bmp-trans.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/test/resources/net/adoptopenjdk/icedteaweb/icon/resources/ico4-bmp-trans.ico -------------------------------------------------------------------------------- /core/src/test/resources/net/adoptopenjdk/icedteaweb/icon/resources/ico4-png-noTrans.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/test/resources/net/adoptopenjdk/icedteaweb/icon/resources/ico4-png-noTrans.ico -------------------------------------------------------------------------------- /core/src/test/resources/net/adoptopenjdk/icedteaweb/icon/resources/ico4-png-trans.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/test/resources/net/adoptopenjdk/icedteaweb/icon/resources/ico4-png-trans.ico -------------------------------------------------------------------------------- /core/src/test/resources/net/adoptopenjdk/icedteaweb/icon/resources/ico8-bmp-noTrans.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/test/resources/net/adoptopenjdk/icedteaweb/icon/resources/ico8-bmp-noTrans.ico -------------------------------------------------------------------------------- /core/src/test/resources/net/adoptopenjdk/icedteaweb/icon/resources/ico8-bmp-trans.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/test/resources/net/adoptopenjdk/icedteaweb/icon/resources/ico8-bmp-trans.ico -------------------------------------------------------------------------------- /core/src/test/resources/net/adoptopenjdk/icedteaweb/icon/resources/ico8-png-noTrans.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/test/resources/net/adoptopenjdk/icedteaweb/icon/resources/ico8-png-noTrans.ico -------------------------------------------------------------------------------- /core/src/test/resources/net/adoptopenjdk/icedteaweb/icon/resources/ico8-png-trans.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/test/resources/net/adoptopenjdk/icedteaweb/icon/resources/ico8-png-trans.ico -------------------------------------------------------------------------------- /core/src/test/resources/net/adoptopenjdk/icedteaweb/resources/jardiff/diff-1-to-2.jardiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/test/resources/net/adoptopenjdk/icedteaweb/resources/jardiff/diff-1-to-2.jardiff -------------------------------------------------------------------------------- /core/src/test/resources/net/adoptopenjdk/icedteaweb/resources/jardiff/diff-2-to-3.jardiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/test/resources/net/adoptopenjdk/icedteaweb/resources/jardiff/diff-2-to-3.jardiff -------------------------------------------------------------------------------- /core/src/test/resources/net/adoptopenjdk/icedteaweb/resources/jardiff/diff-3-to-4.jardiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/test/resources/net/adoptopenjdk/icedteaweb/resources/jardiff/diff-3-to-4.jardiff -------------------------------------------------------------------------------- /core/src/test/resources/net/adoptopenjdk/icedteaweb/resources/jardiff/diff-4-to-5.jardiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/test/resources/net/adoptopenjdk/icedteaweb/resources/jardiff/diff-4-to-5.jardiff -------------------------------------------------------------------------------- /core/src/test/resources/net/adoptopenjdk/icedteaweb/resources/jardiff/diff-5-to-6.jardiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/test/resources/net/adoptopenjdk/icedteaweb/resources/jardiff/diff-5-to-6.jardiff -------------------------------------------------------------------------------- /core/src/test/resources/net/adoptopenjdk/icedteaweb/resources/jardiff/diff-6-to-7.jardiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/test/resources/net/adoptopenjdk/icedteaweb/resources/jardiff/diff-6-to-7.jardiff -------------------------------------------------------------------------------- /core/src/test/resources/net/adoptopenjdk/icedteaweb/resources/jardiff/diff-7-to-8.jardiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/test/resources/net/adoptopenjdk/icedteaweb/resources/jardiff/diff-7-to-8.jardiff -------------------------------------------------------------------------------- /core/src/test/resources/net/adoptopenjdk/icedteaweb/resources/jardiff/version-1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/test/resources/net/adoptopenjdk/icedteaweb/resources/jardiff/version-1.jar -------------------------------------------------------------------------------- /core/src/test/resources/net/adoptopenjdk/icedteaweb/resources/jardiff/version-2.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/test/resources/net/adoptopenjdk/icedteaweb/resources/jardiff/version-2.jar -------------------------------------------------------------------------------- /core/src/test/resources/net/adoptopenjdk/icedteaweb/resources/jardiff/version-3.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/test/resources/net/adoptopenjdk/icedteaweb/resources/jardiff/version-3.jar -------------------------------------------------------------------------------- /core/src/test/resources/net/adoptopenjdk/icedteaweb/resources/jardiff/version-4.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/test/resources/net/adoptopenjdk/icedteaweb/resources/jardiff/version-4.jar -------------------------------------------------------------------------------- /core/src/test/resources/net/adoptopenjdk/icedteaweb/resources/jardiff/version-5.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/test/resources/net/adoptopenjdk/icedteaweb/resources/jardiff/version-5.jar -------------------------------------------------------------------------------- /core/src/test/resources/net/adoptopenjdk/icedteaweb/resources/jardiff/version-6.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/test/resources/net/adoptopenjdk/icedteaweb/resources/jardiff/version-6.jar -------------------------------------------------------------------------------- /core/src/test/resources/net/adoptopenjdk/icedteaweb/resources/jardiff/version-7.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/test/resources/net/adoptopenjdk/icedteaweb/resources/jardiff/version-7.jar -------------------------------------------------------------------------------- /core/src/test/resources/net/adoptopenjdk/icedteaweb/resources/jardiff/version-8.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/test/resources/net/adoptopenjdk/icedteaweb/resources/jardiff/version-8.jar -------------------------------------------------------------------------------- /core/src/test/resources/net/sourceforge/jnlp/application/application0.jnlp: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | random tag test 10 | ]]> 11 | 12 | 13 | Sample Test 14 | RedHat 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /core/src/test/resources/net/sourceforge/jnlp/application/application1.jnlp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Sample Test 5 | RedHat 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /core/src/test/resources/net/sourceforge/jnlp/application/application2.jnlp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | RedHat 9 | Sample Test 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /core/src/test/resources/net/sourceforge/jnlp/application/application3.jnlp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Sample Test 6 | RedHat 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /core/src/test/resources/net/sourceforge/jnlp/application/application4.jnlp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Sample Test 5 | * 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /core/src/test/resources/net/sourceforge/jnlp/application/application5.jnlp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Sample Test 5 | RedHat 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /core/src/test/resources/net/sourceforge/jnlp/application/application6.jnlp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Sample Test 5 | RedHat 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /core/src/test/resources/net/sourceforge/jnlp/application/application7.jnlp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Sample Test 5 | RedHat 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /core/src/test/resources/net/sourceforge/jnlp/application/application8.jnlp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Sample 5 | RedHat 6 | This is a sample to test a bug 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /core/src/test/resources/net/sourceforge/jnlp/awt/imagesearch/marker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/test/resources/net/sourceforge/jnlp/awt/imagesearch/marker.png -------------------------------------------------------------------------------- /core/src/test/resources/net/sourceforge/jnlp/launchApp.jnlp: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | Sample Test 9 | RedHat 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /core/src/test/resources/net/sourceforge/jnlp/minimal.jnlp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Parsing Test 5 | IcedTea 6 | 7 | 8 | -------------------------------------------------------------------------------- /core/src/test/resources/net/sourceforge/jnlp/minimalWithHref.jnlp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Parsing Test 5 | IcedTea 6 | 7 | 8 | -------------------------------------------------------------------------------- /core/src/test/resources/net/sourceforge/jnlp/runtime/j1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/test/resources/net/sourceforge/jnlp/runtime/j1.jar -------------------------------------------------------------------------------- /core/src/test/resources/net/sourceforge/jnlp/runtime/jar03_dotdotN1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/test/resources/net/sourceforge/jnlp/runtime/jar03_dotdotN1.jar -------------------------------------------------------------------------------- /core/src/test/resources/net/sourceforge/jnlp/runtime/jar_03_dotdot_jarN1.jnlp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 1965Nemzeti Ado- es Vamhivatal 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /core/src/test/resources/net/sourceforge/jnlp/runtime/pf.jar-orig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/core/src/test/resources/net/sourceforge/jnlp/runtime/pf.jar-orig -------------------------------------------------------------------------------- /core/src/test/resources/net/sourceforge/jnlp/runtime/test.jnlp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Test 5 | IcedTea-Web 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /core/src/test/resources/net/sourceforge/jnlp/runtime/up.jnlp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 1965Nemzeti Ado- es Vamhivatal 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /core/src/test/resources/net/sourceforge/jnlp/runtime/upEncoded.jnlp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 1965Nemzeti Ado- es Vamhivatal 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /core/src/test/resources/net/sourceforge/jnlp/templates/template0.jnlp: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | Sample Test 9 | RedHat 10 | 11 | 12 | 13 | 14 | 15 | random tag test 18 | ]]> 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /core/src/test/resources/net/sourceforge/jnlp/templates/template1.jnlp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Sample Test 5 | RedHat 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /core/src/test/resources/net/sourceforge/jnlp/templates/template2.jnlp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Sample Test 5 | * 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /core/src/test/resources/net/sourceforge/jnlp/templates/template3.jnlp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | RedHat 9 | Sample Test 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /core/src/test/resources/net/sourceforge/jnlp/templates/template4.jnlp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | * 5 | * 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /core/src/test/resources/net/sourceforge/jnlp/templates/template5.jnlp: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | * 10 | * 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | main-class='*' /> 23 | -------------------------------------------------------------------------------- /core/src/test/resources/net/sourceforge/jnlp/templates/template6.jnlp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Test Sample 5 | RedHat 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /core/src/test/resources/net/sourceforge/jnlp/templates/template7.jnlp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Sample Test 5 | RedHat 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /core/src/test/resources/net/sourceforge/jnlp/templates/template8.jnlp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Sample Test 5 | RedHat 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /core/src/test/resources/net/sourceforge/jnlp/templates/template9.jnlp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Sample 5 | RedHat 6 | This is a sample to test a bug 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /integration-tests/report-styles/output.css: -------------------------------------------------------------------------------- 1 | div.space-line { clear: both; margin: 0; padding: 0; width: auto;} 2 | div.classa { border: thin solid black; padding: 5px; margin: 5px;} 3 | div.method {border: thin solid black; padding: 5px; margin: 5px;} 4 | div.output { border: thin solid black; padding: 5px; margin: 5px; float: left; display: inline; width:30%; overflow-x: scroll} 5 | div.item {border-bottom: thin solid black; border-top: thin solid black; border-left: thin solid black; padding: 5px; margin: 5px;} 6 | div.stamp { border: thin solid black; padding: 5px; margin: 5px;} 7 | div.fulltrace {border-bottom: thin solid black; border-top: thin solid black; border-left: thin solid black; padding: 5px; margin: 5px;} 8 | -------------------------------------------------------------------------------- /integration-tests/report-styles/report.css: -------------------------------------------------------------------------------- 1 | div.passed {background-color:green;height:auto } 2 | div.failed {background-color:red ;height:auto} 3 | div.ignored {background-color:yellow ;height:auto} 4 | 5 | div.clazz {display:inline } 6 | div.method {display:inline } 7 | 8 | div.result {display:block; border: thin solid black ;height:auto} 9 | div.status {display:inline; } 10 | div.wtrace {display:inline; border: thin solid black; float: right;height:auto} 11 | div.theader {display:block; border: thin solid black} 12 | div.trace {display:block; border: thin solid black} 13 | 14 | div.space-line { clear: both; margin: 0; padding: 0; width: auto;} 15 | 16 | div.tablee {width:200px; border: thin solid black; } 17 | div.row { border: thin solid black; } 18 | div.cell1 {display:inline; float: left;height:auto} 19 | div.cell2 {display:inline; float: right;height:auto} 20 | 21 | a.classSumaryName{font-weight:bold} 22 | 23 | a.logLink:link {color: black} 24 | a.logLink:active {color: black; } 25 | a.logLink:visited {color: black;} 26 | a.logLink:hover {color: black;font-weight: bolder;} 27 | -------------------------------------------------------------------------------- /integration-tests/reproducers/custom/AppletExtendsFromOutsideJar/README: -------------------------------------------------------------------------------- 1 | This reproducer encapsulates PR920. 2 | A LinkageError occurs, complaining of duplicate class definition, when an extended class outside of a jar references a common class with its parent class. The common class attempts to load twice. 3 | -------------------------------------------------------------------------------- /integration-tests/reproducers/custom/AppletExtendsFromOutsideJar/srcs/Makefile: -------------------------------------------------------------------------------- 1 | TESTNAME=AppletExtendsFromOutsideJar 2 | 3 | SRC_FILES=AppletReferenceInSameJar.java AppletReferenceOutOfJar.java Referenced.java 4 | JAR_FILES=AppletReferenceInSameJar.class Referenced.class 5 | OUTER_FILE=AppletReferenceOutOfJar.class 6 | 7 | JAVAC_CLASSPATH=$(TEST_EXTENSIONS_DIR):$(NETX_DIR)/lib/classes.jar 8 | JAVAC=$(EXPORTED_JAVAC) 9 | JAR=$(EXPORTED_JAR) 10 | 11 | ifeq ($(OS), Windows_NT) 12 | TMPDIR:=$(shell cygpath -p -m $(shell mktemp -d)) 13 | else 14 | TMPDIR:=$(shell mktemp -d) 15 | endif 16 | 17 | prepare-reproducer: 18 | echo PREPARING REPRODUCER $(TESTNAME) in $(TMPDIR) 19 | 20 | $(JAVAC) -d $(TMPDIR) -classpath $(JAVAC_CLASSPATH) $(SRC_FILES) 21 | 22 | cd $(TMPDIR); \ 23 | $(JAR) cvf $(TESTNAME).jar $(JAR_FILES); \ 24 | mv $(OUTER_FILE) $(REPRODUCERS_TESTS_SERVER_DEPLOYDIR); \ 25 | mv $(TESTNAME).jar $(REPRODUCERS_TESTS_SERVER_DEPLOYDIR); 26 | 27 | echo PREPARED REPRODUCER $(TESTNAME), removing $(TMPDIR) 28 | rm -rf $(TMPDIR) 29 | 30 | clean-reproducer: 31 | echo NOTHING TO CLEAN FOR $(TESTNAME) 32 | -------------------------------------------------------------------------------- /integration-tests/reproducers/custom/AppletFolderInArchiveTag/srcs/Makefile: -------------------------------------------------------------------------------- 1 | TESTNAME=AppletFolderInArchiveTag 2 | ARCHIVE_TEST_FOLDER=archive_tag_folder_test 3 | JAVAC_CLASSPATH=$(TEST_EXTENSIONS_DIR):$(NETX_DIR)/lib/classes.jar 4 | DEPLOY_SUBDIR=$(REPRODUCERS_TESTS_SERVER_DEPLOYDIR)/$(ARCHIVE_TEST_FOLDER) 5 | INDEX_HTML_BODY="

Required to recognize folder structure

" 6 | 7 | prepare-reproducer: 8 | echo PREPARING REPRODUCER $(TESTNAME) 9 | mkdir -p $(DEPLOY_SUBDIR) 10 | echo $(INDEX_HTML_BODY) > $(DEPLOY_SUBDIR)/index.html 11 | $(EXPORTED_JAVAC) -classpath $(JAVAC_CLASSPATH) -d $(DEPLOY_SUBDIR) $(TESTNAME).java 12 | echo PREPARED REPRODUCER $(TESTNAME) 13 | 14 | clean-reproducer: 15 | echo CLEANING REPRODUCER $(TESTNAME) 16 | rm -rf $(DEPLOY_SUBDIR) 17 | echo CLEANED REPRODUCER $(TESTNAME) 18 | 19 | -------------------------------------------------------------------------------- /integration-tests/reproducers/custom/ExtensionJnlpsInApplet/srcs/Makefile: -------------------------------------------------------------------------------- 1 | TESTNAME=ExtensionJnlpsInApplet 2 | 3 | SRC_FILES=ExtensionJnlpHelper.java ExtensionJnlpTestApplet.java 4 | RESOURCE_FILES=ExtensionJnlpTest.html ExtensionJnlpTestApplet.jnlp ExtensionJnlpHelper.jnlp 5 | ENTRYPOINT_CLASSES=ExtensionJnlpHelper ExtensionJnlpTestApplet 6 | 7 | JAVAC_CLASSPATH=$(TEST_EXTENSIONS_DIR):$(NETX_DIR)/lib/classes.jar 8 | JAVAC=$(EXPORTED_JAVAC) 9 | JAR=$(EXPORTED_JAR) 10 | 11 | ifeq ($(OS), Windows_NT) 12 | TMPDIR:=$(shell cygpath -p -m $(shell mktemp -d)) 13 | else 14 | TMPDIR:=$(shell mktemp -d) 15 | endif 16 | 17 | prepare-reproducer: 18 | echo PREPARING REPRODUCER $(TESTNAME) 19 | 20 | $(JAVAC) -d $(TMPDIR) -classpath $(JAVAC_CLASSPATH) $(SRC_FILES) 21 | 22 | cd ../resources; \ 23 | cp $(RESOURCE_FILES) $(REPRODUCERS_TESTS_SERVER_DEPLOYDIR); \ 24 | cd -; \ 25 | ls; \ 26 | for CLASS in $(ENTRYPOINT_CLASSES); \ 27 | do \ 28 | cd $(TMPDIR); \ 29 | $(JAR) cfe "$$CLASS.jar" "$$CLASS" "$$CLASS.class"; \ 30 | cd -;\ 31 | mv $(TMPDIR)/"$$CLASS.jar" $(REPRODUCERS_TESTS_SERVER_DEPLOYDIR); \ 32 | done; \ 33 | 34 | echo PREPARED REPRODUCER $(TESTNAME), removing $(TMPDIR) 35 | rm -rf $(TMPDIR) 36 | 37 | clean-reproducer: 38 | echo NOTHING TO CLEAN FOR $(TESTNAME) 39 | -------------------------------------------------------------------------------- /integration-tests/reproducers/custom/GifarCreator/srcs/Makefile: -------------------------------------------------------------------------------- 1 | DEPLOY_SUBDIR=$(REPRODUCERS_TESTS_SERVER_DEPLOYDIR) 2 | GIF=$(DEPLOY_SUBDIR)/happyNonAnimated.gif 3 | JAR=$(DEPLOY_SUBDIR)/GifarBase.jar 4 | RESULT1=$(DEPLOY_SUBDIR)/Gifar.jar 5 | RESULT2=$(DEPLOY_SUBDIR)/Gifar.gif 6 | 7 | #this is dependent on reproducers/signed/GifarBase 8 | 9 | prepare-reproducer: 10 | cat $(GIF) > $(RESULT1) 11 | cat $(JAR) >> $(RESULT1) 12 | cp $(RESULT1) $(RESULT2) 13 | 14 | clean-reproducer: 15 | rm -rf $(RESULT1) 16 | rm -rf $(RESULT2) 17 | 18 | -------------------------------------------------------------------------------- /integration-tests/reproducers/custom/JNLPClassLoaderDeadlock/resources/JNLPClassLoaderDeadlock.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |

5 |

6 | 7 | 8 | -------------------------------------------------------------------------------- /integration-tests/reproducers/custom/JNLPClassLoaderDeadlock/srcs/JNLPClassLoaderDeadlock_1.java: -------------------------------------------------------------------------------- 1 | import java.applet.Applet; 2 | 3 | public class JNLPClassLoaderDeadlock_1 extends Applet { 4 | 5 | @Override 6 | public void init() { 7 | System.out.println("JNLPClassLoaderDeadlock_1 applet initialized"); 8 | final String version = System.getProperty("java.version") + " (" + System.getProperty("java.vm.version") + ")"; 9 | final String vendor = System.getProperty("java.vendor"); 10 | final TextField tf = new TextField(40); 11 | tf.setText(version + " -- " + vendor); 12 | tf.setEditable(false); 13 | tf.setBackground(Color.white); 14 | setBackground(Color.white); 15 | add(tf); 16 | System.out.println("JNLPClassLoaderDeadlock_1 applet finished"); 17 | } 18 | 19 | public static void main(String[] args) { 20 | new JNLPClassLoaderDeadlock_1().init(); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /integration-tests/reproducers/custom/JNLPClassLoaderDeadlock/srcs/Makefile: -------------------------------------------------------------------------------- 1 | TESTNAME=JNLPClassLoaderDeadlock 2 | 3 | SRC_FILES=JNLPClassLoaderDeadlock_1.java JNLPClassLoaderDeadlock_2.java 4 | RESOURCE_FILES=JNLPClassLoaderDeadlock.html 5 | ENTRYPOINT_CLASSES=JNLPClassLoaderDeadlock_1 JNLPClassLoaderDeadlock_2 6 | 7 | JAVAC_CLASSPATH=$(TEST_EXTENSIONS_DIR):$(NETX_DIR)/lib/classes.jar 8 | JAVAC=$(EXPORTED_JAVAC) 9 | JAR=$(EXPORTED_JAR) 10 | 11 | ifeq ($(OS), Windows_NT) 12 | TMPDIR:=$(shell cygpath -p -m $(shell mktemp -d)) 13 | else 14 | TMPDIR:=$(shell mktemp -d) 15 | endif 16 | 17 | prepare-reproducer: 18 | echo PREPARING REPRODUCER $(TESTNAME) 19 | 20 | $(JAVAC) -d $(TMPDIR) -classpath $(JAVAC_CLASSPATH) $(SRC_FILES) 21 | 22 | cd ../resources; \ 23 | cp $(RESOURCE_FILES) $(REPRODUCERS_TESTS_SERVER_DEPLOYDIR); \ 24 | cd -; \ 25 | for CLASS in $(ENTRYPOINT_CLASSES); \ 26 | do \ 27 | mv $(TMPDIR)/"$$CLASS.class" $(REPRODUCERS_TESTS_SERVER_DEPLOYDIR); \ 28 | done; \ 29 | 30 | echo PREPARED REPRODUCER $(TESTNAME), removing $(TMPDIR) 31 | rm -rf $(TMPDIR) 32 | 33 | clean-reproducer: 34 | echo NOTHING TO CLEAN FOR $(TESTNAME) 35 | -------------------------------------------------------------------------------- /integration-tests/reproducers/custom/JavaFx/resources/JavaFx.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdoptOpenJDK/IcedTea-Web/66422421d703566dd4f4b2b098ad25ae536fd369/integration-tests/reproducers/custom/JavaFx/resources/JavaFx.jar -------------------------------------------------------------------------------- /integration-tests/reproducers/custom/JavaFx/resources/JavaFx.jnlp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | JavaFx 5 | ITW 6 | JavaFx 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /integration-tests/reproducers/custom/JavaFx/srcs/Controller.java: -------------------------------------------------------------------------------- 1 | import javafx.fxml.FXML; 2 | import javafx.scene.text.Text; 3 | 4 | public class Controller { 5 | @FXML private Text text; 6 | 7 | @FXML 8 | public void onPressButton() { 9 | text.setVisible(true); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /integration-tests/reproducers/custom/JavaFx/srcs/Main.java: -------------------------------------------------------------------------------- 1 | import javafx.application.Application; 2 | import javafx.fxml.FXMLLoader; 3 | import javafx.scene.Parent; 4 | import javafx.scene.Scene; 5 | import javafx.stage.Stage; 6 | 7 | public class Main extends Application { 8 | 9 | @Override 10 | public void start(Stage primaryStage) throws Exception { 11 | Parent root = FXMLLoader.load(getClass().getResource("helloworld.fxml")); 12 | primaryStage.setTitle("Hello World"); 13 | primaryStage.setScene(new Scene(root, 500, 200)); 14 | primaryStage.show(); 15 | System.out.println("jnlp-javafx started"); 16 | System.out.println("jnlp-javafx can be terminated"); 17 | } 18 | 19 | 20 | public static void main(String[] args) { 21 | launch(args); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /integration-tests/reproducers/custom/JavaFx/srcs/Makefile: -------------------------------------------------------------------------------- 1 | TESTNAME=JavaFx 2 | 3 | JAVAC_CLASSPATH=$(TEST_EXTENSIONS_DIR):$(NETX_DIR)/lib/classes.jar 4 | JAVAC=$(EXPORTED_JAVAC) 5 | JAR=$(EXPORTED_JAR) 6 | JARSIGNER=$(EXPORTED_JARSIGNER) 7 | 8 | ifeq ($(OS), Windows_NT) 9 | TMPDIR:=$(shell cygpath -p -m $(shell mktemp -d)) 10 | else 11 | TMPDIR:=$(shell mktemp -d) 12 | endif 13 | 14 | prepare-reproducer: 15 | echo PREPARING REPRODUCER $(TESTNAME) 16 | #this test contains prebuild binary, as javafx, when installed on computer, preven ITW from building 17 | #due to JSObject differennt implementation 18 | #$(JAVAC) -d $(TMPDIR) -classpath $(JAVAC_CLASSPATH) Controller.java Main.java; \ 19 | #cp helloworld.fxml $(TMPDIR) ; \ 20 | #pushd $(TMPDIR); \ 21 | #$(JAR) cf $(TESTNAME).jar *.class *.fxml; \ 22 | #popd 23 | #cp $(TMPDIR)/$(TESTNAME).jar $(REPRODUCERS_TESTS_SERVER_DEPLOYDIR); \ 24 | cp ../resources/* $(REPRODUCERS_TESTS_SERVER_DEPLOYDIR); \ 25 | rm -rf $(TMPDIR); \ 26 | echo PREPARED REPRODUCER $(TESTNAME); \ 27 | 28 | clean-reproducer: 29 | echo NOTHING TO CLEAN FOR $(TESTNAME) 30 | -------------------------------------------------------------------------------- /integration-tests/reproducers/custom/JavaFx/srcs/helloworld.fxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 9 | 11 |