2010-05-07 6 views
5

Ich meine, kann ich die Klassen com.sun.org.apache (alle Unterpakete) verwenden, wie ich sie von org.apache (in einer beliebigen Apache-Bibliothek) verwende?Ist com.sun.org.apache dasselbe wie das org.apache-Paket?

Wird das OpenJDK dieses Paket mit Apache Updates auf dem neuesten Stand halten?

Und das JDK7 wird dieses Paket beibehalten?

Wo finde ich Informationen dazu?

Antwort

6

Es ist eine sehr schlechte Idee, es zu benutzen. Es war einmal, dass Sun eine Kopie von Xerces nahm, voller Bugs. Sie haben einige Änderungen vorgenommen. Vielleicht haben sie einige Bugs subtrahiert. Wir wissen, dass es viele sehr ernste Fehler gibt, die sie nicht abgezogen haben.

Und sie haben es in com.sun .... aus einem Grund umbenannt: um Ihnen zu sagen, es nicht zu verwenden. Zu jeder Zeit, in jedem Point-Release, in jedem Patch, können sie diese Klassen inkompatibel ändern oder entfernen.

Weiter sind diese Klassen möglicherweise nicht in IBMs Kopie der JRE, oder Apple, oder (haha) Microsoft, oder JRocket.

Wenn Sie Xerces verwenden möchten, verwenden Sie Xerces. Informationen hierzu finden Sie im Xerces-j-Mailinglisten-Archiv für viele ernste Warnungen der Xerces-Entwickler über die von Sun geteilte Version.

Die Tatsache, dass die Klassen formal "öffentlich" sind, bedeutet nichts anderes als dass Sun in der Lage war, sie aus einem anderen Paket zu new zu können.

1

Err würde ich nicht, nur basierend auf der Tatsache, dass sie interne Klassen sind und es besteht das Risiko, dass sie sich im Laufe der Zeit ändern. Verwenden Sie stattdessen die org.apache-Klassen.

keine Ahnung von den Absichten mit ihnen auf dem neuesten Stand zu halten, vielleicht versuchen, eine Nachricht auf dem openjdk Forum verfasst:

http://mail.openjdk.java.net/mailman/listinfo

0

Wenn Dokumentation für dieses Paket sagt, dass es öffentlich ist, dann ist es OK, um benutzen.

Andernfalls können sie einen Boden unter Ihnen zusammenlegen, wenn sie sich entscheiden, ihn in Zukunft nicht zu unterstützen.

Normalerweise sollten Sie sich in JDK nicht auf etwas anderes als java und javax verlassen.

+2

oder org.w3c ... vergiss das nicht. – bmargulies

1

Mein Verständnis ist, dass dies eine Gabel des Apache-Codes ist. An einem Punkt waren sie gleich, aber nicht mehr. Sie können also nicht auf die gleichen Fehlerbehebungen zählen, die in beiden Versionen vorhanden sind.

Verwandte Themen