diff -up azureus-4.3.0.0/org/gudy/azureus2/update/CoreUpdateChecker.java.no-update-manager-CoreUpdateChecker azureus-4.3.0.0/org/gudy/azureus2/update/CoreUpdateChecker.java --- azureus-4.3.0.0/org/gudy/azureus2/update/CoreUpdateChecker.java.no-update-manager-CoreUpdateChecker 2009-11-04 03:23:06.000000000 +0200 +++ azureus-4.3.0.0/org/gudy/azureus2/update/CoreUpdateChecker.java 2009-11-19 21:15:38.000000000 +0200 @@ -127,8 +127,6 @@ CoreUpdateChecker props.setProperty( "plugin.version", plugin_interface.getAzureusVersion()); rdf = plugin_interface.getUtilities().getResourceDownloaderFactory(); - - plugin_interface.getUpdateManager().registerUpdatableComponent( this, true ); } public String @@ -147,309 +145,11 @@ CoreUpdateChecker checkForUpdate( final UpdateChecker checker ) { - try{ - String current_version = plugin_interface.getAzureusVersion(); - - log.log( "Update check starts: current = " + current_version ); - - Map decoded = VersionCheckClient.getSingleton().getVersionCheckInfo( - first_check?VersionCheckClient.REASON_UPDATE_CHECK_START:VersionCheckClient.REASON_UPDATE_CHECK_PERIODIC); - - - displayUserMessage( decoded ); - - // No point complaining later if we don't have any data in the map (which is - // more likely due to network problems rather than the version check server - // *actually* returning a map with nothing in it. - if (decoded.isEmpty()) {return;} - - String latest_version; - String latest_file_name; - - byte[] b_version = (byte[])decoded.get("version"); - - if ( b_version != null ){ - - latest_version = new String( b_version ); - - plugin_interface.getPluginProperties().setProperty( LATEST_VERSION_PROPERTY, latest_version ); - - }else{ - - throw( new Exception( "No version found in reply" )); - } - - byte[] b_filename = (byte[]) decoded.get("filename"); - - if ( b_filename != null ){ - - latest_file_name = new String( b_filename ); - - }else{ - - throw( new Exception( "No update file details in reply" )); - } - - //latest_version = "3.0.0.3"; - //latest_file_name = "http://torrent.vuze.com:88/torrents/Azureus2.5.0.0.jar.torrent"; - //latest_file_name = "Azureus2.5.0.0.jar.torrent"; - - String msg = "Core: latest_version = '" + latest_version + "', file = '" + latest_file_name + "'"; - - URL full_download_url; - - // since 2501 we support a full download URL, falling back to SF mirrors if this - // fails. - - if ( latest_file_name.startsWith( "http" )){ - - try{ - full_download_url = new URL( latest_file_name ); - - }catch( Throwable e ){ - - full_download_url = null; - - log.log( e ); - } - - int pos = latest_file_name.lastIndexOf( '/' ); - - latest_file_name = latest_file_name.substring( pos+1 ); - - }else{ - - full_download_url = null; - } - - checker.reportProgress( msg ); - - log.log( msg ); - - if ( !shouldUpdate( current_version, latest_version )){ - - return; - } - - final String f_latest_version = latest_version; - final String f_latest_file_name = latest_file_name; - - ResourceDownloader top_downloader; - - if ( full_download_url == null ){ - - ResourceDownloader[] primary_mirrors; - - primary_mirrors = getPrimaryDownloaders( latest_file_name ); - - // the download hierarchy is primary mirrors first (randomised alternate) - // then backup mirrors (randomised alternate) - - // we don't want to load the backup mirrors until the primary mirrors fail - - ResourceDownloader random_primary_mirrors = rdf.getRandomDownloader( primary_mirrors ); - - ResourceDownloader backup_downloader = - rdf.create( - new ResourceDownloaderDelayedFactory() - { - public ResourceDownloader - create() - { - ResourceDownloader[] backup_mirrors = getBackupDownloaders( f_latest_file_name ); - - return( rdf.getRandomDownloader( backup_mirrors )); - } - }); - - top_downloader = - rdf.getAlternateDownloader( - new ResourceDownloader[] - { - random_primary_mirrors, - backup_downloader, - }); - - }else{ - - ResourceDownloader full_rd = rdf.create( full_download_url ); - - full_rd = rdf.getSuffixBasedDownloader( full_rd ); - - ResourceDownloader primary_downloader = - rdf.create( - new ResourceDownloaderDelayedFactory() - { - public ResourceDownloader - create() - { - ResourceDownloader[] primary_mirrors = getPrimaryDownloaders( f_latest_file_name ); - - return( rdf.getRandomDownloader( primary_mirrors )); - } - }); - - ResourceDownloader backup_downloader = - rdf.create( - new ResourceDownloaderDelayedFactory() - { - public ResourceDownloader - create() - { - ResourceDownloader[] backup_mirrors = getBackupDownloaders( f_latest_file_name ); - - return( rdf.getRandomDownloader( backup_mirrors )); - } - }); - - - top_downloader = - rdf.getAlternateDownloader( - new ResourceDownloader[] - { - full_rd, - primary_downloader, - backup_downloader, - }); - } - - top_downloader.addListener( rd_logger ); - - // get size so it is cached - - top_downloader.getSize(); - - - byte[] info_b = (byte[])decoded.get( "info" ); - - String info = null; - - if ( info_b != null ){ - - try{ - info = new String( info_b, "UTF-8" ); - - }catch( Throwable e ){ - - Debug.printStackTrace( e ); - } - } - - byte[] info_url_bytes = (byte[])decoded.get("info_url"); - - String info_url = null; - - if ( info_url_bytes != null ){ - - try{ - info_url = new String( info_url_bytes ); - - }catch( Exception e ){ - - Debug.out(e); - } - } - - if ( info != null || info_url != null ){ - - String check; - - if ( info == null ){ - - check = info_url; - - }else if ( info_url == null ){ - - check = info; - - }else{ - - check = info + "|" + info_url; - } - - byte[] sig = (byte[])decoded.get( "info_sig" ); - - boolean ok = false; - - if ( sig == null ){ - - Logger.log( new LogEvent( LogIDs.LOGGER, "info signature check failed - missing signature" )); - - }else{ - - try{ - AEVerifier.verifyData( check, sig ); - - ok = true; - - }catch( Throwable e ){ - - Logger.log( new LogEvent( LogIDs.LOGGER, "info signature check failed", e )); - } - } - - if ( !ok ){ - - info = null; - info_url = null; - } - } - - String[] desc; - - if ( info == null ){ - - desc = new String[]{"Core Azureus Version" }; - - }else{ - - desc = new String[]{"Core Azureus Version", info }; - } - - - - final Update update = - checker.addUpdate( - "Core Azureus Version", - desc, - latest_version, - top_downloader, - Update.RESTART_REQUIRED_YES ); - - if ( info_url != null ){ - - update.setDescriptionURL(info_url); - } - - top_downloader.addListener( - new ResourceDownloaderAdapter() - { - public boolean - completed( - final ResourceDownloader downloader, - InputStream data ) - { - installUpdate( checker, update, downloader, f_latest_file_name, f_latest_version, data ); - - return( true ); - } - }); - }catch( Throwable e ){ - - log.log( e ); - - Debug.printStackTrace( e ); - - checker.reportProgress( "Failed to check for core update: " + Debug.getNestedExceptionMessage(e)); - - checker.failed(); - - }finally{ - + checker.completed(); first_check = false; - } + }