티스토리 뷰

구글 Guava 버전 업그레이드를 작업하는 중, 하위 호환성 이슈를 경험한 내용을 공유합니다.


I. 버전 변경 사항

- 변경전: 11.0.2

- 변경후: 18.0 (최신 버전)


II. 하위 호환성 이슈

1. com.google.common.base.StopWatch 생성자

최신 버전에서는 기존 생성자는 deprecated가 되었고, 대신에 createUnstarted와 createStarted 메소드를 제공합니다. 시간측정이 시작되지 않은 StopWatch 인스턴스를 생성할 경우에는 createUnstarted를, 즉시 시작하는 인스턴스를 생성할 경우에는 createStarted를 사용해야합니다.


2.StopWatch의 elapsedMillis 메소드

기존에는 elapsedMillis를 호출하면 현재 측정된 시간(밀리세컨드값)을 조회할 수 있었지만, 아쉽게도 최신 버전에서는 저 메소드 이름과 파라미터가 변경됐습니다. 최신 버전에서는 다음과 같은 방식으로 시간 타입을 파라미터로 설정해서 사용해야 합니다.


- 메소드 이름: elapsed

- 파라미터: java.util.concurrent.TimeUnit


예)

Stopwatch sw = Stopwatch.createUnstarted();

long elapsedTime = sw.elapsed(TimeUnit.MILLISECONDS);


참고 사이트: https://github.com/hekailiang/squirrel/issues/15


3. com.google.common.io.NullOutputStream 삭제

기존 NullOutputStream은 삭제됐으며,Apache Commons 프로젝트의 NullOutputStream으로 대체하는게 좋습니다. Maven Dependency 는 아래 설정을 사용하면 됩니다.


<dependency>

 <groupId>org.apache.commons</groupId>

 <artifactId>commons-io</artifactId>

 <version>1.3.2</version>

</dependency>


참고 사이트: https://issues.apache.org/jira/browse/HBASE-9667


p.s Guava 가 궁굼하신 분들은 Outsider님의 블로그(http://blog.outsider.ne.kr/710) 를 참고하시면 도움이 될 것 같네요. ^^

저작자 표시 비영리 변경 금지
신고
댓글
댓글쓰기 폼