[ 
https://issues.apache.org/jira/browse/GEODE-3007?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16249670#comment-16249670
 ] 

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
URL: https://github.com/apache/geode/pull/1042#discussion_r150558119
 
 

 ##########
 File path: 
geode-core/src/main/java/org/apache/geode/management/internal/cli/GfshParser.java
 ##########
 @@ -57,10 +57,14 @@ public GfshParser(CommandManager commandManager) {
       add(command);
     }
 
-    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:
[email protected]


> Simplify support for custom GFSH commands
> -----------------------------------------
>
>                 Key: GEODE-3007
>                 URL: https://issues.apache.org/jira/browse/GEODE-3007
>             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 
> "org.apache.geode.management.internal.cli.commands”
> 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 
> META-INF.services (e.g. 
> "geode-core/src/test/resources/META-INF/services/org.springframework.shell.core.CommandMarker”)
>  
> 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
(v6.4.14#64029)

Reply via email to