Zowe™ Explorer Plugin for IntelliJ IDEA™: Evolution and Future
Author: Yuliya Kirkorava
SHARE conference has passed and this participation was a significant milestone for IBA Group. The conference marked a special anniversary for The Open Mainframe Project’s Zowe community, celebrating 5 years since the project’s initial announcement.
During the conference, IBA Group had the privilege of featuring speakers who presented the Zowe Explorer plugin for IntelliJ IDEA, showcasing the mainframe integrated development environment. IBA Group was also mentioned in an article by Joe Winchester, member of the Zowe Advisory Committee (ZAC) and Senior Technical Staff Member at IBM.
“I was excited to be a part of SHARE 2023! This year IBA Group showcased a suite of tools designed to help businesses implement modern DevOps for mainframes. If you didn’t get a chance to attend the conference, please feel free to reach out to me to discuss our plugins for IntelliJ.” – Alex Burak, representative of IBA Group at SHARE 2023.
Tracing the Milestones
The journey of a thousand miles begins with a single step, and for IBA Group, every version release represents a significant stride toward perfection. One of the most noteworthy releases is the Zowe Explorer plugin for IntelliJ IDEA. It’s not just a figure of speech when we say that we’ve surpassed 1,690 installations; it’s a testament to the trust and confidence the community has shown in our endeavors.
Version 1.0.0 emerged as a major game changer, introducing:
- TSO CLI: This isn’t just a feature; it’s a revolution. Enabling users to submit TSO commands directly through IntelliJ, it brought about a new level of convenience. Working with the plugin, it is possible to establish multiple TSO CLI sessions and work with all of them at the same time. Now, basic TSO functions are available. Later we plan to add new features and provide complex scenarios handling basing on users feedback.
- File Encoding Management: Handling file encodings has always been challenging for mainframe developers. With the ability to manage and change file encodings seamlessly, we addressed a longstanding pain point. Now it is possible to change the encoding of any USS file, specifying either reloading of the file with the specified encoding tag and without changing the contents, or changing the actual contents of the file. With that, the plugin will show all the contents correctly if the source encoding was not correct.
- JES Explorer new options: With the new version, there are some new options to work with JES jobs introduced. Now it is possible to edit the source JCL, run the changed job, view its execution logs and purge the job from JES.
- UX changes: Some UX changes are introduced. The most notable – we changed the “plus” button behavior. So now, it expands to show the possible new items to create instead of being just a “plus” button that “does something”.
- Performance Enhancements: By optimizing dataset loading and other functionalities, we ensured that the user experience remained fluid and interruption-free.
- The subsequent versions, from 1.0.1 to 1.0.3, focused on refinements. These updates were pivotal in ensuring stability, compatibility across IntelliJ versions, and enhancing overall user interaction. One key fix that stands out is the resolution of a critical bug affecting the project tree, ensuring users do not face disruptions during their development journey.
Crafting the Future
Peeking into the horizon, we have already released version 1.1.0. This version is about:
- “whoami” feature to fetch the correct name of the user: This feature later gives the possibility to get the real name of the user, so that it will ease interactions with USS files.
- Hint after a connection is created: It notifies the user that after the connection is created, they are able to work with other essential plugin’s features.
- Copy + resolve conflicts: When files or folders are being copied, sometimes it makes conflicting situations when there are the same names for any of the entities. This feature helps to resolve such conflicts, providing the opportunity to decide, which kind of action will be taken.
- Dataset presets: Sometimes it is not so easy to decide the parameters of the dataset being created. The presets will provide some basic types of template working sets to work with.
- Default mask name during a mask creation: Sometimes it is not needed to provide a specific mask name and it is easier just to fetch the default list of datasets by the default user’s wildcard.
- “Duplicate” option for a dataset’s member.
- “No items found” as empty children list of the specified entity.
- Unit tests for source code: We are actively increasing the coverage of the plugin’s source code. This process may be not perfectly visible, but of course, we are working on it.
- Auto-synchronization option for datasets and file content, which we plan to make the default setting in subsequent releases. This option is turned on by default starting from 1.1.0 version of the plugin. It can be changed later in Settings->Other settings.
- Infrastructure to integrate the much-anticipated CICS plugin.
- A plethora of other user-centric features, such as a reworked UI for error messages, spool log downloads, and intuitive file sorting.
We’re aiming to bring a holistic suite of plugins to the table, encapsulating JCL, Jenkins, CICS, and COBOL functionalities. One pioneering venture we are exploring is the application of LSP technology, recently introduced by Jetbrains. Alongside, we are actively researching integration avenues with Zowe API ML.
Conclusion
In this ever-evolving domain of plugins and mainframe interactions, our team is committed not just to keep pace, but to set the pace. Our mission is singular: to make Zowe Explorer plugin for IntelliJ IDEA the go-to interface for all mainframe interactions. As we continue on this voyage, your feedback is our compass, guiding us towards creating better, more innovative solutions.
Disclaimer: All trademarks, service marks, trade names, logos, and brand names mentioned or used within this communication, including any accompanying documents, website content, or other materials, belong to their respective owners. The inclusion of these trademarks is purely for informational and referential purposes and does not imply any association, endorsement, sponsorship, or authorization by the trademark owners, unless explicitly stated. Efforts have been made to identify and acknowledge the trademarks used in this communication. However, the absence of any such acknowledgement or reference should not be interpreted as a challenge to the validity or ownership of those trademarks. Here are some of the registered trademarks mentioned in this communication: Zowe™, the Zowe™ logo, and the Open Mainframe Project™ are trademarks of The Linux® Foundation. Linux® is a registered trademark of Linux Torvalds. IntelliJ, IntelliJ IDEA, PyCharm, and PhpStorm are trademarks or registered trademarks of JetBrains, Inc. BMC, BMC Software, the BMC logo, the BMC Software logo, and other BMC marks are the exclusive properties of BMC Software, Inc. and are registered or may be registered in the U.S. and in other countries. IBM, the IBM logo, and ibm.com are trademarks or registered trademarks of International Business Machines Corporation in the United States, other countries, or both. Broadcom®, the pulse logo, Connecting everything®, and the Connecting everything logo are among the registered trademarks of Broadcom Corporation and/or its. Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both. Microsoft, Azure, Windows, and Windows NT are trademarks of Microsoft Corporation in the United States, other countries, or both. Kotlin is a registered trademark of the Kotlin Foundation. Jenkins® is a registered trademark of LF Charities Inc. Additionally, other company, product, and service names mentioned in this communication may also be trademarks or service marks of their respective owners.