제27장 JEUS Deployment plan 설정

내용 목차

27.1. 소개
27.2. XML Schema/XML 트리
27.3. Element Reference
27.4. JEUS Deployment plan 파일 예제

여기에서 JEUS Deployment plan의 태그에 대한 설명을 찾을 수 있다.

레퍼런스는 다음 형식으로 구성되어 있다.

  1. XML Schema/XML 트리: XML 설정 파일의 모든 태그 리스트를 정리했다. 각 노드의 형식은 다음과 같다.

    1. 태그 레퍼런스로 빨리 찾아보기 위해서 각 태그마다 인덱스 번호( 예: (11) )를 붙여 놓았다. 태그 레퍼런스에서는 이 번호 순서로 설명한다.

    2. XML Schema에서 정의한 XML 태그명을 <tag name> 형식으로 표시한다.

    3. XML Schema에서 정의한 Cardinality를 표시한다. “?” = 0개나 1개의 element, “+” = 1개 이상의 element, “*” = 0개 이상의 element, (기호가 없음) = 정확히 1개의 element

    4. 몇몇 태그에는 “P” 문자를 붙여 놓았는데, 해당 태그는 성능에 관계되는 태그라는 것을 뜻한다. 이 태그는 설정을 튜닝할 때 사용된다.

  2. Element Reference: 트리에 있는 각 XML 태그를 설명한다.

    1. Dynamic: 동적 설정 반영 가능

    2. Non-Dynamic: 동적 설정 반영 불가능, Dynamic이 설정되지 않은 항목들이 보통 이에 해당 하나 특별히 설명이 있는 경우 이 항목이 표시된다.

    3. Description: 태그에 대한 간단한 설명.

    4. Value Description: 입력하는 값과 타입.

    5. Value Type: 값의 데이터 타입. (예: String)

    6. Value Type Description: 값의 데이터 타입에 대한 설명

    7. Default Value: 해당 XML을 사용하지 않았을 때 기본적으로 사용되는 값.

    8. Defined Value: 이미 정해져 있는 값.

    9. Example: 해당 XML 태그에 대한 예.

    10. Performance Recommendation: 성능 향상을 위해서 추천하는 값.

    11. Child Elements: 자신의 태그 안에 사용하는 태그.

(1) <jeus-deployment-plan>
Description JEUS deployment plan 설정을 정의한다.
Value Type jeus-deployment-planType
Child Elements

(3) descriptors

(2) < jeus-deployment-plan > <descriptors>
Description 복수의 descriptor 설정을 정의한다.
Value Type descriptorsType
Child Elements

(4) descriptor

(3) < jeus-deployment-plan >< descriptors > <descriptor>
Description JEUS deployment plan을 적용할 deployment descriptor를 지정하고 그와 관계된 세부 설정을 정의한다.
Value Type descriptorType
Child Elements

(5) uri

(6) configurations

(4) < jeus-deployment-plan >< descriptors >< descriptor > <uri>
Description JEUS deployment plan을 적용할 deployment descriptor의 URI를 명시한다.
Value Type token

(5) < jeus-deployment-plan >< descriptors >< descriptor > <configurations>
Description 복수의 configuration 설정을 정의한다.
Value Type configurationsType
Child Elements

(7) configuration

(6) < jeus-deployment-plan >< descriptors >< descriptor >< configurations > <configuration>
Description JEUS plan을 통하여 적용할 하나의 설정 단위를 정의한다.
Value Type configurationType
Child Elements

(8) action

(9) xpath

(10) value

(7) < jeus-deployment-plan >< descriptors >< descriptor >< configurations >< configuration > <action>
Description 적용할 설정의 action type을 지정한다.
Value Type actionType
Defined Value

DELETE

REPLACE

APPEND_CHILD

INSERT_BEFORE

(8) < jeus-deployment-plan >< descriptors >< descriptor >< configurations >< configuration > <xpath>
Description 설정을 적용할 XML 문서 상의 target element의 xpath를 명시한다.
Value Type token

(9) < jeus-deployment-plan >< descriptors >< descriptor >< configurations >< configuration > <value>
Description REPLACE, APPEND_CHILD, INSERT_BEFORE action 수행시 필요한 입력값을 정의한다. CDATA section으로 입력할 XML fragment를 적는다.
Value Type token

[예 27.1] JEUS Deployment plan 파일 예제

