====== 실행환경 Migration 가이드 (3.9 -> 3.10) ======
표준프레임워크 3.10는 기존 표준프레임워크 3.X와의 호환성을 염두해두고 실행환경의 버전 업그레이드를 진행하였으나, \\
전체 오픈소스SW 업그레이드에 따라 일부 변경이 필요합니다. 또한, 각 프로젝트의 상황 및 환경에 따라서 버전 업그레이드에 따른 \\
충돌, 버그, 불안정성이 발생할 수도 있으니 충분한 테스트 후 진행하시기 바랍니다.
===== 업그레이드 개요 =====
표준프레임워크 3.10는 JDK 1.7이 필요합니다. \\
이에 따라 우선 관련된 WAS 등 적용되어 있는 SW 등이 JDK 1.7을 지원하는지 확인 및 JDK 업그레이드를 수행하십시오.
===== 업그레이드 방법 =====
==== 1. 실행환경 library 변경 ====
=== 1-1. Maven을 사용하는 경우 ===
Maven을 사용하는 경우 프로젝트에서 사용하는 pom.xml 파일을 수정하여 업그레이드를 진행할 수 있습니다. \\
기본적으로 표준프레임워크 실행환경에서 사용되는 오픈소스 라이브러리들만을 업그레이드 하고자 하는 경우 \\
pom.xml 파일에서 egovframework.rte 패키지 아래에 있는 라이브러리들의 버전만 3.10.0으로 업그레이드 해주면 됩니다.
변경 전 (예)
egovframework.rteegovframework.rte.psl.dataaccess3.9.0
변경 후 (예)
egovframework.rteegovframework.rte.psl.dataaccess3.10.0
만약 표준프레임워크의 버전을 property를 사용하여 일괄적으로 관리하는 경우 property를 3.10.0으로 변경합니다. \\
property의 이름은 프로젝트에 따라 다를 수 있습니다.
변경 전 (예)
4.3.22.RELEASE3.9.0
변경 후 (예)
4.3.25.RELEASE3.10.0
=== 1-2. 간소화 서비스 설정 변경 ===
표준프레임워크에서 제공하는 간소화 서비스인 Spring Security 설정 간소화, Session 방식 접근제어, Crypto 간소화를 업그레이드 하시는 경우 변경된 내용을 확인하시기 바랍니다. \\
* Spring Security 설정 간소화 변경 사항([[egovframework:rte3.10:fdl:server_security:xmlschema|상세보기]])
* 스키마정의(XSD) 파일명 변경
변경 전
http://www.egovframe.go.kr/schema/egov-security/egov-security-3.7.xsd
변경 후
http://maven.egovframe.go.kr/schema/egov-security/egov-security-3.10.0.xsd
* 설정 속성 추가 : errorIfMaximumExceeded, alwaysUseDefaultTargetUrl, cacheControl, csrfAccessDeniedUrl 속성 추가
* Session 방식 접근제어 변경 사항([[egovframework:rte3.10:fdl:access|상세보기]])
* 스키마정의(XSD) 파일명 변경
변경 전
http://www.egovframe.go.kr/schema/egov-access/egov-access-3.9.xsd
변경 후
http://maven.egovframe.go.kr/schema/egov-access/egov-access-3.10.0.xsd
* Crypto 간소화 변경 사항([[egovframework:rte3.10:fdl:crypto|상세보기]])
* 스키마정의(XSD) 파일명 변경
변경 전
http://www.egovframe.go.kr/schema/egov-crypto/egov-crypto-3.8.xsd
변경 후
http://maven.egovframe.go.kr/schema/egov-crypto/egov-crypto-3.10.0.xsd
==== 2. BeanUtils 관련 변경 ====
BeanUtils 라이브러리 버전이 변경됨에 따라 BeanMap 클래스를 사용하는 경우 다음과 같은 코드 변경이 필요합니다.
변경 전 (예)
Map introspected = new BeanMap(vo);
for (String key : introspected.keySet()) {
if (key.equals("dn") || key.equals("class") || introspected.get(key) == null || introspected.get(key).equals("")) continue;
ContainerCriteria c = query().where(key).is(String.valueOf(introspected.get(key)));
criteria.and(c);
}
변경 후 (예)
Map
===== 기타 알 수 없는 충돌이 발생하는 경우 =====
프로젝트에 따라서 기존에 사용하던 라이브러리, 코드, WAS, DB 등과의 충돌이 발생할 수 있습니다. \\
알 수 없는 충돌이 발생하고 해결이 어려운 경우 표준프레임워크센터에 프로젝트의 환경 및 에러메시지를 포함하여 문의를 주시기 바랍니다.