Making sure the internal nb-javac modules are part of the source distro

diff --git a/nb/updatecenters/build.xml b/nb/updatecenters/build.xml
index e3c807a..b9a6577 100644
--- a/nb/updatecenters/build.xml
+++ b/nb/updatecenters/build.xml
@@ -44,10 +44,25 @@
           <property name="keystore" location="${netbeans.bundled.ks}"/>
           <property name="storepass" value="${netbeans.bundled.ks}"/>
           <property name="nbm_alias" value="netbeans-bundled"/>
-          <fileset dir="${nb_all}/extra" includes="libs.javafx.*/build.xml,nbjavac*/build.xml"/>
+          <fileset dir="${nb_all}/extra" includes="libs.javafx.*/build.xml"/>
       </subant>
-      <subant  target="clean" inheritall="false">
-          <fileset dir="${nb_all}/extra" includes="nbjavac*/build.xml"/>
+      <subant inheritall="false">
+          <target name="clean" />
+          <target name="build" />
+          <property name="nb_all" location="${nb_all}"/>
+          <property name="nbplatform.default.netbeans.dest.dir" location="${netbeans.dest.dir}"/>
+          <property name="nbplatform.default.harness.dir" location="${netbeans.dest.dir}/harness"/>
+          <fileset dir="extras" includes="build.xml"/>
+      </subant>
+      <subant target="nbm" inheritall="false">
+          <property name="build.dir" location="build/3rdparty-nbms"/>
+          <property name="keystore" location="${netbeans.bundled.ks}"/>
+          <property name="storepass" value="${netbeans.bundled.ks}"/>
+          <property name="nbm_alias" value="netbeans-bundled"/>
+          <property name="nb_all" location="${nb_all}"/>
+          <property name="nbplatform.default.netbeans.dest.dir" location="${netbeans.dest.dir}"/>
+          <property name="nbplatform.default.harness.dir" location="${netbeans.dest.dir}/harness"/>
+          <fileset dir="extras" includes="*/build.xml"/>
       </subant>
       <exec executable="${java.home}/bin/keytool" failonerror="true">
           <arg value="-exportcert"/>
diff --git a/nb/updatecenters/extras/.gitignore b/nb/updatecenters/extras/.gitignore
new file mode 100644
index 0000000..4469528
--- /dev/null
+++ b/nb/updatecenters/extras/.gitignore
@@ -0,0 +1 @@
+**/build
diff --git a/extra/nbjavac/build.xml b/nb/updatecenters/extras/build.xml
similarity index 79%
copy from extra/nbjavac/build.xml
copy to nb/updatecenters/extras/build.xml
index 670ff56..4354876 100644
--- a/extra/nbjavac/build.xml
+++ b/nb/updatecenters/extras/build.xml
@@ -19,7 +19,7 @@
     under the License.
 
 -->
-<project basedir="." default="netbeans" name="extra/nbjavac">
-    <description>Builds, tests, and runs the project org.netbeans.modules.nbjavac</description>
-    <import file="../../nbbuild/templates/projectized.xml"/>
+<project name="extras" basedir=".">
+    <description>Builds the module suite extras.</description>
+    <import file="nbproject/build-impl.xml"/>
 </project>
diff --git a/extra/nbjavac.api/build.xml b/nb/updatecenters/extras/nbjavac.api/build.xml
similarity index 94%
rename from extra/nbjavac.api/build.xml
rename to nb/updatecenters/extras/nbjavac.api/build.xml
index 4eccbad..29e667c 100644
--- a/extra/nbjavac.api/build.xml
+++ b/nb/updatecenters/extras/nbjavac.api/build.xml
@@ -21,5 +21,5 @@
 -->
 <project basedir="." default="netbeans" name="extra/nbjavac.api">
     <description>Builds, tests, and runs the project org.netbeans.modules.nbjavac.api</description>
-    <import file="../../nbbuild/templates/projectized.xml"/>
+    <import file="${basedir}/nbproject/build-impl.xml" />
 </project>
