Commits

jhouse  committed 9c89ebd

initial move of 1.x codebase

git-svn-id: http://svn.opensymphony.com/svn/quartz/trunk@2669f7d36a-ea1c-0410-88ea-9fd03e4c9665

  • Participants
  • Parent commits 003fd49

Comments (0)

Files changed (189)

File quartz_1x/build.properties

+
+#############
+#
+# Corresponds w/ the release version currently represented in the source tree
+#
+version.major=1
+version.minor=5
+version.iteration=0-dev
+
+
+#############
+#
+# compile options...
+#
+compile-with-debug=on
+compile-with-deprecation-warnings=off
+
+
+#############
+#
+# library locations...
+#
+
+lib.weblogic.jar=../../../apps/bea/weblogic81/server/lib/weblogic.jar
+
+lib.jboss-common.jar=../../../apps/jboss-3.2.1/lib/jboss-common.jar
+lib.jboss-jmx.jar=../../../apps/jboss-3.2.1/lib/jboss-jmx.jar
+lib.jboss-system.jar=../../../apps/jboss-3.2.1/lib/jboss-system.jar
+lib.jboss.jar=../../../apps/jboss-3.2.1/server/tmplts/default/lib/jboss.jar
+

File quartz_1x/build.xml

+<project name="quartz" default="build">
+
+  <!-- =================================================================== -->
+  <!-- Initialization target                                               -->
+  <!-- =================================================================== -->
+
+  <property file="build.properties"/>
+  
+  <target name="init">
+    <property name="name" value="quartz"/>
+    <property name="version"
+      value="${version.major}.${version.minor}.${version.iteration}"/>
+    <property name="spec-version"
+      value="${version.major}.${version.minor}"/>
+    <property name="distname" value="${name}-${version}"/>
+    <tstamp>
+      <format property="year" pattern="yyyy" locale="en"/>
+    </tstamp>
+
+    <echo message="----------- ${name} ${version} [${year}] ------------"/>
+    <echo message=""/>
+
+    <property name="build.dir" value="build"/>
+    <property name="dist.dir" value="dist"/>
+    <property name="lib.dir" value="lib"/>
+    <property name="src.dir" value="src"/>
+    <property name="web.dir" value="web"/>
+    <property name="ex-src.dir" value="src/java/examples"/>
+    <property name="dest.dir" value="${build.dir}/classes"/>
+    <property name="ex-dest.dir" value="${build.dir}/exclasses"/>
+    <property name="sar.dest.dir" value="${build.dir}/sar"/>
+    <property name="doc.dir" value="docs"/>
+    <property name="javadoc.dir" value="${doc.dir}/javadoc"/>
+    <property name="test-src.dir" value="src/java/test"/>
+    <property name="test-dest.dir" value="${build.dir}/testclasses"/>
+
+
+    <path id="classpath" >
+      <pathelement location="${basedir}/lib/jdbc2_0-stdext.jar" />
+      <pathelement location="${basedir}/lib/jta.jar" />
+      <pathelement location="${basedir}/lib/activation.jar" />
+      <pathelement location="${basedir}/lib/javamail.jar" />
+      <pathelement location="${basedir}/lib/ejb.jar" />
+      <pathelement location="${basedir}/lib/servlet.jar" />
+      
+      <pathelement location="${basedir}/lib/commons-beanutils.jar" />
+      
+      <pathelement location="${basedir}/lib/commons-collections.jar" />
+      <pathelement location="${basedir}/lib/commons-logging.jar" />
+      <pathelement location="${basedir}/lib/commons-dbcp-1.1.jar" />
+      
+      <pathelement location="${basedir}/lib/commons-digester.jar" />
+      <pathelement location="${basedir}/lib/commons-pool-1.1.jar" />
+      <pathelement location="${basedir}/lib/log4j.jar" />
+      <pathelement location="${basedir}/lib/junit.jar" />
+      <pathelement location="${basedir}/lib/classes12.zip" />
+      <pathelement location="${lib.weblogic.jar}" />
+      <pathelement location="${lib.jboss-common.jar}" />
+      <pathelement location="${lib.jboss-jmx.jar}" />
+      <pathelement location="${lib.jboss-system.jar}" />
+      <pathelement location="${lib.jboss.jar}" />
+    </path>
+
+    <path id="compile-ex.classpath">
+      <path refid="classpath"/>
+      <pathelement location="${dest.dir}"/>
+    </path>
+    
+    <path id="test-classpath">
+      <path refid="classpath"/>
+      <pathelement location="${dest.dir}"/>
+      
+      <pathelement location="${test-dest.dir}"/>
+    </path>
+
+    <path id="javadoc-classpath">
+      <path refid="classpath"/>
+      <pathelement location="${basedir}/lib/${output-jar}"/>
+    </path>
+
+    <available property="oracle.present" classname="oracle.sql.BLOB" classpathref="classpath"/>
+    <available property="servlet.present" classname="javax.servlet.http.HttpServlet" classpathref="classpath"/>
+    <available property="dbcp.present" classname="org.apache.commons.dbcp.BasicDataSource" classpathref="classpath"/>
+    <available property="weblogic.present" classname="weblogic.logging.NonCatalogLogger" classpathref="classpath"/>
+    <available property="jboss.present" classname="org.jboss.system.ServiceMBeanSupport" classpathref="classpath"/>
+    <available property="jta.present" classname="javax.transaction.UserTransaction" classpathref="classpath"/>
+    <available property="jmx.present" classname="javax.management.MBeanServer" classpathref="classpath"/>
+    <available property="ejb.present" classname="javax.ejb.EJBHome" classpathref="classpath"/>
+    
+    <available property="beanutils.present" classname="org.apache.commons.beanutils.ConvertUtils" classpathref="classpath"/>
+    
+    <available property="digester.present" classname="org.apache.commons.digester.Digester" classpathref="classpath"/>
+    <condition property="servlet-and-dbcp.present">
+      <and>
+        <isset property="servlet.present" />
+        <isset property="dbcp.present" />
+      </and>
+    </condition>
+    
+    <condition property="beanutils-and-digester.present">
+
+      <and>
+
+        <isset property="beanutils.present" />
+
+        <isset property="digester.present" />
+
+      </and>
+
+    </condition>
+    <pathconvert pathsep=";" property="printable.classpath" refid="classpath"/>
+    <pathconvert pathsep=";" property="printable.test-classpath" refid="classpath"/>
+
+    <property name="output-jar" value="quartz.jar"/>
+	<property name="output-jar-src" value="quartz-src.jar"/>
+	
+    <condition property="print-servlet.present">
+      <isset property="servlet.present" />
+    </condition>
+    <property name="print-servlet.present" value="false"/>
+
+    <condition property="print-jta.present">
+      <isset property="jta.present" />
+    </condition>
+    <property name="print-jta.present" value="false"/>
+
+    <condition property="print-ejb.present">
+      <isset property="ejb.present" />
+    </condition>
+    <property name="print-ejb.present" value="false"/>
+
+    <condition property="print-jmx.present">
+      <isset property="jmx.present" />
+    </condition>
+    <property name="print-jmx.present" value="false"/>
+
+
+    <condition property="print-dbcp.present">
+      <isset property="dbcp.present" />
+    </condition>
+    <property name="print-dbcp.present" value="false"/>
+    
+    <condition property="print-jboss.present">
+      <isset property="jboss.present" />
+    </condition>
+    <property name="print-jboss.present" value="false"/>
+
+    <condition property="print-oracle.present">
+      <isset property="oracle.present" />
+    </condition>
+    <property name="print-oracle.present" value="false"/>
+
+    <condition property="print-weblogic.present">
+      <isset property="weblogic.present" />
+    </condition>
+    <property name="print-weblogic.present" value="false"/>
+    
+    
+    
+    <condition property="print-beanutils.present">
+
+      <isset property="beanutils.present" />
+
+    </condition>
+
+    <property name="print-beanutils.present" value="false"/>
+    
+    
+    
+    <condition property="print-digester.present">
+
+      <isset property="digester.present" />
+
+    </condition>
+
+    <property name="print-digester.present" value="false"/>
+
+    <echo message="Building JAR file: '${output-jar}'"/>
+    <echo message="   - including DBCP options: ${print-dbcp.present}"/>
+    <echo message="   - including Servlet options: ${print-servlet.present}"/>
+    <echo message="   - including JTA options: ${print-jta.present}"/>
+    <echo message="   - including EJB options: ${print-ejb.present}"/>
+    <echo message="   - including JMX options: ${print-jmx.present}"/>
+    <echo message="   - including Oracle options: ${print-oracle.present}"/>
+    <echo message="   - including Weblogic options: ${print-weblogic.present}"/>
+    <echo message="   - including JBoss options: ${print-jboss.present}"/>
+    
+    <echo message="   - including Commons BeanUtils options: ${print-beanutils.present}"/>
+    
+    <echo message="   - including Commons Digester options: ${print-digester.present}"/>
+    
+    
+    <echo message=""/>
+
+  </target>
+
+  <!-- =================================================================== -->
+  <!-- Help on usage                                                       -->
+  <!-- =================================================================== -->
+  <target name="usage" depends="init" description="DEPRECATED: use ant -projecthelp instead">
+    <echo message="Use ant -projecthelp for usage information."/>
+  </target>
+
+  <!-- =================================================================== -->
+  <!-- Clean up.                                                           -->
+  <!-- =================================================================== -->
+
+  <target name="clean" depends="init" description="clean up output files">
+    <delete dir="${build.dir}"/>
+    <delete dir="${dist.dir}"/>
+    <delete dir="${ex-dist.dir}"/>
+  	<delete file="${output-jar-src}"/>
+    <delete>
+      <fileset dir="${lib.dir}" includes="${name}*.jar"/>
+    </delete>
+  </target>
+
+
+  <!-- =================================================================== -->
+  <!-- Prepares the build directory                                        -->
+  <!-- =================================================================== -->
+
+  <target name="build-prepare" depends="init">
+    <mkdir dir="${build.dir}"/>
+    <mkdir dir="${dest.dir}"/>
+    <mkdir dir="${ex-dest.dir}"/>
+  </target>
+
+
+  <!-- =================================================================== -->
+  <!-- Stages the source directory                                       -->
+  <!-- =================================================================== -->
+
+  <target name="stage">
+    <delete quiet="true" dir="${build.dir}/tmpsrc"/>
+    <mkdir dir="${build.dir}/tmpsrc"/>
+    <copy todir="${build.dir}/tmpsrc">
+      <fileset dir="${src.dir}/java/main"
+        includes="org/quartz/core/QuartzScheduler.java"/>
+      <filterset>
+        <filter token="version.major" value="${version.major}"/>
+        <filter token="version.minor" value="${version.minor}"/>
+        <filter token="version.iteration" value="${version.iteration}"/>
+      </filterset>
+    </copy>
+    <copy todir="${build.dir}/tmpsrc">
+      <fileset dir="${src.dir}/java/main" includes="**/*.java">
+        <exclude name="org/quartz/core/QuartzScheduler.java"/>
+	    <exclude name="org/quartz/ee/servlet/QuartzInitializerServlet.java" unless="servlet-and-dbcp.present"/>
+	    <exclude name="org/quartz/ee/jta/**" unless="jta.present"/>
+	    <exclude name="org/quartz/ee/ejb/**" unless="ejb.present"/>
+	    <exclude name="org/quartz/ee/jmx/**" unless="jmx.present"/>
+	    <exclude name="org/quartz/jobs/ee/jmx/**" unless="jmx.present"/>
+	    <exclude name="org/quartz/jobs/ee/ejb/**" unless="ejb.present"/>
+	    <exclude name="org/quartz/utils/PoolingConnectionProvider.java" unless="dbcp.present"/>
+	    <exclude name="org/quartz/impl/StdSchedulerFactory.java" unless="dbcp.present"/>
+	    <exclude name="org/quartz/impl/WeblogicLogger.java" unless="weblogic.present"/>
+	    <exclude name="org/quartz/utils/weblogic/WeblogicConnectionProvider.java" unless="weblogic.present"/>
+	    <exclude name="org/quartz/core/QuartzScheduler.java" />
+	    <exclude name="**/oracle/*" unless="oracle.present"/>
+	    <exclude name="**/jboss/*" unless="jboss.present"/>
+	    
+	    <exclude name="org/quartz/xml/**" unless="beanutils-and-digester.present"/>
+	    
+	    <exclude name="org/quartz/plugins/xml/**" unless="beanutils-and-digester.present"/>
+	  </fileset>
+      <fileset dir="${src.dir}/java/plugins" includes="**/*.java" />
+    </copy>
+  </target>
+
+  <!-- ====================================================================== -->
+  <!-- Compiles the source directory omitting files depending on jars present -->
+  <!-- ====================================================================== -->
+
+  <target name="compile" depends="build-prepare">
+    <antcall target="stage"/>
+    <javac srcdir="${build.dir}/tmpsrc" 
+      destdir="${dest.dir}"
+      debug="${compile-with-debug}">
+      <classpath refid="classpath"/>
+    </javac>
+    <rmic classname="org.quartz.core.QuartzScheduler" classpath="${dest.dir}"
+      base="${dest.dir}"/>
+  </target>
+
+  <!-- =================================================================== -->
+  <!-- Compiles the examples                                               -->
+  <!-- =================================================================== -->
+
+  <target name="compile-ex">
+    <echo message="Compile classpath = ${printable.classpath}"/>
+    <javac srcdir="${ex-src.dir}"
+      destdir="${ex-dest.dir}"
+      debug="${compile-with-debug}"
+      includes="**" >
+      <classpath refid="compile-ex.classpath" />
+    </javac>
+  </target>
+
+  <!-- =================================================================== -->
+  <!-- Compiles the JUnit tests                                            -->
+  <!-- =================================================================== -->
+
+  <target name="compile-tests">
+    <echo message="Compile classpath = ${printable.classpath}"/>
+    
+    <copy todir="${test-dest.dir}">
+    
+      <fileset dir="${test-src.dir}">
+      
+        <include name="**/*.xml"/>
+        
+      </fileset>
+      
+    </copy>
+    <mkdir dir="${test-dest.dir}"/>
+    <javac srcdir="${test-src.dir}"
+      destdir="${test-dest.dir}"
+      includes="**"
+      debug="${debug}"
+      optimize="${optimize}"
+      classpathref="test-classpath" />
+  </target>
+
+  <!-- =================================================================== -->
+  <!-- Create jar file                                                     -->
+  <!-- =================================================================== -->
+
+  <target name="jar" depends="init,compile">
+    <copy todir="${dest.dir}">
+      <fileset dir="${src.dir}/java/main">
+      
+        <include name="**/*.properties"/>
+        
+        <include name="**/*.dtd"/>
+        
+        <include name="**/*.xsd"/>
+        
+        <include name="**/*.xml"/>
+        
+      </fileset>
+    </copy>
+    <delete file="${dest.dir}/org/quartz/ee/jmx/jboss/doc-files/quartz-service.xml"/>
+  	
+
+    <jar  jarfile="${lib.dir}/${output-jar}" basedir="${dest.dir}" includes="org/quartz/**">
+	  <manifest>
+	    <attribute name="Built-By" value="${user.name}"/>
+	    <attribute name="Main-Class" value="org.quartz.helpers.VersionPrinter"/>
+        <attribute name="Sealed" value="false"/>
+	    <section name="quartz">
+	      <attribute name="Implementation-Title" value="Quartz"/>
+	      <attribute name="Implementation-Version" value="${version} ${TODAY}"/> 
+	      <attribute name="Implementation-Vendor" value="The Quartz project developers."/>
+	      <attribute name="Implementation-Vendor-URL" value="http://www.quartzscheduler.org"/>
+	      <attribute name="Specification-Title" value="Quartz"/>
+	      <attribute name="Specification-Version" value="${spec-version}"/> 
+	      <attribute name="Specification-Vendor" value="The Quartz project developers."/>
+	      <attribute name="Specification-Vendor-URL" value="http://www.quartzscheduler.org"/>
+	      <attribute name="Sealed" value="false"/>
+	    </section>
+	  </manifest>
+	</jar>
+  </target>
+
+
+  <!-- =================================================================== -->
+  <!-- Create jar file of source code                                      -->
+  <!-- =================================================================== -->
+
+  <target name="jar-src" depends="init,stage">
+
+    <copy todir="${build.dir}/tmpsrc">
+      <fileset dir="${ex-src.dir}" includes="**/*"/>
+    </copy>
+
+	<jar  jarfile="${output-jar-src}" basedir="${build.dir}/tmpsrc" includes="**">
+	  <manifest>
+	    <attribute name="Built-By" value="${user.name}"/>
+	    <attribute name="Main-Class" value="org.quartz.helpers.VersionPrinter"/>
+	        <attribute name="Sealed" value="false"/>
+	    <section name="quartz">
+	      <attribute name="Implementation-Title" value="Quartz"/>
+	      <attribute name="Implementation-Version" value="${version} ${TODAY}"/> 
+	      <attribute name="Implementation-Vendor" value="The Quartz project developers."/>
+	      <attribute name="Implementation-Vendor-URL" value="http://www.quartzscheduler.org"/>
+	      <attribute name="Specification-Title" value="Quartz"/>
+	      <attribute name="Specification-Version" value="${spec-version}"/> 
+	      <attribute name="Specification-Vendor" value="The Quartz project developers."/>
+	      <attribute name="Specification-Vendor-URL" value="http://www.quartzscheduler.org"/>
+	      <attribute name="Sealed" value="false"/>
+	    </section>
+	  </manifest>
+	</jar>
+
+  </target>
+  
+  <!-- =================================================================== -->
+  <!-- Create jar file of examples                                         -->
+  <!-- =================================================================== -->
+
+  <target name="jar-ex" depends="init,compile-ex">
+    <jar  jarfile="${lib.dir}/examples.jar"
+      basedir="${ex-dest.dir}"
+      includes="**/*" />
+  </target>
+
+
+  <!-- =================================================================== -->
+  <!-- Create a JBoss 3 SAR file                                                     -->
+  <!-- =================================================================== -->
+
+  <target name="sar" depends="init, jar"
+    description="build a JBoss 3 SAR file, including Quartz as a JMX service.">
+    <copy todir="${sar.dest.dir}">
+      <fileset dir="${lib.dir}" includes="${output-jar}"/>
+    </copy>
+    <mkdir dir="${sar.dest.dir}/META-INF"/>
+    <copy tofile="${sar.dest.dir}/META-INF/jboss-service.xml"
+    
+          file="${src.dir}/java/main/org/quartz/ee/jmx/jboss/doc-files/quartz-service.xml"/>
+    <jar  jarfile="${lib.dir}/quartz-${version}.sar"
+      basedir="${sar.dest.dir}" />
+  </target>
+
+
+  <!-- =================================================================== -->
+  <!-- Build                                                               -->
+  <!-- =================================================================== -->
+
+  <target name="build" depends="compile,jar"
+    description="compile the quartz classes and create the quartz jar"/>
+
+  <target name="build-ex" depends="build,compile-ex,jar-ex"
+    description="compile and package everything needed to run the examples"/>
+
+  <target name="build-tests" depends="compile,jar,compile-tests"
+    description="compile and package the quartz and test classes"/>
+
+  <!-- ================================================================== -->
+  <!-- All                                                                -->
+  <!-- ================================================================== -->
+
+  <target name="all" depends="clean,build,build-ex,jar-src,javadoc,dtds"
+    description="build everything and create documentation"/>
+
+
+  <!-- ================================================================== -->
+  <!-- Distribute a release                                               -->
+  <!-- ================================================================== -->
+
+  <target name="dist" depends="all"
+    description="build the release bundles in tar.gz and zip formats">
+    <mkdir dir="${dist.dir}"/>
+    <patternset id="dist.files">
+      <include name="*.txt"/>
+      <exclude name="notes.txt"/>
+      <include name="build.xml"/>
+      <include name="build.properties"/>
+      <include name="${doc.dir}/*"/>
+      <include name="${doc.dir}/config/**/*"/>
+      <include name="${doc.dir}/dbTables/**/*"/>
+      <include name="${doc.dir}/dtd/**/*"/>
+      <include name="${doc.dir}/faq/**/*"/>
+      <include name="${doc.dir}/javadoc/**/*"/>
+      <include name="${doc.dir}/tutorial/**/*"/>
+      <include name="examples/**/*"/>
+      <include name="src/**/*"/>
+      <include name="${lib.dir}/**/examples.jar"/>
+      <include name="${lib.dir}/**/quartz*"/>
+      <include name="${lib.dir}/**/VERSIONS"/>
+      <include name="${lib.dir}/**/activation.jar"/>
+      <include name="${lib.dir}/**/activation.license.txt"/>
+      <include name="${lib.dir}/**/apache.license.txt"/>
+      
+      <include name="${lib.dir}/**/commons-beanutils.jar*"/>
+      <include name="${lib.dir}/**/commons-collections.jar*"/>
+      <include name="${lib.dir}/**/commons-dbcp-1.1.jar"/>
+      
+      <include name="${lib.dir}/**/commons-digester.jar*"/>
+      <include name="${lib.dir}/**/commons-logging.jar"/>
+      <include name="${lib.dir}/**/commons-pool-1.1.jar"/>
+      <include name="${lib.dir}/**/javamail.jar"/>
+      <include name="${lib.dir}/**/javamail.license.txt"/>
+      <include name="${lib.dir}/**/ejb.jar"/>
+      <include name="${lib.dir}/**/ejb.license.txt"/>
+      <include name="${lib.dir}/**/jdbc2_0-stdext.jar"/>
+      <include name="${lib.dir}/**/jdbc2_0-stdext.license.txt"/>
+      <include name="${lib.dir}/**/jta.jar"/>
+      <include name="${lib.dir}/**/jta.license.txt"/>
+      <include name="${lib.dir}/**/servlet.jar"/>
+      <include name="${lib.dir}/**/servlet.license.txt"/>
+<!--      <include name="${output-jar-src}"/> -->
+<!--      <include name="${ex-src.dir}/**/*"/>  -->
+<!--      <include name="${test-src.dir}/**/*"/> -->
+<!--      <include name="${web.dir}/**/*"/> -->
+    </patternset>
+    <tar destfile="${dist.dir}/${distname}.tar.gz"
+      compression="gzip">
+      <tarfileset dir="." prefix="${distname}">
+        <patternset refid="dist.files"/>
+      </tarfileset>
+    </tar>
+    <zip destfile="${dist.dir}/${distname}.zip">
+      <zipfileset dir="." prefix="${distname}">
+        <patternset refid="dist.files"/>
+      </zipfileset>
+    </zip>
+  </target>
+
+
+  <!-- =================================================================== -->
+  <!-- JavaDoc                                                             -->
+  <!-- =================================================================== -->
+
+    <target name="javadoc" depends="init">
+        <delete dir="${javadoc.dir}"/>
+        <mkdir dir="${javadoc.dir}"/>
+        <javadoc sourcepath="${build.dir}/tmpsrc"
+            destdir="${javadoc.dir}"
+            packagenames="org.quartz.*"
+            classpathref="javadoc-classpath"
+            author="true"
+            version="true"
+            stylesheetfile="docs/jd_stylesheet.css"
+            windowTitle="Quartz Enterprise Job Scheduler API - ${version}"
+            doctitle="Quartz Enterprise Job Scheduler API (${version})"
+            footer="&lt;a href=&quot;http://www.opensymphony.com/quartz&quot; target=&quot;_top&quot;&gt;Quartz Project Page&lt;/a&gt;"
+            use="true"
+            verbose="false">
+        </javadoc>
+        <!-- <copy overwrite="yes" file="${docs}/main.css" tofile="${docs}/api/stylesheet.css"/> -->
+    </target>
+	
+  <target name="dtds" depends="init" description="place DTD documentation under doc dir">
+    <delete dir="${doc.dir}/dtd"/>
+    <mkdir dir="${doc.dir}/dtd"/>
+    <copy todir="${doc.dir}/dtd">
+      <fileset dir="${src.dir}/java/main/org/quartz/xml"
+        includes="*.dtd"/>
+    </copy>
+  </target>
+
+<!--      additionalparam="-breakiterator" -->
+
+  <!-- =================================================================== -->
+  <!-- Run JUnit tests                                                     -->
+  <!-- =================================================================== -->
+
+  <target name="run-tests" depends="build-tests"
+    description="build and run the unit tests">
+    <junit printsummary="yes" haltonfailure="yes">
+      <classpath refid="test-classpath" />
+
+      <formatter type="plain"/>
+
+
+      <sysproperty key="quartz.system.id.dir" value="${test-dest.dir}/"/>
+      <sysproperty key="jaxp.debug" value="true"/>
+      
+      <batchtest fork="no">
+        <fileset dir="${test-src.dir}">
+          <include name="**/*Test*.java"/>
+          
+          <exclude name="**/UtilTest.java"/>
+        </fileset>
+      </batchtest>
+    </junit>
+  </target>
+
+
+  <target name="generate-tables" depends="init" >
+	<sql
+	    driver="oracle.jdbc.driver.OracleDriver"
+	    url="jdbc:oracle:thin:@polarbear:1521:dev"
+	    userid="quartz"
+	    password="quartz"
+	    src="docs/dbTables/tables_oracle.sql"
+        classpathref="classpath"
+	/>
+  </target>
+  	
+</project>

