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