diff --git a/extra/nbjavac.api/manifest.mf b/nb/updatecenters/extras/nbjavac.api/manifest.mf
similarity index 100%
rename from extra/nbjavac.api/manifest.mf
rename to nb/updatecenters/extras/nbjavac.api/manifest.mf
diff --git a/nb/updatecenters/extras/nbjavac.api/nbproject/build-impl.xml b/nb/updatecenters/extras/nbjavac.api/nbproject/build-impl.xml
new file mode 100644
index 0000000..8f6eaf3
--- /dev/null
+++ b/nb/updatecenters/extras/nbjavac.api/nbproject/build-impl.xml
@@ -0,0 +1,50 @@
+<?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.
+
+-->
+<!--
+*** GENERATED FROM project.xml - DO NOT EDIT  ***
+***         EDIT ../build.xml INSTEAD         ***
+-->
+<project name="org.netbeans.modules.nbjavac.api-impl" basedir="..">
+    <property file="nbproject/private/suite-private.properties"/>
+    <property file="nbproject/suite.properties"/>
+    <fail unless="suite.dir">You must set 'suite.dir' to point to your containing module suite</fail>
+    <property file="${suite.dir}/nbproject/private/platform-private.properties"/>
+    <property file="${suite.dir}/nbproject/platform.properties"/>
+    <macrodef name="property" uri="http://www.netbeans.org/ns/nb-module-project/2">
+        <attribute name="name"/>
+        <attribute name="value"/>
+        <sequential>
+            <property name="@{name}" value="${@{value}}"/>
+        </sequential>
+    </macrodef>
+    <property file="${user.properties.file}"/>
+    <nbmproject2:property name="harness.dir" value="nbplatform.${nbplatform.active}.harness.dir" xmlns:nbmproject2="http://www.netbeans.org/ns/nb-module-project/2"/>
+    <nbmproject2:property name="netbeans.dest.dir" value="nbplatform.${nbplatform.active}.netbeans.dest.dir" xmlns:nbmproject2="http://www.netbeans.org/ns/nb-module-project/2"/>
+    <fail message="You must define 'nbplatform.${nbplatform.active}.harness.dir'">
+        <condition>
+            <not>
+                <available file="${harness.dir}" type="dir"/>
+            </not>
+        </condition>
+    </fail>
+    <import file="${harness.dir}/build.xml"/>
+</project>
diff --git a/nb/updatecenters/extras/nbjavac.api/nbproject/genfiles.properties b/nb/updatecenters/extras/nbjavac.api/nbproject/genfiles.properties
new file mode 100644
index 0000000..eb9df37
--- /dev/null
+++ b/nb/updatecenters/extras/nbjavac.api/nbproject/genfiles.properties
@@ -0,0 +1,22 @@
+# 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.
+
+# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
+# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
+nbproject/build-impl.xml.data.CRC32=093bbc48
+nbproject/build-impl.xml.script.CRC32=ad17fed4
+nbproject/build-impl.xml.stylesheet.CRC32=1016842c@2.78
diff --git a/extra/nbjavac.api/nbproject/project.properties b/nb/updatecenters/extras/nbjavac.api/nbproject/project.properties
similarity index 100%
rename from extra/nbjavac.api/nbproject/project.properties
rename to nb/updatecenters/extras/nbjavac.api/nbproject/project.properties
diff --git a/extra/nbjavac.api/nbproject/project.xml b/nb/updatecenters/extras/nbjavac.api/nbproject/project.xml
similarity index 97%
rename from extra/nbjavac.api/nbproject/project.xml
rename to nb/updatecenters/extras/nbjavac.api/nbproject/project.xml
index d94a9fe..8ebde33 100644
--- a/extra/nbjavac.api/nbproject/project.xml
+++ b/nb/updatecenters/extras/nbjavac.api/nbproject/project.xml
@@ -24,6 +24,7 @@
     <configuration>
         <data xmlns="http://www.netbeans.org/ns/nb-module-project/3">
             <code-name-base>org.netbeans.modules.nbjavac.api</code-name-base>
+            <suite-component/>
             <module-dependencies/>
             <public-packages/>
             <class-path-extension>
