> If I am implementing a custom extension of Pulsar Shell/Pulsar Admin,
> currently my code doesn't depend on jcommander

Your PIP is a good design.

I can handle the adaptation of custom extension of Pulsar Shell/Pulsar
Admin, but `org.apache.pulsar.shell.ShellCommandsProvider` needs to be
changed, which uses the `JCommander` class: ` JCommander getJCommander();`
-> ` Object getCommander();`.

The `getCommander` method returns a picocli object, we can check this
object type in the pulsar shell, and then get the original object to set
the command name, get the admin URL, client URL, and so on.

I have an idea of refactoring this location with an interface to decouple
the code, but this will change more code, so I decided that
`getCommander()` method returns an Object type.

Thanks,
Zixuan

Enrico Olivelli <eolive...@gmail.com> 于2024年2月26日周一 15:33写道:

> Il Lun 26 Feb 2024, 02:23 PengHui Li <peng...@apache.org> ha scritto:
>
> > +1 Great user experience improvement.
> >
> > Regards,
> > Penghui
> >
> > On Sat, Feb 24, 2024 at 3:15 AM Zixuan Liu <node...@gmail.com> wrote:
> >
> > > > Can you please share some pointers ?
> > >
> > > Only `org.apache.pulsar.shell.ShellCommandsProvider#getJCommander` uses
> > > jcommander API. I need to use picocli instead of jcommander, or add a
> new
> > > method.
> >
>
> Sorry, I wasn't clear.
> If I am implementing a custom extension of Pulsar Shell/Pulsar Admin,
> currently my code doesn't depend on jcommander
>
> Please check this PIP
> https://github.com/apache/pulsar/issues/17155
>
> Enrico
>
>
> >
> > > Using picocli instead of jcommander will reduce some code, but it well
> n
> > > break the signature of some methods. I need to carefully study how to
> do
> > > it.
> > >
> > > This thread is just a preliminary idea to replace jcommander, and I
> will
> > > write a PIP later.
> > >
> > > Thanks,
> > > Zixuan
> > >
> > >
> > > Enrico Olivelli <eolive...@gmail.com> 于2024年2月23日周五 22:59写道:
> > >
> > > > Il Ven 23 Feb 2024, 04:34 Zixuan Liu <node...@gmail.com> ha scritto:
> > > >
> > > > > Thanks for the feedback!
> > > > >
> > > > > > Please take into account Pulsar Shell extensions
> > > > >
> > > > > This is a tricky issue, I noticed that it depends on jcommander
> here,
> > > >
> > > >
> > > >
> > > > Can you please share some pointers ? IIRC the shell extensions
> > shouldn't
> > > > need jcommander, it should be exposed in the public API
> > > >
> > > > Enrico
> > > >
> > > > and I
> > > > > need to break this interface, and make it compatible with Pulsar
> > Shell
> > > > > implementation.
> > > > >
> > > > > I will create a draft PR to migrate the CLI parser from jcommander
> to
> > > > > picocli, and then make a PIP to the Pulsar.
> > > > >
> > > > > Thanks,
> > > > > Zixuan
> > > > >
> > > >
> > >
> >
>

Reply via email to