<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -31,51 +31,45 @@ rescue LoadError
   end
 end
 
-require 'active_record/base'
-require 'active_record/named_scope'
-require 'active_record/observer'
-require 'active_record/query_cache'
-require 'active_record/validations'
-require 'active_record/callbacks'
-require 'active_record/reflection'
-require 'active_record/associations'
-require 'active_record/association_preload'
-require 'active_record/aggregations'
-require 'active_record/transactions'
-require 'active_record/timestamp'
-require 'active_record/locking/optimistic'
-require 'active_record/locking/pessimistic'
-require 'active_record/migration'
-require 'active_record/schema'
-require 'active_record/calculations'
-require 'active_record/serialization'
-require 'active_record/attribute_methods'
-require 'active_record/dirty'
-require 'active_record/dynamic_finder_match'
+module ActiveRecord
+  # TODO: Review explicit loads to see if they will automatically be handled by the initilizer.
+  def self.load_all!
+    [Base, DynamicFinderMatch, ConnectionAdapters::AbstractAdapter]
+  end
 
-ActiveRecord::Base.class_eval do
-  extend ActiveRecord::QueryCache
-  include ActiveRecord::Validations
-  include ActiveRecord::Locking::Optimistic
-  include ActiveRecord::Locking::Pessimistic
-  include ActiveRecord::AttributeMethods
-  include ActiveRecord::Dirty
-  include ActiveRecord::Callbacks
-  include ActiveRecord::Observing
-  include ActiveRecord::Timestamp
-  include ActiveRecord::Associations
-  include ActiveRecord::NamedScope
-  include ActiveRecord::AssociationPreload
-  include ActiveRecord::Aggregations
-  include ActiveRecord::Transactions
-  include ActiveRecord::Reflection
-  include ActiveRecord::Calculations
-  include ActiveRecord::Serialization
-end
+  autoload :Aggregations, 'active_record/aggregations'
+  autoload :AssociationPreload, 'active_record/association_preload'
+  autoload :Associations, 'active_record/associations'
+  autoload :AttributeMethods, 'active_record/attribute_methods'
+  autoload :Base, 'active_record/base'
+  autoload :Calculations, 'active_record/calculations'
+  autoload :Callbacks, 'active_record/callbacks'
+  autoload :Dirty, 'active_record/dirty'
+  autoload :DynamicFinderMatch, 'active_record/dynamic_finder_match'
+  autoload :Migration, 'active_record/migration'
+  autoload :NamedScope, 'active_record/named_scope'
+  autoload :Observing, 'active_record/observer'
+  autoload :QueryCache, 'active_record/query_cache'
+  autoload :Reflection, 'active_record/reflection'
+  autoload :Schema, 'active_record/schema'
+  autoload :SchemaDumper, 'active_record/schema_dumper'
+  autoload :Serialization, 'active_record/serialization'
+  autoload :TestCase, 'active_record/test_case'
+  autoload :Timestamp, 'active_record/timestamp'
+  autoload :Transactions, 'active_record/transactions'
+  autoload :Validations, 'active_record/validations'
 
-require 'active_record/connection_adapters/abstract_adapter'
+  module Locking
+    autoload :Optimistic, 'active_record/locking/optimistic'
+    autoload :Pessimistic, 'active_record/locking/pessimistic'
+  end
 
-require 'active_record/schema_dumper'
+  module ConnectionAdapters
+    autoload :AbstractAdapter, 'active_record/connection_adapters/abstract_adapter'
+  end
+end
 
 require 'active_record/i18n_interpolation_deprecation'
 I18n.load_path &lt;&lt; File.dirname(__FILE__) + '/active_record/locale/en.yml'
+
+ActiveRecord.load_all!</diff>
      <filename>activerecord/lib/active_record.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,13 +1,3 @@
-require 'active_record/associations/association_proxy'
-require 'active_record/associations/association_collection'
-require 'active_record/associations/belongs_to_association'
-require 'active_record/associations/belongs_to_polymorphic_association'
-require 'active_record/associations/has_one_association'
-require 'active_record/associations/has_many_association'
-require 'active_record/associations/has_many_through_association'
-require 'active_record/associations/has_and_belongs_to_many_association'
-require 'active_record/associations/has_one_through_association'
-
 module ActiveRecord
   class HasManyThroughAssociationNotFoundError &lt; ActiveRecordError #:nodoc:
     def initialize(owner_class_name, reflection)
