# File vapor/persistencemgr.rb, line 43
    def initialize( properties )
      raise TypeError, "property object does not respond to []" unless properties.respond_to? "[]"

      # determine backend class to use
      if !properties['Vapor.Datastore.BackendClass'].nil? then
        backend_class = properties['Vapor.Datastore.BackendClass']
      else
        backend_class = TupleManager
      end
    
      # retrieve properties
      ds_user = properties[ 'Vapor.Datastore.Username']
      ds_pass = properties[ 'Vapor.Datastore.Password' ]
      ds_name = properties[ 'Vapor.Datastore.Name' ]
      ds_host = properties[ 'Vapor.Datastore.Host' ]
      ds_port = properties[ 'Vapor.Datastore.Port' ]
      if properties[ 'Vapor.Autocommit' ].nil? then
        @autocommit = true
      else
        if properties[ 'Vapor.Autocommit' ] then
          @autocommit = true
        else
          @autocommit = false
        end
      end

      # initialize backend
      @backend = backend_class.new( ds_name, ds_user, ds_pass, ds_host, ds_port ) 

      # initialize other instance variables
      @object_cache = Hash.new
      Persistable.persistence_manager = self
      @oid_gen = OIDGenerator.new
      @oid_gen.high_source = @backend
      @query_parser = QueryParser.new
      @transaction = Transaction.new( self, @backend )
      @autocommit_in_progress = false
      
    end