====== 실행환경 Migration 가이드 (3.10 -> 4.0) ====== 표준프레임워크 4.0는 Spring Framework 5.3.6 버전을 지원가능하게 업그레이드를 진행하였으나, \\ 전체 오픈소스SW 업그레이드에 따라 일부 변경이 필요합니다. 또한, 각 프로젝트의 상황 및 환경에 따라서 버전 업그레이드에 따른 \\ 충돌, 버그, 불안정성이 발생할 수도 있으니 충분한 테스트 후 진행하시기 바랍니다. ===== 업그레이드 개요 ===== 표준프레임워크 4.0는 JDK 1.8, Servlet 3.1이 필요합니다. \\ 이에 따라 우선 관련된 WAS 등 적용되어 있는 SW 등이 JDK 1.8, Servlet 3.1를 지원하는지 확인하고 필요 시 업그레이드를 수행하십시오. ===== 업그레이드 방법 ===== ==== 1. 실행환경 library 변경 ==== === 1-1. Maven을 사용하는 경우 === Maven을 사용하는 경우 프로젝트에서 사용하는 pom.xml 파일을 수정하여 업그레이드를 진행할 수 있습니다. \\ 기본적으로 표준프레임워크 실행환경에서 사용되는 오픈소스 라이브러리들만을 업그레이드 하고자 하는 경우 \\ pom.xml 파일에서 패키지명을 org.egorframe.rte로 변경하고 버전은 4.0.0으로 업그레이드 하기 바랍니다. 변경 전 (예) egovframework.rte egovframework.rte.psl.dataaccess 3.10.0 변경 후 (예) org.egovframe.rte org.egovframe.rte.psl.dataaccess 4.0.0 만약 표준프레임워크의 버전을 property를 사용하여 일괄적으로 관리하는 경우 property에서 변경합니다. \\ property의 이름은 프로젝트에 따라 다를 수 있습니다. 변경 전 (예) 4.3.25.RELEASE 3.10.0 변경 후 (예) 5.3.6 4.0.0 또한 표준프레임워크 Maven Reposieoty를 HTTP를 사용한 설정에서 HTTPS를 사용하는 설정을 변경하시기 바랍니다. \\ 변경 전 http://maven.egovframe.go.kr/maven/ http://maven.egovframe.kr:8080/maven/ http://www.egovframe.go.kr/maven/ 변경 후 https://maven.egovframe.go.kr/maven/ === 1-2. 실행환경 패키지명 변경 === 표준프레임워크 4.0.0 버전부터 실행환경의 패키지명을 org.egovframe.rte로 변경하였으므로, 실행환경을 import한 소스에 변경된 패키지명을 사용하시기 바랍니다. \\ 표준프레임워크 개발환경에서 Search 기능에서 기존의 패키지명인 egovframework.rte 로 검색한 후, \\ 변경할 패키지명인 org.egovframe.rte로 일괄로 변경하여 사용할 수 있습니다. {{:egovframework:rte4.0:fdl:modifypackagename.png?700}} === 1-3. context-common.xml 설정 변경 === context-common.xml 파일의 다국어처리를 위한 Bean 설정에 실행환경의 ID Generation, Property 라이브러리 경로 설정을 패키지명 변경에 맞춰 수정하시기 바랍니다. \\ 변경 전 classpath*:egovframework/message/com/**/* classpath:/egovframework/rte/fdl/idgnr/messages/idgnr classpath:/egovframework/rte/fdl/property/messages/properties classpath:/egovframework/egovProps/globals 변경 후 classpath*:egovframework/message/com/**/* classpath:/org/egovframe/rte/fdl/idgnr/messages/idgnr classpath:/org/egovframe/rte/fdl/property/messages/properties classpath:/egovframework/egovProps/globals ==== 2. 간소화 서비스 설정 변경 === 표준프레임워크에서 제공하는 간소화 서비스인 Spring Security 설정 간소화, Session 방식 접근제어, Crypto 간소화를 업그레이드 하시는 경우 변경된 내용을 확인하시기 바랍니다. \\ * Spring Security 설정 간소화 변경 사항([[egovframework:rte4.0:fdl:server_security:xmlschema|상세보기]]) * 스키마정의(XSD) 파일명 변경 변경 전 http://www.springframework.org/schema/security/spring-security-4.2.xsd http://maven.egovframe.go.kr/schema/egov-security/egov-security-3.10.0.xsd 변경 후 http://www.springframework.org/schema/security/spring-security.xsd http://maven.egovframe.go.kr/schema/egov-security/egov-security-4.0.0.xsd * Session 방식 접근제어 변경 사항([[egovframework:rte4.0:fdl:access|상세보기]]) * 스키마정의(XSD) 파일명 변경 변경 전 http://maven.egovframe.go.kr/schema/egov-access/egov-access-3.10.0.xsd 변경 후 http://maven.egovframe.go.kr/schema/egov-access/egov-access-4.0.0.xsd * Crypto 간소화 변경 사항([[egovframework:rte4.0:fdl:crypto|상세보기]]) * 스키마정의(XSD) 파일명 변경 변경 전 http://maven.egovframe.go.kr/schema/egov-crypto/egov-crypto-3.10.0.xsd 변경 후 http://maven.egovframe.go.kr/schema/egov-crypto/egov-crypto-4.0.0.xsd ==== 3. LDAP 라이브러리 변경 ==== Spring Framework 버전의 변경으로 LDAP 라이브러리 버전 변경이 필요합니다. 변경 전 (예) org.springframework.ldap spring-ldap-core 2.0.2.RELEASE 변경 후 (예) org.springframework.ldap spring-ldap-core 2.3.3.RELEASE ==== 4. Jackson 라이브러리 변경 ==== JSON 변환에 사용되는 Jackson 라이브러리 버전 변경이 필요합니다. 변경 전 (예) com.fasterxml.jackson.core jackson-core 2.5.1 com.fasterxml.jackson.core jackson-annotations 2.5.1 com.fasterxml.jackson.core jackson-databind 2.5.1 변경 후 (예) com.fasterxml.jackson.core jackson-core 2.11.4 com.fasterxml.jackson.core jackson-annotations 2.11.4 com.fasterxml.jackson.core jackson-databind 2.11.4 ==== 5. EgovBindingInitializer 관련 변경 ==== Spring Framework 버전의 변경으로 WebBindingInitializer 인터페이스의 initBinder 메소드의 설정이 변경되었으므로 \\ WebBindingInitializer 인터페이스의 구현클래스인 EgovBindingInitializer 클래스를 사용하는 경우 다음과 같은 코드 변경이 필요합니다. 변경 전 (예) public class EgovBindingInitializer implements WebBindingInitializer { public void initBinder(WebDataBinder binder, WebRequest request) { SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); dateFormat.setLenient(false); binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, false)); binder.registerCustomEditor(String.class, new StringTrimmerEditor(false)); } } 변경 후 (예) public class EgovBindingInitializer implements WebBindingInitializer { public void initBinder(WebDataBinder binder) { SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); dateFormat.setLenient(false); binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, false)); binder.registerCustomEditor(String.class, new StringTrimmerEditor(false)); } } ==== 6. 스프링 프레임워크 태그 변경 ==== Spring Framework 버전의 변경으로 태그의 commandName 옵션이 modelAttribute로 변경되었으므로 다음과 같은 코드 변경이 필요합니다. 변경 전 (예) 변경 후 (예) ==== 7. log4j 설정 추가 ==== 표준프레임워크 실행환경의 패키지명이 org.egovframe.rte로 변경됨에 따라 실행환경에서 발생하는 로그를 확인하기 위해 \\ 로깅 환경설정 파일인 log4j2.xml 파일에 다음과 같은 설정 추가가 필요합니다. 설정 추가 (예) ===== 기타 알 수 없는 충돌이 발생하는 경우 ===== 프로젝트에 따라서 기존에 사용하던 라이브러리, 코드, WAS, DB 등과의 충돌이 발생할 수 있습니다. \\ 알 수 없는 충돌이 발생하고 해결이 어려운 경우 표준프레임워크센터에 프로젝트의 환경 및 에러메시지를 포함하여 문의를 주시기 바랍니다.