code: @Nonnull
    public TriggerKey scheduleJob (@Nonnull final String sJobName,
                                   @Nonnull final JDK8TriggerBuilder <? extends ITrigger> aTriggerBuilder,
                                   @Nonnull final Class <? extends IJob> aJobClass,
                                   @Nullable final Map <String, ? extends Object> aJobData)
    {
      ValueEnforcer.notNull (sJobName, "JobName");
      ValueEnforcer.notNull (aTriggerBuilder, "TriggerBuilder");
      ValueEnforcer.notNull (aJobClass, "JobClass");
  
      // what to do
      final IJobDetail aJobDetail = JobBuilder.newJob (aJobClass).withIdentity (sJobName, m_sGroupName).build ();
  
      // add custom parameters
      aJobDetail.getJobDataMap ().putAllIn (aJobData);
  
      try
      {
        // Schedule now
        final ITrigger aTrigger = aTriggerBuilder.build ();
        m_aScheduler.scheduleJob (aJobDetail, aTrigger);
  
        final TriggerKey ret = aTrigger.getKey ();
        LOGGER.info ("Succesfully scheduled job '" +
                        sJobName +
                        "' with TriggerKey " +
                        ret.toString () +
                        " - starting at " +
                        PDTFactory.createLocalDateTime (aTrigger.getStartTime ()));
        return ret;
      }
      catch (final SchedulerException ex)
      {
        throw new RuntimeException (ex);
      }
    }
docs: This method is only for testing purposes.
  
  @param sJobName
  Name of the job. Needs to be unique since no two job details with
  the same name may exist.
  @param aTriggerBuilder
  The trigger builder instance to schedule the job
  @param aJobClass
  Class to execute
  @param aJobData
  Additional parameters. May be <code>null</code>.
  @return The created trigger key for further usage. Never <code>null</code>.