Slashdot Mirror


JBoss Queries Apache Geronimo Code Similarity

Kanagawa writes "This morning, Jim Jagielski, Exec. V.P. and Secretary of the Apache Software Foundation, announced on the geronimo-dev mailing list that 'the ASF received a letter from JBoss's lawyers regarding... the similarity of code between [J2EE implementation] Geronimo and JBoss.' The letter is available in PDF. According to the letter, similarities were noticed back in July, and haven't been fixed."

17 of 293 comments (clear)

  1. For a rebuttal of the claimed similarities... by tcopeland · · Score: 4, Informative

    ...see this post to TheServerSide. A lot of these look like common design patterns and standard Java/J2EE naming conventions.

    You can also see Jim Jagielski's response to some questions here about this issue. Sounds pretty reasonable.

  2. Remember the old saying by Anonymous Coward · · Score: 5, Funny

    "Good programmer's copy, great programmer's steal!!"

    meh.. I got nothing.

  3. Any point? by henc · · Score: 4, Interesting

    I'm not into this case, but at a first glance it seem to me that Geronimo really is just what JBoss is, right ? - So what's the point in remaking it? JBoss is already free? (LGPL!)

    henc

    1. Re:Any point? by heathm · · Score: 5, Informative

      That's exactly the problem. Geronimo is a project of the Apache Software Foundation and as such must be licensed under the ASF license. LGPL code cannont arbitrarily be relicensed.

  4. XLevel by Anonymous Coward · · Score: 5, Interesting

    The first exhibit seems to be originally derived from:

    http://cvs.apache.org/viewcvs.cgi/jakarta-log4j/ ex amples/customLevel/XLevel.java

    which is apache licensed in the first place.

  5. Doesn't really look that much the same by hazem · · Score: 4, Insightful

    I'm no expert coder, but these don't look the same to me. There are similarities, but one would presume they are doing the similar things.

    One of the functions is to convert an integer to a level. How many different ways could you do actually do this? Another function converts a string.

    If you assign a class to write functions that would change variable types. All 30 people will come up with different code, but the code is likely to look very similar - especially if you're encouraging them to use proper function/variable naming and comments.

    Kudos to JBoss for posting the code, but I don't see much here to be suing over.

  6. One questoin by TLouden · · Score: 5, Funny

    Which one is SCO and which is IBM, I'm a little slow on this stuff.

    --
    -Tim Louden
  7. Both sides seem to be handling it well by burgburgburg · · Score: 5, Insightful
    JBoss has noticed similarities and has raised the issue (a second time) with Geronimo.

    Geronimo has requested that all developers confirm that either a) they didn't just submit JBoss code or b) they had the right as the original creators of the JBoss code section to also submit it to Geronimo.

    No FUD. No hyperbole in extremis. No crazed threats. Oh, wait: No SCO. Of course. What a breath of fresh air.

    1. Re:Both sides seem to be handling it well by jimjag · · Score: 5, Informative

      JBoss has noticed similarities and has raised the issue (a second time) with Geronimo.

      Minor nit: This is actually the first time this was raised directly. Early on, the ASF was contacted by JBoss simply to "remind" us that JBoss is covered under GPL and that any derived code could not be relicensed (under the Apache License). At the time, no real work on Geronimo had been done so that there was no actual code that could be shown to be similar. The above leaves the impression that the ASF had ignored a previous notice from JBoss, which is certainly not the case.

  8. Okay... by Fnkmaster · · Score: 4, Insightful
    I'm not clear about whether you really violated somebody's copyright if you looked at an LGPLed work and followed the same basic design structure to write your own work. I mean, the many instances of things like bean accessors/mutators having the same names and basic implementations are endemic to Java. Then there's stuff like logging based on other Apache licensed work.


    It does sound like there were a few particular instances where a class' design and the set of methods in the class were directly patterned on the JBoss design - not necessarily copied line-by-line, but the solution to a fundamental part of the J2EE specification "problem" was ripped from JBoss and modified to suit the code needs of Geronimo. Whether this is violation of copyright or not is a tough question. Copyright doesn't protect a design pattern, a solution to a problem, the logical organization of a set of objects, or an algorithm. Proving that somebody actually violated copyright in this case seems rather hard to me - though perhaps a bit of credit to the JBoss folks for their thoughts and design work is in order.

  9. Re:Even the variable names are the same by Merk · · Score: 4, Insightful

    C'mon! CamelCase names in Java follow a some simple rules, there's even a documented way of how you're supposed to do it. As for CELLPADDING, since that's how it's named in HTML, it wouldn't surprise me to see it done identically in another place. Better go sue Netscape too.

    To see if the code is actually similar you'd have to look at algorithms and innovations. Looking at interfaces and their names isn't going to tell you anything at all.

  10. Common origin? by shamir_k · · Score: 5, Informative

    The first example in the letter is
    org.jboss.logging.XLevel vs. org.apache.geronimo.core.log.XLevel
    Both seem to be copied from log4j's examples.customLevel.XLevel
    However, there are much more substantial allegations made here

  11. Re:Even the variable names are the same by brett_sinclair · · Score: 5, Informative
    even choices for captialization are the same. for example, "ThreadNDCConverter"

    No mystery there. ThreadNDCConverter is capitalized *exactly* according to very established java code conventions. See for example http://java.sun.com/docs/codeconv/html/CodeConvent ions.doc8.html

  12. They should retract that statement by butane_bob2003 · · Score: 5, Informative

    The JBoss code and the Apache code both appear to be copied from an example that was originally created by Apache. Exibit A and B are both logging classes, both use Log4J (Apache's logging utility) and can be expected to be similar. Exibit C looks Almost identical, but not entirely. The similarities are so trivial, Apache is bound to make a few quick changes and be done with this thing before it starts. What sillyness.

    --


    TallGreen CMS hosting
  13. Well DUH!!! by ChaseTec · · Score: 4, Interesting

    Did anyone not see this coming? And if you didn't here's why you should have:

    Mark Fleury's original response to Apache Geronimo
    As our customers know, we are a business, a serious one and we seriously believe in and defend "professional open source". That includes legal protection of IP. Make no mistakes, JBoss will AGGRESIVELY defend its copyright and LGPL license.

    And from the Elba website
    Think of Elba as a latticework for Geronimo--and as a shield to buffer the Geronimo codebase and CVS repository from any LGPL code. As Geronimo is built, its code will replace the code from Elba, bit by bit until there's nothing left in Elba at all. At that time, Elba will cease to exist and only Geronimo will remain; we'll have a big party and you're all invited.

    So if Geronimo is being developed as outlined at the Elba website then they'd have to have the exact same method signatures....

    --
    My Hello World is 512 bytes. But it's also a valid Fat12 boot sector, Fat12 file reader, and Pmode routine.
  14. Not copied? by Todd+Knarr · · Score: 5, Interesting

    Looking at the code as a programmer, some things stand out:

    1. The "copying" JBoss claims doesn't fit. There's differences in braces, keywords and other things that wouldn't be accounted for by automatic reformatting of code. I can't see a programm who's copying code directly going back in and doing that kind of editing. I'd expect braces to be maintained, for example, yet in several places they aren't.
    2. The similar names are obvious names for types, variables and functions. Given the same spec to start from, without having seen the JBoss code at all, I'd pick the same names.
    3. The places they cite as having code-structure similarity are very simple. Frankly, it looks to me like there's only one sane way to write that code.
    It can't hurt to do a check, but I suspect JBoss is seeing copying where there's just only one obvious way to do something and most programmers, working independently, will make basically the same set of choices for that code.
  15. Comment from J2EE "TheServerSide" by Jerry · · Score: 4, Informative

    Posted By: Jim Jagielski on November 10, 2003 @ 03:49 PM in response to Message #101148.
    Just a short note: It is, and has always been, the stated baseline of Geronimo that it not contain any (L)GPL code, whether JBoss derived (in legally specified copyright sense) or not. It's not for any political reasons (and I'm glad to see that this is not degrading into such a forum) but simply because of the letter and spirit of the Apache License. It should also be noted that Geronimo itself is an "project in incubation" within the ASF. It is not (yet) a formal, official ASF project (or subproject under one of the other top level ASF projects). If there is any (L)GPL code within Geronimo, or code that is derived from (L)GPL code (in the legal sense), it will be stripped and replaced. That's just the way it is and it's the way the ASF has always operated.

    Also, it should be noted that some exhibits referred to are no longer applicable. For example, Geronimo's Invocation class was entirely rewritten from what was noted in the letter. In other cases, the similarities are due to the fact that they are simple (and trivial) extensions. With XLevel, org.apache.log4j.Level is itself extended, which imposes and provides some of the common structure and names. It has also been noted that for PatternParser, the similarities come from the fact that both code bases implement "nested diagnostic contexts" as described by Neil Harrison in "Patterns for Logging Diagnostic Messages", which can be found in the book "Pattern Languages of Program Design 3", published in 1997 by Addison-Wesley (ISBN: 0201310112). Apache Log4J implements this class in org.apache.log4j.NDC. This class describes how it is to be used, including the use of a "distinctive stamp."

    --

    Running with Linux for over 20 years!