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

Freeman Fang updated CAMEL-13593:
---------------------------------
    Description: 
In javax.mail API(1.6), it(javax.mail.Session) will use authenticator's 
classloader to load two default files
{code}
META-INF/javamail.default.address.map
META-INF/javamail.default.providers
{code}

Since camel-mail provider a DefaultAuthenticator, which means javax mail api 
will try to use camel-mail bundle classloader in OSGi to load above default 
files. Those files aren't available for camel-mail bundle classloader, so we 
see warning message as
{code}
 2019-04-25 12:42:09,806 | WARN | 23 - scheduler://foo | j.mail | 21 - 
com.sun.mail.javax.mail - 1.6.1 | expected resource not found: 
/META-INF/javamail.default.providers
2019-04-25 12:42:09,807 | WARN | 23 - scheduler://foo | j.mail | 21 - 
com.sun.mail.javax.mail - 1.6.1| expected resource not found: 
/META-INF/javamail.default.address.map
{code}

This warning message isn't harmful but annoying. The javax.mail.Session will 
always add default stuff by code if can't find the default configuration file
{code}
       if (providers.size() == 0) {
            logger.config("failed to load any providers, using defaults");
            // failed to load any providers, initialize with our defaults
            addProvider(new Provider(Provider.Type.STORE,
                        "imap", "com.sun.mail.imap.IMAPStore",
                        "Oracle", Version.version));
            addProvider(new Provider(Provider.Type.STORE,
                        "imaps", "com.sun.mail.imap.IMAPSSLStore",
                        "Oracle", Version.version));
            addProvider(new Provider(Provider.Type.STORE,
                        "pop3", "com.sun.mail.pop3.POP3Store",
                        "Oracle", Version.version));
            addProvider(new Provider(Provider.Type.STORE,
                        "pop3s", "com.sun.mail.pop3.POP3SSLStore",
                        "Oracle", Version.version));
            addProvider(new Provider(Provider.Type.TRANSPORT,
                        "smtp", "com.sun.mail.smtp.SMTPTransport",
                        "Oracle", Version.version));
            addProvider(new Provider(Provider.Type.TRANSPORT,
                        "smtps", "com.sun.mail.smtp.SMTPSSLTransport",
                        "Oracle", Version.version));
        }
       if (addressMap.isEmpty()) {
            logger.config("failed to load address map, using defaults");
            addressMap.put("rfc822", "smtp");
        }
{code}

But it's better we can avoid such WARN message when using camel-mail in OSGi

  was:
In javax.mail API(1.6), it(javax.mail.Session) will use authenticator's 
classloader to load two default files
{code}
META-INF/javamail.default.address.map
META-INF/javamail.default.providers
{code}

Since camel-mail provider a DefaultAuthenticator, which means javax mail api 
will try to use camel-mail bundle classloader in OSGi to load above default 
files. Those files aren't available for camel-mail bundle classloader, so we 
see warning message as
{code}
 2019-04-25 12:42:09,806 | WARN | 23 - scheduler://foo | j.mail | 21 - 
com.sun.mail.javax.mail - 1.6.1 | expected resource not found: 
/META-INF/javamail.default.providers
2019-04-25 12:42:09,807 | WARN | 23 - scheduler://foo | j.mail | 21 - 
com.sun.mail.javax.mail - 1.6.1| expected resource not found: 
/META-INF/javamail.default.address.map
{code}

