<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
<HTML>
<HEAD>
<meta name="generator" content="JDiff v1.1.1">
<!-- Generated by the JDiff Javadoc doclet -->
<!-- (http://www.jdiff.org) -->
<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
<TITLE>
com.google.inject
</TITLE>
<LINK REL="stylesheet" TYPE="text/css" HREF="../stylesheet-jdiff.css" TITLE="Style">
</HEAD>
<BODY>
<!-- Start of nav bar -->
<TABLE summary="Navigation bar" BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
  <TR>
    <TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    <TABLE summary="Navigation bar" BORDER="0" CELLPADDING="0" CELLSPACING="3">
    <TR ALIGN="center" VALIGN="top">
      <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../v2/com/google/inject/package-summary.html" target="_top"><FONT CLASS="NavBarFont1"><B><tt>v2</tt></B></FONT></A>&nbsp;</TD>
      <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="changes-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
      <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
      <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1"> &nbsp;<FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
      <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="docdiffs_index.html#com.google.inject!package"><FONT CLASS="NavBarFont1"><B>Text Changes</B></FONT></A>&nbsp;</TD>
      <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="jdiff_statistics.html"><FONT CLASS="NavBarFont1"><B>Statistics</B></FONT></A>&nbsp;</TD>
      <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="jdiff_help.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    </TR>
    </TABLE>
  </TD>
  <TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM><b>Generated by<br><a href="http://www.jdiff.org" class="staysblack" target="_top">JDiff</a></b></EM></TD>
</TR>
<TR>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<B>PREV PACKAGE</B>&nbsp;
&nbsp;<A HREF="pkg_com.google.inject.binder.html"><B>NEXT PACKAGE</B></A>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  <A HREF="../changes.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
  &nbsp;<A HREF="pkg_com.google.inject.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell3"><FONT SIZE="-2"> DETAIL: &nbsp;
REMOVED&nbsp;|&nbsp;
<a href="#Added">ADDED</a>&nbsp;|&nbsp;
<a href="#Changed">CHANGED</a>
  </FONT></TD>
</TR>
</TABLE>
<HR>
<!-- End of nav bar -->
<H2>
Package <A HREF="../v2/com/google/inject/package-summary.html" target="_top"><tt>com.google.inject</tt></A>
</H2>
<p>
<a NAME="Added"></a>
<TABLE summary="Added Classes" BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
  <TD VALIGN="TOP" COLSPAN=2><FONT SIZE="+1"><B>Added Classes</B></FONT></TD>
</TR>
<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
  <TD VALIGN="TOP" WIDTH="25%">
  <A NAME="ConfigurationException"></A>
  <nobr><A HREF="../v2/com/google/inject/ConfigurationException.html" target="_top"><tt>ConfigurationException</tt></A></nobr>
  </TD>
  <TD VALIGN="TOP">Thrown when a programming error such as a misplaced annotation, illegal binding, or unsupported
 scope is found.</TD>
</TR>
<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
  <TD VALIGN="TOP" WIDTH="25%">
  <A NAME="Exposed"></A>
  <nobr><A HREF="../v2/com/google/inject/Exposed.html" target="_top"><tt>Exposed</tt></A></nobr>
  </TD>
  <TD VALIGN="TOP">Acccompanies a {@literal @}<A HREF="../v2/com/google/inject/Exposed/com/google/inject/Provides.html"><TT>Provides</TT></A> method annotation in a
 private module to indicate that the provided binding is exposed.</TD>
</TR>
<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
  <TD VALIGN="TOP" WIDTH="25%">
  <A NAME="OutOfScopeException"></A>
  <nobr><A HREF="../v2/com/google/inject/OutOfScopeException.html" target="_top"><tt>OutOfScopeException</tt></A></nobr>
  </TD>
  <TD VALIGN="TOP">Thrown from <A HREF="../v2/com/google/inject/OutOfScopeException/Provider.html#get"><TT>Provider.get</TT></A> when an attempt is made to access a scoped
 object while the scope in question is not currently active.</TD>
</TR>
<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
  <TD VALIGN="TOP" WIDTH="25%">
  <A NAME="PrivateModule"></A>
  <nobr><A HREF="../v2/com/google/inject/PrivateModule.html" target="_top"><tt>PrivateModule</tt></A></nobr>
  </TD>
  <TD VALIGN="TOP">A module whose configuration information is hidden from its environment by default.</TD>
</TR>
<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
  <TD VALIGN="TOP" WIDTH="25%">
  <A NAME="Provides"></A>
  <nobr><A HREF="../v2/com/google/inject/Provides.html" target="_top"><tt>Provides</tt></A></nobr>
  </TD>
  <TD VALIGN="TOP">Annotates methods of a <A HREF="../v2/com/google/inject/Provides/Module.html"><TT>Module</TT></A> to create a provider method binding.</TD>
</TR>
<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
  <TD VALIGN="TOP" WIDTH="25%">
  <A NAME="ProvisionException"></A>
  <nobr><A HREF="../v2/com/google/inject/ProvisionException.html" target="_top"><tt>ProvisionException</tt></A></nobr>
  </TD>
  <TD VALIGN="TOP">Indicates that there was a runtime failure while providing an instance.</TD>
</TR>
</TABLE>
&nbsp;
<p>
<a NAME="Changed"></a>
<TABLE summary="Changed Classes and Interfaces" BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
  <TD VALIGN="TOP" COLSPAN=2><FONT SIZE="+1"><B>Changed Classes and Interfaces</B></FONT></TD>
</TR>
<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
  <TD VALIGN="TOP" WIDTH="25%">
  <A NAME="AbstractModule"></A>
  <nobr><A HREF="com.google.inject.AbstractModule.html">AbstractModule</A></nobr>
  </TD>
  <TD VALIGN="TOP">A support class for <A HREF="../v2/com/google/inject/AbstractModule/Module.html"><TT>Module</TT></A>s which reduces repetition and results in
 a more readable configuration.</TD>
</TR>
<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
  <TD VALIGN="TOP" WIDTH="25%">
  <A NAME="Binder"></A>
  <nobr><A HREF="com.google.inject.Binder.html"><I>Binder</I></A></nobr>
  </TD>
  <TD VALIGN="TOP">Collects configuration information (primarily <i>bindings</i>) which will be
 used to create an <A HREF="../v2/com/google/inject/Binder/Injector.html"><TT>Injector</TT></A>. Guice provides this object to your
 application's <A HREF="../v2/com/google/inject/Binder/Module.html"><TT>Module</TT></A> implementors so they may each contribute
 their own bindings and other registrations.

 <h3>The Guice Binding EDSL</h3>

 Guice uses an <i>embedded domain-specific language</i>, or EDSL, to help you
 create bindings simply and readably.  This approach is great for overall
 usability, but it does come with a small cost: <b>it is difficult to
 learn how to use the Binding EDSL in the usual way -- by reading
 method-level javadocs</b>.  Instead, you should consult this series of
 examples below.  To save space, these examples omit the opening
 {@code binder.}, just as you will if your module extends
 <A HREF="../v2/com/google/inject/Binder/AbstractModule.html"><TT>AbstractModule</TT></A>.

 <pre>
     bind(ServiceImpl.class);</pre>

 This statement does essentially nothing; it "binds the {@code ServiceImpl}
 class to itself" and does not change Guice's default behavior.  You may still
 want to use this if you prefer your <A HREF="../v2/com/google/inject/Binder/Module.html"><TT>Module</TT></A> class to serve as an
 explicit <i>manifest</i> for the services it provides.  Also, in rare cases,
 Guice may be unable to validate a binding at injector creation time unless it
 is given explicitly.

 <pre>
     bind(Service.class).to(ServiceImpl.class);</pre>

 Specifies that a request for a {@code Service} instance with no binding
 annotations should be treated as if it were a request for a
 {@code ServiceImpl} instance. This <i>overrides</i> the function of any
 <A HREF="../v2/com/google/inject/Binder/ImplementedBy.html"><TT>@ImplementedBy</TT></A> or <A HREF="../v2/com/google/inject/Binder/ProvidedBy.html"><TT>@ProvidedBy</TT></A>
 annotations found on {@code Service}, since Guice will have already
 "moved on" to {@code ServiceImpl} before it reaches the point when it starts
 looking for these annotations.

 <pre>
     bind(Service.class).toProvider(ServiceProvider.class);</pre>

 In this example, {@code ServiceProvider} must extend or implement
 {@code Provider<Service>}. This binding specifies that Guice should resolve
 an unannotated injection request for {@code Service} by first resolving an
 instance of {@code ServiceProvider} in the regular way, then calling
 <A HREF="../v2/com/google/inject/Binder/Provider.html#get"><TT>get()</TT></A> on the resulting Provider instance to obtain the
 {@code Service} instance.

 </TD>
</TR>
<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
  <TD VALIGN="TOP" WIDTH="25%">
  <A NAME="Binding"></A>
  <nobr><A HREF="com.google.inject.Binding.html"><I>Binding</I></A></nobr>
  </TD>
  <TD VALIGN="TOP">A mapping from a key (type and optional annotation) to the strategy for getting instances of the
 type.</TD>
</TR>
<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
  <TD VALIGN="TOP" WIDTH="25%">
  <A NAME="BindingAnnotation"></A>
  <nobr><A HREF="com.google.inject.BindingAnnotation.html">BindingAnnotation</A></nobr>
  </TD>
  <TD VALIGN="TOP">Annotates annotations which are used for binding.</TD>
</TR>
<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
  <TD VALIGN="TOP" WIDTH="25%">
  <A NAME="CreationException"></A>
  <nobr><A HREF="com.google.inject.CreationException.html">CreationException</A></nobr>
  </TD>
  <TD VALIGN="TOP">Thrown when errors occur while creating a <A HREF="../v2/com/google/inject/CreationException/Injector.html"><TT>Injector</TT></A>.</TD>
</TR>
<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
  <TD VALIGN="TOP" WIDTH="25%">
  <A NAME="Guice"></A>
  <nobr><A HREF="com.google.inject.Guice.html">Guice</A></nobr>
  </TD>
  <TD VALIGN="TOP">The entry point to the Guice framework. Creates <A HREF="../v2/com/google/inject/Guice/Injector.html"><TT>Injector</TT></A>s from
 <A HREF="../v2/com/google/inject/Guice/Module.html"><TT>Module</TT></A>s.

 </TD>
</TR>
<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
  <TD VALIGN="TOP" WIDTH="25%">
  <A NAME="Injector"></A>
  <nobr><A HREF="com.google.inject.Injector.html"><I>Injector</I></A></nobr>
  </TD>
  <TD VALIGN="TOP">Builds the graphs of objects that make up your application.</TD>
</TR>
<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
  <TD VALIGN="TOP" WIDTH="25%">
  <A NAME="Key"></A>
  <nobr><A HREF="com.google.inject.Key.html">Key</A></nobr>
  </TD>
  <TD VALIGN="TOP">Binding key consisting of an injection type and an optional annotation.</TD>
</TR>
<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
  <TD VALIGN="TOP" WIDTH="25%">
  <A NAME="Module"></A>
  <nobr><A HREF="com.google.inject.Module.html"><I>Module</I></A></nobr>
  </TD>
  <TD VALIGN="TOP">A module contributes configuration information, typically interface
 bindings, which will be used to create an <A HREF="../v2/com/google/inject/Module/Injector.html"><TT>Injector</TT></A>.</TD>
</TR>
<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
  <TD VALIGN="TOP" WIDTH="25%">
  <A NAME="Provider"></A>
  <nobr><A HREF="com.google.inject.Provider.html"><I>Provider</I></A></nobr>
  </TD>
  <TD VALIGN="TOP">An object capable of providing instances of type {@code T}.</TD>
</TR>
<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
  <TD VALIGN="TOP" WIDTH="25%">
  <A NAME="Scope"></A>
  <nobr><A HREF="com.google.inject.Scope.html"><I>Scope</I></A></nobr>
  </TD>
  <TD VALIGN="TOP">A scope is a level of visibility that instances provided by Guice may have.</TD>
</TR>
<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
  <TD VALIGN="TOP" WIDTH="25%">
  <A NAME="Scopes"></A>
  <nobr><A HREF="com.google.inject.Scopes.html">Scopes</A></nobr>
  </TD>
  <TD VALIGN="TOP">Built in scope implementations.</TD>
</TR>
<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
  <TD VALIGN="TOP" WIDTH="25%">
  <A NAME="TypeLiteral"></A>
  <nobr><A HREF="com.google.inject.TypeLiteral.html">TypeLiteral</A></nobr>
  </TD>
  <TD VALIGN="TOP">Represents a generic type {@code T}.</TD>
</TR>
</TABLE>
&nbsp;
<HR>
<!-- Start of nav bar -->
<TABLE summary="Navigation bar" BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
  <TR>
    <TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    <TABLE summary="Navigation bar" BORDER="0" CELLPADDING="0" CELLSPACING="3">
    <TR ALIGN="center" VALIGN="top">
      <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../v2/com/google/inject/package-summary.html" target="_top"><FONT CLASS="NavBarFont1"><B><tt>v2</tt></B></FONT></A>&nbsp;</TD>
      <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="changes-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
      <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
      <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1"> &nbsp;<FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
      <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="docdiffs_index.html#com.google.inject!package"><FONT CLASS="NavBarFont1"><B>Text Changes</B></FONT></A>&nbsp;</TD>
      <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="jdiff_statistics.html"><FONT CLASS="NavBarFont1"><B>Statistics</B></FONT></A>&nbsp;</TD>
      <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="jdiff_help.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    </TR>
    </TABLE>
  </TD>
  <TD ALIGN="right" VALIGN="top" ROWSPAN=3></TD>
</TR>
<TR>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<B>PREV PACKAGE</B>&nbsp;
&nbsp;<A HREF="pkg_com.google.inject.binder.html"><B>NEXT PACKAGE</B></A>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  <A HREF="../changes.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
  &nbsp;<A HREF="pkg_com.google.inject.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD>
<TD BGCOLOR="0xFFFFFF" CLASS="NavBarCell3"></TD>
</TR>
</TABLE>
<HR>
<!-- End of nav bar -->
</BODY>
</HTML>
