geode-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <>
Subject [jira] [Commented] (GEODE-3007) Simplify support for custom GFSH commands
Date Mon, 13 Nov 2017 14:47:00 GMT


ASF GitHub Bot commented on GEODE-3007:

jdeppe-pivotal commented on a change in pull request #1042: GEODE-3007: Simplify support for
custom GFSH commands

 File path: geode-core/src/main/java/org/apache/geode/management/internal/cli/
 @@ -57,10 +57,14 @@ public GfshParser(CommandManager commandManager) {
-    for (Converter<?> converter : commandManager.getConverters()) {
+    for (Converter converter : commandManager.getConverters()) {
       if (converter.getClass().isAssignableFrom(ArrayConverter.class)) {
         ArrayConverter arrayConverter = (ArrayConverter) converter;
-        arrayConverter.setConverters(new HashSet<>(commandManager.getConverters()));
+        HashSet<Converter<?>> converters = new HashSet<>();
+        for (Converter c : commandManager.getConverters()) {
+          converters.add(c);
+        }
+        arrayConverter.setConverters(converters);
 Review comment:
   The need here appears to stem from the way generics are being used (possibly incorrectly).
Ideally we should just be able to say `HashSet<Converter<?>> converters = new
HashSet<>(commandManager.getConverters();`. However that doesn't work because `getConverters`
returns a `Set<Converter>` and not a `Set<Converter<?>>`. Ultimately the
`setConverter` call wants to take a `Set<Converter<?>>` as an argument. Hence
the need for this inner loop to keep the compiler happy.

This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:

> Simplify support for custom GFSH commands
> -----------------------------------------
>                 Key: GEODE-3007
>                 URL:
>             Project: Geode
>          Issue Type: Improvement
>          Components: docs, gfsh
>            Reporter: Jared Stewart
>            Assignee: Jared Stewart
> Geode currently supports three ways to load GFSH commands: 
> 1. Scan the classpath for commands in "”
> 2. Scan the classpath for commands in a package specified by a user via the “user-command-packages”
system property. 
> 3. Scan the classpath for commands registered in files inside (e.g.

> After the improvements made by GEODE-2989, there is no reason to require a user to specify
the location of their custom commands via one of these mechanisms.  Instead, we should simply
scan the entire classpath for any classes implementing CommandMarker (regardless of whatever
packages they live in).  

This message was sent by Atlassian JIRA

View raw message