Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * 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.servicemix.quartz;
 
 import java.util.List;
 import java.util.Map;
 
 
 import  org.springframework.scheduling.quartz.JobDetailAwareTrigger;

Org.apache.xbean.XBean:
element="endpoint"
 
 public class QuartzEndpoint extends ConsumerEndpoint {
 
     private Trigger trigger;
     private List<Triggertriggers;
     private Map<StringCalendarcalendars;
     private JobDetail jobDetail;
     private QuartzMarshaler marshaler = new DefaultQuartzMarshaler();
    
    

Returns:
the triggers
 
     public List<TriggergetTriggers() {
         return ;
     }

    

Parameters:
triggers the triggers to set
 
     public void setTriggers(List<Triggertriggers) {
         this. = triggers;
     }

    

Returns:
the trigger
 
     public Trigger getTrigger() {
         return ;
     }

    

Parameters:
trigger the trigger to set
 
     public void setTrigger(Trigger trigger) {
         this. = trigger;
     }

    

Returns:
the calendar
 
     public Map<StringCalendargetCalendars() {
         return ;
     }

    

Parameters:
calendar the calendar to set
 
     public void setCalendars(Map<StringCalendarcalendars) {
         this. = calendars;
     }

    

Returns:
the job
    public JobDetail getJobDetail() {
        return ;
    }

    

Parameters:
job the job to set
    public void setJobDetail(JobDetail job) {
        this. = job;
    }
    public QuartzMarshaler getMarshaler() {
        return ;
    }
    public void setMarshaler(QuartzMarshaler marshaler) {
        this. = marshaler;
    }
    
    @Override
    public String getLocationURI() {
        return null;
    }
    public void process(MessageExchange exchangethrows Exception {
        if (exchange.getStatus() == .) {
            throw new IllegalStateException("Unexpected ACTIVE exchange: " + exchange);
        }
    }
    public void onJobExecute(JobExecutionContext contextthrows JobExecutionException {
        if (.isDebugEnabled()) {
            .debug("Firing Quartz Job with context: " + context);
        }
        try {
            InOnly exchange = getExchangeFactory().createInOnlyExchange();
            NormalizedMessage message = exchange.createMessage();
            getMarshaler().populateNormalizedMessage(messagecontext);
            exchange.setInMessage(message);
            configureExchangeTarget(exchange);
            send(exchange);
        } catch (MessagingException e) {
            throw new JobExecutionException(e);
        }
    }
    
    public void validate() throws DeploymentException {
        super.validate();
        if ( instanceof JobDetailAwareTrigger) {
            if ( != null) {
                throw new DeploymentException("jobDetail can not be set on endpoint and trigger at the same time");
            }
             = ((JobDetailAwareTrigger) ).getJobDetail();
        }
        if ( == null) {
            JobDetailBean j = new JobDetailBean();
            j.setName(EndpointSupport.getKey(this));
             = j;
        }
        if ( == null) {
             = new ArrayList<Trigger>();
        }
        if ( != null &&  != null && .size() > 0) {
            throw new DeploymentException("trigger and triggers can not be set at the same time");
        }
        if ( != null) {
            .add();
        }
        if ( == null) {
             = new HashMap<StringCalendar>();
        }
        for (Trigger t : ) {
            if (t.getCalendarName() != null && .get(t.getCalendarName()) == null) {
                throw new DeploymentException("Trigger references an unknown calendar " + t.getCalendarName());
            }
            t.setJobName(.getName());
            t.setJobGroup(.getGroup());
        }
    }
    
    public void start() throws Exception {
        QuartzComponent component = (QuartzComponentgetServiceUnit().getComponent(); 
        Scheduler scheduler = component.getScheduler();
        .getJobDataMap().put(., EndpointSupport.getKey(this));
        for (Map.Entry<StringCalendare : getCalendars().entrySet()) {
            scheduler.addCalendar(e.getKey(), e.getValue(), truetrue);
        }
        scheduler.addJob(getJobDetail(), true);
        for (Trigger trg : getTriggers()) {
            boolean triggerExists = scheduler.getTrigger(trg.getName(), trg.getGroup()) != null;
            if (!triggerExists) {
                try {
                    scheduler.scheduleJob(trg);
                } catch (ObjectAlreadyExistsException ex) {
                    scheduler.rescheduleJob(trg.getName(), trg.getGroup(), trg);
                }
            } else {
                scheduler.rescheduleJob(trg.getName(), trg.getGroup(), trg);
            }
        }
        super.start();
    }
    
    public void stop() throws Exception {
        super.stop();
        Scheduler scheduler = ((QuartzComponentgetServiceUnit().getComponent()).getScheduler();
        for (Trigger trg : getTriggers()) {
            scheduler.unscheduleJob(trg.getName(), trg.getGroup());
        }
        scheduler.deleteJob(getJobDetail().getName(), getJobDetail().getGroup());
        for (Map.Entry<StringCalendare : getCalendars().entrySet()) {
            scheduler.deleteCalendar(e.getKey());
        }
    }
New to GrepCode? Check out our FAQ X