{"id":"70817610-f251-479f-bfaa-228fc25e030a","shortId":"7RK29c","kind":"skill","title":"javax-to-jakarta-migration","tagline":"Migrate Java code from javax.* to jakarta.* namespace. Use when upgrading to Tomcat 11, Jakarta EE 10, or when javax imports are detected in the codebase.","description":"# javax → jakarta Migration Skill\n\n## When to Use\n- Upgrading to Tomcat 11 / Jakarta EE 10+\n- Code review detects `javax.*` imports\n- Migrating an existing project to the jakarta namespace\n\n## Procedure\n\n### Step 1 — Scan for javax Usage\nSearch the codebase for all `javax.*` imports that need migration:\n```\njavax.servlet.*      → jakarta.servlet.*\njavax.persistence.*  → jakarta.persistence.*\njavax.validation.*   → jakarta.validation.*\njavax.annotation.*   → jakarta.annotation.*\njavax.inject.*       → jakarta.inject.*\njavax.enterprise.*   → jakarta.enterprise.*\njavax.faces.*        → jakarta.faces.*\njavax.ws.rs.*        → jakarta.ws.rs.*\njavax.el.*           → jakarta.el.*\njavax.json.*         → jakarta.json.*\njavax.mail.*         → jakarta.mail.*\njavax.websocket.*    → jakarta.websocket.*\n```\n\n**Do NOT migrate** these (they remain in `javax.*`):\n- `javax.sql.*` — part of JDK\n- `javax.naming.*` — part of JDK (JNDI)\n- `javax.crypto.*` — part of JDK\n- `javax.net.*` — part of JDK\n- `javax.security.auth.*` — part of JDK\n- `javax.swing.*`, `javax.xml.parsers.*` — JDK packages\n\n### Step 2 — Update pom.xml\nReplace dependency coordinates:\n\n| Old | New |\n|-----|-----|\n| `javax.servlet:javax.servlet-api` | `jakarta.servlet:jakarta.servlet-api:6.0.0` |\n| `javax.persistence:javax.persistence-api` | `jakarta.persistence:jakarta.persistence-api:3.1.0` |\n| `javax.validation:validation-api` | `jakarta.validation:jakarta.validation-api:3.0.2` |\n| `javax.annotation:javax.annotation-api` | `jakarta.annotation:jakarta.annotation-api:2.1.1` |\n\n### Step 3 — Update web.xml (if present)\n```xml\n<!-- Old namespace -->\n<web-app xmlns=\"http://xmlns.jcp.org/xml/ns/javaee\" version=\"4.0\">\n\n<!-- New namespace -->\n<web-app xmlns=\"https://jakarta.ee/xml/ns/jakartaee\" version=\"6.0\">\n```\n\n### Step 4 — Update Java Source Files\nReplace all `javax.` imports with `jakarta.` equivalents in `.java` files.\n\n### Step 5 — Verify\n1. Run `mvn clean compile` or `gradlew build` — fix any compilation errors\n2. Run `mvn test` or `gradlew test` — ensure all tests pass\n3. Search for any remaining `javax.*` imports (excluding JDK packages)\n\n### Output\nProvide a migration summary listing all files changed, imports replaced, and any manual steps required.","tags":["javax","jakarta","migration","awesome","copilot","github","agent-skills","agents","custom-agents","github-copilot","hacktoberfest","prompt-engineering"],"capabilities":["skill","source-github","skill-javax-to-jakarta-migration","topic-agent-skills","topic-agents","topic-awesome","topic-custom-agents","topic-github-copilot","topic-hacktoberfest","topic-prompt-engineering"],"categories":["awesome-copilot"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/github/awesome-copilot/javax-to-jakarta-migration","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add github/awesome-copilot","source_repo":"https://github.com/github/awesome-copilot","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 31975 github stars · SKILL.md body (2,238 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-03T00:52:06.200Z","embedding":null,"createdAt":"2026-04-28T12:53:02.497Z","updatedAt":"2026-05-03T00:52:06.200Z","lastSeenAt":"2026-05-03T00:52:06.200Z","tsv":"'1':61,197 '10':22,45 '11':19,42 '2':134,209 '2.1.1':170 '3':172,220 '3.0.2':163 '3.1.0':155 '4':179 '5':195 '6.0.0':148 'api':144,147,151,154,159,162,166,169 'build':204 'chang':238 'clean':200 'code':8,46 'codebas':31,68 'compil':201,207 'coordin':139 'depend':138 'detect':28,48 'ee':21,44 'ensur':216 'equival':190 'error':208 'exclud':227 'exist':53 'file':183,193,237 'fix':205 'gradlew':203,214 'import':26,50,72,187,226,239 'jakarta':4,12,20,33,43,57,189 'jakarta.annotation':83,167,168 'jakarta.el':93 'jakarta.enterprise':87 'jakarta.faces':89 'jakarta.inject':85 'jakarta.json':95 'jakarta.mail':97 'jakarta.persistence':79,152,153 'jakarta.servlet':77,145,146 'jakarta.validation':81,160,161 'jakarta.websocket':99 'jakarta.ws.rs':91 'java':7,181,192 'javax':2,10,25,32,49,64,71,107,186,225 'javax-to-jakarta-migr':1 'javax.annotation':82,164,165 'javax.crypto':117 'javax.el':92 'javax.enterprise':86 'javax.faces':88 'javax.inject':84 'javax.json':94 'javax.mail':96 'javax.naming':112 'javax.net':121 'javax.persistence':78,149,150 'javax.security.auth':125 'javax.servlet':76,142,143 'javax.sql':108 'javax.swing':129 'javax.validation':80,156 'javax.websocket':98 'javax.ws.rs':90 'javax.xml.parsers':130 'jdk':111,115,120,124,128,131,228 'jndi':116 'list':235 'manual':243 'migrat':5,6,34,51,75,102,233 'mvn':199,211 'namespac':13,58 'need':74 'new':141 'old':140 'output':230 'packag':132,229 'part':109,113,118,122,126 'pass':219 'pom.xml':136 'present':176 'procedur':59 'project':54 'provid':231 'remain':105,224 'replac':137,184,240 'requir':245 'review':47 'run':198,210 'scan':62 'search':66,221 'skill':35 'skill-javax-to-jakarta-migration' 'sourc':182 'source-github' 'step':60,133,171,178,194,244 'summari':234 'test':212,215,218 'tomcat':18,41 'topic-agent-skills' 'topic-agents' 'topic-awesome' 'topic-custom-agents' 'topic-github-copilot' 'topic-hacktoberfest' 'topic-prompt-engineering' 'updat':135,173,180 'upgrad':16,39 'usag':65 'use':14,38 'valid':158 'validation-api':157 'verifi':196 'web.xml':174 'xml':177","prices":[{"id":"a8e3d78a-d6a5-4fcb-81ba-0d48a5515352","listingId":"70817610-f251-479f-bfaa-228fc25e030a","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"github","category":"awesome-copilot","install_from":"skills.sh"},"createdAt":"2026-04-28T12:53:02.497Z"}],"sources":[{"listingId":"70817610-f251-479f-bfaa-228fc25e030a","source":"github","sourceId":"github/awesome-copilot/javax-to-jakarta-migration","sourceUrl":"https://github.com/github/awesome-copilot/tree/main/skills/javax-to-jakarta-migration","isPrimary":false,"firstSeenAt":"2026-04-28T12:53:02.497Z","lastSeenAt":"2026-05-03T00:52:06.200Z"}],"details":{"listingId":"70817610-f251-479f-bfaa-228fc25e030a","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"github","slug":"javax-to-jakarta-migration","github":{"repo":"github/awesome-copilot","stars":31975,"topics":["agent-skills","agents","ai","awesome","custom-agents","github-copilot","hacktoberfest","prompt-engineering"],"license":"mit","html_url":"https://github.com/github/awesome-copilot","pushed_at":"2026-05-02T19:44:45Z","description":"Community-contributed instructions, agents, skills, and configurations to help you make the most of GitHub Copilot.","skill_md_sha":"549bb86628d370a0c1accda0c0369a09562909c0","skill_md_path":"skills/javax-to-jakarta-migration/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/github/awesome-copilot/tree/main/skills/javax-to-jakarta-migration"},"layout":"multi","source":"github","category":"awesome-copilot","frontmatter":{"name":"javax-to-jakarta-migration","description":"Migrate Java code from javax.* to jakarta.* namespace. Use when upgrading to Tomcat 11, Jakarta EE 10, or when javax imports are detected in the codebase."},"skills_sh_url":"https://skills.sh/github/awesome-copilot/javax-to-jakarta-migration"},"updatedAt":"2026-05-03T00:52:06.200Z"}}