simple-jndi shoots self in foot

Following a suggestion from my rant against the lack of a simple jndi provider that can be used outside of an appserver, I decided to try out simple-jndi.

Needless to say, this turned out to be yet another colossal waste of time. Simple-jndi is tainted with all the idiocies of your average open source java crap. First of all, the website itself has that maven cookiecutter feel to it. Incredible amounts of utterly useless links. For example, why do I care if the site is generated by maven? Why have a link to it? Secondly, what’s the point exactly of having a clover report up there? Do I, as a user, actually care about how much of the code is covered by testcases (it’s 0%, incidentally). There’s also the useful ‘development process’ link which points to a maven page. A dazzling array of pointless project reports is also there to fool retarded 2 year olds into thinking that it’s actual content (more on these some other day).

Of course, the site is also out of date with regards to the actual code. The task list leads one to believe that no work has started on v0.6, when in fact it’s already been released. There’s also an about page, which is the default. Yet the link to this homepage is under project documentation, rather than the overview top section.

All this can be forgiven if the actual product were up to scratch. I felt a sudden rush of glee and joy as I saw that the download was <100k. I assumed this is the promised small, no-depencency, functional, focused product I was dreaming of.

I came to a rather rude awakening when trying to use the damn thing. Of course, the small download was nothing but a mirage. The source download just doesn’t include any of the dependencies (which you have to work a bit to find). Turns out it has 3 dependencies, some gen-java.jar, commons-collections, and commons-lang. I squinted, I glared, then I flailed about ineffectually trying to remove said dependencies. In the process I found such delightful items as a class called ClassW, and another called CollectionsW. These names are simply too disgusting to allow anywhere in civilized society. Someone somewhere ought to be very ashamed of themselves.

The final nail in the coffin was the build process. The bundled build.xml is autogenerated by maven. This monstrous piece of work tries to download dependencies (which is why they aren’t included in the download). Shame I’m behind a firewall and this has no hope of working.

So, here’s another ant tip for free. Do NOT force your users to have a network connection. A source build should ‘just build’, and require no work by the builder. If you persist in this barbaric approach of downloading crap and all the other rude gestures mentioned above, then what happens is very simple. Your (lazy) end user will just give up.

I never even got to running simple-jndi, because I saw enough to know that I want nothing to do with it. This is a shame, since it could well be a good functional API that does what it says with ease and poise. The wrapping and method of delivery is painful enough though that I’ve lost all urge to find out.

15 Responses to “simple-jndi shoots self in foot”

  1. Anonymous Says:

    So this is a maven rant or a simple-jndi rant? You’re getting fuzzy, dude. Shave something.

  2. W.Chan Says:

    Without even venturing to the simple-jndi site, my guess is that his rant is about the mis-use of Maven and then about the ill contrived build process.

    Sounds like a perfect candidate for a fork as the the endeavour is a great idea.

  3. Cedric Says:

    Actually, he’s getting better: now he can bile multiple targets in one single post.

    Hani has become a bile aggregator.

    Keep up the good work, always a pleasure to read.


    Ced

  4. W Says:

    What is wrong with my “ClassW” and “CollectionW” huh ??

  5. No one Says:

    Where is 0.6 of it? I can only find 0.4…

    No oneW

  6. No one Says:

    Damn them. They have 2 web sites. One web site goes to 0.4. The other goes to 0.6.

    Where’s where to find the bile ridden software:

    http://www.osjava.org/simple-jndi/Download.html

  7. Anonymous Says:

    Obviously the W is simply an upside M, placed there by Hani himself, in an attempt to mock Tibco…

  8. Anonymous Says:

    hani you are so right you my personal John Holmes, you!

  9. The dollmaker Says:

    Maybe you should invest in one of these:

    http://www.freeroller.net/page/pawnxing/20030926#the_amazing_hani_suleiman_doll

  10. Anonymous Says:

    … and the upside “M” means “Maven”

  11. Henri Yandell Says:

    To answer the questions:

    1) Maven: Yep, Hani’s Maven complaints are all valid. The Process link is an utter pain. But I’m happy to live with the irritating parts as it saves me having to deal with lots of site stuff.

    2) Clover: Not a lot there, though I believe part of this to be a bug in Clover. It seems that if I hide the actual test call in an assert method, clover doesn’t notice it. Still, clover provides a nice open way for me to say: there aren’t many unit tests yet.

    3) The ‘W’s: If they were XxxUtils, Hani would have only complained about that.

    4) Poor advertising of necessary downloads: Good point. I’ll improve that.

    5) Lots of sites: Difficult to manage documentation for a product. I believe it’s important that a user of 2.0 of a product should be able to look at the website for 2.0 of a product, but how is said 2.0 meant to be able to redirect users to the latest version, say 3.0. Some sym linking seems to be the solution, will attempt to make this so.

  12. jondo_w Says:

    What Maven should do is, in addition to it’s Maven ant build file, generate an agnostic build file for those of us who don’t care about Maven whatsoever. That would also mean including the /lib folder along with the CVS/source download.

    I faced the same frustration with Seraph, a very elegant webapp security framework from Atlassian. Unfortunately it’s integrated with Maven and I had to hack the build file to get it to behave. Also because the dependency JAR’s don’t ’ship’ with the source, you have to play a bit of a guessing game as to which version of JAR to use. Case in point, Seraph needs an older OSUser JAR as it still imports the ‘*.module.user.*’ package hierarchy classes.

    Eh well.

  13. Robert Fletcher Says:

    Hmm. Sorry for suggesting this. The version I was/am still using is 0.3 which has no dependencies (not exactly clear on what the functionality differences are, but since it does what I want I don’t see the point upgrading). I didn’t realise the newer release required other libs or I would have kept my mouth shut.

  14. Osama Bin Laden Says:

    #
    # the dependencies (which you have to work a bit
    # to find)
    #

    Yes, its a lot of work to look at the dependancies element in the Project.xml….

    You ning-nong.

    #
    #Shame I’m behind a firewall
    #

    ANT_OPTS=-Dhttp.proxyHost=? -Dhttp.proxyPort=8080

    http://www.geocities.com/rozmanov/ntlm/

    Shame you didnt google?

    -O

  15. Odi Says:

    > Do NOT force your users to have a network connection.

    Nowadays a computer without a network connection is quite useless anyway. And, you were downloading simple-jndi in the first place. Now tell me you don’t have a network connection…

Leave a Reply