Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
Copyright (C) 2014-2015 Philip Helger ( philip[at]helger[dot]com 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 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 com.helger.webbasics.smtp;
A Quartz job, that tries to resend failed mails.

Philip Helger
  private static final Logger s_aLogger = LoggerFactory.getLogger (FailedMailResendJob.class);
  private static String s_sAppID;
  protected static void setApplicationScopeID (@Nonnull @Nonempty final String sApplicationID)
    ValueEnforcer.notEmpty (sApplicationID"ApplicationID");
    if ( != null)
      throw new IllegalStateException ("This job is already scheduled!");
     = sApplicationID;
  protected final String getApplicationScopeID (final JobDataMap aJobDataMap)
    return ;
  protected void onExecute (final JobExecutionContext aContextthrows JobExecutionException
    final List <FailedMailDataaFailedMails = MetaSystemManager.getFailedMailQueue ().removeAll ();
    if (!aFailedMails.isEmpty ())
      .info ("Trying to resend " + aFailedMails.size () + " failed mails!");
      for (final FailedMailData aFailedMailData : aFailedMails)
        ScopedMailAPI.getInstance ().queueMail (aFailedMailData.getSMTPSettings (), aFailedMailData.getEmailData ());
  public static void scheduleMe (@Nonnull @Nonempty final String sApplicationID, @Nonnegative final int nPollingMinutes)
    ValueEnforcer.isGT0 (nPollingMinutes"PollingMinutes");
    setApplicationScopeID (sApplicationID);
    GlobalQuartzScheduler.getInstance ()
                         .scheduleJob (FailedMailResendJob.class.getName (),
                                       TriggerBuilder.newTrigger ()
                                                     .startNow ()
                                                     .withSchedule (SimpleScheduleBuilder.repeatMinutelyForever (nPollingMinutes)),
New to GrepCode? Check out our FAQ X