Changeset 416
- Timestamp:
- Feb 11, 2013, 5:11:22 PM (13 years ago)
- Location:
- branches/vendor/sourceforge/icedtea-web/current
- Files:
-
- 514 added
- 2 deleted
- 94 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/vendor/sourceforge/icedtea-web/current/AUTHORS
r348 r416 5 5 Deepak Bhole <dbhole@redhat.com> 6 6 Ricardo MartÃn Camarero <rickyepoderi@yahoo.es> 7 Danesh Dadachanji <ddadacha@redhat.com> 8 Adam Domurad <adomurad@redhat.com> 7 9 Thomas Fitzsimmons <fitzsim@redhat.com> 8 10 Mark Greenwood <mark@dcs.shef.ac.uk> 9 Andrew John Hughes <gnu_andrew@member.fsf.org, ahughes@redhat.com> 11 Peter Hatina <phatina@redhat.com> 12 Andrew John Hughes <ahughes@redhat.com> 10 13 Matthias Klose <doko@ubuntu.com> 14 MichaÅ Górny < mgorny@gentoo.org > 11 15 Francis Kung <fkung@redhat.com> 16 Denis Lila <dlila@redhat.com> 12 17 DJ Lucas <dj@lucasit.com> 13 18 Omair Majid <omajid@redhat.com> 14 19 Jon A. Maxwell <jmaxwell@users.sourceforge.net> 20 Thomas Meyer <thomas@m3y3r.de> 21 Saad Mohammad <smohammad@redhat.com> 22 Martin Olsson <martin@minimum.se> 15 23 Andrew Su <asu@redhat.com> 16 24 Joshua Sumali <jsumali@redhat.com> 25 Jiri Vanek <jvanek@redhat.com> 17 26 Mark Wielaard <mark@klomp.org> 18 27 Man Lung Wong <mwong@redhat.com> -
branches/vendor/sourceforge/icedtea-web/current/ChangeLog
r348 r416 1 2011-08-31 Deepak Bhole <dbhole@redhat.com> 2 3 * NEWS: Prepare for 1.1.2 4 * configure.ac: Same 1 2012-08-27 Deepak Bhole <dbhole@redhat.com> 2 3 * configure.ac: Prepare for 1.3 4 * NEWS: Same 5 6 2012-08-27 Deepak Bhole <dbhole@redhat.com> 7 8 * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java 9 (getAccessControlContextForClassLoading): Catch ClassCircularityErrors and 10 ignore them (thus denying permission to caller). 11 12 2012-08-13 Jiri Vanek <jvanek@redhat.com> 13 14 * tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java: 15 (executeProcessUponURL)Fixed wrong call in previous commit which was 16 causing null process name. 17 * tests/reproducers/simple/AppletTest/testcases/AppletTestTests.java: 18 Removed unused import. 19 20 2012-08-13 Jiri Vanek <jvanek@redhat.com> 21 22 Reproducers of PR955 23 * tests/reproducers/simple/LocalisedInformationElement/resources/LocalisedInformationElement1.jnlp: 24 * tests/reproducers/simple/LocalisedInformationElement/resources/LocalisedInformationElement2.jnlp: 25 * tests/reproducers/simple/LocalisedInformationElement/resources/LocalisedInformationElement3.jnlp: 26 * tests/reproducers/simple/LocalisedInformationElement/resources/LocalisedInformationElement4.jnlp: 27 Test jnlp files with various combinations of locales, reproducers of PR955. 28 * tests/reproducers/simple/LocalisedInformationElement/resources/LocalisedInformationElement_noLoc.jnlp 29 Jnlp file with which is not affected by PR955 and is helping to catch error in LOCALE changing hack 30 * tests/reproducers/simple/LocalisedInformationElement/srcs/LocalisedInformationElement.java: 31 Reproducer main class, after loading prints out default locale. 32 * tests/reproducers/simple/LocalisedInformationElement/testcases/LocalisedInformationElementTest.java: 33 Testcases launching above jnlps under various locales. 34 * tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java: 35 Added set of methods allowing passing of custom variables to ThreadedProcess. 36 * tests/test-extensions/net/sourceforge/jnlp/ThreadedProcess.java: 37 Added processing of custom variables. 38 39 2012-08-22 Danesh Dadachanji <ddadacha@redhat.com> 40 41 Fix PR955: regression: SweetHome3D fails to run 42 * NEWS: Added entry for PR955 43 * netx/net/sourceforge/jnlp/JNLPFile.java: New enum Match that represents 44 the level of precision to use when matching locales. 45 (localMatches): Renamed to localeMatches, added matchLevel paramater 46 and updated conditionals to handle the level of precision specified by it. 47 (getVendor): New method that returns an information's vendor text. 48 (getInformation): Added override methods for getTitle and getVendor 49 that are used by the anonymous class to filter by locale. All three 50 methods now go through all levels of precision to search for the best 51 fitted locale. 52 (getResources), (getResourcesDescs): Updated to check if any level of 53 precision matches when searching for locales. 54 (parse): Added call to checkForTitleVendor. 55 * netx/net/sourceforge/jnlp/Parser.java 56 (checkForTitleVendor): New method to check for availability of localized 57 title and vendor from the information tags. Throws ParseException. 58 (getInfo): Replace loop with foreach loop. 59 (getInformationDesc): Remove check for present title and vendor. 60 (getLocale): Variant returned can now use everything after the eigth 61 element of the locale's string. 62 * netx/net/sourceforge/jnlp/resources/Messages.properties: 63 Update missing title and vendor messages to mention localization. 64 * tests/reproducers/simple/InformationTitleVendorParser/testcases/InformationTitleVendorParserTest.java: 65 Update output string as per new changes to Messages internationalizations. 66 * tests/netx/unit/net/sourceforge/jnlp/JNLPFileTest.java: 67 New unit test that checks the localesMatches method in JNLPFile. 68 * tests/netx/unit/net/sourceforge/jnlp/MockJNLPFile.java: 69 New class used to create a mock JNLPFile object. 70 * tests/netx/unit/net/sourceforge/jnlp/ParserTest.java: 71 New unit test that checks that the return of getTitle and getVendor 72 have localized information. 73 74 2012-08-21 Jiri Vanek <jvanek@redhat.com> 75 76 * tests/test-extensions/net/sourceforge/jnlp/ProcessAssasin.java: 77 (sigInt), (sigKill), (sigTerm) new methods for various killing of 78 processes by kill. 79 (kill) new method, launching kill process. 80 (destroyProcess ) is now calling sigInt instead of unwrapped sigTerm. 81 82 2012-08-21 Jiri Vanek <jvanek@redhat.com> 83 84 * launcher/javaws.in: java is now launched by exec 85 86 2012-08-17 Adam Domurad <adomurad@redhat.com> 87 88 Fixes PR588, cookies set in the java cookie jar are now stored properly 89 * plugin/icedteanp/IcedTeaNPPlugin.cc 90 (set_cookie_info): New, uses setvalueforurl 91 (consume_plugin_message): Additional message added allowing 92 set_cookie_info to be used from the java side. 93 * plugin/icedteanp/java/sun/applet/PluginCookieManager.java: Now 94 overrides put method, results in set_cookie_info calls in C++ 95 * plugin/icedteanp/java/sun/applet/PluginMain.java: Passes 96 PluginStreamHandler to PluginCookieManager to allow C++ side 97 communication 98 99 2012-08-17 Adam Domurad <adomurad@redhat.com> 100 101 * plugin/icedteanp/IcedTeaNPPlugin.cc 102 (consume_plugin_message): New, called by consume_message, handles 103 cookie and proxy info retrieval, and setting cookie info 104 (consume_message): Call consume_plugin_message for "plugin ..." 105 messages 106 107 2012-08-17 Adam Domurad <adomurad@redhat.com> 108 109 Reproducers for PR588, sets persistent and session cookies in the 110 cookie jar and tries to read them with various means. 111 * tests/reproducers/signed/SavingCookies/resources/CheckCookie.html: 112 Print the cookie store contents 113 * tests/reproducers/signed/SavingCookies/resources/CheckCookieAndGotoClear.html: 114 Print the cookie store contents, and then go to 115 ClearPersistentCookie.html with showDocument 116 * tests/reproducers/signed/SavingCookies/resources/ClearPersistentCookie.html: 117 Clear the test cookie so it does not interfere with further tests 118 * tests/reproducers/signed/SavingCookies/resources/SavePersistentCookie.html: 119 Create a persistent cookie 120 * tests/reproducers/signed/SavingCookies/resources/SavePersistentCookieAndGotoCheck.html: 121 Create a persistent cookie and check it with showDocument 122 * tests/reproducers/signed/SavingCookies/resources/SaveSessionCookie.html: 123 Create a session cookie 124 * tests/reproducers/signed/SavingCookies/resources/SaveSessionCookieAndGotoCheck.html: 125 Create a session cookie and check it with showDocument 126 * tests/reproducers/signed/SavingCookies/srcs/CheckingCookies.java: 127 Checks the contents of the cookie store. 128 Depending on the test, this may go to another page upon completion. 129 * tests/reproducers/signed/SavingCookies/srcs/SavingCookies.java: 130 Store cookies in the java cookie store. Depending on the test, this may 131 go to another page upon completion. 132 * tests/reproducers/signed/SavingCookies/testcases/SavingCookiesTests.java 133 Test driver for testing persistent and session cookies in different 134 ways 135 136 2012-08-18 Jiri Vanek <jvanek@redhat.com> 137 138 * tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java: added 139 VERBOSE_OPTION constant with -verbose value for javaws launching. 140 141 2012-08-17 Jiri Vanek <jvanek@redhat.com> 142 143 * tests/reproducers/simple/deadlocktest/testcases/DeadLockTestTest.java: 144 (testDeadLockTestTerminatedBody) removed tests for killed-process and 145 termination of remaining javas put on correct place. 146 * tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java: 147 (executeBrowser) stout and stderr listeners forwarded to next method in 148 correct order. 149 150 2012-08-14 Danesh Dadachanji <ddadacha@redhat.com> 151 152 Small addition to NEWS entry and bug annotation indicating the PR975 fix. 153 * NEWS: Add entry for PR975 154 * tests/reproducers/signed/ClasspathManifestTest/testcases/ClasspathManifestTest.java: 155 Add bug annotation for PR975. 156 157 2012-08-14 Danesh Dadachanji <ddadacha@redhat.com> 158 159 Classpaths in jars' manifests are only considered when the applet is run 160 without using jnlp_href and a JNLP file. 161 * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java (activateJars): 162 Add conditional check for use of jnlp_href. 163 * tests/reproducers/signed/Classpath.Manifest.Test.Helper/srcs/CheckForClasspath.java: 164 Applet whose jar is stored in a subdir under the test engine server. 165 * tests/reproducers/signed/ClasspathManifestTest/resources/ClasspathManifestAppletTest.html: 166 * tests/reproducers/signed/ClasspathManifestTest/resources/ClasspathManifestAppletTest.jnlp: 167 * tests/reproducers/signed/ClasspathManifestTest/resources/ClasspathManifestApplicationTest.jnlp: 168 * tests/reproducers/signed/ClasspathManifestTest/resources/ClasspathManifestJNLPHrefTest.html: 169 * tests/reproducers/signed/ClasspathManifestTest/srcs/ClasspathManifest.java: 170 * tests/reproducers/signed/ClasspathManifestTest/srcs/META-INF/MANIFEST.MF: 171 * tests/reproducers/signed/ClasspathManifestTest/testcases/ClasspathManifestTest.java: 172 Test if manifest entry is searched for classpath only when in the plugin 173 is run without using jnlp_href. 174 175 2012-08-14 Adam Domurad <adomurad@redhat.com> 176 177 Reproducer for allowing unsigned content in META-INF/ folder. 178 Derives from ReadPropertiesSigned test's signed jar. 179 * tests/reproducers/custom/UnsignedContentInMETAINF/resources/UnsignedContentInMETAINF.jnlp: 180 New, runs a modified version of ReadPropertiesSigned.jar (UnsignedContentInMETAINF.jar) 181 * tests/reproducers/custom/UnsignedContentInMETAINF/srcs/META-INF/unsigned_file_in_metainf: 182 New, placed into a modified version of ReadPropertiesSigned.jar 183 (UnsignedContentInMETAINF.jar) so that there is unsigned content in the 184 META-INF/ folder. 185 * tests/reproducers/custom/UnsignedContentInMETAINF/srcs/Makefile: 186 New, creates a modified version of ReadPropertiesSigned.jar, named 187 UnsignedContentInMETAINF.jar, and places unsigned content inside its 188 META-INF/ folder 189 * tests/reproducers/custom/UnsignedContentInMETAINF/testcases/UnsignedContentInMETAINF.java: 190 Test driver for jnlp file 191 192 2012-08-14 Adam Domurad <adomurad@redhat.com> 193 194 Unit test for method in JCV, isMetaInfFile() 195 * netx/net/sourceforge/jnlp/tools/JarCertVerifier.java: 196 Made isMetaInfFile package-private for testing purposes. 197 * tests/netx/unit/net/sourceforge/jnlp/tools/JarCertVerifierTest.java: 198 New, tests isMetaInfFile 199 200 2012-08-07 Adam Domurad <adomurad@redhat.com> 201 202 Fixes PR1106, plugin crashing with firefox + archlinux/gentoo 203 * plugin/icedteanp/IcedTeaNPPlugin.cc 204 (initialize_browser_functions): Account for the fact that 205 browserTable->size can be larger than sizeof(NPNetscapeFuncs) 206 207 2012-07-31 Jiri Vanek <jvanek@redhat.com> 208 Peter Hatina <phatina@redhat.com> 209 210 Introduced configure option --with-gtk=2|3|default to be able 211 to compile against different version of GTK+ (2.x or 3.x). 212 * NEWS: mentioned bug fix 213 * acinclude.m4: (ITW_GTK_CHECK_VERSION) macro for getting GTK+ version 214 (ITW_GTK_CHECK) macro for checking GTK+ version 215 216 2012-07-24 Adam Domurad <adomurad@redhat.com> 217 218 CVE-2012-3422, RH840592: Potential read from an uninitialized 219 memory location. 220 * plugin/icedteanp/IcedTeaNPPlugin.cc 221 (get_cookie_info): Only attempt to perform this operation if there is a 222 valid plugin instance 223 (get_proxy_info): Only attempt to perform this operation if there is a 224 valid plugin instance 225 226 2012-07-24 Adam Domurad <adomurad@redhat.com> 227 228 * plugin/icedteanp/IcedTeaPluginUtils.cc 229 (IcedTeaPluginUtilities::strSplit): Replace usage of " " with proper 230 delimiter 231 232 2012-07-24 Adam Domurad <adomurad@redhat.com> 233 234 Refactor JNLPFile#launchType into its own interface type (as opposed to 235 Object), LaunchDesc. 236 * netx/net/sourceforge/jnlp/AppletDesc.java: Add override annotation to 237 getMainClass(). 238 * netx/net/sourceforge/jnlp/ApplicationDesc.java: Same as above 239 * netx/net/sourceforge/jnlp/InstallerDesc.java: Same as above 240 * netx/net/sourceforge/jnlp/JNLPFile.java: Make launchType a 241 LaunchDesc object. Update getLaunchInfo() accordingly. 242 * netx/net/sourceforge/jnlp/LaunchDesc.java: New launch description. 243 * netx/net/sourceforge/jnlp/Parser.java 244 (getLauncher): Return type changed to LaunchDesc 245 * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: Replace 246 occurences of instanceof with respect to launchType. 247 248 2012-07-18 Danesh Dadachanji <ddadacha@redhat.com> 249 250 Fix RH838417, Fix RH838559: Disambiguate signed applet security prompt 251 from certificate warning. 252 * NEWS: Added entries for RH838417 and RH838559. 253 * netx/net/sourceforge/jnlp/resources/Messages.properties: 254 Added SWarnFullPermissionsIgnorePolicy and updated SHttpsUnverified. 255 * netx/net/sourceforge/jnlp/security/CertWarningPane.java: Display 256 SWarnFullPermissionsIgnorePolicy if the cert is from a jar and is either 257 unverified or has a signing error. Also added warning.png to HTTPS dialogs. 258 259 2012-07-11 Jiri Vanek <jvanek@redhat.com> 260 261 try to close browser before kill it 262 * tests/reproducers/signed/AppletTestSigned/testcases/AppletTestSignedTests.java: 263 * tests/reproducers/simple/AppletTest/testcases/AppletTestTests.java: 264 * tests/reproducers/simple/CheckServices/testcases/CheckServicesTests.java 265 (evaluateSignedApplet) addapted to properly closed browser 266 * tests/reproducers/simple/CheckServices/srcs/CheckServices.java: 267 removed fixme section as it shuld work now 268 * tests/test-extensions/net/sourceforge/jnlp/ProcessAssasin.java 269 (destroyProcess) new method, launching kill with SIGTERM before clasical 270 process.destroy() 271 * tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java: 272 removed Set<Thread> terminated, should be removed long ago 273 274 2012-07-09 Saad Mohammad <smohammad@redhat.com> 275 276 * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java (initializeExtensions): 277 Checks and assigns the main-class name prior to the for loop. 278 279 2012-07-09 Martin Olsson <martin@minimum.se> 280 281 * plugin/icedteanp/IcedTeaPluginUtils.cc: Change calls from g_free 282 to free when allocated with calloc. 283 * plugin/icedteanp/IcedTeaPluginRequestProcessor.cc 284 (PluginRequestProcessor::call): Make sure args_array doesnt hold 285 garbage when freed. 286 (_loadURL): Change calls from g_free to free when allocated with 287 calloc. 288 289 2012-07-09 Adam Domurad <adomurad@redhat.com> 290 291 Ignore invalid jar files in applets, like the oracle plugin does. 292 * netx/net/sourceforge/jnlp/cache/IllegalResourceDescriptorException.java: 293 New exception type for ResourceTracker to throw instead of 294 IllegalArgumentException 295 * netx/net/sourceforge/jnlp/cache/IllegalResourceDescriptorException.java: 296 Throws IllegalArgumentDescriptorException instead of 297 IllegalArgumentException. 298 * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: 299 (isInvalidJar): New, checks for ZipException in new JarFile(...) 300 (shouldFilterInvalidJars): New, checks if we are in an applet 301 (initializeResources): if 'shouldFilterInvalidJars()' is true and a jar 302 is not a valid jar file, the jar is filtered out and normal execution 303 continues. 304 305 2012-07-03 Saad Mohammad <smohammad@redhat.com> 306 307 * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: 308 (JNLPClassLoader): New constructor that accepts an additional parameter 309 containing the main class name. 310 (getInstance): Accepts mainName as parameter to override application's 311 main class name 312 (initializeExtensions): Passes in the name of the application's main class 313 when creating a new JNLPClassLoader instance. 314 (initializeResources): If the loader owns no jars, it will consider 315 itself as signed if all of the extension loaders are signed. Also, if the 316 extension jars have the main class, it will set foundMainJar to true. 317 (initializeResources): If the main class was not found, check if it was 318 found within the extension jars. 319 (checkForMain): Uses the overwritten main class name (if set) when 320 searching for the main within the jars. 321 (hasMainJar): Returns true if this loader holds the main jar. 322 (hasMainInExtensions): Returns true if extension loaders have the main jar 323 * tests/jnlp_tests/signed/ExtensionJnlp/resources/UsesSignedJarExtension.jnlp: 324 * tests/jnlp_tests/signed/ExtensionJnlp/resources/UsesSignedJnlpExtension.jnlp: 325 * tests/jnlp_tests/signed/ExtensionJnlp/resources/UsesSignedJnlpJarAndSignedJarExtension.jnlp: 326 Launching jnlps that use extension jnlp as its resource. 327 * tests/jnlp_tests/signed/ExtensionJnlp/resources/UsesSignedJar.jnlp: 328 Launching jnlp that directly launches SignedJarResource class. 329 * tests/jnlp_tests/signed/ExtensionJnlp/resources/UsesSignedJnlp.jnlp: 330 Launching jnlp that directly launches SignedJnlpResource class. 331 * tests/jnlp_tests/signed/ExtensionJnlp/testcases/ExtensionJnlpTest.java: 332 Testcase that tests the launching of jnlp files containing extension jnlps 333 as resource. 334 * tests/jnlp_tests/signed/SignedJarResource/resources/SignedJarExtension.jnlp: 335 Component jnlp file that is used as an extension resource. 336 * tests/jnlp_tests/signed/SignedJarResource/srcs/SignedJarResource.java: 337 A simple java class that outputs a string. 338 * tests/jnlp_tests/signed/SignedJnlpResource/resources/UnmatchingSignedJnlpExtension.jnlp: 339 Component jnlp file that is used as an extension resource and does not 340 match the signed jnlp file. 341 * tests/jnlp_tests/signed/SignedJnlpResource/resources/MatchingSignedJnlpExtension.jnlp: 342 Component jnlp file that is used as an extension resource and matches the 343 signed jnlp file. 344 * tests/jnlp_tests/signed/SignedJnlpResource/srcs/JNLP-INF/APPLICATION_TEMPLATE.jnlp: 345 Signed jnlp file. 346 * tests/jnlp_tests/signed/SignedJnlpResource/srcs/SignedJnlpResource.java: 347 A simple java class that outputs a string. 348 349 2012-07-02 Jiri Vanek <jvanek@redhat.com> 350 351 Added missing headers 352 * tests/reproducers/simple/CreateClassLoader/resources/CreateClassLoader.jnlp: 353 * tests/reproducers/simple/ReadEnvironment/resources/ReadEnvironment.jnlp: 354 * tests/reproducers/simple/ReadProperties/resources/ReadProperties1.jnlp: 355 * tests/reproducers/simple/ReadProperties/resources/ReadProperties2.jnlp: 356 * tests/reproducers/simple/RedirectStreams/resources/RedirectStreams.jnlp: 357 * tests/reproducers/simple/ReplaceSecurityManager/resources/ReplaceSecurityManager.jnlp: 358 * tests/reproducers/simple/SetContextClassLoader/resources/SetContextClassLoader.jnlp: 359 * tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java: 360 * tests/test-extensions/net/sourceforge/jnlp/annotations/Bug.java: 361 * tests/test-extensions/net/sourceforge/jnlp/annotations/KnownToFail.java: 362 * tests/test-extensions/net/sourceforge/jnlp/annotations/NeedsDisplay.java: 363 * tests/test-extensions/net/sourceforge/jnlp/annotations/TestInBrowsers.java: 364 * tests/test-extensions/net/sourceforge/jnlp/browsertesting/Browser.java: 365 * tests/test-extensions/net/sourceforge/jnlp/browsertesting/BrowserFactory.java: 366 * tests/test-extensions/net/sourceforge/jnlp/browsertesting/BrowserTest.java: 367 * tests/test-extensions/net/sourceforge/jnlp/browsertesting/BrowserTestRunner.java: 368 * tests/test-extensions/net/sourceforge/jnlp/browsertesting/Browsers.java: 369 * tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Chrome.java: 370 * tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Chromium.java: 371 * tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Epiphany.java: 372 * tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Firefox.java: 373 * tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/LinuxBrowser.java: 374 * tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Midory.java: 375 * tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/MozillaFamilyLinuxBrowser.java: 376 * tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Opera.java: 377 added license headers 378 379 2012-07-02 Jiri Vanek <jvanek@redhat.com> 380 381 Makefile adapted to recent (three changelog items) refactoring 382 * Makefile.am: (JNLP_TESTS_ENGINE_SRCDIR) now points correctly to 383 test-extensions. (JNLP_TESTS_ENGINE_TESTS_SRCDIR) new variable for 384 test-extensions-tests. (JNLP_TESTS_SRCDIR) now points to reproducers. 385 (JNLP_TESTS_ENGINE_TESTS_DIR) new variable for built 386 JNLP_TESTS_ENGINE_TESTS_SRCDIR 387 (netx-dist-tests-tests-source-files.txt) new target for list of 388 content of JNLP_TESTS_ENGINE_TESTS_SRCDIR. 389 (stamps/netx-dist-tests-tests-compile.stamp) new target for compiling 390 netx-dist-tests-tests-source-files.txt 391 (netx-dist-tests-source-files.tx) now depends on 392 stamps/netx-dist-tests-tests-compile.stamp 393 ($(REPRODUCERS_CLASS_NAMES)) target is now working in JNLP_TESTS_ENGINE_TESTS_DIR 394 instead of JNLP_TESTS_ENGINE_DIR 395 (stamps/run-netx-dist-tests.stamp): added JNLP_TESTS_ENGINE_TESTS_DIR to classpath 396 (stamps/run-unit-test-code-coverage.stamp), (stamps/run-reproducers-test-code-coverage.stamp) 397 added JNLP_TESTS_ENGINE_TESTS_DIR to classpath and 398 JNLP_TESTS_ENGINE_TESTS_SRCDIR to sources path 399 400 2012-07-02 Jiri Vanek <jvanek@redhat.com> 401 402 All tests from test-extensions extracted to test-extensions-tests. 403 All inner classes in test-extensions extracted as outer classes 404 * tests/test-extensions/net/sourceforge/jnlp/ResourcesTest.java: 405 moved to test-extensions-tests 406 * tests/test-extensions-tests/net/sourceforge/jnlp/ResourcesTest.java: 407 new file, copied from test-extensions 408 * tests/test-extensions-tests/net/sourceforge/jnlp/ServerAccessTest.java: 409 all tests from original ServerAccess.java 410 * tests/test-extensions/net/sourceforge/jnlp/ContentReader.java: 411 * tests/test-extensions/net/sourceforge/jnlp/LogItem.java: 412 * tests/test-extensions/net/sourceforge/jnlp/LoggingBottleneck.java: 413 * tests/test-extensions/net/sourceforge/jnlp/ProcessAssasin.java: 414 * tests/test-extensions/net/sourceforge/jnlp/ProcessResult.java: 415 * tests/test-extensions/net/sourceforge/jnlp/ServerLauncher.java: 416 * tests/test-extensions/net/sourceforge/jnlp/TestsLogs.java: 417 * tests/test-extensions/net/sourceforge/jnlp/ThreadedProcess.java: 418 * tests/test-extensions/net/sourceforge/jnlp/TinyHttpdImpl.java: 419 new files, extracted classes from ServerAccess 420 * tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java: 421 extracted tests and inner classes 422 423 2012-07-02 Jiri Vanek <jvanek@redhat.com> 424 425 hg move tests/netx/jnlp_testsengine/ tests/test-extensions 426 427 2012-07-02 Jiri Vanek <jvanek@redhat.com> 428 429 hg move tests/jnlp_tests/ tests/reproducers 430 431 2012-06-29 Jiri Vanek <jvanek@redhat.com> 432 433 Fixed resource tests and Browsers.none behavior 434 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ResourcesTest.java: 435 Added slash into all executeBrowsers urls. 436 Added midori and epiphany to simple proxies test. 437 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/BrowserTestRunner.java: 438 Corrected handling of Browsers.none together with -Dmodified.browsers.run switch 439 440 2012-06-28 Omair Majid <omajid@redhat.com> 441 442 * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java 443 (findClass): Invoke CodeBaseClassLoader.findClass with a flag to avoid 444 infinite recursion. 445 (CodeBaseClassLoader.findClass(String)): Delegate to ... 446 (CodeBaseClassLoader.findClass(String,boolean)): New method. 447 * tests/netx/unit/net/sourceforge/jnlp/runtime/CodeBaseClassLoaderTest.java 448 (testParentClassLoaderIsAskedForClasses): New method. 449 450 2012-06-28 Jiri Vanek <jvanek@redhat.com> 451 452 Correctly backup all log files re-writable by emma during code-coverage 453 * Makefile.am: (EMMA_MODIFIED_FILES) new variable with list of files to 454 backup/restore. (stamps/run-unit-test-code-coverage.stamp) and 455 (stamps/run-reproducers-test-code-coverage.stamp) are now iterating over 456 EMMA_MODIFIED_FILES instead of enumerating them 457 458 2012-06-28 Jiri Vanek <jvanek@redhat.com> 459 460 Removed repeated re-runing of tests during coverage, stamped pac tests 461 * Makefile.am: (check-pac-functions) moved to target aliases and replaced 462 by stamps/check-pac-functions.stamp. 463 (clean-netx-unit-tests) added removing of stamps/check-pac-functions.stamp 464 (stamps/exported-test-certs.stamp): no longer depends on 465 netx-dist-tests-remove-cert-from-public, logic of it have to be 466 copy-pasted from here. 467 (stamps/run-unit-test-code-coverage.stamp): no longer depends on check, 468 but was added direct dependences 469 470 2012-06-28 Adam Domurad <adomurad@redhat.com> 471 472 Allow for folders in archive tag. 473 * netx/net/sourceforge/jnlp/PluginBridge.java: 474 (PluginBridge) Changes jar -> archive, parse contents with 475 addArchiveEntries. 476 (addArchiveEntries) New method. Adds entries ending with / to the list 477 of folders. 478 (getCodeBaseFolders) Returns the folders collected by addArchiveEntries 479 * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: 480 (initializeResources) If ran as plugin, add archive tag folders to the 481 code base loader. 482 483 2012-06-27 Adam Domurad <adomurad@redhat.com> 484 485 Tests folders in archive tag 486 * tests/jnlp_tests/custom/AppletFolderInArchiveTag/testcases/AppletFolderInArchiveTagTests.java: 487 Runs html file in browser 488 * tests/jnlp_tests/custom/AppletFolderInArchiveTag/srcs/Makefile: 489 packages compiled source files in folder 490 * tests/jnlp_tests/custom/AppletFolderInArchiveTag/srcs/AppletFolderInArchiveTag.java: 491 Simple output to confirm it is running 492 * tests/jnlp_tests/custom/AppletFolderInArchiveTag/resources/AppletFolderInArchiveTag.html: 493 Has folder in its archive tag that contains a class file 494 495 2012-06-26 Jiri Vanek <jvanek@redhat.com> 496 497 Added slipped midori and epiphany to recognized browsers. 498 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/BrowserFactory.java: 499 (BrowserFactory) added slipped cases for creating Epiphany and Midori singletons 500 501 2012-06-26 Jiri Vanek <jvanek@redhat.com> 502 503 * Makefile.am: Most crucial variables exported to be used by custom Makefiles 504 (CUSTOM_REPRODUCERS): new variable to hold custom name 505 (ALL_NONCUSTOM_REPRODUCERS): new variable for gathering all except custom reproducers 506 (ALL_REPRODUCERS): now contains also custom ones 507 (stamps/junit-jnlp-dist-dirs): now depends also on junit-jnlp-dist-custom.txt 508 (junit-jnlp-dist-custom.txt): new target scanning for directories in jnlp_tests/custom 509 and saving them as list for future purposes. 510 (stamps/netx-dist-tests-prepare-reproducers.stamp): and 511 ( stamps/change-dots-to-paths.stamp):iterate through ALL_NONCUSTOM_REPRODUCERS 512 instead of ALL__REPRODUCERS 513 (stamps/process-custom-reproducers.stamp) : new target for iterating by 514 junit-jnlp-dist-custom.txt through jnlp_tests/custom/srcs* and launching 515 make prepare-reproducer in each. 516 (clean-custom-reproducers): same as above but launching make clean-reproducer 517 (run-netx-dist-tests) now depends on stamps/process-custom-reproducers.stamp 518 (clean-netx-dist-tests): now depends on clean-custom-reproducers and is removing 519 stamps/netx-dist-tests-copy-resources.stamp 520 (stamps/netx-dist-tests-copy-resources.stamp): new target extracting 521 copying of resources from stamps/netx-dist-tests-compile-testcases.stamp 522 * tests/jnlp_tests/README: described this mechanism a bit 523 524 2012-06-26 Jiri Vanek <jvanek@redhat.com> 525 526 Reproducer for classes which should be loaded before verification but are not 527 * tests/jnlp_tests/signed/InternalClassloaderWithDownloadedResource/resources/InternalClassloaderWithDownloadedResource-applet-hack.jnlp 528 jnlp launcher of applet variant with injecting new url to classlaoder 529 * tests/jnlp_tests/signed/InternalClassloaderWithDownloadedResource/resources/InternalClassloaderWithDownloadedResource-applet-new.jnlp 530 jnlp launcher of applet variant with custom classlaoder 531 * tests/jnlp_tests/signed/InternalClassloaderWithDownloadedResource/resources/InternalClassloaderWithDownloadedResource-hack.html 532 html launcher of applet variant with injecting new url to classlaoder 533 * tests/jnlp_tests/signed/InternalClassloaderWithDownloadedResource/resources/InternalClassloaderWithDownloadedResource-hack.jnlp 534 jnlp launcher of application variant with injecting new url to classlaoder 535 * tests/jnlp_tests/signed/InternalClassloaderWithDownloadedResource/resources/InternalClassloaderWithDownloadedResource-new.html 536 html launcher of applet variant with custom classlaoder 537 * tests/jnlp_tests/signed/InternalClassloaderWithDownloadedResource/resources/InternalClassloaderWithDownloadedResource-new.jnlp 538 jnlp launcher of application variant with custom classlaoder 539 * tests/jnlp_tests/signed/InternalClassloaderWithDownloadedResource/srcs/InternalClassloaderWithDownloadedResource.java: 540 Both application and applet reproducing behavior of this bug 541 * tests/jnlp_tests/signed/InternalClassloaderWithDownloadedResource/testcases/InternalClassloaderWithDownloadedResourceTest.java: 542 Testcase launching jnlp application, jnlp applet and html applet 543 544 2012-06-26 Jiri Vanek <jvanek@redhat.com> 545 546 Last hope for not downloaded resources to be verified 547 * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: 548 (getCodeSourceSecurity): will now try to download and verify resource 549 which was downloaded outside of netx. 550 (alreadyTried) set for memory of once tried resources to not try again 551 552 2012-06-25 Adam Domurad <adomurad@redhat.com> 553 554 Small comment cleanup to classes with missing or wrong descriptions. 555 * plugin/icedteanp/java/sun/applet/PluginMessageHandlerWorker.java: 556 Comment at top fixed 557 * plugin/icedteanp/java/sun/applet/AppletSecurityContextManager.java: 558 Same 559 * plugin/icedteanp/java/sun/applet/PluginException.java: Same 560 * plugin/icedteanp/java/sun/applet/PluginCallRequestFactory.java: Same 561 * netx/net/sourceforge/jnlp/PluginBridge.java: Add class description. 562 * plugin/icedteanp/java/sun/applet/PluginCallRequest.java: 563 Removed FIXME that had already been fixed. 564 565 2012-06-25 Adam Domurad <adomurad@redhat.com> 566 567 Allow passing of plugin tables and browser tables in NP_Initialize that 568 are not the expected length but still large enough for our purposes. 569 * plugin/icedteanp/IcedTeaNPPlugin.cc 570 (initialize_browser_functions): New function to check size of passed 571 browser function table, and initialize 'browser_functions' global 572 variable. 573 (initialize_plugin_table): New function to check size of passed 574 plugin function table, and initialize proper plugin callbacks. 575 (NP_Initialize): Make use of initialization helper functions, get 576 rid of old size tests and error if the helper functions fail. 577 578 2012-06-20 Adam Domurad <adomurad@redhat.com> 579 580 * netx/net/sourceforge/jnlp/tools/JarCertVerifier.java 581 (verifyJar): two for loops made into for-each loops 582 583 2012-06-19 Jiri Vanek <jvanek@redhat.com> 584 585 various test for browser engine 586 * tests/jnlp_tests/simple/AppletTest/resources/appletAutoTests.html: 587 fixed missing parenthesis 588 * tests/jnlp_tests/simple/AppletTest/resources/appletAutoTests2.html: 589 new test excluding XslowX for applets 590 * tests/jnlp_tests/simple/AppletTest/testcases/AppletTestTests: 591 (doubleChrome) test for ensuring that two chrome browsers launched 592 behind themselves will not cause errors as they were without 593 criticalFixes patch 594 (AppletInBrowserTest) and (AppletInBrowserTestXslowX) testing methods 595 for all browser 596 * tests/jnlp_tests/simple/AppletTest/testcases/AppletBaseURLTest: 597 * tests/jnlp_tests/simple/AppletTest/testcases/CheckServicesTests: 598 * tests/jnlp_tests/simple/AppletTest/testcases/AppletReadsInvalidJarTests: 599 Included @TestInBrowser instead of plain executeBrowser 600 * tests/jnlp_tests/simple/deadlocktest/srcs/DeadlockTest.java: improved 601 to print sometimes something out 602 * tests/jnlp_tests/simple/deadlocktest/testcases/DeadLockTestTest.java: 603 (testDeadLockTestTerminatedBody) enhanced to ensure that not so much is 604 lost when process is terminated, but showing that something can be lost 605 (which is correct) 606 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ResourcesTest.java: 607 (testNonExisitngBrowserWillNotDeadlock) testing taht when no browser is 608 set, then no deadlock happens as happen before criticalFixes's deadlyException 609 (testUnexistingProcessWillFailRecognizedly) is actually testing deadlyException 610 (testNonExisitngBrowserWillNotCauseMess) some but with annotation which 611 was also harming output of tool little bit without TestInBrowsersAnnotation fixed. 612 (testBrowsers2) is testing all browsers configuration without annotation 613 and (testBrowser3) do the same configuration tests annotation driven 614 (testBrowser) body of above two methods. Is testing whether used 615 browsers are correctly linked with latest build 616 (testBrowsers1) is testing parsing of -D variable 617 (testListeners) annotated that needs display 618 * tests/netx/unit/net/sourceforge/jnlp/runtime/CodeBaseClassLoaderTest.java: 619 annotated with Bug annotation 620 621 2012-06-19 Jiri Vanek <jvanek@redhat.com> 622 623 introduced possibility to run comfortably applets+html reproducers 624 * Makefile.am: used BROWSER_TESTS_MODIFICATION variable to pass global 625 switch from configure 626 * acinclude.m4: (IT_SET_GLOBAL_BROWSERTESTS_BHAVIOUR) new method 627 handling --with-browser-tests 628 * configure.ac: used IT_SET_GLOBAL_BROWSERTESTS_BHAVIOUR 629 switch and passing BROWSER_TESTS_MODIFICATION variable to Makefile. 630 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java: 631 (currentBrowser) variable holding injected browser for ServerAccess instance 632 (loggedBrowser) static variable keeping id of (currentBrowser) for static 633 logging purposes 634 (modifyMethodWithForBrowser) new function changing the name of method to 635 "method - browser" for logging purposes 636 (getBrowserLocation) - returning path to process to be launched when 637 browser requested 638 (getBrowserParams) - gathering set default's browser settings 639 (set/getCurrentBrowsers) - set browser by id/return id of set browser 640 (set/getCurrentBrowser) - set browser instance /returns instance of 641 current browser 642 (executeBrowser) family of methods now cooperate with above methods for 643 default set browser 644 (executeBrowser(Browser) family to work with implicit browser 645 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/annotations/TestInBrowsers.java: 646 annotation for determining which browser(s) to use with annotated method 647 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/Browser.java: 648 interface for dealing with various browsers 649 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/BrowserFactory.java: 650 singleton for mapping configured browsers x requested browser x browsers proxies 651 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/BrowserTest.java: 652 Forefather of all testcases which have methods to do tests iniside browser. 653 Is allowing correct annotation -> proxy trasnver to VirtualServer for 654 selected method and is requesting custom runner from junit framework 655 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/BrowserTestRunner.java: 656 custom test Ruuner which is responsible for translating annotation and 657 run the method mutlipletimes for each requested browser and to name it properly 658 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/Browsers.java: 659 enumeration of abstract browsers and theirs sets or subsets. 660 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/browsers/*: 661 individual browsers proxies and theirs abstractions,namely: 662 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/browsers/Opera.java: 663 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/browsers/Firefox.java: 664 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/browsers/Chrome.java: 665 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/browsers/Chromium.java: 666 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/browsers/Midori.java: 667 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/browsers/Epiphany.java: 668 proxies for browsers as name suggests 669 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/browsers/LinuxBrowser.java: 670 abstract forefather for all browsers implementing Browser interface. Is 671 setting /usr/bin as bin path, libjavaplugin.so as default plugin library name, 672 intorducing stubs for methods (eg 32/64 bit libs) 673 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/browsers/MozillaFamilyLinuxBrowser: 674 forefather for all browsers except Opera. Is unifying .mozilla/plugins directories 675 676 2012-06-15 Jiri Vanek <jvanek@redhat.com> 677 678 * tests/jnlp_tests/simple/AppletTest/resources/appletAutoTests.html: 679 Added quotes around parameters of html applet tag. 680 * tests/jnlp_tests/simple/deadlocktest/testcases/DeadLockTestTest.java: 681 Output verification is counting with repeated and probably unfinished outputs. 682 * tests/jnlp_tests/simple/deadlocktest/srcs/DeadlockTest.java 683 Is now printing out sentence in intervals to avoid destroy-consume as much as possible 684 * tests/netx/unit/net/sourceforge/jnlp/runtime/CodeBaseClassLoaderTest.java: 685 Added bug annotation with threads on distro-pkg-dev 686 687 2012-06-15 Adam Domurad <adomurad@redhat.com> 688 689 Fixed two memory leaks 690 * plugin/icedteanp/IcedTeaNPPlugin.cc 691 (consume_message): Call to g_strsplit matched with call to g_strfreev. 692 * plugin/icedteanp/IcedTeaPluginUtils.cc 693 (post): Removed copy of string, which assumed consumer freed string 694 (which was not true and not always possible) 695 696 2012-06-11 Danesh Dadachanji <ddadacha@redhat.com> 697 698 PR855: AppletStub getDocumentBase() doesn't return full URL 699 * NEWS: Added PR855 entry. 700 * plugin/icedteanp/IcedTeaNPPlugin.cc (plugin_get_documentbase): 701 Assign documentbase_copy directly to href's value instead of iterating 702 through the segments to remove the file from the path. 703 * tests/jnlp_tests/simple/AppletBaseURLTest/srcs/AppletBaseURL.java: 704 * tests/jnlp_tests/simple/AppletBaseURLTest/testcases/AppletBaseURLTest.java: 705 * tests/jnlp_tests/simple/AppletBaseURLTest/resources/AppletBaseURLTest.html: 706 * tests/jnlp_tests/simple/AppletBaseURLTest/resources/AppletBaseURLTest.jnlp: 707 * tests/jnlp_tests/simple/AppletBaseURLTest/resources/AppletJNLPHrefBaseURLTest.html: 708 New reproducer that checks the URLS that document and codebase 709 point are correct. 710 711 2012-06-13 Danesh Dadachanji <ddadacha@redhat.com> 712 713 Update CheckServices reproducer to handle browser testcase. 714 * tests/jnlp_tests/simple/CheckServices/testcases/CheckServicesTests.java: 715 Added browser test and annotation, refactored asserts into helper method. 716 * tests/jnlp_tests/simple/CheckServices/resources/CheckPluginServices.html: 717 New browser test file that runs applet using jnlp_href. 718 719 2012-06-13 Jiri Vanek <jvanek@redhat.com> 720 721 * tests/junit-runner/JunitLikeXmlOutputListener.java: 722 Introduced TEST_IGNORED_ATTRIBUTE to mark test as ignored if should be. 723 * tests/report-styles/jreport.xsl: Applied correct text and style for 724 tests with attribute ignored. 725 726 2012-06-12 Adam Domurad <adomurad@redhat.com> 727 728 Fixes PR722, javaws failing to run with unsigned content in META-INF/ 729 * NEWS: Added entry: Fixes PR722 730 * netx/net/sourceforge/jnlp/tools/JarCertVerifier.java: Changed 731 isSignatureRelated => isMetaInfFile. Now all files under META-INF/ are 732 disregarded in checking the jar signage. 733 734 2012-06-11 Jiri Vanek <jvanek@redhat.com> 735 736 Implemented xml logging backend 737 * Makefile.am: (stamps/run-netx-unit-tests.stamp) and 738 (stamps/run-netx-dist-tests.stamp) removed redirection of streams as 739 logging is now done in ServerAccess tests extensions 740 added xsltproc execution above generated xml log 741 xsltproc generating results html files is now receiving result of above 742 as parameter 743 * tests/report-styles/jreport.xsl: log parameter is now accepted, and 744 if set, then all tests are linking into specified file to show the log 745 * tests/report-styles/report.css: added styles for new links 746 * tests/report-styles/index.js: new functions to work for result of below sheet 747 * tests/report-styles/logs.xsl: new file, sheet to convert xml log to html file 748 * tests/report-styles/output.css: new file, styles of above html file 749 * tests/jnlp_tests/simple/deadlocktest/testcases/DeadLockTestTest.java: 750 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ResourcesTest.java: 751 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java: 752 Tests', server's and ProcessAssasin's logs are now redirected to bottleneck 753 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java: 754 (LOGS_REPRINT) flag for debugging purposes, will enable reprinting to 755 stdout/err again 756 (DEFAULT_LOG_FILE ) default name of xml output 757 (DEFAULT_STDERR_FILE)(DEFAULT_STDOUT_FILE)(DEFAULT_STDLOGS_FILE) default 758 values of plain text output files 759 (*ELEMENT) and( (*ATTRIBUTE) variables keeping repeated names of xml 760 output parts 761 (writeXmlLog) method called from Sytsem.hook to save xml log 762 (addToXmlLog) method to record item to xml structure 763 (TestsLogs) and (LogItem) inner classes to keep logging information 764 (log) is now reprinting message with id to std out/err dependently on 765 (LOGS_REPRINT) but always to internal streams, possilbe exception is thrown 766 (logException) new method, shortcut to log exception in same way as message 767 (getTestMethod) now can handle methods inside ServerAccess class too 768 769 2012-06-11 Adam Domurad <adomurad@redhat.com> 770 771 * NEWS: Added mention of fixing PR518 772 773 2012-06-07 Saad Mohammad <smohammad@redhat.com> 774 775 Allows the user to configure browser paths and/or disable browsers. 776 * acinclude.m4 (IT_FIND_BROWSER): Checks if the browser is set to be 777 disabled, or if the path provided is valid. Otherwise, it locates the 778 default path to the browser if found on the system. 779 * configure.ac: Uses IT_FIND_BROWSER to find/configure browsers. 780 781 2012-06-06 Deepak Bhole <dbhole@redhat.com> 782 783 * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java 784 (getAccessControlContextForClassLoading): Iterate over codebase URLs only 785 if codeBaseLoader is not null. 786 787 2012-06-05 Deepak Bhole <dbhole@redhat.com> 788 789 PR861: Allow loading from non codebase hosts. Allow code to connect to 790 hosting server. 791 * netx/net/sourceforge/jnlp/SecurityDesc.java 792 (getSandBoxPermissions): Only add host if it is not empty. 793 * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java 794 (getPermissions): Add SocketPermission for code source host. 795 (findLoadedClassAll): Call super methods privileged so that connection to 796 non codebase hosts can be made. 797 (findClass): Same. 798 (findResourcesBySearching): Same. Also use privileged context for enum 799 operations because the enum is defined on the fly by URLClassLoader and 800 checks for hosting server connectivity via next(). 801 (getAccessControlContextForClassLoading): New method. Returns a control 802 context for classloader operations like find/load/etc. 803 (CodeBaseClassLoader::findClass): Call super methods privileged so that 804 connection to non codebase hosts can be made. 805 (CodeBaseClassLoader::findResource): Same. 806 807 2012-06-05 Jiri Vanek <jvanek@redhat.com> 808 809 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/annotations/KnownToFail.java 810 New file. Annotation for marking failing tests. 811 * tests/report-styles/jreport.xsl: 812 * tests/junit-runner/LessVerboseTextListener.java: 813 * tests/junit-runner/JunitLikeXmlOutputListener.java: Added counting 814 and printing of @KnownToFail annotations if presented. 815 * tests/jnlp_tests/simple/Spaces can be everywhere/testcases/SpacesCanBeEverywhereTests.java: 816 (SpacesCanBeEverywhereRemoteTests1) (SpacesCanBeEverywhereRemoteTests2) 817 (SpacesCanBeEverywhereRemoteTests3) 818 * tests/netx/unit/net/sourceforge/jnlp/JNLPMatcherTest.java: (testTemplateCDATA) 819 (testApplicationCDATA) 820 * tests/netx/unit/net/sourceforge/jnlp/ParserCornerCases.java: 821 (testCDataFirstChild) (testCDataSecondChild) (testCommentInAttributes) 822 * tests/netx/unit/net/sourceforge/jnlp/ParserMalformedXml.java: 823 (testMalformedArguments) (testTagNotClosed) (testUnquotedAttributes) 824 marked as KnownToFail 825 826 2012-06-05 Jiri Vanek <jvanek@redhat.com> 827 828 isDateInRange renamed to isDateInRange_internallForIcedTeaWebTesting 829 * netx/net/sourceforge/jnlp/runtime/pac-funcs.js: and 830 * tests/netx/pac/pac-funcs-test.js: 831 (isDateInRange): Renamed to isDateInRange_internallForIcedTeaWebTesting. 832 (isDateInRange_internallForIcedTeaWebTesting): New function 833 834 2012-06-04 Saad Mohammad <smohammad@redhat.com> 835 836 Added signed jnlp file tests. 837 * tests/jnlp_tests/signed/SignedJnlpApplication/resources/SignedJnlpApplication1.jnlp: 838 Launching jnlp file that matches the signed jnlp application file. 839 * tests/jnlp_tests/signed/SignedJnlpApplication/resources/SignedJnlpApplication2.jnlp: 840 * tests/jnlp_tests/signed/SignedJnlpApplication/resources/SignedJnlpApplication3.jnlp: 841 Launching jnlp file that does not match the signed jnlp application file. 842 * tests/jnlp_tests/signed/SignedJnlpApplication/srcs/JNLP-INF/APPLICATION.jnlp: 843 Signed jnlp application file. 844 * tests/jnlp_tests/signed/SignedJnlpApplication/srcs/SignedJnlpApplication.java: 845 A simple java class that outputs a string. 846 * tests/jnlp_tests/signed/SignedJnlpApplication/testcases/SignedJnlpApplicationTest.java: 847 Testcase that tests the launching of applications with a signed jnlp 848 application file. 849 * tests/jnlp_tests/signed/SignedJnlpTemplate/resources/SignedJnlpTemplate1.jnlp: 850 Launching jnlp file that matches the signed jnlp application template file. 851 * tests/jnlp_tests/signed/SignedJnlpTemplate/resources/SignedJnlpTemplate2.jnlp: 852 * tests/jnlp_tests/signed/SignedJnlpTemplate/resources/SignedJnlpTemplate3.jnlp: 853 Launching jnlp file that does not match the signed jnlp application 854 template file. 855 * tests/jnlp_tests/signed/SignedJnlpTemplate/srcs/JNLP-INF/APPLICATION_TEMPLATE.jnlp: 856 Signed jnlp application template file. 857 * tests/jnlp_tests/signed/SignedJnlpTemplate/srcs/SignedJnlpTemplate.java: 858 A simple java class that outputs a string. 859 * tests/jnlp_tests/signed/SignedJnlpTemplate/testcases/SignedJnlpTemplateTest.java: 860 Testcase that tests the launching of applications with a signed jnlp 861 application template file. 862 * tests/jnlp_tests/simple/UnsignedJnlpApplication/resources/UnsignedJnlpApplication1.jnlp: 863 Launching jnlp file that matches the unsigned jnlp application file. 864 * tests/jnlp_tests/simple/UnsignedJnlpApplication/resources/UnsignedJnlpApplication2.jnlp: 865 * tests/jnlp_tests/simple/UnsignedJnlpApplication/resources/UnsignedJnlpApplication3.jnlp: 866 Launching jnlp file that does not match the unsigned jnlp application file. 867 * tests/jnlp_tests/simple/UnsignedJnlpApplication/srcs/JNLP-INF/APPLICATION.jnlp: 868 Unsigned jnlp application file. 869 * tests/jnlp_tests/simple/UnsignedJnlpApplication/srcs/UnsignedJnlpApplication.java: 870 A simple java class that outputs a string. 871 * tests/jnlp_tests/simple/UnsignedJnlpApplication/testcases/UnsignedJnlpApplicationTest.java: 872 Testcase that tests the launching of applications with an unsigned jnlp 873 application file. 874 * tests/jnlp_tests/simple/UnsignedJnlpTemplate/resources/UnsignedJnlpTemplate1.jnlp: 875 Launching jnlp file that matches the unsigned jnlp application 876 template file. 877 * tests/jnlp_tests/simple/UnsignedJnlpTemplate/resources/UnsignedJnlpTemplate2.jnlp: 878 * tests/jnlp_tests/simple/UnsignedJnlpTemplate/resources/UnsignedJnlpTemplate3.jnlp: 879 Launching jnlp file that does not match the unsigned jnlp application 880 template file. 881 * tests/jnlp_tests/simple/UnsignedJnlpTemplate/srcs/JNLP-INF/APPLICATION_TEMPLATE.jnlp: 882 Unsigned jnlp application template file. 883 * tests/jnlp_tests/simple/UnsignedJnlpTemplate/srcs/UnsignedJnlpTemplate.java: 884 A simple java class that outputs a string. 885 * tests/jnlp_tests/simple/UnsignedJnlpTemplate/testcases/UnsignedJnlpTemplateTest.java: 886 Testcase that tests the launching of applications with an unsigned jnlp 887 application template file. 888 * tests/jnlp_tests/signed/SignedJnlpCaseTestOne/resources/SignedJnlpCaseTestOne1.jnlp: 889 Launching jnlp file that matches the signed jnlp application file. 890 * tests/jnlp_tests/signed/SignedJnlpCaseTestOne/resources/SignedJnlpCaseTestOne2.jnlp: 891 Launching jnlp file that does not match the signed jnlp application file. 892 * tests/jnlp_tests/signed/SignedJnlpCaseTestOne/srcs/JNLP-INF/aPpLiCaTioN.jnlp: 893 Signed jnlp application file. 894 * tests/jnlp_tests/signed/SignedJnlpCaseTestOne/srcs/SignedJnlpCase.java: 895 A simple java class that outputs a string. 896 * tests/jnlp_tests/signed/SignedJnlpCaseTestOne/testcases/SignedJnlpCaseOneTest.java: 897 Testcase that tests the case-sensitivity of the signed jnlp application's 898 filename. 899 * tests/jnlp_tests/signed/SignedJnlpCaseTestTwo/resources/SignedJnlpCaseTestTwo1.jnlp: 900 Launching jnlp file that matches the signed jnlp application template file. 901 * tests/jnlp_tests/signed/SignedJnlpCaseTestTwo/resources/SignedJnlpCaseTestTwo2.jnlp: 902 Launching jnlp file that does not match the signed jnlp application 903 template file. 904 * tests/jnlp_tests/signed/SignedJnlpCaseTestTwo/srcs/JNLP-INF/aPpLiCaTiOn_tEmPlAte.jnlp: 905 Signed jnlp application template file. 906 * tests/jnlp_tests/signed/SignedJnlpCaseTestTwo/srcs/SignedJnlpCase.java: 907 A simple java class that outputs a string. 908 * tests/jnlp_tests/signed/SignedJnlpCaseTestTwo/testcases/SignedJnlpCaseTwoTest.java: 909 Testcase that tests the case-sensitivity of the signed jnlp application 910 template's filename. 911 912 2012-06-04 Danesh Dadachanji <ddadacha@redhat.com> 913 914 Fix to handle absolute paths passed into jnlp_href's value. 915 * netx/net/sourceforge/jnlp/PluginBridge.java 916 (PluginBridge): Uses context of codebase to evaluate jnlp_href's value. 917 Uses JNLPCreator's create method to make new JNLPFile variables. 918 New constructor that wraps around the original one, creating a new 919 JNLPCreator to use. 920 * netx/net/sourceforge/jnlp/JNLPCreator.java: New strategy pattern class 921 to be used to wrap around the creation of a JNLPFile. Replace this creator 922 when unit testing to skip running parsing code. 923 * tests/netx/unit/net/sourceforge/jnlp/PluginBridgeTest.java: 924 New class to unit test getEvaluatedJNLPHref. 925 926 2012-06-04 Adam Domurad <adomurad@redhat.com> 927 928 Added self to AUTHORS. 929 This patch fixes PR518, ensures null termination of strings based off 930 of NPVariant results. 931 * plugin/icedteanp/IcedTeaPluginUtils.h: Added declaration of 932 NPVariantAsString 933 * plugin/icedteanp/IcedTeaPluginUtils.cc 934 (NPVariantAsString): New. Converts an NPVariant to a 935 std::string, assumes it is a valid NPString. 936 (isObjectJSArray): Now uses NPVariantAsString, minor cleanup. 937 * plugin/icedteanp/IcedTeaJavaRequestProcessor.cc 938 (plugin_get_documentbase): Now uses NPVariantAsString. 939 * plugin/icedteanp/IcedTeaNPPlugin.cc 940 (NPVariantToString): Now uses NPVariantAsString, minor cleanup. 941 942 2012-06-01 Deepak Bhole <dbhole@redhat.com> 943 944 PR863: Error passing strings to applet methods in Chromium 945 * plugin/icedteanp/IcedTeaJavaRequestProcessor.cc 946 (createJavaObjectFromVariant): Account for length of the characters. 947 * plugin/icedteanp/IcedTeaNPPlugin.cc (plugin_get_documentbase): Same. 948 * plugin/icedteanp/IcedTeaPluginRequestProcessor.cc (_eval): Print the 949 string's c_str rather than utf8characters. 950 * plugin/icedteanp/IcedTeaPluginUtils.cc (printNPVariant): Account for 951 length of the characters. 952 (NPVariantToString): Same. 953 (isObjectJSArray): Same. 954 955 2012-05-30 Jiri Vanek <jvanek@redhat.com> 956 957 Enabled multiple certificates and extracted variables 958 * Makefile.am: EXPORTED_TEST_CERT by EXPORTED_TEST_CERT_PREFIX and 959 EXPORTED_TEST_CERT_SUFFIX for further composition 960 SIGNED_REPRODUCERS new variable for iterating through signed reproducers 961 SIMPLE_REPRODUCERS new variable for iterating through simple reproducers 962 ALL_REPRODUCER new variable for iterating through all reproducers 963 (junit-jnlp-dist-signed.txt) replaced by 964 (stamps/junit-jnlp-dist-signed.stamp) which generates 965 junit-jnlp-dist-signedX.txt for each directory with signed reproducers 966 (stamps/netx-dist-tests-prepare-reproducers.stamp) 967 (stamps/change-dots-to-paths.stamp) 968 (stamps/netx-dist-tests-compile-testcases.stamp) 969 (run-netx-dist-codecoverage): extracted variables 970 (clean-netx-dist-tests): iterates through all the list and removes them 971 (stamps/netx-dist-tests-sign-some-reproducers.stamp): now iterate through 972 SIGNED_REPRODUCERS and creates special certificate for each member. Each 973 jar from this directory is then signed by corresponding certificate 974 (netx-dist-tests-remove-cert-from-public): iterates through all certificates 975 (stamps/netx-dist-tests-import-cert-to-public): exports each certificate 976 created during tests preparations 977 ($(EXPORTED_TEST_CERT)) replaced by stamps/exported-test-certs.stamp which 978 create for each of SIGNED_REPRODUCERS individual certificate 979 (tests/jnlp_tests/README): mentioned possibility of multiple certificate 980 981 2012-05-29 Jiri Vanek <jvanek@redhat.com> 982 983 * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: (getPermissions): 984 New rethrow of exceptions and following condition make more accurate. 985 986 2012-05-29 Jiri Vanek <jvanek@redhat.com> 987 988 Get rid of repeated sout/serr in reproducers testcases/unit tests and 989 introduce bottleneck for loging. 990 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java: 991 (PROCESS_LOG) static flag for enabling/disabling automatic logging of 992 statically executed processes. 993 (logErrorReprint) (logOutputReprint) (logNoReprint) new methods, to call 994 logging bottleneck. 995 (log) main logging bottleneck, reprint message to according stream with 996 calling test-class and test-method as suffix. 997 (getTestMethod) new method to analyze calling test-method. 998 (executeProcess) enhanced for conditional automatic logging of start of 999 process and outputs of process. 1000 * tests/jnlp_tests/signed/AppletTestSigned/testcases/AppletTestSignedTests.java: 1001 * tests/jnlp_tests/signed/CacheReproducer/testcases/CacheReproducerTest.java: 1002 * tests/jnlp_tests/signed/MissingJar/testcases/MissingJarTest.java: 1003 * tests/jnlp_tests/signed/ReadPropertiesSigned/testcases/ReadPropertiesSignedTest.java: 1004 * tests/jnlp_tests/signed/Spaces can be everywhere signed/testcases/SpacesCanBeEverywhereTestsSigned.java: 1005 * tests/jnlp_tests/simple/AccessClassInPackage/testcases/AccessClassInPackageTest.java: 1006 * tests/jnlp_tests/simple/AddShutdownHook/testcases/AddShutdownHookTest.java: 1007 * tests/jnlp_tests/simple/AllStackTraces/testcases/AllStackTracesTest.java: 1008 * tests/jnlp_tests/simple/AppletTest/testcases/AppletTestTests.java: 1009 * tests/jnlp_tests/simple/CheckServices/testcases/CheckServicesTests.java: 1010 * tests/jnlp_tests/simple/CreateClassLoader/testcases/CreateClassLoaderTest.java: 1011 * tests/jnlp_tests/simple/InformationTitleVendorParser/testcases/InformationTitleVendorParserTest.java: 1012 * tests/jnlp_tests/simple/ManifestedJar1/testcases/ManifestedJar1Test.java: 1013 * tests/jnlp_tests/simple/ReadEnvironment/testcases/ReadEnvironmentTest.java: 1014 * tests/jnlp_tests/simple/ReadProperties/testcases/ReadPropertiesTest.java: 1015 * tests/jnlp_tests/simple/RedirectStreams/testcases/RedirectStreamsTest.java: 1016 * tests/jnlp_tests/simple/ReplaceSecurityManager/testcases/ReplaceSecurityManagerTest.java: 1017 * tests/jnlp_tests/simple/SetContextClassLoader/testcases/SetContextClassLoaderTest.java: 1018 * tests/jnlp_tests/simple/Spaces can be everywhere/testcases/SpacesCanBeEverywhereTests.java: 1019 * tests/jnlp_tests/simple/deadlocktest/testcases/DeadLockTestTest.java: 1020 * tests/jnlp_tests/simple/simpletest1/testcases/SimpleTest1Test.java: 1021 * tests/jnlp_tests/simple/simpletest2/testcases/SimpleTest2Test.java: 1022 * tests/netx/unit/net/sourceforge/jnlp/cache/CacheLRUWrapperTest.java: 1023 * tests/netx/unit/net/sourceforge/jnlp/runtime/CodeBaseClassLoaderTest.java: 1024 * tests/netx/unit/net/sourceforge/jnlp/util/replacements/BASE64EncoderTest.java: 1025 all System.out replaced by ServerAccess.logOutputReprint 1026 and System.err replaced by ServerAccess.logErrorReprint 1027 1028 2012-05-25 Adam Domurad <adomurad@redhat.com> 1029 1030 Changed for-loops over iterators and indices to for-each loops if they 1031 were sufficient and clearer. 1032 * netx/net/sourceforge/jnlp/JNLPFile.java: Changed for-loops that could 1033 be expressed more clearly as for-each loops. 1034 * netx/net/sourceforge/jnlp/PluginBridge.java: Same 1035 * netx/net/sourceforge/jnlp/ResourcesDesc.java: Same 1036 * netx/net/sourceforge/jnlp/cache/CacheUtil.java: Same 1037 * netx/net/sourceforge/jnlp/cache/DefaultDownloadIndicator.java: Same 1038 * netx/net/sourceforge/jnlp/cache/Resource.java: Same 1039 * netx/net/sourceforge/jnlp/cache/ResourceTracker.java: Same 1040 * netx/net/sourceforge/jnlp/runtime/AppletEnvironment.java: Same 1041 * netx/net/sourceforge/jnlp/runtime/ApplicationInstance.java: Same 1042 * plugin/icedteanp/java/netscape/javascript/JSObject.java: Same 1043 * plugin/icedteanp/java/sun/applet/JavaConsole.java: Same 1044 * plugin/icedteanp/java/sun/applet/PluginAppletViewer.java: Same 1045 1046 2012-05-23 Adam Domurad <adomurad@redhat.com> 1047 Removed instances of snprintf where buffer size was not known. Added 1048 buffer size constant for allocating buffers for numeric conversions. 1049 * plugin/icedteanp/IcedTeaNPPlugin.cc: Removed usage of snprintf for 1050 simple blanking of strings. Buffer size was misguided previously. 1051 Used NUM_STR_BUFFER_SIZE constant to replace magic numbers/ 1052 * plugin/icedteanp/IcedTeaPluginUtils.cc: Made 1053 NPVariantToString(NPVariant variant, std::string* result) use two 1054 space indentation. Used NUM_STR_BUFFER_SIZE constant to replace magic 1055 numbers. 1056 * plugin/icedteanp/IcedTeaPluginUtils.h: Added constant, 1057 NUM_STR_BUFFER_SIZE. 1058 1059 2012-05-24 Danesh Dadachanji <ddadacha@redhat.com> 1060 1061 Fix use of src dir instead of build dir when whitelisting. 1062 * Makefile.am (REPRODUCERS_CLASS_WHITELIST): Use abs_top_srcdir 1063 instead of abs_top_builddir. 1064 1065 2012-05-23 Martin Olsson <martin@minimum.se> 1066 1067 * plugin/icedteanp/IcedTeaPluginUtils.cc: 1068 Tiny fixup for changeset 383; don't do free(stack_variable). 1069 1070 2012-05-20 Jiri Vanek <jvanek@redhat.com> 1071 1072 Reproducers engine enhanced for jars in subdirectories by "." naming convention 1073 * Makefile.am: (stamps/change-dots-to-paths.stamp) new target to copy jars 1074 with dots (.jar omitted) to the java-like package/directory structure in 1075 jnlp_test_server 1076 (EXPORTED_TEST_CERT) now depends on stamps/change-dots-to-paths.stamp 1077 (clean-netx-dist-tests) removes stamps/change-dots-to-paths.stamp too. 1078 1079 2012-05-24 Jiri Vanek <jvanek@redhat.com> 1080 1081 Introduced whitelist for reproducers 1082 * netx-dist-tests-whitelist: new file, contains regular expressions 1083 (separated by space) for expr to select testcases which only will be 1084 run. By default set to all by expression .* 1085 * Makefile.am: (REPRODUCERS_CLASS_NAMES) When class with testcases is 1086 going to be included in list, it is at first check for match in whitelist. 1087 If there is no match, will not be included. 1088 1089 2012-05-24 Martin Olsson <martin@minimum.se> 1090 1091 * plugin/icedteanp/IcedTeaPluginUtils.cc: 1092 Fix two typos. 1093 1094 2012-05-23 Deepak Bhole <dbhole@redhat.com> 1095 1096 * AUTHORS: Added Martin Olsson to list. 1097 1098 2012-05-23 Martin Olsson <martin@minimum.se> 1099 1100 * plugin/icedteanp/IcedTeaNPPlugin.cc: 1101 Use g_mutex_free instead of g_free to free appletviewer_mutex (fixes 1102 crash). 1103 1104 2012-05-23 Deepak Bhole <dbhole@redhat.com> 1105 1106 * ChangeLog: Converted spaces to tabs in an older entry 1107 1108 2012-05-23 Jiri Vanek <jvanek@redhat.com> 1109 1110 * netx/net/sourceforge/jnlp/resources/Messages.properties: fixed error 1111 in PBadNonrelativeUrl 1112 1113 2012-05-23 Jiri Vanek <jvanek@redhat.com> 1114 1115 Added more debugging outputs 1116 * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: 1117 (getCodeSourceSecurity): added output message when no SecurityDesc is found 1118 for some url/resource 1119 * netx/net/sourceforge/jnlp/resources/Messages.properties: added LNoSecInstance 1120 and LCertFoundIn values 1121 * netx/net/sourceforge/jnlp/security/KeyStores.java: (getPathToKeystore): 1122 new method, able to search for file used for creating of KeyStore if possible 1123 * netx/net/sourceforge/jnlp/security/CertificateUtils.java: (inKeyStores) 1124 using getPathToKeystore for debug output 1125 1126 2012-05-23 Jiri Vanek <jvanek@redhat.com> 1127 1128 * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: (getPermissions): 1129 Any exception from this method is consumed somewhere. I have cough exception, 1130 reprint it in debug mode and re-throw (to be lost). Main condition in this 1131 method had several possible NullPointer exceptions. Separated and thrown before 1132 this condition. 1133 1134 2012-05-23 Jiri Vanek <jvanek@redhat.com> 1135 1136 Enhanced about dialog 1137 * extra/net/sourceforge/javaws/about/Main.java: Main frame and Main tab 1138 renamed from "About NetX" to "About IcedTea-Web and NetX". 1139 * extra/net/sourceforge/javaws/about/resources/about.html: mentioned 1140 IcedTea-Web. 1141 * extra/net/sourceforge/javaws/about/resources/notes.html: List of authors 1142 synchronized with AUTHORS, mentioned classpath's IcedTea-Web as homepage 1143 of IcedTea-web. 1144 1145 2012-05-23 Jiri Vanek <jvanek@redhat.com> 1146 1147 Fixed error in reproducers source preparation 1148 * Makefile.am: (stamps/netx-dist-tests-prepare-reproducers.stamp) removed 1149 inappropriately used quotes when copying notSrcFiles. Source files now 1150 copied only if src dir exists in reproducer 1151 1152 2012-05-22 Adam Domurad <adomurad@redhat.com> 1153 1154 Changed allocation of small, fixed-size buffers to stack-based 1155 allocations. Changed occurences of sprintf to the safer function 1156 snprintf, added buffer information. While unlikely to change 1157 functionality, snprintf adds an extra check to prevent buffer 1158 overflows. 1159 * plugin/icedteanp/IcedTeaNPPlugin.cc: Allocation of small buffers 1160 using malloc changed to stack allocation & changed sprintf calls to 1161 buffer-size aware snprintf calls. 1162 * plugin/icedteanp/IcedTeaPluginUtils.cc: Same as above. 1163 1164 2012-05-22 Jiri Vanek <jvanek@redhat.com> 1165 1166 * tests/jnlp_tests/signed/ReadPropertiesSigned/testcases/ReadPropertiesSignedTest.java: 1167 * tests/jnlp_tests/simple/AddShutdownHook/testcases/AddShutdownHookTest.java: 1168 * tests/jnlp_tests/simple/AllStackTraces/testcases/AllStackTracesTest.java: 1169 * tests/jnlp_tests/simple/CreateClassLoader/testcases/CreateClassLoaderTest.java: 1170 * tests/jnlp_tests/simple/ReadEnvironment/testcases/ReadEnvironmentTest.java: 1171 * tests/jnlp_tests/simple/ReadProperties/testcases/ReadPropertiesTest.java: 1172 * tests/jnlp_tests/simple/RedirectStreams/testcases/RedirectStreamsTest.java: 1173 * tests/jnlp_tests/simple/ReplaceSecurityManager/testcases/ReplaceSecurityManagerTest.java: 1174 * tests/jnlp_tests/simple/SetContextClassLoader/testcases/SetContextClassLoaderTest.java: 1175 All exact matches upon AccessControlException replaced by regular expression matching both jdk7 and jdk6 syntax 1176 1177 2012-05-21 Jiri Vanek <jvanek@redhat.com> 1178 1179 * Makefile.am: mzilla-filesystem linking targets now counts also with 1180 midori and epiphany. Extracted duplicated entries to variables 1181 * configure.ac: added check for midori and epiphany 1182 1183 2012-05-21 Jiri Vanek <jvanek@redhat.com> 1184 1185 Added detection of installed browsers and added targets to create 1186 symbolic links from install dir to browsers' plugin directories. 1187 Primarily for testing purposes 1188 * Makefile.am: (stamps/user-links.stamp) with alias (links) - new target for 1189 creating symlinks for all users. One must be root to execute this target. 1190 (stamps/global-links.stamp) with alias (user-links) - new target 1191 for creating symlinks for logged user only. Because opera is missing this feature, 1192 quite useless for testing or dependence targets, but good for live user. 1193 (restore-global-links): target for restoring original global links. 1194 One must be root again 1195 (restore-user-links): target for restoring user's links 1196 * configure.ac: added basic check whether and which browsers are 1197 installed 1198 1199 2012-05-18 Jiri Vanek <jvanek@redhat.com> 1200 1201 Fixed behavior when encoded/characters needed encoding included in url 1202 * NEWS: mentioned PR811 1203 * netx/net/sourceforge/jnlp/cache/CacheUtil.java: (urlEquals) Enhanced 1204 to be able compare encoded/decoded urls correctly. 1205 (notNullUrlEquals) new method to separate comparing of individual parts of 1206 url from null checks 1207 * netx/net/sourceforge/jnlp/cache/ResourceTracker.java: (addResource) 1208 is now encoding url if needed. (normalizeUrl) new method to encode path in 1209 url of all except file protocol. (normalizeChunk) New method for encoding 1210 of atomic piece. 1211 1212 2012-05-18 Jiri Vanek <jvanek@redhat.com> 1213 1214 More tests for Spaces and characters in urls 1215 * netx/net/sourceforge/jnlp/cache/CacheLRUWrapper.java: and 1216 * netx/net/sourceforge/jnlp/cache/CacheUtil.java: for unit-tests 1217 purposes (cacheDir) make to point to tmp dir when no 1218 DeploymentConfiguration exists. 1219 * tests/jnlp_tests/signed/Spaces can be everywhere signed/: 1220 couple of new test doing the same as simple "Spaces can be everywhere" 1221 but are signed 1222 * tests/jnlp_tests/simple/Spaces can be everywhere/: added new test-cases 1223 and html/jnlp test files to try more combinations of encodable characters 1224 x launches 1225 * tests/netx/unit/net/sourceforge/jnlp/cache/ResourceTrackerTest.java: 1226 unittest for url encoder behavior 1227 * tests/netx/unit/net/sourceforge/jnlp/cache/CacheUtilTest.java: 1228 unittest for urlEquals function 1229 1230 2012-05-17 Adam Domurad <adomurad@redhat.com> 1231 1232 Fixed uses of == to compare String objects to .equals where 1233 appropriate. 1234 Noted a non-obvious use of == to compare a 'magic' String reference. 1235 * netx/net/sourceforge/jnlp/JNLPFile.java: 1236 Changed calls that compare String contents from == to .equals 1237 * plugin/icedteanp/java/sun/applet/GetMemberPluginCallRequest.java: 1238 Same 1239 * plugin/icedteanp/java/sun/applet/PluginCallRequestFactory.java: 1240 Same 1241 * netx/net/sourceforge/jnlp/Version.java: Added comment explaining why 1242 == was used vs .equals 1243 1244 2012-05-14 Jiri Vanek <jvanek@redhat.com> 1245 1246 * tests/netx/unit/net/sourceforge/jnlp/runtime/CodeBaseClassLoaderTest.java: 1247 * tests/netx/unit/net/sourceforge/jnlp/cache/CacheLRUWrapperTest.java: 1248 System.out replaced with System.err 1249 1250 2012-05-14 Jiri Vanek <jvanek@redhat.com> 1251 1252 * tests/junit-runner/JunitLikeXmlOutputListener.java: fixed indentation 1253 and spacing 1254 1255 2012-05-11 Thomas Meyer <thomas@m3y3r.de> 1256 1257 * tests/netx/unit/net/sourceforge/jnlp/util/PropertiesFileTest.java: Add 1258 some unit tests for the PropertiesFile class 1259 * tests/netx/unit/net/sourceforge/jnlp/cache/CacheLRUWrapperTest.java: Add 1260 some unit tests for the CacheLRUWrapper class 1261 * netx/net/sourceforge/jnlp/util/PropertiesFile.java: Use last 1262 modification timestamp of the underlying file to lazy load properties. 1263 (load): Only reload file, if the file modification timestamp has changed. 1264 (store): Actually fsync() the file to disk. 1265 * netx/net/sourceforge/jnlp/services/XPersistenceService.java (create): 1266 Fix coding style 1267 * netx/net/sourceforge/jnlp/cache/CacheLRUWrapper.java (load): Only check 1268 data when the recently_used file was reloaded. 1269 1270 2012-05-02 Jiri Vanek <jvanek@redhat.com> 1271 1272 Introduced new annotations Bug (to connect test/reproducer with documentation) 1273 and NeedsDisplay which tells the launching engine that this particular 1274 test needs Display. Based on ptisnovs's ideas and jtreg experiences 1275 *Makefile.am: (JUNIT_RUNNER_JAR), (stamps/run-netx-unit-tests.stamp) and 1276 (stamps/run-unit-test-code-coverage.stamp) are now dependent on (stamps/netx-dist-tests-compile) 1277 and classpaths inside them have been enriched for JNLP_TESTS_ENGINE_DIR 1278 which contains definitions of those annotations 1279 *tests/jnlp_tests/simple/CheckServices/testcases/CheckServicesTests.java: and 1280 *tests/jnlp_tests/simple/ManifestedJar1/testcases/ManifestedJar1Test.java: and 1281 *tests/jnlp_tests/simple/Spaces can be everywhere/testcase/SpacesCanBeEverywhereTests.java: 1282 filled Bug annotations 1283 *tests/junit-runner/JunitLikeXmlOutputListener.java: made to understand 1284 Bug annotation 1285 *tests/netx/jnlp_testsengine/net/sourceforge/jnlp/annotations/NeedsDisplay.java: 1286 and 1287 *tests/netx/jnlp_testsengine/net/sourceforge/jnlp/annotations/Bug.java: 1288 annotations definitions 1289 *tests/report-styles/jreport.xsl: made nice links from bug annotation 1290 prepared by JunitLikeXmlOutputListener 1291 1292 2012-04-24 Omair Majid <omajid@redhat.com> 1293 1294 * Makefile.am 1295 (RUNTIME): Add resources.jar. 1296 (stamps/run-unit-test-code-coverage.stamp) [WITH_EMMA]: Add resouces.jar 1297 to classpath. 1298 (stamps/run-reproducers-test-code-coverage.stamp) [WITH_EMMA]: Include 1299 resources.jar in classpath. 1300 (stamps/bootstrap-directory.stamp): Create a link to resources.jar in 1301 BOOT_DIR. 1302 1303 2012-04-19 Omair Majid <omajid@redhat.com> 1304 1305 PR918: java applet windows uses a low resulution black/white icon 1306 * NEWS: Update with fix. 1307 * netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java: Remove windowIcon. 1308 (initialize): Do not call loadWindowIcon. 1309 (getWindowIcon): Remove. 1310 (setWindowIcon): Remove. 1311 (loadWindowIcon): Remove. 1312 * netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java 1313 (checkTopLevelWindow): Do not set the icon for all top level windows. Use 1314 the default java icon instead. 1315 * netx/net/sourceforge/jnlp/util/ImageResources.java: New file. Provides 1316 access to icons. 1317 * netx/net/sourceforge/jnlp/JNLPSplashScreen.java (JNLPSplashScreen), 1318 * netx/net/sourceforge/jnlp/cache/DefaultDownloadIndicator.java 1319 (getListener), 1320 * netx/net/sourceforge/jnlp/controlpanel/AdvancedProxySettingsDialog.java 1321 (AdvancedProxySettingsDialog), 1322 * netx/net/sourceforge/jnlp/controlpanel/CacheViewer.java (CacheViewer), 1323 * netx/net/sourceforge/jnlp/controlpanel/ControlPanel.java (ControlPanel), 1324 * netx/net/sourceforge/jnlp/security/SecurityDialog.java (SecurityDialog), 1325 * netx/net/sourceforge/jnlp/security/viewer/CertificateViewer.java 1326 (CertificateViewer), 1327 * netx/net/sourceforge/jnlp/util/BasicExceptionDialog.java (show), 1328 * plugin/icedteanp/java/sun/applet/JavaConsole.java (initialize): 1329 Explicitly load icons. 1330 * tests/netx/unit/net/sourceforge/jnlp/util/ImageResourcesTest.java: Test 1331 for ImageResources class. 1332 1333 2012-04-18 Jiri Vanek <jvanek@redhat.com> 1334 1335 Allowed signed applets in automatic reproducers tests 1336 * tests/jnlp_tests/signed/AppletTestSigned/resources/AppletTestSigned.html: 1337 html file for launching signed applet. Its style is different from the one for 1338 calling unsigned applets - red. 1339 * tests/jnlp_tests/signed/AppletTestSigned/resources/AppletTestSigned.jnlp: 1340 jnlp file for launched signed applet 1341 * tests/jnlp_tests/signed/AppletTestSigned/srcs/AppletTestSigned.java 1342 body of signed applet 1343 * tests/jnlp_tests/signed/AppletTestSigned/testcases/AppletTestSignedTests.java: 1344 (AppletTestSignedTest): testing method to launch signed applet in javaws 1345 (AppletTestSignedFirefoxTest): testing method to launch signed applet in 1346 browser 1347 * Makefile.am: PUBLIC_KEYSTORE_PASS, EXPORTED_TEST_CERT, TEST_CERT_ALIAS, 1348 PUBLIC_KEYSTORE PUBLIC_KEYSTORE_PASS: new global variables holding 1349 keystores' credentials 1350 (clean-local): clean-bootstrap-directory moved to be last one, as keytool 1351 is necessary for removing certificate 1352 (EXPORTED_TEST_CERT): new target exporting certificate from testing keystore 1353 (stamps/netx-dist-tests-import-cert-to-public): new target to import 1354 certificate to PUBLIC_KEYSTORE 1355 (netx-dist-tests-remove-cert-from-public): new target removing testing 1356 certificate from PUBLIC_KEYSTORE 1357 (clean-netx-dist-tests): now depends on netx-dist-tests-remove-cert-from-public 1358 and is removing EXPORTED_TEST_CERT file 1359 1360 2012-04-17 Jiri Vanek <jvanek@redhat.com> 1361 1362 Rewritten DeadLockTestTest to stop failing in more then 1/2 of cases 1363 All assassinated processes were hanging as zombies, killed forcibly by 1364 kill -9 now. 1365 * /tests/jnlp_tests/simple/deadlocktest/testcases/DeadLockTestTest.java: 1366 (countJavaInstances) now return pids of found javas. 1367 (killDiff) new method killing zombie javas forcibly. 1368 1369 2012-04-11 Jiri Vanek <jvanek@redhat.com> 1370 1371 * Makefile.am: EMMA_JAVA_ARGS, new variable for adjusting emma runs. 1372 Currently set to -Xmx2G. 1373 (stamps/run-unit-test-code-coverage.stamp), 1374 (stamps/run-reproducers-test-code-coverage.stamp), 1375 (run-test-code-coverage): Use EMMA_JAVA_ARGS in theirs emma runs. 1376 1377 2012-06-04 Jiri Vanek <jvanek@redhat.com> 1378 Thomas Meyer <thomas@m3y3r.de> 1379 1380 * makefile.am: (stamps/run-netx-dist-tests.stamp) and 1381 (run-reproducers-test-code-coverage.stamp) 1382 now using $(javaws) variable instead of plaintext javaws 1383 * netx/net/sourceforge/jnlp/cache/CacheLRUWrapper.java: (checkData) new 1384 method checking for sanity of cache entries 1385 (load) now checks for data sanity after loading, and stores without 1386 corrupted items if necessary 1387 (Comparator.compare) for sorting lru items. Now redundant checking for 1388 sanity removed 1389 * netx/net/sourceforge/jnlp/cache/CacheUtil.java: (getCacheFile) don't 1390 call lruHandler.store twice for new cache entries 1391 (getCacheFileIfExist) removed iteration and cleaning mechanism 1392 * netx/net/sourceforge/jnlp/resources/Messages.properties: modified 1393 cache messages 1394 * tests/jnlp_tests/signed/CacheReproducer/testcases/CacheReproducerTest.java 1395 Added test for checking corrupted path in entry and all tests adapted for 1396 exception thrown only in debug mode 1397 1398 2012-04-04 Danesh Dadachanji <ddadacha@redhat.com> 1399 1400 Change the name of JarSigner to JarCertVerifier to make it more 1401 relevant to the purpose of the file. 1402 * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java 1403 * netx/net/sourceforge/jnlp/tools/KeyStoreUtil.java: 1404 Replace all instances, paramaters and references of JarSigner 1405 by JarCertVerifier. 1406 * netx/net/sourceforge/jnlp/security/CertWarningPane.java 1407 * netx/net/sourceforge/jnlp/security/CertsInfoPane.java 1408 * netx/net/sourceforge/jnlp/security/MoreInfoPane.java 1409 * netx/net/sourceforge/jnlp/security/SecurityDialogs.java: 1410 Replaced all paramaters, references and variable names of JarSigner 1411 to CertVerifier to match the variable object type. 1412 * netx/net/sourceforge/jnlp/security/SecurityDialog.java (getJarSigner): 1413 Renamed to getCertVerifier as it returns the certVerfier instance. 1414 * netx/net/sourceforge/jnlp/tools/JarSigner.java: 1415 Renamed to JarCertVerifier. 1416 * netx/net/sourceforge/jnlp/tools/JarCertVerifier.java: 1417 The rename of JarSigner. 1418 1419 2012-04-05 Jiri Vanek <jvanek@redhat.com> 1420 1421 Fixing issue when process was not launched at all and when was killed but 1422 left behind living/hanging, fixing mime-types 1423 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java: 1424 (getContentOfStream) this method overloaded with possibility to specify 1425 encoding (I needed to set it to ASCII in one test) 1426 (deadlyException) field introduced in ThreadedProcess to record exception 1427 caused by impassibility of launching the process. And so process have 1428 been null without any sign why. 1429 (TinyHttpdImpl) now correctly returns known mime types 1430 (ProcessAssasin) can now skip or smoothly (and finally correctly) 1431 destroy its process, and all his logging messages were done null-proof 1432 (as deadlyException now allows) 1433 Asynchronous (ContentReader) have been silenced when complaining about 1434 closed streams by Assassin. 1435 1436 2012-04-03 Danesh Dadachanji <ddadacha@redhat.com> 1437 1438 Change all vendors in JNLP test suite to IcedTea and homepage href's to 1439 a link to IcedTea-Web's wiki page. 1440 * tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedJAVAXJNLP.jnlp 1441 * tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedNETSF.jnlp 1442 * tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedSELF.jnlp 1443 * tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedSUNSEC.jnlp 1444 * tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer1.jnlp 1445 * tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer1_1.jnlp 1446 * tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer2.jnlp 1447 * tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer2_1.jnlp 1448 * tests/jnlp_tests/signed/MissingJar/resources/MissingJar.jnlp 1449 * tests/jnlp_tests/signed/MissingJar/resources/MissingJar2.jnlp 1450 * tests/jnlp_tests/signed/MissingJar/resources/MissingJar3.jnlp 1451 * tests/jnlp_tests/signed/MissingJar/resources/MissingJar4.jnlp 1452 * tests/jnlp_tests/signed/ReadPropertiesBySignedHack/resources/ReadPropertiesBySignedHack.jnlp 1453 * tests/jnlp_tests/signed/ReadPropertiesSigned/resources/ReadPropertiesSigned1.jnlp 1454 * tests/jnlp_tests/signed/ReadPropertiesSigned/resources/ReadPropertiesSigned2.jnlp 1455 * tests/jnlp_tests/signed/SimpletestSigned1/resources/SimpletestSigned1.jnlp 1456 * tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageJAVAXJNLP.jnlp 1457 * tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageNETSF.jnlp 1458 * tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageSELF.jnlp 1459 * tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageSUNSEC.jnlp 1460 * tests/jnlp_tests/simple/AddShutdownHook/resources/AddShutdownHook.jnlp 1461 * tests/jnlp_tests/simple/AllStackTraces/resources/AllStackTraces.jnlp 1462 * tests/jnlp_tests/simple/AppletTest/resources/AppletTest.jnlp 1463 * tests/jnlp_tests/simple/CheckServices/resources/CheckServices.jnlp 1464 * tests/jnlp_tests/simple/CreateClassLoader/resources/CreateClassLoader.jnlp 1465 * tests/jnlp_tests/simple/InformationTitleVendorParser/resources/TitleParser.jnlp 1466 * tests/jnlp_tests/simple/InformationTitleVendorParser/resources/TitleVendorParser.jnlp 1467 * tests/jnlp_tests/simple/InformationTitleVendorParser/resources/VendorParser.jnlp 1468 * tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1main2mainAppDesc.jnlp 1469 * tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1main2mainNoAppDesc.jnlp 1470 * tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1main2nothingNoAppDesc.jnlp 1471 * tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1mainHaveAppDesc.jnlp 1472 * tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1mainNoAppDesc.jnlp 1473 * tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1noAppDesc.jnlp 1474 * tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1noAppDescAtAll.jnlp 1475 * tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1nothing2nothingAppDesc.jnlp 1476 * tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1nothing2nothingNoAppDesc.jnlp 1477 * tests/jnlp_tests/simple/ReadEnvironment/resources/ReadEnvironment.jnlp 1478 * tests/jnlp_tests/simple/ReadProperties/resources/ReadProperties1.jnlp 1479 * tests/jnlp_tests/simple/ReadProperties/resources/ReadProperties2.jnlp 1480 * tests/jnlp_tests/simple/RedirectStreams/resources/RedirectStreams.jnlp 1481 * tests/jnlp_tests/simple/ReplaceSecurityManager/resources/ReplaceSecurityManager.jnlp 1482 * tests/jnlp_tests/simple/SetContextClassLoader/resources/SetContextClassLoader.jnlp 1483 * tests/jnlp_tests/simple/Spaces can be everywhere/resources/Spaces can be everywhere1.jnlp 1484 * tests/jnlp_tests/simple/Spaces can be everywhere/resources/Spaces can be everywhere2.jnlp 1485 * tests/jnlp_tests/simple/Spaces can be everywhere/resources/SpacesCanBeEverywhere1.jnlp 1486 * tests/jnlp_tests/simple/deadlocktest/resources/deadlocktest.jnlp 1487 * tests/jnlp_tests/simple/deadlocktest/resources/deadlocktest_1.jnlp 1488 * tests/jnlp_tests/simple/simpletest1/resources/simpletest1.jnlp 1489 * tests/jnlp_tests/simple/simpletest1/resources/simpletestCustomSplash.jnlp 1490 * tests/jnlp_tests/simple/simpletest1/resources/simpletestMegaSlow.jnlp 1491 * tests/jnlp_tests/simple/simpletest1/resources/simpletestSlow.jnlp 1492 * tests/jnlp_tests/simple/simpletest1/resources/simpletestSlowBrokenCustomSplash.jnlp 1493 * tests/jnlp_tests/simple/simpletest1/resources/simpletestSlowSlowCustomSplash.jnlp 1494 * tests/jnlp_tests/simple/simpletest2/resources/simpletest2.jnlp: 1495 Replaced the specified vendor with IcedTea and homepage with a link to 1496 IcedTea-Web's wiki. 1497 1498 2012-04-03 Omair Majid <omajid@redhat.com> 1499 1500 * netx/net/sourceforge/jnlp/runtime/pac-funcs.js: Replace incorrect use of 1501 getYear() with getFullYear(). 1502 (inYearMonthDateRange): Add missing conditional case. 1503 * tests/netx/pac/pac-funcs-test.js 1504 (runTest): New function. 1505 (runTests): Call runTest. 1506 (incDate): Deal with month/year wrapping around. 1507 (decDate): Removed. 1508 (testDateRange, testDateRange2, testDateRange3): Handle wrapping of month 1509 and days. 1510 1511 2012-04-03 Jiri Vanek <jvanek@redhat.com> 1512 1513 Tests virtual server thread marked as daemon by default 1514 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java: 1515 All (ServerLauncher) instances returned by methods were marked as daemon 1516 by default. Possibility to change and api were kept. 1517 1518 2012-03-30 Danesh Dadachanji <ddadacha@redhat.com> 1519 1520 Certificate start dates are not being checked, they are still verified 1521 even if the date has yet not been reached. 1522 * netx/net/sourceforge/jnlp/tools/JarSigner.java (verifyJar): If the start 1523 date is in the future, set notYetValidCert to true. 1524 1525 2012-03-21 Omair Majid <omajid@redhat.com> 1526 1527 * tests/netx/unit/net/sourceforge/jnlp/JNLPMatcherTest.java 1528 (testIsMatchDoesNotHangOnLargeData): New method. 1529 1530 2012-03-21 Lars Herschke <lhersch@dssgmbh.de> 1531 1532 PR898: signed applications with big jnlp-file doesn't start 1533 * netx/net/sourceforge/jnlp/JNLPMatcher.java (JNLPMatcher): Handle large 1534 files correctly. 1535 1536 2012-03-19 Danesh Dadachanji <ddadacha@redhat.com> 1537 1538 Fix failing unit test missing title/vendor tags in the JNLP stream. 1539 * tests/netx/unit/net/sourceforge/jnlp/ParserCornerCases.java 1540 (testNestedComments): Added title and vendor tags to malformedJnlp. 1541 1542 2012-03-19 Jiri Vanek <jvanek@redhat.com> 1543 * tests/jnlp_tests/signed/CacheReproducer/testcases/CacheReproducerTest.java: 1544 as javaws have now integrated splash, I have changed this test to lunch 1545 javaws -Xclearcache with -headless to skip this logo (although it is 1546 not fatal fr testrun itself) 1547 * tests/jnlp_tests/simple/AppletTest/resources/appletAutoTests.html: 1548 this html file is lunched during tests run in browser and stdout of 1549 lunched applet is examined. Is lunched with slow resources to test 1550 spalshscreen 1551 * tests/jnlp_tests/simple/AppletTest/resources/appletViewTest.html: this 1552 test html file is dedicated to manual lunch and let user to look how the 1553 applet (with slow loading) is loaded and how looks splashscreen in 1554 small mode and in large mode 1555 * tests/jnlp_tests/simple/AppletTest/testcases/AppletTestTests.java: 1556 test is enriched for lunching the html file with applet in browser and 1557 is examining output of this file. Browser must be always terminated as 1558 there is no way how to close from inside 1559 * tests/jnlp_tests/simple/simpletest1/resources/netxPlugin.png: 1560 image to let user observe that user-defined splashscreen is still 1561 working even when internal splashscreen is enabled 1562 * tests/jnlp_tests/simple/simpletest1/resources/simpletestCustomSplash.jnlp: 1563 this and all jnlp files below are just for manual lunching and for 1564 watching various lunches of splash screen - slow loading of resources 1565 and with custom splash 1566 * tests/jnlp_tests/simple/simpletest1/resources/simpletestMegaSlow.jnlp: 1567 slow loading of resource and (XslowX)jnlp also 1568 * tests/jnlp_tests/simple/simpletest1/resources/simpletestSlow.jnlp: 1569 slow loading of resource 1570 * tests/jnlp_tests/simple/simpletest1/resources/simpletestSlowBrokenCustomSplash.jnlp: 1571 slow loading of resource with broken user's splash (our internal will be used) 1572 * tests/jnlp_tests/simple/simpletest1/resources/simpletestSlowSlowCustomSplash.jnlp: 1573 slow loading of custom splash screen and resource 1574 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java: 1575 Main server launcher was modified to support lunching of browser, 1576 stdout listteners and for slowing download of resources to provide time 1577 for watching splash screen (main) was rewritten to provide free port OR 1578 run server in-D specified directory on custom or default port - very 1579 useful for debuging reproducers 1580 (getIndependentInstance) can now run also on specified port and (or) directory 1581 (USED_BROWSER_COMMAND) new constant handling value of -D property to 1582 set browser = "used.browser.command"; 1583 (getBrowserLocation) new method to provide specified 1584 (by used.browser.command -D property) or default browser location (firefox) 1585 (ensureServer) test is testing weather XslowXmodifier is working 1586 (executeBrowser) set of overloaded functions to lunch browser 1587 (TinyHttpdImpl) was enriched for XslowX modifier. When resource starts 1588 with this, is returned slowly - splited to 10 parts with 1s delay 1589 betwen sending each of them. 1590 Although it is throwing BrokenPipe exception, is working fine. 1591 (splitArray) new function to split array of byte to n arrays of bytes, 1592 which when concated do the same array 1593 (splitArrayTestN) set of tests for splitArray 1594 (ContentReader) now can also have lsteners for catching outputs n runtime. 1595 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ContentReaderListener.java: 1596 Listener for catching chars and lines form processes outputs 1597 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ResourcesTest.java: 1598 added (testListeners) to test listeners behaviour 1599 1600 2012-03-16 Danesh Dadachanji <ddadacha@redhat.com> 1601 1602 Applications using JNLP files without a title or vendor section 1603 still run, despite them being required elements. 1604 * netx/net/sourceforge/jnlp/Parser.java: 1605 (getInformationDesc): If title or vendor are not found in info, 1606 a new ParseException is thrown. 1607 * netx/net/sourceforge/jnlp/resources/Messages.properties: 1608 Added PNoTitleElement and PNoVendorElement 1609 * tests/jnlp_tests/simple/InformationTitleVendorParser/resources/InformationParser.jnlp, 1610 * tests/jnlp_tests/simple/InformationTitleVendorParser/resources/TitleParser.jnlp, 1611 * tests/jnlp_tests/simple/InformationTitleVendorParser/resources/TitleVendorParser.jnlp, 1612 * tests/jnlp_tests/simple/InformationTitleVendorParser/resources/VendorParser.jnlp, 1613 * tests/jnlp_tests/simple/InformationTitleVendorParser/testcases/TitleVendorParserTest.java: 1614 New test that runs JNLPs in a combination of missing information, title 1615 and vendor tags, checking for the appropriate exceptions. 1616 1617 2012-03-14 Deepak Bhole <dbhole@redhat.com> 1618 Omair Majid <omajid@redhat.com> 1619 1620 PR895: IcedTea-Web searches for missing classes on each loadClass or 1621 findClass 1622 * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java 1623 (CodeBaseClassLoader): Added new map to track resources that are not 1624 found. 1625 (findClass): If resource was not found before, return immediately. If 1626 resource was not found for the first time, record it in the new map. 1627 (findResouces): Same. 1628 (findResource): Same. 1629 * tests/netx/unit/net/sourceforge/jnlp/runtime/CodeBaseClassLoaderTest.java: 1630 Test case for PR895 from Omair Majid. 1631 1632 2012-03-14 Omair Majid <omajid@redhat.com> 1633 1634 Print exceptions to terminal when running in gui mode too. 1635 * netx/net/sourceforge/jnlp/AbstractLaunchHandler.java: New file. 1636 * netx/net/sourceforge/jnlp/DefaultLaunchHandler.java: Extend 1637 AbstractLaunchHandler. 1638 (DefaultLaunchHandler): New method. 1639 (printMessage): Moved to parent class. 1640 * netx/net/sourceforge/jnlp/GuiLaunchHandler.java: Extend 1641 AbstractLaunchHandler. 1642 (GuiLauchHandler): New method. 1643 (launchError): Print the error too. 1644 (launchWarning,validationError): Call parent's printMessage. 1645 * netx/net/sourceforge/jnlp/LaunchException.java: Use standard java 1646 exception chaining. This removes compatibility with pre-java 1.3 class 1647 libraries. 1648 (LaunchException(JNLPFile,Exception,String,String,String,String)): Pass 1649 cause to parent so exceptions are chanined properly. 1650 (LaunchException(String,Throwable),LaunchException(Throwable)): Call 1651 parent's constructor. 1652 (printStackTrace(PrintStream),printStackTrace(PrintWriter),getCause): 1653 Removed. Use parent's implementation instead. 1654 (getCauses): Removed. 1655 * netx/net/sourceforge/jnlp/LaunchHandler.java 1656 (validationError): Rename argument to clarify meaing. 1657 * netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java 1658 (initialize): Redirect output of all handlers to System.err. 1659 * plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java 1660 (PluginAppletSecurityContext): Likewise. 1661 * tests/netx/unit/net/sourceforge/jnlp/DefaultLaunchHandlerTest.java, 1662 * tests/netx/unit/net/sourceforge/jnlp/LaunchExceptionTest.java: New 1663 file. Contains tests. 1664 1665 2012-03-12 Danesh Dadachanji <ddadacha@redhat.com> 1666 1667 Adding test for regression of JNLP API accessibility in constructor 1668 methods of applets. 1669 * Makefile.am: Added classes.jar to classpath when compiling jnlp_tests. 1670 * tests/jnlp_tests/simple/CheckServices/resources/CheckServices.jnlp: 1671 * tests/jnlp_tests/simple/CheckServices/srcs/CheckServices.java: 1672 * tests/jnlp_tests/simple/CheckServices/testcases/CheckServicesTests.java: 1673 New test file added. Tests ServiceManager is setup correctly when called 1674 from applet constructors. 1675 1676 2012-03-12 Danesh Dadachanji <ddadacha@redhat.com> 1677 1678 Update tests that are missing title/vendor tag in their JNLPs. 1679 * tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer1.jnlp, 1680 * tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer1_1.jnlp, 1681 * tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer2.jnlp, 1682 * tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer2_1.jnlp, 1683 * tests/jnlp_tests/signed/MissingJar/resources/MissingJar.jnlp, 1684 * tests/jnlp_tests/signed/MissingJar/resources/MissingJar2.jnlp, 1685 * tests/jnlp_tests/signed/MissingJar/resources/MissingJar3.jnlp, 1686 * tests/jnlp_tests/signed/MissingJar/resources/MissingJar4.jnlp, 1687 * tests/jnlp_tests/signed/ReadPropertiesBySignedHack/resources/ReadPropertiesBySignedHack.jnlp, 1688 * tests/jnlp_tests/signed/ReadPropertiesSigned/resources/ReadPropertiesSigned1.jnlp, 1689 * tests/jnlp_tests/signed/ReadPropertiesSigned/resources/ReadPropertiesSigned2.jnlp, 1690 * tests/jnlp_tests/simple/AddShutdownHook/resources/AddShutdownHook.jnlp, 1691 * tests/jnlp_tests/simple/AllStackTraces/resources/AllStackTraces.jnlp 1692 * tests/jnlp_tests/simple/CreateClassLoader/resources/CreateClassLoader.jnlp, 1693 * tests/jnlp_tests/simple/ReadEnvironment/resources/ReadEnvironment.jnlp, 1694 * tests/jnlp_tests/simple/ReadProperties/resources/ReadProperties1.jnlp, 1695 * tests/jnlp_tests/simple/ReadProperties/resources/ReadProperties2.jnlp, 1696 * tests/jnlp_tests/simple/RedirectStreams/resources/RedirectStreams.jnlp, 1697 * tests/jnlp_tests/simple/ReplaceSecurityManager/resources/ReplaceSecurityManager.jnlp, 1698 * tests/jnlp_tests/simple/SetContextClassLoader/resources/SetContextClassLoader.jnlp, 1699 * tests/netx/unit/net/sourceforge/jnlp/templates/template8.jnlp: 1700 Added missing title/vendor tags that make them fail with this changeset. 1701 1702 2012-03-05 Jiri Vanek <jvanek@redhat.com> 1703 1704 Added test for main-class in manifest for jnlp 1705 * Makefile.am: (prepare-reproducers.stamp) fixed manifest handling. Till 1706 now was manifest copied as any other non java file, and so was rewritten 1707 by jar tool 1708 * tests/jnlp_tests/simple/ManifestedJar2/srcs: secondary jar file which 1709 should have manifest and so should help ManifestedJar1 with testing 1710 * tests/jnlp_tests/simple/ManifestedJar2/resources/META-INF/MANIFEST.MF: 1711 manifest for ManifestedJar2.jar 1712 * tests/jnlp_tests/simple/ManifestedJar1/srcs: main testing jar 1713 * tests/jnlp_tests/simple/ManifestedJar2/resources/META-INF/MANIFEST.MF: 1714 manifest for ManifestedJar1.jar 1715 * tests/jnlp_tests/simple/ManifestedJar1/testcases/ManifestedJar1Test.java: 1716 testing class for this reproducers 1717 * tests/jnlp_tests/simple/ManifestedJar1/resources/: nine reproducers jnlps 1718 1719 2012-03-06 Jiri Vanek <jvanek@redhat.com> 1720 1721 Improved reflection test: 1722 * tests/jnlp_tests/simple/AccessClassInPackage/testcases/AccessClassInPackageTest.java: 1723 This testcase was extended for three more unsigned reflection tries and four signed 1724 *tests/jnlp_tests/simple/AccessClassInPackage/srcs/AccessClassInPackage.java: 1725 now accepting class to be findByName as argument. Four new jnlp files in 1726 signed a four in simple are then passing those argument 1727 *tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageSUNSEC.jnlp: 1728 *tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageNETSF.jnlp: 1729 *tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageJAVAXJNLP.jnlp: 1730 *tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageSELF.jnlp: 1731 *tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackage.jnlp: 1732 removed 1733 * tests/jnlp_tests/signed/AccessClassInPackageSigned/srcs/AccessClassInPackageSigned.java 1734 signed variation of AccessClassInPackage, tescase is also in AccessClassInPackage 1735 * tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedSELF.jnlp 1736 * tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedNETSF.jnlp 1737 * tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedSUNSEC.jnlp 1738 * tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedJAVAXJNLP.jnlp 1739 1740 2012-02-29 Deepak Bhole <dbhole@redhat.com> 1741 1742 * configure.ac: Bumped version to 1.3pre 1743 1744 2012-02-29 Deepak Bhole <dbhole@redhat.com> 1745 1746 * netx/net/sourceforge/jnlp/security/CertificateUtils.java 1747 (inKeyStores): Only check for certificate equality. 1748 1749 2012-02-28 Deepak Bhole <dbhole@redhat.com> 1750 1751 * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java 1752 (checkForMain): Also check manifest file of main jar. 1753 (getMainClassName): New method. Looks in a jar manifest to see if there is 1754 a Main-Class specified. 1755 1756 2012-02-28 Deepak Bhole <dbhole@redhat.com> 1757 1758 * plugin/icedteanp/IcedTeaPluginRequestProcessor.cc 1759 (_eval): Return 0 id to Java side if eval fails. 1760 (_call): Return 0 id to Java side if call fails. 1761 1762 2012-02-27 Matthias Klose <doko@ubuntu.com> 1763 1764 * acinclude.m4 (IT_CHECK_PLUGIN_DEPENDENCIES): Use the mozilla-plugin 1765 pkgconfig module if the libxul module is not available. 1766 1767 2012-02-27 Matthias Klose <doko@ubuntu.com> 1768 1769 * acinclude.m4 (IT_FIND_JAVA): Set VERSION_DEFS. 1770 * Makefile.am ($(PLUGIN_DIR)/%.o): Pass $(VERSION_DEFS) 1771 * IcedTeaNPPlugin.cc (PLUGIN_MIME_DESC): Define in terms 1772 of HAVE_JAVA7. 1773 1774 2012-02-27 Thomas Meyer <thomas@m3y3r.de> 1775 Deepak Bhole <dbhole@redhat.com> 1776 1777 PR820: IcedTea-Web 1.1.3 crashing Firefox when loading Citrix XenApp 1778 * plugin/icedteanp/IcedTeaJavaRequestProcessor.cc 1779 (createJavaObjectFromVariant): If variant is a generic object array, 1780 create a JSObject on Java side instead of JSObject array. 1781 * plugin/icedteanp/IcedTeaPluginRequestProcessor.cc 1782 (newMessageOnBus): Run finalize on main thread. 1783 (eval): Create Java object in _eval 1784 (call): Create Java object in _call. 1785 (setMember): Create Java object in _setMember. 1786 (sendMember): Create Java object in _getMember. 1787 (sendString): Create Java object in _getString. 1788 (_setMember): Process result and create Java object if needed. 1789 (_getMember): Same. 1790 (_eval): Same. 1791 (_call): Same. 1792 (_getString): Same. 1793 1794 2012-02-22 Danesh Dadachanji <ddadacha@redhat.com> 1795 1796 Add ability to check for jnlp_href use outside of PluginBridge. 1797 * netx/net/sourceforge/jnlp/PluginBridge.java 1798 (PluginBridge): New boolean useJNLPHref is set if jnlp_href is used. 1799 (useJNLPHref): New getter method, returns boolean useJNLPHref. 1800 1801 2012-02-10 Danesh Dadachanji <ddadacha@redhat.com> 1802 1803 Fix path to NEW_LINE_IFS for when one builds outside of src directory. 1804 * Makefile.am: Use top src directory instead of top build directory 1805 for NEW_LINE_IFS 1806 1807 2012-02-06 Danesh Dadachanji <ddadacha@redhat.com> 1808 1809 Fixed regression in running webstart applets from JNLP files. 1810 * netx/net/sourceforge/jnlp/Launcher.java (createApplet): Added call to 1811 set applet variable in the AppletInstance's AppletEnvironment. 1812 * netx/net/sourceforge/jnlp/runtime/AppletEnvironment.java 1813 (setApplet): New method, set AppletEnvironment's applet variable only once. 1814 1815 2012-02-02 Danesh Dadachanji <ddadacha@redhat.com> 1816 1817 * netx/net/sourceforge/jnlp/LaunchException.java: Fix message 1818 to handle null description 1819 1820 2012-02-01 Danesh Dadachanji <ddadacha@redhat.com> 1821 1822 * netx/net/sourceforge/jnlp/LaunchException.java: Add description 1823 parameter to the message the exception stores. 1824 1825 2012-02-01 Jiri Vanek<jvanek@redhat.com> 1826 1827 Fix for PR844 1828 * netx/net/sourceforge/jnlp/cache/CacheLRUWrapper.java: (getLRUSortedEntries) 1829 instead of error throwing own LRU exception. Also catches more then 1830 NumberFormatException 1831 (clearLRUSortedEntries) new method - making soft clearing of cache public 1832 (clearCache) now return true if cache was cleared, false otherwise 1833 (or exception) 1834 * netx/net/sourceforge/jnlp/cache/CacheUtil.java: (getCacheFileIfExist) 1835 does three tires to load cache. If ifrst fails, then recently_used file 1836 is emptied both in memory and on disc. When second attemmpt fails, then 1837 LRU cache is forcibly cleared. if clearing fails, then error is thrown. 1838 If it pass, then one more try to load entries is allowed. When third 1839 attempt fails, then error is thrown. 1840 * /netx/net/sourceforge/jnlp/cache/LruCacheException.java: 1841 new file, for purpose of catching this particular exception 1842 * netx/net/sourceforge/jnlp/util/PropertiesFile.java: (store) tries to 1843 mkdirs to its path. It is better then to fail when no cache directory exists. 1844 * tests/jnlp_tests/signed/CacheReproducer: new reproducr trying severals 1845 way of corupted cache on several types of jnlp files. Is signed because 1846 of reflection used. 1847 * tests/jnlp_tests/signed/SimpletestSigned1: signed hello world to be 1848 used in CacheReproducer tests. 1849 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java: 1850 timeout for processes doubled, as clear cache methods sometimes took 1851 more then original allowed. 1852 1853 2012-01-27 Deepak Bhole <dbhole@redhat.com> 1854 1855 PR852: Classloader not being flushed after last applet from a site is closed 1856 * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: Added variable 1857 to count usage for a given ClassLoader instance. 1858 (getInstance): Decrement use count for a loader after it is merged with 1859 another. Increment loader use count before returning. 1860 (incrementLoaderUseCount): New method. Increments loader use count. 1861 (decrementLoaderUseCount): New method. Decrements loader use count. 1862 * java/sun/applet/PluginAppletViewer.java (appletClose): Decrement loader 1863 use count when applet is closed. 1864 1865 2012-01-25 Jiri Vanek <jvanek@redhat.com> 1866 1867 Added test for -Xnofork option and for applet launching by jnlp 1868 * tests/jnlp_tests/simple/deadlocktest/resources/deadlocktest_1.jnlp: new file 1869 By specifying new max heap size, should invoke jvm to fork when launched 1870 * tests/jnlp_tests/simple/deadlocktest/srcs/DeadlockTest.java: 1871 improved indentation, added debug output that main method was lunched 1872 * tests/jnlp_tests/simple/deadlocktest/testcases/DeadLockTestTest.java: 1873 small refactoring, add lunching of deadlocktest_1.jnlp with and 1874 without -Xnofork, and counting java instances during runtime 1875 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java 1876 (ThreadedProcess.run) fixed situation, when process ended, but not all 1877 the output was read by its stdout/stderr readers 1878 (ContentReader.run) enabled exception printing to stderr. 1879 * tests/jnlp_tests/simple/AppletTest/ : test for loading applets by jnlp file 1880 1881 2012-01-06 Danesh Dadachanji <ddadacha@redhat.com> 1882 1883 Use the JNLP file's information section for the Name and 1884 Publisher labels of access dialogs, if available. 1885 * netx/net/sourceforge/jnlp/PluginBridge.java: 1886 (PluginBridge): Assigned info variable to JNLP file's information 1887 section (if one is used), otherwise to a new, empty ArrayList. 1888 (getInformation): Removed method, superclass method 1889 should be used instead. 1890 * netx/net/sourceforge/jnlp/resources/Messages.properties: 1891 Adding SUnverified. 1892 * a/netx/net/sourceforge/jnlp/security/AccessWarningPane.java: 1893 (addComponents): Append unverified note to the publisher label. 1894 1895 2012-01-09 Deepak Bhole <dbhole@redhat.com> 1896 1897 PR838: IcedTea plugin crashes with chrome browser when javascript is executed 1898 * plugin/icedteanp/IcedTeaPluginRequestProcessor.cc (eval): Added a check 1899 to ensure that the result pointer is valid before attempting to create an 1900 NPVariant from it. 1901 1902 2012-01-05 Omair Majid <omajid@redhat.com> 1903 1904 * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java 1905 (initializeResources): Only throw exceptions about the main class not 1906 being found when the jnlp file can have a main class. 1907 (addToCodeBaseLoader): Dont try to process null URLs. 1908 1909 2011-12-15 Jiri Vanek <jvanek@redhat.com> 1910 1911 * configure.ac: added search for xsltproc program and setting 1912 WITH_XSLTPROC variable 1913 * Makefile.am: xsltproc result is no longer ignored, command 1914 itself is in conditional block 1915 1916 2011-12-22 Thomas Meyer <thomas@m3y3r.de> 1917 1918 * plugin/icedteanp/IcedTeaPluginRequestProcessor.cc(sendMember): Use 1919 correct response parameter when returning array member vs member itself. 1920 1921 2011-12-21 Thomas Meyer <thomas@m3y3r.de> 1922 1923 RH586194: Unable to connect to connect with Juniper VPN client 1924 * plugin/icedteanp/IcedTeaPluginRequestProcessor.cc(sendMember): Use 1925 createJavaObjectFromVariant to create the resulting object on Java side, 1926 rather than always creating a JSObject. 1927 1928 2011-12-21 Jiri Vanek <jvanek@redhat.com> 1929 1930 * acinclude.m4: added definition of IT_CHECK_XULRUNNER_API_VERSION, 1931 which tries to compile small program against new xulrunner api 1932 * configure.ac: added call of IT_CHECK_XULRUNNER_API_VERSION 1933 * plugin/icedteanp/IcedTeaNPPlugin.cc: (NP_GetMIMEDescription) 1934 return type set-up by dependency on defined LEGACY_XULRUNNERAPI. 1935 This one is set by IT_CHECK_XULRUNNER_API_VERSION during configure. 1936 if defined, then old char* is used. New const char* is used otherwise. 1937 1938 2011-12-19 Danesh Dadachanji <ddadacha@redhat.com> 1939 1940 Fix for BasicService being used in applet constructors but not 1941 having access to ApplicationInstance variable. 1942 * netx/net/sourceforge/jnlp/Launcher.java: 1943 (createApplet): Moved applet initialization below loader.setApplication, 1944 appletInstance is now initialized with applet param as null. 1945 * netx/net/sourceforge/jnlp/runtime/AppletInstance.java: 1946 (setApplet): New method, allows setting of AppletInstance's applet 1947 only once. 1948 1949 2011-12-16 Deepak Bhole <dbhole@redhat.com> 1950 1951 Patch from Thomas Meyer <thomas@m3y3r.de> 1952 * plugin/icedteanp/IcedTeaPluginRequestProcessor.cc: Fixed function name 1953 in comment for sendMember. 1954 1955 2011-12-08 Omair Majid <omajid@redhat.com> 1956 1957 * netx/net/sourceforge/jnlp/Launcher.java 1958 (launchApplication): Print arguments being passed to the application's 1959 main method in debug mode. 1960 1961 2011-12-05 Danesh Dadachanji <ddadacha@redhat.com> 1962 1963 Update UI for AccessWarningPane 1964 * netx/net/sourceforge/jnlp/security/AccessWarningPane.java: 1965 Use question.png instead of warning.png for access dialogs. 1966 1967 2011-11-28 Jiri Vanek <jvanek@redhat.com> 1968 1969 Added code-coverage generation targets 1970 * configure.ac: added search for optional emma.jar 1971 * makefile.am: added UNIT_CLASS_NAMES and REPRODUCERS_CLASS_NAMES variables 1972 to store tests clases for reuse in emmarun. Both also moved to separate target 1973 (run-netx-unit-tests): made dependent on reused stamped version 1974 (run-netx-dist-tests): made dependent on reused stamped version 1975 (stamps/run-netx-dist-tests): stamped rusable version of run-netx-dist-tests 1976 (run-unit-test-code-coverage) targets to generate report from unit-tests. 1977 Result binary and xml file and html report in tests.build/netx/unit 1978 (run-reproducers-test-code-coverage) targets to generate report from 1979 reproducers-test. Result binary file, xml and html report in 1980 tests.build/netx/jnlp_testsengine 1981 (run-test-code-coverage): merges binary results from unit and reproducers 1982 (clean-unit-test-code-coverage) conditionaly removes html,xml report 1983 and es and ec files from tests.build/netx/unit 1984 (clean-reproducers-test-code-coverage) condtionlay removes html and xml 1985 report and es file from tests.build/netx/jnlp_testsengine 1986 (clean-test-code-coverage) conditionlay removes merged html, xml es and em 1987 files from tests.build 1988 (clean-netx-tests) now depends also on clean-test-code-coverage 1989 1990 2011-11-11 Jiri Vanek <jvanek@redhat.com> 1991 1992 Added reproducer for PR804 and PR8011 1993 * tests/jnlp_tests/simple/Spaces can be everywhere/resources/Spaces can be everywhere1.jnlp: 1994 new jnlp file with space in name and with jar in resources which name does not contain 1995 spaces 1996 * tests/jnlp_tests/simple/Spaces can be everywhere/resources/Spaces can be everywhere2.jnlp: 1997 new jnlp file with space in name and with jar in resources which name contains spaces 1998 * tests/jnlp_tests/simple/Spaces can be everywhere/resources/SpacesCanBeEverywhere1.jnlp: 1999 jnlp file without space in name but with jar in resources which name contains spaces 2000 * tests/jnlp_tests/simple/Spaces can be everywhere/srcs/SpacesCanBeEverywhere.java: 2001 new file containig simple main method of "Spaces can be everywhere.jar" jar 2002 * tests/jnlp_tests/simple/Spaces can be everywhere/testcases/SpacesCanBeEverywhereTests.java 2003 testcase for this reproducer. It is lunching each of this jnlp once locally from filesystem and 2004 once remotely from server. Please note that except it's own jar, this reproducer is also 2005 using simpletest1.jar 2006 2007 2011-11-11 Jiri Vanek <jvanek@redhat.com> 2008 2009 Fixed reproducers engine to handle spaces in files and in urls 2010 * Makefile.am: (stamps/netx-dist-tests-prepare-reproducers.stamp) 2011 (stamps/netx-dist-tests-sign-some-reproducers.stamp) 2012 (stamps/netx-dist-tests-compile-testcases.stamp): 2013 added call to NEW_LINE_IFS to use line breake temporarily as parameter 2014 separator while loading files from list and correct quoting 2015 * NEW_LINE_IFS: new file, small separate script used in makefile as inline script 2016 which backup original IFS variable and then set it to pure new line. It is in 2017 separate file because it is reused and I do not know another way how to save a new 2018 line variable in makefile. Restore to original vlaue is handled in Makefile 2019 *tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ResourcesTest.java: 2020 (testResourcesExists) filename is encoded to correct URL before requested from server 2021 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java: 2022 "-headless" string extracted to variable HEADLES_OPTION 2023 (executeProcess) and (ThreadedProcess) enhanced for variable dir to specify working 2024 directory. Backward compatibility kept 2025 (TinyHttpdImpl) now expects url on requests, so all requests are now decoded by 2026 java.net.URLDecoder 2027 2028 2011-11-10 Jiri Vanek <jvanek at redhat.com> 2029 2030 Added tests which covers corner cases or rhino support function dateRange 2031 Enabled testWeekdayRange test 2032 * tests/netx/pac/pac-funcs-test.js: (testWeekdayRange) - added mising 2033 runTests call 2034 (incDate) (decDate) (monthToStr) moved level up from function scope 2035 to be shareable 2036 (testDateRange2) new method, tests last days of months. 2037 (testDateRange3) new method, tests first days of months 2038 * netx/net/sourceforge/jnlp/runtime/pac-funcs.js: 2039 (dateRange) logic of this method moved to isDateInRange. This one now serve 2040 just as api using current date 2041 (isDateInRange) logic of dateRange, can calculate ranges against any date 2042 2043 2011-10-31 Omair Majid <omajid@redhat.com> 2044 2045 PR808: javaws is unable to start when missing jars are enumerated before 2046 main jar 2047 * NEWS: Update. 2048 * netx/net/sourceforge/jnlp/tools/JarSigner.java (verifyJars): Continue 2049 with other jars if the first jar can't be used. 2050 2051 2011-10-28 Deepak Bhole <dbhole@redhat.com> 2052 2053 RH742515, CVE-2011-3377: IcedTea-Web: second-level domain subdomains and 2054 suffix domain SOP bypass 2055 * NEWS: Updated 2056 * netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java 2057 (checkPermission): Remove special case for SocketPermission. 2058 2059 2011-10-27 Deepak Bhole <dbhole@redhat.com> 2060 2061 PR778: Jar download and server certificate verification deadlock 2062 * ChangeLog: Removed extra whitespace from previous entries 2063 * NEWS: Updated 2064 * netx/net/sourceforge/jnlp/GuiLaunchHandler.java (launchInitialized): 2065 Moved as much code as possible out of the invokeLater block. 2066 2067 2011-10-25 Omair Majid <omajid@redhat.com> 2068 2069 PR804: javaws launcher incorrectly handles file names with spaces 2070 * NEWS: Update. 2071 * launcher/javaws.in: Use bash arrays to store arguments to handle 2072 filenames with spaces correctly. 2073 2074 2011-10-24 Jiri Vanek <jvanek@redhat.com> 2075 2076 Added reproducer for - PR788: Elluminate Live! is not working 2077 * tests/jnlp_tests/signed/MissingJar/resources/MissingJar.jnlp 2078 * tests/jnlp_tests/signed/MissingJar/resources/MissingJar2.jnlp 2079 * tests/jnlp_tests/signed/MissingJar/resources/MissingJar3.jnlp 2080 * tests/jnlp_tests/signed/MissingJar/resources/MissingJar4.jnlp 2081 four testcases's jnlp files. Differs by order and by used resoure tags 2082 * tests/jnlp_tests/signed/MissingJar/srcs/MissingJar.java 2083 very simple main jar, just printing message when initialized 2084 * tests/jnlp_tests/signed/MissingJar/testcases/MissingJarTest.java 2085 testing file of reproducer, launchiing above four jnlp files, each in individual test 2086 2087 2011-10-17 Jiri Vanek <jvanek@redhat.com> 2088 2089 PR564: NetX depends on sun.misc.BASE64Encoder 2090 * configure.ac: removed IT564 comment, removed check for sun.misc.BASE64Encoder 2091 * netx/net/sourceforge/jnlp/security/CertificateUtils.java : sun.misc.BASE64Encoder; 2092 replaced (just changed import) by internal implementation from 2093 net.sourceforge.jnlp.util.replacements.BASE64Encoder; 2094 * netx/net/sourceforge/jnlp/util/replacements/BASE64Encoder.java: 2095 * netx/net/sourceforge/jnlp/util/replacements/CharacterEncoder.java: 2096 New files, internal implementation of BASE64Encoder, copied from OpenJDK 2097 * tests/netx/unit/net/sourceforge/jnlp/util/replacements/BASE64EncoderTest.java 2098 New file, to test internal base64encoder implementation 2099 2100 2101 2011-10-03 Jiri Vanek <jvanek@redhat.com> 2102 2103 * tests/jnlp_tests/signed/ReadPropertiesBySignedHack/resources/ReadPropertiesBySignedHack.jnlp 2104 * tests/jnlp_tests/signed/ReadPropertiesBySignedHack/srcs/ReadPropertiesBySignedHack.java 2105 * tests/jnlp_tests/signed/ReadPropertiesBySignedHack/testcases/ReadPropertiesBySignedHackTest.java 2106 * tests/jnlp_tests/signed/ReadPropertiesSigned/resources/ReadPropertiesSigned1.jnlp 2107 * tests/jnlp_tests/signed/ReadPropertiesSigned/resources/ReadPropertiesSigned2.jnlp 2108 * tests/jnlp_tests/signed/ReadPropertiesSigned/srcs/ReadPropertiesSigned.java 2109 * tests/jnlp_tests/signed/ReadPropertiesSigned/testcases/ReadPropertiesSignedTest.java 2110 Direcory signed was somehow missing from my commit from 2011-09-22. 2111 Now it have been added with all its original files 2112 2113 2011-09-29 Omair Majid <omajid@redhat.com> 2114 2115 PR618: Can't install OpenDJ, JavaWebStart fails with Input stream is null 2116 error. 2117 * NEWS: Update. 2118 * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java 2119 (getResource): Rename to ... 2120 (findResource): New method. 2121 (findResources): If resource can not be found, search in lazy resources. 2122 (findResourcesBySearching): New method. 2123 2124 2011-09-28 Omair Majid <omajid@redhat.com> 2125 2126 * netx/net/sourceforge/jnlp/AppletDesc.java (getMainClass): Clarify the 2127 return value in javadoc. 2128 * netx/net/sourceforge/jnlp/Launcher.java 2129 (createApplet, createAppletObject): Do not replace '/' with '.'. 2130 * netx/net/sourceforge/jnlp/PluginBridge.java (PluginBridge): Ensure that 2131 the class name is in the dot-separated from. 2132 * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java 2133 (checkForMain): Ensure that the name is an exact match. 2134 2135 2011-09-28 Deepak Bhole <dbhole@redhat.com> 2136 2137 PR794: IcedTea-Web does not work if a Web Start app jar has a Class-Path 2138 element in the manifest. 2139 * netx/net/sourceforge/jnlp/runtime/CachedJarFileCallback.java 2140 (retrieve): Blank out the Class-Path elements in manifest. 2141 * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java 2142 (activateJars): Only load Class-Path elements if this is an applet. 2143 (addNewJar): Add the right permissions for the cached jar file and verify 2144 signatures. 2145 2146 2011-09-26 Lars Herschke <lhersch@dssgmbh.de> 2147 2148 * netx/net/sourceforge/jnlp/resources/Messages.properties: Add 2149 CVExportPasswordMessage, CVImportPasswordMessage and 2150 CVPasswordTitle. 2151 * netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java (initialize): 2152 Initialize SSLContext with the user's client certificates. 2153 * netx/net/sourceforge/jnlp/security/CertificateUtils.java 2154 (addPKCS12ToKeyStore, addPKCS12ToKeyStore, dumpPKCS12): New methods. 2155 * netx/net/sourceforge/jnlp/security/viewer/CertificatePane.java 2156 (getPasswords): New method. 2157 (ImportButtonListener.actionPerformed): Import client certificates 2158 in PKCS12 format. 2159 (ExportButtonListener.actionPerformed): Export client certificates 2160 in PKCS12 format. 2161 2162 2011-09-23 Omair Majid <omajid@redhat.com> 2163 2164 RH738814: Access denied at ssl handshake 2165 * netx/net/sourceforge/jnlp/security/SecurityDialogs.java 2166 (showCertWarningDialog): Add a javadoc comment. 2167 * netx/net/sourceforge/jnlp/security/VariableX509TrustManager.java 2168 (askUser): Wrap the call to showCertWarningDialog in a doPrivileged 2169 block. 2170 2171 2011-09-22 Omair Majid <omajid@redhat.com> 2172 2173 PR788: Elluminate Live! is not working 2174 * NEWS: Update. 2175 * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java 2176 (checkForMain): If localFile is null (JAR couldn't be downloaded), try to 2177 continue, rather than allowing the exception to cause an abort. 2178 2179 2011-09-21 Omair Majid <omajid@redhat.com> 2180 2181 PR766: javaws fails to parse an <argument> node that contains CDATA 2182 * netx/net/sourceforge/nanoxml/XMLElement.java 2183 (sanitizeInput): Do not remove CDATA sections along with comments. 2184 2185 2011-09-20 Omair Majid <omajid@redhat.com> 2186 2187 * tests/netx/unit/net/sourceforge/jnlp/ParserCornerCases.java 2188 (testCdata, testCdataNested, testCDataFirstChild, testCDataSecondChild) 2189 (testCommentInElements2, testDoubleDashesInComments): New methods 2190 * tests/netx/unit/net/sourceforge/jnlp/application/application0.jnlp, 2191 * tests/netx/unit/net/sourceforge/jnlp/templates/template0.jnlp: 2192 Change <!CDATA[ to <![CDATA[. 2193 2194 2011-09-22 Lars Herschke <lhersch@dssgmbh.de> 2195 2196 PR789: typo in jrunscript.sh 2197 * jrunscript.in: Use = instead of ==. 2198 2199 2011-09-22 Jiri Vanek <jvanek@redhat.com> 2200 2201 * tests/jnlp_tests/signed/ReadPropertiesBySignedHack/resources/ReadPropertiesBySignedHack.jnlp: 2202 jnlp file to lunch ReadPropertiesBySignedHack, notice please dependenci 2203 on ReadProperties.jar from simple reproducers 2204 * tests/jnlp_tests/signed/ReadPropertiesBySignedHack/srcs/ReadPropertiesBySignedHack.java: 2205 this reproducers verify, that even reflection-by enabled 2206 XtrustAll will not allow to lunch unsigned code 2207 * tests/jnlp_tests/signed/ReadPropertiesBySignedHack/testcases/ReadPropertiesBySignedHackTest.java: 2208 testcase for this reproducer 2209 2210 2011-09-22 Jiri Vanek <jvanek@redhat.com> 2211 2212 * tests/jnlp_tests/signed/ReadPropertiesSigned/resources/ReadPropertiesSigned1.jnlp: 2213 * tests/jnlp_tests/signed/ReadPropertiesSigned/resources/ReadPropertiesSigned2.jnlp: 2214 * tests/jnlp_tests/signed/ReadPropertiesSigned/testcases/ReadPropertiesSignedTest.java: 2215 * tests/jnlp_tests/signed/ReadPropertiesSigned/srcs/ReadPropertiesSigned.java: 2216 those four files are example of signed reproducer 2217 * tests/jnlp_tests/simple/ReadProperties/srcs/ReadProperties.java: now prints out got 2218 variable for comparsion with above created signed example 2219 2220 2011-09-22 Jiri Vanek <jvanek@redhat.com> 2221 2222 Added signed reproducers engine 2223 * Makefile.am: added variable KEYSTORE_NAME 2224 (stamps/junit-jnlp-dist-dirs): creates stamp and depend on next two targets 2225 (junit-jnlp-dist-simple.txt): creates list of simple reproducers, extracted 2226 from stamps/junit-jnlp-dist-dirs 2227 (junit-jnlp-dist-signed.txt): creates list of signed reproducers 2228 (stamps/netx-dist-tests-prepare-reproducers.stamp): now traverse over 2229 signed and simple 2230 (stamps/netx-dist-tests-sign-some-reproducers.stamp): depends 2231 on netx-dist-tests-prepare-reproducers, traverse through signed 2232 reproducers and sign them 2233 (stamps/netx-dist-tests-compile-testcases.stamp): now traverse over 2234 signed and simple 2235 (stamps/bootstrap-directory.stamp): creates symlinks/stubs to 2236 jarsigner and keytool 2237 (clean-netx-dist-tests):remove new stamps, signed and simple list and keysstore 2238 * acinclude.m4: declared to proceed IT_FIND_KEYTOOL and IT_FIND_JARSIGNER macro 2239 * configure.ac: declared macros to check for keytool and jarsigner 2240 * tests/jnlp_tests/README: mentioned signed directory 2241 2242 2011-09-22 Jiri Vanek <jvanek@redhat.com> 2243 2244 * netx/net/sourceforge/jnlp/runtime/Boot.java: (main): added logic to 2245 handle -Xtrustall option 2246 * netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java: declared private static boolean 2247 trustAll=false; with public getter and pkg.private setter 2248 * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: (checkTrustWithUser): modified, 2249 when XtrustAll declared, then user is not asked and certificate is trusted 2250 * netx/net/sourceforge/jnlp/security/VariableX509TrustManager.java: (askUser): modified, 2251 when XtrustAll declared, then user is not asked and certificate is trusted 2252 2253 2011-09-15 Jiri Vanek <jvanek@redhat.com> 2254 2255 * tests/jnlp_tests/: all current reproducers (AccessClassInPackage 2256 AddShutdownHook AllStackTraces CreateClassLoader deadlocktest 2257 ReadEnvironment ReadProperties RedirectStreams ReplaceSecurityManager 2258 SetContextClassLoader simpletest1 simpletest2) junit's asserts are enchanted 2259 for reason, so junit assertion exception message is much clearer. 2260 2261 2011-09-13 Deepak Bhole <dbhole@redhat.com> 2262 2263 PR782: Support building against npapi-sdk as well 2264 Patch from MichaÅ Górny < mgorny at gentoo dot org > 2265 * acinclude.m4: Build against npapi-sdk. 2266 2267 2011-09-13 Deepak Bhole <dbhole@redhat.com> 2268 2269 * ChangeLog: Fixed formatting issues in previous entry. 2270 2271 2011-09-01 Jiri Vanek<jvanek@redhat.com> 2272 2273 Added functionality to allow icedtea web to be buildable with 2274 rhel5 libraries. 2275 * configure.ac: added IT_CHECK_GLIB_VERSION check. 2276 * acinclude.m4: added IT_CHECK_GLIB_VERSION definition block to test. 2277 version of glib installed and add LEGACY_GLIB define macro into 2278 variable DEFS if version is <2.16. 2279 * plugin/icedteanp/IcedTeaNPPlugin.cc: added replacements for incompatible 2280 functions (g_strcmp0 and find_first_item_in_hash_table)if LEGACY_GLIB 2281 is defined. Added define sections for use this function instead of glib ones. 2282 Duplicated code moved into function getFirstInTableInstance(GHashTble* table). 2283 * Makefile.am: ($(PLUGIN_DIR)/%.o): using DEFS setted by configure for compilation 5 2284 6 2285 2011-08-29 Deepak Bhole <dbhole@redhat.com> … … 24 2303 (checkServerTrusted): Account for a null hostname that the 25 2304 overloaded implementation may pass. 2305 2306 2011-08-23 Omair Majid <omajid@redhat.com> 2307 2308 * configure.ac: Add check for new non-standard classes 2309 sun.net.www.protocol.jar.URLJarFile and 2310 sun.net.www.protocol.jar.URLJarFileCallBack. 26 2311 27 2312 2011-08-23 Omair Majid <omajid@redhat.com> … … 34 2319 JRE. 35 2320 2321 2011-08-22 Saad Mohammad <smohammad@redhat.com> 2322 * netx/net/sourceforge/jnlp/JNLPFile.java: 2323 (parse): After the file has been parsed, it calls 2324 checkForSpecialProperties() to check if the resources contain any special 2325 properties. 2326 (checkForSpecialProperties): Scans through resources and checks if it 2327 contains any special properties. 2328 (requiresSignedJNLPWarning): Returns a boolean after determining if a signed 2329 JNLP warning should be displayed. 2330 (setSignedJNLPAsMissing): Informs JNLPFile that a signed JNLP file is 2331 missing in the main jar. 2332 * netx/net/sourceforge/jnlp/SecurityDesc.java: 2333 (getJnlpRIAPermissions): Returns all the names of the basic JNLP system 2334 properties accessible by RIAs. 2335 * netx/net/sourceforge/jnlp/resources/Messages.properties: 2336 Added LSignedJNLPFileDidNotMatch and SJNLPFileIsNotSigned. 2337 * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: 2338 (initializeResources): Locates the jar file that contains the main class 2339 and verifies if a signed JNLP file is also located in that jar. This also 2340 checks 'lazy' jars if the the main class was not found in 'eager' jars. 2341 If the main jar was not found, a LaunchException is thrown which terminates 2342 the launch of the application. 2343 (checkForMain): A method that goes through each jar and checks to see 2344 if it has the main class. If the main class is found, it calls 2345 verifySignedJNLP() to verify if a valid signed JNLP file is also found in 2346 the jar. 2347 (verifySignedJNLP): A method that checks if the jar file contains a valid 2348 signed JNLP file. 2349 (closeStream): Closes a stream. 2350 (loadClassExt): Added a try/catch block when addNextResource() is called. 2351 (addNextResource): If the main jar has not been found, checkForMain() is 2352 called to check if the jar contains the main class, and verifies if a signed 2353 JNLP file is also located. 2354 * netx/net/sourceforge/jnlp/security/MoreInfoPane.java: 2355 (addComponents): Displays the signed JNLP warning message if necessary. 2356 * netx/net/sourceforge/jnlp/security/SecurityDialog.java: 2357 (SecurityDialog): Stores the value of whether a signed JNLP warning should 2358 be displayed. 2359 (showMoreInfoDialog): Passes in the associated JNLP file when creating a 2360 SecurityDialog object. 2361 (requiresSignedJNLPWarning): Returns a boolean after determining if a signed 2362 JNLP warning should be displayed. 2363 2364 2011-08-17 Danesh Dadachanji <ddadacha@redhat.com> 2365 2366 Update UI for SecurityDialog 2367 * netx/net/sourceforge/jnlp/resources/question.png: New icon added. 2368 * netx/net/sourceforge/jnlp/security/CertWarningPane.java: 2369 (addComponents): When certs are verified, question.png is used as the icon 2370 and SAlwaysTrustPublisher is automatically selected. 2371 * netx/net/sourceforge/jnlp/security/SecurityDialog.java: 2372 (initDialog): Changed the title of a CERT_WARNING dialog. 2373 2374 2011-08-17 Danesh Dadachanji <ddadacha@redhat.com> 2375 2376 AUTHORS: Adding myself and Denis Lila. Removing the extra email from 2377 Andrew Hughes. 2378 2379 2011-08-11 Danesh Dadachanji <ddadacha@redhat.com> 2380 2381 PR742: IcedTea-Web checks certs only upto 1 level deep before declaring 2382 them untrusted. 2383 * NEWS: Updated. 2384 * netx/net/sourceforge/jnlp/tools/JarSigner.java: 2385 (checkTrustedCerts): All certs along certPath are now checked for trust. 2386 2387 2011-08-09 Deepak Bhole <dbhole@redhat.com> 2388 2389 PR771: IcedTea-Web certificate verification code does not use the right 2390 API 2391 * netx/net/sourceforge/jnlp/security/CertificateUtils.java 2392 (inKeyStores): Use Certificate.verify to correctly verify a certificate 2393 against a public key in the store. 2394 2395 2011-08-09 Saad Mohammad <smohammad@redhat.com> 2396 2397 PR765: JNLP file with all resource jars marked as 'lazy' fails to validate 2398 signature and stops the launch of application 2399 * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: 2400 (initializeResources): Initializes the first jar file if all resources 2401 are marked as lazy jars 2402 2403 2011-08-03 Saad Mohammad <smohammad@redhat.com> 2404 2405 * netx/net/sourceforge/jnlp/JNLPMatcher.java: 2406 (JNLPMatcher): Removed NullPointerException from being thrown, caught and 2407 then thrown again via JNLPMatcherException. This was replaced by throwing 2408 a checked exception [JNLPMatcherException] directly. 2409 (JNLPMatcher): Removed unused code [getters] 2410 (JNLPMatcher): Closed Input/Output streams that were opened. 2411 (isMatch): Removed caching of return value 2412 (closeInputStream): Added this method to close input streams 2413 (closeOutputStream): Added this method to close output streams 2414 * netx/net/sourceforge/jnlp/Node.java: 2415 Removed getAttributeNames() method from the commented section 2416 36 2417 2011-08-03 Deepak Bhole <dbhole@redhat.com> 37 2418 … … 40 2421 cert hashtable only if the entry is expected to be signed. 41 2422 2423 2011-08-02 Jiri Vanek <jvanek@redhat.com> 2424 2425 *Makefile.am: (stamps/netx-dist-tests-prepare-reproducers.stamp): 2426 now are compiled files correctly compiled from directory structure. 2427 Also not java files are copied with expected directory structure and 2428 jarred together with classes. 2429 2430 2011-07-26 Jiri Vanek <jvanek@redhat.com> 2431 2432 *tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java: String 2433 containing "localhost" have been declared as final constant. 2434 (SERVER_NAME) have been moved instant Server instance so each server can 2435 have it name without affecting others 2436 (getUrl()) added - can return URL of server singleton. Implementation of 2437 this method is inside server, so each server can return its own useful URL. 2438 (saveFile()) is now public. 2439 Added identification for ThreadedProcess based on commandlineArgs and its 2440 run is now slowed by Thread.sleep 2441 (ServerLuncher) inner class is now public (it was bug to not be as we have 2442 getIndependentInstance of it method ) and renamed to ServerLauncher 2443 Enchanted wrapping of executeProcess 2444 2445 42 2446 2011-07-21 Deepak Bhole <dbhole@redhat.com> 43 2447 44 2448 PR749: sun.applet.PluginStreamHandler#handleMessage(String) really slow 45 Patch from: Ricardo MartÃn Camarero (Ricky)<rickyepoderi at yahoo dot es>2449 Original patch from: Ricardo MartÃn Camarero <rickyepoderi at yahoo dot es> 46 2450 * plugin/icedteanp/java/sun/applet/PluginStreamHandler.java 47 2451 (readPair): New function. … … 49 2453 than using String.split(). 50 2454 51 2011-07-20 Deepak Bhole <dbhole@redhat.com> 52 53 * configure.ac: Prepare for 1.1.2 54 * NEWS: Same 55 56 2011-07-15 Deepak Bhole <dbhole@redhat.com> 57 58 * configure.ac: Prepare to release 1.1.1 59 * NEWS: Same 2455 2011-07-19 Saad Mohammad <smohammad@redhat.com> 2456 2457 * netx/net/sourceforge/jnlp/JNLPMatcher.java: 2458 Created this class to compare signed JNLP file with the launching 2459 JNLP file. When comparing, it has support for both method of signing 2460 of a JNLP file: APPLICATION_TEMPLATE.JNLP and APPLICATION.JNLP. 2461 * netx/net/sourceforge/jnlp/JNLPMatcherException.java: 2462 Added a custom exception: JNLPMatcherException. Thrown if verifying 2463 signed JNLP files fails. 2464 * netx/net/sourceforge/jnlp/Node.java: 2465 Created a method that retrieves the attribute names of the Node and 2466 stores it in private string [] member. The method returns the 2467 attribute names. 2468 * tests/netx/unit/net/sourceforge/jnlp/JNLPMatcherTest.java: 2469 This is a test case that tests the functionality of JNLPMatcher. 2470 It tests the algorithm with a variety of template and application 2471 JNLP files. 2472 * tests/netx/unit/net/sourceforge/jnlp/launchApp.jnlp: 2473 Launching JNLP file: This is the launching JNLP file used to compare 2474 with templates and application JNLP files in JNLPMatcherTest.java 2475 * tests/netx/unit/net/sourceforge/jnlp/templates/template0.jnlp: 2476 Test Template JNLP file: Contains CDATA. 2477 * tests/netx/unit/net/sourceforge/jnlp/templates/template1.jnlp: 2478 Test Template JNLP file: An exact duplicate of the launching 2479 JNLP file. 2480 * tests/netx/unit/net/sourceforge/jnlp/templates/template2.jnlp: 2481 Test Template JNLP file: Contains wildchars as attribute/element 2482 values. 2483 * tests/netx/unit/net/sourceforge/jnlp/templates/template3.jnlp: 2484 Test Template JNLP file: Different order of elements/attributes 2485 (same value) 2486 * tests/netx/unit/net/sourceforge/jnlp/templates/template4.jnlp: 2487 Test Template JNLP file: Contains wildchars as values of ALL elements 2488 and attribute. 2489 * tests/netx/unit/net/sourceforge/jnlp/templates/template5.jnlp: 2490 Test Template JNLP file: Contains comments. 2491 * tests/netx/unit/net/sourceforge/jnlp/templates/template6.jnlp: 2492 Test Template JNLP file: Contains different attribute and element 2493 values. 2494 * tests/netx/unit/net/sourceforge/jnlp/templates/template7.jnlp: 2495 Test Template JNLP file: Contains additional children in element. 2496 * tests/netx/unit/net/sourceforge/jnlp/templates/template8.jnlp: 2497 Test Template JNLP file: Contains fewer children in element. 2498 * tests/netx/unit/net/sourceforge/jnlp/templates/template9.jnlp: 2499 Test Template JNLP file: All values are different from the launching 2500 JNLP file. 2501 * tests/netx/unit/net/sourceforge/jnlp/application/application0.jnlp: 2502 Test Application JNLP file: Contains CDATA. 2503 * tests/netx/unit/net/sourceforge/jnlp/application/application1.jnlp: 2504 Test Application JNLP file: An exact duplicate of the launching 2505 JNLP file. 2506 * tests/netx/unit/net/sourceforge/jnlp/application/application2.jnlp: 2507 Test Application JNLP file: Different order of element/attributes 2508 (same value). 2509 * tests/netx/unit/net/sourceforge/jnlp/application/application3.jnlp: 2510 Test Application JNLP file: Contains comments. 2511 * tests/netx/unit/net/sourceforge/jnlp/application/application4.jnlp: 2512 Test Application JNLP file: Contains wildchars as attribute/element 2513 values. 2514 * tests/netx/unit/net/sourceforge/jnlp/application/application5.jnlp: 2515 Test Application JNLP file: Contains a different attribute (codebase) 2516 value. 2517 * tests/netx/unit/net/sourceforge/jnlp/application/application6.jnlp: 2518 Test Application JNLP file: Contains additional children in element. 2519 * tests/netx/unit/net/sourceforge/jnlp/application/application7.jnlp: 2520 Test Application JNLP file: Contains fewer children in element. 2521 * tests/netx/unit/net/sourceforge/jnlp/application/application8.jnlp: 2522 Test Application JNLP file: All values are different from the 2523 launching JNLP file. 2524 * Makefile.am: 2525 (run-netx-unit-tests): Copies resources(non java files) to test.build 2526 before running the unit tests. 2527 2528 2011-06-22 Jiri Vanek <jvanek@redhat.com> 2529 2530 * tests/report-styles/jreport.xsl: part with classes statistics is now collapsable 2531 2532 2011-06-21 Jiri Vanek <jvanek@redhat.com> 2533 2534 *tests/jnlp_tests/simple: AccessClassInPackage, ReplaceSecurityManager, 2535 AddShutdownHook, ReadEnvironment, SetContextClassLoader, 2536 AllStackTraces, ReadProperties, CreateClassLoader, RedirectStreams tests 2537 2538 2011-06-21 Jiri Vanek <jvanek@redhat.com> 2539 2540 *Makefile.am: (run-netx-dist-tests): no depends on copying of styles 2541 (clean-netx-dist-tests): depends also on removing of styles 2542 2543 2011-06-17 Jiri Vanek <jvanek@redhat.com> 2544 2545 * tests/jnlp_tests: directory for reproducers 2546 * tests/jnlp_tests/advanced: reproducers which must care about 2547 deploying and compiling thmselves 2548 * tests/jnlp_tests/simple: reproducers compiled, jared and deployed 2549 automatically 2550 * tests/jnlp_tests/simple/name/srcs|testcases|resources/: sourcefiles, 2551 resources and testaces for simple reproducers 2552 * tests/jnlp_tests/simple/deadlocktest: test for tracing not-killable 2553 javaws 2554 * tests/jnlp_tests/simple/simpletest1: tutorial test 2555 * tests/jnlp_tests/simple/simpletest2: tutorial test with exception 2556 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ResourcesTest.java: 2557 tests for server basic functionality 2558 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java: 2559 implementation of server to produce jnlps and resources. Implementation 2560 of helpers to run javaws process. 2561 *Makefile.am: new variables pointing to structure above; 2562 (junit-jnlp-dist-dirs.txt): prepare destination directory structure 2563 (stamps/netx-dist-tests-prepare-reproducers.stamp):compile tescascases of simple reproducers 2564 (netx-dist-tests-source-files.txt): lookup for server and helping classes 2565 (stamps/netx-dist-tests-compile.stamp): compile server and helping classes 2566 (stamps/netx-dist-tests-compile-testcases.stamp): compile, jar and deploy all simple testcases and their resources 2567 (run-netx-dist-tests): after make install run junit testsuite upon reproducers on virtual server 2568 (clean-netx-tests): added dependence on clean-netx-dist-tests 2569 (clean-netx-dist-tests): deleting of reproducers 2570 2571 2011-06-16 Jiri Vanek <jvanek@redhat.com> 2572 2573 * tests/report-styles/index.js: fast navigation functions 2574 * tests/report-styles/report.css: styles for transformed result 2575 * tests/report-styles/jreport.xsl: template for human-readable 2576 xml->html transformation. 2577 * Makefile.am: New variable for report-styles directory; 2578 ($(TESTS_DIR)/$(REPORT_STYLES_DIRNAME)): goal for copying styles and 2579 javascripts; (run-netx-unit-tests): added nonfaling xsltproc 2580 transformation of sheet and unit-tests' xml report to index_unit.html; 2581 (clean-netx-unit-tests): now depends also on clean_tests_reports; 2582 (clean_tests_reports): new goal to remove report styles directory and 2583 indexs html files. 60 2584 61 2585 2011-07-14 Omair Majid <omajid@redhat.com> … … 97 2621 addComponents): Changed to a layout that will resize itself. 98 2622 99 2011-06-08 Deepak Bhole <dbhole@redhat.com> 100 101 * configure.ac: Prepare for 1.1.1 102 * NEWS: Same 103 104 2011-06-08 Deepak Bhole <dbhole@redhat.com> 105 106 * configure.ac: Update for release. 107 * NEWS: Update for release. 108 109 2011-06-08 Deepak Bhole <dbhole@redhat.com> 110 111 * NEWS: Remove security update notes from NEWS as they are not "New" 2623 2011-06-10 Denis Lila <dlila@redhat.com> 2624 2625 * netx/net/sourceforge/jnlp/GuiLaunchHandler.java: 2626 (mutex): New mutex for synchronizing splashScreen. 2627 (closeSplashScreen): New method to hide and dispose 2628 splashScreen. 2629 (launchStarting): Call closeSplashScreen instead of doing it 2630 inline. 2631 (launchInitialized): Sync splashScreen creation. 2632 (validationError, launchError): Call closeSplashScreen. 2633 2634 2011-06-10 Denis Lila <dlila@redhat.com> 2635 2636 * netx/net/sourceforge/jnlp/cache/DefaultDownloadIndicator.java: 2637 (frameMutex): New mutex to synchronize accesses to "frame". 2638 (getListener): Make almost all of it synchronized on frameMutex. 2639 (disposeListener): Sync hider's body around frameMutex and call 2640 dispose on the frame so that the awt threads die when they should. 2641 (addProgressPanel): Sync "frame" usage. 2642 2643 2011-06-08 Saad Mohammad <smohammad@redhat.com> 2644 2645 * AUTHORS: Updated 2646 * netx/net/sourceforge/jnlp/services/ServiceUtil.java 2647 (checkAccess): Moved the process of checking if the application is a trusted 2648 application to a new method called isSigned(). 2649 * netx/net/sourceforge/jnlp/services/XPersistenceService.java 2650 (checkLocation): Allows trusted application to have access to 2651 PersistenceService data from different hosts. It uses ServiceUtil.isSigned() 2652 to determine if the current application is a trusted application. 2653 2654 2011-06-08 Andrew Su <asu@redhat.com> 2655 2656 * NEWS: Updated. 2657 * netx/net/sourceforge/jnlp/JNLPFile.java: 2658 (JNLPFile): Calls new constructor. 2659 (JNLPFile): New constructor to take an option for forcing a codebase. 2660 (JNLPFile): Call parse with extra parameter. 2661 (parse): Use the given codebase passed in if we did not find one. 2662 * netx/net/sourceforge/jnlp/Parser.java: 2663 (Parser): Calls new constructor. 2664 (Parser): New constructor which takes in a codebase as a last option. 2665 * netx/net/sourceforge/jnlp/PluginBridge.java: 2666 (PluginBridge): Calls new JNLPFile's constructor with current codebase 2667 2668 2011-06-08 Andrew Su <asu@redhat.com> 2669 2670 * netx/net/sourceforge/jnlp/PluginBridge.java: 2671 (jars): Changed to use HashSet instead of String[]. 2672 (PluginBridge): Updated to work with HashSet instead of String[] 2673 (getResources): Likewise. 112 2674 113 2675 2011-06-08 Deepak Bhole <dbhole@redhat.com> … … 159 2721 _createAndRetainJavaObject. 160 2722 2723 2011-05-31 Omair Majid <omajid@redhat.com> 2724 2725 * netx/net/sourceforge/jnlp/JNLPSplashScreen.java: Subclass JDialog, not 2726 JFrame. 2727 2728 2011-05-30 Andrew Su <asu@redhat.com> 2729 2730 * netx/net/sourceforge/jnlp/controlpanel/TemporaryInternetFilesPanel.java: 2731 (addComponent): Add check to see if specified cache directory is 2732 writable. 2733 161 2734 2011-05-30 Andrew Su <asu@redhat.com> 162 2735 … … 230 2803 (lock): Removed creation of file here. 231 2804 2805 2011-05-17 Jiri Vanek <jvanek@redhat.com> 2806 2807 * tests/junit-runner/JunitLikeXmlOutputListener: This listener exports 2808 results of junit in xml which "follows junit-output schema". Extended 2809 for date, duration and some statististics for future purpose 2810 * Makefile.am (run-netx-unit-tests): backuping stdout/stderr of tests 2811 * tests/junit-runner/CommandLine.java: registered 2812 JunitLikeXmlOutputListener 2813 232 2814 2011-05-10 Andrew Su <asu@redhat.com> 233 2815 … … 235 2817 (addComponents):Created a new comparator for sorting by file size and 236 2818 date. 2819 2820 2011-05-09 Jiri Vanek <jvanek@redhat.com> 2821 * tests/junit-runner/CommandLine.java:r added skipping of inner 2822 classes and one jnlp file from sources package. 2823 2824 2011-05-03 Denis Lila <dlila@redhat.com> 2825 2826 * netx/net/sourceforge/jnlp/NetxPanel.java: 2827 Add imports. 2828 (uKeyToTG): Change to HashMap. 2829 (TGMapMutex): New mutex to synchronize uKeyToTG. 2830 (getThreadGroup): Synchronize on TGMapMutex. 2831 (NetxPanel): Only create a new thread group if one doesn't already 2832 exist for the computed uKey. 237 2833 238 2834 2011-05-02 Deepak Bhole <dbhole@redhat.com> … … 243 2839 invokeAndWait. 244 2840 (appletSystemExit): Exit the VM when called. 2841 2842 2011-04-28 Denis Lila <dlila@redhat.com> 2843 2844 * netx/net/sourceforge/jnlp/NetxPanel.java: 2845 Remove unused import; add imports. 2846 (uKey, uKeyToTG, appContextCreated): New members. 2847 (getThreadGroup, createNewAppContext): New methods. 2848 (runLoader): Pass uKey to PluginBridge's constructor. 2849 (run): Remove. No longer needed. 2850 (NetxPanel): Initialize uKey. If it is a new key, make a new thread 2851 group for it and save it in the hash map. 2852 (createAppletThread): Use getFutureTG instead of creating a thread 2853 group on the spot. 2854 * plugin/icedteanp/java/sun/applet/PluginAppletViewer.java: 2855 (createPanel): Initialize and frame the panel in a separate thread. 2856 * netx/net/sourceforge/jnlp/Launcher.java: 2857 Remove unused import. 2858 (createApplet, createApplication, createThreadGroup): Replace 2859 AppThreadGroup with ThreadGroup. Remove all calls to setApplication. 2860 * netx/net/sourceforge/jnlp/PluginBridge.java: 2861 (PluginBridge): Remove the uniqueKey initialization logic. Set 2862 uniqueKey to the uKey parameter. 2863 * netx/net/sourceforge/jnlp/runtime/AppThreadGroup.java: 2864 Remove file. 245 2865 246 2866 2011-04-28 Omair Majid <omajid@redhat.com> … … 255 2875 (launcher.build/itweb-settings): Replace with... 256 2876 (launcher.build/$(itweb-settings)): New target. 2877 2878 2011-04-21 Deepak Bhole <dbhole@redhat.com> 2879 2880 * configure.ac: Bumped version to 1.2pre 257 2881 258 2882 2011-04-21 Deepak Bhole <dbhole@redhat.com> -
branches/vendor/sourceforge/icedtea-web/current/Makefile.am
r348 r416 1 1 # Source directories 2 2 3 NETX_DIR = $(abs_top_builddir)/netx.build 4 NETX_SRCDIR = $(abs_top_srcdir)/netx 5 NETX_RESOURCE_DIR=$(NETX_SRCDIR)/net/sourceforge/jnlp/resources 6 NETX_EXTRA_DIR=$(abs_top_srcdir)/extra/net/sourceforge/javaws/about/resources 7 NETX_EXTRA_DIST_DIR=$(abs_top_builddir)/extra-lib/net/sourceforge/javaws/about/resources 8 9 TESTS_SRCDIR=$(abs_top_srcdir)/tests 10 TESTS_DIR=$(abs_top_builddir)/tests.build 11 12 NETX_UNIT_TEST_SRCDIR=$(TESTS_SRCDIR)/netx/unit 13 NETX_UNIT_TEST_DIR=$(TESTS_DIR)/netx/unit 14 15 JUNIT_RUNNER_DIR=$(TESTS_DIR)/junit-runner 16 JUNIT_RUNNER_SRCDIR=$(TESTS_SRCDIR)/junit-runner 17 18 JUNIT_RUNNER_JAR=$(abs_top_builddir)/junit-runner.jar 3 export NETX_DIR = $(abs_top_builddir)/netx.build 4 export NETX_SRCDIR = $(abs_top_srcdir)/netx 5 export NETX_RESOURCE_DIR=$(NETX_SRCDIR)/net/sourceforge/jnlp/resources 6 export NETX_EXTRA_DIR=$(abs_top_srcdir)/extra/net/sourceforge/javaws/about/resources 7 export NETX_EXTRA_DIST_DIR=$(abs_top_builddir)/extra-lib/net/sourceforge/javaws/about/resources 8 9 export REPORT_STYLES_DIRNAME=report-styles 10 11 export TESTS_SRCDIR=$(abs_top_srcdir)/tests 12 export TESTS_DIR=$(abs_top_builddir)/tests.build 13 14 export NETX_UNIT_TEST_SRCDIR=$(TESTS_SRCDIR)/netx/unit 15 export NETX_UNIT_TEST_DIR=$(TESTS_DIR)/netx/unit 16 17 export JUNIT_RUNNER_DIR=$(TESTS_DIR)/junit-runner 18 export JUNIT_RUNNER_SRCDIR=$(TESTS_SRCDIR)/junit-runner 19 20 21 export JNLP_TESTS_ENGINE_SRCDIR=$(TESTS_SRCDIR)/test-extensions 22 export JNLP_TESTS_ENGINE_TESTS_SRCDIR=$(TESTS_SRCDIR)/test-extensions-tests 23 export JNLP_TESTS_SRCDIR=$(TESTS_SRCDIR)/reproducers 24 export JNLP_TESTS_ENGINE_DIR=$(TESTS_DIR)/jnlp_testsengine 25 export JNLP_TESTS_ENGINE_TESTS_DIR=$(TESTS_DIR)/netx/jnlp_testsengine_tests 26 export JNLP_TESTS_SERVER_DEPLOYDIR=$(TESTS_DIR)/jnlp_test_server 27 export JNLP_TESTS_DIR=$(TESTS_DIR)/jnlp_tests 28 export PRIVATE_KEYSTORE_NAME=teststore.ks 29 export PRIVATE_KEYSTORE_PASS=123456789 30 export EXPORTED_TEST_CERT_PREFIX=icedteatests 31 export EXPORTED_TEST_CERT_SUFFIX=crt 32 export TEST_CERT_ALIAS=icedteaweb 33 export PUBLIC_KEYSTORE=${HOME}/.icedtea/security/trusted.certs 34 export PUBLIC_KEYSTORE_PASS=changeit 35 36 export JUNIT_RUNNER_JAR=$(abs_top_builddir)/junit-runner.jar 37 export UNIT_CLASS_NAMES = $(abs_top_builddir)/unit_class_names 38 export REPRODUCERS_CLASS_NAMES = $(abs_top_builddir)/reproducers_class_names 39 export REPRODUCERS_CLASS_WHITELIST = $(abs_top_srcdir)/netx-dist-tests-whitelist 40 export EMMA_JAVA_ARGS=-Xmx2G 41 export EMMA_MODIFIED_FILES=tests-output.xml ServerAccess-logs.xml stdout.log stderr.log all.log 42 export EMMA_BACKUP_SUFFIX=_noEmma 43 export EMMA_SUFFIX=_withEmma 44 export META_MANIFEST = META-INF/MANIFEST.MF 45 export SIGNED_REPRODUCERS=signed 46 export SIMPLE_REPRODUCERS=simple 47 export CUSTOM_REPRODUCERS=custom 48 export ALL_NONCUSTOM_REPRODUCERS=$(SIMPLE_REPRODUCERS) $(SIGNED_REPRODUCERS) 49 export ALL_REPRODUCERS=$(ALL_NONCUSTOM_REPRODUCERS) $(CUSTOM_REPRODUCERS) 50 51 52 # linking variables 53 export PLUGIN_LINK_NAME=libjavaplugin.so 54 export MOZILLA_LOCAL_PLUGINDIR=${HOME}/.mozilla/plugins 55 export MOZILLA_GLOBAL64_PLUGINDIR=/usr/lib64/mozilla/plugins 56 export MOZILLA_GLOBAL32_PLUGINDIR=/usr/lib/mozilla/plugins 57 export OPERA_GLOBAL64_PLUGINDIR=/usr/lib64/opera/plugins 58 export OPERA_GLOBAL32_PLUGINDIR=/usr/lib/opera/plugins 59 export BUILT_PLUGIN_LIBRARY=IcedTeaPlugin.so 60 export MOZILLA_LOCAL_BACKUP_FILE=${HOME}/$(PLUGIN_LINK_NAME).origU 61 export MOZILLA_GLOBAL_BACKUP_FILE=${HOME}/$(PLUGIN_LINK_NAME).origMG 62 export OPERA_GLOBAL_BACKUP_FILE=${HOME}/$(PLUGIN_LINK_NAME).origOG 63 export MOZILLA_FAMILY_TEST= "$(FIREFOX)" != "" -o "$(CHROMIUM)" != "" -o "$(CHROME)" != "" -o "$(MIDORI)" != "" -o "$(EPIPHANY)" != "" 64 # end of linking variables 19 65 20 66 # Build directories 21 67 22 BOOT_DIR = $(abs_top_builddir)/bootstrap/jdk1.6.068 export BOOT_DIR = $(abs_top_builddir)/bootstrap/jdk1.6.0 23 69 24 70 if WITH_RHINO … … 28 74 endif 29 75 30 RUNTIME = $(BOOT_DIR)/jre/lib/rt.jar:$(BOOT_DIR)/jre/lib/jsse.jar$(RHINO_RUNTIME) 76 export RUNTIME = $(BOOT_DIR)/jre/lib/rt.jar:$(BOOT_DIR)/jre/lib/jsse.jar$(RHINO_RUNTIME):$(BOOT_DIR)/jre/lib/resources.jar 31 77 32 78 # Flags 33 IT_CFLAGS=$(CFLAGS) $(ARCHFLAG)34 IT_JAVAC_SETTINGS=-g -encoding utf-8 $(JAVACFLAGS) $(MEMORY_LIMIT) $(PREFER_SOURCE)35 IT_LANGUAGE_SOURCE_VERSION=636 IT_CLASS_TARGET_VERSION=637 IT_JAVACFLAGS=$(IT_JAVAC_SETTINGS) -source $(IT_LANGUAGE_SOURCE_VERSION) -target $(IT_CLASS_TARGET_VERSION)79 export IT_CFLAGS=$(CFLAGS) $(ARCHFLAG) 80 export IT_JAVAC_SETTINGS=-g -encoding utf-8 $(JAVACFLAGS) $(MEMORY_LIMIT) $(PREFER_SOURCE) 81 export IT_LANGUAGE_SOURCE_VERSION=6 82 export IT_CLASS_TARGET_VERSION=6 83 export IT_JAVACFLAGS=$(IT_JAVAC_SETTINGS) -source $(IT_LANGUAGE_SOURCE_VERSION) -target $(IT_CLASS_TARGET_VERSION) 38 84 39 85 # … … 44 90 # - we want full privileges 45 91 # 46 LAUNCHER_BOOTCLASSPATH="-Xbootclasspath/a:$(datadir)/$(PACKAGE_NAME)/netx.jar$(RHINO_RUNTIME)"47 PLUGIN_BOOTCLASSPATH='"-Xbootclasspath/a:$(datadir)/$(PACKAGE_NAME)/netx.jar:$(datadir)/$(PACKAGE_NAME)/plugin.jar$(RHINO_RUNTIME)"'92 export LAUNCHER_BOOTCLASSPATH="-Xbootclasspath/a:$(datadir)/$(PACKAGE_NAME)/netx.jar$(RHINO_RUNTIME)" 93 export PLUGIN_BOOTCLASSPATH='"-Xbootclasspath/a:$(datadir)/$(PACKAGE_NAME)/netx.jar:$(datadir)/$(PACKAGE_NAME)/plugin.jar$(RHINO_RUNTIME)"' 48 94 49 95 # Fake update version to work with the Deployment Toolkit script used by Oracle 50 96 # http://download.oracle.com/javase/tutorial/deployment/deploymentInDepth/depltoolkit_index.html 51 JDK_UPDATE_VERSION=5097 export JDK_UPDATE_VERSION=50 52 98 53 99 # Sources list 54 100 55 PLUGIN_TEST_SRCS = $(abs_top_srcdir)/plugin/tests/LiveConnect/*.java56 57 NETX_PKGS = javax.jnlp net.sourceforge.nanoxml net.sourceforge.jnlp \101 export PLUGIN_TEST_SRCS = $(abs_top_srcdir)/plugin/tests/LiveConnect/*.java 102 103 export NETX_PKGS = javax.jnlp net.sourceforge.nanoxml net.sourceforge.jnlp \ 58 104 net.sourceforge.jnlp.cache net.sourceforge.jnlp.config \ 59 105 net.sourceforge.jnlp.controlpanel net.sourceforge.jnlp.event \ … … 64 110 # Conditional defintions 65 111 if ENABLE_PLUGIN 66 ICEDTEAPLUGIN_CLEAN = clean-IcedTeaPlugin67 LIVECONNECT_DIR = netscape sun/applet68 PLUGIN_DIR=$(abs_top_builddir)/plugin/icedteanp69 PLUGIN_SRCDIR=$(abs_top_srcdir)/plugin/icedteanp70 LIVECONNECT_SRCS = $(PLUGIN_SRCDIR)/java71 ICEDTEAPLUGIN_TARGET = $(PLUGIN_DIR)/IcedTeaPlugin.sostamps/liveconnect-dist.stamp72 PLUGIN_PKGS = sun.applet netscape.security netscape.javascript112 export ICEDTEAPLUGIN_CLEAN = clean-IcedTeaPlugin 113 export LIVECONNECT_DIR = netscape sun/applet 114 export PLUGIN_DIR=$(abs_top_builddir)/plugin/icedteanp 115 export PLUGIN_SRCDIR=$(abs_top_srcdir)/plugin/icedteanp 116 export LIVECONNECT_SRCS = $(PLUGIN_SRCDIR)/java 117 export ICEDTEAPLUGIN_TARGET = $(PLUGIN_DIR)/$(BUILT_PLUGIN_LIBRARY) stamps/liveconnect-dist.stamp 118 export PLUGIN_PKGS = sun.applet netscape.security netscape.javascript 73 119 endif 74 120 … … 92 138 93 139 if WITH_RHINO 94 RHINO_TESTS= check-pac-functions140 RHINO_TESTS=stamps/check-pac-functions.stamp 95 141 else 96 142 RHINO_TESTS= … … 98 144 99 145 if WITH_JUNIT 100 JUNIT_TESTS= run-netx-unit-tests146 JUNIT_TESTS=stamps/run-netx-unit-tests.stamp 101 147 else 102 148 JUNIT_TESTS= … … 104 150 105 151 106 PLUGIN_VERSION = IcedTea-Web $(FULL_VERSION)107 108 EXTRA_DIST = $(top_srcdir)/netx $(top_srcdir)/plugin javaws.png javaws.desktop.in extra launcher \152 export PLUGIN_VERSION = IcedTea-Web $(FULL_VERSION) 153 154 export EXTRA_DIST = $(top_srcdir)/netx $(top_srcdir)/plugin javaws.png javaws.desktop.in extra launcher \ 109 155 itweb-settings.desktop.in $(top_srcdir)/tests 156 157 # reproducers `D`shortcuts 158 export DTEST_SERVER=-Dtest.server.dir=$(JNLP_TESTS_SERVER_DEPLOYDIR) 159 export DJAVAWS_BUILD=-Djavaws.build.bin=$(DESTDIR)$(bindir)/$(javaws) 160 export DBROWSERS=-Dused.browsers=$(FIREFOX):$(CHROMIUM):$(CHROME):$(OPERA):$(MIDORI):$(EPIPHANY) 161 export REPRODUCERS_DPARAMETERS= $(DTEST_SERVER) $(DJAVAWS_BUILD) $(DBROWSERS) $(BROWSER_TESTS_MODIFICATION) 162 # end of `D`shortcuts 163 164 #exported autoconf copies 165 export EXPORTED_JAVAC=$(BOOT_DIR)/bin/javac 166 #end of exported autoconf copies 110 167 111 168 # binary names … … 130 187 check-local: $(RHINO_TESTS) $(JUNIT_TESTS) 131 188 132 clean-local: clean-netx clean-plugin clean-liveconnect clean-extra clean-bootstrap-directory\133 clean-native-ecj clean-launchers clean-desktop-files clean-docs clean-tests 189 clean-local: clean-netx clean-plugin clean-liveconnect clean-extra \ 190 clean-native-ecj clean-launchers clean-desktop-files clean-docs clean-tests clean-bootstrap-directory 134 191 if [ -e stamps ] ; then \ 135 192 rmdir stamps ; \ … … 138 195 .PHONY: clean-IcedTeaPlugin clean-add-netx clean-add-netx-debug clean-add-plugin clean-add-plugin-debug \ 139 196 clean-bootstrap-directory clean-native-ecj clean-desktop-files clean-netx-docs clean-docs clean-plugin-docs \ 140 clean-tests check-local clean-launchers check-pac-functions run-netx-unit-testsclean-netx-tests \197 clean-tests check-local clean-launchers stamps/check-pac-functions.stamp stamps/run-netx-unit-tests.stamp clean-netx-tests \ 141 198 clean-junit-runner clean-netx-unit-tests 142 199 … … 144 201 ${mkinstalldirs} $(DESTDIR)$(bindir) $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/ $(DESTDIR)$(libdir) 145 202 if ENABLE_PLUGIN 146 ${INSTALL_PROGRAM} $(PLUGIN_DIR)/ IcedTeaPlugin.so$(DESTDIR)$(libdir)203 ${INSTALL_PROGRAM} $(PLUGIN_DIR)/$(BUILT_PLUGIN_LIBRARY) $(DESTDIR)$(libdir) 147 204 ${INSTALL_DATA} $(abs_top_builddir)/liveconnect/lib/classes.jar $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/plugin.jar 148 205 endif … … 173 230 174 231 uninstall-local: 175 rm -f $(DESTDIR)$(libdir)/ IcedTeaPlugin.so232 rm -f $(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) 176 233 rm -f $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/plugin.jar 177 234 rm -f $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/netx.jar … … 203 260 cd $(PLUGIN_DIR) && \ 204 261 $(CXX) $(CXXFLAGS) \ 262 $(DEFS) $(VERSION_DEFS) \ 205 263 -DJDK_UPDATE_VERSION="\"$(JDK_UPDATE_VERSION)\"" \ 206 264 -DPLUGIN_NAME="\"IcedTea-Web Plugin\"" \ … … 215 273 -fPIC -o $@ -c $< 216 274 217 $(PLUGIN_DIR)/ IcedTeaPlugin.so: $(addprefix $(PLUGIN_DIR)/,$(PLUGIN_OBJECTS))275 $(PLUGIN_DIR)/$(BUILT_PLUGIN_LIBRARY): $(addprefix $(PLUGIN_DIR)/,$(PLUGIN_OBJECTS)) 218 276 cd $(PLUGIN_DIR) && \ 219 277 $(CXX) $(CXXFLAGS) \ … … 226 284 clean-IcedTeaPlugin: 227 285 rm -f $(PLUGIN_DIR)/*.o 228 rm -f $(PLUGIN_DIR)/ IcedTeaPlugin.so286 rm -f $(PLUGIN_DIR)/$(BUILT_PLUGIN_LIBRARY) 229 287 if [ $(abs_top_srcdir) != $(abs_top_builddir) ]; then \ 230 288 if [ -e $(abs_top_builddir)/plugin/icedteanp ] ; then \ … … 432 490 fi 433 491 434 check-pac-functions: stamps/bootstrap-directory.stamp492 stamps/check-pac-functions.stamp: stamps/bootstrap-directory.stamp 435 493 ./jrunscript $(abs_top_srcdir)/tests/netx/pac/pac-funcs-test.js \ 436 $$(readlink -f $(abs_top_srcdir)/netx/net/sourceforge/jnlp/runtime/pac-funcs.js) 494 $$(readlink -f $(abs_top_srcdir)/netx/net/sourceforge/jnlp/runtime/pac-funcs.js) ; \ 495 mkdir -p stamps && \ 496 touch $@ 437 497 438 498 junit-runner-source-files.txt: 439 499 find $(JUNIT_RUNNER_SRCDIR) -name '*.java' | sort > $@ 440 500 441 $(JUNIT_RUNNER_JAR): junit-runner-source-files.txt 501 $(JUNIT_RUNNER_JAR): junit-runner-source-files.txt stamps/netx-dist-tests-compile.stamp 442 502 mkdir -p $(JUNIT_RUNNER_DIR) && \ 443 503 $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \ 444 504 -d $(JUNIT_RUNNER_DIR) \ 445 -classpath $(JUNIT_JAR) \505 -classpath $(JUNIT_JAR):$(JNLP_TESTS_ENGINE_DIR) \ 446 506 @junit-runner-source-files.txt && \ 447 507 $(BOOT_DIR)/bin/jar cf $@ -C $(JUNIT_RUNNER_DIR) . 448 508 509 stamps/junit-jnlp-dist-dirs: junit-jnlp-dist-simple.txt stamps/junit-jnlp-dist-signed.stamp junit-jnlp-dist-custom.txt 510 mkdir -p $(JNLP_TESTS_SERVER_DEPLOYDIR) 511 mkdir -p $(JNLP_TESTS_DIR) 512 touch $@ 513 514 junit-jnlp-dist-custom.txt: 515 cd $(JNLP_TESTS_SRCDIR)/$(CUSTOM_REPRODUCERS)/ ; \ 516 find . -maxdepth 1 -mindepth 1 | sed "s/.\/*//" > $(abs_top_builddir)/$@ 517 518 junit-jnlp-dist-simple.txt: 519 cd $(JNLP_TESTS_SRCDIR)/simple/ ; \ 520 find . -maxdepth 1 -mindepth 1 | sed "s/.\/*//" > $(abs_top_builddir)/$@ 521 522 stamps/junit-jnlp-dist-signed.stamp: 523 types=($(SIGNED_REPRODUCERS)) ; \ 524 for which in "$${types[@]}" ; do \ 525 pushd $(JNLP_TESTS_SRCDIR)/$$which/ ; \ 526 find . -maxdepth 1 -mindepth 1 | sed "s/.\/*//" > $(abs_top_builddir)/junit-jnlp-dist-$$which.txt ; \ 527 popd ; \ 528 done ; \ 529 mkdir -p stamps && \ 530 touch $@ 531 532 stamps/netx-dist-tests-prepare-reproducers.stamp: stamps/junit-jnlp-dist-dirs 533 types=($(ALL_NONCUSTOM_REPRODUCERS)); \ 534 for which in "$${types[@]}" ; do \ 535 . $(abs_top_srcdir)/NEW_LINE_IFS ; \ 536 simpleReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-$$which.txt `); \ 537 IFS="$$IFS_BACKUP" ; \ 538 for dir in "$${simpleReproducers[@]}" ; do \ 539 echo "processing: $$dir" ; \ 540 mkdir -p "$(JNLP_TESTS_DIR)/$$dir" ; \ 541 if [ -e "$(JNLP_TESTS_SRCDIR)/$$which/$$dir/srcs/" ]; then \ 542 d=`pwd` ; \ 543 cd "$(JNLP_TESTS_SRCDIR)/$$which/$$dir/srcs/" ; \ 544 srcFiles=`find . -mindepth 1 -type f -name "*.java" | sed "s/.\/*//"` ; \ 545 notSrcFiles=`find . -mindepth 1 -type f \! -name "*.java" | sed "s/.\/*//"` ; \ 546 $(BOOT_DIR)/bin/javac -cp $(NETX_DIR)/lib/classes.jar -d "$(JNLP_TESTS_DIR)/$$dir/" $$srcFiles ; \ 547 if [ -n "$$notSrcFiles" ] ; then \ 548 cp -R --parents $$notSrcFiles "$(JNLP_TESTS_DIR)/$$dir/" ; \ 549 fi ; \ 550 cd "$(JNLP_TESTS_DIR)/$$dir/" ; \ 551 if [ -f $(META_MANIFEST) ]; \ 552 then \ 553 $(BOOT_DIR)/bin/jar cfm "$(JNLP_TESTS_SERVER_DEPLOYDIR)/$$dir.jar" $(META_MANIFEST) * ; \ 554 else \ 555 $(BOOT_DIR)/bin/jar cf "$(JNLP_TESTS_SERVER_DEPLOYDIR)/$$dir.jar" * ; \ 556 fi; \ 557 cd "$$d" ; \ 558 fi; \ 559 done ; \ 560 done ; \ 561 mkdir -p stamps && \ 562 touch $@ 563 564 stamps/netx-dist-tests-sign-some-reproducers.stamp: stamps/netx-dist-tests-prepare-reproducers.stamp 565 keystore=$(abs_top_builddir)/$(PRIVATE_KEYSTORE_NAME); \ 566 types=($(SIGNED_REPRODUCERS)) ; \ 567 for which in "$${types[@]}" ; do \ 568 tcaw=$(TEST_CERT_ALIAS)_$$which ; \ 569 $(BOOT_DIR)/bin/keytool -genkey -alias $$tcaw -keystore $$keystore -keypass $(PRIVATE_KEYSTORE_PASS) -storepass $(PRIVATE_KEYSTORE_PASS) -dname "cn=$$tcaw, ou=$$tcaw, o=$$tcaw, c=$$tcaw" ; \ 570 . $(abs_top_srcdir)/NEW_LINE_IFS ; \ 571 signedReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-$$which.txt `); \ 572 IFS="$$IFS_BACKUP" ; \ 573 for dir in "$${signedReproducers[@]}" ; do \ 574 $(BOOT_DIR)/bin/jarsigner -keystore $$keystore -storepass $(PRIVATE_KEYSTORE_PASS) -keypass $(PRIVATE_KEYSTORE_PASS) "$(JNLP_TESTS_SERVER_DEPLOYDIR)/$$dir.jar" $$tcaw ; \ 575 done ; \ 576 done ; \ 577 mkdir -p stamps && \ 578 touch $@ 579 580 stamps/change-dots-to-paths.stamp: stamps/netx-dist-tests-sign-some-reproducers.stamp 581 pushd $(JNLP_TESTS_SERVER_DEPLOYDIR); \ 582 types=($(ALL_NONCUSTOM_REPRODUCERS)); \ 583 for which in "$${types[@]}" ; do \ 584 . $(abs_top_srcdir)/NEW_LINE_IFS ; \ 585 simpleReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-$$which.txt `); \ 586 IFS="$$IFS_BACKUP" ; \ 587 for dir in "$${simpleReproducers[@]}" ; do \ 588 if test "$${dir:0:1}" = "." ; then \ 589 echo "reproducer $$dir starts with dot. It is forbidden" ; \ 590 exit 5; \ 591 fi; \ 592 if test "$${dir:(-1)}" = "." ; then \ 593 echo "reproducer $$dir ends with dot. It is forbidden" ; \ 594 exit 5; \ 595 fi; \ 596 q=`expr index "$$dir" .`; \ 597 r=$$? ; \ 598 if [ $$r = 0 ]; then \ 599 slashed_dir="./$${dir//.//}" ; \ 600 path="`dirname $$slashed_dir`" ; \ 601 file="`basename $$slashed_dir`.jar" ; \ 602 echo "copying $$dir.jar to $$path as $$file" ; \ 603 mkdir --parents $$path ; \ 604 cp $$dir".jar" "$$path"/"$$file" ; \ 605 fi ; \ 606 done ; \ 607 done ; \ 608 popd ; \ 609 mkdir -p stamps && \ 610 touch $@ 611 612 #this always tries to remove previous testcert 613 #the code is copypasted from netx-dist-tests-remove-cert-from-public, because 614 #with depending to not stamped target we always have to rerun reproducers targets 615 stamps/exported-test-certs.stamp: stamps/change-dots-to-paths.stamp 616 -types=($(SIGNED_REPRODUCERS)) ; \ 617 for which in "$${types[@]}" ; do \ 618 $(BOOT_DIR)/bin/keytool -delete -alias $(TEST_CERT_ALIAS)_$$which -keystore $(PUBLIC_KEYSTORE) -storepass $(PUBLIC_KEYSTORE_PASS) ; \ 619 done ; 620 types=($(SIGNED_REPRODUCERS)) ; \ 621 for which in "$${types[@]}" ; do \ 622 keytool -export -alias $(TEST_CERT_ALIAS)_$$which -file $(EXPORTED_TEST_CERT_PREFIX)_$$which.$(EXPORTED_TEST_CERT_SUFFIX) -storepass $(PRIVATE_KEYSTORE_PASS) -keystore $(PRIVATE_KEYSTORE_NAME) ; \ 623 done ; 624 mkdir -p stamps && \ 625 touch $@ 626 627 stamps/netx-dist-tests-import-cert-to-public: stamps/exported-test-certs.stamp 628 types=($(SIGNED_REPRODUCERS)) ; \ 629 for which in "$${types[@]}" ; do \ 630 yes | $(BOOT_DIR)/bin/keytool -import -alias $(TEST_CERT_ALIAS)_$$which -keystore $(PUBLIC_KEYSTORE) -storepass $(PUBLIC_KEYSTORE_PASS) -file $(EXPORTED_TEST_CERT_PREFIX)_$$which.$(EXPORTED_TEST_CERT_SUFFIX) ;\ 631 done ; 632 mkdir -p stamps && \ 633 touch $@ 634 635 netx-dist-tests-remove-cert-from-public: 636 -types=($(SIGNED_REPRODUCERS)) ; \ 637 for which in "$${types[@]}" ; do \ 638 $(BOOT_DIR)/bin/keytool -delete -alias $(TEST_CERT_ALIAS)_$$which -keystore $(PUBLIC_KEYSTORE) -storepass $(PUBLIC_KEYSTORE_PASS) ; \ 639 done ; 640 -rm -rf stamps/netx-dist-tests-import-cert-to-public 641 642 netx-dist-tests-source-files.txt: 643 find $(JNLP_TESTS_ENGINE_SRCDIR) -name '*.java' | sort > $@ 644 645 stamps/netx-dist-tests-compile.stamp: stamps/netx.stamp \ 646 stamps/junit-jnlp-dist-dirs netx-dist-tests-source-files.txt 647 mkdir -p $(JNLP_TESTS_ENGINE_DIR); 648 $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \ 649 -d $(JNLP_TESTS_ENGINE_DIR) \ 650 -classpath $(JUNIT_JAR):$(NETX_DIR)/lib/classes.jar \ 651 @netx-dist-tests-source-files.txt && \ 652 mkdir -p stamps && \ 653 touch $@ 654 655 netx-dist-tests-tests-source-files.txt: 656 find $(JNLP_TESTS_ENGINE_TESTS_SRCDIR) -name '*.java' | sort > $@ 657 658 stamps/netx-dist-tests-tests-compile.stamp: stamps/junit-jnlp-dist-dirs netx-dist-tests-tests-source-files.txt stamps/netx-dist-tests-compile.stamp 659 mkdir -p $(JNLP_TESTS_ENGINE_TESTS_DIR); 660 $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \ 661 -d $(JNLP_TESTS_ENGINE_TESTS_DIR) \ 662 -classpath $(JUNIT_JAR):$(NETX_DIR)/lib/classes.jar:$(JNLP_TESTS_ENGINE_DIR) \ 663 @netx-dist-tests-tests-source-files.txt && \ 664 mkdir -p stamps && \ 665 touch $@ 666 667 stamps/netx-dist-tests-compile-testcases.stamp: stamps/netx.stamp stamps/junit-jnlp-dist-dirs \ 668 netx-dist-tests-source-files.txt stamps/netx-dist-tests-compile.stamp stamps/netx-dist-tests-tests-compile.stamp 669 types=($(ALL_REPRODUCERS)); \ 670 for which in "$${types[@]}" ; do \ 671 . $(abs_top_srcdir)/NEW_LINE_IFS ; \ 672 simpleReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-$$which.txt `); \ 673 IFS="$$IFS_BACKUP" ; \ 674 for dir in "$${simpleReproducers[@]}" ; do \ 675 $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \ 676 -d $(JNLP_TESTS_ENGINE_TESTS_DIR) \ 677 -classpath $(JUNIT_JAR):$(NETX_DIR)/lib/classes.jar:$(JNLP_TESTS_ENGINE_DIR) \ 678 "$(JNLP_TESTS_SRCDIR)/$$which/$$dir/testcases/"* ; \ 679 done ; \ 680 done ; \ 681 mkdir -p stamps && \ 682 touch $@ 683 684 stamps/netx-dist-tests-copy-resources.stamp: stamps/junit-jnlp-dist-dirs 685 types=($(ALL_REPRODUCERS)); \ 686 for which in "$${types[@]}" ; do \ 687 . $(abs_top_srcdir)/NEW_LINE_IFS ; \ 688 simpleReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-$$which.txt `); \ 689 IFS="$$IFS_BACKUP" ; \ 690 for dir in "$${simpleReproducers[@]}" ; do \ 691 cp -R "$(JNLP_TESTS_SRCDIR)/$$which/$$dir/resources/"* $(JNLP_TESTS_SERVER_DEPLOYDIR)/ ; \ 692 done ; \ 693 done ; \ 694 mkdir -p stamps && \ 695 touch $@ 696 697 $(REPRODUCERS_CLASS_NAMES): $(REPRODUCERS_CLASS_WHITELIST) 698 whiteListed=`cat $(REPRODUCERS_CLASS_WHITELIST)`; \ 699 cd $(JNLP_TESTS_ENGINE_TESTS_DIR) ; \ 700 class_names= ; \ 701 for test in `find -type f` ; do \ 702 class_name=`echo $$test | sed -e 's|\.class$$||' -e 's|^\./||'` ; \ 703 class_name=`echo $$class_name | sed -e 's|/|.|g' ` ; \ 704 INLCUDE="NO" ; \ 705 for x in $$whiteListed ; do \ 706 q=`expr match "$$class_name" "$$x"`; \ 707 r=$$? ; \ 708 if [ $$r = 0 ]; then \ 709 echo "$$class_name will be included in reproducers testcases because of $$x pattern in $(REPRODUCERS_CLASS_WHITELIST). Matching was $$q"; \ 710 INLCUDE="YES" ; \ 711 fi; \ 712 done; \ 713 if [ "$$INLCUDE" = "YES" ]; then \ 714 class_names="$$class_names $$class_name" ; \ 715 else \ 716 echo "$$class_name had no match in $(REPRODUCERS_CLASS_WHITELIST). Excluding"; \ 717 fi; \ 718 done ; \ 719 echo $$class_names > $(REPRODUCERS_CLASS_NAMES) 720 721 stamps/run-netx-dist-tests.stamp: stamps/netx-dist.stamp extra-lib/about.jar stamps/plugin.stamp launcher.build/$(javaws) \ 722 javaws.desktop stamps/docs.stamp launcher.build/$(itweb_settings) itweb-settings.desktop \ 723 stamps/netx.stamp stamps/junit-jnlp-dist-dirs stamps/netx-dist-tests-import-cert-to-public \ 724 stamps/netx-dist-tests-compile.stamp stamps/netx-dist-tests-compile-testcases.stamp $(JUNIT_RUNNER_JAR) stamps/netx-dist-tests-copy-resources.stamp\ 725 $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME) $(REPRODUCERS_CLASS_NAMES) stamps/process-custom-reproducers.stamp 726 cd $(JNLP_TESTS_ENGINE_DIR) ; \ 727 class_names=`cat $(REPRODUCERS_CLASS_NAMES)` ; \ 728 CLASSPATH=$(NETX_DIR)/lib/classes.jar:$(JUNIT_JAR):$(JUNIT_RUNNER_JAR):.:$(JNLP_TESTS_ENGINE_TESTS_DIR) \ 729 $(BOOT_DIR)/bin/java $(REPRODUCERS_DPARAMETERS) \ 730 -Xbootclasspath:$(RUNTIME) CommandLine $$class_names 731 if WITH_XSLTPROC 732 $(XSLTPROC) $(TESTS_SRCDIR)/$(REPORT_STYLES_DIRNAME)/logs.xsl $(JNLP_TESTS_ENGINE_DIR)/ServerAccess-logs.xml > $(TESTS_DIR)/logs_reproducers.html 733 $(XSLTPROC) --stringparam logs logs_reproducers.html $(TESTS_SRCDIR)/$(REPORT_STYLES_DIRNAME)/jreport.xsl $(JNLP_TESTS_ENGINE_DIR)/tests-output.xml > $(TESTS_DIR)/index_reproducers.html 734 endif 735 touch $@ 736 737 stamps/process-custom-reproducers.stamp: stamps/junit-jnlp-dist-dirs stamps/netx-dist-tests-import-cert-to-public \ 738 stamps/netx-dist-tests-compile.stamp stamps/netx-dist-tests-compile-testcases.stamp $(JUNIT_RUNNER_JAR) stamps/netx-dist-tests-copy-resources.stamp\ 739 $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME) $(REPRODUCERS_CLASS_NAMES) 740 . $(abs_top_srcdir)/NEW_LINE_IFS ; \ 741 customReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-custom.txt `); \ 742 IFS="$$IFS_BACKUP" ; \ 743 for dir in "$${customReproducers[@]}" ; do \ 744 pushd $(JNLP_TESTS_SRCDIR)/$(CUSTOM_REPRODUCERS)/$$dir/srcs; \ 745 $(MAKE) prepare-reproducer ; \ 746 popd ; \ 747 done ; \ 748 mkdir -p stamps && \ 749 touch $@ 750 751 clean-custom-reproducers: junit-jnlp-dist-custom.txt 752 . $(abs_top_srcdir)/NEW_LINE_IFS ; \ 753 customReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-custom.txt `); \ 754 IFS="$$IFS_BACKUP" ; \ 755 for dir in "$${customReproducers[@]}" ; do \ 756 pushd $(JNLP_TESTS_SRCDIR)/custom/$$dir/srcs; \ 757 $(MAKE) clean-reproducer ; \ 758 popd ; \ 759 done ; \ 760 rm -f stamps/process-custom-reproducers.stamp 761 762 #for global-links you must be root, for opera there do not exists user-links 763 #although this targets will indeed create symbolic links to enable 764 #icedtea-web plugin inside browser it is intended for testing purposes 765 if ENABLE_PLUGIN 766 stamps/user-links.stamp: stamps/netx-dist.stamp extra-lib/about.jar stamps/plugin.stamp \ 767 launcher.build/$(javaws) stamps/netx.stamp $(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) 768 if [ $(MOZILLA_FAMILY_TEST) ] ; then \ 769 if [ -e $(MOZILLA_LOCAL_PLUGINDIR)/$(PLUGIN_LINK_NAME) ] ; then \ 770 mv -f $(MOZILLA_LOCAL_PLUGINDIR)/$(PLUGIN_LINK_NAME) $(MOZILLA_LOCAL_BACKUP_FILE) ; \ 771 echo "$(MOZILLA_LOCAL_PLUGINDIR)/$(PLUGIN_LINK_NAME) backed up as $(MOZILLA_LOCAL_BACKUP_FILE)" ; \ 772 else \ 773 echo "$(MOZILLA_LOCAL_PLUGINDIR)/$(PLUGIN_LINK_NAME) doesn't exists, nothing to be backed up to $(MOZILLA_LOCAL_BACKUP_FILE)" ; \ 774 fi ; \ 775 pushd $(MOZILLA_LOCAL_PLUGINDIR) ; \ 776 ln -s $(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) $(PLUGIN_LINK_NAME) ; \ 777 echo "$(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) linked as $$PWD/$(PLUGIN_LINK_NAME)" ; \ 778 popd ; \ 779 fi ; \ 780 touch $@ 781 782 restore-user-links: 783 if [ $(MOZILLA_FAMILY_TEST) ] ; then \ 784 if [ -e $(MOZILLA_LOCAL_BACKUP_FILE) ] ; then \ 785 mv -f $(MOZILLA_LOCAL_BACKUP_FILE) $(MOZILLA_LOCAL_PLUGINDIR)/$(PLUGIN_LINK_NAME) ; \ 786 echo "$(MOZILLA_LOCAL_BACKUP_FILE) restored as $(MOZILLA_LOCAL_PLUGINDIR)/$(PLUGIN_LINK_NAME)" ; \ 787 else \ 788 rm -f $(MOZILLA_LOCAL_PLUGINDIR)/$(PLUGIN_LINK_NAME) ; \ 789 echo "$(MOZILLA_LOCAL_BACKUP_FILE) do not exists, nothing to be restored. $(MOZILLA_LOCAL_PLUGINDIR)/$(PLUGIN_LINK_NAME) removed" ; \ 790 fi ; \ 791 fi ; 792 if [ -e stamps/user-links.stamp ] ; then \ 793 rm -f stamps/user-links.stamp ; \ 794 fi 795 796 stamps/global-links.stamp: stamps/netx-dist.stamp extra-lib/about.jar stamps/plugin.stamp launcher.build/$(javaws) \ 797 stamps/netx.stamp $(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) 798 if [ $(MOZILLA_FAMILY_TEST) ] ; then \ 799 dir="$(MOZILLA_GLOBAL32_PLUGINDIR)" ; \ 800 arch=`arch` ; \ 801 if [ "$$arch" = "x86_64" ] ; then \ 802 dir="$(MOZILLA_GLOBAL64_PLUGINDIR)" ; \ 803 fi ; \ 804 if [ -e "$$dir"/$(PLUGIN_LINK_NAME) ] ; then \ 805 mv -f "$$dir"/$(PLUGIN_LINK_NAME) $(MOZILLA_GLOBAL_BACKUP_FILE) ; \ 806 echo "$$dir/$(PLUGIN_LINK_NAME) backed up as $(MOZILLA_GLOBAL_BACKUP_FILE)" ; \ 807 else \ 808 echo "$$dir/$(PLUGIN_LINK_NAME) do not exists, nothing to be backed up to $(MOZILLA_GLOBAL_BACKUP_FILE)" ; \ 809 fi ; \ 810 pushd "$$dir" ; \ 811 ln -s $(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) $(PLUGIN_LINK_NAME) ; \ 812 echo "$(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) linked as $$PWD/$(PLUGIN_LINK_NAME)" ; \ 813 popd ; \ 814 fi ; 815 if [ "$(OPERA)" != "" ] ; then \ 816 dir="$(OPERA_GLOBAL32_PLUGINDIR)" ; \ 817 arch=`arch` ; \ 818 if [ "$$arch" = "x86_64" ] ; then \ 819 dir="$(OPERA_GLOBAL64_PLUGINDIR)" ; \ 820 fi ; \ 821 if [ -e "$$dir"/$(PLUGIN_LINK_NAME) ] ; then \ 822 mv -f "$$dir"/$(PLUGIN_LINK_NAME) $(OPERA_GLOBAL_BACKUP_FILE) ; \ 823 echo "$$dir/$(PLUGIN_LINK_NAME) backed up as $(OPERA_GLOBAL_BACKUP_FILE) "; \ 824 else \ 825 echo "$$dir/$(PLUGIN_LINK_NAME) do not exists, nothing to be backed up to $(OPERA_GLOBAL_BACKUP_FILE) "; \ 826 fi ; \ 827 pushd "$$dir" ; \ 828 ln -s $(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) $(PLUGIN_LINK_NAME) ; \ 829 echo "$(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) linked as $$PWD/$(PLUGIN_LINK_NAME)" ; \ 830 popd ; \ 831 fi ; \ 832 touch $@ 833 834 restore-global-links: 835 if [ $(MOZILLA_FAMILY_TEST) ] ; then \ 836 dir="$(MOZILLA_GLOBAL32_PLUGINDIR)" ; \ 837 arch=`arch` ; \ 838 if [ "$$arch" = "x86_64" ] ; then \ 839 dir="$(MOZILLA_GLOBAL64_PLUGINDIR)" ; \ 840 fi ; \ 841 if [ -e $(MOZILLA_GLOBAL_BACKUP_FILE) ] ; then \ 842 mv -f $(MOZILLA_GLOBAL_BACKUP_FILE) "$$dir"/$(PLUGIN_LINK_NAME) ; \ 843 echo "$(MOZILLA_GLOBAL_BACKUP_FILE) restored as $$dir/$(PLUGIN_LINK_NAME)" ; \ 844 else \ 845 rm -f "$$dir"/$(PLUGIN_LINK_NAME) ; \ 846 echo "$(MOZILLA_GLOBAL_BACKUP_FILE) do not exists, nothing to be restored. $$dir/$(PLUGIN_LINK_NAME) removed" ; \ 847 fi ; \ 848 fi ; 849 if [ "$(OPERA)" != "" ] ; then \ 850 dir="$(OPERA_GLOBAL32_PLUGINDIR)" ; \ 851 arch=`arch` ; \ 852 if [ "$$arch" = "x86_64" ] ; then \ 853 dir="$(OPERA_GLOBAL64_PLUGINDIR)" ; \ 854 fi ; \ 855 if [ -e $(OPERA_GLOBAL_BACKUP_FILE) ] ; then \ 856 mv -f $(OPERA_GLOBAL_BACKUP_FILE) "$$dir"/$(PLUGIN_LINK_NAME) ; \ 857 echo "$(OPERA_GLOBAL_BACKUP_FILE) restored as $$dir/$(PLUGIN_LINK_NAME)" ; \ 858 else \ 859 rm -f "$$dir"/$(PLUGIN_LINK_NAME) ; \ 860 echo "$(OPERA_GLOBAL_BACKUP_FILE) do not exist, nothing to be restored. $$dir/$(PLUGIN_LINK_NAME) removed" ; \ 861 fi ; \ 862 fi ; 863 if [ -e stamps/global-links.stamp ] ; then \ 864 rm -f stamps/global-links.stamp ; \ 865 fi 866 endif 867 449 868 netx-unit-tests-source-files.txt: 450 869 find $(NETX_UNIT_TEST_SRCDIR) -name '*.java' | sort > $@ 451 870 452 871 stamps/netx-unit-tests-compile.stamp: stamps/netx.stamp \ 453 netx-unit-tests-source-files.txt 872 netx-unit-tests-source-files.txt stamps/netx-dist-tests-compile.stamp 454 873 mkdir -p $(NETX_UNIT_TEST_DIR) && \ 455 874 $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \ 456 875 -d $(NETX_UNIT_TEST_DIR) \ 457 -classpath $(JUNIT_JAR):$(NETX_DIR)/lib/classes.jar \876 -classpath $(JUNIT_JAR):$(NETX_DIR)/lib/classes.jar:$(JNLP_TESTS_ENGINE_DIR) \ 458 877 @netx-unit-tests-source-files.txt && \ 459 878 mkdir -p stamps && \ 460 879 touch $@ 461 880 462 run-netx-unit-tests: stamps/netx-unit-tests-compile.stamp \ 463 $(JUNIT_RUNNER_JAR) 464 cp {$(NETX_UNIT_TEST_SRCDIR),$(NETX_UNIT_TEST_DIR)}/net/sourceforge/jnlp/basic.jnlp 881 $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME): 882 mkdir $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME) 883 cp $(TESTS_SRCDIR)/$(REPORT_STYLES_DIRNAME)/*.css $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME)/ 884 cp $(TESTS_SRCDIR)/$(REPORT_STYLES_DIRNAME)/*.js $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME)/ 885 886 $(UNIT_CLASS_NAMES): 465 887 cd $(NETX_UNIT_TEST_DIR) ; \ 466 888 class_names= ; \ … … 470 892 class_names="$$class_names $$class_name" ; \ 471 893 done ; \ 472 echo $$class_names ; \ 473 CLASSPATH=$(NETX_DIR)/lib/classes.jar:$(JUNIT_JAR):$(JUNIT_RUNNER_JAR):. \ 474 $(BOOT_DIR)/bin/java -Xbootclasspath:$(RUNTIME) CommandLine $$class_names 475 476 clean-netx-tests: clean-netx-unit-tests clean-junit-runner 894 echo $$class_names > $(UNIT_CLASS_NAMES); 895 896 stamps/run-netx-unit-tests.stamp: stamps/netx-unit-tests-compile.stamp $(JUNIT_RUNNER_JAR) \ 897 $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME) $(UNIT_CLASS_NAMES) 898 filename=" " ; \ 899 cd $(NETX_UNIT_TEST_SRCDIR) ; \ 900 for file in `find . -type f \! -iname "*.java"`; do\ 901 filename=`echo $$file `; \ 902 cp --parents $$filename $(NETX_UNIT_TEST_DIR) ; \ 903 done ; \ 904 cd $(NETX_UNIT_TEST_DIR) ; \ 905 class_names=`cat $(UNIT_CLASS_NAMES)` ; \ 906 CLASSPATH=$(NETX_DIR)/lib/classes.jar:$(JUNIT_JAR):$(JUNIT_RUNNER_JAR):$(JNLP_TESTS_ENGINE_DIR):. \ 907 $(BOOT_DIR)/bin/java -Xbootclasspath:$(RUNTIME) CommandLine $$class_names 908 if WITH_XSLTPROC 909 $(XSLTPROC) $(TESTS_SRCDIR)/$(REPORT_STYLES_DIRNAME)/logs.xsl $(NETX_UNIT_TEST_DIR)/ServerAccess-logs.xml > $(TESTS_DIR)/logs_unit.html 910 $(XSLTPROC) --stringparam logs logs_unit.html $(TESTS_SRCDIR)/$(REPORT_STYLES_DIRNAME)/jreport.xsl $(NETX_UNIT_TEST_DIR)/tests-output.xml > $(TESTS_DIR)/index_unit.html 911 endif 912 mkdir -p stamps && \ 913 touch $@ 914 915 #warning, during this target tests.build/netx/unit/tests-output.xml is backup and rewriten (but not coresponding html file) 916 #xml results run from emma sandbox, however, can be wrong, co the new tests-output.xml is then renamed and orginal one restored 917 #you can add -ix "-*Test*" -ix "-*test*" to ignore all test cases from statistics 918 stamps/run-unit-test-code-coverage.stamp: stamps/netx-unit-tests-compile.stamp $(JUNIT_RUNNER_JAR) \ 919 $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME) $(UNIT_CLASS_NAMES) 920 if WITH_EMMA 921 cd $(NETX_UNIT_TEST_DIR) ; \ 922 for file in $(EMMA_MODIFIED_FILES) ; do \ 923 mv $(NETX_UNIT_TEST_DIR)/$$file $(NETX_UNIT_TEST_DIR)/"$$file""$(EMMA_BACKUP_SUFFIX)" ; \ 924 done ;\ 925 class_names=`cat $(UNIT_CLASS_NAMES)` ; \ 926 $(BOOT_DIR)/bin/java $(EMMA_JAVA_ARGS) -Xbootclasspath:$(RUNTIME) -cp $(EMMA_JAR) -Demma.report.html.out.encoding=UTF-8 emmarun \ 927 -Dreport.html.out.encoding=UTF-8 \ 928 -raw \ 929 -sp $(NETX_SRCDIR) \ 930 -sp $(NETX_UNIT_TEST_SRCDIR) \ 931 -sp $(JUNIT_RUNNER_SRCDIR) \ 932 -r html \ 933 -r xml \ 934 -cp $(NETX_DIR)/lib/classes.jar \ 935 -cp $(JUNIT_JAR) \ 936 -cp $(JUNIT_RUNNER_JAR) \ 937 -cp $(BOOT_DIR)/jre/lib/rt.jar \ 938 -cp $(BOOT_DIR)/jre/lib/jsse.jar \ 939 -cp $(BOOT_DIR)/jre/lib/resources.jar \ 940 -cp $(RHINO_RUNTIME) \ 941 -cp $(JNLP_TESTS_ENGINE_DIR) \ 942 -cp . \ 943 -ix "-org.junit.*" \ 944 -ix "-junit.*" \ 945 CommandLine $$class_names ; \ 946 for file in $(EMMA_MODIFIED_FILES) ; do \ 947 mv $(NETX_UNIT_TEST_DIR)/$$file $(NETX_UNIT_TEST_DIR)/"$$file""$(EMMA_SUFFIX)" ; \ 948 mv $(NETX_UNIT_TEST_DIR)/"$$file""$(EMMA_BACKUP_SUFFIX)" $(NETX_UNIT_TEST_DIR)/$$file ; \ 949 done ; 950 else 951 echo "Sorry, coverage report cant be run without emma installed. Try install emma or specify with-emma value" ; 952 exit 5 953 endif 954 touch $@ 955 956 #warning, during this target tests.build/netx/jnlp_testsengine/tests-output.xml is backup and rewriten (but not coresponding html file) 957 #xml results run from emma sandbox, however, can be wrong, co the new tests-output.xml is then renamed and orginal one restored 958 stamps/run-reproducers-test-code-coverage.stamp: stamps/run-netx-dist-tests.stamp $(REPRODUCERS_CLASS_NAMES) 959 if WITH_EMMA 960 cd $(TESTS_DIR) ; \ 961 for file in $(EMMA_MODIFIED_FILES) ; do \ 962 mv $(JNLP_TESTS_ENGINE_DIR)/$$file $(JNLP_TESTS_ENGINE_DIR)/"$$file""$(EMMA_BACKUP_SUFFIX)" ; \ 963 done ;\ 964 echo "backuping javaws and netx.jar in $(DESTDIR)" ; \ 965 netx_backup=$(DESTDIR)$(datadir)/$(PACKAGE_NAME)/netx_backup.jar ; \ 966 javaws_backup=$(DESTDIR)$(bindir)/javaws_backup ; \ 967 mv $(DESTDIR)$(bindir)/javaws $$javaws_backup ; \ 968 mv $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/netx.jar $$netx_backup ; \ 969 nw_bootclasspath="$(LAUNCHER_BOOTCLASSPATH):$(EMMA_JAR):$$netx_backup" ; \ 970 instructed_dir=$(TESTS_DIR)/instr ; \ 971 echo "instrumenting netx.jar from $$netx_backup through $$instructed_dir" ; \ 972 $(BOOT_DIR)/bin/java -cp $(EMMA_JAR) emma instr -d $$instructed_dir -ip $$netx_backup ; \ 973 pushd $$instructed_dir ; \ 974 $(BOOT_DIR)/bin/jar -cf $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/netx.jar * ; \ 975 popd ; \ 976 rm -rf $$instructed_dir ; \ 977 echo "patching $(javaws)" ; \ 978 cat $$javaws_backup | sed "s,$(LAUNCHER_BOOTCLASSPATH),$$nw_bootclasspath," > $(DESTDIR)$(bindir)/$(javaws) ; \ 979 chmod 777 $(DESTDIR)$(bindir)/$(javaws) ; \ 980 testcases_srcs=( ) ; \ 981 k=0 ; \ 982 types=($(ALL_REPRODUCERS)); \ 983 for which in "$${types[@]}" ; do \ 984 . $(abs_top_srcdir)/NEW_LINE_IFS ; \ 985 simpleReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-$$which.txt `); \ 986 IFS="$$IFS_BACKUP" ; \ 987 for dir in "$${simpleReproducers[@]}" ; do \ 988 testcases_srcs[k]="-sp" ; \ 989 k=$$((k+1)) ; \ 990 testcases_srcs[k]="$(JNLP_TESTS_SRCDIR)/$$which/$$dir/testcases/" ; \ 991 k=$$((k+1)) ; \ 992 done ; \ 993 done ; \ 994 cd $(JNLP_TESTS_ENGINE_DIR) ; \ 995 class_names=`cat $(REPRODUCERS_CLASS_NAMES)` ; \ 996 $(BOOT_DIR)/bin/java \ 997 $(EMMA_JAVA_ARGS) \ 998 $(REPRODUCERS_DPARAMETERS) \ 999 -Xbootclasspath:$(RUNTIME) -cp $(EMMA_JAR) emmarun \ 1000 -raw \ 1001 -cp $(NETX_DIR)/lib/classes.jar \ 1002 -cp $(JUNIT_JAR) \ 1003 -cp $(JUNIT_RUNNER_JAR) \ 1004 -cp $(BOOT_DIR)/jre/lib/rt.jar \ 1005 -cp $(BOOT_DIR)/jre/lib/jsse.jar \ 1006 -cp $(BOOT_DIR)/jre/lib/resources.jar \ 1007 -cp $(RHINO_RUNTIME) \ 1008 -cp . \ 1009 -cp $(JNLP_TESTS_ENGINE_TESTS_DIR) \ 1010 -ix "-org.junit.*" \ 1011 -ix "-junit.*" \ 1012 CommandLine $$class_names ; \ 1013 mv $(JNLP_TESTS_ENGINE_DIR)/coverage.ec $(JNLP_TESTS_ENGINE_DIR)/coverageX.ec ; \ 1014 mv $(JNLP_TESTS_ENGINE_DIR)/coverage.es $(JNLP_TESTS_ENGINE_DIR)/coverageX.es ; \ 1015 $(BOOT_DIR)/bin/java $(EMMA_JAVA_ARGS) -cp $(EMMA_JAR) emma merge \ 1016 -in $(TESTS_DIR)/coverage.em \ 1017 -in $(JNLP_TESTS_ENGINE_DIR)/coverageX.ec \ 1018 -in $(JNLP_TESTS_ENGINE_DIR)/coverageX.es ; \ 1019 $(BOOT_DIR)/bin/java $(EMMA_JAVA_ARGS) -cp $(EMMA_JAR) -Demma.report.html.out.encoding=UTF-8 emma report \ 1020 -Dreport.html.out.encoding=UTF-8 \ 1021 -in $(JNLP_TESTS_ENGINE_DIR)/coverage.es \ 1022 -sp $(NETX_SRCDIR) \ 1023 -sp $(NETX_UNIT_TEST_SRCDIR) \ 1024 -sp $(JUNIT_RUNNER_SRCDIR) \ 1025 -sp $(JNLP_TESTS_ENGINE_SRCDIR) \ 1026 -sp $(JNLP_TESTS_ENGINE_TESTS_SRCDIR) \ 1027 -r html \ 1028 -r xml \ 1029 "$${testcases_srcs[@]}" ; \ 1030 echo "restoring javaws and netx.jar in $(DESTDIR)" ; \ 1031 rm -f $(DESTDIR)$(bindir)/$(javaws) $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/netx.jar ; \ 1032 rm -f $(DESTDIR)$(bindir)/$(javaws); \ 1033 mv $$javaws_backup $(DESTDIR)$(bindir)/$(javaws); \ 1034 mv $$netx_backup $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/netx.jar ; \ 1035 for file in $(EMMA_MODIFIED_FILES) ; do \ 1036 mv $(JNLP_TESTS_ENGINE_DIR)/$$file $(JNLP_TESTS_ENGINE_DIR)/"$$file""$(EMMA_SUFFIX)" ; \ 1037 mv $(JNLP_TESTS_ENGINE_DIR)/"$$file""$(EMMA_BACKUP_SUFFIX)" $(JNLP_TESTS_ENGINE_DIR)/$$file ; \ 1038 done ;\ 1039 rm $(JNLP_TESTS_ENGINE_DIR)/coverage.txt ; 1040 else 1041 echo "Sorry, coverage report cant be run without emma installed. Try install emma or specify with-emma value" ; 1042 exit 5 1043 endif 1044 touch $@ 1045 1046 run-test-code-coverage: run-unit-test-code-coverage run-reproducers-test-code-coverage 1047 if WITH_EMMA 1048 cd $(TESTS_DIR) ; \ 1049 k=0 ; \ 1050 types=($(ALL_REPRODUCERS)); \ 1051 for which in "$${types[@]}" ; do \ 1052 . $(abs_top_srcdir)/NEW_LINE_IFS ; \ 1053 simpleReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-$$which.txt `); \ 1054 IFS="$$IFS_BACKUP" ; \ 1055 for dir in "$${simpleReproducers[@]}" ; do \ 1056 testcases_srcs[k]="-sp" ; \ 1057 k=$$((k+1)) ; \ 1058 testcases_srcs[k]="$(JNLP_TESTS_SRCDIR)/$$which/$$dir/testcases/" ; \ 1059 k=$$((k+1)) ; \ 1060 done ; \ 1061 done ; \ 1062 $(BOOT_DIR)/bin/java $(EMMA_JAVA_ARGS) -cp $(EMMA_JAR) emma merge \ 1063 -in $(NETX_UNIT_TEST_DIR)/coverage.es \ 1064 -in $(JNLP_TESTS_ENGINE_DIR)/coverage.es ; \ 1065 $(BOOT_DIR)/bin/java $(EMMA_JAVA_ARGS) -cp $(EMMA_JAR) -Demma.report.html.out.encoding=UTF-8 emma report \ 1066 -Dreport.html.out.encoding=UTF-8 \ 1067 -in $(TESTS_DIR)/coverage.es \ 1068 -in $(TESTS_DIR)/coverage.em \ 1069 -sp $(NETX_SRCDIR) \ 1070 -sp $(NETX_UNIT_TEST_SRCDIR) \ 1071 -sp $(JUNIT_RUNNER_SRCDIR) \ 1072 -sp $(JNLP_TESTS_ENGINE_SRCDIR) \ 1073 -sp $(JNLP_TESTS_ENGINE_TESTS_SRCDIR) \ 1074 "$${testcases_srcs[@]}" \ 1075 -r html \ 1076 -r xml ; 1077 else 1078 echo "Sorry, coverage report cant be run without emma installed. Try install emma or specify with-emma value" ; 1079 exit 5 1080 endif 1081 1082 clean-netx-tests: clean-netx-unit-tests clean-junit-runner clean-netx-dist-tests clean-test-code-coverage 477 1083 if [ -e $(TESTS_DIR)/netx ]; then \ 478 1084 rmdir $(TESTS_DIR)/netx ; \ … … 484 1090 rm -f $(JUNIT_RUNNER_JAR) 485 1091 486 clean-netx-unit-tests: 1092 clean-netx-unit-tests: clean_tests_reports 487 1093 rm -f netx-unit-tests-source-files.txt 488 1094 rm -rf $(NETX_UNIT_TEST_DIR) 1095 rm -f $(UNIT_CLASS_NAMES) 1096 rm -f stamps/check-pac-functions.stamp 1097 rm -f stamps/run-netx-unit-tests.stamp 489 1098 rm -f stamps/netx-unit-tests-compile.stamp 1099 1100 clean_tests_reports: 1101 rm -rf $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME)/ 1102 rm -f $(TESTS_DIR)/*.html 1103 1104 clean-netx-dist-tests: clean_tests_reports netx-dist-tests-remove-cert-from-public clean-custom-reproducers 1105 rm -f netx-dist-tests-source-files.txt 1106 rm -rf $(JNLP_TESTS_ENGINE_TESTS_DIR) 1107 rm -rf $(JNLP_TESTS_DIR) 1108 rm -rf $(JNLP_TESTS_SERVER_DEPLOYDIR) 1109 rm -rf $(JNLP_TESTS_ENGINE_DIR) 1110 rm -f stamps/junit-jnlp-dist-dirs 1111 rm -f stamps/netx-dist-tests-compile.stamp 1112 rm -f stamps/netx-dist-tests-tests-compile.stamp 1113 rm -f stamps/netx-dist-tests-prepare-reproducers.stamp 1114 rm -f stamps/netx-dist-tests-compile-testcases.stamp 1115 rm -f stamps/netx-dist-tests-copy-resources.stamp 1116 rm -f stamps/netx-dist-tests-sign-some-reproducers.stamp 1117 rm -f stamps/change-dots-to-paths.stamp 1118 rm -f junit-jnlp-dist-simple.txt 1119 rm -f junit-jnlp-dist-custom.txt 1120 rm -f netx-dist-tests-tests-source-files.txt 1121 types=($(SIGNED_REPRODUCERS)) ; \ 1122 for which in "$${types[@]}" ; do \ 1123 rm -f junit-jnlp-dist-$$which.txt ; \ 1124 rm -f $(EXPORTED_TEST_CERT_PREFIX)_$$which.$(EXPORTED_TEST_CERT_SUFFIX) ; \ 1125 done ; 1126 rm -f stamps/exported-test-certs.stamp 1127 rm -f stamps/junit-jnlp-dist-signed.stamp 1128 rm -f $(REPRODUCERS_CLASS_NAMES) 1129 rm -f $(abs_top_builddir)/$(PRIVATE_KEYSTORE_NAME) 1130 rm -f stamps/run-netx-dist-tests.stamp 1131 1132 clean-unit-test-code-coverage: 1133 if [ -e stamps/run-unit-test-code-coverage.stamp ]; then \ 1134 rm -rf $(NETX_UNIT_TEST_DIR)/coverage ; \ 1135 rm -f $(NETX_UNIT_TEST_DIR)/coverage.xml ; \ 1136 rm -f $(NETX_UNIT_TEST_DIR)/coverageX.es ; \ 1137 rm -f $(NETX_UNIT_TEST_DIR)/coverageX.ec ; \ 1138 rm -f $(NETX_UNIT_TEST_DIR)/coverage.es ; \ 1139 rm -f $(NETX_UNIT_TEST_DIR)/tests-output_withEmma.xml ; \ 1140 rm -f stamps/run-unit-test-code-coverage.stamp ; \ 1141 fi 1142 1143 clean-reproducers-test-code-coverage: 1144 if [ -e stamps/run-reproducers-test-code-coverage.stamp ]; then \ 1145 rm -rf $(JNLP_TESTS_ENGINE_DIR)/coverage ; \ 1146 rm -f $(JNLP_TESTS_ENGINE_DIR)/coverage.xml ; \ 1147 rm -f $(JNLP_TESTS_ENGINE_DIR)/coverage.es ; \ 1148 rm -f $(JNLP_TESTS_ENGINE_DIR)/tests-output_withEmma.xml ; \ 1149 rm -f stamps/run-reproducers-test-code-coverage.stamp ; \ 1150 fi 1151 1152 clean-test-code-coverage: clean-unit-test-code-coverage clean-reproducers-test-code-coverage 1153 if [ -e $(TESTS_DIR)/coverage.xml ]; then \ 1154 rm -rf $(TESTS_DIR)/coverage ; \ 1155 rm -f $(TESTS_DIR)/coverage.xml ; \ 1156 rm -f $(TESTS_DIR)/coverage.es ; \ 1157 rm -f $(TESTS_DIR)/coverage.em ; \ 1158 fi 1159 490 1160 491 1161 # plugin tests … … 529 1199 ln -sf $(abs_top_builddir)/javac $(BOOT_DIR)/bin/javac 530 1200 ln -sf $(JAVADOC) $(BOOT_DIR)/bin/javadoc 1201 if [ -e "$(KEYTOOL)" ] ; then \ 1202 ln -sf $(KEYTOOL) $(BOOT_DIR)/bin/keytool ;\ 1203 else \ 1204 echo "#! /bin/sh" > $(BOOT_DIR)/bin/keytool ;\ 1205 echo "echo \"keytool not exist on your system, signed part of reproducers test will fail\"" >> $(BOOT_DIR)/bin/keytool ;\ 1206 chmod 777 $(BOOT_DIR)/bin/keytool ;\ 1207 fi 1208 if [ -e "$(JARSIGNER)" ] ; then \ 1209 ln -sf $(JARSIGNER) $(BOOT_DIR)/bin/jarsigner ;\ 1210 else \ 1211 echo "#! /bin/sh" > $(BOOT_DIR)/bin/jarsigner ;\ 1212 echo "echo \"jarsigner not exist on your system, signed part of reproducers test will fail\"" >> $(BOOT_DIR)/bin/jarsigner ;\ 1213 chmod 777 $(BOOT_DIR)/bin/jarsigner ;\ 1214 fi 531 1215 mkdir -p $(BOOT_DIR)/jre/lib && \ 532 1216 ln -s $(SYSTEM_JRE_DIR)/lib/rt.jar $(BOOT_DIR)/jre/lib && \ … … 535 1219 else \ 536 1220 ln -s rt.jar $(BOOT_DIR)/jre/lib/jsse.jar ; \ 1221 fi 1222 if [ -e $(SYSTEM_JRE_DIR)/lib/resources.jar ] ; then \ 1223 ln -s $(SYSTEM_JRE_DIR)/lib/resources.jar $(BOOT_DIR)/jre/lib ; \ 1224 else \ 1225 ln -s rt.jar $(BOOT_DIR)/jre/lib/resources.jar ; \ 537 1226 fi 538 1227 ln -sf $(SYSTEM_JRE_DIR)/lib/$(JRE_ARCH_DIR) \ … … 574 1263 575 1264 plugin-tests: stamps/plugin-tests.stamp 1265 1266 check-pac-functions: stamps/check-pac-functions.stamp 1267 1268 run-netx-unit-tests: stamps/run-netx-unit-tests.stamp 1269 1270 links: stamps/global-links.stamp 1271 1272 user-links: stamps/user-links.stamp 1273 1274 run-netx-dist-tests: stamps/run-netx-dist-tests.stamp 1275 1276 run-unit-test-code-coverage: stamps/run-unit-test-code-coverage.stamp 1277 1278 run-reproducers-test-code-coverage: stamps/run-reproducers-test-code-coverage.stamp -
branches/vendor/sourceforge/icedtea-web/current/Makefile.in
r348 r416 1 # Makefile.in generated by automake 1.11. 1from Makefile.am.1 # Makefile.in generated by automake 1.11.3 from Makefile.am. 2 2 # @configure_input@ 3 3 4 4 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 5 # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,6 # Inc.5 # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software 6 # Foundation, Inc. 7 7 # This Makefile.in is free software; the Free Software Foundation 8 8 # gives unlimited permission to copy and/or distribute it, … … 59 59 top_distdir = $(distdir) 60 60 am__remove_distdir = \ 61 { test ! -d "$(distdir)" \ 62 || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ 63 && rm -fr "$(distdir)"; }; } 61 if test -d "$(distdir)"; then \ 62 find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ 63 && rm -rf "$(distdir)" \ 64 || { sleep 5 && rm -rf "$(distdir)"; }; \ 65 else :; fi 64 66 DIST_ARCHIVES = $(distdir).tar.gz 65 67 GZIP_ENV = --best 66 68 distuninstallcheck_listfiles = find . -type f -print 69 am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ 70 | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' 67 71 distcleancheck_listfiles = find . -type f -print 68 72 ACLOCAL = @ACLOCAL@ … … 74 78 AUTOMAKE = @AUTOMAKE@ 75 79 AWK = @AWK@ 80 BROWSER_TESTS_MODIFICATION = @BROWSER_TESTS_MODIFICATION@ 76 81 BUILD_ARCH_DIR = @BUILD_ARCH_DIR@ 77 82 CC = @CC@ 78 83 CCDEPMODE = @CCDEPMODE@ 79 84 CFLAGS = @CFLAGS@ 85 CHROME = @CHROME@ 86 CHROMIUM = @CHROMIUM@ 80 87 CPPFLAGS = @CPPFLAGS@ 81 88 CXX = @CXX@ … … 90 97 ECJ = @ECJ@ 91 98 ECJ_JAR = @ECJ_JAR@ 99 EMMA_AVAILABLE = @EMMA_AVAILABLE@ 100 EMMA_JAR = @EMMA_JAR@ 101 EPIPHANY = @EPIPHANY@ 92 102 EXEEXT = @EXEEXT@ 103 FIREFOX = @FIREFOX@ 93 104 FULL_VERSION = @FULL_VERSION@ 94 105 GCJ = @GCJ@ 106 GLIB2_V_216_CFLAGS = @GLIB2_V_216_CFLAGS@ 107 GLIB2_V_216_LIBS = @GLIB2_V_216_LIBS@ 95 108 GLIB_CFLAGS = @GLIB_CFLAGS@ 96 109 GLIB_LIBS = @GLIB_LIBS@ … … 106 119 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ 107 120 JAR = @JAR@ 121 JARSIGNER = @JARSIGNER@ 108 122 JAR_ACCEPTS_STDIN_LIST = @JAR_ACCEPTS_STDIN_LIST@ 109 123 JAR_KNOWS_ATFILE = @JAR_KNOWS_ATFILE@ … … 116 130 JUNIT_AVAILABLE = @JUNIT_AVAILABLE@ 117 131 JUNIT_JAR = @JUNIT_JAR@ 132 KEYTOOL = @KEYTOOL@ 118 133 LDFLAGS = @LDFLAGS@ 119 134 LIBOBJS = @LIBOBJS@ … … 121 136 LTLIBOBJS = @LTLIBOBJS@ 122 137 MAKEINFO = @MAKEINFO@ 138 MIDORI = @MIDORI@ 123 139 MKDIR_P = @MKDIR_P@ 124 140 MOZILLA_CFLAGS = @MOZILLA_CFLAGS@ … … 126 142 MOZILLA_VERSION_COLLAPSED = @MOZILLA_VERSION_COLLAPSED@ 127 143 OBJEXT = @OBJEXT@ 144 OPERA = @OPERA@ 128 145 PACKAGE = @PACKAGE@ 129 146 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ … … 147 164 USING_ECJ = @USING_ECJ@ 148 165 VERSION = @VERSION@ 166 VERSION_DEFS = @VERSION_DEFS@ 149 167 X11_CFLAGS = @X11_CFLAGS@ 150 168 X11_LIBS = @X11_LIBS@ 169 XSLTPROC = @XSLTPROC@ 151 170 ZIP = @ZIP@ 152 171 abs_builddir = @abs_builddir@ … … 201 220 top_builddir = @top_builddir@ 202 221 top_srcdir = @top_srcdir@ 203 NETX_DIR = $(abs_top_builddir)/netx.build204 NETX_SRCDIR = $(abs_top_srcdir)/netx205 NETX_RESOURCE_DIR = $(NETX_SRCDIR)/net/sourceforge/jnlp/resources206 NETX_EXTRA_DIR = $(abs_top_srcdir)/extra/net/sourceforge/javaws/about/resources207 NETX_EXTRA_DIST_DIR = $(abs_top_builddir)/extra-lib/net/sourceforge/javaws/about/resources208 TESTS_SRCDIR = $(abs_top_srcdir)/tests209 TESTS_DIR = $(abs_top_builddir)/tests.build210 NETX_UNIT_TEST_SRCDIR = $(TESTS_SRCDIR)/netx/unit211 NETX_UNIT_TEST_DIR = $(TESTS_DIR)/netx/unit212 JUNIT_RUNNER_DIR = $(TESTS_DIR)/junit-runner213 JUNIT_RUNNER_SRCDIR = $(TESTS_SRCDIR)/junit-runner214 JUNIT_RUNNER_JAR = $(abs_top_builddir)/junit-runner.jar215 216 # Build directories217 BOOT_DIR = $(abs_top_builddir)/bootstrap/jdk1.6.0218 222 @WITH_RHINO_FALSE@RHINO_RUNTIME = 219 223 @WITH_RHINO_TRUE@RHINO_RUNTIME = :$(RHINO_JAR) 220 RUNTIME = $(BOOT_DIR)/jre/lib/rt.jar:$(BOOT_DIR)/jre/lib/jsse.jar$(RHINO_RUNTIME)221 222 # Flags223 IT_CFLAGS = $(CFLAGS) $(ARCHFLAG)224 IT_JAVAC_SETTINGS = -g -encoding utf-8 $(JAVACFLAGS) $(MEMORY_LIMIT) $(PREFER_SOURCE)225 IT_LANGUAGE_SOURCE_VERSION = 6226 IT_CLASS_TARGET_VERSION = 6227 IT_JAVACFLAGS = $(IT_JAVAC_SETTINGS) -source $(IT_LANGUAGE_SOURCE_VERSION) -target $(IT_CLASS_TARGET_VERSION)228 229 #230 # We need the jars in bootclasspath for a couple of reasons231 # - we use classes (in the sun.applet package) loaded by the bootclassloader232 # using another classloader to load classes from the same package causes an233 # IllegalAccessException234 # - we want full privileges235 #236 LAUNCHER_BOOTCLASSPATH = "-Xbootclasspath/a:$(datadir)/$(PACKAGE_NAME)/netx.jar$(RHINO_RUNTIME)"237 PLUGIN_BOOTCLASSPATH = '"-Xbootclasspath/a:$(datadir)/$(PACKAGE_NAME)/netx.jar:$(datadir)/$(PACKAGE_NAME)/plugin.jar$(RHINO_RUNTIME)"'238 239 # Fake update version to work with the Deployment Toolkit script used by Oracle240 # http://download.oracle.com/javase/tutorial/deployment/deploymentInDepth/depltoolkit_index.html241 JDK_UPDATE_VERSION = 50242 243 # Sources list244 PLUGIN_TEST_SRCS = $(abs_top_srcdir)/plugin/tests/LiveConnect/*.java245 NETX_PKGS = javax.jnlp net.sourceforge.nanoxml net.sourceforge.jnlp \246 net.sourceforge.jnlp.cache net.sourceforge.jnlp.config \247 net.sourceforge.jnlp.controlpanel net.sourceforge.jnlp.event \248 net.sourceforge.jnlp.runtime net.sourceforge.jnlp.security \249 net.sourceforge.jnlp.security.viewer net.sourceforge.jnlp.services \250 net.sourceforge.jnlp.tools net.sourceforge.jnlp.util251 252 253 # Conditional defintions254 @ENABLE_PLUGIN_TRUE@ICEDTEAPLUGIN_CLEAN = clean-IcedTeaPlugin255 @ENABLE_PLUGIN_TRUE@LIVECONNECT_DIR = netscape sun/applet256 @ENABLE_PLUGIN_TRUE@PLUGIN_DIR = $(abs_top_builddir)/plugin/icedteanp257 @ENABLE_PLUGIN_TRUE@PLUGIN_SRCDIR = $(abs_top_srcdir)/plugin/icedteanp258 @ENABLE_PLUGIN_TRUE@LIVECONNECT_SRCS = $(PLUGIN_SRCDIR)/java259 @ENABLE_PLUGIN_TRUE@ICEDTEAPLUGIN_TARGET = $(PLUGIN_DIR)/IcedTeaPlugin.so stamps/liveconnect-dist.stamp260 @ENABLE_PLUGIN_TRUE@PLUGIN_PKGS = sun.applet netscape.security netscape.javascript261 224 @CP_SUPPORTS_REFLINK_TRUE@REFLINK = --reflink=auto 262 225 @SRC_DIR_HARDLINKABLE_FALSE@SRC_DIR_LINK = $(REFLINK) … … 267 230 @ENABLE_DOCS_TRUE@@JAVADOC_SUPPORTS_J_OPTIONS_TRUE@JAVADOC_MEM_OPTS = -J-Xmx1024m -J-Xms128m -J-XX:PermSize=32m -J-XX:MaxPermSize=160m 268 231 @WITH_RHINO_FALSE@RHINO_TESTS = 269 @WITH_RHINO_TRUE@RHINO_TESTS = check-pac-functions232 @WITH_RHINO_TRUE@RHINO_TESTS = stamps/check-pac-functions.stamp 270 233 @WITH_JUNIT_FALSE@JUNIT_TESTS = 271 @WITH_JUNIT_TRUE@JUNIT_TESTS = run-netx-unit-tests 272 PLUGIN_VERSION = IcedTea-Web $(FULL_VERSION) 273 EXTRA_DIST = $(top_srcdir)/netx $(top_srcdir)/plugin javaws.png javaws.desktop.in extra launcher \ 274 itweb-settings.desktop.in $(top_srcdir)/tests 275 234 @WITH_JUNIT_TRUE@JUNIT_TESTS = stamps/run-netx-unit-tests.stamp 235 #end of exported autoconf copies 276 236 277 237 # binary names … … 306 266 307 267 .SUFFIXES: 308 am--refresh: 268 am--refresh: Makefile 309 269 @: 310 270 $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) … … 399 359 400 360 dist-bzip2: distdir 401 tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 361 tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 362 $(am__remove_distdir) 363 364 dist-lzip: distdir 365 tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz 402 366 $(am__remove_distdir) 403 367 … … 407 371 408 372 dist-xz: distdir 409 tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz373 tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz 410 374 $(am__remove_distdir) 411 375 … … 438 402 *.tar.lzma*) \ 439 403 lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ 404 *.tar.lz*) \ 405 lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ 440 406 *.tar.xz*) \ 441 407 xz -dc $(distdir).tar.xz | $(am__untar) ;;\ … … 457 423 && $(am__cd) $(distdir)/_build \ 458 424 && ../configure --srcdir=.. --prefix="$$dc_install_base" \ 425 $(AM_DISTCHECK_CONFIGURE_FLAGS) \ 459 426 $(DISTCHECK_CONFIGURE_FLAGS) \ 460 427 && $(MAKE) $(AM_MAKEFLAGS) \ … … 485 452 sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' 486 453 distuninstallcheck: 487 @$(am__cd) '$(distuninstallcheck_dir)' \ 488 && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ 454 @test -n '$(distuninstallcheck_dir)' || { \ 455 echo 'ERROR: trying to run $@ with an empty' \ 456 '$$(distuninstallcheck_dir)' >&2; \ 457 exit 1; \ 458 }; \ 459 $(am__cd) '$(distuninstallcheck_dir)' || { \ 460 echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ 461 exit 1; \ 462 }; \ 463 test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ 489 464 || { echo "ERROR: files left after uninstall:" ; \ 490 465 if test -n "$(DESTDIR)"; then \ … … 517 492 installcheck: installcheck-am 518 493 install-strip: 519 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ 520 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ 521 `test -z '$(STRIP)' || \ 522 echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install 494 if test -z '$(STRIP)'; then \ 495 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ 496 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ 497 install; \ 498 else \ 499 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ 500 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ 501 "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ 502 fi 523 503 mostlyclean-generic: 524 504 … … 605 585 .PHONY: all all-am all-local am--refresh check check-am check-local \ 606 586 clean clean-generic clean-local dist dist-all dist-bzip2 \ 607 dist-gzip dist-lz ma dist-shar dist-tarZ dist-xz dist-zip\608 dist check distclean distclean-generic distcleancheck distdir\609 dist uninstallcheck dvi dvi-am html html-am info info-am\610 in stall install-am install-data install-data-am \587 dist-gzip dist-lzip dist-lzma dist-shar dist-tarZ dist-xz \ 588 dist-zip distcheck distclean distclean-generic distcleancheck \ 589 distdir distuninstallcheck dvi dvi-am html html-am info \ 590 info-am install install-am install-data install-data-am \ 611 591 install-data-local install-dvi install-dvi-am install-exec \ 612 592 install-exec-am install-exec-local install-html \ … … 619 599 620 600 601 export NETX_DIR = $(abs_top_builddir)/netx.build 602 export NETX_SRCDIR = $(abs_top_srcdir)/netx 603 export NETX_RESOURCE_DIR=$(NETX_SRCDIR)/net/sourceforge/jnlp/resources 604 export NETX_EXTRA_DIR=$(abs_top_srcdir)/extra/net/sourceforge/javaws/about/resources 605 export NETX_EXTRA_DIST_DIR=$(abs_top_builddir)/extra-lib/net/sourceforge/javaws/about/resources 606 607 export REPORT_STYLES_DIRNAME=report-styles 608 609 export TESTS_SRCDIR=$(abs_top_srcdir)/tests 610 export TESTS_DIR=$(abs_top_builddir)/tests.build 611 612 export NETX_UNIT_TEST_SRCDIR=$(TESTS_SRCDIR)/netx/unit 613 export NETX_UNIT_TEST_DIR=$(TESTS_DIR)/netx/unit 614 615 export JUNIT_RUNNER_DIR=$(TESTS_DIR)/junit-runner 616 export JUNIT_RUNNER_SRCDIR=$(TESTS_SRCDIR)/junit-runner 617 618 export JNLP_TESTS_ENGINE_SRCDIR=$(TESTS_SRCDIR)/test-extensions 619 export JNLP_TESTS_ENGINE_TESTS_SRCDIR=$(TESTS_SRCDIR)/test-extensions-tests 620 export JNLP_TESTS_SRCDIR=$(TESTS_SRCDIR)/reproducers 621 export JNLP_TESTS_ENGINE_DIR=$(TESTS_DIR)/jnlp_testsengine 622 export JNLP_TESTS_ENGINE_TESTS_DIR=$(TESTS_DIR)/netx/jnlp_testsengine_tests 623 export JNLP_TESTS_SERVER_DEPLOYDIR=$(TESTS_DIR)/jnlp_test_server 624 export JNLP_TESTS_DIR=$(TESTS_DIR)/jnlp_tests 625 export PRIVATE_KEYSTORE_NAME=teststore.ks 626 export PRIVATE_KEYSTORE_PASS=123456789 627 export EXPORTED_TEST_CERT_PREFIX=icedteatests 628 export EXPORTED_TEST_CERT_SUFFIX=crt 629 export TEST_CERT_ALIAS=icedteaweb 630 export PUBLIC_KEYSTORE=${HOME}/.icedtea/security/trusted.certs 631 export PUBLIC_KEYSTORE_PASS=changeit 632 633 export JUNIT_RUNNER_JAR=$(abs_top_builddir)/junit-runner.jar 634 export UNIT_CLASS_NAMES = $(abs_top_builddir)/unit_class_names 635 export REPRODUCERS_CLASS_NAMES = $(abs_top_builddir)/reproducers_class_names 636 export REPRODUCERS_CLASS_WHITELIST = $(abs_top_srcdir)/netx-dist-tests-whitelist 637 export EMMA_JAVA_ARGS=-Xmx2G 638 export EMMA_MODIFIED_FILES=tests-output.xml ServerAccess-logs.xml stdout.log stderr.log all.log 639 export EMMA_BACKUP_SUFFIX=_noEmma 640 export EMMA_SUFFIX=_withEmma 641 export META_MANIFEST = META-INF/MANIFEST.MF 642 export SIGNED_REPRODUCERS=signed 643 export SIMPLE_REPRODUCERS=simple 644 export CUSTOM_REPRODUCERS=custom 645 export ALL_NONCUSTOM_REPRODUCERS=$(SIMPLE_REPRODUCERS) $(SIGNED_REPRODUCERS) 646 export ALL_REPRODUCERS=$(ALL_NONCUSTOM_REPRODUCERS) $(CUSTOM_REPRODUCERS) 647 648 # linking variables 649 export PLUGIN_LINK_NAME=libjavaplugin.so 650 export MOZILLA_LOCAL_PLUGINDIR=${HOME}/.mozilla/plugins 651 export MOZILLA_GLOBAL64_PLUGINDIR=/usr/lib64/mozilla/plugins 652 export MOZILLA_GLOBAL32_PLUGINDIR=/usr/lib/mozilla/plugins 653 export OPERA_GLOBAL64_PLUGINDIR=/usr/lib64/opera/plugins 654 export OPERA_GLOBAL32_PLUGINDIR=/usr/lib/opera/plugins 655 export BUILT_PLUGIN_LIBRARY=IcedTeaPlugin.so 656 export MOZILLA_LOCAL_BACKUP_FILE=${HOME}/$(PLUGIN_LINK_NAME).origU 657 export MOZILLA_GLOBAL_BACKUP_FILE=${HOME}/$(PLUGIN_LINK_NAME).origMG 658 export OPERA_GLOBAL_BACKUP_FILE=${HOME}/$(PLUGIN_LINK_NAME).origOG 659 export MOZILLA_FAMILY_TEST= "$(FIREFOX)" != "" -o "$(CHROMIUM)" != "" -o "$(CHROME)" != "" -o "$(MIDORI)" != "" -o "$(EPIPHANY)" != "" 660 # end of linking variables 661 662 # Build directories 663 664 export BOOT_DIR = $(abs_top_builddir)/bootstrap/jdk1.6.0 665 666 export RUNTIME = $(BOOT_DIR)/jre/lib/rt.jar:$(BOOT_DIR)/jre/lib/jsse.jar$(RHINO_RUNTIME):$(BOOT_DIR)/jre/lib/resources.jar 667 668 # Flags 669 export IT_CFLAGS=$(CFLAGS) $(ARCHFLAG) 670 export IT_JAVAC_SETTINGS=-g -encoding utf-8 $(JAVACFLAGS) $(MEMORY_LIMIT) $(PREFER_SOURCE) 671 export IT_LANGUAGE_SOURCE_VERSION=6 672 export IT_CLASS_TARGET_VERSION=6 673 export IT_JAVACFLAGS=$(IT_JAVAC_SETTINGS) -source $(IT_LANGUAGE_SOURCE_VERSION) -target $(IT_CLASS_TARGET_VERSION) 674 675 # 676 # We need the jars in bootclasspath for a couple of reasons 677 # - we use classes (in the sun.applet package) loaded by the bootclassloader 678 # using another classloader to load classes from the same package causes an 679 # IllegalAccessException 680 # - we want full privileges 681 # 682 export LAUNCHER_BOOTCLASSPATH="-Xbootclasspath/a:$(datadir)/$(PACKAGE_NAME)/netx.jar$(RHINO_RUNTIME)" 683 export PLUGIN_BOOTCLASSPATH='"-Xbootclasspath/a:$(datadir)/$(PACKAGE_NAME)/netx.jar:$(datadir)/$(PACKAGE_NAME)/plugin.jar$(RHINO_RUNTIME)"' 684 685 # Fake update version to work with the Deployment Toolkit script used by Oracle 686 # http://download.oracle.com/javase/tutorial/deployment/deploymentInDepth/depltoolkit_index.html 687 export JDK_UPDATE_VERSION=50 688 689 # Sources list 690 691 export PLUGIN_TEST_SRCS = $(abs_top_srcdir)/plugin/tests/LiveConnect/*.java 692 693 export NETX_PKGS = javax.jnlp net.sourceforge.nanoxml net.sourceforge.jnlp \ 694 net.sourceforge.jnlp.cache net.sourceforge.jnlp.config \ 695 net.sourceforge.jnlp.controlpanel net.sourceforge.jnlp.event \ 696 net.sourceforge.jnlp.runtime net.sourceforge.jnlp.security \ 697 net.sourceforge.jnlp.security.viewer net.sourceforge.jnlp.services \ 698 net.sourceforge.jnlp.tools net.sourceforge.jnlp.util 699 700 # Conditional defintions 701 @ENABLE_PLUGIN_TRUE@export ICEDTEAPLUGIN_CLEAN = clean-IcedTeaPlugin 702 @ENABLE_PLUGIN_TRUE@export LIVECONNECT_DIR = netscape sun/applet 703 @ENABLE_PLUGIN_TRUE@export PLUGIN_DIR=$(abs_top_builddir)/plugin/icedteanp 704 @ENABLE_PLUGIN_TRUE@export PLUGIN_SRCDIR=$(abs_top_srcdir)/plugin/icedteanp 705 @ENABLE_PLUGIN_TRUE@export LIVECONNECT_SRCS = $(PLUGIN_SRCDIR)/java 706 @ENABLE_PLUGIN_TRUE@export ICEDTEAPLUGIN_TARGET = $(PLUGIN_DIR)/$(BUILT_PLUGIN_LIBRARY) stamps/liveconnect-dist.stamp 707 @ENABLE_PLUGIN_TRUE@export PLUGIN_PKGS = sun.applet netscape.security netscape.javascript 708 709 export PLUGIN_VERSION = IcedTea-Web $(FULL_VERSION) 710 711 export EXTRA_DIST = $(top_srcdir)/netx $(top_srcdir)/plugin javaws.png javaws.desktop.in extra launcher \ 712 itweb-settings.desktop.in $(top_srcdir)/tests 713 714 # reproducers `D`shortcuts 715 export DTEST_SERVER=-Dtest.server.dir=$(JNLP_TESTS_SERVER_DEPLOYDIR) 716 export DJAVAWS_BUILD=-Djavaws.build.bin=$(DESTDIR)$(bindir)/$(javaws) 717 export DBROWSERS=-Dused.browsers=$(FIREFOX):$(CHROMIUM):$(CHROME):$(OPERA):$(MIDORI):$(EPIPHANY) 718 export REPRODUCERS_DPARAMETERS= $(DTEST_SERVER) $(DJAVAWS_BUILD) $(DBROWSERS) $(BROWSER_TESTS_MODIFICATION) 719 # end of `D`shortcuts 720 721 #exported autoconf copies 722 export EXPORTED_JAVAC=$(BOOT_DIR)/bin/javac 723 621 724 # Top-Level Targets 622 725 # ================= … … 627 730 check-local: $(RHINO_TESTS) $(JUNIT_TESTS) 628 731 629 clean-local: clean-netx clean-plugin clean-liveconnect clean-extra clean-bootstrap-directory\630 clean-native-ecj clean-launchers clean-desktop-files clean-docs clean-tests 732 clean-local: clean-netx clean-plugin clean-liveconnect clean-extra \ 733 clean-native-ecj clean-launchers clean-desktop-files clean-docs clean-tests clean-bootstrap-directory 631 734 if [ -e stamps ] ; then \ 632 735 rmdir stamps ; \ … … 635 738 .PHONY: clean-IcedTeaPlugin clean-add-netx clean-add-netx-debug clean-add-plugin clean-add-plugin-debug \ 636 739 clean-bootstrap-directory clean-native-ecj clean-desktop-files clean-netx-docs clean-docs clean-plugin-docs \ 637 clean-tests check-local clean-launchers check-pac-functions run-netx-unit-testsclean-netx-tests \740 clean-tests check-local clean-launchers stamps/check-pac-functions.stamp stamps/run-netx-unit-tests.stamp clean-netx-tests \ 638 741 clean-junit-runner clean-netx-unit-tests 639 742 640 743 install-exec-local: 641 744 ${mkinstalldirs} $(DESTDIR)$(bindir) $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/ $(DESTDIR)$(libdir) 642 @ENABLE_PLUGIN_TRUE@ ${INSTALL_PROGRAM} $(PLUGIN_DIR)/ IcedTeaPlugin.so$(DESTDIR)$(libdir)745 @ENABLE_PLUGIN_TRUE@ ${INSTALL_PROGRAM} $(PLUGIN_DIR)/$(BUILT_PLUGIN_LIBRARY) $(DESTDIR)$(libdir) 643 746 @ENABLE_PLUGIN_TRUE@ ${INSTALL_DATA} $(abs_top_builddir)/liveconnect/lib/classes.jar $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/plugin.jar 644 747 ${INSTALL_DATA} $(NETX_DIR)/lib/classes.jar $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/netx.jar … … 664 767 665 768 uninstall-local: 666 rm -f $(DESTDIR)$(libdir)/ IcedTeaPlugin.so769 rm -f $(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) 667 770 rm -f $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/plugin.jar 668 771 rm -f $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/netx.jar … … 678 781 @ENABLE_PLUGIN_TRUE@ cd $(PLUGIN_DIR) && \ 679 782 @ENABLE_PLUGIN_TRUE@ $(CXX) $(CXXFLAGS) \ 783 @ENABLE_PLUGIN_TRUE@ $(DEFS) $(VERSION_DEFS) \ 680 784 @ENABLE_PLUGIN_TRUE@ -DJDK_UPDATE_VERSION="\"$(JDK_UPDATE_VERSION)\"" \ 681 785 @ENABLE_PLUGIN_TRUE@ -DPLUGIN_NAME="\"IcedTea-Web Plugin\"" \ … … 690 794 @ENABLE_PLUGIN_TRUE@ -fPIC -o $@ -c $< 691 795 692 @ENABLE_PLUGIN_TRUE@$(PLUGIN_DIR)/ IcedTeaPlugin.so: $(addprefix $(PLUGIN_DIR)/,$(PLUGIN_OBJECTS))796 @ENABLE_PLUGIN_TRUE@$(PLUGIN_DIR)/$(BUILT_PLUGIN_LIBRARY): $(addprefix $(PLUGIN_DIR)/,$(PLUGIN_OBJECTS)) 693 797 @ENABLE_PLUGIN_TRUE@ cd $(PLUGIN_DIR) && \ 694 798 @ENABLE_PLUGIN_TRUE@ $(CXX) $(CXXFLAGS) \ … … 701 805 @ENABLE_PLUGIN_TRUE@clean-IcedTeaPlugin: 702 806 @ENABLE_PLUGIN_TRUE@ rm -f $(PLUGIN_DIR)/*.o 703 @ENABLE_PLUGIN_TRUE@ rm -f $(PLUGIN_DIR)/ IcedTeaPlugin.so807 @ENABLE_PLUGIN_TRUE@ rm -f $(PLUGIN_DIR)/$(BUILT_PLUGIN_LIBRARY) 704 808 @ENABLE_PLUGIN_TRUE@ if [ $(abs_top_srcdir) != $(abs_top_builddir) ]; then \ 705 809 @ENABLE_PLUGIN_TRUE@ if [ -e $(abs_top_builddir)/plugin/icedteanp ] ; then \ … … 897 1001 fi 898 1002 899 check-pac-functions: stamps/bootstrap-directory.stamp1003 stamps/check-pac-functions.stamp: stamps/bootstrap-directory.stamp 900 1004 ./jrunscript $(abs_top_srcdir)/tests/netx/pac/pac-funcs-test.js \ 901 $$(readlink -f $(abs_top_srcdir)/netx/net/sourceforge/jnlp/runtime/pac-funcs.js) 1005 $$(readlink -f $(abs_top_srcdir)/netx/net/sourceforge/jnlp/runtime/pac-funcs.js) ; \ 1006 mkdir -p stamps && \ 1007 touch $@ 902 1008 903 1009 junit-runner-source-files.txt: 904 1010 find $(JUNIT_RUNNER_SRCDIR) -name '*.java' | sort > $@ 905 1011 906 $(JUNIT_RUNNER_JAR): junit-runner-source-files.txt 1012 $(JUNIT_RUNNER_JAR): junit-runner-source-files.txt stamps/netx-dist-tests-compile.stamp 907 1013 mkdir -p $(JUNIT_RUNNER_DIR) && \ 908 1014 $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \ 909 1015 -d $(JUNIT_RUNNER_DIR) \ 910 -classpath $(JUNIT_JAR) \1016 -classpath $(JUNIT_JAR):$(JNLP_TESTS_ENGINE_DIR) \ 911 1017 @junit-runner-source-files.txt && \ 912 1018 $(BOOT_DIR)/bin/jar cf $@ -C $(JUNIT_RUNNER_DIR) . 913 1019 1020 stamps/junit-jnlp-dist-dirs: junit-jnlp-dist-simple.txt stamps/junit-jnlp-dist-signed.stamp junit-jnlp-dist-custom.txt 1021 mkdir -p $(JNLP_TESTS_SERVER_DEPLOYDIR) 1022 mkdir -p $(JNLP_TESTS_DIR) 1023 touch $@ 1024 1025 junit-jnlp-dist-custom.txt: 1026 cd $(JNLP_TESTS_SRCDIR)/$(CUSTOM_REPRODUCERS)/ ; \ 1027 find . -maxdepth 1 -mindepth 1 | sed "s/.\/*//" > $(abs_top_builddir)/$@ 1028 1029 junit-jnlp-dist-simple.txt: 1030 cd $(JNLP_TESTS_SRCDIR)/simple/ ; \ 1031 find . -maxdepth 1 -mindepth 1 | sed "s/.\/*//" > $(abs_top_builddir)/$@ 1032 1033 stamps/junit-jnlp-dist-signed.stamp: 1034 types=($(SIGNED_REPRODUCERS)) ; \ 1035 for which in "$${types[@]}" ; do \ 1036 pushd $(JNLP_TESTS_SRCDIR)/$$which/ ; \ 1037 find . -maxdepth 1 -mindepth 1 | sed "s/.\/*//" > $(abs_top_builddir)/junit-jnlp-dist-$$which.txt ; \ 1038 popd ; \ 1039 done ; \ 1040 mkdir -p stamps && \ 1041 touch $@ 1042 1043 stamps/netx-dist-tests-prepare-reproducers.stamp: stamps/junit-jnlp-dist-dirs 1044 types=($(ALL_NONCUSTOM_REPRODUCERS)); \ 1045 for which in "$${types[@]}" ; do \ 1046 . $(abs_top_srcdir)/NEW_LINE_IFS ; \ 1047 simpleReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-$$which.txt `); \ 1048 IFS="$$IFS_BACKUP" ; \ 1049 for dir in "$${simpleReproducers[@]}" ; do \ 1050 echo "processing: $$dir" ; \ 1051 mkdir -p "$(JNLP_TESTS_DIR)/$$dir" ; \ 1052 if [ -e "$(JNLP_TESTS_SRCDIR)/$$which/$$dir/srcs/" ]; then \ 1053 d=`pwd` ; \ 1054 cd "$(JNLP_TESTS_SRCDIR)/$$which/$$dir/srcs/" ; \ 1055 srcFiles=`find . -mindepth 1 -type f -name "*.java" | sed "s/.\/*//"` ; \ 1056 notSrcFiles=`find . -mindepth 1 -type f \! -name "*.java" | sed "s/.\/*//"` ; \ 1057 $(BOOT_DIR)/bin/javac -cp $(NETX_DIR)/lib/classes.jar -d "$(JNLP_TESTS_DIR)/$$dir/" $$srcFiles ; \ 1058 if [ -n "$$notSrcFiles" ] ; then \ 1059 cp -R --parents $$notSrcFiles "$(JNLP_TESTS_DIR)/$$dir/" ; \ 1060 fi ; \ 1061 cd "$(JNLP_TESTS_DIR)/$$dir/" ; \ 1062 if [ -f $(META_MANIFEST) ]; \ 1063 then \ 1064 $(BOOT_DIR)/bin/jar cfm "$(JNLP_TESTS_SERVER_DEPLOYDIR)/$$dir.jar" $(META_MANIFEST) * ; \ 1065 else \ 1066 $(BOOT_DIR)/bin/jar cf "$(JNLP_TESTS_SERVER_DEPLOYDIR)/$$dir.jar" * ; \ 1067 fi; \ 1068 cd "$$d" ; \ 1069 fi; \ 1070 done ; \ 1071 done ; \ 1072 mkdir -p stamps && \ 1073 touch $@ 1074 1075 stamps/netx-dist-tests-sign-some-reproducers.stamp: stamps/netx-dist-tests-prepare-reproducers.stamp 1076 keystore=$(abs_top_builddir)/$(PRIVATE_KEYSTORE_NAME); \ 1077 types=($(SIGNED_REPRODUCERS)) ; \ 1078 for which in "$${types[@]}" ; do \ 1079 tcaw=$(TEST_CERT_ALIAS)_$$which ; \ 1080 $(BOOT_DIR)/bin/keytool -genkey -alias $$tcaw -keystore $$keystore -keypass $(PRIVATE_KEYSTORE_PASS) -storepass $(PRIVATE_KEYSTORE_PASS) -dname "cn=$$tcaw, ou=$$tcaw, o=$$tcaw, c=$$tcaw" ; \ 1081 . $(abs_top_srcdir)/NEW_LINE_IFS ; \ 1082 signedReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-$$which.txt `); \ 1083 IFS="$$IFS_BACKUP" ; \ 1084 for dir in "$${signedReproducers[@]}" ; do \ 1085 $(BOOT_DIR)/bin/jarsigner -keystore $$keystore -storepass $(PRIVATE_KEYSTORE_PASS) -keypass $(PRIVATE_KEYSTORE_PASS) "$(JNLP_TESTS_SERVER_DEPLOYDIR)/$$dir.jar" $$tcaw ; \ 1086 done ; \ 1087 done ; \ 1088 mkdir -p stamps && \ 1089 touch $@ 1090 1091 stamps/change-dots-to-paths.stamp: stamps/netx-dist-tests-sign-some-reproducers.stamp 1092 pushd $(JNLP_TESTS_SERVER_DEPLOYDIR); \ 1093 types=($(ALL_NONCUSTOM_REPRODUCERS)); \ 1094 for which in "$${types[@]}" ; do \ 1095 . $(abs_top_srcdir)/NEW_LINE_IFS ; \ 1096 simpleReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-$$which.txt `); \ 1097 IFS="$$IFS_BACKUP" ; \ 1098 for dir in "$${simpleReproducers[@]}" ; do \ 1099 if test "$${dir:0:1}" = "." ; then \ 1100 echo "reproducer $$dir starts with dot. It is forbidden" ; \ 1101 exit 5; \ 1102 fi; \ 1103 if test "$${dir:(-1)}" = "." ; then \ 1104 echo "reproducer $$dir ends with dot. It is forbidden" ; \ 1105 exit 5; \ 1106 fi; \ 1107 q=`expr index "$$dir" .`; \ 1108 r=$$? ; \ 1109 if [ $$r = 0 ]; then \ 1110 slashed_dir="./$${dir//.//}" ; \ 1111 path="`dirname $$slashed_dir`" ; \ 1112 file="`basename $$slashed_dir`.jar" ; \ 1113 echo "copying $$dir.jar to $$path as $$file" ; \ 1114 mkdir --parents $$path ; \ 1115 cp $$dir".jar" "$$path"/"$$file" ; \ 1116 fi ; \ 1117 done ; \ 1118 done ; \ 1119 popd ; \ 1120 mkdir -p stamps && \ 1121 touch $@ 1122 1123 #this always tries to remove previous testcert 1124 #the code is copypasted from netx-dist-tests-remove-cert-from-public, because 1125 #with depending to not stamped target we always have to rerun reproducers targets 1126 stamps/exported-test-certs.stamp: stamps/change-dots-to-paths.stamp 1127 -types=($(SIGNED_REPRODUCERS)) ; \ 1128 for which in "$${types[@]}" ; do \ 1129 $(BOOT_DIR)/bin/keytool -delete -alias $(TEST_CERT_ALIAS)_$$which -keystore $(PUBLIC_KEYSTORE) -storepass $(PUBLIC_KEYSTORE_PASS) ; \ 1130 done ; 1131 types=($(SIGNED_REPRODUCERS)) ; \ 1132 for which in "$${types[@]}" ; do \ 1133 keytool -export -alias $(TEST_CERT_ALIAS)_$$which -file $(EXPORTED_TEST_CERT_PREFIX)_$$which.$(EXPORTED_TEST_CERT_SUFFIX) -storepass $(PRIVATE_KEYSTORE_PASS) -keystore $(PRIVATE_KEYSTORE_NAME) ; \ 1134 done ; 1135 mkdir -p stamps && \ 1136 touch $@ 1137 1138 stamps/netx-dist-tests-import-cert-to-public: stamps/exported-test-certs.stamp 1139 types=($(SIGNED_REPRODUCERS)) ; \ 1140 for which in "$${types[@]}" ; do \ 1141 yes | $(BOOT_DIR)/bin/keytool -import -alias $(TEST_CERT_ALIAS)_$$which -keystore $(PUBLIC_KEYSTORE) -storepass $(PUBLIC_KEYSTORE_PASS) -file $(EXPORTED_TEST_CERT_PREFIX)_$$which.$(EXPORTED_TEST_CERT_SUFFIX) ;\ 1142 done ; 1143 mkdir -p stamps && \ 1144 touch $@ 1145 1146 netx-dist-tests-remove-cert-from-public: 1147 -types=($(SIGNED_REPRODUCERS)) ; \ 1148 for which in "$${types[@]}" ; do \ 1149 $(BOOT_DIR)/bin/keytool -delete -alias $(TEST_CERT_ALIAS)_$$which -keystore $(PUBLIC_KEYSTORE) -storepass $(PUBLIC_KEYSTORE_PASS) ; \ 1150 done ; 1151 -rm -rf stamps/netx-dist-tests-import-cert-to-public 1152 1153 netx-dist-tests-source-files.txt: 1154 find $(JNLP_TESTS_ENGINE_SRCDIR) -name '*.java' | sort > $@ 1155 1156 stamps/netx-dist-tests-compile.stamp: stamps/netx.stamp \ 1157 stamps/junit-jnlp-dist-dirs netx-dist-tests-source-files.txt 1158 mkdir -p $(JNLP_TESTS_ENGINE_DIR); 1159 $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \ 1160 -d $(JNLP_TESTS_ENGINE_DIR) \ 1161 -classpath $(JUNIT_JAR):$(NETX_DIR)/lib/classes.jar \ 1162 @netx-dist-tests-source-files.txt && \ 1163 mkdir -p stamps && \ 1164 touch $@ 1165 1166 netx-dist-tests-tests-source-files.txt: 1167 find $(JNLP_TESTS_ENGINE_TESTS_SRCDIR) -name '*.java' | sort > $@ 1168 1169 stamps/netx-dist-tests-tests-compile.stamp: stamps/junit-jnlp-dist-dirs netx-dist-tests-tests-source-files.txt stamps/netx-dist-tests-compile.stamp 1170 mkdir -p $(JNLP_TESTS_ENGINE_TESTS_DIR); 1171 $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \ 1172 -d $(JNLP_TESTS_ENGINE_TESTS_DIR) \ 1173 -classpath $(JUNIT_JAR):$(NETX_DIR)/lib/classes.jar:$(JNLP_TESTS_ENGINE_DIR) \ 1174 @netx-dist-tests-tests-source-files.txt && \ 1175 mkdir -p stamps && \ 1176 touch $@ 1177 1178 stamps/netx-dist-tests-compile-testcases.stamp: stamps/netx.stamp stamps/junit-jnlp-dist-dirs \ 1179 netx-dist-tests-source-files.txt stamps/netx-dist-tests-compile.stamp stamps/netx-dist-tests-tests-compile.stamp 1180 types=($(ALL_REPRODUCERS)); \ 1181 for which in "$${types[@]}" ; do \ 1182 . $(abs_top_srcdir)/NEW_LINE_IFS ; \ 1183 simpleReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-$$which.txt `); \ 1184 IFS="$$IFS_BACKUP" ; \ 1185 for dir in "$${simpleReproducers[@]}" ; do \ 1186 $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \ 1187 -d $(JNLP_TESTS_ENGINE_TESTS_DIR) \ 1188 -classpath $(JUNIT_JAR):$(NETX_DIR)/lib/classes.jar:$(JNLP_TESTS_ENGINE_DIR) \ 1189 "$(JNLP_TESTS_SRCDIR)/$$which/$$dir/testcases/"* ; \ 1190 done ; \ 1191 done ; \ 1192 mkdir -p stamps && \ 1193 touch $@ 1194 1195 stamps/netx-dist-tests-copy-resources.stamp: stamps/junit-jnlp-dist-dirs 1196 types=($(ALL_REPRODUCERS)); \ 1197 for which in "$${types[@]}" ; do \ 1198 . $(abs_top_srcdir)/NEW_LINE_IFS ; \ 1199 simpleReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-$$which.txt `); \ 1200 IFS="$$IFS_BACKUP" ; \ 1201 for dir in "$${simpleReproducers[@]}" ; do \ 1202 cp -R "$(JNLP_TESTS_SRCDIR)/$$which/$$dir/resources/"* $(JNLP_TESTS_SERVER_DEPLOYDIR)/ ; \ 1203 done ; \ 1204 done ; \ 1205 mkdir -p stamps && \ 1206 touch $@ 1207 1208 $(REPRODUCERS_CLASS_NAMES): $(REPRODUCERS_CLASS_WHITELIST) 1209 whiteListed=`cat $(REPRODUCERS_CLASS_WHITELIST)`; \ 1210 cd $(JNLP_TESTS_ENGINE_TESTS_DIR) ; \ 1211 class_names= ; \ 1212 for test in `find -type f` ; do \ 1213 class_name=`echo $$test | sed -e 's|\.class$$||' -e 's|^\./||'` ; \ 1214 class_name=`echo $$class_name | sed -e 's|/|.|g' ` ; \ 1215 INLCUDE="NO" ; \ 1216 for x in $$whiteListed ; do \ 1217 q=`expr match "$$class_name" "$$x"`; \ 1218 r=$$? ; \ 1219 if [ $$r = 0 ]; then \ 1220 echo "$$class_name will be included in reproducers testcases because of $$x pattern in $(REPRODUCERS_CLASS_WHITELIST). Matching was $$q"; \ 1221 INLCUDE="YES" ; \ 1222 fi; \ 1223 done; \ 1224 if [ "$$INLCUDE" = "YES" ]; then \ 1225 class_names="$$class_names $$class_name" ; \ 1226 else \ 1227 echo "$$class_name had no match in $(REPRODUCERS_CLASS_WHITELIST). Excluding"; \ 1228 fi; \ 1229 done ; \ 1230 echo $$class_names > $(REPRODUCERS_CLASS_NAMES) 1231 1232 stamps/run-netx-dist-tests.stamp: stamps/netx-dist.stamp extra-lib/about.jar stamps/plugin.stamp launcher.build/$(javaws) \ 1233 javaws.desktop stamps/docs.stamp launcher.build/$(itweb_settings) itweb-settings.desktop \ 1234 stamps/netx.stamp stamps/junit-jnlp-dist-dirs stamps/netx-dist-tests-import-cert-to-public \ 1235 stamps/netx-dist-tests-compile.stamp stamps/netx-dist-tests-compile-testcases.stamp $(JUNIT_RUNNER_JAR) stamps/netx-dist-tests-copy-resources.stamp\ 1236 $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME) $(REPRODUCERS_CLASS_NAMES) stamps/process-custom-reproducers.stamp 1237 cd $(JNLP_TESTS_ENGINE_DIR) ; \ 1238 class_names=`cat $(REPRODUCERS_CLASS_NAMES)` ; \ 1239 CLASSPATH=$(NETX_DIR)/lib/classes.jar:$(JUNIT_JAR):$(JUNIT_RUNNER_JAR):.:$(JNLP_TESTS_ENGINE_TESTS_DIR) \ 1240 $(BOOT_DIR)/bin/java $(REPRODUCERS_DPARAMETERS) \ 1241 -Xbootclasspath:$(RUNTIME) CommandLine $$class_names 1242 @WITH_XSLTPROC_TRUE@ $(XSLTPROC) $(TESTS_SRCDIR)/$(REPORT_STYLES_DIRNAME)/logs.xsl $(JNLP_TESTS_ENGINE_DIR)/ServerAccess-logs.xml > $(TESTS_DIR)/logs_reproducers.html 1243 @WITH_XSLTPROC_TRUE@ $(XSLTPROC) --stringparam logs logs_reproducers.html $(TESTS_SRCDIR)/$(REPORT_STYLES_DIRNAME)/jreport.xsl $(JNLP_TESTS_ENGINE_DIR)/tests-output.xml > $(TESTS_DIR)/index_reproducers.html 1244 touch $@ 1245 1246 stamps/process-custom-reproducers.stamp: stamps/junit-jnlp-dist-dirs stamps/netx-dist-tests-import-cert-to-public \ 1247 stamps/netx-dist-tests-compile.stamp stamps/netx-dist-tests-compile-testcases.stamp $(JUNIT_RUNNER_JAR) stamps/netx-dist-tests-copy-resources.stamp\ 1248 $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME) $(REPRODUCERS_CLASS_NAMES) 1249 . $(abs_top_srcdir)/NEW_LINE_IFS ; \ 1250 customReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-custom.txt `); \ 1251 IFS="$$IFS_BACKUP" ; \ 1252 for dir in "$${customReproducers[@]}" ; do \ 1253 pushd $(JNLP_TESTS_SRCDIR)/$(CUSTOM_REPRODUCERS)/$$dir/srcs; \ 1254 $(MAKE) prepare-reproducer ; \ 1255 popd ; \ 1256 done ; \ 1257 mkdir -p stamps && \ 1258 touch $@ 1259 1260 clean-custom-reproducers: junit-jnlp-dist-custom.txt 1261 . $(abs_top_srcdir)/NEW_LINE_IFS ; \ 1262 customReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-custom.txt `); \ 1263 IFS="$$IFS_BACKUP" ; \ 1264 for dir in "$${customReproducers[@]}" ; do \ 1265 pushd $(JNLP_TESTS_SRCDIR)/custom/$$dir/srcs; \ 1266 $(MAKE) clean-reproducer ; \ 1267 popd ; \ 1268 done ; \ 1269 rm -f stamps/process-custom-reproducers.stamp 1270 1271 #for global-links you must be root, for opera there do not exists user-links 1272 #although this targets will indeed create symbolic links to enable 1273 #icedtea-web plugin inside browser it is intended for testing purposes 1274 @ENABLE_PLUGIN_TRUE@stamps/user-links.stamp: stamps/netx-dist.stamp extra-lib/about.jar stamps/plugin.stamp \ 1275 @ENABLE_PLUGIN_TRUE@ launcher.build/$(javaws) stamps/netx.stamp $(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) 1276 @ENABLE_PLUGIN_TRUE@ if [ $(MOZILLA_FAMILY_TEST) ] ; then \ 1277 @ENABLE_PLUGIN_TRUE@ if [ -e $(MOZILLA_LOCAL_PLUGINDIR)/$(PLUGIN_LINK_NAME) ] ; then \ 1278 @ENABLE_PLUGIN_TRUE@ mv -f $(MOZILLA_LOCAL_PLUGINDIR)/$(PLUGIN_LINK_NAME) $(MOZILLA_LOCAL_BACKUP_FILE) ; \ 1279 @ENABLE_PLUGIN_TRUE@ echo "$(MOZILLA_LOCAL_PLUGINDIR)/$(PLUGIN_LINK_NAME) backed up as $(MOZILLA_LOCAL_BACKUP_FILE)" ; \ 1280 @ENABLE_PLUGIN_TRUE@ else \ 1281 @ENABLE_PLUGIN_TRUE@ echo "$(MOZILLA_LOCAL_PLUGINDIR)/$(PLUGIN_LINK_NAME) doesn't exists, nothing to be backed up to $(MOZILLA_LOCAL_BACKUP_FILE)" ; \ 1282 @ENABLE_PLUGIN_TRUE@ fi ; \ 1283 @ENABLE_PLUGIN_TRUE@ pushd $(MOZILLA_LOCAL_PLUGINDIR) ; \ 1284 @ENABLE_PLUGIN_TRUE@ ln -s $(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) $(PLUGIN_LINK_NAME) ; \ 1285 @ENABLE_PLUGIN_TRUE@ echo "$(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) linked as $$PWD/$(PLUGIN_LINK_NAME)" ; \ 1286 @ENABLE_PLUGIN_TRUE@ popd ; \ 1287 @ENABLE_PLUGIN_TRUE@ fi ; \ 1288 @ENABLE_PLUGIN_TRUE@ touch $@ 1289 1290 @ENABLE_PLUGIN_TRUE@restore-user-links: 1291 @ENABLE_PLUGIN_TRUE@ if [ $(MOZILLA_FAMILY_TEST) ] ; then \ 1292 @ENABLE_PLUGIN_TRUE@ if [ -e $(MOZILLA_LOCAL_BACKUP_FILE) ] ; then \ 1293 @ENABLE_PLUGIN_TRUE@ mv -f $(MOZILLA_LOCAL_BACKUP_FILE) $(MOZILLA_LOCAL_PLUGINDIR)/$(PLUGIN_LINK_NAME) ; \ 1294 @ENABLE_PLUGIN_TRUE@ echo "$(MOZILLA_LOCAL_BACKUP_FILE) restored as $(MOZILLA_LOCAL_PLUGINDIR)/$(PLUGIN_LINK_NAME)" ; \ 1295 @ENABLE_PLUGIN_TRUE@ else \ 1296 @ENABLE_PLUGIN_TRUE@ rm -f $(MOZILLA_LOCAL_PLUGINDIR)/$(PLUGIN_LINK_NAME) ; \ 1297 @ENABLE_PLUGIN_TRUE@ echo "$(MOZILLA_LOCAL_BACKUP_FILE) do not exists, nothing to be restored. $(MOZILLA_LOCAL_PLUGINDIR)/$(PLUGIN_LINK_NAME) removed" ; \ 1298 @ENABLE_PLUGIN_TRUE@ fi ; \ 1299 @ENABLE_PLUGIN_TRUE@ fi ; 1300 @ENABLE_PLUGIN_TRUE@ if [ -e stamps/user-links.stamp ] ; then \ 1301 @ENABLE_PLUGIN_TRUE@ rm -f stamps/user-links.stamp ; \ 1302 @ENABLE_PLUGIN_TRUE@ fi 1303 1304 @ENABLE_PLUGIN_TRUE@stamps/global-links.stamp: stamps/netx-dist.stamp extra-lib/about.jar stamps/plugin.stamp launcher.build/$(javaws) \ 1305 @ENABLE_PLUGIN_TRUE@ stamps/netx.stamp $(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) 1306 @ENABLE_PLUGIN_TRUE@ if [ $(MOZILLA_FAMILY_TEST) ] ; then \ 1307 @ENABLE_PLUGIN_TRUE@ dir="$(MOZILLA_GLOBAL32_PLUGINDIR)" ; \ 1308 @ENABLE_PLUGIN_TRUE@ arch=`arch` ; \ 1309 @ENABLE_PLUGIN_TRUE@ if [ "$$arch" = "x86_64" ] ; then \ 1310 @ENABLE_PLUGIN_TRUE@ dir="$(MOZILLA_GLOBAL64_PLUGINDIR)" ; \ 1311 @ENABLE_PLUGIN_TRUE@ fi ; \ 1312 @ENABLE_PLUGIN_TRUE@ if [ -e "$$dir"/$(PLUGIN_LINK_NAME) ] ; then \ 1313 @ENABLE_PLUGIN_TRUE@ mv -f "$$dir"/$(PLUGIN_LINK_NAME) $(MOZILLA_GLOBAL_BACKUP_FILE) ; \ 1314 @ENABLE_PLUGIN_TRUE@ echo "$$dir/$(PLUGIN_LINK_NAME) backed up as $(MOZILLA_GLOBAL_BACKUP_FILE)" ; \ 1315 @ENABLE_PLUGIN_TRUE@ else \ 1316 @ENABLE_PLUGIN_TRUE@ echo "$$dir/$(PLUGIN_LINK_NAME) do not exists, nothing to be backed up to $(MOZILLA_GLOBAL_BACKUP_FILE)" ; \ 1317 @ENABLE_PLUGIN_TRUE@ fi ; \ 1318 @ENABLE_PLUGIN_TRUE@ pushd "$$dir" ; \ 1319 @ENABLE_PLUGIN_TRUE@ ln -s $(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) $(PLUGIN_LINK_NAME) ; \ 1320 @ENABLE_PLUGIN_TRUE@ echo "$(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) linked as $$PWD/$(PLUGIN_LINK_NAME)" ; \ 1321 @ENABLE_PLUGIN_TRUE@ popd ; \ 1322 @ENABLE_PLUGIN_TRUE@ fi ; 1323 @ENABLE_PLUGIN_TRUE@ if [ "$(OPERA)" != "" ] ; then \ 1324 @ENABLE_PLUGIN_TRUE@ dir="$(OPERA_GLOBAL32_PLUGINDIR)" ; \ 1325 @ENABLE_PLUGIN_TRUE@ arch=`arch` ; \ 1326 @ENABLE_PLUGIN_TRUE@ if [ "$$arch" = "x86_64" ] ; then \ 1327 @ENABLE_PLUGIN_TRUE@ dir="$(OPERA_GLOBAL64_PLUGINDIR)" ; \ 1328 @ENABLE_PLUGIN_TRUE@ fi ; \ 1329 @ENABLE_PLUGIN_TRUE@ if [ -e "$$dir"/$(PLUGIN_LINK_NAME) ] ; then \ 1330 @ENABLE_PLUGIN_TRUE@ mv -f "$$dir"/$(PLUGIN_LINK_NAME) $(OPERA_GLOBAL_BACKUP_FILE) ; \ 1331 @ENABLE_PLUGIN_TRUE@ echo "$$dir/$(PLUGIN_LINK_NAME) backed up as $(OPERA_GLOBAL_BACKUP_FILE) "; \ 1332 @ENABLE_PLUGIN_TRUE@ else \ 1333 @ENABLE_PLUGIN_TRUE@ echo "$$dir/$(PLUGIN_LINK_NAME) do not exists, nothing to be backed up to $(OPERA_GLOBAL_BACKUP_FILE) "; \ 1334 @ENABLE_PLUGIN_TRUE@ fi ; \ 1335 @ENABLE_PLUGIN_TRUE@ pushd "$$dir" ; \ 1336 @ENABLE_PLUGIN_TRUE@ ln -s $(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) $(PLUGIN_LINK_NAME) ; \ 1337 @ENABLE_PLUGIN_TRUE@ echo "$(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) linked as $$PWD/$(PLUGIN_LINK_NAME)" ; \ 1338 @ENABLE_PLUGIN_TRUE@ popd ; \ 1339 @ENABLE_PLUGIN_TRUE@ fi ; \ 1340 @ENABLE_PLUGIN_TRUE@ touch $@ 1341 1342 @ENABLE_PLUGIN_TRUE@restore-global-links: 1343 @ENABLE_PLUGIN_TRUE@ if [ $(MOZILLA_FAMILY_TEST) ] ; then \ 1344 @ENABLE_PLUGIN_TRUE@ dir="$(MOZILLA_GLOBAL32_PLUGINDIR)" ; \ 1345 @ENABLE_PLUGIN_TRUE@ arch=`arch` ; \ 1346 @ENABLE_PLUGIN_TRUE@ if [ "$$arch" = "x86_64" ] ; then \ 1347 @ENABLE_PLUGIN_TRUE@ dir="$(MOZILLA_GLOBAL64_PLUGINDIR)" ; \ 1348 @ENABLE_PLUGIN_TRUE@ fi ; \ 1349 @ENABLE_PLUGIN_TRUE@ if [ -e $(MOZILLA_GLOBAL_BACKUP_FILE) ] ; then \ 1350 @ENABLE_PLUGIN_TRUE@ mv -f $(MOZILLA_GLOBAL_BACKUP_FILE) "$$dir"/$(PLUGIN_LINK_NAME) ; \ 1351 @ENABLE_PLUGIN_TRUE@ echo "$(MOZILLA_GLOBAL_BACKUP_FILE) restored as $$dir/$(PLUGIN_LINK_NAME)" ; \ 1352 @ENABLE_PLUGIN_TRUE@ else \ 1353 @ENABLE_PLUGIN_TRUE@ rm -f "$$dir"/$(PLUGIN_LINK_NAME) ; \ 1354 @ENABLE_PLUGIN_TRUE@ echo "$(MOZILLA_GLOBAL_BACKUP_FILE) do not exists, nothing to be restored. $$dir/$(PLUGIN_LINK_NAME) removed" ; \ 1355 @ENABLE_PLUGIN_TRUE@ fi ; \ 1356 @ENABLE_PLUGIN_TRUE@ fi ; 1357 @ENABLE_PLUGIN_TRUE@ if [ "$(OPERA)" != "" ] ; then \ 1358 @ENABLE_PLUGIN_TRUE@ dir="$(OPERA_GLOBAL32_PLUGINDIR)" ; \ 1359 @ENABLE_PLUGIN_TRUE@ arch=`arch` ; \ 1360 @ENABLE_PLUGIN_TRUE@ if [ "$$arch" = "x86_64" ] ; then \ 1361 @ENABLE_PLUGIN_TRUE@ dir="$(OPERA_GLOBAL64_PLUGINDIR)" ; \ 1362 @ENABLE_PLUGIN_TRUE@ fi ; \ 1363 @ENABLE_PLUGIN_TRUE@ if [ -e $(OPERA_GLOBAL_BACKUP_FILE) ] ; then \ 1364 @ENABLE_PLUGIN_TRUE@ mv -f $(OPERA_GLOBAL_BACKUP_FILE) "$$dir"/$(PLUGIN_LINK_NAME) ; \ 1365 @ENABLE_PLUGIN_TRUE@ echo "$(OPERA_GLOBAL_BACKUP_FILE) restored as $$dir/$(PLUGIN_LINK_NAME)" ; \ 1366 @ENABLE_PLUGIN_TRUE@ else \ 1367 @ENABLE_PLUGIN_TRUE@ rm -f "$$dir"/$(PLUGIN_LINK_NAME) ; \ 1368 @ENABLE_PLUGIN_TRUE@ echo "$(OPERA_GLOBAL_BACKUP_FILE) do not exist, nothing to be restored. $$dir/$(PLUGIN_LINK_NAME) removed" ; \ 1369 @ENABLE_PLUGIN_TRUE@ fi ; \ 1370 @ENABLE_PLUGIN_TRUE@ fi ; 1371 @ENABLE_PLUGIN_TRUE@ if [ -e stamps/global-links.stamp ] ; then \ 1372 @ENABLE_PLUGIN_TRUE@ rm -f stamps/global-links.stamp ; \ 1373 @ENABLE_PLUGIN_TRUE@ fi 1374 914 1375 netx-unit-tests-source-files.txt: 915 1376 find $(NETX_UNIT_TEST_SRCDIR) -name '*.java' | sort > $@ 916 1377 917 1378 stamps/netx-unit-tests-compile.stamp: stamps/netx.stamp \ 918 netx-unit-tests-source-files.txt 1379 netx-unit-tests-source-files.txt stamps/netx-dist-tests-compile.stamp 919 1380 mkdir -p $(NETX_UNIT_TEST_DIR) && \ 920 1381 $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \ 921 1382 -d $(NETX_UNIT_TEST_DIR) \ 922 -classpath $(JUNIT_JAR):$(NETX_DIR)/lib/classes.jar \1383 -classpath $(JUNIT_JAR):$(NETX_DIR)/lib/classes.jar:$(JNLP_TESTS_ENGINE_DIR) \ 923 1384 @netx-unit-tests-source-files.txt && \ 924 1385 mkdir -p stamps && \ 925 1386 touch $@ 926 1387 927 run-netx-unit-tests: stamps/netx-unit-tests-compile.stamp \ 928 $(JUNIT_RUNNER_JAR) 929 cp {$(NETX_UNIT_TEST_SRCDIR),$(NETX_UNIT_TEST_DIR)}/net/sourceforge/jnlp/basic.jnlp 1388 $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME): 1389 mkdir $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME) 1390 cp $(TESTS_SRCDIR)/$(REPORT_STYLES_DIRNAME)/*.css $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME)/ 1391 cp $(TESTS_SRCDIR)/$(REPORT_STYLES_DIRNAME)/*.js $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME)/ 1392 1393 $(UNIT_CLASS_NAMES): 930 1394 cd $(NETX_UNIT_TEST_DIR) ; \ 931 1395 class_names= ; \ … … 935 1399 class_names="$$class_names $$class_name" ; \ 936 1400 done ; \ 937 echo $$class_names ; \ 938 CLASSPATH=$(NETX_DIR)/lib/classes.jar:$(JUNIT_JAR):$(JUNIT_RUNNER_JAR):. \ 939 $(BOOT_DIR)/bin/java -Xbootclasspath:$(RUNTIME) CommandLine $$class_names 940 941 clean-netx-tests: clean-netx-unit-tests clean-junit-runner 1401 echo $$class_names > $(UNIT_CLASS_NAMES); 1402 1403 stamps/run-netx-unit-tests.stamp: stamps/netx-unit-tests-compile.stamp $(JUNIT_RUNNER_JAR) \ 1404 $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME) $(UNIT_CLASS_NAMES) 1405 filename=" " ; \ 1406 cd $(NETX_UNIT_TEST_SRCDIR) ; \ 1407 for file in `find . -type f \! -iname "*.java"`; do\ 1408 filename=`echo $$file `; \ 1409 cp --parents $$filename $(NETX_UNIT_TEST_DIR) ; \ 1410 done ; \ 1411 cd $(NETX_UNIT_TEST_DIR) ; \ 1412 class_names=`cat $(UNIT_CLASS_NAMES)` ; \ 1413 CLASSPATH=$(NETX_DIR)/lib/classes.jar:$(JUNIT_JAR):$(JUNIT_RUNNER_JAR):$(JNLP_TESTS_ENGINE_DIR):. \ 1414 $(BOOT_DIR)/bin/java -Xbootclasspath:$(RUNTIME) CommandLine $$class_names 1415 @WITH_XSLTPROC_TRUE@ $(XSLTPROC) $(TESTS_SRCDIR)/$(REPORT_STYLES_DIRNAME)/logs.xsl $(NETX_UNIT_TEST_DIR)/ServerAccess-logs.xml > $(TESTS_DIR)/logs_unit.html 1416 @WITH_XSLTPROC_TRUE@ $(XSLTPROC) --stringparam logs logs_unit.html $(TESTS_SRCDIR)/$(REPORT_STYLES_DIRNAME)/jreport.xsl $(NETX_UNIT_TEST_DIR)/tests-output.xml > $(TESTS_DIR)/index_unit.html 1417 mkdir -p stamps && \ 1418 touch $@ 1419 1420 #warning, during this target tests.build/netx/unit/tests-output.xml is backup and rewriten (but not coresponding html file) 1421 #xml results run from emma sandbox, however, can be wrong, co the new tests-output.xml is then renamed and orginal one restored 1422 #you can add -ix "-*Test*" -ix "-*test*" to ignore all test cases from statistics 1423 stamps/run-unit-test-code-coverage.stamp: stamps/netx-unit-tests-compile.stamp $(JUNIT_RUNNER_JAR) \ 1424 $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME) $(UNIT_CLASS_NAMES) 1425 @WITH_EMMA_TRUE@ cd $(NETX_UNIT_TEST_DIR) ; \ 1426 @WITH_EMMA_TRUE@ for file in $(EMMA_MODIFIED_FILES) ; do \ 1427 @WITH_EMMA_TRUE@ mv $(NETX_UNIT_TEST_DIR)/$$file $(NETX_UNIT_TEST_DIR)/"$$file""$(EMMA_BACKUP_SUFFIX)" ; \ 1428 @WITH_EMMA_TRUE@ done ;\ 1429 @WITH_EMMA_TRUE@ class_names=`cat $(UNIT_CLASS_NAMES)` ; \ 1430 @WITH_EMMA_TRUE@ $(BOOT_DIR)/bin/java $(EMMA_JAVA_ARGS) -Xbootclasspath:$(RUNTIME) -cp $(EMMA_JAR) -Demma.report.html.out.encoding=UTF-8 emmarun \ 1431 @WITH_EMMA_TRUE@ -Dreport.html.out.encoding=UTF-8 \ 1432 @WITH_EMMA_TRUE@ -raw \ 1433 @WITH_EMMA_TRUE@ -sp $(NETX_SRCDIR) \ 1434 @WITH_EMMA_TRUE@ -sp $(NETX_UNIT_TEST_SRCDIR) \ 1435 @WITH_EMMA_TRUE@ -sp $(JUNIT_RUNNER_SRCDIR) \ 1436 @WITH_EMMA_TRUE@ -r html \ 1437 @WITH_EMMA_TRUE@ -r xml \ 1438 @WITH_EMMA_TRUE@ -cp $(NETX_DIR)/lib/classes.jar \ 1439 @WITH_EMMA_TRUE@ -cp $(JUNIT_JAR) \ 1440 @WITH_EMMA_TRUE@ -cp $(JUNIT_RUNNER_JAR) \ 1441 @WITH_EMMA_TRUE@ -cp $(BOOT_DIR)/jre/lib/rt.jar \ 1442 @WITH_EMMA_TRUE@ -cp $(BOOT_DIR)/jre/lib/jsse.jar \ 1443 @WITH_EMMA_TRUE@ -cp $(BOOT_DIR)/jre/lib/resources.jar \ 1444 @WITH_EMMA_TRUE@ -cp $(RHINO_RUNTIME) \ 1445 @WITH_EMMA_TRUE@ -cp $(JNLP_TESTS_ENGINE_DIR) \ 1446 @WITH_EMMA_TRUE@ -cp . \ 1447 @WITH_EMMA_TRUE@ -ix "-org.junit.*" \ 1448 @WITH_EMMA_TRUE@ -ix "-junit.*" \ 1449 @WITH_EMMA_TRUE@ CommandLine $$class_names ; \ 1450 @WITH_EMMA_TRUE@ for file in $(EMMA_MODIFIED_FILES) ; do \ 1451 @WITH_EMMA_TRUE@ mv $(NETX_UNIT_TEST_DIR)/$$file $(NETX_UNIT_TEST_DIR)/"$$file""$(EMMA_SUFFIX)" ; \ 1452 @WITH_EMMA_TRUE@ mv $(NETX_UNIT_TEST_DIR)/"$$file""$(EMMA_BACKUP_SUFFIX)" $(NETX_UNIT_TEST_DIR)/$$file ; \ 1453 @WITH_EMMA_TRUE@ done ; 1454 @WITH_EMMA_FALSE@ echo "Sorry, coverage report cant be run without emma installed. Try install emma or specify with-emma value" ; 1455 @WITH_EMMA_FALSE@ exit 5 1456 touch $@ 1457 1458 #warning, during this target tests.build/netx/jnlp_testsengine/tests-output.xml is backup and rewriten (but not coresponding html file) 1459 #xml results run from emma sandbox, however, can be wrong, co the new tests-output.xml is then renamed and orginal one restored 1460 stamps/run-reproducers-test-code-coverage.stamp: stamps/run-netx-dist-tests.stamp $(REPRODUCERS_CLASS_NAMES) 1461 @WITH_EMMA_TRUE@ cd $(TESTS_DIR) ; \ 1462 @WITH_EMMA_TRUE@ for file in $(EMMA_MODIFIED_FILES) ; do \ 1463 @WITH_EMMA_TRUE@ mv $(JNLP_TESTS_ENGINE_DIR)/$$file $(JNLP_TESTS_ENGINE_DIR)/"$$file""$(EMMA_BACKUP_SUFFIX)" ; \ 1464 @WITH_EMMA_TRUE@ done ;\ 1465 @WITH_EMMA_TRUE@ echo "backuping javaws and netx.jar in $(DESTDIR)" ; \ 1466 @WITH_EMMA_TRUE@ netx_backup=$(DESTDIR)$(datadir)/$(PACKAGE_NAME)/netx_backup.jar ; \ 1467 @WITH_EMMA_TRUE@ javaws_backup=$(DESTDIR)$(bindir)/javaws_backup ; \ 1468 @WITH_EMMA_TRUE@ mv $(DESTDIR)$(bindir)/javaws $$javaws_backup ; \ 1469 @WITH_EMMA_TRUE@ mv $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/netx.jar $$netx_backup ; \ 1470 @WITH_EMMA_TRUE@ nw_bootclasspath="$(LAUNCHER_BOOTCLASSPATH):$(EMMA_JAR):$$netx_backup" ; \ 1471 @WITH_EMMA_TRUE@ instructed_dir=$(TESTS_DIR)/instr ; \ 1472 @WITH_EMMA_TRUE@ echo "instrumenting netx.jar from $$netx_backup through $$instructed_dir" ; \ 1473 @WITH_EMMA_TRUE@ $(BOOT_DIR)/bin/java -cp $(EMMA_JAR) emma instr -d $$instructed_dir -ip $$netx_backup ; \ 1474 @WITH_EMMA_TRUE@ pushd $$instructed_dir ; \ 1475 @WITH_EMMA_TRUE@ $(BOOT_DIR)/bin/jar -cf $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/netx.jar * ; \ 1476 @WITH_EMMA_TRUE@ popd ; \ 1477 @WITH_EMMA_TRUE@ rm -rf $$instructed_dir ; \ 1478 @WITH_EMMA_TRUE@ echo "patching $(javaws)" ; \ 1479 @WITH_EMMA_TRUE@ cat $$javaws_backup | sed "s,$(LAUNCHER_BOOTCLASSPATH),$$nw_bootclasspath," > $(DESTDIR)$(bindir)/$(javaws) ; \ 1480 @WITH_EMMA_TRUE@ chmod 777 $(DESTDIR)$(bindir)/$(javaws) ; \ 1481 @WITH_EMMA_TRUE@ testcases_srcs=( ) ; \ 1482 @WITH_EMMA_TRUE@ k=0 ; \ 1483 @WITH_EMMA_TRUE@ types=($(ALL_REPRODUCERS)); \ 1484 @WITH_EMMA_TRUE@ for which in "$${types[@]}" ; do \ 1485 @WITH_EMMA_TRUE@ . $(abs_top_srcdir)/NEW_LINE_IFS ; \ 1486 @WITH_EMMA_TRUE@ simpleReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-$$which.txt `); \ 1487 @WITH_EMMA_TRUE@ IFS="$$IFS_BACKUP" ; \ 1488 @WITH_EMMA_TRUE@ for dir in "$${simpleReproducers[@]}" ; do \ 1489 @WITH_EMMA_TRUE@ testcases_srcs[k]="-sp" ; \ 1490 @WITH_EMMA_TRUE@ k=$$((k+1)) ; \ 1491 @WITH_EMMA_TRUE@ testcases_srcs[k]="$(JNLP_TESTS_SRCDIR)/$$which/$$dir/testcases/" ; \ 1492 @WITH_EMMA_TRUE@ k=$$((k+1)) ; \ 1493 @WITH_EMMA_TRUE@ done ; \ 1494 @WITH_EMMA_TRUE@ done ; \ 1495 @WITH_EMMA_TRUE@ cd $(JNLP_TESTS_ENGINE_DIR) ; \ 1496 @WITH_EMMA_TRUE@ class_names=`cat $(REPRODUCERS_CLASS_NAMES)` ; \ 1497 @WITH_EMMA_TRUE@ $(BOOT_DIR)/bin/java \ 1498 @WITH_EMMA_TRUE@ $(EMMA_JAVA_ARGS) \ 1499 @WITH_EMMA_TRUE@ $(REPRODUCERS_DPARAMETERS) \ 1500 @WITH_EMMA_TRUE@ -Xbootclasspath:$(RUNTIME) -cp $(EMMA_JAR) emmarun \ 1501 @WITH_EMMA_TRUE@ -raw \ 1502 @WITH_EMMA_TRUE@ -cp $(NETX_DIR)/lib/classes.jar \ 1503 @WITH_EMMA_TRUE@ -cp $(JUNIT_JAR) \ 1504 @WITH_EMMA_TRUE@ -cp $(JUNIT_RUNNER_JAR) \ 1505 @WITH_EMMA_TRUE@ -cp $(BOOT_DIR)/jre/lib/rt.jar \ 1506 @WITH_EMMA_TRUE@ -cp $(BOOT_DIR)/jre/lib/jsse.jar \ 1507 @WITH_EMMA_TRUE@ -cp $(BOOT_DIR)/jre/lib/resources.jar \ 1508 @WITH_EMMA_TRUE@ -cp $(RHINO_RUNTIME) \ 1509 @WITH_EMMA_TRUE@ -cp . \ 1510 @WITH_EMMA_TRUE@ -cp $(JNLP_TESTS_ENGINE_TESTS_DIR) \ 1511 @WITH_EMMA_TRUE@ -ix "-org.junit.*" \ 1512 @WITH_EMMA_TRUE@ -ix "-junit.*" \ 1513 @WITH_EMMA_TRUE@ CommandLine $$class_names ; \ 1514 @WITH_EMMA_TRUE@ mv $(JNLP_TESTS_ENGINE_DIR)/coverage.ec $(JNLP_TESTS_ENGINE_DIR)/coverageX.ec ; \ 1515 @WITH_EMMA_TRUE@ mv $(JNLP_TESTS_ENGINE_DIR)/coverage.es $(JNLP_TESTS_ENGINE_DIR)/coverageX.es ; \ 1516 @WITH_EMMA_TRUE@ $(BOOT_DIR)/bin/java $(EMMA_JAVA_ARGS) -cp $(EMMA_JAR) emma merge \ 1517 @WITH_EMMA_TRUE@ -in $(TESTS_DIR)/coverage.em \ 1518 @WITH_EMMA_TRUE@ -in $(JNLP_TESTS_ENGINE_DIR)/coverageX.ec \ 1519 @WITH_EMMA_TRUE@ -in $(JNLP_TESTS_ENGINE_DIR)/coverageX.es ; \ 1520 @WITH_EMMA_TRUE@ $(BOOT_DIR)/bin/java $(EMMA_JAVA_ARGS) -cp $(EMMA_JAR) -Demma.report.html.out.encoding=UTF-8 emma report \ 1521 @WITH_EMMA_TRUE@ -Dreport.html.out.encoding=UTF-8 \ 1522 @WITH_EMMA_TRUE@ -in $(JNLP_TESTS_ENGINE_DIR)/coverage.es \ 1523 @WITH_EMMA_TRUE@ -sp $(NETX_SRCDIR) \ 1524 @WITH_EMMA_TRUE@ -sp $(NETX_UNIT_TEST_SRCDIR) \ 1525 @WITH_EMMA_TRUE@ -sp $(JUNIT_RUNNER_SRCDIR) \ 1526 @WITH_EMMA_TRUE@ -sp $(JNLP_TESTS_ENGINE_SRCDIR) \ 1527 @WITH_EMMA_TRUE@ -sp $(JNLP_TESTS_ENGINE_TESTS_SRCDIR) \ 1528 @WITH_EMMA_TRUE@ -r html \ 1529 @WITH_EMMA_TRUE@ -r xml \ 1530 @WITH_EMMA_TRUE@ "$${testcases_srcs[@]}" ; \ 1531 @WITH_EMMA_TRUE@ echo "restoring javaws and netx.jar in $(DESTDIR)" ; \ 1532 @WITH_EMMA_TRUE@ rm -f $(DESTDIR)$(bindir)/$(javaws) $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/netx.jar ; \ 1533 @WITH_EMMA_TRUE@ rm -f $(DESTDIR)$(bindir)/$(javaws); \ 1534 @WITH_EMMA_TRUE@ mv $$javaws_backup $(DESTDIR)$(bindir)/$(javaws); \ 1535 @WITH_EMMA_TRUE@ mv $$netx_backup $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/netx.jar ; \ 1536 @WITH_EMMA_TRUE@ for file in $(EMMA_MODIFIED_FILES) ; do \ 1537 @WITH_EMMA_TRUE@ mv $(JNLP_TESTS_ENGINE_DIR)/$$file $(JNLP_TESTS_ENGINE_DIR)/"$$file""$(EMMA_SUFFIX)" ; \ 1538 @WITH_EMMA_TRUE@ mv $(JNLP_TESTS_ENGINE_DIR)/"$$file""$(EMMA_BACKUP_SUFFIX)" $(JNLP_TESTS_ENGINE_DIR)/$$file ; \ 1539 @WITH_EMMA_TRUE@ done ;\ 1540 @WITH_EMMA_TRUE@ rm $(JNLP_TESTS_ENGINE_DIR)/coverage.txt ; 1541 @WITH_EMMA_FALSE@ echo "Sorry, coverage report cant be run without emma installed. Try install emma or specify with-emma value" ; 1542 @WITH_EMMA_FALSE@ exit 5 1543 touch $@ 1544 1545 run-test-code-coverage: run-unit-test-code-coverage run-reproducers-test-code-coverage 1546 @WITH_EMMA_TRUE@ cd $(TESTS_DIR) ; \ 1547 @WITH_EMMA_TRUE@ k=0 ; \ 1548 @WITH_EMMA_TRUE@ types=($(ALL_REPRODUCERS)); \ 1549 @WITH_EMMA_TRUE@ for which in "$${types[@]}" ; do \ 1550 @WITH_EMMA_TRUE@ . $(abs_top_srcdir)/NEW_LINE_IFS ; \ 1551 @WITH_EMMA_TRUE@ simpleReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-$$which.txt `); \ 1552 @WITH_EMMA_TRUE@ IFS="$$IFS_BACKUP" ; \ 1553 @WITH_EMMA_TRUE@ for dir in "$${simpleReproducers[@]}" ; do \ 1554 @WITH_EMMA_TRUE@ testcases_srcs[k]="-sp" ; \ 1555 @WITH_EMMA_TRUE@ k=$$((k+1)) ; \ 1556 @WITH_EMMA_TRUE@ testcases_srcs[k]="$(JNLP_TESTS_SRCDIR)/$$which/$$dir/testcases/" ; \ 1557 @WITH_EMMA_TRUE@ k=$$((k+1)) ; \ 1558 @WITH_EMMA_TRUE@ done ; \ 1559 @WITH_EMMA_TRUE@ done ; \ 1560 @WITH_EMMA_TRUE@ $(BOOT_DIR)/bin/java $(EMMA_JAVA_ARGS) -cp $(EMMA_JAR) emma merge \ 1561 @WITH_EMMA_TRUE@ -in $(NETX_UNIT_TEST_DIR)/coverage.es \ 1562 @WITH_EMMA_TRUE@ -in $(JNLP_TESTS_ENGINE_DIR)/coverage.es ; \ 1563 @WITH_EMMA_TRUE@ $(BOOT_DIR)/bin/java $(EMMA_JAVA_ARGS) -cp $(EMMA_JAR) -Demma.report.html.out.encoding=UTF-8 emma report \ 1564 @WITH_EMMA_TRUE@ -Dreport.html.out.encoding=UTF-8 \ 1565 @WITH_EMMA_TRUE@ -in $(TESTS_DIR)/coverage.es \ 1566 @WITH_EMMA_TRUE@ -in $(TESTS_DIR)/coverage.em \ 1567 @WITH_EMMA_TRUE@ -sp $(NETX_SRCDIR) \ 1568 @WITH_EMMA_TRUE@ -sp $(NETX_UNIT_TEST_SRCDIR) \ 1569 @WITH_EMMA_TRUE@ -sp $(JUNIT_RUNNER_SRCDIR) \ 1570 @WITH_EMMA_TRUE@ -sp $(JNLP_TESTS_ENGINE_SRCDIR) \ 1571 @WITH_EMMA_TRUE@ -sp $(JNLP_TESTS_ENGINE_TESTS_SRCDIR) \ 1572 @WITH_EMMA_TRUE@ "$${testcases_srcs[@]}" \ 1573 @WITH_EMMA_TRUE@ -r html \ 1574 @WITH_EMMA_TRUE@ -r xml ; 1575 @WITH_EMMA_FALSE@ echo "Sorry, coverage report cant be run without emma installed. Try install emma or specify with-emma value" ; 1576 @WITH_EMMA_FALSE@ exit 5 1577 1578 clean-netx-tests: clean-netx-unit-tests clean-junit-runner clean-netx-dist-tests clean-test-code-coverage 942 1579 if [ -e $(TESTS_DIR)/netx ]; then \ 943 1580 rmdir $(TESTS_DIR)/netx ; \ … … 949 1586 rm -f $(JUNIT_RUNNER_JAR) 950 1587 951 clean-netx-unit-tests: 1588 clean-netx-unit-tests: clean_tests_reports 952 1589 rm -f netx-unit-tests-source-files.txt 953 1590 rm -rf $(NETX_UNIT_TEST_DIR) 1591 rm -f $(UNIT_CLASS_NAMES) 1592 rm -f stamps/check-pac-functions.stamp 1593 rm -f stamps/run-netx-unit-tests.stamp 954 1594 rm -f stamps/netx-unit-tests-compile.stamp 1595 1596 clean_tests_reports: 1597 rm -rf $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME)/ 1598 rm -f $(TESTS_DIR)/*.html 1599 1600 clean-netx-dist-tests: clean_tests_reports netx-dist-tests-remove-cert-from-public clean-custom-reproducers 1601 rm -f netx-dist-tests-source-files.txt 1602 rm -rf $(JNLP_TESTS_ENGINE_TESTS_DIR) 1603 rm -rf $(JNLP_TESTS_DIR) 1604 rm -rf $(JNLP_TESTS_SERVER_DEPLOYDIR) 1605 rm -rf $(JNLP_TESTS_ENGINE_DIR) 1606 rm -f stamps/junit-jnlp-dist-dirs 1607 rm -f stamps/netx-dist-tests-compile.stamp 1608 rm -f stamps/netx-dist-tests-tests-compile.stamp 1609 rm -f stamps/netx-dist-tests-prepare-reproducers.stamp 1610 rm -f stamps/netx-dist-tests-compile-testcases.stamp 1611 rm -f stamps/netx-dist-tests-copy-resources.stamp 1612 rm -f stamps/netx-dist-tests-sign-some-reproducers.stamp 1613 rm -f stamps/change-dots-to-paths.stamp 1614 rm -f junit-jnlp-dist-simple.txt 1615 rm -f junit-jnlp-dist-custom.txt 1616 rm -f netx-dist-tests-tests-source-files.txt 1617 types=($(SIGNED_REPRODUCERS)) ; \ 1618 for which in "$${types[@]}" ; do \ 1619 rm -f junit-jnlp-dist-$$which.txt ; \ 1620 rm -f $(EXPORTED_TEST_CERT_PREFIX)_$$which.$(EXPORTED_TEST_CERT_SUFFIX) ; \ 1621 done ; 1622 rm -f stamps/exported-test-certs.stamp 1623 rm -f stamps/junit-jnlp-dist-signed.stamp 1624 rm -f $(REPRODUCERS_CLASS_NAMES) 1625 rm -f $(abs_top_builddir)/$(PRIVATE_KEYSTORE_NAME) 1626 rm -f stamps/run-netx-dist-tests.stamp 1627 1628 clean-unit-test-code-coverage: 1629 if [ -e stamps/run-unit-test-code-coverage.stamp ]; then \ 1630 rm -rf $(NETX_UNIT_TEST_DIR)/coverage ; \ 1631 rm -f $(NETX_UNIT_TEST_DIR)/coverage.xml ; \ 1632 rm -f $(NETX_UNIT_TEST_DIR)/coverageX.es ; \ 1633 rm -f $(NETX_UNIT_TEST_DIR)/coverageX.ec ; \ 1634 rm -f $(NETX_UNIT_TEST_DIR)/coverage.es ; \ 1635 rm -f $(NETX_UNIT_TEST_DIR)/tests-output_withEmma.xml ; \ 1636 rm -f stamps/run-unit-test-code-coverage.stamp ; \ 1637 fi 1638 1639 clean-reproducers-test-code-coverage: 1640 if [ -e stamps/run-reproducers-test-code-coverage.stamp ]; then \ 1641 rm -rf $(JNLP_TESTS_ENGINE_DIR)/coverage ; \ 1642 rm -f $(JNLP_TESTS_ENGINE_DIR)/coverage.xml ; \ 1643 rm -f $(JNLP_TESTS_ENGINE_DIR)/coverage.es ; \ 1644 rm -f $(JNLP_TESTS_ENGINE_DIR)/tests-output_withEmma.xml ; \ 1645 rm -f stamps/run-reproducers-test-code-coverage.stamp ; \ 1646 fi 1647 1648 clean-test-code-coverage: clean-unit-test-code-coverage clean-reproducers-test-code-coverage 1649 if [ -e $(TESTS_DIR)/coverage.xml ]; then \ 1650 rm -rf $(TESTS_DIR)/coverage ; \ 1651 rm -f $(TESTS_DIR)/coverage.xml ; \ 1652 rm -f $(TESTS_DIR)/coverage.es ; \ 1653 rm -f $(TESTS_DIR)/coverage.em ; \ 1654 fi 955 1655 956 1656 # plugin tests … … 992 1692 ln -sf $(abs_top_builddir)/javac $(BOOT_DIR)/bin/javac 993 1693 ln -sf $(JAVADOC) $(BOOT_DIR)/bin/javadoc 1694 if [ -e "$(KEYTOOL)" ] ; then \ 1695 ln -sf $(KEYTOOL) $(BOOT_DIR)/bin/keytool ;\ 1696 else \ 1697 echo "#! /bin/sh" > $(BOOT_DIR)/bin/keytool ;\ 1698 echo "echo \"keytool not exist on your system, signed part of reproducers test will fail\"" >> $(BOOT_DIR)/bin/keytool ;\ 1699 chmod 777 $(BOOT_DIR)/bin/keytool ;\ 1700 fi 1701 if [ -e "$(JARSIGNER)" ] ; then \ 1702 ln -sf $(JARSIGNER) $(BOOT_DIR)/bin/jarsigner ;\ 1703 else \ 1704 echo "#! /bin/sh" > $(BOOT_DIR)/bin/jarsigner ;\ 1705 echo "echo \"jarsigner not exist on your system, signed part of reproducers test will fail\"" >> $(BOOT_DIR)/bin/jarsigner ;\ 1706 chmod 777 $(BOOT_DIR)/bin/jarsigner ;\ 1707 fi 994 1708 mkdir -p $(BOOT_DIR)/jre/lib && \ 995 1709 ln -s $(SYSTEM_JRE_DIR)/lib/rt.jar $(BOOT_DIR)/jre/lib && \ … … 998 1712 else \ 999 1713 ln -s rt.jar $(BOOT_DIR)/jre/lib/jsse.jar ; \ 1714 fi 1715 if [ -e $(SYSTEM_JRE_DIR)/lib/resources.jar ] ; then \ 1716 ln -s $(SYSTEM_JRE_DIR)/lib/resources.jar $(BOOT_DIR)/jre/lib ; \ 1717 else \ 1718 ln -s rt.jar $(BOOT_DIR)/jre/lib/resources.jar ; \ 1000 1719 fi 1001 1720 ln -sf $(SYSTEM_JRE_DIR)/lib/$(JRE_ARCH_DIR) \ … … 1038 1757 plugin-tests: stamps/plugin-tests.stamp 1039 1758 1759 check-pac-functions: stamps/check-pac-functions.stamp 1760 1761 run-netx-unit-tests: stamps/run-netx-unit-tests.stamp 1762 1763 links: stamps/global-links.stamp 1764 1765 user-links: stamps/user-links.stamp 1766 1767 run-netx-dist-tests: stamps/run-netx-dist-tests.stamp 1768 1769 run-unit-test-code-coverage: stamps/run-unit-test-code-coverage.stamp 1770 1771 run-reproducers-test-code-coverage: stamps/run-reproducers-test-code-coverage.stamp 1772 1040 1773 # Tell versions [3.59,3.63) of GNU make to not export all variables. 1041 1774 # Otherwise a system limit (for SysV at least) may be exceeded. -
branches/vendor/sourceforge/icedtea-web/current/NEWS
r348 r416 9 9 CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY 10 10 11 New in release 1.1.2 (2011-08-31): 11 New in release 1.3 (2012-09-04): 12 * Security updates 13 - CVE-2012-3422, RH840592: Potential read from an uninitialized memory location 14 - CVE-2012-3423, RH841345: Incorrect handling of not 0-terminated strings 15 * NetX 16 - PR898: signed applications with big jnlp-file doesn't start (webstart affect like "frozen") 17 - PR811: javaws is not handling urls with spaces (and other characters needing encoding) correctly 18 * Plugin 19 - PR820: IcedTea-Web 1.1.3 crashing Firefox when loading Citrix XenApp 20 - PR863: Error passing strings to applet methods in Chromium 21 - PR895: IcedTea-Web searches for missing classes on each loadClass or findClass 22 - PR861: Allow loading from non codebase hosts. Allow code to connect to hosting server 23 - PR518: NPString.utf8characters not guaranteed to be nul-terminated 24 - PR722: META-INF/ unsigned entries should be ignored in signing 25 - PR855: AppletStub getDocumentBase() doesn't return full URL 26 - PR1011: Folders treated as jar files in archive tag 27 - PR1106: Buffer overflow in plugin table 28 - PR975: Plugin should not include classpaths specified in jar manifests when using jnlp_href 29 - PR588: Cookies not written from cookie jar to browser cookies 30 * Common 31 - PR918: java applet windows uses a low resulution black/white icon 32 - RH838417: Disambiguate signed applet security prompt from certificate warning 33 - RH838559: Disambiguate signed applet security prompt from certificate warning 34 - RH720836: project can be compiled against GTK+ 2 or 3 librarie 35 - PR955: regression: SweetHome3D fails to run 36 37 New in release 1.2 (2011-XX-XX): 38 * Security updates: 39 - RH718164, CVE-2011-2513: Home directory path disclosure to untrusted applications 40 - RH718170, CVE-2011-2514: Java Web Start security warning dialog manipulation 41 - RH742515, CVE-2011-3377: IcedTea-Web: second-level domain subdomains and suffix domain SOP bypass 42 * NetX 43 - PR618: Can't install OpenDJ, JavaWebStart fails with Input stream is null error 44 - PR765: JNLP file with all resource jars marked as 'lazy' fails to validate signature and stops the launch of application 45 - PR788: Elluminate Live! is not working 46 - PR804: javaws launcher incorrectly handles file names with spaces 12 47 * Plugin 13 48 - PR749: sun.applet.PluginStreamHandler#handleMessage(String) really slow 49 - PR782: Support building against npapi-sdk as well 50 - PR838: IcedTea plugin crashes with chrome browser when javascript is executed 51 - PR852: Classloader not being flushed after last applet from a site is closed 52 - RH586194: Unable to connect to connect with Juniper VPN client 14 53 - RH718693: MindTerm SSH Applet doesn't work 15 54 Common 16 55 - PR768: Signed applets/Web Start apps don't work with OpenJDK7 and up 56 - PR771: IcedTea-Web certificate verification code does not use the right API 57 - PR742: IcedTea-Web checks certs only upto 1 level deep before declaring them untrusted. 17 58 - PR769: IcedTea-Web does not work with some ssl sites with OpenJDK7 59 - PR778: Jar download and server certificate verification deadlock 60 - PR789: typo in jrunscript.sh 61 - PR794: IcedTea-Web does not work if a Web Start app jar has a Class-Path element in the manifest 62 - PR808: javaws is unable to start, when missing jars are enumerated before main jar 18 63 - RH734081: Javaws cannot use proxy settings from Firefox 64 - RH738814: Access denied at ssl handshake 65 - Support for authenticating using client certificates 19 66 20 New in release 1.1.1 (2011-07-20): 21 * Security updates: 22 - RH718164, CVE-2011-2513: Home directory path disclosure to untrusted applications 23 - RH718170, CVE-2011-2514: Java Web Start security warning dialog manipulation 24 25 New in release 1.1 (2011-06-08): 67 New in release 1.1 (2011-XX-XX): 68 * Security updates 69 - S6983554, CVE-2010-4450: Launcher incorrect processing of empty library path entries 70 - RH677332, CVE-2011-0706: IcedTea multiple signers privilege escalation 26 71 * New Features 27 72 - IcedTea-Web now installs to a FHS-compliant location … … 38 83 - The user's default browser (determined from xdg-open or $BROWSER) is used 39 84 - RH669942: javaws fails to download version/packed files (missing support for jnlp.packEnabled and jnlp.versionEnabled) 85 - PR464: plugin can now load parameters from jnlp files. 40 86 - PR658: now jnlp.packEnabled works with applets. 41 87 - PR726: closing javaws -about no longer throws exceptions. -
branches/vendor/sourceforge/icedtea-web/current/acinclude.m4
r348 r416 360 360 ]) 361 361 362 dnl ITW_GTK_CHECK_VERSION([gtk version]) 363 AC_DEFUN([ITW_GTK_CHECK_VERSION], 364 [ 365 AC_MSG_CHECKING([for GTK$1 version]) 366 GTK_VER=`$PKG_CONFIG --modversion gtk+-$1.0` 367 AC_MSG_RESULT([$GTK_VER]) 368 ]) 369 370 dnl ITW_GTK_CHECK([gtk version]) 371 AC_DEFUN([ITW_GTK_CHECK], 372 [ 373 case "$1" in 374 default) 375 PKG_CHECK_MODULES(GTK, gtk+-3.0, 376 [ITW_GTK_CHECK_VERSION([3])], 377 [PKG_CHECK_MODULES(GTK, gtk+-2.0, 378 [ITW_GTK_CHECK_VERSION([2])], 379 [AC_MSG_ERROR([GTK $1 not found])] 380 )] 381 ) 382 ;; 383 *) 384 PKG_CHECK_MODULES(GTK, gtk+-$1.0, 385 [ITW_GTK_CHECK_VERSION([$1])], 386 [AC_MSG_ERROR([GTK $1 not found])] 387 ) 388 ;; 389 esac 390 ]) 391 362 392 AC_DEFUN_ONCE([IT_CHECK_PLUGIN_DEPENDENCIES], 363 393 [ … … 366 396 AC_REQUIRE([IT_CHECK_PLUGIN]) 367 397 if test "x${enable_plugin}" = "xyes" ; then 368 PKG_CHECK_MODULES(GTK, gtk+-2.0) 398 AC_ARG_WITH([gtk], 399 [AS_HELP_STRING([--with-gtk=[2|3|default]], 400 [the GTK+ version to use (default: 3)])], 401 [case "$with_gtk" in 402 2|3|default) ;; 403 *) AC_MSG_ERROR([invalid GTK version specified]) ;; 404 esac], 405 [with_gtk=default]) 406 ITW_GTK_CHECK([$with_gtk]) 369 407 PKG_CHECK_MODULES(GLIB, glib-2.0) 370 408 AC_SUBST(GLIB_CFLAGS) … … 373 411 AC_SUBST(GTK_LIBS) 374 412 375 PKG_CHECK_MODULES(MOZILLA, mozilla-plugin) 376 413 PKG_CHECK_MODULES(MOZILLA, npapi-sdk, [ 414 AC_CACHE_CHECK([for xulrunner version], [xulrunner_cv_collapsed_version],[ 415 # XXX: use NPAPI versions instead 416 xulrunner_cv_collapsed_version=20000000 417 ]) 418 ], [ 419 PKG_CHECK_MODULES(MOZILLA, mozilla-plugin) 420 ]) 421 377 422 AC_SUBST(MOZILLA_CFLAGS) 378 423 AC_SUBST(MOZILLA_LIBS) … … 390 435 then 391 436 xulrunner_cv_collapsed_version=`pkg-config --modversion libxul | awk -F. '{power=6; v=0; for (i=1; i <= NF; i++) {v += $i * 10 ^ power; power -=2}; print v}'` 437 elif pkg-config --modversion mozilla-plugin >/dev/null 2>&1 438 then 439 xulrunner_cv_collapsed_version=`pkg-config --modversion mozilla-plugin | awk -F. '{power=6; v=0; for (i=1; i <= NF; i++) {v += $i * 10 ^ power; power -=2}; print v}'` 392 440 else 393 441 AC_MSG_FAILURE([cannot determine xulrunner version]) … … 483 531 AM_CONDITIONAL(HAS_PKGVERSION, test "x${PKGVERSION}" != "xnone") 484 532 AC_SUBST(PKGVERSION) 533 ]) 534 535 AC_DEFUN_ONCE([IT_CHECK_GLIB_VERSION],[ 536 PKG_CHECK_MODULES([GLIB2_V_216],[glib-2.0 >= 2.16],[],[AC_DEFINE([LEGACY_GLIB])]) 537 ]) 538 539 AC_DEFUN_ONCE([IT_CHECK_XULRUNNER_API_VERSION], 540 [ 541 AC_MSG_CHECKING([for legacy xulrunner api]) 542 AC_LANG_PUSH(C++) 543 CXXFLAGS_BACKUP=$CXXFLAGS 544 CXXFLAGS=$CXXFLAGS" "$MOZILLA_CFLAGS 545 AC_TRY_COMPILE([ 546 #include <npfunctions.h> 547 const char* NP_GetMIMEDescription () 548 {return (char*) "yap!";} 549 ],[],[ 550 AC_MSG_RESULT(no) 551 ],[ 552 AC_MSG_RESULT(yes) 553 AC_DEFINE([LEGACY_XULRUNNERAPI]) 554 ]) 555 CXXFLAGS=$CXXFLAGS_BACKUP 556 AC_LANG_POP(C++) 485 557 ]) 486 558 … … 643 715 AC_MSG_RESULT(${JAVA}) 644 716 AC_SUBST(JAVA) 717 JAVA_VERSION=`$JAVA -version 2>&1 | sed -n '1s/@<:@^"@:>@*"\(.*\)"$/\1/p'` 718 case "${JAVA_VERSION}" in 719 1.7*) VERSION_DEFS='-DHAVE_JAVA7';; 720 esac 721 AC_SUBST(VERSION_DEFS) 722 ]) 723 724 AC_DEFUN_ONCE([IT_FIND_KEYTOOL], 725 [ 726 AC_REQUIRE([IT_CHECK_FOR_JDK]) 727 AC_MSG_CHECKING([for keytool]) 728 AC_ARG_WITH([keytool], 729 [AS_HELP_STRING(--with-keytool,specify location of keytool for signed part of run-netx-dist)], 730 [ 731 if test "${withval}" = "yes" ; then 732 KEYTOOL=${SYSTEM_JDK_DIR}/bin/keytool 733 else 734 KEYTOOL="${withval}" 735 fi 736 ], 737 [ 738 KEYTOOL=${SYSTEM_JDK_DIR}/bin/keytool 739 ]) 740 if ! test -f "${KEYTOOL}"; then 741 AC_PATH_PROG(KEYTOOL, keytool) 742 fi 743 if ! test -f "${KEYTOOL}"; then 744 KEYTOOL="" 745 fi 746 if test -z "${KEYTOOL}" ; then 747 AC_MSG_WARN("keytool not found so signed part of run-netx-dist will fail") 748 fi 749 AC_MSG_RESULT(${KEYTOOL}) 750 AC_SUBST(KEYTOOL) 751 ]) 752 753 AC_DEFUN_ONCE([IT_FIND_JARSIGNER], 754 [ 755 AC_REQUIRE([IT_CHECK_FOR_JDK]) 756 AC_MSG_CHECKING([for jarsigner]) 757 AC_ARG_WITH([jarsigner], 758 [AS_HELP_STRING(--with-jarsigner,specify location of jarsigner for signed part od run-netx-dist)], 759 [ 760 if test "${withval}" = "yes" ; then 761 JARSIGNER=${SYSTEM_JDK_DIR}/bin/jarsigner 762 else 763 JARSIGNER="${withval}" 764 fi 765 ], 766 [ 767 JARSIGNER=${SYSTEM_JDK_DIR}/bin/jarsigner 768 ]) 769 if ! test -f "${JARSIGNER}"; then 770 AC_PATH_PROG(JARSIGNER, jarsigner,"") 771 fi 772 if ! test -f "${JARSIGNER}"; then 773 JARSIGNER="" 774 fi 775 if test -z "${JARSIGNER}"; then 776 AC_MSG_WARN("jarsigner not found so signed part of run-netx-dist will fail") 777 fi 778 AC_MSG_RESULT(${JARSIGNER}) 779 AC_SUBST(JARSIGNER) 645 780 ]) 646 781 … … 784 919 AC_SUBST([FULL_VERSION]) 785 920 ]) 921 922 dnl Allows you to configure (enable/disable/set path to) the browser 923 dnl REQUIRED Parameters: 924 dnl [browser name, variable to store path, default command to run browser (if not provided, assume it's the same as the browser name] 925 AC_DEFUN([IT_FIND_BROWSER], 926 [ 927 AC_ARG_WITH([$1], 928 [AS_HELP_STRING(--with-$1,specify the location of $1)], 929 [ 930 if test "${withval}" = "no" || test "${withval}" = "yes" || test "${withval}" = "" ; then 931 $2="" 932 elif test -f "${withval}" ; then 933 $2="${withval}" 934 else 935 AC_MSG_CHECKING([for $1]) 936 AC_MSG_RESULT([not found]) 937 AC_MSG_FAILURE([invalid location specified to $1: ${withval}]) 938 fi 939 ], 940 [ 941 withval="yes" 942 ]) 943 944 if test -f "${$2}"; then 945 AC_MSG_CHECKING([for $1]) 946 AC_MSG_RESULT([${$2}]) 947 elif test "${withval}" != "no"; then 948 if test $# -gt 2; then 949 AC_PATH_TOOL([$2], [$3], [], []) 950 else 951 AC_PATH_TOOL([$2], [$1], [], []) 952 fi 953 else 954 AC_MSG_CHECKING([for $1]) 955 AC_MSG_RESULT([no]) 956 fi 957 ]) 958 959 AC_DEFUN_ONCE([IT_SET_GLOBAL_BROWSERTESTS_BEHAVIOUR], 960 [ 961 AC_MSG_CHECKING([how browser test will be run]) 962 AC_ARG_WITH([browser-tests], 963 [AS_HELP_STRING([--with-browser-tests], 964 [yes - as defined (default), no - all browser tests will be skipped, one - all "mutiple browsers" test will behave as "one" test, all - all browser tests will be run for all set browsers])], 965 [ 966 BROWSER_SWITCH=${withval} 967 ], 968 [ 969 BROWSER_SWITCH="yes" 970 ]) 971 D_PARAM_PART="-Dmodified.browsers.run" 972 case "$BROWSER_SWITCH" in 973 "yes" ) 974 BROWSER_TESTS_MODIFICATION="" ;; 975 "no" ) 976 BROWSER_TESTS_MODIFICATION="$D_PARAM_PART=ignore" ;; 977 "one" ) 978 BROWSER_TESTS_MODIFICATION="$D_PARAM_PART=one" ;; 979 "all" ) 980 BROWSER_TESTS_MODIFICATION="$D_PARAM_PART=all" ;; 981 *) 982 AC_MSG_ERROR([unknown valkue of with-browser-tests ($BROWSER_SWITCH), so not use (yes) or set yes|no|one|all]) 983 esac 984 AC_MSG_RESULT(${BROWSER_SWITCH}) 985 AC_SUBST(BROWSER_TESTS_MODIFICATION) 986 ]) -
branches/vendor/sourceforge/icedtea-web/current/aclocal.m4
r348 r416 1 # generated automatically by aclocal 1.11. 1-*- Autoconf -*-1 # generated automatically by aclocal 1.11.3 -*- Autoconf -*- 2 2 3 3 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 4 # 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. 4 # 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, 5 # Inc. 5 6 # This file is free software; the Free Software Foundation 6 7 # gives unlimited permission to copy and/or distribute it, … … 178 179 ])# PKG_CHECK_MODULES 179 180 180 # Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. 181 # 182 # This file is free software; the Free Software Foundation 183 # gives unlimited permission to copy and/or distribute it, 184 # with or without modifications, as long as this notice is preserved. 181 # Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008, 2011 Free Software 182 # Foundation, Inc. 183 # 184 # This file is free software; the Free Software Foundation 185 # gives unlimited permission to copy and/or distribute it, 186 # with or without modifications, as long as this notice is preserved. 187 188 # serial 1 185 189 186 190 # AM_AUTOMAKE_VERSION(VERSION) … … 193 197 dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to 194 198 dnl require some minimum version. Point them to the right macro. 195 m4_if([$1], [1.11. 1], [],199 m4_if([$1], [1.11.3], [], 196 200 [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl 197 201 ]) … … 209 213 # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. 210 214 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], 211 [AM_AUTOMAKE_VERSION([1.11. 1])dnl215 [AM_AUTOMAKE_VERSION([1.11.3])dnl 212 216 m4_ifndef([AC_AUTOCONF_VERSION], 213 217 [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl … … 216 220 # AM_AUX_DIR_EXPAND -*- Autoconf -*- 217 221 218 # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. 219 # 220 # This file is free software; the Free Software Foundation 221 # gives unlimited permission to copy and/or distribute it, 222 # with or without modifications, as long as this notice is preserved. 222 # Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. 223 # 224 # This file is free software; the Free Software Foundation 225 # gives unlimited permission to copy and/or distribute it, 226 # with or without modifications, as long as this notice is preserved. 227 228 # serial 1 223 229 224 230 # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets … … 303 309 fi])]) 304 310 305 # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009 306 # Free Software Foundation, Inc.307 # 308 # This file is free software; the Free Software Foundation 309 # gives unlimited permission to copy and/or distribute it, 310 # with or without modifications, as long as this notice is preserved. 311 312 # serial 1 0311 # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009, 312 # 2010, 2011 Free Software Foundation, Inc. 313 # 314 # This file is free software; the Free Software Foundation 315 # gives unlimited permission to copy and/or distribute it, 316 # with or without modifications, as long as this notice is preserved. 317 318 # serial 12 313 319 314 320 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be … … 350 356 # making a dummy file named `D' -- because `-MD' means `put the output 351 357 # in D'. 358 rm -rf conftest.dir 352 359 mkdir conftest.dir 353 360 # Copy depcomp to subdir because otherwise we won't find it if we're … … 414 421 fi 415 422 ;; 416 msv isualcpp | msvcmsys)423 msvc7 | msvc7msys | msvisualcpp | msvcmsys) 417 424 # This compiler won't grok `-c -o', but also, the minuso test has 418 425 # not run yet. These depmodes are late enough in the game, and … … 479 486 am_depcomp="$ac_aux_dir/depcomp" 480 487 AMDEPBACKSLASH='\' 488 am__nodep='_no' 481 489 fi 482 490 AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) 483 491 AC_SUBST([AMDEPBACKSLASH])dnl 484 492 _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl 493 AC_SUBST([am__nodep])dnl 494 _AM_SUBST_NOTMAKE([am__nodep])dnl 485 495 ]) 486 496 … … 704 714 echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) 705 715 706 # Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc. 707 # 708 # This file is free software; the Free Software Foundation 709 # gives unlimited permission to copy and/or distribute it, 710 # with or without modifications, as long as this notice is preserved. 716 # Copyright (C) 2001, 2003, 2005, 2008, 2011 Free Software Foundation, 717 # Inc. 718 # 719 # This file is free software; the Free Software Foundation 720 # gives unlimited permission to copy and/or distribute it, 721 # with or without modifications, as long as this notice is preserved. 722 723 # serial 1 711 724 712 725 # AM_PROG_INSTALL_SH … … 841 854 ]) 842 855 843 # Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. 844 # 845 # This file is free software; the Free Software Foundation 846 # gives unlimited permission to copy and/or distribute it, 847 # with or without modifications, as long as this notice is preserved. 856 # Copyright (C) 2003, 2004, 2005, 2006, 2011 Free Software Foundation, 857 # Inc. 858 # 859 # This file is free software; the Free Software Foundation 860 # gives unlimited permission to copy and/or distribute it, 861 # with or without modifications, as long as this notice is preserved. 862 863 # serial 1 848 864 849 865 # AM_PROG_MKDIR_P … … 869 885 # Helper functions for option handling. -*- Autoconf -*- 870 886 871 # Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc. 872 # 873 # This file is free software; the Free Software Foundation 874 # gives unlimited permission to copy and/or distribute it, 875 # with or without modifications, as long as this notice is preserved. 876 877 # serial 4 887 # Copyright (C) 2001, 2002, 2003, 2005, 2008, 2010 Free Software 888 # Foundation, Inc. 889 # 890 # This file is free software; the Free Software Foundation 891 # gives unlimited permission to copy and/or distribute it, 892 # with or without modifications, as long as this notice is preserved. 893 894 # serial 5 878 895 879 896 # _AM_MANGLE_OPTION(NAME) … … 883 900 884 901 # _AM_SET_OPTION(NAME) 885 # -------------------- ----------902 # -------------------- 886 903 # Set option NAME. Presently that only means defining a flag for this option. 887 904 AC_DEFUN([_AM_SET_OPTION], … … 889 906 890 907 # _AM_SET_OPTIONS(OPTIONS) 891 # ------------------------ ----------908 # ------------------------ 892 909 # OPTIONS is a space-separated list of Automake options. 893 910 AC_DEFUN([_AM_SET_OPTIONS], … … 900 917 [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) 901 918 902 # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. 903 # 904 # This file is free software; the Free Software Foundation 905 # gives unlimited permission to copy and/or distribute it, 906 # with or without modifications, as long as this notice is preserved. 919 # Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. 920 # 921 # This file is free software; the Free Software Foundation 922 # gives unlimited permission to copy and/or distribute it, 923 # with or without modifications, as long as this notice is preserved. 924 925 # serial 1 907 926 908 927 # AM_RUN_LOG(COMMAND) … … 982 1001 AC_MSG_RESULT(yes)]) 983 1002 984 # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. 985 # 986 # This file is free software; the Free Software Foundation 987 # gives unlimited permission to copy and/or distribute it, 988 # with or without modifications, as long as this notice is preserved. 1003 # Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. 1004 # 1005 # This file is free software; the Free Software Foundation 1006 # gives unlimited permission to copy and/or distribute it, 1007 # with or without modifications, as long as this notice is preserved. 1008 1009 # serial 1 989 1010 990 1011 # AM_PROG_INSTALL_STRIP … … 1010 1031 AC_SUBST([INSTALL_STRIP_PROGRAM])]) 1011 1032 1012 # Copyright (C) 2006, 2008 1013 # 1014 # This file is free software; the Free Software Foundation 1015 # gives unlimited permission to copy and/or distribute it, 1016 # with or without modifications, as long as this notice is preserved. 1017 1018 # serial 21033 # Copyright (C) 2006, 2008, 2010 Free Software Foundation, Inc. 1034 # 1035 # This file is free software; the Free Software Foundation 1036 # gives unlimited permission to copy and/or distribute it, 1037 # with or without modifications, as long as this notice is preserved. 1038 1039 # serial 3 1019 1040 1020 1041 # _AM_SUBST_NOTMAKE(VARIABLE) … … 1025 1046 1026 1047 # AM_SUBST_NOTMAKE(VARIABLE) 1027 # -------------------------- -1048 # -------------------------- 1028 1049 # Public sister of _AM_SUBST_NOTMAKE. 1029 1050 AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) … … 1031 1052 # Check how to create a tarball. -*- Autoconf -*- 1032 1053 1033 # Copyright (C) 2004, 2005 1054 # Copyright (C) 2004, 2005, 2012 Free Software Foundation, Inc. 1034 1055 # 1035 1056 # This file is free software; the Free Software Foundation … … 1053 1074 # $(am__untar) < result.tar 1054 1075 AC_DEFUN([_AM_PROG_TAR], 1055 [# Always define AMTAR for backward compatibility. 1056 AM_MISSING_PROG([AMTAR], [tar]) 1076 [# Always define AMTAR for backward compatibility. Yes, it's still used 1077 # in the wild :-( We should find a proper way to deprecate it ... 1078 AC_SUBST([AMTAR], ['$${TAR-tar}']) 1057 1079 m4_if([$1], [v7], 1058 [am__tar='$ {AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],1080 [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], 1059 1081 [m4_case([$1], [ustar],, [pax],, 1060 1082 [m4_fatal([Unknown tar format])]) -
branches/vendor/sourceforge/icedtea-web/current/config.guess
r348 r416 2 2 # Attempt to guess a canonical system name. 3 3 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 4 # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 5 # Free Software Foundation, Inc.6 7 timestamp='20 09-11-20'4 # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 5 # 2011, 2012 Free Software Foundation, Inc. 6 7 timestamp='2012-01-01' 8 8 9 9 # This file is free software; you can redistribute it and/or modify it … … 57 57 58 58 Originally written by Per Bothner. 59 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 60 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. 59 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 60 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 61 Free Software Foundation, Inc. 61 62 62 63 This is free software; see the source for copying conditions. There is NO … … 145 146 *:NetBSD:*:*) 146 147 # NetBSD (nbsd) targets should (where applicable) match one or 147 # more of the tup ples: *-*-netbsdelf*, *-*-netbsdaout*,148 # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, 148 149 # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently 149 150 # switched to ELF, *-*-netbsd* would select the old … … 181 182 ;; 182 183 *) 183 184 os=netbsd 184 185 ;; 185 186 esac … … 224 225 ;; 225 226 *5.*) 226 227 UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` 227 228 ;; 228 229 esac … … 270 271 # 1.2 uses "1.2" for uname -r. 271 272 echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` 272 exit ;; 273 # Reset EXIT trap before exiting to avoid spurious non-zero exit code. 274 exitcode=$? 275 trap '' 0 276 exit $exitcode ;; 273 277 Alpha\ *:Windows_NT*:*) 274 278 # How do we know it's Interix rather than the generic POSIX subsystem? … … 296 300 exit ;; 297 301 *:OS400:*:*) 298 302 echo powerpc-ibm-os400 299 303 exit ;; 300 304 arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) … … 395 399 # be no problem. 396 400 atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) 397 401 echo m68k-atari-mint${UNAME_RELEASE} 398 402 exit ;; 399 403 atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) 400 404 echo m68k-atari-mint${UNAME_RELEASE} 401 405 exit ;; 402 406 *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) 403 407 echo m68k-atari-mint${UNAME_RELEASE} 404 408 exit ;; 405 409 milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) 406 407 410 echo m68k-milan-mint${UNAME_RELEASE} 411 exit ;; 408 412 hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) 409 410 413 echo m68k-hades-mint${UNAME_RELEASE} 414 exit ;; 411 415 *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) 412 413 416 echo m68k-unknown-mint${UNAME_RELEASE} 417 exit ;; 414 418 m68k:machten:*:*) 415 419 echo m68k-apple-machten${UNAME_RELEASE} … … 481 485 exit ;; 482 486 AViiON:dgux:*:*) 483 484 487 # DG/UX returns AViiON for all architectures 488 UNAME_PROCESSOR=`/usr/bin/uname -p` 485 489 if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] 486 490 then … … 495 499 echo i586-dg-dgux${UNAME_RELEASE} 496 500 fi 497 501 exit ;; 498 502 M88*:DolphinOS:*:*) # DolphinOS (SVR3) 499 503 echo m88k-dolphin-sysv3 … … 552 556 fi 553 557 exit ;; 554 *:AIX:*:[456 ])558 *:AIX:*:[4567]) 555 559 IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` 556 560 if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then … … 595 599 if [ -x /usr/bin/getconf ]; then 596 600 sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` 597 598 599 600 601 602 603 604 601 sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` 602 case "${sc_cpu_version}" in 603 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 604 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 605 532) # CPU_PA_RISC2_0 606 case "${sc_kernel_bits}" in 607 32) HP_ARCH="hppa2.0n" ;; 608 64) HP_ARCH="hppa2.0w" ;; 605 609 '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 606 607 610 esac ;; 611 esac 608 612 fi 609 613 if [ "${HP_ARCH}" = "" ]; then 610 614 eval $set_cc_for_build 611 sed 's/^ 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 615 sed 's/^ //' << EOF >$dummy.c 616 617 #define _HPUX_SOURCE 618 #include <stdlib.h> 619 #include <unistd.h> 620 621 int main () 622 { 623 #if defined(_SC_KERNEL_BITS) 624 long bits = sysconf(_SC_KERNEL_BITS); 625 #endif 626 long cpu = sysconf (_SC_CPU_VERSION); 627 628 switch (cpu) 629 { 630 case CPU_PA_RISC1_0: puts ("hppa1.0"); break; 631 case CPU_PA_RISC1_1: puts ("hppa1.1"); break; 632 case CPU_PA_RISC2_0: 633 #if defined(_SC_KERNEL_BITS) 634 switch (bits) 635 { 636 case 64: puts ("hppa2.0w"); break; 637 case 32: puts ("hppa2.0n"); break; 638 default: puts ("hppa2.0"); break; 639 } break; 640 #else /* !defined(_SC_KERNEL_BITS) */ 641 puts ("hppa2.0"); break; 642 #endif 643 default: puts ("hppa1.0"); break; 644 } 645 exit (0); 646 } 643 647 EOF 644 648 (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` … … 731 735 C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) 732 736 echo c1-convex-bsd 733 737 exit ;; 734 738 C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) 735 739 if getsysinfo -f scalar_acc … … 737 741 else echo c2-convex-bsd 738 742 fi 739 743 exit ;; 740 744 C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) 741 745 echo c34-convex-bsd 742 746 exit ;; 743 747 C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) 744 748 echo c38-convex-bsd 745 749 exit ;; 746 750 C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) 747 751 echo c4-convex-bsd 748 752 exit ;; 749 753 CRAY*Y-MP:*:*:*) 750 754 echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' … … 770 774 F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) 771 775 FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` 772 773 774 775 776 FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` 777 FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` 778 echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" 779 exit ;; 776 780 5000:UNIX_System_V:4.*:*) 777 778 779 781 FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` 782 FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` 783 echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" 780 784 exit ;; 781 785 i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) … … 789 793 exit ;; 790 794 *:FreeBSD:*:*) 791 case ${UNAME_MACHINE} in 792 pc98) 793 echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; 795 UNAME_PROCESSOR=`/usr/bin/uname -p` 796 case ${UNAME_PROCESSOR} in 794 797 amd64) 795 798 echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; 796 799 *) 797 echo ${UNAME_ MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;800 echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; 798 801 esac 799 802 exit ;; … … 804 807 echo ${UNAME_MACHINE}-pc-mingw32 805 808 exit ;; 809 i*:MSYS*:*) 810 echo ${UNAME_MACHINE}-pc-msys 811 exit ;; 806 812 i*:windows32*:*) 807 808 813 # uname -m includes "-pc" on this system. 814 echo ${UNAME_MACHINE}-mingw32 809 815 exit ;; 810 816 i*:PW*:*) … … 812 818 exit ;; 813 819 *:Interix*:*) 814 820 case ${UNAME_MACHINE} in 815 821 x86) 816 822 echo i586-pc-interix${UNAME_RELEASE} … … 867 873 EV67) UNAME_MACHINE=alphaev67 ;; 868 874 EV68*) UNAME_MACHINE=alphaev68 ;; 869 875 esac 870 876 objdump --private-headers /bin/sh | grep -q ld.so.1 871 877 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi … … 879 885 echo ${UNAME_MACHINE}-unknown-linux-gnu 880 886 else 881 echo ${UNAME_MACHINE}-unknown-linux-gnueabi 887 if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ 888 | grep -q __ARM_PCS_VFP 889 then 890 echo ${UNAME_MACHINE}-unknown-linux-gnueabi 891 else 892 echo ${UNAME_MACHINE}-unknown-linux-gnueabihf 893 fi 882 894 fi 883 895 exit ;; … … 886 898 exit ;; 887 899 cris:Linux:*:*) 888 echo cris-axis-linux-gnu900 echo ${UNAME_MACHINE}-axis-linux-gnu 889 901 exit ;; 890 902 crisv32:Linux:*:*) 891 echo crisv32-axis-linux-gnu903 echo ${UNAME_MACHINE}-axis-linux-gnu 892 904 exit ;; 893 905 frv:Linux:*:*) 894 echo frv-unknown-linux-gnu 906 echo ${UNAME_MACHINE}-unknown-linux-gnu 907 exit ;; 908 hexagon:Linux:*:*) 909 echo ${UNAME_MACHINE}-unknown-linux-gnu 895 910 exit ;; 896 911 i*86:Linux:*:*) … … 934 949 ;; 935 950 or32:Linux:*:*) 936 echo or32-unknown-linux-gnu951 echo ${UNAME_MACHINE}-unknown-linux-gnu 937 952 exit ;; 938 953 padre:Linux:*:*) … … 960 975 exit ;; 961 976 sh64*:Linux:*:*) 962 977 echo ${UNAME_MACHINE}-unknown-linux-gnu 963 978 exit ;; 964 979 sh*:Linux:*:*) … … 968 983 echo ${UNAME_MACHINE}-unknown-linux-gnu 969 984 exit ;; 985 tile*:Linux:*:*) 986 echo ${UNAME_MACHINE}-unknown-linux-gnu 987 exit ;; 970 988 vax:Linux:*:*) 971 989 echo ${UNAME_MACHINE}-dec-linux-gnu 972 990 exit ;; 973 991 x86_64:Linux:*:*) 974 echo x86_64-unknown-linux-gnu992 echo ${UNAME_MACHINE}-unknown-linux-gnu 975 993 exit ;; 976 994 xtensa*:Linux:*:*) 977 995 echo ${UNAME_MACHINE}-unknown-linux-gnu 978 996 exit ;; 979 997 i*86:DYNIX/ptx:4*:*) … … 984 1002 exit ;; 985 1003 i*86:UNIX_SV:4.2MP:2.*) 986 987 988 1004 # Unixware is an offshoot of SVR4, but it has its own version 1005 # number series starting with 2... 1006 # I am not positive that other SVR4 systems won't match this, 989 1007 # I just have to hope. -- rms. 990 1008 # Use sysv4.2uw... so that sysv4* matches it. 991 1009 echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} 992 1010 exit ;; … … 1020 1038 exit ;; 1021 1039 i*86:*:5:[678]*) 1022 1040 # UnixWare 7.x, OpenUNIX and OpenServer 6. 1023 1041 case `/bin/uname -X | grep "^Machine"` in 1024 1042 *486*) UNAME_MACHINE=i486 ;; … … 1048 1066 pc:*:*:*) 1049 1067 # Left here for compatibility: 1050 1051 1068 # uname -m prints for DJGPP always 'pc', but it prints nothing about 1069 # the processor, so we play safe by assuming i586. 1052 1070 # Note: whatever this is, it MUST be the same as what config.sub 1053 1071 # prints for the "djgpp" host, or else GDB configury will decide that 1054 1072 # this is a cross-build. 1055 1073 echo i586-pc-msdosdjgpp 1056 1074 exit ;; 1057 1075 Intel:Mach:3*:*) 1058 1076 echo i386-pc-mach3 … … 1089 1107 && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 1090 1108 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) 1091 1092 1109 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ 1110 && { echo i486-ncr-sysv4; exit; } ;; 1093 1111 NCR*:*:4.2:* | MPRAS*:*:4.2:*) 1094 1112 OS_REL='.3' … … 1133 1151 fi 1134 1152 exit ;; 1135 PENTIUM:*:4.0*:*) 1136 1137 1138 1153 PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort 1154 # says <Richard.M.Bartel@ccMail.Census.GOV> 1155 echo i586-unisys-sysv4 1156 exit ;; 1139 1157 *:UNIX_System_V:4*:FTX*) 1140 1158 # From Gerald Hewes <hewes@openmarket.com>. … … 1162 1180 R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) 1163 1181 if [ -d /usr/nec ]; then 1164 1182 echo mips-nec-sysv${UNAME_RELEASE} 1165 1183 else 1166 1167 fi 1168 1184 echo mips-unknown-sysv${UNAME_RELEASE} 1185 fi 1186 exit ;; 1169 1187 BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. 1170 1188 echo powerpc-be-beos … … 1231 1249 echo i386-pc-qnx 1232 1250 exit ;; 1251 NEO-?:NONSTOP_KERNEL:*:*) 1252 echo neo-tandem-nsk${UNAME_RELEASE} 1253 exit ;; 1233 1254 NSE-?:NONSTOP_KERNEL:*:*) 1234 1255 echo nse-tandem-nsk${UNAME_RELEASE} … … 1276 1297 exit ;; 1277 1298 SEI:*:*:SEIUX) 1278 1299 echo mips-sei-seiux${UNAME_RELEASE} 1279 1300 exit ;; 1280 1301 *:DragonFly:*:*) … … 1282 1303 exit ;; 1283 1304 *:*VMS:*:*) 1284 1305 UNAME_MACHINE=`(uname -p) 2>/dev/null` 1285 1306 case "${UNAME_MACHINE}" in 1286 1307 A*) echo alpha-dec-vms ; exit ;; … … 1322 1343 printf ("m68k-sony-newsos%s\n", 1323 1344 #ifdef NEWSOS4 1324 1345 "4" 1325 1346 #else 1326 1327 #endif 1328 1347 "" 1348 #endif 1349 ); exit (0); 1329 1350 #endif 1330 1351 #endif -
branches/vendor/sourceforge/icedtea-web/current/config.sub
r348 r416 2 2 # Configuration validation subroutine script. 3 3 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 4 # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 5 # Free Software Foundation, Inc.6 7 timestamp='20 09-11-20'4 # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 5 # 2011, 2012 Free Software Foundation, Inc. 6 7 timestamp='2012-01-01' 8 8 9 9 # This file is (in principle) common to ALL GNU software. … … 76 76 GNU config.sub ($timestamp) 77 77 78 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 79 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. 78 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 79 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 80 Free Software Foundation, Inc. 80 81 81 82 This is free software; see the source for copying conditions. There is NO … … 124 125 maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` 125 126 case $maybe_os in 126 nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ 127 uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ 127 nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ 128 linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ 129 knetbsd*-gnu* | netbsd*-gnu* | \ 128 130 kopensolaris*-gnu* | \ 129 131 storm-chaos* | os2-emx* | rtmk-nova*) … … 157 159 basic_machine=$1 158 160 ;; 159 160 161 -bluegene*) 162 os=-cnk 161 163 ;; 162 164 -sim | -cisco | -oki | -wec | -winbond) … … 174 176 basic_machine=$1 175 177 ;; 176 177 178 -chorusrdb) 179 os=-chorusrdb 178 180 basic_machine=$1 179 181 ;; 180 182 -hiux*) 181 183 os=-hiuxwe2 … … 250 252 | am33_2.0 \ 251 253 | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ 254 | be32 | be64 \ 252 255 | bfin \ 253 256 | c4x | clipper \ 254 257 | d10v | d30v | dlx | dsp16xx \ 258 | epiphany \ 255 259 | fido | fr30 | frv \ 256 260 | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ 261 | hexagon \ 257 262 | i370 | i860 | i960 | ia64 \ 258 263 | ip2k | iq2000 \ 264 | le32 | le64 \ 259 265 | lm32 \ 260 266 | m32c | m32r | m32rle | m68000 | m68k | m88k \ … … 282 288 | mt \ 283 289 | msp430 \ 290 | nds32 | nds32le | nds32be \ 284 291 | nios | nios2 \ 285 292 | ns16k | ns32k \ 293 | open8 \ 286 294 | or32 \ 287 295 | pdp10 | pdp11 | pj | pjl \ 288 | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe\296 | powerpc | powerpc64 | powerpc64le | powerpcle \ 289 297 | pyramid \ 290 | r x \298 | rl78 | rx \ 291 299 | score \ 292 300 | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ … … 294 302 | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ 295 303 | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ 296 | spu | strongarm\297 | tahoe | t humb | tic4x | tic80 | tron \304 | spu \ 305 | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ 298 306 | ubicom32 \ 299 | v850 | v850e \307 | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ 300 308 | we32k \ 301 | x86 | xc16x | xs cale | xscalee[bl] | xstormy16 | xtensa \309 | x86 | xc16x | xstormy16 | xtensa \ 302 310 | z8k | z80) 303 311 basic_machine=$basic_machine-unknown 304 312 ;; 313 c54x) 314 basic_machine=tic54x-unknown 315 ;; 316 c55x) 317 basic_machine=tic55x-unknown 318 ;; 319 c6x) 320 basic_machine=tic6x-unknown 321 ;; 305 322 m6811 | m68hc11 | m6812 | m68hc12 | picochip) 306 # Motorola 68HC11/12.307 323 basic_machine=$basic_machine-unknown 308 324 os=-none … … 312 328 ms1) 313 329 basic_machine=mt-unknown 330 ;; 331 332 strongarm | thumb | xscale) 333 basic_machine=arm-unknown 334 ;; 335 336 xscaleeb) 337 basic_machine=armeb-unknown 338 ;; 339 340 xscaleel) 341 basic_machine=armel-unknown 314 342 ;; 315 343 … … 333 361 | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ 334 362 | avr-* | avr32-* \ 363 | be32-* | be64-* \ 335 364 | bfin-* | bs2000-* \ 336 | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-*\365 | c[123]* | c30-* | [cjt]90-* | c4x-* \ 337 366 | clipper-* | craynv-* | cydra-* \ 338 367 | d10v-* | d30v-* | dlx-* \ … … 341 370 | h8300-* | h8500-* \ 342 371 | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ 372 | hexagon-* \ 343 373 | i*86-* | i860-* | i960-* | ia64-* \ 344 374 | ip2k-* | iq2000-* \ 375 | le32-* | le64-* \ 345 376 | lm32-* \ 346 377 | m32c-* | m32r-* | m32rle-* \ … … 368 399 | mt-* \ 369 400 | msp430-* \ 401 | nds32-* | nds32le-* | nds32be-* \ 370 402 | nios-* | nios2-* \ 371 403 | none-* | np1-* | ns16k-* | ns32k-* \ 404 | open8-* \ 372 405 | orion-* \ 373 406 | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ 374 | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-*\407 | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ 375 408 | pyramid-* \ 376 | r omp-* | rs6000-* | rx-* \409 | rl78-* | romp-* | rs6000-* | rx-* \ 377 410 | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ 378 411 | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ 379 412 | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ 380 413 | sparclite-* \ 381 | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ 382 | tahoe-* | thumb-* \ 383 | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ 414 | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ 415 | tahoe-* \ 416 | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ 417 | tile*-* \ 384 418 | tron-* \ 385 419 | ubicom32-* \ 386 | v850-* | v850e-* | vax-* \ 420 | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ 421 | vax-* \ 387 422 | we32k-* \ 388 | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-*\423 | x86-* | x86_64-* | xc16x-* | xps100-* \ 389 424 | xstormy16-* | xtensa*-* \ 390 425 | ymp-* \ … … 411 446 os=-udi 412 447 ;; 413 448 abacus) 414 449 basic_machine=abacus-unknown 415 450 ;; … … 481 516 os=-cnk 482 517 ;; 518 c54x-*) 519 basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` 520 ;; 521 c55x-*) 522 basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` 523 ;; 524 c6x-*) 525 basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` 526 ;; 483 527 c90) 484 528 basic_machine=c90-cray 485 529 os=-unicos 486 530 ;; 487 531 cegcc) 488 532 basic_machine=arm-unknown 489 533 os=-cegcc … … 517 561 os=-unicosmp 518 562 ;; 519 cr16 )563 cr16 | cr16-*) 520 564 basic_machine=cr16-unknown 521 565 os=-elf … … 675 719 basic_machine=i370-ibm 676 720 ;; 677 # I'm not sure what "Sysv32" means. Should this be sysv3.2?678 721 i*86v32) 679 722 basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` … … 733 776 os=-sysv 734 777 ;; 735 778 microblaze) 736 779 basic_machine=microblaze-xilinx 737 780 ;; … … 772 815 basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` 773 816 ;; 817 msys) 818 basic_machine=i386-pc 819 os=-msys 820 ;; 774 821 mvs) 775 822 basic_machine=i370-ibm 776 823 os=-mvs 824 ;; 825 nacl) 826 basic_machine=le32-unknown 827 os=-nacl 777 828 ;; 778 829 ncr3000) … … 840 891 basic_machine=np1-gould 841 892 ;; 893 neo-tandem) 894 basic_machine=neo-tandem 895 ;; 896 nse-tandem) 897 basic_machine=nse-tandem 898 ;; 842 899 nsr-tandem) 843 900 basic_machine=nsr-tandem … … 922 979 power) basic_machine=power-ibm 923 980 ;; 924 ppc) basic_machine=powerpc-unknown 925 ;; 926 ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` 981 ppc | ppcbe) basic_machine=powerpc-unknown 982 ;; 983 ppc-* | ppcbe-*) 984 basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` 927 985 ;; 928 986 ppcle | powerpclittle | ppc-le | powerpc-little) … … 1018 1076 os=-sysv4 1019 1077 ;; 1078 strongarm-* | thumb-*) 1079 basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` 1080 ;; 1020 1081 sun2) 1021 1082 basic_machine=m68000-sun … … 1074 1135 os=-unicos 1075 1136 ;; 1076 tic54x | c54x*)1077 basic_machine=tic54x-unknown1078 os=-coff1079 ;;1080 tic55x | c55x*)1081 basic_machine=tic55x-unknown1082 os=-coff1083 ;;1084 tic6x | c6x*)1085 basic_machine=tic6x-unknown1086 os=-coff1087 ;;1088 1137 tile*) 1089 basic_machine= tile-unknown1138 basic_machine=$basic_machine-unknown 1090 1139 os=-linux-gnu 1091 1140 ;; … … 1156 1205 xps | xps100) 1157 1206 basic_machine=xps100-honeywell 1207 ;; 1208 xscale-* | xscalee[bl]-*) 1209 basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` 1158 1210 ;; 1159 1211 ymp) … … 1254 1306 then 1255 1307 case $os in 1256 1257 1308 # First match some system type aliases 1309 # that might get confused with valid system types. 1258 1310 # -solaris* is a basic system type, with this one exception. 1259 1260 1311 -auroraux) 1312 os=-auroraux 1261 1313 ;; 1262 1314 -solaris1 | -solaris1.*) … … 1294 1346 | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ 1295 1347 | -chorusos* | -chorusrdb* | -cegcc* \ 1296 | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ 1297 | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ 1348 | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ 1349 | -mingw32* | -linux-gnu* | -linux-android* \ 1350 | -linux-newlib* | -linux-uclibc* \ 1298 1351 | -uxpv* | -beos* | -mpeix* | -udk* \ 1299 1352 | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ … … 1342 1395 os=-openedition 1343 1396 ;; 1344 1397 -os400*) 1345 1398 os=-os400 1346 1399 ;; … … 1391 1444 os=-sysv4 1392 1445 ;; 1393 1446 -tpf*) 1394 1447 os=-tpf 1395 1448 ;; … … 1435 1488 -dicos*) 1436 1489 os=-dicos 1490 ;; 1491 -nacl*) 1437 1492 ;; 1438 1493 -none) … … 1458 1513 1459 1514 case $basic_machine in 1460 1515 score-*) 1461 1516 os=-elf 1462 1517 ;; 1463 1518 spu-*) 1464 1519 os=-elf 1465 1520 ;; … … 1473 1528 os=-aout 1474 1529 ;; 1475 c4x-* | tic4x-*) 1476 os=-coff 1530 c4x-* | tic4x-*) 1531 os=-coff 1532 ;; 1533 tic54x-*) 1534 os=-coff 1535 ;; 1536 tic55x-*) 1537 os=-coff 1538 ;; 1539 tic6x-*) 1540 os=-coff 1477 1541 ;; 1478 1542 # This must come before the *-dec entry. … … 1494 1558 m68000-sun) 1495 1559 os=-sunos3 1496 # This also exists in the configure program, but was not the1497 # default.1498 # os=-sunos41499 1560 ;; 1500 1561 m68*-cisco) 1501 1562 os=-aout 1502 1563 ;; 1503 1564 mep-*) 1504 1565 os=-elf 1505 1566 ;; … … 1528 1589 os=-aix 1529 1590 ;; 1530 1591 *-knuth) 1531 1592 os=-mmixware 1532 1593 ;; -
branches/vendor/sourceforge/icedtea-web/current/configure
r348 r416 1 1 #! /bin/sh 2 2 # Guess values for system-dependent variables and create Makefiles. 3 # Generated by GNU Autoconf 2.68 for icedtea-web 1. 1.2.3 # Generated by GNU Autoconf 2.68 for icedtea-web 1.3. 4 4 # 5 5 # Report bugs to <distro-pkg-dev@openjdk.java.net>. … … 560 560 PACKAGE_NAME='icedtea-web' 561 561 PACKAGE_TARNAME='icedtea-web' 562 PACKAGE_VERSION='1. 1.2'563 PACKAGE_STRING='icedtea-web 1. 1.2'562 PACKAGE_VERSION='1.3' 563 PACKAGE_STRING='icedtea-web 1.3' 564 564 PACKAGE_BUGREPORT='distro-pkg-dev@openjdk.java.net' 565 565 PACKAGE_URL='http://icedtea.classpath.org/wiki/IcedTea-Web' … … 569 569 LTLIBOBJS 570 570 LIBOBJS 571 EMMA_AVAILABLE 572 EMMA_JAR 573 WITH_EMMA_FALSE 574 WITH_EMMA_TRUE 571 575 JUNIT_AVAILABLE 572 576 JUNIT_JAR … … 577 581 WITH_RHINO_FALSE 578 582 WITH_RHINO_TRUE 583 WITH_XSLTPROC_FALSE 584 WITH_XSLTPROC_TRUE 585 BROWSER_TESTS_MODIFICATION 586 EPIPHANY 587 MIDORI 588 OPERA 589 CHROMIUM 590 CHROME 591 FIREFOX 592 XSLTPROC 593 GLIB2_V_216_LIBS 594 GLIB2_V_216_CFLAGS 595 VERSION_DEFS 579 596 JAVA 580 597 SYSTEM_JRE_DIR … … 601 618 ICEDTEA_REVISION 602 619 HG 620 JARSIGNER 621 KEYTOOL 603 622 JAVADOC_SUPPORTS_J_OPTIONS_FALSE 604 623 JAVADOC_SUPPORTS_J_OPTIONS_TRUE … … 636 655 am__fastdepCC_TRUE 637 656 CCDEPMODE 657 am__nodep 638 658 AMDEPBACKSLASH 639 659 AMDEP_FALSE … … 732 752 with_ecj_jar 733 753 with_javadoc 754 with_keytool 755 with_jarsigner 734 756 with_pkgversion 735 757 enable_plugin 758 with_gtk 736 759 with_jre_home 737 760 with_java 761 with_firefox 762 with_chrome 763 with_chromium 764 with_opera 765 with_midori 766 with_epiphany 767 with_browser_tests 738 768 with_rhino 739 769 with_junit 770 with_emma 740 771 ' 741 772 ac_precious_vars='build_alias … … 760 791 MOZILLA_LIBS 761 792 X11_CFLAGS 762 X11_LIBS' 793 X11_LIBS 794 GLIB2_V_216_CFLAGS 795 GLIB2_V_216_LIBS' 763 796 764 797 … … 1303 1336 # This message is too long to be a string in the A/UX 3.1 sh. 1304 1337 cat <<_ACEOF 1305 \`configure' configures icedtea-web 1. 1.2to adapt to many kinds of systems.1338 \`configure' configures icedtea-web 1.3 to adapt to many kinds of systems. 1306 1339 1307 1340 Usage: $0 [OPTION]... [VAR=VALUE]... … … 1373 1406 if test -n "$ac_init_help"; then 1374 1407 case $ac_init_help in 1375 short | recursive ) echo "Configuration of icedtea-web 1. 1.2:";;1408 short | recursive ) echo "Configuration of icedtea-web 1.3:";; 1376 1409 esac 1377 1410 cat <<\_ACEOF … … 1398 1431 --with-javadoc specify location of Java documentation tool 1399 1432 (javadoc) 1433 --with-keytool specify location of keytool for signed part of 1434 run-netx-dist 1435 --with-jarsigner specify location of jarsigner for signed part od 1436 run-netx-dist 1400 1437 --with-pkgversion=PKG Use PKG in the version string in addition to 1401 1438 "IcedTea" 1439 --with-gtk=2|3|default the GTK+ version to use (default: 3) 1402 1440 --with-jre-home jre home directory (default is the JRE under the 1403 1441 JDK) 1404 1442 --with-java specify location of the 1.5 java vm 1443 --with-firefox specify the location of firefox 1444 --with-chrome specify the location of chrome 1445 --with-chromium specify the location of chromium 1446 --with-opera specify the location of opera 1447 --with-midori specify the location of midori 1448 --with-epiphany specify the location of epiphany 1449 --with-browser-tests yes - as defined (default), no - all browser tests 1450 will be skipped, one - all "mutiple browsers" test 1451 will behave as "one" test, all - all browser tests 1452 will be run for all set browsers 1405 1453 --with-rhino specify location of the rhino jar 1406 1454 --with-junit specify location of the junit jar 1455 --with-emma specify location of the emma jar 1407 1456 1408 1457 Some influential environment variables: … … 1431 1480 X11_CFLAGS C compiler flags for X11, overriding pkg-config 1432 1481 X11_LIBS linker flags for X11, overriding pkg-config 1482 GLIB2_V_216_CFLAGS 1483 C compiler flags for GLIB2_V_216, overriding pkg-config 1484 GLIB2_V_216_LIBS 1485 linker flags for GLIB2_V_216, overriding pkg-config 1433 1486 1434 1487 Use these variables to override the choices made by `configure' or to help … … 1499 1552 if $ac_init_version; then 1500 1553 cat <<\_ACEOF 1501 icedtea-web configure 1. 1.21554 icedtea-web configure 1.3 1502 1555 generated by GNU Autoconf 2.68 1503 1556 … … 1638 1691 running configure, to aid debugging if configure makes a mistake. 1639 1692 1640 It was created by icedtea-web $as_me 1. 1.2, which was1693 It was created by icedtea-web $as_me 1.3, which was 1641 1694 generated by GNU Autoconf 2.68. Invocation command line was 1642 1695 … … 2453 2506 # Define the identity of the package. 2454 2507 PACKAGE='icedtea-web' 2455 VERSION='1. 1.2'2508 VERSION='1.3' 2456 2509 2457 2510 … … 2483 2536 # We need awk for the "check" target. The system "awk" is bad on 2484 2537 # some platforms. 2485 # Always define AMTAR for backward compatibility. 2486 2487 AMTAR= ${AMTAR-"${am_missing_run}tar"}2538 # Always define AMTAR for backward compatibility. Yes, it's still used 2539 # in the wild :-( We should find a proper way to deprecate it ... 2540 AMTAR='$${TAR-tar}' 2488 2541 2489 2542 … … 3498 3551 am_depcomp="$ac_aux_dir/depcomp" 3499 3552 AMDEPBACKSLASH='\' 3553 am__nodep='_no' 3500 3554 fi 3501 3555 if test "x$enable_dependency_tracking" != xno; then … … 3522 3576 # making a dummy file named `D' -- because `-MD' means `put the output 3523 3577 # in D'. 3578 rm -rf conftest.dir 3524 3579 mkdir conftest.dir 3525 3580 # Copy depcomp to subdir because otherwise we won't find it if we're … … 3581 3636 fi 3582 3637 ;; 3583 msv isualcpp | msvcmsys)3638 msvc7 | msvc7msys | msvisualcpp | msvcmsys) 3584 3639 # This compiler won't grok `-c -o', but also, the minuso test has 3585 3640 # not run yet. These depmodes are late enough in the game, and … … 3906 3961 # making a dummy file named `D' -- because `-MD' means `put the output 3907 3962 # in D'. 3963 rm -rf conftest.dir 3908 3964 mkdir conftest.dir 3909 3965 # Copy depcomp to subdir because otherwise we won't find it if we're … … 3965 4021 fi 3966 4022 ;; 3967 msv isualcpp | msvcmsys)4023 msvc7 | msvc7msys | msvisualcpp | msvcmsys) 3968 4024 # This compiler won't grok `-c -o', but also, the minuso test has 3969 4025 # not run yet. These depmodes are late enough in the game, and … … 5832 5888 mkdir pkg 5833 5889 cat << \EOF > $CLASS 5834 /* [#]line 58 34"configure" */5890 /* [#]line 5890 "configure" */ 5835 5891 package pkg; 5836 5892 … … 5870 5926 5871 5927 5928 5929 5930 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for keytool" >&5 5931 $as_echo_n "checking for keytool... " >&6; } 5932 5933 # Check whether --with-keytool was given. 5934 if test "${with_keytool+set}" = set; then : 5935 withval=$with_keytool; 5936 if test "${withval}" = "yes" ; then 5937 KEYTOOL=${SYSTEM_JDK_DIR}/bin/keytool 5938 else 5939 KEYTOOL="${withval}" 5940 fi 5941 5942 else 5943 5944 KEYTOOL=${SYSTEM_JDK_DIR}/bin/keytool 5945 5946 fi 5947 5948 if ! test -f "${KEYTOOL}"; then 5949 # Extract the first word of "keytool", so it can be a program name with args. 5950 set dummy keytool; ac_word=$2 5951 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 5952 $as_echo_n "checking for $ac_word... " >&6; } 5953 if ${ac_cv_path_KEYTOOL+:} false; then : 5954 $as_echo_n "(cached) " >&6 5955 else 5956 case $KEYTOOL in 5957 [\\/]* | ?:[\\/]*) 5958 ac_cv_path_KEYTOOL="$KEYTOOL" # Let the user override the test with a path. 5959 ;; 5960 *) 5961 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 5962 for as_dir in $PATH 5963 do 5964 IFS=$as_save_IFS 5965 test -z "$as_dir" && as_dir=. 5966 for ac_exec_ext in '' $ac_executable_extensions; do 5967 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 5968 ac_cv_path_KEYTOOL="$as_dir/$ac_word$ac_exec_ext" 5969 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 5970 break 2 5971 fi 5972 done 5973 done 5974 IFS=$as_save_IFS 5975 5976 ;; 5977 esac 5978 fi 5979 KEYTOOL=$ac_cv_path_KEYTOOL 5980 if test -n "$KEYTOOL"; then 5981 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $KEYTOOL" >&5 5982 $as_echo "$KEYTOOL" >&6; } 5983 else 5984 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 5985 $as_echo "no" >&6; } 5986 fi 5987 5988 5989 fi 5990 if ! test -f "${KEYTOOL}"; then 5991 KEYTOOL="" 5992 fi 5993 if test -z "${KEYTOOL}" ; then 5994 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \"keytool not found so signed part of run-netx-dist will fail\"" >&5 5995 $as_echo "$as_me: WARNING: \"keytool not found so signed part of run-netx-dist will fail\"" >&2;} 5996 fi 5997 { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${KEYTOOL}" >&5 5998 $as_echo "${KEYTOOL}" >&6; } 5999 6000 6001 6002 6003 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for jarsigner" >&5 6004 $as_echo_n "checking for jarsigner... " >&6; } 6005 6006 # Check whether --with-jarsigner was given. 6007 if test "${with_jarsigner+set}" = set; then : 6008 withval=$with_jarsigner; 6009 if test "${withval}" = "yes" ; then 6010 JARSIGNER=${SYSTEM_JDK_DIR}/bin/jarsigner 6011 else 6012 JARSIGNER="${withval}" 6013 fi 6014 6015 else 6016 6017 JARSIGNER=${SYSTEM_JDK_DIR}/bin/jarsigner 6018 6019 fi 6020 6021 if ! test -f "${JARSIGNER}"; then 6022 # Extract the first word of "jarsigner", so it can be a program name with args. 6023 set dummy jarsigner; ac_word=$2 6024 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 6025 $as_echo_n "checking for $ac_word... " >&6; } 6026 if ${ac_cv_path_JARSIGNER+:} false; then : 6027 $as_echo_n "(cached) " >&6 6028 else 6029 case $JARSIGNER in 6030 [\\/]* | ?:[\\/]*) 6031 ac_cv_path_JARSIGNER="$JARSIGNER" # Let the user override the test with a path. 6032 ;; 6033 *) 6034 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 6035 for as_dir in $PATH 6036 do 6037 IFS=$as_save_IFS 6038 test -z "$as_dir" && as_dir=. 6039 for ac_exec_ext in '' $ac_executable_extensions; do 6040 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 6041 ac_cv_path_JARSIGNER="$as_dir/$ac_word$ac_exec_ext" 6042 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 6043 break 2 6044 fi 6045 done 6046 done 6047 IFS=$as_save_IFS 6048 6049 test -z "$ac_cv_path_JARSIGNER" && ac_cv_path_JARSIGNER="""" 6050 ;; 6051 esac 6052 fi 6053 JARSIGNER=$ac_cv_path_JARSIGNER 6054 if test -n "$JARSIGNER"; then 6055 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $JARSIGNER" >&5 6056 $as_echo "$JARSIGNER" >&6; } 6057 else 6058 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 6059 $as_echo "no" >&6; } 6060 fi 6061 6062 6063 fi 6064 if ! test -f "${JARSIGNER}"; then 6065 JARSIGNER="" 6066 fi 6067 if test -z "${JARSIGNER}"; then 6068 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \"jarsigner not found so signed part of run-netx-dist will fail\"" >&5 6069 $as_echo "$as_me: WARNING: \"jarsigner not found so signed part of run-netx-dist will fail\"" >&2;} 6070 fi 6071 { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${JARSIGNER}" >&5 6072 $as_echo "${JARSIGNER}" >&6; } 6073 6074 5872 6075 ac_config_files="$ac_config_files javac" 5873 6076 … … 6175 6378 if test "x${enable_plugin}" = "xyes" ; then 6176 6379 6380 # Check whether --with-gtk was given. 6381 if test "${with_gtk+set}" = set; then : 6382 withval=$with_gtk; case "$with_gtk" in 6383 2|3|default) ;; 6384 *) as_fn_error $? "invalid GTK version specified" "$LINENO" 5 ;; 6385 esac 6386 else 6387 with_gtk=default 6388 fi 6389 6390 6391 case "$with_gtk" in 6392 default) 6393 6394 pkg_failed=no 6395 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK" >&5 6396 $as_echo_n "checking for GTK... " >&6; } 6397 6398 if test -n "$GTK_CFLAGS"; then 6399 pkg_cv_GTK_CFLAGS="$GTK_CFLAGS" 6400 elif test -n "$PKG_CONFIG"; then 6401 if test -n "$PKG_CONFIG" && \ 6402 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0\""; } >&5 6403 ($PKG_CONFIG --exists --print-errors "gtk+-3.0") 2>&5 6404 ac_status=$? 6405 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 6406 test $ac_status = 0; }; then 6407 pkg_cv_GTK_CFLAGS=`$PKG_CONFIG --cflags "gtk+-3.0" 2>/dev/null` 6408 else 6409 pkg_failed=yes 6410 fi 6411 else 6412 pkg_failed=untried 6413 fi 6414 if test -n "$GTK_LIBS"; then 6415 pkg_cv_GTK_LIBS="$GTK_LIBS" 6416 elif test -n "$PKG_CONFIG"; then 6417 if test -n "$PKG_CONFIG" && \ 6418 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0\""; } >&5 6419 ($PKG_CONFIG --exists --print-errors "gtk+-3.0") 2>&5 6420 ac_status=$? 6421 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 6422 test $ac_status = 0; }; then 6423 pkg_cv_GTK_LIBS=`$PKG_CONFIG --libs "gtk+-3.0" 2>/dev/null` 6424 else 6425 pkg_failed=yes 6426 fi 6427 else 6428 pkg_failed=untried 6429 fi 6430 6431 6432 6433 if test $pkg_failed = yes; then 6434 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 6435 $as_echo "no" >&6; } 6436 6437 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 6438 _pkg_short_errors_supported=yes 6439 else 6440 _pkg_short_errors_supported=no 6441 fi 6442 if test $_pkg_short_errors_supported = yes; then 6443 GTK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gtk+-3.0" 2>&1` 6444 else 6445 GTK_PKG_ERRORS=`$PKG_CONFIG --print-errors "gtk+-3.0" 2>&1` 6446 fi 6447 # Put the nasty error message in config.log where it belongs 6448 echo "$GTK_PKG_ERRORS" >&5 6449 6450 6177 6451 pkg_failed=no 6178 6452 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK" >&5 … … 6231 6505 echo "$GTK_PKG_ERRORS" >&5 6232 6506 6233 as_fn_error $? "Package requirements (gtk+-2.0) were not met: 6234 6235 $GTK_PKG_ERRORS 6236 6237 Consider adjusting the PKG_CONFIG_PATH environment variable if you 6238 installed software in a non-standard prefix. 6239 6240 Alternatively, you may set the environment variables GTK_CFLAGS 6241 and GTK_LIBS to avoid the need to call pkg-config. 6242 See the pkg-config man page for more details." "$LINENO" 5 6507 as_fn_error $? "GTK $with_gtk not found" "$LINENO" 5 6243 6508 6244 6509 elif test $pkg_failed = untried; then 6245 6510 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 6246 6511 $as_echo "no" >&6; } 6247 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 6248 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 6249 as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it 6250 is in your PATH or set the PKG_CONFIG environment variable to the full 6251 path to pkg-config. 6252 6253 Alternatively, you may set the environment variables GTK_CFLAGS 6254 and GTK_LIBS to avoid the need to call pkg-config. 6255 See the pkg-config man page for more details. 6256 6257 To get pkg-config, see <http://pkg-config.freedesktop.org/>. 6258 See \`config.log' for more details" "$LINENO" 5; } 6512 as_fn_error $? "GTK $with_gtk not found" "$LINENO" 5 6259 6513 6260 6514 else … … 6264 6518 $as_echo "yes" >&6; } 6265 6519 6266 fi 6520 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK2 version" >&5 6521 $as_echo_n "checking for GTK2 version... " >&6; } 6522 GTK_VER=`$PKG_CONFIG --modversion gtk+-2.0` 6523 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTK_VER" >&5 6524 $as_echo "$GTK_VER" >&6; } 6525 6526 fi 6527 6528 elif test $pkg_failed = untried; then 6529 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 6530 $as_echo "no" >&6; } 6531 6532 pkg_failed=no 6533 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK" >&5 6534 $as_echo_n "checking for GTK... " >&6; } 6535 6536 if test -n "$GTK_CFLAGS"; then 6537 pkg_cv_GTK_CFLAGS="$GTK_CFLAGS" 6538 elif test -n "$PKG_CONFIG"; then 6539 if test -n "$PKG_CONFIG" && \ 6540 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0\""; } >&5 6541 ($PKG_CONFIG --exists --print-errors "gtk+-2.0") 2>&5 6542 ac_status=$? 6543 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 6544 test $ac_status = 0; }; then 6545 pkg_cv_GTK_CFLAGS=`$PKG_CONFIG --cflags "gtk+-2.0" 2>/dev/null` 6546 else 6547 pkg_failed=yes 6548 fi 6549 else 6550 pkg_failed=untried 6551 fi 6552 if test -n "$GTK_LIBS"; then 6553 pkg_cv_GTK_LIBS="$GTK_LIBS" 6554 elif test -n "$PKG_CONFIG"; then 6555 if test -n "$PKG_CONFIG" && \ 6556 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0\""; } >&5 6557 ($PKG_CONFIG --exists --print-errors "gtk+-2.0") 2>&5 6558 ac_status=$? 6559 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 6560 test $ac_status = 0; }; then 6561 pkg_cv_GTK_LIBS=`$PKG_CONFIG --libs "gtk+-2.0" 2>/dev/null` 6562 else 6563 pkg_failed=yes 6564 fi 6565 else 6566 pkg_failed=untried 6567 fi 6568 6569 6570 6571 if test $pkg_failed = yes; then 6572 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 6573 $as_echo "no" >&6; } 6574 6575 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 6576 _pkg_short_errors_supported=yes 6577 else 6578 _pkg_short_errors_supported=no 6579 fi 6580 if test $_pkg_short_errors_supported = yes; then 6581 GTK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gtk+-2.0" 2>&1` 6582 else 6583 GTK_PKG_ERRORS=`$PKG_CONFIG --print-errors "gtk+-2.0" 2>&1` 6584 fi 6585 # Put the nasty error message in config.log where it belongs 6586 echo "$GTK_PKG_ERRORS" >&5 6587 6588 as_fn_error $? "GTK $with_gtk not found" "$LINENO" 5 6589 6590 elif test $pkg_failed = untried; then 6591 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 6592 $as_echo "no" >&6; } 6593 as_fn_error $? "GTK $with_gtk not found" "$LINENO" 5 6594 6595 else 6596 GTK_CFLAGS=$pkg_cv_GTK_CFLAGS 6597 GTK_LIBS=$pkg_cv_GTK_LIBS 6598 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 6599 $as_echo "yes" >&6; } 6600 6601 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK2 version" >&5 6602 $as_echo_n "checking for GTK2 version... " >&6; } 6603 GTK_VER=`$PKG_CONFIG --modversion gtk+-2.0` 6604 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTK_VER" >&5 6605 $as_echo "$GTK_VER" >&6; } 6606 6607 fi 6608 6609 else 6610 GTK_CFLAGS=$pkg_cv_GTK_CFLAGS 6611 GTK_LIBS=$pkg_cv_GTK_LIBS 6612 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 6613 $as_echo "yes" >&6; } 6614 6615 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK3 version" >&5 6616 $as_echo_n "checking for GTK3 version... " >&6; } 6617 GTK_VER=`$PKG_CONFIG --modversion gtk+-3.0` 6618 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTK_VER" >&5 6619 $as_echo "$GTK_VER" >&6; } 6620 6621 fi 6622 ;; 6623 *) 6624 6625 pkg_failed=no 6626 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK" >&5 6627 $as_echo_n "checking for GTK... " >&6; } 6628 6629 if test -n "$GTK_CFLAGS"; then 6630 pkg_cv_GTK_CFLAGS="$GTK_CFLAGS" 6631 elif test -n "$PKG_CONFIG"; then 6632 if test -n "$PKG_CONFIG" && \ 6633 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-\$with_gtk.0\""; } >&5 6634 ($PKG_CONFIG --exists --print-errors "gtk+-$with_gtk.0") 2>&5 6635 ac_status=$? 6636 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 6637 test $ac_status = 0; }; then 6638 pkg_cv_GTK_CFLAGS=`$PKG_CONFIG --cflags "gtk+-$with_gtk.0" 2>/dev/null` 6639 else 6640 pkg_failed=yes 6641 fi 6642 else 6643 pkg_failed=untried 6644 fi 6645 if test -n "$GTK_LIBS"; then 6646 pkg_cv_GTK_LIBS="$GTK_LIBS" 6647 elif test -n "$PKG_CONFIG"; then 6648 if test -n "$PKG_CONFIG" && \ 6649 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-\$with_gtk.0\""; } >&5 6650 ($PKG_CONFIG --exists --print-errors "gtk+-$with_gtk.0") 2>&5 6651 ac_status=$? 6652 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 6653 test $ac_status = 0; }; then 6654 pkg_cv_GTK_LIBS=`$PKG_CONFIG --libs "gtk+-$with_gtk.0" 2>/dev/null` 6655 else 6656 pkg_failed=yes 6657 fi 6658 else 6659 pkg_failed=untried 6660 fi 6661 6662 6663 6664 if test $pkg_failed = yes; then 6665 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 6666 $as_echo "no" >&6; } 6667 6668 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 6669 _pkg_short_errors_supported=yes 6670 else 6671 _pkg_short_errors_supported=no 6672 fi 6673 if test $_pkg_short_errors_supported = yes; then 6674 GTK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gtk+-$with_gtk.0" 2>&1` 6675 else 6676 GTK_PKG_ERRORS=`$PKG_CONFIG --print-errors "gtk+-$with_gtk.0" 2>&1` 6677 fi 6678 # Put the nasty error message in config.log where it belongs 6679 echo "$GTK_PKG_ERRORS" >&5 6680 6681 as_fn_error $? "GTK $with_gtk not found" "$LINENO" 5 6682 6683 elif test $pkg_failed = untried; then 6684 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 6685 $as_echo "no" >&6; } 6686 as_fn_error $? "GTK $with_gtk not found" "$LINENO" 5 6687 6688 else 6689 GTK_CFLAGS=$pkg_cv_GTK_CFLAGS 6690 GTK_LIBS=$pkg_cv_GTK_LIBS 6691 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 6692 $as_echo "yes" >&6; } 6693 6694 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK$with_gtk version" >&5 6695 $as_echo_n "checking for GTK$with_gtk version... " >&6; } 6696 GTK_VER=`$PKG_CONFIG --modversion gtk+-$with_gtk.0` 6697 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTK_VER" >&5 6698 $as_echo "$GTK_VER" >&6; } 6699 6700 fi 6701 ;; 6702 esac 6703 6267 6704 6268 6705 pkg_failed=no … … 6370 6807 elif test -n "$PKG_CONFIG"; then 6371 6808 if test -n "$PKG_CONFIG" && \ 6809 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"npapi-sdk\""; } >&5 6810 ($PKG_CONFIG --exists --print-errors "npapi-sdk") 2>&5 6811 ac_status=$? 6812 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 6813 test $ac_status = 0; }; then 6814 pkg_cv_MOZILLA_CFLAGS=`$PKG_CONFIG --cflags "npapi-sdk" 2>/dev/null` 6815 else 6816 pkg_failed=yes 6817 fi 6818 else 6819 pkg_failed=untried 6820 fi 6821 if test -n "$MOZILLA_LIBS"; then 6822 pkg_cv_MOZILLA_LIBS="$MOZILLA_LIBS" 6823 elif test -n "$PKG_CONFIG"; then 6824 if test -n "$PKG_CONFIG" && \ 6825 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"npapi-sdk\""; } >&5 6826 ($PKG_CONFIG --exists --print-errors "npapi-sdk") 2>&5 6827 ac_status=$? 6828 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 6829 test $ac_status = 0; }; then 6830 pkg_cv_MOZILLA_LIBS=`$PKG_CONFIG --libs "npapi-sdk" 2>/dev/null` 6831 else 6832 pkg_failed=yes 6833 fi 6834 else 6835 pkg_failed=untried 6836 fi 6837 6838 6839 6840 if test $pkg_failed = yes; then 6841 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 6842 $as_echo "no" >&6; } 6843 6844 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 6845 _pkg_short_errors_supported=yes 6846 else 6847 _pkg_short_errors_supported=no 6848 fi 6849 if test $_pkg_short_errors_supported = yes; then 6850 MOZILLA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "npapi-sdk" 2>&1` 6851 else 6852 MOZILLA_PKG_ERRORS=`$PKG_CONFIG --print-errors "npapi-sdk" 2>&1` 6853 fi 6854 # Put the nasty error message in config.log where it belongs 6855 echo "$MOZILLA_PKG_ERRORS" >&5 6856 6857 6858 6859 pkg_failed=no 6860 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MOZILLA" >&5 6861 $as_echo_n "checking for MOZILLA... " >&6; } 6862 6863 if test -n "$MOZILLA_CFLAGS"; then 6864 pkg_cv_MOZILLA_CFLAGS="$MOZILLA_CFLAGS" 6865 elif test -n "$PKG_CONFIG"; then 6866 if test -n "$PKG_CONFIG" && \ 6372 6867 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"mozilla-plugin\""; } >&5 6373 6868 ($PKG_CONFIG --exists --print-errors "mozilla-plugin") 2>&5 … … 6453 6948 fi 6454 6949 6950 elif test $pkg_failed = untried; then 6951 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 6952 $as_echo "no" >&6; } 6953 6954 6955 pkg_failed=no 6956 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MOZILLA" >&5 6957 $as_echo_n "checking for MOZILLA... " >&6; } 6958 6959 if test -n "$MOZILLA_CFLAGS"; then 6960 pkg_cv_MOZILLA_CFLAGS="$MOZILLA_CFLAGS" 6961 elif test -n "$PKG_CONFIG"; then 6962 if test -n "$PKG_CONFIG" && \ 6963 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"mozilla-plugin\""; } >&5 6964 ($PKG_CONFIG --exists --print-errors "mozilla-plugin") 2>&5 6965 ac_status=$? 6966 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 6967 test $ac_status = 0; }; then 6968 pkg_cv_MOZILLA_CFLAGS=`$PKG_CONFIG --cflags "mozilla-plugin" 2>/dev/null` 6969 else 6970 pkg_failed=yes 6971 fi 6972 else 6973 pkg_failed=untried 6974 fi 6975 if test -n "$MOZILLA_LIBS"; then 6976 pkg_cv_MOZILLA_LIBS="$MOZILLA_LIBS" 6977 elif test -n "$PKG_CONFIG"; then 6978 if test -n "$PKG_CONFIG" && \ 6979 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"mozilla-plugin\""; } >&5 6980 ($PKG_CONFIG --exists --print-errors "mozilla-plugin") 2>&5 6981 ac_status=$? 6982 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 6983 test $ac_status = 0; }; then 6984 pkg_cv_MOZILLA_LIBS=`$PKG_CONFIG --libs "mozilla-plugin" 2>/dev/null` 6985 else 6986 pkg_failed=yes 6987 fi 6988 else 6989 pkg_failed=untried 6990 fi 6991 6992 6993 6994 if test $pkg_failed = yes; then 6995 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 6996 $as_echo "no" >&6; } 6997 6998 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 6999 _pkg_short_errors_supported=yes 7000 else 7001 _pkg_short_errors_supported=no 7002 fi 7003 if test $_pkg_short_errors_supported = yes; then 7004 MOZILLA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "mozilla-plugin" 2>&1` 7005 else 7006 MOZILLA_PKG_ERRORS=`$PKG_CONFIG --print-errors "mozilla-plugin" 2>&1` 7007 fi 7008 # Put the nasty error message in config.log where it belongs 7009 echo "$MOZILLA_PKG_ERRORS" >&5 7010 7011 as_fn_error $? "Package requirements (mozilla-plugin) were not met: 7012 7013 $MOZILLA_PKG_ERRORS 7014 7015 Consider adjusting the PKG_CONFIG_PATH environment variable if you 7016 installed software in a non-standard prefix. 7017 7018 Alternatively, you may set the environment variables MOZILLA_CFLAGS 7019 and MOZILLA_LIBS to avoid the need to call pkg-config. 7020 See the pkg-config man page for more details." "$LINENO" 5 7021 7022 elif test $pkg_failed = untried; then 7023 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 7024 $as_echo "no" >&6; } 7025 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 7026 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 7027 as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it 7028 is in your PATH or set the PKG_CONFIG environment variable to the full 7029 path to pkg-config. 7030 7031 Alternatively, you may set the environment variables MOZILLA_CFLAGS 7032 and MOZILLA_LIBS to avoid the need to call pkg-config. 7033 See the pkg-config man page for more details. 7034 7035 To get pkg-config, see <http://pkg-config.freedesktop.org/>. 7036 See \`config.log' for more details" "$LINENO" 5; } 7037 7038 else 7039 MOZILLA_CFLAGS=$pkg_cv_MOZILLA_CFLAGS 7040 MOZILLA_LIBS=$pkg_cv_MOZILLA_LIBS 7041 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 7042 $as_echo "yes" >&6; } 7043 7044 fi 7045 7046 else 7047 MOZILLA_CFLAGS=$pkg_cv_MOZILLA_CFLAGS 7048 MOZILLA_LIBS=$pkg_cv_MOZILLA_LIBS 7049 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 7050 $as_echo "yes" >&6; } 7051 7052 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for xulrunner version" >&5 7053 $as_echo_n "checking for xulrunner version... " >&6; } 7054 if ${xulrunner_cv_collapsed_version+:} false; then : 7055 $as_echo_n "(cached) " >&6 7056 else 7057 7058 # XXX: use NPAPI versions instead 7059 xulrunner_cv_collapsed_version=20000000 7060 7061 fi 7062 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xulrunner_cv_collapsed_version" >&5 7063 $as_echo "$xulrunner_cv_collapsed_version" >&6; } 7064 7065 fi 7066 6455 7067 6456 7068 … … 6478 7090 then 6479 7091 xulrunner_cv_collapsed_version=`pkg-config --modversion libxul | awk -F. '{power=6; v=0; for (i=1; i <= NF; i++) {v += $i * 10 ^ power; power -=2}; print v}'` 7092 elif pkg-config --modversion mozilla-plugin >/dev/null 2>&1 7093 then 7094 xulrunner_cv_collapsed_version=`pkg-config --modversion mozilla-plugin | awk -F. '{power=6; v=0; for (i=1; i <= NF; i++) {v += $i * 10 ^ power; power -=2}; print v}'` 6480 7095 else 6481 7096 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 … … 6787 7402 $as_echo "${JAVA}" >&6; } 6788 7403 7404 JAVA_VERSION=`$JAVA -version 2>&1 | sed -n '1s/[^"]*"\(.*\)"$/\1/p'` 7405 case "${JAVA_VERSION}" in 7406 1.7*) VERSION_DEFS='-DHAVE_JAVA7';; 7407 esac 7408 6789 7409 6790 7410 … … 6802 7422 cd tmp.$$ 6803 7423 cat << \EOF > $CLASS 6804 /* [#]line 6804 "configure" */7424 /* [#]line 7424 "configure" */ 6805 7425 package sun.applet; 6806 7426 … … 6852 7472 cd tmp.$$ 6853 7473 cat << \EOF > $CLASS 6854 /* [#]line 6854 "configure" */7474 /* [#]line 7474 "configure" */ 6855 7475 package sun.applet; 6856 7476 … … 6902 7522 cd tmp.$$ 6903 7523 cat << \EOF > $CLASS 6904 /* [#]line 6904 "configure" */7524 /* [#]line 7524 "configure" */ 6905 7525 package sun.applet; 6906 7526 … … 6952 7572 cd tmp.$$ 6953 7573 cat << \EOF > $CLASS 6954 /* [#]line 6954 "configure" */7574 /* [#]line 7574 "configure" */ 6955 7575 package sun.applet; 6956 7576 … … 7002 7622 cd tmp.$$ 7003 7623 cat << \EOF > $CLASS 7004 /* [#]line 7 004 "configure" */7624 /* [#]line 7624 "configure" */ 7005 7625 package sun.applet; 7006 7626 … … 7052 7672 cd tmp.$$ 7053 7673 cat << \EOF > $CLASS 7054 /* [#]line 7 054 "configure" */7674 /* [#]line 7674 "configure" */ 7055 7675 package sun.applet; 7056 7676 … … 7102 7722 cd tmp.$$ 7103 7723 cat << \EOF > $CLASS 7104 /* [#]line 7 104 "configure" */7724 /* [#]line 7724 "configure" */ 7105 7725 package sun.applet; 7106 7726 … … 7152 7772 cd tmp.$$ 7153 7773 cat << \EOF > $CLASS 7154 /* [#]line 7 154 "configure" */7774 /* [#]line 7774 "configure" */ 7155 7775 package sun.applet; 7156 7776 … … 7191 7811 7192 7812 7193 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if sun.misc. BASE64Encoder is available" >&57194 $as_echo_n "checking if sun.misc. BASE64Encoder is available... " >&6; }7195 if ${it_cv_SUN_MISC_ BASE64ENCODER+:} false; then :7813 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if sun.misc.HexDumpEncoder is available" >&5 7814 $as_echo_n "checking if sun.misc.HexDumpEncoder is available... " >&6; } 7815 if ${it_cv_SUN_MISC_HEXDUMPENCODER+:} false; then : 7196 7816 $as_echo_n "(cached) " >&6 7197 7817 else … … 7202 7822 cd tmp.$$ 7203 7823 cat << \EOF > $CLASS 7204 /* [#]line 7204 "configure" */ 7205 package sun.applet; 7206 7207 import sun.misc.BASE64Encoder; 7208 7209 public class Test 7210 { 7211 public static void main(String[] args) 7212 throws Exception 7213 { 7214 System.out.println(Class.forName("sun.misc.BASE64Encoder")); 7215 } 7216 } 7217 7218 EOF 7219 if $JAVAC -cp . $JAVACFLAGS -nowarn $CLASS >&5 2>&1; then 7220 if $JAVA -classpath . $BYTECODE >&5 2>&1; then 7221 it_cv_SUN_MISC_BASE64ENCODER=yes; 7222 else 7223 it_cv_SUN_MISC_BASE64ENCODER=no; 7224 fi 7225 else 7226 it_cv_SUN_MISC_BASE64ENCODER=no; 7227 fi 7228 7229 fi 7230 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $it_cv_SUN_MISC_BASE64ENCODER" >&5 7231 $as_echo "$it_cv_SUN_MISC_BASE64ENCODER" >&6; } 7232 rm -f $CLASS *.class 7233 cd .. 7234 # should be rmdir but has to be rm -rf due to sun.applet usage 7235 rm -rf tmp.$$ 7236 if test x"${it_cv_SUN_MISC_BASE64ENCODER}" = "xno"; then 7237 as_fn_error $? "sun.misc.BASE64Encoder not found." "$LINENO" 5 7238 fi 7239 7240 7241 7242 7243 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if sun.misc.HexDumpEncoder is available" >&5 7244 $as_echo_n "checking if sun.misc.HexDumpEncoder is available... " >&6; } 7245 if ${it_cv_SUN_MISC_HEXDUMPENCODER+:} false; then : 7246 $as_echo_n "(cached) " >&6 7247 else 7248 7249 CLASS=sun/applet/Test.java 7250 BYTECODE=$(echo $CLASS|sed 's#\.java##') 7251 mkdir -p tmp.$$/$(dirname $CLASS) 7252 cd tmp.$$ 7253 cat << \EOF > $CLASS 7254 /* [#]line 7254 "configure" */ 7824 /* [#]line 7824 "configure" */ 7255 7825 package sun.applet; 7256 7826 … … 7302 7872 cd tmp.$$ 7303 7873 cat << \EOF > $CLASS 7304 /* [#]line 7 304 "configure" */7874 /* [#]line 7874 "configure" */ 7305 7875 package sun.applet; 7306 7876 … … 7352 7922 cd tmp.$$ 7353 7923 cat << \EOF > $CLASS 7354 /* [#]line 7 354 "configure" */7924 /* [#]line 7924 "configure" */ 7355 7925 package sun.applet; 7356 7926 … … 7391 7961 7392 7962 7393 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if sun. awt.X11.XEmbeddedFrame is available" >&57394 $as_echo_n "checking if sun. awt.X11.XEmbeddedFrame is available... " >&6; }7395 if ${it_cv_SUN_ AWT_X11_XEMBEDDEDFRAME+:} false; then :7963 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if sun.net.www.protocol.jar.URLJarFile is available" >&5 7964 $as_echo_n "checking if sun.net.www.protocol.jar.URLJarFile is available... " >&6; } 7965 if ${it_cv_SUN_NET_WWW_PROTOCOL_JAR_URLJARFILE+:} false; then : 7396 7966 $as_echo_n "(cached) " >&6 7397 7967 else … … 7402 7972 cd tmp.$$ 7403 7973 cat << \EOF > $CLASS 7404 /* [#]line 7404 "configure" */ 7974 /* [#]line 7974 "configure" */ 7975 package sun.applet; 7976 7977 import sun.net.www.protocol.jar.URLJarFile; 7978 7979 public class Test 7980 { 7981 public static void main(String[] args) 7982 throws Exception 7983 { 7984 System.out.println(Class.forName("sun.net.www.protocol.jar.URLJarFile")); 7985 } 7986 } 7987 7988 EOF 7989 if $JAVAC -cp . $JAVACFLAGS -nowarn $CLASS >&5 2>&1; then 7990 if $JAVA -classpath . $BYTECODE >&5 2>&1; then 7991 it_cv_SUN_NET_WWW_PROTOCOL_JAR_URLJARFILE=yes; 7992 else 7993 it_cv_SUN_NET_WWW_PROTOCOL_JAR_URLJARFILE=no; 7994 fi 7995 else 7996 it_cv_SUN_NET_WWW_PROTOCOL_JAR_URLJARFILE=no; 7997 fi 7998 7999 fi 8000 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $it_cv_SUN_NET_WWW_PROTOCOL_JAR_URLJARFILE" >&5 8001 $as_echo "$it_cv_SUN_NET_WWW_PROTOCOL_JAR_URLJARFILE" >&6; } 8002 rm -f $CLASS *.class 8003 cd .. 8004 # should be rmdir but has to be rm -rf due to sun.applet usage 8005 rm -rf tmp.$$ 8006 if test x"${it_cv_SUN_NET_WWW_PROTOCOL_JAR_URLJARFILE}" = "xno"; then 8007 as_fn_error $? "sun.net.www.protocol.jar.URLJarFile not found." "$LINENO" 5 8008 fi 8009 8010 8011 8012 8013 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if sun.net.www.protocol.jar.URLJarFileCallBack is available" >&5 8014 $as_echo_n "checking if sun.net.www.protocol.jar.URLJarFileCallBack is available... " >&6; } 8015 if ${it_cv_SUN_NET_WWW_PROTOCOL_JAR_URLJARFILECALLBACK+:} false; then : 8016 $as_echo_n "(cached) " >&6 8017 else 8018 8019 CLASS=sun/applet/Test.java 8020 BYTECODE=$(echo $CLASS|sed 's#\.java##') 8021 mkdir -p tmp.$$/$(dirname $CLASS) 8022 cd tmp.$$ 8023 cat << \EOF > $CLASS 8024 /* [#]line 8024 "configure" */ 8025 package sun.applet; 8026 8027 import sun.net.www.protocol.jar.URLJarFileCallBack; 8028 8029 public class Test 8030 { 8031 public static void main(String[] args) 8032 throws Exception 8033 { 8034 System.out.println(Class.forName("sun.net.www.protocol.jar.URLJarFileCallBack")); 8035 } 8036 } 8037 8038 EOF 8039 if $JAVAC -cp . $JAVACFLAGS -nowarn $CLASS >&5 2>&1; then 8040 if $JAVA -classpath . $BYTECODE >&5 2>&1; then 8041 it_cv_SUN_NET_WWW_PROTOCOL_JAR_URLJARFILECALLBACK=yes; 8042 else 8043 it_cv_SUN_NET_WWW_PROTOCOL_JAR_URLJARFILECALLBACK=no; 8044 fi 8045 else 8046 it_cv_SUN_NET_WWW_PROTOCOL_JAR_URLJARFILECALLBACK=no; 8047 fi 8048 8049 fi 8050 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $it_cv_SUN_NET_WWW_PROTOCOL_JAR_URLJARFILECALLBACK" >&5 8051 $as_echo "$it_cv_SUN_NET_WWW_PROTOCOL_JAR_URLJARFILECALLBACK" >&6; } 8052 rm -f $CLASS *.class 8053 cd .. 8054 # should be rmdir but has to be rm -rf due to sun.applet usage 8055 rm -rf tmp.$$ 8056 if test x"${it_cv_SUN_NET_WWW_PROTOCOL_JAR_URLJARFILECALLBACK}" = "xno"; then 8057 as_fn_error $? "sun.net.www.protocol.jar.URLJarFileCallBack not found." "$LINENO" 5 8058 fi 8059 8060 8061 8062 8063 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if sun.awt.X11.XEmbeddedFrame is available" >&5 8064 $as_echo_n "checking if sun.awt.X11.XEmbeddedFrame is available... " >&6; } 8065 if ${it_cv_SUN_AWT_X11_XEMBEDDEDFRAME+:} false; then : 8066 $as_echo_n "(cached) " >&6 8067 else 8068 8069 CLASS=sun/applet/Test.java 8070 BYTECODE=$(echo $CLASS|sed 's#\.java##') 8071 mkdir -p tmp.$$/$(dirname $CLASS) 8072 cd tmp.$$ 8073 cat << \EOF > $CLASS 8074 /* [#]line 8074 "configure" */ 7405 8075 package sun.applet; 7406 8076 … … 7452 8122 cd tmp.$$ 7453 8123 cat << \EOF > $CLASS 7454 /* [#]line 7454 "configure" */8124 /* [#]line 8124 "configure" */ 7455 8125 package sun.applet; 7456 8126 … … 7502 8172 cd tmp.$$ 7503 8173 cat << \EOF > $CLASS 7504 /* [#]line 7504 "configure" */8174 /* [#]line 8174 "configure" */ 7505 8175 package sun.applet; 7506 8176 … … 7552 8222 cd tmp.$$ 7553 8223 cat << \EOF > $CLASS 7554 /* [#]line 7554 "configure" */8224 /* [#]line 8224 "configure" */ 7555 8225 package sun.applet; 7556 8226 … … 7602 8272 cd tmp.$$ 7603 8273 cat << \EOF > $CLASS 7604 /* [#]line 7604 "configure" */8274 /* [#]line 8274 "configure" */ 7605 8275 import java.lang.reflect.Modifier; 7606 8276 … … 7654 8324 7655 8325 8326 8327 pkg_failed=no 8328 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GLIB2_V_216" >&5 8329 $as_echo_n "checking for GLIB2_V_216... " >&6; } 8330 8331 if test -n "$GLIB2_V_216_CFLAGS"; then 8332 pkg_cv_GLIB2_V_216_CFLAGS="$GLIB2_V_216_CFLAGS" 8333 elif test -n "$PKG_CONFIG"; then 8334 if test -n "$PKG_CONFIG" && \ 8335 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.16\""; } >&5 8336 ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.16") 2>&5 8337 ac_status=$? 8338 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 8339 test $ac_status = 0; }; then 8340 pkg_cv_GLIB2_V_216_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= 2.16" 2>/dev/null` 8341 else 8342 pkg_failed=yes 8343 fi 8344 else 8345 pkg_failed=untried 8346 fi 8347 if test -n "$GLIB2_V_216_LIBS"; then 8348 pkg_cv_GLIB2_V_216_LIBS="$GLIB2_V_216_LIBS" 8349 elif test -n "$PKG_CONFIG"; then 8350 if test -n "$PKG_CONFIG" && \ 8351 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.16\""; } >&5 8352 ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.16") 2>&5 8353 ac_status=$? 8354 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 8355 test $ac_status = 0; }; then 8356 pkg_cv_GLIB2_V_216_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= 2.16" 2>/dev/null` 8357 else 8358 pkg_failed=yes 8359 fi 8360 else 8361 pkg_failed=untried 8362 fi 8363 8364 8365 8366 if test $pkg_failed = yes; then 8367 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 8368 $as_echo "no" >&6; } 8369 8370 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 8371 _pkg_short_errors_supported=yes 8372 else 8373 _pkg_short_errors_supported=no 8374 fi 8375 if test $_pkg_short_errors_supported = yes; then 8376 GLIB2_V_216_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "glib-2.0 >= 2.16" 2>&1` 8377 else 8378 GLIB2_V_216_PKG_ERRORS=`$PKG_CONFIG --print-errors "glib-2.0 >= 2.16" 2>&1` 8379 fi 8380 # Put the nasty error message in config.log where it belongs 8381 echo "$GLIB2_V_216_PKG_ERRORS" >&5 8382 8383 $as_echo "#define LEGACY_GLIB 1" >>confdefs.h 8384 8385 elif test $pkg_failed = untried; then 8386 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 8387 $as_echo "no" >&6; } 8388 $as_echo "#define LEGACY_GLIB 1" >>confdefs.h 8389 8390 else 8391 GLIB2_V_216_CFLAGS=$pkg_cv_GLIB2_V_216_CFLAGS 8392 GLIB2_V_216_LIBS=$pkg_cv_GLIB2_V_216_LIBS 8393 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 8394 $as_echo "yes" >&6; } 8395 8396 fi 8397 8398 8399 8400 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for legacy xulrunner api" >&5 8401 $as_echo_n "checking for legacy xulrunner api... " >&6; } 8402 ac_ext=cpp 8403 ac_cpp='$CXXCPP $CPPFLAGS' 8404 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' 8405 ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' 8406 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu 8407 8408 CXXFLAGS_BACKUP=$CXXFLAGS 8409 CXXFLAGS=$CXXFLAGS" "$MOZILLA_CFLAGS 8410 cat confdefs.h - <<_ACEOF >conftest.$ac_ext 8411 /* end confdefs.h. */ 8412 8413 #include <npfunctions.h> 8414 const char* NP_GetMIMEDescription () 8415 {return (char*) "yap!";} 8416 8417 int 8418 main () 8419 { 8420 8421 ; 8422 return 0; 8423 } 8424 _ACEOF 8425 if ac_fn_cxx_try_compile "$LINENO"; then : 8426 8427 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 8428 $as_echo "no" >&6; } 8429 8430 else 8431 8432 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 8433 $as_echo "yes" >&6; } 8434 $as_echo "#define LEGACY_XULRUNNERAPI 1" >>confdefs.h 8435 8436 8437 fi 8438 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext 8439 CXXFLAGS=$CXXFLAGS_BACKUP 8440 ac_ext=c 8441 ac_cpp='$CPP $CPPFLAGS' 8442 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' 8443 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' 8444 ac_compiler_gnu=$ac_cv_c_compiler_gnu 8445 8446 8447 7656 8448 # 7657 8449 # Find optional depedencies 7658 8450 # 8451 8452 for ac_prog in xsltproc 8453 do 8454 # Extract the first word of "$ac_prog", so it can be a program name with args. 8455 set dummy $ac_prog; ac_word=$2 8456 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 8457 $as_echo_n "checking for $ac_word... " >&6; } 8458 if ${ac_cv_prog_XSLTPROC+:} false; then : 8459 $as_echo_n "(cached) " >&6 8460 else 8461 if test -n "$XSLTPROC"; then 8462 ac_cv_prog_XSLTPROC="$XSLTPROC" # Let the user override the test. 8463 else 8464 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 8465 for as_dir in $PATH 8466 do 8467 IFS=$as_save_IFS 8468 test -z "$as_dir" && as_dir=. 8469 for ac_exec_ext in '' $ac_executable_extensions; do 8470 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 8471 ac_cv_prog_XSLTPROC="$ac_prog" 8472 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 8473 break 2 8474 fi 8475 done 8476 done 8477 IFS=$as_save_IFS 8478 8479 fi 8480 fi 8481 XSLTPROC=$ac_cv_prog_XSLTPROC 8482 if test -n "$XSLTPROC"; then 8483 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XSLTPROC" >&5 8484 $as_echo "$XSLTPROC" >&6; } 8485 else 8486 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 8487 $as_echo "no" >&6; } 8488 fi 8489 8490 8491 test -n "$XSLTPROC" && break 8492 done 8493 8494 # browser to be linked/tested 8495 # Example: IT_FIND_BROWSER([browser-name],[variable-to-store-path],[default-run-command-if-different-from-the-browser-name]) 8496 8497 8498 # Check whether --with-firefox was given. 8499 if test "${with_firefox+set}" = set; then : 8500 withval=$with_firefox; 8501 if test "${withval}" = "no" || test "${withval}" = "yes" || test "${withval}" = "" ; then 8502 FIREFOX="" 8503 elif test -f "${withval}" ; then 8504 FIREFOX="${withval}" 8505 else 8506 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for firefox" >&5 8507 $as_echo_n "checking for firefox... " >&6; } 8508 { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 8509 $as_echo "not found" >&6; } 8510 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 8511 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 8512 as_fn_error $? "invalid location specified to firefox: ${withval} 8513 See \`config.log' for more details" "$LINENO" 5; } 8514 fi 8515 8516 else 8517 8518 withval="yes" 8519 8520 fi 8521 8522 8523 if test -f "${FIREFOX}"; then 8524 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for firefox" >&5 8525 $as_echo_n "checking for firefox... " >&6; } 8526 { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${FIREFOX}" >&5 8527 $as_echo "${FIREFOX}" >&6; } 8528 elif test "${withval}" != "no"; then 8529 if test 2 -gt 2; then 8530 if test -n "$ac_tool_prefix"; then 8531 # Extract the first word of "${ac_tool_prefix}", so it can be a program name with args. 8532 set dummy ${ac_tool_prefix}; ac_word=$2 8533 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 8534 $as_echo_n "checking for $ac_word... " >&6; } 8535 if ${ac_cv_path_FIREFOX+:} false; then : 8536 $as_echo_n "(cached) " >&6 8537 else 8538 case $FIREFOX in 8539 [\\/]* | ?:[\\/]*) 8540 ac_cv_path_FIREFOX="$FIREFOX" # Let the user override the test with a path. 8541 ;; 8542 *) 8543 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 8544 for as_dir in $PATH 8545 do 8546 IFS=$as_save_IFS 8547 test -z "$as_dir" && as_dir=. 8548 for ac_exec_ext in '' $ac_executable_extensions; do 8549 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 8550 ac_cv_path_FIREFOX="$as_dir/$ac_word$ac_exec_ext" 8551 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 8552 break 2 8553 fi 8554 done 8555 done 8556 IFS=$as_save_IFS 8557 8558 ;; 8559 esac 8560 fi 8561 FIREFOX=$ac_cv_path_FIREFOX 8562 if test -n "$FIREFOX"; then 8563 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FIREFOX" >&5 8564 $as_echo "$FIREFOX" >&6; } 8565 else 8566 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 8567 $as_echo "no" >&6; } 8568 fi 8569 8570 8571 fi 8572 if test -z "$ac_cv_path_FIREFOX"; then 8573 ac_pt_FIREFOX=$FIREFOX 8574 # Extract the first word of "", so it can be a program name with args. 8575 set dummy ; ac_word=$2 8576 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 8577 $as_echo_n "checking for $ac_word... " >&6; } 8578 if ${ac_cv_path_ac_pt_FIREFOX+:} false; then : 8579 $as_echo_n "(cached) " >&6 8580 else 8581 case $ac_pt_FIREFOX in 8582 [\\/]* | ?:[\\/]*) 8583 ac_cv_path_ac_pt_FIREFOX="$ac_pt_FIREFOX" # Let the user override the test with a path. 8584 ;; 8585 *) 8586 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 8587 for as_dir in $PATH 8588 do 8589 IFS=$as_save_IFS 8590 test -z "$as_dir" && as_dir=. 8591 for ac_exec_ext in '' $ac_executable_extensions; do 8592 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 8593 ac_cv_path_ac_pt_FIREFOX="$as_dir/$ac_word$ac_exec_ext" 8594 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 8595 break 2 8596 fi 8597 done 8598 done 8599 IFS=$as_save_IFS 8600 8601 ;; 8602 esac 8603 fi 8604 ac_pt_FIREFOX=$ac_cv_path_ac_pt_FIREFOX 8605 if test -n "$ac_pt_FIREFOX"; then 8606 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_FIREFOX" >&5 8607 $as_echo "$ac_pt_FIREFOX" >&6; } 8608 else 8609 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 8610 $as_echo "no" >&6; } 8611 fi 8612 8613 if test "x$ac_pt_FIREFOX" = x; then 8614 FIREFOX="" 8615 else 8616 case $cross_compiling:$ac_tool_warned in 8617 yes:) 8618 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 8619 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} 8620 ac_tool_warned=yes ;; 8621 esac 8622 FIREFOX=$ac_pt_FIREFOX 8623 fi 8624 else 8625 FIREFOX="$ac_cv_path_FIREFOX" 8626 fi 8627 8628 else 8629 if test -n "$ac_tool_prefix"; then 8630 # Extract the first word of "${ac_tool_prefix}firefox", so it can be a program name with args. 8631 set dummy ${ac_tool_prefix}firefox; ac_word=$2 8632 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 8633 $as_echo_n "checking for $ac_word... " >&6; } 8634 if ${ac_cv_path_FIREFOX+:} false; then : 8635 $as_echo_n "(cached) " >&6 8636 else 8637 case $FIREFOX in 8638 [\\/]* | ?:[\\/]*) 8639 ac_cv_path_FIREFOX="$FIREFOX" # Let the user override the test with a path. 8640 ;; 8641 *) 8642 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 8643 for as_dir in $PATH 8644 do 8645 IFS=$as_save_IFS 8646 test -z "$as_dir" && as_dir=. 8647 for ac_exec_ext in '' $ac_executable_extensions; do 8648 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 8649 ac_cv_path_FIREFOX="$as_dir/$ac_word$ac_exec_ext" 8650 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 8651 break 2 8652 fi 8653 done 8654 done 8655 IFS=$as_save_IFS 8656 8657 ;; 8658 esac 8659 fi 8660 FIREFOX=$ac_cv_path_FIREFOX 8661 if test -n "$FIREFOX"; then 8662 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FIREFOX" >&5 8663 $as_echo "$FIREFOX" >&6; } 8664 else 8665 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 8666 $as_echo "no" >&6; } 8667 fi 8668 8669 8670 fi 8671 if test -z "$ac_cv_path_FIREFOX"; then 8672 ac_pt_FIREFOX=$FIREFOX 8673 # Extract the first word of "firefox", so it can be a program name with args. 8674 set dummy firefox; ac_word=$2 8675 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 8676 $as_echo_n "checking for $ac_word... " >&6; } 8677 if ${ac_cv_path_ac_pt_FIREFOX+:} false; then : 8678 $as_echo_n "(cached) " >&6 8679 else 8680 case $ac_pt_FIREFOX in 8681 [\\/]* | ?:[\\/]*) 8682 ac_cv_path_ac_pt_FIREFOX="$ac_pt_FIREFOX" # Let the user override the test with a path. 8683 ;; 8684 *) 8685 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 8686 for as_dir in $PATH 8687 do 8688 IFS=$as_save_IFS 8689 test -z "$as_dir" && as_dir=. 8690 for ac_exec_ext in '' $ac_executable_extensions; do 8691 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 8692 ac_cv_path_ac_pt_FIREFOX="$as_dir/$ac_word$ac_exec_ext" 8693 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 8694 break 2 8695 fi 8696 done 8697 done 8698 IFS=$as_save_IFS 8699 8700 ;; 8701 esac 8702 fi 8703 ac_pt_FIREFOX=$ac_cv_path_ac_pt_FIREFOX 8704 if test -n "$ac_pt_FIREFOX"; then 8705 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_FIREFOX" >&5 8706 $as_echo "$ac_pt_FIREFOX" >&6; } 8707 else 8708 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 8709 $as_echo "no" >&6; } 8710 fi 8711 8712 if test "x$ac_pt_FIREFOX" = x; then 8713 FIREFOX="" 8714 else 8715 case $cross_compiling:$ac_tool_warned in 8716 yes:) 8717 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 8718 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} 8719 ac_tool_warned=yes ;; 8720 esac 8721 FIREFOX=$ac_pt_FIREFOX 8722 fi 8723 else 8724 FIREFOX="$ac_cv_path_FIREFOX" 8725 fi 8726 8727 fi 8728 else 8729 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for firefox" >&5 8730 $as_echo_n "checking for firefox... " >&6; } 8731 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 8732 $as_echo "no" >&6; } 8733 fi 8734 8735 8736 8737 # Check whether --with-chrome was given. 8738 if test "${with_chrome+set}" = set; then : 8739 withval=$with_chrome; 8740 if test "${withval}" = "no" || test "${withval}" = "yes" || test "${withval}" = "" ; then 8741 CHROME="" 8742 elif test -f "${withval}" ; then 8743 CHROME="${withval}" 8744 else 8745 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for chrome" >&5 8746 $as_echo_n "checking for chrome... " >&6; } 8747 { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 8748 $as_echo "not found" >&6; } 8749 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 8750 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 8751 as_fn_error $? "invalid location specified to chrome: ${withval} 8752 See \`config.log' for more details" "$LINENO" 5; } 8753 fi 8754 8755 else 8756 8757 withval="yes" 8758 8759 fi 8760 8761 8762 if test -f "${CHROME}"; then 8763 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for chrome" >&5 8764 $as_echo_n "checking for chrome... " >&6; } 8765 { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${CHROME}" >&5 8766 $as_echo "${CHROME}" >&6; } 8767 elif test "${withval}" != "no"; then 8768 if test 3 -gt 2; then 8769 if test -n "$ac_tool_prefix"; then 8770 # Extract the first word of "${ac_tool_prefix}google-chrome", so it can be a program name with args. 8771 set dummy ${ac_tool_prefix}google-chrome; ac_word=$2 8772 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 8773 $as_echo_n "checking for $ac_word... " >&6; } 8774 if ${ac_cv_path_CHROME+:} false; then : 8775 $as_echo_n "(cached) " >&6 8776 else 8777 case $CHROME in 8778 [\\/]* | ?:[\\/]*) 8779 ac_cv_path_CHROME="$CHROME" # Let the user override the test with a path. 8780 ;; 8781 *) 8782 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 8783 for as_dir in $PATH 8784 do 8785 IFS=$as_save_IFS 8786 test -z "$as_dir" && as_dir=. 8787 for ac_exec_ext in '' $ac_executable_extensions; do 8788 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 8789 ac_cv_path_CHROME="$as_dir/$ac_word$ac_exec_ext" 8790 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 8791 break 2 8792 fi 8793 done 8794 done 8795 IFS=$as_save_IFS 8796 8797 ;; 8798 esac 8799 fi 8800 CHROME=$ac_cv_path_CHROME 8801 if test -n "$CHROME"; then 8802 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CHROME" >&5 8803 $as_echo "$CHROME" >&6; } 8804 else 8805 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 8806 $as_echo "no" >&6; } 8807 fi 8808 8809 8810 fi 8811 if test -z "$ac_cv_path_CHROME"; then 8812 ac_pt_CHROME=$CHROME 8813 # Extract the first word of "google-chrome", so it can be a program name with args. 8814 set dummy google-chrome; ac_word=$2 8815 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 8816 $as_echo_n "checking for $ac_word... " >&6; } 8817 if ${ac_cv_path_ac_pt_CHROME+:} false; then : 8818 $as_echo_n "(cached) " >&6 8819 else 8820 case $ac_pt_CHROME in 8821 [\\/]* | ?:[\\/]*) 8822 ac_cv_path_ac_pt_CHROME="$ac_pt_CHROME" # Let the user override the test with a path. 8823 ;; 8824 *) 8825 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 8826 for as_dir in $PATH 8827 do 8828 IFS=$as_save_IFS 8829 test -z "$as_dir" && as_dir=. 8830 for ac_exec_ext in '' $ac_executable_extensions; do 8831 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 8832 ac_cv_path_ac_pt_CHROME="$as_dir/$ac_word$ac_exec_ext" 8833 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 8834 break 2 8835 fi 8836 done 8837 done 8838 IFS=$as_save_IFS 8839 8840 ;; 8841 esac 8842 fi 8843 ac_pt_CHROME=$ac_cv_path_ac_pt_CHROME 8844 if test -n "$ac_pt_CHROME"; then 8845 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_CHROME" >&5 8846 $as_echo "$ac_pt_CHROME" >&6; } 8847 else 8848 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 8849 $as_echo "no" >&6; } 8850 fi 8851 8852 if test "x$ac_pt_CHROME" = x; then 8853 CHROME="" 8854 else 8855 case $cross_compiling:$ac_tool_warned in 8856 yes:) 8857 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 8858 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} 8859 ac_tool_warned=yes ;; 8860 esac 8861 CHROME=$ac_pt_CHROME 8862 fi 8863 else 8864 CHROME="$ac_cv_path_CHROME" 8865 fi 8866 8867 else 8868 if test -n "$ac_tool_prefix"; then 8869 # Extract the first word of "${ac_tool_prefix}chrome", so it can be a program name with args. 8870 set dummy ${ac_tool_prefix}chrome; ac_word=$2 8871 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 8872 $as_echo_n "checking for $ac_word... " >&6; } 8873 if ${ac_cv_path_CHROME+:} false; then : 8874 $as_echo_n "(cached) " >&6 8875 else 8876 case $CHROME in 8877 [\\/]* | ?:[\\/]*) 8878 ac_cv_path_CHROME="$CHROME" # Let the user override the test with a path. 8879 ;; 8880 *) 8881 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 8882 for as_dir in $PATH 8883 do 8884 IFS=$as_save_IFS 8885 test -z "$as_dir" && as_dir=. 8886 for ac_exec_ext in '' $ac_executable_extensions; do 8887 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 8888 ac_cv_path_CHROME="$as_dir/$ac_word$ac_exec_ext" 8889 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 8890 break 2 8891 fi 8892 done 8893 done 8894 IFS=$as_save_IFS 8895 8896 ;; 8897 esac 8898 fi 8899 CHROME=$ac_cv_path_CHROME 8900 if test -n "$CHROME"; then 8901 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CHROME" >&5 8902 $as_echo "$CHROME" >&6; } 8903 else 8904 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 8905 $as_echo "no" >&6; } 8906 fi 8907 8908 8909 fi 8910 if test -z "$ac_cv_path_CHROME"; then 8911 ac_pt_CHROME=$CHROME 8912 # Extract the first word of "chrome", so it can be a program name with args. 8913 set dummy chrome; ac_word=$2 8914 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 8915 $as_echo_n "checking for $ac_word... " >&6; } 8916 if ${ac_cv_path_ac_pt_CHROME+:} false; then : 8917 $as_echo_n "(cached) " >&6 8918 else 8919 case $ac_pt_CHROME in 8920 [\\/]* | ?:[\\/]*) 8921 ac_cv_path_ac_pt_CHROME="$ac_pt_CHROME" # Let the user override the test with a path. 8922 ;; 8923 *) 8924 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 8925 for as_dir in $PATH 8926 do 8927 IFS=$as_save_IFS 8928 test -z "$as_dir" && as_dir=. 8929 for ac_exec_ext in '' $ac_executable_extensions; do 8930 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 8931 ac_cv_path_ac_pt_CHROME="$as_dir/$ac_word$ac_exec_ext" 8932 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 8933 break 2 8934 fi 8935 done 8936 done 8937 IFS=$as_save_IFS 8938 8939 ;; 8940 esac 8941 fi 8942 ac_pt_CHROME=$ac_cv_path_ac_pt_CHROME 8943 if test -n "$ac_pt_CHROME"; then 8944 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_CHROME" >&5 8945 $as_echo "$ac_pt_CHROME" >&6; } 8946 else 8947 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 8948 $as_echo "no" >&6; } 8949 fi 8950 8951 if test "x$ac_pt_CHROME" = x; then 8952 CHROME="" 8953 else 8954 case $cross_compiling:$ac_tool_warned in 8955 yes:) 8956 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 8957 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} 8958 ac_tool_warned=yes ;; 8959 esac 8960 CHROME=$ac_pt_CHROME 8961 fi 8962 else 8963 CHROME="$ac_cv_path_CHROME" 8964 fi 8965 8966 fi 8967 else 8968 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for chrome" >&5 8969 $as_echo_n "checking for chrome... " >&6; } 8970 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 8971 $as_echo "no" >&6; } 8972 fi 8973 8974 8975 8976 # Check whether --with-chromium was given. 8977 if test "${with_chromium+set}" = set; then : 8978 withval=$with_chromium; 8979 if test "${withval}" = "no" || test "${withval}" = "yes" || test "${withval}" = "" ; then 8980 CHROMIUM="" 8981 elif test -f "${withval}" ; then 8982 CHROMIUM="${withval}" 8983 else 8984 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for chromium" >&5 8985 $as_echo_n "checking for chromium... " >&6; } 8986 { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 8987 $as_echo "not found" >&6; } 8988 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 8989 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 8990 as_fn_error $? "invalid location specified to chromium: ${withval} 8991 See \`config.log' for more details" "$LINENO" 5; } 8992 fi 8993 8994 else 8995 8996 withval="yes" 8997 8998 fi 8999 9000 9001 if test -f "${CHROMIUM}"; then 9002 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for chromium" >&5 9003 $as_echo_n "checking for chromium... " >&6; } 9004 { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${CHROMIUM}" >&5 9005 $as_echo "${CHROMIUM}" >&6; } 9006 elif test "${withval}" != "no"; then 9007 if test 3 -gt 2; then 9008 if test -n "$ac_tool_prefix"; then 9009 # Extract the first word of "${ac_tool_prefix}chromium-browser", so it can be a program name with args. 9010 set dummy ${ac_tool_prefix}chromium-browser; ac_word=$2 9011 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 9012 $as_echo_n "checking for $ac_word... " >&6; } 9013 if ${ac_cv_path_CHROMIUM+:} false; then : 9014 $as_echo_n "(cached) " >&6 9015 else 9016 case $CHROMIUM in 9017 [\\/]* | ?:[\\/]*) 9018 ac_cv_path_CHROMIUM="$CHROMIUM" # Let the user override the test with a path. 9019 ;; 9020 *) 9021 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 9022 for as_dir in $PATH 9023 do 9024 IFS=$as_save_IFS 9025 test -z "$as_dir" && as_dir=. 9026 for ac_exec_ext in '' $ac_executable_extensions; do 9027 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 9028 ac_cv_path_CHROMIUM="$as_dir/$ac_word$ac_exec_ext" 9029 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 9030 break 2 9031 fi 9032 done 9033 done 9034 IFS=$as_save_IFS 9035 9036 ;; 9037 esac 9038 fi 9039 CHROMIUM=$ac_cv_path_CHROMIUM 9040 if test -n "$CHROMIUM"; then 9041 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CHROMIUM" >&5 9042 $as_echo "$CHROMIUM" >&6; } 9043 else 9044 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 9045 $as_echo "no" >&6; } 9046 fi 9047 9048 9049 fi 9050 if test -z "$ac_cv_path_CHROMIUM"; then 9051 ac_pt_CHROMIUM=$CHROMIUM 9052 # Extract the first word of "chromium-browser", so it can be a program name with args. 9053 set dummy chromium-browser; ac_word=$2 9054 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 9055 $as_echo_n "checking for $ac_word... " >&6; } 9056 if ${ac_cv_path_ac_pt_CHROMIUM+:} false; then : 9057 $as_echo_n "(cached) " >&6 9058 else 9059 case $ac_pt_CHROMIUM in 9060 [\\/]* | ?:[\\/]*) 9061 ac_cv_path_ac_pt_CHROMIUM="$ac_pt_CHROMIUM" # Let the user override the test with a path. 9062 ;; 9063 *) 9064 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 9065 for as_dir in $PATH 9066 do 9067 IFS=$as_save_IFS 9068 test -z "$as_dir" && as_dir=. 9069 for ac_exec_ext in '' $ac_executable_extensions; do 9070 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 9071 ac_cv_path_ac_pt_CHROMIUM="$as_dir/$ac_word$ac_exec_ext" 9072 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 9073 break 2 9074 fi 9075 done 9076 done 9077 IFS=$as_save_IFS 9078 9079 ;; 9080 esac 9081 fi 9082 ac_pt_CHROMIUM=$ac_cv_path_ac_pt_CHROMIUM 9083 if test -n "$ac_pt_CHROMIUM"; then 9084 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_CHROMIUM" >&5 9085 $as_echo "$ac_pt_CHROMIUM" >&6; } 9086 else 9087 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 9088 $as_echo "no" >&6; } 9089 fi 9090 9091 if test "x$ac_pt_CHROMIUM" = x; then 9092 CHROMIUM="" 9093 else 9094 case $cross_compiling:$ac_tool_warned in 9095 yes:) 9096 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 9097 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} 9098 ac_tool_warned=yes ;; 9099 esac 9100 CHROMIUM=$ac_pt_CHROMIUM 9101 fi 9102 else 9103 CHROMIUM="$ac_cv_path_CHROMIUM" 9104 fi 9105 9106 else 9107 if test -n "$ac_tool_prefix"; then 9108 # Extract the first word of "${ac_tool_prefix}chromium", so it can be a program name with args. 9109 set dummy ${ac_tool_prefix}chromium; ac_word=$2 9110 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 9111 $as_echo_n "checking for $ac_word... " >&6; } 9112 if ${ac_cv_path_CHROMIUM+:} false; then : 9113 $as_echo_n "(cached) " >&6 9114 else 9115 case $CHROMIUM in 9116 [\\/]* | ?:[\\/]*) 9117 ac_cv_path_CHROMIUM="$CHROMIUM" # Let the user override the test with a path. 9118 ;; 9119 *) 9120 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 9121 for as_dir in $PATH 9122 do 9123 IFS=$as_save_IFS 9124 test -z "$as_dir" && as_dir=. 9125 for ac_exec_ext in '' $ac_executable_extensions; do 9126 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 9127 ac_cv_path_CHROMIUM="$as_dir/$ac_word$ac_exec_ext" 9128 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 9129 break 2 9130 fi 9131 done 9132 done 9133 IFS=$as_save_IFS 9134 9135 ;; 9136 esac 9137 fi 9138 CHROMIUM=$ac_cv_path_CHROMIUM 9139 if test -n "$CHROMIUM"; then 9140 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CHROMIUM" >&5 9141 $as_echo "$CHROMIUM" >&6; } 9142 else 9143 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 9144 $as_echo "no" >&6; } 9145 fi 9146 9147 9148 fi 9149 if test -z "$ac_cv_path_CHROMIUM"; then 9150 ac_pt_CHROMIUM=$CHROMIUM 9151 # Extract the first word of "chromium", so it can be a program name with args. 9152 set dummy chromium; ac_word=$2 9153 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 9154 $as_echo_n "checking for $ac_word... " >&6; } 9155 if ${ac_cv_path_ac_pt_CHROMIUM+:} false; then : 9156 $as_echo_n "(cached) " >&6 9157 else 9158 case $ac_pt_CHROMIUM in 9159 [\\/]* | ?:[\\/]*) 9160 ac_cv_path_ac_pt_CHROMIUM="$ac_pt_CHROMIUM" # Let the user override the test with a path. 9161 ;; 9162 *) 9163 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 9164 for as_dir in $PATH 9165 do 9166 IFS=$as_save_IFS 9167 test -z "$as_dir" && as_dir=. 9168 for ac_exec_ext in '' $ac_executable_extensions; do 9169 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 9170 ac_cv_path_ac_pt_CHROMIUM="$as_dir/$ac_word$ac_exec_ext" 9171 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 9172 break 2 9173 fi 9174 done 9175 done 9176 IFS=$as_save_IFS 9177 9178 ;; 9179 esac 9180 fi 9181 ac_pt_CHROMIUM=$ac_cv_path_ac_pt_CHROMIUM 9182 if test -n "$ac_pt_CHROMIUM"; then 9183 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_CHROMIUM" >&5 9184 $as_echo "$ac_pt_CHROMIUM" >&6; } 9185 else 9186 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 9187 $as_echo "no" >&6; } 9188 fi 9189 9190 if test "x$ac_pt_CHROMIUM" = x; then 9191 CHROMIUM="" 9192 else 9193 case $cross_compiling:$ac_tool_warned in 9194 yes:) 9195 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 9196 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} 9197 ac_tool_warned=yes ;; 9198 esac 9199 CHROMIUM=$ac_pt_CHROMIUM 9200 fi 9201 else 9202 CHROMIUM="$ac_cv_path_CHROMIUM" 9203 fi 9204 9205 fi 9206 else 9207 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for chromium" >&5 9208 $as_echo_n "checking for chromium... " >&6; } 9209 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 9210 $as_echo "no" >&6; } 9211 fi 9212 9213 9214 9215 # Check whether --with-opera was given. 9216 if test "${with_opera+set}" = set; then : 9217 withval=$with_opera; 9218 if test "${withval}" = "no" || test "${withval}" = "yes" || test "${withval}" = "" ; then 9219 OPERA="" 9220 elif test -f "${withval}" ; then 9221 OPERA="${withval}" 9222 else 9223 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for opera" >&5 9224 $as_echo_n "checking for opera... " >&6; } 9225 { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 9226 $as_echo "not found" >&6; } 9227 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 9228 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 9229 as_fn_error $? "invalid location specified to opera: ${withval} 9230 See \`config.log' for more details" "$LINENO" 5; } 9231 fi 9232 9233 else 9234 9235 withval="yes" 9236 9237 fi 9238 9239 9240 if test -f "${OPERA}"; then 9241 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for opera" >&5 9242 $as_echo_n "checking for opera... " >&6; } 9243 { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${OPERA}" >&5 9244 $as_echo "${OPERA}" >&6; } 9245 elif test "${withval}" != "no"; then 9246 if test 2 -gt 2; then 9247 if test -n "$ac_tool_prefix"; then 9248 # Extract the first word of "${ac_tool_prefix}", so it can be a program name with args. 9249 set dummy ${ac_tool_prefix}; ac_word=$2 9250 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 9251 $as_echo_n "checking for $ac_word... " >&6; } 9252 if ${ac_cv_path_OPERA+:} false; then : 9253 $as_echo_n "(cached) " >&6 9254 else 9255 case $OPERA in 9256 [\\/]* | ?:[\\/]*) 9257 ac_cv_path_OPERA="$OPERA" # Let the user override the test with a path. 9258 ;; 9259 *) 9260 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 9261 for as_dir in $PATH 9262 do 9263 IFS=$as_save_IFS 9264 test -z "$as_dir" && as_dir=. 9265 for ac_exec_ext in '' $ac_executable_extensions; do 9266 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 9267 ac_cv_path_OPERA="$as_dir/$ac_word$ac_exec_ext" 9268 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 9269 break 2 9270 fi 9271 done 9272 done 9273 IFS=$as_save_IFS 9274 9275 ;; 9276 esac 9277 fi 9278 OPERA=$ac_cv_path_OPERA 9279 if test -n "$OPERA"; then 9280 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OPERA" >&5 9281 $as_echo "$OPERA" >&6; } 9282 else 9283 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 9284 $as_echo "no" >&6; } 9285 fi 9286 9287 9288 fi 9289 if test -z "$ac_cv_path_OPERA"; then 9290 ac_pt_OPERA=$OPERA 9291 # Extract the first word of "", so it can be a program name with args. 9292 set dummy ; ac_word=$2 9293 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 9294 $as_echo_n "checking for $ac_word... " >&6; } 9295 if ${ac_cv_path_ac_pt_OPERA+:} false; then : 9296 $as_echo_n "(cached) " >&6 9297 else 9298 case $ac_pt_OPERA in 9299 [\\/]* | ?:[\\/]*) 9300 ac_cv_path_ac_pt_OPERA="$ac_pt_OPERA" # Let the user override the test with a path. 9301 ;; 9302 *) 9303 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 9304 for as_dir in $PATH 9305 do 9306 IFS=$as_save_IFS 9307 test -z "$as_dir" && as_dir=. 9308 for ac_exec_ext in '' $ac_executable_extensions; do 9309 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 9310 ac_cv_path_ac_pt_OPERA="$as_dir/$ac_word$ac_exec_ext" 9311 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 9312 break 2 9313 fi 9314 done 9315 done 9316 IFS=$as_save_IFS 9317 9318 ;; 9319 esac 9320 fi 9321 ac_pt_OPERA=$ac_cv_path_ac_pt_OPERA 9322 if test -n "$ac_pt_OPERA"; then 9323 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_OPERA" >&5 9324 $as_echo "$ac_pt_OPERA" >&6; } 9325 else 9326 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 9327 $as_echo "no" >&6; } 9328 fi 9329 9330 if test "x$ac_pt_OPERA" = x; then 9331 OPERA="" 9332 else 9333 case $cross_compiling:$ac_tool_warned in 9334 yes:) 9335 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 9336 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} 9337 ac_tool_warned=yes ;; 9338 esac 9339 OPERA=$ac_pt_OPERA 9340 fi 9341 else 9342 OPERA="$ac_cv_path_OPERA" 9343 fi 9344 9345 else 9346 if test -n "$ac_tool_prefix"; then 9347 # Extract the first word of "${ac_tool_prefix}opera", so it can be a program name with args. 9348 set dummy ${ac_tool_prefix}opera; ac_word=$2 9349 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 9350 $as_echo_n "checking for $ac_word... " >&6; } 9351 if ${ac_cv_path_OPERA+:} false; then : 9352 $as_echo_n "(cached) " >&6 9353 else 9354 case $OPERA in 9355 [\\/]* | ?:[\\/]*) 9356 ac_cv_path_OPERA="$OPERA" # Let the user override the test with a path. 9357 ;; 9358 *) 9359 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 9360 for as_dir in $PATH 9361 do 9362 IFS=$as_save_IFS 9363 test -z "$as_dir" && as_dir=. 9364 for ac_exec_ext in '' $ac_executable_extensions; do 9365 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 9366 ac_cv_path_OPERA="$as_dir/$ac_word$ac_exec_ext" 9367 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 9368 break 2 9369 fi 9370 done 9371 done 9372 IFS=$as_save_IFS 9373 9374 ;; 9375 esac 9376 fi 9377 OPERA=$ac_cv_path_OPERA 9378 if test -n "$OPERA"; then 9379 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OPERA" >&5 9380 $as_echo "$OPERA" >&6; } 9381 else 9382 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 9383 $as_echo "no" >&6; } 9384 fi 9385 9386 9387 fi 9388 if test -z "$ac_cv_path_OPERA"; then 9389 ac_pt_OPERA=$OPERA 9390 # Extract the first word of "opera", so it can be a program name with args. 9391 set dummy opera; ac_word=$2 9392 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 9393 $as_echo_n "checking for $ac_word... " >&6; } 9394 if ${ac_cv_path_ac_pt_OPERA+:} false; then : 9395 $as_echo_n "(cached) " >&6 9396 else 9397 case $ac_pt_OPERA in 9398 [\\/]* | ?:[\\/]*) 9399 ac_cv_path_ac_pt_OPERA="$ac_pt_OPERA" # Let the user override the test with a path. 9400 ;; 9401 *) 9402 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 9403 for as_dir in $PATH 9404 do 9405 IFS=$as_save_IFS 9406 test -z "$as_dir" && as_dir=. 9407 for ac_exec_ext in '' $ac_executable_extensions; do 9408 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 9409 ac_cv_path_ac_pt_OPERA="$as_dir/$ac_word$ac_exec_ext" 9410 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 9411 break 2 9412 fi 9413 done 9414 done 9415 IFS=$as_save_IFS 9416 9417 ;; 9418 esac 9419 fi 9420 ac_pt_OPERA=$ac_cv_path_ac_pt_OPERA 9421 if test -n "$ac_pt_OPERA"; then 9422 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_OPERA" >&5 9423 $as_echo "$ac_pt_OPERA" >&6; } 9424 else 9425 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 9426 $as_echo "no" >&6; } 9427 fi 9428 9429 if test "x$ac_pt_OPERA" = x; then 9430 OPERA="" 9431 else 9432 case $cross_compiling:$ac_tool_warned in 9433 yes:) 9434 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 9435 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} 9436 ac_tool_warned=yes ;; 9437 esac 9438 OPERA=$ac_pt_OPERA 9439 fi 9440 else 9441 OPERA="$ac_cv_path_OPERA" 9442 fi 9443 9444 fi 9445 else 9446 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for opera" >&5 9447 $as_echo_n "checking for opera... " >&6; } 9448 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 9449 $as_echo "no" >&6; } 9450 fi 9451 9452 9453 9454 # Check whether --with-midori was given. 9455 if test "${with_midori+set}" = set; then : 9456 withval=$with_midori; 9457 if test "${withval}" = "no" || test "${withval}" = "yes" || test "${withval}" = "" ; then 9458 MIDORI="" 9459 elif test -f "${withval}" ; then 9460 MIDORI="${withval}" 9461 else 9462 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for midori" >&5 9463 $as_echo_n "checking for midori... " >&6; } 9464 { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 9465 $as_echo "not found" >&6; } 9466 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 9467 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 9468 as_fn_error $? "invalid location specified to midori: ${withval} 9469 See \`config.log' for more details" "$LINENO" 5; } 9470 fi 9471 9472 else 9473 9474 withval="yes" 9475 9476 fi 9477 9478 9479 if test -f "${MIDORI}"; then 9480 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for midori" >&5 9481 $as_echo_n "checking for midori... " >&6; } 9482 { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${MIDORI}" >&5 9483 $as_echo "${MIDORI}" >&6; } 9484 elif test "${withval}" != "no"; then 9485 if test 2 -gt 2; then 9486 if test -n "$ac_tool_prefix"; then 9487 # Extract the first word of "${ac_tool_prefix}", so it can be a program name with args. 9488 set dummy ${ac_tool_prefix}; ac_word=$2 9489 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 9490 $as_echo_n "checking for $ac_word... " >&6; } 9491 if ${ac_cv_path_MIDORI+:} false; then : 9492 $as_echo_n "(cached) " >&6 9493 else 9494 case $MIDORI in 9495 [\\/]* | ?:[\\/]*) 9496 ac_cv_path_MIDORI="$MIDORI" # Let the user override the test with a path. 9497 ;; 9498 *) 9499 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 9500 for as_dir in $PATH 9501 do 9502 IFS=$as_save_IFS 9503 test -z "$as_dir" && as_dir=. 9504 for ac_exec_ext in '' $ac_executable_extensions; do 9505 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 9506 ac_cv_path_MIDORI="$as_dir/$ac_word$ac_exec_ext" 9507 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 9508 break 2 9509 fi 9510 done 9511 done 9512 IFS=$as_save_IFS 9513 9514 ;; 9515 esac 9516 fi 9517 MIDORI=$ac_cv_path_MIDORI 9518 if test -n "$MIDORI"; then 9519 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MIDORI" >&5 9520 $as_echo "$MIDORI" >&6; } 9521 else 9522 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 9523 $as_echo "no" >&6; } 9524 fi 9525 9526 9527 fi 9528 if test -z "$ac_cv_path_MIDORI"; then 9529 ac_pt_MIDORI=$MIDORI 9530 # Extract the first word of "", so it can be a program name with args. 9531 set dummy ; ac_word=$2 9532 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 9533 $as_echo_n "checking for $ac_word... " >&6; } 9534 if ${ac_cv_path_ac_pt_MIDORI+:} false; then : 9535 $as_echo_n "(cached) " >&6 9536 else 9537 case $ac_pt_MIDORI in 9538 [\\/]* | ?:[\\/]*) 9539 ac_cv_path_ac_pt_MIDORI="$ac_pt_MIDORI" # Let the user override the test with a path. 9540 ;; 9541 *) 9542 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 9543 for as_dir in $PATH 9544 do 9545 IFS=$as_save_IFS 9546 test -z "$as_dir" && as_dir=. 9547 for ac_exec_ext in '' $ac_executable_extensions; do 9548 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 9549 ac_cv_path_ac_pt_MIDORI="$as_dir/$ac_word$ac_exec_ext" 9550 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 9551 break 2 9552 fi 9553 done 9554 done 9555 IFS=$as_save_IFS 9556 9557 ;; 9558 esac 9559 fi 9560 ac_pt_MIDORI=$ac_cv_path_ac_pt_MIDORI 9561 if test -n "$ac_pt_MIDORI"; then 9562 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_MIDORI" >&5 9563 $as_echo "$ac_pt_MIDORI" >&6; } 9564 else 9565 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 9566 $as_echo "no" >&6; } 9567 fi 9568 9569 if test "x$ac_pt_MIDORI" = x; then 9570 MIDORI="" 9571 else 9572 case $cross_compiling:$ac_tool_warned in 9573 yes:) 9574 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 9575 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} 9576 ac_tool_warned=yes ;; 9577 esac 9578 MIDORI=$ac_pt_MIDORI 9579 fi 9580 else 9581 MIDORI="$ac_cv_path_MIDORI" 9582 fi 9583 9584 else 9585 if test -n "$ac_tool_prefix"; then 9586 # Extract the first word of "${ac_tool_prefix}midori", so it can be a program name with args. 9587 set dummy ${ac_tool_prefix}midori; ac_word=$2 9588 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 9589 $as_echo_n "checking for $ac_word... " >&6; } 9590 if ${ac_cv_path_MIDORI+:} false; then : 9591 $as_echo_n "(cached) " >&6 9592 else 9593 case $MIDORI in 9594 [\\/]* | ?:[\\/]*) 9595 ac_cv_path_MIDORI="$MIDORI" # Let the user override the test with a path. 9596 ;; 9597 *) 9598 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 9599 for as_dir in $PATH 9600 do 9601 IFS=$as_save_IFS 9602 test -z "$as_dir" && as_dir=. 9603 for ac_exec_ext in '' $ac_executable_extensions; do 9604 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 9605 ac_cv_path_MIDORI="$as_dir/$ac_word$ac_exec_ext" 9606 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 9607 break 2 9608 fi 9609 done 9610 done 9611 IFS=$as_save_IFS 9612 9613 ;; 9614 esac 9615 fi 9616 MIDORI=$ac_cv_path_MIDORI 9617 if test -n "$MIDORI"; then 9618 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MIDORI" >&5 9619 $as_echo "$MIDORI" >&6; } 9620 else 9621 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 9622 $as_echo "no" >&6; } 9623 fi 9624 9625 9626 fi 9627 if test -z "$ac_cv_path_MIDORI"; then 9628 ac_pt_MIDORI=$MIDORI 9629 # Extract the first word of "midori", so it can be a program name with args. 9630 set dummy midori; ac_word=$2 9631 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 9632 $as_echo_n "checking for $ac_word... " >&6; } 9633 if ${ac_cv_path_ac_pt_MIDORI+:} false; then : 9634 $as_echo_n "(cached) " >&6 9635 else 9636 case $ac_pt_MIDORI in 9637 [\\/]* | ?:[\\/]*) 9638 ac_cv_path_ac_pt_MIDORI="$ac_pt_MIDORI" # Let the user override the test with a path. 9639 ;; 9640 *) 9641 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 9642 for as_dir in $PATH 9643 do 9644 IFS=$as_save_IFS 9645 test -z "$as_dir" && as_dir=. 9646 for ac_exec_ext in '' $ac_executable_extensions; do 9647 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 9648 ac_cv_path_ac_pt_MIDORI="$as_dir/$ac_word$ac_exec_ext" 9649 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 9650 break 2 9651 fi 9652 done 9653 done 9654 IFS=$as_save_IFS 9655 9656 ;; 9657 esac 9658 fi 9659 ac_pt_MIDORI=$ac_cv_path_ac_pt_MIDORI 9660 if test -n "$ac_pt_MIDORI"; then 9661 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_MIDORI" >&5 9662 $as_echo "$ac_pt_MIDORI" >&6; } 9663 else 9664 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 9665 $as_echo "no" >&6; } 9666 fi 9667 9668 if test "x$ac_pt_MIDORI" = x; then 9669 MIDORI="" 9670 else 9671 case $cross_compiling:$ac_tool_warned in 9672 yes:) 9673 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 9674 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} 9675 ac_tool_warned=yes ;; 9676 esac 9677 MIDORI=$ac_pt_MIDORI 9678 fi 9679 else 9680 MIDORI="$ac_cv_path_MIDORI" 9681 fi 9682 9683 fi 9684 else 9685 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for midori" >&5 9686 $as_echo_n "checking for midori... " >&6; } 9687 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 9688 $as_echo "no" >&6; } 9689 fi 9690 9691 9692 9693 # Check whether --with-epiphany was given. 9694 if test "${with_epiphany+set}" = set; then : 9695 withval=$with_epiphany; 9696 if test "${withval}" = "no" || test "${withval}" = "yes" || test "${withval}" = "" ; then 9697 EPIPHANY="" 9698 elif test -f "${withval}" ; then 9699 EPIPHANY="${withval}" 9700 else 9701 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for epiphany" >&5 9702 $as_echo_n "checking for epiphany... " >&6; } 9703 { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 9704 $as_echo "not found" >&6; } 9705 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 9706 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 9707 as_fn_error $? "invalid location specified to epiphany: ${withval} 9708 See \`config.log' for more details" "$LINENO" 5; } 9709 fi 9710 9711 else 9712 9713 withval="yes" 9714 9715 fi 9716 9717 9718 if test -f "${EPIPHANY}"; then 9719 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for epiphany" >&5 9720 $as_echo_n "checking for epiphany... " >&6; } 9721 { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${EPIPHANY}" >&5 9722 $as_echo "${EPIPHANY}" >&6; } 9723 elif test "${withval}" != "no"; then 9724 if test 2 -gt 2; then 9725 if test -n "$ac_tool_prefix"; then 9726 # Extract the first word of "${ac_tool_prefix}", so it can be a program name with args. 9727 set dummy ${ac_tool_prefix}; ac_word=$2 9728 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 9729 $as_echo_n "checking for $ac_word... " >&6; } 9730 if ${ac_cv_path_EPIPHANY+:} false; then : 9731 $as_echo_n "(cached) " >&6 9732 else 9733 case $EPIPHANY in 9734 [\\/]* | ?:[\\/]*) 9735 ac_cv_path_EPIPHANY="$EPIPHANY" # Let the user override the test with a path. 9736 ;; 9737 *) 9738 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 9739 for as_dir in $PATH 9740 do 9741 IFS=$as_save_IFS 9742 test -z "$as_dir" && as_dir=. 9743 for ac_exec_ext in '' $ac_executable_extensions; do 9744 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 9745 ac_cv_path_EPIPHANY="$as_dir/$ac_word$ac_exec_ext" 9746 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 9747 break 2 9748 fi 9749 done 9750 done 9751 IFS=$as_save_IFS 9752 9753 ;; 9754 esac 9755 fi 9756 EPIPHANY=$ac_cv_path_EPIPHANY 9757 if test -n "$EPIPHANY"; then 9758 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $EPIPHANY" >&5 9759 $as_echo "$EPIPHANY" >&6; } 9760 else 9761 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 9762 $as_echo "no" >&6; } 9763 fi 9764 9765 9766 fi 9767 if test -z "$ac_cv_path_EPIPHANY"; then 9768 ac_pt_EPIPHANY=$EPIPHANY 9769 # Extract the first word of "", so it can be a program name with args. 9770 set dummy ; ac_word=$2 9771 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 9772 $as_echo_n "checking for $ac_word... " >&6; } 9773 if ${ac_cv_path_ac_pt_EPIPHANY+:} false; then : 9774 $as_echo_n "(cached) " >&6 9775 else 9776 case $ac_pt_EPIPHANY in 9777 [\\/]* | ?:[\\/]*) 9778 ac_cv_path_ac_pt_EPIPHANY="$ac_pt_EPIPHANY" # Let the user override the test with a path. 9779 ;; 9780 *) 9781 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 9782 for as_dir in $PATH 9783 do 9784 IFS=$as_save_IFS 9785 test -z "$as_dir" && as_dir=. 9786 for ac_exec_ext in '' $ac_executable_extensions; do 9787 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 9788 ac_cv_path_ac_pt_EPIPHANY="$as_dir/$ac_word$ac_exec_ext" 9789 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 9790 break 2 9791 fi 9792 done 9793 done 9794 IFS=$as_save_IFS 9795 9796 ;; 9797 esac 9798 fi 9799 ac_pt_EPIPHANY=$ac_cv_path_ac_pt_EPIPHANY 9800 if test -n "$ac_pt_EPIPHANY"; then 9801 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_EPIPHANY" >&5 9802 $as_echo "$ac_pt_EPIPHANY" >&6; } 9803 else 9804 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 9805 $as_echo "no" >&6; } 9806 fi 9807 9808 if test "x$ac_pt_EPIPHANY" = x; then 9809 EPIPHANY="" 9810 else 9811 case $cross_compiling:$ac_tool_warned in 9812 yes:) 9813 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 9814 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} 9815 ac_tool_warned=yes ;; 9816 esac 9817 EPIPHANY=$ac_pt_EPIPHANY 9818 fi 9819 else 9820 EPIPHANY="$ac_cv_path_EPIPHANY" 9821 fi 9822 9823 else 9824 if test -n "$ac_tool_prefix"; then 9825 # Extract the first word of "${ac_tool_prefix}epiphany", so it can be a program name with args. 9826 set dummy ${ac_tool_prefix}epiphany; ac_word=$2 9827 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 9828 $as_echo_n "checking for $ac_word... " >&6; } 9829 if ${ac_cv_path_EPIPHANY+:} false; then : 9830 $as_echo_n "(cached) " >&6 9831 else 9832 case $EPIPHANY in 9833 [\\/]* | ?:[\\/]*) 9834 ac_cv_path_EPIPHANY="$EPIPHANY" # Let the user override the test with a path. 9835 ;; 9836 *) 9837 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 9838 for as_dir in $PATH 9839 do 9840 IFS=$as_save_IFS 9841 test -z "$as_dir" && as_dir=. 9842 for ac_exec_ext in '' $ac_executable_extensions; do 9843 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 9844 ac_cv_path_EPIPHANY="$as_dir/$ac_word$ac_exec_ext" 9845 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 9846 break 2 9847 fi 9848 done 9849 done 9850 IFS=$as_save_IFS 9851 9852 ;; 9853 esac 9854 fi 9855 EPIPHANY=$ac_cv_path_EPIPHANY 9856 if test -n "$EPIPHANY"; then 9857 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $EPIPHANY" >&5 9858 $as_echo "$EPIPHANY" >&6; } 9859 else 9860 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 9861 $as_echo "no" >&6; } 9862 fi 9863 9864 9865 fi 9866 if test -z "$ac_cv_path_EPIPHANY"; then 9867 ac_pt_EPIPHANY=$EPIPHANY 9868 # Extract the first word of "epiphany", so it can be a program name with args. 9869 set dummy epiphany; ac_word=$2 9870 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 9871 $as_echo_n "checking for $ac_word... " >&6; } 9872 if ${ac_cv_path_ac_pt_EPIPHANY+:} false; then : 9873 $as_echo_n "(cached) " >&6 9874 else 9875 case $ac_pt_EPIPHANY in 9876 [\\/]* | ?:[\\/]*) 9877 ac_cv_path_ac_pt_EPIPHANY="$ac_pt_EPIPHANY" # Let the user override the test with a path. 9878 ;; 9879 *) 9880 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 9881 for as_dir in $PATH 9882 do 9883 IFS=$as_save_IFS 9884 test -z "$as_dir" && as_dir=. 9885 for ac_exec_ext in '' $ac_executable_extensions; do 9886 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 9887 ac_cv_path_ac_pt_EPIPHANY="$as_dir/$ac_word$ac_exec_ext" 9888 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 9889 break 2 9890 fi 9891 done 9892 done 9893 IFS=$as_save_IFS 9894 9895 ;; 9896 esac 9897 fi 9898 ac_pt_EPIPHANY=$ac_cv_path_ac_pt_EPIPHANY 9899 if test -n "$ac_pt_EPIPHANY"; then 9900 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_EPIPHANY" >&5 9901 $as_echo "$ac_pt_EPIPHANY" >&6; } 9902 else 9903 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 9904 $as_echo "no" >&6; } 9905 fi 9906 9907 if test "x$ac_pt_EPIPHANY" = x; then 9908 EPIPHANY="" 9909 else 9910 case $cross_compiling:$ac_tool_warned in 9911 yes:) 9912 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 9913 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} 9914 ac_tool_warned=yes ;; 9915 esac 9916 EPIPHANY=$ac_pt_EPIPHANY 9917 fi 9918 else 9919 EPIPHANY="$ac_cv_path_EPIPHANY" 9920 fi 9921 9922 fi 9923 else 9924 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for epiphany" >&5 9925 $as_echo_n "checking for epiphany... " >&6; } 9926 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 9927 $as_echo "no" >&6; } 9928 fi 9929 9930 9931 { $as_echo "$as_me:${as_lineno-$LINENO}: checking how browser test will be run" >&5 9932 $as_echo_n "checking how browser test will be run... " >&6; } 9933 9934 # Check whether --with-browser-tests was given. 9935 if test "${with_browser_tests+set}" = set; then : 9936 withval=$with_browser_tests; 9937 BROWSER_SWITCH=${withval} 9938 9939 else 9940 9941 BROWSER_SWITCH="yes" 9942 9943 fi 9944 9945 D_PARAM_PART="-Dmodified.browsers.run" 9946 case "$BROWSER_SWITCH" in 9947 "yes" ) 9948 BROWSER_TESTS_MODIFICATION="" ;; 9949 "no" ) 9950 BROWSER_TESTS_MODIFICATION="$D_PARAM_PART=ignore" ;; 9951 "one" ) 9952 BROWSER_TESTS_MODIFICATION="$D_PARAM_PART=one" ;; 9953 "all" ) 9954 BROWSER_TESTS_MODIFICATION="$D_PARAM_PART=all" ;; 9955 *) 9956 as_fn_error $? "unknown valkue of with-browser-tests ($BROWSER_SWITCH), so not use (yes) or set yes|no|one|all" "$LINENO" 5 9957 esac 9958 { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${BROWSER_SWITCH}" >&5 9959 $as_echo "${BROWSER_SWITCH}" >&6; } 9960 9961 9962 9963 if test x"$XSLTPROC" != x ; then 9964 WITH_XSLTPROC_TRUE= 9965 WITH_XSLTPROC_FALSE='#' 9966 else 9967 WITH_XSLTPROC_TRUE='#' 9968 WITH_XSLTPROC_FALSE= 9969 fi 7659 9970 7660 9971 … … 7798 10109 else 7799 10110 JUNIT_AVAILABLE=false 10111 fi 10112 10113 10114 10115 10116 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for emma jar" >&5 10117 $as_echo_n "checking for emma jar... " >&6; } 10118 10119 # Check whether --with-emma was given. 10120 if test "${with_emma+set}" = set; then : 10121 withval=$with_emma; 10122 case "${withval}" in 10123 yes) 10124 EMMA_JAR=yes 10125 ;; 10126 no) 10127 EMMA_JAR=no 10128 ;; 10129 *) 10130 if test -f "${withval}"; then 10131 EMMA_JAR="${withval}" 10132 elif test -z "${withval}"; then 10133 EMMA_JAR=yes 10134 else 10135 { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 10136 $as_echo "not found" >&6; } 10137 as_fn_error $? "\"The emma jar ${withval} was not found.\"" "$LINENO" 5 10138 fi 10139 ;; 10140 esac 10141 10142 else 10143 10144 EMMA_JAR=yes 10145 10146 fi 10147 10148 it_extra_paths_emma="/usr/share/java/emma.jar" 10149 if test "x${EMMA_JAR}" = "xyes"; then 10150 for path in ${it_extra_paths_emma}; do 10151 if test -f ${path}; then 10152 EMMA_JAR=${path} 10153 break 10154 fi 10155 done 10156 fi 10157 if test x"${EMMA_JAR}" = "xyes"; then 10158 if test -f "/usr/share/java/emma.jar"; then 10159 EMMA_JAR=/usr/share/java/emma.jar 10160 fi 10161 fi 10162 if test x"${EMMA_JAR}" = "xyes"; then 10163 EMMA_JAR=no 10164 fi 10165 { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${EMMA_JAR}" >&5 10166 $as_echo "${EMMA_JAR}" >&6; } 10167 if test x"${EMMA_JAR}" != "xno"; then 10168 WITH_EMMA_TRUE= 10169 WITH_EMMA_FALSE='#' 10170 else 10171 WITH_EMMA_TRUE='#' 10172 WITH_EMMA_FALSE= 10173 fi 10174 10175 # Clear EMMA_JAR if it doesn't contain a valid filename 10176 if test x"${EMMA_JAR}" = "xno"; then 10177 EMMA_JAR= 10178 fi 10179 if test -n "${EMMA_JAR}" ; then 10180 EMMA_AVAILABLE=true 10181 else 10182 EMMA_AVAILABLE=false 7800 10183 fi 7801 10184 … … 8001 10384 Usually this means the macro was only invoked conditionally." "$LINENO" 5 8002 10385 fi 10386 if test -z "${WITH_XSLTPROC_TRUE}" && test -z "${WITH_XSLTPROC_FALSE}"; then 10387 as_fn_error $? "conditional \"WITH_XSLTPROC\" was never defined. 10388 Usually this means the macro was only invoked conditionally." "$LINENO" 5 10389 fi 8003 10390 if test -z "${WITH_RHINO_TRUE}" && test -z "${WITH_RHINO_FALSE}"; then 8004 10391 as_fn_error $? "conditional \"WITH_RHINO\" was never defined. … … 8007 10394 if test -z "${WITH_JUNIT_TRUE}" && test -z "${WITH_JUNIT_FALSE}"; then 8008 10395 as_fn_error $? "conditional \"WITH_JUNIT\" was never defined. 10396 Usually this means the macro was only invoked conditionally." "$LINENO" 5 10397 fi 10398 if test -z "${WITH_EMMA_TRUE}" && test -z "${WITH_EMMA_FALSE}"; then 10399 as_fn_error $? "conditional \"WITH_EMMA\" was never defined. 8009 10400 Usually this means the macro was only invoked conditionally." "$LINENO" 5 8010 10401 fi … … 8418 10809 # values after options handling. 8419 10810 ac_log=" 8420 This file was extended by icedtea-web $as_me 1. 1.2, which was10811 This file was extended by icedtea-web $as_me 1.3, which was 8421 10812 generated by GNU Autoconf 2.68. Invocation command line was 8422 10813 … … 8476 10867 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" 8477 10868 ac_cs_version="\\ 8478 icedtea-web config.status 1. 1.210869 icedtea-web config.status 1.3 8479 10870 configured by $0, generated by GNU Autoconf 2.68, 8480 10871 with options \\"\$ac_cs_config\\" -
branches/vendor/sourceforge/icedtea-web/current/configure.ac
r348 r416 1 AC_INIT([icedtea-web],[1. 1.2],[distro-pkg-dev@openjdk.java.net], [icedtea-web], [http://icedtea.classpath.org/wiki/IcedTea-Web])1 AC_INIT([icedtea-web],[1.3],[distro-pkg-dev@openjdk.java.net], [icedtea-web], [http://icedtea.classpath.org/wiki/IcedTea-Web]) 2 2 AM_INIT_AUTOMAKE([1.9 tar-pax foreign]) 3 3 AC_CONFIG_FILES([Makefile netx.manifest]) … … 34 34 FIND_ECJ_JAR 35 35 IT_FIND_JAVADOC 36 IT_FIND_KEYTOOL 37 IT_FIND_JARSIGNER 36 38 AC_CONFIG_FILES([javac], [chmod +x javac]) 37 39 … … 52 54 dnl PR46074 (gcc) - Missing java.net cookie code required by IcedTea plugin 53 55 dnl IT563 - NetX uses sun.security code 54 dnl IT564 - NetX depends on sun.misc.BASE64Encoder55 56 dnl IT605 - NetX depends on sun.misc.HexDumpEncoder 56 57 dnl IT570 - NetX depends on sun.applet.AppletViewPanel … … 69 70 IT_CHECK_FOR_CLASS(SUN_SECURITY_UTIL_HOSTNAMECHECKER, [sun.security.util.HostnameChecker]) 70 71 IT_CHECK_FOR_CLASS(SUN_SECURITY_X509_X500NAME, [sun.security.x509.X500Name]) 71 IT_CHECK_FOR_CLASS(SUN_MISC_BASE64ENCODER, [sun.misc.BASE64Encoder])72 72 IT_CHECK_FOR_CLASS(SUN_MISC_HEXDUMPENCODER, [sun.misc.HexDumpEncoder]) 73 73 IT_CHECK_FOR_CLASS(SUN_SECURITY_VALIDATOR_VALIDATOREXCEPTION, [sun.security.validator.ValidatorException]) 74 74 IT_CHECK_FOR_CLASS(COM_SUN_NET_SSL_INTERNAL_SSL_X509EXTENDEDTRUSTMANAGER, 75 75 [com.sun.net.ssl.internal.ssl.X509ExtendedTrustManager]) 76 IT_CHECK_FOR_CLASS(SUN_NET_WWW_PROTOCOL_JAR_URLJARFILE, [sun.net.www.protocol.jar.URLJarFile]) 77 IT_CHECK_FOR_CLASS(SUN_NET_WWW_PROTOCOL_JAR_URLJARFILECALLBACK, [sun.net.www.protocol.jar.URLJarFileCallBack]) 76 78 IT_CHECK_FOR_CLASS(SUN_AWT_X11_XEMBEDDEDFRAME, [sun.awt.X11.XEmbeddedFrame]) 77 79 IT_CHECK_FOR_CLASS(SUN_MISC_REF, [sun.misc.Ref]) … … 79 81 IT_CHECK_FOR_CLASS(SUN_APPLET_APPLETIMAGEREF, [sun.applet.AppletImageRef]) 80 82 IT_CHECK_FOR_APPLETVIEWERPANEL_HOLE 83 IT_CHECK_GLIB_VERSION 84 IT_CHECK_XULRUNNER_API_VERSION 81 85 82 86 # … … 84 88 # 85 89 90 AC_CHECK_PROGS([XSLTPROC],[xsltproc],[], []) 91 # browser to be linked/tested 92 # Example: IT_FIND_BROWSER([browser-name],[variable-to-store-path],[default-run-command-if-different-from-the-browser-name]) 93 IT_FIND_BROWSER([firefox],[FIREFOX]) 94 IT_FIND_BROWSER([chrome],[CHROME],[google-chrome]) 95 IT_FIND_BROWSER([chromium],[CHROMIUM],[chromium-browser]) 96 IT_FIND_BROWSER([opera],[OPERA]) 97 IT_FIND_BROWSER([midori],[MIDORI]) 98 IT_FIND_BROWSER([epiphany],[EPIPHANY]) 99 IT_SET_GLOBAL_BROWSERTESTS_BEHAVIOUR 100 101 AM_CONDITIONAL([WITH_XSLTPROC], [test x"$XSLTPROC" != x ]) 86 102 IT_FIND_OPTIONAL_JAR([rhino], RHINO, 87 103 [/usr/share/java/js.jar /usr/share/rhino-1.6/lib/js.jar]) 88 104 IT_FIND_OPTIONAL_JAR([junit], JUNIT, 89 105 [/usr/share/java/junit4.jar /usr/share/junit-4/lib/junit.jar]) 106 IT_FIND_OPTIONAL_JAR([emma], EMMA, 107 [/usr/share/java/emma.jar]) 90 108 91 109 AC_CONFIG_FILES([jrunscript], [chmod u+x jrunscript]) -
branches/vendor/sourceforge/icedtea-web/current/extra/net/sourceforge/javaws/about/Main.java
r348 r416 67 67 tabbedPane = new JTabbedPane(); 68 68 69 tabbedPane.add("About NetX", aboutPanel);69 tabbedPane.add("About IcedTea-Web and NetX", aboutPanel); 70 70 tabbedPane.add("Applications", appsPanel); 71 71 tabbedPane.add("Notes", notesPanel); … … 82 82 } 83 83 84 JFrame frame = new JFrame("About NetX");84 JFrame frame = new JFrame("About IcedTea-Web and NetX"); 85 85 frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); 86 86 Main demo = null; -
branches/vendor/sourceforge/icedtea-web/current/extra/net/sourceforge/javaws/about/resources/about.html
r348 r416 6 6 </head> 7 7 <body> 8 < b>NetX</b> is a high-quality JNLP clientthat executes8 <h3>IcedTea-Web</h3> is a high-quality JNLP client, built on <b>NetX</b>, that executes 9 9 network-based applications. 10 10 <br>NetX downloads code over the -
branches/vendor/sourceforge/icedtea-web/current/extra/net/sourceforge/javaws/about/resources/notes.html
r348 r416 24 24 <b>Lillian Angel</b> <br> 25 25 <b>Deepak Bhole</b> <br> 26 <b>Danesh Dadachanji</b> <br> 27 <b>Adam Domurad</b> <br> 26 28 <b>Thomas Fitzsimmons</b> <br> 27 29 <b>Andrew John Hughes</b> <br> … … 30 32 <b>Omair Majid</b> <br> 31 33 <b>Jon A. Maxwell</b> <br> 34 <b>Thomas Meyer</b> <br> 35 <b>Saad Mohammad</b> <br> 32 36 <b>Andrew Su</b> <br> 33 37 <b>Joshua Sumali</b> <br> 38 <b>Jiri Vanek</b> <br> 34 39 <b>Mark Wielaard</b> <br> 35 40 <b>Man Lung Wong</b> <br> … … 80 85 </tbody> 81 86 </table> 82 <b>Please visit the SourceForge site 87 <b> Home page of IcedTea-Web: 88 <a href="http://icedtea.classpath.org/wiki/IcedTea-Web"> 89 http://icedtea.classpath.org/wiki/IcedTea-Web 90 </a><br> 91 Please visit also the SourceForge site 83 92 <a href="http://jnlp.sourceforge.net/netx/index.html"> 84 93 http://jnlp.sourceforge.net/netx/index.html -
branches/vendor/sourceforge/icedtea-web/current/install-sh
r348 r416 2 2 # install - install a program, script, or datafile 3 3 4 scriptversion=20 09-04-28.21; # UTC4 scriptversion=2011-01-19.21; # UTC 5 5 6 6 # This originates from X11R5 (mit/util/scripts/install.sh), which was … … 157 157 158 158 -t) dst_arg=$2 159 # Protect names problematic for `test' and other utilities. 160 case $dst_arg in 161 -* | [=\(\)!]) dst_arg=./$dst_arg;; 162 esac 159 163 shift;; 160 164 … … 187 191 shift # arg 188 192 dst_arg=$arg 193 # Protect names problematic for `test' and other utilities. 194 case $dst_arg in 195 -* | [=\(\)!]) dst_arg=./$dst_arg;; 196 esac 189 197 done 190 198 fi … … 201 209 202 210 if test -z "$dir_arg"; then 203 trap '(exit $?); exit' 1 2 13 15 211 do_exit='(exit $ret); exit $ret' 212 trap "ret=129; $do_exit" 1 213 trap "ret=130; $do_exit" 2 214 trap "ret=141; $do_exit" 13 215 trap "ret=143; $do_exit" 15 204 216 205 217 # Set umask so as not to create temps with too-generous modes. … … 229 241 for src 230 242 do 231 # Protect names starting with `-'.243 # Protect names problematic for `test' and other utilities. 232 244 case $src in 233 -* ) src=./$src;;245 -* | [=\(\)!]) src=./$src;; 234 246 esac 235 247 … … 253 265 exit 1 254 266 fi 255 256 267 dst=$dst_arg 257 # Protect names starting with `-'.258 case $dst in259 -*) dst=./$dst;;260 esac261 268 262 269 # If destination is a directory, append the input filename; won't work … … 386 393 case $dstdir in 387 394 /*) prefix='/';; 388 -*) prefix='./';;395 [-=\(\)!]*) prefix='./';; 389 396 *) prefix='';; 390 397 esac … … 404 411 for d 405 412 do 406 test -z "$d"&& continue413 test X"$d" = X && continue 407 414 408 415 prefix=$prefix$d -
branches/vendor/sourceforge/icedtea-web/current/jrunscript.in
r348 r416 1 1 #!/bin/bash 2 2 3 if [ x"@RHINO_JAR@" = =x ] ; then3 if [ x"@RHINO_JAR@" = x ] ; then 4 4 echo "jrunscript requires rhino support" 5 5 exit 1 -
branches/vendor/sourceforge/icedtea-web/current/launcher/javaws.in
r348 r416 1 #!/bin/ sh1 #!/bin/bash 2 2 3 3 JAVA=@JAVA@ … … 9 9 CP=@JRE@/lib/rt.jar 10 10 11 JAVA_ARGS= 12 ARGS= 11 JAVA_ARGS=( ) 12 ARGS=( ) 13 COMMAND=() 14 15 i=0 16 j=0 13 17 14 18 while [ "$#" -gt "0" ]; do 15 19 case "$1" in 16 20 -J*) 17 JAVA_ARGS="${JAVA_ARGS} ${1##-J}" 21 JAVA_ARGS[$i]="${1##-J}" 22 i=$((i+1)) 18 23 ;; 19 24 *) 20 ARGS="${ARGS} $1" 25 ARGS[$j]="$1" 26 j=$((j+1)) 21 27 ;; 22 28 esac … … 24 30 done 25 31 26 ${JAVA} ${LAUNCHER_BOOTCLASSPATH} ${LAUNCHER_FLAGS} \ 27 ${JAVA_ARGS} \ 28 -classpath ${CP} \ 29 -Dicedtea-web.bin.name=${PROGRAM_NAME} \ 30 -Dicedtea-web.bin.location=${BINARY_LOCATION} \ 31 ${CLASSNAME} \ 32 ${ARGS} 32 k=0 33 COMMAND[k]="${JAVA}" 34 k=$((k+1)) 35 COMMAND[k]="${LAUNCHER_BOOTCLASSPATH}" 36 k=$((k+1)) 37 COMMAND[k]="${LAUNCHER_FLAGS}" 38 k=$((k+1)) 39 i=0 40 while [ "$i" -lt "${#JAVA_ARGS[@]}" ]; do 41 COMMAND[k]="${JAVA_ARGS[$i]}" 42 i=$((i+1)) 43 k=$((k+1)) 44 done 45 COMMAND[k]="-classpath" 46 k=$((k+1)) 47 COMMAND[k]="${CP}" 48 k=$((k+1)) 49 COMMAND[k]="-Dicedtea-web.bin.name=${PROGRAM_NAME}" 50 k=$((k+1)) 51 COMMAND[k]="-Dicedtea-web.bin.location=${BINARY_LOCATION}" 52 k=$((k+1)) 53 COMMAND[k]="${CLASSNAME}" 54 k=$((k+1)) 55 j=0 56 while [ "$j" -lt "${#ARGS[@]}" ]; do 57 COMMAND[k]="${ARGS[$j]}" 58 j=$((j+1)) 59 k=$((k+1)) 60 done 61 62 exec -a "javaws" "${COMMAND[@]}" 33 63 34 64 exit $? -
branches/vendor/sourceforge/icedtea-web/current/missing
r348 r416 2 2 # Common stub for a few missing GNU programs while installing. 3 3 4 scriptversion=20 09-04-28.21; # UTC4 scriptversion=2012-01-06.13; # UTC 5 5 6 6 # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, 7 # 2008, 2009 Free Software Foundation, Inc.7 # 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. 8 8 # Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. 9 9 … … 85 85 lex create \`lex.yy.c', if possible, from existing .c 86 86 makeinfo touch the output file 87 tar try tar, gnutar, gtar, then tar without non-portable flags88 87 yacc create \`y.tab.[ch]', if possible, from existing .[ch] 89 88 … … 121 120 lex*|yacc*) 122 121 # Not GNU programs, they don't have --version. 123 ;;124 125 tar*)126 if test -n "$run"; then127 echo 1>&2 "ERROR: \`tar' requires --run"128 exit 1129 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then130 exit 1131 fi132 122 ;; 133 123 … … 227 217 rm -f y.tab.c y.tab.h 228 218 if test $# -ne 1; then 229 eval LASTARG= "\${$#}"219 eval LASTARG=\${$#} 230 220 case $LASTARG in 231 221 *.y) … … 257 247 rm -f lex.yy.c 258 248 if test $# -ne 1; then 259 eval LASTARG= "\${$#}"249 eval LASTARG=\${$#} 260 250 case $LASTARG in 261 251 *.l) … … 319 309 ;; 320 310 321 tar*)322 shift323 324 # We have already tried tar in the generic part.325 # Look for gnutar/gtar before invocation to avoid ugly error326 # messages.327 if (gnutar --version > /dev/null 2>&1); then328 gnutar "$@" && exit 0329 fi330 if (gtar --version > /dev/null 2>&1); then331 gtar "$@" && exit 0332 fi333 firstarg="$1"334 if shift; then335 case $firstarg in336 *o*)337 firstarg=`echo "$firstarg" | sed s/o//`338 tar "$firstarg" "$@" && exit 0339 ;;340 esac341 case $firstarg in342 *h*)343 firstarg=`echo "$firstarg" | sed s/h//`344 tar "$firstarg" "$@" && exit 0345 ;;346 esac347 fi348 349 echo 1>&2 "\350 WARNING: I can't seem to be able to run \`tar' with the given arguments.351 You may want to install GNU tar or Free paxutils, or check the352 command line arguments."353 exit 1354 ;;355 356 311 *) 357 312 echo 1>&2 "\ -
branches/vendor/sourceforge/icedtea-web/current/netx/net/sourceforge/jnlp/AppletDesc.java
r348 r416 26 26 * @version $Revision: 1.8 $ 27 27 */ 28 public class AppletDesc {28 public class AppletDesc implements LaunchDesc { 29 29 30 30 /** the applet name */ … … 74 74 75 75 /** 76 * Returns the main class name 76 * Returns the main class name in the dot-separated form (eg: foo.bar.Baz) 77 77 */ 78 @Override 78 79 public String getMainClass() { 79 80 return mainClass; -
branches/vendor/sourceforge/icedtea-web/current/netx/net/sourceforge/jnlp/ApplicationDesc.java
r348 r416 25 25 * @version $Revision: 1.7 $ 26 26 */ 27 public class ApplicationDesc {27 public class ApplicationDesc implements LaunchDesc { 28 28 29 29 /** the main class name and package */ … … 47 47 * Returns the main class name 48 48 */ 49 @Override 49 50 public String getMainClass() { 50 51 return mainClass; -
branches/vendor/sourceforge/icedtea-web/current/netx/net/sourceforge/jnlp/DefaultLaunchHandler.java
r348 r416 17 17 package net.sourceforge.jnlp; 18 18 19 import java.io.PrintStream; 20 19 21 import net.sourceforge.jnlp.runtime.*; 20 22 … … 27 29 * @version $Revision: 1.1 $ 28 30 */ 29 public class DefaultLaunchHandler implements LaunchHandler { 31 public class DefaultLaunchHandler extends AbstractLaunchHandler { 32 33 public DefaultLaunchHandler(PrintStream out) { 34 super(out); 35 } 30 36 31 37 /** … … 58 64 * @return true to allow the application to continue, false to stop it. 59 65 */ 60 public boolean validationError(LaunchException security) {61 printMessage( security);66 public boolean validationError(LaunchException error) { 67 printMessage(error); 62 68 return true; 63 69 } … … 72 78 public void launchCompleted(ApplicationInstance application) { 73 79 // 74 }75 76 /**77 * Print a message to stdout.78 */79 protected static void printMessage(LaunchException ex) {80 StringBuffer result = new StringBuffer();81 result.append("netx: ");82 result.append(ex.getCategory());83 if (ex.getSummary() != null) {84 result.append(": ");85 result.append(ex.getSummary());86 }87 88 if (JNLPRuntime.isDebug()) {89 if (ex.getCause() != null)90 ex.getCause().printStackTrace();91 else92 ex.printStackTrace();93 }94 95 Throwable causes[] = ex.getCauses();96 97 for (int i = 0; i < causes.length; i++) {98 result.append(" (");99 result.append(causes[i].getClass().getName());100 result.append(" ");101 result.append(causes[i].getMessage());102 result.append(")");103 }104 80 } 105 81 -
branches/vendor/sourceforge/icedtea-web/current/netx/net/sourceforge/jnlp/GuiLaunchHandler.java
r348 r416 38 38 package net.sourceforge.jnlp; 39 39 40 import java.io.PrintStream; 41 import java.lang.reflect.InvocationTargetException; 40 42 import java.net.URL; 41 43 … … 51 53 * including splash screens and exception dialogs. 52 54 */ 53 public class GuiLaunchHandler implementsLaunchHandler {55 public class GuiLaunchHandler extends AbstractLaunchHandler { 54 56 55 57 private JNLPSplashScreen splashScreen = null; 58 private final Object mutex = new Object(); 56 59 private UpdatePolicy policy = UpdatePolicy.ALWAYS; 60 61 public GuiLaunchHandler(PrintStream outputStream) { 62 super(outputStream); 63 } 57 64 58 65 @Override … … 66 73 @Override 67 74 public void run() { 75 closeSplashScreen(); 68 76 BasicExceptionDialog.show(exception); 69 77 } 70 78 }); 79 printMessage(exception); 80 } 81 82 private void closeSplashScreen() { 83 synchronized(mutex) { 84 if (splashScreen != null) { 85 if (splashScreen.isSplashScreenValid()) { 86 splashScreen.setVisible(false); 87 } 88 splashScreen.dispose(); 89 } 90 } 71 91 } 72 92 … … 76 96 @Override 77 97 public void run() { 78 if (splashScreen != null) { 79 if (splashScreen.isSplashScreenValid()) { 80 splashScreen.setVisible(false); 81 } 82 splashScreen.dispose(); 83 } 98 closeSplashScreen(); 84 99 } 85 100 }); … … 88 103 @Override 89 104 public void launchInitialized(final JNLPFile file) { 105 106 int preferredWidth = 500; 107 int preferredHeight = 400; 108 109 final URL splashImageURL = file.getInformation().getIconLocation( 110 IconDesc.SPLASH, preferredWidth, preferredHeight); 111 112 if (splashImageURL != null) { 113 final ResourceTracker resourceTracker = new ResourceTracker(true); 114 resourceTracker.addResource(splashImageURL, file.getFileVersion(), null, policy); 115 synchronized(mutex) { 116 try { 117 SwingUtilities.invokeAndWait(new Runnable() { 118 @Override 119 public void run() { 120 splashScreen = new JNLPSplashScreen(resourceTracker, null, null); 121 } 122 }); 123 } catch (InterruptedException ie) { 124 // Wait till splash screen is created 125 while (splashScreen == null); 126 } catch (InvocationTargetException ite) { 127 ite.printStackTrace(); 128 } 129 130 splashScreen.setSplashImageURL(splashImageURL); 131 } 132 } 133 90 134 SwingUtilities.invokeLater(new Runnable() { 91 135 @Override 92 136 public void run() { 93 final int preferredWidth = 500;94 final int preferredHeight = 400;95 96 URL splashImageURL = file.getInformation().getIconLocation(97 IconDesc.SPLASH, preferredWidth, preferredHeight);98 137 if (splashImageURL != null) { 99 ResourceTracker resourceTracker = new ResourceTracker(true); 100 resourceTracker.addResource(splashImageURL, file.getFileVersion(), null, policy); 101 splashScreen = new JNLPSplashScreen(resourceTracker, null, null); 102 splashScreen.setSplashImageURL(splashImageURL); 103 if (splashScreen.isSplashScreenValid()) { 104 splashScreen.setVisible(true); 138 synchronized(mutex) { 139 if (splashScreen.isSplashScreenValid()) { 140 splashScreen.setVisible(true); 141 } 105 142 } 106 143 } … … 111 148 @Override 112 149 public boolean launchWarning(LaunchException warning) { 113 DefaultLaunchHandler.printMessage(warning);150 printMessage(warning); 114 151 return true; 115 152 } 116 153 117 154 @Override 118 public boolean validationError(LaunchException security) { 119 DefaultLaunchHandler.printMessage(security); 155 public boolean validationError(LaunchException error) { 156 closeSplashScreen(); 157 printMessage(error); 120 158 return true; 121 159 } -
branches/vendor/sourceforge/icedtea-web/current/netx/net/sourceforge/jnlp/InstallerDesc.java
r348 r416 23 23 * @version $Revision: 1.6 $ 24 24 */ 25 public class InstallerDesc {25 public class InstallerDesc implements LaunchDesc { 26 26 27 27 /** the main class name and package. */ … … 40 40 * Returns the main class name and package. 41 41 */ 42 @Override 42 43 public String getMainClass() { 43 44 return mainClass; -
branches/vendor/sourceforge/icedtea-web/current/netx/net/sourceforge/jnlp/JNLPFile.java
r348 r416 92 92 93 93 /** the application description */ 94 protected ObjectlaunchType;94 protected LaunchDesc launchType; 95 95 96 96 /** the component description */ … … 100 100 protected SecurityDesc security; 101 101 102 /** the default JVM locale */ 103 protected Locale defaultLocale = null; 104 102 105 /** the default OS */ 103 protected Locale defaultLocale= null;106 protected String defaultOS = null; 104 107 105 108 /** the default arch */ 106 protected String defaultOS = null;107 108 /** the default jvm */109 109 protected String defaultArch = null; 110 111 /** A signed JNLP file is missing from the main jar */ 112 private boolean missingSignedJNLP = false; 113 114 /** JNLP file contains special properties */ 115 private boolean containsSpecialProperties = false; 116 117 /** 118 * List of acceptable properties (not-special) 119 */ 120 private String[] generalProperties = SecurityDesc.getJnlpRIAPermissions(); 110 121 111 122 { // initialize defaults if security allows … … 119 130 } 120 131 132 static enum Match { LANG_COUNTRY_VARIANT, LANG_COUNTRY, LANG, GENERALIZED } 133 121 134 /** 122 135 * Empty stub, allowing child classes to override the constructor … … 175 188 */ 176 189 public JNLPFile(URL location, Version version, boolean strict, UpdatePolicy policy) throws IOException, ParseException { 190 this(location, version, strict, policy, null); 191 } 192 193 /** 194 * Create a JNLPFile from a URL and a version, checking for updates 195 * using the specified policy. 196 * 197 * @param location the location of the JNLP file 198 * @param version the version of the JNLP file 199 * @param strict whether to enforce the spec when 200 * @param policy the update policy 201 * @param forceCodebase codebase to use if not specified in JNLP file. 202 * @throws IOException if an IO exception occurred 203 * @throws ParseException if the JNLP file was invalid 204 */ 205 protected JNLPFile(URL location, Version version, boolean strict, UpdatePolicy policy, URL forceCodebase) throws IOException, ParseException { 177 206 Node root = Parser.getRootNode(openURL(location, version, policy)); 178 parse(root, strict, location );207 parse(root, strict, location, forceCodebase); 179 208 180 209 //Downloads the original jnlp file into the cache if possible … … 182 211 //originated from a website, then download the one from the website 183 212 //into the cache). 184 if (sourceLocation != null && location.getProtocol() == "file") {213 if (sourceLocation != null && "file".equals(location.getProtocol())) { 185 214 openURL(sourceLocation, version, policy); 186 215 } … … 223 252 */ 224 253 public JNLPFile(InputStream input, boolean strict) throws ParseException { 225 parse(Parser.getRootNode(input), strict, null );254 parse(Parser.getRootNode(input), strict, null, null); 226 255 } 227 256 … … 258 287 259 288 /** 260 * Returns the JNLP file's title.This method returns the same289 * Returns the JNLP file's best localized title. This method returns the same 261 290 * value as InformationDesc.getTitle(). 262 291 */ … … 266 295 267 296 /** 297 * Returns the JNLP file's best localized vendor. This method returns the same 298 * value as InformationDesc.getVendor(). 299 */ 300 public String getVendor() { 301 return getInformation().getVendor(); 302 } 303 304 /** 268 305 * Returns the JNLP file's network location as specified in the 269 306 * JNLP file. … … 323 360 public InformationDesc getInformation(final Locale locale) { 324 361 return new InformationDesc(this, new Locale[] { locale }) { 362 @Override 325 363 protected List<Object> getItems(Object key) { 326 364 List<Object> result = new ArrayList<Object>(); 327 365 328 for (int i = 0; i < info.size(); i++) { 329 InformationDesc infoDesc = info.get(i); 330 331 if (localMatches(locale, infoDesc.getLocales())) 332 result.addAll(infoDesc.getItems(key)); 366 for (Match precision : Match.values()) { 367 for (InformationDesc infoDesc : JNLPFile.this.info) { 368 if (localeMatches(locale, infoDesc.getLocales(), precision)) { 369 result.addAll(infoDesc.getItems(key)); 370 } 371 } 372 373 if (result.size() > 0) { 374 return result; 375 } 333 376 } 334 335 377 return result; 378 } 379 380 @Override 381 public String getTitle() { 382 for (Match precision : Match.values()) { 383 for (InformationDesc infoDesc : JNLPFile.this.info) { 384 String title = infoDesc.getTitle(); 385 if (localeMatches(locale, infoDesc.getLocales(), precision) 386 && title != null && !"".equals(title)) { 387 return title; 388 } 389 } 390 } 391 392 return null; 393 } 394 395 @Override 396 public String getVendor() { 397 for (Match precision : Match.values()) { 398 for (InformationDesc infoDesc : JNLPFile.this.info) { 399 String vendor = infoDesc.getVendor(); 400 if (localeMatches(locale, infoDesc.getLocales(), precision) 401 && vendor != null && !"".equals(vendor)) { 402 return vendor; 403 } 404 } 405 } 406 407 return null; 336 408 } 337 409 }; … … 367 439 public ResourcesDesc getResources(final Locale locale, final String os, final String arch) { 368 440 return new ResourcesDesc(this, new Locale[] { locale }, new String[] { os }, new String[] { arch }) { 441 442 @Override 369 443 public <T> List<T> getResources(Class<T> launchType) { 370 444 List<T> result = new ArrayList<T>(); 371 445 372 for (int i = 0; i < resources.size(); i++) { 373 ResourcesDesc rescDesc = resources.get(i); 374 375 if (localMatches(locale, rescDesc.getLocales()) 446 for (ResourcesDesc rescDesc : resources) { 447 boolean hasUsableLocale = false; 448 for (Match match : Match.values()) { 449 hasUsableLocale |= localeMatches(locale, rescDesc.getLocales(), match); 450 } 451 if (hasUsableLocale 376 452 && stringMatches(os, rescDesc.getOS()) 377 453 && stringMatches(arch, rescDesc.getArch())) … … 384 460 } 385 461 462 @Override 386 463 public void addResource(Object resource) { 387 464 // todo: honor the current locale, os, arch values … … 409 486 List<ResourcesDesc> matchingResources = new ArrayList<ResourcesDesc>(); 410 487 for (ResourcesDesc rescDesc: resources) { 411 if (localMatches(locale, rescDesc.getLocales()) 488 boolean hasUsableLocale = false; 489 for (Match match : Match.values()) { 490 hasUsableLocale |= localeMatches(locale, rescDesc.getLocales(), match); 491 } 492 if (hasUsableLocale 412 493 && stringMatches(os, rescDesc.getOS()) 413 494 && stringMatches(arch, rescDesc.getArch())) { … … 422 503 * ApplicationDesc and InstallerDesc 423 504 */ 424 public ObjectgetLaunchInfo() {505 public LaunchDesc getLaunchInfo() { 425 506 return launchType; 426 507 } … … 522 603 * @param requested the local 523 604 * @param available the available locales 605 * @param precision the depth with which to match locales. 1 checks only 606 * language, 2 checks language and country, 3 checks language, country and 607 * variant for matches. Passing 0 will always return true. 524 608 * @return true if requested matches any of available, or if 525 609 * available is empty or null. 526 610 */ 527 private boolean localMatches(Locale requested, Locale available[]) { 528 if (available == null || available.length == 0) 529 return true; 530 531 for (int i = 0; i < available.length; i++) { 532 String language = requested.getLanguage(); // "" but never null 533 String country = requested.getCountry(); 534 String variant = requested.getVariant(); 535 536 if (!"".equals(language) && !language.equalsIgnoreCase(available[i].getLanguage())) 537 continue; 538 if (!"".equals(country) && !country.equalsIgnoreCase(available[i].getCountry())) 539 continue; 540 if (!"".equals(variant) && !variant.equalsIgnoreCase(available[i].getVariant())) 541 continue; 542 543 return true; 544 } 545 611 public boolean localeMatches(Locale requested, Locale available[], Match matchLevel) { 612 613 if (matchLevel == Match.GENERALIZED) 614 return available == null || available.length == 0; 615 616 String language = requested.getLanguage(); // "" but never null 617 String country = requested.getCountry(); 618 String variant = requested.getVariant(); 619 620 for (Locale locale : available) { 621 switch (matchLevel) { 622 case LANG: 623 if (!language.isEmpty() 624 && language.equals(locale.getLanguage()) 625 && locale.getCountry().isEmpty() 626 && locale.getVariant().isEmpty()) 627 return true; 628 break; 629 case LANG_COUNTRY: 630 if (!language.isEmpty() 631 && language.equals(locale.getLanguage()) 632 && !country.isEmpty() 633 && country.equals(locale.getCountry()) 634 && locale.getVariant().isEmpty()) 635 return true; 636 break; 637 case LANG_COUNTRY_VARIANT: 638 if (language.equals(locale.getLanguage()) 639 && country.equals(locale.getCountry()) 640 && variant.equals(locale.getVariant())) 641 return true; 642 break; 643 default: 644 break; 645 } 646 } 546 647 return false; 547 648 } … … 575 676 * @param location the file location or null 576 677 */ 577 private void parse(Node root, boolean strict, URL location ) throws ParseException {678 private void parse(Node root, boolean strict, URL location, URL forceCodebase) throws ParseException { 578 679 try { 579 680 //if (location != null) 580 681 // location = new URL(location, "."); // remove filename 581 682 582 Parser parser = new Parser(this, location, root, strict, true ); // true == allow extensions683 Parser parser = new Parser(this, location, root, strict, true, forceCodebase); // true == allow extensions 583 684 584 685 // JNLP tag information … … 588 689 sourceLocation = parser.getFileLocation() != null ? parser.getFileLocation() : location; 589 690 info = parser.getInfo(root); 691 parser.checkForInformation(); 590 692 update = parser.getUpdate(root); 591 693 resources = parser.getResources(root, false); // false == not a j2se/java resources section … … 593 695 component = parser.getComponent(root); 594 696 security = parser.getSecurity(root); 697 698 checkForSpecialProperties(); 699 595 700 } catch (ParseException ex) { 596 701 throw ex; … … 600 705 601 706 throw new RuntimeException(ex.toString()); 707 } 708 } 709 710 /** 711 * Inspects the JNLP file to check if it contains any special properties 712 */ 713 private void checkForSpecialProperties() { 714 715 for (ResourcesDesc res : resources) { 716 for (PropertyDesc propertyDesc : res.getProperties()) { 717 718 for (int i = 0; i < generalProperties.length; i++) { 719 String property = propertyDesc.getKey(); 720 721 if (property.equals(generalProperties[i])) { 722 break; 723 } else if (!property.equals(generalProperties[i]) 724 && i == generalProperties.length - 1) { 725 containsSpecialProperties = true; 726 return; 727 } 728 } 729 730 } 602 731 } 603 732 } … … 675 804 } 676 805 806 /** 807 * Returns a boolean after determining if a signed JNLP warning should be 808 * displayed in the 'More Information' panel. 809 * 810 * @return true if a warning should be displayed; otherwise false 811 */ 812 public boolean requiresSignedJNLPWarning() { 813 return (missingSignedJNLP && containsSpecialProperties); 814 } 815 816 /** 817 * Informs that a signed JNLP file is missing in the main jar 818 */ 819 public void setSignedJNLPAsMissing() { 820 missingSignedJNLP = true; 821 } 677 822 } -
branches/vendor/sourceforge/icedtea-web/current/netx/net/sourceforge/jnlp/JNLPSplashScreen.java
r348 r416 11 11 12 12 import javax.imageio.ImageIO; 13 import javax.swing.J Frame;13 import javax.swing.JDialog; 14 14 15 15 import net.sourceforge.jnlp.cache.ResourceTracker; 16 16 import net.sourceforge.jnlp.runtime.JNLPRuntime; 17 import net.sourceforge.jnlp.util.ImageResources; 17 18 18 public class JNLPSplashScreen extends J Frame{19 public class JNLPSplashScreen extends JDialog { 19 20 20 21 String applicationTitle; … … 28 29 public JNLPSplashScreen(ResourceTracker resourceTracker, 29 30 String applicationTitle, String applicationVendor) { 31 32 setIconImages(ImageResources.INSTANCE.getApplicationImages()); 30 33 31 34 // If the JNLP file does not contain any icon images, the splash image -
branches/vendor/sourceforge/icedtea-web/current/netx/net/sourceforge/jnlp/LaunchException.java
r348 r416 17 17 package net.sourceforge.jnlp; 18 18 19 import java.io.*;20 import java.util.*;21 22 import net.sourceforge.jnlp.util.*;23 24 19 /** 25 20 * Thrown when a JNLP application, applet, or installer could not … … 31 26 public class LaunchException extends Exception { 32 27 33 /** the original exception */ 34 private Throwable cause = null; 28 private static final long serialVersionUID = 7283827853612357423L; 35 29 36 30 /** the file being launched */ … … 53 47 */ 54 48 public LaunchException(JNLPFile file, Exception cause, String severity, String category, String summary, String description) { 55 super(severity + ": " + category + ": " + summary); 49 super(severity + ": " + category + ": " + summary + " " 50 + (description == null ? "" : description), cause); 56 51 57 52 this.file = file; … … 60 55 this.description = description; 61 56 this.severity = severity; 62 63 // replace with setCause when no longer 1.3 compatible64 this.cause = cause;65 57 } 66 58 … … 69 61 */ 70 62 public LaunchException(Throwable cause) { 71 this(cause.getMessage()); 72 73 // replace with setCause when no longer 1.3 compatible 74 this.cause = cause; 63 super(cause); 75 64 } 76 65 … … 79 68 */ 80 69 public LaunchException(String message, Throwable cause) { 81 this(message + ": " + cause.getMessage()); 82 83 // replace with setCause when no longer 1.3 compatible 84 this.cause = cause; 70 super(message, cause); 85 71 } 86 72 … … 132 118 } 133 119 134 /**135 * Return the cause of the launch exception or null if there136 * is no cause exception.137 */138 public Throwable getCause() {139 return cause;140 }141 142 /**143 * Returns the causes for this exception. This method is144 * useful on JRE 1.3 since getCause is not a standard method,145 * and will be removed once netx no longer supports 1.3.146 */147 public Throwable[] getCauses() {148 ArrayList<Throwable> result = new ArrayList<Throwable>();149 150 Reflect r = new Reflect();151 Throwable cause = this.cause;152 153 while (cause != null) {154 result.add(cause);155 cause = (Throwable) r.invoke(cause, "getCause");156 }157 158 return result.toArray(new Throwable[0]);159 }160 161 /**162 * Print the stack trace and the cause exception (1.3163 * compatible)164 */165 public void printStackTrace(PrintStream stream) {166 super.printStackTrace(stream);167 168 if (cause != null) {169 stream.println("Caused by: ");170 cause.printStackTrace(stream);171 }172 }173 174 /**175 * Print the stack trace and the cause exception (1.3176 * compatible)177 */178 public void printStackTrace(PrintWriter stream) {179 super.printStackTrace(stream);180 181 if (cause != null) {182 stream.println("Caused by: ");183 cause.printStackTrace(stream);184 }185 }186 187 120 } -
branches/vendor/sourceforge/icedtea-web/current/netx/net/sourceforge/jnlp/LaunchHandler.java
r348 r416 51 51 * @return true to allow the application to continue, false to stop it. 52 52 */ 53 public boolean validationError(LaunchException security);53 public boolean validationError(LaunchException error); 54 54 55 55 // this method will probably be replaced when real security -
branches/vendor/sourceforge/icedtea-web/current/netx/net/sourceforge/jnlp/Launcher.java
r348 r416 26 26 import java.net.URL; 27 27 import java.net.UnknownHostException; 28 import java.util.Arrays; 28 29 import java.util.LinkedList; 29 30 import java.util.List; … … 33 34 import net.sourceforge.jnlp.cache.CacheUtil; 34 35 import net.sourceforge.jnlp.cache.UpdatePolicy; 35 import net.sourceforge.jnlp.runtime.AppThreadGroup;36 36 import net.sourceforge.jnlp.runtime.AppletInstance; 37 37 import net.sourceforge.jnlp.runtime.ApplicationInstance; … … 588 588 589 589 main.setAccessible(true); 590 591 if (JNLPRuntime.isDebug()) { 592 System.out.println("Invoking main() with args: " + Arrays.toString(args)); 593 } 590 594 main.invoke(null, new Object[] { args }); 591 595 … … 703 707 } 704 708 705 AppThreadGroup group = (AppThreadGroup) Thread.currentThread().getThreadGroup(); 706 709 ThreadGroup group = Thread.currentThread().getThreadGroup(); 710 711 // appletInstance is needed by ServiceManager when looking up 712 // services. This could potentially be done in applet constructor 713 // so initialize appletInstance before creating applet. 714 AppletInstance appletInstance; 715 if (cont == null) 716 appletInstance = new AppletInstance(file, group, loader, null); 717 else 718 appletInstance = new AppletInstance(file, group, loader, null, cont); 719 720 loader.setApplication(appletInstance); 721 722 // Initialize applet now that ServiceManager has access to its 723 // appletInstance. 707 724 String appletName = file.getApplet().getMainClass(); 708 709 //Classloader chokes if there's '/' in the path to the main class.710 //Must replace with '.' instead.711 appletName = appletName.replace('/', '.');712 725 Class appletClass = loader.loadClass(appletName); 713 726 Applet applet = (Applet) appletClass.newInstance(); 714 715 AppletInstance appletInstance; 716 if (cont == null) 717 appletInstance = new AppletInstance(file, group, loader, applet); 718 else 719 appletInstance = new AppletInstance(file, group, loader, applet, cont); 720 721 group.setApplication(appletInstance); 722 loader.setApplication(appletInstance); 723 727 // Finish setting up appletInstance. 728 appletInstance.setApplet(applet); 729 appletInstance.getAppletEnvironment().setApplet(applet); 730 724 731 setContextClassLoaderForAllThreads(appletInstance.getThreadGroup(), appletInstance.getClassLoader()); 725 732 … … 747 754 748 755 String appletName = file.getApplet().getMainClass(); 749 750 //Classloader chokes if there's '/' in the path to the main class.751 //Must replace with '.' instead.752 appletName = appletName.replace('/', '.');753 756 Class appletClass = loader.loadClass(appletName); 754 757 Applet applet = (Applet) appletClass.newInstance(); … … 766 769 try { 767 770 JNLPClassLoader loader = JNLPClassLoader.getInstance(file, updatePolicy); 768 AppThreadGroup group = (AppThreadGroup)Thread.currentThread().getThreadGroup();771 ThreadGroup group = Thread.currentThread().getThreadGroup(); 769 772 770 773 ApplicationInstance app = new ApplicationInstance(file, group, loader); 771 group.setApplication(app);772 774 loader.setApplication(app); 773 775 … … 785 787 * ThreadGroup has to be created at an earlier point in the applet code. 786 788 */ 787 protected AppThreadGroup createThreadGroup(JNLPFile file) {788 AppThreadGroup appThreadGroup= null;789 protected ThreadGroup createThreadGroup(JNLPFile file) { 790 ThreadGroup tg = null; 789 791 790 792 if (file instanceof PluginBridge) { 791 appThreadGroup = (AppThreadGroup)Thread.currentThread().getThreadGroup();793 tg = Thread.currentThread().getThreadGroup(); 792 794 } else { 793 appThreadGroup = new AppThreadGroup(mainGroup, file.getTitle());794 } 795 796 return appThreadGroup;795 tg = new ThreadGroup(mainGroup, file.getTitle()); 796 } 797 798 return tg; 797 799 } 798 800 -
branches/vendor/sourceforge/icedtea-web/current/netx/net/sourceforge/jnlp/NetxPanel.java
r348 r416 24 24 25 25 import net.sourceforge.jnlp.AppletLog; 26 import net.sourceforge.jnlp.runtime.AppThreadGroup;27 26 import net.sourceforge.jnlp.runtime.AppletInstance; 28 27 import net.sourceforge.jnlp.runtime.JNLPRuntime; 29 28 30 29 import java.net.URL; 30 import java.util.HashMap; 31 31 import java.util.Hashtable; 32 import java.util.Map; 33 import java.util.concurrent.ConcurrentHashMap; 34 import java.util.concurrent.ConcurrentMap; 32 35 33 36 import sun.applet.AppletViewerPanel; … … 45 48 private AppletInstance appInst = null; 46 49 private boolean appletAlive; 50 private final String uKey; 51 52 // We use this so that we can create exactly one thread group 53 // for all panels with the same uKey. 54 private static final Map<String, ThreadGroup> uKeyToTG = 55 new HashMap<String, ThreadGroup>(); 56 private static final Object TGMapMutex = new Object(); 57 58 // This map is actually a set (unfortunately there is no ConcurrentSet 59 // in java.util.concurrent). If KEY is in this map, then we know that 60 // an app context has been created for the panel that has uKey.equals(KEY), 61 // so we avoid creating it a second time for panels with the same uKey. 62 // Because it's a set, only the keys matter. However, we can't insert 63 // null values in because if we did, we couldn't use null checks to see 64 // if a key was absent before a putIfAbsent. 65 private static final ConcurrentMap<String, Boolean> appContextCreated = 66 new ConcurrentHashMap<String, Boolean>(); 47 67 48 68 public NetxPanel(URL documentURL, Hashtable<String, String> atts) { 49 69 super(documentURL, atts); 70 71 /* According to http://download.oracle.com/javase/6/docs/technotes/guides/deployment/deployment-guide/applet-compatibility.html, 72 * classloaders are shared iff these properties match: 73 * codebase, cache_archive, java_archive, archive 74 * 75 * To achieve this, we create the uniquekey based on those 4 values, 76 * always in the same order. The initial "<NAME>=" parts ensure a 77 * bad tag cannot trick the loader into getting shared with another. 78 */ 79 80 // Firefox sometimes skips the codebase if it is default -- ".", 81 // so set it that way if absent 82 String codebaseAttr = atts.get("codebase") != null ? 83 atts.get("codebase") : "."; 84 85 String cache_archiveAttr = atts.get("cache_archive") != null ? 86 atts.get("cache_archive") : ""; 87 88 String java_archiveAttr = atts.get("java_archive") != null ? 89 atts.get("java_archive") : ""; 90 91 String archiveAttr = atts.get("archive") != null ? 92 atts.get("archive") : ""; 93 94 this.uKey = "codebase=" + codebaseAttr + 95 "cache_archive=" + cache_archiveAttr + 96 "java_archive=" + java_archiveAttr + 97 "archive=" + archiveAttr; 98 99 // when this was being done (incorrectly) in Launcher, the call was 100 // new AppThreadGroup(mainGroup, file.getTitle()); 101 synchronized(TGMapMutex) { 102 if (!uKeyToTG.containsKey(this.uKey)) { 103 ThreadGroup tg = new ThreadGroup(Launcher.mainGroup, this.documentURL.toString()); 104 uKeyToTG.put(this.uKey, tg); 105 } 106 } 50 107 } 51 108 … … 56 113 this.exitOnFailure = exitOnFailure; 57 114 this.appletAlive = true; 58 }59 60 @Override61 public void run() {62 /*63 * create an AppContext for this thread associated with this particular64 * plugin instance (which runs in a different thread group from the rest65 * of the plugin).66 */67 SunToolkit.createNewAppContext();68 69 super.run();70 115 } 71 116 … … 79 124 super.showAppletException(t); 80 125 } 81 126 82 127 //Overriding to use Netx classloader. You might need to relax visibility 83 128 //in sun.applet.AppletPanel for runLoader(). … … 91 136 getWidth(), 92 137 getHeight(), 93 atts );138 atts, uKey); 94 139 95 140 doInit = true; … … 155 200 } 156 201 157 // when this was being done (incorrectly) in Launcher, the call was 158 // new AppThreadGroup(mainGroup, file.getTitle()); 159 ThreadGroup tg = new AppThreadGroup(Launcher.mainGroup, 160 this.documentURL.toString()); 161 handler = new Thread(tg, this); 202 handler = new Thread(getThreadGroup(), this); 162 203 handler.start(); 163 204 } … … 175 216 return handler != null && handler.isAlive() && this.appletAlive; 176 217 } 218 219 public ThreadGroup getThreadGroup() { 220 synchronized(TGMapMutex) { 221 return uKeyToTG.get(uKey); 222 } 223 } 224 225 public void createNewAppContext() { 226 if (Thread.currentThread().getThreadGroup() != getThreadGroup()) { 227 throw new RuntimeException("createNewAppContext called from the wrong thread."); 228 } 229 // only create a new context if one hasn't already been created for the 230 // applets with this unique key. 231 if (null == appContextCreated.putIfAbsent(uKey, Boolean.TRUE)) { 232 SunToolkit.createNewAppContext(); 233 } 234 } 177 235 } -
branches/vendor/sourceforge/icedtea-web/current/netx/net/sourceforge/jnlp/Node.java
r348 r416 20 20 private Node next; 21 21 private Node children[]; 22 private List <String> attributeNames= null; 22 23 23 24 Node(XMLElement xml) { … … 61 62 return children; 62 63 } 64 65 /** 66 * To retrieve all attribute names 67 * @return all attribute names of the Node in ArrayList<String> 68 */ 69 List<String> getAttributeNames() { 70 if (attributeNames == null) { 71 attributeNames= new ArrayList<String>(); 72 73 for (Enumeration e = xml.enumerateAttributeNames(); e.hasMoreElements();) 74 attributeNames.add(new String((String) e.nextElement())); 75 } 76 77 return attributeNames; 78 } 63 79 64 80 String getAttribute(String name) { … … 87 103 private Node next; 88 104 private Node children[]; 105 private String attributeNames[]; 89 106 90 107 Node(ParsedXML tinyNode) { … … 128 145 return children; 129 146 } 130 147 131 148 String getAttribute(String name) { 132 149 return tinyNode.getAttribute(name); -
branches/vendor/sourceforge/icedtea-web/current/netx/net/sourceforge/jnlp/Parser.java
r348 r416 1 1 // Copyright (C) 2001-2003 Jon A. Maxwell (JAM) 2 // Copyright (C) 20 09Red Hat, Inc.2 // Copyright (C) 2012 Red Hat, Inc. 3 3 // 4 4 // This library is free software; you can redistribute it and/or … … 29 29 import net.sourceforge.jnlp.UpdateDesc.Check; 30 30 import net.sourceforge.jnlp.UpdateDesc.Policy; 31 import net.sourceforge.jnlp.runtime.JNLPRuntime; 31 32 import net.sourceforge.nanoxml.*; 32 33 … … 111 112 */ 112 113 public Parser(JNLPFile file, URL base, Node root, boolean strict, boolean allowExtensions) throws ParseException { 114 this(file, base, root, strict, allowExtensions, null); 115 } 116 117 /** 118 * Create a parser for the JNLP file. If the location 119 * parameters is not null it is used as the default codebase 120 * (does not override value of jnlp element's href 121 * attribute).<p> 122 * 123 * The root node may be normalized as a side effect of this 124 * constructor. 125 * 126 * @param file the (uninitialized) file reference 127 * @param base if codebase is not specified, a default base for relative URLs 128 * @param root the root node 129 * @param strict whether to enforce strict compliance with the JNLP spec 130 * @param allowExtensions whether to allow extensions to the JNLP spec 131 * @param codebase codebase to use if we did not parse one from JNLP file. 132 * @throws ParseException if the JNLP file is invalid 133 */ 134 public Parser(JNLPFile file, URL base, Node root, boolean strict, boolean allowExtensions, URL codebase) throws ParseException { 113 135 this.file = file; 114 136 this.root = root; … … 123 145 this.spec = getVersion(root, "spec", "1.0+"); 124 146 this.codebase = addSlash(getURL(root, "codebase", base)); 125 this.base = (codebase != null) ? codebase : base; // if codebase not specified use default codebase 147 if (this.codebase == null) // We only override it if it is not specified. 148 this.codebase = codebase; 149 this.base = (this.codebase != null) ? this.codebase : base; // if codebase not specified use default codebase 126 150 fileLocation = getURL(root, "href", this.base); 127 151 … … 403 427 404 428 /** 429 * Make sure a title and vendor are present and nonempty and localized as 430 * best matching as possible for the JVM's current locale. Fallback to a 431 * generalized title and vendor otherwise. If none is found, throw an exception. 432 * 433 * Additionally prints homepage, description, title and vendor to stdout 434 * if in Debug mode. 435 * @throws RequiredElementException 436 */ 437 void checkForInformation() throws RequiredElementException { 438 if (JNLPRuntime.isDebug()) { 439 System.out.println("Homepage: " + file.getInformation().getHomepage()); 440 System.out.println("Description: " + file.getInformation().getDescription()); 441 } 442 443 String title = file.getTitle(); 444 String vendor = file.getVendor(); 445 446 if (title == null || title.trim().isEmpty()) 447 throw new MissingTitleException(); 448 else if (JNLPRuntime.isDebug()) 449 System.out.println("Acceptable title tag found, contains: " + title); 450 451 if (vendor == null || vendor.trim().isEmpty()) 452 throw new MissingVendorException(); 453 else if (JNLPRuntime.isDebug()) 454 System.out.println("Acceptable vendor tag found, contains: " + vendor); 455 } 456 457 /** 405 458 * Returns all of the information elements under the specified 406 459 * node. … … 416 469 // ensure that there are at least one information section present 417 470 if (info.length == 0) 418 throw new ParseException(R("PNoInfoElement"));471 throw new MissingInformationException(); 419 472 420 473 // create objects from the info sections 421 for (int i = 0; i < info.length; i++) 422 result.add(getInformationDesc(info[i])); 474 for (Node infoNode : info) { 475 result.add(getInformationDesc(infoNode)); 476 } 423 477 424 478 return result; … … 582 636 * @throws ParseException if the JNLP file is invalid 583 637 */ 584 public ObjectgetLauncher(Node parent) throws ParseException {638 public LaunchDesc getLauncher(Node parent) throws ParseException { 585 639 // check for other than one application type 586 640 if (1 < getChildNodes(parent, "applet-desc").length … … 869 923 String language = localeStr.substring(0, 2); 870 924 String country = (localeStr.length() < 5) ? "" : localeStr.substring(3, 5); 871 String variant = (localeStr.length() < 7) ? "" : localeStr.substring(6, 8);925 String variant = (localeStr.length() > 7) ? localeStr.substring(6) : ""; 872 926 873 927 // null is not allowed n locale but "" is -
branches/vendor/sourceforge/icedtea-web/current/netx/net/sourceforge/jnlp/PluginBridge.java
r348 r416 1 1 /* 2 * Copyright 20 07Red Hat, Inc.2 * Copyright 2012 Red Hat, Inc. 3 3 * This file is part of IcedTea, http://icedtea.classpath.org 4 4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. … … 23 23 package net.sourceforge.jnlp; 24 24 25 import java.io.File; 25 26 import java.net.URL; 26 27 import java.net.MalformedURLException; 27 import java.util.Hash table;28 import java.util.HashSet; 28 29 import java.util.Locale; 29 30 import java.util.List; 30 31 import java.util.ArrayList; 31 32 import java.util.Map; 33 import java.util.Set; 32 34 33 35 import net.sourceforge.jnlp.runtime.JNLPRuntime; 34 36 37 /** 38 * Allows reuse of code that expects a JNLPFile object, 39 * while overriding behaviour specific to applets. 40 */ 35 41 public class PluginBridge extends JNLPFile { 36 42 37 String name; 38 String[] jars = new String[0]; 39 String[] cacheJars = new String[0]; 40 String[] cacheExJars = new String[0]; 41 Hashtable<String, String> atts; 43 private String name; 44 private Set<String> jars = new HashSet<String>(); 45 //Folders can be added to the code-base through the archive tag 46 private List<String> codeBaseFolders = new ArrayList<String>(); 47 private String[] cacheJars = new String[0]; 48 private String[] cacheExJars = new String[0]; 49 private Map<String, String> atts; 42 50 private boolean usePack; 43 51 private boolean useVersion; 44 52 private boolean codeBaseLookup; 45 53 private boolean useJNLPHref; 54 55 /** 56 * Creates a new PluginBridge using a default JNLPCreator. 57 */ 46 58 public PluginBridge(URL codebase, URL documentBase, String jar, String main, 47 int width, int height, Hashtable<String, String> atts) 59 int width, int height, Map<String, String> atts, 60 String uKey) 61 throws Exception { 62 this(codebase, documentBase, jar, main, width, height, atts, uKey, new JNLPCreator()); 63 } 64 65 /** 66 * Handles archive tag entries, which may be folders or jar files 67 * @param archives the components of the archive tag 68 */ 69 private void addArchiveEntries(String[] archives) { 70 for (String archiveEntry : archives){ 71 // trim white spaces 72 archiveEntry = archiveEntry.trim(); 73 74 /*Only '/' on linux, '/' or '\\' on windows*/ 75 if (archiveEntry.endsWith("/") || archiveEntry.endsWith(File.pathSeparator)) { 76 this.codeBaseFolders.add(archiveEntry); 77 } else { 78 this.jars.add(archiveEntry); 79 } 80 } 81 } 82 83 public PluginBridge(URL codebase, URL documentBase, String archive, String main, 84 int width, int height, Map<String, String> atts, 85 String uKey, JNLPCreator jnlpCreator) 48 86 throws Exception { 49 87 specVersion = new Version("1.0"); … … 51 89 this.codeBase = codebase; 52 90 this.sourceLocation = documentBase; 91 this.atts = atts; 53 92 54 93 if (atts.containsKey("jnlp_href")) { 94 useJNLPHref = true; 55 95 try { 56 URL jnlp = new URL(codeBase.toExternalForm() + atts.get("jnlp_href")); 57 JNLPFile jnlpFile = new JNLPFile(jnlp); 96 // Use codeBase as the context for the URL. If jnlp_href's 97 // value is a complete URL, it will replace codeBase's context. 98 URL jnlp = new URL(codeBase, atts.get("jnlp_href")); 99 JNLPFile jnlpFile = jnlpCreator.create(jnlp, null, false, JNLPRuntime.getDefaultUpdatePolicy(), codeBase); 58 100 Map<String, String> jnlpParams = jnlpFile.getApplet().getParameters(); 101 info = jnlpFile.info; 59 102 60 103 // Change the parameter name to lowercase to follow conventions. 61 104 for (Map.Entry<String, String> entry : jnlpParams.entrySet()) { 62 atts.put(entry.getKey().toLowerCase(), entry.getValue());105 this.atts.put(entry.getKey().toLowerCase(), entry.getValue()); 63 106 } 107 JARDesc[] jarDescs = jnlpFile.getResources().getJARs(); 108 for (JARDesc jarDesc : jarDescs) { 109 String fileName = jarDesc.getLocation().toExternalForm(); 110 this.jars.add(fileName); 111 } 64 112 } catch (MalformedURLException e) { 65 113 // Don't fail because we cannot get the jnlp file. Parameters are optional not required. 66 114 // it is the site developer who should ensure that file exist. 67 System.err.println("Unable to get JNLP file at: " + codeBase.toExternalForm() 68 + atts.get("jnlp_href")); 69 } 115 System.err.println("Unable to get JNLP file at: " + atts.get("jnlp_href") 116 + " with context of URL as: " + codeBase.toExternalForm()); 117 } 118 } else { 119 // Should we populate this list with applet attribute tags? 120 info = new ArrayList<InformationDesc>(); 121 useJNLPHref = false; 70 122 } 71 123 … … 100 152 } 101 153 102 if (jar != null && jar.length() > 0) { 103 this.jars = jar.split(","); 104 105 // trim white spaces 106 for (int i = 0; i < this.jars.length; i++) { 107 this.jars[i] = this.jars[i].trim(); 108 } 154 if (archive != null && archive.length() > 0) { 155 String[] archives = archive.split(","); 156 157 addArchiveEntries(archives); 109 158 110 159 if (JNLPRuntime.isDebug()) { 111 System.err.println("Jar string: " + jar); 112 System.err.println("jars length: " + jars.length); 113 } 114 } 115 this.atts = atts; 160 System.err.println("Jar string: " + archive); 161 System.err.println("jars length: " + archives.length); 162 } 163 } 116 164 117 165 name = atts.get("name"); … … 124 172 main = main.substring(0, main.length() - 6); 125 173 126 launchType = new AppletDesc(name, main, documentBase, width, 174 // the class name should be of the form foo.bar.Baz not foo/bar/Baz 175 String mainClass = main.replace('/', '.'); 176 launchType = new AppletDesc(name, mainClass, documentBase, width, 127 177 height, atts); 128 178 … … 133 183 security = null; 134 184 135 /* According to http://download.oracle.com/javase/6/docs/technotes/guides/deployment/deployment-guide/applet-compatibility.html, 136 * classloaders are shared iff these properties match: 137 * codebase, cache_archive, java_archive, archive 138 * 139 * To achieve this, we create the uniquekey based on those 4 values, 140 * always in the same order. The initial "<NAME>=" parts ensure a 141 * bad tag cannot trick the loader into getting shared with another. 142 */ 143 144 // Firefox sometimes skips the codebase if it is default -- ".", 145 // so set it that way if absent 146 String codebaseAttr = atts.get("codebase") != null ? 147 atts.get("codebase") : "."; 148 149 String cache_archiveAttr = atts.get("cache_archive") != null ? 150 atts.get("cache_archive") : ""; 151 152 String java_archiveAttr = atts.get("java_archive") != null ? 153 atts.get("java_archive") : ""; 154 155 String archiveAttr = atts.get("archive") != null ? 156 atts.get("archive") : ""; 157 158 this.uniqueKey = "codebase=" + codebaseAttr + 159 "cache_archive=" + cache_archiveAttr + 160 "java_archive=" + java_archiveAttr + 161 "archive=" + archiveAttr; 162 185 this.uniqueKey = uKey; 163 186 usePack = false; 164 187 useVersion = false; … … 184 207 } 185 208 209 public boolean useJNLPHref() { 210 return useJNLPHref; 211 } 212 186 213 /** 187 214 * {@inheritdoc } … … 194 221 public String getTitle() { 195 222 return name; 196 }197 198 public InformationDesc getInformation(final Locale locale) {199 return new InformationDesc(this, new Locale[] { locale }) {200 protected List<Object> getItems(Object key) {201 // Should we populate this list with applet attribute tags?202 return new ArrayList<Object>();203 }204 };205 223 } 206 224 … … 218 236 jarDescs.addAll(sharedResources.getResources(JARDesc.class)); 219 237 220 for ( int i = 0; i < jars.length; i++)221 if ( jars[i].length() > 0)222 jarDescs.add(new JARDesc(new URL(codeBase, jars[i]),238 for (String name : jars) { 239 if (name.length() > 0) 240 jarDescs.add(new JARDesc(new URL(codeBase, name), 223 241 null, null, false, true, false, true)); 242 } 224 243 225 244 boolean cacheable = true; … … 229 248 cacheable = false; 230 249 231 for ( int i = 0; i < cacheJars.length; i++) {232 233 String[] jarAndVer = cacheJar s[i].split(";");250 for (String cacheJar : cacheJars) { 251 252 String[] jarAndVer = cacheJar.split(";"); 234 253 235 254 String jar = jarAndVer[0]; … … 247 266 } 248 267 249 for ( int i = 0; i < cacheExJars.length; i++) {250 251 if (cacheExJar s[i].length() == 0)268 for (String cacheExJar : cacheExJars) { 269 270 if (cacheExJar.length() == 0) 252 271 continue; 253 272 254 String[] jarInfo = cacheExJar s[i].split(";");273 String[] jarInfo = cacheExJar.split(";"); 255 274 256 275 String jar = jarInfo[0].trim(); … … 302 321 303 322 /** 323 * Returns the list of folders to be added to the codebase 324 */ 325 public List<String> getCodeBaseFolders() { 326 return new ArrayList<String>(codeBaseFolders); 327 } 328 329 /** 304 330 * Returns the resources section of the JNLP file for the 305 331 * specified locale, os, and arch. -
branches/vendor/sourceforge/icedtea-web/current/netx/net/sourceforge/jnlp/ResourcesDesc.java
r348 r416 76 76 JARDesc jars[] = getJARs(); 77 77 78 for (int i = 0; i < jars.length; i++) 79 if (jars[i].isMain()) 80 return jars[i]; 78 for (JARDesc jar : jars) { 79 if (jar.isMain()) 80 return jar; 81 } 81 82 82 83 if (jars.length > 0) … … 161 162 Map<String, String> properties = new HashMap<String, String>(); 162 163 List<PropertyDesc> resources = getResources(PropertyDesc.class); 163 for (int i = 0; i < resources.size(); i++) { 164 PropertyDesc prop = resources.get(i); 164 for (PropertyDesc prop : resources) { 165 165 properties.put(prop.getKey(), prop.getValue()); 166 166 } … … 206 206 List<T> result = new ArrayList<T>(); 207 207 208 for (int i = 0; i < resources.size(); i++) 209 if (type.isAssignableFrom(resources.get(i).getClass())) 210 result.add(type.cast(resources.get(i))); 208 for (Object resource : resources) { 209 if (type.isAssignableFrom(resource.getClass())) 210 result.add(type.cast(resource)); 211 } 211 212 212 213 return result; -
branches/vendor/sourceforge/icedtea-web/current/netx/net/sourceforge/jnlp/SecurityDesc.java
r348 r416 203 203 204 204 // discard sandbox, give all 205 if ( type == ALL_PERMISSIONS) {205 if (ALL_PERMISSIONS.equals(type)) { 206 206 permissions = new Permissions(); 207 207 if (customTrustedPolicy == null) { … … 214 214 215 215 // add j2ee to sandbox if needed 216 if ( type == J2EE_PERMISSIONS)216 if (J2EE_PERMISSIONS.equals(type)) 217 217 for (int i = 0; i < j2eePermissions.length; i++) 218 218 permissions.add(j2eePermissions[i]); … … 239 239 permissions.add(jnlpRIAPermissions[i]); 240 240 241 if (downloadHost != null )241 if (downloadHost != null && downloadHost.length() > 0) 242 242 permissions.add(new SocketPermission(downloadHost, 243 243 "connect, accept")); … … 245 245 return permissions; 246 246 } 247 248 /** 249 * Returns all the names of the basic JNLP system properties accessible by RIAs 250 */ 251 public static String[] getJnlpRIAPermissions() { 252 String[] jnlpPermissions = new String[jnlpRIAPermissions.length]; 253 254 for (int i = 0; i < jnlpRIAPermissions.length; i++) 255 jnlpPermissions[i] = jnlpRIAPermissions[i].getName(); 256 257 return jnlpPermissions; 258 } 247 259 248 260 } -
branches/vendor/sourceforge/icedtea-web/current/netx/net/sourceforge/jnlp/Version.java
r348 r416 231 231 232 232 // compare as integers 233 // for normalization key, compare exact object, not using .equals 233 234 try { 234 235 if (!(part1 == emptyString)) // compare to magic normalization key … … 243 244 } 244 245 245 if (part1 == emptyString) 246 if (part1 == emptyString) // compare to magic normalization key 246 247 part1 = ""; 247 if (part2 == emptyString) 248 if (part2 == emptyString) // compare to magic normalization key 248 249 part2 = ""; 249 250 -
branches/vendor/sourceforge/icedtea-web/current/netx/net/sourceforge/jnlp/cache/CacheLRUWrapper.java
r348 r416 37 37 package net.sourceforge.jnlp.cache; 38 38 39 import java.util.Set; 40 import static net.sourceforge.jnlp.runtime.Translator.R; 41 39 42 import java.io.File; 40 43 import java.io.IOException; … … 44 47 import java.util.Collections; 45 48 import java.util.Comparator; 49 import java.util.Iterator; 46 50 import java.util.List; 47 51 import java.util.Map.Entry; … … 68 72 69 73 /* location of cache directory */ 70 private final String cacheDir = new File(JNLPRuntime.getConfiguration()71 .getProperty(DeploymentConfiguration.KEY_USER_CACHE_DIR)).getPath();74 private final String setCachePath = JNLPRuntime.getConfiguration().getProperty(DeploymentConfiguration.KEY_USER_CACHE_DIR); 75 private final String cacheDir = new File(setCachePath != null ? setCachePath : System.getProperty("java.io.tmpdir")).getPath(); 72 76 73 77 /* … … 105 109 */ 106 110 public synchronized void load() { 107 cacheOrder.load(); 111 boolean loaded = cacheOrder.load(); 112 /* 113 * clean up possibly corrupted entries 114 */ 115 if (loaded && checkData()) { 116 if (JNLPRuntime.isDebug()) { 117 new LruCacheException().printStackTrace(); 118 } 119 System.out.println(R("CFakeCache")); 120 store(); 121 System.out.println(R("CFakedCache")); 122 } 123 } 124 125 /** 126 * check content of cacheOrder and remove invalid/corrupt entries 127 * 128 * @return true, if cache was corrupted and affected entry removed 129 */ 130 private boolean checkData () { 131 boolean modified = false; 132 Set<Entry<Object, Object>> q = cacheOrder.entrySet(); 133 for (Iterator<Entry<Object, Object>> it = q.iterator(); it.hasNext();) { 134 Entry<Object, Object> currentEntry = it.next(); 135 136 final String key = (String) currentEntry.getKey(); 137 final String path = (String) currentEntry.getValue(); 138 139 // 1. check key format: "milliseconds,number" 140 try { 141 String sa[] = key.split(","); 142 Long l1 = Long.parseLong(sa[0]); 143 Long l2 = Long.parseLong(sa[1]); 144 } catch (Exception ex) { 145 it.remove(); 146 modified = true; 147 continue; 148 } 149 150 // 2. check path format - does the path look correct? 151 if (path != null) { 152 if (path.indexOf(cacheDir) < 0) { 153 it.remove(); 154 modified = true; 155 } 156 } else { 157 it.remove(); 158 modified = true; 159 } 160 } 161 162 return modified; 108 163 } 109 164 … … 173 228 @Override 174 229 public int compare(Entry<String, String> e1, Entry<String, String> e2) { 175 try { 176 Long t1 = Long.parseLong(e1.getKey().split(",")[0]); 177 Long t2 = Long.parseLong(e2.getKey().split(",")[0]); 178 179 int c = t1.compareTo(t2); 180 return c < 0 ? 1 : (c > 0 ? -1 : 0); 181 } catch (NumberFormatException e) { 182 // Perhaps an error is too harsh. Maybe just somehow turn 183 // caching off if this is the case. 184 throw new InternalError("Corrupt LRU file entries"); 185 } 230 Long t1 = Long.parseLong(e1.getKey().split(",")[0]); 231 Long t2 = Long.parseLong(e2.getKey().split(",")[0]); 232 233 int c = t1.compareTo(t2); 234 return c < 0 ? 1 : (c > 0 ? -1 : 0); 186 235 } 187 236 }); … … 250 299 return System.currentTimeMillis() + "," + getIdForCacheFolder(path); 251 300 } 301 302 void clearLRUSortedEntries() { 303 cacheOrder.clear(); 304 } 252 305 } -
branches/vendor/sourceforge/icedtea-web/current/netx/net/sourceforge/jnlp/cache/CacheUtil.java
r348 r416 48 48 public class CacheUtil { 49 49 50 private static final String cacheDir = new File(JNLPRuntime.getConfiguration()51 .getProperty(DeploymentConfiguration.KEY_USER_CACHE_DIR)).getPath(); // Do this with file to standardize it.50 private static final String setCacheDir = JNLPRuntime.getConfiguration().getProperty(DeploymentConfiguration.KEY_USER_CACHE_DIR); 51 private static final String cacheDir = new File(setCacheDir != null ? setCacheDir : System.getProperty("java.io.tmpdir")).getPath(); // Do this with file to standardize it. 52 52 private static final CacheLRUWrapper lruHandler = CacheLRUWrapper.getInstance(); 53 53 private static final HashMap<String, FileLock> propertiesLockPool = new HashMap<String, FileLock>(); … … 62 62 */ 63 63 public static boolean urlEquals(URL u1, URL u2) { 64 if (u1 == u2) 64 if (u1 == u2) { 65 65 return true; 66 if (u1 == null || u2 == null) 67 return false; 68 69 if (!compare(u1.getProtocol(), u2.getProtocol(), true) || 70 !compare(u1.getHost(), u2.getHost(), true) || 71 //u1.getDefaultPort() != u2.getDefaultPort() || // only in 1.4 72 !compare(u1.getPath(), u2.getPath(), false) || 73 !compare(u1.getQuery(), u2.getQuery(), false) || 74 !compare(u1.getRef(), u2.getRef(), false)) 75 return false; 76 else 66 } 67 if (u1 == null || u2 == null) { 68 return false; 69 } 70 71 if (notNullUrlEquals(u1, u2)) { 77 72 return true; 78 } 79 73 } 74 try { 75 URL nu1 = ResourceTracker.normalizeUrl(u1, false); 76 URL nu2 = ResourceTracker.normalizeUrl(u2, false); 77 if (notNullUrlEquals(nu1, nu2)) { 78 return true; 79 } 80 } catch (Exception ex) { 81 //keep silent here and return false 82 } 83 return false; 84 } 85 86 private static boolean notNullUrlEquals(URL u1, URL u2) { 87 if (!compare(u1.getProtocol(), u2.getProtocol(), true) 88 || !compare(u1.getHost(), u2.getHost(), true) 89 || //u1.getDefaultPort() != u2.getDefaultPort() || // only in 1.4 90 !compare(u1.getPath(), u2.getPath(), false) 91 || !compare(u1.getQuery(), u2.getQuery(), false) 92 || !compare(u1.getRef(), u2.getRef(), false)) { 93 return false; 94 } else { 95 return true; 96 } 97 } 80 98 /** 81 99 * Caches a resource and returns a URL for it in the cache; … … 145 163 * and we check for those by calling {@link #okToClearCache()} 146 164 */ 147 public static voidclearCache() {165 public static boolean clearCache() { 148 166 149 167 if (!okToClearCache()) { 150 168 System.err.println(R("CCannotClearCache")); 151 return ;169 return false; 152 170 } 153 171 154 172 File cacheDir = new File(CacheUtil.cacheDir); 155 173 if (!(cacheDir.isDirectory())) { 156 return ;174 return false; 157 175 } 158 176 … … 166 184 throw new RuntimeException(e); 167 185 } 186 return true; 168 187 } 169 188 … … 307 326 if (cacheFile == null) { // We did not find a copy of it. 308 327 cacheFile = makeNewCacheFile(source, version); 309 } 310 lruHandler.store();328 } else 329 lruHandler.store(); 311 330 lruHandler.unlock(); 312 331 } … … 329 348 final String path = e.getValue(); 330 349 331 if (path != null) { 332 if (pathToURLPath(path).equals(urlPath.getPath())) { // Match found. 333 cacheFile = new File(path); 334 lruHandler.updateEntry(key); 335 break; // Stop searching since we got newest one already. 336 } 350 if (pathToURLPath(path).equals(urlPath.getPath())) { // Match found. 351 cacheFile = new File(path); 352 lruHandler.updateEntry(key); 353 break; // Stop searching since we got newest one already. 337 354 } 338 355 } … … 484 501 // only resources not starting out downloaded are displayed 485 502 List<URL> urlList = new ArrayList<URL>(); 486 for ( int i = 0; i < resources.length; i++) {487 if (!tracker.checkResource( resources[i]))488 urlList.add( resources[i]);503 for (URL url : resources) { 504 if (!tracker.checkResource(url)) 505 urlList.add(url); 489 506 } 490 507 URL undownloaded[] = urlList.toArray(new URL[urlList.size()]); … … 496 513 long total = 0; 497 514 498 for ( int i = 0; i < undownloaded.length; i++) {515 for (URL url : undownloaded) { 499 516 // add in any -1's; they're insignificant 500 total += tracker.getTotalSize(u ndownloaded[i]);501 read += tracker.getAmountRead(u ndownloaded[i]);517 total += tracker.getTotalSize(url); 518 read += tracker.getAmountRead(url); 502 519 } 503 520 504 521 int percent = (int) ((100 * read) / Math.max(1, total)); 505 522 506 for ( int i = 0; i < undownloaded.length; i++)507 listener.progress(u ndownloaded[i], "version",508 tracker.getAmountRead(u ndownloaded[i]),509 tracker.getTotalSize(u ndownloaded[i]),523 for (URL url : undownloaded) { 524 listener.progress(url, "version", 525 tracker.getAmountRead(url), 526 tracker.getTotalSize(url), 510 527 percent); 528 } 511 529 } while (!tracker.waitForResources(resources, indicator.getUpdateRate())); 512 530 513 531 // make sure they read 100% until indicator closes 514 for ( int i = 0; i < undownloaded.length; i++)515 listener.progress(u ndownloaded[i], "version",516 tracker.getTotalSize(u ndownloaded[i]),517 tracker.getTotalSize(u ndownloaded[i]),532 for (URL url : undownloaded) { 533 listener.progress(url, "version", 534 tracker.getTotalSize(url), 535 tracker.getTotalSize(url), 518 536 100); 519 537 } 520 538 } catch (InterruptedException ex) { 521 539 if (JNLPRuntime.isDebug()) … … 531 549 */ 532 550 public static void cleanCache() { 551 533 552 if (okToClearCache()) { 534 553 // First we want to figure out which stuff we need to delete. … … 549 568 // Check if the item is contained in cacheOrder. 550 569 final String key = e.getKey(); 551 final String value = e.getValue(); 552 553 if (value != null) { 554 File file = new File(value); 555 PropertiesFile pf = new PropertiesFile(new File(value + ".info")); 556 boolean delete = Boolean.parseBoolean(pf.getProperty("delete")); 557 558 /* 559 * This will get me the root directory specific to this cache item. 560 * Example: 561 * cacheDir = /home/user1/.icedtea/cache 562 * file.getPath() = /home/user1/.icedtea/cache/0/http/www.example.com/subdir/a.jar 563 * rStr first becomes: /0/http/www.example.com/subdir/a.jar 564 * then rstr becomes: /home/user1/.icedtea/cache/0 565 */ 566 String rStr = file.getPath().substring(cacheDir.length()); 567 rStr = cacheDir + rStr.substring(0, rStr.indexOf(File.separatorChar, 1)); 568 long len = file.length(); 569 570 if (keep.contains(file.getPath().substring(rStr.length()))) { 571 lruHandler.removeEntry(key); 572 continue; 573 } 574 575 /* 576 * we remove entries from our lru if any of the following condition is met. 577 * Conditions: 578 * - delete: file has been marked for deletion. 579 * - !file.isFile(): if someone tampered with the directory, file doesn't exist. 580 * - maxSize >= 0 && curSize + len > maxSize: If a limit was set and the new size 581 * on disk would exceed the maximum size. 582 */ 583 if (delete || !file.isFile() || (maxSize >= 0 && curSize + len > maxSize)) { 584 lruHandler.removeEntry(key); 585 remove.add(rStr); 586 } else { 587 curSize += len; 588 keep.add(file.getPath().substring(rStr.length())); 589 590 for (File f : file.getParentFile().listFiles()) { 591 if (!(f.equals(file) || f.equals(pf.getStoreFile()))){ 592 try { 593 FileUtils.recursiveDelete(f, f); 594 } catch (IOException e1) { 595 e1.printStackTrace(); 596 } 597 } 570 final String path = e.getValue(); 571 572 File file = new File(path); 573 PropertiesFile pf = new PropertiesFile(new File(path + ".info")); 574 boolean delete = Boolean.parseBoolean(pf.getProperty("delete")); 575 576 /* 577 * This will get me the root directory specific to this cache item. 578 * Example: 579 * cacheDir = /home/user1/.icedtea/cache 580 * file.getPath() = /home/user1/.icedtea/cache/0/http/www.example.com/subdir/a.jar 581 * rStr first becomes: /0/http/www.example.com/subdir/a.jar 582 * then rstr becomes: /home/user1/.icedtea/cache/0 583 */ 584 String rStr = file.getPath().substring(cacheDir.length()); 585 rStr = cacheDir + rStr.substring(0, rStr.indexOf(File.separatorChar, 1)); 586 long len = file.length(); 587 588 if (keep.contains(file.getPath().substring(rStr.length()))) { 589 lruHandler.removeEntry(key); 590 continue; 591 } 592 593 /* 594 * we remove entries from our lru if any of the following condition is met. 595 * Conditions: 596 * - delete: file has been marked for deletion. 597 * - !file.isFile(): if someone tampered with the directory, file doesn't exist. 598 * - maxSize >= 0 && curSize + len > maxSize: If a limit was set and the new size 599 * on disk would exceed the maximum size. 600 */ 601 if (delete || !file.isFile() || (maxSize >= 0 && curSize + len > maxSize)) { 602 lruHandler.removeEntry(key); 603 remove.add(rStr); 604 continue; 605 } 606 607 curSize += len; 608 keep.add(file.getPath().substring(rStr.length())); 609 610 for (File f : file.getParentFile().listFiles()) { 611 if (!(f.equals(file) || f.equals(pf.getStoreFile()))) { 612 try { 613 FileUtils.recursiveDelete(f, f); 614 } catch (IOException e1) { 615 e1.printStackTrace(); 598 616 } 599 617 } 600 } else { 601 lruHandler.removeEntry(key); 618 602 619 } 603 620 } -
branches/vendor/sourceforge/icedtea-web/current/netx/net/sourceforge/jnlp/cache/DefaultDownloadIndicator.java
r348 r416 29 29 30 30 import net.sourceforge.jnlp.runtime.*; 31 import net.sourceforge.jnlp.util.ImageResources; 31 32 32 33 /** … … 58 59 /** the display window */ 59 60 private static JFrame frame; 61 private static final Object frameMutex = new Object(); 60 62 61 63 /** shared constraint */ … … 98 100 DownloadPanel result = new DownloadPanel(downloadName); 99 101 100 if (frame == null) { 101 frame = new JFrame(downloading + "..."); 102 frame.getContentPane().setLayout(new GridBagLayout()); 103 } 104 105 if (resources != null) 106 for (int i = 0; i < resources.length; i++) 107 result.addProgressPanel(resources[i], null); 108 109 frame.getContentPane().add(result, vertical); 110 frame.pack(); 111 112 if (!frame.isVisible()) { 113 Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); 114 Insets insets = Toolkit.getDefaultToolkit().getScreenInsets(frame.getGraphicsConfiguration()); 115 Dimension screen = new Dimension(screenSize.width - insets.left, 116 screenSize.height - insets.top); 117 frame.setLocation(screen.width - frame.getWidth(), 118 screen.height - frame.getHeight()); 119 } 120 121 frame.setVisible(true); 122 123 return result; 102 synchronized (frameMutex) { 103 if (frame == null) { 104 frame = new JFrame(downloading + "..."); 105 frame.setIconImages(ImageResources.INSTANCE.getApplicationImages()); 106 frame.getContentPane().setLayout(new GridBagLayout()); 107 } 108 109 if (resources != null) { 110 for (URL url : resources) { 111 result.addProgressPanel(url, null); 112 } 113 } 114 115 frame.getContentPane().add(result, vertical); 116 frame.pack(); 117 118 if (!frame.isVisible()) { 119 Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); 120 Insets insets = Toolkit.getDefaultToolkit().getScreenInsets(frame.getGraphicsConfiguration()); 121 Dimension screen = new Dimension(screenSize.width - insets.left, 122 screenSize.height - insets.top); 123 frame.setLocation(screen.width - frame.getWidth(), 124 screen.height - frame.getHeight()); 125 } 126 127 frame.setVisible(true); 128 129 return result; 130 } 124 131 } 125 132 … … 135 142 ActionListener hider = new ActionListener() { 136 143 public void actionPerformed(ActionEvent evt) { 137 if (frame.getContentPane().getComponentCount() == 1) 138 frame.setVisible(false); 139 140 frame.getContentPane().remove((DownloadPanel) listener); 141 frame.pack(); 144 synchronized(frameMutex) { 145 frame.getContentPane().remove((DownloadPanel) listener); 146 frame.pack(); 147 148 if (frame.getContentPane().getComponentCount() == 0) { 149 frame.setVisible(false); 150 frame.dispose(); 151 frame = null; 152 } 153 } 142 154 } 143 155 }; … … 187 199 188 200 add(panel, verticalIndent); 189 frame.pack(); 201 synchronized (frameMutex) { 202 frame.pack(); 203 } 190 204 191 205 urls.add(url); -
branches/vendor/sourceforge/icedtea-web/current/netx/net/sourceforge/jnlp/cache/Resource.java
r348 r416 273 273 } 274 274 275 for (int i = 0; i < send.size(); i++) { 276 ResourceTracker rt = send.get(i); 275 for (ResourceTracker rt : send) { 277 276 rt.fireDownloadEvent(this); 278 277 } -
branches/vendor/sourceforge/icedtea-web/current/netx/net/sourceforge/jnlp/cache/ResourceTracker.java
r348 r416 25 25 import java.io.InputStream; 26 26 import java.io.OutputStream; 27 import java.io.UnsupportedEncodingException; 27 28 import java.net.HttpURLConnection; 28 29 import java.net.MalformedURLException; 29 30 import java.net.URL; 30 31 import java.net.URLConnection; 32 import java.net.URLDecoder; 33 import java.net.URLEncoder; 31 34 import java.security.AccessController; 32 35 import java.security.PrivilegedAction; … … 109 112 private static final int STARTED = Resource.STARTED; 110 113 114 // normalization of url 115 private static final char PATH_DELIMITER_MARK = '/'; 116 private static final String PATH_DELIMITER = "" + PATH_DELIMITER_MARK; 117 private static final char QUERY_DELIMITER_MARK = '&'; 118 private static final String QUERY_DELIMITER = "" + QUERY_DELIMITER_MARK; 119 private static final char QUERY_MARK = '?'; 120 private static final char HREF_MARK = '#'; 121 private static final String UTF8 = "utf-8"; 122 111 123 /** max threads */ 112 124 private static final int maxThreads = 5; … … 173 185 public void addResource(URL location, Version version, DownloadOptions options, UpdatePolicy updatePolicy) { 174 186 if (location == null) 175 throw new IllegalArgumentException("location==null"); 176 187 throw new IllegalResourceDescriptorException("location==null"); 188 try { 189 location = normalizeUrl(location, JNLPRuntime.isDebug()); 190 } catch (Exception ex) { 191 System.err.println("Normalization of " + location.toString() + " have failed"); 192 ex.printStackTrace(); 193 } 177 194 Resource resource = Resource.getResource(location, version, updatePolicy); 178 195 boolean downloaded = false; … … 209 226 * collected. 210 227 * 211 * @throws Illegal ArgumentException if the resource is not being tracked228 * @throws IllegalResourceDescriptorException if the resource is not being tracked 212 229 */ 213 230 public void removeResource(URL location) { … … 315 332 316 333 DownloadEvent event = new DownloadEvent(this, resource); 317 for ( int i = 0; i < l.length; i++) {334 for (DownloadListener dl : l) { 318 335 if (0 != ((ERROR | DOWNLOADED) & status)) 319 l[i].downloadCompleted(event);336 dl.downloadCompleted(event); 320 337 else if (0 != (DOWNLOADING & status)) 321 l[i].downloadStarted(event);338 dl.downloadStarted(event); 322 339 else if (0 != (CONNECTING & status)) 323 l[i].updateStarted(event);340 dl.updateStarted(event); 324 341 } 325 342 } … … 335 352 * @param location the resource location 336 353 * @return the resource, or null if it could not be downloaded 337 * @throws Illegal ArgumentException if the resource is not being tracked354 * @throws IllegalResourceDescriptorException if the resource is not being tracked 338 355 * @see CacheUtil#isCacheable 339 356 */ … … 362 379 * @param location the resource location 363 380 * @return a local file containing the resource, or null 364 * @throws Illegal ArgumentException if the resource is not being tracked381 * @throws IllegalResourceDescriptorException if the resource is not being tracked 365 382 * @see CacheUtil#isCacheable 366 383 */ … … 402 419 * 403 420 * @throws IOException if there was an error opening the stream 404 * @throws Illegal ArgumentException if the resource is not being tracked421 * @throws IllegalResourceDescriptorException if the resource is not being tracked 405 422 */ 406 423 public InputStream getInputStream(URL location) throws IOException { … … 426 443 * @param timeout the time in ms to wait before returning, 0 for no timeout 427 444 * @return whether the resources downloaded before the timeout 428 * @throws Illegal ArgumentException if the resource is not being tracked445 * @throws IllegalResourceDescriptorException if the resource is not being tracked 429 446 */ 430 447 public boolean waitForResources(URL urls[], long timeout) throws InterruptedException { … … 433 450 synchronized (resources) { 434 451 // keep the lock so getResource doesn't have to aquire it each time 435 for (int i = 0; i < urls.length; i++) 452 for (int i = 0; i < urls.length; i++) { 436 453 resources[i] = getResource(urls[i]); 454 } 437 455 } 438 456 … … 451 469 * @return whether the resource downloaded before the timeout 452 470 * @throws InterruptedException if another thread interrupted the wait 453 * @throws Illegal ArgumentException if the resource is not being tracked471 * @throws IllegalResourceDescriptorException if the resource is not being tracked 454 472 */ 455 473 public boolean waitForResource(URL location, long timeout) throws InterruptedException { … … 462 480 * @param location the resource location 463 481 * @return the number of bytes transferred 464 * @throws Illegal ArgumentException if the resource is not being tracked482 * @throws IllegalResourceDescriptorException if the resource is not being tracked 465 483 */ 466 484 public long getAmountRead(URL location) { … … 474 492 * accessed with the getCacheFile method). 475 493 * 476 * @throws Illegal ArgumentException if the resource is not being tracked494 * @throws IllegalResourceDescriptorException if the resource is not being tracked 477 495 */ 478 496 public boolean checkResource(URL location) { … … 488 506 * 489 507 * @return true if the resource is already downloaded (or an error occurred) 490 * @throws Illegal ArgumentException if the resource is not being tracked508 * @throws IllegalResourceDescriptorException if the resource is not being tracked 491 509 */ 492 510 public boolean startResource(URL location) { … … 501 519 * 502 520 * @return true if the resource is already downloaded (or an error occurred) 503 * @throws Illegal ArgumentException if the resource is not being tracked521 * @throws IllegalResourceDescriptorException if the resource is not being tracked 504 522 */ 505 523 private boolean startResource(Resource resource) { … … 533 551 * @param location the resource location 534 552 * @return the number of bytes, or -1 535 * @throws Illegal ArgumentException if the resource is not being tracked553 * @throws IllegalResourceDescriptorException if the resource is not being tracked 536 554 */ 537 555 public long getTotalSize(URL location) { … … 589 607 synchronized (lock) { 590 608 if (!resource.isSet(CONNECT | DOWNLOAD)) 591 throw new Illegal ArgumentException("Invalid resource state (resource: " + resource + ")");609 throw new IllegalResourceDescriptorException("Invalid resource state (resource: " + resource + ")"); 592 610 593 611 queue.add(resource); … … 852 870 } 853 871 URL bestUrl = null; 854 for (int i = 0; i < urls.size(); i++) { 855 URL url = urls.get(i); 872 for (URL url : urls) { 856 873 try { 857 874 URLConnection connection = url.openConnection(); … … 983 1000 int score = Integer.MAX_VALUE; 984 1001 985 for (int i = 0; i < source.size(); i++) { 986 Resource resource = source.get(i); 1002 for (Resource resource : source) { 987 1003 boolean selectable = false; 988 1004 … … 995 1011 int activeCount = 0; 996 1012 997 for ( int j = 0; j < active.size(); j++)998 if ( active.get(j)== resource.getTracker())1013 for (ResourceTracker rt : active) { 1014 if (rt == resource.getTracker()) 999 1015 activeCount++; 1016 } 1000 1017 1001 1018 // try to spread out the downloads so that a slow host … … 1014 1031 * Return the resource matching the specified URL. 1015 1032 * 1016 * @throws Illegal ArgumentException if the resource is not being tracked1033 * @throws IllegalResourceDescriptorException if the resource is not being tracked 1017 1034 */ 1018 1035 private Resource getResource(URL location) { 1019 1036 synchronized (resources) { 1020 for (int i = 0; i < resources.size(); i++) { 1021 Resource resource = resources.get(i); 1022 1037 for (Resource resource : resources) { 1023 1038 if (CacheUtil.urlEquals(resource.location, location)) 1024 1039 return resource; … … 1026 1041 } 1027 1042 1028 throw new Illegal ArgumentException("Location does not specify a resource being tracked.");1043 throw new IllegalResourceDescriptorException("Location does not specify a resource being tracked."); 1029 1044 } 1030 1045 … … 1042 1057 1043 1058 // start them downloading / connecting in background 1044 for (int i = 0; i < resources.length; i++) 1045 startResource(resources[i]); 1059 for (Resource resource : resources) { 1060 startResource(resource); 1061 } 1046 1062 1047 1063 // wait for completion … … 1051 1067 synchronized (lock) { 1052 1068 // check for completion 1053 for ( int i = 0; i < resources.length; i++) {1069 for (Resource resource : resources) { 1054 1070 //NetX Deadlocking may be solved by removing this 1055 1071 //synch block. 1056 synchronized (resource s[i]) {1057 if (!resource s[i].isSet(DOWNLOADED | ERROR)) {1072 synchronized (resource) { 1073 if (!resource.isSet(DOWNLOADED | ERROR)) { 1058 1074 finished = false; 1059 1075 break; … … 1128 1144 }; 1129 1145 1146 private static String normalizeChunk(String base, boolean debug) throws UnsupportedEncodingException { 1147 if (base == null) { 1148 return base; 1149 } 1150 if ("".equals(base)) { 1151 return base; 1152 } 1153 String result = base; 1154 String ssE = URLDecoder.decode(base, UTF8); 1155 // System.out.println("*" + base + "*"); 1156 // System.out.println("-" + ssE + "-"); 1157 if (base.equals(ssE)) { 1158 result = URLEncoder.encode(base, UTF8); 1159 if (debug) { 1160 System.out.println(base + " chunk needs to be encoded => " + result); 1161 } 1162 } else { 1163 if (debug) { 1164 System.out.println(base + " chunk already encoded"); 1165 } 1166 } 1167 return result; 1168 } 1169 1170 public static URL normalizeUrl(URL u, boolean debug) throws MalformedURLException, UnsupportedEncodingException { 1171 if (u == null) { 1172 return null; 1173 } 1174 String protocol = u.getProtocol(); 1175 if (protocol == null || "file".equals(protocol)) { 1176 return u; 1177 } 1178 String file = u.getPath(); 1179 if (file == null) { 1180 return u; 1181 } 1182 String host = u.getHost(); 1183 String ref = u.getRef(); 1184 int port = u.getPort(); 1185 String query = u.getQuery(); 1186 String[] qq = {}; 1187 if (query != null) { 1188 qq = query.split(QUERY_DELIMITER); 1189 } 1190 String[] ss = file.split(PATH_DELIMITER); 1191 int normalized = 0; 1192 if (debug) { 1193 System.out.println("normalizing path " + file + " in " + u.toString()); 1194 } 1195 for (int i = 0; i < ss.length; i++) { 1196 String base = ss[i]; 1197 String r = normalizeChunk(base, debug); 1198 if (!r.equals(ss[i])) { 1199 normalized++; 1200 } 1201 ss[i] = r; 1202 } 1203 if (debug) { 1204 System.out.println("normalizing query " + query + " in " + u.toString()); 1205 } 1206 for (int i = 0; i < qq.length; i++) { 1207 String base = qq[i]; 1208 String r = normalizeChunk(base, debug); 1209 if (!r.equals(qq[i])) { 1210 normalized++; 1211 } 1212 qq[i] = r; 1213 } 1214 if (normalized == 0) { 1215 if (debug) { 1216 System.out.println("Nothing was normalized in this url"); 1217 } 1218 return u; 1219 } else { 1220 if (debug) { 1221 System.out.println(normalized + " chunks normalized, rejoining url"); 1222 } 1223 } 1224 StringBuilder composed = new StringBuilder(""); 1225 for (int i = 0; i < ss.length; i++) { 1226 String string = ss[i]; 1227 if (ss.length <= 1 || (string != null && !"".equals(string))) { 1228 composed.append(PATH_DELIMITER_MARK).append(string); 1229 } 1230 } 1231 String composed1 = composed.toString(); 1232 if (query != null && !query.trim().equals("")) { 1233 composed.append(QUERY_MARK); 1234 for (int i = 0; i < qq.length; i++) { 1235 String string = qq[i]; 1236 if ((string != null && !"".equals(string))) { 1237 composed.append(string); 1238 if (i != qq.length - 1) { 1239 composed.append(QUERY_DELIMITER_MARK); 1240 } 1241 } 1242 } 1243 } 1244 String composed2 = composed.substring(composed1.length() - 1); 1245 if (ref != null && !ref.trim().equals("")) { 1246 composed.append(HREF_MARK).append(ref); 1247 } 1248 1249 URL result = new URL(protocol, host, port, composed.toString()); 1250 1251 if (debug) { 1252 System.out.println("normalized `" + composed1 + "` and `" + composed2 + "` in " + result.toString()); 1253 } 1254 return result; 1255 1256 } 1130 1257 } -
branches/vendor/sourceforge/icedtea-web/current/netx/net/sourceforge/jnlp/controlpanel/AdvancedProxySettingsDialog.java
r348 r416 32 32 import net.sourceforge.jnlp.config.DeploymentConfiguration; 33 33 import net.sourceforge.jnlp.runtime.Translator; 34 import net.sourceforge.jnlp.util.ImageResources; 34 35 35 36 /** … … 55 56 public AdvancedProxySettingsDialog(DeploymentConfiguration config) { 56 57 super((Frame) null, dialogTitle, true); // Don't need a parent. 58 setIconImages(ImageResources.INSTANCE.getApplicationImages()); 59 57 60 this.config = config; 58 61 -
branches/vendor/sourceforge/icedtea-web/current/netx/net/sourceforge/jnlp/controlpanel/CacheViewer.java
r348 r416 31 31 import net.sourceforge.jnlp.config.DeploymentConfiguration; 32 32 import net.sourceforge.jnlp.runtime.Translator; 33 import net.sourceforge.jnlp.util.ImageResources; 33 34 34 35 /** … … 52 53 public CacheViewer(DeploymentConfiguration config) { 53 54 super((Frame) null, dialogTitle, true); // Don't need a parent. 55 setIconImages(ImageResources.INSTANCE.getApplicationImages()); 54 56 this.config = config; 55 57 -
branches/vendor/sourceforge/icedtea-web/current/netx/net/sourceforge/jnlp/controlpanel/ControlPanel.java
r348 r416 56 56 import net.sourceforge.jnlp.security.KeyStores; 57 57 import net.sourceforge.jnlp.security.viewer.CertificatePane; 58 import net.sourceforge.jnlp.util.ImageResources; 58 59 59 60 /** … … 103 104 super(); 104 105 setTitle(Translator.R("CPHead")); 106 setIconImages(ImageResources.INSTANCE.getApplicationImages()); 105 107 106 108 this.config = config; -
branches/vendor/sourceforge/icedtea-web/current/netx/net/sourceforge/jnlp/controlpanel/TemporaryInternetFilesPanel.java
r348 r416 27 27 import java.awt.event.ItemEvent; 28 28 import java.awt.event.ItemListener; 29 import java.io.File; 29 30 30 31 import javax.swing.JButton; … … 34 35 import javax.swing.JFileChooser; 35 36 import javax.swing.JLabel; 37 import javax.swing.JOptionPane; 36 38 import javax.swing.JPanel; 37 39 import javax.swing.JSlider; … … 110 112 JFileChooser fileChooser = new JFileChooser(); 111 113 fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); 114 fileChooser.setFileHidingEnabled(false); 112 115 if (fileChooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) { 116 // Check if we have permission to write to that location. 113 117 String result = fileChooser.getSelectedFile().getAbsolutePath(); 114 location.setText(result); 115 config.setProperty(properties[1], result); 118 File dirLocation = new File(result); 119 boolean canWrite = dirLocation.canWrite(); 120 while (!canWrite && dirLocation != null){ // File does not exist, or no permission. 121 122 if (dirLocation.exists()) { 123 JOptionPane.showMessageDialog(null, "No permission to write to this location."); 124 return; 125 } 126 127 dirLocation = dirLocation.getParentFile(); 128 canWrite = dirLocation.canWrite(); 129 } 130 131 if (canWrite) { 132 location.setText(result); 133 config.setProperty(properties[1], result); 134 } 116 135 } 117 136 } -
branches/vendor/sourceforge/icedtea-web/current/netx/net/sourceforge/jnlp/resources/Messages.properties
r348 r416 81 81 LSignedAppJarUsingUnsignedJar=Signed application using unsigned jars. 82 82 LSignedAppJarUsingUnsignedJarInfo=The main application jar is signed, but some of the jars it is using aren't. 83 83 LSignedJNLPFileDidNotMatch=The signed JNLP file did not match the launching JNLP file. 84 LNoSecInstance=Error: No security instance for {0}. The application may have trouble continuing 85 LCertFoundIn={0} found in cacerts ({1}) 86 84 87 JNotApplet=File is not an applet. 85 88 JNotApplication=File is not an application. … … 104 107 PTwoMains=Duplicate main JAR defined in a resources element (there can be only one) 105 108 PNativeHasMain=Cannot specify main attribute on native JARs. 106 PNoInfoElement=No information section defined 109 PNoInfoElement=No information section defined. 110 PMissingTitle=title 111 PMissingVendor=vendor 112 PMissingElement=The {0} section has not been defined for your locale nor does a default value exist in the JNLP file. 107 113 PTwoDescriptions=Duplicate description of kind {0} 108 114 PSharing=Element "sharing-allowed" is illegal in a standard JNLP file … … 120 126 PUrlNotInCodebase=Relative URL does not specify a subdirectory of the codebase. (node={0}, href={1}, base={2}) 121 127 PBadRelativeUrl=Invalid relative URL (node={0}, href={1}, base={2}) 122 PBadNonrelativeUrl=Invalid non-relative URL (node={0}, href={ 0}).128 PBadNonrelativeUrl=Invalid non-relative URL (node={0}, href={1}) 123 129 PNeedsAttribute=The {0} element must specify a {1} attribute. 124 130 PBadXML=Invalid XML document syntax. … … 190 196 CChooseCacheDir=Cache directory 191 197 CCannotClearCache=Can not clear cache at this time 198 CFakeCache=Cache is corrupt. Fixing. 199 CFakedCache=Cache is corrupt and has been fixed. It is strongly recommended that you run 'javaws -Xclearcache' and rerun your application as soon as possible. 192 200 193 201 # Security … … 199 207 SSignatureError=The application's digital signature has an error. Do you want to run the application? 200 208 SUntrustedSource=The digital signature could not be verified by a trusted source. Only run if you trust the origin of the application. 209 SWarnFullPermissionsIgnorePolicy=The code executed will be given full permissions, ignoring any java policies you may have. 201 210 STrustedSource=The digital signature has been validated by a trusted source. 202 211 SClipboardReadAccess=The application has requested read-only access to the system clipboard. Do you want to allow this action? … … 205 214 SNetworkAccess=The application has requested permission to establish connections to {0}. Do you want to allow this action? 206 215 SNoAssociatedCertificate=<no associated certificate> 216 SUnverified=(unverified) 207 217 SAlwaysTrustPublisher=Always trust content from this publisher 208 SHttpsUnverified=The website's certificate cannot be verified.218 SHttpsUnverified=The website's HTTPS certificate cannot be verified. 209 219 SNotAllSignedSummary=Only parts of this application code are signed. 210 220 SNotAllSignedDetail=This application contains both signed and unsigned code. While signed code is safe if you trust the provider, unsigned code may imply code outside of the trusted provider's control. 211 221 SNotAllSignedQuestion=Do you wish to proceed and run this application anyway? 212 222 SAuthenticationPrompt=The {0} server at {1} is requesting authentication. It says "{2}" 223 SJNLPFileIsNotSigned=This application contains a digital signature in which the launching JNLP file is not signed. 213 224 214 225 # Security - used for the More Information dialog … … 241 252 CVDetails=Details 242 253 CVExport=Export 254 CVExportPasswordMessage=Enter password to protect key file: 243 255 CVImport=Import 256 CVImportPasswordMessage=Enter password to access file: 244 257 CVIssuedBy=Issued By 245 258 CVIssuedTo=Issued To 259 CVPasswordTitle=Authentication Required 246 260 CVRemove=Remove 247 261 CVRemoveConfirmMessage=Are you sure you want to remove the selected certificate? -
branches/vendor/sourceforge/icedtea-web/current/netx/net/sourceforge/jnlp/runtime/AppletEnvironment.java
r348 r416 117 117 118 118 List<AppletAudioClip> clips = weakClips.hardList(); 119 for ( int i = 0; i < clips.size(); i++) {120 clip s.get(i).dispose();119 for (AppletAudioClip clip : clips) { 120 clip.dispose(); 121 121 } 122 122 } … … 208 208 209 209 /** 210 * Set the applet of this environment; can only be called once. 211 */ 212 public void setApplet(Applet applet) { 213 if (this.applet != null) { 214 if (JNLPRuntime.isDebug()) { 215 Exception ex = new IllegalStateException("Applet can only be set once."); 216 ex.printStackTrace(); 217 } 218 return; 219 } 220 this.applet = applet; 221 } 222 223 /** 210 224 * Returns an enumeration that contains only the applet 211 225 * from the JNLP file. -
branches/vendor/sourceforge/icedtea-web/current/netx/net/sourceforge/jnlp/runtime/AppletInstance.java
r348 r416 50 50 51 51 this.environment = new AppletEnvironment(file, this); 52 } 53 54 /** 55 * Set the applet of this launched application; can only be called once. 56 */ 57 public void setApplet(Applet applet) { 58 if (this.applet != null) { 59 if (JNLPRuntime.isDebug()) { 60 Exception ex = new IllegalStateException("Applet can only be set once."); 61 ex.printStackTrace(); 62 } 63 return; 64 } 65 this.applet = applet; 52 66 } 53 67 -
branches/vendor/sourceforge/icedtea-web/current/netx/net/sourceforge/jnlp/runtime/ApplicationInstance.java
r348 r416 232 232 PrivilegedAction<Object> installProps = new PrivilegedAction<Object>() { 233 233 public Object run() { 234 for ( int i = 0; i < props.length; i++) {235 System.setProperty(prop s[i].getKey(), props[i].getValue());234 for (PropertyDesc propDesc : props) { 235 System.setProperty(propDesc.getKey(), propDesc.getValue()); 236 236 } 237 237 … … 273 273 try { 274 274 // destroy resources 275 for (int i = 0; i < weakWindows.size(); i++) { 276 Window w = weakWindows.get(i); 275 for (Window w : weakWindows) { 277 276 if (w != null) 278 277 w.dispose(); -
branches/vendor/sourceforge/icedtea-web/current/netx/net/sourceforge/jnlp/runtime/Boot.java
r348 r416 157 157 JNLPRuntime.setForksAllowed(false); 158 158 } 159 if (null != getOption("-Xtrustall")) { 160 JNLPRuntime.setTrustAll(true); 161 } 159 162 160 163 JNLPRuntime.setInitialArgments(Arrays.asList(argsIn)); -
branches/vendor/sourceforge/icedtea-web/current/netx/net/sourceforge/jnlp/runtime/CachedJarFileCallback.java
r348 r416 95 95 if (UrlUtils.isLocalFile(localUrl)) { 96 96 // if it is known to us, just return the cached file 97 return new JarFile(localUrl.getPath()); 97 JarFile returnFile = new JarFile(localUrl.getPath()); 98 99 try { 100 101 // Blank out the class-path because: 102 // 1) Web Start does not support it 103 // 2) For the plug-in, we want to cache files from class-path so we do it manually 104 returnFile.getManifest().getMainAttributes().putValue("Class-Path", ""); 105 106 if (JNLPRuntime.isDebug()) { 107 System.err.println("Class-Path attribute cleared for " + returnFile.getName()); 108 } 109 110 } catch (NullPointerException npe) { 111 // Discard NPE here. Maybe there was no manifest, maybe there were no attributes, etc. 112 } 113 114 return returnFile; 98 115 } else { 99 116 // throw new IllegalStateException("a non-local file in cache"); -
branches/vendor/sourceforge/icedtea-web/current/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java
r348 r416 18 18 import static net.sourceforge.jnlp.runtime.Translator.R; 19 19 20 import java.io.Closeable; 20 21 import java.io.File; 21 22 import java.io.FileOutputStream; 23 import java.io.FileReader; 22 24 import java.io.IOException; 23 25 import java.io.InputStream; 26 import java.io.InputStreamReader; 24 27 import java.net.MalformedURLException; 28 import java.net.SocketPermission; 25 29 import java.net.URL; 26 30 import java.net.URLClassLoader; 27 31 import java.security.AccessControlContext; 32 import java.security.AccessControlException; 28 33 import java.security.AccessController; 29 34 import java.security.AllPermission; … … 33 38 import java.security.Permissions; 34 39 import java.security.PrivilegedAction; 40 import java.security.PrivilegedActionException; 41 import java.security.PrivilegedExceptionAction; 42 import java.security.ProtectionDomain; 35 43 import java.util.ArrayList; 44 import java.util.Arrays; 45 import java.util.Collection; 36 46 import java.util.Collections; 37 47 import java.util.Enumeration; 38 48 import java.util.HashMap; 39 49 import java.util.HashSet; 50 import java.util.Iterator; 40 51 import java.util.LinkedList; 41 52 import java.util.List; … … 44 55 import java.util.TreeSet; 45 56 import java.util.Vector; 57 import java.util.concurrent.ConcurrentHashMap; 46 58 import java.util.jar.JarEntry; 47 59 import java.util.jar.JarFile; 48 60 import java.util.jar.Manifest; 49 61 62 import net.sourceforge.jnlp.AppletDesc; 63 import net.sourceforge.jnlp.ApplicationDesc; 50 64 import net.sourceforge.jnlp.DownloadOptions; 51 65 import net.sourceforge.jnlp.ExtensionDesc; 52 66 import net.sourceforge.jnlp.JARDesc; 53 67 import net.sourceforge.jnlp.JNLPFile; 68 import net.sourceforge.jnlp.JNLPMatcher; 69 import net.sourceforge.jnlp.JNLPMatcherException; 70 import net.sourceforge.jnlp.LaunchDesc; 54 71 import net.sourceforge.jnlp.LaunchException; 55 72 import net.sourceforge.jnlp.ParseException; … … 59 76 import net.sourceforge.jnlp.Version; 60 77 import net.sourceforge.jnlp.cache.CacheUtil; 78 import net.sourceforge.jnlp.cache.IllegalResourceDescriptorException; 61 79 import net.sourceforge.jnlp.cache.ResourceTracker; 62 80 import net.sourceforge.jnlp.cache.UpdatePolicy; 63 81 import net.sourceforge.jnlp.security.SecurityDialogs; 64 82 import net.sourceforge.jnlp.security.SecurityDialogs.AccessType; 65 import net.sourceforge.jnlp.tools.Jar Signer;83 import net.sourceforge.jnlp.tools.JarCertVerifier; 66 84 import net.sourceforge.jnlp.util.FileUtils; 67 85 import sun.misc.JarIndex; … … 82 100 // resources in an extension. 83 101 102 /** Signed JNLP File and Template */ 103 final public static String TEMPLATE = "JNLP-INF/APPLICATION_TEMPLATE.JNLP"; 104 final public static String APPLICATION = "JNLP-INF/APPLICATION.JNLP"; 105 106 /** True if the application has a signed JNLP File */ 107 private boolean isSignedJNLP = false; 108 84 109 /** map from JNLPFile url to shared classloader */ 85 110 private static Map<String, JNLPClassLoader> urlToLoader = … … 134 159 private ArrayList<String> unverifiedJars = null; 135 160 136 /** the jar signer tool to verify our jars */137 private Jar Signer js= null;161 /** the jar cert verifier tool to verify our jars */ 162 private JarCertVerifier jcv = null; 138 163 139 164 private boolean signing = false; … … 151 176 private HashMap<URL, SecurityDesc> jarLocationSecurityMap = 152 177 new HashMap<URL, SecurityDesc>(); 178 179 /*Set to prevent once tried-to-get resources to be tried again*/ 180 private Set<URL> alreadyTried = Collections.synchronizedSet(new HashSet<URL>()); 153 181 154 182 /** Loader for codebase (which is a path, rather than a file) */ 155 183 private CodeBaseClassLoader codeBaseLoader; 184 185 /** True if the jar with the main class has been found 186 * */ 187 private boolean foundMainJar= false; 188 189 /** Name of the application's main class */ 190 private String mainClass = null; 191 192 /** 193 * Variable to track how many times this loader is in use 194 */ 195 private int useCount = 0; 156 196 157 197 /** … … 161 201 */ 162 202 protected JNLPClassLoader(JNLPFile file, UpdatePolicy policy) throws LaunchException { 203 this(file,policy,null); 204 } 205 206 /** 207 * Create a new JNLPClassLoader from the specified file. 208 * 209 * @param file the JNLP file 210 * @param name of the application's main class 211 */ 212 protected JNLPClassLoader(JNLPFile file, UpdatePolicy policy, String mainName) throws LaunchException { 163 213 super(new URL[0], JNLPClassLoader.class.getClassLoader()); 164 214 … … 169 219 this.updatePolicy = policy; 170 220 this.resources = file.getResources(); 221 222 this.mainClass = mainName; 171 223 172 224 // initialize extensions … … 276 328 */ 277 329 public static JNLPClassLoader getInstance(JNLPFile file, UpdatePolicy policy) throws LaunchException { 330 return getInstance(file, policy, null); 331 } 332 333 /** 334 * Returns a JNLP classloader for the specified JNLP file. 335 * 336 * @param file the file to load classes for 337 * @param policy the update policy to use when downloading resources 338 * @param mainName Overrides the main class name of the application 339 */ 340 public static JNLPClassLoader getInstance(JNLPFile file, UpdatePolicy policy, String mainName) throws LaunchException { 278 341 JNLPClassLoader baseLoader = null; 279 342 JNLPClassLoader loader = null; … … 292 355 !baseLoader.getJNLPFile().getFileLocation().equals(file.getFileLocation()))) { 293 356 294 loader = new JNLPClassLoader(file, policy );357 loader = new JNLPClassLoader(file, policy, mainName); 295 358 296 359 // New loader init may have caused extentions to create a … … 304 367 305 368 loader.merge(extLoader); 369 extLoader.decrementLoaderUseCount(); // loader urls have been merged, ext loader is no longer used 306 370 } 307 371 … … 309 373 // the baseLoader 310 374 if (baseLoader != null && baseLoader != loader) { 311 375 loader.merge(baseLoader); 312 376 } 313 377 … … 316 380 if (!file.isApplication()) { 317 381 // If this is an applet, we do need to consider its loader 318 loader = new JNLPClassLoader(file, policy);382 loader = new JNLPClassLoader(file, policy, mainName); 319 383 320 384 if (baseLoader != null) … … 330 394 // loaders are mapped to a unique key. Only extensions and parent 331 395 // share a key, so it is safe to always share based on it 332 urlToLoader.put(uniqueKey, loader); 396 397 loader.incrementLoaderUseCount(); 398 synchronized(urlToLoader) { 399 urlToLoader.put(uniqueKey, loader); 400 } 333 401 334 402 return loader; … … 342 410 * @param version the file's version 343 411 * @param policy the update policy to use when downloading resources 344 */ 345 public static JNLPClassLoader getInstance(URL location, String uniqueKey, Version version, UpdatePolicy policy) 412 * @param mainName Overrides the main class name of the application 413 */ 414 public static JNLPClassLoader getInstance(URL location, String uniqueKey, Version version, UpdatePolicy policy, String mainName) 346 415 throws IOException, ParseException, LaunchException { 347 416 JNLPClassLoader loader = urlToLoader.get(uniqueKey); 348 417 349 if (loader == null || !location.equals(loader.getJNLPFile().getFileLocation())) 350 loader = getInstance(new JNLPFile(location, uniqueKey, version, false, policy), policy); 418 if (loader == null || !location.equals(loader.getJNLPFile().getFileLocation())) { 419 JNLPFile jnlpFile = new JNLPFile(location, uniqueKey, version, false, policy); 420 421 loader = getInstance(jnlpFile, policy, mainName); 422 } 351 423 352 424 return loader; … … 362 434 363 435 loaderList.add(this); 436 437 if (mainClass == null) { 438 Object obj = file.getLaunchInfo(); 439 440 if (obj instanceof ApplicationDesc) { 441 ApplicationDesc ad = (ApplicationDesc) file.getLaunchInfo(); 442 mainClass = ad.getMainClass(); 443 } else if (obj instanceof AppletDesc) { 444 AppletDesc ad = (AppletDesc) file.getLaunchInfo(); 445 mainClass = ad.getMainClass(); 446 } 447 } 364 448 365 449 //if (ext != null) { … … 367 451 try { 368 452 String uniqueKey = this.getJNLPFile().getUniqueKey(); 369 JNLPClassLoader loader = getInstance(ext[i].getLocation(), uniqueKey, ext[i].getVersion(), updatePolicy );453 JNLPClassLoader loader = getInstance(ext[i].getLocation(), uniqueKey, ext[i].getVersion(), updatePolicy, mainClass); 370 454 loaderList.add(loader); 371 455 } catch (Exception ex) { … … 401 485 402 486 /** 487 * Check if a described jar file is invalid 488 * @param jar the jar to check 489 * @return true if file exists AND is an invalid jar, false otherwise 490 */ 491 private boolean isInvalidJar(JARDesc jar){ 492 File cacheFile = tracker.getCacheFile(jar.getLocation()); 493 if (cacheFile == null) 494 return false;//File cannot be retrieved, do not claim it is an invalid jar 495 boolean isInvalid = false; 496 try { 497 JarFile jarFile = new JarFile(cacheFile.getAbsolutePath()); 498 jarFile.close(); 499 } catch (IOException ioe){ 500 //Catch a ZipException or any other read failure 501 isInvalid = true; 502 } 503 return isInvalid; 504 } 505 506 /** 507 * Determine how invalid jars should be handled 508 * @return whether to filter invalid jars, or error later on 509 */ 510 private boolean shouldFilterInvalidJars(){ 511 if (file instanceof PluginBridge){ 512 PluginBridge pluginBridge = (PluginBridge)file; 513 /*Ignore on applet, ie !useJNLPHref*/ 514 return !pluginBridge.useJNLPHref(); 515 } 516 return false;//Error is default behaviour 517 } 518 519 /** 403 520 * Load all of the JARs used in this JNLP file into the 404 521 * ResourceTracker for downloading. 405 522 */ 406 523 void initializeResources() throws LaunchException { 524 if (file instanceof PluginBridge){ 525 PluginBridge bridge = (PluginBridge)file; 526 527 for (String codeBaseFolder : bridge.getCodeBaseFolders()){ 528 try { 529 addToCodeBaseLoader(new URL(file.getCodeBase(), codeBaseFolder)); 530 } catch (MalformedURLException mfe) { 531 System.err.println("Problem trying to add folder to code base:"); 532 System.err.println(mfe.getMessage()); 533 } 534 } 535 } 536 407 537 JARDesc jars[] = resources.getJARs(); 408 if (jars == null || jars.length == 0) 538 539 if (jars == null || jars.length == 0) { 540 541 boolean allSigned = true; 542 for (int i = 1; i < loaders.length; i++) { 543 if (!loaders[i].getSigning()) { 544 allSigned = false; 545 break; 546 } 547 } 548 549 if(allSigned) 550 signing = true; 551 552 //Check if main jar is found within extensions 553 foundMainJar = foundMainJar || hasMainInExtensions(); 554 409 555 return; 556 } 410 557 /* 411 558 if (jars == null || jars.length == 0) { … … 429 576 ); 430 577 } 578 579 //If there are no eager jars, initialize the first jar 580 if(initialJars.size() == 0) 581 initialJars.add(jars[0]); 431 582 432 583 if (strict) 433 584 fillInPartJars(initialJars); // add in each initial part's lazy jars 434 585 586 waitForJars(initialJars); //download the jars first. 587 588 //A ZipException will propagate later on if the jar is invalid and not checked here 589 if (shouldFilterInvalidJars()){ 590 //We filter any invalid jars 591 Iterator<JARDesc> iterator = initialJars.iterator(); 592 while (iterator.hasNext()){ 593 JARDesc jar = iterator.next(); 594 if (isInvalidJar(jar)) { 595 //Remove this jar as an available jar 596 iterator.remove(); 597 tracker.removeResource(jar.getLocation()); 598 available.remove(jar); 599 } 600 } 601 } 602 435 603 if (JNLPRuntime.isVerifying()) { 436 604 437 JarSigner js; 438 waitForJars(initialJars); //download the jars first. 605 JarCertVerifier jcv; 439 606 440 607 try { 441 j s= verifyJars(initialJars);608 jcv = verifyJars(initialJars); 442 609 } catch (Exception e) { 443 //we caught an Exception from the Jar Signer class.610 //we caught an Exception from the JarCertVerifier class. 444 611 //Note: one of these exceptions could be from not being able 445 612 //to read the cacerts or trusted.certs files. … … 450 617 451 618 //Case when at least one jar has some signing 452 if (j s.anyJarsSigned() && js.isFullySignedByASingleCert()) {619 if (jcv.anyJarsSigned() && jcv.isFullySignedByASingleCert()) { 453 620 signing = true; 454 621 455 if (!j s.allJarsSigned() &&622 if (!jcv.allJarsSigned() && 456 623 !SecurityDialogs.showNotAllSignedWarningDialog(file)) 457 624 throw new LaunchException(file, null, R("LSFatal"), R("LCClient"), R("LSignedAppJarUsingUnsignedJar"), R("LSignedAppJarUsingUnsignedJarInfo")); 458 625 626 627 // Check for main class in the downloaded jars, and check/verify signed JNLP fill 628 checkForMain(initialJars); 629 630 // If jar with main class was not found, check available resources 631 while (!foundMainJar && available != null && available.size() != 0) 632 addNextResource(); 633 634 // If the jar with main class was not found, check extension 635 // jnlp's resources 636 foundMainJar = foundMainJar || hasMainInExtensions(); 637 638 // If jar with main class was not found and there are no more 639 // available jars, throw a LaunchException 640 if (file.getLaunchInfo() != null) { 641 if (!foundMainJar 642 && (available == null || available.size() == 0)) 643 throw new LaunchException(file, null, R("LSFatal"), 644 R("LCClient"), R("LCantDetermineMainClass"), 645 R("LCantDetermineMainClassInfo")); 646 } 647 648 // If main jar was found, but a signed JNLP file was not located 649 if (!isSignedJNLP && foundMainJar) 650 file.setSignedJNLPAsMissing(); 651 459 652 //user does not trust this publisher 460 if (!j s.getAlreadyTrustPublisher()) {461 checkTrustWithUser(j s);653 if (!jcv.getAlreadyTrustPublisher()) { 654 checkTrustWithUser(jcv); 462 655 } else { 463 656 /** … … 476 669 for (JARDesc jarDesc : file.getResources().getJARs()) { 477 670 try { 478 File cachedFile = tracker.getCacheFile(jarDesc.getLocation()); 671 672 File cachedFile; 673 674 try { 675 cachedFile = tracker.getCacheFile(jarDesc.getLocation()); 676 } catch (IllegalResourceDescriptorException irde){ 677 //Caused by ignored resource being removed due to not being valid 678 System.err.println("JAR " + jarDesc.getLocation() + " is not a valid jar file. Continuing."); 679 continue; 680 } 479 681 480 682 if (cachedFile == null) { … … 515 717 } 516 718 } 517 518 719 activateJars(initialJars); 519 720 } 520 521 private void checkTrustWithUser(JarSigner js) throws LaunchException { 522 if (!js.getRootInCacerts()) { //root cert is not in cacerts 721 722 /*** 723 * Checks for the jar that contains the main class. If the main class was 724 * found, it checks to see if the jar is signed and whether it contains a 725 * signed JNLP file 726 * 727 * @param jars Jars that are checked to see if they contain the main class 728 * @throws LaunchException Thrown if the signed JNLP file, within the main jar, fails to be verified or does not match 729 */ 730 private void checkForMain(List<JARDesc> jars) throws LaunchException { 731 732 // Check launch info 733 if (mainClass == null) { 734 LaunchDesc launchDesc = file.getLaunchInfo(); 735 if (launchDesc == null) { 736 return; 737 } 738 739 mainClass = launchDesc.getMainClass(); 740 } 741 742 // The main class may be specified in the manifest 743 744 // Check main jar 745 if (mainClass == null) { 746 JARDesc mainJarDesc = file.getResources().getMainJAR(); 747 mainClass = getMainClassName(mainJarDesc.getLocation()); 748 } 749 750 // Check first jar 751 if (mainClass == null) { 752 JARDesc firstJarDesc = jars.get(0); 753 mainClass = getMainClassName(firstJarDesc.getLocation()); 754 } 755 756 // Still not found? Iterate and set if only 1 was found 757 if (mainClass == null) { 758 759 for (JARDesc jarDesc: jars) { 760 String mainClassInThisJar = getMainClassName(jarDesc.getLocation()); 761 762 if (mainClassInThisJar != null) { 763 764 if (mainClass == null) { // first main class 765 mainClass = mainClassInThisJar; 766 } else { // There is more than one main class. Set to null and break. 767 mainClass = null; 768 break; 769 } 770 } 771 } 772 } 773 774 String desiredJarEntryName = mainClass + ".class"; 775 776 for (int i = 0; i < jars.size(); i++) { 777 778 try { 779 File localFile = tracker 780 .getCacheFile(jars.get(i).getLocation()); 781 782 if (localFile == null) { 783 System.err.println("JAR " + jars.get(i).getLocation() + " not found. Continuing."); 784 continue; // JAR not found. Keep going. 785 } 786 787 JarFile jarFile = new JarFile(localFile); 788 Enumeration<JarEntry> entries = jarFile.entries(); 789 JarEntry je; 790 791 while (entries.hasMoreElements()) { 792 je = entries.nextElement(); 793 String jeName = je.getName().replaceAll("/", "."); 794 if (jeName.equals(desiredJarEntryName)) { 795 foundMainJar = true; 796 verifySignedJNLP(jars.get(i), jarFile); 797 break; 798 } 799 } 800 } catch (IOException e) { 801 /* 802 * After this exception is caught, it is escaped. This will skip 803 * the jarFile that may have thrown this exception and move on 804 * to the next jarFile (if there are any) 805 */ 806 } 807 } 808 } 809 810 /** 811 * Gets the name of the main method if specified in the manifest 812 * 813 * @param location The JAR location 814 * @return the main class name, null if there isn't one of if there was an error 815 */ 816 private String getMainClassName(URL location) { 817 818 String mainClass = null; 819 File f = tracker.getCacheFile(location); 820 821 if( f != null) { 822 try { 823 JarFile mainJar = new JarFile(f); 824 mainClass = mainJar.getManifest(). 825 getMainAttributes().getValue("Main-Class"); 826 } catch (IOException ioe) { 827 mainClass = null; 828 } 829 } 830 831 return mainClass; 832 } 833 834 /** 835 * Returns true if this loader has the main jar 836 */ 837 public boolean hasMainJar() { 838 return this.foundMainJar; 839 } 840 841 /** 842 * Returns true if extension loaders have the main jar 843 */ 844 private boolean hasMainInExtensions() { 845 boolean foundMain = false; 846 847 for (int i = 1; i < loaders.length && !foundMain; i++) { 848 foundMain = loaders[i].hasMainJar(); 849 } 850 851 return foundMain; 852 } 853 854 /** 855 * Is called by checkForMain() to check if the jar file is signed and if it 856 * contains a signed JNLP file. 857 * 858 * @param jarDesc JARDesc of jar 859 * @param jarFile the jar file 860 * @throws LaunchException thrown if the signed JNLP file, within the main jar, fails to be verified or does not match 861 */ 862 private void verifySignedJNLP(JARDesc jarDesc, JarFile jarFile) 863 throws LaunchException { 864 865 JarCertVerifier signer = new JarCertVerifier(); 866 List<JARDesc> desc = new ArrayList<JARDesc>(); 867 desc.add(jarDesc); 868 869 // Initialize streams 870 InputStream inStream = null; 871 InputStreamReader inputReader = null; 872 FileReader fr = null; 873 InputStreamReader jnlpReader = null; 874 875 try { 876 signer.verifyJars(desc, tracker); 877 878 if (signer.allJarsSigned()) { // If the jar is signed 879 880 Enumeration<JarEntry> entries = jarFile.entries(); 881 JarEntry je; 882 883 while (entries.hasMoreElements()) { 884 je = entries.nextElement(); 885 String jeName = je.getName().toUpperCase(); 886 887 if (jeName.equals(TEMPLATE) || jeName.equals(APPLICATION)) { 888 889 if (JNLPRuntime.isDebug()) 890 System.err.println("Creating Jar InputStream from JarEntry"); 891 892 inStream = jarFile.getInputStream(je); 893 inputReader = new InputStreamReader(inStream); 894 895 if (JNLPRuntime.isDebug()) 896 System.err.println("Creating File InputStream from lauching JNLP file"); 897 898 JNLPFile jnlp = this.getJNLPFile(); 899 URL url = jnlp.getFileLocation(); 900 File jn = null; 901 902 // If the file is on the local file system, use original path, otherwise find cached file 903 if (url.getProtocol().toLowerCase().equals("file")) 904 jn = new File(url.getPath()); 905 else 906 jn = CacheUtil.getCacheFile(url, null); 907 908 fr = new FileReader(jn); 909 jnlpReader = fr; 910 911 // Initialize JNLPMatcher class 912 JNLPMatcher matcher; 913 914 if (jeName.equals(APPLICATION)) { // If signed application was found 915 if (JNLPRuntime.isDebug()) 916 System.err.println("APPLICATION.JNLP has been located within signed JAR. Starting verfication..."); 917 918 matcher = new JNLPMatcher(inputReader, jnlpReader, false); 919 } else { // Otherwise template was found 920 if (JNLPRuntime.isDebug()) 921 System.err.println("APPLICATION_TEMPLATE.JNLP has been located within signed JAR. Starting verfication..."); 922 923 matcher = new JNLPMatcher(inputReader, jnlpReader, 924 true); 925 } 926 927 // If signed JNLP file does not matches launching JNLP file, throw JNLPMatcherException 928 if (!matcher.isMatch()) 929 throw new JNLPMatcherException("Signed Application did not match launching JNLP File"); 930 931 this.isSignedJNLP = true; 932 if (JNLPRuntime.isDebug()) 933 System.err.println("Signed Application Verification Successful"); 934 935 break; 936 } 937 } 938 } 939 } catch (JNLPMatcherException e) { 940 941 /* 942 * Throws LaunchException if signed JNLP file fails to be verified 943 * or fails to match the launching JNLP file 944 */ 945 946 throw new LaunchException(file, null, R("LSFatal"), R("LCClient"), 947 R("LSignedJNLPFileDidNotMatch"), R(e.getMessage())); 948 949 /* 950 * Throwing this exception will fail to initialize the application 951 * resulting in the termination of the application 952 */ 953 954 } catch (Exception e) { 955 956 if (JNLPRuntime.isDebug()) 957 e.printStackTrace(System.err); 958 959 /* 960 * After this exception is caught, it is escaped. If an exception is 961 * thrown while handling the jar file, (mainly for 962 * JarCertVerifier.verifyJars) it assumes the jar file is unsigned and 963 * skip the check for a signed JNLP file 964 */ 965 966 } finally { 967 968 //Close all streams 969 closeStream(inStream); 970 closeStream(inputReader); 971 closeStream(fr); 972 closeStream(jnlpReader); 973 } 974 975 if (JNLPRuntime.isDebug()) 976 System.err.println("Ending check for signed JNLP file..."); 977 } 978 979 /*** 980 * Closes a stream 981 * 982 * @param stream the stream that will be closed 983 */ 984 private void closeStream (Closeable stream) { 985 if (stream != null) 986 try { 987 stream.close(); 988 } catch (Exception e) { 989 e.printStackTrace(System.err); 990 } 991 } 992 993 private void checkTrustWithUser(JarCertVerifier jcv) throws LaunchException { 994 if (JNLPRuntime.isTrustAll()){ 995 return; 996 } 997 if (!jcv.getRootInCacerts()) { //root cert is not in cacerts 523 998 boolean b = SecurityDialogs.showCertWarningDialog( 524 AccessType.UNVERIFIED, file, j s);999 AccessType.UNVERIFIED, file, jcv); 525 1000 if (!b) 526 1001 throw new LaunchException(null, null, R("LSFatal"), 527 1002 R("LCLaunching"), R("LNotVerified"), ""); 528 } else if (j s.getRootInCacerts()) { //root cert is in cacerts1003 } else if (jcv.getRootInCacerts()) { //root cert is in cacerts 529 1004 boolean b = false; 530 if (j s.noSigningIssues())1005 if (jcv.noSigningIssues()) 531 1006 b = SecurityDialogs.showCertWarningDialog( 532 AccessType.VERIFIED, file, j s);533 else if (!j s.noSigningIssues())1007 AccessType.VERIFIED, file, jcv); 1008 else if (!jcv.noSigningIssues()) 534 1009 b = SecurityDialogs.showCertWarningDialog( 535 AccessType.SIGNING_ERROR, file, j s);1010 AccessType.SIGNING_ERROR, file, jcv); 536 1011 if (!b) 537 1012 throw new LaunchException(null, null, R("LSFatal"), … … 583 1058 */ 584 1059 protected PermissionCollection getPermissions(CodeSource cs) { 585 Permissions result = new Permissions(); 586 587 // should check for extensions or boot, automatically give all 588 // access w/o security dialog once we actually check certificates. 589 590 // copy security permissions from SecurityDesc element 591 if (security != null) { 592 // Security desc. is used only to track security settings for the 593 // application. However, an application may comprise of multiple 594 // jars, and as such, security must be evaluated on a per jar basis. 595 596 // set default perms 597 PermissionCollection permissions = security.getSandBoxPermissions(); 598 599 // If more than default is needed: 600 // 1. Code must be signed 601 // 2. ALL or J2EE permissions must be requested (note: plugin requests ALL automatically) 602 if (cs.getCodeSigners() != null && 603 (getCodeSourceSecurity(cs.getLocation()).getSecurityType().equals(SecurityDesc.ALL_PERMISSIONS) || 604 getCodeSourceSecurity(cs.getLocation()).getSecurityType().equals(SecurityDesc.J2EE_PERMISSIONS))) { 605 606 permissions = getCodeSourceSecurity(cs.getLocation()).getPermissions(cs); 607 } 608 609 Enumeration<Permission> e = permissions.elements(); 610 while (e.hasMoreElements()) 611 result.add(e.nextElement()); 612 } 613 614 // add in permission to read the cached JAR files 615 for (int i = 0; i < resourcePermissions.size(); i++) 616 result.add(resourcePermissions.get(i)); 617 618 // add in the permissions that the user granted. 619 for (int i = 0; i < runtimePermissions.size(); i++) 620 result.add(runtimePermissions.get(i)); 621 622 return result; 1060 try { 1061 Permissions result = new Permissions(); 1062 1063 // should check for extensions or boot, automatically give all 1064 // access w/o security dialog once we actually check certificates. 1065 1066 // copy security permissions from SecurityDesc element 1067 if (security != null) { 1068 // Security desc. is used only to track security settings for the 1069 // application. However, an application may comprise of multiple 1070 // jars, and as such, security must be evaluated on a per jar basis. 1071 1072 // set default perms 1073 PermissionCollection permissions = security.getSandBoxPermissions(); 1074 1075 // If more than default is needed: 1076 // 1. Code must be signed 1077 // 2. ALL or J2EE permissions must be requested (note: plugin requests ALL automatically) 1078 if (cs == null) { 1079 throw new NullPointerException("Code source was null"); 1080 } 1081 if (cs.getCodeSigners() != null) { 1082 if (cs.getLocation() == null) { 1083 throw new NullPointerException("Code source location was null"); 1084 } 1085 if (getCodeSourceSecurity(cs.getLocation()) == null) { 1086 throw new NullPointerException("Code source security was null"); 1087 } 1088 if (getCodeSourceSecurity(cs.getLocation()).getSecurityType() == null) { 1089 if (JNLPRuntime.isDebug()){ 1090 new NullPointerException("Warning! Code source security type was null").printStackTrace(); 1091 } 1092 } 1093 Object securityType = getCodeSourceSecurity(cs.getLocation()).getSecurityType(); 1094 if (SecurityDesc.ALL_PERMISSIONS.equals(securityType) 1095 || SecurityDesc.J2EE_PERMISSIONS.equals(securityType)) { 1096 1097 permissions = getCodeSourceSecurity(cs.getLocation()).getPermissions(cs); 1098 } 1099 } 1100 1101 Enumeration<Permission> e = permissions.elements(); 1102 while (e.hasMoreElements()) { 1103 result.add(e.nextElement()); 1104 } 1105 } 1106 1107 // add in permission to read the cached JAR files 1108 for (int i = 0; i < resourcePermissions.size(); i++) { 1109 result.add(resourcePermissions.get(i)); 1110 } 1111 1112 // add in the permissions that the user granted. 1113 for (int i = 0; i < runtimePermissions.size(); i++) { 1114 result.add(runtimePermissions.get(i)); 1115 } 1116 1117 // Class from host X should be allowed to connect to host X 1118 if (cs.getLocation().getHost().length() > 0) 1119 result.add(new SocketPermission(cs.getLocation().getHost(), 1120 "connect, accept")); 1121 1122 return result; 1123 } catch (RuntimeException ex) { 1124 if (JNLPRuntime.isDebug()) { 1125 ex.printStackTrace(); 1126 } 1127 throw ex; 1128 } 623 1129 } 624 1130 … … 719 1225 } 720 1226 721 Jar Signer signer = new JarSigner();1227 JarCertVerifier signer = new JarCertVerifier(); 722 1228 List<JARDesc> jars = new ArrayList<JARDesc>(); 723 1229 JARDesc jarDesc = new JARDesc(new File(extractedJarLocation).toURL(), null, null, false, false, false, false); … … 780 1286 JarFile jarFile = new JarFile(localFile.getAbsolutePath()); 781 1287 Manifest mf = jarFile.getManifest(); 782 classpaths.addAll(getClassPathsFromManifest(mf, jar.getLocation().getPath())); 1288 1289 // Only check classpath if this is the plugin and there is no jnlp_href usage. 1290 // Note that this is different from proprietary plugin behaviour. 1291 // If jnlp_href is used, the app should be treated similarly to when 1292 // it is run from javaws as a webstart. 1293 if (file instanceof PluginBridge && !((PluginBridge) file).useJNLPHref()) { 1294 classpaths.addAll(getClassPathsFromManifest(mf, jar.getLocation().getPath())); 1295 } 1296 783 1297 JarIndex index = JarIndex.getJarIndex(jarFile, null); 784 1298 if (index != null) … … 964 1478 * @param jars the jars to be verified. 965 1479 */ 966 private Jar Signer verifyJars(List<JARDesc> jars) throws Exception {967 968 j s = new JarSigner();969 j s.verifyJars(jars, tracker);970 return j s;1480 private JarCertVerifier verifyJars(List<JARDesc> jars) throws Exception { 1481 1482 jcv = new JarCertVerifier(); 1483 jcv.verifyJars(jars, tracker); 1484 return jcv; 971 1485 } 972 1486 … … 978 1492 Class result = null; 979 1493 980 if (loaders[i] == this) 981 result = super.findLoadedClass(name); 982 else 1494 if (loaders[i] == this) { 1495 final String fName = name; 1496 try { 1497 result = AccessController.doPrivileged( 1498 new PrivilegedExceptionAction<Class<?>>() { 1499 public Class<?> run() { 1500 return JNLPClassLoader.super.findLoadedClass(fName); 1501 } 1502 }, getAccessControlContextForClassLoading()); 1503 } catch (PrivilegedActionException pae) { 1504 result = null; 1505 } 1506 } else { 983 1507 result = loaders[i].findLoadedClassAll(name); 1508 } 984 1509 985 1510 if (result != null) … … 1095 1620 * @param desc the JARDesc for the new jar 1096 1621 */ 1097 private void addNewJar( JARDesc desc) {1622 private void addNewJar(final JARDesc desc) { 1098 1623 1099 1624 available.add(desc); … … 1105 1630 ); 1106 1631 1107 URL remoteURL = desc.getLocation(); 1108 URL cachedUrl = tracker.getCacheURL(remoteURL); 1109 addURL(remoteURL); 1110 CachedJarFileCallback.getInstance().addMapping(remoteURL, cachedUrl); 1632 // Give read permissions to the cached jar file 1633 AccessController.doPrivileged(new PrivilegedAction<Void>() { 1634 public Void run() { 1635 Permission p = CacheUtil.getReadPermission(desc.getLocation(), 1636 desc.getVersion()); 1637 1638 resourcePermissions.add(p); 1639 1640 return null; 1641 } 1642 }); 1643 1644 final URL remoteURL = desc.getLocation(); 1645 final URL cachedUrl = tracker.getCacheURL(remoteURL); // blocks till download 1646 1647 available.remove(desc); // Resource downloaded. Remove from available list. 1648 1649 try { 1650 1651 // Verify if needed 1652 1653 final JarCertVerifier signer = new JarCertVerifier(); 1654 final List<JARDesc> jars = new ArrayList<JARDesc>(); 1655 jars.add(desc); 1656 1657 // Decide what level of security this jar should have 1658 // The verification and security setting functions rely on 1659 // having AllPermissions as those actions normally happen 1660 // during initialization. We therefore need to do those 1661 // actions as privileged. 1662 1663 AccessController.doPrivileged(new PrivilegedExceptionAction<Void>() { 1664 public Void run() throws Exception { 1665 signer.verifyJars(jars, tracker); 1666 1667 if (signer.anyJarsSigned() && !signer.getAlreadyTrustPublisher()) { 1668 checkTrustWithUser(signer); 1669 } 1670 1671 final SecurityDesc security; 1672 if (signer.anyJarsSigned()) { 1673 security = new SecurityDesc(file, 1674 SecurityDesc.ALL_PERMISSIONS, 1675 file.getCodeBase().getHost()); 1676 } else { 1677 security = new SecurityDesc(file, 1678 SecurityDesc.SANDBOX_PERMISSIONS, 1679 file.getCodeBase().getHost()); 1680 } 1681 1682 jarLocationSecurityMap.put(remoteURL, security); 1683 1684 return null; 1685 } 1686 }); 1687 1688 addURL(remoteURL); 1689 CachedJarFileCallback.getInstance().addMapping(remoteURL, cachedUrl); 1690 1691 } catch (Exception e) { 1692 // Do nothing. This code is called by loadClass which cannot 1693 // throw additional exceptions. So instead, just ignore it. 1694 // Exception => jar will not get added to classpath, which will 1695 // result in CNFE from loadClass. 1696 e.printStackTrace(); 1697 } 1111 1698 } 1112 1699 … … 1117 1704 for (int i = 0; i < loaders.length; i++) { 1118 1705 try { 1119 if (loaders[i] == this) 1120 return super.findClass(name); 1121 else 1706 if (loaders[i] == this) { 1707 final String fName = name; 1708 return AccessController.doPrivileged( 1709 new PrivilegedExceptionAction<Class<?>>() { 1710 public Class<?> run() throws ClassNotFoundException { 1711 return JNLPClassLoader.super.findClass(fName); 1712 } 1713 }, getAccessControlContextForClassLoading()); 1714 } else { 1122 1715 return loaders[i].findClass(name); 1716 } 1123 1717 } catch (ClassNotFoundException ex) { 1124 1718 } catch (ClassFormatError cfe) { 1719 } catch (PrivilegedActionException pae) { 1125 1720 } 1126 1721 } … … 1128 1723 // Try codebase loader 1129 1724 if (codeBaseLoader != null) 1130 return codeBaseLoader.findClass(name );1131 1725 return codeBaseLoader.findClass(name, true); 1726 1132 1727 // All else failed. Throw CNFE 1133 1728 throw new ClassNotFoundException(name); … … 1151 1746 // add resources until found 1152 1747 while (true) { 1153 JNLPClassLoader addedTo = addNextResource(); 1748 JNLPClassLoader addedTo = null; 1749 1750 try { 1751 addedTo = addNextResource(); 1752 } catch (LaunchException e) { 1753 1754 /* 1755 * This method will never handle any search for the main class 1756 * [It is handled in initializeResources()]. Therefore, this 1757 * exception will never be thrown here and is escaped 1758 */ 1759 1760 throw new IllegalStateException(e); 1761 } 1154 1762 1155 1763 if (addedTo == null) … … 1166 1774 * Finds the resource in this, the parent, or the extension 1167 1775 * class loaders. 1168 */ 1169 public URL getResource(String name) { 1170 URL result = super.getResource(name); 1171 1172 for (int i = 1; i < loaders.length; i++) 1173 if (result == null) 1174 result = loaders[i].getResource(name); 1776 * 1777 * @return a <code>URL</code> for the resource, or <code>null</code> 1778 * if the resource could not be found. 1779 */ 1780 @Override 1781 public URL findResource(String name) { 1782 URL result = null; 1783 1784 try { 1785 Enumeration<URL> e = findResources(name); 1786 if (e.hasMoreElements()) { 1787 result = e.nextElement(); 1788 } 1789 } catch (IOException e) { 1790 if (JNLPRuntime.isDebug()) { 1791 e.printStackTrace(); 1792 } 1793 } 1175 1794 1176 1795 // If result is still null, look in the codebase loader 1177 1796 if (result == null && codeBaseLoader != null) 1178 result = codeBaseLoader. getResource(name);1797 result = codeBaseLoader.findResource(name); 1179 1798 1180 1799 return result; … … 1182 1801 1183 1802 /** 1184 * Find s the resourcein this, the parent, or the extension1185 * class loaders. 1803 * Find the resources in this, the parent, or the extension 1804 * class loaders. Load lazy resources if not found in current resources. 1186 1805 */ 1187 1806 @Override 1188 1807 public Enumeration<URL> findResources(String name) throws IOException { 1189 Vector<URL> resources = new Vector<URL>(); 1190 Enumeration<URL> e; 1808 Enumeration<URL> resources = findResourcesBySearching(name); 1809 1810 try { 1811 // if not found, load all lazy resources; repeat search 1812 while (!resources.hasMoreElements() && addNextResource() != null) { 1813 resources = findResourcesBySearching(name); 1814 } 1815 } catch (LaunchException le) { 1816 le.printStackTrace(); 1817 } 1818 1819 return resources; 1820 } 1821 1822 /** 1823 * Find the resources in this, the parent, or the extension 1824 * class loaders. 1825 */ 1826 private Enumeration<URL> findResourcesBySearching(String name) throws IOException { 1827 List<URL> resources = new ArrayList<URL>(); 1828 Enumeration<URL> e = null; 1191 1829 1192 1830 for (int i = 0; i < loaders.length; i++) { 1193 1194 if (loaders[i] == this) 1195 e = super.findResources(name); 1196 else 1831 // TODO check if this will blow up or not 1832 // if loaders[1].getResource() is called, wont it call getResource() on 1833 // the original caller? infinite recursion? 1834 1835 if (loaders[i] == this) { 1836 final String fName = name; 1837 try { 1838 e = AccessController.doPrivileged( 1839 new PrivilegedExceptionAction<Enumeration<URL>>() { 1840 public Enumeration<URL> run() throws IOException { 1841 return JNLPClassLoader.super.findResources(fName); 1842 } 1843 }, getAccessControlContextForClassLoading()); 1844 } catch (PrivilegedActionException pae) { 1845 } 1846 } else { 1197 1847 e = loaders[i].findResources(name); 1198 1199 while (e.hasMoreElements()) 1200 resources.add(e.nextElement()); 1848 } 1849 1850 final Enumeration<URL> fURLEnum = e; 1851 try { 1852 resources.addAll(AccessController.doPrivileged( 1853 new PrivilegedExceptionAction<Collection<URL>>() { 1854 public Collection<URL> run() { 1855 List<URL> resources = new ArrayList<URL>(); 1856 while (fURLEnum != null && fURLEnum.hasMoreElements()) { 1857 resources.add(fURLEnum.nextElement()); 1858 } 1859 return resources; 1860 } 1861 }, getAccessControlContextForClassLoading())); 1862 } catch (PrivilegedActionException pae) { 1863 } 1201 1864 } 1202 1865 … … 1209 1872 } 1210 1873 1211 return resources.elements();1874 return Collections.enumeration(resources); 1212 1875 } 1213 1876 … … 1242 1905 * 1243 1906 * @return the classloader that resources were added to, or null 1244 */ 1245 protected JNLPClassLoader addNextResource() { 1907 * @throws LaunchException Thrown if the signed JNLP file, within the main jar, fails to be verified or does not match 1908 */ 1909 protected JNLPClassLoader addNextResource() throws LaunchException { 1246 1910 if (available.size() == 0) { 1247 1911 for (int i = 1; i < loaders.length; i++) { … … 1259 1923 1260 1924 fillInPartJars(jars); 1925 checkForMain(jars); 1261 1926 activateJars(jars); 1262 1927 … … 1306 1971 1307 1972 protected SecurityDesc getCodeSourceSecurity(URL source) { 1308 return jarLocationSecurityMap.get(source); 1973 SecurityDesc sec=jarLocationSecurityMap.get(source); 1974 if (sec == null && !alreadyTried.contains(source)) { 1975 alreadyTried.add(source); 1976 //try to load the jar which is requesting the permissions, but was NOT downloaded by standard way 1977 if (JNLPRuntime.isDebug()) { 1978 System.out.println("Application is trying to get permissions for " + source.toString() + ", which was not added by standard way. Trying to download and verify!"); 1979 } 1980 try { 1981 JARDesc des = new JARDesc(source, null, null, false, false, false, false); 1982 addNewJar(des); 1983 sec = jarLocationSecurityMap.get(source); 1984 } catch (Throwable t) { 1985 if (JNLPRuntime.isDebug()) { 1986 t.printStackTrace(); 1987 } 1988 sec = null; 1989 } 1990 } 1991 if (sec == null){ 1992 System.out.println(Translator.R("LNoSecInstance",source.toString())); 1993 } 1994 return sec; 1309 1995 } 1310 1996 … … 1347 2033 */ 1348 2034 private void addToCodeBaseLoader(URL u) { 2035 if (u == null) { 2036 return; 2037 } 1349 2038 1350 2039 // Only paths may be added … … 1403 2092 return result; 1404 2093 } 2094 2095 /** 2096 * Increments loader use count by 1 2097 * 2098 * @throws SecurityException if caller is not trusted 2099 */ 2100 private synchronized void incrementLoaderUseCount() { 2101 2102 // For use by trusted code only 2103 if (System.getSecurityManager() != null) 2104 System.getSecurityManager().checkPermission(new AllPermission()); 2105 2106 useCount++; 2107 } 2108 2109 /** 2110 * Decrements loader use count by 1 2111 * 2112 * If count reaches 0, loader is removed from list of available loaders 2113 * 2114 * @throws SecurityException if caller is not trusted 2115 */ 2116 public synchronized void decrementLoaderUseCount() { 2117 2118 // For use by trusted code only 2119 if (System.getSecurityManager() != null) 2120 System.getSecurityManager().checkPermission(new AllPermission()); 2121 2122 useCount--; 2123 2124 if (useCount <= 0) { 2125 synchronized(urlToLoader) { 2126 urlToLoader.remove(file.getUniqueKey()); 2127 } 2128 } 2129 } 2130 2131 /** 2132 * Returns an appropriate AccessControlContext for loading classes in 2133 * the running instance. 2134 * 2135 * The default context during class-loading only allows connection to 2136 * codebase. However applets are allowed to load jars from arbitrary 2137 * locations and the codebase only access falls short if a class from 2138 * one location needs a class from another. 2139 * 2140 * Given protected access since CodeBaseClassloader uses this function too. 2141 * 2142 * @return The appropriate AccessControlContext for loading classes for this instance 2143 */ 2144 public AccessControlContext getAccessControlContextForClassLoading() { 2145 AccessControlContext context = AccessController.getContext(); 2146 2147 try { 2148 context.checkPermission(new AllPermission()); 2149 return context; // If context already has all permissions, don't bother 2150 } catch (AccessControlException ace) { 2151 // continue below 2152 } catch (ClassCircularityError cce) { 2153 // continue below 2154 } 2155 2156 // Since this is for class-loading, technically any class from one jar 2157 // should be able to access a class from another, therefore making the 2158 // original context code source irrelevant 2159 PermissionCollection permissions = this.security.getSandBoxPermissions(); 2160 2161 // Local cache access permissions 2162 for (Permission resourcePermission : resourcePermissions) { 2163 permissions.add(resourcePermission); 2164 } 2165 2166 // Permissions for all remote hosting urls 2167 for (URL u: jarLocationSecurityMap.keySet()) { 2168 permissions.add(new SocketPermission(u.getHost(), 2169 "connect, accept")); 2170 } 2171 2172 // Permissions for codebase urls (if there is a loader) 2173 if (codeBaseLoader != null) { 2174 for (URL u : codeBaseLoader.getURLs()) { 2175 permissions.add(new SocketPermission(u.getHost(), 2176 "connect, accept")); 2177 } 2178 } 2179 2180 ProtectionDomain pd = new ProtectionDomain(null, permissions); 2181 2182 return new AccessControlContext(new ProtectionDomain[] { pd }); 2183 } 1405 2184 1406 2185 /* … … 1412 2191 JNLPClassLoader parentJNLPClassLoader; 1413 2192 2193 /** 2194 * Classes that are not found, so that findClass can skip them next time 2195 */ 2196 ConcurrentHashMap<String, URL[]> notFoundResources = new ConcurrentHashMap<String, URL[]>(); 2197 1414 2198 public CodeBaseClassLoader(URL[] urls, JNLPClassLoader cl) { 1415 2199 super(urls); … … 1423 2207 1424 2208 @Override 1425 public Class<?> findClass(String name) throws ClassNotFoundException { 1426 return super.findClass(name); 2209 public Class<?> findClass(String name) throws ClassNotFoundException { 2210 return findClass(name, false); 2211 } 2212 2213 public Class<?> findClass(String name, boolean recursivelyInvoked) throws ClassNotFoundException { 2214 2215 if (!recursivelyInvoked) { 2216 try { 2217 return parentJNLPClassLoader.findClass(name); 2218 } catch (ClassNotFoundException cnfe) { 2219 // continue 2220 } 2221 } 2222 2223 // If we have searched this path before, don't try again 2224 if (Arrays.equals(super.getURLs(), notFoundResources.get(name))) 2225 throw new ClassNotFoundException(name); 2226 2227 try { 2228 final String fName = name; 2229 return AccessController.doPrivileged( 2230 new PrivilegedExceptionAction<Class<?>>() { 2231 public Class<?> run() throws ClassNotFoundException { 2232 return CodeBaseClassLoader.super.findClass(fName); 2233 } 2234 }, parentJNLPClassLoader.getAccessControlContextForClassLoading()); 2235 } catch (PrivilegedActionException pae) { 2236 notFoundResources.put(name, super.getURLs()); 2237 throw new ClassNotFoundException("Could not find class " + name); 2238 } 1427 2239 } 1428 2240 … … 1451 2263 @Override 1452 2264 public Enumeration<URL> findResources(String name) throws IOException { 2265 2266 // If we have searched this path before, don't try again 2267 if (Arrays.equals(super.getURLs(), notFoundResources.get(name))) 2268 return (new Vector<URL>(0)).elements(); 2269 1453 2270 if (!name.startsWith("META-INF")) { 1454 return super.findResources(name); 1455 } 2271 Enumeration<URL> urls = super.findResources(name); 2272 2273 if (!urls.hasMoreElements()) { 2274 notFoundResources.put(name, super.getURLs()); 2275 } 2276 2277 return urls; 2278 } 2279 1456 2280 return (new Vector<URL>(0)).elements(); 1457 2281 } … … 1459 2283 @Override 1460 2284 public URL findResource(String name) { 2285 2286 // If we have searched this path before, don't try again 2287 if (Arrays.equals(super.getURLs(), notFoundResources.get(name))) 2288 return null; 2289 2290 URL url = null; 1461 2291 if (!name.startsWith("META-INF")) { 1462 return super.findResource(name); 1463 } 2292 try { 2293 final String fName = name; 2294 url = AccessController.doPrivileged( 2295 new PrivilegedExceptionAction<URL>() { 2296 public URL run() { 2297 return CodeBaseClassLoader.super.findResource(fName); 2298 } 2299 }, parentJNLPClassLoader.getAccessControlContextForClassLoading()); 2300 } catch (PrivilegedActionException pae) { 2301 } 2302 2303 if (url == null) { 2304 notFoundResources.put(name, super.getURLs()); 2305 } 2306 2307 return url; 2308 } 2309 1464 2310 return null; 1465 2311 } -
branches/vendor/sourceforge/icedtea-web/current/netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java
r348 r416 30 30 import javax.naming.ConfigurationException; 31 31 import javax.net.ssl.HttpsURLConnection; 32 import javax.net.ssl.KeyManagerFactory; 32 33 import javax.net.ssl.SSLContext; 33 34 import javax.net.ssl.SSLSocketFactory; … … 94 95 private static UpdatePolicy updatePolicy = UpdatePolicy.ALWAYS; 95 96 96 /** netx window icon */97 private static Image windowIcon = null;98 99 97 /** whether initialized */ 100 98 private static boolean initialized = false; … … 124 122 private static boolean forksAllowed = true; 125 123 124 /** all security dialogs will be consumed and pretented as beeing verified by user and allowed.*/ 125 private static boolean trustAll=false; 126 126 127 /** contains the arguments passed to the jnlp runtime */ 127 128 private static List<String> initialArguments; … … 132 133 public static final String STDERR_FILE = "java.stderr"; 133 134 public static final String STDOUT_FILE = "java.stdout"; 135 134 136 135 137 /** … … 184 186 checkHeadless(); 185 187 186 if (!headless && windowIcon == null)187 loadWindowIcon();188 189 188 if (!headless && indicator == null) 190 189 indicator = new DefaultDownloadIndicator(); … … 192 191 if (handler == null) { 193 192 if (headless) { 194 handler = new DefaultLaunchHandler( );193 handler = new DefaultLaunchHandler(System.err); 195 194 } else { 196 handler = new GuiLaunchHandler( );195 handler = new GuiLaunchHandler(System.err); 197 196 } 198 197 } … … 222 221 SSLSocketFactory sslSocketFactory; 223 222 SSLContext context = SSLContext.getInstance("SSL"); 223 KeyStore ks = KeyStores.getKeyStore(KeyStores.Level.USER, KeyStores.Type.CLIENT_CERTS); 224 KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509"); 225 kmf.init(ks, KeyStores.getPassword()); 224 226 TrustManager[] trust = new TrustManager[] { VariableX509TrustManager.getInstance() }; 225 context.init( null, trust, null);227 context.init(kmf.getKeyManagers(), trust, null); 226 228 sslSocketFactory = context.getSocketFactory(); 227 229 … … 326 328 public static boolean isWebstartApplication() { 327 329 return isWebstartApplication; 328 }329 330 /**331 * Returns the window icon.332 */333 public static Image getWindowIcon() {334 return windowIcon;335 }336 337 /**338 * Sets the window icon that is displayed in Java applications339 * and applets instead of the default Java icon.340 *341 * @throws IllegalStateException if caller is not the exit class342 */343 public static void setWindowIcon(Image image) {344 checkExitClass();345 windowIcon = image;346 330 } 347 331 … … 611 595 } catch (Exception ex) { 612 596 throw new IllegalStateException("Missing resource bundle in netx.jar:net/sourceforge/jnlp/resource/Messages.properties"); 613 }614 }615 616 /**617 * Load the window icon.618 */619 private static void loadWindowIcon() {620 if (windowIcon != null)621 return;622 623 try {624 windowIcon = new javax.swing.ImageIcon((new sun.misc.Launcher())625 .getClassLoader().getResource("net/sourceforge/jnlp/resources/netx-icon.png")).getImage();626 } catch (Exception ex) {627 if (JNLPRuntime.isDebug())628 ex.printStackTrace();629 597 } 630 598 } … … 733 701 } 734 702 703 static void setTrustAll(boolean b) { 704 trustAll=b; 705 } 706 707 public static boolean isTrustAll() { 708 return trustAll; 709 } 710 735 711 } -
branches/vendor/sourceforge/icedtea-web/current/netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java
r348 r416 282 282 // } 283 283 284 try { 285 super.checkPermission(perm); 286 } catch (SecurityException se) { 287 288 //This section is a special case for dealing with SocketPermissions. 289 if (JNLPRuntime.isDebug()) 290 System.err.println("Requesting permission: " + perm.toString()); 291 292 //Change this SocketPermission's action to connect and accept 293 //(and resolve). This is to avoid asking for connect permission 294 //on every address resolve. 295 Permission tmpPerm = null; 296 if (perm instanceof SocketPermission) { 297 tmpPerm = new SocketPermission(perm.getName(), 298 SecurityConstants.SOCKET_CONNECT_ACCEPT_ACTION); 299 300 // before proceeding, check if we are trying to connect to same origin 301 ApplicationInstance app = getApplication(); 302 JNLPFile file = app.getJNLPFile(); 303 304 String srcHost = file.getSourceLocation().getAuthority(); 305 String destHost = name; 306 307 // host = abc.xyz.com or abc.xyz.com:<port> 308 if (destHost.indexOf(':') >= 0) 309 destHost = destHost.substring(0, destHost.indexOf(':')); 310 311 // host = abc.xyz.com 312 String[] hostComponents = destHost.split("\\."); 313 314 int length = hostComponents.length; 315 if (length >= 2) { 316 317 // address is in xxx.xxx.xxx format 318 destHost = hostComponents[length - 2] + "." + hostComponents[length - 1]; 319 320 // host = xyz.com i.e. origin 321 boolean isDestHostName = false; 322 323 // make sure that it is not an ip address 324 try { 325 Integer.parseInt(hostComponents[length - 1]); 326 } catch (NumberFormatException e) { 327 isDestHostName = true; 328 } 329 330 if (isDestHostName) { 331 // okay, destination is hostname. Now figure out if it is a subset of origin 332 if (srcHost.endsWith(destHost)) { 333 addPermission(tmpPerm); 334 return; 335 } 336 } 337 } 338 } else { 339 tmpPerm = perm; 340 } 341 342 if (tmpPerm != null) { 343 //askPermission will only prompt the user on SocketPermission 344 //meaning we're denying all other SecurityExceptions that may arise. 345 if (askPermission(tmpPerm)) { 346 addPermission(tmpPerm); 347 //return quietly. 348 } else { 349 throw se; 350 } 351 } 352 } 284 super.checkPermission(perm); 353 285 } catch (SecurityException ex) { 354 286 if (JNLPRuntime.isDebug()) { … … 418 350 app.addWindow(w); 419 351 } 420 421 // change coffee cup to netx for default icon422 if (window instanceof Window)423 for (Window w = (Window) window; w != null; w = w.getOwner())424 if (window instanceof Frame)425 ((Frame) window).setIconImage(JNLPRuntime.getWindowIcon());426 352 427 353 // todo: set awt.appletWarning to custom message -
branches/vendor/sourceforge/icedtea-web/current/netx/net/sourceforge/jnlp/runtime/pac-funcs.js
r348 r416 326 326 */ 327 327 function dateRange() { 328 329 // note: watch out for wrapping around of dates. date ranges, like 330 // month=9 to month=8, wrap around and cover the entire year. this 331 // makes everything more interesting 332 333 var gmt; 334 if (arguments.length > 1) { 335 if (arguments[arguments.length-1] === "GMT") { 336 gmt = true; 337 arguments.splice(0,arguments.length-1); 338 } 339 } 328 switch (arguments.length) { 329 case 1: return isDateInRange_internallForIcedTeaWebTesting(new Date(),arguments[0]); 330 case 2: return isDateInRange_internallForIcedTeaWebTesting(new Date(),arguments[0],arguments[1]); 331 case 3: return isDateInRange_internallForIcedTeaWebTesting(new Date(),arguments[0],arguments[1],arguments[2]); 332 case 4: return isDateInRange_internallForIcedTeaWebTesting(new Date(),arguments[0],arguments[1],arguments[2],arguments[3]); 333 case 5: return isDateInRange_internallForIcedTeaWebTesting(new Date(),arguments[0],arguments[1],arguments[2],arguments[3],arguments[4]); 334 case 6: return isDateInRange_internallForIcedTeaWebTesting(new Date(),arguments[0],arguments[1],arguments[2],arguments[3],arguments[4],arguments[5]); 335 case 7: return isDateInRange_internallForIcedTeaWebTesting(new Date(),arguments[0],arguments[1],arguments[2],arguments[3],arguments[4],arguments[5],arguments[6]); //GMT 336 default: 337 return false; 338 } 339 } 340 341 function isDateInRange_internallForIcedTeaWebTesting() { 340 342 341 343 function isDate(date) { … … 414 416 415 417 function inYearRange(today, year1, year2) { 416 if (year1 <= today.get Year() && today.getYear() <= year2) {418 if (year1 <= today.getFullYear() && today.getFullYear() <= year2) { 417 419 return true; 418 420 } else { … … 481 483 function inYearMonthRange(today, month1, year1, month2, year2) { 482 484 if (year1 === year2) { 483 if (today.get Year() === year1) {485 if (today.getFullYear() === year1) { 484 486 if (month1 <= today.getMonth() && today.getMonth() <= month2) { 485 487 return true; … … 492 494 } 493 495 if (year1 < year2) { 494 if (year1 <= today.get Year() && today.getYear() <= year2) {495 if (today.get Year() === year1) {496 if (year1 <= today.getFullYear() && today.getFullYear() <= year2) { 497 if (today.getFullYear() === year1) { 496 498 if (today.getMonth() >= month1) { 497 499 return true; … … 499 501 return false; 500 502 } 501 } else if (today.get Year() === year2) {503 } else if (today.getFullYear() === year2) { 502 504 if (today.getMonth() <= month2) { 503 505 return true; … … 514 516 return false; 515 517 } 516 517 518 } 518 519 519 520 function inYearMonthDateRange(today, date1, month1, year1, date2, month2, year2) { 520 521 if (year1 === year2) { 521 if (year1 === today.get Year()) {522 if (year1 === today.getFullYear()) { 522 523 if ((month1 <= today.getMonth()) && (today.getMonth() <= month2)) { 523 524 if (month1 === month2) { … … 549 550 } 550 551 } else if (year1 < year2) { 551 if (year1 <= today.get Year() && today.getYear() <= year2) {552 if (today.get Year() === year1) {552 if (year1 <= today.getFullYear() && today.getFullYear() <= year2) { 553 if (today.getFullYear() === year1) { 553 554 if (today.getMonth() === month1) { 554 555 if (today.getDate() >= date1) { … … 562 563 return false; 563 564 } 564 } else if (today.getYear() === year2) { 565 if (today.getMonth() <= month2) { 566 567 } else { 568 return true; 569 } 570 } else { 571 return true; 572 } 573 } else { 574 return false; 575 } 576 } else { 577 return false; 578 } 579 } 580 565 } else if (today.getFullYear() === year2) { 566 if (today.getMonth() === month2) { 567 if (today.getDate() <= date1) { 568 return true; 569 } else { 570 return false; 571 } 572 } else if (today.getMonth() < month2) { 573 return true; 574 } else { 575 return false; 576 } 577 } else { 578 return true; 579 } 580 } else { 581 return false; 582 } 583 } else { 584 return false; 585 } 586 } 587 588 // note: watch out for wrapping around of dates. date ranges, like 589 // month=9 to month=8, wrap around and cover the entire year. this 590 // makes everything more interesting 591 592 var gmt; 593 if (arguments.length > 2) { 594 if (arguments[arguments.length-1] === "GMT") { 595 gmt = true; 596 arguments.splice(0,arguments.length-1); 597 } 598 } 581 599 // TODO: change date to gmt, whatever 582 var today = new Date();600 var today = arguments[0] 583 601 584 602 var arg1; … … 589 607 var arg6; 590 608 591 switch (arguments.length ) {609 switch (arguments.length-1) { 592 610 case 1: 593 var arg = arguments[ 0];611 var arg = arguments[1]; 594 612 if (isDate(arg)) { 595 613 if (today.getDate() === arg) { … … 605 623 } 606 624 } else { // year 607 if (today.get Year() === arg) {625 if (today.getFullYear() === arg) { 608 626 return true; 609 627 } else { … … 612 630 } 613 631 case 2: 614 arg1 = arguments[ 0];615 arg2 = arguments[ 1];632 arg1 = arguments[1]; 633 arg2 = arguments[2]; 616 634 if (isDate(arg1) && isDate(arg2)) { 617 635 var date1 = arg1; … … 635 653 } 636 654 case 4: 637 arg1 = arguments[ 0];638 arg2 = arguments[ 1];639 arg3 = arguments[ 2];640 arg4 = arguments[ 3];655 arg1 = arguments[1]; 656 arg2 = arguments[2]; 657 arg3 = arguments[3]; 658 arg4 = arguments[4]; 641 659 642 660 if (isDate(arg1) && isMonth(arg2) && isDate(arg3) && isMonth(arg4)) { … … 659 677 } 660 678 case 6: 661 arg1 = arguments[ 0];662 arg2 = arguments[ 1];663 arg3 = arguments[ 2];664 arg4 = arguments[ 3];665 arg5 = arguments[ 4];666 arg6 = arguments[ 5];679 arg1 = arguments[1]; 680 arg2 = arguments[2]; 681 arg3 = arguments[3]; 682 arg4 = arguments[4]; 683 arg5 = arguments[5]; 684 arg6 = arguments[6]; 667 685 if (isDate(arg1) && isMonth(arg2) && isYear(arg3) && 668 686 isDate(arg4) && isMonth(arg5) && isYear(arg6)) { -
branches/vendor/sourceforge/icedtea-web/current/netx/net/sourceforge/jnlp/security/AccessWarningPane.java
r348 r416 105 105 106 106 try { 107 publisher = file.getInformation().getVendor() != null ? file.getInformation().getVendor() : R("SNoAssociatedCertificate"); 107 publisher = file.getInformation().getVendor() != null ? 108 file.getInformation().getVendor() + " " + R("SUnverified") : 109 R("SNoAssociatedCertificate"); 108 110 } catch (Exception e) { 109 111 } … … 151 153 } 152 154 153 ImageIcon icon = new ImageIcon((new sun.misc.Launcher()).getClassLoader().getResource("net/sourceforge/jnlp/resources/ warning.png"));155 ImageIcon icon = new ImageIcon((new sun.misc.Launcher()).getClassLoader().getResource("net/sourceforge/jnlp/resources/question.png")); 154 156 JLabel topLabel = new JLabel(htmlWrap(topLabelText), icon, SwingConstants.LEFT); 155 157 topLabel.setFont(new Font(topLabel.getFont().toString(), -
branches/vendor/sourceforge/icedtea-web/current/netx/net/sourceforge/jnlp/security/CertWarningPane.java
r348 r416 1 1 /* CertWarningPane.java 2 Copyright (C) 20 08Red Hat, Inc.2 Copyright (C) 2012 Red Hat, Inc. 3 3 4 4 This file is part of IcedTea. … … 97 97 AccessType type = parent.getAccessType(); 98 98 JNLPFile file = parent.getFile(); 99 Certificate c = parent.get JarSigner().getPublisher();99 Certificate c = parent.getCertVerifier().getPublisher(); 100 100 101 101 String name = ""; … … 133 133 } 134 134 135 // Top label135 // Labels 136 136 String topLabelText = ""; 137 String bottomLabelText = parent.getCertVerifier().getRootInCacerts() ? 138 R("STrustedSource") : R("SUntrustedSource"); 137 139 String propertyName = ""; 140 String iconLocation = "net/sourceforge/jnlp/resources/"; 141 boolean alwaysTrustSelected = false; 138 142 if (certVerifier instanceof HttpsCertVerifier) { 139 topLabelText = R("SHttpsUnverified") + " " + 140 R("Continue"); 143 // HTTPS certs that are verified do not prompt for a dialog. 144 // @see VariableX509TrustManager#checkServerTrusted 145 topLabelText = R("SHttpsUnverified") + " " + R("Continue"); 141 146 propertyName = "OptionPane.warningIcon"; 147 iconLocation += "warning.png"; 142 148 } else 143 149 switch (type) { … … 145 151 topLabelText = R("SSigVerified"); 146 152 propertyName = "OptionPane.informationIcon"; 153 iconLocation += "question.png"; 154 alwaysTrustSelected = true; 147 155 break; 148 156 case UNVERIFIED: 149 157 topLabelText = R("SSigUnverified"); 150 158 propertyName = "OptionPane.warningIcon"; 159 iconLocation += "warning.png"; 160 bottomLabelText += " " + R("SWarnFullPermissionsIgnorePolicy"); 151 161 break; 152 162 case SIGNING_ERROR: 153 163 topLabelText = R("SSignatureError"); 154 164 propertyName = "OptionPane.warningIcon"; 165 iconLocation += "warning.png"; 166 bottomLabelText += " " + R("SWarnFullPermissionsIgnorePolicy"); 155 167 break; 156 168 } 169 157 170 ImageIcon icon = new ImageIcon((new sun.misc.Launcher()) 158 .getClassLoader().getResource( "net/sourceforge/jnlp/resources/warning.png"));171 .getClassLoader().getResource(iconLocation)); 159 172 JLabel topLabel = new JLabel(htmlWrap(topLabelText), icon, SwingConstants.LEFT); 160 173 topLabel.setFont(new Font(topLabel.getFont().toString(), … … 163 176 topPanel.setBackground(Color.WHITE); 164 177 topPanel.add(topLabel, BorderLayout.CENTER); 165 topPanel.setPreferredSize(new Dimension(400, 60));178 topPanel.setPreferredSize(new Dimension(400, 75)); 166 179 topPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); 167 180 … … 176 189 alwaysTrust = new JCheckBox(R("SAlwaysTrustPublisher")); 177 190 alwaysTrust.setEnabled(true); 191 alwaysTrust.setSelected(alwaysTrustSelected); 178 192 179 193 JPanel infoPanel = new JPanel(new GridLayout(4, 1)); … … 211 225 add(buttonPanel); 212 226 213 JLabel bottomLabel ;227 JLabel bottomLabel = new JLabel(htmlWrap(bottomLabelText));; 214 228 JButton moreInfo = new JButton(R("ButMoreInformation")); 215 229 moreInfo.addActionListener(new MoreInfoButtonListener()); 216 217 if (parent.getJarSigner().getRootInCacerts())218 bottomLabel = new JLabel(htmlWrap(R("STrustedSource")));219 else220 bottomLabel = new JLabel(htmlWrap(R("SUntrustedSource")));221 230 222 231 JPanel bottomPanel = new JPanel(); … … 224 233 bottomPanel.add(bottomLabel); 225 234 bottomPanel.add(moreInfo); 226 bottomPanel.setPreferredSize(new Dimension( 500, 100));235 bottomPanel.setPreferredSize(new Dimension(600, 100)); 227 236 bottomPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); 228 237 add(bottomPanel); … … 232 241 private class MoreInfoButtonListener implements ActionListener { 233 242 public void actionPerformed(ActionEvent e) { 234 SecurityDialog.showMoreInfoDialog(parent.get JarSigner(),243 SecurityDialog.showMoreInfoDialog(parent.getCertVerifier(), 235 244 parent); 236 245 } … … 245 254 try { 246 255 KeyStore ks = KeyStores.getKeyStore(Level.USER, Type.CERTS); 247 X509Certificate c = (X509Certificate) parent.get JarSigner().getPublisher();256 X509Certificate c = (X509Certificate) parent.getCertVerifier().getPublisher(); 248 257 CertificateUtils.addToKeyStore(c, ks); 249 258 File keyStoreFile = new File(KeyStores.getKeyStoreLocation(Level.USER, Type.CERTS)); -
branches/vendor/sourceforge/icedtea-web/current/netx/net/sourceforge/jnlp/security/CertificateUtils.java
r348 r416 39 39 40 40 import java.io.BufferedInputStream; 41 import java.io.BufferedOutputStream; 41 42 import java.io.File; 42 43 import java.io.FileInputStream; 44 import java.io.FileOutputStream; 43 45 import java.io.IOException; 44 46 import java.io.PrintStream; 45 47 import java.math.BigInteger; 48 import java.security.InvalidKeyException; 49 import java.security.Key; 46 50 import java.security.KeyStore; 47 51 import java.security.KeyStoreException; 52 import java.security.NoSuchAlgorithmException; 53 import java.security.NoSuchProviderException; 54 import java.security.SignatureException; 48 55 import java.security.cert.Certificate; 49 56 import java.security.cert.CertificateException; 50 57 import java.security.cert.CertificateFactory; 51 58 import java.security.cert.X509Certificate; 59 import java.util.Enumeration; 52 60 import java.util.Random; 53 61 54 62 import net.sourceforge.jnlp.runtime.JNLPRuntime; 55 56 import sun.misc.BASE64Encoder;63 import net.sourceforge.jnlp.runtime.Translator; 64 import net.sourceforge.jnlp.util.replacements.BASE64Encoder; 57 65 import sun.security.provider.X509Factory; 58 66 … … 114 122 } 115 123 124 public static void addPKCS12ToKeyStore(File file, KeyStore ks, char[] password) 125 throws Exception { 126 BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file)); 127 KeyStore keyStore = KeyStore.getInstance("PKCS12"); 128 keyStore.load(bis, password); 129 130 Enumeration<String> aliasList = keyStore.aliases(); 131 132 while (aliasList.hasMoreElements()) { 133 String alias = aliasList.nextElement(); 134 Certificate[] certChain = keyStore.getCertificateChain(alias); 135 Key key = keyStore.getKey(alias, password); 136 addPKCS12ToKeyStore(certChain, key, ks); 137 } 138 } 139 140 public static void addPKCS12ToKeyStore(Certificate[] certChain, Key key, KeyStore ks) 141 throws KeyStoreException { 142 String alias = null; 143 144 // does this certificate already exist? 145 alias = ks.getCertificateAlias(certChain[0]); 146 if (alias != null) { 147 return; 148 } 149 150 // create a unique alias for this new certificate 151 Random random = new Random(); 152 do { 153 alias = new BigInteger(20, random).toString(); 154 } while (ks.getCertificate(alias) != null); 155 156 ks.setKeyEntry(alias, key, KeyStores.getPassword(), certChain); 157 } 158 116 159 /** 117 160 * Checks whether an X509Certificate is already in one of the keystores … … 123 166 for (int i = 0; i < keyStores.length; i++) { 124 167 try { 125 if (keyStores[i].getCertificateAlias(c) != null) { 126 if (JNLPRuntime.isDebug()) { 127 System.out.println(c.getSubjectX500Principal().getName() + " found in cacerts"); 128 } 129 return true; 168 // Check against all certs 169 Enumeration<String> aliases = keyStores[i].aliases(); 170 while (aliases.hasMoreElements()) { 171 172 // Verify against this entry 173 String alias = aliases.nextElement(); 174 175 if (c.equals(keyStores[i].getCertificate(alias))) { 176 if (JNLPRuntime.isDebug()) { 177 System.out.println(Translator.R("LCertFoundIn", c.getSubjectX500Principal().getName(), KeyStores.getPathToKeystore(keyStores[i].hashCode()))); 178 } 179 180 return true; 181 } // else continue 130 182 } 183 131 184 } catch (KeyStoreException e) { 132 185 e.printStackTrace(); … … 149 202 out.println(X509Factory.END_CERT); 150 203 } 204 205 public static void dumpPKCS12(String alias, File file, KeyStore ks, char[] password) 206 throws Exception { 207 Certificate[] certChain = ks.getCertificateChain(alias); 208 Key key = ks.getKey(alias, KeyStores.getPassword()); 209 BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file)); 210 KeyStore keyStore = KeyStore.getInstance("PKCS12"); 211 keyStore.load(null, null); 212 keyStore.setKeyEntry(alias, key, password, certChain); 213 keyStore.store(bos, password); 214 } 151 215 } -
branches/vendor/sourceforge/icedtea-web/current/netx/net/sourceforge/jnlp/security/CertsInfoPane.java
r348 r416 85 85 */ 86 86 void buildTree() { 87 certPath = parent.get JarSigner().getCertPath();87 certPath = parent.getCertVerifier().getCertPath(); 88 88 X509Certificate firstCert = 89 89 ((X509Certificate) certPath.getCertificates().get(0)); -
branches/vendor/sourceforge/icedtea-web/current/netx/net/sourceforge/jnlp/security/KeyStores.java
r348 r416 48 48 import java.security.cert.CertificateException; 49 49 import java.util.ArrayList; 50 import java.util.HashMap; 50 51 import java.util.List; 52 import java.util.Map; 51 53 import java.util.StringTokenizer; 52 54 … … 76 78 } 77 79 80 public static final Map<Integer,String> keystoresPaths=new HashMap<Integer, String>(); 81 78 82 private static DeploymentConfiguration config = null; 79 83 … … 134 138 try { 135 139 ks = createKeyStoreFromFile(new File(location), create, DEFAULT_PASSWORD); 140 //hashcode is used instead of instance so when no references are left 141 //to keystore, then this will not be blocker for garbage collection 142 keystoresPaths.put(ks.hashCode(),location); 136 143 } catch (Exception e) { 137 144 e.printStackTrace(); 138 145 } 139 146 return ks; 147 } 148 149 public static String getPathToKeystore(int k) { 150 String s = keystoresPaths.get(k); 151 if (s == null) { 152 return "unknown keystore location"; 153 } 154 return s; 140 155 } 141 156 -
branches/vendor/sourceforge/icedtea-web/current/netx/net/sourceforge/jnlp/security/MoreInfoPane.java
r348 r416 62 62 public class MoreInfoPane extends SecurityDialogPanel { 63 63 64 private boolean showSignedJNLPWarning; 65 64 66 public MoreInfoPane(SecurityDialog x, CertVerifier certVerifier) { 65 67 super(x, certVerifier); 68 showSignedJNLPWarning= x.requiresSignedJNLPWarning(); 66 69 addComponents(); 67 70 } … … 73 76 ArrayList<String> details = certVerifier.getDetails(); 74 77 78 // Show signed JNLP warning if the signed main jar does not have a 79 // signed JNLP file and the launching JNLP file contains special properties 80 if(showSignedJNLPWarning) 81 details.add(R("SJNLPFileIsNotSigned")); 82 75 83 int numLabels = details.size(); 76 84 JPanel errorPanel = new JPanel(new GridLayout(numLabels, 1)); … … 89 97 errorPanel.add(new JLabel(htmlWrap(details.get(i)), icon, SwingConstants.LEFT)); 90 98 } 99 100 // Removes signed JNLP warning after it has been used. This will avoid 101 // any alteration to certVerifier. 102 if(showSignedJNLPWarning) 103 details.remove(details.size()-1); 91 104 92 105 JPanel buttonsPanel = new JPanel(new BorderLayout()); … … 106 119 private class CertInfoButtonListener implements ActionListener { 107 120 public void actionPerformed(ActionEvent e) { 108 SecurityDialog.showCertInfoDialog(parent.get JarSigner(),121 SecurityDialog.showCertInfoDialog(parent.getCertVerifier(), 109 122 parent); 110 123 } -
branches/vendor/sourceforge/icedtea-web/current/netx/net/sourceforge/jnlp/security/SecurityDialog.java
r348 r416 42 42 import net.sourceforge.jnlp.security.SecurityDialogs.AccessType; 43 43 import net.sourceforge.jnlp.security.SecurityDialogs.DialogType; 44 import net.sourceforge.jnlp.util.ImageResources; 44 45 45 46 import java.awt.*; … … 93 94 private Object value; 94 95 95 SecurityDialog(DialogType dialogType, AccessType accessType, 96 JNLPFile file, CertVerifier jarSigner, X509Certificate cert, Object[] extras) { 96 /** Should show signed JNLP file warning */ 97 private boolean requiresSignedJNLPWarning; 98 99 SecurityDialog(DialogType dialogType, AccessType accessType, 100 JNLPFile file, CertVerifier JarCertVerifier, X509Certificate cert, Object[] extras) { 97 101 super(); 102 setIconImages(ImageResources.INSTANCE.getApplicationImages()); 98 103 this.dialogType = dialogType; 99 104 this.accessType = accessType; 100 105 this.file = file; 101 this.certVerifier = jarSigner;106 this.certVerifier = JarCertVerifier; 102 107 this.cert = cert; 103 108 this.extras = extras; 104 109 initialized = true; 105 110 111 if(file != null) 112 requiresSignedJNLPWarning= file.requiresSignedJNLPWarning(); 113 106 114 initDialog(); 107 115 } … … 119 127 */ 120 128 SecurityDialog(DialogType dialogType, AccessType accessType, 121 JNLPFile file, CertVerifier jarSigner) {122 this(dialogType, accessType, file, jarSigner, null, null);129 JNLPFile file, CertVerifier certVerifier) { 130 this(dialogType, accessType, file, certVerifier, null, null); 123 131 } 124 132 … … 159 167 * Shows more information regarding jar code signing 160 168 * 161 * @param jarSigner the JarSigner used to verify this application169 * @param certVerifier the JarCertVerifier used to verify this application 162 170 * @param parent the parent option pane 163 171 */ 164 172 public static void showMoreInfoDialog( 165 CertVerifier jarSigner, SecurityDialog parent) { 166 173 CertVerifier certVerifier, SecurityDialog parent) { 174 175 JNLPFile file= parent.getFile(); 167 176 SecurityDialog dialog = 168 new SecurityDialog(DialogType.MORE_INFO, null, null,169 jarSigner);177 new SecurityDialog(DialogType.MORE_INFO, null, file, 178 certVerifier); 170 179 dialog.setModalityType(ModalityType.APPLICATION_MODAL); 171 180 dialog.setVisible(true); … … 176 185 * Displays CertPath information in a readable table format. 177 186 * 178 * @param jarSigner the JarSigner used to verify this application187 * @param certVerifier the JarCertVerifier used to verify this application 179 188 * @param parent the parent option pane 180 189 */ 181 public static void showCertInfoDialog(CertVerifier jarSigner,190 public static void showCertInfoDialog(CertVerifier certVerifier, 182 191 SecurityDialog parent) { 183 192 SecurityDialog dialog = new SecurityDialog(DialogType.CERT_INFO, 184 null, null, jarSigner);193 null, null, certVerifier); 185 194 dialog.setLocationRelativeTo(parent); 186 195 dialog.setModalityType(ModalityType.APPLICATION_MODAL); … … 208 217 209 218 String dialogTitle = ""; 210 if (dialogType == DialogType.CERT_WARNING) 211 dialogTitle = "Warning - Security"; 212 else if (dialogType == DialogType.MORE_INFO) 219 if (dialogType == DialogType.CERT_WARNING) { 220 if (accessType == AccessType.VERIFIED) 221 dialogTitle = "Security Approval Required"; 222 else 223 dialogTitle = "Security Warning"; 224 } else if (dialogType == DialogType.MORE_INFO) 213 225 dialogTitle = "More Information"; 214 226 else if (dialogType == DialogType.CERT_INFO) … … 267 279 } 268 280 269 public CertVerifier get JarSigner() {281 public CertVerifier getCertVerifier() { 270 282 return certVerifier; 271 283 } … … 370 382 listeners.add(listener); 371 383 } 384 385 public boolean requiresSignedJNLPWarning() 386 { 387 return requiresSignedJNLPWarning; 388 } 372 389 373 390 } -
branches/vendor/sourceforge/icedtea-web/current/netx/net/sourceforge/jnlp/security/SecurityDialogs.java
r348 r416 181 181 * @param accessType the type of warning dialog to show 182 182 * @param file the JNLPFile associated with this warning 183 * @param jarSigner the JarSigner used to verify this application 183 * @param certVerifier the JarCertVerifier used to verify this application 184 * 185 * @return true if the user accepted the certificate 184 186 */ 185 187 public static boolean showCertWarningDialog(AccessType accessType, 186 JNLPFile file, CertVerifier jarSigner) {188 JNLPFile file, CertVerifier certVerifier) { 187 189 188 190 if (!shouldPromptUser()) { … … 194 196 message.accessType = accessType; 195 197 message.file = file; 196 message.certVerifier = jarSigner;198 message.certVerifier = certVerifier; 197 199 198 200 Object selectedValue = getUserResponse(message); -
branches/vendor/sourceforge/icedtea-web/current/netx/net/sourceforge/jnlp/security/VariableX509TrustManager.java
r348 r416 38 38 package net.sourceforge.jnlp.security; 39 39 40 import java.security.AccessController; 40 41 import java.security.KeyStore; 42 import java.security.PrivilegedAction; 41 43 import java.security.cert.Certificate; 42 44 import java.security.cert.CertificateException; … … 54 56 55 57 import com.sun.net.ssl.internal.ssl.X509ExtendedTrustManager; 58 import net.sourceforge.jnlp.runtime.JNLPRuntime; 56 59 57 60 import net.sourceforge.jnlp.security.SecurityDialogs.AccessType; … … 380 383 * @return user's response 381 384 */ 382 private boolean askUser(X509Certificate[] chain, String authType, 383 boolean isTrusted, boolean hostMatched, 384 String hostName) { 385 return SecurityDialogs.showCertWarningDialog( 385 private boolean askUser(final X509Certificate[] chain, final String authType, 386 final boolean isTrusted, final boolean hostMatched, 387 final String hostName) { 388 if (JNLPRuntime.isTrustAll()){ 389 return true; 390 } 391 final VariableX509TrustManager trustManager = this; 392 return AccessController.doPrivileged(new PrivilegedAction<Boolean>() { 393 @Override 394 public Boolean run() { 395 return SecurityDialogs.showCertWarningDialog( 386 396 AccessType.UNVERIFIED, null, 387 new HttpsCertVerifier(t his, chain, authType,397 new HttpsCertVerifier(trustManager, chain, authType, 388 398 isTrusted, hostMatched, 389 399 hostName)); 400 } 401 }); 390 402 } 391 403 -
branches/vendor/sourceforge/icedtea-web/current/netx/net/sourceforge/jnlp/security/viewer/CertificatePane.java
r348 r416 67 67 import javax.swing.JOptionPane; 68 68 import javax.swing.JPanel; 69 import javax.swing.JPasswordField; 69 70 import javax.swing.JScrollPane; 70 71 import javax.swing.JTabbedPane; … … 101 102 new CertificateType(KeyStores.Type.CERTS), 102 103 new CertificateType(KeyStores.Type.JSSE_CERTS), 104 new CertificateType(KeyStores.Type.CLIENT_CERTS) 103 105 }; 104 106 … … 302 304 } 303 305 306 private char[] getPassword(final String label) { 307 JPasswordField jpf = new JPasswordField(); 308 int result = JOptionPane.showConfirmDialog(parent, 309 new Object[]{label, jpf}, R("CVPasswordTitle"), 310 JOptionPane.OK_CANCEL_OPTION, 311 JOptionPane.INFORMATION_MESSAGE); 312 if (result == JOptionPane.OK_OPTION) 313 return jpf.getPassword(); 314 else 315 return null; 316 } 317 304 318 /** Allows storing KeyStores.Types in a JComponent */ 305 319 private static class CertificateType { … … 365 379 try { 366 380 KeyStore ks = keyStore; 367 CertificateUtils.addToKeyStore(chooser.getSelectedFile(), ks); 381 if (currentKeyStoreType == KeyStores.Type.CLIENT_CERTS) { 382 char[] password = getPassword(R("CVImportPasswordMessage")); 383 if (password != null) { 384 CertificateUtils.addPKCS12ToKeyStore( 385 chooser.getSelectedFile(), ks, password); 386 } else { 387 return; 388 } 389 } else { 390 CertificateUtils.addToKeyStore(chooser.getSelectedFile(), ks); 391 } 368 392 File keyStoreFile = new File(KeyStores 369 393 .getKeyStoreLocation(currentKeyStoreLevel, currentKeyStoreType)); … … 409 433 .get(selectedRow)); 410 434 if (alias != null) { 411 Certificate c = keyStore.getCertificate(alias); 412 PrintStream ps = new PrintStream(chooser.getSelectedFile().getAbsolutePath()); 413 CertificateUtils.dump(c, ps); 435 if (currentKeyStoreType == KeyStores.Type.CLIENT_CERTS) { 436 char[] password = getPassword(R("CVExportPasswordMessage")); 437 if (password != null) 438 CertificateUtils.dumpPKCS12(alias, chooser.getSelectedFile(), keyStore, password); 439 } else { 440 Certificate c = keyStore.getCertificate(alias); 441 PrintStream ps = new PrintStream(chooser.getSelectedFile().getAbsolutePath()); 442 CertificateUtils.dump(c, ps); 443 } 414 444 repopulateTables(); 415 445 } -
branches/vendor/sourceforge/icedtea-web/current/netx/net/sourceforge/jnlp/security/viewer/CertificateViewer.java
r348 r416 52 52 53 53 import net.sourceforge.jnlp.runtime.JNLPRuntime; 54 import net.sourceforge.jnlp.util.ImageResources; 54 55 55 56 public class CertificateViewer extends JDialog { … … 62 63 public CertificateViewer() { 63 64 super((Frame) null, dialogTitle, true); 65 setIconImages(ImageResources.INSTANCE.getApplicationImages()); 64 66 65 67 Container contentPane = getContentPane(); -
branches/vendor/sourceforge/icedtea-web/current/netx/net/sourceforge/jnlp/services/ServiceUtil.java
r348 r416 236 236 Object... extras) { 237 237 238 if (app == null) 239 app = JNLPRuntime.getApplication(); 240 241 boolean codeTrusted = true; 242 243 StackTraceElement[] stack = Thread.currentThread().getStackTrace(); 244 245 for (int i = 0; i < stack.length; i++) { 246 247 Class c = null; 248 249 try { 250 c = Class.forName(stack[i].getClassName()); 251 } catch (Exception e1) { 252 try { 253 c = Class.forName(stack[i].getClassName(), false, app.getClassLoader()); 254 } catch (Exception e2) { 255 System.err.println(e2.getMessage()); 256 } 257 } 258 259 // Everything up to the desired class/method must be trusted 260 if (c == null || // class not found 261 (c.getProtectionDomain().getCodeSource() != null && // class is not in bootclasspath 262 c.getProtectionDomain().getCodeSource().getCodeSigners() == null) // class is trusted 263 ) { 264 codeTrusted = false; 265 } 266 } 267 268 if (!codeTrusted) { 238 boolean trusted = isSigned(app); 239 240 if (!trusted) { 269 241 270 242 if (!shouldPromptUser()) { 271 243 return false; 272 244 } 245 if (app == null) 246 app = JNLPRuntime.getApplication(); 273 247 274 248 final AccessType tmpType = type; … … 308 282 }); 309 283 } 284 285 /** 286 * Returns whether the app requesting a JNLP service is a trusted 287 * application 288 * 289 * @param app 290 * the application which is requesting the check. If null, the 291 * current application is used. 292 * @return true, if the app is a trusted application; false otherwise 293 */ 294 295 public static boolean isSigned(ApplicationInstance app) { 296 297 if (app == null) 298 app = JNLPRuntime.getApplication(); 299 300 StackTraceElement[] stack = Thread.currentThread().getStackTrace(); 301 302 for (int i = 0; i < stack.length; i++) { 303 304 Class c = null; 305 306 try { 307 c = Class.forName(stack[i].getClassName()); 308 } catch (Exception e1) { 309 try { 310 c = Class.forName(stack[i].getClassName(), false, 311 app.getClassLoader()); 312 } catch (Exception e2) { 313 System.err.println(e2.getMessage()); 314 } 315 } 316 317 // Everything up to the desired class/method must be trusted 318 if (c == null || // class not found 319 (c.getProtectionDomain().getCodeSource() != null && // class is not in bootclasspath 320 c.getProtectionDomain().getCodeSource().getCodeSigners() == null) // class is trusted 321 ) { 322 return false; 323 } 324 } 325 return true; 326 } 310 327 311 328 } -
branches/vendor/sourceforge/icedtea-web/current/netx/net/sourceforge/jnlp/services/XPersistenceService.java
r348 r416 53 53 54 54 URL source = app.getJNLPFile().getCodeBase(); 55 56 if (!source.getHost().equalsIgnoreCase(location.getHost()) 57 && !ServiceUtil.isSigned(app)) // Allow trusted application to have access to data from a different host 58 throw new MalformedURLException( 59 "Untrusted application cannot access data from a different host."); 55 60 56 if (!source.getHost().equalsIgnoreCase(location.getHost()))57 throw new MalformedURLException("Cannot access data from a different host.");58 61 59 62 // test for above codebase, not perfect but works for now … … 70 73 } 71 74 72 if (!source.getFile().startsWith(requestPath)) 73 throw new MalformedURLException("Cannot access data below source URL path."); 75 if (!source.getFile().startsWith(requestPath) 76 && !ServiceUtil.isSigned(app)) // Allow trusted application to have access to data below source URL path 77 throw new MalformedURLException( 78 "Cannot access data below source URL path."); 74 79 } 75 80 … … 123 128 124 129 File file = toCacheFile(location); 125 if (!file.exists()) 130 if (!file.exists()) { 126 131 throw new FileNotFoundException("Persistence store for " 127 132 + location.toString() + " is not found."); 133 } 128 134 FileUtils.createParentDir(file, "Persistence store for " 129 135 + location.toString()); -
branches/vendor/sourceforge/icedtea-web/current/netx/net/sourceforge/jnlp/tools/KeyStoreUtil.java
r348 r416 34 34 35 35 // Class and methods marked as public so that they can be 36 // accessed by Jar Signer, which although lies in a package36 // accessed by JarCertVerifier, which although lies in a package 37 37 // with the same name, but bundled in tools.jar and loaded 38 38 // by another class loader, hence in a different *runtime* -
branches/vendor/sourceforge/icedtea-web/current/netx/net/sourceforge/jnlp/util/BasicExceptionDialog.java
r348 r416 83 83 JOptionPane optionPane = new JOptionPane(mainPanel, JOptionPane.ERROR_MESSAGE); 84 84 final JDialog errorDialog = optionPane.createDialog(R("Error")); 85 errorDialog.setIconImages(ImageResources.INSTANCE.getApplicationImages()); 85 86 86 87 final JPanel quickInfoPanel = new JPanel(); -
branches/vendor/sourceforge/icedtea-web/current/netx/net/sourceforge/jnlp/util/PropertiesFile.java
r348 r416 36 36 /** the header string */ 37 37 String header = "netx file"; 38 39 /** lazy loaded on getProperty */40 boolean loaded = false;38 39 /** time of last modification, lazy loaded on getProperty */ 40 long lastStore; 41 41 42 42 /** … … 65 65 */ 66 66 public String getProperty(String key) { 67 if ( !loaded)67 if (lastStore == 0) 68 68 load(); 69 69 … … 76 76 */ 77 77 public String getProperty(String key, String defaultValue) { 78 if ( !loaded)78 if (lastStore == 0) 79 79 load(); 80 80 … … 88 88 */ 89 89 public Object setProperty(String key, String value) { 90 if ( !loaded)90 if (lastStore == 0) 91 91 load(); 92 92 … … 105 105 * loaded; call this method before calling any method defined by 106 106 * a superclass. 107 * 108 * @return true, if file was (re-)loaded 109 * false, if file was still current 107 110 */ 108 public void load() { 109 loaded = true; 111 public boolean load() { 110 112 111 InputStream s = null; 112 try { 113 if (!file.exists()) 114 return; 113 if (!file.exists()) { 114 return false; 115 } 115 116 117 long currentStore = file.lastModified(); 118 long currentTime = System.currentTimeMillis(); 119 120 /* (re)load file, if 121 * - it wasn't loaded/stored, yet (lastStore == 0) 122 * - current file modification timestamp has changed since last store (currentStore != lastStore) OR 123 * - current file modification timestamp has not changed since last store AND current system time equals current file modification timestamp 124 * This is necessary because some filesystems seems only to provide accuracy of the timestamp on the level of seconds! 125 */ 126 if(lastStore == 0 || currentStore != lastStore || (currentStore == lastStore && currentStore / 1000 == currentTime / 1000)) { 127 InputStream s = null; 116 128 try { 117 s = new FileInputStream(file); 118 load(s); 119 } finally { 120 if (s != null) s.close(); 129 130 try { 131 s = new FileInputStream(file); 132 load(s); 133 } finally { 134 if (s != null) { 135 s.close(); 136 lastStore=currentStore; 137 return true; 138 } 139 } 140 } catch (IOException ex) { 141 ex.printStackTrace(); 121 142 } 122 } catch (IOException ex) {123 ex.printStackTrace();124 143 } 144 145 return false; 125 146 } 126 147 … … 129 150 */ 130 151 public void store() { 131 if (!loaded)132 return; // nothing could have changed so save unnecessary load/save133 152 134 OutputStream s = null;153 FileOutputStream s = null; 135 154 try { 136 155 try { 156 file.getParentFile().mkdirs(); 137 157 s = new FileOutputStream(file); 138 158 store(s, header); 159 160 // fsync() 161 s.getChannel().force(true); 162 lastStore = file.lastModified(); 139 163 } finally { 140 164 if (s != null) s.close(); -
branches/vendor/sourceforge/icedtea-web/current/netx/net/sourceforge/nanoxml/XMLElement.java
r348 r416 1167 1167 * xml file. 1168 1168 */ 1169 public void sanitizeInput( InputStreamReader isr, PipedOutputStream pout) {1169 public void sanitizeInput(Reader isr, OutputStream pout) { 1170 1170 try { 1171 1171 PrintStream out = new PrintStream(pout); … … 1221 1221 this.sanitizeCharReadTooMuch = next; 1222 1222 1223 // If the next char is a ? or !, then we've hit a specialtag,1223 // If the next chars are !--, then we've hit a comment tag, 1224 1224 // and should skip it. 1225 if (prev == '<' && (next == '!' || next == '?')) { 1226 this.skipSpecialTag(0); 1227 this.sanitizeCharReadTooMuch = '\0'; 1225 if (ch == '<' && sanitizeCharReadTooMuch == '!') { 1226 ch = (char) this.reader.read(); 1227 if (ch == '-') { 1228 ch = (char) this.reader.read(); 1229 if (ch == '-') { 1230 this.skipComment(); 1231 this.sanitizeCharReadTooMuch = '\0'; 1232 } else { 1233 out.print('<'); 1234 out.print('!'); 1235 out.print('-'); 1236 this.sanitizeCharReadTooMuch = ch; 1237 if (JNLPRuntime.isDebug()) { 1238 System.out.print('<'); 1239 System.out.print('!'); 1240 System.out.print('-'); 1241 } 1242 } 1243 } else { 1244 out.print('<'); 1245 out.print('!'); 1246 this.sanitizeCharReadTooMuch = ch; 1247 if (JNLPRuntime.isDebug()) { 1248 System.out.print('<'); 1249 System.out.print('!'); 1250 } 1251 } 1228 1252 } 1229 1253 // Otherwise we haven't hit a comment, and we should write ch. -
branches/vendor/sourceforge/icedtea-web/current/plugin/icedteanp/IcedTeaJavaRequestProcessor.cc
r348 r416 905 905 { 906 906 className = "java.lang.String"; 907 #if MOZILLA_VERSION_COLLAPSED < 1090200 908 stringArg += NPVARIANT_TO_STRING(variant).utf8characters; 909 #else 910 stringArg += NPVARIANT_TO_STRING(variant).UTF8Characters; 911 #endif 907 stringArg = IcedTeaPluginUtilities::NPVariantAsString(variant); 912 908 } else if (NPVARIANT_IS_OBJECT(variant)) 913 909 { … … 922 918 PLUGIN_DEBUG("NPObject is not a Java object\n"); 923 919 NPIdentifier length_id = browser_functions.getstringidentifier("length"); 920 bool isJSObjectArray = false; 924 921 925 922 // FIXME: We currently only handle <= 2 dim arrays. Do we really need more though? … … 937 934 IcedTeaPluginUtilities::itoa(NPVARIANT_TO_INT32(length), &length_str); 938 935 939 if (NPVARIANT_TO_INT32(length) > 0)936 if (NPVARIANT_TO_INT32(length) >= 0) 940 937 { 941 938 NPIdentifier id_0 = browser_functions.getintidentifier(0); … … 957 954 getArrayTypeForJava(instance, first_element, &java_array_type); 958 955 } 959 } else 960 java_array_type.append("jsobject"); 956 } 957 958 // For JSObject arrays, we create a regular object (accessible via JSObject.getSlot()) 959 if (NPVARIANT_TO_INT32(length) < 0 || !java_array_type.compare("jsobject")) 960 { 961 isJSObjectArray = true; 962 goto createRegularObject; 963 } 961 964 962 965 java_result = java_request.newArray(java_array_type, length_str); … … 996 999 // Got here => no errors above. We're good to return! 997 1000 return; 998 } else // Else it is not an array 1001 } 1002 1003 createRegularObject: 1004 if (!IcedTeaPluginUtilities::isObjectJSArray(instance, obj) || isJSObjectArray) // Else it is not an array 999 1005 { 1000 1006 -
branches/vendor/sourceforge/icedtea-web/current/plugin/icedteanp/IcedTeaNPPlugin.cc
r348 r416 90 90 #define PLUGIN_FULL_NAME PLUGIN_NAME " (using " PLUGIN_VERSION ")" 91 91 #define PLUGIN_DESC "The <a href=\"" PACKAGE_URL "\">" PLUGIN_NAME "</a> executes Java applets." 92 93 #ifdef HAVE_JAVA7 94 #define JPI_VERSION "1.7.0_" JDK_UPDATE_VERSION 95 #define PLUGIN_APPLET_MIME_DESC7 \ 96 "application/x-java-applet;version=1.7:class,jar:IcedTea;" 97 #define PLUGIN_BEAN_MIME_DESC7 \ 98 "application/x-java-bean;version=1.7:class,jar:IcedTea;" 99 #else 100 #define JPI_VERSION "1.6.0_" JDK_UPDATE_VERSION 101 #define PLUGIN_APPLET_MIME_DESC7 102 #define PLUGIN_BEAN_MIME_DESC7 103 #endif 92 104 93 105 #define PLUGIN_MIME_DESC \ … … 108 120 "application/x-java-applet;version=1.5:class,jar:IcedTea;" \ 109 121 "application/x-java-applet;version=1.6:class,jar:IcedTea;" \ 110 "application/x-java-applet;jpi-version=1.6.0_" JDK_UPDATE_VERSION ":class,jar:IcedTea;" \ 122 PLUGIN_APPLET_MIME_DESC7 \ 123 "application/x-java-applet;jpi-version=" JPI_VERSION ":class,jar:IcedTea;" \ 111 124 "application/x-java-bean:class,jar:IcedTea;" \ 112 125 "application/x-java-bean;version=1.1:class,jar:IcedTea;" \ … … 124 137 "application/x-java-bean;version=1.5:class,jar:IcedTea;" \ 125 138 "application/x-java-bean;version=1.6:class,jar:IcedTea;" \ 126 "application/x-java-bean;jpi-version=1.6.0_" JDK_UPDATE_VERSION ":class,jar:IcedTea;" \ 139 PLUGIN_BEAN_MIME_DESC7 \ 140 "application/x-java-bean;jpi-version=" JPI_VERSION ":class,jar:IcedTea;" \ 127 141 "application/x-java-vm-npruntime::IcedTea;" 128 142 … … 250 264 pthread_cond_t cond_message_available = PTHREAD_COND_INITIALIZER; 251 265 266 267 #ifdef LEGACY_GLIB 268 // Returns key from first item stored in hashtable 269 gboolean 270 find_first_item_in_hash_table(gpointer key, gpointer value, gpointer user_data) 271 { 272 user_data = key; 273 return (gboolean)TRUE; 274 } 275 276 int 277 g_strcmp0(char *str1, char *str2) 278 { 279 if (str1 != NULL) 280 return str2 != NULL ? strcmp(str1, str2) : 1; 281 else // str1 == NULL 282 return str2 != NULL ? 1 : 0; 283 } 284 285 286 #endif 287 288 289 /* 290 * Find first member in GHashTable* depending on version of glib 291 */ 292 gpointer getFirstInTableInstance(GHashTable* table) 293 { 294 gpointer id, instance; 295 #ifndef LEGACY_GLIB 296 GHashTableIter iter; 297 g_hash_table_iter_init (&iter, table); 298 g_hash_table_iter_next (&iter, &instance, &id); 299 #else 300 g_hash_table_find(table, (GHRFunc)find_first_item_in_hash_table, &instance); 301 #endif 302 return instance; 303 } 304 252 305 // Functions prefixed by ITNP_ are instance functions. They are called 253 306 // by the browser and operate on instances of ITNPPluginData. … … 375 428 376 429 cleanup_appletviewer_mutex: 377 g_ free (data->appletviewer_mutex);430 g_mutex_free (data->appletviewer_mutex); 378 431 data->appletviewer_mutex = NULL; 379 432 … … 873 926 get_cookie_info(const char* siteAddr, char** cookieString, uint32_t* len) 874 927 { 928 // Only attempt to perform this operation if there is a valid plugin instance 929 if (g_hash_table_size(instance_to_id_map) <= 0) 930 { 931 return NPERR_GENERIC_ERROR; 932 } 875 933 #if MOZILLA_VERSION_COLLAPSED < 1090100 876 934 nsresult rv; … … 916 974 if (browser_functions.getvalueforurl) 917 975 { 918 GHashTableIter iter; 919 gpointer id, instance; 920 921 g_hash_table_iter_init (&iter, instance_to_id_map); 922 g_hash_table_iter_next (&iter, &instance, &id); 923 976 gpointer instance=getFirstInTableInstance(instance_to_id_map); 924 977 return browser_functions.getvalueforurl((NPP) instance, NPNURLVCookie, siteAddr, cookieString, len); 925 978 } else … … 931 984 932 985 return NPERR_NO_ERROR; 986 } 987 988 static NPError 989 set_cookie_info(const char* siteAddr, const char* cookieString, uint32_t len) 990 { 991 // Only attempt to perform this operation if there is a valid plugin instance 992 if (g_hash_table_size(instance_to_id_map) > 0 && browser_functions.getvalueforurl) 993 { 994 // We arbitrarily use the first valid instance we can grab 995 // For an explanation of the logic behind this, see get_cookie_info 996 gpointer instance = getFirstInTableInstance(instance_to_id_map); 997 return browser_functions.setvalueforurl((NPP) instance, NPNURLVCookie, siteAddr, cookieString, len); 998 } 999 1000 return NPERR_GENERIC_ERROR;; 933 1001 } 934 1002 … … 1046 1114 href_id, &href); 1047 1115 1048 // Strip everything after the last "/" 1049 #if MOZILLA_VERSION_COLLAPSED < 1090200 1050 gchar** parts = g_strsplit (NPVARIANT_TO_STRING(href).utf8characters, "/", -1); 1051 #else 1052 gchar** parts = g_strsplit (NPVARIANT_TO_STRING(href).UTF8Characters, "/", -1); 1053 #endif 1054 guint parts_sz = g_strv_length (parts); 1055 1056 std::string location_str; 1057 for (int i=0; i < parts_sz - 1; i++) 1058 { 1059 location_str += parts[i]; 1060 location_str += "/"; 1061 } 1062 1063 documentbase_copy = g_strdup (location_str.c_str()); 1116 std::string href_str = IcedTeaPluginUtilities::NPVariantAsString(href); 1117 documentbase_copy = g_strdup (href_str.c_str()); 1064 1118 1065 1119 // Release references. … … 1151 1205 } 1152 1206 1207 static 1208 void consume_plugin_message(gchar* message) { 1209 // internal plugin related message 1210 gchar** parts = g_strsplit (message, " ", 5); 1211 if (g_str_has_prefix(parts[1], "PluginProxyInfo")) 1212 { 1213 gchar* proxy; 1214 uint32_t len; 1215 1216 gchar* decoded_url = (gchar*) calloc(strlen(parts[4]) + 1, sizeof(gchar)); 1217 IcedTeaPluginUtilities::decodeURL(parts[4], &decoded_url); 1218 PLUGIN_DEBUG("parts[0]=%s, parts[1]=%s, reference, parts[3]=%s, parts[4]=%s -- decoded_url=%s\n", parts[0], parts[1], parts[3], parts[4], decoded_url); 1219 1220 gchar* proxy_info; 1221 1222 #if MOZILLA_VERSION_COLLAPSED < 1090100 1223 proxy = (char*) malloc(sizeof(char)*2048); 1224 #endif 1225 1226 proxy_info = g_strconcat ("plugin PluginProxyInfo reference ", parts[3], " ", NULL); 1227 if (get_proxy_info(decoded_url, &proxy, &len) == NPERR_NO_ERROR) 1228 { 1229 proxy_info = g_strconcat (proxy_info, proxy, NULL); 1230 } 1231 1232 PLUGIN_DEBUG("Proxy info: %s\n", proxy_info); 1233 plugin_send_message_to_appletviewer(proxy_info); 1234 1235 free(decoded_url); 1236 decoded_url = NULL; 1237 g_free(proxy_info); 1238 proxy_info = NULL; 1239 1240 #if MOZILLA_VERSION_COLLAPSED < 1090100 1241 g_free(proxy); 1242 proxy = NULL; 1243 #endif 1244 1245 } else if (g_str_has_prefix(parts[1], "PluginCookieInfo")) 1246 { 1247 gchar* decoded_url = (gchar*) calloc(strlen(parts[4])+1, sizeof(gchar)); 1248 IcedTeaPluginUtilities::decodeURL(parts[4], &decoded_url); 1249 1250 gchar* cookie_info = g_strconcat ("plugin PluginCookieInfo reference ", parts[3], " ", NULL); 1251 gchar* cookie_string; 1252 uint32_t len; 1253 if (get_cookie_info(decoded_url, &cookie_string, &len) == NPERR_NO_ERROR) 1254 { 1255 cookie_info = g_strconcat (cookie_info, cookie_string, NULL); 1256 } 1257 1258 PLUGIN_DEBUG("Cookie info: %s\n", cookie_info); 1259 plugin_send_message_to_appletviewer(cookie_info); 1260 1261 free(decoded_url); 1262 decoded_url = NULL; 1263 g_free(cookie_info); 1264 cookie_info = NULL; 1265 } else if (g_str_has_prefix(parts[1], "PluginSetCookie")) 1266 { 1267 // Message structure: plugin PluginSetCookie reference -1 <url> <cookie> 1268 gchar** cookie_parts = g_strsplit (message, " ", 6); 1269 1270 if (g_strv_length(cookie_parts) < 6) 1271 { 1272 g_strfreev (parts); 1273 g_strfreev (cookie_parts); 1274 return; // Defensive, message _should_ be properly formatted 1275 } 1276 1277 gchar* decoded_url = (gchar*) calloc(strlen(cookie_parts[4])+1, sizeof(gchar)); 1278 IcedTeaPluginUtilities::decodeURL(cookie_parts[4], &decoded_url); 1279 1280 gchar* cookie_string = cookie_parts[5]; 1281 uint32_t len = strlen(cookie_string); 1282 if (set_cookie_info(decoded_url, cookie_string, len) == NPERR_NO_ERROR) 1283 { 1284 PLUGIN_DEBUG("Setting cookie for URL %s to %s\n", decoded_url, cookie_string); 1285 } else 1286 { 1287 PLUGIN_DEBUG("Not able to set cookie for URL %s to %s\n", decoded_url, cookie_string); 1288 } 1289 1290 free(decoded_url); 1291 decoded_url = NULL; 1292 g_strfreev (cookie_parts); 1293 cookie_parts = NULL; 1294 } 1295 1296 g_strfreev (parts); 1297 parts = NULL; 1298 } 1299 1153 1300 void consume_message(gchar* message) { 1154 1301 … … 1180 1327 1181 1328 // clear the "instance X status" parts 1182 s printf(parts[0], "");1183 s printf(parts[1], "");1184 s printf(parts[2], "");1329 strcpy(parts[0], ""); 1330 strcpy(parts[1], ""); 1331 strcpy(parts[2], ""); 1185 1332 1186 1333 // join the rest … … 1213 1360 else if (g_str_has_prefix (message, "plugin ")) 1214 1361 { 1215 // internal plugin related message 1216 gchar** parts = g_strsplit (message, " ", 5); 1217 if (g_str_has_prefix(parts[1], "PluginProxyInfo")) 1218 { 1219 gchar* proxy; 1220 uint32_t len; 1221 1222 gchar* decoded_url = (gchar*) calloc(strlen(parts[4]) + 1, sizeof(gchar)); 1223 IcedTeaPluginUtilities::decodeURL(parts[4], &decoded_url); 1224 PLUGIN_DEBUG("parts[0]=%s, parts[1]=%s, reference, parts[3]=%s, parts[4]=%s -- decoded_url=%s\n", parts[0], parts[1], parts[3], parts[4], decoded_url); 1225 1226 gchar* proxy_info; 1227 1228 #if MOZILLA_VERSION_COLLAPSED < 1090100 1229 proxy = (char*) malloc(sizeof(char)*2048); 1230 #endif 1231 1232 proxy_info = g_strconcat ("plugin PluginProxyInfo reference ", parts[3], " ", NULL); 1233 if (get_proxy_info(decoded_url, &proxy, &len) == NPERR_NO_ERROR) 1234 { 1235 proxy_info = g_strconcat (proxy_info, proxy, NULL); 1236 } 1237 1238 PLUGIN_DEBUG("Proxy info: %s\n", proxy_info); 1239 plugin_send_message_to_appletviewer(proxy_info); 1240 1241 g_free(decoded_url); 1242 decoded_url = NULL; 1243 g_free(proxy_info); 1244 proxy_info = NULL; 1245 1246 #if MOZILLA_VERSION_COLLAPSED < 1090100 1247 g_free(proxy); 1248 proxy = NULL; 1249 #endif 1250 1251 } else if (g_str_has_prefix(parts[1], "PluginCookieInfo")) 1252 { 1253 gchar* decoded_url = (gchar*) calloc(strlen(parts[4])+1, sizeof(gchar)); 1254 IcedTeaPluginUtilities::decodeURL(parts[4], &decoded_url); 1255 1256 gchar* cookie_info = g_strconcat ("plugin PluginCookieInfo reference ", parts[3], " ", NULL); 1257 gchar* cookie_string; 1258 uint32_t len; 1259 if (get_cookie_info(decoded_url, &cookie_string, &len) == NPERR_NO_ERROR) 1260 { 1261 cookie_info = g_strconcat (cookie_info, cookie_string, NULL); 1262 } 1263 1264 PLUGIN_DEBUG("Cookie info: %s\n", cookie_info); 1265 plugin_send_message_to_appletviewer(cookie_info); 1266 1267 g_free(decoded_url); 1268 decoded_url = NULL; 1269 g_free(cookie_info); 1270 cookie_info = NULL; 1271 } 1362 consume_plugin_message(message); 1272 1363 } 1273 1364 else … … 1275 1366 g_print (" Unable to handle message: %s\n", message); 1276 1367 } 1368 1277 1369 } 1278 1370 … … 1294 1386 get_proxy_info(const char* siteAddr, char** proxy, uint32_t* len) 1295 1387 { 1388 // Only attempt to perform this operation if there is a valid plugin instance 1389 if (g_hash_table_size(instance_to_id_map) <= 0) 1390 { 1391 return NPERR_GENERIC_ERROR; 1392 } 1296 1393 #if MOZILLA_VERSION_COLLAPSED < 1090100 1297 1394 nsresult rv; … … 1368 1465 1369 1466 // As in get_cookie_info, we use the first active instance 1370 GHashTableIter iter; 1371 gpointer id, instance; 1372 1373 g_hash_table_iter_init (&iter, instance_to_id_map); 1374 g_hash_table_iter_next (&iter, &instance, &id); 1375 1467 gpointer instance=getFirstInTableInstance(instance_to_id_map); 1376 1468 browser_functions.getvalueforurl((NPP) instance, NPNURLVProxy, siteAddr, proxy, len); 1377 1469 } else … … 1958 2050 1959 2051 // cleanup_appletviewer_mutex: 1960 g_ free (tofree->appletviewer_mutex);2052 g_mutex_free (tofree->appletviewer_mutex); 1961 2053 tofree->appletviewer_mutex = NULL; 1962 2054 … … 1981 2073 } 1982 2074 1983 // FACTORY FUNCTIONS 1984 1985 // Provides the browser with pointers to the plugin functions that we 1986 // implement and initializes a local table with browser functions that 1987 // we may wish to call. Called once, after browser startup and before 1988 // the first plugin instance is created. 1989 // The field 'initialized' is set to true once this function has 1990 // finished. If 'initialized' is already true at the beginning of 1991 // this function, then it is evident that NP_Initialize has already 1992 // been called. There is no need to call this function more than once and 1993 // this workaround avoids any duplicate calls. 1994 NPError 1995 NP_Initialize (NPNetscapeFuncs* browserTable, NPPluginFuncs* pluginTable) 1996 { 1997 PLUGIN_DEBUG ("NP_Initialize\n"); 1998 1999 if ((browserTable == NULL) || (pluginTable == NULL)) 2075 static bool 2076 initialize_browser_functions(const NPNetscapeFuncs* browserTable) 2077 { 2078 #if MOZILLA_VERSION_COLLAPSED < 1090100 2079 #define NPNETSCAPEFUNCS_LAST_FIELD_USED (browserTable->pluginthreadasynccall) 2080 #else 2081 #define NPNETSCAPEFUNCS_LAST_FIELD_USED (browserTable->setvalueforurl) 2082 #endif 2083 2084 //Determine the size in bytes, as a difference of the address past the last used field 2085 //And the browser table address 2086 size_t usedSize = (char*)(1 + &NPNETSCAPEFUNCS_LAST_FIELD_USED) - (char*)browserTable; 2087 2088 // compare the reported size versus the size we required 2089 if (browserTable->size < usedSize) 2000 2090 { 2001 PLUGIN_ERROR ("Browser or plugin function table is NULL."); 2002 2003 return NPERR_INVALID_FUNCTABLE_ERROR; 2091 return false; 2004 2092 } 2005 2093 2006 // Ensure that the major version of the plugin API that the browser 2007 // expects is not more recent than the major version of the API that 2008 // we've implemented. 2009 if ((browserTable->version >> 8) > NP_VERSION_MAJOR) 2010 { 2011 PLUGIN_ERROR ("Incompatible version."); 2012 2013 return NPERR_INCOMPATIBLE_VERSION_ERROR; 2014 } 2015 2016 // Ensure that the plugin function table we've received is large 2017 // enough to store the number of functions that we may provide. 2018 if (pluginTable->size < sizeof (NPPluginFuncs)) 2019 { 2020 PLUGIN_ERROR ("Invalid plugin function table."); 2021 2022 return NPERR_INVALID_FUNCTABLE_ERROR; 2023 } 2024 2025 // Ensure that the browser function table is large enough to store 2026 // the number of browser functions that we may use. 2027 if (browserTable->size < sizeof (NPNetscapeFuncs)) 2028 { 2029 fprintf (stderr, "ERROR: Invalid browser function table. Some functionality may be restricted.\n"); 2030 } 2031 2032 // Store in a local table the browser functions that we may use. 2033 browser_functions.size = browserTable->size; 2034 browser_functions.version = browserTable->version; 2035 browser_functions.geturlnotify = browserTable->geturlnotify; 2036 browser_functions.geturl = browserTable->geturl; 2037 browser_functions.posturlnotify = browserTable->posturlnotify; 2038 browser_functions.posturl = browserTable->posturl; 2039 browser_functions.requestread = browserTable->requestread; 2040 browser_functions.newstream = browserTable->newstream; 2041 browser_functions.write = browserTable->write; 2042 browser_functions.destroystream = browserTable->destroystream; 2043 browser_functions.status = browserTable->status; 2044 browser_functions.uagent = browserTable->uagent; 2045 browser_functions.memalloc = browserTable->memalloc; 2046 browser_functions.memfree = browserTable->memfree; 2047 browser_functions.memflush = browserTable->memflush; 2048 browser_functions.reloadplugins = browserTable->reloadplugins; 2049 browser_functions.getJavaEnv = browserTable->getJavaEnv; 2050 browser_functions.getJavaPeer = browserTable->getJavaPeer; 2051 browser_functions.getvalue = browserTable->getvalue; 2052 browser_functions.setvalue = browserTable->setvalue; 2053 browser_functions.invalidaterect = browserTable->invalidaterect; 2054 browser_functions.invalidateregion = browserTable->invalidateregion; 2055 browser_functions.forceredraw = browserTable->forceredraw; 2056 browser_functions.getstringidentifier = browserTable->getstringidentifier; 2057 browser_functions.getstringidentifiers = browserTable->getstringidentifiers; 2058 browser_functions.getintidentifier = browserTable->getintidentifier; 2059 browser_functions.identifierisstring = browserTable->identifierisstring; 2060 browser_functions.utf8fromidentifier = browserTable->utf8fromidentifier; 2061 browser_functions.intfromidentifier = browserTable->intfromidentifier; 2062 browser_functions.createobject = browserTable->createobject; 2063 browser_functions.retainobject = browserTable->retainobject; 2064 browser_functions.releaseobject = browserTable->releaseobject; 2065 browser_functions.invoke = browserTable->invoke; 2066 browser_functions.invokeDefault = browserTable->invokeDefault; 2067 browser_functions.evaluate = browserTable->evaluate; 2068 browser_functions.getproperty = browserTable->getproperty; 2069 browser_functions.setproperty = browserTable->setproperty; 2070 browser_functions.removeproperty = browserTable->removeproperty; 2071 browser_functions.hasproperty = browserTable->hasproperty; 2072 browser_functions.hasmethod = browserTable->hasmethod; 2073 browser_functions.releasevariantvalue = browserTable->releasevariantvalue; 2074 browser_functions.setexception = browserTable->setexception; 2075 browser_functions.pluginthreadasynccall = browserTable->pluginthreadasynccall; 2076 #if MOZILLA_VERSION_COLLAPSED >= 1090100 2077 browser_functions.getvalueforurl = browserTable->getvalueforurl; 2078 browser_functions.setvalueforurl = browserTable->setvalueforurl; 2079 #endif 2080 2081 // Return to the browser the plugin functions that we implement. 2094 //Ensure any unused fields are NULL 2095 memset(&browser_functions, 0, sizeof(NPNetscapeFuncs)); 2096 2097 //browserTable->size can be larger than sizeof(NPNetscapeFuncs) (PR1106) 2098 size_t copySize = browserTable->size < sizeof(NPNetscapeFuncs) ? 2099 browserTable->size : sizeof(NPNetscapeFuncs); 2100 2101 //Copy fields according to given size 2102 memcpy(&browser_functions, browserTable, copySize); 2103 2104 return true; 2105 } 2106 2107 /* Set the plugin table to the correct contents, taking care not to write past 2108 * the provided object space */ 2109 static bool 2110 initialize_plugin_table(NPPluginFuncs* pluginTable) 2111 { 2112 #define NPPLUGINFUNCS_LAST_FIELD_USED (pluginTable->getvalue) 2113 2114 //Determine the size in bytes, as a difference of the address past the last used field 2115 //And the browser table address 2116 size_t usedSize = (char*)(1 + &NPPLUGINFUNCS_LAST_FIELD_USED) - (char*)pluginTable; 2117 2118 // compare the reported size versus the size we required 2119 if (pluginTable->size < usedSize) 2120 return false; 2121 2082 2122 pluginTable->version = (NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR; 2083 2123 pluginTable->size = sizeof (NPPluginFuncs); … … 2109 2149 #endif 2110 2150 2151 return true; 2152 } 2153 2154 // FACTORY FUNCTIONS 2155 2156 // Provides the browser with pointers to the plugin functions that we 2157 // implement and initializes a local table with browser functions that 2158 // we may wish to call. Called once, after browser startup and before 2159 // the first plugin instance is created. 2160 // The field 'initialized' is set to true once this function has 2161 // finished. If 'initialized' is already true at the beginning of 2162 // this function, then it is evident that NP_Initialize has already 2163 // been called. There is no need to call this function more than once and 2164 // this workaround avoids any duplicate calls. 2165 NPError 2166 NP_Initialize (NPNetscapeFuncs* browserTable, NPPluginFuncs* pluginTable) 2167 { 2168 PLUGIN_DEBUG ("NP_Initialize\n"); 2169 2170 if ((browserTable == NULL) || (pluginTable == NULL)) 2171 { 2172 PLUGIN_ERROR ("Browser or plugin function table is NULL."); 2173 2174 return NPERR_INVALID_FUNCTABLE_ERROR; 2175 } 2176 2177 // Ensure that the major version of the plugin API that the browser 2178 // expects is not more recent than the major version of the API that 2179 // we've implemented. 2180 if ((browserTable->version >> 8) > NP_VERSION_MAJOR) 2181 { 2182 PLUGIN_ERROR ("Incompatible version."); 2183 2184 return NPERR_INCOMPATIBLE_VERSION_ERROR; 2185 } 2186 2187 // Copy into a global table (browser_functions) the browser functions that we may use. 2188 // If the browser functions needed change, update NPNETSCAPEFUNCS_LAST_FIELD_USED 2189 // within this function 2190 bool browser_functions_supported = initialize_browser_functions(browserTable); 2191 2192 // Check if everything we rely on is supported 2193 if ( !browser_functions_supported ) 2194 { 2195 PLUGIN_ERROR ("Invalid browser function table."); 2196 2197 return NPERR_INVALID_FUNCTABLE_ERROR; 2198 } 2199 2200 // Return to the browser the plugin functions that we implement. 2201 // If the plugin functions needed change, update NPPLUGINFUNCS_LAST_FIELD_USED 2202 // within this function 2203 bool plugin_functions_supported = initialize_plugin_table(pluginTable); 2204 2205 // Check if everything we rely on is supported 2206 if ( !plugin_functions_supported ) 2207 { 2208 PLUGIN_ERROR ("Invalid plugin function table."); 2209 2210 return NPERR_INVALID_FUNCTABLE_ERROR; 2211 } 2212 2111 2213 // Re-setting the above tables multiple times is OK (as the 2112 2214 // browser may change its function locations). However … … 2263 2365 // Returns a string describing the MIME type that this plugin 2264 2366 // handles. 2265 char* 2367 #ifdef LEGACY_XULRUNNERAPI 2368 char* 2369 #else 2370 const char* 2371 #endif 2266 2372 NP_GetMIMEDescription () 2267 2373 { -
branches/vendor/sourceforge/icedtea-web/current/plugin/icedteanp/IcedTeaPluginRequestProcessor.cc
r348 r416 124 124 this->sendWindow(message_parts); 125 125 return true; 126 } else if (!command->find("Finalize")) 127 { 128 // Object can be finalized from the main thread only. And this 129 // call returns immediately, so we do it in the same thread. 130 this->finalize(message_parts); 131 return true; 126 132 } else if (!command->find("GetMember") || 127 133 !command->find("SetMember") || … … 131 137 !command->find("SetSlot") || 132 138 !command->find("Eval") || 133 !command->find("Finalize") ||134 139 !command->find("LoadURL")) 135 140 { … … 242 247 IcedTeaPluginUtilities::callAndWaitForResult(instance, &_eval, &thread_data); 243 248 244 NPVariant* result_variant = (NPVariant*) IcedTeaPluginUtilities::stringToJSID(thread_data.result);245 std::string result_variant_jniid = std::string();246 createJavaObjectFromVariant(instance, *result_variant, &result_variant_jniid);247 248 249 IcedTeaPluginUtilities::constructMessagePrefix(0, reference, &response); 249 250 response += " JavaScriptEval "; 250 response += result_variant_jniid;251 response += thread_data.result; 251 252 252 253 plugin_to_java_bus->post(response.c_str()); … … 275 276 NPVariant* result_variant; 276 277 std::string result_variant_jniid = std::string(); 277 NPVariant* args_array ;278 NPVariant* args_array = NULL; 278 279 AsyncCallThreadData thread_data = AsyncCallThreadData(); 279 280 … … 331 332 IcedTeaPluginUtilities::callAndWaitForResult(instance, &_call, &thread_data); 332 333 333 result_variant = (NPVariant*) IcedTeaPluginUtilities::stringToJSID(thread_data.result);334 335 if (result_variant)336 {337 createJavaObjectFromVariant(instance, *result_variant, &result_variant_jniid);338 } else339 {340 result_variant_jniid = "0";341 }342 343 334 IcedTeaPluginUtilities::constructMessagePrefix(0, reference, &response); 344 335 response += " JavaScriptCall "; 345 response += result_variant_jniid;336 response += thread_data.result; 346 337 347 338 plugin_to_java_bus->post(response.c_str()); … … 410 401 NPP instance; 411 402 NPVariant* member; 412 NPIdentifier property_identifier; 403 std::string property_id = std::string(); 404 bool int_identifier; 413 405 414 406 JavaRequestProcessor java_request = JavaRequestProcessor(); … … 440 432 if (*(message_parts->at(4)) == "SetSlot") 441 433 { 442 property_identifier = browser_functions.getintidentifier(atoi(message_parts->at(6)->c_str())); 434 property_id.append(*(message_parts->at(6))); 435 int_identifier = true; 443 436 } else 444 437 { … … 452 445 } 453 446 454 property_identifier = browser_functions.getstringidentifier(java_result->return_string->c_str()); 447 property_id.append(*(java_result->return_string)); 448 int_identifier = false; 455 449 } 456 450 … … 462 456 thread_data.parameters.push_back(instance); 463 457 thread_data.parameters.push_back(NPVARIANT_TO_OBJECT(*member)); 464 thread_data.parameters.push_back(&property_id entifier);458 thread_data.parameters.push_back(&property_id); 465 459 thread_data.parameters.push_back(&value); 460 thread_data.parameters.push_back(&int_identifier); 466 461 467 462 IcedTeaPluginUtilities::callAndWaitForResult(instance, &_setMember, &thread_data); … … 478 473 * can only be requested from the main thread in Mozilla, this function 479 474 * does whatever it can seperately, and then makes an internal request that 480 * causes _ sendMember to do the rest of the work.475 * causes _getMember to do the rest of the work. 481 476 * 482 477 * @param message_parts The request message … … 491 486 JavaResultData* java_result; 492 487 NPVariant* parent_ptr; 488 NPVariant* member_ptr; 493 489 494 490 //int reference; 495 491 std::string member_id = std::string(); 496 std::string jsObjectClassID = std::string();497 std::string jsObjectConstructorID = std::string();498 492 std::string response = std::string(); 493 std::string result_id = std::string(); 499 494 500 495 NPIdentifier member_identifier; … … 503 498 int instance_id; 504 499 int reference; 500 bool int_identifier; 505 501 506 502 // debug printout of parent thread data … … 517 513 if (*(message_parts->at(4)) == "GetSlot") 518 514 { 519 member_identifier = browser_functions.getintidentifier(atoi(member_id.c_str()));515 int_identifier=true; 520 516 } else 521 517 { … … 530 526 } 531 527 532 member_identifier = browser_functions.getstringidentifier(java_result->return_string->c_str()); 528 member_id.assign(*(java_result->return_string)); 529 int_identifier=false; 533 530 } 534 531 … … 546 543 thread_data.parameters.push_back(instance); 547 544 thread_data.parameters.push_back(NPVARIANT_TO_OBJECT(*parent_ptr)); 548 thread_data.parameters.push_back(&member_identifier); 545 thread_data.parameters.push_back(&member_id); 546 thread_data.parameters.push_back(&int_identifier); 549 547 550 548 IcedTeaPluginUtilities::callAndWaitForResult(instance, &_getMember, &thread_data); 551 549 552 PLUGIN_DEBUG("Member PTR after internal request: %s\n", thread_data.result.c_str());553 554 java_result = java_request.findClass(0, "netscape.javascript.JSObject");555 556 // the result we want is in result_string (assuming there was no error)557 if (java_result->error_occurred)558 {559 printf("Unable to process getMember request. Error occurred: %s\n", java_result->error_msg->c_str());560 //goto cleanup;561 }562 563 jsObjectClassID.append(*(java_result->return_string));564 565 args = std::vector<std::string>();566 std::string longArg = "J";567 args.push_back(longArg);568 569 java_result = java_request.getMethodID(jsObjectClassID,570 browser_functions.getstringidentifier("<init>"),571 args);572 573 // the result we want is in result_string (assuming there was no error)574 if (java_result->error_occurred)575 {576 printf("Unable to process getMember request. Error occurred: %s\n", java_result->error_msg->c_str());577 //goto cleanup;578 }579 580 jsObjectConstructorID.append(*(java_result->return_string));581 582 // We have the method id. Now create a new object.583 584 args.clear();585 args.push_back(thread_data.result);586 java_result = java_request.newObjectWithConstructor("",587 jsObjectClassID,588 jsObjectConstructorID,589 args);590 591 // the result we want is in result_string (assuming there was no error)592 if (java_result->error_occurred)593 {594 printf("Unable to process getMember request. Error occurred: %s\n", java_result->error_msg->c_str());595 //goto cleanup;596 }597 598 599 550 IcedTeaPluginUtilities::constructMessagePrefix(0, reference, &response); 600 if (*(message_parts->at(2)) == "GetSlot") 601 { 551 if (*(message_parts->at(4)) == "GetSlot") 552 { 553 response.append(" JavaScriptGetSlot "); 554 } else { 602 555 response.append(" JavaScriptGetMember "); 603 } else { 604 response.append(" JavaScriptGetSlot "); 605 } 606 response.append(java_result->return_string->c_str()); 556 } 557 response.append(thread_data.result); 607 558 plugin_to_java_bus->post(response.c_str()); 608 559 } … … 756 707 processor->setMember(message_parts); 757 708 pthread_mutex_unlock(&syn_write_mutex); 758 } else if (command == "Finalize")759 {760 // write methods are synchronized761 pthread_mutex_lock(&syn_write_mutex);762 processor->finalize(message_parts);763 pthread_mutex_unlock(&syn_write_mutex);764 709 } else if (command == "LoadURL") // For instance X url <url> <target> 765 710 { … … 804 749 NPVariant value_variant = NPVariant(); 805 750 NPObject* member; 806 NPIdentifier* property; 751 NPIdentifier property_identifier; 752 807 753 808 754 std::vector<void*> parameters = ((AsyncCallThreadData*) data)->parameters; 809 755 instance = (NPP) parameters.at(0); 810 756 member = (NPObject*) parameters.at(1); 811 property = (NPIdentifier*) parameters.at(2);757 std::string* property_id = (std::string*) parameters.at(2); 812 758 value = (std::string*) parameters.at(3); 813 814 PLUGIN_DEBUG("Setting %s on instance %p, object %p to value %s\n", browser_functions.utf8fromidentifier(*property), instance, member, value->c_str()); 759 bool* int_identifier = (bool*) parameters.at(4); 760 761 if(*int_identifier==true) 762 property_identifier = browser_functions.getintidentifier(atoi(property_id->c_str())); 763 else 764 property_identifier = browser_functions.getstringidentifier(property_id->c_str()); 765 766 PLUGIN_DEBUG("Setting %s on instance %p, object %p to value %s\n", browser_functions.utf8fromidentifier(property_identifier), instance, member, value->c_str()); 815 767 816 768 IcedTeaPluginUtilities::javaResultToNPVariant(instance, value, &value_variant); 817 769 818 ((AsyncCallThreadData*) data)->call_successful = browser_functions.setproperty(instance, member, *property, &value_variant);770 ((AsyncCallThreadData*) data)->call_successful = browser_functions.setproperty(instance, member, property_identifier, &value_variant); 819 771 820 772 ((AsyncCallThreadData*) data)->result_ready = true; … … 833 785 instance = (NPP) parameters.at(0); 834 786 parent_ptr = (NPObject*) parameters.at(1); 835 NPIdentifier* member_identifier = (NPIdentifier*) parameters.at(2); 787 std::string* member_id = (std::string*) parameters.at(2); 788 NPIdentifier member_identifier; 789 790 bool* int_identifier = (bool*) parameters.at(3); 791 792 if(*int_identifier==true) 793 member_identifier = browser_functions.getintidentifier(atoi(member_id->c_str())); 794 else 795 member_identifier = browser_functions.getstringidentifier(member_id->c_str()); 836 796 837 797 // Get the NPVariant corresponding to this member 838 PLUGIN_DEBUG("Looking for %p %p %p (%s)\n", instance, parent_ptr, member_identifier, browser_functions.utf8fromidentifier( *member_identifier));839 840 if (!browser_functions.hasproperty(instance, parent_ptr, *member_identifier))841 { 842 printf("%s not found!\n", browser_functions.utf8fromidentifier( *member_identifier));843 } 844 ((AsyncCallThreadData*) data)->call_successful = browser_functions.getproperty(instance, parent_ptr, *member_identifier, member_ptr);798 PLUGIN_DEBUG("Looking for %p %p %p (%s)\n", instance, parent_ptr, member_identifier, browser_functions.utf8fromidentifier(member_identifier)); 799 800 if (!browser_functions.hasproperty(instance, parent_ptr, member_identifier)) 801 { 802 printf("%s not found!\n", browser_functions.utf8fromidentifier(member_identifier)); 803 } 804 ((AsyncCallThreadData*) data)->call_successful = browser_functions.getproperty(instance, parent_ptr, member_identifier, member_ptr); 845 805 846 806 IcedTeaPluginUtilities::printNPVariant(*member_ptr); … … 848 808 if (((AsyncCallThreadData*) data)->call_successful) 849 809 { 850 IcedTeaPluginUtilities::JSIDToString(member_ptr, &member_ptr_str);810 createJavaObjectFromVariant(instance, *member_ptr, &member_ptr_str); 851 811 ((AsyncCallThreadData*) data)->result.append(member_ptr_str); 812 852 813 } 853 814 ((AsyncCallThreadData*) data)->result_ready = true; … … 867 828 NPIdentifier script_identifier; 868 829 NPString script = NPString(); 869 NPVariant* eval_ result = new NPVariant();870 std::string eval_ result_ptr_str = std::string();830 NPVariant* eval_variant = new NPVariant(); 831 std::string eval_variant_str = std::string(); 871 832 872 833 PLUGIN_DEBUG("_eval called\n"); … … 882 843 script.utf8length = script_str->size(); 883 844 884 PLUGIN_DEBUG("Evaluating: %s\n", script .utf8characters);845 PLUGIN_DEBUG("Evaluating: %s\n", script_str->c_str()); 885 846 #else 886 847 script.UTF8Characters = script_str->c_str(); 887 848 script.UTF8Length = script_str->size(); 888 849 889 PLUGIN_DEBUG("Evaluating: %s\n", script .UTF8Characters);850 PLUGIN_DEBUG("Evaluating: %s\n", script_str->c_str()); 890 851 #endif 891 852 892 ((AsyncCallThreadData*) data)->call_successful = browser_functions.evaluate(instance, window_ptr, &script, eval_ result);893 IcedTeaPluginUtilities::printNPVariant(*eval_ result);853 ((AsyncCallThreadData*) data)->call_successful = browser_functions.evaluate(instance, window_ptr, &script, eval_variant); 854 IcedTeaPluginUtilities::printNPVariant(*eval_variant); 894 855 895 856 if (((AsyncCallThreadData*) data)->call_successful) 896 857 { 897 IcedTeaPluginUtilities::JSIDToString(eval_result, &eval_result_ptr_str); 898 ((AsyncCallThreadData*) data)->result.append(eval_result_ptr_str); 899 } 858 if (eval_variant) 859 { 860 createJavaObjectFromVariant(instance, *eval_variant, &eval_variant_str); 861 } else 862 { 863 eval_variant_str = "0"; 864 } 865 } else 866 { 867 eval_variant_str = "0"; 868 } 869 870 ((AsyncCallThreadData*) data)->result.append(eval_variant_str); 900 871 ((AsyncCallThreadData*) data)->result_ready = true; 901 872 … … 940 911 if (((AsyncCallThreadData*) data)->call_successful) 941 912 { 942 IcedTeaPluginUtilities::JSIDToString(call_result, &call_result_ptr_str); 943 ((AsyncCallThreadData*) data)->result.append(call_result_ptr_str); 944 } 945 913 914 if (call_result) 915 { 916 createJavaObjectFromVariant(instance, *call_result, &call_result_ptr_str); 917 } else 918 { 919 call_result_ptr_str = "0"; 920 } 921 } else 922 { 923 call_result_ptr_str = "0"; 924 } 925 926 ((AsyncCallThreadData*) data)->result.append(call_result_ptr_str); 946 927 ((AsyncCallThreadData*) data)->result_ready = true; 947 928 … … 1014 995 ((AsyncCallThreadData*) data)->result_ready = true; 1015 996 1016 g_free(decoded_url);997 free(decoded_url); 1017 998 decoded_url = NULL; 1018 999 -
branches/vendor/sourceforge/icedtea-web/current/plugin/icedteanp/IcedTeaPluginUtils.cc
r348 r416 147 147 IcedTeaPluginUtilities::JSIDToString(void* id, std::string* result) 148 148 { 149 150 char* id_str = (char*) malloc(sizeof(char)*20); // max = long long = 8446744073709551615 == 19 chars 149 char id_str[NUM_STR_BUFFER_SIZE]; 151 150 152 151 if (sizeof(void*) == sizeof(long long)) 153 152 { 154 s printf(id_str, "%llu", id);153 snprintf(id_str, NUM_STR_BUFFER_SIZE, "%llu", id); 155 154 } 156 155 else 157 156 { 158 s printf(id_str, "%lu", id); // else use long157 snprintf(id_str, NUM_STR_BUFFER_SIZE, "%lu", id); // else use long 159 158 } 160 159 … … 162 161 163 162 PLUGIN_DEBUG("Converting pointer %p to %s\n", id, id_str); 164 free(id_str);165 163 } 166 164 … … 258 256 IcedTeaPluginUtilities::itoa(int i, std::string* result) 259 257 { 260 // largest possible integer is 10 digits long 261 char* int_str = (char*) malloc(sizeof(char)*11); 262 sprintf(int_str, "%d", i); 258 char int_str[NUM_STR_BUFFER_SIZE]; 259 snprintf(int_str, NUM_STR_BUFFER_SIZE, "%d", i); 263 260 result->append(int_str); 264 265 free(int_str);266 261 } 267 262 … … 293 288 * @param str The string to split 294 289 * @param The delimiters to split on 295 * @return A string vector containing the aplit components290 * @return A string vector containing the split components 296 291 */ 297 292 … … 303 298 char* copy; 304 299 305 // Tokeni ngis done on a copy300 // Tokenization is done on a copy 306 301 copy = (char*) malloc (sizeof(char)*strlen(str) + 1); 307 302 strcpy(copy, str); … … 314 309 // Allocation on heap since caller has no way to knowing how much will 315 310 // be needed. Make sure caller cleans up! 316 317 318 319 tok_ptr = strtok (NULL, " ");311 std::string* s = new std::string(); 312 s->append(tok_ptr); 313 v->push_back(s); 314 tok_ptr = strtok (NULL, delim); 320 315 } 316 free(copy); 321 317 322 318 return v; … … 372 368 ostream << length; 373 369 374 // UTF-8 characters are 4-bytes max + space + '\0' 375 char* hex_value = (char*) malloc(sizeof(char)*10); 370 char hex_value[NUM_STR_BUFFER_SIZE]; 376 371 377 372 for (int i = 0; i < str->length(); i++) 378 373 { 379 s printf(hex_value," %hx", str->at(i));374 snprintf(hex_value, NUM_STR_BUFFER_SIZE," %hx", str->at(i)); 380 375 ostream << hex_value; 381 376 } … … 384 379 *utf_str = ostream.str(); 385 380 386 free(hex_value);387 381 PLUGIN_DEBUG("Converted %s to UTF-8 string %s\n", str->c_str(), utf_str->c_str()); 388 382 } … … 669 663 else if (NPVARIANT_IS_STRING(variant)) 670 664 { 671 #if MOZILLA_VERSION_COLLAPSED < 1090200 672 PLUGIN_DEBUG("STRING: %s\n", NPVARIANT_TO_STRING(variant).utf8characters); 673 #else 674 PLUGIN_DEBUG("STRING: %s\n", NPVARIANT_TO_STRING(variant).UTF8Characters); 675 #endif 665 std::string str = IcedTeaPluginUtilities::NPVariantAsString(variant); 666 PLUGIN_DEBUG("STRING: %s (length=%d)\n", str.c_str(), str.size()); 676 667 } 677 668 else … … 684 675 IcedTeaPluginUtilities::NPVariantToString(NPVariant variant, std::string* result) 685 676 { 686 char* str = (char*) malloc(sizeof(char)*32); // enough for everything except string 687 688 if (NPVARIANT_IS_VOID(variant)) 689 { 690 sprintf(str, "%p", variant); 691 } 692 else if (NPVARIANT_IS_NULL(variant)) 693 { 694 sprintf(str, "NULL"); 695 } 696 else if (NPVARIANT_IS_BOOLEAN(variant)) 697 { 698 if (NPVARIANT_TO_BOOLEAN(variant)) 699 sprintf(str, "true"); 700 else 701 sprintf(str, "false"); 702 } 703 else if (NPVARIANT_IS_INT32(variant)) 704 { 705 sprintf(str, "%d", NPVARIANT_TO_INT32(variant)); 706 } 707 else if (NPVARIANT_IS_DOUBLE(variant)) 708 { 709 sprintf(str, "%f", NPVARIANT_TO_DOUBLE(variant));; 710 } 711 else if (NPVARIANT_IS_STRING(variant)) 712 { 713 free(str); 714 #if MOZILLA_VERSION_COLLAPSED < 1090200 715 str = (char*) malloc(sizeof(char)*NPVARIANT_TO_STRING(variant).utf8length); 716 sprintf(str, "%s", NPVARIANT_TO_STRING(variant).utf8characters); 717 #else 718 str = (char*) malloc(sizeof(char)*NPVARIANT_TO_STRING(variant).UTF8Length); 719 sprintf(str, "%s", NPVARIANT_TO_STRING(variant).UTF8Characters); 720 #endif 721 } 677 char conv_str[NUM_STR_BUFFER_SIZE]; // conversion buffer 678 bool was_string_already = false; 679 680 if (NPVARIANT_IS_STRING(variant)) 681 { 682 result->append(IcedTeaPluginUtilities::NPVariantAsString(variant)); 683 was_string_already = true; 684 } 685 else if (NPVARIANT_IS_VOID(variant)) 686 { 687 snprintf(conv_str, NUM_STR_BUFFER_SIZE, "%p", variant); 688 } 689 else if (NPVARIANT_IS_NULL(variant)) 690 { 691 snprintf(conv_str, NUM_STR_BUFFER_SIZE, "NULL"); 692 } 693 else if (NPVARIANT_IS_BOOLEAN(variant)) 694 { 695 if (NPVARIANT_TO_BOOLEAN(variant)) 696 snprintf(conv_str, NUM_STR_BUFFER_SIZE, "true"); 722 697 else 723 { 724 sprintf(str, "[Object %p]", variant); 725 } 726 727 result->append(str); 728 free(str); 698 snprintf(conv_str, NUM_STR_BUFFER_SIZE, "false"); 699 } 700 else if (NPVARIANT_IS_INT32(variant)) 701 { 702 snprintf(conv_str, NUM_STR_BUFFER_SIZE, "%d", NPVARIANT_TO_INT32(variant)); 703 } 704 else if (NPVARIANT_IS_DOUBLE(variant)) 705 { 706 snprintf(conv_str, NUM_STR_BUFFER_SIZE, "%f", NPVARIANT_TO_DOUBLE(variant)); 707 } 708 else 709 { 710 snprintf(conv_str, NUM_STR_BUFFER_SIZE, "[Object %p]", variant); 711 } 712 713 if (!was_string_already){ 714 result->append(conv_str); 715 } 729 716 } 730 717 … … 865 852 IcedTeaPluginUtilities::printNPVariant(constructor_str); 866 853 867 std::string constructor_name = std::string(); 868 869 #if MOZILLA_VERSION_COLLAPSED < 1090200 870 constructor_name.append(NPVARIANT_TO_STRING(constructor_str).utf8characters); 871 #else 872 constructor_name.append(NPVARIANT_TO_STRING(constructor_str).UTF8Characters); 873 #endif 854 std::string constructor_name = IcedTeaPluginUtilities::NPVariantAsString(constructor_str); 874 855 875 856 PLUGIN_DEBUG("Constructor for NPObject is %s\n", constructor_name.c_str()); … … 914 895 } 915 896 897 /* Copies a variant data type into a C++ string */ 898 std::string 899 IcedTeaPluginUtilities::NPVariantAsString(NPVariant variant) 900 { 901 #if MOZILLA_VERSION_COLLAPSED < 1090200 902 return std::string( 903 NPVARIANT_TO_STRING(variant).utf8characters, 904 NPVARIANT_TO_STRING(variant).utf8length); 905 #else 906 return std::string( 907 NPVARIANT_TO_STRING(variant).UTF8Characters, 908 NPVARIANT_TO_STRING(variant).UTF8Length); 909 #endif 910 } 916 911 917 912 /** … … 1067 1062 PLUGIN_DEBUG("Error: Unable to initialize message queue mutex: %d\n", ret); 1068 1063 1069 PLUGIN_DEBUG("Mutex s %p and %p initialized\n", &subscriber_mutex, &msg_queue_mutex);1064 PLUGIN_DEBUG("Mutexes %p and %p initialized\n", &subscriber_mutex, &msg_queue_mutex); 1070 1065 } 1071 1066 … … 1131 1126 MessageBus::post(const char* message) 1132 1127 { 1133 char* msg = (char*) malloc(sizeof(char)*strlen(message) + 1);1134 1128 bool message_consumed = false; 1135 1136 // consumer frees this memory1137 strcpy(msg, message);1138 1129 1139 1130 PLUGIN_DEBUG("Trying to lock %p...\n", &msg_queue_mutex); 1140 1131 pthread_mutex_lock(&subscriber_mutex); 1141 1132 1142 PLUGIN_DEBUG("Message %s received on bus. Notifying subscribers.\n", m sg);1133 PLUGIN_DEBUG("Message %s received on bus. Notifying subscribers.\n", message); 1143 1134 1144 1135 std::list<BusSubscriber*>::const_iterator i; 1145 1136 for( i = subscribers.begin(); i != subscribers.end() && !message_consumed; ++i ) { 1146 PLUGIN_DEBUG("Notifying subscriber %p of %s\n", *i, m sg);1147 message_consumed = ((BusSubscriber*) *i)->newMessageOnBus(m sg);1137 PLUGIN_DEBUG("Notifying subscriber %p of %s\n", *i, message); 1138 message_consumed = ((BusSubscriber*) *i)->newMessageOnBus(message); 1148 1139 } 1149 1140 … … 1151 1142 1152 1143 if (!message_consumed) 1153 PLUGIN_DEBUG("Warning: No consumer found for message %s\n", m sg);1144 PLUGIN_DEBUG("Warning: No consumer found for message %s\n", message); 1154 1145 1155 1146 PLUGIN_DEBUG("%p unlocked...\n", &msg_queue_mutex); -
branches/vendor/sourceforge/icedtea-web/current/plugin/icedteanp/IcedTeaPluginUtils.h
r348 r416 97 97 (*c >= 'A' && *c <= 'F')) 98 98 99 //long long max ~ 19 chars + terminator 100 //leave some room for converting strings like "<var> = %d" 101 const size_t NUM_STR_BUFFER_SIZE = 32; 102 99 103 /* 100 104 * This struct holds data specific to a Java operation requested by the plugin … … 206 210 static void itoa(int i, std::string* result); 207 211 212 /* Copies a variant data type into a C++ string */ 213 static std::string NPVariantAsString(NPVariant variant); 214 208 215 /* Frees the given vector and the strings that its contents point to */ 209 216 static void freeStringPtrVector(std::vector<std::string*>* v); -
branches/vendor/sourceforge/icedtea-web/current/plugin/icedteanp/java/netscape/javascript/JSObject.java
r348 r416 131 131 boolean mayProceed = false; 132 132 133 for ( int i = 0; i < stack.length; i++) {134 if ( stack[i].getClassName().equals("netscape.javascript.JSObject") &&135 stack[i].getMethodName().equals("getWindow")) {133 for (StackTraceElement element : stack) { 134 if (element.getClassName().equals("netscape.javascript.JSObject") && 135 element.getMethodName().equals("getWindow")) { 136 136 mayProceed = true; 137 137 } … … 210 210 211 211 PluginDebug.debug("JSObject.call ", methodName); 212 for (int i = 0; i < args.length; i++) 213 PluginDebug.debug(" ", args[i]); 212 for (Object arg : args) { 213 PluginDebug.debug(" ", arg); 214 } 214 215 PluginDebug.debug(""); 215 216 return PluginAppletViewer.call(internal, methodName, args); -
branches/vendor/sourceforge/icedtea-web/current/plugin/icedteanp/java/sun/applet/AppletSecurityContextManager.java
r348 r416 1 /* VoidPluginCallRequest -- represent Java-to-JavaScript requests 1 /* AppletSecurityContextManager -- handles messages in an appropriate security 2 context 3 2 4 Copyright (C) 2008 Red Hat 3 5 -
branches/vendor/sourceforge/icedtea-web/current/plugin/icedteanp/java/sun/applet/GetMemberPluginCallRequest.java
r348 r416 51 51 // FIXME: Is it even possible to distinguish between null and void 52 52 // here? 53 if ( args[3] != "null" && args[3] != "void")53 if (!"null".equals(args[3]) && !"void".equals(args[3])) 54 54 object = AppletSecurityContextManager.getSecurityContext(0).getObject(Integer.parseInt(args[3])); 55 55 setDone(true); -
branches/vendor/sourceforge/icedtea-web/current/plugin/icedteanp/java/sun/applet/JavaConsole.java
r348 r416 66 66 import net.sourceforge.jnlp.config.DeploymentConfiguration; 67 67 import net.sourceforge.jnlp.runtime.JNLPRuntime; 68 import net.sourceforge.jnlp.util.ImageResources; 68 69 69 70 /** … … 93 94 94 95 consoleWindow = new JFrame("Java Console"); 96 consoleWindow.setIconImages(ImageResources.INSTANCE.getApplicationImages()); 95 97 96 98 JPanel contentPanel = new JPanel(); … … 307 309 boolean toShowConsole = false; 308 310 309 for ( int i = 0; i < args.length; i++) {310 if ( args[i] == "--show-console") {311 for (String arg : args) { 312 if ("--show-console".equals(arg)) { 311 313 toShowConsole = true; 312 314 } -
branches/vendor/sourceforge/icedtea-web/current/plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java
r348 r416 244 244 if (System.getSecurityManager() == null) { 245 245 JNLPRuntime.initialize(/* isApplication */false); 246 JNLPRuntime.setDefaultLaunchHandler(new DefaultLaunchHandler( ));246 JNLPRuntime.setDefaultLaunchHandler(new DefaultLaunchHandler(System.err)); 247 247 } 248 248 … … 1296 1296 Permissions grantedPermissions = new Permissions(); 1297 1297 1298 for (int i = 0; i < nsPrivilegeList.length; i++) { 1299 String privilege = nsPrivilegeList[i]; 1300 1298 for (String privilege : nsPrivilegeList) { 1301 1299 if (privilege.equals("UniversalBrowserRead")) { 1302 1300 BrowserReadPermission bp = new BrowserReadPermission(); -
branches/vendor/sourceforge/icedtea-web/current/plugin/icedteanp/java/sun/applet/PluginAppletViewer.java
r348 r416 124 124 125 125 public AppletPanel createPanel(PluginStreamHandler streamhandler, 126 int identifier,127 long handle, int x, int y,128 129 126 final int identifier, 127 final long handle, int x, int y, 128 final URL doc, 129 final Hashtable<String, String> atts) { 130 130 final NetxPanel panel = AccessController.doPrivileged(new PrivilegedAction<NetxPanel>() { 131 131 public NetxPanel run() { … … 137 137 }); 138 138 139 // create the frame. 140 PluginAppletViewer.framePanel(identifier, handle, panel); 141 142 panel.init(); 143 144 // Start the applet 145 initEventQueue(panel); 139 // Framing the panel needs to happen in a thread whose thread group 140 // is the same as the threadgroup of the applet thread. If this 141 // isn't the case, the awt eventqueue thread's context classloader 142 // won't be set to a JNLPClassLoader, and when an applet class needs 143 // to be loaded from the awt eventqueue, it won't be found. 144 Thread panelInit = new Thread(panel.getThreadGroup(), new Runnable() { 145 @Override public void run() { 146 panel.createNewAppContext(); 147 // create the frame. 148 PluginAppletViewer.framePanel(identifier, handle, panel); 149 panel.init(); 150 // Start the applet 151 initEventQueue(panel); 152 } 153 }, "NetXPanel initializer"); 154 155 panelInit.start(); 156 while(panelInit.isAlive()) { 157 try { 158 panelInit.join(); 159 } catch (InterruptedException e) { 160 } 161 } 146 162 147 163 // Wait for the panel to initialize … … 222 238 String[] events = eventList.split(","); 223 239 224 for ( int i = 0; i < events.length; i++) {225 PluginDebug.debug("Adding event to queue: ", event s[i]);226 if ( events[i].equals("dispose"))240 for (String event : events) { 241 PluginDebug.debug("Adding event to queue: ", event); 242 if ("dispose".equals(event)) 227 243 panel.sendEvent(AppletPanel.APPLET_DISPOSE); 228 else if ( events[i].equals("load"))244 else if ("load".equals(event)) 229 245 panel.sendEvent(AppletPanel.APPLET_LOAD); 230 else if ( events[i].equals("init"))246 else if ("init".equals(event)) 231 247 panel.sendEvent(AppletPanel.APPLET_INIT); 232 else if ( events[i].equals("start"))248 else if ("start".equals(event)) 233 249 panel.sendEvent(AppletPanel.APPLET_START); 234 else if ( events[i].equals("stop"))250 else if ("stop".equals(event)) 235 251 panel.sendEvent(AppletPanel.APPLET_STOP); 236 else if ( events[i].equals("destroy"))252 else if ("destroy".equals(event)) 237 253 panel.sendEvent(AppletPanel.APPLET_DESTROY); 238 else if ( events[i].equals("quit"))254 else if ("quit".equals(event)) 239 255 panel.sendEvent(AppletPanel.APPLET_QUIT); 240 else if ( events[i].equals("error"))256 else if ("error".equals(event)) 241 257 panel.sendEvent(AppletPanel.APPLET_ERROR); 242 258 else 243 259 // non-fatal error if we get an unrecognized event 244 PluginDebug.debug("Unrecognized event name: ", event s[i]);260 PluginDebug.debug("Unrecognized event name: ", event); 245 261 } 246 262 … … 1610 1626 appletShutdown(p); 1611 1627 appletPanels.removeElement(p); 1628 1629 // Mark classloader unusable 1630 ((JNLPClassLoader) cl).decrementLoaderUseCount(); 1612 1631 1613 1632 try { … … 1905 1924 String att = t.get("name"); 1906 1925 1907 if (atts.containsKey(att))1908 continue;1909 1910 1926 if (att == null) { 1911 1927 statusMsgStream.println(requiresNameWarning); -
branches/vendor/sourceforge/icedtea-web/current/plugin/icedteanp/java/sun/applet/PluginCallRequest.java
r348 r416 38 38 package sun.applet; 39 39 40 // FIXME: for each type of request extend a new (anonymous?)41 // PluginCallRequest.42 40 public abstract class PluginCallRequest { 43 41 private String message; -
branches/vendor/sourceforge/icedtea-web/current/plugin/icedteanp/java/sun/applet/PluginCallRequestFactory.java
r348 r416 1 /* VoidPluginCallRequest -- represent Java-to-JavaScript requests 1 /* PluginCallRequestFactory -- contains factory methods for dispatching 2 an appropriate PluginCallRequest. 2 3 Copyright (C) 2008 Red Hat 3 4 … … 42 43 public PluginCallRequest getPluginCallRequest(String id, String message, Long reference) { 43 44 44 if ( id == "member") {45 if ("member".equals(id)) { 45 46 return new GetMemberPluginCallRequest(message, reference); 46 } else if ( id == "void") {47 } else if ("void".equals(id)) { 47 48 return new VoidPluginCallRequest(message, reference); 48 } else if ( id == "window") {49 } else if ("window".equals(id)) { 49 50 return new GetWindowPluginCallRequest(message, reference); 50 } else if ( id == "proxyinfo") {51 } else if ("proxyinfo".equals(id)) { 51 52 return new PluginProxyInfoRequest(message, reference); 52 } else if ( id == "cookieinfo") {53 } else if ("cookieinfo".equals(id)) { 53 54 return new PluginCookieInfoRequest(message, reference); 54 55 } else { -
branches/vendor/sourceforge/icedtea-web/current/plugin/icedteanp/java/sun/applet/PluginCookieManager.java
r348 r416 46 46 import java.util.Map; 47 47 48 import com.sun.jndi.toolkit.url.UrlUtil; 49 48 50 public class PluginCookieManager extends CookieManager { 51 private PluginStreamHandler streamHandler; 52 53 public PluginCookieManager(PluginStreamHandler streamHandler) { 54 this.streamHandler = streamHandler; 55 } 56 57 @Override 49 58 public Map<String, List<String>> get(URI uri, 50 59 Map<String, List<String>> requestHeaders) throws IOException { … … 85 94 return false; 86 95 } 96 97 @Override 98 public void put(URI uri, 99 Map<String, List<String>> responseHeaders) throws IOException { 100 super.put(uri, responseHeaders); 101 102 for (Map.Entry<String, List<String>> headerEntry : responseHeaders.entrySet()) { 103 String type = headerEntry.getKey(); 104 if ("Set-Cookie".equalsIgnoreCase(type) || "Set-Cookie2".equalsIgnoreCase(type)) { 105 List<String> cookies = headerEntry.getValue(); 106 for (String cookie : cookies) { 107 streamHandler.write("plugin PluginSetCookie reference -1 " + UrlUtil.encode(uri.toString(), "UTF-8") + " " + cookie); 108 } 109 } 110 111 } 112 } 87 113 } -
branches/vendor/sourceforge/icedtea-web/current/plugin/icedteanp/java/sun/applet/PluginException.java
r348 r416 1 /* VoidPluginCallRequest -- represent Java-to-JavaScript requests1 /* PluginException -- represents an exception in handling a plugin message 2 2 Copyright (C) 2008 Red Hat 3 3 -
branches/vendor/sourceforge/icedtea-web/current/plugin/icedteanp/java/sun/applet/PluginMain.java
r348 r416 119 119 // Streams set. Start processing. 120 120 streamHandler.startProcessing(); 121 122 setCookieHandler(streamHandler); 123 121 124 } catch (Exception e) { 122 125 e.printStackTrace(); … … 200 203 // override the proxy selector set by JNLPRuntime 201 204 ProxySelector.setDefault(new PluginProxySelector()); 202 203 CookieManager ckManager = new PluginCookieManager(); 205 } 206 207 private static void setCookieHandler(PluginStreamHandler streamHandler) { 208 CookieManager ckManager = new PluginCookieManager(streamHandler); 204 209 CookieHandler.setDefault(ckManager); 205 210 } -
branches/vendor/sourceforge/icedtea-web/current/plugin/icedteanp/java/sun/applet/PluginMessageHandlerWorker.java
r348 r416 1 /* VoidPluginCallRequest -- represent Java-to-JavaScript requests1 /* PluginMessageHandlerWorker -- worker thread for handling messages 2 2 Copyright (C) 2008 Red Hat 3 3 -
branches/vendor/sourceforge/icedtea-web/current/plugin/icedteanp/java/sun/applet/PluginStreamHandler.java
r348 r416 60 60 61 61 private PluginMessageConsumer consumer; 62 private Boolean shuttingDown = false;62 private volatile boolean shuttingDown = false; 63 63 64 64 … … 323 323 324 324 if (message == null || message.equals("shutdown")) { 325 synchronized (shuttingDown) { 326 shuttingDown = true; 327 } 325 shuttingDown = true; 328 326 try { 329 327 // Close input/output channels to plugin. … … 363 361 // if we are shutting down, ignore write failures as 364 362 // pipe may have closed 365 synchronized (shuttingDown) { 366 if (!shuttingDown) { 367 e.printStackTrace(); 368 } 363 if (!shuttingDown) { 364 e.printStackTrace(); 369 365 } 370 366 -
branches/vendor/sourceforge/icedtea-web/current/tests/junit-runner/CommandLine.java
r348 r416 8 8 */ 9 9 10 import java.io.File; 10 11 import java.util.ArrayList; 11 12 import java.util.List; … … 35 36 for (String each : args) { 36 37 try { 38 if (each.contains("$")) continue; 39 if (each.toLowerCase().endsWith(".jnlp")) continue; 37 40 classes.add(Class.forName(each)); 38 41 } catch (ClassNotFoundException e) { … … 40 43 } 41 44 } 45 RunListener jXmlOutput = new JunitLikeXmlOutputListener(system, new File("tests-output.xml")); 46 addListener(jXmlOutput); 42 47 RunListener listener = new LessVerboseTextListener(system); 43 48 addListener(listener); -
branches/vendor/sourceforge/icedtea-web/current/tests/junit-runner/LessVerboseTextListener.java
r348 r416 7 7 */ 8 8 import java.io.PrintStream; 9 import java.lang.reflect.Method; 10 import net.sourceforge.jnlp.annotations.KnownToFail; 9 11 10 12 import org.junit.internal.JUnitSystem; … … 18 20 private PrintStream writer; 19 21 private boolean testFailed = false; 22 private int totalK2F=0; 23 private int failedK2F=0; 24 private int passedK2F=0; 25 private int ignoredK2F=0; 20 26 21 27 public LessVerboseTextListener(JUnitSystem system) { … … 29 35 30 36 @Override 37 public void testIgnored(Description description) throws Exception { 38 writer.println("Ignored: " + description.getClassName() + "." + description.getMethodName()); 39 printK2F(writer, null, description); 40 } 41 42 43 @Override 31 44 public void testFailure(Failure failure) { 32 45 testFailed = true; 33 46 writer.println("FAILED: " + failure.getTestHeader() + " " + failure.getMessage()); 47 printK2F(writer,true,failure.getDescription()); 34 48 } 35 49 … … 38 52 if (!testFailed) { 39 53 writer.println("Passed: " + description.getClassName() + "." + description.getMethodName()); 54 printK2F(writer,false,description); 40 55 } 41 56 } … … 46 61 int failed = result.getFailureCount(); 47 62 int ignored = result.getIgnoreCount(); 63 writer.println("Total tests run: "+result.getRunCount()+"; From those : " + totalK2F + " known to fail"); 64 writer.println("Test known to fail: passed: " + passedK2F + "; failed: " + failedK2F + "; ignored: " + ignoredK2F); 48 65 writer.println("Test results: passed: " + passed + "; failed: " + failed + "; ignored: " + ignored); 66 67 } 68 69 private void printK2F(PrintStream writer, Boolean failed, Description description) { 70 try { 71 KnownToFail k2f = getK2F(description); 72 if (k2f != null) { 73 totalK2F++; 74 if (failed != null) { 75 if (failed) { 76 failedK2F++; 77 } else { 78 passedK2F++; 79 } 80 } else { 81 ignoredK2F++; 82 } 83 if (failed != null && !failed) { 84 writer.println(" - WARNING This test is known to fail, but have passed!"); 85 } else { 86 writer.println(" - This test is known to fail"); 87 } 88 } 89 90 91 } catch (Exception ex) { 92 ex.printStackTrace(); 93 } 94 } 95 96 public static KnownToFail getK2F(Description description) { 97 try { 98 Class q = description.getTestClass(); 99 if (q != null) { 100 String qs = description.getMethodName(); 101 if (qs.contains(" - ")) { 102 qs = qs.replaceAll(" - .*", ""); 103 } 104 Method qm = q.getMethod(qs); 105 if (qm != null) { 106 KnownToFail k2f = qm.getAnnotation(KnownToFail.class); 107 return k2f; 108 109 } 110 } 111 } catch (Exception ex) { 112 ex.printStackTrace(); 113 } 114 return null; 49 115 } 50 116 -
branches/vendor/sourceforge/icedtea-web/current/tests/netx/pac/pac-funcs-test.js
r348 r416 22 22 testDnsDomainLevels(); 23 23 testShExpMatch(); 24 testWeekdayRange();25 24 testDateRange(); 26 25 testTimeRange(); 26 testWeekdayRange(); 27 testDateRange2(); 28 testDateRange3(); 27 29 28 30 java.lang.System.out.println("Test results: passed: " + testsPassed + "; failed: " + testsFailed + ";"); … … 30 32 31 33 function runTests(name, tests) { 32 33 34 var undefined_var; 34 35 35 for ( var i = 0; i < tests.length; i++) { 36 37 var expectedVal = tests[i][0]; 38 var args = tests[i].slice(1); 39 var returnVal; 40 try { 41 returnVal = name.apply(null, args); 42 } catch (e) { 43 returnVal = e; 44 } 45 if (returnVal === expectedVal) { 46 java.lang.System.out.println("Passed: " + name.name + "(" + args.join(", ") + ")"); 47 testsPassed++; 48 } else { 49 java.lang.System.out.println("FAILED: " + name.name + "(" + args.join(", ") + ")"); 50 java.lang.System.out.println(" Expected '" + expectedVal + "' but got '" + returnVal + "'"); 51 testsFailed++; 52 } 36 runTest(name, tests[i]); 53 37 } 54 38 } 39 40 function runTest(name, test) { 41 var expectedVal = test[0]; 42 var args = test.slice(1); 43 var returnVal; 44 try { 45 returnVal = name.apply(null, args); 46 } catch (e) { 47 returnVal = e; 48 } 49 if (returnVal === expectedVal) { 50 java.lang.System.out.println("Passed: " + name.name + "(" + args.join(", ") + ")"); 51 testsPassed++; 52 } else { 53 java.lang.System.out.println("FAILED: " + name.name + "(" + args.join(", ") + ")"); 54 java.lang.System.out.println(" Expected '" + expectedVal + "' but got '" + returnVal + "'"); 55 testsFailed++; 56 } 57 } 58 55 59 56 60 function testIsPlainHostName() { … … 236 240 [ false, dayToStr(day-1) ], 237 241 ]; 242 243 runTests(weekdayRange, tests); 244 } 245 246 /** Returns an array: [day, month, year] */ 247 function incDate() { 248 if ((arguments.length >= 3) && (arguments.length % 2 === 1)) { 249 var date = arguments[0]; 250 var result = date; 251 var index = 1; 252 while (index < arguments.length) { 253 var whichThing = arguments[index]; 254 var by = arguments[index+1]; 255 switch (whichThing) { 256 case 'year': 257 result = new Date(result.getFullYear()+by, result.getMonth(), result.getDate()); 258 break; 259 case 'month': 260 result = new Date(result.getFullYear(), result.getMonth()+by, result.getDate()); 261 break; 262 case 'day': 263 result = new Date(result.getFullYear(), result.getMonth(), result.getDate()+by); 264 break; 265 } 266 index += 2; 267 } 268 return [result.getDate(), result.getMonth(), result.getFullYear()]; 269 } 270 throw "Please call incDate properly"; 271 } 272 273 function monthToStr(month) { 274 switch (month) { 275 case -1: return "DEC"; 276 case 0: return "JAN"; 277 case 1: return "FEB"; 278 case 2: return "MAR"; 279 case 3: return "APR"; 280 case 4: return "MAY"; 281 case 5: return "JUN"; 282 case 6: return "JUL"; 283 case 7: return "AUG"; 284 case 8: return "SEP"; 285 case 9: return "OCT"; 286 case 10: return "NOV"; 287 case 11: return "DEC"; 288 case 12: return "JAN"; 289 default: throw "Invalid Month" + month; 290 } 238 291 } 239 292 240 293 function testDateRange() { 241 294 242 function incDate(date) { 243 return (date + 1 - 1) % 31 +1 ; 244 } 245 246 function decDate(date) { 247 return (date - 1 - 1 + 31) % 31 + 1; 248 } 249 250 function monthToStr(month) { 251 switch (month) { 252 case -1: return "DEC"; 253 case 0: return "JAN"; 254 case 1: return "FEB"; 255 case 2: return "MAR"; 256 case 3: return "APR"; 257 case 4: return "MAY"; 258 case 5: return "JUN"; 259 case 6: return "JUL"; 260 case 7: return "AUG"; 261 case 8: return "SEP"; 262 case 9: return "OCT"; 263 case 10: return "NOV"; 264 case 11: return "DEC"; 265 case 12: return "JAN"; 266 default: throw "Invalid Month"; 267 } 268 } 269 270 var today = new Date(); 271 var date = today.getDate(); 272 var month = today.getMonth(); 273 var year = today.getYear(); 274 275 var tests = [ 276 [ true, date ], 277 [ false, incDate(date) ], 278 [ false, decDate(date) ], 279 280 [ true, monthToStr(month) ], 281 [ false, monthToStr(month+1) ], 282 [ false, monthToStr(month-1) ], 283 284 [ true, year ], 285 [ false, year - 1], 286 [ false, year + 1], 287 288 [ true, date, date ], 289 [ true, date, incDate(date) ], 290 [ true, decDate(date), date ], 291 [ true, decDate(date), incDate(date) ], 292 [ false, incDate(date), decDate(date) ], 293 [ false, decDate(decDate(date)), decDate(date) ], 294 [ false, incDate(date), incDate(incDate(date)) ], 295 296 [ true, monthToStr(month), monthToStr(month) ], 297 [ true, monthToStr(month), monthToStr(month+1) ], 298 [ true, monthToStr(month-1), monthToStr(month) ], 299 [ true, monthToStr(month-1), monthToStr(month+1) ], 300 [ true, "JAN", "DEC" ], 301 [ true, "DEC", "NOV" ], 302 [ true, "JUL", "JUN"], 303 [ false, monthToStr(month+1), monthToStr(month+1) ], 304 [ false, monthToStr(month-1), monthToStr(month-1) ], 305 [ false, monthToStr(month+1), monthToStr(month-1) ], 306 307 [ true, year, year ], 308 [ true, year, year+1 ], 309 [ true, year-1, year ], 310 [ true, year-1, year+1 ], 311 [ false, year-2, year-1 ], 312 [ false, year+1, year+1 ], 313 [ false, year+1, year+2 ], 314 [ false, year+1, year-1 ], 315 316 [ true, date, monthToStr(month) , date, monthToStr(month) ], 317 [ true, decDate(date), monthToStr(month) , date, monthToStr(month) ], 318 [ false, decDate(date), monthToStr(month) , decDate(date), monthToStr(month) ], 319 [ true, date, monthToStr(month) , incDate(date), monthToStr(month) ], 320 [ false, incDate(date), monthToStr(month) , incDate(date), monthToStr(month) ], 321 [ true, decDate(date), monthToStr(month) , incDate(date), monthToStr(month) ], 322 [ false, incDate(date), monthToStr(month) , decDate(date), monthToStr(month) ], 323 [ true, date, monthToStr(month-1) , date, monthToStr(month) ], 324 [ true, date, monthToStr(month) , date, monthToStr(month+1) ], 325 [ true, date, monthToStr(month-1) , date, monthToStr(month+1) ], 326 [ true, incDate(date), monthToStr(month-1) , date, monthToStr(month+1) ], 327 [ true, date, monthToStr(month-1) , decDate(date), monthToStr(month+1) ], 328 [ false, date, monthToStr(month+1) , date, monthToStr(month-1) ], 329 [ false, incDate(date), monthToStr(month+1) , incDate(date), monthToStr(month-1) ], 330 [ false, decDate(date), monthToStr(month+1) , decDate(date), monthToStr(month-1) ], 331 [ true, 1, "JAN", 31, "DEC" ], 332 [ true, 2, "JAN", 1, "JAN" ], 333 [ false, 1, monthToStr(month+1), 31, monthToStr(month+1) ], 334 [ false, 1, monthToStr(month-1), 31, monthToStr(month-1) ], 335 336 [ true, monthToStr(month), year, monthToStr(month), year ], 337 [ true, monthToStr(month-1), year, monthToStr(month), year ], 338 [ true, monthToStr(month), year, monthToStr(month+1), year ], 339 [ true, monthToStr(month-1), year, monthToStr(month+1), year ], 340 [ true, monthToStr(0), year, monthToStr(11), year ], 341 [ false, monthToStr(month+1), year, monthToStr(month-1), year ], 342 [ false, monthToStr(month+1), year, monthToStr(month+1), year ], 343 [ false, monthToStr(month-1), year, monthToStr(month-1), year ], 344 [ false, monthToStr(month), year-1, monthToStr(month-1), year ], 345 [ true, monthToStr(month), year, monthToStr(month), year + 1 ], 346 [ true, monthToStr(month), year-1, monthToStr(month), year ], 347 [ true, monthToStr(month), year-1, monthToStr(month), year+1 ], 348 [ true, monthToStr(0), year, monthToStr(0), year+1 ], 349 [ true, monthToStr(0), year-1, monthToStr(0), year+1 ], 350 [ false, monthToStr(0), year-1, monthToStr(11), year-1 ], 351 [ false, monthToStr(0), year+1, monthToStr(11), year+1 ], 352 353 [ true, date, monthToStr(month), year, date, monthToStr(month), year ], 354 [ true, decDate(date), monthToStr(month), year, incDate(date), monthToStr(month), year ], 355 [ true, decDate(date), monthToStr(month-1), year, incDate(date), monthToStr(month+1), year ], 356 [ true, decDate(date), monthToStr(month-1), year-1, incDate(date), monthToStr(month+1), year+1 ], 357 [ true, incDate(date), monthToStr(month-1), year-1, incDate(date), monthToStr(month+1), year+1 ], 358 [ false, incDate(date), monthToStr(month), year, incDate(date), monthToStr(month+1), year+1 ], 359 [ false, date, monthToStr(month+1), year, incDate(date), monthToStr(month+1), year+1 ], 360 [ true, 1, monthToStr(0), 0, 31, monthToStr(11), 100000 ], 361 [ true, 1, monthToStr(0), year, 31, monthToStr(11), year ], 362 [ true, 1, monthToStr(0), year-1, 31, monthToStr(11), year+1 ], 363 [ false, 1, monthToStr(0), year-1, 31, monthToStr(11), year-1 ], 364 [ false, 1, monthToStr(0), year+1, 31, monthToStr(11), year+1 ], 365 366 ]; 367 368 runTests(dateRange, tests); 369 295 { 296 var current = new Date(); 297 var date = current.getDate(); 298 var month = current.getMonth(); 299 var year = current.getFullYear(); 300 301 var today = incDate(current, 'day', 0); 302 var tomorrow = incDate(current, 'day', 1); 303 var yesterday = incDate(current, 'day', -1); 304 305 runTest(dateRange, [ true, date ]); 306 runTest(dateRange, [ false, tomorrow[0] ]); 307 runTest(dateRange, [ false, yesterday[0] ]); 308 309 runTest(dateRange, [ true, monthToStr(month) ]); 310 runTest(dateRange, [ false, monthToStr(month+1) ]); 311 runTest(dateRange, [ false, monthToStr(month-1) ]); 312 313 runTest(dateRange, [ true, year ]); 314 runTest(dateRange, [ false, year - 1]); 315 runTest(dateRange, [ false, year + 1]); 316 317 runTest(dateRange, [ true, date, date ]); 318 runTest(dateRange, [ true, today[0], tomorrow[0] ]); 319 runTest(dateRange, [ true, yesterday[0], today[0] ]); 320 runTest(dateRange, [ true, yesterday[0], tomorrow[0] ]); 321 runTest(dateRange, [ false, tomorrow[0], yesterday[0] ]); 322 runTest(dateRange, [ false, incDate(current,'day',-2)[0], yesterday[0] ]); 323 runTest(dateRange, [ false, tomorrow[0], incDate(current,'day',2)[0] ]); 324 325 runTest(dateRange, [ true, monthToStr(month), monthToStr(month) ]); 326 runTest(dateRange, [ true, monthToStr(month), monthToStr(month+1) ]); 327 runTest(dateRange, [ true, monthToStr(month-1), monthToStr(month) ]); 328 runTest(dateRange, [ true, monthToStr(month-1), monthToStr(month+1) ]); 329 runTest(dateRange, [ true, "JAN", "DEC" ]); 330 runTest(dateRange, [ true, "FEB", "JAN" ]); 331 runTest(dateRange, [ true, "DEC", "NOV" ]); 332 runTest(dateRange, [ true, "JUL", "JUN"]); 333 runTest(dateRange, [ false, monthToStr(month+1), monthToStr(month+1) ]); 334 runTest(dateRange, [ false, monthToStr(month-1), monthToStr(month-1) ]); 335 runTest(dateRange, [ false, monthToStr(month+1), monthToStr(month-1) ]); 336 337 runTest(dateRange, [ true, year, year ]); 338 runTest(dateRange, [ true, year, year+1 ]); 339 runTest(dateRange, [ true, year-1, year ]); 340 runTest(dateRange, [ true, year-1, year+1 ]); 341 runTest(dateRange, [ false, year-2, year-1 ]); 342 runTest(dateRange, [ false, year+1, year+1 ]); 343 runTest(dateRange, [ false, year+1, year+2 ]); 344 runTest(dateRange, [ false, year+1, year-1 ]); 345 346 runTest(dateRange, [ true, date, monthToStr(month) , date, monthToStr(month) ]); 347 runTest(dateRange, [ true, yesterday[0], monthToStr(yesterday[1]) , date, monthToStr(month) ]); 348 runTest(dateRange, [ false, yesterday[0], monthToStr(yesterday[1]) , yesterday[0], monthToStr(yesterday[1]) ]); 349 runTest(dateRange, [ true, date, monthToStr(month) , tomorrow[0], monthToStr(tomorrow[1]) ]); 350 runTest(dateRange, [ false, tomorrow[0], monthToStr(tomorrow[1]) , tomorrow[0], monthToStr(tomorrow[1]) ]); 351 runTest(dateRange, [ true, yesterday[0], monthToStr(yesterday[1]) , tomorrow[0], monthToStr(tomorrow[1]) ]); 352 runTest(dateRange, [ false, tomorrow[0], monthToStr(tomorrow[1]) , yesterday[0], monthToStr(yesterday[1]) ]); 353 } 354 355 { 356 var lastMonth = incDate(new Date(), 'month', -1); 357 var thisMonth = incDate(new Date(), 'month', 0); 358 var nextMonth = incDate(new Date(), 'month', +1); 359 runTest(dateRange, [ true, lastMonth[0], monthToStr(lastMonth[1]) , thisMonth[0], monthToStr(thisMonth[1]) ]); 360 runTest(dateRange, [ true, thisMonth[0], monthToStr(thisMonth[1]) , nextMonth[0], monthToStr(nextMonth[1]) ]); 361 runTest(dateRange, [ true, lastMonth[0], monthToStr(lastMonth[1]) , nextMonth[0], monthToStr(nextMonth[1]) ]); 362 var date1 = incDate(new Date(), 'day', +1, 'month', -1); 363 var date2 = incDate(new Date(), 'day', -1, 'month', +1); 364 runTest(dateRange, [ true, date1[0], monthToStr(date1[1]) , nextMonth[0], monthToStr(nextMonth[1]) ]); 365 runTest(dateRange, [ true, lastMonth[0], monthToStr(lastMonth[1]) , date2[0], monthToStr(date2[1]) ]); 366 runTest(dateRange, [ false, nextMonth[0], monthToStr(nextMonth[1]) , lastMonth[0], monthToStr(lastMonth[1]) ]); 367 var date3 = incDate(new Date(), 'day', +1, 'month', +1); 368 var date4 = incDate(new Date(), 'day', +1, 'month', -1); 369 runTest(dateRange, [ false, date3[0], monthToStr(date3[1]) , date4[0], monthToStr(date4[1]) ]); 370 371 var date5 = incDate(new Date(), 'day', -1, 'month', -1); 372 runTest(dateRange, [ false, date2[0], monthToStr(date2[1]) , date5[0], monthToStr(date5[1]) ]); 373 374 runTest(dateRange, [ true, 1, "JAN", 31, "DEC" ]); 375 runTest(dateRange, [ true, 2, "JAN", 1, "JAN" ]); 376 377 var month = new Date().getMonth(); 378 runTest(dateRange, [ false, 1, monthToStr(month+1), 31, monthToStr(month+1) ]); 379 runTest(dateRange, [ false, 1, monthToStr(month-1), 31, monthToStr(month-1) ]); 380 } 381 382 383 { 384 var lastMonth = incDate(new Date(), 'month', -1); 385 var thisMonth = incDate(new Date(), 'month', 0); 386 var nextMonth = incDate(new Date(), 'month', +1); 387 runTest(dateRange, [ true, monthToStr(thisMonth[1]), thisMonth[2], monthToStr(thisMonth[1]), thisMonth[2] ]); 388 runTest(dateRange, [ true, monthToStr(lastMonth[1]), lastMonth[2], monthToStr(thisMonth[1]), thisMonth[2] ]); 389 runTest(dateRange, [ true, monthToStr(thisMonth[1]), thisMonth[2], monthToStr(nextMonth[1]), nextMonth[2] ]); 390 runTest(dateRange, [ true, monthToStr(lastMonth[1]), lastMonth[2], monthToStr(nextMonth[1]), nextMonth[2] ]); 391 runTest(dateRange, [ true, monthToStr(0), year, monthToStr(11), year ]); 392 393 runTest(dateRange, [ false, monthToStr(nextMonth[1]), nextMonth[2], monthToStr(lastMonth[1]), lastMonth[2] ]); 394 runTest(dateRange, [ false, monthToStr(nextMonth[1]), nextMonth[2], monthToStr(nextMonth[1]), nextMonth[2] ]); 395 runTest(dateRange, [ false, monthToStr(lastMonth[1]), lastMonth[2], monthToStr(lastMonth[1]), lastMonth[2] ]); 396 397 var lastYear = incDate(new Date(), 'year', -1); 398 var nextYear = incDate(new Date(), 'year', +1); 399 400 runTest(dateRange, [ false, monthToStr(lastYear[1]), lastYear[2], monthToStr(lastMonth[1]), lastMonth[2] ]); 401 runTest(dateRange, [ true, monthToStr(thisMonth[1]), thisMonth[2], monthToStr(nextYear[1]), nextYear[2] ]); 402 403 var year = new Date().getFullYear(); 404 var month = new Date().getMonth(); 405 406 runTest(dateRange, [ true, monthToStr(month), year-1, monthToStr(month), year ]); 407 runTest(dateRange, [ true, monthToStr(month), year-1, monthToStr(month), year+1 ]); 408 runTest(dateRange, [ true, monthToStr(0), year, monthToStr(0), year+1 ]); 409 runTest(dateRange, [ true, monthToStr(0), year-1, monthToStr(0), year+1 ]); 410 runTest(dateRange, [ false, monthToStr(0), year-1, monthToStr(11), year-1 ]); 411 runTest(dateRange, [ false, monthToStr(0), year+1, monthToStr(11), year+1 ]); 412 } 413 414 { 415 var today = incDate(new Date(), 'day', 0); 416 var yesterday = incDate(new Date(), 'day', -1); 417 var tomorrow = incDate(new Date(), 'day', +1); 418 runTest(dateRange, [ true, 419 today[0], monthToStr(today[1]), today[2], today[0], monthToStr(today[1]), today[2] ]); 420 runTest(dateRange, [ true, 421 yesterday[0], monthToStr(yesterday[1]), yesterday[2], tomorrow[0], monthToStr(tomorrow[1]), tomorrow[2] ]); 422 } 423 424 { 425 var dayLastMonth = incDate(new Date(), 'day', -1, 'month', -1); 426 var dayNextMonth = incDate(new Date(), 'day', +1, 'month', +1); 427 runTest(dateRange, [ true, 428 dayLastMonth[0], monthToStr(dayLastMonth[1]), dayLastMonth[2], dayNextMonth[0], monthToStr(dayNextMonth[1]), dayNextMonth[2] ]); 429 } 430 431 { 432 var dayLastYear = incDate(new Date(), 'day', -1, 'month', -1, 'year', -1); 433 var dayNextYear = incDate(new Date(), 'day', +1, 'month', +1, 'year', +1); 434 runTest(dateRange, [ true, 435 dayLastYear[0], monthToStr(dayLastYear[1]), dayLastYear[2], dayNextYear[0], monthToStr(dayNextYear[1]), dayNextYear[2] ]); 436 } 437 438 { 439 var dayLastYear = incDate(new Date(), 'day', +1, 'month', -1, 'year', -1); 440 var dayNextYear = incDate(new Date(), 'day', +1, 'month', +1, 'year', +1); 441 runTest(dateRange, [ true, 442 dayLastYear[0], monthToStr(dayLastYear[1]), dayLastYear[2], dayNextYear[0], monthToStr(dayNextYear[1]), dayNextYear[2] ]); 443 } 444 445 { 446 var tomorrow = incDate(new Date(), 'day', +1); 447 var dayNextYear = incDate(new Date(), 'day', +1, 'month', +1, 'year', +1); 448 runTest(dateRange, [ false, 449 tomorrow[0], monthToStr(tomorrow[1]), tomorrow[2], dayNextYear[0], monthToStr(dayNextYear[1]), dayNextYear[2] ]); 450 451 } 452 453 { 454 var nextMonth = incDate(new Date(), 'month', +1); 455 var nextYear = incDate(new Date(), 'day', +1, 'month', +1, 'year', +1); 456 runTest(dateRange, [ false, 457 nextMonth[0], monthToStr(nextMonth[1]), nextMonth[2], nextYear[0], monthToStr(nextYear[1]), nextYear[2] ]); 458 } 459 460 { 461 runTest(dateRange, [ true, 1, monthToStr(0), 0, 31, monthToStr(11), 100000 ]); 462 runTest(dateRange, [ true, 1, monthToStr(0), year, 31, monthToStr(11), year ]); 463 runTest(dateRange, [ true, 1, monthToStr(0), year-1, 31, monthToStr(11), year+1 ]); 464 runTest(dateRange, [ false, 1, monthToStr(0), year-1, 31, monthToStr(11), year-1 ]); 465 runTest(dateRange, [ false, 1, monthToStr(0), year+1, 31, monthToStr(11), year+1 ]); 466 } 467 468 } 469 470 function testDateRange2() { 471 472 var dates = [ 473 new Date("January 31, 2011 3:33:33"), 474 new Date("February 28, 2011 3:33:33"), 475 new Date("February 29, 2012 3:33:33"), 476 new Date("March 31, 2011 3:33:33"), 477 new Date("April 30, 2011 3:33:33"), 478 new Date("May 31, 2011 3:33:33"), 479 new Date("June 30, 2011 3:33:33"), 480 new Date("July 31, 2011 3:33:33"), 481 new Date("August 31, 2011 3:33:33"), 482 new Date("September 30, 2011 3:33:33"), 483 new Date("October 31, 2011 3:33:33"), 484 new Date("November 30, 2011 3:33:33"), 485 new Date("December 31, 2011 3:33:33"), 486 ] 487 for (var i = 0; i < dates.length; i++) { 488 var current = dates[i]; 489 var today = incDate(current, 'day', 0); 490 var yesterday = incDate(current, 'day', -1); 491 var tomorrow = incDate(current, 'day', 1); 492 var aYearFromNow = new Date(current.getFullYear()+1, current.getMonth()+1, current.getDate()+1); 493 var later = [aYearFromNow.getDate(), aYearFromNow.getMonth(), aYearFromNow.getFullYear()]; 494 495 runTest(isDateInRange_internallForIcedTeaWebTesting, [ true, current, 496 today[0], monthToStr(today[1]) , tomorrow[0], monthToStr(tomorrow[1]) ]); 497 runTest(isDateInRange_internallForIcedTeaWebTesting, [ true, current, 498 yesterday[0], monthToStr(yesterday[1]) , tomorrow[0], monthToStr(tomorrow[1]) ]); 499 runTest(isDateInRange_internallForIcedTeaWebTesting, [ true, current, 500 yesterday[0], monthToStr(yesterday[1]), yesterday[2], tomorrow[0], monthToStr(tomorrow[1]), tomorrow[2] ]); 501 runTest(isDateInRange_internallForIcedTeaWebTesting, [ false, current, 502 tomorrow[0], monthToStr(tomorrow[1]), tomorrow[2], later[0], monthToStr(later[1]), later[2] ]); 503 } 504 505 } 506 507 function testDateRange3() { 508 var dates = [ 509 new Date("January 1, 2011 1:11:11"), 510 new Date("February 1, 2011 1:11:11"), 511 new Date("March 1, 2011 1:11:11"), 512 new Date("April 1, 2011 1:11:11"), 513 new Date("May 1, 2011 1:11:11"), 514 new Date("June 1, 2011 1:11:11"), 515 new Date("July 1, 2011 1:11:11"), 516 new Date("August 1, 2011 1:11:11"), 517 new Date("September 1, 2011 1:11:11"), 518 new Date("October 1, 2011 1:11:11"), 519 new Date("November 1, 2011 1:11:11"), 520 new Date("December 1, 2011 1:11:11"), 521 522 ] 523 524 525 526 for (var i = 0; i < dates.length; i++) { 527 var current = dates[i]; 528 var yesterday = incDate(current,'day',-1); 529 var today = incDate(current,'day',0); 530 var tomorrow = incDate(current,'day',1); 531 runTest(isDateInRange_internallForIcedTeaWebTesting, [ true, current, 532 yesterday[0], monthToStr(yesterday[1]) , today[0], monthToStr(today[1]) ]); 533 runTest(isDateInRange_internallForIcedTeaWebTesting, [ true, current, 534 yesterday[0], monthToStr(yesterday[1]) , tomorrow[0], monthToStr(tomorrow[1]) ]); 535 runTest(isDateInRange_internallForIcedTeaWebTesting, [ true, current, 536 yesterday[0], monthToStr(yesterday[1]), yesterday[2], tomorrow[0], monthToStr(tomorrow[1]), tomorrow[2] ]); 537 } 370 538 } 371 539 -
branches/vendor/sourceforge/icedtea-web/current/tests/netx/unit/net/sourceforge/jnlp/ParserCornerCases.java
r348 r416 39 39 40 40 import java.io.ByteArrayInputStream; 41 import java.io.IOException; 42 import java.io.StringReader; 43 import net.sourceforge.jnlp.annotations.KnownToFail; 41 44 42 import org.junit.After; 45 import net.sourceforge.nanoxml.XMLElement; 46 import net.sourceforge.nanoxml.XMLParseException; 47 43 48 import org.junit.Assert; 44 import org.junit.Before;45 49 import org.junit.Test; 46 50 47 51 /** Test various corner cases of the parser */ 48 52 public class ParserCornerCases { 53 54 @Test 55 public void testCdata() throws ParseException, XMLParseException, IOException { 56 String data = "<argument><![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?> <!DOCTYPE properties SYSTEM \"http://java.sun.com/dtd/properties.dtd\"> <properties> <entry key=\"key\">value</entry> </properties> ]]></argument>"; 57 XMLElement elem = new XMLElement(); 58 elem.parseFromReader(new StringReader(data)); 59 XMLElement target = elem; 60 Assert.assertEquals("argument", target.getName()); 61 Assert.assertTrue("too small", target.getContent().length() > 20); 62 Assert.assertTrue(target.getContent().contains("xml")); 63 Assert.assertTrue(target.getContent().contains("DOCTYPE")); 64 Assert.assertTrue(target.getContent().contains("<entry key=\"key\">value</entry>")); 65 66 Node node = Parser.getRootNode(new ByteArrayInputStream(data.getBytes())); 67 Assert.assertEquals("argument", node.getNodeName()); 68 String contents = node.getNodeValue(); 69 Assert.assertTrue(contents.contains("xml")); 70 Assert.assertTrue(contents.contains("DOCTYPE")); 71 Assert.assertTrue(contents.contains("<entry key=\"key\">value</entry>")); 72 } 73 74 @Test 75 public void testCdataNested() throws ParseException, XMLParseException, IOException { 76 String data = "<jnlp>\n" + 77 "<application-desc>\n" + 78 "<argument>\n" + 79 "<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?> <!DOCTYPE properties SYSTEM \"http://java.sun.com/dtd/properties.dtd\"> <properties> <entry key=\"key\">value</entry> </properties> ]]>" + 80 "</argument>\n" + 81 "<argument>1</argument>\n" + 82 "</application-desc>\n" + 83 "</jnlp>"; 84 XMLElement elem = new XMLElement(); 85 elem.parseFromReader(new StringReader(data)); 86 XMLElement target = (XMLElement) ((XMLElement) elem.enumerateChildren().nextElement()).enumerateChildren().nextElement(); 87 Assert.assertEquals("argument", target.getName()); 88 Assert.assertTrue("too small", target.getContent().length() > 20); 89 Assert.assertTrue(target.getContent().contains("xml")); 90 Assert.assertTrue(target.getContent().contains("DOCTYPE")); 91 Assert.assertTrue(target.getContent().contains("<entry key=\"key\">value</entry>")); 92 93 Node node = Parser.getRootNode(new ByteArrayInputStream(data.getBytes())); 94 node = node.getFirstChild().getFirstChild(); 95 Assert.assertEquals("argument", node.getNodeName()); 96 String contents = node.getNodeValue(); 97 Assert.assertTrue(contents.contains("xml")); 98 Assert.assertTrue(contents.contains("DOCTYPE")); 99 Assert.assertTrue(contents.contains("<entry key=\"key\">value</entry>")); 100 } 101 102 @Test 103 @KnownToFail 104 public void testCDataFirstChild() throws XMLParseException, IOException { 105 String xml = "<?xml version=\"1.0\"?>\n" + 106 "<jnlp spec=\"1.5+\">\n" + 107 "<![CDATA[Text you want to escape goes here...<test> random tag test </test>]]>\n" + 108 "<information/>\n" + 109 "</jnlp>"; 110 XMLElement elem = new XMLElement(); 111 elem.parseFromReader(new StringReader(xml)); 112 } 113 114 @Test 115 @KnownToFail 116 public void testCDataSecondChild() throws XMLParseException, IOException { 117 String xml = "<?xml version=\"1.0\"?>\n" + 118 "<jnlp spec=\"1.5+\">\n" + 119 "<information/>\n" + 120 "<![CDATA[Text you want to escape goes here...<test> random tag test </test>]]>\n" + 121 "</jnlp>"; 122 XMLElement elem = new XMLElement(); 123 elem.parseFromReader(new StringReader(xml)); 124 } 125 49 126 @Test 50 127 public void testUnsupportedSpecNumber() throws ParseException { … … 72 149 73 150 @Test 151 public void testCommentInElements2() throws ParseException { 152 String malformedJnlp = "<?xml?><jnlp <!-- comment --> spec='1.0'> </jnlp>"; 153 Node root = Parser.getRootNode(new ByteArrayInputStream(malformedJnlp.getBytes())); 154 Parser p = new Parser(null, null, root, false, false); 155 Assert.assertEquals("1.0", p.getSpecVersion().toString()); 156 } 157 158 @Test 159 @KnownToFail 74 160 public void testCommentInAttributes() throws ParseException { 75 161 String malformedJnlp = "<?xml?><jnlp spec='<!-- something -->'></jnlp>"; … … 82 168 public void testNestedComments() throws ParseException { 83 169 String malformedJnlp = "<?xml?>" + 84 "<jnlp><information><description>" + 170 "<jnlp><information><title>testNestedComments</title>" + 171 "<vendor>IcedTea</vendor><description>" + 85 172 "<!-- outer <!-- inner --> -->" + 86 173 "</description></information></jnlp>"; … … 89 176 Assert.assertEquals(" -->", p.getInfo(root).get(0).getDescription()); 90 177 } 178 179 @Test 180 public void testDoubleDashesInComments() throws ParseException { 181 String malformedJnlp = "<?xml?>" + 182 "<jnlp> <!-- \n" + 183 " -- a very very long and \n" + 184 " -- multiline comment \n" + 185 " -- that contains double dashes \n" + 186 " -->\n" + 187 " <information/>" + 188 "</jnlp>"; 189 Node root = Parser.getRootNode(new ByteArrayInputStream(malformedJnlp.getBytes())); 190 Parser p = new Parser(null, null, root, false, false); 191 } 192 91 193 } -
branches/vendor/sourceforge/icedtea-web/current/tests/netx/unit/net/sourceforge/jnlp/ParserMalformedXml.java
r348 r416 43 43 import java.io.InputStreamReader; 44 44 import java.io.IOException; 45 import net.sourceforge.jnlp.annotations.KnownToFail; 45 46 46 47 import org.junit.BeforeClass; … … 75 76 76 77 @Test 78 @KnownToFail 77 79 public void testMalformedArguments() throws ParseException { 78 80 String malformedJnlp = originalJnlp.replace("arg2</argument", "arg2<argument"); … … 81 83 82 84 @Test 85 @KnownToFail 83 86 public void testTagNotClosed() throws ParseException { 84 87 String malformedJnlp = originalJnlp.replace("</jnlp>", "<jnlp>"); … … 87 90 88 91 @Test 92 @KnownToFail 89 93 public void testUnquotedAttributes() throws ParseException { 90 94 String malformedJnlp = originalJnlp.replace("'jnlp.jnlp'", "jnlp.jnlp");
Note:
See TracChangeset
for help on using the changeset viewer.