diff --git a/nb/updatecenters/extras/nbjavac.api/nbproject/suite.properties b/nb/updatecenters/extras/nbjavac.api/nbproject/suite.properties
new file mode 100644
index 0000000..7139182
--- /dev/null
+++ b/nb/updatecenters/extras/nbjavac.api/nbproject/suite.properties
@@ -0,0 +1,18 @@
+# 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.
+
+suite.dir=${basedir}/..
diff --git a/extra/nbjavac.api/release/modules/ext/nb-javac-13-api.jar.external b/nb/updatecenters/extras/nbjavac.api/release/modules/ext/nb-javac-13-api.jar.external
similarity index 93%
rename from extra/nbjavac.api/release/modules/ext/nb-javac-13-api.jar.external
rename to nb/updatecenters/extras/nbjavac.api/release/modules/ext/nb-javac-13-api.jar.external
index 961dd80..73997f2 100644
--- a/extra/nbjavac.api/release/modules/ext/nb-javac-13-api.jar.external
+++ b/nb/updatecenters/extras/nbjavac.api/release/modules/ext/nb-javac-13-api.jar.external
@@ -1,4 +1,4 @@
-CRC:4231515899
+CRC:262612438
 SIZE:195677
 URL:https://netbeans.osuosl.org/binaries/8250FAEF60A423DA3D5EFA0EE699FB69D906D86C-nb-javac-13-api.jar
 URL:https://hg.netbeans.org/binaries/8250FAEF60A423DA3D5EFA0EE699FB69D906D86C-nb-javac-13-api.jar
diff --git a/extra/nbjavac.api/src/org/netbeans/modules/nbjavac/api/Bundle.properties b/nb/updatecenters/extras/nbjavac.api/src/org/netbeans/modules/nbjavac/api/Bundle.properties
similarity index 100%
rename from extra/nbjavac.api/src/org/netbeans/modules/nbjavac/api/Bundle.properties
rename to nb/updatecenters/extras/nbjavac.api/src/org/netbeans/modules/nbjavac/api/Bundle.properties
diff --git a/extra/nbjavac.impl/build.xml b/nb/updatecenters/extras/nbjavac.impl/build.xml
similarity index 94%
rename from extra/nbjavac.impl/build.xml
rename to nb/updatecenters/extras/nbjavac.impl/build.xml
index ced7e4d..186c007 100644
--- a/extra/nbjavac.impl/build.xml
+++ b/nb/updatecenters/extras/nbjavac.impl/build.xml
@@ -21,5 +21,5 @@
 -->
 <project basedir="." default="netbeans" name="extra/nbjavac.impl">
     <description>Builds, tests, and runs the project org.netbeans.modules.nbjavac.impl</description>
-    <import file="../../nbbuild/templates/projectized.xml"/>
+    <import file="${basedir}/nbproject/build-impl.xml" />
 </project>
