java 사용법에 따라 2가지로 packaging 할 수 있습니다.
class 실행
첫번째 java 사용법은 class를 실행하는 경우로서 아래와 같이 jar 파일을 생성합니다.
<project name="GlueSample" default="jar" basedir="."> <property file="build.properties"/> <target name="init"> <mkdir dir="${basedir}/build"/> <mkdir dir="${basedir}/buildfile"/> </target> <target name="javac" depends="init"> <javac srcdir="${basedir}/src" destdir="${basedir}/buildfile" encoding="UTF-8"> <classpath> <pathelement location="${GlueSDK.dir}/lib/gluelib/glue-core-4.2.7-RELEASE.jar" /> <pathelement location="${GlueSDK.dir}/lib/gluelib/glue-schedule-4.2.7-RELEASE.jar" /> <!-- add here ... --> </classpath> </javac> </target> <target name="jar" depends="javac"> <jar destfile="${basedir}/build/sample1.jar"> <fileset dir="${basedir}/buildfile"> <patternset> <include name="**/*.*"/> </patternset> </fileset> <fileset dir="${basedir}/src"> <patternset> <include name="applicationContext.xml"/> <include name="ehcache.xml"/> <include name="logback-test.xml"/> <include name="layout/*.xml"/> <include name="query/*.glue_sql"/> <include name="service/*.xml"/> </patternset> </fileset> </jar> </target> </project>
GlueSDK.dir=C:/eclipse/users/GlueSDK
jarfile 실행
두번째 java 사용법은 jarfile를 실행하는 경우로서 MENIFEST.MF 파일에 Main-Class 와 Class-Path 가 포함되어 있어야 합니다.
Main-Class 는 다음 중 하나를 사용할 수 있습니다.
아래와 같이 jar 파일을 생성합니다.
<project name="GlueSample" default="user-application" basedir="."> <property file="build.properties"/> <target name="init"> <mkdir dir="${basedir}/build"/> <mkdir dir="${basedir}/build/lib"/> <mkdir dir="${basedir}/buildfile"/> </target> <path id="class.path"> <fileset dir="${GlueSDK.dir}/lib/gluelib" > <include name="*.jar"/> </fileset> <fileset dir="${GlueSDK.dir}/lib/gluestd" > <include name="*.jar"/> </fileset> <!-- add here .. --> </path> <pathconvert property="class-path" pathsep=" " dirsep="\"> <path refid="class.path"/> <map from="${GlueSDK.dir}/lib/gluestd" to="lib"/> <map from="${GlueSDK.dir}/lib/gluelib" to="lib"/> <!-- add here .. --> </pathconvert> <target name="javac" depends="init"> <javac srcdir="${basedir}/src" destdir="${basedir}/buildfile" encoding="UTF-8"> <classpath> <pathelement location="${GlueSDK.dir}/lib/gluelib/glue-core-4.2.6-RELEASE.jar" /> <pathelement location="${GlueSDK.dir}/lib/gluelib/glue-schedule-4.2.6-RELEASE.jar" /> <!-- add here ... --> </classpath> </javac> </target> <target name="user-application" depends="javac"> <jar destfile="${basedir}/build/user-application.jar"> <manifest> <attribute name="Main-Class" value="com.poscoict.app.job.GlueSimpleJob"/> <attribute name="Class-Path" value="${class-path}" /> </manifest> <fileset dir="${basedir}/buildfile"> <patternset> <include name="**/*.*"/> </patternset> </fileset> <fileset dir="${basedir}/src"> <patternset> <include name="applicationContext.xml"/> <include name="ehcache.xml"/> <include name="**/*.xml"/> <include name="**/*.glue_sql"/> </patternset> </fileset> </jar> </target> </project>
GlueSDK.dir=C:/eclipse/users/GlueSDK
실행옵션과 JobData에 따라 다음과 같은 Java명령어를 통해 테스트가 가능합니다.
[args..] 부분의 첫번재 인자는 고정값 -1 으로 합니다.
cd C:/scheduler-server/apps/ java -DCONFIG_PATH=C:/scheduler-server/apps -Dlog.file=C:/scheduler-server/logs/test.log -cp ./sample1.jar;./lib/*; com.poscoict.app.job.GlueSimpleJob -1 ServiceName=job001-service@S
cd C:/scheduler-server/apps/ java -DCONFIG_PATH=C:/scheduler-server/apps -Dlog.file=C:/scheduler-server/logs/test.log -cp ./sample2.jar;./lib/*; com.poscoict.app.job.GlueSimpleJob -1 className=sample.job.SamplePgm@S
cd C:/scheduler-server/apps/ java -DCONFIG_PATH=C:/scheduler-server/apps -Dlog.file=C:/scheduler-server/logs/test.log -jar user-appliction.jar -1 className=sample.job.SamplePgm@S
cd C:/scheduler-server/apps/ java -DCONFIG_PATH=C:/scheduler-server/apps -Dlog.file=C:/scheduler-server/logs/test.log -jar user-appliction.jar -1 ServiceName=job001-service@S