@@ -75,6 +65,18 @@ module ActiveRecord
 
   # See ActiveRecord::Associations::ClassMethods for documentation.
   module Associations # :nodoc:
+    # These classes will be loaded when associatoins are created.
+    # So there is no need to eager load them.
+    autoload :AssociationCollection, 'active_record/associations/association_collection'
+    autoload :AssociationProxy, 'active_record/associations/association_proxy'
+    autoload :BelongsToAssociation, 'active_record/associations/belongs_to_association'
+    autoload :BelongsToPolymorphicAssociation, 'active_record/associations/belongs_to_polymorphic_association'
+    autoload :HasAndBelongsToManyAssociation, 'active_record/associations/has_and_belongs_to_many_association'
+    autoload :HasManyAssociation, 'active_record/associations/has_many_association'
+    autoload :HasManyThroughAssociation, 'active_record/associations/has_many_through_association'
+    autoload :HasOneAssociation, 'active_record/associations/has_one_association'
+    autoload :HasOneThroughAssociation, 'active_record/associations/has_one_through_association'
+
     def self.included(base)
       base.extend(ClassMethods)
     end</diff>
      <filename>activerecord/lib/active_record/associations.rb</filename>
    </modified>
    <modified>
      <diff>@@ -2978,4 +2978,15 @@ module ActiveRecord #:nodoc:
         value
       end
   end
+
+  Base.class_eval do
+    extend QueryCache
+    include Validations
+    include Locking::Optimistic, Locking::Pessimistic
+    include AttributeMethods
+    include Dirty
+    include Callbacks, Observing, Timestamp
+    include Associations, AssociationPreload, NamedScope
+    include Aggregations, Transactions, Reflection, Calculations, Serialization
+  end
 end</diff>
      <filename>activerecord/lib/active_record/base.rb</filename>
    </modified>
    <modified>
      <diff>@@ -3,6 +3,7 @@ require 'date'
 require 'bigdecimal'
 require 'bigdecimal/util'
 
+# TODO: Autoload these files
 require 'active_record/connection_adapters/abstract/schema_definitions'
 require 'active_record/connection_adapters/abstract/schema_statements'
 require 'active_record/connection_adapters/abstract/database_statements'</diff>
      <filename>activerecord/lib/active_record/connection_adapters/abstract_adapter.rb</filename>
    </modified>
    <modified>
      <diff>@@ -95,4 +95,4 @@ module ActiveRecord #:nodoc:
 end
 
 require 'active_record/serializers/xml_serializer'
-require 'active_record/serializers/json_serializer'
\ No newline at end of file
+require 'active_record/serializers/json_serializer'</diff>
      <filename>activerecord/lib/active_record/serialization.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,4 @@
 require &quot;cases/helper&quot;
-require 'active_record/schema'
 
 if ActiveRecord::Base.connection.supports_migrations?
 </diff>
      <filename>activerecord/test/cases/ar_schema_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,4 @@
 require &quot;cases/helper&quot;
-require 'active_record/schema_dumper'
 require 'stringio'
 
 </diff>
      <filename>activerecord/test/cases/schema_dumper_test.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>426a86ab1e4fc2488215a9adab4511a59646a413</id>
    </parent>
  </parents>
  <author>
    <name>Joshua Peek</name>
    <login>josh</login>
    <email>josh@joshpeek.com</email>
  </author>
  <url>http://github.com/rails/rails/commit/7254d23764f7abe8023f3daeb07d99ea1c8e777a</url>
  <id>7254d23764f7abe8023f3daeb07d99ea1c8e777a</id>
  <committed-date>2008-11-24T09:14:24-08:00</committed-date>
  <authored-date>2008-11-24T09:14:24-08:00</authored-date>
  <message>Autoload ActiveRecord files</message>
  <tree>4c1981119e1da9b9c98e8e2d9cf8a3b7dcfcb887</tree>
  <committer>
    <name>Joshua Peek</name>
    <login>josh</login>
    <email>josh@joshpeek.com</email>
  </committer>
</commit>
