/zowe-explorer-intellij

IntelliJ Zowe Plug-in that provides possibility to interact with z/OS features. Has Zowe Kotlin SDK as it's core to interact

Primary LanguageKotlinEclipse Public License 2.0EPL-2.0

Zowe Explorer

Downloads Rating Coverage Quality Gate Status

"Zowe Explorer" brings support for browsing, editing and creating data on z/OS via z/OSMF REST API.

Plugin in Marketplace: JetBrains Marketplace

Using our plugin you will be able to:

  • Start working with z/OS easily with no complex configurations.
  • Organize datasets on z/OS, files on USS into Working Sets.
  • Allocate datasets, create members, files and directories with different permissions.
  • Perform renaming, copying and moving data in a modern way.
  • Edit datasets, files and members. Smart auto-save will keep your content both in the editor and on the mainframe in-sync.
  • Create multiple connections to different z/OS systems.
  • Perform all available operations with Jobs.
  • Highlight all IntelliJ supported languages automatically and recognize them once opened from the mainframe.

To start using the plugin:

  • Install the plugin in your Intellij based IDE.
  • Contact your RACF administrator so that your user is in the IZUUSER RACF group
  • You are ready to go! Start working with z/OS from the IDE.

Note: z/OS 2.1 or higher is required

Where to find the docs

Zowe IntelliJ plug-in FAQ

Installing Zowe IntelliJ plug-in

Configuring Zowe IntelliJ plug-in

Using Zowe IntelliJ plug-in

Troubleshooting Zowe IntelliJ plug-in

Contribution Guidelines

Changelog

Developer guide

Requirements

  • IntelliJ IDEA version 2022.3 and later (Community will be enough)
  • Java SDK 17 (IntelliJ built-in)

Setup steps

  • Clone the project repo:

git clone git@github.com:zowe/zowe-explorer-intellij.git

  • Three options of working with the plugin are available:
    • Run plugin - run the plugin in development mode
    • Package plugin - make a zip portable package to install it in IntelliJ IDEA or publish somewhere
    • Run tests - run plugin tests to check the codebase with automated tests
  • Proceed to Contribution Guidelines to develop some new functionality for the project.

How to run tests

We have two options of tests:

  1. UI tests - run with open IDE, make test of user-like interaction with the plugin;
  2. Unit tests - automated headless bundle to test plugin functions as if they were a separate pieces.

Environment configurations for UI tests:

  1. In IntelliJ Idea change Settings => Tools => Terminal Shell path parameter from PowerShell to Git Bash. Example: "C: \Program Files\Git\usr\bin\bash.exe" --login -i
  2. Make Java version 17 available from command line (add to PATH)

To run UI tests:

  1. change values for ZOS_USERID, ZOS_PWD, CONNECTION_URL in src/uiTest/kotlin/auxiliary/utils.kt
  2. run the script uiTest.sh
  3. once IdeForUiTests started make it as main window on the screen and do not touch mouse anymore

UI tests results: build/reports/tests/uiTest/index.html

To run smoke test:

  1. change values for ZOS_USERID, ZOS_PWD, CONNECTION_URL in src/uiTest/kotlin/auxiliary/utils.kt
  2. run the script smokeTest.sh
  3. if unit tests fail, smoke ui test will be skipped. When unit tests are successful, IdeForUiTests will be run
  4. once IdeForUiTests started make it as main window on the screen and do not touch mouse anymore

Smoke test results: build/reports/tests/test/index.html with report for unit tests, build/reports/tests/SUCCESS(FAILURE).txt with quick summary for unit test run (file name depends on test run result), build/reports/tests/smokeUiTest/index.html with report for smoke UI test

To run unit tests:

"Unit tests" Gradle task: just run it as a configuration option. If you want to run a separate unit test, you should consider to use "Kotest" plugin. Firstly, you need to download it. Then, go to "Edit Configurations..." -> "Edit configuration templates..." -> "Kotest". In there, you need to enable VM options and add the following lines:

-Didea.force.use.core.classloader=true
--add-opens=java.desktop/java.awt=ALL-UNNAMED
--add-opens=java.desktop/sun.awt=ALL-UNNAMED
--add-opens=java.desktop/java.awt.event=ALL-UNNAMED
--add-opens=java.base/java.lang=ALL-UNNAMED
--add-exports=java.base/jdk.internal.vm=ALL-UNNAMED 

After the "Kotest" is set up, just click on the green arrow near the test you want to run.

In case of any troubles during plugin usage, feel free to contact us.

How to contribute

If you want to help the project, improve some functionality, resolve bug or add some new feature, please, refer to the contribution guide.

How to obtain and provide feedback

If you have any questions, related to the project development, further plans or something else, you can reach as out by some of the communication chanels:

Note: GitHub issue is the preferred way of communicating in case of creating some bug/feature/request for enhancement. If you need direct consulting or you have any related questions, please, reach us out using Slack channels or E-mail