You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Thomas Neidhart (JIRA)" <ji...@apache.org> on 2015/03/19 23:27:38 UTC

[jira] [Updated] (EMAIL-152) Make javamail implementation dependency optional

     [ https://issues.apache.org/jira/browse/EMAIL-152?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Thomas Neidhart updated EMAIL-152:
----------------------------------
    Description: 
Currently, commons-email has a transitive dependency to the reference implementation of javamail.

This can lead to problems when trying to use another implementation (e.g. geronimo or gnu) at runtime, as one has to exclude dependencies.

So I propose to change the dependencies as follows:

 * use an optional compile time dependency to the latest javamail api:

{noformat}
        <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>javax.mail-api</artifactId>
            <version>1.4.5</version>
            <scope>compile</scope>
            <optional>true</optional>
        </dependency>
{noformat}

 * add an optional runtime dependency to the javamail reference impl

{noformat}
        <dependency>
            <groupId>com.sun.mail</groupId>
            <artifactId>javax.mail</artifactId>
            <version>1.5.2</version>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
{noformat}

that way both dependencies are not transitive, thus project including commons-email have the opportunity to chose their javamail implementation.

geronimo implementation:
{noformat}
        <dependency>
            <groupId>org.apache.geronimo.javamail</groupId>
            <artifactId>geronimo-javamail_1.4_mail</artifactId>
            <version>1.8.3</version>
        </dependency>
{noformat}

or the oracle reference impl, as outlined above.

  was:
Currently, commons-email has a transitive dependency to the reference implementation of javamail.

This can lead to problems when trying to use another implementation (e.g. geronimo or gnu) at runtime, as one has to exclude dependencies.

So I propose to change the dependencies as follows:

 * use an optional compile time dependency to the latest javamail api:

{noformat}
        <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>javax.mail-api</artifactId>
            <version>1.5.2</version>
            <scope>compile</scope>
            <optional>true</optional>
        </dependency>
{noformat}

 * add an optional runtime dependency to the javamail reference impl

{noformat}
        <dependency>
            <groupId>com.sun.mail</groupId>
            <artifactId>javax.mail</artifactId>
            <version>1.5.2</version>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
{noformat}

that way both dependencies are not transitive, thus project including commons-email have the opportunity to chose their javamail implementation.

geronimo implementation:
{noformat}
        <dependency>
            <groupId>org.apache.geronimo.javamail</groupId>
            <artifactId>geronimo-javamail_1.4_mail</artifactId>
            <version>1.8.3</version>
        </dependency>
{noformat}

or the oracle reference impl, as outlined above.


> Make javamail implementation dependency optional
> ------------------------------------------------
>
>                 Key: EMAIL-152
>                 URL: https://issues.apache.org/jira/browse/EMAIL-152
>             Project: Commons Email
>          Issue Type: Improvement
>    Affects Versions: 1.3
>            Reporter: Thomas Neidhart
>             Fix For: 1.4
>
>
> Currently, commons-email has a transitive dependency to the reference implementation of javamail.
> This can lead to problems when trying to use another implementation (e.g. geronimo or gnu) at runtime, as one has to exclude dependencies.
> So I propose to change the dependencies as follows:
>  * use an optional compile time dependency to the latest javamail api:
> {noformat}
>         <dependency>
>             <groupId>javax.mail</groupId>
>             <artifactId>javax.mail-api</artifactId>
>             <version>1.4.5</version>
>             <scope>compile</scope>
>             <optional>true</optional>
>         </dependency>
> {noformat}
>  * add an optional runtime dependency to the javamail reference impl
> {noformat}
>         <dependency>
>             <groupId>com.sun.mail</groupId>
>             <artifactId>javax.mail</artifactId>
>             <version>1.5.2</version>
>             <scope>runtime</scope>
>             <optional>true</optional>
>         </dependency>
> {noformat}
> that way both dependencies are not transitive, thus project including commons-email have the opportunity to chose their javamail implementation.
> geronimo implementation:
> {noformat}
>         <dependency>
>             <groupId>org.apache.geronimo.javamail</groupId>
>             <artifactId>geronimo-javamail_1.4_mail</artifactId>
>             <version>1.8.3</version>
>         </dependency>
> {noformat}
> or the oracle reference impl, as outlined above.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)