이 예제는 Glue Job Scheduler 를 이용하지 않고 배치 Job 을 테스트하는 예제이다.
(import - General - Existing Projects into Workspace)
<!-- sqlite 의 경우 -->
<bean id="test-dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    <property name="driverClassName" value="org.sqlite.JDBC"/>
    <property name="url" value="jdbc:sqlite:/C://apache-tomcat-7.0.79/sample.db"/>  
    <property name="defaultAutoCommit" value="false"/>
    <property name="minIdle" value="0"/>
    <property name="maxActive" value="1"/>
    <property name="maxIdle" value="1000"/>
</bean>
<!-- oracle 일 경우
<bean id="securityDs" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
    <property name="url" value="jdbc:oracle:thin:@데이타베이스주소:1521:XE"/>
    <property name="username" value="아이디"/>
    <property name="password" value="비번"/>
    <property name="defaultAutoCommit" value="false"/>
    <property name="minIdle" value="0"/>
    <property name="maxActive" value="-1"/>
    <property name="maxIdle" value="1000"/>
</bean>
-->
quartz-scheduler.xml 예시
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
                        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
    <bean id="scheduler" 
          class="org.springframework.scheduling.quartz.SchedulerFactoryBean" >
        <property name="triggers">
            <list>
                <ref local="simpleTrigger1"/>
                <ref local="simpleTrigger2"/>
                <ref local="cronTrigger"/>
            </list>
        </property>
    </bean>
    <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
        <property name="jobDetail" ref="jobDetail-A"/>
        <property name="cronExpression" value="0 40 15 * * ?"/>
    </bean>
    <bean id="simpleTrigger1" 
          class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">
        <property name="jobDetail" ref="jobDetail-B"/>
        <property name="repeatInterval" value="10000"/> 
        <property name="repeatCount" value="3"/>
        <property name="startDelay" value="5000"/>
    </bean>
    <bean id="simpleTrigger2" 
          class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">
        <property name="jobDetail" ref="jobDetail-C"/>
        <property name="repeatInterval" value="7000"/>
    </bean>
    <bean id="jobDetail-A" class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
        <property name="jobClass" 
                  value="com.poscoict.glueframework.scheduling.GlueQuartzJobBean"/>
        <property name="jobDataAsMap">
            <map>
                <entry key="ServiceName" value="hello-service"/>                
                <entry key="input" value="Glue"/>
            </map>
        </property>
    </bean>
    <bean id="jobDetail-B" class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
        <property name="jobClass" 
                  value="com.poscoict.glueframework.scheduling.GlueQuartzJobBean"/>
        <property name="jobDataAsMap">
            <map>
                <entry key="ServiceName" value="dept-service"/>
                <entry key="DEPTNO" value="60"/>
                <entry key="DNAME" value="Testing"/>
                <entry key="LOC" value="seoul"/>
                <entry key="insert" value="event"/>
            </map>
        </property>
    </bean>
    <bean id="jobDetail-C" class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
        <property name="jobClass" 
                  value="com.poscoict.glueframework.scheduling.GlueQuartzJobBean"/>
        <property name="jobDataAsMap">
            <map>
                <entry key="ServiceName" value="dept-service"/>
                <entry key="DEPTNO" value="60"/>
                <entry key="delete" value="event"/>
            </map>
        </property>
    </bean>
