GeoService-Xr을 기반으로 구축된 프로젝트마다 특화된 기능의 개발을 위해 PlugIn 방식으로 기능 확장을 하기 위한 설정입니다. 이 방식을 통해 GeoService-Xr의 유지보수 관리와 개별 프로젝트에 대한 특화된 기능에 대한 유지보수 관리가 효과적으로 완전히 분리됩니다.
기본적으로 GeoService-Xr의 설정 파일은 XrConfig.xml이며 아래의 예와 같습니다.
<sqlfile>./SQL.json</sqlfile>
<encryptionfile>./key.json</encryptionfile>
<sessioncheckingflags>./session.json</sessioncheckingflags>
<webhomedir>./webHome</webhomedir>
<geodatafile>./geodata.xml</geodatafile>
<mainmemorybufferscount>256</mainmemorybufferscount>
<mainmemorybufferscount_>10</mainmemorybufferscount_>
<mainmemorybuffersize>5485760</mainmemorybuffersize>
<submemorybufferscount>0</submemorybufferscount>
<submemorybuffersize>0</submemorybuffersize>
<plugin>./plugin.json</plugin>
<allowcors>false</allowcors>
<config>
<sqlfile>./SQL.json</sqlfile>
<encryptionfile>./key.json</encryptionfile>
<sessioncheckingflags>./session.json</sessioncheckingflags>
<webhomedir>./webHome</webhomedir>
<geodatafile>./geodata.xml</geodatafile>
<port>777</port>
<mainmemorybufferscount>256</mainmemorybufferscount>
<mainmemorybufferscount_>10</mainmemorybufferscount_>
<mainmemorybuffersize>5485760</mainmemorybuffersize>
<submemorybufferscount>0</submemorybufferscount>
<submemorybuffersize>0</submemorybuffersize>
<plugin>./plugin.json</plugin>
<allowcors>false</allowcors>
</config>
./SQL.json
./key.json
./session.json
./webHome
./geodata.xml
777
256
10
5485760
0
0
./plugin.json
false
위의 설정 값 중 plugin 값으로 지정된 값인 plugin.json이 플러그인 기능에 대한 설정 파일입니다. 이 설정 파일을 보면 다음과 같습니다.
"initializer": "kr.co.geoservice.geoserviceweb.PlugInInitializer",
"kr.co.geoservice.geoserviceweb.request.ChangeProfile",
"kr.co.geoservice.geoserviceweb.request.CheckAuthorizationCode",
"kr.co.geoservice.geoserviceweb.scheduler.NonauthorizedUserRemoverScheduler"
{
"initializer": "kr.co.geoservice.geoserviceweb.PlugInInitializer",
"services": [
"kr.co.geoservice.geoserviceweb.request.ChangeProfile",
"kr.co.geoservice.geoserviceweb.request.CheckAuthorizationCode",
....
],
"schedulers": [
"kr.co.geoservice.geoserviceweb.scheduler.NonauthorizedUserRemoverScheduler"
....
]
}
{
"initializer": "kr.co.geoservice.geoserviceweb.PlugInInitializer",
"services": [
"kr.co.geoservice.geoserviceweb.request.ChangeProfile",
"kr.co.geoservice.geoserviceweb.request.CheckAuthorizationCode",
....
],
"schedulers": [
"kr.co.geoservice.geoserviceweb.scheduler.NonauthorizedUserRemoverScheduler"
....
]
}
initializer에 지정된 Java 클래스가 해당 플러그인에 대한 초기화를 시켜주며, services에 지정된 Java 클래스들이 각기 기능 단위들입니다. schedulers는 일정 시간마다 특정한 작업을 실행하는 Java 클래스들입니다.
아울러 GeoService-Xr에 대한 jar 파일을 생성할 때 manifest 파일에 플러그인에 대한 jar 파일을 포함해줘야 합니다.