18.2. JSL(작업 사양 언어) 상속

JBoss EAP batch-jberet 하위 시스템의 기능은 작업 정의의 일반적인 부분을 추상화하기 위해 JSL(작업 사양 언어) 상속을 사용하는 기능입니다.

동일한 작업 XML 파일 내의 단계 및 흐름 상속

상위 요소(예: step 및 flow)는 직접 실행하지 못하도록 abstract="true" 속성으로 표시됩니다. 하위 요소에는 상위 요소를 가리키는 상위 속성이 포함됩니다.

<job id="inheritance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" version="1.0">
    <!-- abstract step and flow -->
    <step id="step0" abstract="true">
        <batchlet ref="batchlet0"/>
    </step>

    <flow id="flow0" abstract="true">
        <step id="flow0.step1" parent="step0"/>
    </flow>

    <!-- concrete step and flow -->
    <step id="step1" parent="step0" next="flow1"/>

    <flow id="flow1" parent="flow0"/>
</job>

다른 작업 XML 파일에서 단계 상속

하위 요소(예: step 및 job)에는 다음이 포함됩니다.

  • 상위 요소를 포함하는 .xml 확장자 없이 작업 XML 파일 이름을 지정하는 jsl-name 속성.
  • 상위 속성 - jsl-name 으로 지정된 작업 XML 파일의 상위 요소를 가리킵니다.

상위 요소는 직접 실행에서 제외하기 위해 abstract="true" 속성으로 표시됩니다.

예: chunk-child.xml

<job id="chunk-child" xmlns="http://xmlns.jcp.org/xml/ns/javaee" version="1.0">
    <step id="chunk-child-step" parent="chunk-parent-step" jsl-name="chunk-parent">
    </step>
</job>

예: chunk-parent.xml

<job id="chunk-parent" >
    <step id="chunk-parent-step" abstract="true">
        <chunk checkpoint-policy="item" skip-limit="5" retry-limit="5">
            <reader ref="R1"></reader>
            <processor ref="P1"></processor>
            <writer ref="W1"></writer>

            <checkpoint-algorithm ref="parent">
                <properties>
                    <property name="parent" value="parent"></property>
                </properties>
            </checkpoint-algorithm>
            <skippable-exception-classes>
                <include class="java.lang.Exception"></include>
                <exclude class="java.io.IOException"></exclude>
            </skippable-exception-classes>
            <retryable-exception-classes>
                <include class="java.lang.Exception"></include>
                <exclude class="java.io.IOException"></exclude>
            </retryable-exception-classes>
            <no-rollback-exception-classes>
                <include class="java.lang.Exception"></include>
                <exclude class="java.io.IOException"></exclude>
            </no-rollback-exception-classes>
        </chunk>
    </step>
</job>