</beans>
spring-scheduler.xml 예시
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:task="http://www.springframework.org/schema/task"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
                        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
                        http://www.springframework.org/schema/task
                        http://www.springframework.org/schema/task/spring-task.xsd">
    <task:scheduled-tasks scheduler="scheduler">
        <task:scheduled ref="glue-task-1" method="doGlueService" 
                                          cron="0/8 * * * * MON-FRI"/> 
        <task:scheduled ref="glue-task-2" method="doGlueService" fixed-rate="70000"/> 
        <task:scheduled ref="glue-task-3" method="doGlueService" fixed-delay="50000"/>
    </task:scheduled-tasks>
    <task:scheduler id="scheduler" pool-size="3" />
    <bean id="glue-task-1" 
          class="com.poscoict.glueframework.scheduling.task.GlueTaskScheduler">
        <property name="ServiceName" value="hello-service"/>
        <property name="dataMap">
            <map>
                <entry key="input" value="Glue"/>
            </map>
        </property>
    </bean>
    <bean id="glue-task-2" 
          class="com.poscoict.glueframework.scheduling.task.GlueTaskScheduler">
        <property name="ServiceName" value="dept-service"/>
        <property name="dataMap">
            <map>
                <entry key="DEPTNO" value="50"/>
                <entry key="DNAME" value="Marketing"/>
                <entry key="LOC" value="SEOUL"/>
                <entry key="insert" value="event"/>
            </map>
        </property>
    </bean>
    <bean id="glue-task-3" 
          class="com.poscoict.glueframework.scheduling.task.GlueTaskScheduler">
        <property name="ServiceName" value="dept-service"/>
        <property name="dataMap">
            <map>
                <entry key="DEPTNO" value="50"/>
                <entry key="delete" value="event"/>
            </map>
        </property>
    </bean>