File quartz_1x/docs/.cvsignore

+javadoc

File quartz_1x/docs/config/example_quartz.properties

+# Properties file for use by StdSchedulerFactory
+# to create a Quartz Scheduler Instance.
+#
+# Instances of the specified JobStore, ThreadPool and Logger classes will
+# be created by name, and then any additional properties specified for them
+# in this file will be set on the instance by calling an equivalent 'set'
+# method. (see below for more examples)
+#
+
+# ===========================================================================
+# Configure Main Scheduler Properties  ======================================
+# ===========================================================================
+#
+# The general pattern for defining the scheduler's main properties is:
+#
+#     org.quartz.scheduler.instanceName = SCHED_NAME
+#     org.quartz.scheduler.instanceId = INSTANCE_ID
+#     org.quartz.scheduler.threadName = THREAD_NAME
+#     org.quartz.scheduler.rmi.export = false
+#     org.quartz.scheduler.rmi.proxy = false
+#     org.quartz.scheduler.rmi.registryHost = localhost
+#     org.quartz.scheduler.rmi.registryPort = 1099
+#     org.quartz.scheduler.rmi.createRegistry = never
+#     org.quartz.scheduler.userTransactionURL = USER_TX_LOCATION
+#     org.quartz.scheduler.wrapJobExecutionInUserTransaction = JOBS_IN_USER_TX
+#     org.quartz.scheduler.idleWaitTime = IDLE_WAIT_TIME
+#     org.quartz.scheduler.dbFailureRetryInterval = DB_FAILURE_RETRY_INTERVAL
+#     org.quartz.scheduler.classLoadHelper.class = CLASS_LOAD_HELPER_CLASS
+#     org.quartz.context.key.SOME_KEY = SOME_VALUE
+#
+#
+# "SCHED_NAME" can be any string, and has no meaning to the scheduler itself -
+# but rather serves as a mechanism for client code to distinguish schedulers
+# when multiple instances are used within the same program.  If you are using
+# the clustering features, you must use the same name for every instance in 
+# the cluster that is 'logically' the same Scheduler.
+#
+# "INSTANCE_ID" can be any string, and but must be unique for all schedulers
+# working as if they are the same 'logical' Scheduler within a cluster.
+# you may use the value "AUTO" as the instanceId if you wish the Id to be 
+# generated for you.
+#
+# "THREAD_NAME" can be any String that is a valid name for a java thread. If
+# this property is not specified, the thread will receive the scheduler's 
+# name ("org.quartz.scheduler.instanceName").
+#
+# "USER_TX_LOCATION" should be set to the JNDI URL at which Quartz can locate
+# the Application Server's UserTransaction manager.  The default value (if not
+# specified) is "java:comp/UserTransaction" - which works for almost all 
+# Application Servers.  Websphere users may need to set this property to 
+# "jta/usertransaction".  This is only used if Quartz is configured to use
+# JobStoreCMT, and "JOBS_IN_USER_TX" is set to true.
+# 
+# "JOBS_IN_USER_TX" should be set to "true" if you want Quartz to start a 
+# UserTransaction before calling execute on your job.  The Tx will commit after
+# the job's execute method completes, and the JobDataMap is updated (if it is
+# a StatefulJob).  The default value is "false".
+#
+# "IDLE_WAIT_TIME" is the amount of time in milliseconds that the scheduler 
+# will wait before re-queries for available triggers when the scheduler is otherwise
+# idle.  Normally you should not have to 'tune' this parameter, unless you're using
+# XA transactions, and are having problems with delayed firings of triggers that
+# should fire immediately.
+#
+# "DB_FAILURE_RETRY_INTERVAL" is the amount of time in milliseconds that the
+# scheduler will wait between re-tries when it has detected a loss of 
+# connectivity to the database (obviously not meaningful with RamJobStore)
+#
+# "CLASS_LOAD_HELPER_CLASS" defaults to the most robust approach, which is to 
+# use the "org.quartz.simpl.CascadingClassLoadHelper" class - which in turn
+# uses every other ClassLoadHelper class until one works.  You should probably
+# not find the need to specify any other class for this property, though strange
+# things seem to happen within application servers.  All of the current 
+# ClassLoadHelper implementation can be found in the "org.quartz.simpl" package.
+#
+# "SOME_KEY" and "SOME_VALUE" represent a name-value pair that will be placed
+# into the "scheduler context" as strings. (see Scheduler.getContext()).  
+# So for example, the setting "org.quartz.context.key.MyKey = MyValue" would 
+# perform the equivalent of scheduler.getContext().put("MyKey", "MyValue").
+#
+#
+# RMI notes:
+#
+# If you want the Quartz Scheduler exported via RMI as a server then set
+# the 'rmi.export' flag to true.  You must also then specify a  host and
+# port for the rmiregistry process - which is typically 'localhost' port 1099.
+#
+# Set the 'rmi.createRegistry' flag according to how you want Quartz to cause 
+# the creation of an RMI Registry.  Use "false" or "never" if you don't want
+# Quartz to create a registry.  Use "true" or "as_needed" if you want Quartz
+# to first attempt to use an existing registry, and then fall back to creating 
+# one.  Use "always" if you want Quartz to attempt creating a Registry, and
+# then fall back to using an existing one.
+#   If a registry is created, it will be bound to port number in the given 
+# the 'rmi.registryPort' property, and 'rmi.registryHost' should be "localhost".
+#
+# If you want to connect (use) a remotely served scheduler, then set the
+# 'rmi.proxy' flag to true.  You must also then specify a  host and port
+# for the rmiregistry process - which is typically 'localhost' port 1099.
+#
+# You cannot specify a 'true' value for both 'export' and 'proxy' - if you
+# do, the 'export' option will be ignored.  A value of 'false' for both
+# 'export' and 'proxy' properties is of course valid.
+#
+org.quartz.scheduler.instanceName = Sched1
+org.quartz.scheduler.instanceId = 1
+org.quartz.scheduler.rmi.export = false
+org.quartz.scheduler.rmi.proxy = false
+
+
+# ===========================================================================
+# Configure ThreadPool  =====================================================
+# ===========================================================================
+#
+# The general pattern for defining a thread pool is the following:
+#
+#     org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
+#     org.quartz.threadPool.threadCount = THREAD_COUNT
+#     org.quartz.threadPool.threadPriority = THREAD_PRIO
+#
+#       optional parameters for SimpleThreadPool are:
+#
+#         org.quartz.threadPool.makeThreadsDaemons = DAEMON_THREADS
+#         org.quartz.threadPool.threadsInheritGroupOfInitializingThread = INHERIT_GRP
+#         org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread = INHERIT_LDR
+#
+#  or
+#
+#     org.quartz.threadPool.class = com.mycompany.goo.FooThreadPool
+#     org.quartz.threadPool.somePropOfFooThreadPool = someValue
+#
+# "THREAD_COUNT" can be any positive integer, although you should realize that
+# only numbers between 1 and 100 are very practical.  This is the number of
+# threads that are available for concurrent execution of jobs.  If you only
+# have a few jobs that fire a few times a day, then 1 thread is plenty! If you
+# have tens of thousands of jobs, with many firing every minute, then you
+# probably want a thread count more like 50 or 100 (this highly depends on the
+# nature of the work that your jobs perform, and your systems resources!)
+#
+# "THREAD_PRIO" can be any int between Thread.MIN_PRIORITY (1) and
+# Thread.MAX_PRIORITY (10).  The default is Thread.NORM_PRIORITY (5).
+#
+# "DAEMON_THREADS" can be set to "true" to have the threads in the pool created
+# as daemon threads.  Default is "false".
+#
+# "INHERIT_GRP" can be "true" or "false", and defaults to true.
+#
+# "INHERIT_LDR" can be "true" or "false", and defaults to false.
+#
+org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
+org.quartz.threadPool.threadCount = 3
+org.quartz.threadPool.threadPriority = 5
+
+# ===========================================================================
+# Configure JobStore  =======================================================
+# ===========================================================================
+#
+# The general pattern for defining a JobStore is one of the following:
+#
+#     org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore
+#     org.quartz.jobStore.misfireThreshold = MISFIRE_THRESHOLD
+#
+#  or
+#
+#     org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.<JobStoreClass>
+#       Where JobStoreClass is one of:
+#         - JobStoreTX is for standalone-Quartz implementations
+#         - JobStoreCMT is for appserver-based container-managed
+#           transaction Quartz implementations
+#
+#     org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.<DriverDelegateClass>
+#       Where DriverDelegateClass is one of:
+#         - StdJDBCDelegate (for many JDBC-compliant drivers)
+#         - MSSQLDelegate (for Microsoft SQL Server drivers)
+#         - PostgreSQLDelegate (for PostgreSQL drivers)
+#         - WebLogicDelegate (for WebLogic drivers)
+#         - oracle.OracleDelegate (for Oracle drivers)
+#
+#     org.quartz.jobStore.useProperties = USE_PROPERTIES
+#     org.quartz.jobStore.dataSource = DS_NAME
+#     org.quartz.jobStore.tablePrefix = TABLE_PREFIX
+#     org.quartz.jobStore.isClustered = IS_CLUSTERED
+#     org.quartz.jobStore.selectWithLockSQL = LOCKING_SELECT_STATEMENT
+#     org.quartz.jobStore.dontSetAutoCommitFalse = DONT_TURN_OFF_AUTO_COMMIT
+#     org.quartz.jobStore.maxMisfiresToHandleAtATime = MAX_MISFIRE_HANDLE
+#     org.quartz.jobStore.txIsolationLevelSerializable = SERIALIZABLE_ISOLATION
+#
+#   If you're using JobStoreCMT then you need this param also:
+#
+#     org.quartz.jobStore.nonManagedTXDataSource = NON_MANAGED_TX_DS_NAME
+#
+#   And, if you're using JobStoreCMT, then these params are optional:
+#
+#     org.quartz.jobStore.dontSetNonManagedTXConnectionAutoCommitFalse = DONT_TURN_OFF_AUTO_COMMIT
+#     org.quartz.jobStore.txIsolationLevelReadCommitted = READ_COMMITTED_ISOLATION
+#
+#
+#  or, for a custom JobStore implementation:
+#
+#     org.quartz.jobStore.class = com.mycompany.goo.FooJobStore
+#     org.quartz.jobStore.somePropOfFooJobStore = someValue
+#
+#
+# The value of "MISFIRE_THRESHOLD" should be the number of milliseconds the
+# scheduler will 'tolerate' a trigger to pass its next-fire-time by, before
+# being considered "misfired".  The default value (if you don't make an entry
+# of this property in your configuration) is 60000 (60 seconds).
+#
+# The value of "MAX_MISFIRE_HANDLE" is the maximum number of misfired triggers 
+# that the misfire handlingthread will try to recover at one time (within one 
+# transaction).  If unspecified, the default is 20.
+#
+# The "USE_PROPERTIES" flag (true or false value - defaults to false) instructs
+# JDBCJobStore that all values in JobDataMaps will be Strings, and therefore
+# can be stored as name-value pairs, rather than storing more complex objects
+# in their serialized form in the BLOB column.  This is much safer in the long 
+# term, as you avoid the class versioning issues that there are with 
+# serializing your non-String classes into a BLOB.
+#
+# JDBCJobStore's "DS_NAME" must be the name of one the datasources
+# defined in this file. JobStoreCMT _requires_ a datasource that contains 
+# container-managed-transaction-capable connections.  Typically this means a 
+# datasource that is managed by an application server, and used by Quartz by
+# specifying the JNDI url of the datasource.
+#
+# JobStoreCMT also _requires_ a (second) datasource that contains connections
+# that will not be part of container-managed transactions. 
+# "NON_MANAGED_TX_DS_NAME" must be the name of one the datasources defined in 
+# this file. - This datasource must contain non-container-transaction managed
+# connections.  
+#
+# JDBCJobStore's "TABLE_PREFIX" property is a string equal to the prefix
+# given to Quartz's tables that were created in your database.
+#
+# JDBCJobStore's "IS_CLUSTERED" property must be set to either "true" or
+# "false".  If unset, the default is "false".  This property must be set
+# to "true" if you are having multiple instances of Quartz use the same
+# set of database tables... otherwise you will experience havoc.  Also
+# note that each instance in the cluster MUST have a unique "instance id"
+# (the "org.quartz.scheduler.instanceId" property), but should have the 
+# same "scheduler instance name" ("org.quartz.scheduler.instanceName").
+#
+# * NOTE: Never run clustering on separate machines, unless their clocks are
+#         synchronized using some form of time-sync service (daemon) that runs
+#         very regularly (the clocks must be within a second of each other).
+#         See http://www.boulder.nist.gov/timefreq/service/its.htm if you are
+#         unfamiliar with how to do this.
+#
+#         Also: never fire-up a non-clustered instance against the same set
+#         of tables that any other instance is running against.  You will 
+#         get serious data corruption, and eratic behavior.
+#
+#
+# JDBCJobStore's "LOCKING_SELECT_STATEMENT" property must be a SQL string
+# that selects a row in the "LOCKS" table and places a lock on it. If not
+# set, the default is "SELECT * FROM {0}LOCKS WHERE LOCK_NAME = ? FOR UPDATE", 
+# which works for most databases.  The "{0}" is replaced during run-time 
+# with the TABLE_PREFIX that you configured above.
+#
+# "DONT_TURN_OFF_AUTO_COMMIT" tells Quartz not to call setAutoCommit(false) 
+# on connections obtained from the DataSource(s).  This can be helpful 
+# in a few situations, such as if you have a driver that complains if 
+# it is called when it is already off.  This property defaults to false.
+#
+# "SERIALIZABLE_ISOLATION" tells Quartz (when using JobStoreTX or CMT) to call 
+# setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);  on JDBC 
+# connections.  This can be helpful to prevent lock timeouts with some databases 
+# under high load, and "longer"-lasting transactions.
+#
+# "READ_COMMITTED_ISOLATION" tells Quartz (When using JobStoreCMT) to call
+# setTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITTED);  on the
+# non-managed JDBC connections.  This can be helpful to prevent lock timeouts 
+# with some databases (such as DB2) under high load, and "longer"-lasting 
+# transactions.
+#
+#
+#
+org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
+org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate
+org.quartz.jobStore.useProperties = false
+org.quartz.jobStore.dataSource = myDS
+org.quartz.jobStore.tablePrefix = QRTZ_
+org.quartz.jobStore.isClustered = false
+#org.quartz.jobStore.selectWithLockSQL = 
+
+# ===========================================================================
+# Configure Datasources  ====================================================
+# ===========================================================================
+#
+# (only needed when using JDBCJobStore, or a plugin that requires JDBC)
+#
+# -- If your Scheduler is very busy (i.e. nearly always executing the same
+#    number of jobs as the size of the thread pool, then you should probably
+#    set the number of connections in the DataSource to be the size of the
+#    thread pool + 1
+#
+# The general pattern for defining a DataSource is one of the following:
+#
+#     org.quartz.dataSource.NAME.driver = DRIVER_CLASS_NAME
+#     org.quartz.dataSource.NAME.URL = DB_URL
+#     org.quartz.dataSource.NAME.user = DB_USER
+#     org.quartz.dataSource.NAME.password = DB_PASSWORD
+#     org.quartz.dataSource.NAME.maxConnections = DB_POOL_SIZE
+#     org.quartz.dataSource.NAME.validationQuery= VALIDATION_QUERY
+#
+#  or
+#
+#     org.quartz.dataSource.NAME.jndiURL = DB_JNDI_URL
+#
+#  or
+#     org.quartz.dataSource.NAME.jndiURL = DB_JNDI_URL
+#     org.quartz.dataSource.NAME.jndiAlwaysLookup = DB_JNDI_ALWAYS_LOOKUP
+#     org.quartz.dataSource.NAME.java.naming.factory.initial = JNDI_CTXT_FACTORY
+#     org.quartz.dataSource.NAME.java.naming.provider.url = JNDI_PROVIDER_URL
+#     org.quartz.dataSource.NAME.java.naming.security.principal = JNDI_PRINCIPAL
+#     org.quartz.dataSource.NAME.java.naming.security.credentials = JNDI_CREDENTIALS
+#
+#
+# The DataSource's "NAME" can be anything you want, and has no meaning other
+# than being able to 'define' a DataSource here, and assign it by name to the
+# JDBCJobStore.
+#
+# With the two types of DataSource definition shown above, a DataSource can
+# either be created with the given database connection information, or can
+# be "logically mapped" to use a DataSource that is managed by an application
+# server an made available via JNDI.
+#
+# "DRIVER_CLASS_NAME" must be the java class name of the JDBC driver for your
+# database.
+#
+# "DB_URL" must be the connection URL (host, port, etc.) for connection to your
+# database.
+#
+# "DB_USER" is the user name to use when connecting to your database.
+#
+# "DB_USER" is the password to use when connecting to your database.
+#
+# "DB_POOL_SIZE" is the maximum number of connections that the DataSource can
+# create in it's pool of connections.
+#
+# "VALIDATION_QUERY" is an optional SQL query string that the DataSource
+# can use to detect and replace failed/corrupt connections.  For example an
+# oracle user might choose "select table_name from user_tables" - which is a 
+# query that should never fail - unless the connection is actually bad.
+#
+# "DB_JNDI_URL" is the JNDI URL for a DataSource that is managed by your
+# application server.  Additionally, you can provide the class name of the 
+# JNDI InitialContextFactory that you wish to use, the provider's URL, and
+# a username & password for connecting to the JNDI provider, if it is not
+# the default provider of your environment.
+#
+# "DB_JNDI_ALWAYS_LOOKUP" can be "true" or "false" - if the property is not
+# set, the default is "false".  This option tells Quartz whether or not it
+# should always lookup the DataSource under the JNDI tree each time it 
+# needs to get a connection from it.  If set to (the default) "false", 
+# Quartz will "hold on to" the DataSource after looking it up only once.
+#
+org.quartz.dataSource.myDS.driver = oracle.jdbc.driver.OracleDriver
+org.quartz.dataSource.myDS.URL = jdbc:oracle:thin:@10.0.1.23:1521:demodb
+org.quartz.dataSource.myDS.user = mops_proto
+org.quartz.dataSource.myDS.password = mops_proto
+org.quartz.dataSource.myDS.maxConnections = 5
+
+#org.quartz.dataSource.myDS.jndiURL=jdbc/PAWS
+#org.quartz.dataSource.myDS.jndiAlwaysLookup=false
+#org.quartz.dataSource.myDS.java.naming.factory.initial=com.evermind.server.rmi.RMIInitialContextFactory
+#org.quartz.dataSource.myDS.java.naming.provider.url=ormi://localhost
+#org.quartz.dataSource.myDS.java.naming.security.principal=admin
+#org.quartz.dataSource.myDS.java.naming.security.credentials=123
+
+
+# ===========================================================================
+# Configure SchedulerPlugins  ===============================================
+# ===========================================================================
+#
+# The general pattern for defining a SchedulerPlugin is the following:
+#
+#     org.quartz.plugin.NAME.class = PLUGIN_CLASS_NAME
+#
+# If the plugin class has properties you want set via some "setter" methods 
+# on the class, name the properties and values as such
+#
+#     org.quartz.plugin.NAME.propName = propValue
+#
+# ...where "propName" corrisponds to a "setPropName" method on the plugin 
+# class.  Only primitive data type values (including Strings) are supported.
+#
+#
+# Configure Plugins =========================================================
+
+org.quartz.plugin.triggHistory.class = org.quartz.plugins.history.LoggingTriggerHistoryPlugin
+org.quartz.plugin.triggHistory.triggerFiredMessage = Trigger {1}.{0} fired job {6}.{5} at: {4, date, HH:mm:ss MM/dd/yyyy}
+org.quartz.plugin.triggHistory.triggerCompleteMessage = Trigger {1}.{0} completed firing job {6}.{5} at {4, date, HH:mm:ss MM/dd/yyyy} with resulting trigger instruction code: {9}
+
+org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.JobInitializationPlugin
+org.quartz.plugin.jobInitializer.fileName = data/my_job_data.xml
+org.quartz.plugin.jobInitializer.overWriteExistingJobs = false
+org.quartz.plugin.jobInitializer.failOnFileNotFound = true
+
+org.quartz.plugin.shutdownhook.class = org.quartz.plugins.management.ShutdownHookPlugin
+org.quartz.plugin.shutdownhook.cleanShutdown = true
+
+# ===========================================================================
+# Configure Listeners         ===============================================
+# ===========================================================================
+#
+# The general pattern for defining a "Global" TriggerListener is:
+#
+#     org.quartz.triggerListener.NAME.class = TRIGGER_LISTENER_CLASS_NAME
+#
+# The general pattern for defining a "Global" JobListener is the following:
+#
+#     org.quartz.jobListener.NAME.class = JOB_LISTENER_CLASS_NAME
+#
+# "NAME" becomes the listener's name, and a "setName(String)" method is 
+# reflectively found and called on the class that is instantiated.
+#
+# If the listener class has properties you want set via some "setter" methods 
+# on the class, name the properties and values as such
+#
+#     org.quartz.triggerListener.NAME.propName = propValue
+# or
+#     org.quartz.jobListener.NAME.propName = propValue
+#
+# ...where "propName" corrisponds to a "setPropName" method on the listener 
+# class.  Only primitive data type values (including Strings) are supported.
+#
+#
+# Configure Plugins =========================================================
+
+org.quartz.triggerListener.dummy.class = org.quartz.examples.DumbTriggerListener

