You don't have to declare the throw clause if it's a RuntimeException. The method signature doesn't have to change.
On 5/5/08, Scott Anderson <[EMAIL PROTECTED]> wrote: > > I don't see > > much benefit to providing a binary-compatible method API that does > > nothing. > > ... > > > Another possibility is to @deprecate the method and have it > > unconditionally throw a RuntimeException telling the developer to > > rewrite using query cache options. > > > Adding a Throws clause to the method would change its signature, thereby > breaking the binary compatibility of the method. It's a good idea, but > it won't solve that problem. :) > > Regards, > > Scott > > > -----Original Message----- > From: Mike Kienenberger [mailto:[EMAIL PROTECTED] > Sent: Monday, May 05, 2008 5:01 PM > To: user@cayenne.apache.org > Subject: Re: Query.setRefreshingObjects(boolean) > > Just to reiterate, I see no problem with axing it entirely. I don't > think we have to nicely deprecate everything since we're now in 3.0 > and it's marked unstable. > > However, we should make the need for change obvious. I don't see > much benefit to providing a binary-compatible method API that does > nothing. As an end-user, I want to see things either work as they > always worked, or be given a clear unavoidable indication that work is > required on my part to fix it. > > Another possibility is to @deprecate the method and have it > unconditionally throw a RuntimeException telling the developer to > rewrite using query cache options. > > On 5/5/08, Andrus Adamchik <[EMAIL PROTECTED]> wrote: > > Actually I was going to do the opposite, but since we've set the > backwards > > compatibility bar for ourselves pretty high in the past, I guess I am > > persuaded to go with deprecated-but-don't-cripple approach. I guess > that > > means also putting a deprecation note in the Modeler next to refresh > > checkbox. > > > > Andrus > > > > > > On May 5, 2008, at 11:36 PM, Michael Gentry wrote: > > > > > > > I'd like to second the opinion that deprecated still works (until > > > removed), but is discouraged from use. I believe that is what > Andrus > > > intends, though, given previous API changes. > > > > > > On Mon, May 5, 2008 at 4:02 PM, Mike Kienenberger > <[EMAIL PROTECTED]> > > wrote: > > > > > > > I guess my problem is that to me @deprecate means "it still works > like > > > > it used to, but it won't work in a future version and it's time > for > > > > you to change your code", but that's not what's going to happen > here. > > > > > > > > That's why if we're not really @deprecating it but crippling it, > then > > > > I'd recommend removing it. Giving end-users the false-hope that > > > > things are working as usual isn't very nice. > > > > > > > > You know the details of this particular situation better than I > do, > > > > though. If you don't think silently doing nothing will affect > > > > expected program behavior, go for it. > > > > > > > > > > > > > > > > On 5/5/08, Andrus Adamchik <[EMAIL PROTECTED]> wrote: > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > On May 5, 2008, at 10:39 PM, Mike Kienenberger wrote: > > > > > > > > > > > > > > > > > > > > > To me, that sounded like you were going to change the behavior > > rather > > > > > > than just mark the method as @deprecated. > > > > > > > > > > > > > > > > > > > > > > I was planning to do both. Although we may decide to be gentle > about > > it and > > > > > deprecate the method, but preserve the functionality (which will > put a > > bit > > > > > of extra maintenance burden on us). > > > > > > > > > > I am leaning towards the first option (deprecate and stop > invoking), > > > > > especially since the nature of the change results in enhanced > data > > > > > consistency, so there won't be any unpleasant surprises. > > > > > > > > > > Andrus > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >