목차

실행환경 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으로 업그레이드 해주면 됩니다. 변경 전 (예)

<dependency>
     <groupId>egovframework.rte</groupId>
     <artifactId>egovframework.rte.psl.dataaccess</artifactId>
     <version>3.9.0</version>
</dependency>

변경 후 (예)

<dependency>
     <groupId>egovframework.rte</groupId>
     <artifactId>egovframework.rte.psl.dataaccess</artifactId>
     <version>3.10.0</version>
</dependency>

만약 표준프레임워크의 버전을 property를 사용하여 일괄적으로 관리하는 경우 property를 3.10.0으로 변경합니다.
property의 이름은 프로젝트에 따라 다를 수 있습니다.

변경 전 (예)

<properties>
     <spring.maven.artifact.version>4.3.22.RELEASE</spring.maven.artifact.version>
     <egovframework.rte.version>3.9.0</spring.maven.artifact.version>
</properties>

변경 후 (예)

<properties>
     <spring.maven.artifact.version>4.3.25.RELEASE</spring.maven.artifact.version>
     <egovframework.rte.version>3.10.0</spring.maven.artifact.version>
</properties>

1-2. 간소화 서비스 설정 변경

표준프레임워크에서 제공하는 간소화 서비스인 Spring Security 설정 간소화, Session 방식 접근제어, Crypto 간소화를 업그레이드 하시는 경우 변경된 내용을 확인하시기 바랍니다.

변경 전

  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

변경 전

  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

변경 전

  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<String, Object> 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<Object, Object> introspected = new BeanMap(vo);
 
for (Object key : introspected.keySet()) {
	if (key.equals("dn") || key.equals("class") || introspected.get(key) == null || introspected.get(key).equals("")) continue;
	ContainerCriteria c = query().where((String) key).is(String.valueOf(introspected.get(key)));
	criteria.and(c);
}

기타 알 수 없는 충돌이 발생하는 경우

프로젝트에 따라서 기존에 사용하던 라이브러리, 코드, WAS, DB 등과의 충돌이 발생할 수 있습니다.
알 수 없는 충돌이 발생하고 해결이 어려운 경우 표준프레임워크센터에 프로젝트의 환경 및 에러메시지를 포함하여 문의를 주시기 바랍니다.