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

mbien 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 8af5722b38 adding initial support for jakarta EE 10 transformer
     new d848cb34e3 Merge pull request #5847 from 
breakponchito/FISH-6771-support-transformation-jakartaee8-to-jakartaee10
8af5722b38 is described below

commit 8af5722b38aebfcb123ac98a92891f5a515f1af4
Author: Alfonso Altamirano <[email protected]>
AuthorDate: Tue Apr 4 16:16:40 2023 -0600

    adding initial support for jakarta EE 10 transformer
    
    Co-authored-by: Michael Bien <[email protected]>
---
 .gitignore                                         |   3 +
 enterprise/jakarta.transformer/build.xml           |  25 ++
 enterprise/jakarta.transformer/licenseinfo.xml     |  29 ++
 enterprise/jakarta.transformer/manifest.mf         |   7 +
 .../nbproject/project.properties                   |  20 +
 .../jakarta.transformer/nbproject/project.xml      | 175 +++++++++
 .../payara/jakarta/transformer/BannerJakarta.png   | Bin 0 -> 7953 bytes
 .../payara/jakarta/transformer/Bundle.properties   |  33 ++
 .../payara/jakarta/transformer/JakartaEEIcon.png   | Bin 0 -> 319 bytes
 .../jakarta/transformer/TransformerConstants.java  |  73 ++++
 .../transformer/TransformerPanelVisual.form        | 155 ++++++++
 .../transformer/TransformerPanelVisual.java        | 299 +++++++++++++++
 .../transformer/TransformerWizardIterator.java     | 421 +++++++++++++++++++++
 .../transformer/TransformerWizardPanel.java        | 118 ++++++
 .../fish/payara/jakarta/transformer/layer.xml      |  26 ++
 .../fish/payara/jakarta/transformer/pom.txt        |  34 ++
 .../transformer/transformerDescription.html        |  28 ++
 enterprise/maven.j2ee/nbproject/project.xml        |   1 +
 ide/swing.validation/nbproject/project.xml         |   1 +
 .../netbeans/modules/nbcode/integration/layer.xml  |   1 +
 .../nbcode/nbproject/platform.properties           |   1 +
 java/maven.embedder/nbproject/project.xml          |   1 +
 java/maven.indexer/nbproject/project.xml           |   1 +
 java/maven.model/nbproject/project.xml             |   1 +
 java/maven/nbproject/project.xml                   |   1 +
 nbbuild/cluster.properties                         |   1 +
 26 files changed, 1455 insertions(+)

diff --git a/.gitignore b/.gitignore
index 947a17a673..05acc82fe5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -111,3 +111,6 @@ derby.log
 /java/languages.antlr/external/LexerAdaptor.java
 
 /ide/languages.hcl/src/org/netbeans/modules/languages/hcl/grammar/*.java
+
+# idea
+.idea
diff --git a/enterprise/jakarta.transformer/build.xml 
b/enterprise/jakarta.transformer/build.xml
new file mode 100644
index 0000000000..a3df84e2e1
--- /dev/null
+++ b/enterprise/jakarta.transformer/build.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+-->
+<project basedir="." default="build" name="enterprise/jakarta.transformer">
+    <description>Builds, tests, and runs the project 
org.netbeans.modules.jakarta.transformer</description>
+    <import file="../../nbbuild/templates/projectized.xml"/>
+</project>
diff --git a/enterprise/jakarta.transformer/licenseinfo.xml 
b/enterprise/jakarta.transformer/licenseinfo.xml
new file mode 100644
index 0000000000..0b231928a2
--- /dev/null
+++ b/enterprise/jakarta.transformer/licenseinfo.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+-->
+<licenseinfo>
+    <fileset>
+        
<file>src/org/netbeans/modules/fish/payara/jakarta/transformer/BannerJakarta.png</file>
+        
<file>src/org/netbeans/modules/fish/payara/jakarta/transformer/JakartaEEIcon.png</file>
+        <license ref="EPL-v20" />
+        <comment type="COMMENT_UNSUPPORTED" />
+    </fileset>
+</licenseinfo>
diff --git a/enterprise/jakarta.transformer/manifest.mf 
b/enterprise/jakarta.transformer/manifest.mf
new file mode 100644
index 0000000000..a95676309c
--- /dev/null
+++ b/enterprise/jakarta.transformer/manifest.mf
@@ -0,0 +1,7 @@
+Manifest-Version: 1.0
+OpenIDE-Module: org.netbeans.modules.jakarta.transformer/0
+OpenIDE-Module-Layer: 
org/netbeans/modules/fish/payara/jakarta/transformer/layer.xml
+OpenIDE-Module-Localizing-Bundle: 
org/netbeans/modules/fish/payara/jakarta/transformer/Bundle.properties
+AutoUpdate-Show-In-Client: true
+OpenIDE-Module-Specification-Version: 2.15
+
diff --git a/enterprise/jakarta.transformer/nbproject/project.properties 
b/enterprise/jakarta.transformer/nbproject/project.properties
new file mode 100644
index 0000000000..ba9fea65f9
--- /dev/null
+++ b/enterprise/jakarta.transformer/nbproject/project.properties
@@ -0,0 +1,20 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+javac.source=1.8
+javac.compilerargs=-Xlint -Xlint:-serial
diff --git a/enterprise/jakarta.transformer/nbproject/project.xml 
b/enterprise/jakarta.transformer/nbproject/project.xml
new file mode 100644
index 0000000000..1547eeaeee
--- /dev/null
+++ b/enterprise/jakarta.transformer/nbproject/project.xml
@@ -0,0 +1,175 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+-->
+<project xmlns="http://www.netbeans.org/ns/project/1";>
+    <type>org.netbeans.modules.apisupport.project</type>
+    <configuration>
+        <data xmlns="http://www.netbeans.org/ns/nb-module-project/3";>
+            
<code-name-base>org.netbeans.modules.jakarta.transformer</code-name-base>
+            <module-dependencies>
+                <dependency>
+                    
<code-name-base>org.netbeans.modules.maven.indexer</code-name-base>
+                    <build-prerequisite/>
+                    <compile-dependency/>
+                    <run-dependency>
+                        <release-version>2</release-version>
+                        <specification-version>2.52</specification-version>
+                    </run-dependency>
+                </dependency>
+                <dependency>
+                    <code-name-base>org.netbeans.api.maven</code-name-base>
+                    <build-prerequisite/>
+                    <compile-dependency/>
+                    <run-dependency>
+                        <specification-version>1.18</specification-version>
+                    </run-dependency>
+                </dependency>
+                <dependency>
+                    <code-name-base>org.netbeans.api.templates</code-name-base>
+                    <build-prerequisite/>
+                    <compile-dependency/>
+                    <run-dependency>
+                        <specification-version>1.7.1</specification-version>
+                    </run-dependency>
+                </dependency>
+                <dependency>
+                    <code-name-base>org.netbeans.modules.maven</code-name-base>
+                    <build-prerequisite/>
+                    <compile-dependency/>
+                    <run-dependency>
+                        <release-version>2</release-version>
+                        <specification-version>2.133</specification-version>
+                    </run-dependency>
+                </dependency>
+                <dependency>
+                    
<code-name-base>org.netbeans.modules.maven.embedder</code-name-base>
+                    <build-prerequisite/>
+                    <compile-dependency/>
+                    <run-dependency>
+                        <release-version>2</release-version>
+                        <specification-version>2.58</specification-version>
+                    </run-dependency>
+                </dependency>
+                <dependency>
+                    
<code-name-base>org.netbeans.modules.maven.j2ee</code-name-base>
+                    <build-prerequisite/>
+                    <compile-dependency/>
+                    <run-dependency>
+                        <release-version>1</release-version>
+                        <specification-version>1.65</specification-version>
+                    </run-dependency>
+                </dependency>
+                <dependency>
+                    
<code-name-base>org.netbeans.modules.maven.model</code-name-base>
+                    <build-prerequisite/>
+                    <compile-dependency/>
+                    <run-dependency>
+                        <release-version>1</release-version>
+                        <specification-version>1.49</specification-version>
+                    </run-dependency>
+                </dependency>
+                <dependency>
+                    
<code-name-base>org.netbeans.modules.projectapi</code-name-base>
+                    <build-prerequisite/>
+                    <compile-dependency/>
+                    <run-dependency>
+                        <release-version>1</release-version>
+                        <specification-version>1.72</specification-version>
+                    </run-dependency>
+                </dependency>
+                <dependency>
+                    
<code-name-base>org.netbeans.modules.projectuiapi</code-name-base>
+                    <build-prerequisite/>
+                    <compile-dependency/>
+                    <run-dependency>
+                        <release-version>1</release-version>
+                        <specification-version>1.88.1.8</specification-version>
+                    </run-dependency>
+                </dependency>
+                <dependency>
+                    <code-name-base>org.openide.awt</code-name-base>
+                    <build-prerequisite/>
+                    <compile-dependency/>
+                    <run-dependency>
+                        <specification-version>7.67.1</specification-version>
+                    </run-dependency>
+                </dependency>
+                <dependency>
+                    <code-name-base>org.openide.dialogs</code-name-base>
+                    <build-prerequisite/>
+                    <compile-dependency/>
+                    <run-dependency>
+                        <specification-version>7.42.1</specification-version>
+                    </run-dependency>
+                </dependency>
+                <dependency>
+                    <code-name-base>org.openide.execution</code-name-base>
+                    <build-prerequisite/>
+                    <compile-dependency/>
+                    <run-dependency>
+                        <specification-version>9.3.1</specification-version>
+                    </run-dependency>
+                </dependency>
+                <dependency>
+                    <code-name-base>org.openide.filesystems</code-name-base>
+                    <build-prerequisite/>
+                    <compile-dependency/>
+                    <run-dependency>
+                        <specification-version>9.10.1</specification-version>
+                    </run-dependency>
+                </dependency>
+                <dependency>
+                    <code-name-base>org.openide.loaders</code-name-base>
+                    <build-prerequisite/>
+                    <compile-dependency/>
+                    <run-dependency>
+                        <specification-version>7.66.1</specification-version>
+                    </run-dependency>
+                </dependency>
+                <dependency>
+                    <code-name-base>org.openide.util</code-name-base>
+                    <build-prerequisite/>
+                    <compile-dependency/>
+                    <run-dependency>
+                        <specification-version>9.7.1</specification-version>
+                    </run-dependency>
+                </dependency>
+                <dependency>
+                    <code-name-base>org.openide.util.lookup</code-name-base>
+                    <build-prerequisite/>
+                    <compile-dependency/>
+                    <run-dependency>
+                        <specification-version>8.33.1</specification-version>
+                    </run-dependency>
+                </dependency>
+                <dependency>
+                    <code-name-base>org.openide.util.ui</code-name-base>
+                    <build-prerequisite/>
+                    <compile-dependency/>
+                    <run-dependency>
+                        <specification-version>9.6.1</specification-version>
+                    </run-dependency>
+                </dependency>
+            </module-dependencies>
+            <public-packages/>
+        </data>
+    </configuration>
+</project>
diff --git 
a/enterprise/jakarta.transformer/src/org/netbeans/modules/fish/payara/jakarta/transformer/BannerJakarta.png
 
b/enterprise/jakarta.transformer/src/org/netbeans/modules/fish/payara/jakarta/transformer/BannerJakarta.png
new file mode 100644
index 0000000000..d7dcb77b03
Binary files /dev/null and 
b/enterprise/jakarta.transformer/src/org/netbeans/modules/fish/payara/jakarta/transformer/BannerJakarta.png
 differ
diff --git 
a/enterprise/jakarta.transformer/src/org/netbeans/modules/fish/payara/jakarta/transformer/Bundle.properties
 
b/enterprise/jakarta.transformer/src/org/netbeans/modules/fish/payara/jakarta/transformer/Bundle.properties
new file mode 100644
index 0000000000..029182443c
--- /dev/null
+++ 
b/enterprise/jakarta.transformer/src/org/netbeans/modules/fish/payara/jakarta/transformer/Bundle.properties
@@ -0,0 +1,33 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+LBL_CreateProjectStep=Select Source to transform
+OpenIDE-Module-Display-Category=Java EE
+OpenIDE-Module-Long-Description=\
+    The jakarta transformer plugin enables you to transform applications from 
Jakarta EE 8 to Jakarta EE 10.
+OpenIDE-Module-Name=Jakarta Transformer
+OpenIDE-Module-Short-Description=Jakarta transformer support for Jakarta EE 
projects.
+# new properties for new UI design
+transformerPanelVisual.jLabel1.text=Source:
+transformerPanelVisual.jLabel2.text=Target:
+transformerPanelVisual.selectSourceFolder.text=Browse...
+transformerPanelVisual.selectTargetFolder.text=Browse...
+transformerPanelVisual.selectSourceFolder.actionCommand=BROWSE
+transformerPanelVisual.selectTargetFolder.actionCommand=BROWSE
+transformerPanelVisual.overrideCheckBox.text=Override
+transformerPanelVisual.overrideCheckBox.tooltip=Transform Source in-place
diff --git 
a/enterprise/jakarta.transformer/src/org/netbeans/modules/fish/payara/jakarta/transformer/JakartaEEIcon.png
 
b/enterprise/jakarta.transformer/src/org/netbeans/modules/fish/payara/jakarta/transformer/JakartaEEIcon.png
new file mode 100644
index 0000000000..3487295426
Binary files /dev/null and 
b/enterprise/jakarta.transformer/src/org/netbeans/modules/fish/payara/jakarta/transformer/JakartaEEIcon.png
 differ
diff --git 
a/enterprise/jakarta.transformer/src/org/netbeans/modules/fish/payara/jakarta/transformer/TransformerConstants.java
 
b/enterprise/jakarta.transformer/src/org/netbeans/modules/fish/payara/jakarta/transformer/TransformerConstants.java
new file mode 100644
index 0000000000..8b0f017797
--- /dev/null
+++ 
b/enterprise/jakarta.transformer/src/org/netbeans/modules/fish/payara/jakarta/transformer/TransformerConstants.java
@@ -0,0 +1,73 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.netbeans.modules.fish.payara.jakarta.transformer;
+
+/**
+ *
+ * @author alfon
+ */
+public class TransformerConstants {
+    
+    public static final String PAYARA_TRANSFORMER_GROUP_ID = 
"fish.payara.transformer";
+    
+    public static final String PAYARA_TRANSFORMER_ARTIFACT_ID = 
"fish.payara.transformer.maven";
+    
+    public static final String PAYARA_TRANSFORMER_VERSION = "0.2.13";
+    
+    public static final String PAYARA_TRANSFORMER_GOAL = "run";
+           
+    public static final String SELECTED_SOURCE_PROPERTY_NAME = 
"selectedSource";
+    
+    public static final String SELECTED_TARGET_PROPERTY_NAME = 
"selectedTarget";
+    
+    public static final String PROJECT_NAME = "jakartaee-transformed-sample";
+    
+    public static final String TARGET_FOLDER_NAME = "target";
+    
+    public static final String POM_FILE_NAME = "pom.xml";
+    
+    public static final String PACKAGE_PHASE = "package";
+
+    public static final String BANNER_IMAGE = 
"org/netbeans/modules/fish/payara/jakarta/transformer/BannerJakarta.png";
+    
+    public static final String INFORMATION_MESSAGE = "After transforming "
+            + "application you should need to apply pom configuration "
+            + "files manually. The suggested dependencies for Jakarta EE 10 
are:";
+    
+    public static final String ERROR_MESSAGE_DIALOG_TARGET = "The selected 
target folder is not valid, " +
+            "please try again with a valid folder.";
+    
+    public static final String ERROR_MESSAGE_DIALOG_SOURCE = "The selected 
source is not valid, " +
+            "please try again with a valid source folder or file.";
+    
+    public static final String JAKARTA_10_DEPENDENCY_EE_API =
+            "\n <dependency>"+
+            "\n \t \t <groupId>jakarta.platform</groupId>"+
+            "\n \t \t <artifactId>jakarta.jakartaee-api</artifactId>"+
+            "\n \t \t <version>10.0.0</version>"+
+            "\n \t \t <scope>provided</scope>"+
+            "\n</dependency> \n";
+    public static final String JAKARTA_10_DEPENDENCY_WEB_API =
+            "\n <dependency>"+
+            "\n \t \t <groupId>jakarta.platform</groupId>"+
+            "\n \t \t <artifactId>jakarta.jakartaee-web-api</artifactId>"+
+            "\n \t \t <version>10.0.0</version>"+
+            "\n \t \t <scope>provided</scope>"+
+            "\n </dependency>";
+}
diff --git 
a/enterprise/jakarta.transformer/src/org/netbeans/modules/fish/payara/jakarta/transformer/TransformerPanelVisual.form
 
b/enterprise/jakarta.transformer/src/org/netbeans/modules/fish/payara/jakarta/transformer/TransformerPanelVisual.form
new file mode 100644
index 0000000000..cf754965aa
--- /dev/null
+++ 
b/enterprise/jakarta.transformer/src/org/netbeans/modules/fish/payara/jakarta/transformer/TransformerPanelVisual.form
@@ -0,0 +1,155 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+-->
+
+<Form version="1.5" maxVersion="1.9" 
type="org.netbeans.modules.form.forminfo.JPanelFormInfo">
+  <AuxValues>
+    <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" 
value="1"/>
+    <AuxValue name="FormSettings_autoSetComponentName" 
type="java.lang.Boolean" value="false"/>
+    <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" 
value="true"/>
+    <AuxValue name="FormSettings_generateMnemonicsCode" 
type="java.lang.Boolean" value="true"/>
+    <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" 
value="true"/>
+    <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" 
value="1"/>
+    <AuxValue name="FormSettings_listenerGenerationStyle" 
type="java.lang.Integer" value="0"/>
+    <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" 
value="false"/>
+    <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" 
value="2"/>
+  </AuxValues>
+
+  <Layout>
+    <DimensionLayout dim="0">
+      <Group type="103" groupAlignment="0" attributes="0">
+          <Group type="102" attributes="0">
+              <EmptySpace max="-2" attributes="0"/>
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <Group type="102" alignment="0" attributes="0">
+                      <Group type="103" groupAlignment="0" attributes="0">
+                          <Component id="jLabel1" alignment="1" min="-2" 
max="-2" attributes="0"/>
+                          <Component id="jLabel2" alignment="1" min="-2" 
max="-2" attributes="0"/>
+                      </Group>
+                      <EmptySpace max="-2" attributes="0"/>
+                      <Group type="103" groupAlignment="0" attributes="0">
+                          <Component id="source" pref="310" max="32767" 
attributes="0"/>
+                          <Component id="target" max="32767" attributes="0"/>
+                      </Group>
+                      <EmptySpace max="-2" attributes="0"/>
+                      <Group type="103" groupAlignment="0" attributes="0">
+                          <Component id="selectSourceButton" alignment="1" 
min="-2" max="-2" attributes="0"/>
+                          <Component id="selectTargetButton" alignment="1" 
min="-2" max="-2" attributes="0"/>
+                      </Group>
+                  </Group>
+                  <Group type="102" alignment="0" attributes="0">
+                      <Component id="overrideCheckBox" min="-2" max="-2" 
attributes="0"/>
+                      <EmptySpace min="0" pref="0" max="32767" attributes="0"/>
+                  </Group>
+              </Group>
+              <EmptySpace max="-2" attributes="0"/>
+          </Group>
+      </Group>
+    </DimensionLayout>
+    <DimensionLayout dim="1">
+      <Group type="103" groupAlignment="0" attributes="0">
+          <Group type="102" alignment="0" attributes="0">
+              <EmptySpace max="-2" attributes="0"/>
+              <Group type="103" groupAlignment="3" attributes="0">
+                  <Component id="jLabel1" alignment="3" min="-2" max="-2" 
attributes="0"/>
+                  <Component id="selectSourceButton" alignment="3" min="-2" 
max="-2" attributes="0"/>
+                  <Component id="source" alignment="3" min="-2" max="-2" 
attributes="0"/>
+              </Group>
+              <EmptySpace type="separate" max="-2" attributes="0"/>
+              <Group type="103" groupAlignment="3" attributes="0">
+                  <Component id="jLabel2" alignment="3" min="-2" max="-2" 
attributes="0"/>
+                  <Component id="target" alignment="3" min="-2" max="-2" 
attributes="0"/>
+                  <Component id="selectTargetButton" alignment="3" min="-2" 
max="-2" attributes="0"/>
+              </Group>
+              <EmptySpace type="separate" max="-2" attributes="0"/>
+              <Component id="overrideCheckBox" min="-2" max="-2" 
attributes="0"/>
+              <EmptySpace max="32767" attributes="0"/>
+          </Group>
+      </Group>
+    </DimensionLayout>
+  </Layout>
+  <SubComponents>
+    <Component class="javax.swing.JLabel" name="jLabel1">
+      <Properties>
+        <Property name="text" type="java.lang.String" 
editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+          <ResourceString 
bundle="org/netbeans/modules/fish/payara/jakarta/transformer/Bundle.properties" 
key="transformerPanelVisual.jLabel1.text" 
replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, 
&quot;{key}&quot;)"/>
+        </Property>
+      </Properties>
+    </Component>
+    <Component class="javax.swing.JLabel" name="jLabel2">
+      <Properties>
+        <Property name="text" type="java.lang.String" 
editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+          <ResourceString 
bundle="org/netbeans/modules/fish/payara/jakarta/transformer/Bundle.properties" 
key="transformerPanelVisual.jLabel2.text" 
replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, 
&quot;{key}&quot;)"/>
+        </Property>
+      </Properties>
+    </Component>
+    <Component class="javax.swing.JButton" name="selectSourceButton">
+      <Properties>
+        <Property name="text" type="java.lang.String" 
editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+          <ResourceString 
bundle="org/netbeans/modules/fish/payara/jakarta/transformer/Bundle.properties" 
key="transformerPanelVisual.selectSourceFolder.text" 
replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, 
&quot;{key}&quot;)"/>
+        </Property>
+        <Property name="actionCommand" type="java.lang.String" 
editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+          <ResourceString 
bundle="org/netbeans/modules/fish/payara/jakarta/transformer/Bundle.properties" 
key="transformerPanelVisual.selectSourceFolder.actionCommand" 
replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, 
&quot;{key}&quot;)"/>
+        </Property>
+      </Properties>
+      <Events>
+        <EventHandler event="actionPerformed" 
listener="java.awt.event.ActionListener" 
parameters="java.awt.event.ActionEvent" 
handler="selectSourceButtonActionPerformed"/>
+      </Events>
+    </Component>
+    <Component class="javax.swing.JTextField" name="source">
+      <Properties>
+        <Property name="name" type="java.lang.String" value="source" 
noResource="true"/>
+      </Properties>
+    </Component>
+    <Component class="javax.swing.JTextField" name="target">
+      <Properties>
+        <Property name="name" type="java.lang.String" value="target" 
noResource="true"/>
+      </Properties>
+    </Component>
+    <Component class="javax.swing.JButton" name="selectTargetButton">
+      <Properties>
+        <Property name="text" type="java.lang.String" 
editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+          <ResourceString 
bundle="org/netbeans/modules/fish/payara/jakarta/transformer/Bundle.properties" 
key="transformerPanelVisual.selectTargetFolder.text" 
replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, 
&quot;{key}&quot;)"/>
+        </Property>
+        <Property name="actionCommand" type="java.lang.String" 
editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+          <ResourceString 
bundle="org/netbeans/modules/fish/payara/jakarta/transformer/Bundle.properties" 
key="transformerPanelVisual.selectTargetFolder.actionCommand" 
replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, 
&quot;{key}&quot;)"/>
+        </Property>
+      </Properties>
+      <Events>
+        <EventHandler event="actionPerformed" 
listener="java.awt.event.ActionListener" 
parameters="java.awt.event.ActionEvent" 
handler="selectTargetButtonActionPerformed"/>
+      </Events>
+    </Component>
+    <Component class="javax.swing.JCheckBox" name="overrideCheckBox">
+      <Properties>
+        <Property name="text" type="java.lang.String" 
editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+          <ResourceString 
bundle="org/netbeans/modules/fish/payara/jakarta/transformer/Bundle.properties" 
key="transformerPanelVisual.overrideCheckBox.text" 
replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, 
&quot;{key}&quot;)"/>
+        </Property>
+        <Property name="toolTipText" type="java.lang.String" 
editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+          <ResourceString 
bundle="org/netbeans/modules/fish/payara/jakarta/transformer/Bundle.properties" 
key="transformerPanelVisual.overrideCheckBox.tooltip" 
replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, 
&quot;{key}&quot;)"/>
+        </Property>
+      </Properties>
+      <Events>
+        <EventHandler event="actionPerformed" 
listener="java.awt.event.ActionListener" 
parameters="java.awt.event.ActionEvent" 
handler="overrideCheckBoxActionPerformed"/>
+      </Events>
+    </Component>
+  </SubComponents>
+</Form>
diff --git 
a/enterprise/jakarta.transformer/src/org/netbeans/modules/fish/payara/jakarta/transformer/TransformerPanelVisual.java
 
b/enterprise/jakarta.transformer/src/org/netbeans/modules/fish/payara/jakarta/transformer/TransformerPanelVisual.java
new file mode 100644
index 0000000000..0d238ae154
--- /dev/null
+++ 
b/enterprise/jakarta.transformer/src/org/netbeans/modules/fish/payara/jakarta/transformer/TransformerPanelVisual.java
@@ -0,0 +1,299 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.netbeans.modules.fish.payara.jakarta.transformer;
+
+import java.io.File;
+import javax.swing.JFileChooser;
+import javax.swing.JPanel;
+import javax.swing.event.DocumentEvent;
+import javax.swing.event.DocumentListener;
+import org.openide.WizardDescriptor;
+import org.openide.WizardValidationException;
+import org.openide.filesystems.FileUtil;
+
+public class TransformerPanelVisual extends JPanel {
+  
+    private final TransformerWizardPanel panel;
+           
+    private boolean override;
+
+    public TransformerPanelVisual(TransformerWizardPanel panel) {
+        initComponents();
+        this.panel = panel;
+        
+        DocumentListener updateListener = new DocumentListener() {
+            @Override public void insertUpdate(DocumentEvent e) { 
panel.fireChangeEvent(); }
+            @Override public void removeUpdate(DocumentEvent e) { 
panel.fireChangeEvent(); }
+            @Override public void changedUpdate(DocumentEvent e) { 
panel.fireChangeEvent(); }
+        };
+        this.source.getDocument().addDocumentListener(updateListener);
+        this.target.getDocument().addDocumentListener(updateListener);
+    }
+
+    /**
+     * This method is called from within the constructor to initialize the 
form.
+     * WARNING: Do NOT modify this code. The content of this method is always
+     * regenerated by the Form Editor.
+     */
+    // <editor-fold defaultstate="collapsed" desc="Generated 
Code">//GEN-BEGIN:initComponents
+    private void initComponents() {
+
+        jLabel1 = new javax.swing.JLabel();
+        jLabel2 = new javax.swing.JLabel();
+        selectSourceButton = new javax.swing.JButton();
+        source = new javax.swing.JTextField();
+        target = new javax.swing.JTextField();
+        selectTargetButton = new javax.swing.JButton();
+        overrideCheckBox = new javax.swing.JCheckBox();
+
+        org.openide.awt.Mnemonics.setLocalizedText(jLabel1, 
org.openide.util.NbBundle.getMessage(TransformerPanelVisual.class, 
"transformerPanelVisual.jLabel1.text")); // NOI18N
+
+        org.openide.awt.Mnemonics.setLocalizedText(jLabel2, 
org.openide.util.NbBundle.getMessage(TransformerPanelVisual.class, 
"transformerPanelVisual.jLabel2.text")); // NOI18N
+
+        org.openide.awt.Mnemonics.setLocalizedText(selectSourceButton, 
org.openide.util.NbBundle.getMessage(TransformerPanelVisual.class, 
"transformerPanelVisual.selectSourceFolder.text")); // NOI18N
+        
selectSourceButton.setActionCommand(org.openide.util.NbBundle.getMessage(TransformerPanelVisual.class,
 "transformerPanelVisual.selectSourceFolder.actionCommand")); // NOI18N
+        selectSourceButton.addActionListener(new 
java.awt.event.ActionListener() {
+            public void actionPerformed(java.awt.event.ActionEvent evt) {
+                selectSourceButtonActionPerformed(evt);
+            }
+        });
+
+        source.setName("source"); // NOI18N
+
+        target.setName("target"); // NOI18N
+
+        org.openide.awt.Mnemonics.setLocalizedText(selectTargetButton, 
org.openide.util.NbBundle.getMessage(TransformerPanelVisual.class, 
"transformerPanelVisual.selectTargetFolder.text")); // NOI18N
+        
selectTargetButton.setActionCommand(org.openide.util.NbBundle.getMessage(TransformerPanelVisual.class,
 "transformerPanelVisual.selectTargetFolder.actionCommand")); // NOI18N
+        selectTargetButton.addActionListener(new 
java.awt.event.ActionListener() {
+            public void actionPerformed(java.awt.event.ActionEvent evt) {
+                selectTargetButtonActionPerformed(evt);
+            }
+        });
+
+        org.openide.awt.Mnemonics.setLocalizedText(overrideCheckBox, 
org.openide.util.NbBundle.getMessage(TransformerPanelVisual.class, 
"transformerPanelVisual.overrideCheckBox.text")); // NOI18N
+        
overrideCheckBox.setToolTipText(org.openide.util.NbBundle.getMessage(TransformerPanelVisual.class,
 "transformerPanelVisual.overrideCheckBox.tooltip")); // NOI18N
+        overrideCheckBox.addActionListener(new java.awt.event.ActionListener() 
{
+            public void actionPerformed(java.awt.event.ActionEvent evt) {
+                overrideCheckBoxActionPerformed(evt);
+            }
+        });
+
+        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
+        this.setLayout(layout);
+        layout.setHorizontalGroup(
+            
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGroup(layout.createSequentialGroup()
+                .addContainerGap()
+                
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                    .addGroup(layout.createSequentialGroup()
+                        
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                            .addComponent(jLabel1, 
javax.swing.GroupLayout.Alignment.TRAILING)
+                            .addComponent(jLabel2, 
javax.swing.GroupLayout.Alignment.TRAILING))
+                        
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                        
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                            .addComponent(source, 
javax.swing.GroupLayout.DEFAULT_SIZE, 310, Short.MAX_VALUE)
+                            .addComponent(target))
+                        
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                        
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                            .addComponent(selectSourceButton, 
javax.swing.GroupLayout.Alignment.TRAILING)
+                            .addComponent(selectTargetButton, 
javax.swing.GroupLayout.Alignment.TRAILING)))
+                    .addGroup(layout.createSequentialGroup()
+                        .addComponent(overrideCheckBox)
+                        .addGap(0, 0, Short.MAX_VALUE)))
+                .addContainerGap())
+        );
+        layout.setVerticalGroup(
+            
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGroup(layout.createSequentialGroup()
+                .addContainerGap()
+                
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+                    .addComponent(jLabel1)
+                    .addComponent(selectSourceButton)
+                    .addComponent(source, 
javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, 
javax.swing.GroupLayout.PREFERRED_SIZE))
+                .addGap(18, 18, 18)
+                
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+                    .addComponent(jLabel2)
+                    .addComponent(target, 
javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, 
javax.swing.GroupLayout.PREFERRED_SIZE)
+                    .addComponent(selectTargetButton))
+                .addGap(18, 18, 18)
+                .addComponent(overrideCheckBox)
+                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, 
Short.MAX_VALUE))
+        );
+    }// </editor-fold>//GEN-END:initComponents
+
+    private void selectSourceButtonActionPerformed(java.awt.event.ActionEvent 
evt) {//GEN-FIRST:event_selectSourceButtonActionPerformed
+        String command = evt.getActionCommand();
+        if ("BROWSE".equals(command)) {
+            JFileChooser chooser = new JFileChooser();
+            //FileUtil.preventFileChooserSymlinkTraversal(chooser, null);
+            chooser.setCurrentDirectory(chooser.getCurrentDirectory());        
    
+            chooser.setDialogTitle("Select source to transform");
+            chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
+            String path = this.source.getText();
+            if (path.length() > 0) {
+                File f = new File(path);
+                if (f.exists()) {
+                    chooser.setSelectedFile(f);
+                }
+            }
+            if (JFileChooser.APPROVE_OPTION == chooser.showOpenDialog(this)) {
+                File projectDir = chooser.getSelectedFile();
+                
source.setText(FileUtil.normalizeFile(projectDir).getAbsolutePath());
+            }
+            panel.fireChangeEvent();
+        }
+    }//GEN-LAST:event_selectSourceButtonActionPerformed
+
+    private void selectTargetButtonActionPerformed(java.awt.event.ActionEvent 
evt) {//GEN-FIRST:event_selectTargetButtonActionPerformed
+        String command = evt.getActionCommand();
+        if ("BROWSE".equals(command)) {
+            JFileChooser chooser = new JFileChooser();
+            //FileUtil.preventFileChooserSymlinkTraversal(chooser, null);
+            chooser.setCurrentDirectory(chooser.getCurrentDirectory());        
    
+            chooser.setDialogTitle("Select Folder to Transform");
+            chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
+            String path = this.target.getText();
+            if (path.length() > 0) {
+                File f = new File(path);
+                if (f.exists()) {
+                    chooser.setSelectedFile(f);
+                }
+            }
+            if (JFileChooser.APPROVE_OPTION == chooser.showOpenDialog(this)) {
+                File projectDir = chooser.getSelectedFile();
+                
target.setText(FileUtil.normalizeFile(projectDir).getAbsolutePath());
+            }
+            panel.fireChangeEvent();
+        }
+    }//GEN-LAST:event_selectTargetButtonActionPerformed
+
+    private void overrideCheckBoxActionPerformed(java.awt.event.ActionEvent 
evt) {//GEN-FIRST:event_overrideCheckBoxActionPerformed
+        if(evt.getActionCommand().equals("Override")){
+            if(overrideCheckBox.isSelected()){
+                target.setText("");
+                target.setEnabled(false);
+                selectTargetButton.setEnabled(false);
+                override = true;               
+            } else {                
+                target.setEnabled(true);
+                selectTargetButton.setEnabled(true); 
+                override = false;                
+            }
+            panel.fireChangeEvent();
+        }
+    }//GEN-LAST:event_overrideCheckBoxActionPerformed
+
+    // Variables declaration - do not modify//GEN-BEGIN:variables
+    private javax.swing.JLabel jLabel1;
+    private javax.swing.JLabel jLabel2;
+    private javax.swing.JCheckBox overrideCheckBox;
+    private javax.swing.JButton selectSourceButton;
+    private javax.swing.JButton selectTargetButton;
+    private javax.swing.JTextField source;
+    private javax.swing.JTextField target;
+    // End of variables declaration//GEN-END:variables
+
+    @Override
+    public void addNotify() {
+        super.addNotify();
+    }
+
+    boolean valid(WizardDescriptor wizardDescriptor) throws 
WizardValidationException {
+        return validate(wizardDescriptor);
+    }
+
+    void store(WizardDescriptor d) {      
+        d.putProperty("sourceSelected", this.source.getText().trim());
+        d.putProperty("targetSelected", this.target.getText().trim());  
+        d.putProperty("override", override);
+    }
+
+    void read(WizardDescriptor settings) {
+       
+    }
+
+    boolean validate(WizardDescriptor d) throws WizardValidationException {
+        String source = this.source.getText().trim();
+        String target = this.target.getText().trim();
+        File sourceFile = new File(source);
+        File targetFile = new File(target);
+        
+        //checking if the source was selected
+        if(source.isEmpty()) {
+            d.putProperty("WizardPanel_errorMessage",
+                    "You must select a source folder or file.");            
+            return false;
+        }
+
+        if(!sourceFile.exists()) {
+            d.putProperty("WizardPanel_errorMessage",
+                    "You must select a valid source folder or file.");
+            return false;
+        }
+        
+        if(override && target.isEmpty()) {
+            d.putProperty("WizardPanel_errorMessage",
+                    null);  
+            return true;
+        }
+        
+        if(!override && target.isEmpty()) {
+            d.putProperty("WizardPanel_errorMessage",
+                    "You must select a target folder or file.");             
+            return false;
+        }
+        
+                 
+        //validation of second param when folder is selected as the source
+        if(!override && sourceFile.isDirectory()) {
+            if(!targetFile.exists()) {
+                d.putProperty("WizardPanel_errorMessage",
+                        "You must select a valid target folder.");
+                return false;
+            }
+            if(!targetFile.isDirectory()) {
+                d.putProperty("WizardPanel_errorMessage",
+                    "You must select a target folder.");
+                return false;
+            }
+        }       
+        
+        if(!override && sourceFile.isFile()) {
+            if(!targetFile.exists()) {
+                d.putProperty("WizardPanel_errorMessage",
+                        "You must select a valid target file.");
+                return false;
+            }
+            
+            if(!targetFile.isDirectory()) {
+                d.putProperty("WizardPanel_errorMessage",
+                        "You must select a target directory.");
+                return false;
+            }
+        }
+        
+        if(!source.isEmpty() && !target.isEmpty()) {
+            d.putProperty("WizardPanel_errorMessage",
+                    null);
+        }
+        
+         return true;       
+    } 
+  
+}
diff --git 
a/enterprise/jakarta.transformer/src/org/netbeans/modules/fish/payara/jakarta/transformer/TransformerWizardIterator.java
 
b/enterprise/jakarta.transformer/src/org/netbeans/modules/fish/payara/jakarta/transformer/TransformerWizardIterator.java
new file mode 100644
index 0000000000..b7c9b62792
--- /dev/null
+++ 
b/enterprise/jakarta.transformer/src/org/netbeans/modules/fish/payara/jakarta/transformer/TransformerWizardIterator.java
@@ -0,0 +1,421 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.netbeans.modules.fish.payara.jakarta.transformer;
+
+import java.awt.Component;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.text.MessageFormat;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.LinkedHashSet;
+import java.util.NoSuchElementException;
+import java.util.Set;
+import java.util.List;
+import javax.swing.JComponent;
+import javax.swing.event.ChangeListener;
+import org.netbeans.api.project.Project;
+import org.netbeans.api.project.ProjectManager;
+import org.netbeans.api.templates.TemplateRegistration;
+import org.netbeans.modules.maven.api.execute.RunUtils;
+import org.netbeans.modules.maven.execute.ModelRunConfig;
+import org.netbeans.modules.maven.execute.model.NetbeansActionMapping;
+import org.netbeans.spi.project.ui.support.ProjectChooser;
+import org.openide.DialogDisplayer;
+import org.openide.NotifyDescriptor;
+import org.openide.WizardDescriptor;
+import org.openide.filesystems.FileObject;
+import org.openide.filesystems.FileUtil;
+import org.openide.util.ImageUtilities;
+import org.openide.util.Lookup;
+import org.openide.util.NbBundle;
+import org.openide.util.NbBundle.Messages;
+import org.netbeans.modules.maven.api.archetype.Archetype;
+import org.apache.maven.artifact.versioning.ComparableVersion;
+import org.netbeans.modules.maven.indexer.api.NBVersionInfo;
+import org.netbeans.modules.maven.indexer.api.RepositoryQueries;
+import org.openide.execution.ExecutorTask;
+
+public final class TransformerWizardIterator implements 
WizardDescriptor.BackgroundInstantiatingIterator<WizardDescriptor> {
+
+    private int index;
+    private WizardDescriptor.Panel<WizardDescriptor>[] panels;
+    private WizardDescriptor wizardDescriptor;
+    static final Archetype TRANSFORMER_ARCHETYPE;
+
+    static {
+        TRANSFORMER_ARCHETYPE = new Archetype();
+        
TRANSFORMER_ARCHETYPE.setGroupId(TransformerConstants.PAYARA_TRANSFORMER_GROUP_ID);
+        
TRANSFORMER_ARCHETYPE.setVersion(TransformerConstants.PAYARA_TRANSFORMER_VERSION);
+        
TRANSFORMER_ARCHETYPE.setArtifactId(TransformerConstants.PAYARA_TRANSFORMER_ARTIFACT_ID);
+    }
+
+    public TransformerWizardIterator() {
+    }
+
+    @TemplateRegistration(
+            folder = "Project/Maven2",
+            position = 1010,
+            displayName = "#transformer_displayName",
+            description = "transformerDescription.html",
+            iconBase = 
"org/netbeans/modules/fish/payara/jakarta/transformer/JakartaEEIcon.png")
+    @Messages("transformer_displayName=Transform to Jakarta EE 10")
+    public static TransformerWizardIterator createWebAppIterator() {
+        return new TransformerWizardIterator();
+    }
+
+    @SuppressWarnings("rawtypes")
+    private WizardDescriptor.Panel<WizardDescriptor>[] createPanels() {
+        return new WizardDescriptor.Panel[]{new TransformerWizardPanel()};
+    }
+
+    private String[] createSteps() {
+        return new String[]{
+                NbBundle.getMessage(TransformerWizardIterator.class, 
"LBL_CreateProjectStep")
+        };
+    }
+
+    @Override
+    public Set<FileObject> instantiate() throws IOException {
+        Set<FileObject> resultSet = new LinkedHashSet<>();
+        //validate condition to identify if the case is to transform a folder 
to a new directory
+        String target = (String) 
wizardDescriptor.getProperty("targetSelected");
+        String source = (String) 
wizardDescriptor.getProperty("sourceSelected");
+        boolean override = (Boolean) wizardDescriptor.getProperty("override");
+        NotifyDescriptor notifyDescriptorTarget = new 
NotifyDescriptor.Message(TransformerConstants.ERROR_MESSAGE_DIALOG_TARGET,
+                NotifyDescriptor.ERROR_MESSAGE);
+        NotifyDescriptor notifyDescriptorSource = new 
NotifyDescriptor.Message(TransformerConstants.ERROR_MESSAGE_DIALOG_SOURCE,
+                NotifyDescriptor.ERROR_MESSAGE);
+        if (target != null && !target.isEmpty() && source != null && 
!source.isEmpty()) {
+            File targetFile = new File(target);
+            File sourceFile = new File(source);
+
+            if (!sourceFile.exists()) {
+                DialogDisplayer.getDefault().notify(notifyDescriptorSource);
+            }
+
+            if (sourceFile.exists() && sourceFile.isDirectory() && 
targetFile.isDirectory()) {
+                //calling process to transform folder content to a new location
+                return transformFolderToNewDirectory(resultSet, target, 
source);
+            } else if (sourceFile.exists() && sourceFile.isDirectory() && 
!targetFile.exists()) {
+                DialogDisplayer.getDefault().notify(notifyDescriptorTarget);
+            }
+
+            //validate condition to identify if the case is to transform a 
file to a new directory
+            if (sourceFile.exists() && sourceFile.isFile() && 
targetFile.isDirectory()) {
+                transformFileToNewDirectory(target, source);
+            } else if (sourceFile.exists() && sourceFile.isFile() && 
!targetFile.exists()) {
+                DialogDisplayer.getDefault().notify(notifyDescriptorTarget);
+            }
+
+        }
+
+        //override cases        
+        if (source != null && override) {
+            File sourceFile = new File(source);
+
+            if (!sourceFile.exists()) {
+                DialogDisplayer.getDefault().notify(notifyDescriptorSource);
+            }
+
+            //override folder on the same location
+            if (sourceFile.exists() && sourceFile.isDirectory()) {
+                return transformFolderOnSameLocation(resultSet, source);
+            }
+
+            //override file on the same location
+            if (sourceFile.exists() && sourceFile.isFile()) {
+                transformFileOnSameLocation(source);
+            }
+        }
+
+        return Collections.emptySet();
+    }
+
+    public void transformFileOnSameLocation(String source) throws IOException {
+        File fileSource = new File(source);
+        File parentDirectory = new File(fileSource.getParent());
+        String pomFilePath = parentDirectory.getAbsolutePath()
+                + File.separator + TransformerConstants.POM_FILE_NAME;
+        File pomFile = new File(pomFilePath);
+        if (parentDirectory.exists() && parentDirectory.isDirectory()) {
+            FileObject directoryObject = 
FileUtil.toFileObject(parentDirectory);
+            if (!pomFile.exists()) {
+                copyTempPomFile(directoryObject);
+            }
+        }
+
+        FileObject p = FileUtil.toFileObject(parentDirectory);
+        if (p != null) {
+            Project project = ProjectManager.getDefault().findProject(p);
+            ExecutorTask task = callMavenProcess(source, source, project);
+            if (task != null) {
+                task.waitFinished();
+                if (pomFile.exists()) {
+                    pomFile.delete();
+                }
+            }
+        }
+    }
+
+    public Set<FileObject> transformFolderOnSameLocation(Set<FileObject> 
resultSet, String source) throws IOException {
+        File directory = new File(source);
+        String pomFilePath = directory.getAbsolutePath()
+                + File.separator + TransformerConstants.POM_FILE_NAME;
+        File pomFile = new File(pomFilePath);
+        FileObject directoryObject = FileUtil.toFileObject(directory);
+        resultSet.add(directoryObject);
+        ProjectChooser.setProjectsFolder(directory);
+        if (!pomFile.exists()) {
+            copyTempPomFile(directoryObject);
+        }
+
+        if (directoryObject != null) {
+            Project project = 
ProjectManager.getDefault().findProject(directoryObject);
+            ExecutorTask task = callMavenProcess(source, source, project);
+            if (task != null) {
+                task.waitFinished();
+            }
+        }
+
+        showJakartaAdviseDialog();
+
+        return resultSet;
+    }
+
+    public void transformFileToNewDirectory(String targetFolder, String 
sourceFolder) throws IOException {
+        File directoryFile = createTargetDirectory(targetFolder);
+        FileObject directoryObject = FileUtil.toFileObject(directoryFile);
+        String pomFilePath = directoryFile.getAbsolutePath() + File.separator 
+ TransformerConstants.POM_FILE_NAME;
+        File pomFile = new File(pomFilePath);
+        copyTempPomFile(directoryObject);
+
+        File sourceFile = new File(sourceFolder);
+        FileObject sourceToMove = FileUtil.toFileObject(sourceFile);
+        String name = sourceFile.getName();
+        if (name.contains(".")) {
+            String[] parts = name.split("\\.");
+            name = parts[0];
+        }
+        FileUtil.copyFile(sourceToMove, directoryObject, name);
+        FileObject p = FileUtil.toFileObject(directoryFile);
+        if (p != null) {
+            Project project = ProjectManager.getDefault().findProject(p);
+            String directoryName = directoryFile.getPath() + File.separator + 
sourceFile.getName();
+            ExecutorTask task = callMavenProcess(directoryName, directoryName, 
project);
+            if (task != null) {
+                task.waitFinished();
+                if (pomFile.exists()) {
+                    pomFile.delete();
+                }
+            }
+        }
+    }
+
+    public Set<FileObject> transformFolderToNewDirectory(Set<FileObject> 
resultSet,
+                                                         String targetFolder, 
String sourceFolder) throws IOException {
+        File directoryFile = createTargetDirectory(targetFolder);
+        File tempDirectory = createTempDirectory(targetFolder);
+        FileObject directoryObject = FileUtil.toFileObject(directoryFile);
+        FileObject tempObject = FileUtil.toFileObject(tempDirectory);
+        copyTempPomFile(tempObject);
+        resultSet.add(directoryObject);
+
+        File parent = directoryFile.getParentFile();
+        if (parent != null && parent.exists()) {
+            ProjectChooser.setProjectsFolder(parent);
+        }
+
+        String pomFilePath = tempDirectory.getAbsolutePath() + File.separator 
+ TransformerConstants.POM_FILE_NAME;
+        File pomFile = new File(pomFilePath);
+
+        FileObject p = FileUtil.toFileObject(tempDirectory);
+        if (p != null) {
+            Project project = ProjectManager.getDefault().findProject(p);
+            ExecutorTask task = callMavenProcess(sourceFolder, 
directoryFile.getPath(), project);
+            if (task != null) {
+                task.waitFinished();
+                if (pomFile.exists()) {
+                    pomFile.delete();
+                }
+                if (tempDirectory.exists()) {
+                    tempDirectory.delete();
+                }
+            }
+        }
+        showJakartaAdviseDialog();
+        return resultSet;
+    }
+
+    public ExecutorTask callMavenProcess(String source, String target, Project 
project) {
+        NetbeansActionMapping mapping = new NetbeansActionMapping();
+        List<String> goals = new ArrayList<>();
+        goals.add(getLastTransformerVersionOfPlugin(TRANSFORMER_ARCHETYPE));
+        mapping.setGoals(goals);
+        mapping.setActionName("Transform source");
+        mapping.addProperty(TransformerConstants.SELECTED_SOURCE_PROPERTY_NAME,
+                source);
+        mapping.addProperty(TransformerConstants.SELECTED_TARGET_PROPERTY_NAME,
+                target);
+        ModelRunConfig rc = new ModelRunConfig(project, mapping,
+                mapping.getActionName(), null,
+                Lookup.EMPTY, false);
+        return RunUtils.run(rc);
+    }
+
+    public void showJakartaAdviseDialog() {
+        DialogDisplayer.getDefault().notify(new NotifyDescriptor.Message(
+                TransformerConstants.INFORMATION_MESSAGE + "\n"
+                        + TransformerConstants.JAKARTA_10_DEPENDENCY_EE_API + 
"\n or \n"
+                        + TransformerConstants.JAKARTA_10_DEPENDENCY_WEB_API));
+    }
+
+    public void copyTempPomFile(FileObject directoryObject) throws IOException 
{
+        try (InputStream s = 
TransformerWizardIterator.class.getResourceAsStream("pom.txt")) {
+            FileObject fo = FileUtil.createData(directoryObject, 
TransformerConstants.POM_FILE_NAME);
+            writeFile(s, fo);
+        }
+    }
+
+    public File createTargetDirectory(String targetFolder) {
+        File fileTargetFolder = new File(targetFolder
+                + File.separator + TransformerConstants.PROJECT_NAME);
+        File directoryFile = FileUtil.normalizeFile(fileTargetFolder);
+        directoryFile.mkdirs();
+        return directoryFile;
+    }
+
+    public File createTempDirectory(String targetFolder) {
+        File fileTargetFolder = new File(targetFolder + File.separator + 
"temp");
+        File tempFile = FileUtil.normalizeFile(fileTargetFolder);
+        tempFile.mkdirs();
+        return tempFile;
+    }
+
+    private String getLastTransformerVersionOfPlugin(Archetype archetype) {
+        RepositoryQueries.Result<NBVersionInfo> versionsResult = 
RepositoryQueries.
+                getVersionsResult(archetype.getGroupId(), 
archetype.getArtifactId(), null);
+
+        List<NBVersionInfo> results = versionsResult.getResults();
+        for (NBVersionInfo result : results) {
+            String lastVersion = result.getVersion();
+            if (!lastVersion.contains("SNAPSHOT")) {
+                if (new ComparableVersion(lastVersion).compareTo(new 
ComparableVersion(archetype.getVersion())) > 0) {
+                    archetype.setVersion(lastVersion);
+                }
+                return archetype.getGroupId() + ":" + 
archetype.getArtifactId() + ":"
+                        + archetype.getVersion() + ":" + 
TransformerConstants.PAYARA_TRANSFORMER_GOAL;
+            }
+        }
+        return archetype.getGroupId() + ":" + archetype.getArtifactId() + ":"
+                + archetype.getVersion() + ":" + 
TransformerConstants.PAYARA_TRANSFORMER_GOAL;
+    }
+
+    @Override
+    public void initialize(WizardDescriptor wiz) {
+        this.wizardDescriptor = wiz;
+        index = 0;
+        panels = createPanels();
+        // Make sure list of steps is accurate.
+        String[] steps = createSteps();
+        for (int i = 0; i < panels.length; i++) {
+            Component c = panels[i].getComponent();
+            if (steps[i] == null) {
+                // Default step name to component name of panel.
+                // Mainly useful for getting the name of the target
+                // chooser to appear in the list of steps.
+                steps[i] = c.getName();
+            }
+            if (c instanceof JComponent) { // assume Swing components
+                JComponent jc = (JComponent) c;
+                // Step #.
+                // TODO if using org.openide.dialogs >= 7.8, can use 
WizardDescriptor.PROP_*:
+                jc.putClientProperty("WizardPanel_contentSelectedIndex", i);
+                // Step name (actually the whole list for reference).
+                jc.putClientProperty("WizardPanel_contentData", steps);
+            }
+        }
+        wizardDescriptor.putProperty(WizardDescriptor.PROP_IMAGE,
+                ImageUtilities.loadImage(TransformerConstants.BANNER_IMAGE, 
true));
+    }
+
+    @Override
+    public void uninitialize(WizardDescriptor wiz) {
+        if (this.wizardDescriptor != null) {
+            this.wizardDescriptor.putProperty("targetSelected", null);
+            this.wizardDescriptor.putProperty("sourceSelected", null);
+            this.wizardDescriptor = null;
+        }
+        panels = null;
+    }
+
+    @Override
+    public String name() {
+        return MessageFormat.format("{0} of {1}",
+                new Object[]{index + 1, panels.length});
+    }
+
+    @Override
+    public boolean hasNext() {
+        return index < panels.length - 1;
+    }
+
+    @Override
+    public boolean hasPrevious() {
+        return index > 0;
+    }
+
+    @Override
+    public void nextPanel() {
+        if (!hasNext()) {
+            throw new NoSuchElementException();
+        }
+        index++;
+    }
+
+    @Override
+    public void previousPanel() {
+        if (!hasPrevious()) {
+            throw new NoSuchElementException();
+        }
+        index--;
+    }
+
+    @Override
+    public WizardDescriptor.Panel<WizardDescriptor> current() {
+        return panels[index];
+    }
+
+    @Override
+    public final void addChangeListener(ChangeListener l) {
+    }
+
+    @Override
+    public final void removeChangeListener(ChangeListener l) {
+    }
+
+    private static void writeFile(InputStream str, FileObject fo) throws 
IOException {
+        try (OutputStream out = fo.getOutputStream()) {
+            FileUtil.copy(str, out);
+        }
+    }
+
+}
diff --git 
a/enterprise/jakarta.transformer/src/org/netbeans/modules/fish/payara/jakarta/transformer/TransformerWizardPanel.java
 
b/enterprise/jakarta.transformer/src/org/netbeans/modules/fish/payara/jakarta/transformer/TransformerWizardPanel.java
new file mode 100644
index 0000000000..24021df3a3
--- /dev/null
+++ 
b/enterprise/jakarta.transformer/src/org/netbeans/modules/fish/payara/jakarta/transformer/TransformerWizardPanel.java
@@ -0,0 +1,118 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.netbeans.modules.fish.payara.jakarta.transformer;
+
+import java.awt.Component;
+import java.util.HashSet;
+import java.util.Set;
+import javax.swing.event.ChangeEvent;
+import javax.swing.event.ChangeListener;
+import org.openide.WizardDescriptor;
+import org.openide.WizardValidationException;
+import org.openide.util.Exceptions;
+import org.openide.util.HelpCtx;
+import org.openide.util.NbBundle;
+
+/**
+ * Panel just asking for basic info.
+ */
+public class TransformerWizardPanel implements 
WizardDescriptor.Panel<WizardDescriptor>,
+        WizardDescriptor.ValidatingPanel<WizardDescriptor>, 
WizardDescriptor.FinishablePanel<WizardDescriptor> {
+
+    private WizardDescriptor wizardDescriptor;
+    private TransformerPanelVisual component;
+
+    public TransformerWizardPanel() {
+    }
+
+    @Override
+    public Component getComponent() {
+        if (component == null) {
+            component = new TransformerPanelVisual(this);
+            
component.setName(NbBundle.getMessage(TransformerWizardPanel.class, 
"LBL_CreateProjectStep"));
+        }
+        return component;
+    }
+
+    @Override
+    public HelpCtx getHelp() {
+        return new 
HelpCtx("org.netbeans.modules.fish.payara.jakarta.transformer.TransformerWizardPanel");
+    }
+
+    @Override
+    public boolean isValid() {
+        getComponent();
+        try {
+            return component.valid(wizardDescriptor);
+        } catch (WizardValidationException ex) {
+            Exceptions.printStackTrace(ex);
+            return false;
+        }
+    }
+
+    private final Set<ChangeListener> listeners = new HashSet<>(1); // or can 
use ChangeSupport in NB 6.0
+
+    @Override
+    public final void addChangeListener(ChangeListener l) {
+        synchronized (listeners) {
+            listeners.add(l);
+        }
+    }
+
+    @Override
+    public final void removeChangeListener(ChangeListener l) {
+        synchronized (listeners) {
+            listeners.remove(l);
+        }
+    }
+
+    protected final void fireChangeEvent() {
+        Set<ChangeListener> ls;
+        synchronized (listeners) {
+            ls = new HashSet<>(listeners);
+        }
+        ChangeEvent ev = new ChangeEvent(this);
+        for (ChangeListener l : ls) {
+            l.stateChanged(ev);
+        }
+    }
+
+    @Override
+    public void readSettings(WizardDescriptor settings) {
+        wizardDescriptor = settings;
+        component.read(wizardDescriptor);
+    }
+
+    @Override
+    public void storeSettings(WizardDescriptor settings) {
+        component.store(settings);
+    }
+
+    @Override
+    public boolean isFinishPanel() {       
+        return true;
+    }
+
+    @Override
+    public void validate() throws WizardValidationException {
+        getComponent();
+        component.validate(wizardDescriptor);
+    }
+
+}
diff --git 
a/enterprise/jakarta.transformer/src/org/netbeans/modules/fish/payara/jakarta/transformer/layer.xml
 
b/enterprise/jakarta.transformer/src/org/netbeans/modules/fish/payara/jakarta/transformer/layer.xml
new file mode 100644
index 0000000000..ed4acfc2ba
--- /dev/null
+++ 
b/enterprise/jakarta.transformer/src/org/netbeans/modules/fish/payara/jakarta/transformer/layer.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE filesystem PUBLIC "-//NetBeans//DTD Filesystem 1.2//EN" 
"http://www.netbeans.org/dtds/filesystem-1_2.dtd";>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+-->
+<filesystem>
+    <folder name="Templates">
+    </folder>
+</filesystem>
diff --git 
a/enterprise/jakarta.transformer/src/org/netbeans/modules/fish/payara/jakarta/transformer/pom.txt
 
b/enterprise/jakarta.transformer/src/org/netbeans/modules/fish/payara/jakarta/transformer/pom.txt
new file mode 100644
index 0000000000..31842844fa
--- /dev/null
+++ 
b/enterprise/jakarta.transformer/src/org/netbeans/modules/fish/payara/jakarta/transformer/pom.txt
@@ -0,0 +1,34 @@
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
+    <modelVersion>4.0.0</modelVersion>
+    <groupId>jakartaee.transformed.sample</groupId>
+    <artifactId>jakartaee-transformed-sample</artifactId>
+    <version>1.0-SNAPSHOT</version>
+    
+    <properties>
+        <maven.compiler.source>17</maven.compiler.source>
+        <maven.compiler.target>17</maven.compiler.target>       
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>     
  
