| <html> |
| <head> |
| <title>Update checking in FindBugs</title> |
| <link rel="stylesheet" type="text/css" href="findbugs.css" /> |
| |
| </head> |
| |
| <body> |
| |
| <table width="100%"> |
| <tr> |
| |
| |
| <td bgcolor="#b9b9fe" valign="top" align="left" width="20%"> |
| <table width="100%" cellspacing="0" border="0"> |
| <tr><td><a class="sidebar" href="index.html"><img src="umdFindbugs.png" alt="FindBugs"></a></td></tr> |
| |
| <tr><td> </td></tr> |
| |
| <tr><td><b>Docs and Info</b></td></tr> |
| <tr><td><font size="-1"> <a class="sidebar" href="findbugs2.html">FindBugs 2.0</a></font></td></tr> |
| <tr><td><font size="-1"> <a class="sidebar" href="demo.html">Demo and data</a></font></td></tr> |
| <tr><td><font size="-1"> <a class="sidebar" href="users.html">Users and supporters</a></font></td></tr> |
| <tr><td><font size="-1"> <a class="sidebar" href="http://findbugs.blogspot.com/">FindBugs blog</a></font></td></tr> |
| <tr><td><font size="-1"> <a class="sidebar" href="factSheet.html">Fact sheet</a></font></td></tr> |
| <tr><td><font size="-1"> <a class="sidebar" href="manual/index.html">Manual</a></font></td></tr> |
| <tr><td><font size="-1"> <a class="sidebar" href="ja/manual/index.html">Manual(ja/日本語)</a></font></td></tr> |
| <tr><td><font size="-1"> <a class="sidebar" href="FAQ.html">FAQ</a></font></td></tr> |
| <tr><td><font size="-1"> <a class="sidebar" href="bugDescriptions.html">Bug descriptions</a></font></td></tr> |
| <tr><td><font size="-1"> <a class="sidebar" href="bugDescriptions_ja.html">Bug descriptions(ja/日本語)</a></font></td></tr> |
| <tr><td><font size="-1"> <a class="sidebar" href="bugDescriptions_fr.html">Bug descriptions(fr)</a></font></td></tr> |
| <tr><td><font size="-1"> <a class="sidebar" href="mailingLists.html">Mailing lists</a></font></td></tr> |
| <tr><td><font size="-1"> <a class="sidebar" href="publications.html">Documents and Publications</a></font></td></tr> |
| <tr><td><font size="-1"> <a class="sidebar" href="links.html">Links</a></font></td></tr> |
| |
| <tr><td> </td></tr> |
| |
| <tr><td><a class="sidebar" href="downloads.html"><b>Downloads</b></a></td></tr> |
| |
| <tr><td> </td></tr> |
| |
| <tr><td><a class="sidebar" href="http://www.cafeshops.com/findbugs"><b>FindBugs Swag</b></a></td></tr> |
| |
| <tr><td> </td></tr> |
| |
| <tr><td><b>Development</b></td></tr> |
| <tr><td><font size="-1"> <a class="sidebar" href="http://sourceforge.net/tracker/?group_id=96405">Open bugs</a></font></td></tr> |
| <tr><td><font size="-1"> <a class="sidebar" href="reportingBugs.html">Reporting bugs</a></font></td></tr> |
| <tr><td><font size="-1"> <a class="sidebar" href="contributing.html">Contributing</a></font></td></tr> |
| <tr><td><font size="-1"> <a class="sidebar" href="team.html">Dev team</a></font></td></tr> |
| <tr><td><font size="-1"> <a class="sidebar" href="api/index.html">API</a> <a class="sidebar" href="api/overview-summary.html">[no frames]</a></font></td></tr> |
| <tr><td><font size="-1"> <a class="sidebar" href="Changes.html">Change log</a></font></td></tr> |
| <tr><td><font size="-1"> <a class="sidebar" href="http://sourceforge.net/projects/findbugs">SF project page</a></font></td></tr> |
| <tr><td><font size="-1"> <a class="sidebar" href="http://code.google.com/p/findbugs/source/browse/">Browse source</a></font></td></tr> |
| <tr><td><font size="-1"> <a class="sidebar" href="http://code.google.com/p/findbugs/source/list">Latest code changes</a></font></td></tr> |
| </table> |
| </td> |
| |
| <td align="left" valign="top"> |
| |
| <h1>Update checking in FindBugs</h1> |
| |
| <p>When FindBugs is run, it now checks for updated versions of FindBugs or plugins. As a side effect |
| of this, our server sees a request for whether there are any updated version of FindBugs available. |
| Third party plugins can independently receive this same information. We are recording |
| information about the operating system, Java version, locale, and Findbugs entry point (ant, command line, |
| GUI, etc), in order to better understand our users. |
| |
| <p>For example, here is an example of the information that would be sent to the server: |
| <pre> |
| <?xml version="1.0" encoding="UTF-8"?> |
| |
| <findbugs-invocation version="2.0.0-rc1" app-name="UpdateChecker" app-version="" entry-point="UpdateChecker" os="Mac OS X" |
| java-version="1.6" language="en" country="US" uuid="-4bcf8f48ba2842d2"> |
| <plugin id="edu.umd.cs.findbugs.plugins.core" name="Core FindBugs plugin" version="2.0.0-rc1"/> |
| <plugin id="edu.umd.cs.findbugs.plugins.appengine" name="FindBugs Cloud Plugin" version=""/> |
| <plugin id="edu.umd.cs.findbugs.plugins.poweruser" name="Power user commnand line tools" version=""/> |
| </findbugs-invocation> |
| </pre> |
| |
| <p>You can run the main method of edu.umd.cs.findbugs.updates.UpdateChecker to see what would be reported |
| for you, and whether update checking is disabled and/or redirected (e.g., run |
| <pre> java -classpath ~/findbugs/lib/findbugs.jar edu.umd.cs.findbugs.updates.UpdateChecker</pre> |
| |
| <p>There is one element of the information sent that needs explanation: the uuid. Since we don't report anything like username, |
| when we receive a bunch of update checks from a particular ip address, we don't know if that is one person running FindBugs many times |
| on a single machine, or many users running FindBugs on many different machines So we generate a random 64 bit integer, |
| store it in the Java user preferences, and report that on each use. |
| |
| <h2>Disabling or redirecting update checks</h2> |
| <p>Some organizations or individuals may have policies or preferences to not let us know any information about |
| their running of FindBugs. Note that we do not collect any information about the code being analuzed. |
| Even so, we understand that is very important for a few of our users, |
| and provide several ways for you to disable or redirect FindBugs update checks. |
| <ul> |
| <li>There is a FindBugs plugin, noUpdateChecks.jar, which is in findbugs/optionalPlugin in the standard distribution. |
| If this plugin enabled, all update checks are disabled. You can move that plugin from findbugs/optionalPlugin to findbugs/plugin, |
| to disable it for all users of that distribution. You can also copy it to <pre>~/.findbugs/plugin</pre>, |
| which will disable it for your account for any distribution of FindBugs you invoke (NOTE: double check location |
| of personal FindBugs plugin installation for Windows User). |
| <li>There are noUpdateChecks distributions of FindBugs available from SourceForge. This come with the noUpdateChecks plugin |
| already moved to findbugs/plugin, and the webCloudClient.jar plug in the optional plugin directory (where it is disabled by default). |
| |
| <li>You can also redirect all update checks to a local server. This allows you to collect information about who is using |
| what versions of FindBugs in your organization, and keep all of that information private. |
| <li>All of the plugins from the FindBugs project use <pre>http://update.findbugs.org/update-check</pre> as the |
| host we use for update checks. If you wish to ensure that no one from your organization accidently reports any usage |
| information to the FindBugs project, you can blacklist that URL in your firewall |
| <ul> |
| <li>You can also block <pre>http://findbugs-cloud.appspot.com</pre>, the host we use for our publicly hosted |
| repository of bug evaluations (e.g., evaluations in open source projects such as the JDK, Eclipse and GlassFish). |
| While people have to explicitly request that their evaluations be stored into the FindBugs cloud, you |
| can block it to ensure that no one accidently shares evaluations of your own code to the FindBugs cloud. You can also |
| remove the WebCloudClient |
| |
| </ul> |
| </li> |
| </ul> |
| |
| |
| </tr> |
| </table> |
| |
| </body> |
| </html> |