Actualización de Librerías dependientes – Java Mail

Inicio Foros Foro principal Desarrolladores Actualización de Librerías dependientes – Java Mail

  • Este debate está vacío.
Viendo 2 entradas - de la 1 a la 2 (de un total de 2)
  • Autor
    Entradas
  • #32044
    Javier Ader
    Participante

    Buenas. Estamos haciendo un componente que requiere enviar emails. Libertya viene con tres librerías que dan este soporte
    -Java Mail API versión 1.3.1 ; en Libertya bajo el nombre mail.jar (en tools/lib/, lib/ y en varios lados mas; lo correcto supongo es que este solo en tools/lib). Paquetes java javax.mail.* y com.sun.mail.*
    -Java Beans Activation Framework version 1.0.2 ; en Libertya a aparece bajo el nombre activation.jar (de nuevo en varios lados; el correcto deberia ser solo tools/lib si es que deberia ir). Paquete java javax.activation.* . La funcionaidad dada por esta libreria es requerida por Java Mail (pero de un tiempo a esta parte ya viene incluida en la version standar de java).

    – finalmente una tercera libreria J2EE (Java 2 Platform, Enterprise Edition) version 1.4 (nombre j2ee.jar) que replica parte de la funcionalidad anterior (menos el paquete com.sun.mail.* , y por lo tanto por si sola no sirve para poder enviar emails), pero que si no me equivoco no esta siendo usada por nadie, al menos no por el cliente pesado; el proceso de compilación ANT no parece hacer referencia a este jar (lo referencian para compilar en algunos lados, pero no parece ser incluido dentro del cliente pesado final). No se exactamente por que está esta extensión de la plataforma Java Standard, no parece ser necesaria en absoluto.

    Ahora bien, la librería Java Mail API está muy desactualizada (es del año 2003) y por ej, no soporta el envío de emails sobre SSL (algo que se requiere por ej para enviar email usando una cuenta de gmail). Aún más, la libreria “activation.jar” no es requerida desde hace rato ya que fue incluida en la versión standard de Java 6 (más allá de esto, también esta desactualizada; Java Stadard 6 inluye la version 1.1 o superior; la que esta en Libertya es la 1.0.2). La ultima versión de Java Mail es 1.4.5 que ademas paso a ser código libre hace unos años.

    La unica parte del core que creo que utiliza esta funcionalidad es en la clase Email (en subproyecto base) y clases relacionadas; la ultima version de java mail parece ser compatible con este cogido, al menos compila.

    En conclusión, creo que lo que se debería hacer es
    – eliminar el activation.jar (y sus referencias en los build.xml); no es necesario y ademas obliga a usarse una version desactualizada al incluirse
    – actualizar Java Mail a 1.4.5 , reemplazando los mail.jar por el de la nueva version
    – eliminar si es que realmente no es necesaria la libreria j2ee.jar y sus referencias en los builds.xml

    Esto es lo que vamos a tener que hacer nosotros de todas maneras, ya que la necesitamos la enviar emails sobre SSL, pero estaría bueno que estas cosas se agreguen a futuras versiones oficiales.

    Dejo un par de links:
    – Java Mail Api http://www.oracle.com/technetwork/java/javamail/index.html (de ahi se puede bajar la version binaria; dentro del zip esta mail.jar que es el que hay que usar; los otros jar dentro del zip no son necesarios, ya estan incluidos dentro del mail.jar)

    – Fuentes de de Java Mail desde aca http://kenai.com/projects/javamail/downloads (en particular los de 1.4.5 http://kenai.com/projects/javamail/downloads/download/javamail-1.4.5-src.zip ), dentro del zip en mail/src/main/java

    Saludos

    PD : más allá de esto me parece que hay que hacer un revisión general de las librerías externas y sus versiones de la que esta haciendo uso Libertya (eliminar las no usadas, actualizar las que haya que actulizar, eliminar las replicaciones de la misma librería en más de un lado… se hace medio complicado ver que librerias esta usando y cuales no…); creo recordar un problema con la version de iText (para generar pdfs; usada tanto por Jasper como por el repoteador interno) que por un lado usaba versión desactulizada y por el otro había mas de un iText dando vueltas (creo que si uno corria desde eclipse se terminaba usando una versión, mientras que en el cliente pesado se usaba otra). Habia investigado un poco esto antes; depues posteo algo más.

    #36531

    Javier,
    Como siempre lo tuyo prácticamente es una clase magistral.
    Entendemos que es un tema que hay que mejorar por lo que si lográs actualizar las librerías y eliminar las que no se utilizan mas, esperaremos ansiosos las instrucciones para pasar todo al Core de manera que ya quede en la versión estándar.

    Saludos
    Antonio

Viendo 2 entradas - de la 1 a la 2 (de un total de 2)
  • Debes estar registrado para responder a este debate.