SW/Java

자카르타 EE 10과 글래스피쉬 7로 업그레이드하는 방법

얇은생각 2023. 7. 28. 07:30
반응형

이전 버전의 자카르타 EE 또는 Java EE에서 자카르타 EE 10으로 업그레이드하는 것은 다소 까다로울 수 있으며 세부 사항에 대한 추가적인 주의가 필요할 수 있습니다. 발생할 수 있는 주요 사항 중 하나는 기존 코드와 라이브러리가 호환되는지 확인하는 것입니다. 일부 라이브러리는 여전히 javax 패키지를 사용하고 있을 수 있으며, 이로 인해 Eclipse GlassFish 7과 같은 자카르타 EE 서버에서 응용 프로그램을 실행할 때 충돌이 발생할 수 있습니다. 또한 자카르타 EE 10에서 제거된 일부 사용되지 않는 API에 문제가 발생할 수 있습니다.

OmniFish GitHub 저장소에 만든 자동화 도구와 사용 방법에 대한 예제가 있습니다.

 

 

자카르타 EE 10과 글래스피쉬 7로 업그레이드하는 방법

 

 

과제 유형

자카르타 EE 10 또는 GlassFish 7로 업그레이드할 때의 문제는 다음과 같은 세 가지 주요 범주로 분류됩니다:

  • javax 패키지 접두사를 자카르타로 변경하려면 이전 패키지에 대한 모든 참조를 업데이트해야 합니다
  • 사용되지 않는 주석을 대체 주석으로 대체해야 할 수 있습니다
  • 직접적인 대안이 없는 제거된 API를 사용하는 코드 다시 쓰기

 

위의 모든 내용은 코드베이스뿐만 아니라 응용 프로그램에서 사용하는 모든 종속성에도 적용됩니다. 많은 인기 있는 도서관들은 이미 자카르타 EE 10과 호환되는 새로운 버전을 가지고 있기 때문에 그것들을 업데이트하기에 충분합니다. 그러나 일부 도서관은 자카르타 EE10을 지원하지 않을 수 있으며, 특별한 조정이 필요합니다. 다행히도 소스 코드 수준과 이진(바이트 코드) 수준 모두에서 이를 자동화하는 도구가 있습니다.

  

 

업그레이드 단계를 자동화하는 기존 툴

다행히도 OpenRewrite, WindUp Eclipse Transformer와 같은 자유 및 오픈 소스 도구를 사용하여 많은 과제를 자동화할 수 있습니다. OpenRewrite는 새로운 자카르타 접두사로 이전 javax 패키지에 대한 모든 참조를 업데이트하는 것과 같이 응용 프로그램의 소스 코드를 자동으로 변경할 수 있는 강력한 도구입니다.

OpenRewrite를 사용하기 위해서는 자카르타 EE 10 마이그레이션을 위한 레시피가 필요합니다. WindUp은 그러한 레시피를 제공합니다. 뿐만 아니라. 또한 WindUp UI를 제공하며 응용프로그램을 자동으로 분석하고 업그레이드하는 데 필요한 모든 변경사항을 보고한 다음 후드 아래의 OpenRewrite를 사용하여 변경사항을 적용할 수 있습니다.

그러나 Eclipse Transformer는 최종 JAR, WAR 또는 EAR 이진 파일을 자동으로 변환할 수 있습니다. 이 기능은 자카르타 EE 10 런타임에서 이전 응용 프로그램을 실행하려고 하거나 응용 프로그램의 일부 또는 종속성을 쉽게 업그레이드하거나 재팩터링할 수 없는 경우에 유용합니다.

이러한 모든 도구를 사용하면 자카르타 EE 10으로 업그레이드할 때 시간과 노력을 절약할 수 있으므로 애플리케이션 개발의 다른 중요한 측면에 집중할 수 있습니다. 그러나 이러한 툴의 변경 사항을 검토하고 테스트하여 의도하지 않은 결과를 초래하지 않도록 하는 것이 여전히 중요합니다.

 

 

자카르타 EE 10의 역호환성 변화 대처

대부분 자카르타 페이스(JSF)와 관련된 일부 라이브러리는 아직 자카르타 EE 10과 호환되는 버전을 제공하지 않을 수 있습니다. 그들은 여전히 플랫폼에서 제거된 API에 의존할 수 있습니다. 응용프로그램에서 이러한 라이브러리를 식별하고 적절한 작업을 수행하는 것이 중요합니다.

한 가지 옵션은 호환되지 않는 라이브러리를 유사한 기능을 제공하는 다른 호환 라이브러리로 바꾸는 것입니다. 라이브러리가 오픈 소스인 경우 다른 옵션은 해당 라이브러리의 코드를 다시 작성하여 제거된 API에 종속되지 않도록 하는 것입니다. 경우에 따라 이전 API와 새 API 간의 차이를 메우기 위해 호환성 계층을 제공해야 할 수도 있습니다. 예를 들어 제거된 API의 코드를 애플리케이션에 직접 제공하는 것입니다. 여기에는 이전 API를 에뮬레이트하고 필요한 기능을 제공하는 별도의 모듈 또는 라이브러리를 생성하는 작업이 포함될 수 있습니다. 접근 방식과 상관없이 자카르타 EE10 플랫폼에서 애플리케이션이 원활하게 실행되도록 하려면 이러한 호환성 문제를 해결하는 것이 중요합니다.

 

 

이 모든 문제를 해결하는 방법

먼저 기존 애플리케이션을 업그레이드하는 방법에 대한 예제를 포함한 저장소를 만들었습니다.

예를 들어 javax-jakarta-transform-full-war 예제에서는 Eclipse Transform maven 플러그인을 사용하여 WAR 파일을 수정하고 분해된 WAR 디렉토리를 사용하여 모든 항목을 jakarta. 접두사를 사용하도록 변환하는 방법을 보여 줍니다. 이 구성을 사용하면 관리 콘솔을 통해 결과 WAR 파일을 GlassFish 7에 배포할 수 있으며, Netbeans와 같은 IDE에서 응용 프로그램을 실행하여 GlassFish 7에서 정상적으로 디버깅할 수도 있습니다.

OmniFish 블로그에서 자카르타 EE 10으로 업그레이드라는 제 기사 시리즈에서 애플리케이션을 자카르타 EE 10으로 쉽게 업그레이드하는 방법에 대한 추가 지침을 찾을 수 있습니다. 현재 다음 주제를 다룹니다:

  • Eclipse Transformer로 애플리케이션 변환
  • 응용 프로그램 소스 코드 변환

 

가까운 미래에 자카르타 EE 10으로 종속성을 업그레이드하는 방법, 필요한 경우 종속성을 변환하는 방법, 자카르타 EE 10에서 제거된 API 사용을 제거하기 위해 코드를 리팩터링하는 방법 등과 같은 자세한 내용을 다루기 위해 더 많은 기사를 추가할 예정입니다. 이번 일련의 기사를 통해 자카르타 EE 10으로 쉽고 빠르게 업그레이드 할 수 있기를 바랍니다.

반응형