You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by il...@apache.org on 2021/08/12 08:49:26 UTC

[syncope] 02/02: [SYNCOPE-1638] Netbeans IDE Plugin removal

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

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

commit 4d84def6c650f5b6f0950391207433a5b6626bb6
Author: Francesco Chicchiriccò <il...@apache.org>
AuthorDate: Thu Aug 12 10:47:35 2021 +0200

    [SYNCOPE-1638] Netbeans IDE Plugin removal
---
 ide/netbeans/LICENSE                               | 677 -------------------
 ide/netbeans/NOTICE                                |  50 --
 ide/netbeans/nb-configuration.xml                  |  36 -
 ide/netbeans/pom.xml                               | 213 ------
 .../syncope/ide/netbeans/ConnectionParams.java     | 137 ----
 .../syncope/ide/netbeans/PluginConstants.java      |  45 --
 .../syncope/ide/netbeans/ResourceConnector.java    | 107 ---
 .../service/ImplementationManagerService.java      |  56 --
 .../service/MailTemplateManagerService.java        |  63 --
 .../service/ReportTemplateManagerService.java      |  67 --
 .../netbeans/service/SyncopeManagerService.java    |  36 -
 .../view/ResourceExplorerTopComponent.form         |  68 --
 .../view/ResourceExplorerTopComponent.java         | 721 ---------------------
 .../ide/netbeans/view/ServerDetailsView.form       | 182 ------
 .../ide/netbeans/view/ServerDetailsView.java       | 265 --------
 ide/netbeans/src/main/nbm/MANIFEST.MF              |   3 -
 .../syncope/ide/netbeans/view/Bundle.properties    |  28 -
 .../apache/syncope/ide/netbeans/view/favicon.png   | Bin 641 -> 0 bytes
 ide/pom.xml                                        | 106 ---
 pom.xml                                            |  86 ---
 src/main/asciidoc/getting-started/obtain.adoc      |  67 --
 src/main/asciidoc/images/netbeans01.png            | Bin 25791 -> 0 bytes
 src/main/asciidoc/images/netbeans02.png            | Bin 16210 -> 0 bytes
 src/main/asciidoc/images/netbeans03.png            | Bin 45644 -> 0 bytes
 src/main/asciidoc/images/netbeans04.png            | Bin 29113 -> 0 bytes
 src/main/asciidoc/images/netbeans05.png            | Bin 44042 -> 0 bytes
 src/main/asciidoc/images/netbeans06.png            | Bin 41707 -> 0 bytes
 src/main/asciidoc/images/netbeans07.png            | Bin 43136 -> 0 bytes
 src/main/asciidoc/images/netbeans08.png            | Bin 42063 -> 0 bytes
 src/main/asciidoc/images/netbeans09.png            | Bin 16119 -> 0 bytes
 src/main/asciidoc/images/netbeans10.png            | Bin 29973 -> 0 bytes
 src/main/asciidoc/images/netbeans11.png            | Bin 51834 -> 0 bytes
 src/main/asciidoc/images/netbeans12.png            | Bin 9614 -> 0 bytes
 src/main/asciidoc/images/netbeans13.png            | Bin 9899 -> 0 bytes
 .../reference-guide/architecture/architecture.adoc |   6 -
 .../reference-guide/concepts/notifications.adoc    |   3 +-
 .../asciidoc/reference-guide/concepts/reports.adoc |   2 +-
 37 files changed, 2 insertions(+), 3022 deletions(-)

diff --git a/ide/netbeans/LICENSE b/ide/netbeans/LICENSE
deleted file mode 100644
index 876156c..0000000
--- a/ide/netbeans/LICENSE
+++ /dev/null
@@ -1,677 +0,0 @@
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed 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.
-
-==
-
-For Jackson (http://wiki.fasterxml.com/JacksonHome):
-This is licensed under the AL 2.0, see above.
-
-==
-
-For JAX-B (http://jaxb.java.net/):
-This is licensed under the CDDL 1.0:
-
-COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
-
-1. Definitions.
-
-1.1. "Contributor" means each individual or entity that
-creates or contributes to the creation of Modifications.
-
-1.2. "Contributor Version" means the combination of the
-Original Software, prior Modifications used by a
-Contributor (if any), and the Modifications made by that
-particular Contributor.
-
-1.3. "Covered Software" means (a) the Original Software, or
-(b) Modifications, or (c) the combination of files
-containing Original Software with files containing
-Modifications, in each case including portions thereof.
-
-1.4. "Executable" means the Covered Software in any form
-other than Source Code.
-
-1.5. "Initial Developer" means the individual or entity
-that first makes Original Software available under this
-License.
-
-1.6. "Larger Work" means a work which combines Covered
-Software or portions thereof with code not governed by the
-terms of this License.
-
-1.7. "License" means this document.
-
-1.8. "Licensable" means having the right to grant, to the
-maximum extent possible, whether at the time of the initial
-grant or subsequently acquired, any and all of the rights
-conveyed herein.
-
-1.9. "Modifications" means the Source Code and Executable
-form of any of the following:
-
-A. Any file that results from an addition to,
-deletion from or modification of the contents of a
-file containing Original Software or previous
-Modifications;
-
-B. Any new file that contains any part of the
-Original Software or previous Modification; or
-
-C. Any new file that is contributed or otherwise made
-available under the terms of this License.
-
-1.10. "Original Software" means the Source Code and
-Executable form of computer software code that is
-originally released under this License.
-
-1.11. "Patent Claims" means any patent claim(s), now owned
-or hereafter acquired, including without limitation,
-method, process, and apparatus claims, in any patent
-Licensable by grantor.
-
-1.12. "Source Code" means (a) the common form of computer
-software code in which modifications are made and (b)
-associated documentation included in or with such code.
-
-1.13. "You" (or "Your") means an individual or a legal
-entity exercising rights under, and complying with all of
-the terms of, this License. For legal entities, "You"
-includes any entity which controls, is controlled by, or is
-under common control with You. For purposes of this
-definition, "control" means (a) the power, direct or
-indirect, to cause the direction or management of such
-entity, whether by contract or otherwise, or (b) ownership
-of more than fifty percent (50%) of the outstanding shares
-or beneficial ownership of such entity.
-
-2. License Grants.
-
-2.1. The Initial Developer Grant.
-
-Conditioned upon Your compliance with Section 3.1 below and
-subject to third party intellectual property claims, the
-Initial Developer hereby grants You a world-wide,
-royalty-free, non-exclusive license:
-
-(a) under intellectual property rights (other than
-patent or trademark) Licensable by Initial Developer,
-to use, reproduce, modify, display, perform,
-sublicense and distribute the Original Software (or
-portions thereof), with or without Modifications,
-and/or as part of a Larger Work; and
-
-(b) under Patent Claims infringed by the making,
-using or selling of Original Software, to make, have
-made, use, practice, sell, and offer for sale, and/or
-otherwise dispose of the Original Software (or
-portions thereof).
-
-(c) The licenses granted in Sections 2.1(a) and (b)
-are effective on the date Initial Developer first
-distributes or otherwise makes the Original Software
-available to a third party under the terms of this
-License.
-
-(d) Notwithstanding Section 2.1(b) above, no patent
-license is granted: (1) for code that You delete from
-the Original Software, or (2) for infringements
-caused by: (i) the modification of the Original
-Software, or (ii) the combination of the Original
-Software with other software or devices.
-
-2.2. Contributor Grant.
-
-Conditioned upon Your compliance with Section 3.1 below and
-subject to third party intellectual property claims, each
-Contributor hereby grants You a world-wide, royalty-free,
-non-exclusive license:
-
-(a) under intellectual property rights (other than
-patent or trademark) Licensable by Contributor to
-use, reproduce, modify, display, perform, sublicense
-and distribute the Modifications created by such
-Contributor (or portions thereof), either on an
-unmodified basis, with other Modifications, as
-Covered Software and/or as part of a Larger Work; and
-
-(b) under Patent Claims infringed by the making,
-using, or selling of Modifications made by that
-Contributor either alone and/or in combination with
-its Contributor Version (or portions of such
-combination), to make, use, sell, offer for sale,
-have made, and/or otherwise dispose of: (1)
-Modifications made by that Contributor (or portions
-thereof); and (2) the combination of Modifications
-made by that Contributor with its Contributor Version
-(or portions of such combination).
-
-(c) The licenses granted in Sections 2.2(a) and
-2.2(b) are effective on the date Contributor first
-distributes or otherwise makes the Modifications
-available to a third party.
-
-(d) Notwithstanding Section 2.2(b) above, no patent
-license is granted: (1) for any code that Contributor
-has deleted from the Contributor Version; (2) for
-infringements caused by: (i) third party
-modifications of Contributor Version, or (ii) the
-combination of Modifications made by that Contributor
-with other software (except as part of the
-Contributor Version) or other devices; or (3) under
-Patent Claims infringed by Covered Software in the
-absence of Modifications made by that Contributor.
-
-3. Distribution Obligations.
-
-3.1. Availability of Source Code.
-
-Any Covered Software that You distribute or otherwise make
-available in Executable form must also be made available in
-Source Code form and that Source Code form must be
-distributed only under the terms of this License. You must
-include a copy of this License with every copy of the
-Source Code form of the Covered Software You distribute or
-otherwise make available. You must inform recipients of any
-such Covered Software in Executable form as to how they can
-obtain such Covered Software in Source Code form in a
-reasonable manner on or through a medium customarily used
-for software exchange.
-
-3.2. Modifications.
-
-The Modifications that You create or to which You
-contribute are governed by the terms of this License. You
-represent that You believe Your Modifications are Your
-original creation(s) and/or You have sufficient rights to
-grant the rights conveyed by this License.
-
-3.3. Required Notices.
-
-You must include a notice in each of Your Modifications
-that identifies You as the Contributor of the Modification.
-You may not remove or alter any copyright, patent or
-trademark notices contained within the Covered Software, or
-any notices of licensing or any descriptive text giving
-attribution to any Contributor or the Initial Developer.
-
-3.4. Application of Additional Terms.
-
-You may not offer or impose any terms on any Covered
-Software in Source Code form that alters or restricts the
-applicable version of this License or the recipients'
-rights hereunder. You may choose to offer, and to charge a
-fee for, warranty, support, indemnity or liability
-obligations to one or more recipients of Covered Software.
-However, you may do so only on Your own behalf, and not on
-behalf of the Initial Developer or any Contributor. You
-must make it absolutely clear that any such warranty,
-support, indemnity or liability obligation is offered by
-You alone, and You hereby agree to indemnify the Initial
-Developer and every Contributor for any liability incurred
-by the Initial Developer or such Contributor as a result of
-warranty, support, indemnity or liability terms You offer.
-
-3.5. Distribution of Executable Versions.
-
-You may distribute the Executable form of the Covered
-Software under the terms of this License or under the terms
-of a license of Your choice, which may contain terms
-different from this License, provided that You are in
-compliance with the terms of this License and that the
-license for the Executable form does not attempt to limit
-or alter the recipient's rights in the Source Code form
-from the rights set forth in this License. If You
-distribute the Covered Software in Executable form under a
-different license, You must make it absolutely clear that
-any terms which differ from this License are offered by You
-alone, not by the Initial Developer or Contributor. You
-hereby agree to indemnify the Initial Developer and every
-Contributor for any liability incurred by the Initial
-Developer or such Contributor as a result of any such terms
-You offer.
-
-3.6. Larger Works.
-
-You may create a Larger Work by combining Covered Software
-with other code not governed by the terms of this License
-and distribute the Larger Work as a single product. In such
-a case, You must make sure the requirements of this License
-are fulfilled for the Covered Software.
-
-4. Versions of the License.
-
-4.1. New Versions.
-
-Sun Microsystems, Inc. is the initial license steward and
-may publish revised and/or new versions of this License
-from time to time. Each version will be given a
-distinguishing version number. Except as provided in
-Section 4.3, no one other than the license steward has the
-right to modify this License.
-
-4.2. Effect of New Versions.
-
-You may always continue to use, distribute or otherwise
-make the Covered Software available under the terms of the
-version of the License under which You originally received
-the Covered Software. If the Initial Developer includes a
-notice in the Original Software prohibiting it from being
-distributed or otherwise made available under any
-subsequent version of the License, You must distribute and
-make the Covered Software available under the terms of the
-version of the License under which You originally received
-the Covered Software. Otherwise, You may also choose to
-use, distribute or otherwise make the Covered Software
-available under the terms of any subsequent version of the
-License published by the license steward.
-
-4.3. Modified Versions.
-
-When You are an Initial Developer and You want to create a
-new license for Your Original Software, You may create and
-use a modified version of this License if You: (a) rename
-the license and remove any references to the name of the
-license steward (except to note that the license differs
-from this License); and (b) otherwise make it clear that
-the license contains terms which differ from this License.
-
-5. DISCLAIMER OF WARRANTY.
-
-COVERED SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS"
-BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
-INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED
-SOFTWARE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR
-PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND
-PERFORMANCE OF THE COVERED SOFTWARE IS WITH YOU. SHOULD ANY
-COVERED SOFTWARE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE
-INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF
-ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF
-WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF
-ANY COVERED SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS
-DISCLAIMER.
-
-6. TERMINATION.
-
-6.1. This License and the rights granted hereunder will
-terminate automatically if You fail to comply with terms
-herein and fail to cure such breach within 30 days of
-becoming aware of the breach. Provisions which, by their
-nature, must remain in effect beyond the termination of
-this License shall survive.
-
-6.2. If You assert a patent infringement claim (excluding
-declaratory judgment actions) against Initial Developer or
-a Contributor (the Initial Developer or Contributor against
-whom You assert such claim is referred to as "Participant")
-alleging that the Participant Software (meaning the
-Contributor Version where the Participant is a Contributor
-or the Original Software where the Participant is the
-Initial Developer) directly or indirectly infringes any
-patent, then any and all rights granted directly or
-indirectly to You by such Participant, the Initial
-Developer (if the Initial Developer is not the Participant)
-and all Contributors under Sections 2.1 and/or 2.2 of this
-License shall, upon 60 days notice from Participant
-terminate prospectively and automatically at the expiration
-of such 60 day notice period, unless if within such 60 day
-period You withdraw Your claim with respect to the
-Participant Software against such Participant either
-unilaterally or pursuant to a written agreement with
-Participant.
-
-6.3. In the event of termination under Sections 6.1 or 6.2
-above, all end user licenses that have been validly granted
-by You or any distributor hereunder prior to termination
-(excluding licenses granted to You by any distributor)
-shall survive termination.
-
-7. LIMITATION OF LIABILITY.
-
-UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
-(INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE
-INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF
-COVERED SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE
-LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR
-CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT
-LIMITATION, DAMAGES FOR LOST PROFITS, LOSS OF GOODWILL, WORK
-STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
-COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
-INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
-LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL
-INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT
-APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO
-NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR
-CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT
-APPLY TO YOU.
-
-8. U.S. GOVERNMENT END USERS.
-
-The Covered Software is a "commercial item," as that term is
-defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial
-computer software" (as that term is defined at 48 C.F.R. $
-252.227-7014(a)(1)) and "commercial computer software
-documentation" as such terms are used in 48 C.F.R. 12.212 (Sept.
-1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1
-through 227.7202-4 (June 1995), all U.S. Government End Users
-acquire Covered Software with only those rights set forth herein.
-This U.S. Government Rights clause is in lieu of, and supersedes,
-any other FAR, DFAR, or other clause or provision that addresses
-Government rights in computer software under this License.
-
-9. MISCELLANEOUS.
-
-This License represents the complete agreement concerning subject
-matter hereof. If any provision of this License is held to be
-unenforceable, such provision shall be reformed only to the
-extent necessary to make it enforceable. This License shall be
-governed by the law of the jurisdiction specified in a notice
-contained within the Original Software (except to the extent
-applicable law, if any, provides otherwise), excluding such
-jurisdiction's conflict-of-law provisions. Any litigation
-relating to this License shall be subject to the jurisdiction of
-the courts located in the jurisdiction and venue specified in a
-notice contained within the Original Software, with the losing
-party responsible for costs, including, without limitation, court
-costs and reasonable attorneys' fees and expenses. The
-application of the United Nations Convention on Contracts for the
-International Sale of Goods is expressly excluded. Any law or
-regulation which provides that the language of a contract shall
-be construed against the drafter shall not apply to this License.
-You agree that You alone are responsible for compliance with the
-United States export administration regulations (and the export
-control laws and regulation of any other countries) when You use,
-distribute or otherwise make available any Covered Software.
-
-10. RESPONSIBILITY FOR CLAIMS.
-
-As between Initial Developer and the Contributors, each party is
-responsible for claims and damages arising, directly or
-indirectly, out of its utilization of rights under this License
-and You agree to work with Initial Developer and Contributors to
-distribute such responsibility on an equitable basis. Nothing
-herein is intended or shall be deemed to constitute any admission
-of liability.
-
-==
-
-For javax.annotation-api (https://jcp.org/en/jsr/detail?id=250):
-This is licensed under the CDDL 1.0, see above.
-
-==
-
-For Bean Validation API (http://beanvalidation.org/):
-This is licensed under the AL 2.0, see above.
-
-==
-
-For javax.ws.rs-api (https://jax-rs-spec.java.net/):
-This is licensed under the CDDL 1.0, see above.
-
-==
-
-For Joda Time (http://www.joda.org/joda-time/):
-This is licensed under the AL 2.0, see above.
-
-==
-
-For StAX2 API (http://wiki.fasterxml.com/WoodstoxStax2):
-This is licensed under the BSD license:
-
-Redistribution and use in source and binary forms, with or without 
-modification, are permitted provided that the following conditions are met:
-
-1. Redistributions of source code must retain the above copyright notice, this 
-list of conditions and the following disclaimer.
-
-2. Redistributions in binary form must reproduce the above copyright notice, 
-this list of conditions and the following disclaimer in the documentation 
-and/or other materials provided with the distribution.
-
-3. Neither the name of the copyright holder nor the names of its contributors 
-may be used to endorse or promote products derived from this software without 
-specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 
-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-==
-
-For Woodstox (http://wiki.fasterxml.com/WoodstoxHome):
-This is licensed under the AL 2.0, see above.
-
-==
-
-For ASM (http://asm.ow2.org/):
-This is licensed under the BSD license, see above.
-
-==
-
-For Simple Logging Facade for Java - SLF4J (http://www.slf4j.org/):
-This is licensed under the MIT license:
-
- Permission is hereby granted, free  of charge, to any person obtaining
- a  copy  of this  software  and  associated  documentation files  (the
- "Software"), to  deal in  the Software without  restriction, including
- without limitation  the rights to  use, copy, modify,  merge, publish,
- distribute,  sublicense, and/or sell  copies of  the Software,  and to
- permit persons to whom the Software  is furnished to do so, subject to
- the following conditions:
- 
- The  above  copyright  notice  and  this permission  notice  shall  be
- included in all copies or substantial portions of the Software.
- 
- THE  SOFTWARE IS  PROVIDED  "AS  IS", WITHOUT  WARRANTY  OF ANY  KIND,
- EXPRESS OR  IMPLIED, INCLUDING  BUT NOT LIMITED  TO THE  WARRANTIES OF
- MERCHANTABILITY,    FITNESS    FOR    A   PARTICULAR    PURPOSE    AND
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
- OF CONTRACT, TORT OR OTHERWISE,  ARISING FROM, OUT OF OR IN CONNECTION
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/ide/netbeans/NOTICE b/ide/netbeans/NOTICE
deleted file mode 100644
index efb0700..0000000
--- a/ide/netbeans/NOTICE
+++ /dev/null
@@ -1,50 +0,0 @@
-Apache Syncope
-Copyright 2012-2021 The Apache Software Foundation
-
-This product includes software developed by:
-The Apache Software Foundation (http://www.apache.org/).
-
-The following copyright notice(s) were affixed to portions of this code
-with which this file is now or was at one time distributed.
-
-==
-
-This product includes software developed by the Jackson project.
-
-==
-
-This product includes software developed by the JAXB project.
-Copyright (c) 2013-2016 The JAXB project.
-
-==
-
-This product includs software developed by Oracle.
-Copyright (c) 2012-2013 Oracle and/or its affiliates. All rights reserved.
-
-==
-
-This product includes software developed by the Bean Validation Project (http://beanvalidation.org).
-Copyright (c) Red Hat, Inc., Emmanuel Bernard
-
-==
-
-This product includes software developed by the JAX-RS project.
-Copyright (c) 2014, Oracle Corporation and/or its affiliates. All rights reserved.
-
-==
-
-This product includes software developed by the Joda Time project.
-Copyright (c) 2002-2016 Joda.org. All Rights Reserved.
-
-==
-
-This product includes software developed by the Stax 2 Extension API Project.
-
-==
-
-This product includes software developed by the Woodstox Project.
-
-==
-
-This products includes software developed by the Simple Logging Facade for Java (SLF4J) project.
-Copyright (c) 2004-2016 QOS.ch.
diff --git a/ide/netbeans/nb-configuration.xml b/ide/netbeans/nb-configuration.xml
deleted file mode 100644
index 93c2817..0000000
--- a/ide/netbeans/nb-configuration.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?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-shared-configuration>
-    <!--
-  This file contains additional configuration written by modules in the NetBeans IDE.
-  The configuration is intended to be shared among all the users of project and
-  therefore it is assumed to be part of version control checkout.
-  Without this configuration present, some functionality in the IDE may be limited or fail altogether.
-  -->
-    <properties xmlns="http://www.netbeans.org/ns/maven-properties-data/1">
-        <!--
-    Properties that influence various parts of the IDE, especially code formatting and the like. 
-    You can copy and paste the single properties, into the pom.xml file and the IDE will pick them up.
-    That way multiple projects can share the same settings (useful for formatting rules for example).
-    Any value defined here will override the pom.xml file value but is only applicable to the current project.
-    -->
-        <org-netbeans-modules-javascript2-requirejs.enabled>true</org-netbeans-modules-javascript2-requirejs.enabled>
-    </properties>
-</project-shared-configuration>
diff --git a/ide/netbeans/pom.xml b/ide/netbeans/pom.xml
deleted file mode 100644
index 2ed5406..0000000
--- a/ide/netbeans/pom.xml
+++ /dev/null
@@ -1,213 +0,0 @@
-<?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 owership.  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>
-  <parent>
-    <groupId>org.apache.syncope</groupId>
-    <artifactId>syncope-ide</artifactId>
-    <version>3.0.0-SNAPSHOT</version>
-  </parent>
-
-  <name>Apache Syncope IDE Netbeans plugin</name>
-  <description>Apache Syncope IDE Netbeans plugin</description>
-  <groupId>org.apache.syncope.ide</groupId>
-  <artifactId>syncope-ide-netbeans</artifactId>
-
-  <packaging>nbm</packaging>
-
-  <properties>
-    <rootpom.basedir>${basedir}/../..</rootpom.basedir>
-  </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.syncope.client.idm</groupId>
-      <artifactId>syncope-client-idm-lib</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-
-    <dependency>
-      <groupId>org.netbeans.api</groupId>
-      <artifactId>org-netbeans-api-annotations-common</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.netbeans.api</groupId>
-      <artifactId>org-openide-windows</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.netbeans.api</groupId>
-      <artifactId>org-openide-util</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.netbeans.api</groupId>
-      <artifactId>org-openide-util-ui</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.netbeans.api</groupId>
-      <artifactId>org-openide-util-lookup</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.netbeans.api</groupId>
-      <artifactId>org-openide-awt</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.netbeans.api</groupId>
-      <artifactId>org-netbeans-modules-settings</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.netbeans.api</groupId>
-      <artifactId>org-openide-io</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.netbeans.api</groupId>
-      <artifactId>org-openide-nodes</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.netbeans.api</groupId>
-      <artifactId>org-openide-text</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.netbeans.api</groupId>
-      <artifactId>org-openide-filesystems</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.netbeans.api</groupId>
-      <artifactId>org-openide-loaders</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.netbeans.api</groupId>
-      <artifactId>org-netbeans-core-multiview</artifactId>
-      <type>jar</type>
-    </dependency>
-    <dependency>
-      <groupId>org.netbeans.api</groupId>
-      <artifactId>org-netbeans-modules-editor-lib2</artifactId>
-      <type>jar</type>
-    </dependency>
-    <dependency>
-      <groupId>org.netbeans.api</groupId>
-      <artifactId>org-netbeans-api-progress</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.netbeans.api</groupId>
-      <artifactId>org-netbeans-api-progress-nb</artifactId>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.codehaus.mojo</groupId>
-        <artifactId>nbm-maven-plugin</artifactId>
-        <extensions>true</extensions>
-        <configuration>
-          <verifyRuntime>skip</verifyRuntime>
-          <useOSGiDependencies>false</useOSGiDependencies>
-        </configuration>
-      </plugin>
-      
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-jar-plugin</artifactId>
-        <configuration>
-          <archive>
-            <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
-          </archive>
-        </configuration>
-      </plugin>
-             
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-antrun-plugin</artifactId>
-        <executions>
-          <execution>
-            <phase>package</phase>
-            <configuration>
-              <target>
-                <zip update="true" destfile="${project.build.directory}/syncope-ide-netbeans-${project.version}.nbm">
-                  <zipfileset dir="${basedir}" prefix="META-INF" includes="LICENSE,NOTICE" />
-                </zip>
-              </target>
-            </configuration>
-            <goals>
-              <goal>run</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-             
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-checkstyle-plugin</artifactId>
-      </plugin>
-    </plugins>
-    
-    <resources>
-      <resource>
-        <directory>src/main/resources</directory>
-        <filtering>false</filtering>
-        <includes>
-          <include>org/apache/syncope/**/*.png</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>${basedir}/../../client/console/src/main/resources/org/apache/syncope/client/console/implementations/</directory>
-        <filtering>false</filtering>
-        <includes>
-          <include>*.groovy</include>
-        </includes>
-        <targetPath>org/apache/syncope/ide/netbeans/implementations</targetPath>
-      </resource>
-
-      <resource>
-        <directory>${basedir}</directory>
-        <targetPath>META-INF</targetPath>
-        <includes>
-          <include>LICENSE</include>
-          <include>NOTICE</include>
-        </includes>
-      </resource>
-    </resources>
-  </build>
-  
-  <profiles>
-    <profile>
-      <id>apache-release</id>
-
-      <build>
-        <plugins>
-          <plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-deploy-plugin</artifactId>
-            <configuration>
-              <skip>true</skip>
-            </configuration>
-          </plugin>
-          <plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-source-plugin</artifactId>
-            <inherited>false</inherited>
-            <configuration>
-              <skipSource>true</skipSource>
-            </configuration>
-          </plugin>
-        </plugins>
-      </build>
-    </profile>
-  </profiles>
-</project>
diff --git a/ide/netbeans/src/main/java/org/apache/syncope/ide/netbeans/ConnectionParams.java b/ide/netbeans/src/main/java/org/apache/syncope/ide/netbeans/ConnectionParams.java
deleted file mode 100644
index b6ddfaf..0000000
--- a/ide/netbeans/src/main/java/org/apache/syncope/ide/netbeans/ConnectionParams.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * 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.apache.syncope.ide.netbeans;
-
-public final class ConnectionParams {
-
-    private String url;
-
-    private String username;
-
-    private String password;
-
-    public static final class Builder {
-
-        private String scheme;
-
-        private String host;
-
-        private String port;
-
-        private String username;
-
-        private String password;
-
-        private Builder() {
-        }
-
-        public Builder scheme(final String value) {
-            this.scheme = value;
-            return this;
-        }
-
-        public Builder host(final String value) {
-            this.host = value;
-            return this;
-        }
-
-        public Builder port(final String value) {
-            this.port = value;
-            return this;
-        }
-
-        public Builder username(final String value) {
-            this.username = value;
-            return this;
-        }
-
-        public Builder password(final String value) {
-            this.password = value;
-            return this;
-        }
-
-        public ConnectionParams build() {
-            return new ConnectionParams(scheme + "://" + host + ':' + port + "/syncope/rest", username, password);
-        }
-    }
-
-    public static ConnectionParams.Builder builder() {
-        return new ConnectionParams.Builder();
-    }
-
-    private ConnectionParams(
-            final String url,
-            final String userName,
-            final String password) {
-        this.url = url;
-        this.username = userName;
-        this.password = password;
-    }
-
-    public String getUrl() {
-        return url;
-    }
-
-    public void setUrl(final String url) {
-        this.url = url;
-    }
-
-    public String getUsername() {
-        return username;
-    }
-
-    public void setUsername(final String username) {
-        this.username = username;
-    }
-
-    public String getPassword() {
-        return password;
-    }
-
-    public void setPassword(final String password) {
-        this.password = password;
-    }
-
-    public ConnectionParams port(final String value) {
-        this.url = value;
-        return this;
-    }
-
-    public ConnectionParams userName(final String value) {
-        this.username = value;
-        return this;
-    }
-
-    public ConnectionParams password(final String value) {
-        this.password = value;
-        return this;
-    }
-
-    @Override
-    public String toString() {
-        StringBuilder toStringBuilder;
-        toStringBuilder = new StringBuilder("ConnectionParams{");
-        toStringBuilder.append("url=").append(this.url);
-        toStringBuilder.append(",username=").append(this.username);
-        toStringBuilder.append(",password=").append(this.password);
-        toStringBuilder.append('}');
-        return toStringBuilder.toString();
-    }
-
-}
diff --git a/ide/netbeans/src/main/java/org/apache/syncope/ide/netbeans/PluginConstants.java b/ide/netbeans/src/main/java/org/apache/syncope/ide/netbeans/PluginConstants.java
deleted file mode 100644
index b598421..0000000
--- a/ide/netbeans/src/main/java/org/apache/syncope/ide/netbeans/PluginConstants.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * 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.apache.syncope.ide.netbeans;
-
-import org.apache.syncope.common.lib.types.MailTemplateFormat;
-import org.apache.syncope.common.lib.types.ReportTemplateFormat;
-
-public final class PluginConstants {
-
-    public static final String MAIL_TEMPLATES = "Mail Templates";
-
-    public static final String REPORT_XSLTS = "Report XSLTs";
-
-    public static final String GROOVY_SCRIPTS = "Groovy Implementations";
-
-    public static final String[] MAIL_TEMPLATE_FORMATS = {
-        MailTemplateFormat.HTML.name(), MailTemplateFormat.TEXT.name() };
-
-    public static final String[] REPORT_TEMPLATE_FORMATS = {
-        ReportTemplateFormat.HTML.name(), ReportTemplateFormat.CSV.name(), ReportTemplateFormat.FO.name() };
-
-    public static final String ROOT_NAME = "Apache Syncope";
-
-    public static final String TOOL_TIP_TEXT = "This is a Apache Syncope window";
-
-    private PluginConstants() {
-    }
-
-}
diff --git a/ide/netbeans/src/main/java/org/apache/syncope/ide/netbeans/ResourceConnector.java b/ide/netbeans/src/main/java/org/apache/syncope/ide/netbeans/ResourceConnector.java
deleted file mode 100644
index fe47dbf..0000000
--- a/ide/netbeans/src/main/java/org/apache/syncope/ide/netbeans/ResourceConnector.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * 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.apache.syncope.ide.netbeans;
-
-import java.io.IOException;
-import java.util.prefs.Preferences;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.syncope.ide.netbeans.service.MailTemplateManagerService;
-import org.apache.syncope.ide.netbeans.service.ReportTemplateManagerService;
-import org.apache.syncope.ide.netbeans.service.ImplementationManagerService;
-import org.apache.syncope.ide.netbeans.service.SyncopeManagerService;
-import org.apache.syncope.ide.netbeans.view.ResourceExplorerTopComponent;
-import org.openide.util.NbPreferences;
-
-public final class ResourceConnector {
-
-    private static SyncopeManagerService SYNCOPE_MANAGER_SERVICE;
-
-    private static MailTemplateManagerService MAIL_TEMPLATE_MANAGER_SERVICE;
-
-    private static ReportTemplateManagerService REPORT_TEMPLATE_MANAGER_SERVICE;
-
-    private static ImplementationManagerService IMPLEMENTATION_MANAGER_SERVICE;
-
-    private static final Object SYNCOPE_MONITOR = new Object();
-
-    private static final Object MAIL_TEMPLATE_MONITOR = new Object();
-
-    private static final Object REPORT_TEMPLATE_MONITOR = new Object();
-
-    private static final Object IMPLEMENTATION_MONITOR = new Object();
-
-    private ResourceConnector() {
-    }
-
-    public static SyncopeManagerService getSyncopeManagerService() {
-        synchronized (SYNCOPE_MONITOR) {
-            ConnectionParams connParams = getConnectionParams();
-            SYNCOPE_MANAGER_SERVICE = new SyncopeManagerService(
-                    connParams.getUrl(),
-                    connParams.getUsername(),
-                    connParams.getPassword());
-        }
-        return SYNCOPE_MANAGER_SERVICE;
-    }
-
-    public static MailTemplateManagerService getMailTemplateManagerService() throws IOException {
-        synchronized (MAIL_TEMPLATE_MONITOR) {
-            ConnectionParams connParams = getConnectionParams();
-            MAIL_TEMPLATE_MANAGER_SERVICE = new MailTemplateManagerService(
-                    connParams.getUrl(),
-                    connParams.getUsername(),
-                    connParams.getPassword());
-        }
-        return MAIL_TEMPLATE_MANAGER_SERVICE;
-    }
-
-    public static ReportTemplateManagerService getReportTemplateManagerService() throws IOException {
-        synchronized (REPORT_TEMPLATE_MONITOR) {
-            ConnectionParams connParams = getConnectionParams();
-            REPORT_TEMPLATE_MANAGER_SERVICE = new ReportTemplateManagerService(
-                    connParams.getUrl(),
-                    connParams.getUsername(),
-                    connParams.getPassword());
-        }
-        return REPORT_TEMPLATE_MANAGER_SERVICE;
-    }
-
-    public static ImplementationManagerService getImplementationManagerService() throws IOException {
-        synchronized (IMPLEMENTATION_MONITOR) {
-            ConnectionParams connParams = getConnectionParams();
-            IMPLEMENTATION_MANAGER_SERVICE = new ImplementationManagerService(
-                    connParams.getUrl(),
-                    connParams.getUsername(),
-                    connParams.getPassword());
-        }
-        return IMPLEMENTATION_MANAGER_SERVICE;
-    }
-
-    public static ConnectionParams getConnectionParams() {
-        Preferences prefs = NbPreferences.forModule(ResourceExplorerTopComponent.class);
-        return ConnectionParams.builder()
-                .scheme(prefs.get("scheme", "http"))
-                .host(prefs.get("host", "localhost"))
-                .port(prefs.get("port", "8080"))
-                .username(prefs.get("username", StringUtils.EMPTY))
-                .password(prefs.get("password", StringUtils.EMPTY))
-                .build();
-    }
-
-}
diff --git a/ide/netbeans/src/main/java/org/apache/syncope/ide/netbeans/service/ImplementationManagerService.java b/ide/netbeans/src/main/java/org/apache/syncope/ide/netbeans/service/ImplementationManagerService.java
deleted file mode 100644
index 96d8517..0000000
--- a/ide/netbeans/src/main/java/org/apache/syncope/ide/netbeans/service/ImplementationManagerService.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * 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.apache.syncope.ide.netbeans.service;
-
-import java.util.List;
-import javax.ws.rs.core.Response;
-import org.apache.syncope.client.lib.SyncopeClient;
-import org.apache.syncope.client.lib.SyncopeClientFactoryBean;
-import org.apache.syncope.common.lib.to.ImplementationTO;
-import org.apache.syncope.common.rest.api.service.ImplementationService;
-
-public class ImplementationManagerService {
-
-    private final ImplementationService service;
-
-    public ImplementationManagerService(final String url, final String userName, final String password) {
-        SyncopeClient syncopeClient = new SyncopeClientFactoryBean().setAddress(url).create(userName, password);
-        service = syncopeClient.getService(ImplementationService.class);
-    }
-
-    public List<ImplementationTO> list(final String type) {
-        return service.list(type);
-    }
-
-    public ImplementationTO read(final String type, final String key) {
-        return service.read(type, key);
-    }
-
-    public boolean create(final ImplementationTO implementationTO) {
-        return Response.Status.CREATED.getStatusCode() == service.create(implementationTO).getStatus();
-    }
-
-    public boolean delete(final String type, final String key) {
-        return Response.Status.NO_CONTENT.getStatusCode() == service.delete(type, key).getStatus();
-    }
-
-    public boolean update(final ImplementationTO implementationTO) {
-        return Response.Status.NO_CONTENT.getStatusCode() == service.update(implementationTO).getStatus();
-    }
-}
diff --git a/ide/netbeans/src/main/java/org/apache/syncope/ide/netbeans/service/MailTemplateManagerService.java b/ide/netbeans/src/main/java/org/apache/syncope/ide/netbeans/service/MailTemplateManagerService.java
deleted file mode 100644
index 41dba18..0000000
--- a/ide/netbeans/src/main/java/org/apache/syncope/ide/netbeans/service/MailTemplateManagerService.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * 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.apache.syncope.ide.netbeans.service;
-
-import java.io.InputStream;
-import java.util.List;
-import javax.ws.rs.core.Response;
-import org.apache.syncope.client.lib.SyncopeClient;
-import org.apache.syncope.client.lib.SyncopeClientFactoryBean;
-import org.apache.syncope.common.lib.to.MailTemplateTO;
-import org.apache.syncope.common.lib.types.MailTemplateFormat;
-import org.apache.syncope.common.rest.api.service.MailTemplateService;
-
-public class MailTemplateManagerService {
-
-    private final MailTemplateService service;
-
-    public MailTemplateManagerService(final String url, final String userName, final String password) {
-        SyncopeClient syncopeClient = new SyncopeClientFactoryBean().setAddress(url).create(userName, password);
-        service = syncopeClient.getService(MailTemplateService.class);
-    }
-
-    public List<MailTemplateTO> list() {
-        return service.list();
-    }
-
-    public boolean create(final MailTemplateTO mailTemplateTO) {
-        return Response.Status.CREATED.getStatusCode() == service.create(mailTemplateTO).getStatus();
-    }
-
-    public MailTemplateTO read(final String key) {
-        return service.read(key);
-    }
-
-    public boolean delete(final String key) {
-        service.delete(key);
-        return true;
-    }
-
-    public Object getFormat(final String key, final MailTemplateFormat format) {
-        return service.getFormat(key, format).getEntity();
-    }
-
-    public void setFormat(final String key, final MailTemplateFormat format, final InputStream templateIn) {
-        service.setFormat(key, format, templateIn);
-    }
-}
diff --git a/ide/netbeans/src/main/java/org/apache/syncope/ide/netbeans/service/ReportTemplateManagerService.java b/ide/netbeans/src/main/java/org/apache/syncope/ide/netbeans/service/ReportTemplateManagerService.java
deleted file mode 100644
index c670e0b..0000000
--- a/ide/netbeans/src/main/java/org/apache/syncope/ide/netbeans/service/ReportTemplateManagerService.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * 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.apache.syncope.ide.netbeans.service;
-
-import java.io.InputStream;
-import java.util.List;
-import javax.ws.rs.core.Response;
-import org.apache.syncope.client.lib.SyncopeClient;
-import org.apache.syncope.client.lib.SyncopeClientFactoryBean;
-import org.apache.syncope.common.lib.to.ReportTemplateTO;
-import org.apache.syncope.common.lib.types.ReportTemplateFormat;
-import org.apache.syncope.common.rest.api.service.ReportTemplateService;
-
-public class ReportTemplateManagerService {
-
-    private final ReportTemplateService service;
-
-    public ReportTemplateManagerService(final String url, final String userName, final String password) {
-        SyncopeClient syncopeClient = new SyncopeClientFactoryBean().setAddress(url).create(userName, password);
-        service = syncopeClient.getService(ReportTemplateService.class);
-    }
-
-    public List<ReportTemplateTO> list() {
-        return service.list();
-    }
-
-    public boolean create(final ReportTemplateTO reportTemplateTO) {
-        return Response.Status.CREATED.getStatusCode() == service.create(reportTemplateTO).getStatus();
-    }
-
-    public ReportTemplateTO read(final String key) {
-        return service.read(key);
-    }
-
-    public boolean delete(final String key) {
-        service.delete(key);
-        return true;
-    }
-
-    public Object getFormat(final String key, final ReportTemplateFormat format) {
-        return service.getFormat(key, format).getEntity();
-    }
-
-    public void setFormat(final String key, final ReportTemplateFormat format, final InputStream templateIn) {
-        service.setFormat(key, format, templateIn);
-    }
-
-    public void removeFormat(final String key, final ReportTemplateFormat format) {
-        service.removeFormat(key, format);
-    }
-}
diff --git a/ide/netbeans/src/main/java/org/apache/syncope/ide/netbeans/service/SyncopeManagerService.java b/ide/netbeans/src/main/java/org/apache/syncope/ide/netbeans/service/SyncopeManagerService.java
deleted file mode 100644
index 659fbb6..0000000
--- a/ide/netbeans/src/main/java/org/apache/syncope/ide/netbeans/service/SyncopeManagerService.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * 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.apache.syncope.ide.netbeans.service;
-
-import java.util.Set;
-import org.apache.syncope.client.lib.SyncopeClient;
-import org.apache.syncope.client.lib.SyncopeClientFactoryBean;
-
-public class SyncopeManagerService {
-
-    private final SyncopeClient syncopeClient;
-
-    public SyncopeManagerService(final String url, final String userName, final String password) {
-        syncopeClient = new SyncopeClientFactoryBean().setAddress(url).create(userName, password);
-    }
-
-    public Set<String> getImplementationTypes() {
-        return syncopeClient.platform().getImplementationTypes();
-    }
-}
diff --git a/ide/netbeans/src/main/java/org/apache/syncope/ide/netbeans/view/ResourceExplorerTopComponent.form b/ide/netbeans/src/main/java/org/apache/syncope/ide/netbeans/view/ResourceExplorerTopComponent.form
deleted file mode 100644
index 78cec38..0000000
--- a/ide/netbeans/src/main/java/org/apache/syncope/ide/netbeans/view/ResourceExplorerTopComponent.form
+++ /dev/null
@@ -1,68 +0,0 @@
-<?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.7" 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">
-          <Component id="jScrollPane1" alignment="0" pref="258" max="32767" attributes="0"/>
-      </Group>
-    </DimensionLayout>
-    <DimensionLayout dim="1">
-      <Group type="103" groupAlignment="0" attributes="0">
-          <Component id="jScrollPane1" alignment="0" pref="445" max="32767" attributes="0"/>
-      </Group>
-    </DimensionLayout>
-  </Layout>
-  <SubComponents>
-    <Container class="javax.swing.JScrollPane" name="jScrollPane1">
-      <AuxValues>
-        <AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/>
-      </AuxValues>
-
-      <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
-      <SubComponents>
-        <Component class="javax.swing.JTree" name="resourceExplorerTree">
-          <Properties>
-            <Property name="model" type="javax.swing.tree.TreeModel" editor="org.netbeans.modules.form.editors2.TreeModelEditor">
-              <TreeModel code=""/>
-            </Property>
-            <Property name="rootVisible" type="boolean" value="false"/>
-          </Properties>
-          <Events>
-            <EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="resourceExplorerTreeMouseClicked"/>
-          </Events>
-        </Component>
-      </SubComponents>
-    </Container>
-  </SubComponents>
-</Form>
diff --git a/ide/netbeans/src/main/java/org/apache/syncope/ide/netbeans/view/ResourceExplorerTopComponent.java b/ide/netbeans/src/main/java/org/apache/syncope/ide/netbeans/view/ResourceExplorerTopComponent.java
deleted file mode 100644
index 75624af..0000000
--- a/ide/netbeans/src/main/java/org/apache/syncope/ide/netbeans/view/ResourceExplorerTopComponent.java
+++ /dev/null
@@ -1,721 +0,0 @@
-/*
- * 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.apache.syncope.ide.netbeans.view;
-
-import java.awt.Image;
-import java.awt.event.ActionEvent;
-import java.awt.event.MouseEvent;
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.InputStream;
-import java.nio.charset.Charset;
-import java.nio.charset.StandardCharsets;
-import java.util.List;
-import java.util.Optional;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-import java.util.prefs.Preferences;
-import javax.swing.ImageIcon;
-import javax.swing.JMenuItem;
-import javax.swing.JOptionPane;
-import javax.swing.JPopupMenu;
-import javax.swing.text.BadLocationException;
-import javax.swing.text.Document;
-import javax.swing.tree.DefaultMutableTreeNode;
-import javax.swing.tree.DefaultTreeModel;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.cxf.helpers.IOUtils;
-import org.apache.syncope.common.lib.SyncopeClientException;
-import org.apache.syncope.common.lib.to.MailTemplateTO;
-import org.apache.syncope.common.lib.to.ReportTemplateTO;
-import org.apache.syncope.common.lib.to.ImplementationTO;
-import org.apache.syncope.common.lib.types.IdMImplementationType;
-import org.apache.syncope.common.lib.types.IdRepoImplementationType;
-import org.apache.syncope.common.lib.types.MailTemplateFormat;
-import org.apache.syncope.common.lib.types.ReportTemplateFormat;
-import org.apache.syncope.common.lib.types.ImplementationEngine;
-import org.apache.syncope.ide.netbeans.PluginConstants;
-import org.apache.syncope.ide.netbeans.ResourceConnector;
-import org.apache.syncope.ide.netbeans.service.MailTemplateManagerService;
-import org.apache.syncope.ide.netbeans.service.ReportTemplateManagerService;
-import org.apache.syncope.ide.netbeans.service.ImplementationManagerService;
-import org.apache.syncope.ide.netbeans.service.SyncopeManagerService;
-import org.netbeans.api.editor.EditorRegistry;
-import org.netbeans.api.progress.ProgressHandle;
-import org.netbeans.api.settings.ConvertAsProperties;
-import org.openide.awt.ActionID;
-import org.openide.awt.ActionReference;
-import org.openide.cookies.OpenCookie;
-import org.openide.filesystems.FileObject;
-import org.openide.filesystems.FileUtil;
-import org.openide.loaders.DataObject;
-import org.openide.util.Exceptions;
-import org.openide.util.NbPreferences;
-import org.openide.util.RequestProcessor;
-import org.openide.windows.TopComponent;
-
-/**
- * Top component which displays something.
- */
-@ConvertAsProperties(
-        dtd = "-//org.apache.syncope.ide.netbeans//ResourceExplorer//EN",
-        autostore = false
-)
-@TopComponent.Description(
-        preferredID = "ResourceExplorerTopComponent",
-        iconBase = "images/syncope.png",
-        persistenceType = TopComponent.PERSISTENCE_ALWAYS
-)
-@TopComponent.Registration(mode = "explorer", openAtStartup = false)
-@ActionID(category = "Window", id = "org.apache.syncope.ide.netbeans.ResourceExplorerTopComponent")
-@ActionReference(path = "Menu/Window")
-@TopComponent.OpenActionRegistration(
-        displayName = "Apache Syncope",
-        preferredID = "ResourceExplorerTopComponent"
-)
-public final class ResourceExplorerTopComponent extends TopComponent {
-
-    private static final long serialVersionUID = -1643737786852621861L;
-
-    private static final Logger LOG = Logger.getLogger(ResourceExplorerTopComponent.class.getSimpleName());
-
-    private static final RequestProcessor REQUEST_PROCESSOR = new RequestProcessor(ResourceExplorerTopComponent.class);
-
-    private final DefaultTreeModel treeModel;
-
-    private final DefaultMutableTreeNode visibleRoot;
-
-    private final DefaultMutableTreeNode root;
-
-    private final DefaultMutableTreeNode mailTemplates;
-
-    private final DefaultMutableTreeNode reportXslts;
-
-    private final DefaultMutableTreeNode groovyScripts;
-
-    private SyncopeManagerService syncopeManagerService;
-
-    private MailTemplateManagerService mailTemplateManagerService;
-
-    private ReportTemplateManagerService reportTemplateManagerService;
-
-    private ImplementationManagerService implementationManagerService;
-
-    private Charset encodingPattern;
-
-    public ResourceExplorerTopComponent() {
-
-        initComponents();
-        setName(PluginConstants.ROOT_NAME);
-        setToolTipText(PluginConstants.TOOL_TIP_TEXT);
-
-        treeModel = (DefaultTreeModel) resourceExplorerTree.getModel();
-        root = (DefaultMutableTreeNode) treeModel.getRoot();
-        visibleRoot = new DefaultMutableTreeNode(PluginConstants.ROOT_NAME);
-        mailTemplates = new DefaultMutableTreeNode(PluginConstants.MAIL_TEMPLATES);
-        reportXslts = new DefaultMutableTreeNode(PluginConstants.REPORT_XSLTS);
-        groovyScripts = new DefaultMutableTreeNode(PluginConstants.GROOVY_SCRIPTS);
-        root.add(visibleRoot);
-        initTemplatesTree();
-    }
-
-    /**
-     * 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.
-     */
-    //CHECKSTYLE:OFF
-    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
-    private void initComponents() {
-
-        jScrollPane1 = new javax.swing.JScrollPane();
-        resourceExplorerTree = new javax.swing.JTree();
-
-        javax.swing.tree.DefaultMutableTreeNode treeNode1 = new javax.swing.tree.DefaultMutableTreeNode("root");
-        resourceExplorerTree.setModel(new javax.swing.tree.DefaultTreeModel(treeNode1));
-        resourceExplorerTree.setRootVisible(false);
-        resourceExplorerTree.setScrollsOnExpand(true);
-        resourceExplorerTree.addMouseListener(new java.awt.event.MouseAdapter() {
-            public void mouseClicked(java.awt.event.MouseEvent evt) {
-                resourceExplorerTreeMouseClicked(evt);
-            }
-        });
-        jScrollPane1.setViewportView(resourceExplorerTree);
-
-        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
-        this.setLayout(layout);
-        layout.setHorizontalGroup(
-            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-            .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 258, Short.MAX_VALUE)
-        );
-        layout.setVerticalGroup(
-            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-            .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 445, Short.MAX_VALUE)
-        );
-    }// </editor-fold>//GEN-END:initComponents
-    //CHECKSTYLE:ON
-
-    @Override
-    public Image getIcon() {
-        return new ImageIcon(ResourceExplorerTopComponent.class.getResource(
-                "/org/apache/syncope/ide/netbeans/view/favicon.png")).getImage();
-    }
-
-    private void resourceExplorerTreeMouseClicked(final java.awt.event.MouseEvent evt) {
-        if (evt.getButton() == MouseEvent.BUTTON1 && evt.getClickCount() == 2) {
-            DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode) resourceExplorerTree.
-                    getLastSelectedPathComponent();
-            DefaultMutableTreeNode parentNode = (DefaultMutableTreeNode) selectedNode.getParent();
-            String parentNodeName = Optional.ofNullable(parentNode)
-                    .map(node -> String.valueOf(node.getUserObject())).orElse(null);
-            if (selectedNode.isLeaf() && StringUtils.isNotBlank(parentNodeName)) {
-                String leafNodeName = (String) selectedNode.getUserObject();
-                DefaultMutableTreeNode grandParentNode = (DefaultMutableTreeNode) parentNode.getParent();
-                String grandParentNodeName = (String) grandParentNode.getUserObject();
-                try {
-                    if (PluginConstants.MAIL_TEMPLATES.equals(parentNodeName)) {
-                        openMailEditor(leafNodeName);
-                    } else if (PluginConstants.REPORT_XSLTS.equals(parentNodeName)) {
-                        openReportEditor(leafNodeName);
-                    } else if (PluginConstants.GROOVY_SCRIPTS.equals(grandParentNodeName)) {
-                        openScriptEditor(leafNodeName, parentNodeName);
-                    }
-                } catch (SyncopeClientException ex) {
-                    JOptionPane.showMessageDialog(null, ex.getMessage(), "Syncope Error", JOptionPane.ERROR_MESSAGE);
-                } catch (IOException ex) {
-                    JOptionPane.showMessageDialog(null, ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
-                } catch (Exception ex) {
-                    LOG.log(Level.WARNING, "While navigating explorer tree {0}", ex);
-                    getRefreshServerDetails().setVisible(true);
-                }
-            }
-        } else if (evt.getButton() == MouseEvent.BUTTON3 && evt.getClickCount() == 1) {
-            DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode) resourceExplorerTree.
-                    getLastSelectedPathComponent();
-
-            if (selectedNode != null) {
-                DefaultMutableTreeNode parent = (DefaultMutableTreeNode) selectedNode.getParent();
-                String parentNodeName = (String) parent.getUserObject();
-                String selectedNodeName = (String) selectedNode.getUserObject();
-                if (selectedNode.isLeaf()
-                        && !PluginConstants.ROOT_NAME.equals(selectedNodeName)
-                        && !PluginConstants.MAIL_TEMPLATES.equals(selectedNodeName)
-                        && !PluginConstants.REPORT_XSLTS.equals(selectedNodeName)
-                        && !PluginConstants.GROOVY_SCRIPTS.equals(parentNodeName)) {
-                    leafRightClickAction(evt, selectedNode);
-                } else if (PluginConstants.MAIL_TEMPLATES.equals(selectedNodeName)) {
-                    folderRightClickAction(evt, mailTemplates);
-                } else if (PluginConstants.REPORT_XSLTS.equals(selectedNodeName)) {
-                    folderRightClickAction(evt, reportXslts);
-                } else if (PluginConstants.GROOVY_SCRIPTS.equals(parentNodeName)) {
-                    folderRightClickAction(evt, selectedNode);
-                } else if (PluginConstants.ROOT_NAME.equals(selectedNodeName)) {
-                    rootRightClickAction(evt);
-                }
-            }
-        }
-    }
-
-    // Variables declaration - do not modify//GEN-BEGIN:variables
-    private javax.swing.JScrollPane jScrollPane1;
-    private javax.swing.JTree resourceExplorerTree;
-    // End of variables declaration//GEN-END:variables
-
-    @Override
-    public void componentOpened() {
-        // look for connection preferences
-        Preferences prefs = NbPreferences.forModule(ResourceExplorerTopComponent.class);
-        if (StringUtils.isBlank(prefs.get("scheme", null))
-                || StringUtils.isBlank(prefs.get("host", null))
-                || StringUtils.isBlank(prefs.get("port", null))
-                || StringUtils.isBlank(prefs.get("username", null))
-                || StringUtils.isBlank(prefs.get("password", null))) {
-
-            new ServerDetailsView(null, true).setVisible(true);
-        }
-        try {
-            syncopeManagerService = ResourceConnector.getSyncopeManagerService();
-            mailTemplateManagerService = ResourceConnector.getMailTemplateManagerService();
-            reportTemplateManagerService = ResourceConnector.getReportTemplateManagerService();
-            implementationManagerService = ResourceConnector.getImplementationManagerService();
-            // init tree, because on close it is reset
-            initTemplatesTree();
-            // Load templates
-            LOG.info("Loading Apache Syncope templates...");
-            Runnable tsk = () -> {
-                final ProgressHandle progr = ProgressHandle.createHandle("Loading Templates", () -> true);
-
-                progr.start();
-                progr.progress("Loading Templates.");
-                addMailTemplates();
-                addReportXslts();
-                addGroovyScripts();
-                progr.finish();
-            };
-            REQUEST_PROCESSOR.post(tsk);
-        } catch (IOException e) {
-            JOptionPane.showMessageDialog(null, e.getMessage(), "Generic Error", JOptionPane.ERROR_MESSAGE);
-            getRefreshServerDetails();
-        } catch (Exception ex) {
-            getRefreshServerDetails().setVisible(true);
-        }
-    }
-
-    @Override
-    public void componentClosed() {
-        // TODO add custom code on component
-        resetTree();
-    }
-
-    static void writeProperties(final java.util.Properties p) {
-        // better to version settings since initial version as advocated at
-        // http://wiki.apidesign.org/wiki/PropertyFiles
-        p.setProperty("version", "1.0");
-        // TODO store your settings
-    }
-
-    static void readProperties(final java.util.Properties p) {
-        // TODO read your settings according to their version
-        // String version = p.getProperty("version");
-    }
-
-    private void addMailTemplates() {
-        List<MailTemplateTO> mailTemplateList = mailTemplateManagerService.list();
-        mailTemplateList
-                .forEach(mailTemplate -> this.mailTemplates.add(new DefaultMutableTreeNode(mailTemplate.getKey())));
-        treeModel.reload();
-    }
-
-    private void addReportXslts() {
-        List<ReportTemplateTO> reportTemplates = reportTemplateManagerService.list();
-        reportTemplates.forEach(reportTemplate -> reportXslts.add(new DefaultMutableTreeNode(reportTemplate.getKey())));
-        treeModel.reload();
-    }
-
-    private void addGroovyScripts() {
-        syncopeManagerService.getImplementationTypes().stream().
-                filter(type -> !IdRepoImplementationType.JWT_SSO_PROVIDER.equals(type)
-                && !IdRepoImplementationType.AUDIT_APPENDER.equals(type)).
-                forEach(type -> {
-
-                    DefaultMutableTreeNode tempNode = new DefaultMutableTreeNode(type);
-                    List<ImplementationTO> scripts = implementationManagerService.list(type);
-                    scripts.stream().
-                            filter((script) -> (script.getEngine() == ImplementationEngine.GROOVY)).
-                            forEach(script -> tempNode.add(new DefaultMutableTreeNode(script.getKey())));
-                    groovyScripts.add(tempNode);
-                });
-
-        treeModel.reload();
-    }
-
-    private void rootRightClickAction(final MouseEvent evt) {
-        JPopupMenu menu = new JPopupMenu();
-        JMenuItem refreshItem = new JMenuItem("Refresh Templates");
-        JMenuItem resetConnectionItem = new JMenuItem("Reset Connection");
-        menu.add(refreshItem);
-        menu.add(resetConnectionItem);
-
-        refreshItem.addActionListener(event -> {
-            // simulate close and open to refresh the tree
-            componentClosed();
-            componentOpened();
-        });
-
-        resetConnectionItem.addActionListener(event -> {
-            ServerDetailsView serverDetails = getRefreshServerDetails();
-            // set previous preferences
-            Preferences prefs = NbPreferences.forModule(ResourceExplorerTopComponent.class);
-            serverDetails.setDetails(prefs.get("scheme", "http"),
-                    prefs.get("host", "localhost"),
-                    prefs.get("port", "8080"),
-                    prefs.get("username", StringUtils.EMPTY),
-                    prefs.get("password", StringUtils.EMPTY));
-            // reset connection preferences
-            prefs.remove("scheme");
-            prefs.remove("host");
-            prefs.remove("port");
-            prefs.remove("username");
-            prefs.remove("password");
-            serverDetails.setVisible(true);
-        });
-
-        menu.show(evt.getComponent(), evt.getX(), evt.getY());
-    }
-
-    private void folderRightClickAction(final MouseEvent evt, final DefaultMutableTreeNode node) {
-        JPopupMenu menu = new JPopupMenu();
-        JMenuItem addItem = new JMenuItem("New");
-        menu.add(addItem);
-
-        addItem.addActionListener(event -> {
-            try {
-                String name1 = JOptionPane.showInputDialog("Enter Name");
-                if (StringUtils.isBlank(name1)) {
-                    return;
-                }
-                DefaultMutableTreeNode parent1 = (DefaultMutableTreeNode) node.getParent();
-                if (!"exit".equals(event.getActionCommand())) {
-                    boolean added;
-                    if (PluginConstants.MAIL_TEMPLATES.equals(node.getUserObject())) {
-                        MailTemplateTO mailTemplate = new MailTemplateTO();
-                        mailTemplate.setKey(name1);
-                        added = mailTemplateManagerService.create(mailTemplate);
-                        mailTemplateManagerService.setFormat(name1, MailTemplateFormat.HTML,
-                                new ByteArrayInputStream("//Enter content here".getBytes(encodingPattern)));
-                        mailTemplateManagerService.setFormat(name1, MailTemplateFormat.TEXT,
-                                new ByteArrayInputStream("//Enter content here".getBytes(encodingPattern)));
-                        openMailEditor(name1);
-                    } else if (PluginConstants.GROOVY_SCRIPTS.equals(parent1.getUserObject())) {
-                        ImplementationTO newNode = new ImplementationTO();
-                        String type = (String) node.getUserObject();
-                        newNode.setKey(name1);
-                        newNode.setEngine(ImplementationEngine.GROOVY);
-                        newNode.setType(type);
-                        String templateClassName = null;
-                        switch (type) {
-                            case IdRepoImplementationType.REPORTLET:
-                                templateClassName = "MyReportlet";
-                                break;
-
-                            case IdRepoImplementationType.ACCOUNT_RULE:
-                                templateClassName = "MyAccountRule";
-                                break;
-
-                            case IdRepoImplementationType.PASSWORD_RULE:
-                                templateClassName = "MyPasswordRule";
-                                break;
-
-                            case IdRepoImplementationType.ITEM_TRANSFORMER:
-                                templateClassName = "MyItemTransformer";
-                                break;
-
-                            case IdRepoImplementationType.TASKJOB_DELEGATE:
-                                templateClassName = "MySchedTaskJobDelegate";
-                                break;
-
-                            case IdMImplementationType.RECON_FILTER_BUILDER:
-                                templateClassName = "MyReconFilterBuilder";
-                                break;
-
-                            case IdRepoImplementationType.LOGIC_ACTIONS:
-                                templateClassName = "MyLogicActions";
-                                break;
-
-                            case IdMImplementationType.PROPAGATION_ACTIONS:
-                                templateClassName = "MyPropagationActions";
-                                break;
-
-                            case IdMImplementationType.PULL_ACTIONS:
-                                templateClassName = "MyPullActions";
-                                break;
-
-                            case IdMImplementationType.PUSH_ACTIONS:
-                                templateClassName = "MyPushActions";
-                                break;
-
-                            case IdMImplementationType.PULL_CORRELATION_RULE:
-                                templateClassName = "MyPullCorrelationRule";
-                                break;
-
-                            case IdMImplementationType.PUSH_CORRELATION_RULE:
-                                templateClassName = "MyPushCorrelationRule";
-                                break;
-
-                            case IdRepoImplementationType.VALIDATOR:
-                                templateClassName = "MyValidator";
-                                break;
-
-                            case IdRepoImplementationType.RECIPIENTS_PROVIDER:
-                                templateClassName = "MyRecipientsProvider";
-                                break;
-
-                            case IdMImplementationType.PROVISION_SORTER:
-                                templateClassName = "MyProvisionSorter";
-                                break;
-
-                            default:
-                        }
-                        newNode.setBody(IOUtils.toString(ResourceExplorerTopComponent.class.getResourceAsStream(
-                                "/org/apache/syncope/ide/netbeans/implementations/" + templateClassName + ".groovy"),
-                                StandardCharsets.UTF_8.name()));
-                        added = implementationManagerService.create(newNode);
-                        openScriptEditor(name1, (String) node.getUserObject());
-                    } else {
-                        ReportTemplateTO reportTemplate = new ReportTemplateTO();
-                        reportTemplate.setKey(name1);
-                        added = reportTemplateManagerService.create(reportTemplate);
-                        reportTemplateManagerService.setFormat(name1, ReportTemplateFormat.FO,
-                                new ByteArrayInputStream("//Enter content here".getBytes(encodingPattern)));
-                        reportTemplateManagerService.setFormat(name1, ReportTemplateFormat.CSV,
-                                new ByteArrayInputStream("//Enter content here".getBytes(encodingPattern)));
-                        reportTemplateManagerService.setFormat(name1, ReportTemplateFormat.HTML,
-                                new ByteArrayInputStream("//Enter content here".getBytes(encodingPattern)));
-                        openReportEditor(name1);
-                    }
-                    if (added) {
-                        node.add(new DefaultMutableTreeNode(name1));
-                        treeModel.reload(node);
-                    } else {
-                        JOptionPane.showMessageDialog(
-                                null, "Error while creating new element", "Error", JOptionPane.ERROR_MESSAGE);
-                    }
-                }
-            } catch (SyncopeClientException sce) {
-                JOptionPane.showMessageDialog(null, sce.getMessage(), "Syncope Error", JOptionPane.ERROR_MESSAGE);
-            } catch (IOException ioe) {
-                JOptionPane.showMessageDialog(null, ioe.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
-            } catch (Exception e) {
-                LOG.log(Level.WARNING, "Refreshing after exception", e);
-                getRefreshServerDetails().setVisible(true);
-            }
-        });
-
-        menu.show(evt.getComponent(), evt.getX(), evt.getY());
-    }
-
-    private void leafRightClickAction(final MouseEvent evt,
-            final DefaultMutableTreeNode node) {
-        JPopupMenu menu = new JPopupMenu();
-        JMenuItem deleteItem = new JMenuItem("Delete");
-        menu.add(deleteItem);
-
-        deleteItem.addActionListener(event -> {
-            int result = JOptionPane.showConfirmDialog(null, "Are you sure to delete the item?");
-            if (result == JOptionPane.OK_OPTION) {
-                DefaultMutableTreeNode parent1 = (DefaultMutableTreeNode) node.getParent();
-                String nodeName1 = (String) node.getUserObject();
-                try {
-                    boolean deleted;
-                    if (PluginConstants.MAIL_TEMPLATES.equals(parent1.getUserObject())) {
-                        deleted = mailTemplateManagerService.delete(nodeName1);
-                    } else if (PluginConstants.REPORT_XSLTS.equals(parent1.getUserObject())) {
-                        deleted = reportTemplateManagerService.delete(nodeName1);
-                    } else {
-                        String type = (String) parent1.getUserObject();
-                        deleted = implementationManagerService.delete(type, nodeName1);
-                    }
-                    if (deleted) {
-                        node.removeFromParent();
-                        treeModel.reload(parent1);
-                    } else {
-                        JOptionPane.showMessageDialog(
-                                null, "Error while deleting new element", "Error", JOptionPane.ERROR_MESSAGE);
-                    }
-                } catch (SyncopeClientException exc) {
-                    JOptionPane.showMessageDialog(
-                            null, exc.getMessage(), "Syncope Error", JOptionPane.ERROR_MESSAGE);
-                } catch (Exception ex) {
-                    getRefreshServerDetails().setVisible(true);
-                }
-            }
-        });
-
-        menu.show(evt.getComponent(), evt.getX(), evt.getY());
-    }
-
-    private void openMailEditor(final String name) throws IOException {
-        String formatStr = (String) JOptionPane.showInputDialog(null, "Select File Format",
-                "File format", JOptionPane.QUESTION_MESSAGE, null,
-                PluginConstants.MAIL_TEMPLATE_FORMATS, MailTemplateFormat.TEXT.name());
-
-        if (StringUtils.isNotBlank(formatStr)) {
-            MailTemplateFormat format = MailTemplateFormat.valueOf(formatStr);
-            String type = null;
-            InputStream is = null;
-
-            switch (format) {
-                case HTML:
-                    type = "html";
-                    is = (InputStream) mailTemplateManagerService.getFormat(name, MailTemplateFormat.HTML);
-                    break;
-                case TEXT:
-                    type = "txt";
-                    is = (InputStream) mailTemplateManagerService.getFormat(name, MailTemplateFormat.TEXT);
-                    break;
-                default:
-                    LOG.log(Level.SEVERE, String.format("Format [%s] not supported", format));
-                    break;
-            }
-            String content = is == null ? StringUtils.EMPTY : IOUtils.toString(is, encodingPattern.name());
-
-            String mailTemplatesDirName = System.getProperty("java.io.tmpdir") + "/Templates/Mail/";
-            File mailTemplatesDir = new File(mailTemplatesDirName);
-            if (!mailTemplatesDir.exists()) {
-                mailTemplatesDir.mkdirs();
-            }
-            File file = new File(mailTemplatesDirName + name + '.' + type);
-            try (FileWriter fw = new FileWriter(file, StandardCharsets.UTF_8)) {
-                fw.write(content);
-                fw.flush();
-            }
-            FileObject fob = FileUtil.toFileObject(file.getAbsoluteFile());
-            fob.setAttribute("description", "TEXT");
-            DataObject data = DataObject.find(fob);
-            data.getLookup().lookup(OpenCookie.class).open();
-            data.addPropertyChangeListener(event -> {
-                if (DataObject.PROP_MODIFIED.equals(event.getPropertyName())) {
-                    //save item remotely
-                    LOG.info(String.format("Saving Mail template [%s]", name));
-                    saveContent();
-                }
-            });
-        }
-    }
-
-    private void openScriptEditor(final String name, final String type) throws IOException {
-        ImplementationTO node = implementationManagerService.read(type, name);
-        String groovyScriptsDirName = System.getProperty("java.io.tmpdir") + "/Groovy/" + node.getType() + '/';
-        File groovyScriptsDir = new File(groovyScriptsDirName);
-        if (!groovyScriptsDir.exists()) {
-            groovyScriptsDir.mkdirs();
-        }
-        File file = new File(groovyScriptsDirName + name + ".groovy");
-        try (FileWriter fw = new FileWriter(file, StandardCharsets.UTF_8)) {
-            fw.write(node.getBody());
-            fw.flush();
-        }
-        FileObject fob = FileUtil.toFileObject(file.getAbsoluteFile());
-        DataObject data = DataObject.find(fob);
-        data.getLookup().lookup(OpenCookie.class).open();
-        data.addPropertyChangeListener(event -> {
-            if (DataObject.PROP_MODIFIED.equals(event.getPropertyName())) {
-                //save item remotely
-                LOG.info(String.format("Saving Groovy template [%s]", name));
-                saveContent();
-            }
-        });
-    }
-
-    private void openReportEditor(final String name) throws IOException {
-        String formatStr = (String) JOptionPane.showInputDialog(null, "Select File Format",
-                "File format", JOptionPane.QUESTION_MESSAGE, null,
-                PluginConstants.REPORT_TEMPLATE_FORMATS, ReportTemplateFormat.FO.name());
-
-        if (StringUtils.isNotBlank(formatStr)) {
-            ReportTemplateFormat format = ReportTemplateFormat.valueOf(formatStr);
-            InputStream is = null;
-            switch (format) {
-                case HTML:
-                    is = (InputStream) reportTemplateManagerService.getFormat(name, ReportTemplateFormat.HTML);
-                    break;
-                case CSV:
-                    is = (InputStream) reportTemplateManagerService.getFormat(name, ReportTemplateFormat.CSV);
-                    break;
-                case FO:
-                    is = (InputStream) reportTemplateManagerService.getFormat(name, ReportTemplateFormat.FO);
-                    break;
-                default:
-                    LOG.log(Level.SEVERE, String.format("Format [%s] not supported", format));
-                    break;
-            }
-            String content = is == null ? StringUtils.EMPTY : IOUtils.toString(is, encodingPattern.name());
-
-            String reportTemplatesDirName = System.getProperty("java.io.tmpdir") + "/Templates/Report/";
-            File reportTemplatesDir = new File(reportTemplatesDirName);
-            if (!reportTemplatesDir.exists()) {
-                reportTemplatesDir.mkdirs();
-            }
-            File file = new File(reportTemplatesDirName + name + '.' + format.name().toLowerCase());
-            try (FileWriter fw = new FileWriter(file, StandardCharsets.UTF_8)) {
-                fw.write(content);
-                fw.flush();
-            }
-            FileObject fob = FileUtil.toFileObject(file.getAbsoluteFile());
-            DataObject data = DataObject.find(fob);
-            data.getLookup().lookup(OpenCookie.class).open();
-            data.addPropertyChangeListener(event -> {
-                if (DataObject.PROP_MODIFIED.equals(event.getPropertyName())) {
-                    //save item remotely
-                    LOG.info(String.format("Saving Report template [%s]", name));
-                    saveContent();
-                }
-            });
-        }
-    }
-
-    private void saveContent() {
-        try {
-            Document document = EditorRegistry.lastFocusedComponent().getDocument();
-            String textContent = document.getText(0, document.getLength());
-            InputStream isContent = new ByteArrayInputStream(textContent.getBytes(encodingPattern));
-            String path = (String) document.getProperty(Document.TitleProperty);
-            String[] temp = path.split(File.separator.replace("\\", "\\\\"));
-            String name = temp[temp.length - 1];
-            String fileName = temp[temp.length - 3];
-            String templateType = temp[temp.length - 2];
-            temp = name.split("\\.");
-            String format = temp[1];
-            String key = temp[0];
-
-            if ("Mail".equals(templateType)) {
-                if ("txt".equals(format)) {
-                    mailTemplateManagerService.setFormat(key, MailTemplateFormat.TEXT, isContent);
-                } else {
-                    mailTemplateManagerService.setFormat(key, MailTemplateFormat.HTML, isContent);
-                }
-            } else if ("html".equals(format)) {
-                reportTemplateManagerService.setFormat(key, ReportTemplateFormat.HTML, isContent);
-            } else if ("fo".equals(format)) {
-                reportTemplateManagerService.setFormat(key, ReportTemplateFormat.FO, isContent);
-            } else if ("csv".equals(format)) {
-                reportTemplateManagerService.setFormat(key, ReportTemplateFormat.CSV, isContent);
-            } else if ("Groovy".equals(fileName)) {
-                ImplementationTO node = implementationManagerService.read(templateType, key);
-                node.setBody(textContent);
-                implementationManagerService.update(node);
-            }
-        } catch (BadLocationException e) {
-            Exceptions.printStackTrace(e);
-        } catch (Exception e) {
-            getRefreshServerDetails().setVisible(true);
-        }
-    }
-
-    private void initTemplatesTree() {
-        visibleRoot.add(mailTemplates);
-        visibleRoot.add(reportXslts);
-        visibleRoot.add(groovyScripts);
-        treeModel.reload();
-    }
-
-    private void resetTree() {
-        visibleRoot.removeAllChildren();
-        mailTemplates.removeAllChildren();
-        reportXslts.removeAllChildren();
-        groovyScripts.removeAllChildren();
-        treeModel.reload();
-    }
-
-    private ServerDetailsView getRefreshServerDetails() {
-        return new ServerDetailsView(null, true) {
-
-            private static final long serialVersionUID = 3926689175745815987L;
-
-            @Override
-            protected void okButtonActionPerformed(final ActionEvent evt) {
-                super.okButtonActionPerformed(evt);
-                // simulate close and open to refresh the tree
-                componentClosed();
-                componentOpened();
-            }
-        };
-    }
-}
diff --git a/ide/netbeans/src/main/java/org/apache/syncope/ide/netbeans/view/ServerDetailsView.form b/ide/netbeans/src/main/java/org/apache/syncope/ide/netbeans/view/ServerDetailsView.form
deleted file mode 100644
index b9f8dc2..0000000
--- a/ide/netbeans/src/main/java/org/apache/syncope/ide/netbeans/view/ServerDetailsView.form
+++ /dev/null
@@ -1,182 +0,0 @@
-<?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.JDialogFormInfo">
-  <Properties>
-    <Property name="defaultCloseOperation" type="int" value="2"/>
-  </Properties>
-  <SyntheticProperties>
-    <SyntheticProperty name="formSizePolicy" type="int" value="1"/>
-    <SyntheticProperty name="generateCenter" type="boolean" value="false"/>
-  </SyntheticProperties>
-  <AuxValues>
-    <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
-    <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="false"/>
-    <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 min="-2" pref="41" max="-2" attributes="0"/>
-              <Group type="103" groupAlignment="0" attributes="0">
-                  <Component id="jLabel4" alignment="0" min="-2" pref="256" max="-2" attributes="0"/>
-                  <Group type="103" groupAlignment="1" attributes="0">
-                      <Component id="okButton" min="-2" pref="74" max="-2" attributes="0"/>
-                      <Group type="102" alignment="1" attributes="0">
-                          <Group type="103" groupAlignment="0" attributes="0">
-                              <Component id="jLabel1" alignment="0" min="-2" max="-2" attributes="0"/>
-                              <Component id="jLabel2" alignment="0" min="-2" max="-2" attributes="0"/>
-                              <Component id="jLabel3" alignment="0" min="-2" max="-2" attributes="0"/>
-                              <Component id="jLabel5" min="-2" max="-2" attributes="0"/>
-                              <Component id="jLabel6" min="-2" max="-2" attributes="0"/>
-                          </Group>
-                          <EmptySpace min="-2" pref="39" max="-2" attributes="0"/>
-                          <Group type="103" groupAlignment="0" max="-2" attributes="0">
-                              <Component id="portTxt" max="32767" attributes="0"/>
-                              <Component id="hostTxt" max="32767" attributes="0"/>
-                              <Component id="userNameTxt" max="32767" attributes="0"/>
-                              <Component id="schemeTxt" max="32767" attributes="0"/>
-                              <Component id="passwordTxt" alignment="0" pref="155" max="32767" attributes="0"/>
-                          </Group>
-                      </Group>
-                  </Group>
-              </Group>
-              <EmptySpace pref="40" max="32767" attributes="0"/>
-          </Group>
-      </Group>
-    </DimensionLayout>
-    <DimensionLayout dim="1">
-      <Group type="103" groupAlignment="0" attributes="0">
-          <Group type="102" alignment="1" attributes="0">
-              <EmptySpace max="32767" attributes="0"/>
-              <Component id="jLabel4" min="-2" pref="65" max="-2" attributes="0"/>
-              <EmptySpace type="separate" max="-2" attributes="0"/>
-              <Group type="103" groupAlignment="3" attributes="0">
-                  <Component id="jLabel1" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="schemeTxt" alignment="3" min="-2" max="-2" attributes="0"/>
-              </Group>
-              <EmptySpace max="-2" attributes="0"/>
-              <Group type="103" groupAlignment="3" attributes="0">
-                  <Component id="hostTxt" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="jLabel6" alignment="3" min="-2" max="-2" attributes="0"/>
-              </Group>
-              <EmptySpace max="-2" attributes="0"/>
-              <Group type="103" groupAlignment="3" attributes="0">
-                  <Component id="portTxt" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="jLabel5" alignment="3" min="-2" max="-2" attributes="0"/>
-              </Group>
-              <EmptySpace max="-2" attributes="0"/>
-              <Group type="103" groupAlignment="3" attributes="0">
-                  <Component id="userNameTxt" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="jLabel2" alignment="3" min="-2" max="-2" attributes="0"/>
-              </Group>
-              <EmptySpace max="-2" attributes="0"/>
-              <Group type="103" groupAlignment="3" attributes="0">
-                  <Component id="jLabel3" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="passwordTxt" alignment="3" min="-2" max="-2" attributes="0"/>
-              </Group>
-              <EmptySpace max="-2" attributes="0"/>
-              <Component id="okButton" min="-2" max="-2" attributes="0"/>
-              <EmptySpace max="-2" attributes="0"/>
-          </Group>
-      </Group>
-    </DimensionLayout>
-  </Layout>
-  <SubComponents>
-    <Component class="javax.swing.JLabel" name="jLabel1">
-      <Properties>
-        <Property name="labelFor" type="java.awt.Component" editor="org.netbeans.modules.form.ComponentChooserEditor">
-          <ComponentRef name="schemeTxt"/>
-        </Property>
-        <Property name="text" type="java.lang.String" value="Scheme"/>
-        <Property name="toolTipText" type="java.lang.String" value=""/>
-      </Properties>
-    </Component>
-    <Component class="javax.swing.JLabel" name="jLabel2">
-      <Properties>
-        <Property name="text" type="java.lang.String" value="Username"/>
-      </Properties>
-    </Component>
-    <Component class="javax.swing.JLabel" name="jLabel3">
-      <Properties>
-        <Property name="text" type="java.lang.String" value="Password"/>
-        <Property name="toolTipText" type="java.lang.String" value=""/>
-      </Properties>
-    </Component>
-    <Component class="javax.swing.JTextField" name="schemeTxt">
-      <Properties>
-        <Property name="toolTipText" type="java.lang.String" value=""/>
-      </Properties>
-    </Component>
-    <Component class="javax.swing.JTextField" name="userNameTxt">
-    </Component>
-    <Component class="javax.swing.JPasswordField" name="passwordTxt">
-    </Component>
-    <Component class="javax.swing.JButton" name="okButton">
-      <Properties>
-        <Property name="text" type="java.lang.String" value="submit"/>
-      </Properties>
-      <Events>
-        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="okButtonActionPerformed"/>
-      </Events>
-    </Component>
-    <Component class="javax.swing.JLabel" name="jLabel4">
-      <Properties>
-        <Property name="horizontalAlignment" type="int" value="0"/>
-        <Property name="text" type="java.lang.String" value="Apache Syncope connection"/>
-        <Property name="toolTipText" type="java.lang.String" value=""/>
-      </Properties>
-    </Component>
-    <Component class="javax.swing.JTextField" name="hostTxt">
-      <Properties>
-        <Property name="toolTipText" type="java.lang.String" value=""/>
-      </Properties>
-    </Component>
-    <Component class="javax.swing.JLabel" name="jLabel5">
-      <Properties>
-        <Property name="labelFor" type="java.awt.Component" editor="org.netbeans.modules.form.ComponentChooserEditor">
-          <ComponentRef name="portTxt"/>
-        </Property>
-        <Property name="text" type="java.lang.String" value="Port"/>
-        <Property name="toolTipText" type="java.lang.String" value=""/>
-      </Properties>
-    </Component>
-    <Component class="javax.swing.JTextField" name="portTxt">
-    </Component>
-    <Component class="javax.swing.JLabel" name="jLabel6">
-      <Properties>
-        <Property name="labelFor" type="java.awt.Component" editor="org.netbeans.modules.form.ComponentChooserEditor">
-          <ComponentRef name="hostTxt"/>
-        </Property>
-        <Property name="text" type="java.lang.String" value="Host"/>
-        <Property name="toolTipText" type="java.lang.String" value=""/>
-      </Properties>
-    </Component>
-  </SubComponents>
-</Form>
diff --git a/ide/netbeans/src/main/java/org/apache/syncope/ide/netbeans/view/ServerDetailsView.java b/ide/netbeans/src/main/java/org/apache/syncope/ide/netbeans/view/ServerDetailsView.java
deleted file mode 100644
index 00d9bb9..0000000
--- a/ide/netbeans/src/main/java/org/apache/syncope/ide/netbeans/view/ServerDetailsView.java
+++ /dev/null
@@ -1,265 +0,0 @@
-/*
- * 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.apache.syncope.ide.netbeans.view;
-
-import java.awt.EventQueue;
-import java.awt.event.WindowAdapter;
-import java.awt.event.WindowEvent;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.logging.Logger;
-import java.util.prefs.Preferences;
-import javax.swing.GroupLayout;
-import javax.swing.JButton;
-import javax.swing.JDialog;
-import javax.swing.JFrame;
-import javax.swing.JLabel;
-import javax.swing.JOptionPane;
-import javax.swing.JPasswordField;
-import javax.swing.JTextField;
-import javax.swing.LayoutStyle;
-import javax.swing.SwingConstants;
-import javax.swing.WindowConstants;
-import org.apache.commons.lang3.StringUtils;
-import org.openide.util.NbPreferences;
-
-public class ServerDetailsView extends JDialog {
-
-    private static final long serialVersionUID = -8693554903195406915L;
-
-    public static final Logger LOG = Logger.getLogger("ServerDetailsView");
-
-    /**
-     * Creates new form LoginView
-     *
-     * @param parent Parent Frame
-     * @param modal Whether it is modal or not
-     */
-    public ServerDetailsView(final java.awt.Frame parent, final boolean modal) {
-        super(parent, modal);
-        initComponents();
-        setLocationRelativeTo(this);
-    }
-
-    /**
-     * 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.
-     */
-    @SuppressWarnings("unchecked")
-    //CHECKSTYLE:OFF
-    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
-    private void initComponents() {
-
-        jLabel1 = new JLabel();
-        jLabel2 = new JLabel();
-        jLabel3 = new JLabel();
-        schemeTxt = new JTextField();
-        userNameTxt = new JTextField();
-        passwordTxt = new JPasswordField();
-        okButton = new JButton();
-        jLabel4 = new JLabel();
-        hostTxt = new JTextField();
-        jLabel5 = new JLabel();
-        portTxt = new JTextField();
-        jLabel6 = new JLabel();
-
-        setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
-
-        jLabel1.setLabelFor(schemeTxt);
-        org.openide.awt.Mnemonics.setLocalizedText(jLabel1, "Scheme");
-        jLabel1.setToolTipText("");
-
-        org.openide.awt.Mnemonics.setLocalizedText(jLabel2, "Username");
-
-        org.openide.awt.Mnemonics.setLocalizedText(jLabel3, "Password");
-        jLabel3.setToolTipText("");
-
-        schemeTxt.setToolTipText("");
-
-        org.openide.awt.Mnemonics.setLocalizedText(okButton, "submit");
-        okButton.addActionListener(this::okButtonActionPerformed);
-
-        jLabel4.setHorizontalAlignment(SwingConstants.CENTER);
-        org.openide.awt.Mnemonics.setLocalizedText(jLabel4, "Apache Syncope connection");
-        jLabel4.setToolTipText("");
-
-        hostTxt.setToolTipText("");
-
-        jLabel5.setLabelFor(portTxt);
-        org.openide.awt.Mnemonics.setLocalizedText(jLabel5, "Port");
-        jLabel5.setToolTipText("");
-
-        jLabel6.setLabelFor(hostTxt);
-        org.openide.awt.Mnemonics.setLocalizedText(jLabel6, "Host");
-        jLabel6.setToolTipText("");
-
-        GroupLayout layout = new GroupLayout(getContentPane());
-        getContentPane().setLayout(layout);
-        layout.setHorizontalGroup(
-            layout.createParallelGroup(GroupLayout.Alignment.LEADING)
-            .addGroup(layout.createSequentialGroup()
-                .addGap(41, 41, 41)
-                .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
-                    .addComponent(jLabel4, GroupLayout.PREFERRED_SIZE,
-                        256, GroupLayout.PREFERRED_SIZE)
-                    .addGroup(layout.createParallelGroup(GroupLayout.Alignment.TRAILING)
-                        .addComponent(okButton, GroupLayout.PREFERRED_SIZE,
-                            74, GroupLayout.PREFERRED_SIZE)
-                        .addGroup(layout.createSequentialGroup()
-                            .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
-                                .addComponent(jLabel1)
-                                .addComponent(jLabel2)
-                                .addComponent(jLabel3)
-                                .addComponent(jLabel5)
-                                .addComponent(jLabel6))
-                            .addGap(39, 39, 39)
-                            .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING, false)
-                                .addComponent(portTxt)
-                                .addComponent(hostTxt)
-                                .addComponent(userNameTxt)
-                                .addComponent(schemeTxt)
-                                .addComponent(passwordTxt, GroupLayout.DEFAULT_SIZE, 155, Short.MAX_VALUE)))))
-                .addContainerGap(40, Short.MAX_VALUE))
-        );
-        layout.setVerticalGroup(
-            layout.createParallelGroup(GroupLayout.Alignment.LEADING)
-            .addGroup(GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
-                .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
-                .addComponent(jLabel4, GroupLayout.PREFERRED_SIZE, 65, GroupLayout.PREFERRED_SIZE)
-                .addGap(18, 18, 18)
-                .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
-                    .addComponent(jLabel1)
-                    .addComponent(schemeTxt, GroupLayout.PREFERRED_SIZE,
-                        GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
-                .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
-                .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
-                    .addComponent(hostTxt, GroupLayout.PREFERRED_SIZE,
-                        GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
-                    .addComponent(jLabel6))
-                .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
-                .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
-                    .addComponent(portTxt, GroupLayout.PREFERRED_SIZE,
-                        GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
-                    .addComponent(jLabel5))
-                .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
-                .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
-                    .addComponent(userNameTxt, GroupLayout.PREFERRED_SIZE,
-                        GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
-                    .addComponent(jLabel2))
-                .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
-                .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
-                    .addComponent(jLabel3)
-                    .addComponent(passwordTxt, GroupLayout.PREFERRED_SIZE,
-                        GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
-                .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
-                .addComponent(okButton)
-                .addContainerGap())
-        );
-
-        pack();
-    }// </editor-fold>//GEN-END:initComponents
-    //CHECKSTYLE:ON
-
-    protected void okButtonActionPerformed(final java.awt.event.ActionEvent evt) {
-        // validation
-        List<String> validation = validate(schemeTxt, hostTxt, portTxt, userNameTxt);
-        if (validation.isEmpty()) {
-            Preferences prefs = NbPreferences.forModule(ResourceExplorerTopComponent.class);
-            prefs.put("scheme", schemeTxt.getText());
-            prefs.put("host", hostTxt.getText());
-            prefs.put("port", portTxt.getText());
-            prefs.put("username", userNameTxt.getText());
-            prefs.put("password", new String(passwordTxt.getPassword()));
-            // dismiss panel
-            this.dispose();
-        } else {
-            JOptionPane.showMessageDialog(
-                    null, "Please insert valid " + validation, "Validation  Error", JOptionPane.ERROR_MESSAGE);
-        }
-    }
-
-    public void setDetails(
-            final String scheme,
-            final String host,
-            final String port,
-            final String username,
-            final String password) {
-        schemeTxt.setText(scheme);
-        hostTxt.setText(host);
-        portTxt.setText(port);
-        userNameTxt.setText(username);
-        passwordTxt.setText(password);
-    }
-
-    public static void main(final String[] args) {
-        /* Create and display the dialog */
-        EventQueue.invokeLater(() -> {
-            ServerDetailsView dialog = new ServerDetailsView(new JFrame(), true);
-            dialog.addWindowListener(new WindowAdapter() {
-
-                @Override
-                public void windowClosing(final WindowEvent e) {
-                    System.exit(0);
-                }
-            });
-            dialog.setVisible(true);
-        });
-    }
-
-    // Variables declaration - do not modify//GEN-BEGIN:variables
-    private JTextField hostTxt;
-    private JLabel jLabel1;
-    private JLabel jLabel2;
-    private JLabel jLabel3;
-    private JLabel jLabel4;
-    private JLabel jLabel5;
-    private JLabel jLabel6;
-    private JButton okButton;
-    private JPasswordField passwordTxt;
-    private JTextField portTxt;
-    private JTextField schemeTxt;
-    private JTextField userNameTxt;
-    // End of variables declaration//GEN-END:variables
-
-    private static List<String> validate(
-        final JTextField schemeTxt,
-        final JTextField hostTxt,
-        final JTextField portTxt,
-        final JTextField userNameTxt) {
-
-        List<String> res = new ArrayList<>();
-
-        if (StringUtils.isBlank(schemeTxt.getText())
-                || (!StringUtils.equals(schemeTxt.getText(), "http")
-                && !StringUtils.equals(schemeTxt.getText(), "https"))) {
-            res.add("scheme");
-        }
-        if (StringUtils.isBlank(hostTxt.getText())) {
-            res.add("host");
-        }
-        if (StringUtils.isBlank(portTxt.getText()) || !StringUtils.isNumeric(portTxt.getText())) {
-            res.add("port");
-        }
-        if (StringUtils.isBlank(userNameTxt.getText())) {
-            res.add("username");
-        }
-        return res;
-    }
-}
diff --git a/ide/netbeans/src/main/nbm/MANIFEST.MF b/ide/netbeans/src/main/nbm/MANIFEST.MF
deleted file mode 100644
index b147609..0000000
--- a/ide/netbeans/src/main/nbm/MANIFEST.MF
+++ /dev/null
@@ -1,3 +0,0 @@
-Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt
-Manifest-Version: 1.0
-OpenIDE-Module-Requires: org.openide.windows.WindowManager
diff --git a/ide/netbeans/src/main/resources/org/apache/syncope/ide/netbeans/view/Bundle.properties b/ide/netbeans/src/main/resources/org/apache/syncope/ide/netbeans/view/Bundle.properties
deleted file mode 100644
index 17de78d..0000000
--- a/ide/netbeans/src/main/resources/org/apache/syncope/ide/netbeans/view/Bundle.properties
+++ /dev/null
@@ -1,28 +0,0 @@
-#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.
-
-TemplateViewTopComponent.jPanel1.TabConstraints.tabTitle=TEXT
-TemplateViewTopComponent.jPanel2.TabConstraints.tabTitle=XML
-
-ServerDetailsView.jLabel1.text=URL
-ServerDetailsView.jLabel4.text=Apache Syncope
-ServerDetailsView.okButton.text=OK
-ServerDetailsView.passwordTxt.text=
-ServerDetailsView.userNameTxt.text=
-ServerDetailsView.urlTxt.text=
-ServerDetailsView.jLabel3.text=Password
-ServerDetailsView.jLabel2.text=User Name
diff --git a/ide/netbeans/src/main/resources/org/apache/syncope/ide/netbeans/view/favicon.png b/ide/netbeans/src/main/resources/org/apache/syncope/ide/netbeans/view/favicon.png
deleted file mode 100644
index aa2f3e2..0000000
Binary files a/ide/netbeans/src/main/resources/org/apache/syncope/ide/netbeans/view/favicon.png and /dev/null differ
diff --git a/ide/pom.xml b/ide/pom.xml
deleted file mode 100644
index d359196..0000000
--- a/ide/pom.xml
+++ /dev/null
@@ -1,106 +0,0 @@
-<?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://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>
-
-  <parent>
-    <groupId>org.apache.syncope</groupId>
-    <artifactId>syncope</artifactId>
-    <version>3.0.0-SNAPSHOT</version>
-  </parent>
-
-  <name>Apache Syncope IDE</name>
-  <description>Apache Syncope IDE</description>
-  <groupId>org.apache.syncope</groupId>
-  <artifactId>syncope-ide</artifactId>
-  <packaging>pom</packaging>
-
-  <properties>
-    <rootpom.basedir>${basedir}/..</rootpom.basedir>
-  </properties>
-
-  <profiles>
-    <profile>
-      <id>site</id>
-
-      <build>
-        <plugins>
-          <plugin>
-            <groupId>org.asciidoctor</groupId>
-            <artifactId>asciidoctor-maven-plugin</artifactId>
-            <inherited>false</inherited>
-            <configuration>
-              <skip>true</skip>
-            </configuration>
-          </plugin>
-          
-          <plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-site-plugin</artifactId>
-            <inherited>true</inherited>
-            <configuration>
-              <skip>true</skip>
-              <skipDeploy>true</skipDeploy>
-              <generateReports>false</generateReports>
-            </configuration>
-          </plugin>
-          
-          <plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-antrun-plugin</artifactId>
-            <executions>
-              <execution>
-                <id>copy-docs-to-site</id>
-                <phase>none</phase>
-              </execution>
-            </executions>
-          </plugin>
-        </plugins>
-      </build>
-    </profile>
-
-    <profile>
-      <id>apache-release</id>
-
-      <build>
-        <plugins>
-          <plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-deploy-plugin</artifactId>
-            <configuration>
-              <skip>true</skip>
-            </configuration>
-          </plugin>
-          <plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-source-plugin</artifactId>
-            <inherited>false</inherited>
-            <configuration>
-              <skipSource>true</skipSource>
-            </configuration>
-          </plugin>
-        </plugins>
-      </build>
-    </profile>
-  </profiles>
-  
-  <modules>
-    <module>netbeans</module>
-  </modules>
-</project>
diff --git a/pom.xml b/pom.xml
index 94f38cd..2125adb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -479,8 +479,6 @@ under the License.
     <wicket-bootstrap.version>5.0.5</wicket-bootstrap.version>
     <wicket-spring-boot.version>3.0.4</wicket-spring-boot.version>
 
-    <netbeans.version>RELEASE124</netbeans.version>
-
     <antlr4.version>4.9.2</antlr4.version>
 
     <curator.version>5.2.0</curator.version>
@@ -1825,89 +1823,6 @@ under the License.
       </dependency>
 
       <dependency>
-        <groupId>org.netbeans.api</groupId>
-        <artifactId>org-netbeans-api-annotations-common</artifactId>
-        <version>${netbeans.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.netbeans.api</groupId>
-        <artifactId>org-openide-windows</artifactId>
-        <version>${netbeans.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.netbeans.api</groupId>
-        <artifactId>org-openide-util</artifactId>
-        <version>${netbeans.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.netbeans.api</groupId>
-        <artifactId>org-openide-util-ui</artifactId>
-        <version>${netbeans.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.netbeans.api</groupId>
-        <artifactId>org-openide-util-lookup</artifactId>
-        <version>${netbeans.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.netbeans.api</groupId>
-        <artifactId>org-openide-awt</artifactId>
-        <version>${netbeans.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.netbeans.api</groupId>
-        <artifactId>org-netbeans-modules-settings</artifactId>
-        <version>${netbeans.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.netbeans.api</groupId>
-        <artifactId>org-openide-io</artifactId>
-        <version>${netbeans.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.netbeans.api</groupId>
-        <artifactId>org-openide-nodes</artifactId>
-        <version>${netbeans.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.netbeans.api</groupId>
-        <artifactId>org-openide-text</artifactId>
-        <version>${netbeans.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.netbeans.api</groupId>
-        <artifactId>org-openide-filesystems</artifactId>
-        <version>${netbeans.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.netbeans.api</groupId>
-        <artifactId>org-openide-loaders</artifactId>
-        <version>${netbeans.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.netbeans.api</groupId>
-        <artifactId>org-netbeans-core-multiview</artifactId>
-        <version>${netbeans.version}</version>
-        <type>jar</type>
-      </dependency>
-      <dependency>
-        <groupId>org.netbeans.api</groupId>
-        <artifactId>org-netbeans-modules-editor-lib2</artifactId>
-        <version>${netbeans.version}</version>
-        <type>jar</type>
-      </dependency>
-      <dependency>
-        <groupId>org.netbeans.api</groupId>
-        <artifactId>org-netbeans-api-progress</artifactId>
-        <version>${netbeans.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.netbeans.api</groupId>
-        <artifactId>org-netbeans-api-progress-nb</artifactId>
-        <version>${netbeans.version}</version>
-      </dependency>
-
-      <dependency>
         <groupId>org.antlr</groupId>
         <artifactId>antlr4-runtime</artifactId>
         <version>${antlr4.version}</version>
@@ -2988,7 +2903,6 @@ under the License.
     <module>ext</module>
     <module>archetype</module>
     <module>standalone</module>
-    <module>ide</module>
   </modules>
 
 </project>
diff --git a/src/main/asciidoc/getting-started/obtain.adoc b/src/main/asciidoc/getting-started/obtain.adoc
index 4f7f32b..be03468 100644
--- a/src/main/asciidoc/getting-started/obtain.adoc
+++ b/src/main/asciidoc/getting-started/obtain.adoc
@@ -519,70 +519,3 @@ You can configure any LDAP client (such as http://jxplorer.org/[JXplorer^], for
  Click 'Connect' button
 
 |===
-
-=== Netbeans IDE Plugin
-
-The Netbeans IDE plugin allows remote management of notification e-mail and report templates, and remote editing
-of Apache Groovy implementations.
-
-[[netbeansplugin-installation]]
-==== Installation
-
-After https://syncope.apache.org/downloads[download^], start the most recent Netbeans IDE then go to 
-`Tools > Plugins`:
-
-image::netbeans01.png[netbeans01]
-
-Click on `Downloaded > Add Plugins...`:
-
-image::netbeans02.png[netbeans02]
-
-image::netbeans03.png[netbeans03]
-
-image::netbeans04.png[netbeans04]
-
-Select `Apache Syncope Netbeans IDE Plugin` and click on `Install`:
-
-image::netbeans05.png[netbeans05]
-
-image::netbeans06.png[netbeans06]
-
-==== Setup
-
-Once installed go to `Window` > `Apache Syncope`:
-
-image::netbeans07.png[netbeans07]
-
-The first time the plugin is run, it will prompt for connection details:
-
-image::netbeans12.png[netbeans12]
-
-Once a connection to the given Apache Syncope deployment is established, a panel showing Mail Templates, Report XSLTs
-and Groovy implementations will appear on the left; by double-clicking on each folder, the list of available items
-is shown:
-
-image::netbeans08.png[netbeans08]
-
-To refresh the list of available items, or to update the connection details, right-click on the
-`Apache Syncope` root node:
-
-image::netbeans09.png[netbeans09]
-
-To create a new item, right-click on the `Mail Templates`, `Report XSLTs` or `Groovy Implementations` folder and then
-click on `New` label:
-
-image::netbeans10.png[netbeans10]
-
-[NOTE]
-====
-Before creating or editing a mail or report template, a modal window will be shown to select the edit format:
-
-image::netbeans13.png[netbeans13]
-====
-
-To edit am item, double-click on the item name and an editor will appear. On save, the item content will be
-uploaded to the configured Apache Syncope deployment.
-
-To delete an existing item, right-click on the item name and then click on `Delete`:
-
-image::netbeans11.png[netbeans11]
diff --git a/src/main/asciidoc/images/netbeans01.png b/src/main/asciidoc/images/netbeans01.png
deleted file mode 100644
index 1fc62ae..0000000
Binary files a/src/main/asciidoc/images/netbeans01.png and /dev/null differ
diff --git a/src/main/asciidoc/images/netbeans02.png b/src/main/asciidoc/images/netbeans02.png
deleted file mode 100644
index 119a58b..0000000
Binary files a/src/main/asciidoc/images/netbeans02.png and /dev/null differ
diff --git a/src/main/asciidoc/images/netbeans03.png b/src/main/asciidoc/images/netbeans03.png
deleted file mode 100644
index 90b3bc9..0000000
Binary files a/src/main/asciidoc/images/netbeans03.png and /dev/null differ
diff --git a/src/main/asciidoc/images/netbeans04.png b/src/main/asciidoc/images/netbeans04.png
deleted file mode 100644
index 772b99b..0000000
Binary files a/src/main/asciidoc/images/netbeans04.png and /dev/null differ
diff --git a/src/main/asciidoc/images/netbeans05.png b/src/main/asciidoc/images/netbeans05.png
deleted file mode 100644
index 2018ea5..0000000
Binary files a/src/main/asciidoc/images/netbeans05.png and /dev/null differ
diff --git a/src/main/asciidoc/images/netbeans06.png b/src/main/asciidoc/images/netbeans06.png
deleted file mode 100644
index 6010051..0000000
Binary files a/src/main/asciidoc/images/netbeans06.png and /dev/null differ
diff --git a/src/main/asciidoc/images/netbeans07.png b/src/main/asciidoc/images/netbeans07.png
deleted file mode 100644
index 3078269..0000000
Binary files a/src/main/asciidoc/images/netbeans07.png and /dev/null differ
diff --git a/src/main/asciidoc/images/netbeans08.png b/src/main/asciidoc/images/netbeans08.png
deleted file mode 100644
index fe4afa8..0000000
Binary files a/src/main/asciidoc/images/netbeans08.png and /dev/null differ
diff --git a/src/main/asciidoc/images/netbeans09.png b/src/main/asciidoc/images/netbeans09.png
deleted file mode 100644
index 6a4694c..0000000
Binary files a/src/main/asciidoc/images/netbeans09.png and /dev/null differ
diff --git a/src/main/asciidoc/images/netbeans10.png b/src/main/asciidoc/images/netbeans10.png
deleted file mode 100644
index ba7130d..0000000
Binary files a/src/main/asciidoc/images/netbeans10.png and /dev/null differ
diff --git a/src/main/asciidoc/images/netbeans11.png b/src/main/asciidoc/images/netbeans11.png
deleted file mode 100644
index 8d1701a..0000000
Binary files a/src/main/asciidoc/images/netbeans11.png and /dev/null differ
diff --git a/src/main/asciidoc/images/netbeans12.png b/src/main/asciidoc/images/netbeans12.png
deleted file mode 100644
index 32400cf..0000000
Binary files a/src/main/asciidoc/images/netbeans12.png and /dev/null differ
diff --git a/src/main/asciidoc/images/netbeans13.png b/src/main/asciidoc/images/netbeans13.png
deleted file mode 100644
index 009f645..0000000
Binary files a/src/main/asciidoc/images/netbeans13.png and /dev/null differ
diff --git a/src/main/asciidoc/reference-guide/architecture/architecture.adoc b/src/main/asciidoc/reference-guide/architecture/architecture.adoc
index 34a672a..1a45d52 100644
--- a/src/main/asciidoc/reference-guide/architecture/architecture.adoc
+++ b/src/main/asciidoc/reference-guide/architecture/architecture.adoc
@@ -194,9 +194,3 @@ To reset to the default mode, it is enough to click again on the specific icon.
 
 Third-party applications are provided full access to IdM services by leveraging the REST interface, either via the 
 Java <<client-library,Client Library>> (the basis of Admin UI and End-user UI) or plain HTTP calls.
-
-==== Netbeans IDE Plugin
-
-The Netbeans IDE plugin allows remote management of <<notification-templates,notification e-mail>> and
-<<report-templates,report>> templates, and remote editing of Apache Groovy <<implementations,implementations>>. +
-It constitutes an example of a Java application relying on the Client Library for interacting with the Core via REST.
diff --git a/src/main/asciidoc/reference-guide/concepts/notifications.adoc b/src/main/asciidoc/reference-guide/concepts/notifications.adoc
index 3051696..b4e170a 100644
--- a/src/main/asciidoc/reference-guide/concepts/notifications.adoc
+++ b/src/main/asciidoc/reference-guide/concepts/notifications.adoc
@@ -106,8 +106,7 @@ to be used respectively for plaintext and HTML e-mails, and is available for sel
 
 [NOTE]
 ====
-Notification templates can be easily managed either via the <<console-configuration-notifications,admin console>>
-or the <<netbeans-ide-plugin>>.
+Notification templates can be easily managed via the <<console-configuration-notifications,admin console>>.
 ====
 
 The full power of JEXL expressions - see http://commons.apache.org/proper/commons-jexl/reference/syntax.html[reference^]
diff --git a/src/main/asciidoc/reference-guide/concepts/reports.adoc b/src/main/asciidoc/reference-guide/concepts/reports.adoc
index 1e18526..b24852a 100644
--- a/src/main/asciidoc/reference-guide/concepts/reports.adoc
+++ b/src/main/asciidoc/reference-guide/concepts/reports.adoc
@@ -45,7 +45,7 @@ will be then made available as PDF and RTF
 
 [NOTE]
 ====
-Report templates can be easily managed either via the <<console-reports,admin console>> or the <<netbeans-ide-plugin>>.
+Report templates can be easily managed via the <<console-reports,admin console>>.
 ====
 
 ==== Reportlets