Github user ajs6f commented on the pull request:
https://github.com/apache/jena/pull/56#issuecomment-99085428
I'm definitely up for breaking this down. :)
The major moves here are:
- I replaced any interface inside oaj.atlas for which I could find a
functionally-equivalent Java 8 type with that Java 8 type, and resolved the
various syntactical changes that resulted (mostly just renaming of things, of
which you can see quite a lot).
- Following on that, I used lambda notation to shorten and clarify code
that directly involved those types from step 1. (In other words, I didn't go
looking for opportunities, I just took them when I happened to be "in the
neighborhood" and saw them: there are plenty of more places, I think, to
exercise lambda syntax).
- A few places where I could determine clearly that a method or type was
not in use anywhere in the codebase and that the functionality provided was
either available elsewhere (typically in Guava) or constructable in Java 8 in
an obvious "one-liner", I removed it.
- Lastly, for a few types (notably 'MultiMap' and 'MultiSet') I happened to
know that excellent well-exercised Guava versions already existed, so I swapped
them out and toasted the Jena versions.
To your specific points:
- `oaj.atlas.lib.Closeable`: I clearly misunderstood the semantics of this
type. I thought it was simply a narrowing of ` java.io.Closeable` to disallow
checked exceptions, so that the additional warnings would be a _good_ thing.
Since it is independent, I will remove the new relationship: would it not also
make sense to add some kind of comment explaining the particular semantics on
oaj.a.l.Closeable`? I have to admit, I didn't look at it twice before thinking
"try-with-resources".
- `NodeTransform` I will put it back in in the optimizer. If I understand
you correctly, the type itself should be declared inside oaj.sparql and used
only there, yes?
- Ah, I completely forgot about `@deprecated`. Just plain forgetfulness.
I'll get those comments tagged correctly.
Shall I make these changes, and then we can figure out how to parcel this
stuff out into reasonable commits?
JENA-931
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---