<?xml version="1.0" encoding="UTF-8"?>
<jeus-deployment-plan xmlns="http://www.tmaxsoft.com/xml/ns/jeus">
    <descriptors>
        <!-- For standalone EJB -->
        <descriptor>
            <uri>META-INF/ejb-jar.xml</uri>
            <configurations>
                <configuration>
                    <action>REPLACE</action>
                    <xpath>/ejb-jar/enterprise-beans/session/ejb-name[.='ByeBean']</xpath>
                    <value>
                        <![CDATA[<ejb-name>HiBean</ejb-name>]]>
                    </value>
                </configuration>
                <configuration>
                    <action>DELETE</action>
                    <xpath>/ejb-jar/enterprise-beans/session/local-home[.='HelloHomeLocal']</xpath>
                </configuration>
                <configuration>
                    <action>APPEND_CHILD</action>
                    <xpath>/ejb-jar/enterprise-beans/session/ejb-name[.='HiBean']/..</xpath>
                    <value>
                        <![CDATA[<transaction-type>Bean</transaction-type>]]>
                    </value>
                </configuration>
                <configuration>
                    <action>INSERT_BEFORE</action>
                    <xpath>/ejb-jar/enterprise-beans/session/ejb-name[.='HelloBean']/../transaction-type</xpath>
                    <value>
                        <![CDATA[<session-type>Stateless</session-type>]]>
                    </value>
                </configuration>
            </configurations>
        </descriptor>
        <descriptor>
            <uri>META-INF/jeus-ejb-dd.xml</uri>
            <configurations>
                <configuration>
                    <action>REPLACE</action>
                    <xpath>/jeus-ejb-dd/beanlist/jeus-bean/export-name[.='ByeBean']</xpath>
                    <value>
                        <![CDATA[<export-name>HiBean</export-name>]]>
                    </value>
                </configuration>
                <configuration>
                    <action>DELETE</action>
                    <xpath>/jeus-ejb-dd/beanlist/jeus-bean/local-export-name[.='HelloBeanLocal']</xpath>
                </configuration>
                <configuration>
                    <action>APPEND_CHILD</action>
                    <xpath>/jeus-ejb-dd/beanlist/jeus-bean</xpath>
                    <value>
                        <![CDATA[<jeus-rmi>false</jeus-rmi>]]>
                    </value>
                </configuration>
                <configuration>
                    <action>INSERT_BEFORE</action>
                    <xpath>/jeus-ejb-dd/beanlist/jeus-bean/ejb-name[.='HiBean']/../jeus-rmi</xpath>
                    <value>
                        <![CDATA[<thread-max>100</thread-max>]]>
                    </value>
                </configuration>
            </configurations>
        </descriptor>

        <!-- For standalone web application -->
        <descriptor>
            <uri>WEB-INF/web.xml</uri>
            <configurations>
                <configuration>
                    <action>REPLACE</action>
                    <xpath>/web-app/servlet-mapping/servlet-name[.='HiServlet']</xpath>
                    <value>
                        <![CDATA[<servlet-name>HelloServlet</servlet-name>]]>
                    </value>
                </configuration>
                <configuration>
                    <action>DELETE</action>
                    <xpath>/web-app/servlet/load-on-startup</xpath>
                </configuration>
                <configuration>
                    <action>APPEND_CHILD</action>
                    <xpath>/web-app/login-config</xpath>
                    <value>
                        <![CDATA[<auth-method>BASIC</auth-method>]]>
                    </value>
                </configuration>
                <configuration>
                    <action>INSERT_BEFORE</action>
                    <xpath>/web-app/env-entry/env-entry-value[.='java.lang.Boolean']</xpath>
                    <value>
                        <![CDATA[<env-entry-type>java.lang.String</env-entry-type>]]>
                    </value>
                </configuration>
            </configurations>
        </descriptor>
        <descriptor>
            <uri>WEB-INF/jeus-web-dd.xml</uri>
            <configurations>
                <configuration>
                    <action>REPLACE</action>
                    <xpath>/jeus-web-dd/enable-jsp</xpath>
                    <value>
                        <![CDATA[<enable-jsp>true</enable-jsp>]]>
                    </value>
                </configuration>
                <configuration>
                    <action>DELETE</action>
                    <xpath>/jeus-web-dd/max-instance-pool-size</xpath>
                </configuration>
                <configuration>
                    <action>INSERT_BEFORE</action>
                    <xpath>/jeus-web-dd/enable-jsp</xpath>
                    <value>
                        <![CDATA[<context-path>/hello</context-path>]]>
                    </value>
                </configuration>
                <configuration>
                    <action>APPEND_CHILD</action>
                    <xpath>/jeus-web-dd</xpath>
                    <value>
                        <![CDATA[<webinf-first><enabled>false</enabled></webinf-first>]]>
                    </value>
                </configuration>
            </configurations>
        </descriptor>

        <!-- For EAR -->
        <descriptor>
            <uri>META-INF/application.xml</uri>
            <configurations>
                <configuration>
                    <action>REPLACE</action>
                    <xpath>/application/library-directory</xpath>
                    <value>
                        <![CDATA[<library-directory>mylib</library-directory>]]>
                    </value>
                </configuration>
            </configurations>
        </descriptor>
        <descriptor>
            <uri>ejb.jar!/META-INF/ejb-jar.xml</uri>
            <configurations>
                <configuration>
                    <action>REPLACE</action>
                    <xpath>/ejb-jar/enterprise-beans/session/ejb-class</xpath>
                    <value>
                        <![CDATA[<ejb-class>HelloBean</ejb-class>]]>
                    </value>
                </configuration>
            </configurations>
        </descriptor>
        <descriptor>
            <uri>web.war!/WEB-INF/web.xml</uri>
            <configurations>
                <configuration>
                    <action>REPLACE</action>
                    <xpath>/web-app/servlet-mapping/servlet-name</xpath>
                    <value>
                        <![CDATA[<servlet-name>HelloServlet</servlet-name>]]>
                    </value>
                </configuration>
            </configurations>
        </descriptor>
    </descriptors>
</jeus-deployment-plan>