File quartz_1x/docs/config/example_remote_quartz.properties

+# Properties file for use by StdSchedulerFactory
+# to create a proxy (client) to a remote Quartz Scheduler Instance.
+#
+
+
+# Configure Main Scheduler Properties  ======================================
+#
+# The general pattern for defining the scheduler's main properties is:
+#
+#     org.quartz.scheduler.instanceName = SCHED_NAME
+#     org.quartz.scheduler.instanceId = INSTANCE_ID
+#     org.quartz.scheduler.rmi.proxy = true
+#     org.quartz.scheduler.rmi.registryHost = localhost
+#     org.quartz.scheduler.rmi.registryPort = 1099
+#
+# "SCHED_NAME" must match the name in the config file for the scheduler
+# that is running remotely.
+#
+# "INSTANCE_ID" must match the Id in the config file for the scheduler
+# that is running remotely.
+#
+# RMI notes:  
+#
+# To connect (use) a remotely served scheduler, then set the
+# 'rmi.proxy' flag to true.  You must also then specify a  host and port
+# for the rmiregistry process - which is typically 'localhost' port 1099.
+#
+org.quartz.scheduler.instanceName = Sched1
+org.quartz.scheduler.instanceId = 1
+org.quartz.scheduler.rmi.proxy = true
+org.quartz.scheduler.rmi.registryHost = localhost
+org.quartz.scheduler.rmi.registryPort = 1099
+
+
+# When using a remote-proxy to a scheduler, it does not make sense to
+# specify any other configuration properties... if you do, they will
+# be ignored.

