1. ejbddinit
ejbddinit은 ejb-jar.xml 정보와 사전에 생성된 프로퍼티 파일 및 사용자 입력 값 등을 이용해서 JEUS EJB DD(jeus-ejb-dd.xml)를 자동으로 생성하는 툴이다.
EJB를 deploy할 때 필요한 항목들은 기본값으로 설정하므로 JEUS EJB DD는 반드시 존재해야하는 것은 아니다. 따라서 EJB를 새로 개발할 경우 불필요할 수 있지만, JEUS EJB DD를 사용하던 기존 방법으로 애플리케이션을 작성하거나 다른 제품에서 전환(migration)하는 경우 쉽게 템플릿을 작성하는 용도로 사용할 수 있다.
Java EE 6의 annotation-based 방식은 소스 파일 내에 설정할 수 있으므로 지원하지 않는다. |
다음은 툴 사용법, 파라미터 및 예제에 대한 설명이다.
-
사용법
ejbddinit [-property property_file_path] [-level log_level] [-source application_file_or_directory_name]
-
파라미터
파라미터 설명 [-property property_file_path]
프로퍼티 파일의 경로를 지정한다. jeus-ejb-dd.xml을 목적에 맞게 생성하기 위해서는 이 옵션을 반드시 설정해야 한다. 프로퍼티를 JEUS EJB DD의 태그에 대응시켜 값을 설정할 수 있다. 설정 가능한 프로퍼티 목록은 프로퍼티 목록을 참고한다.
-
예1)
export-port=40001
모든 EJB에 대해서 export-port를 40001로 설정하여 jeus-ejb-dd.xml 파일을 생성한다.
-
예2)
SampleBean.export-port=40004
ejb.jar에서 EJB 이름이 SampleBean으로 설정된 EJB 대해서 export-port를 40004로 설정하여 jeus-ejb-dd.xml 파일을 생성한다. 이와 같이 각 프로퍼티 이름 앞에 점(.)을 구분자로 하여 특정 EJB 이름을 명시할 수 있다. 동일한 설정에 대하여 특정 EJB 이름을 명시한 프로퍼티와 그렇지 않은 프로퍼티가 존재할 때 전자가 우선 적용된다.
[-level log_level]
ejbddinit를 실행할 때 화면에 출력되는 로그의 레벨을 설정한다.
[-source application_file_or_directory_name]
대상 EJB 모듈의 경로를 설정한다. EJB 모듈은 '.jar' 확장자를 갖는 압축 파일이거나 디렉터리이다.
성공적으로 JEUS EJB DD를 생성하면, EJB 모듈이 디렉터리일 경우 META-INF 폴더 하위에 jeus-ejb-dd.xml을 생성한다. EJB 모듈이 압축 파일인 경우 본래의 파일 이름 끝에 ".new"를 붙인 이름으로 새로운 압축 파일을 만들고 압축 파일 내부의 META-INF 디렉터리 하위에 jeus-ejb-dd.xml을 생성한다.
-
-
예제
-
usage를 출력한다.
$ ejbddinit
-
ejbddinit.properties에 정의된 프로퍼티를 바탕으로 EJB 모듈인 ejb.jar에 대하여 ejb.jar.new 파일을 생성한다. 생성된 ejb.jar.new 파일 내부의 META-INF 디렉터리 하위에 jeus-ejb-dd.xml이 위치한다.
$ ejbddinit -property ejbddinit.properties -source ejb.jar
-
ejbddinit.properties에 정의된 프로퍼티를 바탕으로 EJB 모듈인 ejb_dir의 META-INF 디렉터리 하위에 jeus-ejb-dd.xml을 생성한다.
$ ejbddinit -property ejbddinit.properties -source ejb_dir
-
ejbddinit.properties에 정의된 프로퍼티를 바탕으로 jeus-ejb-dd.xml을 생성한다. source 옵션 값을 입력하지 않았으므로 ejbddinit.properties에 EJB 모듈 경로가 설정되어 있어야 한다.
$ ejbddinit -property ejbddinit.properties
-
ejbddinit.properties에 정의된 프로퍼티를 바탕으로 EJB 모듈인 ejb.jar에 대하여 ejb.jar.new 파일을 생성한다. 생성된 ejb.jar.new 파일 내부의 META-INF 디렉터리 하위에 jeus-ejb-dd.xml이 위치한다. FINE 레벨의 로그가 화면에 출력된다.
$ ejbddinit -property ejbddinit.properties -level FINE -source ejb.jar
ejbddinit은 Ant Task를 지원한다. ejbddinit ant task는 ejbddinit에서 설명한다.
-
프로퍼티 목록
다음은 ejbddinit에서 지원하는 프로퍼티 목록이다. 각 프로퍼티에 대한 상세 설명은 대응되는 jeus-ejb-dd.xml 태그의 description을 참고한다.
프로퍼티 | Type | 비고 |
---|---|---|
source |
String |
대상 EJB 모듈의 경로이다. jeus-ejb-dd.xml의 태그와 관련 없다. |
logging-level |
String |
ejbddinit를 실행할 때 화면에 출력되는 로그의 레벨로 jeus-ejb-dd.xml의 태그와 관련 없다. |
export-name |
String |
jeus-ejb-dd.xml의 <export-name> 태그에 대응한다. 특정 EJB에 대해서만 사용을 권장한다. 사용하는 경우 패턴을 지원한다. 자세한 내용은 export-name 프로퍼티에 대한 패턴 지원을 참고한다. |
local-export-name |
String |
jeus-ejb-dd.xml의 <local-export-name> 태그에 대응한다. 특정 EJB에 대해서만 사용을 권장한다. |
export-port |
int (not negative) |
jeus-ejb-dd.xml의 <export-port> 태그에 대응한다. |
export-iiop |
boolean |
jeus-ejb-dd.xml의 <export-iiop> 태그에 대응한다. |
thread-max |
int (not negative) |
jeus-ejb-dd.xml의 <thread-max> 태그에 대응한다. |
bean-pool-min |
int (not negative) |
jeus-ejb-dd.xml의 <bean-pool>/<pool-min> 태그에 대응한다. |
bean-pool-max |
int (not negative) |
jeus-ejb-dd.xml의 <bean-pool>/<pool-max> 태그에 대응한다. |
connect-pool-min |
int (not negative) |
jeus-ejb-dd.xml의 <connect-pool>/<pool-min> 태그에 대응한다. |
connect-pool-max |
int (not negative) |
jeus-ejb-dd.xml의 <connect-pool>/<pool-max> 태그에 대응한다. |
capacity |
int (not negative) |
jeus-ejb-dd.xml의 <capacity> 태그에 대응한다. |
passivation-timeout |
long (not negative or -1 for disable) |
jeus-ejb-dd.xml의 <passivation-timeout> 태그에 대응한다. |
disconnect-timeout |
long (not negative or -1 for disable) |
jeus-ejb-dd.xml의 <disconnect-timeout> 태그에 대응한다. |
engine-type |
String (defined) |
jeus-ejb-dd.xml의 <engine-type> 태그에 대응한다. 다음 중에 하나를 설정한다.
|
subengine-type |
String (defined) |
jeus-ejb-dd.xml의 <subengine-type> 태그에 대응한다. 다음 중에 하나를 설정한다.
|
fetch-size |
int (not negative) |
jeus-ejb-dd.xml의 <fetch-size> 태그에 대응한다. |
init-caching |
boolean |
jeus-ejb-dd.xml의 <init-caching> 태그에 대응한다. |
table-name |
String |
jeus-ejb-dd.xml의 <table-name> 태그에 대응한다. |
creating-table |
String (defined) |
jeus-ejb-dd.xml의 <creating-table> 태그에 대응한다. 다음 중에 하나를 설정한다.
|
deleting-table |
boolean |
jeus-ejb-dd.xml의 <deleting-table> 태그에 대응한다. |
db-vendor |
String |
jeus-ejb-dd.xml의 <db-vendor> 태그에 대응한다. |
datasource-name |
String |
jeus-ejb-dd.xml의 <data-source-name> 태그에 대응한다. |
enable-instant-ql |
boolean |
jeus-ejb-dd.xml의 <enable-instant-ql> 태그에 대응한다. |
export-name 프로퍼티에 대한 패턴 지원
export-name은 EJB 모듈 이름이나 ejb-jar.xml에 정의된 EJB 컴포넌트의 <ejb-name>, <ejb-class> 태그의 값들을 이용하여 지정하는 경우가 대부분이므로 이들 값들을 좀 더 편리하게 이용할 수 있도록 패턴을 지원한다.
패턴 이름 | 패턴 값 |
---|---|
%{module-name} |
EJB 모듈 이름이다. JAR 파일인 경우 '.jar' 확장자를 제거한 파일 이름이다. |
%{ejb-name} |
EJB 컴포넌트 이름이다. ejb-jar.xml에 정의된 해당 EJB 컴포넌트의 <ejb-name> 태그의 값이다. |
%{ejb-fqn} |
EJB 컴포넌트의 EJB 클래스의 fully qualified name이다. ejb-jar.xml에 정의된 해당 EJB 컴포넌트의 <ejb-class> 태그의 값이다. |
%{ejb-class} |
%{ejb-fqn} 값에서 패키지 이름을 제외한 클래스 이름이다. |
다음은 이름이 'sample-ejb’이고 EJB 클래스의 fully qualified name이 'sample.SampleBean’인 EJB 컴포넌트가 이름이 'myejb’인 EJB 모듈에 패키지되어 있다고 가정하는 경우 패턴 사용의 예이다.
-
export-name을 'myejb_sample-ejb’로 지정한다.
export-name=%{module-name}_%{ejb-name}
-
export-name을 'PREFIX_sample.SampleBean’으로 지정한다.
export-name=PREFIX_%{ejb-fqn}
-
export-name을 'SampleBean_POSTFIX’로 지정한다.
export-name=%{ejb-class}_POSTFIX
위의 예에서 알 수 있듯이 export-name을 설정할 때 필요한 기타 문자열(PREFIX나 POSTFIX와 같은)들을 패턴에 붙일 수 있으며 패턴 간의 조합도 가능하다. 패턴 이름은 대소문자 구별 없이 사용할 수 있다.
프로퍼티 파일 예제
다음은 ejbddinit 프로퍼티 파일의 작성 예다. JEUS EJB DD를 생성할 EJB에 대하여 적절히 동작하도록 다음의 예제를 수정해서 사용할 것을 권장한다.
# PROPERTY FILE SAMPLE # JEUS EJB DD Generation Option # target file or directory path source=/home/workspace/ejb.jar # log-level for EJB DD init logging-level=DEBUG # JEUS EJB DD configuration tag and value pairs for all EJBs db-vendor=mysql datasource-name=jdbc/__default creating-table=use-existing deleting-table=false engine-type=EXCLUSIVE_ACCESS subengine-type=ReadLocking fetch-size=1111 enable-instant-ql=true export-port=9999 export-iiop=false thread-max=100 bean-pool-min=10 bean-pool-max=100 capacity=10000 passivation-timeout=300000 disconnect-timeout=-1 connect-pool-min=10 connect-pool-max=100 init-caching=false # JEUS EJB DD configuration tag and value pairs for BookBean EJB BookBean.export-name=BookBeanFromProperty BookBean.local-export-name=LocalBookBeanFromProperty BookBean.export-port=55555 BookBean.thread-max=100