Load the protocol providers config files.
(Class<?> cl)
| 945 | * Load the protocol providers config files. |
| 946 | */ |
| 947 | private void loadProviders(Class<?> cl) { |
| 948 | StreamLoader loader = new StreamLoader() { |
| 949 | @Override |
| 950 | public void load(InputStream is) throws IOException { |
| 951 | loadProvidersFromStream(is); |
| 952 | } |
| 953 | }; |
| 954 | |
| 955 | // load system-wide javamail.providers from the |
| 956 | // <java.home>/{conf,lib} directory |
| 957 | try { |
| 958 | if (confDir != null) |
| 959 | loadFile(confDir + "javamail.providers", loader); |
| 960 | } catch (SecurityException ex) {} |
| 961 | |
| 962 | // next, add all the non-default services |
| 963 | ServiceLoader<Provider> sl = ServiceLoader.load(Provider.class); |
| 964 | for (Provider p : sl) { |
| 965 | if (!p.getClass().isAnnotationPresent(DefaultProvider.class)) |
| 966 | addProvider(p); |
| 967 | } |
| 968 | |
| 969 | // load the META-INF/javamail.providers file supplied by an application |
| 970 | loadAllResources("META-INF/javamail.providers", cl, loader); |
| 971 | |
| 972 | // load default META-INF/javamail.default.providers from mail.jar file |
| 973 | loadResource("/META-INF/javamail.default.providers", cl, loader, false); |
| 974 | |
| 975 | // finally, add all the default services |
| 976 | sl = ServiceLoader.load(Provider.class); |
| 977 | for (Provider p : sl) { |
| 978 | if (p.getClass().isAnnotationPresent(DefaultProvider.class)) |
| 979 | addProvider(p); |
| 980 | } |
| 981 | |
| 982 | /* |
| 983 | * If we haven't loaded any providers, fake it. |
| 984 | */ |
| 985 | if (providers.size() == 0) { |
| 986 | logger.config("failed to load any providers, using defaults"); |
| 987 | // failed to load any providers, initialize with our defaults |
| 988 | addProvider(new Provider(Provider.Type.STORE, |
| 989 | "imap", "com.sun.mail.imap.IMAPStore", |
| 990 | "Oracle", Version.version)); |
| 991 | addProvider(new Provider(Provider.Type.STORE, |
| 992 | "imaps", "com.sun.mail.imap.IMAPSSLStore", |
| 993 | "Oracle", Version.version)); |
| 994 | addProvider(new Provider(Provider.Type.STORE, |
| 995 | "pop3", "com.sun.mail.pop3.POP3Store", |
| 996 | "Oracle", Version.version)); |
| 997 | addProvider(new Provider(Provider.Type.STORE, |
| 998 | "pop3s", "com.sun.mail.pop3.POP3SSLStore", |
| 999 | "Oracle", Version.version)); |
| 1000 | addProvider(new Provider(Provider.Type.TRANSPORT, |
| 1001 | "smtp", "com.sun.mail.smtp.SMTPTransport", |
| 1002 | "Oracle", Version.version)); |
| 1003 | addProvider(new Provider(Provider.Type.TRANSPORT, |
| 1004 | "smtps", "com.sun.mail.smtp.SMTPSSLTransport", |
no test coverage detected