This is an automated email from the ASF dual-hosted git repository.

matthiasblaesing pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/netbeans.git


The following commit(s) were added to refs/heads/master by this push:
     new bf55d4af21 Improve code REST code generation JavaEE 9+ environments 
(jakarta namespace change)
     new fc952e1f9c Merge pull request #6728 from matthiasblaesing/jakarta2
bf55d4af21 is described below

commit bf55d4af211feeaca77a493c5e2da678e7421010
Author: Matthias Bläsing <[email protected]>
AuthorDate: Fri Nov 3 21:33:03 2023 +0100

    Improve code REST code generation JavaEE 9+ environments (jakarta namespace 
change)
    
    Manually tested were:
    
    - RESTful Java Client
    - RESTful Web Services from Entity Classes
    - RESTful Web Services from Database
    - RESTful Web Services from Pattern
---
 .../netbeans/modules/websvc/rest/RestUtils.java    |  41 +++++---
 .../websvc/rest/client/ClientJavaSourceHelper.java |  14 +--
 .../rest/client/JaxRsGenerationStrategy.java       |  70 +++++++------
 .../modules/websvc/rest/codegen/Constants.java     |  70 ++++++++++---
 .../rest/codegen/EntityResourcesGenerator.java     |  49 ++++++---
 .../rest/codegen/GenericResourceGenerator.java     |  46 +++++----
 .../websvc/rest/codegen/RestFacadeMethod.java      |  22 ++--
 .../modules/websvc/rest/codegen/RestMethod.java    |   2 +-
 .../codegen/SpringEntityResourcesGenerator.java    |  17 ++--
 .../websvc/rest/codegen/model/EntityClassInfo.java |  41 +++++---
 .../websvc/rest/codegen/model/SourceModeler.java   |  79 ++++++++++-----
 .../codegen/resources/GenericResource.template     |   5 +
 .../websvc/rest/support/JavaSourceHelper.java      |  16 ++-
 .../netbeans/modules/websvc/rest/wizard/Util.java  |  11 +-
 .../rest/wizard/fromdb/EjbFacadeGenerator.java     | 112 ++++++++++++++-------
 .../websvc/rest/wizard/fromdb/Operation.java       |  23 +++--
 .../websvc/rest/model/api/RestConstants.java       |  64 ++++++++++--
 .../rest/model/impl/RestApplicationsImpl.java      |   1 +
 .../websvc/rest/model/impl/RestServicesImpl.java   |   6 ++
 .../modules/websvc/rest/model/impl/Utils.java      |  84 +++++++++++-----
 .../modules/websvc/rest/spi/RestSupport.java       |   4 +-
 .../j2ee/persistence/action/GenerationOptions.java |  68 ++++++++++---
 .../wizard/fromdb/EntityClassesPanel.java          |   7 +-
 .../wizard/fromdb/JavaPersistenceGenerator.java    |   8 +-
 24 files changed, 594 insertions(+), 266 deletions(-)

diff --git 
a/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/RestUtils.java 
b/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/RestUtils.java
index 740863c808..18d880bf33 100644
--- a/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/RestUtils.java
+++ b/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/RestUtils.java
@@ -244,7 +244,8 @@ public class RestUtils {
         List<? extends AnnotationMirror> annotations = 
JavaSourceHelper.getClassAnnotations(rSrc);
         for (AnnotationMirror annotation : annotations) {
             String cAnonType = annotation.getAnnotationType().toString();
-            if (RestConstants.PATH.equals(cAnonType) ) {
+            if (RestConstants.PATH_JAKARTA.equals(cAnonType)
+                    || RestConstants.PATH.equals(cAnonType)) {
                 path = getValueFromAnnotation(annotation);
             }
         }
@@ -253,12 +254,13 @@ public class RestUtils {
 
     public static boolean isStaticResource(JavaSource src) {
         List<? extends AnnotationMirror> annotations = 
JavaSourceHelper.getClassAnnotations(src);
-        if (annotations != null && annotations.size() > 0) {
+        if (annotations != null) {
             for (AnnotationMirror annotation : annotations) {
                 String classAnonType = 
annotation.getAnnotationType().toString();
-                if (RestConstants.PATH.equals(classAnonType)) {
+                if (RestConstants.PATH_JAKARTA.equals(classAnonType)
+                        || RestConstants.PATH.equals(classAnonType)) {
                     return true;
-                } 
+                }
             }
         }
         return false;
@@ -266,10 +268,11 @@ public class RestUtils {
 
     public static boolean isConverter(JavaSource src) {
         List<? extends AnnotationMirror> annotations = 
JavaSourceHelper.getClassAnnotations(src);
-        if (annotations != null && annotations.size() > 0) {
+        if (annotations != null) {
             for (AnnotationMirror annotation : annotations) {
                 String classAnonType = 
annotation.getAnnotationType().toString();
-                if (Constants.XML_ROOT_ELEMENT.equals(classAnonType)) {
+                if (Constants.XML_ROOT_ELEMENT.equals(classAnonType)
+                        || 
Constants.XML_ROOT_ELEMENT_JAKARTA.equals(classAnonType)) {
                     return true;
                 }
             }
@@ -281,12 +284,16 @@ public class RestUtils {
         List<MethodTree> trees = JavaSourceHelper.getAllMethods(src);
         for (MethodTree tree : trees) {
             List<? extends AnnotationTree> mAnons = 
tree.getModifiers().getAnnotations();
-            if (mAnons != null && mAnons.size() > 0) {
+            if (mAnons != null) {
                 for (AnnotationTree mAnon : mAnons) {
                     String mAnonType = mAnon.getAnnotationType().toString();
-                    if (RestConstants.PATH_ANNOTATION.equals(mAnonType) || 
RestConstants.PATH.equals(mAnonType)) {
+                    if (RestConstants.PATH_ANNOTATION.equals(mAnonType)
+                            || RestConstants.PATH_JAKARTA.equals(mAnonType)
+                            || RestConstants.PATH.equals(mAnonType)) {
                         return true;
-                    } else if (RestConstants.GET_ANNOTATION.equals(mAnonType) 
|| RestConstants.GET.equals(mAnonType)) {
+                    } else if (RestConstants.GET_ANNOTATION.equals(mAnonType)
+                            || RestConstants.GET_JAKARTA.equals(mAnonType)
+                            || RestConstants.GET.equals(mAnonType)) {
                         return true;
                     }
                 }
@@ -298,7 +305,7 @@ public class RestUtils {
     public static String findElementName(MethodTree tree) {
         String eName = "";
         List<? extends AnnotationTree> mAnons = 
tree.getModifiers().getAnnotations();
-        if (mAnons != null && mAnons.size() > 0) {
+        if (mAnons != null) {
             for (AnnotationTree mAnon : mAnons) {
                 eName = mAnon.toString();
                 if (eName.indexOf("\"") != -1) {
@@ -318,13 +325,16 @@ public class RestUtils {
             boolean isHttpGetMethod = false;
             boolean isXmlMime = false;
             List<? extends AnnotationTree> mAnons = 
tree.getModifiers().getAnnotations();
-            if (mAnons != null && mAnons.size() > 0) {
+            if (mAnons != null) {
                 for (AnnotationTree mAnon : mAnons) {
                     String mAnonType = mAnon.getAnnotationType().toString();
-                    if (RestConstants.GET_ANNOTATION.equals(mAnonType) || 
RestConstants.GET.equals(mAnonType)) {
+                    if (RestConstants.GET_ANNOTATION.equals(mAnonType)
+                            || RestConstants.GET_JAKARTA.equals(mAnonType)
+                            || RestConstants.GET.equals(mAnonType)) {
                         isHttpGetMethod = true;
-                    } else if 
(RestConstants.PRODUCE_MIME_ANNOTATION.equals(mAnonType) || 
-                            RestConstants.PRODUCE_MIME.equals(mAnonType)) {
+                    } else if 
(RestConstants.PRODUCE_MIME_ANNOTATION.equals(mAnonType)
+                            || 
RestConstants.PRODUCE_MIME_JAKARTA.equals(mAnonType)
+                            || RestConstants.PRODUCE_MIME.equals(mAnonType)) {
                         List<String> mimes = getMimeAnnotationValue(mAnon);
                          if (mimes.contains(Constants.MimeType.JSON.value()) ||
                             mimes.contains(Constants.MimeType.XML.value())) {
@@ -437,7 +447,8 @@ public class RestUtils {
         }
         return false;
     }
-    
+
+    // @todo: Needs to be adjusted for jakartaEE
     public static FileObject createApplicationConfigClass(final RestSupport 
restSupport, FileObject packageFolder,
             String name ) throws IOException
     {   
diff --git 
a/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/client/ClientJavaSourceHelper.java
 
b/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/client/ClientJavaSourceHelper.java
index 7331126053..1ba76dc168 100644
--- 
a/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/client/ClientJavaSourceHelper.java
+++ 
b/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/client/ClientJavaSourceHelper.java
@@ -121,6 +121,8 @@ public class ClientJavaSourceHelper {
                 cp.findResource("javax/ws/rs/core/Application.class") != null;
         boolean jaxRs2Available = cp != null &&
                 cp.findResource("javax/ws/rs/client/Client.class") != null;
+        boolean jakartaRsClientAvailable = cp != null &&
+                cp.findResource("jakarta/ws/rs/client/Client.class") != null;
         JaxRsStackSupport support = JaxRsStackSupport.getInstance(project);
         boolean jersey1AvailableOnServer = support != null &&
                 support.isBundled("com.sun.jersey.api.client.WebResource");
@@ -128,25 +130,25 @@ public class ClientJavaSourceHelper {
                 support.isBundled("org.glassfish.jersey.spi.Contract");
         ClientGenerationStrategy strategy = null;
         if (jersey2Available || jersey2AvailableOnServer) {
-            strategy = new JaxRsGenerationStrategy();
+            strategy = new JaxRsGenerationStrategy(jakartaRsClientAvailable);
         } else if (jersey1Available || jersey1AvailableOnServer) {
             strategy = new JerseyGenerationStrategy();
         }
         if (project != null && strategy == null) {
 
-            if (jaxRs2Available) {
-                strategy = new JaxRsGenerationStrategy();
+            if (jaxRs2Available || jakartaRsClientAvailable) {
+                strategy = new 
JaxRsGenerationStrategy(jakartaRsClientAvailable);
             } else if (jaxRs1Available) {
                 // JAX-RS 1.0 is on classpath but no Jersey; in this case 
project
                 // classpath needs to be enhanced with Jersey library but IDE 
has
                 // only Jersey 2.0. That's why JaxRsGenerationStrategy 
strategy is
                 // going to be used here:
-                strategy = new JaxRsGenerationStrategy();
+                strategy = new 
JaxRsGenerationStrategy(jakartaRsClientAvailable);
             }
         }
         // if all other tests were negative then generate the code using 
JAX-RS 2:
         if (strategy == null) {
-            strategy = new JaxRsGenerationStrategy();
+            strategy = new JaxRsGenerationStrategy(jakartaRsClientAvailable);
         }
         ProgressHandle handle = null;
         if (support == null) {
@@ -164,7 +166,7 @@ public class ClientJavaSourceHelper {
             handle = 
ProgressHandleFactory.createHandle(NbBundle.getMessage(ClientJavaSourceHelper.class,
 "MSG_creatingRESTClient"));
             handle.start();
             // add REST and Jersey dependencies
-            if (!jaxRs2Available && !jaxRs1Available) {
+            if (!jaxRs2Available && !jaxRs1Available && 
!jakartaRsClientAvailable) {
                 support.addJsr311Api(project);
                 support.extendsJerseyProjectClasspath(project);
             }
diff --git 
a/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/client/JaxRsGenerationStrategy.java
 
b/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/client/JaxRsGenerationStrategy.java
index 0b9b716078..dfc0162cd4 100644
--- 
a/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/client/JaxRsGenerationStrategy.java
+++ 
b/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/client/JaxRsGenerationStrategy.java
@@ -21,7 +21,6 @@ package org.netbeans.modules.websvc.rest.client;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
-import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
@@ -59,12 +58,21 @@ import java.util.EnumSet;
  *
  */
 class JaxRsGenerationStrategy extends ClientGenerationStrategy {
+
+    private final String packagePrefix;
+
+    public JaxRsGenerationStrategy(boolean jakarta) {
+        this.packagePrefix = jakarta ? "jakarta.ws.rs" : "javax.ws.rs";
+    }
     
     @Override
     protected void buildQueryFormParams(StringBuilder queryString){
-        queryString.append(";\n javax.ws.rs.core.Form form =");                
     // NOI18N
+        queryString.append(";\n ");                     // NOI18N
+        queryString.append(packagePrefix);
+        queryString.append(".core.Form form =");                     // NOI18N
         queryString.append("getQueryOrFormParams(queryParamNames, 
queryParamValues);\n");// NOI18N
-        queryString.append("javax.ws.rs.core.MultivaluedMap<String,String> map 
= form.asMap();\n");// NOI18N
+        queryString.append(packagePrefix);
+        queryString.append("core.MultivaluedMap<String,String> map = 
form.asMap();\n");// NOI18N
         
queryString.append("for(java.util.Map.Entry<String,java.util.List<String>> 
entry: ");   // NOI18N
         queryString.append("map.entrySet()){\n");                           // 
NOI18N
         queryString.append("java.util.List<String> list = 
entry.getValue();\n");// NOI18N
@@ -75,7 +83,8 @@ class JaxRsGenerationStrategy extends 
ClientGenerationStrategy {
     
     @Override
     protected void buildQParams(StringBuilder queryString){
-        queryString.append("javax.ws.rs.core.MultivaluedMap<String,String> 
mapOptionalParams = "); // NOI18N
+        queryString.append(packagePrefix);
+        queryString.append(".core.MultivaluedMap<String,String> 
mapOptionalParams = "); // NOI18N
         queryString.append("getQParams(optionalQueryParams);\n");           // 
NOI18N
         
queryString.append("for(java.util.Map.Entry<String,java.util.List<String>> 
entry: ");   // NOI18N
         queryString.append("mapOptionalParams.entrySet()){\n");                
           // NOI18N
@@ -94,12 +103,12 @@ class JaxRsGenerationStrategy extends 
ClientGenerationStrategy {
     {
      // add 3 fields
         ModifiersTree fieldModif =  
maker.Modifiers(Collections.<Modifier>singleton(Modifier.PRIVATE));
-        Tree typeTree = JavaSourceHelper.createTypeTree(copy, 
"javax.ws.rs.client.WebTarget"); //NOI18N
+        Tree typeTree = JavaSourceHelper.createTypeTree(copy, packagePrefix + 
".client.WebTarget"); //NOI18N
         VariableTree fieldTree = maker.Variable(fieldModif, "webTarget", 
typeTree, null); //NOI18N
         ClassTree modifiedClass = maker.addClassMember(classTree, fieldTree);
 
         fieldModif =  
maker.Modifiers(Collections.<Modifier>singleton(Modifier.PRIVATE));
-        typeTree = JavaSourceHelper.createTypeTree(copy, 
"javax.ws.rs.client.Client"); //NOI18N
+        typeTree = JavaSourceHelper.createTypeTree(copy, packagePrefix + 
".client.Client"); //NOI18N
         fieldTree = maker.Variable(fieldModif, "client", typeTree, null); 
//NOI18N
         modifiedClass = maker.addClassMember(modifiedClass, fieldTree);
 
@@ -161,9 +170,9 @@ class JaxRsGenerationStrategy extends 
ClientGenerationStrategy {
             resURI = getPathExpression(pf); //NOI18N
         }
 
-        String clientCreation = "   client = 
javax.ws.rs.client.ClientBuilder.newClient();";
+        String clientCreation = "   client = " + packagePrefix + 
".client.ClientBuilder.newClient();";
         if (security.isSSL()) {
-            clientCreation = "client = 
javax.ws.rs.client.ClientBuilder.newBuilder().sslContext(getSSLContext()).build();";
 // NOI18N
+            clientCreation = "client = " + packagePrefix + 
".client.ClientBuilder.newBuilder().sslContext(getSSLContext()).build();"; // 
NOI18N
         }
 
         String body =
@@ -291,20 +300,20 @@ class JaxRsGenerationStrategy extends 
ClientGenerationStrategy {
                 VariableTree objectParam = maker.Variable(paramModifier, 
                         "requestEntity", maker.Identifier("Object"), null); 
//NOI18N
                 paramList.add(objectParam);
-                bodyParam= "javax.ws.rs.client.Entity.entity(requestEntity,"+
+                bodyParam= packagePrefix + 
".client.Entity.entity(requestEntity,"+
                         requestMimeType.getMediaType()+")"; //NOI18N
             }
         }
         
-        if ("javax.ws.rs.core.Response".equals(responseType)) {         
//NOI18N
-            TypeElement clientResponseEl = copy.getElements().getTypeElement(
-                    "javax.ws.rs.core.Response");        //NOI18N
+        if ((packagePrefix + ".core.Response").equals(responseType)) {         
//NOI18N
+            TypeElement clientResponseEl = copy.getElements()
+                    .getTypeElement(packagePrefix + ".core.Response"); //NOI18N
             ret = "return "; //NOI18N
             responseTree = (clientResponseEl == null ?
-                copy.getTreeMaker().Identifier("javax.ws.rs.core.Response") : 
// NOI18N
+                copy.getTreeMaker().Identifier(packagePrefix + 
".core.Response") : // NOI18N
                 copy.getTreeMaker().QualIdent(clientResponseEl));
             bodyParam1 = (clientResponseEl == null ?
-                "javax.ws.rs.core.Response.class" :      //NOI18N
+                (packagePrefix + ".core.Response.class") :      //NOI18N
                 "Response.class");                                //NOI18N
         } 
         else if ("void".equals(responseType)) {                         
//NOI18N
@@ -335,8 +344,7 @@ class JaxRsGenerationStrategy extends 
ClientGenerationStrategy {
         }
 
         // throws
-        ExpressionTree throwsTree = JavaSourceHelper.createTypeTree(copy, 
-                "javax.ws.rs.ClientErrorException");     //NOI18N
+        ExpressionTree throwsTree = JavaSourceHelper.createTypeTree(copy, 
packagePrefix + ".ClientErrorException");     //NOI18N
 
         if (path.length() == 0) {
             // body
@@ -433,18 +441,17 @@ class JaxRsGenerationStrategy extends 
ClientGenerationStrategy {
             paramList.add(classParam);
         }
 
-        ExpressionTree throwsTree = JavaSourceHelper.createTypeTree(copy, 
-                "javax.ws.rs.ClientErrorException"); //NOI18N
+        ExpressionTree throwsTree = JavaSourceHelper.createTypeTree(copy, 
packagePrefix + ".ClientErrorException"); //NOI18N
 
         StringBuilder body = new StringBuilder(
                 "{ WebTarget resource = webTarget;");           // NOI18N
         StringBuilder resourceBuilder = new StringBuilder();
         if (path.length() == 0) {
+            resourceBuilder.append(".request(");  // NOI18N
             if ( mimeType != null ){
-                resourceBuilder.append(".request(");  // NOI18N
                 resourceBuilder.append(mimeType.getMediaType());
-                resourceBuilder.append(')');
             }
+            resourceBuilder.append(')');
             buildQueryParams( body , httpMethod, paramList , maker );
         } 
         else {
@@ -544,8 +551,7 @@ class JaxRsGenerationStrategy extends 
ClientGenerationStrategy {
                 "}";                                                        
//NOI18N
         
         List<ExpressionTree> throwsList = new ArrayList<ExpressionTree>();
-        ExpressionTree throwsTree = JavaSourceHelper.createTypeTree(copy, 
-                "javax.ws.rs.ClientErrorException"); //NOI18N
+        ExpressionTree throwsTree = JavaSourceHelper.createTypeTree(copy, 
packagePrefix + ".ClientErrorException"); //NOI18N
         throwsList.add(throwsTree);
         if (Security.Authentication.SESSION_KEY == 
security.getAuthentication()) 
         {
@@ -631,14 +637,14 @@ class JaxRsGenerationStrategy extends 
ClientGenerationStrategy {
         
         if (requestMimeType != null) {
             if (requestMimeType == HttpMimeType.FORM && 
httpParams.hasFormParams()) {
-                bodyParam="javax.ws.rs.client.Entity.form(" +
-                               "getQueryOrFormParams(formParamNames, 
formParamValues))"; //NOI18N
+                bodyParam = packagePrefix + ".client.Entity.form("
+                        + "getQueryOrFormParams(formParamNames, 
formParamValues))"; //NOI18N
             } 
             else {
                 VariableTree objectParam = maker.Variable(paramModifier, 
                         "requestEntity", maker.Identifier("Object"), null); 
//NOI18N
                 paramList.add(0, objectParam);
-                bodyParam="javax.ws.rs.client.Entity.entity(requestEntity, 
"+requestMimeType.getMediaType()+")"; //NOI18N
+                bodyParam = packagePrefix + 
".client.Entity.entity(requestEntity, " + requestMimeType.getMediaType() + ")"; 
//NOI18N
                 commentBuffer.append("@param requestEntity request data");
             }
         }
@@ -647,7 +653,7 @@ class JaxRsGenerationStrategy extends 
ClientGenerationStrategy {
 
         List<ExpressionTree> throwsList = new ArrayList<ExpressionTree>();
         ExpressionTree throwsTree = JavaSourceHelper.createTypeTree(copy, 
-                "javax.ws.rs.ClientErrorException"); //NOI18N
+                packagePrefix + ".ClientErrorException"); //NOI18N
         throwsList.add(throwsTree);
 
         if (Security.Authentication.SESSION_KEY == 
security.getAuthentication()) {
@@ -693,13 +699,13 @@ class JaxRsGenerationStrategy extends 
ClientGenerationStrategy {
 
     @Override
     MethodTree generateFormMethod( TreeMaker maker, WorkingCopy copy ) {
-        String form = "javax.ws.rs.core.Form"; //NOI18N
+        String form = packagePrefix + ".core.Form"; //NOI18N
         TypeElement mvMapEl = copy.getElements().getTypeElement(form);
-        String mvType = mvMapEl==null?"javax.ws.rs.core.Form":"Form"; //NOI18N
+        String mvType = mvMapEl==null? (packagePrefix + ".Form"):"Form"; 
//NOI18N
 
         String body =
         "{"+ //NOI18N
-            mvType+" form = new javax.ws.rs.core.Form();"+ //NOI18N
+            mvType+" form = new " + packagePrefix + ".core.Form();"+ //NOI18N
             "for (int i=0;i< paramNames.length;i++) {" + //NOI18N
             "    if (paramValues[i] != null) {"+ //NOI18N
             "        form = form.param(paramNames[i], paramValues[i]);"+ 
//NOI18N
@@ -711,7 +717,7 @@ class JaxRsGenerationStrategy extends 
ClientGenerationStrategy {
                 Collections.<Modifier>singleton(Modifier.PRIVATE));
         ExpressionTree returnTree =
                 mvMapEl ==null ? 
-                    copy.getTreeMaker().Identifier("javax.ws.rs.core.Form"):   
 //NOI18N
+                    copy.getTreeMaker().Identifier(packagePrefix + 
".core.Form"):    //NOI18N
                         copy.getTreeMaker().QualIdent(mvMapEl);
         List<VariableTree> paramList = new ArrayList<VariableTree>();
         ModifiersTree paramModifier = 
maker.Modifiers(Collections.<Modifier>emptySet());
@@ -730,13 +736,13 @@ class JaxRsGenerationStrategy extends 
ClientGenerationStrategy {
 
     @Override
     MethodTree generateOptionalFormMethod( TreeMaker maker, WorkingCopy copy ) 
{
-        String mvMapClass = "javax.ws.rs.core.MultivaluedMap"; //NOI18N
+        String mvMapClass = packagePrefix + ".core.MultivaluedMap"; //NOI18N
         TypeElement mvMapEl = copy.getElements().getTypeElement(mvMapClass);
         String mvType = mvMapEl == null ? mvMapClass : "MultivaluedMap"; 
//NOI18N
 
         String body =
         "{"+ //NOI18N
-            mvType+"<String,String> qParams = new 
javax.ws.rs.core.MultivaluedHashMap<String,String>();"+ //NOI18N
+            mvType+"<String,String> qParams = new " + packagePrefix + 
".core.MultivaluedHashMap<String,String>();"+ //NOI18N
            "for (String qParam : optionalParams) {" + //NOI18N
             "    String[] qPar = qParam.split(\"=\");"+ //NOI18N
             "    if (qPar.length > 1) qParams.add(qPar[0], qPar[1])"+ //NOI18N
diff --git 
a/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/codegen/Constants.java
 
b/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/codegen/Constants.java
index 7c3abf7d10..f2bb9358c6 100644
--- 
a/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/codegen/Constants.java
+++ 
b/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/codegen/Constants.java
@@ -47,34 +47,64 @@ public class Constants {
     public static final String URI_TYPE = "java.net.URI";       //NOI18N
     
     public static final String PERSISTENCE_PACKAGE = "javax.persistence.";     
 //NOI18N
+
+    public static final String PERSISTENCE_PACKAGE_JAKARTA = 
"jakarta.persistence.";      //NOI18N
     
     public static final String QUERY_TYPE = PERSISTENCE_PACKAGE + "Query";     
  //NOI18N
+
+    public static final String QUERY_TYPE_JAKARTA = 
PERSISTENCE_PACKAGE_JAKARTA + "Query";       //NOI18N
     
     public static final String ENTITY_MANAGER_TYPE = PERSISTENCE_PACKAGE + 
"EntityManager";       //NOI18N
+
+    public static final String ENTITY_MANAGER_TYPE_JAKARTA = 
PERSISTENCE_PACKAGE_JAKARTA + "EntityManager";       //NOI18N
     
     public static final String ENTITY_MANAGER_FACTORY = PERSISTENCE_PACKAGE + 
"EntityManagerFactory";       //NOI18N
+
+    public static final String ENTITY_MANAGER_FACTORY_JAKARTA = 
PERSISTENCE_PACKAGE_JAKARTA + "EntityManagerFactory";       //NOI18N
     
     public static final String ENTITY_TRANSACTION = PERSISTENCE_PACKAGE + 
"EntityTransaction";      //NOI18N
+
+    public static final String ENTITY_TRANSACTION_JAKARTA = 
PERSISTENCE_PACKAGE_JAKARTA + "EntityTransaction";      //NOI18N
         
     public static final String PERSISTENCE = PERSISTENCE_PACKAGE + 
"Persistence";       //NOI18N
+
+    public static final String PERSISTENCE_JAKARTA = 
PERSISTENCE_PACKAGE_JAKARTA + "Persistence";       //NOI18N
     
     public static final String PERSISTENCE_CONTEXT = PERSISTENCE_PACKAGE + 
PERSISTENCE_CONTEXT_ANNOTATION;
+
+    public static final String PERSISTENCE_CONTEXT_JAKARTA = 
PERSISTENCE_PACKAGE_JAKARTA + PERSISTENCE_CONTEXT_ANNOTATION;
     
     public static final String PERSISTENCE_ENTITY = PERSISTENCE_PACKAGE + 
"Entity";     //NOI18N
 
+    public static final String PERSISTENCE_ENTITY_JAKARTA = 
PERSISTENCE_PACKAGE_JAKARTA + "Entity";     //NOI18N
+
     public static final String PERSISTENCE_TABLE = PERSISTENCE_PACKAGE + 
"Table";       //NOI18M
+
+    public static final String PERSISTENCE_TABLE_JAKARTA = 
PERSISTENCE_PACKAGE_JAKARTA + "Table";       //NOI18M
     
     public static final String NO_RESULT_EXCEPTION = PERSISTENCE_PACKAGE + 
"NoResultException";        //NOI18N
+
+    public static final String NO_RESULT_EXCEPTION_JAKARTA = 
PERSISTENCE_PACKAGE_JAKARTA + "NoResultException";        //NOI18N
     
     public static final String XML_ANNOTATION_PACKAGE = 
"javax.xml.bind.annotation.";       //NOI18N
+
+    public static final String XML_ANNOTATION_PACKAGE_JAKARTA = 
"jakarta.xml.bind.annotation.";       //NOI18N
     
-    public static final String XML_ROOT_ELEMENT = XML_ANNOTATION_PACKAGE + 
XML_ROOT_ELEMENT_ANNOTATION;          
+    public static final String XML_ROOT_ELEMENT = XML_ANNOTATION_PACKAGE + 
XML_ROOT_ELEMENT_ANNOTATION;
+
+    public static final String XML_ROOT_ELEMENT_JAKARTA = 
XML_ANNOTATION_PACKAGE_JAKARTA + XML_ROOT_ELEMENT_ANNOTATION;
     
     public static final String XML_ELEMENT = XML_ANNOTATION_PACKAGE + 
XML_ELEMENT_ANNOTATION;
+
+    public static final String XML_ELEMENT_JAKARTA = 
XML_ANNOTATION_PACKAGE_JAKARTA + XML_ELEMENT_ANNOTATION;
     
-    public static final String XML_ATTRIBUTE = XML_ANNOTATION_PACKAGE + 
XML_ATTRIBUTE_ANNOTATION;           
+    public static final String XML_ATTRIBUTE = XML_ANNOTATION_PACKAGE + 
XML_ATTRIBUTE_ANNOTATION;
+
+    public static final String XML_ATTRIBUTE_JAKARTA = 
XML_ANNOTATION_PACKAGE_JAKARTA + XML_ATTRIBUTE_ANNOTATION;
     
-    public static final String XML_TRANSIENT = XML_ANNOTATION_PACKAGE + 
XML_TRANSIENT_ANNOTATION;       
+    public static final String XML_TRANSIENT = XML_ANNOTATION_PACKAGE + 
XML_TRANSIENT_ANNOTATION;
+
+    public static final String XML_TRANSIENT_JAKARTA = 
XML_ANNOTATION_PACKAGE_JAKARTA + XML_TRANSIENT_ANNOTATION;
     
     public static final String VOID = "void";           //NOI18N
     
@@ -94,8 +124,9 @@ public class Constants {
     
     public static final String REQUESTED_SCOPE = "RequestScoped"; //NOI18N
     
-    public static final String FQN_REQUESTED_SCOPE 
="javax.enterprise.context." // NOI18N
-                +REQUESTED_SCOPE;
+    public static final String FQN_REQUESTED_SCOPE 
="javax.enterprise.context." + REQUESTED_SCOPE; // NOI18N
+
+    public static final String FQN_REQUESTED_SCOPE_JAKARTA 
="jakarta.enterprise.context." + REQUESTED_SCOPE; // NOI18N
     
     static final Modifier[] PUBLIC = new Modifier[] { Modifier.PUBLIC };
     
@@ -132,13 +163,18 @@ public class Constants {
             return suffix;
         }
 
-        public ExpressionTree expressionTree(TreeMaker maker) {
+        public ExpressionTree expressionTree(TreeMaker maker, boolean 
jakartaNamespace) {
             ExpressionTree tree;
             if (mediaTypeField == null) {
                 tree = maker.Literal(value());
             } else {
                 // Use a field of MediaType class if possible
-                ExpressionTree typeTree = 
maker.QualIdent("javax.ws.rs.core.MediaType"); // NOI18N
+                ExpressionTree typeTree;
+                if(jakartaNamespace) {
+                    typeTree = 
maker.QualIdent("jakarta.ws.rs.core.MediaType"); // NOI18N
+                } else {
+                    typeTree = maker.QualIdent("javax.ws.rs.core.MediaType"); 
// NOI18N
+                }
                 tree = maker.MemberSelect(typeTree, mediaTypeField);
             }
             return tree;
@@ -160,17 +196,19 @@ public class Constants {
     }
     
     public enum HttpMethodType {
-        GET("get", RestConstants.GET),   //NOI18N
-        PUT("put", RestConstants.PUT), //NOI18N
-        POST("post", RestConstants.POST), //NOI18N
-        DELETE("delete", RestConstants.DELETE); //NOI18N
+        GET("get", RestConstants.GET, RestConstants.GET_JAKARTA), //NOI18N
+        PUT("put", RestConstants.PUT, RestConstants.PUT_JAKARTA), //NOI18N
+        POST("post", RestConstants.POST, RestConstants.POST_JAKARTA), //NOI18N
+        DELETE("delete", RestConstants.DELETE, RestConstants.DELETE_JAKARTA); 
//NOI18N
         
         private final String prefix; 
         private final String annotationType;
+        private final String annotationTypeJakarta;
         
-        HttpMethodType(String prefix, String annotationType) {
+        HttpMethodType(String prefix, String annotationType, String 
annotationTypeJakarta) {
             this.prefix = prefix;
             this.annotationType = annotationType;
+            this.annotationTypeJakarta = annotationTypeJakarta;
         }
         
         public String value() {
@@ -181,8 +219,12 @@ public class Constants {
             return prefix;
         }
         
-        public String getAnnotationType() {
-            return annotationType;
+        public String getAnnotationType(Boolean jakartaVariant) {
+            if (jakartaVariant == null || jakartaVariant) {
+                return annotationTypeJakarta;
+            } else {
+                return annotationType;
+            }
         }
     }
     
diff --git 
a/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/codegen/EntityResourcesGenerator.java
 
b/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/codegen/EntityResourcesGenerator.java
index 878bd1b298..7e070c84ed 100644
--- 
a/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/codegen/EntityResourcesGenerator.java
+++ 
b/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/codegen/EntityResourcesGenerator.java
@@ -34,6 +34,7 @@ import javax.lang.model.element.Modifier;
 import javax.lang.model.element.TypeElement;
 import javax.lang.model.type.TypeKind;
 
+import org.netbeans.api.java.classpath.ClassPath;
 import org.netbeans.api.java.source.JavaSource;
 import org.netbeans.api.java.source.JavaSource.Phase;
 import org.netbeans.api.java.source.Task;
@@ -93,6 +94,7 @@ public abstract class EntityResourcesGenerator extends 
AbstractGenerator
     private String controllerPackageName;
     private EntityResourceBeanModel model;
     private Project project;
+    private boolean jakartaNamespace;
     
     /** Creates a new instance of EntityRESTServicesCodeGenerator */
     public void initialize(EntityResourceBeanModel model, Project project,
@@ -117,6 +119,10 @@ public abstract class EntityResourcesGenerator extends 
AbstractGenerator
             this.controllerPackageName = controllerPackage;
         }
 
+        ClassPath cp = ClassPath.getClassPath(targetFolder, ClassPath.COMPILE);
+        boolean jakartaRSPresent = cp.findResource("jakarta/ws/rs/GET.class") 
!= null;
+        boolean javaxRSPresent = cp.findResource("javax/ws/rs/GET.class") != 
null;
+        jakartaNamespace = jakartaRSPresent || (! javaxRSPresent);
     }
     
     /**
@@ -220,7 +226,7 @@ public abstract class EntityResourcesGenerator extends 
AbstractGenerator
             TreeMaker maker, RestGenerationOptions option,
             ModifiersTree modifiers )
     {
-        String method = option.getRestMethod().getMethod();
+        String method = option.getRestMethod().getMethod(isJakartaNamespace());
         ModifiersTree modifiersTree = modifiers;
         if ( method != null ){
             modifiersTree = maker.addModifiersAnnotation(modifiers, 
@@ -233,9 +239,9 @@ public abstract class EntityResourcesGenerator extends 
AbstractGenerator
             ExpressionTree uriValue = maker.Literal(uriPath);
             modifiersTree =
                     maker.addModifiersAnnotation(modifiersTree,
-                    genUtils.createAnnotation(RestConstants.PATH, 
-                            Collections.<ExpressionTree>singletonList(
-                                    uriValue)));
+                    genUtils.createAnnotation(
+                            isJakartaNamespace() ? RestConstants.PATH_JAKARTA 
: RestConstants.PATH,
+                            
Collections.<ExpressionTree>singletonList(uriValue)));
 
         }
         
@@ -249,11 +255,11 @@ public abstract class EntityResourcesGenerator extends 
AbstractGenerator
         
         // add @Produces annotation
         modifiersTree = addMimeHandlerAnnotation(genUtils, maker,
-                modifiersTree, RestConstants.PRODUCE_MIME, 
option.getProduces());
+                modifiersTree, isJakartaNamespace() ? 
RestConstants.PRODUCE_MIME_JAKARTA : RestConstants.PRODUCE_MIME, 
option.getProduces());
         
         // add @Consumes annotation
         modifiersTree = addMimeHandlerAnnotation(genUtils, maker,
-                modifiersTree, RestConstants.CONSUME_MIME, 
option.getConsumes());
+                modifiersTree, isJakartaNamespace() ? 
RestConstants.CONSUME_MIME_JAKARTA : RestConstants.CONSUME_MIME, 
option.getConsumes());
         return modifiersTree;
     }
     
@@ -303,7 +309,7 @@ public abstract class EntityResourcesGenerator extends 
AbstractGenerator
                 Collections.<Modifier>emptySet());
         
         ModifiersTree modifiers ;
-        if ( option.getRestMethod().getMethod() == null ){
+        if ( option.getRestMethod().getMethod(true) == null ){
             modifiers = genUtils.createModifiers(
                     Modifier.PRIVATE);
         }
@@ -359,7 +365,7 @@ public abstract class EntityResourcesGenerator extends 
AbstractGenerator
                     pathParamTree =
                         maker.addModifiersAnnotation(paramModifier, 
                                 genUtils.createAnnotation(
-                                        RestConstants.PATH_PARAM, 
+                                        isJakartaNamespace() ? 
RestConstants.PATH_PARAM_JAKARTA : RestConstants.PATH_PARAM,
                                         annArguments));
                 }
                 Tree paramTree = genUtils.createType(paramTypes[i], 
@@ -413,11 +419,20 @@ public abstract class EntityResourcesGenerator extends 
AbstractGenerator
             needPathSegment = idFieldInfo!= null && 
idFieldInfo.isEmbeddedId()&& 
                     idFieldInfo.getType()!= null;
         }
+        String httpResponseType;
+        String pathSegmentType;
+        if (isJakartaNamespace()) {
+            httpResponseType = RestConstants.HTTP_RESPONSE_JAKARTA;
+            pathSegmentType = "jakarta.ws.rs.core.PathSegment";
+        } else {
+            httpResponseType = RestConstants.HTTP_RESPONSE;
+            pathSegmentType = "javax.ws.rs.core.PathSegment";
+        }
         RestGenerationOptions options = new RestGenerationOptions();
         switch ( method ){
             case CREATE:
                 options.setRestMethod(RestFacadeMethod.CREATE);
-                options.setReturnType(RestConstants.HTTP_RESPONSE);
+                options.setReturnType(httpResponseType);
                 options.setParameterNames(new String[]{"entity"}); //NOI18N
                 options.setParameterTypes(new String[]{entityFQN});
                 options.setConsumes(new 
String[]{Constants.MimeType.XML.value(), 
@@ -425,7 +440,7 @@ public abstract class EntityResourcesGenerator extends 
AbstractGenerator
                 return options;
             case EDIT:
                 options.setRestMethod(RestFacadeMethod.EDIT);
-                options.setReturnType(RestConstants.HTTP_RESPONSE);
+                options.setReturnType(httpResponseType);
                 options.setParameterNames(new String[]{"entity"}); //NOI18N
                 options.setParameterTypes(new String[]{entityFQN}); //NOI18N
                 options.setConsumes(new 
String[]{Constants.MimeType.XML.value(), 
@@ -433,10 +448,10 @@ public abstract class EntityResourcesGenerator extends 
AbstractGenerator
                 return options;
             case REMOVE:
                 options.setRestMethod(RestFacadeMethod.REMOVE);
-                options.setReturnType(RestConstants.HTTP_RESPONSE);
+                options.setReturnType(httpResponseType);
                 options.setParameterNames(new String[]{"id"}); //NOI18N
                 if ( needPathSegment ){
-                    options.setParameterTypes(new 
String[]{"javax.ws.rs.core.PathSegment"}); //NOI18N
+                    options.setParameterTypes(new String[]{pathSegmentType}); 
//NOI18N
                 }
                 else {
                     options.setParameterTypes(new String[]{idType}); //NOI18N
@@ -450,7 +465,7 @@ public abstract class EntityResourcesGenerator extends 
AbstractGenerator
                         Constants.MimeType.JSON.value()}); 
                 options.setParameterNames(new String[]{"id"}); //NOI18N
                 if ( needPathSegment ){
-                    options.setParameterTypes(new 
String[]{"javax.ws.rs.core.PathSegment"}); //NOI18N
+                    options.setParameterTypes(new String[]{pathSegmentType}); 
//NOI18N
                 }
                 else {
                     options.setParameterTypes(new String[]{idType}); //NOI18N
@@ -560,7 +575,11 @@ public abstract class EntityResourcesGenerator extends 
AbstractGenerator
     protected void createFolders() {
         createFolders( true );
     }
-    
+
+    protected boolean isJakartaNamespace() {
+        return jakartaNamespace;
+    }
+
     private void generateResourceMethods( FileObject fileObject , 
             final String entityFQN, final String idClass) throws IOException 
     {
@@ -652,7 +671,7 @@ public abstract class EntityResourcesGenerator extends 
AbstractGenerator
         if (type == null) {
             result = maker.Literal(mimeType);
         } else {
-            result = type.expressionTree(maker);
+            result = type.expressionTree(maker, isJakartaNamespace());
         }
         return result;
     }
diff --git 
a/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/codegen/GenericResourceGenerator.java
 
b/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/codegen/GenericResourceGenerator.java
index 65fe9bc5ff..769912a462 100644
--- 
a/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/codegen/GenericResourceGenerator.java
+++ 
b/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/codegen/GenericResourceGenerator.java
@@ -29,6 +29,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import javax.lang.model.element.Modifier;
+import org.netbeans.api.java.classpath.ClassPath;
 import org.netbeans.api.java.source.JavaSource;
 import org.netbeans.api.java.source.ModificationResult;
 import org.netbeans.api.java.source.WorkingCopy;
@@ -64,6 +65,7 @@ public class GenericResourceGenerator extends 
AbstractGenerator {
     
     private final FileObject destDir;
     private final GenericResourceBean bean;
+    private final boolean jakartaNamespace;
     private String template;
     
     public GenericResourceGenerator(FileObject destDir, GenericResourceBean 
bean) {
@@ -74,6 +76,11 @@ public class GenericResourceGenerator extends 
AbstractGenerator {
         } else {
             this.template = RESOURCE_ITEM_TEMPLATE;
         }
+
+        ClassPath cp = ClassPath.getClassPath(destDir, ClassPath.COMPILE);
+        boolean jakartaRSPresent = cp.findResource("jakarta/ws/rs/GET.class") 
!= null;
+        boolean javaxRSPresent = cp.findResource("javax/ws/rs/GET.class") != 
null;
+        jakartaNamespace = jakartaRSPresent || (! javaxRSPresent);
     }
     
     public FileObject getDestDir() {
@@ -95,15 +102,14 @@ public class GenericResourceGenerator extends 
AbstractGenerator {
     @Override
     public Set<FileObject> generate(ProgressHandle pHandle) throws IOException 
{
         initProgressReporting(pHandle, false);
-        
+
         reportProgress(NbBundle.getMessage(GenericResourceGenerator.class,
                 "MSG_GeneratingClass", bean.getPackageName() + "." + 
bean.getName()));  //NOI18N
         JavaSource source;
+        Map<String,Object> params = new HashMap<>();
         if (bean.isRootResource()) {
-            source = JavaSourceHelper.createJavaSource(
-                    getTemplate(), getDestDir(), bean.getPackageName(), 
bean.getName());
+            params.put("jakartaNamespace", jakartaNamespace);
         } else {
-            Map<String,String> params = new HashMap<String,String>();
             String[] uriParams = bean.getUriParams();
             StringBuilder fieldList = new StringBuilder();
             StringBuilder paramList = new StringBuilder();
@@ -131,9 +137,9 @@ public class GenericResourceGenerator extends 
AbstractGenerator {
             params.put(PARAM_LIST, paramList.toString());
             params.put(ASSIGNMENT_LIST, assignmentList.toString());
             params.put(ARGUMENT_LIST, argumentList.toString());
-            source = JavaSourceHelper.createJavaSource(
-                    getTemplate(), params, getDestDir(), 
bean.getPackageName(), bean.getName());
         }
+        source = JavaSourceHelper.createJavaSource(
+                getTemplate(), params, getDestDir(), bean.getPackageName(), 
bean.getName());
         if (bean.getInputParameters().size() > 0) {
             addInputParamFields(source);
             addConstructorWithInputParams(source);
@@ -195,13 +201,17 @@ public class GenericResourceGenerator extends 
AbstractGenerator {
                 @Override
                 public void run(WorkingCopy copy) throws IOException {
                     copy.toPhase(JavaSource.Phase.RESOLVED);
-                    String jsr311Imports[] = getJsr311AnnotationImports(bean);
+                    String jsr311Imports[] = getJsr311AnnotationImports(bean, 
jakartaNamespace);
                     String imports[] = jsr311Imports; 
                     boolean cdiEnabled = Util.isCDIEnabled(getDestDir());
                     if ( cdiEnabled ){
                         imports  = new String[jsr311Imports.length+1];
                         System.arraycopy(jsr311Imports, 0, imports, 0, 
jsr311Imports.length);
-                        imports[jsr311Imports.length] = 
Constants.FQN_REQUESTED_SCOPE;
+                        if (jakartaNamespace) {
+                            imports[jsr311Imports.length] = 
Constants.FQN_REQUESTED_SCOPE_JAKARTA;
+                        } else {
+                            imports[jsr311Imports.length] = 
Constants.FQN_REQUESTED_SCOPE;
+                        }
                     }
                     JavaSourceHelper.addImports(copy, imports);
                     List<String> annotations= new ArrayList<String>(2);
@@ -236,25 +246,25 @@ public class GenericResourceGenerator extends 
AbstractGenerator {
         }
     }
     
-    public static String[] getJsr311AnnotationImports(GenericResourceBean 
rbean) {
+    public static String[] getJsr311AnnotationImports(GenericResourceBean 
rbean, boolean jakartaNamespace) {
         HashSet<String> result = new HashSet<String>();
         if (rbean.isGenerateUriTemplate()) {
-            result.add(RestConstants.PATH);
+            result.add(jakartaNamespace ? RestConstants.PATH_JAKARTA : 
RestConstants.PATH);
         }
         if (rbean.isRootResource() && !rbean.getSubResources().isEmpty()) {
-            result.add(RestConstants.PATH_PARAM);
+            result.add(jakartaNamespace ? RestConstants.PATH_PARAM_JAKARTA : 
RestConstants.PATH_PARAM);
         }
         for (HttpMethodType m : rbean.getMethodTypes()) {
-            result.add(m.getAnnotationType());
+            result.add(m.getAnnotationType(jakartaNamespace));
             if (m == HttpMethodType.GET) {
-                result.add(RestConstants.PRODUCE_MIME);
+                result.add(jakartaNamespace ? 
RestConstants.PRODUCE_MIME_JAKARTA : RestConstants.PRODUCE_MIME);
             }
             if (m == HttpMethodType.POST || m == HttpMethodType.PUT) {
-                result.add(RestConstants.CONSUME_MIME);
+                result.add(jakartaNamespace ? 
RestConstants.CONSUME_MIME_JAKARTA : RestConstants.CONSUME_MIME);
             }
         }
         if (rbean.getQueryParameters().size() > 0) {
-            result.add(RestConstants.QUERY_PARAM);
+            result.add(jakartaNamespace ? RestConstants.QUERY_PARAM_JAKARTA : 
RestConstants.QUERY_PARAM);
         }
         return result.toArray(new String[result.size()]);
     }
@@ -302,7 +312,7 @@ public class GenericResourceGenerator extends 
AbstractGenerator {
         
         Object[] annotationAttrs = new Object[] {
             null,
-            mime.expressionTree(copy.getTreeMaker())
+            mime.expressionTree(copy.getTreeMaker(), jakartaNamespace)
         };
         
         if (type == null) {
@@ -344,7 +354,7 @@ public class GenericResourceGenerator extends 
AbstractGenerator {
             RestConstants.PRODUCE_MIME_ANNOTATION
         };
 
-        ExpressionTree mimeTree = mime.expressionTree(copy.getTreeMaker());
+        ExpressionTree mimeTree = mime.expressionTree(copy.getTreeMaker(), 
jakartaNamespace);
         Object[] annotationAttrs = new Object[] {
             null,
             mimeTree,
@@ -389,7 +399,7 @@ public class GenericResourceGenerator extends 
AbstractGenerator {
             RestConstants.CONSUME_MIME_ANNOTATION
         };
 
-        ExpressionTree mimeTree = mime.expressionTree(copy.getTreeMaker());
+        ExpressionTree mimeTree = mime.expressionTree(copy.getTreeMaker(), 
jakartaNamespace);
         Object[] annotationAttrs = new Object[] {
             null,
             mimeTree,
diff --git 
a/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/codegen/RestFacadeMethod.java
 
b/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/codegen/RestFacadeMethod.java
index 4f91adb70c..3cc73f05cb 100644
--- 
a/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/codegen/RestFacadeMethod.java
+++ 
b/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/codegen/RestFacadeMethod.java
@@ -25,13 +25,13 @@ package org.netbeans.modules.websvc.rest.codegen;
  */
 enum RestFacadeMethod implements RestMethod {
 
-    CREATE("javax.ws.rs.POST", "create"),
-    EDIT("javax.ws.rs.PUT", "edit"),
-    REMOVE("javax.ws.rs.DELETE", "remove", "{id}"),
-    FIND("javax.ws.rs.GET", "find", "{id}"),
-    FIND_ALL("javax.ws.rs.GET", "findAll"),
-    FIND_RANGE("javax.ws.rs.GET", "findRange", "{max}/{first}"),
-    COUNT("javax.ws.rs.GET", "count", "count");
+    CREATE(".ws.rs.POST", "create"),
+    EDIT(".ws.rs.PUT", "edit"),
+    REMOVE(".ws.rs.DELETE", "remove", "{id}"),
+    FIND(".ws.rs.GET", "find", "{id}"),
+    FIND_ALL(".ws.rs.GET", "findAll"),
+    FIND_RANGE(".ws.rs.GET", "findRange", "{max}/{first}"),
+    COUNT(".ws.rs.GET", "count", "count");
 
     private RestFacadeMethod(String method, String methodName) {
         this.method = method;
@@ -44,8 +44,12 @@ enum RestFacadeMethod implements RestMethod {
         this.uriPath = uriPath;
     }
     
-    public String getMethod() {
-        return method;
+    public String getMethod(Boolean jakartaVariant) {
+        if(jakartaVariant == null && jakartaVariant) {
+            return "jakarta" + method;
+        } else {
+            return "javax" + method;
+        }
     }
 
     public String getMethodName() {
diff --git 
a/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/codegen/RestMethod.java
 
b/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/codegen/RestMethod.java
index b5164f5ef2..982504d300 100644
--- 
a/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/codegen/RestMethod.java
+++ 
b/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/codegen/RestMethod.java
@@ -25,7 +25,7 @@ package org.netbeans.modules.websvc.rest.codegen;
  */
 public interface RestMethod {
 
-    String getMethod();
+    String getMethod(Boolean jakartaVariant);
 
     String getMethodName();
 
diff --git 
a/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/codegen/SpringEntityResourcesGenerator.java
 
b/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/codegen/SpringEntityResourcesGenerator.java
index 2d93dc8788..07dff1d3d7 100644
--- 
a/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/codegen/SpringEntityResourcesGenerator.java
+++ 
b/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/codegen/SpringEntityResourcesGenerator.java
@@ -110,8 +110,8 @@ public class SpringEntityResourcesGenerator extends 
EntityResourcesGenerator {
                 ClassTree classTree = (ClassTree)tree.getTypeDecls().get(0);
                 ClassTree newTree = JavaSourceHelper.addField(workingCopy, 
classTree, 
                         new Modifier[]{Modifier.PROTECTED},
-                        annotations , values , "entityManager", 
-                        Constants.ENTITY_MANAGER_TYPE);  //NOI18N
+                        annotations , values , "entityManager",
+                        isJakartaNamespace() ? 
Constants.ENTITY_MANAGER_TYPE_JAKARTA : Constants.ENTITY_MANAGER_TYPE);  
//NOI18N
                 workingCopy.rewrite(classTree, newTree);
             }
         };
@@ -167,7 +167,7 @@ public class SpringEntityResourcesGenerator extends 
EntityResourcesGenerator {
     {
         ModifiersTree tree = super.addRestMethodAnnotations(genUtils, maker, 
                 option, modifiers);
-        if ( option.getRestMethod().getMethod() != null ){
+        if ( option.getRestMethod().getMethod(true) != null ){
             tree = maker.addModifiersAnnotation(tree, 
genUtils.createAnnotation(
                     SpringConstants.TRANSACTIONAL));
         }
@@ -182,8 +182,13 @@ public class SpringEntityResourcesGenerator extends 
EntityResourcesGenerator {
         List<String> original = super.getResourceImports(entityFqn);
         List<String> result = new ArrayList<String>( original.size() +1 );
         result.addAll( original );
-        result.add("javax.persistence.Query");                  // NOI18N
-        result.add(Constants.PERSISTENCE_CONTEXT);
+        if(isJakartaNamespace()) {
+            result.add("javax.persistence.Query");                  // NOI18N
+            result.add(Constants.PERSISTENCE_CONTEXT_JAKARTA);
+        } else {
+            result.add("javax.persistence.Query");                  // NOI18N
+            result.add(Constants.PERSISTENCE_CONTEXT);
+        }
         return result;
     }
     
@@ -305,7 +310,7 @@ public class SpringEntityResourcesGenerator extends 
EntityResourcesGenerator {
         }
 
         @Override
-        public String getMethod() {
+        public String getMethod(Boolean jakartaVariant) {
             return null;
         }
     }
diff --git 
a/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/codegen/model/EntityClassInfo.java
 
b/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/codegen/model/EntityClassInfo.java
index 475934dc37..efc8176fee 100644
--- 
a/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/codegen/model/EntityClassInfo.java
+++ 
b/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/codegen/model/EntityClassInfo.java
@@ -60,12 +60,19 @@ import org.openide.util.Exceptions;
 public class EntityClassInfo {
 
     private static final String JAVAX_PERSISTENCE = 
"javax.persistence.";//NOI18N
-    
-    private static final String MAPPED_SUPERCLASS = 
JAVAX_PERSISTENCE+"MappedSuperclass";   // NOI18N
-    
-    private static final String ENTITY = JAVAX_PERSISTENCE+"Entity";    // 
NOI18N
-    
+
+    private static final String JAKARTA_PERSISTENCE = 
"jakarta.persistence.";//NOI18N
+
+    private static final String MAPPED_SUPERCLASS = JAVAX_PERSISTENCE + 
"MappedSuperclass";   // NOI18N
+
+    private static final String MAPPED_SUPERCLASS_JAKARTA = 
JAKARTA_PERSISTENCE + "MappedSuperclass";   // NOI18N
+
+    private static final String ENTITY = JAVAX_PERSISTENCE + "Entity";    // 
NOI18N
+
+    private static final String ENTITY_JAKARTA = JAKARTA_PERSISTENCE + 
"Entity";    // NOI18N
+
     private static final Set<String> LIFECYCLE_ANNOTATIONS = new 
HashSet<String>(7);
+
     static {
         LIFECYCLE_ANNOTATIONS.add("PrePersist");    // NOI18N
         LIFECYCLE_ANNOTATIONS.add("PostPersist");   // NOI18N
@@ -74,7 +81,7 @@ public class EntityClassInfo {
         LIFECYCLE_ANNOTATIONS.add("PreUpdate");     // NOI18N
         LIFECYCLE_ANNOTATIONS.add("PostUpdate");    // NOI18N
         LIFECYCLE_ANNOTATIONS.add("PostLoad");      // NOI18N
-        }; 
+    }
     
     private EntityResourceModelBuilder builder;
     private final String entityFqn;
@@ -275,11 +282,9 @@ public class EntityClassInfo {
             return null;
         }
         Element superElement = controller.getTypes().asElement( superclass );
-        if ( superElement instanceof TypeElement ){
-            if ( hasAnnotation( superElement, controller, MAPPED_SUPERCLASS, 
-                    ENTITY))
-            {
-                return (TypeElement)superElement;
+        if (superElement instanceof TypeElement) {
+            if (hasAnnotation(superElement, controller, 
MAPPED_SUPERCLASS_JAKARTA, ENTITY_JAKARTA, MAPPED_SUPERCLASS, ENTITY)) {
+                return (TypeElement) superElement;
             }
         }
         return null;
@@ -519,12 +524,16 @@ public class EntityClassInfo {
         public void parseAnnotations(List<? extends AnnotationMirror> 
annotationMirrors) {
             for (AnnotationMirror annotation : annotationMirrors) {
                 String annotationType = 
annotation.getAnnotationType().toString();
-              
-                if (!annotationType.startsWith(JAVAX_PERSISTENCE)) { 
-                    continue;     
+
+                String simpleName;
+                if (annotationType.startsWith(JAKARTA_PERSISTENCE)) {
+                    simpleName = 
annotationType.substring(JAKARTA_PERSISTENCE.length());
+                } else if (annotationType.startsWith(JAVAX_PERSISTENCE)) {
+                    simpleName = 
annotationType.substring(JAVAX_PERSISTENCE.length());
+                } else {
+                    continue;
                 }
-                String simpleName = annotationType.substring( 
-                        JAVAX_PERSISTENCE.length() );
+
                 if ( LIFECYCLE_ANNOTATIONS.contains( simpleName)){
                     continue;
                 }
diff --git 
a/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/codegen/model/SourceModeler.java
 
b/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/codegen/model/SourceModeler.java
index 13b96efc6e..965c07e830 100644
--- 
a/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/codegen/model/SourceModeler.java
+++ 
b/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/codegen/model/SourceModeler.java
@@ -206,13 +206,34 @@ public class SourceModeler extends ResourceModel {
         ExecutableElement method , CompilationController controller , 
         Collection<TypeMirror> boxedPrimitives)
     {
-        AnnotationMirror pathAnnotation = 
restAnnotations.get(RestConstants.PATH);
-        AnnotationMirror produceAnnotion = 
restAnnotations.get(RestConstants.PRODUCE_MIME);
-        AnnotationMirror consumeAnnotion = 
restAnnotations.get(RestConstants.CONSUME_MIME);
-        AnnotationMirror getAnnotion = restAnnotations.get(RestConstants.GET);
-        AnnotationMirror postAnnotion = 
restAnnotations.get(RestConstants.POST);
-        AnnotationMirror putAnnotion = restAnnotations.get(RestConstants.PUT);
-        AnnotationMirror deleteAnnotion = 
restAnnotations.get(RestConstants.DELETE);
+        AnnotationMirror pathAnnotation = 
restAnnotations.get(RestConstants.PATH_JAKARTA);
+        if (pathAnnotation == null) {
+            pathAnnotation = restAnnotations.get(RestConstants.PATH);
+        }
+        AnnotationMirror produceAnnotion = 
restAnnotations.get(RestConstants.PRODUCE_MIME_JAKARTA);
+        if (produceAnnotion == null) {
+            produceAnnotion = restAnnotations.get(RestConstants.PRODUCE_MIME);
+        }
+        AnnotationMirror consumeAnnotion = 
restAnnotations.get(RestConstants.CONSUME_MIME_JAKARTA);
+        if (produceAnnotion == null) {
+            consumeAnnotion = restAnnotations.get(RestConstants.CONSUME_MIME);
+        }
+        AnnotationMirror getAnnotion = 
restAnnotations.get(RestConstants.GET_JAKARTA);
+        if (produceAnnotion == null) {
+            getAnnotion = restAnnotations.get(RestConstants.GET);
+        }
+        AnnotationMirror postAnnotion = 
restAnnotations.get(RestConstants.POST_JAKARTA);
+        if (produceAnnotion == null) {
+            postAnnotion = restAnnotations.get(RestConstants.POST);
+        }
+        AnnotationMirror putAnnotion = 
restAnnotations.get(RestConstants.PUT_JAKARTA);
+        if (produceAnnotion == null) {
+            putAnnotion = restAnnotations.get(RestConstants.PUT);
+        }
+        AnnotationMirror deleteAnnotion = 
restAnnotations.get(RestConstants.DELETE_JAKARTA);
+        if (produceAnnotion == null) {
+            deleteAnnotion = restAnnotations.get(RestConstants.DELETE);
+        }
         
         AnnotationMirror httpAnnotation = chooseNotNull( getAnnotion, 
postAnnotion, 
                 putAnnotion, deleteAnnotion);
@@ -301,7 +322,7 @@ public class SourceModeler extends ResourceModel {
     {
         String fqn = 
((TypeElement)httpAnnotation.getAnnotationType().asElement()).
             getQualifiedName().toString();
-        if ( RestConstants.GET.equals( fqn ) ){
+        if ( RestConstants.GET.equals( fqn ) || 
RestConstants.GET_JAKARTA.equals( fqn ) ){
             List<String> mimes = getAnnotationMimes(produceAnnotion );
             if ( mimes != null ) { 
                 restMethod.setResponseMimes( mimes );
@@ -327,9 +348,10 @@ public class SourceModeler extends ResourceModel {
                 methodElement, method);
         restMethod.setParamType( paramEntity );
         for( HttpMethodType type : HttpMethodType.values() ){
-            String annotationType = type.getAnnotationType();
-            if ( annotationType.equals( fqn )){
-                restMethod.setType( type );
+            String annotationTypeJakarta = type.getAnnotationType(true);
+            String annotationTypeJavax = type.getAnnotationType(false);
+            if (annotationTypeJakarta.equals(fqn) || 
annotationTypeJavax.equals(fqn)) {
+                restMethod.setType(type);
                 break;
             }
         }
@@ -355,8 +377,11 @@ public class SourceModeler extends ResourceModel {
                     String fqn = ((TypeElement)annotationElement).
                         getQualifiedName().toString();
                     // skip arguments which are URI parameters ( query param 
or path param )
-                    if ( fqn.equals(RestConstants.QUERY_PARAM) || 
-                            fqn.equals(RestConstants.PATH_PARAM))
+                    if (fqn.equals(RestConstants.QUERY_PARAM_JAKARTA)
+                            || fqn.equals(RestConstants.QUERY_PARAM)
+                            || fqn.equals(RestConstants.PATH_PARAM_JAKARTA)
+                            || fqn.equals(RestConstants.PATH_PARAM)
+                            )
                     {
                         isUriParam = true;
                         break;
@@ -459,14 +484,22 @@ public class SourceModeler extends ResourceModel {
         return null;    
     }
     
-    private boolean isRestAnnotation( String annotation ){
-        return annotation.equals(RestConstants.PATH) || 
-            annotation.equals(RestConstants.PRODUCE_MIME) ||
-                annotation.equals(RestConstants.CONSUME_MIME) ||
-                    annotation.equals(RestConstants.GET) ||
-                        annotation.equals(RestConstants.POST) ||
-                            annotation.equals(RestConstants.PUT) ||
-                                annotation.equals(RestConstants.DELETE) ;
+    private boolean isRestAnnotation(String annotation) {
+        return annotation.equals(RestConstants.PATH_JAKARTA)
+                || annotation.equals(RestConstants.PATH)
+                || annotation.equals(RestConstants.PRODUCE_MIME_JAKARTA)
+                || annotation.equals(RestConstants.PRODUCE_MIME)
+                || annotation.equals(RestConstants.CONSUME_MIME_JAKARTA)
+                || annotation.equals(RestConstants.CONSUME_MIME)
+                || annotation.equals(RestConstants.GET_JAKARTA)
+                || annotation.equals(RestConstants.GET)
+                || annotation.equals(RestConstants.POST_JAKARTA)
+                || annotation.equals(RestConstants.POST)
+                || annotation.equals(RestConstants.PUT_JAKARTA)
+                || annotation.equals(RestConstants.PUT)
+                || annotation.equals(RestConstants.DELETE_JAKARTA)
+                || annotation.equals(RestConstants.DELETE)
+                ;
     }
     
     private List<String> getAnnotationMimes( AnnotationMirror mirror ) {
@@ -502,11 +535,11 @@ public class SourceModeler extends ResourceModel {
             if ( annotationElement instanceof TypeElement ){
                 TypeElement annotation = (TypeElement)annotationElement;
                 String name = annotation.getQualifiedName().toString();
-                if ( RestConstants.PRODUCE_MIME.equals( name ) ){
+                if ( RestConstants.PRODUCE_MIME_JAKARTA.equals( name ) || 
RestConstants.PRODUCE_MIME.equals( name ) ){
                     List<String> mimes = getAnnotationMimes( annotationMirror 
);
                     method.setResponseMimes( mimes );
                 }
-                else if ( RestConstants.CONSUME_MIME.equals( name ) ){
+                else if ( RestConstants.CONSUME_MIME_JAKARTA.equals( name ) || 
RestConstants.CONSUME_MIME.equals( name ) ){
                     List<String> mimes = getAnnotationMimes( annotationMirror 
);
                     method.setRequestMimes( mimes );
                 }
diff --git 
a/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/codegen/resources/GenericResource.template
 
b/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/codegen/resources/GenericResource.template
index 73ab5949a2..a7b7ddd2f1 100644
--- 
a/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/codegen/resources/GenericResource.template
+++ 
b/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/codegen/resources/GenericResource.template
@@ -27,8 +27,13 @@
 package ${package};
 
 </#if>
+<#if jakartaNamespace?? && jakartaNamespace>
+import jakarta.ws.rs.core.Context;
+import jakarta.ws.rs.core.UriInfo;
+<#else>
 import javax.ws.rs.core.Context;
 import javax.ws.rs.core.UriInfo;
+</#if>
 
 /**
  * REST Web Service
diff --git 
a/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/support/JavaSourceHelper.java
 
b/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/support/JavaSourceHelper.java
index 8ed81b9718..5b4013c7fe 100644
--- 
a/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/support/JavaSourceHelper.java
+++ 
b/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/support/JavaSourceHelper.java
@@ -355,7 +355,7 @@ public class JavaSourceHelper {
         return null;
     }
 
-    public static JavaSource createJavaSource(String template, Map<String, 
String> params, FileObject targetFolder, String packageName, String className) {
+    public static JavaSource createJavaSource(String template, Map<String, 
Object> params, FileObject targetFolder, String packageName, String className) {
         try {
             FileObject fobj = targetFolder.getFileObject(className, 
Constants.JAVA_EXT);
             if (fobj == null) {
@@ -369,9 +369,9 @@ public class JavaSourceHelper {
         return null;
     }
 
-    private static DataObject createDataObjectFromTemplate(String template, 
-            FileObject targetFolder, String packageName, String targetName, 
-            Map<String, String> params) throws IOException {
+    private static DataObject createDataObjectFromTemplate(String template,
+            FileObject targetFolder, String packageName, String targetName,
+            Map<String, Object> params) throws IOException {
         assert template != null;
         assert targetFolder != null;
         assert targetName != null && targetName.trim().length() > 0;
@@ -380,15 +380,13 @@ public class JavaSourceHelper {
         DataObject templateDO = DataObject.find(templateFO);
         DataFolder dataFolder = DataFolder.findFolder(targetFolder);
 
-        Map<String, String> parameters = new HashMap<String, String>();
+        Map<String, Object> parameters = new HashMap<>();
         parameters.put("package", packageName);
         if (params != null) {
-            for(Entry<String, String> entry: params.entrySet()){
-                parameters.put(entry.getKey(), entry.getValue());
-            }
+            parameters.putAll(params);
         }
 
-        return templateDO.createFromTemplate(dataFolder, targetName, params);
+        return templateDO.createFromTemplate(dataFolder, targetName, 
parameters);
     }
 
     public static void addClassAnnotation(WorkingCopy copy, String[] 
annotations, Object[] annotationAttrs) {
diff --git 
a/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/wizard/Util.java 
b/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/wizard/Util.java
index 5c749554de..139bb96e59 100644
--- 
a/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/wizard/Util.java
+++ 
b/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/wizard/Util.java
@@ -1049,7 +1049,10 @@ public class Util {
             }
             String entityName = null;
             TypeElement annotationElement = controller.getElements()
-                    .getTypeElement(Constants.PERSISTENCE_TABLE);
+                    .getTypeElement(Constants.PERSISTENCE_TABLE_JAKARTA);
+            if(annotationElement == null) {
+                annotationElement = 
controller.getElements().getTypeElement(Constants.PERSISTENCE_TABLE);
+            }
             if (annotationElement == null) {
                 isIncomplete = true;
             }
@@ -1059,7 +1062,11 @@ public class Util {
             }
             if (entityName == null) {
                 annotationElement = controller.getElements().getTypeElement(
-                        Constants.PERSISTENCE_ENTITY);
+                        Constants.PERSISTENCE_ENTITY_JAKARTA);
+                if (annotationElement == null) {
+                    annotationElement = 
controller.getElements().getTypeElement(
+                            Constants.PERSISTENCE_ENTITY);
+                }
                 if (annotationElement == null) {
                     isIncomplete = true;
                     return;
diff --git 
a/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/wizard/fromdb/EjbFacadeGenerator.java
 
b/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/wizard/fromdb/EjbFacadeGenerator.java
index 627e79a21f..3859bfad4b 100644
--- 
a/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/wizard/fromdb/EjbFacadeGenerator.java
+++ 
b/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/wizard/fromdb/EjbFacadeGenerator.java
@@ -50,6 +50,7 @@ import javax.lang.model.element.TypeElement;
 import javax.lang.model.type.TypeKind;
 import javax.lang.model.util.ElementFilter;
 
+import org.netbeans.api.java.classpath.ClassPath;
 import org.netbeans.api.java.source.CompilationController;
 import org.netbeans.api.java.source.JavaSource;
 import org.netbeans.api.java.source.JavaSource.Phase;
@@ -92,6 +93,9 @@ public class EjbFacadeGenerator implements FacadeGenerator {
     private static final String EJB_LOCAL = "javax.ejb.Local"; //NOI18N
     private static final String EJB_REMOTE = "javax.ejb.Remote"; //NOI18N
     private static final String EJB_STATELESS = "javax.ejb.Stateless"; //NOI18N
+    private static final String EJB_LOCAL_JAKARTA = "jakarta.ejb.Local"; 
//NOI18N
+    private static final String EJB_REMOTE_JAKARTA = "jakarta.ejb.Remote"; 
//NOI18N
+    private static final String EJB_STATELESS_JAKARTA = 
"jakarta.ejb.Stateless"; //NOI18N
     
     private EntityResourceBeanModel model;
     
@@ -126,6 +130,16 @@ public class EjbFacadeGenerator implements FacadeGenerator 
{
             final boolean hasLocal,
             boolean overrideExisting) throws IOException {
 
+        ClassPath cp = ClassPath.getClassPath(targetFolder, ClassPath.COMPILE);
+
+        final boolean javaxPersistenceAvailable = cp != null &&
+                cp.findResource("javax/persistence/EntityManager.class") != 
null;
+
+        final boolean jakartaPersistenceAvailable = cp != null &&
+                cp.findResource("jakarta/persistence/EntityManager.class") != 
null;
+
+        final boolean jakartaNamespace = jakartaPersistenceAvailable || 
(!javaxPersistenceAvailable);
+
         final Set<FileObject> createdFiles = new HashSet<FileObject>();
         final String entitySimpleName = JavaIdentifiers.unqualify(entityFQN);
         final String variableName = entitySimpleName.toLowerCase().charAt(0) + 
@@ -157,7 +171,7 @@ public class EjbFacadeGenerator implements FacadeGenerator {
                     String genericsTypeName = "T";      //NOI18N
                     List<GenerationOptions> methodOptions = 
                         getAbstractFacadeMethodOptions(entityNames, 
-                                genericsTypeName, "entity"); //NOI18N
+                                genericsTypeName, "entity", jakartaNamespace); 
//NOI18N
                     List<Tree> members = new ArrayList<>();
                     String entityClassVar = "entityClass";                     
                         //NOI18N
                     Tree classObjectTree = 
genUtils.createType("java.lang.Class<" + 
@@ -250,16 +264,22 @@ public class EjbFacadeGenerator implements 
FacadeGenerator {
             getUniqueClassName(entitySimpleName + FACADE_REMOTE_SUFFIX, 
targetFolder);
 
         List<GenerationOptions> intfOptions = getAbstractFacadeMethodOptions(
-                entityNames, entityFQN, variableName);
+                entityNames, entityFQN, variableName, jakartaNamespace);
         if (hasLocal) {
-            FileObject local = 
createInterface(JavaIdentifiers.unqualify(localInterfaceFQN), 
-                    EJB_LOCAL, targetFolder);
+            FileObject local = createInterface(
+                    JavaIdentifiers.unqualify(localInterfaceFQN),
+                    jakartaNamespace ? EJB_LOCAL_JAKARTA : EJB_LOCAL,
+                    targetFolder
+            );
             addMethodToInterface(intfOptions, local);
             createdFiles.add(local);
         }
         if (hasRemote) {
-            FileObject remote = 
createInterface(JavaIdentifiers.unqualify(remoteInterfaceFQN), 
-                    EJB_REMOTE, targetFolder);
+            FileObject remote = createInterface(
+                    JavaIdentifiers.unqualify(remoteInterfaceFQN),
+                    jakartaNamespace ? EJB_REMOTE_JAKARTA : EJB_REMOTE,
+                    targetFolder
+            );
             addMethodToInterface(intfOptions, remote);
             createdFiles.add(remote);
         }
@@ -303,7 +323,7 @@ public class EjbFacadeGenerator implements FacadeGenerator {
                 members.add(constructor);
 
                 List<RestGenerationOptions> restGenerationOptions = 
-                    getRestFacadeMethodOptions(entityFQN, idClass);
+                    getRestFacadeMethodOptions(entityFQN, idClass, 
jakartaNamespace);
 
                 ModifiersTree publicModifiers = genUtils.createModifiers(
                         Modifier.PUBLIC);
@@ -314,7 +334,7 @@ public class EjbFacadeGenerator implements FacadeGenerator {
                     ModifiersTree modifiersTree =
                             maker.addModifiersAnnotation(publicModifiers, 
                                     genUtils.createAnnotation(
-                                            
option.getRestMethod().getMethod()));
+                                            
option.getRestMethod().getMethod(jakartaNamespace)));
 
                      // add @Path annotation
                     String uriPath = option.getRestMethod().getUriPath();
@@ -322,9 +342,10 @@ public class EjbFacadeGenerator implements FacadeGenerator 
{
                         ExpressionTree annArgument = maker.Literal(uriPath);
                         modifiersTree =
                                 maker.addModifiersAnnotation(modifiersTree,
-                                genUtils.createAnnotation(RestConstants.PATH, 
-                                        
Collections.<ExpressionTree>singletonList(
-                                                annArgument)));
+                                genUtils.createAnnotation(
+                                        jakartaNamespace ? 
RestConstants.PATH_JAKARTA : RestConstants.PATH,
+                                        
Collections.<ExpressionTree>singletonList(annArgument))
+                                );
 
                     }
                     
@@ -339,11 +360,11 @@ public class EjbFacadeGenerator implements 
FacadeGenerator {
                     if (produces != null) {
                         ExpressionTree annArguments;
                         if (produces.length == 1) {
-                            annArguments = mimeTypeTree(maker, produces[0]);
+                            annArguments = mimeTypeTree(maker, produces[0], 
jakartaNamespace);
                         } else {
                             List<ExpressionTree> mimeTypes = new 
ArrayList<ExpressionTree>();
                             for (int i=0; i< produces.length; i++) {
-                                mimeTypes.add(mimeTypeTree(maker, 
produces[i]));
+                                mimeTypes.add(mimeTypeTree(maker, produces[i], 
jakartaNamespace));
                             }
                             annArguments = maker.NewArray(null,
                                     Collections.<ExpressionTree>emptyList(), 
@@ -352,19 +373,20 @@ public class EjbFacadeGenerator implements 
FacadeGenerator {
                         modifiersTree =
                                 maker.addModifiersAnnotation(modifiersTree,
                                         genUtils.createAnnotation(
-                                                RestConstants.PRODUCE_MIME, 
-                                                
Collections.<ExpressionTree>singletonList(annArguments)));
+                                                jakartaNamespace ? 
RestConstants.PRODUCE_MIME_JAKARTA : RestConstants.PRODUCE_MIME,
+                                                
Collections.<ExpressionTree>singletonList(annArguments))
+                                );
                     }
                     // add @Consumes annotation
                     String[] consumes = option.getConsumes();
                     if (consumes != null) {
                         ExpressionTree annArguments;
                         if (consumes.length == 1) {
-                            annArguments = mimeTypeTree(maker, consumes[0]);
+                            annArguments = mimeTypeTree(maker, consumes[0], 
jakartaNamespace);
                         } else {
                             List<ExpressionTree> mimeTypes = new 
ArrayList<ExpressionTree>();
                             for (int i=0; i< consumes.length; i++) {
-                                mimeTypes.add(mimeTypeTree(maker, 
consumes[i]));
+                                mimeTypes.add(mimeTypeTree(maker, consumes[i], 
jakartaNamespace));
                             }
                             annArguments = maker.NewArray(null, 
                                     Collections.<ExpressionTree>emptyList(), 
mimeTypes);
@@ -372,7 +394,7 @@ public class EjbFacadeGenerator implements FacadeGenerator {
                         modifiersTree =
                                 maker.addModifiersAnnotation(modifiersTree,
                                         genUtils.createAnnotation(
-                                                RestConstants.CONSUME_MIME, 
+                                                jakartaNamespace ? 
RestConstants.CONSUME_MIME_JAKARTA : RestConstants.CONSUME_MIME,
                                                 
Collections.<ExpressionTree>singletonList(annArguments)));
                     }
 
@@ -395,7 +417,7 @@ public class EjbFacadeGenerator implements FacadeGenerator {
                                 pathParamTree =
                                     
maker.addModifiersAnnotation(paramModifier, 
                                             genUtils.createAnnotation(
-                                                    RestConstants.PATH_PARAM, 
+                                                    jakartaNamespace ? 
RestConstants.PATH_PARAM_JAKARTA : RestConstants.PATH_PARAM,
                                                     annArguments));
                             }
                             Tree paramTree = 
genUtils.createType(paramTypes[i], 
@@ -427,16 +449,17 @@ public class EjbFacadeGenerator implements 
FacadeGenerator {
 
                 }
 
-                ModifiersTree modifiersTree =
-                        maker.addModifiersAnnotation(classTree.getModifiers(), 
-                                genUtils.createAnnotation(EJB_STATELESS));
+                ModifiersTree modifiersTree = maker.addModifiersAnnotation(
+                        classTree.getModifiers(),
+                        genUtils.createAnnotation(jakartaNamespace ? 
EJB_STATELESS_JAKARTA : EJB_STATELESS)
+                );
 
                 ExpressionTree annArgument = 
maker.Literal(entityFQN.toLowerCase());
                 modifiersTree =
                         maker.addModifiersAnnotation(modifiersTree, 
-                                genUtils.createAnnotation(RestConstants.PATH, 
-                                        
Collections.<ExpressionTree>singletonList(
-                                                annArgument)));
+                                genUtils.createAnnotation(
+                                        jakartaNamespace ? 
RestConstants.PATH_JAKARTA : RestConstants.PATH,
+                                        
Collections.<ExpressionTree>singletonList(annArgument)));
                                
 
                 TypeElement abstractFacadeElement = 
wc.getElements().getTypeElement(afName);
@@ -487,7 +510,7 @@ public class EjbFacadeGenerator implements FacadeGenerator {
         
         // generate methods for the facade
         EntityManagerGenerator generator = new EntityManagerGenerator(facade, 
entityFQN);
-        List<GenerationOptions> methodOptions = getMethodOptions(entityFQN, 
variableName);
+        List<GenerationOptions> methodOptions = getMethodOptions(entityFQN, 
variableName, jakartaNamespace);
         for (GenerationOptions each : methodOptions){
             generator.generate(each, ContainerManagedJTAInjectableInEJB.class);
         }
@@ -496,7 +519,7 @@ public class EjbFacadeGenerator implements FacadeGenerator {
         return createdFiles;
     }
 
-    private ExpressionTree mimeTypeTree(TreeMaker maker, String mimeType) {
+    private ExpressionTree mimeTypeTree(TreeMaker maker, String mimeType, 
boolean jakartaNamespace) {
         String mediaTypeMember = null;
         if (mimeType.equals("application/xml")) { // NOI18N
             mediaTypeMember = "APPLICATION_XML"; // NOI18N
@@ -510,7 +533,8 @@ public class EjbFacadeGenerator implements FacadeGenerator {
             result = maker.Literal(mimeType);
         } else {
             // Use a field of MediaType class if possible
-            ExpressionTree typeTree = 
maker.QualIdent("javax.ws.rs.core.MediaType"); // NOI18N
+            ExpressionTree typeTree = maker.QualIdent(
+                    jakartaNamespace ? "jakarta.ws.rs.core.MediaType" : 
"javax.ws.rs.core.MediaType"); // NOI18N
             result = maker.MemberSelect(typeTree, mediaTypeMember);
         }
         return result;
@@ -569,12 +593,17 @@ public class EjbFacadeGenerator implements 
FacadeGenerator {
     }
 
     private List<GenerationOptions> getAbstractFacadeMethodOptions(Map<String, 
-            String> entityNames, String entityFQN, String variableName)
+            String> entityNames, String entityFQN, String variableName,
+            boolean jakartaNamespace)
     {
 
         GenerationOptions getEMOptions = new GenerationOptions();
         getEMOptions.setMethodName("getEntityManager"); //NOI18N
-        getEMOptions.setReturnType("javax.persistence.EntityManager");//NOI18N
+        if (jakartaNamespace) {
+            
getEMOptions.setReturnType("jakarta.persistence.EntityManager");//NOI18N
+        } else {
+            
getEMOptions.setReturnType("javax.persistence.EntityManager");//NOI18N
+        }
         getEMOptions.setModifiers(EnumSet.of(Modifier.PROTECTED, 
Modifier.ABSTRACT));
 
         //implemented methods
@@ -636,13 +665,17 @@ public class EjbFacadeGenerator implements 
FacadeGenerator {
      * find/remove/findAll.
      */
     private List<GenerationOptions> getMethodOptions(String entityFQN, 
-            String variableName)
+            String variableName, boolean jakartaNamespace)
     {
 
         GenerationOptions getEMOptions = new GenerationOptions();
         getEMOptions.setMethodName("getEntityManager"); //NOI18N
         getEMOptions.setOperation(GenerationOptions.Operation.GET_EM);
-        getEMOptions.setReturnType("javax.persistence.EntityManager");//NOI18N
+        if (jakartaNamespace) {
+            
getEMOptions.setReturnType("jakarta.persistence.EntityManager");//NOI18N
+        } else {
+            
getEMOptions.setReturnType("javax.persistence.EntityManager");//NOI18N
+        }
         getEMOptions.setModifiers(EnumSet.of(Modifier.PROTECTED));
 
         return Arrays.<GenerationOptions>asList(getEMOptions);
@@ -758,8 +791,15 @@ public class EjbFacadeGenerator implements FacadeGenerator 
{
     }
     
     private List<RestGenerationOptions> getRestFacadeMethodOptions(
-            String entityFQN, String idClass)
+            String entityFQN, String idClass, boolean jakartaNamespace)
     {
+        final String pathSegmentType;
+        if(jakartaNamespace) {
+            pathSegmentType = "jakarta.ws.rs.core.PathSegment";
+        } else {
+            pathSegmentType = "javax.ws.rs.core.PathSegment";
+        }
+
         String paramArg = "java.lang.Character".equals(idClass) ? 
                 "id.charAt(0)" : "id"; //NOI18N
         String idType = "id".equals(paramArg) ? idClass : "java.lang.String"; 
//NOI18N
@@ -789,7 +829,7 @@ public class EjbFacadeGenerator implements FacadeGenerator {
         editOptions.setParameterNames(new String[]{"id", "entity"}); //NOI18N
         editOptions.setPathParams(new String[]{"id", null}); //NOI18N
         if ( needPathSegment ){
-            editOptions.setParameterTypes(new 
String[]{"javax.ws.rs.core.PathSegment", entityFQN}); // NOI18N
+            editOptions.setParameterTypes(new String[]{pathSegmentType, 
entityFQN}); // NOI18N
         }
         else {
             editOptions.setParameterTypes(new String[]{idType, entityFQN}); 
@@ -806,7 +846,7 @@ public class EjbFacadeGenerator implements FacadeGenerator {
         destroyOptions.setPathParams(new String[]{"id"}); //NOI18N
         StringBuilder builder = new StringBuilder();
         if ( needPathSegment ){
-            destroyOptions.setParameterTypes(new 
String[]{"javax.ws.rs.core.PathSegment"}); // NOI18N
+            destroyOptions.setParameterTypes(new String[]{pathSegmentType}); 
// NOI18N
             builder.append(idType);
             builder.append(" key=getPrimaryKey(id);\n");
             paramArg = "key";
@@ -827,7 +867,7 @@ public class EjbFacadeGenerator implements FacadeGenerator {
         findOptions.setPathParams(new String[]{"id"}); //NOI18N
         findOptions.setParameterNames(new String[]{"id"}); //NOI18N
         if ( needPathSegment ){
-            findOptions.setParameterTypes(new 
String[]{"javax.ws.rs.core.PathSegment"}); // NOI18N
+            findOptions.setParameterTypes(new String[]{pathSegmentType}); // 
NOI18N
         }
         else {
             findOptions.setParameterTypes(new String[]{idType});     
diff --git 
a/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/wizard/fromdb/Operation.java
 
b/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/wizard/fromdb/Operation.java
index 0a09aadbcb..ea93a12818 100644
--- 
a/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/wizard/fromdb/Operation.java
+++ 
b/enterprise/websvc.rest/src/org/netbeans/modules/websvc/rest/wizard/fromdb/Operation.java
@@ -22,13 +22,13 @@ import org.netbeans.modules.websvc.rest.codegen.RestMethod;
 
 public enum Operation implements RestMethod {
 
-    CREATE("javax.ws.rs.POST", "create", true ),
-    EDIT("javax.ws.rs.PUT", "edit", "{id}" ),
-    REMOVE("javax.ws.rs.DELETE", "remove", "{id}"),
-    FIND("javax.ws.rs.GET", "find", "{id}"),
-    FIND_ALL("javax.ws.rs.GET", "findAll", true),
-    FIND_RANGE("javax.ws.rs.GET", "findRange", "{from}/{to}"),
-    COUNT("javax.ws.rs.GET", "countREST", "count");
+    CREATE(".ws.rs.POST", "create", true ),
+    EDIT(".ws.rs.PUT", "edit", "{id}" ),
+    REMOVE(".ws.rs.DELETE", "remove", "{id}"),
+    FIND(".ws.rs.GET", "find", "{id}"),
+    FIND_ALL(".ws.rs.GET", "findAll", true),
+    FIND_RANGE(".ws.rs.GET", "findRange", "{from}/{to}"),
+    COUNT(".ws.rs.GET", "countREST", "count");
 
     private String method, methodName, uriPath;
     private boolean override;
@@ -50,8 +50,13 @@ public enum Operation implements RestMethod {
         this.uriPath = uriPath;
     }
     
-    public String getMethod() {
-        return method;
+    public String getMethod(Boolean jakartaVariant) {
+        if(jakartaVariant == null || jakartaVariant) {
+            return "jakarta" + method;
+        } else {
+            return "javax" + method;
+        }
+        
     }
 
     public String getMethodName() {
diff --git 
a/enterprise/websvc.restapi/src/org/netbeans/modules/websvc/rest/model/api/RestConstants.java
 
b/enterprise/websvc.restapi/src/org/netbeans/modules/websvc/rest/model/api/RestConstants.java
index b8109cc60e..ccdfcb87c9 100644
--- 
a/enterprise/websvc.restapi/src/org/netbeans/modules/websvc/rest/model/api/RestConstants.java
+++ 
b/enterprise/websvc.restapi/src/org/netbeans/modules/websvc/rest/model/api/RestConstants.java
@@ -54,51 +54,93 @@ public class RestConstants {
 
     public static final String REST_API_PACKAGE = "javax.ws.rs.";       
//NOI18N
 
+    public static final String REST_API_PACKAGE_JAKARTA = "jakarta.ws.rs.";    
   //NOI18N
+
     public static final String PROVIDER_ANNOTATION = 
"javax.ws.rs.ext.Provider"; //NOI18N
 
+    public static final String PROVIDER_ANNOTATION_JAKARTA = 
"jakarta.ws.rs.ext.Provider"; //NOI18N
+
     public static final String JavaEE5_EJB_PACKAGE = "javax.ejb.";       
//NOI18N
+
+    public static final String JavaEE5_EJB_PACKAGE_JAKARTA = "jakarta.ejb.";   
    //NOI18N
     
     public static final String REST_API_CORE_PACKAGE = REST_API_PACKAGE + 
"core.";      //NOI18N
+
+    public static final String REST_API_CORE_PACKAGE_JAKARTA = 
REST_API_PACKAGE_JAKARTA + "core.";      //NOI18N
     
     public static final String JERSEY_PACKAGE = "com.sun.jersey.";       
//NOI18N
     
     public static final String JERSEY_API_PACKAGE = JERSEY_PACKAGE + "api.";   
     //NOI18N
     
     public static final String JERSEY_SPI_PACKAGE = JERSEY_PACKAGE + "spi.";   
     //NOI18M
-   
+
     public static final String PATH = REST_API_PACKAGE + PATH_ANNOTATION;
+
+    public static final String PATH_JAKARTA = REST_API_PACKAGE_JAKARTA + 
PATH_ANNOTATION;
     
     public static final String GET = REST_API_PACKAGE + GET_ANNOTATION;
-    
+
+    public static final String GET_JAKARTA = REST_API_PACKAGE_JAKARTA + 
GET_ANNOTATION;
+
     public static final String POST = REST_API_PACKAGE + POST_ANNOTATION;
+
+    public static final String POST_JAKARTA = REST_API_PACKAGE_JAKARTA + 
POST_ANNOTATION;
     
     public static final String PUT = REST_API_PACKAGE + PUT_ANNOTATION;
+
+    public static final String PUT_JAKARTA = REST_API_PACKAGE_JAKARTA + 
PUT_ANNOTATION;
     
     public static final String DELETE = REST_API_PACKAGE + DELETE_ANNOTATION;
+
+    public static final String DELETE_JAKARTA = REST_API_PACKAGE_JAKARTA + 
DELETE_ANNOTATION;
     
     public static final String PRODUCE_MIME = REST_API_PACKAGE + 
PRODUCE_MIME_ANNOTATION;
+
+    public static final String PRODUCE_MIME_JAKARTA = REST_API_PACKAGE_JAKARTA 
+ PRODUCE_MIME_ANNOTATION;
     
     public static final String CONSUME_MIME = REST_API_PACKAGE + 
CONSUME_MIME_ANNOTATION;
+
+    public static final String CONSUME_MIME_JAKARTA = REST_API_PACKAGE_JAKARTA 
+ CONSUME_MIME_ANNOTATION;
     
     public static final String PATH_PARAM = REST_API_PACKAGE + 
PATH_PARAM_ANNOTATION;
+
+    public static final String PATH_PARAM_JAKARTA = REST_API_PACKAGE_JAKARTA + 
PATH_PARAM_ANNOTATION;
     
     public static final String QUERY_PARAM = REST_API_PACKAGE + 
QUERY_PARAM_ANNOTATION;
+
+    public static final String QUERY_PARAM_JAKARTA = REST_API_PACKAGE_JAKARTA 
+ QUERY_PARAM_ANNOTATION;
     
     public static final String DEFAULT_VALUE = REST_API_PACKAGE + 
DEFAULT_VALUE_ANNOTATION;
+
+    public static final String DEFAULT_VALUE_JAKARTA = 
REST_API_PACKAGE_JAKARTA + DEFAULT_VALUE_ANNOTATION;
     
     public static final String WEB_APPLICATION_EXCEPTION = REST_API_PACKAGE + 
"WebApplicationException";
+
+    public static final String WEB_APPLICATION_EXCEPTION_JAKARTA = 
REST_API_PACKAGE_JAKARTA + "WebApplicationException";
     
-    public static final String HTTP_RESPONSE = 
RestConstants.REST_API_CORE_PACKAGE + "Response"; //NOI18N
+    public static final String HTTP_RESPONSE = REST_API_CORE_PACKAGE + 
"Response"; //NOI18N
+
+    public static final String HTTP_RESPONSE_JAKARTA = 
REST_API_CORE_PACKAGE_JAKARTA + "Response"; //NOI18N
     
-    public static final String RESPONSE_BUILDER = 
RestConstants.REST_API_CORE_PACKAGE + "Response.Builder";       //NOI18N
+    public static final String RESPONSE_BUILDER = REST_API_CORE_PACKAGE + 
"Response.Builder";       //NOI18N
+
+    public static final String RESPONSE_BUILDER_JAKARTA = 
REST_API_CORE_PACKAGE_JAKARTA + "Response.Builder";       //NOI18N
     
-    public static final String ENTITY_TYPE = RestConstants.REST_API_PACKAGE + 
"Entity";
+    public static final String ENTITY_TYPE = REST_API_PACKAGE + "Entity";
+
+    public static final String ENTITY_TYPE_JAKARTA = REST_API_PACKAGE_JAKARTA 
+ "Entity";
     
-    public static final String CONTEXT = RestConstants.REST_API_CORE_PACKAGE + 
"Context";    //NOI18N
+    public static final String CONTEXT = REST_API_CORE_PACKAGE + "Context";    
//NOI18N
+
+    public static final String CONTEXT_JAKARTA = REST_API_CORE_PACKAGE_JAKARTA 
+ "Context";    //NOI18N
+
+    public static final String URI_INFO = REST_API_CORE_PACKAGE + "UriInfo";   
  //NOI18N
     
-    public static final String URI_INFO = RestConstants.REST_API_CORE_PACKAGE 
+ "UriInfo";     //NOI18N
+    public static final String URI_INFO_JAKARTA = 
REST_API_CORE_PACKAGE_JAKARTA + "UriInfo";     //NOI18N
     
-    public static final String URI_BUILDER = 
RestConstants.REST_API_CORE_PACKAGE + "UriBuilder"; //NOI18N
+    public static final String URI_BUILDER = REST_API_CORE_PACKAGE + 
"UriBuilder"; //NOI18N
+
+    public static final String URI_BUILDER_JAKARTA = 
REST_API_CORE_PACKAGE_JAKARTA + "UriBuilder"; //NOI18N
 
     public static final String SINGLETON = JERSEY_SPI_PACKAGE + "resource." + 
SINGLETON_ANNOTATION;     //NOI18N
     
@@ -106,9 +148,15 @@ public class RestConstants {
     
     public static final String STATELESS = JavaEE5_EJB_PACKAGE + "Stateless";  
  //NOI18N
 
+    public static final String STATELESS_JAKARTA = JavaEE5_EJB_PACKAGE_JAKARTA 
+ "Stateless";    //NOI18N
+
     public static final String EJB = JavaEE5_EJB_PACKAGE + "EJB";    //NOI18N
 
+    public static final String EJB_JAKARTA = JavaEE5_EJB_PACKAGE_JAKARTA + 
"EJB";    //NOI18N
+
     public static final String APPLICATION_PATH = REST_API_PACKAGE + 
"ApplicationPath"; //NOI18N
+
+    public static final String APPLICATION_PATH_JAKARTA = 
REST_API_PACKAGE_JAKARTA + "ApplicationPath"; //NOI18N
     
     public static final String GET_CLASSES = "getClasses"; //NOI18N
     
diff --git 
a/enterprise/websvc.restapi/src/org/netbeans/modules/websvc/rest/model/impl/RestApplicationsImpl.java
 
b/enterprise/websvc.restapi/src/org/netbeans/modules/websvc/rest/model/impl/RestApplicationsImpl.java
index 6bcdde7215..81a3dd65b9 100644
--- 
a/enterprise/websvc.restapi/src/org/netbeans/modules/websvc/rest/model/impl/RestApplicationsImpl.java
+++ 
b/enterprise/websvc.restapi/src/org/netbeans/modules/websvc/rest/model/impl/RestApplicationsImpl.java
@@ -73,6 +73,7 @@ public class RestApplicationsImpl implements RestApplications 
{
         public List<RestApplicationImpl> createInitialObjects() throws 
InterruptedException {
             final Map<TypeElement, RestApplicationImpl> result =
                     new HashMap<TypeElement, RestApplicationImpl>();
+            findAnnotations(RestConstants.APPLICATION_PATH_JAKARTA, 
EnumSet.of(ElementKind.CLASS), result);
             findAnnotations(RestConstants.APPLICATION_PATH, 
EnumSet.of(ElementKind.CLASS), result);
             return new ArrayList<RestApplicationImpl>(result.values());
         }
diff --git 
a/enterprise/websvc.restapi/src/org/netbeans/modules/websvc/rest/model/impl/RestServicesImpl.java
 
b/enterprise/websvc.restapi/src/org/netbeans/modules/websvc/rest/model/impl/RestServicesImpl.java
index 71206ee08d..96fbc3113d 100644
--- 
a/enterprise/websvc.restapi/src/org/netbeans/modules/websvc/rest/model/impl/RestServicesImpl.java
+++ 
b/enterprise/websvc.restapi/src/org/netbeans/modules/websvc/rest/model/impl/RestServicesImpl.java
@@ -159,10 +159,15 @@ public class RestServicesImpl implements RestServices {
                     new HashMap<TypeElement, RestServiceDescriptionImpl>();
             
             findAnnotation(RestConstants.PATH, EnumSet.of(ElementKind.CLASS), 
result);
+            findAnnotation(RestConstants.PATH_JAKARTA, 
EnumSet.of(ElementKind.CLASS), result);
             findAnnotation(RestConstants.GET, EnumSet.of(ElementKind.METHOD), 
result);
+            findAnnotation(RestConstants.GET_JAKARTA, 
EnumSet.of(ElementKind.METHOD), result);
             findAnnotation(RestConstants.POST, EnumSet.of(ElementKind.METHOD), 
result);
+            findAnnotation(RestConstants.POST_JAKARTA, 
EnumSet.of(ElementKind.METHOD), result);
             findAnnotation(RestConstants.PUT, EnumSet.of(ElementKind.METHOD), 
result);
+            findAnnotation(RestConstants.PUT_JAKARTA, 
EnumSet.of(ElementKind.METHOD), result);
             findAnnotation(RestConstants.DELETE, 
EnumSet.of(ElementKind.METHOD), result);
+            findAnnotation(RestConstants.DELETE_JAKARTA, 
EnumSet.of(ElementKind.METHOD), result);
             
             return new ArrayList<RestServiceDescriptionImpl>(result.values());
         }
@@ -231,6 +236,7 @@ public class RestServicesImpl implements RestServices {
         public List<RestProviderDescriptionImpl> createInitialObjects() throws 
InterruptedException {
             final Map<TypeElement, RestProviderDescriptionImpl> result =
                     new HashMap<TypeElement, RestProviderDescriptionImpl>();
+            findAnnotation(RestConstants.PROVIDER_ANNOTATION_JAKARTA, 
EnumSet.of(ElementKind.CLASS), result);
             findAnnotation(RestConstants.PROVIDER_ANNOTATION, 
EnumSet.of(ElementKind.CLASS), result);
             return new ArrayList<RestProviderDescriptionImpl>(result.values());
         }
diff --git 
a/enterprise/websvc.restapi/src/org/netbeans/modules/websvc/rest/model/impl/Utils.java
 
b/enterprise/websvc.restapi/src/org/netbeans/modules/websvc/rest/model/impl/Utils.java
index 27617b03ba..cc3d0add70 100644
--- 
a/enterprise/websvc.restapi/src/org/netbeans/modules/websvc/rest/model/impl/Utils.java
+++ 
b/enterprise/websvc.restapi/src/org/netbeans/modules/websvc/rest/model/impl/Utils.java
@@ -37,6 +37,7 @@ import org.netbeans.api.java.source.ElementHandle;
 import org.netbeans.api.java.source.SourceUtils;
 import org.netbeans.api.project.Project;
 import 
org.netbeans.modules.j2ee.metadata.model.api.support.annotation.AnnotationModelHelper;
+import org.netbeans.modules.websvc.rest.model.api.RestApplication;
 import org.netbeans.modules.websvc.rest.spi.RestSupport;
 import org.openide.filesystems.FileObject;
 import org.openide.util.Exceptions;
@@ -50,15 +51,27 @@ public class Utils {
     private static final String VALUE = "value";        //NOI18N
 
     public static String getUriTemplate(Element element) {
-        return getAnnotationValue(element, RestConstants.PATH, VALUE);
+        if (hasAnnotationType(element, RestConstants.PATH_JAKARTA)) {
+            return getAnnotationValue(element, RestConstants.PATH_JAKARTA, 
VALUE);
+        } else {
+            return getAnnotationValue(element, RestConstants.PATH, VALUE);
+        }
     }
 
     public static String getConsumeMime(Element element) {
-        return getAnnotationValue(element, RestConstants.CONSUME_MIME, VALUE);
+        if (hasAnnotationType(element, RestConstants.CONSUME_MIME_JAKARTA)) {
+            return getAnnotationValue(element, 
RestConstants.CONSUME_MIME_JAKARTA, VALUE);
+        } else {
+            return getAnnotationValue(element, RestConstants.CONSUME_MIME, 
VALUE);
+        }
     }
 
     public static String getProduceMime(Element element) {
-        return getAnnotationValue(element, RestConstants.PRODUCE_MIME, VALUE);
+        if (hasAnnotationType(element, RestConstants.PRODUCE_MIME_JAKARTA)) {
+            return getAnnotationValue(element, 
RestConstants.PRODUCE_MIME_JAKARTA, VALUE);
+        } else {
+            return getAnnotationValue(element, RestConstants.PRODUCE_MIME, 
VALUE);
+        }
     }
     
     static void fillQueryParams( Map<String, String> queryParams,
@@ -71,13 +84,19 @@ public class Utils {
         List<? extends VariableElement> parameters = method.getParameters();
         for (VariableElement variableElement : parameters) {
             String paramName = null;
-            if ( hasAnnotationType(variableElement, 
RestConstants.QUERY_PARAM)){
+            if ( hasAnnotationType(variableElement, 
RestConstants.QUERY_PARAM_JAKARTA)){
                 paramName = getAnnotationValue(variableElement, 
+                        RestConstants.QUERY_PARAM_JAKARTA, VALUE);
+            } else if ( hasAnnotationType(variableElement, 
RestConstants.QUERY_PARAM)){
+                paramName = getAnnotationValue(variableElement,
                         RestConstants.QUERY_PARAM, VALUE);
             }
             String defaultValue = null;
-            if ( hasAnnotationType(variableElement, 
RestConstants.DEFAULT_VALUE)){
+            if ( hasAnnotationType(variableElement, 
RestConstants.DEFAULT_VALUE_JAKARTA)){
                 defaultValue = getAnnotationValue(variableElement, 
+                        RestConstants.DEFAULT_VALUE_JAKARTA, VALUE);
+            } else if ( hasAnnotationType(variableElement, 
RestConstants.DEFAULT_VALUE)){
+                defaultValue = getAnnotationValue(variableElement,
                         RestConstants.DEFAULT_VALUE, VALUE);
             }
             if ( paramName != null ){
@@ -87,40 +106,57 @@ public class Utils {
     }
 
     public static String getApplicationPath(Element element) {
-        return getAnnotationValue(element, RestConstants.APPLICATION_PATH , 
VALUE);
+        if(hasAnnotationType(element, RestConstants.APPLICATION_PATH_JAKARTA)) 
{
+            return getAnnotationValue(element, 
RestConstants.APPLICATION_PATH_JAKARTA, VALUE);
+        } else {
+            return getAnnotationValue(element, RestConstants.APPLICATION_PATH 
, VALUE);
+        }
     }
 
     public static String getHttpMethod(Element element) {
-        if (hasAnnotationType(element, RestConstants.GET)) {
+        if (hasAnnotationType(element, RestConstants.GET_JAKARTA)
+                || hasAnnotationType(element, RestConstants.GET)) {
             return RestConstants.GET_ANNOTATION;
-        } else if (hasAnnotationType(element, RestConstants.POST)) {
+        } else if (hasAnnotationType(element, RestConstants.POST_JAKARTA)
+                || hasAnnotationType(element, RestConstants.POST)) {
             return RestConstants.POST_ANNOTATION;
-        } else if (hasAnnotationType(element, RestConstants.PUT)) {
+        } else if (hasAnnotationType(element, RestConstants.PUT_JAKARTA)
+                || hasAnnotationType(element, RestConstants.PUT)) {
             return RestConstants.PUT_ANNOTATION;
-        } else if (hasAnnotationType(element, RestConstants.DELETE)) {
+        } else if (hasAnnotationType(element, RestConstants.DELETE_JAKARTA)
+                || hasAnnotationType(element, RestConstants.DELETE)) {
             return RestConstants.DELETE_ANNOTATION;
         }
         return null;
     }
 
     public static boolean hasUriTemplate(Element element) {
-        return hasAnnotationType(element, RestConstants.PATH);
+        return hasAnnotationType(element, RestConstants.PATH_JAKARTA)
+                || hasAnnotationType(element, RestConstants.PATH);
     }
     
     public static boolean hasHttpMethod(Element element) {
-        return element.getKind() == ElementKind.METHOD && 
-              (hasAnnotationType(element, RestConstants.GET) ||
-               hasAnnotationType(element, RestConstants.POST) ||
-               hasAnnotationType(element, RestConstants.PUT) ||
-               hasAnnotationType(element, RestConstants.DELETE));
+        return element.getKind() == ElementKind.METHOD
+                && (
+                hasAnnotationType(element, RestConstants.GET_JAKARTA)
+                || hasAnnotationType(element, RestConstants.GET)
+                || hasAnnotationType(element, RestConstants.POST_JAKARTA)
+                || hasAnnotationType(element, RestConstants.POST)
+                || hasAnnotationType(element, RestConstants.PUT_JAKARTA)
+                || hasAnnotationType(element, RestConstants.PUT)
+                || hasAnnotationType(element, RestConstants.DELETE_JAKARTA)
+                || hasAnnotationType(element, RestConstants.DELETE)
+                );
     }
     
     public static boolean hasConsumeMime(Element element) {
-        return hasAnnotationType(element, RestConstants.CONSUME_MIME);
+        return hasAnnotationType(element, RestConstants.CONSUME_MIME_JAKARTA)
+                || hasAnnotationType(element, RestConstants.CONSUME_MIME);
     }
     
     public static boolean hasProduceMime(Element element) {
-        return hasAnnotationType(element, RestConstants.PRODUCE_MIME);
+        return hasAnnotationType(element, RestConstants.PRODUCE_MIME_JAKARTA)
+                || hasAnnotationType(element, RestConstants.PRODUCE_MIME);
     }
 
     private static String getAnnotationValue(Element element, String 
annotationType, String paramName) {
@@ -190,10 +226,9 @@ public class Utils {
     static boolean isRest(TypeElement type, AnnotationModelHelper helper) {
         boolean isRest = false;
         if (type.getKind() != ElementKind.INTERFACE) { // don't consider 
interfaces
-         
             if (!type.getModifiers().contains(Modifier.ABSTRACT)) {
-                if (helper.hasAnnotation(type.getAnnotationMirrors(),
-                        RestConstants.PATH)) { // NOI18N
+                if (helper.hasAnnotation(type.getAnnotationMirrors(), 
RestConstants.PATH_JAKARTA)
+                        || helper.hasAnnotation(type.getAnnotationMirrors(), 
RestConstants.PATH)) {
                     isRest = true;
                 } else {
                     for (Element element : type.getEnclosedElements()) {
@@ -210,8 +245,8 @@ public class Utils {
     
     static boolean isProvider(TypeElement type, AnnotationModelHelper helper) {
         if (type.getKind() != ElementKind.INTERFACE) { // don't consider 
interfaces
-            if (helper.hasAnnotation(type.getAnnotationMirrors(),
-                    RestConstants.PROVIDER_ANNOTATION)) { // NOI18N
+            if (helper.hasAnnotation(type.getAnnotationMirrors(), 
RestConstants.PROVIDER_ANNOTATION_JAKARTA)
+                    || helper.hasAnnotation(type.getAnnotationMirrors(), 
RestConstants.PROVIDER_ANNOTATION)) {
                 return true;
             }
         }
@@ -221,7 +256,8 @@ public class Utils {
     static boolean isRestApplication(TypeElement type, AnnotationModelHelper 
helper) {
         boolean isRest = false;
         if (type != null && type.getKind() != ElementKind.INTERFACE) { // 
don't consider interfaces
-            if (helper.hasAnnotation(type.getAnnotationMirrors(), 
RestConstants.APPLICATION_PATH)) { // NOI18N
+            if (helper.hasAnnotation(type.getAnnotationMirrors(), 
RestConstants.APPLICATION_PATH_JAKARTA)
+                    || helper.hasAnnotation(type.getAnnotationMirrors(), 
RestConstants.APPLICATION_PATH)) {
                 isRest = true;
             }
         }
diff --git 
a/enterprise/websvc.restapi/src/org/netbeans/modules/websvc/rest/spi/RestSupport.java
 
b/enterprise/websvc.restapi/src/org/netbeans/modules/websvc/rest/spi/RestSupport.java
index 577e3e5443..5ba7a602d1 100644
--- 
a/enterprise/websvc.restapi/src/org/netbeans/modules/websvc/rest/spi/RestSupport.java
+++ 
b/enterprise/websvc.restapi/src/org/netbeans/modules/websvc/rest/spi/RestSupport.java
@@ -304,6 +304,7 @@ public abstract class RestSupport {
     }
 
     private static ClassPath extendClassPathWithJaxRsApisIfNecessary(ClassPath 
classPath) {
+        // @todo: should we also add the jakarta variants?
         if (classPath.findResource("javax/ws/rs/core/Application.class") != 
null) {
             return classPath;
         }
@@ -643,7 +644,8 @@ public abstract class RestSupport {
     }
 
     public boolean hasJaxRsOnClasspath(boolean checkServerClasspath) {
-        if (MiscPrivateUtilities.hasResource(getProject(), 
"javax/ws/rs/core/Application.class")) {
+        if (MiscPrivateUtilities.hasResource(getProject(), 
"jakarta/ws/rs/core/Application.class")
+                || MiscPrivateUtilities.hasResource(getProject(), 
"javax/ws/rs/core/Application.class")) {
             return true;
         }
         if (checkServerClasspath) {
diff --git 
a/java/j2ee.persistence/src/org/netbeans/modules/j2ee/persistence/action/GenerationOptions.java
 
b/java/j2ee.persistence/src/org/netbeans/modules/j2ee/persistence/action/GenerationOptions.java
index 02e296859f..e5059a6890 100644
--- 
a/java/j2ee.persistence/src/org/netbeans/modules/j2ee/persistence/action/GenerationOptions.java
+++ 
b/java/j2ee.persistence/src/org/netbeans/modules/j2ee/persistence/action/GenerationOptions.java
@@ -20,8 +20,8 @@
 package org.netbeans.modules.j2ee.persistence.action;
 
 import java.text.MessageFormat;
+import java.util.Comparator;
 import java.util.EnumSet;
-import java.util.HashSet;
 import java.util.Set;
 import javax.lang.model.element.Modifier;
 import org.netbeans.modules.j2ee.persistence.dd.common.Persistence;
@@ -48,49 +48,85 @@ public final class GenerationOptions {
         // here the query attribute represents the name of the entity class
         FIND_ALL(
                 "return {0}.createQuery(\"select object(o) from \" + 
{5}.getSimpleName() + \" as o\").getResultList();",
-                "javax.persistence.criteria.CriteriaQuery cq = 
{0}.getCriteriaBuilder().createQuery();cq.select(cq.from({5}));return 
{0}.createQuery(cq).getResultList();"
+                "javax.persistence.criteria.CriteriaQuery cq = 
{0}.getCriteriaBuilder().createQuery();cq.select(cq.from({5}));return 
{0}.createQuery(cq).getResultList();",
+                "jakarta.persistence.criteria.CriteriaQuery cq = 
{0}.getCriteriaBuilder().createQuery();cq.select(cq.from({5}));return 
{0}.createQuery(cq).getResultList();"
                 ),
         //querry to get only items starting from {1}[0] up to {1}[1]-1
         FIND_SUBSET(
                 "javax.persistence.Query q = {0}.createQuery(\"select 
object(o) from \" + {5}.getSimpleName() + \" as 
o\");\nq.setMaxResults({1}[1]-{1}[0]+1);\nq.setFirstResult({1}[0]);\nreturn 
q.getResultList();",
-                "javax.persistence.criteria.CriteriaQuery cq = 
{0}.getCriteriaBuilder().createQuery();cq.select(cq.from({5}));javax.persistence.Query
 q = 
{0}.createQuery(cq);q.setMaxResults({1}[1]-{1}[0]+1);q.setFirstResult({1}[0]);return
 q.getResultList();"),
+                "javax.persistence.criteria.CriteriaQuery cq = 
{0}.getCriteriaBuilder().createQuery();cq.select(cq.from({5}));javax.persistence.Query
 q = 
{0}.createQuery(cq);q.setMaxResults({1}[1]-{1}[0]+1);q.setFirstResult({1}[0]);return
 q.getResultList();",
+                "jakarta.persistence.criteria.CriteriaQuery cq = 
{0}.getCriteriaBuilder().createQuery();cq.select(cq.from({5}));jakarta.persistence.Query
 q = 
{0}.createQuery(cq);q.setMaxResults({1}[1]-{1}[0]+1);q.setFirstResult({1}[0]);return
 q.getResultList();"
+        ),
         //qurrry to get count(*) on a table
         COUNT(
                 "return ((Long) {0}.createQuery(\"select count(o) from \" + 
{5}.getSimpleName() + \" as o\").getSingleResult()).intValue();",
-                "javax.persistence.criteria.CriteriaQuery cq = 
{0}.getCriteriaBuilder().createQuery();javax.persistence.criteria.Root<{4}> rt 
= 
cq.from({5});cq.select({0}.getCriteriaBuilder().count(rt));javax.persistence.Query
 q = {0}.createQuery(cq);return ((Long) q.getSingleResult()).intValue();"),
+                "javax.persistence.criteria.CriteriaQuery cq = 
{0}.getCriteriaBuilder().createQuery();javax.persistence.criteria.Root<{4}> rt 
= 
cq.from({5});cq.select({0}.getCriteriaBuilder().count(rt));javax.persistence.Query
 q = {0}.createQuery(cq);return ((Long) q.getSingleResult()).intValue();",
+                "jakarta.persistence.criteria.CriteriaQuery cq = 
{0}.getCriteriaBuilder().createQuery();jakarta.persistence.criteria.Root<{4}> 
rt = 
cq.from({5});cq.select({0}.getCriteriaBuilder().count(rt));jakarta.persistence.Query
 q = {0}.createQuery(cq);return ((Long) q.getSingleResult()).intValue();"),
         GET_EM("return {0};");
 
-        private String body;
-        private String body2_0;
-        
-        private Operation(String body){
+        private final String body;
+        private final String body2_0;
+        private final String body3_0;
+
+        private Operation(String body) {
             this(body, body);
         }
 
-        private Operation(String body, String body2_0){
-            this.body2_0=body2_0;
+        private Operation(String body, String body2_0) {
+            this(body, body2_0, body2_0);
+        }
+
+        private Operation(String body, String body2_0, String body3_0) {
+            this.body3_0 = body3_0;
+            this.body2_0 = body2_0;
             this.body = body;
         }
 
         /*
          * @return default body (for jpa 1.0)
          */
-        public String getBody(){
+        public String getBody() {
             return getBody(Persistence.VERSION_1_0);
         }
 
         /*
          * @return body for corresponding jpa version, default is 1.0
          */
-        public String getBody(String version){
-            if(version!=null && !Persistence.VERSION_1_0.equals(version))//any 
version except 1.0 will get this case
-            {
-                return body2_0;
+        public String getBody(String version) {
+            if(version == null) {
+                return body;
             }
-            else {
+            if(JPA_VERSION_COMPARATOR.compare(version, 
Persistence.VERSION_3_0) >= 0) {
+                return body3_0;
+            } else if(JPA_VERSION_COMPARATOR.compare(version, 
Persistence.VERSION_2_0) >= 0) {
+                return body2_0;
+            } else {
                 return body;
             }
         }
+
+        private static final Comparator<String> JPA_VERSION_COMPARATOR = (a, 
b) -> {
+            String[] aComponents = a.split("\\D");
+            String[] bComponents = b.split("\\D");
+            for(int i = 0; i < Math.min(aComponents.length, 
bComponents.length); i++) {
+                int numA;
+                int numB;
+                try {
+                    numA = Integer.parseInt(aComponents[i]);
+                } catch (NumberFormatException ex) {
+                    numA = 0;
+                }
+                try {
+                    numB = Integer.parseInt(bComponents[i]);
+                } catch (NumberFormatException ex) {
+                    numB = 0;
+                }
+                if (numA != numB) {
+                    return numA - numB;
+                }
+            }
+            return 0;
+        };
     }
     
     private Operation operation;
diff --git 
a/java/j2ee.persistence/src/org/netbeans/modules/j2ee/persistence/wizard/fromdb/EntityClassesPanel.java
 
b/java/j2ee.persistence/src/org/netbeans/modules/j2ee/persistence/wizard/fromdb/EntityClassesPanel.java
index 754152d306..34856c72dc 100644
--- 
a/java/j2ee.persistence/src/org/netbeans/modules/j2ee/persistence/wizard/fromdb/EntityClassesPanel.java
+++ 
b/java/j2ee.persistence/src/org/netbeans/modules/j2ee/persistence/wizard/fromdb/EntityClassesPanel.java
@@ -152,6 +152,7 @@ public class EntityClassesPanel extends javax.swing.JPanel {
         }
         
         final String notNullAnnotation = 
"javax.validation.constraints.NotNull";    //NOI18N
+        final String notNullAnnotationJakarta = 
"jakarta.validation.constraints.NotNull";    //NOI18N
         Sources sources=ProjectUtils.getSources(project);
         SourceGroup 
groups[]=sources.getSourceGroups(JavaProjectConstants.SOURCES_TYPE_JAVA);
         if(groups == null || groups.length<1){
@@ -163,7 +164,8 @@ public class EntityClassesPanel extends javax.swing.JPanel {
         if (compile == null) {
             return false;
         }
-        return compile.findResource(notNullAnnotation.replace('.', 
'/')+".class")!=null;//NOI18N
+        return compile.findResource(notNullAnnotation.replace('.', '/') + 
".class") != null //NOI18N
+                || compile.findResource(notNullAnnotationJakarta.replace('.', 
'/') + ".class") != null; //NOI18N
     }
 
     public void initialize(PersistenceGenerator persistenceGen, Project 
project, FileObject targetFolder) {
@@ -207,7 +209,8 @@ public class EntityClassesPanel extends javax.swing.JPanel {
             javaSource.runUserActionTask( (CompilationController controller) 
-> {
                 controller.toPhase(JavaSource.Phase.ELEMENTS_RESOLVED);
                 TypeElement jc = 
controller.getElements().getTypeElement("javax.xml.bind.annotation.XmlTransient");
 //NOI18N
-                if(jc == null){
+                TypeElement jcJakarta = 
controller.getElements().getTypeElement("jakarta.xml.bind.annotation.XmlTransient");
 //NOI18N
+                if (jc == null && jcJakarta == null) {
                     generateJAXBCheckBox.setSelected(false);
                     generateJAXBCheckBox.setEnabled(false);
                 }
diff --git 
a/java/j2ee.persistence/src/org/netbeans/modules/j2ee/persistence/wizard/fromdb/JavaPersistenceGenerator.java
 
b/java/j2ee.persistence/src/org/netbeans/modules/j2ee/persistence/wizard/fromdb/JavaPersistenceGenerator.java
index 32c9bf8568..9f40d7f23e 100644
--- 
a/java/j2ee.persistence/src/org/netbeans/modules/j2ee/persistence/wizard/fromdb/JavaPersistenceGenerator.java
+++ 
b/java/j2ee.persistence/src/org/netbeans/modules/j2ee/persistence/wizard/fromdb/JavaPersistenceGenerator.java
@@ -716,7 +716,7 @@ public class JavaPersistenceGenerator implements 
PersistenceGenerator {
                     annotations.add(genUtils.createAnnotation(enterprisePrefix 
+ ".persistence.Basic", basicAnnArguments)); //NOI18N
                     //Add @NotNull constraint
                     if (generateValidationConstraints && !m.isAutoIncrement()) 
{   //NOI18N
-                        
annotations.add(genUtils.createAnnotation("javax.validation.constraints.NotNull"));
 //NOI18N
+                        
annotations.add(genUtils.createAnnotation(enterprisePrefix + 
".validation.constraints.NotNull")); //NOI18N
                     }
                 }
 
@@ -765,7 +765,7 @@ public class JavaPersistenceGenerator implements 
PersistenceGenerator {
                             
sizeAnnArguments.add(genUtils.createAnnotationArgument("min", 1));  //NOI18N
                         }
                         
sizeAnnArguments.add(genUtils.createAnnotationArgument("max", length)); //NOI18N
-                        
annotations.add(genUtils.createAnnotation("javax.validation.constraints.Size", 
sizeAnnArguments));   //NOI18N
+                        
annotations.add(genUtils.createAnnotation(enterprisePrefix + 
".validation.constraints.Size", sizeAnnArguments));   //NOI18N
                     }
                 }
                 if (isDecimalType(memberType) && !decimalCommentExist) {
@@ -954,7 +954,7 @@ public class JavaPersistenceGenerator implements 
PersistenceGenerator {
                     }
                     if (xmlTransient) {
                         AnnotationTree xmlTransientAn = 
genUtils.createAnnotation(
-                                "javax.xml.bind.annotation.XmlTransient"); 
//NOI18N
+                                enterprisePrefix + 
".xml.bind.annotation.XmlTransient"); //NOI18N
                         TypeElement jsonIgnore = moduleElement != null
                                 ? copy.getElements().getTypeElement(
                                         moduleElement,
@@ -1124,7 +1124,7 @@ public class JavaPersistenceGenerator implements 
PersistenceGenerator {
                     }
 
                     if (generateJAXBAnnotations) {
-                        newClassTree = genUtils.addAnnotation(newClassTree, 
genUtils.createAnnotation("javax.xml.bind.annotation.XmlRootElement"));//NOI18N
+                        newClassTree = genUtils.addAnnotation(newClassTree, 
genUtils.createAnnotation(enterprisePrefix + 
".xml.bind.annotation.XmlRootElement"));//NOI18N
                         /**
                          * see #228733
                          * if(jaxbOrder) {


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists

Reply via email to