File quartz_1x/docs/dbTables/tables_cloudscape.sql

+# 
+# Thanks to Srinivas Venkatarangaiah for submitting this file's contents
+#
+# In your Quartz properties file, you'll need to set 
+# org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.CloudscapeDelegate
+#
+# Known to work with Cloudscape 3.6.4 (should work with others)
+#
+
+
+create table qrtz_job_details (
+	job_name varchar(80) not null,
+	job_group varchar(80) not null,
+	description varchar(120) ,
+	job_class_name varchar(128) not null,
+	is_durable varchar(5) not null,
+	is_volatile varchar(5) not null,
+	is_stateful varchar(5) not null,
+	requests_recovery varchar(5) not null,
+	job_data long varbinary,
+primary key (job_name,job_group)
+);
+
+create table qrtz_job_listeners(
+	job_name varchar(80) not null,
+	job_group varchar(80) not null,
+	job_listener varchar(80) not null,
+primary key (job_name,job_group,job_listener),
+foreign key (job_name,job_group) references qrtz_job_details(job_name,job_group)
+);
+
+create table qrtz_triggers(
+	trigger_name varchar(80) not null,
+	trigger_group varchar(80) not null,
+	job_name varchar(80) not null,
+	job_group varchar(80) not null,
+	is_volatile varchar(5) not null,
+	description varchar(120) ,
+	next_fire_time longint,
+	prev_fire_time longint,
+	trigger_state varchar(16) not null,
+	trigger_type varchar(8) not null,
+	start_time longint not null,
+	end_time longint,
+	calendar_name varchar(80),
+	misfire_instr smallint,
+primary key (trigger_name,trigger_group),
+foreign key (job_name,job_group) references qrtz_job_details(job_name,job_group)
+);
+
+create table qrtz_simple_triggers(
+	trigger_name varchar(80) not null,
+	trigger_group varchar(80) not null,
+	repeat_count longint not null,
+	repeat_interval longint not null,
+	times_triggered longint not null,
+primary key (trigger_name,trigger_group),
+foreign key (trigger_name,trigger_group) references qrtz_triggers(trigger_name,trigger_group)
+);
+
+create table qrtz_cron_triggers(
+	trigger_name varchar(80) not null,
+	trigger_group varchar(80) not null,
+	cron_expression varchar(80) not null,
+	time_zone_id varchar(80),
+primary key (trigger_name,trigger_group),
+foreign key (trigger_name,trigger_group) references qrtz_triggers(trigger_name,trigger_group)
+);
+
+create table qrtz_blob_triggers(
+	trigger_name varchar(80) not null,
+	trigger_group varchar(80) not null,
+	blob_data long varbinary ,
+primary key (trigger_name,trigger_group),
+foreign key (trigger_name,trigger_group) references qrtz_triggers(trigger_name,trigger_group)
+);
+
+create table qrtz_trigger_listeners(
+	trigger_name varchar(80) not null,
+	trigger_group varchar(80) not null,
+	trigger_listener varchar(80) not null,
+primary key (trigger_name,trigger_group,trigger_listener),
+foreign key (trigger_name,trigger_group) references qrtz_triggers(trigger_name,trigger_group)
+);
+
+create table qrtz_calendars(
+	calendar_name varchar(80) not null,
+	calendar long varbinary not null,
+primary key (calendar_name)
+); 
+
+create table qrtz_paused_trigger_grps
+  (
+    trigger_group  varchar(80) not null, 
+primary key (trigger_group)
+);
+
+create table qrtz_fired_triggers(
+	entry_id varchar(95) not null,
+	trigger_name varchar(80) not null,
+	trigger_group varchar(80) not null,
+	is_volatile varchar(5) not null,
+	instance_name varchar(80) not null,
+	fired_time longint not null,
+	state varchar(16) not null,
+	job_name varchar(80) null,
+	job_group varchar(80) null,
+	is_stateful varchar(5) null,
+	requests_recovery varchar(5) null,
+primary key (entry_id)
+);
+
+create table qrtz_scheduler_state 
+  (
+    instance_name varchar(80) not null,
+    last_checkin_time longint not null,
+    checkin_interval longint not null,
+    recoverer varchar(80) null,
+primary key (instance_name)
+);
+
+create table qrtz_locks
+  (
+    lock_name  varchar(40) not null, 
+primary key (lock_name)
+);
+
+insert into qrtz_locks values('TRIGGER_ACCESS');
+insert into qrtz_locks values('JOB_ACCESS');
+insert into qrtz_locks values('CALENDAR_ACCESS');
+insert into qrtz_locks values('STATE_ACCESS');
+insert into qrtz_locks values('MISFIRE_ACCESS');
+

