Details

    • Type: Improvement Improvement
    • Status: Closed Closed
    • Priority: Major Major
    • Resolution: Won't Fix
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: Core system, Database
    • Labels:
      None
    • Complexity:
      Intermediate
    • Number of attachments :
      0

      Description

      some notes I sent to the dev list earlier in the year

      There are afew areas I'm still not happy with. The fetch groups don't
      seem to fit well with what is required a lot of the time. I'm wondering
      whether we are better off making everything be in the default fetch
      group, and lazy loading the lists instead. It seems since we are only
      doing this as an optimization that'd be a better way to do it.

      We'd still need to avoid long lists, ie build results. I think that
      should not be a field on the project, and instead it should just have
      references to the last successful build, last finished build, current
      build (either in progress or finished).

      I'm not particularly happy with using store methods "mid-way" through a
      block of code. I'm not sure if it does any dirty checking when you do a
      re-attach,but I see potential to read something, have it changed
      externally, then write over the top of it. The fact that we are
      re-retrieving from the db at random points could make this harder to
      track. I think we should be in the practise of getting all we need from
      the db at the start, modifying the detached objects, then updating them
      with dirty check at the end. We need to be able to resolve common cases
      where we can recover, and fail gracefully when it can't. At the end of
      the day, this isn't preventing it working now, so I'll just schedule a
      review of the use of the store later as it may be a source of ongoing
      bugs otherwise.

        Issue Links

          Activity

          Hide
          Jesse McConnell added a comment -

          I would really like to set the store api cleared up in general with this. Its frustrating to try and balance all of the 'do I have build definitions in the project instance I just asked for?'

          joakim and I ended up working out some really nice conventions for accessing objects and dealing with things in the plexus-security store in terms of save* and get* operations. I think we could really go a long ways towards making continuum more maintainable if we were able to just bite the bullet and refactor the store api and the underlying jdo store. programming against the current api just feels really hit or miss.

          Show
          Jesse McConnell added a comment - I would really like to set the store api cleared up in general with this. Its frustrating to try and balance all of the 'do I have build definitions in the project instance I just asked for?' joakim and I ended up working out some really nice conventions for accessing objects and dealing with things in the plexus-security store in terms of save* and get* operations. I think we could really go a long ways towards making continuum more maintainable if we were able to just bite the bullet and refactor the store api and the underlying jdo store. programming against the current api just feels really hit or miss.
          Hide
          Brett Porter added a comment -

          not perfect, but these notes are out of date. Emmanuel has split it into separate access objects which has helped.

          Show
          Brett Porter added a comment - not perfect, but these notes are out of date. Emmanuel has split it into separate access objects which has helped.

            People

            • Assignee:
              Brett Porter
              Reporter:
              Brett Porter
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: