2010-05-07 11 views
5

Quiero decir, ¿puedo usar las clases com.sun.org.apache (todos los subpaquetes) cuando los utilizo desde org.apache (en cualquier lib Apache)?¿Es com.sun.org.apache lo mismo que el paquete org.apache?

¿El OpenJDK mantendrá este paquete actualizado con las actualizaciones de Apache?

¿Y el JDK7 mantendrá este paquete?

¿Dónde puedo encontrar información al respecto?

Respuesta

6

Es una muy mala idea usarlo. Érase una vez, Sun tomó una copia de Xerces, llena de errores. Hicieron algunos cambios. Quizás restaron algunos errores. Sabemos que hay muchos errores muy serios que no sustrajeron.

Y lo renombraron como com.sun .... por una razón: para decirle que no lo use. En cualquier momento, en cualquier versión de punto, en cualquier parche, pueden cambiar esas clases de manera incompatible o eliminarlas.

Además, estas clases pueden no estar en la copia de IBM del JRE, o Apple, o (jaja) Microsoft o JRocket.

Si quiere Xerces, use Xerces. Para encontrar información sobre esto, lea el archivo de la lista de correo de Xerces-j para obtener muchas advertencias de los desarrolladores de Xerces sobre la versión bifurcada por Sun.

El hecho de que las clases sean formalmente 'públicas' no significa nada, excepto que Sun necesitaba poderlas new de algún otro paquete.

1

Err No lo haría, solo por el hecho de que son clases internas y existe el riesgo de que cambien con el tiempo. Use las clases org.apache en su lugar.

ni idea sobre las intenciones con manteniéndolos al día, tal vez tratar de publicar un mensaje en el foro OpenJDK:

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

0

Si la documentación de este paquete dice que es público, entonces está bien utilizar.

De lo contrario, pueden agrupar un piso debajo de usted cuando decidan no admitirlo en el futuro.

Por lo general, no debe confiar en nada que no sea java y javax en JDK.

+2

u org.w3c ... no lo olvides. – bmargulies

1

Según tengo entendido, este es un tenedor del código apache. En un momento dado fueron lo mismo, pero no más. Por lo tanto, no puede contar con las mismas correcciones de errores presentes en ambas versiones.

Cuestiones relacionadas