1. 21 Jun, 2001 19 commits
  2. 20 Jun, 2001 1 commit
  3. 19 Jun, 2001 11 commits
  4. 18 Jun, 2001 9 commits
    • Chris McDonough's avatar
      *** empty log message *** · 652f26c2
      Chris McDonough authored
      652f26c2
    • Chris McDonough's avatar
    • Chris McDonough's avatar
      Changed product import and install code. · 0c8a0e92
      Chris McDonough authored
      Now, when products are installed, they are installed in alphabetical order by product name, regardless of which Products directory (e.g. INSTANCE_HOME or SOFTWARE_HOME) that they're in EXCEPT FOR PluginIndexes, which are always first, due to the requirement that they register interfaces with the product context machinery before ZCatalog is initialized.
      0c8a0e92
    • Chris McDonough's avatar
      *** empty log message *** · 6a846af3
      Chris McDonough authored
      6a846af3
    • Barry Warsaw's avatar
      Bump the version number to 1.0 beta 3. · f0fe34aa
      Barry Warsaw authored
      f0fe34aa
    • Barry Warsaw's avatar
      FullTest(): Added mixin classes ConflictResolvingStorage and · 183cfea5
      Barry Warsaw authored
      ConflictResolvingTransUndoStorage to ensure that the Full storage
      passes the application level conflict resolution tests.  It does!
      183cfea5
    • Barry Warsaw's avatar
      Integration of application level conflict resolution, using the · ad23cfd3
      Barry Warsaw authored
      ConflictResolution helper module.  Specifically,
      
      class Full: add ConflictResolvingStorage to the base classes, so we
      magically grow self.tryToResolveConflict().
      
      store(): Keep a flag indicating whether we calculated the object's
      pickle data via conflict resolution.  If so, we return the special
      marker ResolvedSerial instead of the next available serial number.
      
      Also, in the serial <> oserial clause, try to resolve the conflict
      using ConflictResolvingStorage.tryToResolveConflict() and raise a
      ConflictError only if that fails (i.e. returns a false value).
      Otherwise, the resolution succeeded providing us with the data pickle
      to use as the stored object's state.
      
      transactionalUndo(): We need to keep an additional list of actions to
      perform on a successful undo.  The first list keeps track of existing
      revisions to point the new transaction at, but conflict resolution
      provides us with a brand new pickle (or at least, a pickle for which
      we've no idea what the lrevid pointer should be).  For those
      situations we need to do a CommitLog.write_object() instead of a
      CommitLog.write_object_undo() so as to get the new pickle into the
      commit log.  Thus, newstates is a list keeping track of conflict
      resolved object states, while (the existing) newrevs keeps track of
      undo records where we already have the pickle in the database.
      
      Also, in the clause where we raise an UndoError, first
      tryToResolveConflict() and only if that fails do we raise the
      UndoError.  Should it succeed, we append the record to newstates for
      later.
      
      Finally, in the clause were we're replaying the changes into the
      commit log (because we now know that all undos will succeed), we first
      replay the newrevs entries, then we replay the newstates entries,
      making sure we return all the affected oids.
      
      Note: these changes impose no regressions and pass all tests in
      ConflictResolvingStorage and ConflictResolvingTransUndoStorage.
      ad23cfd3
    • Chris McDonough's avatar
      This is a module used for backwards-compatibility aliasing. It potentially... · bea204e6
      Chris McDonough authored
      This is a module used for backwards-compatibility aliasing.  It potentially makes PythonMethods work with the current trunk, as well as solving some community issues with the import of the Eval class.
      bea204e6
    • Chris McDonough's avatar
      define "test" name, used by external code for import. This potentially makes... · 9d77dcbb
      Chris McDonough authored
      define "test" name, used by external code for import.  This potentially makes existing revisions of PythonMethods work ok with the current trunk.
      9d77dcbb