+    </properties>
+             
+</project>
\ No newline at end of file
diff --git 
a/enterprise/jakarta.transformer/src/org/netbeans/modules/fish/payara/jakarta/transformer/transformerDescription.html
 
b/enterprise/jakarta.transformer/src/org/netbeans/modules/fish/payara/jakarta/transformer/transformerDescription.html
new file mode 100644
index 0000000000..34d1f64088
--- /dev/null
+++ 
b/enterprise/jakarta.transformer/src/org/netbeans/modules/fish/payara/jakarta/transformer/transformerDescription.html
@@ -0,0 +1,28 @@
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+-->
+<html>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+    </head>
+    <body>
+        This is to transform an application to Jakarta EE 10
+    </body>
+</html>
diff --git a/enterprise/maven.j2ee/nbproject/project.xml 
b/enterprise/maven.j2ee/nbproject/project.xml
index 9fde5ea0bf..8682ebae1c 100644
--- a/enterprise/maven.j2ee/nbproject/project.xml
+++ b/enterprise/maven.j2ee/nbproject/project.xml
@@ -540,6 +540,7 @@
             </test-dependencies>
             <friend-packages>
                 <friend>org.netbeans.modules.payara.micro</friend>
+                <friend>org.netbeans.modules.jakarta.transformer</friend>
                 <package>org.netbeans.modules.maven.j2ee</package>
                 <package>org.netbeans.modules.maven.j2ee.execution</package>
                 <package>org.netbeans.modules.maven.j2ee.utils</package>
diff --git a/ide/swing.validation/nbproject/project.xml 
b/ide/swing.validation/nbproject/project.xml
index 1efa8cc75a..1d18485631 100644
--- a/ide/swing.validation/nbproject/project.xml
+++ b/ide/swing.validation/nbproject/project.xml
@@ -68,6 +68,7 @@
                 <friend>org.netbeans.modules.maven.j2ee</friend>
                 <friend>org.netbeans.modules.nodejs</friend>
                 <friend>org.netbeans.modules.payara.micro</friend>
+                <friend>org.netbeans.modules.jakarta.transformer</friend>
                 <package>org.netbeans.api.validation.adapters</package>
                 <package>org.netbeans.validation.api</package>
                 
<package>org.netbeans.validation.api.builtin.indexvalidation</package>
diff --git 
a/java/java.lsp.server/nbcode/integration/src/org/netbeans/modules/nbcode/integration/layer.xml
 
b/java/java.lsp.server/nbcode/integration/src/org/netbeans/modules/nbcode/integration/layer.xml
index 44b70b59dd..11e1bf64ab 100644
--- 
a/java/java.lsp.server/nbcode/integration/src/org/netbeans/modules/nbcode/integration/layer.xml
+++ 
b/java/java.lsp.server/nbcode/integration/src/org/netbeans/modules/nbcode/integration/layer.xml
@@ -93,6 +93,7 @@
             <file name="Import_hidden"/>
             <folder name="Maven2">
                 <file 
name="org-netbeans-modules-fish-payara-micro-project-ui-MicroProjectWizardIterator-createWebAppIterator_hidden"/>
+                <file 
name="org-netbeans-modules-fish-payara-jakarta-transformer-TransformerWizardIterator-createWebAppIterator_hidden"/>
                 <file 
name="org-netbeans-modules-maven-j2ee-ui-wizard-EAWizardIterator_hidden"/>
                 <file 
name="org-netbeans-modules-maven-j2ee-ui-wizard-EEWizardIterator-createAppClientIterator_hidden"/>
                 <file 
name="org-netbeans-modules-maven-j2ee-ui-wizard-EEWizardIterator-createEJBIterator_hidden"/>
diff --git a/java/java.lsp.server/nbcode/nbproject/platform.properties 
b/java/java.lsp.server/nbcode/nbproject/platform.properties
index 2e16c1e7b0..d112b30f15 100644
--- a/java/java.lsp.server/nbcode/nbproject/platform.properties
+++ b/java/java.lsp.server/nbcode/nbproject/platform.properties
@@ -344,6 +344,7 @@ disabled.modules=\
     org.netbeans.modules.j2ee.sun.appsrv,\
     org.netbeans.modules.j2ee.sun.dd,\
     org.netbeans.modules.j2ee.sun.ddui,\
+    org.netbeans.modules.jakarta.transformer,\
     org.netbeans.modules.jakarta.web.beans,\
     org.netbeans.modules.jakartaee8.api,\
     org.netbeans.modules.jakartaee8.platform,\
diff --git a/java/maven.embedder/nbproject/project.xml 
b/java/maven.embedder/nbproject/project.xml
index 6003c512ff..cd1c5de37d 100644
--- a/java/maven.embedder/nbproject/project.xml
+++ b/java/maven.embedder/nbproject/project.xml
@@ -175,6 +175,7 @@
                 <friend>org.vaadin.netbeans.maven</friend>
                 <friend>org.netbeans.modules.payara.tooling</friend>
                 <friend>org.netbeans.modules.payara.micro</friend>
+                <friend>org.netbeans.modules.jakarta.transformer</friend>
                 <!-- NetBeans support for Google App Engine -->
                 <friend>org.netbeans.modules.j2ee.appengine</friend>
                 <friend>org.netbeans.modules.maven.util</friend>
diff --git a/java/maven.indexer/nbproject/project.xml 
b/java/maven.indexer/nbproject/project.xml
index 19c22e0642..c995c1f72d 100644
--- a/java/maven.indexer/nbproject/project.xml
+++ b/java/maven.indexer/nbproject/project.xml
@@ -154,6 +154,7 @@
                 <friend>org.netbeans.modules.maven.search</friend>
                 <friend>ro.emilianbold.modules.maven.search.remote</friend>
                 <friend>org.netbeans.modules.payara.tooling</friend>
+                <friend>org.netbeans.modules.jakarta.transformer</friend>
                 <package>org.apache.lucene</package>
                 <package>org.apache.lucene.analysis</package>
                 <package>org.apache.lucene.analysis.standard</package>
diff --git a/java/maven.model/nbproject/project.xml 
b/java/maven.model/nbproject/project.xml
index 9d1c4e6c67..d2faac0f13 100644
--- a/java/maven.model/nbproject/project.xml
+++ b/java/maven.model/nbproject/project.xml
@@ -232,6 +232,7 @@
                 <!-- [email protected] -->
                 <friend>org.vaadin.netbeans.maven</friend>
                 <friend>org.netbeans.modules.payara.micro</friend>
+                <friend>org.netbeans.modules.jakarta.transformer</friend>
                 <!-- NetBeans support for Google App Engine -->
                 <friend>org.netbeans.modules.j2ee.appengine</friend>
                 <friend>org.netbeans.modules.maven.util</friend>
diff --git a/java/maven/nbproject/project.xml b/java/maven/nbproject/project.xml
index ad4f9c220f..3cce5d8419 100644
--- a/java/maven/nbproject/project.xml
+++ b/java/maven/nbproject/project.xml
@@ -648,6 +648,7 @@
                 <!-- [email protected] -->
                 <friend>org.vaadin.netbeans.maven</friend>
                 <friend>org.netbeans.modules.payara.micro</friend>
+                <friend>org.netbeans.modules.jakarta.transformer</friend>
                 <!-- NetBeans support for Google App Engine -->
                 <friend>org.netbeans.modules.j2ee.appengine</friend>
                 <friend>org.netbeans.modules.maven.util</friend>
diff --git a/nbbuild/cluster.properties b/nbbuild/cluster.properties
index 0c82f7510a..25f6bb112c 100644
--- a/nbbuild/cluster.properties
+++ b/nbbuild/cluster.properties
@@ -764,6 +764,7 @@ nb.cluster.enterprise=\
         j2ee.sun.ddui,\
         j2eeapis,\
         j2eeserver,\
+        jakarta.transformer,\
         jakarta.web.beans,\
         jakartaee10.api,\
         jakartaee10.platform,\


---------------------------------------------------------------------
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