diff --git a/extra/nbjavac.impl/manifest.mf b/nb/updatecenters/extras/nbjavac.impl/manifest.mf
similarity index 100%
rename from extra/nbjavac.impl/manifest.mf
rename to nb/updatecenters/extras/nbjavac.impl/manifest.mf
diff --git a/nb/updatecenters/extras/nbjavac.impl/nbproject/build-impl.xml b/nb/updatecenters/extras/nbjavac.impl/nbproject/build-impl.xml
new file mode 100644
index 0000000..87271bc
--- /dev/null
+++ b/nb/updatecenters/extras/nbjavac.impl/nbproject/build-impl.xml
@@ -0,0 +1,50 @@
+<?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.
+
+-->
+<!--
+*** GENERATED FROM project.xml - DO NOT EDIT  ***
+***         EDIT ../build.xml INSTEAD         ***
+-->
+<project name="org.netbeans.modules.nbjavac.impl-impl" basedir="..">
+    <property file="nbproject/private/suite-private.properties"/>
+    <property file="nbproject/suite.properties"/>
+    <fail unless="suite.dir">You must set 'suite.dir' to point to your containing module suite</fail>
+    <property file="${suite.dir}/nbproject/private/platform-private.properties"/>
+    <property file="${suite.dir}/nbproject/platform.properties"/>
+    <macrodef name="property" uri="http://www.netbeans.org/ns/nb-module-project/2">
+        <attribute name="name"/>
+        <attribute name="value"/>
+        <sequential>
+            <property name="@{name}" value="${@{value}}"/>
+        </sequential>
+    </macrodef>
+    <property file="${user.properties.file}"/>
+    <nbmproject2:property name="harness.dir" value="nbplatform.${nbplatform.active}.harness.dir" xmlns:nbmproject2="http://www.netbeans.org/ns/nb-module-project/2"/>
+    <nbmproject2:property name="netbeans.dest.dir" value="nbplatform.${nbplatform.active}.netbeans.dest.dir" xmlns:nbmproject2="http://www.netbeans.org/ns/nb-module-project/2"/>
+    <fail message="You must define 'nbplatform.${nbplatform.active}.harness.dir'">
+        <condition>
+            <not>
+                <available file="${harness.dir}" type="dir"/>
+            </not>
+        </condition>
+    </fail>
+    <import file="${harness.dir}/build.xml"/>
+</project>
diff --git a/nb/updatecenters/extras/nbjavac.impl/nbproject/genfiles.properties b/nb/updatecenters/extras/nbjavac.impl/nbproject/genfiles.properties
new file mode 100644
index 0000000..151a57e
--- /dev/null
+++ b/nb/updatecenters/extras/nbjavac.impl/nbproject/genfiles.properties
@@ -0,0 +1,22 @@
+# 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.
+
+# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
+# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
+nbproject/build-impl.xml.data.CRC32=48638725
+nbproject/build-impl.xml.script.CRC32=e922adda
+nbproject/build-impl.xml.stylesheet.CRC32=1016842c@2.78
diff --git a/extra/nbjavac.impl/nbproject/project.properties b/nb/updatecenters/extras/nbjavac.impl/nbproject/project.properties
similarity index 100%
rename from extra/nbjavac.impl/nbproject/project.properties
rename to nb/updatecenters/extras/nbjavac.impl/nbproject/project.properties
diff --git a/extra/nbjavac.impl/nbproject/project.xml b/nb/updatecenters/extras/nbjavac.impl/nbproject/project.xml
similarity index 97%
rename from extra/nbjavac.impl/nbproject/project.xml
rename to nb/updatecenters/extras/nbjavac.impl/nbproject/project.xml
index 01bfaa6..8436f37 100644
--- a/extra/nbjavac.impl/nbproject/project.xml
+++ b/nb/updatecenters/extras/nbjavac.impl/nbproject/project.xml
@@ -24,6 +24,7 @@
     <configuration>
         <data xmlns="http://www.netbeans.org/ns/nb-module-project/3">
             <code-name-base>org.netbeans.modules.nbjavac.impl</code-name-base>
+            <suite-component/>
             <module-dependencies>
                 <dependency>
                     <code-name-base>org.netbeans.modules.nbjavac.api</code-name-base>
diff --git a/nb/updatecenters/extras/nbjavac.impl/nbproject/suite.properties b/nb/updatecenters/extras/nbjavac.impl/nbproject/suite.properties
new file mode 100644
index 0000000..7139182
--- /dev/null
+++ b/nb/updatecenters/extras/nbjavac.impl/nbproject/suite.properties
@@ -0,0 +1,18 @@
+# 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.
+
+suite.dir=${basedir}/..
diff --git a/extra/nbjavac.impl/release/modules/ext/nb-javac-13-impl.jar.external b/nb/updatecenters/extras/nbjavac.impl/release/modules/ext/nb-javac-13-impl.jar.external
similarity index 93%
rename from extra/nbjavac.impl/release/modules/ext/nb-javac-13-impl.jar.external
rename to nb/updatecenters/extras/nbjavac.impl/release/modules/ext/nb-javac-13-impl.jar.external
index 6f8d003..3a08de6 100644
--- a/extra/nbjavac.impl/release/modules/ext/nb-javac-13-impl.jar.external
+++ b/nb/updatecenters/extras/nbjavac.impl/release/modules/ext/nb-javac-13-impl.jar.external
@@ -1,4 +1,4 @@
-CRC:96561489
+CRC:3148453464
 SIZE:3411241
 URL:https://netbeans.osuosl.org/binaries/344C8C2A8B421A52ABE725A677BF75659C17FEB6-nb-javac-13-impl.jar
 URL:https://hg.netbeans.org/binaries/344C8C2A8B421A52ABE725A677BF75659C17FEB6-nb-javac-13-impl.jar
diff --git a/extra/nbjavac.impl/src/org/netbeans/modules/nbjavac/impl/Bundle.properties b/nb/updatecenters/extras/nbjavac.impl/src/org/netbeans/modules/nbjavac/impl/Bundle.properties
similarity index 100%
rename from extra/nbjavac.impl/src/org/netbeans/modules/nbjavac/impl/Bundle.properties
rename to nb/updatecenters/extras/nbjavac.impl/src/org/netbeans/modules/nbjavac/impl/Bundle.properties
diff --git a/extra/nbjavac/build.xml b/nb/updatecenters/extras/nbjavac/build.xml
similarity index 94%
rename from extra/nbjavac/build.xml
rename to nb/updatecenters/extras/nbjavac/build.xml
index 670ff56..e1c23d7 100644
--- a/extra/nbjavac/build.xml
+++ b/nb/updatecenters/extras/nbjavac/build.xml
@@ -21,5 +21,5 @@
 -->
 <project basedir="." default="netbeans" name="extra/nbjavac">
     <description>Builds, tests, and runs the project org.netbeans.modules.nbjavac</description>
-    <import file="../../nbbuild/templates/projectized.xml"/>
+    <import file="${basedir}/nbproject/build-impl.xml" />
 </project>
diff --git a/extra/nbjavac/manifest.mf b/nb/updatecenters/extras/nbjavac/manifest.mf
similarity index 100%
rename from extra/nbjavac/manifest.mf
rename to nb/updatecenters/extras/nbjavac/manifest.mf
diff --git a/nb/updatecenters/extras/nbjavac/nbproject/build-impl.xml b/nb/updatecenters/extras/nbjavac/nbproject/build-impl.xml
new file mode 100644
index 0000000..a9e8dd0
--- /dev/null
+++ b/nb/updatecenters/extras/nbjavac/nbproject/build-impl.xml
@@ -0,0 +1,50 @@
+<?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.
+
+-->
+<!--
+*** GENERATED FROM project.xml - DO NOT EDIT  ***
+***         EDIT ../build.xml INSTEAD         ***
+-->
+<project name="org.netbeans.modules.nbjavac-impl" basedir="..">
+    <property file="nbproject/private/suite-private.properties"/>
+    <property file="nbproject/suite.properties"/>
+    <fail unless="suite.dir">You must set 'suite.dir' to point to your containing module suite</fail>
+    <property file="${suite.dir}/nbproject/private/platform-private.properties"/>
+    <property file="${suite.dir}/nbproject/platform.properties"/>
+    <macrodef name="property" uri="http://www.netbeans.org/ns/nb-module-project/2">
+        <attribute name="name"/>
+        <attribute name="value"/>
+        <sequential>
+            <property name="@{name}" value="${@{value}}"/>
+        </sequential>
+    </macrodef>
+    <property file="${user.properties.file}"/>
+    <nbmproject2:property name="harness.dir" value="nbplatform.${nbplatform.active}.harness.dir" xmlns:nbmproject2="http://www.netbeans.org/ns/nb-module-project/2"/>
+    <nbmproject2:property name="netbeans.dest.dir" value="nbplatform.${nbplatform.active}.netbeans.dest.dir" xmlns:nbmproject2="http://www.netbeans.org/ns/nb-module-project/2"/>
+    <fail message="You must define 'nbplatform.${nbplatform.active}.harness.dir'">
+        <condition>
+            <not>
+                <available file="${harness.dir}" type="dir"/>
+            </not>
+        </condition>
+    </fail>
+    <import file="${harness.dir}/build.xml"/>
+</project>
diff --git a/nb/updatecenters/extras/nbjavac/nbproject/genfiles.properties b/nb/updatecenters/extras/nbjavac/nbproject/genfiles.properties
new file mode 100644
index 0000000..64c5131
--- /dev/null
+++ b/nb/updatecenters/extras/nbjavac/nbproject/genfiles.properties
@@ -0,0 +1,22 @@
+# 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.
+
+# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
+# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
+nbproject/build-impl.xml.data.CRC32=4e33bfbb
+nbproject/build-impl.xml.script.CRC32=02cff5d6
+nbproject/build-impl.xml.stylesheet.CRC32=1016842c@2.78
diff --git a/extra/nbjavac/nbproject/project.properties b/nb/updatecenters/extras/nbjavac/nbproject/project.properties
similarity index 100%
rename from extra/nbjavac/nbproject/project.properties
rename to nb/updatecenters/extras/nbjavac/nbproject/project.properties
diff --git a/extra/nbjavac/nbproject/project.xml b/nb/updatecenters/extras/nbjavac/nbproject/project.xml
similarity index 98%
rename from extra/nbjavac/nbproject/project.xml
rename to nb/updatecenters/extras/nbjavac/nbproject/project.xml
index ff889ed..6b646aa 100644
--- a/extra/nbjavac/nbproject/project.xml
+++ b/nb/updatecenters/extras/nbjavac/nbproject/project.xml
@@ -24,6 +24,7 @@
     <configuration>
         <data xmlns="http://www.netbeans.org/ns/nb-module-project/3">
             <code-name-base>org.netbeans.modules.nbjavac</code-name-base>
+            <suite-component/>
             <module-dependencies>
                 <dependency>
                     <code-name-base>org.netbeans.modules.nbjavac.api</code-name-base>
diff --git a/nb/updatecenters/extras/nbjavac/nbproject/suite.properties b/nb/updatecenters/extras/nbjavac/nbproject/suite.properties
new file mode 100644
index 0000000..7139182
--- /dev/null
+++ b/nb/updatecenters/extras/nbjavac/nbproject/suite.properties
@@ -0,0 +1,18 @@
+# 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.
+
+suite.dir=${basedir}/..
diff --git a/extra/nbjavac/src/org/netbeans/modules/nbjavac/Bundle.properties b/nb/updatecenters/extras/nbjavac/src/org/netbeans/modules/nbjavac/Bundle.properties
similarity index 100%
rename from extra/nbjavac/src/org/netbeans/modules/nbjavac/Bundle.properties
rename to nb/updatecenters/extras/nbjavac/src/org/netbeans/modules/nbjavac/Bundle.properties
diff --git a/nb/updatecenters/extras/nbproject/build-impl.xml b/nb/updatecenters/extras/nbproject/build-impl.xml
new file mode 100644
index 0000000..19d8932
--- /dev/null
+++ b/nb/updatecenters/extras/nbproject/build-impl.xml
@@ -0,0 +1,70 @@
+<?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.
+
+-->
+<!--
+*** GENERATED FROM project.xml - DO NOT EDIT  ***
+***         EDIT ../build.xml INSTEAD         ***
+-->
+<project name="extras-impl" basedir=".." xmlns:sproject="http://www.netbeans.org/ns/nb-module-suite-project/1">
+    <fail message="Please build using Ant 1.7.1 or higher.">
+        <condition>
+            <not>
+                <antversion atleast="1.7.1"/>
+            </not>
+        </condition>
+    </fail>
+    <property file="nbproject/private/platform-private.properties"/>
+    <property file="nbproject/platform.properties"/>
+    <macrodef name="property" uri="http://www.netbeans.org/ns/nb-module-suite-project/1">
+        <attribute name="name"/>
+        <attribute name="value"/>
+        <sequential>
+            <property name="@{name}" value="${@{value}}"/>
+        </sequential>
+    </macrodef>
+    <macrodef name="evalprops" uri="http://www.netbeans.org/ns/nb-module-suite-project/1">
+        <attribute name="property"/>
+        <attribute name="value"/>
+        <sequential>
+            <property name="@{property}" value="@{value}"/>
+        </sequential>
+    </macrodef>
+    <property file="${user.properties.file}"/>
+    <sproject:property name="harness.dir" value="nbplatform.${nbplatform.active}.harness.dir"/>
+    <sproject:property name="nbplatform.active.dir" value="nbplatform.${nbplatform.active}.netbeans.dest.dir"/>
+    <sproject:evalprops property="cluster.path.evaluated" value="${cluster.path}"/>
+    <fail message="Path to 'platform' cluster missing in $${cluster.path} property or using corrupt Netbeans Platform (missing harness).">
+        <condition>
+            <not>
+                <contains string="${cluster.path.evaluated}" substring="platform"/>
+            </not>
+        </condition>
+    </fail>
+    <ant antfile="nbproject/platform.xml"/>
+    <fail message="Cannot find NetBeans build harness. ${line.separator}Check that nbplatform.${nbplatform.active}.netbeans.dest.dir and nbplatform.${nbplatform.active}.harness.dir are defined. ${line.separator}On a developer machine these are normally defined in ${user.properties.file}=${netbeans.user}/build.properties ${line.separator}but for automated builds you should pass these properties to Ant explicitly. ${line.separator}You may instead download the harness and platform: -Dbootstrap.url=.../tasks.jar -Dautoupdate.catalog.url=.../updates.xml">
+        <condition>
+            <not>
+                <available file="${harness.dir}/suite.xml"/>
+            </not>
+        </condition>
+    </fail>
+    <import file="${harness.dir}/suite.xml"/>
+</project>
diff --git a/nb/updatecenters/extras/nbproject/genfiles.properties b/nb/updatecenters/extras/nbproject/genfiles.properties
new file mode 100644
index 0000000..7632798
--- /dev/null
+++ b/nb/updatecenters/extras/nbproject/genfiles.properties
@@ -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.
+
+build.xml.data.CRC32=b590e819
+build.xml.script.CRC32=6e1aa5dd
+build.xml.stylesheet.CRC32=70ce5c94@2.78
+# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
+# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
+nbproject/build-impl.xml.data.CRC32=b590e819
+nbproject/build-impl.xml.script.CRC32=1de6f712
+nbproject/build-impl.xml.stylesheet.CRC32=473dc988@2.78
+nbproject/platform.xml.data.CRC32=b590e819
+nbproject/platform.xml.script.CRC32=6dcbd131
+nbproject/platform.xml.stylesheet.CRC32=ae64f0b6@2.78
diff --git a/nb/updatecenters/extras/nbproject/platform.properties b/nb/updatecenters/extras/nbproject/platform.properties
new file mode 100644
index 0000000..148894a
--- /dev/null
+++ b/nb/updatecenters/extras/nbproject/platform.properties
@@ -0,0 +1,35 @@
+# 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.
+
+cluster.path=\
+    ${nbplatform.active.dir}/harness:\
+    ${nbplatform.active.dir}/platform:\
+    ${nbplatform.active.dir}/ide:\
+    ${nbplatform.active.dir}/java:\
+    ${nbplatform.active.dir}/websvccommon:\
+    ${nbplatform.active.dir}/extra:\
+    ${nbplatform.active.dir}/profiler:\
+    ${nbplatform.active.dir}/nb:\
+    ${nbplatform.active.dir}/enterprise:\
+    ${nbplatform.active.dir}/javafx:\
+    ${nbplatform.active.dir}/ergonomics:\
+    ${nbplatform.active.dir}/apisupport:\
+    ${nbplatform.active.dir}/groovy:\
+    ${nbplatform.active.dir}/webcommon:\
+    ${nbplatform.active.dir}/extide:\
+    ${nbplatform.active.dir}/php
+nbplatform.active=default
diff --git a/nb/updatecenters/extras/nbproject/platform.xml b/nb/updatecenters/extras/nbproject/platform.xml
new file mode 100644
index 0000000..64760a4
--- /dev/null
+++ b/nb/updatecenters/extras/nbproject/platform.xml
@@ -0,0 +1,54 @@
+<?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 name="platform" default="download" basedir="..">
+    <condition property="download.required">
+        <and>
+            <not>
+                <available file="${harness.dir}/suite.xml"/>
+            </not>
+            <isset property="bootstrap.url"/>
+            <isset property="autoupdate.catalog.url"/>
+        </and>
+    </condition>
+    <target name="download" if="download.required">
+        <mkdir dir="${harness.dir}"/>
+        <pathconvert pathsep="|" property="download.clusters">
+            <mapper type="flatten"/>
+            <path path="${cluster.path}"/>
+        </pathconvert>
+        <property name="disabled.modules" value=""/>
+        <pathconvert property="module.includes" pathsep="">
+            <mapper type="glob" from="${basedir}${file.separator}*" to="(?!^\Q*\E$)"/>
+            <path>
+                <filelist files="${disabled.modules}" dir="."/>
+            </path>
+        </pathconvert>
+        <echo message="Downloading clusters ${download.clusters}"/>
+        <property name="tasks.jar" location="${java.io.tmpdir}/tasks.jar"/>
+        <get src="${bootstrap.url}" dest="${tasks.jar}" usetimestamp="true" verbose="true"/>
+        <taskdef name="autoupdate" classname="org.netbeans.nbbuild.AutoUpdate" classpath="${tasks.jar}"/>
+        <autoupdate installdir="${nbplatform.active.dir}" updatecenter="${autoupdate.catalog.url}">
+            <modules includes="${module.includes}.*" clusters="${download.clusters}"/>
+            <modules includes="org[.]netbeans[.]modules[.]apisupport[.]harness" clusters="harness"/>
+        </autoupdate>
+    </target>
+</project>
diff --git a/nb/updatecenters/extras/nbproject/project.properties b/nb/updatecenters/extras/nbproject/project.properties
new file mode 100644
index 0000000..a1965a9
--- /dev/null
+++ b/nb/updatecenters/extras/nbproject/project.properties
@@ -0,0 +1,21 @@
+# 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.
+
+modules=nbjavac:\
+        nbjavac.api:\
+        nbjavac.impl
+
diff --git a/extra/nbjavac.impl/build.xml b/nb/updatecenters/extras/nbproject/project.xml
similarity index 74%
copy from extra/nbjavac.impl/build.xml
copy to nb/updatecenters/extras/nbproject/project.xml
index ced7e4d..1096d91 100644
--- a/extra/nbjavac.impl/build.xml
+++ b/nb/updatecenters/extras/nbproject/project.xml
@@ -19,7 +19,11 @@
     under the License.
 
 -->
-<project basedir="." default="netbeans" name="extra/nbjavac.impl">
-    <description>Builds, tests, and runs the project org.netbeans.modules.nbjavac.impl</description>
-    <import file="../../nbbuild/templates/projectized.xml"/>
+<project xmlns="http://www.netbeans.org/ns/project/1">
+    <type>org.netbeans.modules.apisupport.project.suite</type>
+    <configuration>
+        <data xmlns="http://www.netbeans.org/ns/nb-module-suite-project/1">
+            <name>extras</name>
+        </data>
+    </configuration>
 </project>
diff --git a/nb/updatecenters/licenseinfo.xml b/nb/updatecenters/licenseinfo.xml
index 750dc03..06e3d8e 100644
--- a/nb/updatecenters/licenseinfo.xml
+++ b/nb/updatecenters/licenseinfo.xml
@@ -25,4 +25,10 @@
         <license ref="Apache-2.0-ASF" />
         <comment type="COMMENT_UNSUPPORTED" />
     </fileset>
+    <fileset>
+        <file>extras/nbjavac.api/release/modules/ext/nb-javac-13-api.jar.external</file>
+        <file>extras/nbjavac.impl/release/modules/ext/nb-javac-13-impl.jar.external</file>
+        <license ref="Apache-2.0-ASF" />
+        <comment type="COMMENT_UNSUPPORTED" />
+    </fileset>
 </licenseinfo>