LWN.net Logo

Apache on participation in the JCP

The Apache Software Foundation board has issued a statement on its participation in the Java Community process. In particular, the organization is getting increasingly frustrated with its inability to gain access to the TCK test kit. "The ASF will terminate its relationship with the JCP if our rights as implementers of Java specifications are not upheld by the JCP Executive Committee to the limits of the EC's ability. The lack of active, strong and clear enforcement of those rights implies that the JSPA agreements are worthless, confirming that JCP specifications are nothing more than proprietary documentation."
(Log in to post comments)

Apache on participation in the JCP

Posted Nov 9, 2010 21:28 UTC (Tue) by mikov (subscriber, #33179) [Link]

The statement says: "Through the JSPA, the agreement under which both Oracle and the ASF participate in the JCP, the ASF has been entitled to a license for the test kit for Java SE (the "TCK") that will allow the ASF to test and distribute a release of the Apache Harmony project under the Apache License. Oracle is violating their contractual obligation as set forth under the rules of the JCP by only offering a TCK license that imposes additional terms and conditions that are not compatible with open source or Free software licenses."

So does anybody know what these additional terms imposed by Oracle are?

Although I don't understand these particular details yet, in my mind, Java is no longer a "free language", so the ASF is in a very precarious state. It is very ironic that in actuality, today Java is less "free" than it was several years ago before Sun had released it the GPL. Now we know that it is not possible to develop an independent implementation because it by definition runs afoul of Oracle's patents.

However the OpenJDK does exist, so it is very difficult to give it up. In a sense we'd be better off if Sun hadn't released it under the GPL. Even RMS couldn't have predicted this debacle.

Apache on participation in the JCP

Posted Nov 9, 2010 22:14 UTC (Tue) by mrjk (subscriber, #48482) [Link]

Less free how? It would have (if it does) still offended those same patents whether released under GPL or not. You argument makes no sense. What thing can I not NOT do now with Java the language, or Java the VM environment that I could do before the GPL was applied to a bunch of code implementing parts of Java?

Apache on participation in the JCP

Posted Nov 9, 2010 22:38 UTC (Tue) by mikov (subscriber, #33179) [Link]

I did not say it is less free because it was released under the GPL. It is less free despite being released under the GPL. In other words, quite surprisingly the GPL turned out not to be a sufficient guarantee for the freedoms we intuitively except from "free software".

What you cannot do now is re-implement Java or even something that resembles Java. This is an unthinkable and absurd situation, given that the major Java implementation is released under the GPL. The "Java trap" still exists and even RMS was fooled.

Finally, there are some negatives to the existence of OpenJDK:
a. Oracle can claim wilful patent violation/copyright infringement and have a strong case against any re-implementer. Can you prove that you have never looked at the OpenJDK source and who would believe you?

b. OpenJDK effectively killed the competing free implementations. Classpath, GCJ, Harmony, Kaffee, etc - does anybody care about them anymore?

c. Even though Java is clearly poisoned and contagious, OpenJDK is GPL and works well, which makes it far less likely that the free software community will actively work on creating a Java replacement. Such a replacement however is badly needed - a performant, statically typed, safe and garbage collected language. Python and Ruby are not event in the same ballpark (they are not bad languages; just they are no replacement for Java).

Apache on participation in the JCP

Posted Nov 9, 2010 23:14 UTC (Tue) by mjw (subscriber, #16740) [Link]

> What you cannot do now is re-implement Java or even something that resembles Java.

I am unclear what changed that made it less easy. It is sad Apache wasn't able to change the JCP. And we now just have the same status quo we always has. And I would say it is a lot easier now since the whole reference implementation is there under the GPL. Which means for example that the whole core library specification (which is just the javadoc generated from the GPL code) is available under the GPL. The JCP "specifications" were never available under free terms, not in the past and not now. So nobody used them for the free implementations anyway, we always had to rely on separately published public documentation anyway.

> a. Oracle can claim wilful patent violation/copyright infringement and have a strong case against any re-implementer. Can you prove that you have never looked at the OpenJDK source and who would believe you?

The same was true in the past. Which is why we were so careful not to accept contributions from people who actively looked at a proprietary implementation. Same rules GNU always used (originally targeted at proprietary UNIX of course). But now if you did look and somebody could prove that through looking you created a derived copy, you would just have to provide your users with all the freedoms the GPL provides since that is what OpenJDK is published under.

> b. OpenJDK effectively killed the competing free implementations. Classpath, GCJ, Harmony, Kaffe, etc - does anybody care about them anymore?

Having been involved with all of them, I do care personally. Those code bases aren't going away though. And some can now focus on their specific targets, instead of having to "safe the world" and provide all of Java for free software users. I admit that OpenJDK is less "fun". But it saved us a couple of years of catching up. And IcedTea is bringing some of the fun back. There is now a lot more "dry and boring" stuff like caring about compatibility and not breaking working stuff of users. Much less of the "fighting proprietary evilness!, unity hackers! We will catch up and show them!" camaraderie. We are all "them" now in a way. Which is kind of a shock :) On the other hand there is now more time for new stuff, instead of the constant catching up struggle.

> c. Even though Java is clearly poisoned and contagious, OpenJDK is GPL and works well, which makes it far less likely that the free software community will actively work on creating a Java replacement. Such a replacement however is badly needed - a performant, statically typed, safe and garbage collected language.

I don't understand what you mean with "clearly poisoned and contagious". But the rest might well be true. We now got "a performant, statically typed, safe and garbage collected language" fully free under the GPL. But maybe that just spurs others to look for the next great thing, since this one is tackled. How about a "general-purpose purely functional programming language, with non-strict semantics and strong static typing" or a "concurrency language based on the Actor model with strict evaluation, single assignment, and dynamic typing"? There are so many fun platforms and programming languages to design and implement out there. Don't let the fact that we now have fully free, fast and robust Java implementation hold you back!

Apache on participation in the JCP

Posted Nov 9, 2010 23:55 UTC (Tue) by mikov (subscriber, #33179) [Link]

I mostly agree with what you said, but I think my main point has somehow gotten lost:

Java is not free anymore, because we are no longer free to develop alternative implementations. Oracle has shown unequivocally that they are willing and able to persecute such implementations and apparently they do have some legal leg to stand on. The only free implementation of Java that can exist now and forever is OpenJDK. (Clearly nobody can afford to go to the necessary lengths to develop an independent implementation and have it pass the TCK. And what if it doesn't pass? They are suddenly liable for patent infringement? The situation is disgusting.)

This poisons the entire free Java ecosystem. I don't say that lightly nor happily, since I am, or at least have been until recently, a big supporter of Java.

BTW, clearly all other Java implementations - GCJ, JC, Kaffee, etc, are at least as vulnerable as Dalvik/Android.

Apache on participation in the JCP

Posted Nov 10, 2010 0:17 UTC (Wed) by mjw (subscriber, #16740) [Link]

I still don't understand why you feel anything changed with respect to the freeness issue compared to the past. There is always a chance someone accuses somebody else of patent infringement. There are several safeguards in place, but the JCP never was one of them for the free software community. Apache (like before them Kaffe, GNU Classpath and friends [*]) tried to change that. In fact we started Harmony precisely because we hoped combining forces with Apache would make it happen sooner. But sadly it failed. It would indeed be good if the JCP got reformed to make a full grant of any patent claims of their member companies to any free software implementation. We don't have that at the moment (but also didn't have that before). There are others though. The FSF agreements with all the companies contributing to GNU Classpath and GCJ for example. And OIN protects GNU Classpath/GCJ from all participants. And now everything derived from OpenJDK is protected through the GPL, at least from all the OpenJDK contributors. And the outcome of the Oracle/Google lawsuite will be interesting to watch to see how else we can protect ourselves. So in a way the situation now is actually better than in the past, we got more protective shields. Of course it would have been nice if through the JCP we would have gotten an additional one.

[*] http://advogato.org/person/robilad/diary/64.html

Apache on participation in the JCP

Posted Nov 10, 2010 0:26 UTC (Wed) by dlang (✭ supporter ✭, #313) [Link]

it's too soon to say that Oracle has a leg to stand on legally.

you don't need to have a leg to stand on to file a lawsuit. Take a look at the SCO case and you will see a perfect example of where they did not really have a leg to stand on, but 7 years later the lawsuits have not finished settling yet.

remember when it started and companies were saying that linux wasn't safe to use?

Java is definanlty harmed by Oracle's action, if they win then everything you are saying is true. If they loose, Java will fragment heavily for a short while, and may or may not ever recover.

Apache on participation in the JCP

Posted Nov 10, 2010 4:01 UTC (Wed) by mfedyk (guest, #55303) [Link]

> "concurrency language based on the Actor model with strict evaluation, single assignment, and dynamic typing"

I believe you just described erlang.

Apache on participation in the JCP

Posted Nov 9, 2010 23:18 UTC (Tue) by endecotp (guest, #36428) [Link]

> Such a replacement however is badly needed - a performant,
> statically typed, safe and garbage collected language.

C#, perhaps ?!?

Seriously, I'd be interested to hear what people think about the situation of Mono compared to Java at present.

Personally though, I'm happy with C++ (with smart pointers) for the time being. If find it safe enough to save myself from any memory management worries.

Apache on participation in the JCP

Posted Nov 9, 2010 23:58 UTC (Tue) by mikov (subscriber, #33179) [Link]

I wish I knew. I have certainly read opinions that legally .Net is safer than Java as it stands now. I am not sure what to make of it though - somebody more knowledgeable would have to comment on that.

Apache on participation in the JCP

Posted Nov 10, 2010 0:53 UTC (Wed) by Ed_L. (guest, #24287) [Link]

Where's Mono is a good question. Certainly, Microsoft made some patent pledges wrt ECMA .NET 1.1 Spec, but the Microsoft implementation is at 4.x something at present, which Mono tries to track. Also, what with Chash/.NET trying to be "a better Java than Java" (albeit limited to Windows...) it's unclear upon which Snoracle Java VM patents .NET might read. Whatever they are, they're presumably covered by the omnibus $1.6 billion SUN/Microsoft settlement of 2004. For Windows. Hard to see how Microsoft could unilaterally extend SUN patents elsewhere even if they wanted to.

Apache on participation in the JCP

Posted Nov 10, 2010 5:10 UTC (Wed) by eru (subscriber, #2753) [Link]

Such a replacement however is badly needed - a performant, statically typed, safe and garbage collected language.

Simula? :-)

It is fascinating (and depressing) that these ideas were already implemented there in the 1960's.

Apache on participation in the JCP

Posted Nov 10, 2010 9:32 UTC (Wed) by ballombe (subscriber, #9523) [Link]

> b. OpenJDK effectively killed the competing free implementations. Classpath, GCJ, Harmony, Kaffee, etc - does anybody care about them anymore?

OpenJDK is not fully portable, so the competing free implementation are still required on the platform OpenJDK has not been ported to.

Apache on participation in the JCP

Posted Nov 10, 2010 2:21 UTC (Wed) by jamesh (guest, #1159) [Link]

> So does anybody know what these additional terms imposed by Oracle are?

There were field of use restrictions. In particular, saying that they couldn't use the TCK to validate that their code conformed on platforms where it might compete with Java ME.

Apache on participation in the JCP

Posted Nov 10, 2010 2:23 UTC (Wed) by mikov (subscriber, #33179) [Link]

Thanks!

Oh, What a mess. A couple of questions:

What happens if I fork OpenJDK and modify it to the extent that it no longer passes the TCK. Am I liable? Can I use the result on a mobile platform?

Apache on participation in the JCP

Posted Nov 10, 2010 4:04 UTC (Wed) by Ed_L. (guest, #24287) [Link]

> What happens if I fork OpenJDK and modify it to the
> extent that it no longer passes the TCK. Am I liable?

(a) Not if it never escapes your mother's basement.

> Can I use the result on a mobile platform?

(b) See (a).

Apache on participation in the JCP

Posted Nov 10, 2010 10:17 UTC (Wed) by mjw (subscriber, #16740) [Link]

You seem obsessed with being liable for something :) Sadly in this world people can randomly claim you are liable for almost anything. That doesn't make them right though.

OpenJDK is distributed under the GPL, there is no guarantee, nor any obligation to pass the TCK. The FAQ even says so. And the results are being used on mobile platforms, see the Jalimo project for example http://wiki.evolvis.org/jalimo/

There are lots of free embedded java implementations, based on OpenJDK, PhoneME, GNU Classpath, Cacao, JamVM, etc. etc. See for example the following comparison: http://bugblogger.com/java-vms-compared-160/

Apache on participation in the JCP

Posted Nov 10, 2010 23:10 UTC (Wed) by mikov (subscriber, #33179) [Link]

I am not obsessed - we have to deal with the modern realities of doing business. It would be very irresponsible to choose a technology which opened one's company to potential litigation. Perhaps I seem a bit paranoid, but I have already been involved in IP litigation.

Some of the examples you chose - JamVM, Classpath, Cacao - are not based on the JDK, so as far as I can tell they are exactly in the same boat as Android/Dalvik. Nothing would change if hypothetically Google used JamVM instead of Dalvik. Oracle's patents are still violated and until they are invalidated, OpenJDK is the only safe Java to use.

This raises a very important question: are incompatible forks of OpenJDK covered by the Java specification patent grant? If anyone can clarify this I would be eternally grateful.

Apache on participation in the JCP

Posted Nov 11, 2010 10:30 UTC (Thu) by mjw (subscriber, #16740) [Link]

Yes, it is good to do some risk assesment. But you can never get 100% insurance. Look at the Oracle/Google legal show-fight. If you are big and famous, someone will always find some way to attack you if they want. But there are multiple layers of "protection" available, through the JCP is one, the GPL is another, the contributor agreements that several large contributers signed with the FSF is one, there is OIN for those components included there, etc.

> This raises a very important question: are incompatible forks of OpenJDK covered by the Java specification patent grant? If anyone can clarify this I would be eternally grateful.

OpenJDK itself is covered by the GPL patent grants, either "compatible" or "incompatible". http://en.swpat.org/wiki/Java_and_patents has a list of the various patent grants flying around.

Apache on participation in the JCP

Posted Nov 12, 2010 1:43 UTC (Fri) by mikov (subscriber, #33179) [Link]

> Yes, it is good to do some risk assesment. But you can never get 100%
> insurance. Look at the Oracle/Google legal show-fight. If you are big
> and famous, someone will always find some way to attack you if they
> want.

I think you are underestimating the seriousness of the Oracle - Google lawsuit. It means that Oracle owns valid patents which cover Java, and that it is willing to enforce them. (By definition all patents are valid until proven otherwise in court.) This is not a theoretical threat and it is not coming from a patent troll.

Why isn't it theoretical? Here is why: if a small company decided to distribute a product using Dalvik (clearly this is a very realistic scenario), all it takes is for Larry Ellison to sneeze and the company goes out of business. The mere cost of actually responding to the lawsuit, filing the paperwork, etc, is absolutely prohibitive! No small to medium company can afford an IP lawsuit, so usually the only practical option is to declare bankruptcy, even if the claims in the lawsuit are completely ridiculous. OIN, etc, is not going to help.

What is worse, the claims in this case wouldn't be ridiculous because I have no doubt that most(all?) Java implementations do in fact infringe Oracle's patents. Whether those patents are "obvious" to people like us or not is, of course, completely immaterial :-)

Let's hope they eventually are invalidated, but until then the risk is real.

> OpenJDK itself is covered by the GPL patent grants, either "compatible"
> or "incompatible". http://en.swpat.org/wiki/Java_and_patents[1] has a
> list of the various patent grants flying around.

Thanks. That is the best news I have heard all day.
I wonder if there is a way to get JamVM, etc, under this protection , for example by using the OpenJDK class libraries instead of Classpath?

Apache on participation in the JCP

Posted Nov 12, 2010 9:10 UTC (Fri) by mjw (subscriber, #16740) [Link]

> I think you are underestimating the seriousness of the Oracle - Google lawsuit. It means that Oracle owns valid patents which cover Java, and that it is willing to enforce them.

Maybe, but I do indeed think this is just a celebrity legal cage-fight. Nothing to do with normal hackers indeed. I am sure Oracle has evil intentions, but it wouldn't surprise me if all they were after was some cross-licensing deal with Google and all the legal blah-blah is just show to negotiate some deal. That said, it is still a bad move by Oracle and does cause a lot of FUD, so it is indeed not completely irrelevant and we do need to protect ourselves against it:
http://gnu.wildebeest.org/blog/mjw/2010/08/13/oracle-trie...

In any case I will happily follow the coverage. Latest Groklaw article about it shows Google might actually get all these patents off the table anyway, by getting them invalidated or at least show some other creative ways to defend oneself from such bullies: http://www.groklaw.net/article.php?story=20101111114933605

> > OpenJDK itself is covered by the GPL patent grants, either "compatible"
> > or "incompatible". http://en.swpat.org/wiki/Java_and_patents has a
> > list of the various patent grants flying around.

> Thanks. That is the best news I have heard all day.
> I wonder if there is a way to get JamVM, etc, under this protection , for example by using the OpenJDK class libraries instead of Classpath?

That is what Cacao did, and they got a TCK license:
http://openjdk.java.net/groups/conformance/JckAccess/jck-...

Apache on participation in the JCP

Posted Nov 11, 2010 16:52 UTC (Thu) by Los__D (guest, #15263) [Link]

AFAIK, you are only required to pass the TCK to call the result "Java".

Apache on participation in the JCP

Posted Nov 11, 2010 20:40 UTC (Thu) by MenTaLguY (guest, #21879) [Link]

...and if you don't call it "Java", but it's based on Java, Oracle sues you for patent infringement. See how it works? :/

Copyright © 2010, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds