docs: public void init(Object env, Map<String,Object> properties, Object applet)
      {
          super.init(env, properties, applet);
          if (this.registerUniqueApplication(null, null) != Constants.NORMAL_RETURN)
          {
              this.free();    // Don't start this application (It's already running somewhere)
              return;
          }
          // Okay good. I'm responsible for scheduling and running scheduled tasks.
          final int MAX_TASKS = 1;    // For now, run them sequentially
          this.setTaskScheduler(new PrivateTaskScheduler(this, MAX_TASKS, true));
          
          
          
          MessageManager messageManager = null;
          if (this.getEnvironment() != null)
              if (this.getEnvironment().getMessageApplication(true, properties) != null)
                  messageManager = this.getEnvironment().getMessageApplication(true, properties).getThickMessageManager();
          if (messageManager == null) // Never
              messageManager = RemoteMessageManager.getMessageManager(this);
          
          String strQueueName = this.getProperty(MessageConstants.QUEUE_NAME);
          if (strQueueName == null)
              strQueueName = MessageConstants.TRX_RECEIVE_QUEUE; // Never
          String strQueueType = this.getProperty(MessageConstants.QUEUE_TYPE);
          if (strQueueType == null)
              strQueueType = MessageConstants.INTRANET_QUEUE; // Never
          BaseMessageReceiver receiver = (BaseMessageReceiver)messageManager.getMessageQueue(strQueueName, strQueueType).getMessageReceiver();
          new BaseMessageListener(receiver)    // Listener added to filter.
          {
              @SuppressWarnings("unchecked")
              public int handleMessage(BaseMessage message)
              {   // Whenever I'm pinged, restart the JobScanner which rescans the current job list
                  Map<String,Object> properties = null;
                  if (message instanceof MapMessage)  // Always
                      properties = (Map<String,Object>)message.getData();
                  ProcessRunnerTask task = new ProcessRunnerTask(JobSchedulerApp.this, null, properties);
                  getTaskScheduler().addTask(task);
                  return super.handleMessage(message);
              }
          };
      }