OpenJDK und Oracle JDK proprieträre API

minimike

Mitglied
Hi

Ich ärgere mich grad ein wenig über eine Inkompatibelität im OpenJDK 6. Ich strebe in meiner Umgebung an alles als OpenSource verfügbar zu haben. Speziell in MIT, BSD, YPL, MPL oder GPL. Ich mag mir einfach nicht viel vorschreiben lassen sofern etwas technisch möglich wäre, mir dies dann aber die Lizenz von irgendeiner Software verbietet.

Darum setze schon als Einsteiger auf das OpenJDK6


Aber gibt es für unten anstehendes Verhalten einen Workaround ohne großartig vorhandenen Code ändern zu müssen? Es geht darum Jboss 5.1 mit GateIn und unter aderem exo WCM als Portlet laufen zu lassen. Jboss 5.1 und GateIn wurden schon mit dem OpenJDK6 übersetzt und laufen mittlerweile ohne Exeptions. Der Fehler tritt bei exo WCM auf.

Code:
[INFO] eXo WCM Examples :: Manage WCM Cache .............. SKIPPED
[INFO] eXo WCM Examples :: Hello World Option Block ...... SKIPPED
[INFO] eXo WCM Examples :: Hello World SideBar ........... SKIPPED
[INFO] ECMS documentation ................................ SKIPPED
[INFO] eXo Platform - Tests .............................. SKIPPED
[INFO] Selenium Sniff Test for selenium .................. SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 29.498s
[INFO] Finished at: Wed Apr 27 13:40:27 CEST 2011
[INFO] Final Memory: 45M/300M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.1:compile (default-compile) on project exo-ecms-core-parser: Compilation failure: Compilation failure:
[ERROR] /home/darko/JAVA/Project_Gatein/trunk/core/parser/src/main/java/org/exoplatform/services/chars/ConverterSD.java:[22,13] [deprecation] sun.io.ByteToCharConverter in sun.io has been deprecated
[ERROR] 
[ERROR] /home/darko/JAVA/Project_Gatein/trunk/core/parser/src/main/java/org/exoplatform/services/chars/ConverterSD.java:[22,13] sun.io.ByteToCharConverter is Sun proprietary API and may be removed in a future release
[ERROR] 
[ERROR] /home/darko/JAVA/Project_Gatein/trunk/core/parser/src/main/java/org/exoplatform/services/chars/ConverterSD.java:[35,11] [deprecation] sun.io.ByteToCharConverter in sun.io has been deprecated
[ERROR] 
[ERROR] /home/darko/JAVA/Project_Gatein/trunk/core/parser/src/main/java/org/exoplatform/services/chars/ConverterSD.java:[35,11] sun.io.ByteToCharConverter is Sun proprietary API and may be removed in a future release
[ERROR] 
[ERROR] /home/darko/JAVA/Project_Gatein/trunk/core/parser/src/main/java/org/exoplatform/services/chars/ConverterSD.java:[37,15] [deprecation] sun.io.ByteToCharConverter in sun.io has been deprecated
[ERROR] 
[ERROR] /home/darko/JAVA/Project_Gatein/trunk/core/parser/src/main/java/org/exoplatform/services/chars/ConverterSD.java:[37,15] sun.io.ByteToCharConverter is Sun proprietary API and may be removed in a future release
[ERROR] 
[ERROR] /home/darko/JAVA/Project_Gatein/trunk/core/parser/src/main/java/org/exoplatform/services/chars/CharsetSD.java:[23,17] sun.nio.cs.HistoricallyNamedCharset is Sun proprietary API and may be removed in a future release
[ERROR] 
[ERROR] /home/darko/JAVA/Project_Gatein/trunk/core/parser/src/main/java/org/exoplatform/services/html/parser/HTMLParser.java:[70,48] invalid inferred types for E; inferred type does not conform to declared bound(s)
[ERROR] inferred: org.exoplatform.services.token.TokenParser.Factory<T>
[ERROR] bound(s): org.exoplatform.services.token.TokenParser.Factory<org.exoplatform.services.html.parser.NodeImpl>
[ERROR] 
[ERROR] /home/darko/JAVA/Project_Gatein/trunk/core/parser/src/main/java/org/exoplatform/services/chars/CharsDecoder.java:[71,39] sun.io.ByteToCharConverter is Sun proprietary API and may be removed in a future release
[ERROR] 
[ERROR] /home/darko/JAVA/Project_Gatein/trunk/core/parser/src/main/java/org/exoplatform/services/chars/CharsetSD.java:[55,24] sun.nio.cs.HistoricallyNamedCharset is Sun proprietary API and may be removed in a future release
[ERROR] 
[ERROR] /home/darko/JAVA/Project_Gatein/trunk/core/parser/src/main/java/org/exoplatform/services/chars/CharsetSD.java:[56,18] sun.nio.cs.HistoricallyNamedCharset is Sun proprietary API and may be removed in a future release
[ERROR] 
[ERROR] /home/darko/JAVA/Project_Gatein/trunk/core/parser/src/main/java/org/exoplatform/services/xml/parser/XMLParser.java:[48,48] invalid inferred types for E; inferred type does not conform to declared bound(s)
[ERROR] inferred: org.exoplatform.services.token.TokenParser.Factory<T>
[ERROR] bound(s): org.exoplatform.services.token.TokenParser.Factory<org.exoplatform.services.xml.parser.XMLNode>
[ERROR] 
[ERROR] /home/darko/JAVA/Project_Gatein/trunk/core/parser/src/main/java/org/exoplatform/services/html/tidy/HTMLTidy.java:[53,31] invalid inferred types for E; inferred type does not conform to declared bound(s)
[ERROR] inferred: org.exoplatform.services.token.TokenParser.Factory<T>
[ERROR] bound(s): org.exoplatform.services.token.TokenParser.Factory<org.exoplatform.services.html.parser.NodeImpl>
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
[ERROR] 
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <goals> -rf :exo-ecms-core-parser
mvn install  19,85s user 1,26s system 67% cpu 31,270 total
1 darko@bitch ~/JAVA/Project_Gatein/trunk (svn)-[trunk:68706]
 
Scheint wohl ein Bug im OpenJDK zu sein, hast du das mal gegengeprüft mit dem Sun/Oracle JDK?
 
Nein denn selbst wenn es durchkompiliert erwarte ich dann Fehler zum späteren Zeitpunkt. Die Produktivserver haben nicht ein einziges unfreies Programm. Die Strategie ist nur auf OpenSource zu setzen. Und im Falle das man doch noch wegen einer Lizenzverletzung verklagt wird, dann die Distrubitoren sowie die OpenSource Gemeinschaft im Rücken zu haben. Dann bleibt man nicht ganz so winzig und schwach.
 
Sollst doch nur testen was passiert wenn du das Sun/Oracle JDK verwendest 😉

Nebenbei, das Oracle/Sun JDK zum kompilieren zu verwenden macht die SW nicht "unfrei" oder ähnliches, gibt genug GPL und andere freie SW Lizenzen die mit dem Sun/Oracle JDK kompiliert wurden und immer noch werden.
 
Das war mir klar, trotzdem Danke 🙂
Aber mir fliegt GateIN und Jboss mit Oracle JDK kompiliert um die Ohren wenn ich es dann mit OpenJDK betreibe.
Mein Terminal hat gar nicht so viele Zeilen im Buffer um alle Exeptions anzuzeigen. Nachdem ich dann angefangen habe es mit dem OpenJDK zu übersetzen und dann zu betreiben ist nicht nur bei diesem Projekt der Friede eingekehrt.
Hatte das auch schon mit Liferay erfolgreich gemacht.
 
Aber mir fliegt GateIN und Jboss mit Oracle JDK kompiliert um die Ohren wenn ich es dann mit OpenJDK betreibe.
Dann ist das imho definitiv ein Bug, sowas dürfte nicht passieren.
Offensichtlich ist das OpenJDK wohl noch nciht soweit das Oracle JDK zu ersetzten.
 
Dann ist das imho definitiv ein Bug, sowas dürfte nicht passieren.
Offensichtlich ist das OpenJDK wohl noch nciht soweit das Oracle JDK zu ersetzten.
Das ist eine subjektive Betrachtungsweise. Oracle schickt sich derzeit an Java neben Solaris auch noch zur Cash Cow zu machen. Bei Solaris habe ich mittlerweile das Gefühl das sofern auch der letzte Heller des Kunden abgeschöpft wurde, er noch mit seinem Körper verwertet wird.
Es würde mich nicht wundern wenn Oracle so die Leute zu den kostenpflichtigen Produkten presst und auf ewig ankettet.
Ich weine den Zeiten hinterher wo SUN noch SUN war.
 
Das ist eine subjektive Betrachtungsweise.
Was meinst du?
Dass das ein Bug ist, ist sicher, denn das muss gehen wenn "Java" draufsteht.
Wenn du die Oracle JDK nicht einfach mit einem OpenJDK ersetzen kannst, kannst du wohl nicht wirklich mit dem OpenJDK arbeiten (zumindest bis dieser Bug gefixt ist).
Finde ich nicht subjektiv, ist aber nur meine subjektive Meinung 😉
 
Was meinst du?
Dass das ein Bug ist, ist sicher, denn das muss gehen wenn "Java" draufsteht.
Wenn du die Oracle JDK nicht einfach mit einem OpenJDK ersetzen kannst, kannst du wohl nicht wirklich mit dem OpenJDK arbeiten (zumindest bis dieser Bug gefixt ist).
Finde ich nicht subjektiv, ist aber nur meine subjektive Meinung 😉
Ich meine damit das es zukünftig drei JAVA Versionen aus dem Hause Oracle geben wird. OpenSource, die abgespeckte Version und dann eine für $$$$$

Aber zurück zum Thema ich hatte gehofft das es vielleicht doch ne Möglichkeit gibt. Ich habe mir mal die Seite von Jikes angeschaut aber ich glaube nicht das der JAVA 6 unterstützt.
 
Code:
1 darko@bitch ~/JAVA/Project_Gatein/trunk (svn)-[trunk:68706] % java -version
java version "1.6.0_17"
OpenJDK Runtime Environment (IcedTea6 1.7.10) (rhel-1.39.b17.el6_0-x86_64)
OpenJDK 64-Bit Server VM (build 14.0-b16, mixed mode)
 

Zurück
Oben