-
Notifications
You must be signed in to change notification settings - Fork 116
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix the last inconsistencies in generics #57
base: master
Are you sure you want to change the base?
Conversation
Overall, this looks fine to me. I just need some inputs from the rest of the team on one specific change, for which I have raised a dev list thread https://www.mail-archive.com/[email protected]/msg46002.html |
The new method is taken from |
The methods in |
The same applies to |
cf1554f
to
d217ef9
Compare
Is this sufficient, or should I add an extra check in
|
Hi Gintas, To be clear - what I meant/proposed in the dev list was:
In short, in this release, don't expose this as a new API on the interface but expose it on the Again, I'm being a bit extra cautious on this specific interface unlike some other interface/class changes that we have been doing since this one acts as the central well known contract to the developers who have extended Ivy. Plus the fact that we do have a way to do all the changes being proposed in this PR without having to force the implementations of the DependencyResolver to implement that new method in this specific release. |
Thanks for clarifying. My point was that the use of the method is limited to two classes: A quick search seems to indicate that most (if not all) custom resolver implementations out there extend Therefore I would like to insist on adding the method to the interface as well as changing the signature in all resolvers that ship with Ivy. Any public method in the abstract class should be declared in the interface, and going halfway does not make much sense. |
a30ac81
to
bf4db7c
Compare
@twogee, you have looked into the open sources softwares that use Ivy, but Ivy is under the ASL, not the GPL, it might be used in some closed, commercial products :) The hierarchy of the classes of the DependencyResolver is not of the best design, it would have been great to have more composition than inheritance. But that's we have. So unless we want to break things, rewrite things and make an Ivy3, I think we should stick with it. To move forward, I suggest that this PR doesn't break the API at all. And if you still think DependencyResolver deserve a probably-safe API break, you're welcomed to discuss it on ant-dev so we can get a consensus. |
@nlalevee, we already broke a few things by going Java 7 (and gained native symlinks 😉). For more examples, look at commons-lang3 breaking off commons-text and introducing escapeHtml3 and escapeHtml4 instead of escapeHtml -- all without changing a major version. Pointing to some hypothetical closed code is a poor excuse -- as if commercial vendors (or their customers) have no QA and expect the dependencies to be drop-ins every time. I will present the argument on ant-dev in a more coherent form later. |
74d1de7
to
f877d82
Compare
f877d82
to
0356198
Compare
036ac6d
to
a49d4ac
Compare
2efe5de
to
5badc7a
Compare
8344060
to
59fc3a4
Compare
3c02117
to
81f6e9d
Compare
b2d4a68
to
83e4c0e
Compare
83e4c0e
to
b0de2e2
Compare
c20fcee
to
973aa5f
Compare
89a8cac
to
e8d0f84
Compare
145d812
to
5668f0c
Compare
836f253
to
de9e402
Compare
de9e402
to
7c97bf9
Compare
7c97bf9
to
8a7eb10
Compare
8a7eb10
to
a4cd948
Compare
a4cd948
to
51dbc47
Compare
51dbc47
to
2b138f7
Compare
bd439f3
to
7bac30c
Compare
7bac30c
to
1a7f861
Compare
4cc056d
to
109afaf
Compare
109afaf
to
4aa8401
Compare
... use collections, not arrays