diff -up azureus-4.5.0.0/org/gudy/azureus2/ui/swt/updater2/SWTUpdateChecker.java.no-update-manager-SWTUpdateChecker azureus-4.5.0.0/org/gudy/azureus2/ui/swt/updater2/SWTUpdateChecker.java --- azureus-4.5.0.0/org/gudy/azureus2/ui/swt/updater2/SWTUpdateChecker.java.no-update-manager-SWTUpdateChecker 2010-05-04 02:50:24.000000000 +0300 +++ azureus-4.5.0.0/org/gudy/azureus2/ui/swt/updater2/SWTUpdateChecker.java 2010-08-06 22:20:40.000000000 +0300 @@ -64,195 +64,12 @@ public class SWTUpdateChecker implements public static void initialize() { - PluginInitializer.getDefaultInterface().getUpdateManager().registerUpdatableComponent(new SWTUpdateChecker(),true); } public SWTUpdateChecker() { } public void checkForUpdate(final UpdateChecker checker) { - try{ - SWTVersionGetter versionGetter = new SWTVersionGetter( checker ); - - boolean update_required = System.getProperty("azureus.skipSWTcheck") == null && versionGetter.needsUpdate(); - - if ( update_required ){ - - int update_prevented_version = COConfigurationManager.getIntParameter( "swt.update.prevented.version", -1 ); - - try{ - URL swt_url = SWT.class.getClassLoader().getResource("org/eclipse/swt/SWT.class"); - - if ( swt_url != null ){ - - String url_str = swt_url.toExternalForm(); - - if ( url_str.startsWith("jar:file:")){ - - File jar_file = FileUtil.getJarFileFromURL(url_str); - - String expected_location; - - if ( Constants.isOSX ){ - - expected_location = checker.getCheckInstance().getManager().getInstallDir() + OSX_APP + "/Contents/Resources/Java"; - - }else{ - - expected_location = checker.getCheckInstance().getManager().getInstallDir(); - } - - File expected_dir = new File( expected_location ); - - File jar_file_dir = jar_file.getParentFile(); - - // sanity check - - if ( expected_dir.exists() && jar_file_dir.exists() ){ - - expected_dir = expected_dir.getCanonicalFile(); - jar_file_dir = jar_file_dir.getCanonicalFile(); - - if ( expected_dir.equals( jar_file_dir )){ - - // everything looks ok - - if ( update_prevented_version != -1 ){ - - update_prevented_version = -1; - - COConfigurationManager.setParameter( "swt.update.prevented.version", update_prevented_version ); - } - }else{ - - // we need to periodically remind the user there's a problem as they need to realise that - // it is causing ALL updates (core/plugin) to fail - - String alert = - MessageText.getString( - "swt.alert.cant.update", - new String[]{ - String.valueOf( versionGetter.getCurrentVersion()), - String.valueOf( versionGetter.getLatestVersion()), - jar_file_dir.toString(), - expected_dir.toString()}); - - checker.reportProgress( alert ); - - long last_prompt = COConfigurationManager.getLongParameter( "swt.update.prevented.version.time", 0 ); - long now = SystemTime.getCurrentTime(); - - boolean force = now < last_prompt || now - last_prompt > 7*24*60*60*1000; - - if ( !checker.getCheckInstance().isAutomatic()){ - - force = true; - } - - if ( force || update_prevented_version != versionGetter.getCurrentVersion()){ - - Logger.log( new LogAlert(LogAlert.REPEATABLE, LogEvent.LT_ERROR, alert )); - - update_prevented_version = versionGetter.getCurrentVersion(); - - COConfigurationManager.setParameter( "swt.update.prevented.version", update_prevented_version ); - COConfigurationManager.setParameter( "swt.update.prevented.version.time", now ); - } - } - } - } - } - }catch( Throwable e ){ - - Debug.printStackTrace(e); - } - - if ( update_prevented_version == versionGetter.getCurrentVersion()){ - - Logger.log(new LogEvent(LOGID, LogEvent.LT_ERROR, "SWT update aborted due to previously reported issues regarding its install location" )); - - checker.failed(); - - checker.getCheckInstance().cancel(); - - return; - } - - String[] mirrors = versionGetter.getMirrors(); - - ResourceDownloader swtDownloader = null; - - ResourceDownloaderFactory factory = ResourceDownloaderFactoryImpl.getSingleton(); - List downloaders = new ArrayList(); - for(int i = 0 ; i < mirrors.length ; i++) { - try { - downloaders.add(factory.getSuffixBasedDownloader(factory.create(new URL(mirrors[i])))); - } catch(MalformedURLException e) { - //Do nothing - if (Logger.isEnabled()) - Logger.log(new LogEvent(LOGID, LogEvent.LT_WARNING, - "Cannot use URL " + mirrors[i] + " (not valid)")); - } - } - ResourceDownloader[] resourceDownloaders = - (ResourceDownloader[]) - downloaders.toArray(new ResourceDownloader[downloaders.size()]); - - swtDownloader = factory.getRandomDownloader(resourceDownloaders); - - // get the size so its cached up - - try{ - swtDownloader.getSize(); - - }catch( ResourceDownloaderException e ){ - - Debug.printStackTrace( e ); - } - - final Update update = - checker.addUpdate("SWT Library for " + versionGetter.getPlatform(), - new String[] {"SWT is the graphical library used by " + Constants.APP_NAME}, - "" + versionGetter.getLatestVersion(), - swtDownloader, - Update.RESTART_REQUIRED_YES - ); - - update.setDescriptionURL(versionGetter.getInfoURL()); - - swtDownloader.addListener(new ResourceDownloaderAdapter() { - - public boolean - completed( - ResourceDownloader downloader, - InputStream data) - { - //On completion, process the InputStream to store temp files - - return processData(checker,update,downloader,data); - } - - public void - failed( - ResourceDownloader downloader, - ResourceDownloaderException e ) - { - Debug.out( downloader.getName() + " failed", e ); - - update.complete( false ); - } - }); - } - }catch( Throwable e ){ - Logger.log(new LogAlert(LogAlert.UNREPEATABLE, - "SWT Version check failed", e)); - - checker.failed(); - - }finally{ - - checker.completed(); - } }