File quartz_1x/docs/dbTables/tables_db2.sql

+#
+# Thanks to Horia Muntean for submitting this....
+#
+# .. known to work with DB2 7.1 and the JDBC driver "COM.ibm.db2.jdbc.net.DB2Driver"
+# .. likely to work with others...
+#
+# In your Quartz properties file, you'll need to set 
+# org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate
+#
+# If you're using DB2 6.x you'll want to set this property to
+# org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.DB2v6Delegate
+#
+# Note that the blob column size (e.g. blob(2000)) dictates the amount of data that can be stored in 
+# that blob - i.e. limits the amount of data you can put into your JobDataMap 
+#
+
+
+create table qrtz_job_details (
+  job_name varchar(80) not null,
+  job_group varchar(80) not null,
+  description varchar(120) null,
+  job_class_name varchar(128) not null,
+  is_durable varchar(1) not null,
+  is_volatile varchar(1) not null,
+  is_stateful varchar(1) not null,
+  requests_recovery varchar(1) not null,
+  job_data blob(2000),
+    primary key (job_name,job_group)
+)
+
+create table qrtz_job_listeners(
+  job_name varchar(80) not null,
+  job_group varchar(80) not null,
+  job_listener varchar(80) not null,
+    primary key (job_name,job_group,job_listener),
+    foreign key (job_name,job_group) references qrtz_job_details(job_name,job_group)
+)
+
+create table qrtz_triggers(
+  trigger_name varchar(80) not null,
+  trigger_group varchar(80) not null,
+  job_name varchar(80) not null,
+  job_group varchar(80) not null,
+  is_volatile varchar(1) not null,
+  description varchar(120) null,
+  next_fire_time bigint,
+  prev_fire_time bigint,
+  trigger_state varchar(16) not null,
+  trigger_type varchar(8) not null,
+  start_time bigint not null,
+  end_time bigint,
+  calendar_name varchar(80),
+  misfire_instr smallint,
+    primary key (trigger_name,trigger_group),
+    foreign key (job_name,job_group) references qrtz_job_details(job_name,job_group)
+)
+
+create table qrtz_simple_triggers(
+  trigger_name varchar(80) not null,
+  trigger_group varchar(80) not null,
+  repeat_count bigint not null,
+  repeat_interval bigint not null,
+  times_triggered bigint not null,
+    primary key (trigger_name,trigger_group),
+    foreign key (trigger_name,trigger_group) references qrtz_triggers(trigger_name,trigger_group)
+)
+
+create table qrtz_cron_triggers(
+  trigger_name varchar(80) not null,
+  trigger_group varchar(80) not null,
+  cron_expression varchar(80) not null,
+  time_zone_id varchar(80),
+    primary key (trigger_name,trigger_group),
+    foreign key (trigger_name,trigger_group) references qrtz_triggers(trigger_name,trigger_group)
+)
+
+create table qrtz_blob_triggers(
+  trigger_name varchar(80) not null,
+  trigger_group varchar(80) not null,
+  blob_data blob(2000) null,
+    primary key (trigger_name,trigger_group),
+    foreign key (trigger_name,trigger_group) references qrtz_triggers(trigger_name,trigger_group)
+)
+
+create table qrtz_trigger_listeners(
+  trigger_name varchar(80) not null,
+  trigger_group varchar(80) not null,
+  trigger_listener varchar(80) not null,
+    primary key (trigger_name,trigger_group,trigger_listener),
+    foreign key (trigger_name,trigger_group) references qrtz_triggers(trigger_name,trigger_group)
+)
+
+create table qrtz_calendars(
+  calendar_name varchar(80) not null,
+  calendar blob(2000) not null,
+    primary key (calendar_name)
+)
+
+create table qrtz_fired_triggers(
+  entry_id varchar(95) not null,
+  trigger_name varchar(80) not null,
+  trigger_group varchar(80) not null,
+  is_volatile varchar(1) not null,
+  instance_name varchar(80) not null,
+  fired_time bigint not null,
+  state varchar(16) not null,
+  job_name varchar(80) null,
+  job_group varchar(80) null,
+  is_stateful varchar(1) null,
+  requests_recovery varchar(1) null,
+    primary key (entry_id)
+);
+
+
+create table qrtz_paused_trigger_grps(
+  trigger_group  varchar(80) not null, 
+    primary key (trigger_group)
+);
+
+create table qrtz_scheduler_state (
+  instance_name varchar(80) not null,
+  last_checkin_time bigint not null,
+  checkin_interval bigint not null,
+  recoverer varchar(80) null,
+    primary key (instance_name)
+);
+
+create table qrtz_locks
+  (
+    lock_name  varchar(40) not null, 
+      primary key (lock_name)
+);
+
+insert into qrtz_locks values('TRIGGER_ACCESS');
+insert into qrtz_locks values('JOB_ACCESS');
+insert into qrtz_locks values('CALENDAR_ACCESS');
+insert into qrtz_locks values('STATE_ACCESS');
+insert into qrtz_locks values('MISFIRE_ACCESS');
+