</beans>
Oracle 을 이용할 경우, GlueSDK/lib 아래 gluestd_oracle 폴더 생성하고 라이브러리 위치시킴.
<?xml version="1.0"?>
<project name="GlueSchedulerSample" default="jar1">
    <!-- default 값을 패키징 유형에 따라 변경해서 ant build 실행 -->    
    <property file="build.properties"/>
    <target name="init" description="clean build directory before packaging">
        <delete failonerror="false">
            <fileset dir="${build.dir}">
                <include name="*.*"/>
            </fileset>          
        </delete>
        <mkdir dir="${build.dir}"/>
        <mkdir dir="${build.dir}/lib"/>
    </target>
    <!-- Main-Class 생성, include schedule library path info
         jar1 : Main-Class 포함하며 quartz-scheduler.xml, spring-scheduler.xml 포함하는 jar packaging -->
    <path id="class.path1">        
        <fileset dir="${GlueSDK.dir}/lib/gluelib">
            <include name="glue-core-*.jar"/>
            <include name="glue-schema-*.jar"/>
            <include name="glue-schedule-*.jar"/>
            <include name="license-*.jar"/>
        </fileset>
        <fileset dir="${GlueSDK.dir}/lib/gluestd">
            <include name="aopalliance*.jar"/>
            <include name="bcprov*.jar"/>
            <include name="xmlbeans*.jar"/>
            <include name="jaxp-api*.jar"/>
            <include name="spring*.jar"/>
            <include name="ehcache*.jar"/>
            <include name="slf4j*.jar"/>
            <include name="logback*.jar"/>
            <include name="jcl*.jar"/>
            <include name="commons*.jar"/>
            <include name="sqlite*.jar"/>
        </fileset>
        <fileset dir="${GlueSDK.dir}/lib/gluestd_schedule"><include name="*.jar"/></fileset>        
    </path>
    <pathconvert property="class-path1" pathsep=" " dirsep="\">
        <path refid="class.path1"></path>
        <map from="${GlueSDK.dir}/lib/gluelib" to="lib"/>
        <map from="${GlueSDK.dir}/lib/gluestd_schedule" to="lib"/>              
        <map from="${GlueSDK.dir}/lib/gluestd" to="lib"/>
    </pathconvert>
    <target name="jar1" depends="init" description="Creates the JAR file">
        <jar destfile="${build.dir}/${JAR1_NAME}.jar">
            <manifest>
                <section name="POSCO ICT Glue Sample Project">
                    <attribute name="Implementation-Version" value="${project_version}"/>
                </section>
                <attribute name="Main-Class" value="com.poscoict.glueframework.scheduling.server.GlueSchedulerHttpServer"/>
                <attribute name="Class-Path" value="${class-path1}" />
            </manifest>
            <fileset dir="${class.dir}">
                <patternset>
                    <include name="**/*.*"/>
                </patternset>
            </fileset>
        </jar>
        <!-- 로컬에서 테스트시에는 사용하고, 개발계등에서는 직접 라이브러리 복사 -->
        <copy todir="${build.dir}/lib">            
            <fileset dir="${GlueSDK.dir}/lib/gluelib">
                <include name="glue-core-*.jar"/>
                <include name="glue-schema-*.jar"/>
                <include name="glue-schedule-*.jar"/>
                <include name="license-*.jar"/>
            </fileset>
            <fileset dir="${GlueSDK.dir}/lib/gluestd">
                <include name="aopalliance*.jar"/>
                <include name="bcprov*.jar"/>
                <include name="xmlbeans*.jar"/>
                <include name="jaxp-api*.jar"/>
                <include name="spring*.jar"/>
                <include name="ehcache*.jar"/>
                <include name="slf4j*.jar"/>
                <include name="logback*.jar"/>
                <include name="jcl*.jar"/>
                <include name="commons*.jar"/>
                <include name="sqlite*.jar"/>
            </fileset>
            <fileset dir="${GlueSDK.dir}/lib/gluestd_schedule"><include name="*.jar"/></fileset>            
        </copy>
    </target>
    
    <!-- jar2 : user job packaging for using scheduler-server, 실행유형이 class 일 경우
    해당 jar 를 배치시키는 scheduler-server/apps/lib 아래에 class path 에 해당하는 library 들을 복사해야 함
    참고로 glue-scheduler-job-x.x.x.jar
    -->
    <path id="class.path2">        
        <fileset dir="${GlueSDK.dir}/lib/gluelib">
            <include name="glue-core-*.jar"/>
            <include name="glue-schema-*.jar"/>
            <include name="glue-schedule-*.jar"/>
            <include name="license-*.jar"/>
        </fileset>
        <fileset dir="${GlueSDK.dir}/lib/gluestd">
            <include name="aopalliance*.jar"/>
            <include name="bcprov*.jar"/>
            <include name="xmlbeans*.jar"/>
            <include name="jaxp-api*.jar"/>
            <include name="spring*.jar"/>
            <include name="ehcache*.jar"/>
            <include name="slf4j*.jar"/>
            <include name="logback*.jar"/>
            <include name="jcl*.jar"/>
            <include name="commons*.jar"/>
            <include name="sqlite*.jar"/>
        </fileset>              
    </path>
    <pathconvert property="class-path2" pathsep=" " dirsep="\">
        <path refid="class.path2"></path>
        <map from="${GlueSDK.dir}/lib/gluelib" to="lib"/>                       
        <map from="${GlueSDK.dir}/lib/gluestd" to="lib"/>
    </pathconvert>
    <target name="jar2" depends="init" description="Creates the JAR file for scheduler-server">
        <jar destfile="${build.dir}/${JAR2_NAME}.jar">          
            <fileset dir="${class.dir}">
                <patternset>
                    <include name="**/*.*"/>
                    <exclude name="spring-scheduler.xml"/>
                    <exclude name="quartz-scheduler.xml"/>
                </patternset>
            </fileset>
        </jar>
    </target>
    
    <!-- jar3 : user job packaging for using scheduler-server, 실행유형이 jarfile 일 경우
    해당 jar 를 배치시키는 scheduler-server/apps/lib 아래에 class path 에 해당하는 library 들을 복사해야 함
    glue-scheduler-job-x.x.x.jar 도 class path 에 포함되게 ${GlueSDK.dir}/lib/gluestd_schedule 위치에 미리 복사해 둬야 함  
    -->
    <target name="jar3" depends="init" description="Creates the JAR file for scheduler-server">
        <jar destfile="${build.dir}/${JAR3_NAME}.jar">
            <manifest>
                <section name="POSCO ICT Glue Sample Project">
                    <attribute name="Implementation-Version" value="${project_version}"/>
                </section>
                <attribute name="Main-Class" value="com.poscoict.app.job.GlueSimpleJob"/>
                <attribute name="Class-Path" value="${class-path1}" />
            </manifest>
            <fileset dir="${class.dir}">
                <patternset>
                    <include name="**/*.*"/>
                    <exclude name="spring-scheduler.xml"/>
                    <exclude name="quartz-scheduler.xml"/>
                </patternset>
            </fileset>
        </jar>
    </target>
</project>           
java -jar user-application.jar quartz quartz-scheduler.xml 로 실행.
java -jar user-application.jar spring spring-scheduler.xml 로 실행.