Contribute to the DSpace Development Fund

The newly established DSpace Development Fund supports the development of new features prioritized by DSpace Governance. For a list of planned features see the fund wiki page.

Date

Angular updates

Attendees

Notes

REST updates

Attendees

Notes

  • Andrea still out on holiday

  • Tim gave an update on DSpace 6 efforts. It's very important to note that we've all realized that DSpace 6's behavior with regards to database connections is significantly different from how DSpace 5 behaved.  The behavior change came with the move to Hibernate and our current Hibernate configs. 
    • The DSpace 7 REST API team needs to be aware of this difference in behavior as they develop new Java code.
    •  Behavior is described at DevMtg 2017-08-02 (see bullet #2), and also discussed in great detail in the logs of that day's meeting.  Copied description/notes below:
      • In DSpace 5, each "Context" established a new DB connection. Context then committed or aborted the connection after it was done (based on results of that request).  Context could also be shared between methods if a single transaction needed to perform actions across multiple methods.
      • In DSpace 6, Hibernate manages the DB connection pool.  Each thread grabs a Connection from the pool. This means two Context objects could use the same Connection (if they are in the same thread). In other words, code can no longer assume each new Context() is treated as a new database transaction.
    • Currently, the DSpace 6 team is stabilizing the codebase based on this behavior (a 6.2 release coming very soon with fixes to Context & Hibernate)
    • In discussion is what we want to do for DSpace 7 API. Already a few ideas proposed. No formal plans yet.
      • Change "Context" to work how it used to (create a new connection per Context object), reconfiguring Hibernate as needed
      • Refactor "new Context()" into something like "Context.getCurrentContext" and "Context.getNewContext" (where former is an existing connection, and latter is a new one)
      • Or, potentially pull apart the Context object altogether, and split it into several objects based on the various jobs/tasks (e.g. a session-based object for things in HTTPSession, a request-based object for current HTTPRequest, etc etc)
  • Andrea looking for more feedback on Authentication for REST API: https://github.com/DSpace/Rest7Contract/issues/10
  • Tom looking for feedback/final decision on Search endpoint design: https://github.com/DSpace/Rest7Contract/pull/9