File quartz_1x/docs/dbTables/tables_db2_v8.sql

+#
+# Updated by Claudiu Crisan (claudiu.crisan@schartner.net)
+# SQL scripts for DB2 ver 8.1
+#
+# Changes:
+# - "varchar(1)" replaced with "integer"
+# - "field_name varchar(xxx) not null" replaced with "field_name varchar(xxx)"
+#
+
+
+DROP TABLE QRTZ_JOB_LISTENERS;
+DROP TABLE QRTZ_TRIGGER_LISTENERS;
+DROP TABLE QRTZ_FIRED_TRIGGERS;
+DROP TABLE QRTZ_PAUSED_TRIGGER_GRPS;
+DROP TABLE QRTZ_SCHEDULER_STATE;
+DROP TABLE QRTZ_LOCKS;
+DROP TABLE QRTZ_SIMPLE_TRIGGERS;
+DROP TABLE QRTZ_CRON_TRIGGERS;
+DROP TABLE QRTZ_TRIGGERS;
+DROP TABLE QRTZ_JOB_DETAILS;
+DROP TABLE QRTZ_CALENDARS;
+DROP TABLE QRTZ_BLOB_TRIGGERS;
+
+create table qrtz_job_details(
+job_name varchar(80) not null,
+job_group varchar(80) not null,
+description varchar(120),
+job_class_name varchar(128) not null,
+is_durable integer not null,
+is_volatile integer not null,
+is_stateful integer not null,
+requests_recovery integer not null,
+job_data blob(2000),
+primary key (job_name,job_group)
+);
+
+create table qrtz_job_listeners(
+job_name varchar(80) not null,
+job_group varchar(80) not null,
+job_listener varchar(80) not null,
+primary key (job_name,job_group,job_listener),
+foreign key (job_name,job_group) references qrtz_job_details(job_name,job_group)
+);
+
+create table qrtz_triggers(
+trigger_name varchar(80) not null,
+trigger_group varchar(80) not null,
+job_name varchar(80) not null,
+job_group varchar(80) not null,
+is_volatile integer not null,
+description varchar(120),
+next_fire_time bigint,
+prev_fire_time bigint,
+trigger_state varchar(16) not null,
+trigger_type varchar(8) not null,
+start_time bigint not null,
+end_time bigint,
+calendar_name varchar(80),
+misfire_instr smallint,
+primary key (trigger_name,trigger_group),
+foreign key (job_name,job_group) references qrtz_job_details(job_name,job_group)
+);
+
+create table qrtz_simple_triggers(
+trigger_name varchar(80) not null,
+trigger_group varchar(80) not null,
+repeat_count bigint not null,
+repeat_interval bigint not null,
+times_triggered bigint not null,
+primary key (trigger_name,trigger_group),
+foreign key (trigger_name,trigger_group) references qrtz_triggers(trigger_name,trigger_group)
+);
+
+create table qrtz_cron_triggers(
+trigger_name varchar(80) not null,
+trigger_group varchar(80) not null,
+cron_expression varchar(80) not null,
+time_zone_id varchar(80),
+primary key (trigger_name,trigger_group),
+foreign key (trigger_name,trigger_group) references qrtz_triggers(trigger_name,trigger_group)
+);
+
+create table qrtz_blob_triggers(
+trigger_name varchar(80) not null,
+trigger_group varchar(80) not null,
+blob_data blob(2000),
+primary key (trigger_name,trigger_group),
+foreign key (trigger_name,trigger_group) references qrtz_triggers(trigger_name,trigger_group)
+);
+
+create table qrtz_trigger_listeners(
+trigger_name varchar(80) not null,
+trigger_group varchar(80) not null,
+trigger_listener varchar(80) not null,
+primary key (trigger_name,trigger_group,trigger_listener),
+foreign key (trigger_name,trigger_group) references qrtz_triggers(trigger_name,trigger_group)
+);
+
+create table qrtz_calendars(
+calendar_name varchar(80) not null,
+calendar blob(2000) not null,
+primary key (calendar_name)
+);
+
+create table qrtz_fired_triggers(
+entry_id varchar(95) not null,
+trigger_name varchar(80) not null,
+trigger_group varchar(80) not null,
+is_volatile integer not null,
+instance_name varchar(80) not null,
+fired_time bigint not null,
+state varchar(16) not null,
+job_name varchar(80),
+job_group varchar(80),
+is_stateful integer,
+requests_recovery integer,
+primary key (entry_id)
+);
+
+create table qrtz_paused_trigger_grps(
+trigger_group varchar(80) not null,
+primary key (trigger_group)
+);
+
+create table qrtz_scheduler_state(
+instance_name varchar(80) not null,
+last_checkin_time bigint not null,
+checkin_interval bigint not null,
+recoverer varchar(80),
+primary key (instance_name)
+);
+
+create table qrtz_locks(
+lock_name varchar(40) not null,
+primary key (lock_name)
+);
+
+insert into qrtz_locks values('TRIGGER_ACCESS');
+insert into qrtz_locks values('JOB_ACCESS');
+insert into qrtz_locks values('CALENDAR_ACCESS');
+insert into qrtz_locks values('STATE_ACCESS');
+insert into qrtz_locks values('MISFIRE_ACCESS'); 

