JBoss Queries Apache Geronimo Code Similarity 293
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."
For a rebuttal of the claimed similarities... (Score:5, Informative)
You can also see Jim Jagielski's response to some questions here [apache.org] about this issue. Sounds pretty reasonable.
Re:For a rebuttal of the claimed similarities... (Score:2)
Your examples make it really look like just another SCO case. Not much similarity, except for some formalities.
The code parts mentioned in the JBoss' advocate's letter look a little related. I guess it can't prove that one is derived from the other, but the is some degree
Re:For a rebuttal of the claimed similarities... (Score:3, Informative)
Re:For a rebuttal of the claimed similarities... (Score:2, Insightful)
I read through the letter and tried to think, if I as a developer would be building a distributed object framework what would be the chances I'd come up with the same, 3 payloads with the same names. Seems like a pretty distant possibility to me.
So IMO, someone *was* reading through JBoss source w
Even the variable names are the same (Score:2, Insightful)
The best they can hope for is it was copied from a common source or contributed by the same copyright holder.
Re:Even the variable names are the same (Score:2, Insightful)
If you look at most of the code excerpts, they're for basic things like string and integer conversions. Given a classroom full of people, and very specific instructions on what code should look like, you're not going to get much variation.
One would need to loo
Re:Even the variable names are the same (Score:3, Insightful)
<TD CELLPADDING='3'>data</TD>
So any two people both familiar with this could very easily pick that same variable name, just as any two unix C programmers could both use "grep" for a searching function, or decide to name something that destroys threads based on a name "killall". It was already a convention before they used it.
Re:Even the variable names are the same (Score:5, 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.
Re:Who is going to sue me? (Score:2, Funny)
I would .. but in my version I spelt "somebody" correctly.
Still, following the principle of karmic balance I've misspelt a word or tow in this relpy.
Re:Even the variable names are the same (Score:4, Interesting)
Re:Even the variable names are the same (Score:3, Interesting)
In other words, the few instances where the code appears to be copied are a couple of methods having to do with Logs. Those methods (at least the similar parts) also seem to be little more than wrapping a call to an apache library function.
So... The wrappers probably use the same parameter names as the apache function they are calling. So they should be pretty similar. The metho
Re:Even the variable names are the same (Score:5, Informative)
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
Re:Even the variable names are the same (Score:2)
If you were going to come up with a more generic, cross-format version of MFC's CBitmap, how much do you want to bet it's going to be
Re:Even the variable names are the same (Score:4, Informative)
a) I don't think anyone would mix up CELLPADDING with PADCELL. What should PADCELL be or mean?
b) Its standard java coding style rules NOT TO USE a "_" in a constant.
Everybody using "cell padding" as a name for a constat wich is used like a enum would write CELLPADDING. Everybody.
The capitalization rules are also well defined. So if you consider to have a class "ThreadNDCConverter" a companay sticking to the original coding style rules will name that class or interface: ThreadNdcConverter. While my company OTOH will name it ThreadNDCConverter, as our rule is to capitalize all abreviations, like FTP, RMI and such.
angel'o'sphere
Re:Even the variable names are the same (Score:2)
.. variable names are the same - did you even read (Score:2)
There's no reference to CELLPADDING in the Geronimo source in the PDF, only in the JBoss source. And anyway, that's in the embedded API documentation - JavaDoc - it's not a varable name at all.
And, it's CELLPADDING because they're embedding HTML into the source - so it's got to be the HTML spec. (You do know what HTML is, right?)
Secondly, you're factually wrong - the class names are different - it's "ThreadNDCConverter" in JBoss and "NamedNDCConver
Re:For a rebuttal of the claimed similarities... (Score:4, Insightful)
I think here JBoss is concerned with seeing their code embedded into a commercial J2EE implementation.
Have they valid claims? Well, I look at the code and it is VERY similar. Identical? Almost...
Frankly though, it is like driving a car. If a person is on the wrong side of the road any accident will be their fault. However, as we are all taught, we should avoid the accident in the first place. That is sort of how I see this code. Apache should have been smart enough to "rewrite" not "rehash".
Using the J2EE RI? (Score:2)
Re:Using the J2EE RI? (Score:2, Informative)
Re:Using the J2EE RI? (Score:2)
which really wouldn't surprise me too much when it lead to similarities in namings.
same goes for a lot of other projects as well(hey,your irc program uses 'nickname' for storing the nickname! you stole it from us!!).
Remember the old saying (Score:5, Funny)
meh.. I got nothing.
Any point? (Score:4, Interesting)
henc
Re:Any point? (Score:2, Funny)
Just 5!!! (Score:3, Funny)
Bye!!!!
Re:Just 5!!! (Score:3, Funny)
Re:Just 5!!! (Score:2)
Re:Any point? (Score:2)
Re:Any point? (Score:5, Informative)
Sun (Score:2)
Re:Any point? (Score:2)
Re:Any point? (Score:2)
Re:Any point? (Score:2)
He's basically an arrogant prick. When the CoreDev [coredevelopers.net] guys resigned from the Jboss group he removed their commit privileges.
I personally would never recommend JBoss here because of his behaviour. Geronimo will rock, and jboss will then really have to put Fleury in his place or face losing all their clients.
Re:Any point? (Score:2)
Personally, I'm looking at Cold Fusion.
Re:Any point? (Score:2)
Re: (Score:2, Interesting)
Re:Marc Fleury's cash cow is in danger. (Score:2)
Re: (Score:3, Interesting)
Re:Marc Fleury's cash cow is in danger. (Score:2)
Although I tend to agree that the similarities are not interesting enough to get in a huff, I'd be interested in hearing whether or not Scott Deboy [mail-archive.com] wrote the comment "Convert an integer passed as argument to a level. If the conversion fails, then this method returns the specified default."
If he didn't write it, where did he get it? Perhaps both groups were borrowing from another source.
Re:Marc Fleury's cash cow is in danger. (Score:2)
The similarity between the comments is interesting but could be explained by the fact that both examples are related to Log4j and the comment could have been copied from there. That first example, exhibit A in the PDF, is the one with the most noticeable differences in coding style.
Ignoring differences that could be down to a source code formatter such as Jalopy, the JBoss programmer has declared almost all of his method parameters as final, which is not a common practice other than where it is explicitly
Re:Marc Fleury's cash cow is in danger. (Score:2, Interesting)
XLevel (Score:5, Interesting)
http://cvs.apache.org/viewcvs.cgi/jakarta-log4j
which is apache licensed in the first place.
relicensing (Score:3, Interesting)
Example: Alice in Wonderland is in the public domain. Peter Zelchenko made an ebook out of it with nice typography and claims copyright on the derived work. Can I cut the text & paste it into a document of mine?
Example: the Almquist Shell (ash) seems to have been a contribution to some form of BSD Unix. It's also in busybox with a GPL at the top and a Berkel
Re:relicensing (Score:2)
Yes, that's most likely how Peter Zelchenko got the text to begin his nice typography project. Since the work is in pd, he can't claim copyright on that, only on the presentation. Much like suse cd images are copyright so you shouldn't just copy them for other people, but all of the software
urtext (Score:2)
Music publishing companies are rabid on the subject. They've been known to change a few notes randomly in their printings of things like old classic
Re:relicensing (Score:2)
Which is why JBoss bundles so much apaches stuff. They do seem to leave the Apache license on source they dont change; I dont know what they do with stuff they cut and paste in to their own modules. Though judging by the XLevel example above they may take the SCO route: forget the origin and then get the lawyers to start threating people about it.
Re:relicensing (Score:2)
[...] can code be re-licensed by people other than the authors when the original license was less restrictive?
If the original license specifies that this is allowed, then sure. Otherwise, consult the original copyright holder. In general I would say that the BSD license does allow this if the required text block is included in any source copies (though the older BSD license also required mention in the final documentation of even a binary-only distribution; I believe thi
Re:relicensing (Score:2)
How come? Just slap GPL on it? Basically BSD license says if you redistribute code you must retain copyright notice and list of conditions within source code. So you can't change it. One may add some code to it and have GPLed additions.
BTW ash is a shell distributed with FreeBSD. You may use FreeBSD's source which is guaranteed BSD licensed.
Re:relicensing (Score:2)
I work on digital cameras. Our CPU is MMU-less so my plan is to create something like a camera OS with the kernel & memory manager, "normal" I/O (serial, disk) and camera functions exported using something like the ARM flat twist on ELF.
I've been planning to make the buttons & LCDs UI be an "app" that runs on thi
Doesn't really look that much the same (Score:4, Insightful)
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.
Re:Doesn't really look that much the same (Score:3, Informative)
One questoin (Score:5, Funny)
Both sides seem to be handling it well (Score:5, Insightful)
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.
Re:Both sides seem to be handling it well (Score:5, Informative)
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.
Re:Both sides seem to be handling it well (Score:2)
what did you expect? (Score:2)
Don't worry, SCO will lay claim to it all tomorrow. They already have, you know.
In the mean time, you are right, people who don't smoke crack will figure the issue out.
When lawyers present code in documents... (Score:3, Interesting)
Re:When lawyers present code in documents... (Score:2)
Or, option 2, the code was opened in a word processor (damn lawyers) and the word processor decided to be idiotic.
Re:When lawyers present code in documents... (Score:2)
Re:When lawyers present code in documents... (Score:2, Funny)
for(int c; c max; c++) if checkSomething(c)
and then your lawyers have claimed copyright on the entire function call - how lovely
Re:When lawyers present code in documents... (Score:2)
Now, that said, clearly this is a strange ocr / autocorrect issue.
Both Apache and JBoss have gone too far... (Score:3, Funny)
--
This post (c) 2003, Knights who say Ni, LTD.
SCO (Score:4, Insightful)
On a side note, SCO's recent behavior has made it clear as to who the puppetmaster of this debacle really is:
Here are two quotes from the Computer Business Review:
"SCO would probably provide customers with financial incentives and discounts to migrate to SCO Unix, other vendors' Unix, and what he referred to as 'other proprietary operating systems' but probably Windows."
"'We are offering a migration path to other operating systems that have a stronger IP basis than Linux,' the spokesperson said. Incentives will be offered 'in the coming months.'"
If that move doesn't reveal the puppetmaster, nothing will.
I sincerely doubted Microsoft's involvement for a while, this time though, the paranoid
There's an easy way out... (Score:2, Funny)
-Adam
Okay... (Score:5, Insightful)
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.
Re:Okay... (Score:2)
Common origin? (Score:5, Informative)
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 [theserverside.com]
Sketchy at best... (Score:3, Insightful)
If it was a line for line copy then I can see it being different, but IMHO I think there are sufficient difference between the two portions of code. Personally I think if JBoss doesn't have better things to do with it's time and money it should slash the cost of its ridiculously expensive (and pathetic) documentation and spend some time improving it instead!
Sketch Sketchy (Score:2)
Perhaps there is more that is stronger evidence, but this is seriously unconvincing.
HMM, let me see (Score:2, Insightful)
author's name adjusted? (Score:2, Interesting)
Bad Move! (Score:2, Funny)
Come back after the slash effect (Score:2, Funny)
They should retract that statement (Score:5, Informative)
Well DUH!!! (Score:5, Interesting)
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 [sourceforge.net] 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....
Almost all Geronimo developers worked on Elba! (Score:4, Insightful)
Simone Bordet, David Blevins, David Jencks, Dain Sundstrom, Greg Wilkins, Bruce Snyder, Jan Bartel, Jeremy Boynes , James Strachan, Jules Golsnell, Richard Monson-Haefel and Jason Dillon.
Almost ALL of the Geronimo developers with commit rights have also worked on the same JBoss code base. Thats too many developers in common to provide a fresh perspective nessary to create a non-derivative clone.
Not copied? (Score:5, Interesting)
Looking at the code as a programmer, some things stand out:
Re:Not copied? (Score:4, Insightful)
I've seen a lot of aspiring programmers retype what's "in the book" and consider it their own work. It's entirely possible a contributor to Geronimo did the exact same thing.
Re:Not copied? (Score:2)
Re:Not copied? (Score:2)
Re:Not copied? (Score:3, Informative)
I think this is a patent vs copyright issue.
Copyrights protect from direct copying, patents protect from copying ideas.
Is JBoss's API copyrighted would be the question that I would be looking at. The J2EE API may or may not be copyrighted as well, but JBoss doesn't hold that copyright.
I think it's fair game to steal design from any unpatented so
It's a shame (Score:2, Interesting)
What is the reason in "redesigning" an open source project under a different license? Is JBoss so poorly written that it can't be the base of another LGPL project? Is the Apache license so much better for open source projects that it needs to be done?
In the immortal words of Rodney King, "Can't we all just get along?" There sould be no issu
Re:It's a shame (Score:2)
Implement the wheel.
I'll have you know, if your implementation appears similar to mine, you'll hear from my attorney.
another view... (Score:2, Interesting)
I mean, if the public see Apache and JBoss figuring it out, could the outcry against SCO and their detrimental case against Linux be enough to quash it?
JBoss vs. SCO (Score:2, Insightful)
What many do not seem to understand, is tha
maybe they should consider helping each other (Score:2)
Devil's advocate... (Score:2)
"clownery" ! :) (Score:3, Interesting)
Wait, (Score:2)
more dirt (Score:2, Interesting)
:
"As an open source developer I choose to submit my code under LGPL because it ensures me that this code will remain open source, yet the license is flexible enough to allow for embedding. When I first became aware of Geronimo, I took a look through the codebase just for kicks and was deeply concerned that some of my code was derived from or distributed under the ASL license.
As an example, bel
Now Fleury knows how IBM and BEA feel (Score:2)
Thery're going after the same problem. After a while, all the solutions are going to look the same. A lot of people have written similar code (abstraction on top of log4j, etc.). I've copied naming conventions & idioms from stuff I read in the Jakarta Commons source. Is that illegal?
If they're so bent on protecting this stuff, they should file a patent. Drumroll...snare. OK, that was sarcasm.
More seriously, I think the JBoss project needs a good dose of modesty. They h
Holy Crap. (Score:2)
A) Both systems calling into the same API (IBM's log4j), which has a fixed interface, so of course the code is going to look similar
and..
B) Both systems implementing the same API, namely J2EE, which also has a fixed interface with well known conventions.
This is *insane*. By the same logic, and with a much more convincing looking '
Just goes to show (Score:2)
It is my opinion that, for open source organizations, the primary benefit of copyright is to prevent a third party from taking code, making it closed, and profitting from it. It's SOLE purpose should be to defend against capitalistic exploitation. Unless the JBoss people can convince me that Apache is maliciously and willfully trying to damage their project, I will count them among the SCO-like ho
Re:Just goes to show (Score:2)
I thought not.
Re:Just goes to show (Score:2)
However I somehow doubt that JBoss is truly motivated in that way. If a company really wanted to steal their code, they could just take it without consideration toward the license, and make it closed. So yes, putting pressure on Apache would keep the "casual" copyright infringer from abusing the code, but anyone really set on it could p
Comment from J2EE "TheServerSide" (Score:5, Informative)
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."
copying design and ideas, but not code (Score:3, Informative)
There's no protection in copyright law for copying ideas, style and design (this is why we have patent and design protection). There's nothing to stop one person reading a copyright protected work, and extracting basic ideas, style, themes, etc and using that in their own work.
So, there's nothing that can stop one programmer from looking at one set of code, and then walking away and producing an independent version of similar design, but different expression. This could mean that there are similar functions and mechanisms, but looking at the detail it would be obvious that they might be similar, but are not exact copies.
There's a difference here between commercial strategy of clean-room software development. In clean-room approach, what you're getting around is not just copyright, but issues of commercial confidentiality and so on. Confidentiality is not a problem with open source software.
Re:Ouch! (Score:2)
Re:Ouch! (Score:3, Informative)
However, if I say "Today the weather is nice, looks like I could go windsurfing on the highway", then they know I am joking. Even if the joke is awful.
Re:Ouch! (Score:2)
Yes, that would work too, even though it doesn't give a clue as why this is funny. Of course, with the weather example, it is pretty obvious, but in a more general case, you might ensure first that your audience has a clue about the context that makes the joke actually funny.
This is a serious matter, not something you should take lightly.
Re:This is Why Open Source Fails (Score:2)
Bug off, asshole.
GJC