1 package org.apache.commons.jelly.tags.quartz; 2 3 /* 4 * Copyright 2002,2004 The Apache Software Foundation. 5 * 6 * Licensed under the Apache License, Version 2.0 (the "License"); 7 * you may not use this file except in compliance with the License. 8 * You may obtain a copy of the License at 9 * 10 * http://www.apache.org/licenses/LICENSE-2.0 11 * 12 * Unless required by applicable law or agreed to in writing, software 13 * distributed under the License is distributed on an "AS IS" BASIS, 14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 * See the License for the specific language governing permissions and 16 * limitations under the License. 17 */ 18 19 import org.apache.commons.jelly.XMLOutput; 20 21 import org.apache.commons.jelly.JellyTagException; 22 23 import org.quartz.Scheduler; 24 import org.quartz.SchedulerException; 25 26 /*** Block and wait for the Quartz scheduler to shutdown. 27 * 28 * @author <a href="mailto:bob@eng.werken.com">bob mcwhirter</a> 29 */ 30 public class WaitForSchedulerTag extends QuartzTagSupport 31 { 32 // ------------------------------------------------------------ 33 // Constructors 34 // ------------------------------------------------------------ 35 36 /*** Construct. 37 */ 38 public WaitForSchedulerTag() 39 { 40 // intentionally left blank. 41 } 42 43 // ------------------------------------------------------------ 44 // Instance methods 45 // ------------------------------------------------------------ 46 47 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 48 // org.apache.commons.jelly.Tag 49 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 50 51 /*** Perform this tag. 52 * 53 * @param output Output sink. 54 * 55 * @throws Exception If an error occurs. 56 */ 57 public void doTag(XMLOutput output) throws JellyTagException 58 { 59 try { 60 Scheduler sched = getScheduler(); 61 62 while ( ! sched.isShutdown() ) 63 { 64 try 65 { 66 Thread.sleep( 500 ); 67 } 68 catch (InterruptedException e) 69 { 70 break; 71 } 72 } 73 } 74 catch (SchedulerException e) { 75 throw new JellyTagException(e); 76 } 77 } 78 } 79