File quartz_1x/docs/dbTables/tables_hsqldb.sql

+#
+# In your Quartz properties file, you'll need to set 
+# org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.HSQLDBDelegate
+#
+
+ DROP TABLE qrtz_locks IF EXISTS;
+DROP TABLE qrtz_scheduler_state IF EXISTS;
+DROP TABLE qrtz_fired_triggers IF EXISTS;
+DROP TABLE qrtz_paused_trigger_grps IF EXISTS;
+DROP TABLE qrtz_calendars IF EXISTS;
+DROP TABLE qrtz_trigger_listeners IF EXISTS;
+DROP TABLE qrtz_blob_triggers IF EXISTS;
+DROP TABLE qrtz_cron_triggers IF EXISTS;
+DROP TABLE qrtz_simple_triggers IF EXISTS;
+DROP TABLE qrtz_triggers IF EXISTS;
+DROP TABLE qrtz_job_listeners IF EXISTS;
+DROP TABLE qrtz_job_details IF EXISTS;
+
+CREATE TABLE qrtz_job_details
+(
+JOB_NAME VARCHAR(80) NOT NULL,
+JOB_GROUP VARCHAR(80) NOT NULL,
+DESCRIPTION VARCHAR(120) NULL,
+JOB_CLASS_NAME VARCHAR(128) NOT NULL,
+IS_DURABLE VARCHAR(1) NOT NULL,
+IS_VOLATILE VARCHAR(1) NOT NULL,
+IS_STATEFUL VARCHAR(1) NOT NULL,
+REQUESTS_RECOVERY VARCHAR(1) NOT NULL,
+JOB_DATA BINARY NULL,
+PRIMARY KEY (JOB_NAME,JOB_GROUP)
+);
+
+CREATE TABLE qrtz_job_listeners
+(
+JOB_NAME VARCHAR(80) NOT NULL,
+JOB_GROUP VARCHAR(80) NOT NULL,
+JOB_LISTENER VARCHAR(80) NOT NULL,
+PRIMARY KEY (JOB_NAME,JOB_GROUP,JOB_LISTENER),
+FOREIGN KEY (JOB_NAME,JOB_GROUP)
+REFERENCES QRTZ_JOB_DETAILS(JOB_NAME,JOB_GROUP)
+);
+
+CREATE TABLE qrtz_triggers
+(
+TRIGGER_NAME VARCHAR(80) NOT NULL,
+TRIGGER_GROUP VARCHAR(80) NOT NULL,
+JOB_NAME VARCHAR(80) NOT NULL,
+JOB_GROUP VARCHAR(80) NOT NULL,
+IS_VOLATILE VARCHAR(1) NOT NULL,
+DESCRIPTION VARCHAR(120) NULL,
+NEXT_FIRE_TIME NUMERIC(13) NULL,
+PREV_FIRE_TIME NUMERIC(13) NULL,
+TRIGGER_STATE VARCHAR(16) NOT NULL,
+TRIGGER_TYPE VARCHAR(8) NOT NULL,
+START_TIME NUMERIC(13) NOT NULL,
+END_TIME NUMERIC(13) NULL,
+CALENDAR_NAME VARCHAR(80) NULL,
+MISFIRE_INSTR NUMERIC(2) NULL,
+PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP),
+FOREIGN KEY (JOB_NAME,JOB_GROUP)
+REFERENCES QRTZ_JOB_DETAILS(JOB_NAME,JOB_GROUP)
+);
+
+CREATE TABLE qrtz_simple_triggers
+(
+TRIGGER_NAME VARCHAR(80) NOT NULL,
+TRIGGER_GROUP VARCHAR(80) NOT NULL,
+REPEAT_COUNT NUMERIC(7) NOT NULL,
+REPEAT_INTERVAL NUMERIC(12) NOT NULL,
+TIMES_TRIGGERED NUMERIC(7) NOT NULL,
+PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP),
+FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP)
+REFERENCES QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP)
+);
+
+CREATE TABLE qrtz_cron_triggers
+(
+TRIGGER_NAME VARCHAR(80) NOT NULL,
+TRIGGER_GROUP VARCHAR(80) NOT NULL,
+CRON_EXPRESSION VARCHAR(80) NOT NULL,
+TIME_ZONE_ID VARCHAR(80),
+PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP),
+FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP)
+REFERENCES QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP)
+);
+
+CREATE TABLE qrtz_blob_triggers
+(
+TRIGGER_NAME VARCHAR(80) NOT NULL,
+TRIGGER_GROUP VARCHAR(80) NOT NULL,
+BLOB_DATA BINARY NULL,
+PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP),
+FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP)
+REFERENCES QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP)
+);
+
+CREATE TABLE qrtz_trigger_listeners
+(
+TRIGGER_NAME VARCHAR(80) NOT NULL,
+TRIGGER_GROUP VARCHAR(80) NOT NULL,
+TRIGGER_LISTENER VARCHAR(80) NOT NULL,
+PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP,TRIGGER_LISTENER),
+FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP)
+REFERENCES QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP)
+);
+
+CREATE TABLE qrtz_calendars
+(
+CALENDAR_NAME VARCHAR(80) NOT NULL,
+CALENDAR BINARY NOT NULL,
+PRIMARY KEY (CALENDAR_NAME)
+);
+
+CREATE TABLE qrtz_paused_trigger_grps
+(
+TRIGGER_GROUP VARCHAR(80) NOT NULL,
+PRIMARY KEY (TRIGGER_GROUP)
+);
+
+CREATE TABLE qrtz_fired_triggers
+(
+ENTRY_ID VARCHAR(95) NOT NULL,
+TRIGGER_NAME VARCHAR(80) NOT NULL,
+TRIGGER_GROUP VARCHAR(80) NOT NULL,
+IS_VOLATILE VARCHAR(1) NOT NULL,
+INSTANCE_NAME VARCHAR(80) NOT NULL,
+FIRED_TIME NUMERIC(13) NOT NULL,
+STATE VARCHAR(16) NOT NULL,
+JOB_NAME VARCHAR(80) NULL,
+JOB_GROUP VARCHAR(80) NULL,
+IS_STATEFUL VARCHAR(1) NULL,
+REQUESTS_RECOVERY VARCHAR(1) NULL,
+PRIMARY KEY (ENTRY_ID)
+);
+
+CREATE TABLE qrtz_scheduler_state
+(
+INSTANCE_NAME VARCHAR(80) NOT NULL,
+LAST_CHECKIN_TIME NUMERIC(13) NOT NULL,
+CHECKIN_INTERVAL NUMERIC(13) NOT NULL,
+RECOVERER VARCHAR(80) NULL,
+PRIMARY KEY (INSTANCE_NAME)
+);
+
+CREATE TABLE qrtz_locks
+(
+LOCK_NAME VARCHAR(40) NOT NULL,
+PRIMARY KEY (LOCK_NAME)
+);
+
+INSERT INTO qrtz_locks values('TRIGGER_ACCESS');
+INSERT INTO qrtz_locks values('JOB_ACCESS');
+INSERT INTO qrtz_locks values('CALENDAR_ACCESS');
+INSERT INTO qrtz_locks values('STATE_ACCESS');
+INSERT INTO qrtz_locks values('MISFIRE_ACCESS');