This warning message isn't harmful but annoying. The javax.mail.Session will 
always add default stuff by code if can't find the default configuration file
{code}
       if (providers.size() == 0) {
            logger.config("failed to load any providers, using defaults");
            // failed to load any providers, initialize with our defaults
            addProvider(new Provider(Provider.Type.STORE,
                        "imap", "com.sun.mail.imap.IMAPStore",
                        "Oracle", Version.version));
            addProvider(new Provider(Provider.Type.STORE,
                        "imaps", "com.sun.mail.imap.IMAPSSLStore",
                        "Oracle", Version.version));
            addProvider(new Provider(Provider.Type.STORE,
                        "pop3", "com.sun.mail.pop3.POP3Store",
                        "Oracle", Version.version));
            addProvider(new Provider(Provider.Type.STORE,
                        "pop3s", "com.sun.mail.pop3.POP3SSLStore",
                        "Oracle", Version.version));
            addProvider(new Provider(Provider.Type.TRANSPORT,
                        "smtp", "com.sun.mail.smtp.SMTPTransport",
                        "Oracle", Version.version));
            addProvider(new Provider(Provider.Type.TRANSPORT,
                        "smtps", "com.sun.mail.smtp.SMTPSSLTransport",
                        "Oracle", Version.version));
        }
       if (addressMap.isEmpty()) {
            logger.config("failed to load address map, using defaults");
            addressMap.put("rfc822", "smtp");
        }
{code}

It's better we can avoid such WARN message when using camel-mail in OSGi


> avoid “expected resource not found” warnings when using camel-mail in OSGi
> --------------------------------------------------------------------------
>
>                 Key: CAMEL-13593
>                 URL: https://issues.apache.org/jira/browse/CAMEL-13593
>             Project: Camel
>          Issue Type: Improvement
>            Reporter: Freeman Fang
>            Assignee: Freeman Fang
>            Priority: Major
>
> In javax.mail API(1.6), it(javax.mail.Session) will use authenticator's 
> classloader to load two default files
> {code}
> META-INF/javamail.default.address.map
> META-INF/javamail.default.providers
> {code}
> Since camel-mail provider a DefaultAuthenticator, which means javax mail api 
> will try to use camel-mail bundle classloader in OSGi to load above default 
> files. Those files aren't available for camel-mail bundle classloader, so we 
> see warning message as
> {code}
>  2019-04-25 12:42:09,806 | WARN | 23 - scheduler://foo | j.mail | 21 - 
> com.sun.mail.javax.mail - 1.6.1 | expected resource not found: 
> /META-INF/javamail.default.providers
> 2019-04-25 12:42:09,807 | WARN | 23 - scheduler://foo | j.mail | 21 - 
> com.sun.mail.javax.mail - 1.6.1| expected resource not found: 
> /META-INF/javamail.default.address.map
> {code}
> This warning message isn't harmful but annoying. The javax.mail.Session will 
> always add default stuff by code if can't find the default configuration file
> {code}
>        if (providers.size() == 0) {
>             logger.config("failed to load any providers, using defaults");
>             // failed to load any providers, initialize with our defaults
>             addProvider(new Provider(Provider.Type.STORE,
>                         "imap", "com.sun.mail.imap.IMAPStore",
>                         "Oracle", Version.version));
>             addProvider(new Provider(Provider.Type.STORE,
>                         "imaps", "com.sun.mail.imap.IMAPSSLStore",
>                         "Oracle", Version.version));
>             addProvider(new Provider(Provider.Type.STORE,
>                         "pop3", "com.sun.mail.pop3.POP3Store",
>                         "Oracle", Version.version));
>             addProvider(new Provider(Provider.Type.STORE,
>                         "pop3s", "com.sun.mail.pop3.POP3SSLStore",
>                         "Oracle", Version.version));
>             addProvider(new Provider(Provider.Type.TRANSPORT,
>                         "smtp", "com.sun.mail.smtp.SMTPTransport",
>                         "Oracle", Version.version));
>             addProvider(new Provider(Provider.Type.TRANSPORT,
>                         "smtps", "com.sun.mail.smtp.SMTPSSLTransport",
>                         "Oracle", Version.version));
>         }
>        if (addressMap.isEmpty()) {
>             logger.config("failed to load address map, using defaults");
>             addressMap.put("rfc822", "smtp");
>         }
> {code}
> But it's better we can avoid such WARN message when using camel-mail in OSGi



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to