ASF mailing lists strip all attachments. If you want to reference something
you'll need to upload it somewhere and the include a link.

Normally patches would go onto a filed JIRA to make licensing intention
clear. If the patch is trying to illustrate an approach but has known
limitations, a note to that effect is usually sufficient.

-- 
Sean
On Jun 4, 2015 7:26 PM, "dam6923 ." <[email protected]> wrote:

> Hello!
>
> Thanks for all the support and direction thus far in my efforts to
> improve the system provenance record keeping.
>
> I'd like to propose a few changes to the ProvenanceEventRepository
> API.  There are some inconsistent and error-prone method calls
> available that I think can be enhanced.
>
> I've based some of my ideas off of the Hibernate Session object that
> allows for this kind of plug-able behavior of persisting and searching
> objects.  In general, I believe there should be a bigger overhaul down
> the road, but some items to consider for the shorter term:
>
> 1. Do not assume ProvenanceEventRecord objects have an ID of type
> long.  Instead, I'd like to see the ID be "Serializable" so one can
> use numerical values, byte arrays (i.e., hashes), Strings (i.e.,
> UUID).
>
> 2. Remove the method "getEvents".  From what I can tell, the only
> place it is used is to generate the "Oldest event available" display
> on the Provenance UI.  The way in which it is used is a bit wonky and
> not actually correct.  The ControllerFacade assumes that the first
> item submitted to the repository is going to be the oldest.  This
> isn't true. Since the client is responsible for setting the event
> date-time, the first item could have any arbitrary value and not
> actually the "oldest" event in a way that most users would expect.  I
> would recommend removing this label from the UI altogether.  It's
> value seems limited and is generated in this incorrect manner.
>
> 3. Add a "clear" method to allow the users to manually empty the
> repository.
>
> 4. Remove method "getMaxEventId".  In an implementation that uses
> UUID/Hash ids, there is no such thing as a "max" ID.
>
> 5. Remove methods "registerEvent"/"registerEvents" in favor of a
> single "addEvent" that accepts a single ProvenanceEventRecord and
> returns its Serializable ID.
>
> 6. Introduce a  ProvenanceEventRepositoryRuntimeException class (or
> something like that) instead of using explicit IO exceptions.  As is,
> the IOException seems inconsistent across methods.
>
> I have attached a sample of these changes though only at the
> Interface, not all changes required.  Changing to a Serialize object
> would affect several classes.
>
> Thanks.
>

Reply via email to