File quartz_1x/docs/dbTables/tables_hsqldb_old.sql

+# 
+# Thanks to  Joseph Wilkicki for submitting this file's contents
+#
+# In your Quartz properties file, you'll need to set 
+# org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.HSQLDBDelegate
+#
+# Some users report the need to change the fields
+# with datatype "OTHER" to datatype "BINARY" with
+# particular versions (e.g. 1.7.1) of HSQLDB
+#
+
+CREATE TABLE qrtz_job_details
+(
+JOB_NAME LONGVARCHAR(80) NOT NULL,
+JOB_GROUP LONGVARCHAR(80) NOT NULL,
+DESCRIPTION LONGVARCHAR(120) NULL,
+JOB_CLASS_NAME LONGVARCHAR(128) NOT NULL,
+IS_DURABLE LONGVARCHAR(1) NOT NULL,
+IS_VOLATILE LONGVARCHAR(1) NOT NULL,
+IS_STATEFUL LONGVARCHAR(1) NOT NULL,
+REQUESTS_RECOVERY LONGVARCHAR(1) NOT NULL,
+JOB_DATA OTHER NULL,
+PRIMARY KEY (JOB_NAME,JOB_GROUP)
+);
+
+CREATE TABLE qrtz_job_listeners
+(
+JOB_NAME LONGVARCHAR(80) NOT NULL,
+JOB_GROUP LONGVARCHAR(80) NOT NULL,
+JOB_LISTENER LONGVARCHAR(80) NOT NULL,
+PRIMARY KEY (JOB_NAME,JOB_GROUP,JOB_LISTENER),
+FOREIGN KEY (JOB_NAME,JOB_GROUP)
+REFERENCES QRTZ_JOB_DETAILS(JOB_NAME,JOB_GROUP)
+);
+
+CREATE TABLE qrtz_triggers
+(
+TRIGGER_NAME LONGVARCHAR(80) NOT NULL,
+TRIGGER_GROUP LONGVARCHAR(80) NOT NULL,
+JOB_NAME LONGVARCHAR(80) NOT NULL,
+JOB_GROUP LONGVARCHAR(80) NOT NULL,
+IS_VOLATILE LONGVARCHAR(1) NOT NULL,
+DESCRIPTION LONGVARCHAR(120) NULL,
+NEXT_FIRE_TIME NUMERIC(13) NULL,
+PREV_FIRE_TIME NUMERIC(13) NULL,
+TRIGGER_STATE LONGVARCHAR(16) NOT NULL,
+TRIGGER_TYPE LONGVARCHAR(8) NOT NULL,
+START_TIME NUMERIC(13) NOT NULL,
+END_TIME NUMERIC(13) NULL,
+CALENDAR_NAME LONGVARCHAR(80) NULL,