Code/Resource
Windows Develop
Linux-Unix program
Internet-Socket-Network
Web Server
Browser Client
Ftp Server
Ftp Client
Browser Plugins
Proxy Server
Email Server
Email Client
WEB Mail
Firewall-Security
Telnet Server
Telnet Client
ICQ-IM-Chat
Search Engine
Sniffer Package capture
Remote Control
xml-soap-webservice
P2P
WEB(ASP,PHP,...)
TCP/IP Stack
SNMP
Grid Computing
SilverLight
DNS
Cluster Service
Network Security
Communication-Mobile
Game Program
Editor
Multimedia program
Graph program
Compiler program
Compress-Decompress algrithms
Crypt_Decrypt algrithms
Mathimatics-Numerical algorithms
MultiLanguage
Disk/Storage
Java Develop
assembly language
Applications
Other systems
Database system
Embeded-SCM Develop
FlashMX/Flex
source in ebook
Delphi VCL
OS Develop
MiddleWare
MPI
MacOS develop
LabView
ELanguage
Software/Tools
E-Books
Artical/Document
JobDetailBean.java
Upload User: jiancairen
Upload Date: 2007-08-27
Package Size: 26458k
Code Size: 4k
Category:
Java Develop
Development Platform:
Java
- /*
- * Copyright 2002-2004 the original author or authors.
- *
- * 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
- *
- * 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.springframework.scheduling.quartz;
- import java.util.Map;
- import org.quartz.JobDetail;
- import org.quartz.Scheduler;
- import org.springframework.beans.factory.BeanNameAware;
- import org.springframework.beans.factory.InitializingBean;
- import org.springframework.context.ApplicationContext;
- import org.springframework.context.ApplicationContextAware;
- /**
- * Convenience subclass of Quartz' JobDetail class that eases bean-style
- * usage.
- *
- * <p>JobDetail itself is already a JavaBean but lacks sensible defaults.
- * This class uses the Spring bean name as job name, and the Quartz
- * default group ("DEFAULT") as job group if not specified.
- *
- * @author Juergen Hoeller
- * @since 18.02.2004
- * @see #setName
- * @see #setGroup
- * @see org.springframework.beans.factory.BeanNameAware
- * @see org.quartz.Scheduler#DEFAULT_GROUP
- */
- public class JobDetailBean extends JobDetail
- implements BeanNameAware, ApplicationContextAware, InitializingBean {
- private String beanName;
- private ApplicationContext applicationContext;
- private String applicationContextJobDataKey;
- /**
- * Register objects in the JobDataMap via a given Map.
- * <p>These objects will be available to this Job only,
- * in contrast to objects in the SchedulerContext.
- * <p>Note: When using persistent Jobs whose JobDetail will be kept in the
- * database, do not put Spring-managed beans or an ApplicationContext
- * reference into the JobDataMap but rather into the SchedulerContext.
- * @param jobDataAsMap Map with String keys and any objects as values
- * (for example Spring-managed beans)
- * @see SchedulerFactoryBean#setSchedulerContextAsMap
- */
- public void setJobDataAsMap(Map jobDataAsMap) {
- getJobDataMap().putAll(jobDataAsMap);
- }
- public void setBeanName(String beanName) {
- this.beanName = beanName;
- }
- public void setApplicationContext(ApplicationContext applicationContext) {
- this.applicationContext = applicationContext;
- }
- /**
- * Set the key of an ApplicationContext reference to expose in the JobDataMap,
- * for example "applicationContext". Default is none.
- * Only applicable when running in a Spring ApplicationContext.
- * <p>In case of a QuartzJobBean, the reference will be applied to the Job
- * instance as bean property. An "applicationContext" attribute will correspond
- * to a "setApplicationContext" method in that scenario.
- * <p>Note that BeanFactory callback interfaces like ApplicationContextAware
- * are not automatically applied to Quartz Job instances, because Quartz
- * itself is reponsible for the lifecycle of its Jobs.
- * <p><b>Note: When using persistent job stores where JobDetail contents will
- * be kept in the database, do not put an ApplicationContext reference into
- * the JobDataMap but rather into the SchedulerContext.</b>
- * @see SchedulerFactoryBean#setApplicationContextSchedulerContextKey
- * @see org.springframework.context.ApplicationContext
- */
- public void setApplicationContextJobDataKey(String applicationContextJobDataKey) {
- this.applicationContextJobDataKey = applicationContextJobDataKey;
- }
- public void afterPropertiesSet() {
- if (getName() == null) {
- setName(this.beanName);
- }
- if (getGroup() == null) {
- setGroup(Scheduler.DEFAULT_GROUP);
- }
- if (this.applicationContextJobDataKey != null) {
- if (this.applicationContext == null) {
- throw new IllegalStateException(
- "JobDetailBean needs to be set up in an ApplicationContext " +
- "to be able to handle an 'applicationContextJobDataKey'");
- }
- getJobDataMap().put(this.applicationContextJobDataKey, this.applicationContext);
- }
- }
- }