# IGNITE-261 Cleanup API: email support removed.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/da1fa4e6 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/da1fa4e6 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/da1fa4e6 Branch: refs/heads/ignite-239 Commit: da1fa4e62531c71c59323a6a529b1dba26775f11 Parents: 63bcd34 Author: AKuznetsov <akuznet...@gridgain.com> Authored: Mon Feb 16 16:30:58 2015 +0700 Committer: AKuznetsov <akuznet...@gridgain.com> Committed: Mon Feb 16 16:30:58 2015 +0700 ---------------------------------------------------------------------- .../apache/ignite/IgniteSystemProperties.java | 120 ------- .../configuration/IgniteConfiguration.java | 353 ------------------- .../ignite/internal/GridKernalContext.java | 8 - .../ignite/internal/GridKernalContextImpl.java | 12 - .../ignite/internal/IgniteComponentType.java | 7 - .../org/apache/ignite/internal/IgniteEx.java | 12 - .../apache/ignite/internal/IgniteKernal.java | 204 +---------- .../org/apache/ignite/internal/IgnitionEx.java | 49 --- .../processors/email/GridEmailHolder.java | 111 ------ .../email/IgniteEmailProcessorAdapter.java | 84 ----- .../email/IgniteNoopEmailProcessor.java | 55 --- .../internal/processors/email/package.html | 24 -- .../visor/node/VisorEmailConfiguration.java | 177 ---------- .../visor/node/VisorGridConfiguration.java | 18 - .../visor/node/VisorLifecycleConfiguration.java | 19 - modules/email/licenses/apache-2.0.txt | 202 ----------- modules/email/pom.xml | 51 --- modules/email/readme.txt | 34 -- .../processors/email/IgniteEmailProcessor.java | 296 ---------------- ...idHadoopDefaultMapReducePlannerSelfTest.java | 10 - .../commands/alert/VisorAlertCommand.scala | 83 +---- .../config/VisorConfigurationCommand.scala | 15 - .../commands/alert/VisorAlertCommandSpec.scala | 1 - .../config/VisorConfigurationCommandSpec.scala | 1 - .../disco/VisorDiscoveryCommandSpec.scala | 1 - .../events/VisorEventsCommandSpec.scala | 1 - .../visor/commands/gc/VisorGcCommandSpec.scala | 1 - .../commands/tasks/VisorTasksCommandSpec.scala | 2 - pom.xml | 1 - 29 files changed, 8 insertions(+), 1944 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/da1fa4e6/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java b/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java index 1550665..7280d2d 100644 --- a/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java +++ b/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java @@ -140,126 +140,6 @@ public final class IgniteSystemProperties { public static final String IGNITE_SUCCESS_FILE = "IGNITE_SUCCESS_FILE"; /** - * Name of the system property or environment variable to set or override - * SMTP host. If provided - it will override the property in grid configuration. - * <p> - * Note that Ignite uses SMTP to send emails in critical - * situations such as license expiration or fatal system errors. - * It is <b>highly</b> recommended to configure SMTP in production - * environment. - * - * @see org.apache.ignite.configuration.IgniteConfiguration#getSmtpHost() - */ - public static final String IGNITE_SMTP_HOST = "IGNITE_SMTP_HOST"; - - /** - * Name of the system property or environment variable to set or override - * SMTP port. If provided - it will override the property in grid configuration. - * <p> - * Note that Ignite uses SMTP to send emails in critical - * situations such as license expiration or fatal system errors. - * It is <b>highly</b> recommended to configure SMTP in production - * environment. - * - * @see org.apache.ignite.configuration.IgniteConfiguration#getSmtpPort() - * @see org.apache.ignite.configuration.IgniteConfiguration#DFLT_SMTP_PORT - */ - public static final String IGNITE_SMTP_PORT = "IGNITE_SMTP_PORT"; - - /** - * Name of the system property or environment variable to set or override - * SMTP username. If provided - it will override the property in grid configuration. - * <p> - * Note that Ignite uses SMTP to send emails in critical - * situations such as license expiration or fatal system errors. - * It is <b>highly</b> recommended to configure SMTP in production - * environment. - * - * @see org.apache.ignite.configuration.IgniteConfiguration#getSmtpUsername() - */ - public static final String IGNITE_SMTP_USERNAME = "IGNITE_SMTP_USERNAME"; - - /** - * Name of the system property or environment variable to set or override - * SMTP password. If provided - it will override the property in grid configuration. - * <p> - * Note that Ignite uses SMTP to send emails in critical - * situations such as license expiration or fatal system errors. - * It is <b>highly</b> recommended to configure SMTP in production - * environment. - * - * @see org.apache.ignite.configuration.IgniteConfiguration#getSmtpPassword() - */ - public static final String IGNITE_SMTP_PWD = "IGNITE_SMTP_PASSWORD"; - - /** - * Name of the system property or environment variable to set or override - * SMTP FROM email. If provided - it will override the property in grid configuration. - * <p> - * Note that Ignite uses SMTP to send emails in critical - * situations such as license expiration or fatal system errors. - * It is <b>highly</b> recommended to configure SMTP in production - * environment. - * - * @see org.apache.ignite.configuration.IgniteConfiguration#getSmtpFromEmail() - * @see org.apache.ignite.configuration.IgniteConfiguration#DFLT_SMTP_FROM_EMAIL - */ - public static final String IGNITE_SMTP_FROM = "IGNITE_SMTP_FROM"; - - /** - * Name of the system property or environment variable to set or override - * list of admin emails. Value of this property should be comma-separated list - * of emails. If provided - it will override the property in grid configuration. - * <p> - * Note that Ignite uses SMTP to send emails in critical - * situations such as license expiration or fatal system errors. - * It is <b>highly</b> recommended to configure SMTP in production - * environment. - * - * @see org.apache.ignite.configuration.IgniteConfiguration#getAdminEmails() - */ - public static final String IGNITE_ADMIN_EMAILS = "IGNITE_ADMIN_EMAILS"; - - /** - * Name of the system property or environment variable to set or override - * whether or not to use SSL. If provided - it will override the property - * in grid configuration. - * <p> - * Note that Ignite uses SMTP to send emails in critical - * situations such as license expiration or fatal system errors. - * It is <b>highly</b> recommended to configure SMTP in production - * environment. - * - * @see org.apache.ignite.configuration.IgniteConfiguration#isSmtpSsl() - * @see org.apache.ignite.configuration.IgniteConfiguration#DFLT_SMTP_SSL - */ - public static final String IGNITE_SMTP_SSL = "IGNITE_SMTP_SSL"; - - /** - * Name of the system property or environment variable to set or override - * whether or not to enable email notifications for node lifecycle. If provided - - * it will override the property in grid configuration. - * - * @see org.apache.ignite.configuration.IgniteConfiguration#isLifeCycleEmailNotification() - */ - public static final String IGNITE_LIFECYCLE_EMAIL_NOTIFY = "IGNITE_LIFECYCLE_EMAIL_NOTIFY"; - - /** - * Name of the system property or environment variable to set or override - * whether or not to use STARTTLS. If provided - it will override the property - * in grid configuration. - * <p> - * Note that Ignite uses SMTP to send emails in critical - * situations such as license expiration or fatal system errors. - * It is <b>highly</b> recommended to configure SMTP in production - * environment. - * - * @see org.apache.ignite.configuration.IgniteConfiguration#isSmtpStartTls() - * @see org.apache.ignite.configuration.IgniteConfiguration#DFLT_SMTP_STARTTLS - */ - public static final String IGNITE_SMTP_STARTTLS = "IGNITE_SMTP_STARTTLS"; - - /** * Name of system property to set system-wide local IP address or host. If provided it will * override all default local bind settings within Ignite or any of its SPIs. * <p> http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/da1fa4e6/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java b/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java index 1695ab7..72ab928 100644 --- a/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java +++ b/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java @@ -109,18 +109,6 @@ public class IgniteConfiguration { /** Default cache size for missed resources. */ public static final int DFLT_P2P_MISSED_RESOURCES_CACHE_SIZE = 100; - /** Default SMTP port. */ - public static final int DFLT_SMTP_PORT = 25; - - /** Default SSL enabled flag. */ - public static final boolean DFLT_SMTP_SSL = false; - - /** Default STARTTLS enabled flag. */ - public static final boolean DFLT_SMTP_STARTTLS = false; - - /** Default FROM email address. */ - public static final String DFLT_SMTP_FROM_EMAIL = "i...@gridgain.com"; - /** Default time server port base. */ public static final int DFLT_TIME_SERVER_PORT_BASE = 31100; @@ -205,9 +193,6 @@ public class IgniteConfiguration { /** IGFS pool size. */ private int igfsPoolSize = AVAILABLE_PROC_CNT; - /** Lifecycle email notification. */ - private boolean lifeCycleEmailNtf = true; - /** P2P pool size. */ private int p2pPoolSize = DFLT_P2P_THREAD_CNT; @@ -340,30 +325,6 @@ public class IgniteConfiguration { /** Cache size of missed resources. */ private int p2pMissedCacheSize = DFLT_P2P_MISSED_RESOURCES_CACHE_SIZE; - /** */ - private String smtpHost; - - /** */ - private int smtpPort = DFLT_SMTP_PORT; - - /** */ - private String smtpUsername; - - /** */ - private String smtpPwd; - - /** */ - private String[] adminEmails; - - /** */ - private String smtpFromEmail = DFLT_SMTP_FROM_EMAIL; - - /** */ - private boolean smtpSsl = DFLT_SMTP_SSL; - - /** */ - private boolean smtpStartTls = DFLT_SMTP_STARTTLS; - /** Local host. */ private String locHost; @@ -443,7 +404,6 @@ public class IgniteConfiguration { * Order alphabetically for maintenance purposes. */ addrRslvr = cfg.getAddressResolver(); - adminEmails = cfg.getAdminEmails(); allResolversPassReq = cfg.isAllSegmentationResolversPassRequired(); atomicCfg = cfg.getAtomicConfiguration(); daemon = cfg.isDaemon(); @@ -465,7 +425,6 @@ public class IgniteConfiguration { inclEvtTypes = cfg.getIncludeEventTypes(); includeProps = cfg.getIncludeProperties(); lifecycleBeans = cfg.getLifecycleBeans(); - lifeCycleEmailNtf = cfg.isLifeCycleEmailNotification(); locHost = cfg.getLocalHost(); log = cfg.getGridLogger(); lsnrs = cfg.getLocalEventListeners(); @@ -490,13 +449,6 @@ public class IgniteConfiguration { segResolvers = cfg.getSegmentationResolvers(); sndRetryCnt = cfg.getNetworkSendRetryCount(); sndRetryDelay = cfg.getNetworkSendRetryDelay(); - smtpHost = cfg.getSmtpHost(); - smtpPort = cfg.getSmtpPort(); - smtpUsername = cfg.getSmtpUsername(); - smtpPwd = cfg.getSmtpPassword(); - smtpFromEmail = cfg.getSmtpFromEmail(); - smtpSsl = cfg.isSmtpSsl(); - smtpStartTls = cfg.isSmtpStartTls(); streamerCfg = cfg.getStreamerConfiguration(); sysPoolSize = cfg.getSystemThreadPoolSize(); timeSrvPortBase = cfg.getTimeServerPortBase(); @@ -508,311 +460,6 @@ public class IgniteConfiguration { } /** - * Whether or not send email notifications on node start and stop. Note if enabled - * email notifications will only be sent if SMTP is configured and at least one - * admin email is provided. - * <p> - * By default - email notifications are enabled. - * - * @return {@code True} to enable lifecycle email notifications. - * @see #getSmtpHost() - * @see #getAdminEmails() - */ - public boolean isLifeCycleEmailNotification() { - return lifeCycleEmailNtf; - } - - /** - * Whether or not to use SSL fot SMTP. Default is {@link #DFLT_SMTP_SSL}. - * <p> - * Note that Ignite uses SMTP to send emails in critical - * situations such as license expiration or fatal system errors. - * It is <b>highly</b> recommended to configure SMTP in production - * environment. - * <p> - * Note that {@link #getSmtpHost()} is the only mandatory SMTP - * configuration property. - * - * @return Whether or not to use SSL fot SMTP. - * @see #DFLT_SMTP_SSL - * @see org.apache.ignite.IgniteSystemProperties#IGNITE_SMTP_SSL - */ - public boolean isSmtpSsl() { - return smtpSsl; - } - - /** - * Whether or not to use STARTTLS fot SMTP. Default is {@link #DFLT_SMTP_STARTTLS}. - * <p> - * Note that Ignite uses SMTP to send emails in critical - * situations such as license expiration or fatal system errors. - * It is <b>highly</b> recommended to configure SMTP in production - * environment. - * <p> - * Note that {@link #getSmtpHost()} is the only mandatory SMTP - * configuration property. - * - * @return Whether or not to use STARTTLS fot SMTP. - * @see #DFLT_SMTP_STARTTLS - * @see org.apache.ignite.IgniteSystemProperties#IGNITE_SMTP_STARTTLS - */ - public boolean isSmtpStartTls() { - return smtpStartTls; - } - - /** - * Gets SMTP host name or {@code null} if SMTP is not configured. - * <p> - * Note that Ignite uses SMTP to send emails in critical - * situations such as license expiration or fatal system errors. - * It is <b>highly</b> recommended to configure SMTP in production - * environment. - * <p> - * Note that {@code getSmtpHost()} is the only mandatory SMTP - * configuration property. - * - * @return SMTP host name or {@code null} if SMTP is not configured. - * @see org.apache.ignite.IgniteSystemProperties#IGNITE_SMTP_HOST - */ - public String getSmtpHost() { - return smtpHost; - } - - /** - * Gets SMTP port. Default value is {@link #DFLT_SMTP_PORT}. - * <p> - * Note that Ignite uses SMTP to send emails in critical - * situations such as license expiration or fatal system errors. - * It is <b>highly</b> recommended to configure SMTP in production - * environment. - * <p> - * Note that {@link #getSmtpHost()} is the only mandatory SMTP - * configuration property. - * - * @return SMTP port. - * @see #DFLT_SMTP_PORT - * @see org.apache.ignite.IgniteSystemProperties#IGNITE_SMTP_PORT - */ - public int getSmtpPort() { - return smtpPort; - } - - /** - * Gets SMTP username or {@code null} if not used. - * <p> - * Note that Ignite uses SMTP to send emails in critical - * situations such as license expiration or fatal system errors. - * It is <b>highly</b> recommended to configure SMTP in production - * environment. - * <p> - * Note that {@link #getSmtpHost()} is the only mandatory SMTP - * configuration property. - * - * @return SMTP username or {@code null}. - * @see org.apache.ignite.IgniteSystemProperties#IGNITE_SMTP_USERNAME - */ - public String getSmtpUsername() { - return smtpUsername; - } - - /** - * SMTP password or {@code null} if not used. - * <p> - * Note that Ignite uses SMTP to send emails in critical - * situations such as license expiration or fatal system errors. - * It is <b>highly</b> recommended to configure SMTP in production - * environment. - * <p> - * Note that {@link #getSmtpHost()} is the only mandatory SMTP - * configuration property. - * - * @return SMTP password or {@code null}. - * @see org.apache.ignite.IgniteSystemProperties#IGNITE_SMTP_PWD - */ - public String getSmtpPassword() { - return smtpPwd; - } - - /** - * Gets optional set of admin emails where email notifications will be set. - * <p> - * Note that Ignite uses SMTP to send emails in critical - * situations such as license expiration or fatal system errors. - * It is <b>highly</b> recommended to configure SMTP in production - * environment. - * - * @return Optional set of admin emails where email notifications will be set. - * If {@code null} - emails will be sent only to the email in the license - * if one provided. - * @see org.apache.ignite.IgniteSystemProperties#IGNITE_ADMIN_EMAILS - */ - public String[] getAdminEmails() { - return adminEmails; - } - - /** - * Gets optional FROM email address for email notifications. By default - * {@link #DFLT_SMTP_FROM_EMAIL} will be used. - * - * @return Optional FROM email address for email notifications. If {@code null} - * - {@link #DFLT_SMTP_FROM_EMAIL} will be used by default. - * @see #DFLT_SMTP_FROM_EMAIL - * @see org.apache.ignite.IgniteSystemProperties#IGNITE_SMTP_FROM - */ - public String getSmtpFromEmail() { - return smtpFromEmail; - } - - /** - * Sets whether or not to enable lifecycle email notifications. - * - * @param lifeCycleEmailNtf {@code True} to enable lifecycle email notifications. - * @see org.apache.ignite.IgniteSystemProperties#IGNITE_LIFECYCLE_EMAIL_NOTIFY - */ - public void setLifeCycleEmailNotification(boolean lifeCycleEmailNtf) { - this.lifeCycleEmailNtf = lifeCycleEmailNtf; - } - - /** - * Sets whether or not SMTP uses SSL. - * <p> - * Note that Ignite uses SMTP to send emails in critical - * situations such as license expiration or fatal system errors. - * It is <b>highly</b> recommended to configure SMTP in production - * environment. - * <p> - * Note that {@link #setSmtpHost(String)} is the only mandatory SMTP - * configuration property. - * - * @param smtpSsl Whether or not SMTP uses SSL. - * @see org.apache.ignite.IgniteSystemProperties#IGNITE_SMTP_SSL - */ - public void setSmtpSsl(boolean smtpSsl) { - this.smtpSsl = smtpSsl; - } - - /** - * Sets whether or not SMTP uses STARTTLS. - * <p> - * Note that Ignite uses SMTP to send emails in critical - * situations such as license expiration or fatal system errors. - * It is <b>highly</b> recommended to configure SMTP in production - * environment. - * <p> - * Note that {@link #setSmtpHost(String)} is the only mandatory SMTP - * configuration property. - * - * @param smtpStartTls Whether or not SMTP uses STARTTLS. - * @see org.apache.ignite.IgniteSystemProperties#IGNITE_SMTP_STARTTLS - */ - public void setSmtpStartTls(boolean smtpStartTls) { - this.smtpStartTls = smtpStartTls; - } - - /** - * Sets SMTP host. - * <p> - * Note that Ignite uses SMTP to send emails in critical - * situations such as license expiration or fatal system errors. - * It is <b>highly</b> recommended to configure SMTP in production - * environment. - * <p> - * Note that {@code #setSmtpHost(String)} is the only mandatory SMTP - * configuration property. - * - * @param smtpHost SMTP host to set or {@code null} to disable sending emails. - * @see org.apache.ignite.IgniteSystemProperties#IGNITE_SMTP_HOST - */ - public void setSmtpHost(String smtpHost) { - this.smtpHost = smtpHost; - } - - /** - * Sets SMTP port. Default value is {@link #DFLT_SMTP_PORT}. - * <p> - * Note that Ignite uses SMTP to send emails in critical - * situations such as license expiration or fatal system errors. - * It is <b>highly</b> recommended to configure SMTP in production - * environment. - * <p> - * Note that {@link #setSmtpHost(String)} is the only mandatory SMTP - * configuration property. - * - * @param smtpPort SMTP port to set. - * @see #DFLT_SMTP_PORT - * @see org.apache.ignite.IgniteSystemProperties#IGNITE_SMTP_PORT - */ - public void setSmtpPort(int smtpPort) { - this.smtpPort = smtpPort; - } - - /** - * Sets SMTP username or {@code null} if not used. - * <p> - * Note that Ignite uses SMTP to send emails in critical - * situations such as license expiration or fatal system errors. - * It is <b>highly</b> recommended to configure SMTP in production - * environment. - * <p> - * Note that {@link #setSmtpHost(String)} is the only mandatory SMTP - * configuration property. - * - * @param smtpUsername SMTP username or {@code null}. - * @see org.apache.ignite.IgniteSystemProperties#IGNITE_SMTP_USERNAME - */ - public void setSmtpUsername(String smtpUsername) { - this.smtpUsername = smtpUsername; - } - - /** - * Sets SMTP password or {@code null} if not used. - * <p> - * Note that Ignite uses SMTP to send emails in critical - * situations such as license expiration or fatal system errors. - * It is <b>highly</b> recommended to configure SMTP in production - * environment. - * <p> - * Note that {@link #setSmtpHost(String)} is the only mandatory SMTP - * configuration property. - * - * @param smtpPwd SMTP password or {@code null}. - * @see org.apache.ignite.IgniteSystemProperties#IGNITE_SMTP_PWD - */ - public void setSmtpPassword(String smtpPwd) { - this.smtpPwd = smtpPwd; - } - - /** - * Sets optional set of admin emails where email notifications will be set. - * <p> - * Note that Ignite uses SMTP to send emails in critical - * situations such as license expiration or fatal system errors. - * It is <b>highly</b> recommended to configure SMTP in production - * environment. - * - * @param adminEmails Optional set of admin emails where email notifications will be set. - * If {@code null} - emails will be sent only to the email in the license - * if one provided. - * @see org.apache.ignite.IgniteSystemProperties#IGNITE_ADMIN_EMAILS - */ - public void setAdminEmails(String[] adminEmails) { - this.adminEmails = adminEmails; - } - - /** - * Sets optional FROM email address for email notifications. By default - * {@link #DFLT_SMTP_FROM_EMAIL} will be used. - * - * @param smtpFromEmail Optional FROM email address for email notifications. If {@code null} - * - {@link #DFLT_SMTP_FROM_EMAIL} will be used by default. - * @see #DFLT_SMTP_FROM_EMAIL - * @see org.apache.ignite.IgniteSystemProperties#IGNITE_SMTP_FROM - */ - public void setSmtpFromEmail(String smtpFromEmail) { - this.smtpFromEmail = smtpFromEmail; - } - - /** * Gets optional grid name. Returns {@code null} if non-default grid name was not * provided. * http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/da1fa4e6/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContext.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContext.java b/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContext.java index a4c5853..56f145a 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContext.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContext.java @@ -36,7 +36,6 @@ import org.apache.ignite.internal.processors.closure.*; import org.apache.ignite.internal.processors.continuous.*; import org.apache.ignite.internal.processors.dataload.*; import org.apache.ignite.internal.processors.datastructures.*; -import org.apache.ignite.internal.processors.email.*; import org.apache.ignite.internal.processors.igfs.*; import org.apache.ignite.internal.processors.hadoop.*; import org.apache.ignite.internal.processors.job.*; @@ -222,13 +221,6 @@ public interface GridKernalContext extends Iterable<GridComponent> { public GridPortProcessor ports(); /** - * Gets email processor. - * - * @return Email processor. - */ - public IgniteEmailProcessorAdapter email(); - - /** * Gets schedule processor. * * @return Schedule processor. http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/da1fa4e6/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContextImpl.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContextImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContextImpl.java index b3b66d6..32dc14e 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContextImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContextImpl.java @@ -39,7 +39,6 @@ import org.apache.ignite.internal.processors.closure.*; import org.apache.ignite.internal.processors.continuous.*; import org.apache.ignite.internal.processors.dataload.*; import org.apache.ignite.internal.processors.datastructures.*; -import org.apache.ignite.internal.processors.email.*; import org.apache.ignite.internal.processors.igfs.*; import org.apache.ignite.internal.processors.hadoop.*; import org.apache.ignite.internal.processors.job.*; @@ -198,10 +197,6 @@ public class GridKernalContextImpl implements GridKernalContext, Externalizable /** */ @GridToStringInclude - private IgniteEmailProcessorAdapter emailProc; - - /** */ - @GridToStringInclude private IgniteScheduleProcessorAdapter scheduleProc; /** */ @@ -435,8 +430,6 @@ public class GridKernalContextImpl implements GridKernalContext, Externalizable sesProc = (GridTaskSessionProcessor)comp; else if (comp instanceof GridPortProcessor) portProc = (GridPortProcessor)comp; - else if (comp instanceof IgniteEmailProcessorAdapter) - emailProc = (IgniteEmailProcessorAdapter)comp; else if (comp instanceof GridClosureProcessor) closProc = (GridClosureProcessor)comp; else if (comp instanceof GridServiceProcessor) @@ -575,11 +568,6 @@ public class GridKernalContextImpl implements GridKernalContext, Externalizable } /** {@inheritDoc} */ - @Override public IgniteEmailProcessorAdapter email() { - return emailProc; - } - - /** {@inheritDoc} */ @Override public GridOffHeapProcessor offheap() { return offheapProc; } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/da1fa4e6/modules/core/src/main/java/org/apache/ignite/internal/IgniteComponentType.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/IgniteComponentType.java b/modules/core/src/main/java/org/apache/ignite/internal/IgniteComponentType.java index f7a3a9e..d0e487a 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/IgniteComponentType.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/IgniteComponentType.java @@ -68,13 +68,6 @@ public enum IgniteComponentType { "ignite-ssh" ), - /** Email sending. */ - EMAIL( - "org.apache.ignite.internal.processors.email.IgniteNoopEmailProcessor", - "org.apache.ignite.internal.processors.email.IgniteEmailProcessor", - "ignite-email" - ), - /** Integration of cache transactions with JTA. */ JTA( "org.apache.ignite.internal.processors.cache.jta.CacheNoopJtaManager", http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/da1fa4e6/modules/core/src/main/java/org/apache/ignite/internal/IgniteEx.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/IgniteEx.java b/modules/core/src/main/java/org/apache/ignite/internal/IgniteEx.java index ae5f765..19d2ff8 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/IgniteEx.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/IgniteEx.java @@ -110,18 +110,6 @@ public interface IgniteEx extends Ignite, ClusterGroupEx, IgniteCluster { public boolean isRestartEnabled(); /** - * Whether or not SMTP is configured. - * - * @return {@code True} if SMTP is configured - {@code false} otherwise. - */ - public boolean isSmtpEnabled(); - - /** - * Schedule sending of given email to all configured admin emails. - */ - IgniteInternalFuture<Boolean> sendAdminEmailAsync(String subj, String body, boolean html); - - /** * Get IGFS instance returning null if it doesn't exist. * * @param name IGFS name. http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/da1fa4e6/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java b/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java index 662b19e..597322d 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java @@ -41,7 +41,6 @@ import org.apache.ignite.internal.processors.closure.*; import org.apache.ignite.internal.processors.continuous.*; import org.apache.ignite.internal.processors.dataload.*; import org.apache.ignite.internal.processors.datastructures.*; -import org.apache.ignite.internal.processors.email.*; import org.apache.ignite.internal.processors.hadoop.*; import org.apache.ignite.internal.processors.job.*; import org.apache.ignite.internal.processors.jobmetrics.*; @@ -424,8 +423,7 @@ public class IgniteKernal extends ClusterGroupAdapter implements IgniteEx, Ignit assert cfg != null; return F.transform(cfg.getUserAttributes().entrySet(), new C1<Map.Entry<String,?>,String>() { - @Override - public String apply(Map.Entry<String,?> e) { + @Override public String apply(Map.Entry<String,?> e) { return e.getKey() + ", " + e.getValue().toString(); } }); @@ -508,7 +506,7 @@ public class IgniteKernal extends ClusterGroupAdapter implements IgniteEx, Ignit * @param cfg Grid configuration to use. * @param utilityCachePool Utility cache pool. * @param execSvc - *@param sysExecSvc + * @param sysExecSvc * @param p2pExecSvc * @param mgmtExecSvc * @param igfsExecSvc @@ -579,7 +577,6 @@ public class IgniteKernal extends ClusterGroupAdapter implements IgniteEx, Ignit ackClassPaths(rtBean); ackSystemProperties(); ackEnvironmentVariables(); - ackSmtpConfiguration(); ackCacheConfiguration(); ackP2pConfiguration(); @@ -671,7 +668,6 @@ public class IgniteKernal extends ClusterGroupAdapter implements IgniteEx, Ignit startProcessor(ctx, new GridClosureProcessor(ctx), attrs); // Start some other processors (order & place is important). - startProcessor(ctx, (GridProcessor)EMAIL.create(ctx, cfg.getSmtpHost() == null), attrs); startProcessor(ctx, new GridPortProcessor(ctx), attrs); startProcessor(ctx, new GridJobMetricsProcessor(ctx), attrs); @@ -963,46 +959,6 @@ public class IgniteKernal extends ClusterGroupAdapter implements IgniteEx, Ignit if (!isDaemon()) ctx.discovery().ackTopology(); - - // Send node start email notification, if enabled. - if (isSmtpEnabled() && isAdminEmailsSet() && cfg.isLifeCycleEmailNotification()) { - SB sb = new SB(); - - for (GridPortRecord rec : ctx.ports().records()) - sb.a(rec.protocol()).a(":").a(rec.port()).a(" "); - - String nid = localNode().id().toString().toUpperCase(); - String nid8 = U.id8(localNode().id()).toUpperCase(); - - String body = - "Ignite node started with the following parameters:" + NL + - NL + - "----" + NL + - "Ignite ver. " + VER_STR + '#' + BUILD_TSTAMP_STR + "-sha1:" + REV_HASH_STR + NL + - "Grid name: " + gridName + NL + - "Node ID: " + nid + NL + - "Node order: " + localNode().order() + NL + - "Node addresses: " + U.addressesAsString(localNode()) + NL + - "Local ports: " + sb + NL + - "OS name: " + U.osString() + NL + - "OS user: " + System.getProperty("user.name") + NL + - "CPU(s): " + localNode().metrics().getTotalCpus() + NL + - "Heap: " + U.heapSize(localNode(), 2) + "GB" + NL + - "JVM name: " + U.jvmName() + NL + - "JVM vendor: " + U.jvmVendor() + NL + - "JVM version: " + U.jvmVersion() + NL + - "VM name: " + rtBean.getName() + NL + - "----" + NL + - NL + - "NOTE:" + NL + - "This message is sent automatically to all configured admin emails." + NL + - "To change this behavior use 'lifeCycleEmailNotify' grid configuration property." + - NL + NL + - "| " + SITE + NL + - "| supp...@gridgain.com" + NL; - - sendAdminEmailAsync("Ignite node started: " + nid8, body, false); - } } /** @@ -1731,7 +1687,6 @@ public class IgniteKernal extends ClusterGroupAdapter implements IgniteEx, Ignit notifyLifecycleBeansEx(LifecycleEventType.BEFORE_GRID_STOP); } - IgniteEmailProcessorAdapter email = ctx.email(); GridCacheProcessor cacheProcessor = ctx.cache(); List<GridComponent> comps = ctx.components(); @@ -1894,54 +1849,6 @@ public class IgniteKernal extends ClusterGroupAdapter implements IgniteEx, Ignit NL); } - // Send node start email notification, if enabled. - if (isSmtpEnabled() && isAdminEmailsSet() && cfg.isLifeCycleEmailNotification()) { - String errOk = errOnStop ? "with ERRORS" : "OK"; - - String headline = "Ignite ver. " + VER_STR + '#' + BUILD_TSTAMP_STR + - " stopped " + errOk + ":"; - String subj = "Ignite node stopped " + errOk + ": " + nid8; - - String body = - headline + NL + NL + - "----" + NL + - "Ignite ver. " + VER_STR + '#' + BUILD_TSTAMP_STR + "-sha1:" + REV_HASH_STR + NL + - "Grid name: " + gridName + NL + - "Node ID: " + nid + NL + - "Node uptime: " + X.timeSpan2HMSM(U.currentTimeMillis() - startTime) + NL + - "----" + NL + - NL + - "NOTE:" + NL + - "This message is sent automatically to all configured admin emails." + NL + - "To change this behavior use 'lifeCycleEmailNotify' grid configuration property."; - - if (errOnStop) - body += - NL + NL + - "NOTE:" + NL + - "See node's log for detailed error message." + NL + - "Some errors during stop can prevent grid from" + NL + - "maintaining correct topology since this node may " + NL + - "have not exited grid properly."; - - body += - NL + NL + - "| " + SITE + NL + - "| supp...@gridgain.com" + NL; - - if (email != null) { - try { - email.sendNow(subj, - body, - false, - Arrays.asList(cfg.getAdminEmails())); - } - catch (IgniteCheckedException e) { - U.error(log, "Failed to send lifecycle email notification.", e); - } - } - } - U.onGridStop(); } else { @@ -2069,28 +1976,6 @@ public class IgniteKernal extends ClusterGroupAdapter implements IgniteEx, Ignit } /** - * Whether or not SMTP is configured. Note that SMTP is considered configured if - * SMTP host is provided in configuration (see {@link IgniteConfiguration#getSmtpHost()}. - * <p> - * If SMTP is not configured all emails notifications will be disabled. - * - * @return {@code True} if SMTP is configured - {@code false} otherwise. - * @see IgniteConfiguration#getSmtpFromEmail() - * @see IgniteConfiguration#getSmtpHost() - * @see IgniteConfiguration#getSmtpPassword() - * @see IgniteConfiguration#getSmtpPort() - * @see IgniteConfiguration#getSmtpUsername() - * @see IgniteConfiguration#isSmtpSsl() - * @see IgniteConfiguration#isSmtpStartTls() - * @see #sendAdminEmailAsync(String, String, boolean) - */ - @Override public boolean isSmtpEnabled() { - assert cfg != null; - - return cfg.getSmtpHost() != null; - } - - /** * Prints all configuration properties in info mode and SPIs in debug mode. */ private void ackSpis() { @@ -2167,53 +2052,6 @@ public class IgniteKernal extends ClusterGroupAdapter implements IgniteEx, Ignit } /** - * Prints out SMTP configuration. - */ - private void ackSmtpConfiguration() { - assert log != null; - - String host = cfg.getSmtpHost(); - - boolean ssl = cfg.isSmtpSsl(); - int port = cfg.getSmtpPort(); - - if (host == null) { - U.warn(log, "SMTP is not configured - email notifications are off."); - - return; - } - - String from = cfg.getSmtpFromEmail(); - - if (log.isQuiet()) - U.quiet(false, "SMTP enabled [host=" + host + ":" + port + ", ssl=" + (ssl ? "on" : "off") + ", from=" + - from + ']'); - - if (log.isInfoEnabled()) { - String[] adminEmails = cfg.getAdminEmails(); - - log.info("SMTP enabled [host=" + host + ", port=" + port + ", ssl=" + ssl + ", from=" + from + ']'); - log.info("Admin emails: " + (!isAdminEmailsSet() ? "N/A" : Arrays.toString(adminEmails))); - } - - if (!isAdminEmailsSet()) - U.warn(log, "Admin emails are not set - automatic email notifications are off."); - } - - /** - * Tests whether or not admin emails are set. - * - * @return {@code True} if admin emails are set and not empty. - */ - private boolean isAdminEmailsSet() { - assert cfg != null; - - String[] a = cfg.getAdminEmails(); - - return a != null && a.length > 0; - } - - /** * Prints out VM arguments and IGNITE_HOME in info mode. * * @param rtBean Java runtime bean. @@ -2344,44 +2182,6 @@ public class IgniteKernal extends ClusterGroupAdapter implements IgniteEx, Ignit } } - /** - * Schedule sending of given email to all configured admin emails. If no admin emails are configured this - * method is no-op. If SMTP is not configured this method is no-op. - * <p> - * Note that this method returns immediately with the future and all emails will be sent asynchronously - * in a different thread. If email queue is full or sending has failed - the email will be lost. - * Email queue can fill up if rate of scheduling emails is greater than the rate of SMTP sending. - * <p> - * Implementation is not performing any throttling and it is responsibility of the caller to properly - * throttle the emails, if necessary. - * - * @param subj Subject of the email. - * @param body Body of the email. - * @param html If {@code true} the email body will have MIME {@code html} subtype. - * @return Email's future. You can use this future to check on the status of the email. If future - * completes ok and its result value is {@code true} email was successfully sent. In all - * other cases - sending process has failed. - * @see #isSmtpEnabled() - * @see IgniteConfiguration#getAdminEmails() - */ - @Override public IgniteInternalFuture<Boolean> sendAdminEmailAsync(String subj, String body, boolean html) { - A.notNull(subj, "subj"); - A.notNull(body, "body"); - - if (isSmtpEnabled() && isAdminEmailsSet()) { - guard(); - - try { - return ctx.email().schedule(subj, body, html, Arrays.asList(cfg.getAdminEmails())); - } - finally { - unguard(); - } - } - else - return new GridFinishedFuture<>(ctx, false); - } - /** {@inheritDoc} */ @Override public boolean pingNodeByAddress(String host) { guard(); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/da1fa4e6/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java b/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java index 86ac31c..2f365fb 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java @@ -1375,7 +1375,6 @@ public class IgnitionEx { myCfg.setIncludeEventTypes(cfg.getIncludeEventTypes()); myCfg.setDaemon(cfg.isDaemon()); myCfg.setIncludeProperties(cfg.getIncludeProperties()); - myCfg.setLifeCycleEmailNotification(cfg.isLifeCycleEmailNotification()); myCfg.setMetricsLogFrequency(cfg.getMetricsLogFrequency()); myCfg.setNetworkSendRetryDelay(cfg.getNetworkSendRetryDelay()); myCfg.setNetworkSendRetryCount(cfg.getNetworkSendRetryCount()); @@ -1392,11 +1391,6 @@ public class IgnitionEx { if (clientCfg != null) clientCfg = new ConnectorConfiguration(clientCfg); - String ntfStr = IgniteSystemProperties.getString(IGNITE_LIFECYCLE_EMAIL_NOTIFY); - - if (ntfStr != null) - myCfg.setLifeCycleEmailNotification(Boolean.parseBoolean(ntfStr)); - // Local host. String locHost = IgniteSystemProperties.getString(IGNITE_LOCAL_HOST); @@ -1651,15 +1645,6 @@ public class IgnitionEx { myCfg.setAddressResolver(cfg.getAddressResolver()); - // Set SMTP configuration. - myCfg.setSmtpFromEmail(cfg.getSmtpFromEmail()); - myCfg.setSmtpHost(cfg.getSmtpHost()); - myCfg.setSmtpPort(cfg.getSmtpPort()); - myCfg.setSmtpSsl(cfg.isSmtpSsl()); - myCfg.setSmtpUsername(cfg.getSmtpUsername()); - myCfg.setSmtpPassword(cfg.getSmtpPassword()); - myCfg.setAdminEmails(cfg.getAdminEmails()); - // REST configuration. myCfg.setConnectorConfiguration(clientCfg); @@ -1682,40 +1667,6 @@ public class IgnitionEx { myCfg.setWaitForSegmentOnStart(cfg.isWaitForSegmentOnStart()); myCfg.setAllSegmentationResolversPassRequired(cfg.isAllSegmentationResolversPassRequired()); - // Override SMTP configuration from system properties - // and environment variables, if specified. - String fromEmail = IgniteSystemProperties.getString(IGNITE_SMTP_FROM); - - if (fromEmail != null) - myCfg.setSmtpFromEmail(fromEmail); - - String smtpHost = IgniteSystemProperties.getString(IGNITE_SMTP_HOST); - - if (smtpHost != null) - myCfg.setSmtpHost(smtpHost); - - String smtpUsername = IgniteSystemProperties.getString(IGNITE_SMTP_USERNAME); - - if (smtpUsername != null) - myCfg.setSmtpUsername(smtpUsername); - - String smtpPwd = IgniteSystemProperties.getString(IGNITE_SMTP_PWD); - - if (smtpPwd != null) - myCfg.setSmtpPassword(smtpPwd); - - int smtpPort = IgniteSystemProperties.getInteger(IGNITE_SMTP_PORT, -1); - - if(smtpPort != -1) - myCfg.setSmtpPort(smtpPort); - - myCfg.setSmtpSsl(IgniteSystemProperties.getBoolean(IGNITE_SMTP_SSL)); - - String adminEmails = IgniteSystemProperties.getString(IGNITE_ADMIN_EMAILS); - - if (adminEmails != null) - myCfg.setAdminEmails(adminEmails.split(",")); - CacheConfiguration[] cacheCfgs = cfg.getCacheConfiguration(); final boolean hasHadoop = IgniteComponentType.HADOOP.inClassPath(); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/da1fa4e6/modules/core/src/main/java/org/apache/ignite/internal/processors/email/GridEmailHolder.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/email/GridEmailHolder.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/email/GridEmailHolder.java deleted file mode 100644 index 7e43674..0000000 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/email/GridEmailHolder.java +++ /dev/null @@ -1,111 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.ignite.internal.processors.email; - -import org.apache.ignite.internal.util.future.*; -import org.apache.ignite.internal.util.typedef.internal.*; - -import java.util.*; - -/** - * Email holder for email processor. - */ -class GridEmailHolder { - /** */ - private String subj; - - /** */ - private String body; - - /** */ - private boolean html; - - /** */ - private Collection<String> addrs; - - /** */ - private GridFutureAdapter<Boolean> fut; - - /** - * - * @param fut Associated future. - * @param subj Email subject. - * @param body Email body. - * @param html Whether email body is html. - * @param addrs Addresses to send email to. - */ - GridEmailHolder(GridFutureAdapter<Boolean> fut, String subj, String body, boolean html, Collection<String> addrs) { - assert fut != null; - assert subj != null; - assert body != null; - assert addrs != null; - assert !addrs.isEmpty(); - - this.fut = fut; - this.subj = subj; - this.body = body; - this.html = html; - this.addrs = addrs; - } - - - /** - * - * @return Holder's future. - */ - GridFutureAdapter<Boolean> future() { - return fut; - } - - /** - * - * @return Email subject. - */ - String subject() { - return subj; - } - - /** - * - * @return Email body. - */ - String body() { - return body; - } - - /** - * - * @return Html flag. - */ - boolean html() { - return html; - } - - /** - * - * @return Destinations. - */ - Collection<String> addresses() { - return addrs; - } - - /** {@inheritDoc} */ - @Override public String toString() { - return S.toString(GridEmailHolder.class, this); - } -} http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/da1fa4e6/modules/core/src/main/java/org/apache/ignite/internal/processors/email/IgniteEmailProcessorAdapter.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/email/IgniteEmailProcessorAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/email/IgniteEmailProcessorAdapter.java deleted file mode 100644 index 5d8c179..0000000 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/email/IgniteEmailProcessorAdapter.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.ignite.internal.processors.email; - -import org.apache.ignite.*; -import org.apache.ignite.internal.*; -import org.apache.ignite.internal.processors.*; - -import java.util.*; - -/** - * Email processor. - */ -public abstract class IgniteEmailProcessorAdapter extends GridProcessorAdapter { - /** - * @param ctx Kernal context. - */ - protected IgniteEmailProcessorAdapter(GridKernalContext ctx) { - super(ctx); - } - - /** - * Sends given email to all admin emails, if any, in the current thread blocking until it's either - * successfully sent or failed. If SMTP is disabled or admin emails are not provided - this method is no-op. - * - * @param subj Email subject. - * @param body Email body. - * @param html HTML format flag. - * @throws IgniteCheckedException Thrown in case of any failure on sending. - */ - public abstract void sendNow(String subj, String body, boolean html) throws IgniteCheckedException; - - /** - * Sends given email in the current thread blocking until it's either successfully sent or failed. - * If SMTP is disabled - this method is no-op. - * - * @param subj Email subject. - * @param body Email body. - * @param html HTML format flag. - * @param addrs Addresses. - * @throws IgniteCheckedException Thrown in case of any failure on sending. - */ - public abstract void sendNow(String subj, String body, boolean html, Collection<String> addrs) throws IgniteCheckedException; - - /** - * Schedules sending of given email to all admin emails, if any. If SMTP is disabled or admin emails - * are not provided - this method is no-op. Emails will be send asynchronously from a different thread. - * If email sending fails - the error log will be created for each email. - * - * @param subj Email subject. - * @param body Email body. - * @param html HTML format flag. - * @return Future for scheduled email. - */ - public abstract IgniteInternalFuture<Boolean> schedule(String subj, String body, boolean html); - - /** - * Schedules sending of given email. If SMTP is disabled - this method is no-op. Emails will be send - * asynchronously from a different thread. If email sending fails - the error log will be created - * for each email. - * - * @param subj Email subject. - * @param body Email body. - * @param html HTML format flag. - * @param addrs Addresses. - * @return Future for scheduled email. - */ - public abstract IgniteInternalFuture<Boolean> schedule(String subj, String body, boolean html, Collection<String> addrs); -} http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/da1fa4e6/modules/core/src/main/java/org/apache/ignite/internal/processors/email/IgniteNoopEmailProcessor.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/email/IgniteNoopEmailProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/email/IgniteNoopEmailProcessor.java deleted file mode 100644 index 4812f57..0000000 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/email/IgniteNoopEmailProcessor.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.ignite.internal.processors.email; - -import org.apache.ignite.internal.*; -import org.apache.ignite.internal.util.future.*; - -import java.util.*; - -/** - * No-op implementation of {@code GridEmailProcessorAdapter}. - */ -public class IgniteNoopEmailProcessor extends IgniteEmailProcessorAdapter { - /** - * @param ctx Kernal context. - */ - public IgniteNoopEmailProcessor(GridKernalContext ctx) { - super(ctx); - } - - /** {@inheritDoc} */ - @Override public void sendNow(String subj, String body, boolean html) { - // No-op. - } - - /** {@inheritDoc} */ - @Override public void sendNow(String subj, String body, boolean html, Collection<String> addrs) { - // No-op. - } - - /** {@inheritDoc} */ - @Override public IgniteInternalFuture<Boolean> schedule(String subj, String body, boolean html) { - return new GridFinishedFuture<>(ctx, true); - } - - /** {@inheritDoc} */ - @Override public IgniteInternalFuture<Boolean> schedule(String subj, String body, boolean html, Collection<String> addrs) { - return new GridFinishedFuture<>(ctx, true); - } -} http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/da1fa4e6/modules/core/src/main/java/org/apache/ignite/internal/processors/email/package.html ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/email/package.html b/modules/core/src/main/java/org/apache/ignite/internal/processors/email/package.html deleted file mode 100644 index 6247e89..0000000 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/email/package.html +++ /dev/null @@ -1,24 +0,0 @@ -<!-- - Licensed to the Apache Software Foundation (ASF) under one or more - contributor license agreements. See the NOTICE file distributed with - this work for additional information regarding copyright ownership. - The ASF licenses this file to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> - -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> -<html> -<body> - <!-- Package description. --> - TODO. -</body> -</html> http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/da1fa4e6/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorEmailConfiguration.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorEmailConfiguration.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorEmailConfiguration.java deleted file mode 100644 index e664535..0000000 --- a/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorEmailConfiguration.java +++ /dev/null @@ -1,177 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.ignite.internal.visor.node; - -import org.apache.ignite.configuration.*; -import org.apache.ignite.internal.util.typedef.internal.*; - -import java.io.*; - -import static java.lang.System.*; -import static org.apache.ignite.IgniteSystemProperties.*; -import static org.apache.ignite.internal.visor.util.VisorTaskUtils.*; - -/** - * Data transfer object for node email configuration properties. - */ -public class VisorEmailConfiguration implements Serializable { - /** */ - private static final long serialVersionUID = 0L; - - /** SMTP host. */ - private String smtpHost; - - /** SMTP port. */ - private int smtpPort; - - /** SMTP user name. */ - private String smtpUsername; - - /** SMTP admin emails. */ - private String adminEmails; - - /** From email address. */ - private String smtpFromEmail; - - /** Whether or not to use SSL for SMTP. */ - private boolean smtpSsl; - - /** Whether or not to use TLS for SMTP. */ - private boolean smtpStartTls; - - /** - * @param c Grid configuration. - * @return Data transfer object for node email configuration properties. - */ - public static VisorEmailConfiguration from(IgniteConfiguration c) { - VisorEmailConfiguration cfg = new VisorEmailConfiguration(); - - cfg.smtpHost(getProperty(IGNITE_SMTP_HOST, c.getSmtpHost())); - cfg.smtpPort(intValue(IGNITE_SMTP_PORT, c.getSmtpPort())); - cfg.smtpUsername(getProperty(IGNITE_SMTP_USERNAME, c.getSmtpUsername())); - cfg.adminEmails(getProperty(IGNITE_ADMIN_EMAILS, compactArray(c.getAdminEmails()))); - cfg.smtpFromEmail(getProperty(IGNITE_SMTP_FROM, c.getSmtpFromEmail())); - cfg.smtpSsl(boolValue(IGNITE_SMTP_SSL, c.isSmtpSsl())); - cfg.smtpStartTls(boolValue(IGNITE_SMTP_STARTTLS, c.isSmtpStartTls())); - - return cfg; - } - - /** - * @return SMTP host. - */ - public String smtpHost() { - return smtpHost; - } - - /** - * @param smtpHost New SMTP host. - */ - public void smtpHost(String smtpHost) { - this.smtpHost = smtpHost; - } - - /** - * @return SMTP port. - */ - public int smtpPort() { - return smtpPort; - } - - /** - * @param smtpPort New SMTP port. - */ - public void smtpPort(int smtpPort) { - this.smtpPort = smtpPort; - } - - /** - * @return SMTP user name. - */ - public String smtpUsername() { - return smtpUsername; - } - - /** - * @param smtpUsername New SMTP user name. - */ - public void smtpUsername(String smtpUsername) { - this.smtpUsername = smtpUsername; - } - - /** - * @return SMTP admin emails. - */ - public String adminEmails() { - return adminEmails; - } - - /** - * @param adminEmails New SMTP admin emails. - */ - public void adminEmails(String adminEmails) { - this.adminEmails = adminEmails; - } - - /** - * @return From email address. - */ - public String smtpFromEmail() { - return smtpFromEmail; - } - - /** - * @param smtpFromEmail New from email address. - */ - public void smtpFromEmail(String smtpFromEmail) { - this.smtpFromEmail = smtpFromEmail; - } - - /** - * @return Whether or not to use SSL for SMTP. - */ - public boolean smtpSsl() { - return smtpSsl; - } - - /** - * @param smtpSsl New whether or not to use SSL for SMTP. - */ - public void smtpSsl(boolean smtpSsl) { - this.smtpSsl = smtpSsl; - } - - /** - * @return Whether or not to use TLS for SMTP. - */ - public boolean smtpStartTls() { - return smtpStartTls; - } - - /** - * @param smtpStartTls New whether or not to use TLS for SMTP. - */ - public void smtpStartTls(boolean smtpStartTls) { - this.smtpStartTls = smtpStartTls; - } - - /** {@inheritDoc} */ - @Override public String toString() { - return S.toString(VisorEmailConfiguration.class, this); - } -} http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/da1fa4e6/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorGridConfiguration.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorGridConfiguration.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorGridConfiguration.java index 09fa368..3e037e9 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorGridConfiguration.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorGridConfiguration.java @@ -48,9 +48,6 @@ public class VisorGridConfiguration implements Serializable { /** P2P. */ private VisorPeerToPeerConfiguration p2p; - /** Email. */ - private VisorEmailConfiguration email; - /** Lifecycle. */ private VisorLifecycleConfiguration lifecycle; @@ -106,7 +103,6 @@ public class VisorGridConfiguration implements Serializable { metrics(VisorMetricsConfiguration.from(c)); spis(VisorSpisConfiguration.from(c)); p2p(VisorPeerToPeerConfiguration.from(c)); - email(VisorEmailConfiguration.from(c)); lifecycle(VisorLifecycleConfiguration.from(c)); executeService(VisorExecutorServiceConfiguration.from(c)); segmentation(VisorSegmentationConfiguration.from(c)); @@ -182,20 +178,6 @@ public class VisorGridConfiguration implements Serializable { } /** - * @return Email. - */ - public VisorEmailConfiguration email() { - return email; - } - - /** - * @param email New email. - */ - public void email(VisorEmailConfiguration email) { - this.email = email; - } - - /** * @return Lifecycle. */ public VisorLifecycleConfiguration lifecycle() { http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/da1fa4e6/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorLifecycleConfiguration.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorLifecycleConfiguration.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorLifecycleConfiguration.java index 029ca8d..723fbee 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorLifecycleConfiguration.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorLifecycleConfiguration.java @@ -23,7 +23,6 @@ import org.jetbrains.annotations.*; import java.io.*; -import static org.apache.ignite.IgniteSystemProperties.*; import static org.apache.ignite.internal.visor.util.VisorTaskUtils.*; /** @@ -36,9 +35,6 @@ public class VisorLifecycleConfiguration implements Serializable { /** Lifecycle beans. */ private String beans; - /** Whether or not email notifications should be used on node start and stop. */ - private boolean ntf; - /** * @param c Grid configuration. * @return Data transfer object for node lifecycle configuration properties. @@ -47,7 +43,6 @@ public class VisorLifecycleConfiguration implements Serializable { VisorLifecycleConfiguration cfg = new VisorLifecycleConfiguration(); cfg.beans(compactArray(c.getLifecycleBeans())); - cfg.emailNotification(boolValue(IGNITE_LIFECYCLE_EMAIL_NOTIFY, c.isLifeCycleEmailNotification())); return cfg; } @@ -66,20 +61,6 @@ public class VisorLifecycleConfiguration implements Serializable { this.beans = beans; } - /** - * @return Whether or not email notifications should be used on node start and stop. - */ - public boolean emailNotification() { - return ntf; - } - - /** - * @param ntf New whether or not email notifications should be used on node start and stop. - */ - public void emailNotification(boolean ntf) { - this.ntf = ntf; - } - /** {@inheritDoc} */ @Override public String toString() { return S.toString(VisorLifecycleConfiguration.class, this); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/da1fa4e6/modules/email/licenses/apache-2.0.txt ---------------------------------------------------------------------- diff --git a/modules/email/licenses/apache-2.0.txt b/modules/email/licenses/apache-2.0.txt deleted file mode 100644 index d645695..0000000 --- a/modules/email/licenses/apache-2.0.txt +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/da1fa4e6/modules/email/pom.xml ---------------------------------------------------------------------- diff --git a/modules/email/pom.xml b/modules/email/pom.xml deleted file mode 100644 index 50d03b9..0000000 --- a/modules/email/pom.xml +++ /dev/null @@ -1,51 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<!-- - Licensed to the Apache Software Foundation (ASF) under one or more - contributor license agreements. See the NOTICE file distributed with - this work for additional information regarding copyright ownership. - The ASF licenses this file to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> - -<!-- - POM file. ---> -<project - xmlns="http://maven.apache.org/POM/4.0.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <parent> - <groupId>org.apache.ignite</groupId> - <artifactId>ignite</artifactId> - <version>${ignite.version}</version> - <relativePath>../../</relativePath> - </parent> - - <artifactId>ignite-email</artifactId> - - <dependencies> - <dependency> - <groupId>org.apache.ignite</groupId> - <artifactId>ignite-core</artifactId> - <version>${ignite.version}</version> - </dependency> - - <dependency> - <groupId>com.sun.mail</groupId> - <artifactId>javax.mail</artifactId> - <version>1.5.2</version> - </dependency> - </dependencies> -</project> http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/da1fa4e6/modules/email/readme.txt ---------------------------------------------------------------------- diff --git a/modules/email/readme.txt b/modules/email/readme.txt deleted file mode 100644 index 2e434de..0000000 --- a/modules/email/readme.txt +++ /dev/null @@ -1,34 +0,0 @@ -Apache Ignite Email Module --------------------------- - -Apache Ignite email module enables Apache Ignite to send emails in critical situations such as license -expiration or fatal system errors (this should be also configured via 'GridConfiguration.setSmtpXXX(..)' -configuration properties). - -To enable email module when starting a standalone node, move 'optional/ignite-email' folder to -'libs' folder before running 'ignite.{sh|bat}' script. The content of the module folder will -be added to classpath in this case. - -Importing email Module In Maven Project ---------------------------------------- - -If you are using Maven to manage dependencies of your project, you can add email module -dependency like this (replace '${ignite.version}' with actual Ignite version you are -interested in): - -<project xmlns="http://maven.apache.org/POM/4.0.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 - http://maven.apache.org/xsd/maven-4.0.0.xsd"> - ... - <dependencies> - ... - <dependency> - <groupId>org.apache.ignite</groupId> - <artifactId>ignite-email</artifactId> - <version>${ignite.version}</version> - </dependency> - ... - </dependencies> - ... -</project>