Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NEVER MERGE THIS (just for tracking) #1138

Closed
wants to merge 28 commits into from
Closed

Conversation

matentzn
Copy link
Contributor

@matentzn matentzn commented Aug 5, 2023

matentzn and others added 28 commits May 7, 2022 08:47
When ROBOT's CLI is initialised, we search for implementations of the
`Command` interface offered as services, both in the system class path
and in any Jar file found in the following directories:

* the directory specified by the `robot.pluginsdir` system property;
* the directory specified by the `ROBOT_PLUGINS_DIRECTORY` environment
  variable;
* the calling user's `~/.robot/plugins` directory.

When an implementation is found, it is registered to the CommandManager,
allowing to use the command the same way as any built-in command.

When a command has been loaded from a Jar file from one of the
directories listed above (instead of from the system class path), its
name must be prefixed by the basename of the Jar file (without the .jar
extension) followed by a colon, for the command to be invoked from the
command line.

For example, if the file `my-plugins.jar` contains a command named
`hello`, that command must be invoked as `my-plugins:hello`.
It could happen that a Jar plugin file could contain a bogus service
configuration file, that is, a file that does not point to an existing
org.obolibrary.robot.Command implementation. ROBOT should not abruptly
fail in that situation, but should instead ignore the Jar file.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants