Hi Brian,
On May 23, 2008, at 10:11 AM, Brian Murphy wrote:
On Fri, May 23, 2008 at 1:28 AM, Peter Jones <[EMAIL PROTECTED]>
wrote:
[I am curious: why update the old directory tree (trunk/qatests) as
well as the new one (qatests/trunk)?
I'm not sure how much detail you want,
Thanks for indulging me. To the point of my curiosity: your
explanation seems consistent with my previous understanding that I
needn't worry about the old trees (so either choice of yours was fine).
I'm unclear why the old tree is even still visible.]
When the new structure was put in place, Mark B said that
at some point the old directory structure should eventually
be removed, but that hasn't happened yet.
I see that he has just filed an issue to do that-- should remove
confusion from browsing the source trees.
Anyway, I presume that the change to this NameServiceImpl class:
http://svn.apache.org/viewvc/incubator/river/qatests/trunk/source/
vob/qa/src/com/sun/jini/test/impl/reggie/NameServiceImpl.java?
r1=615035&r2=658927&diff_format=h
was done so that it would compile against Sun's JDK 6. Unfortunately,
that makes it no longer compile against earlier Sun JDKs, like 5.0
and
1.4.x.
Are you saying that prior to my commit, you were able to checkout
the distribution and compile the qatests under 5.0 and 1.4.x? Or
simply that they would compile under 1.4.x and 5.0, as long as the
appropriate ant, make, maven, shell, etc. script or command line
was provided?
I wasn't making any claim about the overall compilability of the
qatests area-- I haven't tried to build it all from the River tree
myself.
For my recent River changes, I only tried to run the jtreg suite from
the River tree. My changes were all in the JERI area, which has good
coverage from the jtreg tests, and (as you may recall) the jtreg
tests are what I am most familiar with, so I focused on running
them. In doing so, and running with JDK 6, I encountered this issue
with test classes implementing sun.net.spi.nameservice.NameService--
so when I was skimming through your commits, I gathered that you
encountered the exact same issue with the above reggie test class in
the regular qatests area, hence my comments about the JDK version
dependency above.
I was assuming, perhaps mistakenly, that no one was using the
tests because the make files wouldn't compile the source and
build the jar files correctly, under any jdk version. So I figured
that being able to compile the tests under 1.6 was better than
nothing at all. But if my assumption was wrong about how the
tests are being used, then maybe we should back out the
changes I made. Do you have an opinion?
I suspect that your assumption was right, and I think that it's great
that you have put this effort into improving the situation.
I experimented
with a solution that uses a dynamic proxy implementing NameService
with an invocation handler that obeys whichever version of the
interface it determines to be in effect at runtime.
I would be happy if we could assume JDK 6, but I gather that the
discussion to raise the minimum even to 5.0 is still pending.
Yes it is. And based on how long it took folks to agree on the
project name, I'm guessing a discussion on the jdk version
could take quite some time. So, since we're talking about a
change to a test -- a single test -- not the actual River/Jini source,
I'm not sure I'd choose to wait for the results of that discussion
to provide a means for people to compile and run the tests;
especially given the fact that I was under the impression no one
was using those tests in the first place. If people are going to
be committing changes in the future, it seems like it would be
useful for them to take advantage of the hundreds and hundreds
of regression tests that already exist, rather than committing
on faith, or rolling their own test infrastructure.
Agreed, of course. I probably shouldn't have even mentioned the
"platform Java version" question, because as I said later, it's
really a red herring for this particular test issue. Evolution of
the Java platform API, in general, should never introduce such
incompatibility dilemmas, so it should be possible (and is
important!) to run the tests with a later JDK version.
That said, I'm wondering if there's a proposal implied in your
statement above. Are you maybe proposing that the changes
to the reggie/NameServiceImpl test be rolled back, and then
tell folks that they have to compile the tests under 1.4.x or 1.5?
If yes, then I'm certainly okay with that.
I'm not proposing rolling back your changes or anything else in
particular. I mostly just wanted to share that I had encountered the
same problem that you had evidently encountered, although in a
different River test suite (jtreg vs. the regular qatests), and some
further thoughts about it.
Admittedly, the changes I made were at best, a hack, and I made
them because I didn't think anyone else was going to. I focussed
on 1.6 because my company happens to rely on a number of 1.6
features, but I'm okay with requiring 1.4.x/1.5, if that's what you
were getting at. I just don't want to wait for the endless debates
on the jdk version to complete.
If we have to choose one or the other, then personally, I think that
working with JDK 6 (as you chose) is more useful at this point. But
I will try to look further into the hack to make it work either way.
(It's actually less of a problem for the jtreg tests, because they
are compiled on a per-test basis, so this problem only causes the
affected tests to fail, it doesn't block executing the rest of the
suite.)
Cheers,
-- Peter