[Squirrel-sql-commits] sql12/app/src/net/sourceforge/squirrel_sql/client/update UpdateUtilImpl.jav
A Java SQL client for any JDBC compliant database
Brought to you by:
colbell,
gerdwagner
From: Rob M. <man...@us...> - 2008-07-26 16:53:25
|
Update of /cvsroot/squirrel-sql/sql12/app/src/net/sourceforge/squirrel_sql/client/update In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv3745/app/src/net/sourceforge/squirrel_sql/client/update Modified Files: UpdateUtilImpl.java UpdateControllerImpl.java UpdateUtil.java Log Message: Prevent re-download of previously downloaded artifacts. Index: UpdateControllerImpl.java =================================================================== RCS file: /cvsroot/squirrel-sql/sql12/app/src/net/sourceforge/squirrel_sql/client/update/UpdateControllerImpl.java,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** UpdateControllerImpl.java 5 May 2008 00:12:21 -0000 1.11 --- UpdateControllerImpl.java 26 Jul 2008 16:53:22 -0000 1.12 *************** *** 21,25 **** --- 21,27 ---- import static net.sourceforge.squirrel_sql.client.update.UpdateUtil.RELEASE_XML_FILENAME; + import java.io.File; import java.io.FileNotFoundException; + import java.io.IOException; import java.util.ArrayList; import java.util.HashSet; *************** *** 49,52 **** --- 51,55 ---- import net.sourceforge.squirrel_sql.client.update.xmlbeans.ChannelXmlBean; import net.sourceforge.squirrel_sql.fw.gui.GUIUtils; + import net.sourceforge.squirrel_sql.fw.util.IOUtilities; import net.sourceforge.squirrel_sql.fw.util.IUpdateSettings; import net.sourceforge.squirrel_sql.fw.util.StringManager; *************** *** 252,256 **** for (ArtifactStatus status : artifactStatusList) { if (status.getArtifactAction() == ArtifactAction.INSTALL) { ! newartifactsList.add(status); } } --- 255,259 ---- for (ArtifactStatus status : artifactStatusList) { if (status.getArtifactAction() == ArtifactAction.INSTALL) { ! newartifactsList.add(status); } } *************** *** 404,411 **** } /** ! * Returns the UpdateSettings from preferences. ! * @return ! */ private IUpdateSettings getUpdateSettings() { return _app.getSquirrelPreferences().getUpdateSettings(); --- 407,417 ---- } + /* Helper methods */ + /** ! * Returns the UpdateSettings from preferences. ! * ! * @return ! */ private IUpdateSettings getUpdateSettings() { return _app.getSquirrelPreferences().getUpdateSettings(); Index: UpdateUtilImpl.java =================================================================== RCS file: /cvsroot/squirrel-sql/sql12/app/src/net/sourceforge/squirrel_sql/client/update/UpdateUtilImpl.java,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** UpdateUtilImpl.java 26 Jul 2008 11:48:07 -0000 1.20 --- UpdateUtilImpl.java 26 Jul 2008 16:53:22 -0000 1.21 *************** *** 771,774 **** --- 771,831 ---- } + /** + * @see net.sourceforge.squirrel_sql.client.update.UpdateUtil#getDownloadFileLocation( + * net.sourceforge.squirrel_sql.client.update.gui.ArtifactStatus) + */ + public File getDownloadFileLocation(ArtifactStatus status) + { + File result = null; + if (CORE_ARTIFACT_ID.equals(status.getType())) { + result = getFile(getCoreDownloadsDir(), status.getName()); + } + if (PLUGIN_ARTIFACT_ID.equals(status.getType())) { + result = getFile(getPluginDownloadsDir(), status.getName()); + } + if (TRANSLATION_ARTIFACT_ID.equals(status.getType())) { + result = getFile(getI18nDownloadsDir(), status.getName()); + } + return result; + } + + /** + * @see net.sourceforge.squirrel_sql.client.update.UpdateUtil#isPresentInDownloadsDirectory( + * net.sourceforge.squirrel_sql.client.update.gui.ArtifactStatus) + */ + public boolean isPresentInDownloadsDirectory(ArtifactStatus status) + { + boolean result = false; + + File downloadFile = getDownloadFileLocation(status); + + if (fileExists(downloadFile)) + { + long checkSum = -1; + try + { + checkSum = IOUtilities.getCheckSum(downloadFile); + } + catch (IOException e) + { + s_log.error("isPresentInDownloadsDirectory: unexpected exception while attempting to get " + + "the checksum of file (" + downloadFile.getAbsolutePath() + ")"); + return false; + } + if (status.getChecksum() == checkSum) + { + if (downloadFile.length() == status.getSize()) + { + result = true; + } + } + } + return result; + } + + + + /* Helper Methods */ + /** * Verifies that the byte size of what was downloaded matches the expected size of the artifact. If *************** *** 798,802 **** } } - } --- 855,858 ---- Index: UpdateUtil.java =================================================================== RCS file: /cvsroot/squirrel-sql/sql12/app/src/net/sourceforge/squirrel_sql/client/update/UpdateUtil.java,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** UpdateUtil.java 26 Jul 2008 11:48:07 -0000 1.14 --- UpdateUtil.java 26 Jul 2008 16:53:22 -0000 1.15 *************** *** 293,295 **** --- 293,306 ---- */ void extractZipFile(File zipFile, File outputDirectory) throws IOException; + + /** + * Returns the absolute path to the file in the downloads section for the specified ArtifactStatus + * + * @param status + * the ArtifactStatus that describes the type and name of this artifact. + * @return a File object representing the location of the artifact in the downloads directory. + */ + File getDownloadFileLocation(ArtifactStatus status); + + boolean isPresentInDownloadsDirectory(ArtifactStatus status); } \ No newline at end of file |