Jakarta EE Migration Araçları (2026): Java EE'den Jakarta'ya Geçiş Rehberi
Java EE’den (javax.*) Jakarta EE’ye (jakarta.*) geçiş süreci, modern Java ekosistemine ayak uydurmak isteyen kurumsal projeler için zorunlu bir adımdır. 2026 itibarıyla bu dönüşümü manuel yapmak yerine, süreci otomatikleştiren güçlü Jakarta EE migration araçları kullanılmaktadır.
Bu rehberde, projenizi en az hasarla ve en hızlı şekilde taşımanızı sağlayacak OpenRewrite, Eclipse Transformer, Tomcat Migration Tool gibi güncel araçları, özelliklerini ve hangi senaryoda hangisini seçmeniz gerektiğini detaylıca inceliyoruz.
Kaynak kodunuz varsa OpenRewrite, sadece derlenmiş dosyaları (WAR/JAR) dönüştürecekseniz Eclipse Transformer tercih edilmelidir.
1. En Popüler ve Önerilen Migration Araçları
Piyasada javax to jakarta dönüşümünü sağlayan birçok araç bulunuyor. Aşağıdaki tabloda 2026'nın en çok tercih edilen migration araçlarını karşılaştırmalı olarak görebilirsiniz:
| Araç | Tip | Ne Yapar? | En İyi Kullanım Senaryosu | Ücretsiz mi? |
|---|---|---|---|---|
| OpenRewrite | Kaynak Kod Dönüştürücü | Kaynak kodda javax → jakarta değişimi, bağımlılık güncellemesi ve XML namespace yönetimi sağlar. |
Kaynak kod elinizdeyse en güçlü ve kapsamlı seçenektir. | Evet |
| Eclipse Transformer | Binary + Kaynak Dönüştürücü | JAR/WAR/EAR ve kaynak dosyalarını dönüştürür. | Binary dönüşüm, 3. parti kütüphane uyumluluğu ve hızlı testler. | Evet |
| Apache Tomcat Migration Tool | Binary Dönüştürücü | WAR, klasör veya JAR dosyalarındaki paket isimlerini günceller. | Tomcat 9'dan Tomcat 10+ sürümlerine geçiş yapacaklar. | Evet |
| IntelliJ IDEA (Refactor) | IDE Aracı | “Migrate Packages and Classes” menüsü ile proje içi refactoring yapar. | Küçük ve orta ölçekli projeler, hızlı denemeler. | Ultimate (Ücretli) / Community (Sınırlı) |
| Konveyor / Windup (MTA) | Analiz + Dönüşüm | Önce detaylı analiz raporu çıkarır, ardından dönüşüm adımlarını uygular. | Büyük kurumsal projeler ve risk analizi gerektiren durumlar. | Evet (Red Hat destekli) |
2. Araçların Özellikleri ve Kullanımları
OpenRewrite (En Çok Tavsiye Edilen)
Kaynak kodu analiz ederek akıllıca refactor eden OpenRewrite, Jakarta EE 9, 10 ve 11 için hazır recipe (reçete) dosyaları sunar. Sadece kodları değiştirmekle kalmaz; Jackson, Jetty gibi dış bağımlılıkları (dependency) da otomatik günceller.
Örnek Maven Kullanımı:
mvn -U org.openrewrite.maven:rewrite-maven-plugin:run \
-Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-migrate-java:RELEASE \
-Drewrite.activeRecipes=org.openrewrite.java.migrate.jakarta.JakartaEE10
Eclipse Transformer
Hem kaynak kodları hem de derlenmiş binary (class, jar, war) dosyalarını dönüştürebilir. Kendi kodunuz dışındaki üçüncü parti kütüphaneleri (third-party libraries) dönüştürmek istediğinizde hayat kurtarır. Komut satırı (CLI) ve Maven plugin olarak çalıştırılabilir.
Apache Tomcat Migration Tool for Jakarta EE
Özellikle altyapısında Tomcat kullanan ekipler için tasarlanmıştır. Kullanımı son derece basittir ve saniyeler içinde eski WAR dosyanızı yeni yapıya uygun hale getirir.
Komut Satırı Kullanımı:
java -jar jakartaee-migration-*-shaded.jar kaynak.war hedef.war
IntelliJ IDEA Migration Menüsü
Geliştirme ortamından çıkmadan çözüm arayanlar için harikadır. IDE üzerinden Refactor → Migrate Packages and Classes → Java EE to Jakarta EE yolunu izleyerek hızlıca dönüşüm başlatabilirsiniz.
3. Hangi Aracı Ne Zaman Seçmelisiniz?
- Kaynak kodunuz var ve Maven/Gradle kullanıyorsanız: Kesinlikle OpenRewrite tercih edilmeli.
- Sadece derlenmiş bir WAR/JAR'ı hızlıca dönüştürmek istiyorsanız: Eclipse Transformer veya Tomcat Migration Tool.
- Projede üçüncü parti kütüphaneler ağırlıktaysa ve onlara müdahale edemiyorsanız: Eclipse Transformer.
- Büyük kurumsal bir uygulamanız varsa ve önce yönetime bir "analiz raporu" sunmanız gerekiyorsa: Konveyor / Windup.
- Küçük bir projeniz varsa ve anında sonuç görmek istiyorsanız: IntelliJ IDEA.
4. Migration Sürecinde Önemli Notlar
Bu araçlar paket isimlerini (javax.* to jakarta.*) ve çoğu XML namespace’ini kusursuz şekilde değiştirir. Ancak tüm işi %100 otomatik çözmelerini beklemeyin. Aşağıdaki durumlarda manuel kontrol ve efor gereklidir:
- Kaldırılan API'ler: Eski sürümlerde olan ancak Jakarta EE ile tamamen projeden çıkarılan API'lerin alternatiflerini manuel yazmanız gerekir.
- Üçüncü Parti Kütüphane Uyumsuzlukları: Kullandığınız bir kütüphanenin henüz Jakarta EE destekli sürümü çıkmamış olabilir.
- Deployment Descriptor (web.xml vb.): Özel yazılmış XML yapılandırmalarında şema versiyonlarını elle düzeltmeniz gerekebilir.
- Birim Testler (Unit Tests): Mock nesneleri ve test altyapılarının (örneğin eski JUnit sürümleri) güncellenmesi gerekebilir.