<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<comments
  xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
  xsi:noNamespaceSchemaLocation='comments.xsd'
  name="2.0_to_3.0"
  jdversion="1.1.1">

<!-- This file contains comments for a JDiff report. -->
<!-- It is used only in generating the report, and does not need to ship with the final report. -->

<!-- The id attribute in an identifier element identifies the change as noted in the report. -->
<!-- An id has the form package[.class[.[ctor|method|field].signature]], where [] indicates optional text. -->
<!-- A comment element can have multiple identifier elements, which will -->
<!-- will cause the same text to appear at each place in the report, but -->
<!-- will be converted to separate comments when the comments file is used. -->
<!-- HTML tags in the text field will appear in the report. -->
<!-- You also need to close p HTML elements, used for paragraphs - see the top-level documentation. -->
<comment>
  <identifier id="com.google.inject"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Binder"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Binder.disableCircularProxies_added()"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Binder.getProvider_changed(com.google.inject.Key&lt;T&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Binder.requireExplicitBindings_added()"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Guice"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Guice.createInjector_changed(com.google.inject.Module[])"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Guice.createInjector_changed(com.google.inject.Stage, com.google.inject.Module[])"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Guice.createInjector_changed(com.google.inject.Stage, java.lang.Iterable&lt;? extends com.google.inject.Module&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Guice.createInjector_changed(java.lang.Iterable&lt;? extends com.google.inject.Module&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Injector"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Injector.createChildInjector_changed(java.lang.Iterable&lt;? extends com.google.inject.Module&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Injector.getAllBindings_added()"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Injector.getBindings_changed()"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Injector.getExistingBinding_added(com.google.inject.Key&lt;T&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Injector.getScopeBindings_added()"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Injector.getTypeConverterBindings_added()"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Key"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Key.hasAttributes_added()"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Key.ofType_added(com.google.inject.TypeLiteral&lt;T&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Key.ofType_added(java.lang.Class&lt;T&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Key.ofType_added(java.lang.reflect.Type)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Key.withoutAttributes_added()"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Provider"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.ProvisionException"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.ProvisionException.ctor_changed(java.lang.Iterable&lt;com.google.inject.spi.Message&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.ScopeAnnotation"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Scopes"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Scopes.isSingleton_added(com.google.inject.Binding&lt;?&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.TypeLiteral"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.assistedinject"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.assistedinject.AssistedInject"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.assistedinject.AssistedInjectBinding"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.assistedinject.AssistedInjectTargetVisitor"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.assistedinject.AssistedMethod"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.assistedinject.FactoryModuleBuilder"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.assistedinject.FactoryProvider"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.binder"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.binder.ConstantBindingBuilder"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.binder.ConstantBindingBuilder.to_added(byte)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.binder.LinkedBindingBuilder"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.binder.LinkedBindingBuilder.toConstructor_added(java.lang.reflect.Constructor&lt;S&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.binder.LinkedBindingBuilder.toConstructor_added(java.lang.reflect.Constructor&lt;S&gt;, com.google.inject.TypeLiteral&lt;? extends S&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.binder.LinkedBindingBuilder.toProvider_added(com.google.inject.Key&lt;? extends javax.inject.Provider&lt;? extends T&gt;&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.binder.LinkedBindingBuilder.toProvider_added(com.google.inject.TypeLiteral&lt;? extends javax.inject.Provider&lt;? extends T&gt;&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.binder.LinkedBindingBuilder.toProvider_added(java.lang.Class&lt;? extends javax.inject.Provider&lt;? extends T&gt;&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.binder.LinkedBindingBuilder.toProvider_removed(com.google.inject.Key&lt;? extends com.google.inject.Provider&lt;? extends T&gt;&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.binder.LinkedBindingBuilder.toProvider_removed(java.lang.Class&lt;? extends com.google.inject.Provider&lt;? extends T&gt;&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.grapher"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.grapher.graphviz"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.multibindings"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.multibindings.MapBinder"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.multibindings.MapBinder.permitDuplicates_added()"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.multibindings.MapBinderBinding"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.multibindings.Multibinder"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.multibindings.Multibinder.permitDuplicates_added()"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.multibindings.MultibinderBinding"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.multibindings.MultibindingsTargetVisitor"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.persist"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.persist.finder"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.persist.jpa"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.servlet"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.servlet.InstanceFilterBinding"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.servlet.InstanceServletBinding"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.servlet.LinkedFilterBinding"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.servlet.LinkedServletBinding"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.servlet.ServletModule"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.servlet.ServletModule.FilterKeyBindingBuilder"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.servlet.ServletModule.FilterKeyBindingBuilder.through_added(Filter)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.servlet.ServletModule.FilterKeyBindingBuilder.through_added(Filter, java.util.Map&lt;java.lang.String, java.lang.String&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.servlet.ServletModule.ServletKeyBindingBuilder"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.servlet.ServletModule.ServletKeyBindingBuilder.with_added(HttpServlet)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.servlet.ServletModule.ServletKeyBindingBuilder.with_added(HttpServlet, java.util.Map&lt;java.lang.String, java.lang.String&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.servlet.ServletModule.configureServlets_changed()"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.servlet.ServletModule.getServletContext_added()"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.servlet.ServletModuleBinding"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.servlet.ServletModuleTargetVisitor"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.servlet.ServletScopes"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.servlet.ServletScopes.continueRequest_added(java.util.concurrent.Callable&lt;T&gt;, java.util.Map&lt;com.google.inject.Key&lt;?&gt;, java.lang.Object&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.servlet.ServletScopes.scopeRequest_added(java.util.concurrent.Callable&lt;T&gt;, java.util.Map&lt;com.google.inject.Key&lt;?&gt;, java.lang.Object&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.servlet.UriPatternType"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi.ConvertedConstantBinding"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi.ConvertedConstantBinding.getTypeConverterBinding_added()"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi.DefaultElementVisitor"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi.DefaultElementVisitor.visit_added(com.google.inject.spi.DisableCircularProxiesOption)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi.DefaultElementVisitor.visit_added(com.google.inject.spi.InjectionRequest&lt;?&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi.DefaultElementVisitor.visit_added(com.google.inject.spi.RequireExplicitBindingsOption)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi.DefaultElementVisitor.visit_removed(com.google.inject.spi.InjectionRequest)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi.DisableCircularProxiesOption"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi.ElementVisitor"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi.ElementVisitor.visit_added(com.google.inject.spi.DisableCircularProxiesOption)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi.ElementVisitor.visit_added(com.google.inject.spi.InjectionRequest&lt;?&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi.ElementVisitor.visit_added(com.google.inject.spi.RequireExplicitBindingsOption)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi.ElementVisitor.visit_removed(com.google.inject.spi.InjectionRequest)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi.InjectionPoint"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi.InjectionPoint.forConstructor_added(java.lang.reflect.Constructor&lt;T&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi.InjectionPoint.forConstructor_added(java.lang.reflect.Constructor&lt;T&gt;, com.google.inject.TypeLiteral&lt;? extends T&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi.InjectionPoint.forStaticMethodsAndFields_changed(com.google.inject.TypeLiteral&lt;?&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi.InjectionPoint.getDeclaringType_added()"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi.InjectionPoint.isToolable_added()"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi.InterceptorBinding"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi.InterceptorBinding.getInterceptors_changed()"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi.ProviderKeyBinding"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi.ProviderKeyBinding.getProviderKey_changed()"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi.ProviderWithExtensionVisitor"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi.RequireExplicitBindingsOption"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi.Toolable"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi.TypeConverterBinding"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi.TypeConverterBinding.ctor_added(java.lang.Object, com.google.inject.matcher.Matcher&lt;? super com.google.inject.TypeLiteral&lt;?&gt;&gt;, com.google.inject.spi.TypeConverter)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi.TypeConverterBinding.toString_added()"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.struts2"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.struts2.GuiceObjectFactory"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.struts2.Struts2Factory"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.struts2.Struts2GuicePluginModule"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.throwingproviders"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.throwingproviders.CheckedProvider"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.throwingproviders.CheckedProvides"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.throwingproviders.ThrowingProvider"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.throwingproviders.ThrowingProviderBinder"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.throwingproviders.ThrowingProviderBinder.SecondaryBinder"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.throwingproviders.ThrowingProviderBinder.SecondaryBinder.to_changed(P extends com.google.inject.throwingproviders.CheckedProvider)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.throwingproviders.ThrowingProviderBinder.forModule_added(com.google.inject.Module)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.util"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.util.Modules"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.util.Modules.override_changed(com.google.inject.Module[])"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.util.Modules.override_changed(java.lang.Iterable&lt;? extends com.google.inject.Module&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.util.Providers"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.util.Providers.guicify_added(javax.inject.Provider&lt;T&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>

</comments>
