You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@karaf.apache.org by Paul Spencer <pa...@mindspring.com> on 2026/01/16 14:48:46 UTC
Karaf 4.4.x "An illegal reflective access operation has occurred" when using ShellTable.print()
Karaf: 4.4.3
Java Virtual Machine: OpenJDK 64-Bit Server VM version 11.0.2+9
I am seeing the following error when using ShellTable.print() to shell's session console.
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.apache.karaf.shell.support.table.ShellTable (jar:bundle://e299aef6-746a-44e6-b810-da872d8d9244_44.0:0/!/) to field java.io.PrintStream.charOut
WARNING: Please consider reporting this to the maintainers of org.apache.karaf.shell.support.table.ShellTable
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
The default for --illegal-access changes to deny in Java 16 and the functionality is remove in Java 17.
https://docs.oracle.com/en/java/javase/16/docs/specs/man/java.html#extra-options-for-java
The offending code appears in getEncoding() for shell/core/src/main/java/org/apache/karaf/shell/support/table/ShellTable.java
Since the Should I create an issue in GitHub?
### Example Code
import org.apache.karaf.shell.api.console.Session;
import org.apache.karaf.shell.support.table.ShellTable;
@Service
@Command(scope = "bugdata", name = "appt-display", description = "Display an appoiment schedule")
public class MyCommand implements Action {
@Reference
private Session session;
@Override
public Object execute() throws Exception {
final var output = session.getConsole();
final var table = new ShellTable();
...
table.print(output);
}
}
Paul Spencer
Re: Karaf 4.4.x "An illegal reflective access operation has occurred" when using ShellTable.print()
Posted by Jean-Baptiste Onofré <jb...@nanthrax.net>.
Hi Paul
Thanks for the update. I will create a GH Issue to track this and include
in Karaf 4.4.10.
Regards
JB
On Mon, Jan 19, 2026 at 6:50 PM Paul Spencer <pa...@mindspring.com>
wrote:
> JB,
> Below are my changes, including added logging, that exposes the issue.
>
> ### From bin/karaf session
> karaf@root()> booking:list
> getEncoding() - Begin
> getEncoding() - get encoding from PS
> getEncoding() - getDeclaredField(): charOut
> getEncoding() - end
> ID | Flight | Customer
> ----+--------+---------
> karaf@root()>
>
> ### From bin/client session
> karaf@root()> booking:list
> getEncoding() - Begin
> getEncoding() - get encoding from PS
> getEncoding() - getDeclaredField(): Unable to make field private
> java.io.OutputStreamWriter java.io.PrintStream.charOut accessible: module
> java.base does not "opens java.io" to unnamed module @5a157034
> getEncoding() - end
> IDz | Flight | Customer
> ----+--------+---------
> karaf@root()>
>
>
> ### My changes to recreated and added logging
> GitHub Branch - https://github.com/paulsp/karaf/tree/pr-xxxx
> ListCommand.java -
> https://github.com/paulsp/karaf/blob/pr-xxxx/examples/karaf-command-example/karaf-command-example-command/src/main/java/org/apache/karaf/examples/command/command/ListCommand.java
> ShellTable.java -
> https://github.com/paulsp/karaf/blob/pr-xxxx/shell/core/src/main/java/org/apache/karaf/shell/support/table/ShellTable.java
>
> Paul Spencer
> > On Jan 19, 2026, at 12:32 PM, Paul Spencer <pa...@mindspring.com>
> wrote:
> >
> > JB,
> > I have confirmed the issued existing 4.4.10-SNAPSHOT rebase on January
> 19, 2026
> >
> > Tested with Java 17, I get the following error:
> > Unable to make field private java.io.OutputStreamWriter
> java.io.PrintStream.charOut accessible: module java.base does not "opens
> java.io" to unnamed module @5a157034
> >
> > Another way to recreate the issue is to update ListCommand in artifact
> karaf-command-example-command to used Session.getConsole() for the
> outputStream in table.print()
> > …
> > import org.apache.karaf.shell.api.console.Session;
> > …
> > @Reference
> > private Session session;
> > …
> > table.print(session.getConsole());
> > ...
> >
> > Paul Spencer
> >> On Jan 19, 2026, at 10:20 AM, Paul Spencer <pa...@mindspring.com>
> wrote:
> >>
> >> JB,
> >> I have not, but ShellTable in 4.4.9 is the same as 4.4.3. Line 190 is
> the source of the illegal access warning.
> >>
> >>
> >> Passing a non-null CharSet to table.print() avoids the encoding
> calculation and warning
> >> Paul Spencer
> >>
> >>> On Jan 19, 2026, at 10:00 AM, Jean-Baptiste Onofré <jb...@nanthrax.net>
> wrote:
> >>>
> >>> Hi Paul
> >>>
> >>> Did you try with Karaf 4.4.9 ?
> >>>
> >>> Regards
> >>> JB
> >>>
> >>> Le ven. 16 janv. 2026 à 16:10, Paul Spencer <
> paulspencer@mindspring.com> a écrit :
> >>> To recreated:
> >>> 1. In session #1, Start Karaf using the command bin/karaf
> >>> 2. In session #2, Start Karaf using the command bin/client
> >>> 3. In session #2, execute the command writing the table,
> bugdata:display in this case.
> >>> 4. In session #1, The warning will be displayed only once.
> >>>
> >>> Additional behavior notes:
> >>> - `table.print(System.out)` does not generate the warning
> >>> - `table.print(session.getConsole())` will generate the warning on
> first use.
> >>>
> >>> Paul Spencer
> >>>
> >>>
> >>>> On Jan 16, 2026, at 9:48 AM, Paul Spencer <pa...@mindspring.com>
> wrote:
> >>>>
> >>>> Karaf: 4.4.3
> >>>> Java Virtual Machine: OpenJDK 64-Bit Server VM version 11.0.2+9
> >>>>
> >>>> I am seeing the following error when using ShellTable.print() to
> shell's session console.
> >>>>
> >>>> WARNING: An illegal reflective access operation has occurred
> >>>> WARNING: Illegal reflective access by
> org.apache.karaf.shell.support.table.ShellTable
> (jar:bundle://e299aef6-746a-44e6-b810-da872d8d9244_44.0:0/!/) to field
> java.io.PrintStream.charOut
> >>>> WARNING: Please consider reporting this to the maintainers of
> org.apache.karaf.shell.support.table.ShellTable
> >>>> WARNING: Use --illegal-access=warn to enable warnings of further
> illegal reflective access operations
> >>>> WARNING: All illegal access operations will be denied in a future
> release
> >>>>
> >>>> The default for --illegal-access changes to deny in Java 16 and the
> functionality is remove in Java 17.
> >>>>
> https://docs.oracle.com/en/java/javase/16/docs/specs/man/java.html#extra-options-for-java
> >>>>
> >>>> The offending code appears in getEncoding() for
> shell/core/src/main/java/org/apache/karaf/shell/support/table/ShellTable.java
> >>>> Since the Should I create an issue in GitHub?
> >>>>
> >>>> ### Example Code
> >>>> import org.apache.karaf.shell.api.console.Session;
> >>>> import org.apache.karaf.shell.support.table.ShellTable;
> >>>> @Service
> >>>> @Command(scope = "bugdata", name = "appt-display", description =
> "Display an appoiment schedule")
> >>>> public class MyCommand implements Action {
> >>>> @Reference
> >>>> private Session session;
> >>>>
> >>>> @Override
> >>>> public Object execute() throws Exception {
> >>>> final var output = session.getConsole();
> >>>> final var table = new ShellTable();
> >>>> ...
> >>>> table.print(output);
> >>>> }
> >>>> }
> >>>>
> >>>>
> >>>> Paul Spencer
> >>>
> >>>
> >
>
>
Re: Karaf 4.4.x "An illegal reflective access operation has occurred" when using ShellTable.print()
Posted by Paul Spencer <pa...@mindspring.com>.
JB,
Below are my changes, including added logging, that exposes the issue.
### From bin/karaf session
karaf@root()> booking:list
getEncoding() - Begin
getEncoding() - get encoding from PS
getEncoding() - getDeclaredField(): charOut
getEncoding() - end
ID | Flight | Customer
----+--------+---------
karaf@root()>
### From bin/client session
karaf@root()> booking:list
getEncoding() - Begin
getEncoding() - get encoding from PS
getEncoding() - getDeclaredField(): Unable to make field private java.io.OutputStreamWriter java.io.PrintStream.charOut accessible: module java.base does not "opens java.io" to unnamed module @5a157034 getEncoding() - end
IDz | Flight | Customer
----+--------+---------
karaf@root()>
### My changes to recreated and added logging
GitHub Branch - https://github.com/paulsp/karaf/tree/pr-xxxx
ListCommand.java - https://github.com/paulsp/karaf/blob/pr-xxxx/examples/karaf-command-example/karaf-command-example-command/src/main/java/org/apache/karaf/examples/command/command/ListCommand.java
ShellTable.java - https://github.com/paulsp/karaf/blob/pr-xxxx/shell/core/src/main/java/org/apache/karaf/shell/support/table/ShellTable.java
Paul Spencer
> On Jan 19, 2026, at 12:32 PM, Paul Spencer <pa...@mindspring.com> wrote:
>
> JB,
> I have confirmed the issued existing 4.4.10-SNAPSHOT rebase on January 19, 2026
>
> Tested with Java 17, I get the following error:
> Unable to make field private java.io.OutputStreamWriter java.io.PrintStream.charOut accessible: module java.base does not "opens java.io" to unnamed module @5a157034
>
> Another way to recreate the issue is to update ListCommand in artifact karaf-command-example-command to used Session.getConsole() for the outputStream in table.print()
> …
> import org.apache.karaf.shell.api.console.Session;
> …
> @Reference
> private Session session;
> …
> table.print(session.getConsole());
> ...
>
> Paul Spencer
>> On Jan 19, 2026, at 10:20 AM, Paul Spencer <pa...@mindspring.com> wrote:
>>
>> JB,
>> I have not, but ShellTable in 4.4.9 is the same as 4.4.3. Line 190 is the source of the illegal access warning.
>>
>>
>> Passing a non-null CharSet to table.print() avoids the encoding calculation and warning
>> Paul Spencer
>>
>>> On Jan 19, 2026, at 10:00 AM, Jean-Baptiste Onofré <jb...@nanthrax.net> wrote:
>>>
>>> Hi Paul
>>>
>>> Did you try with Karaf 4.4.9 ?
>>>
>>> Regards
>>> JB
>>>
>>> Le ven. 16 janv. 2026 à 16:10, Paul Spencer <pa...@mindspring.com> a écrit :
>>> To recreated:
>>> 1. In session #1, Start Karaf using the command bin/karaf
>>> 2. In session #2, Start Karaf using the command bin/client
>>> 3. In session #2, execute the command writing the table, bugdata:display in this case.
>>> 4. In session #1, The warning will be displayed only once.
>>>
>>> Additional behavior notes:
>>> - `table.print(System.out)` does not generate the warning
>>> - `table.print(session.getConsole())` will generate the warning on first use.
>>>
>>> Paul Spencer
>>>
>>>
>>>> On Jan 16, 2026, at 9:48 AM, Paul Spencer <pa...@mindspring.com> wrote:
>>>>
>>>> Karaf: 4.4.3
>>>> Java Virtual Machine: OpenJDK 64-Bit Server VM version 11.0.2+9
>>>>
>>>> I am seeing the following error when using ShellTable.print() to shell's session console.
>>>>
>>>> WARNING: An illegal reflective access operation has occurred
>>>> WARNING: Illegal reflective access by org.apache.karaf.shell.support.table.ShellTable (jar:bundle://e299aef6-746a-44e6-b810-da872d8d9244_44.0:0/!/) to field java.io.PrintStream.charOut
>>>> WARNING: Please consider reporting this to the maintainers of org.apache.karaf.shell.support.table.ShellTable
>>>> WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
>>>> WARNING: All illegal access operations will be denied in a future release
>>>>
>>>> The default for --illegal-access changes to deny in Java 16 and the functionality is remove in Java 17.
>>>> https://docs.oracle.com/en/java/javase/16/docs/specs/man/java.html#extra-options-for-java
>>>>
>>>> The offending code appears in getEncoding() for shell/core/src/main/java/org/apache/karaf/shell/support/table/ShellTable.java
>>>> Since the Should I create an issue in GitHub?
>>>>
>>>> ### Example Code
>>>> import org.apache.karaf.shell.api.console.Session;
>>>> import org.apache.karaf.shell.support.table.ShellTable;
>>>> @Service
>>>> @Command(scope = "bugdata", name = "appt-display", description = "Display an appoiment schedule")
>>>> public class MyCommand implements Action {
>>>> @Reference
>>>> private Session session;
>>>>
>>>> @Override
>>>> public Object execute() throws Exception {
>>>> final var output = session.getConsole();
>>>> final var table = new ShellTable();
>>>> ...
>>>> table.print(output);
>>>> }
>>>> }
>>>>
>>>>
>>>> Paul Spencer
>>>
>>>
>
Re: Karaf 4.4.x "An illegal reflective access operation has occurred" when using ShellTable.print()
Posted by Paul Spencer <pa...@mindspring.com>.
JB,
I have confirmed the issued existing 4.4.10-SNAPSHOT rebase on January 19, 2026
Tested with Java 17, I get the following error:
Unable to make field private java.io.OutputStreamWriter java.io.PrintStream.charOut accessible: module java.base does not "opens java.io" to unnamed module @5a157034
Another way to recreate the issue is to update ListCommand in artifact karaf-command-example-command to used Session.getConsole() for the outputStream in table.print()
…
import org.apache.karaf.shell.api.console.Session;
…
@Reference
private Session session;
…
table.print(session.getConsole());
...
Paul Spencer
> On Jan 19, 2026, at 10:20 AM, Paul Spencer <pa...@mindspring.com> wrote:
>
> JB,
> I have not, but ShellTable in 4.4.9 is the same as 4.4.3. Line 190 is the source of the illegal access warning.
>
>
> Passing a non-null CharSet to table.print() avoids the encoding calculation and warning
> Paul Spencer
>
>> On Jan 19, 2026, at 10:00 AM, Jean-Baptiste Onofré <jb...@nanthrax.net> wrote:
>>
>> Hi Paul
>>
>> Did you try with Karaf 4.4.9 ?
>>
>> Regards
>> JB
>>
>> Le ven. 16 janv. 2026 à 16:10, Paul Spencer <pa...@mindspring.com> a écrit :
>> To recreated:
>> 1. In session #1, Start Karaf using the command bin/karaf
>> 2. In session #2, Start Karaf using the command bin/client
>> 3. In session #2, execute the command writing the table, bugdata:display in this case.
>> 4. In session #1, The warning will be displayed only once.
>>
>> Additional behavior notes:
>> - `table.print(System.out)` does not generate the warning
>> - `table.print(session.getConsole())` will generate the warning on first use.
>>
>> Paul Spencer
>>
>>
>> > On Jan 16, 2026, at 9:48 AM, Paul Spencer <pa...@mindspring.com> wrote:
>> >
>> > Karaf: 4.4.3
>> > Java Virtual Machine: OpenJDK 64-Bit Server VM version 11.0.2+9
>> >
>> > I am seeing the following error when using ShellTable.print() to shell's session console.
>> >
>> > WARNING: An illegal reflective access operation has occurred
>> > WARNING: Illegal reflective access by org.apache.karaf.shell.support.table.ShellTable (jar:bundle://e299aef6-746a-44e6-b810-da872d8d9244_44.0:0/!/) to field java.io.PrintStream.charOut
>> > WARNING: Please consider reporting this to the maintainers of org.apache.karaf.shell.support.table.ShellTable
>> > WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
>> > WARNING: All illegal access operations will be denied in a future release
>> >
>> > The default for --illegal-access changes to deny in Java 16 and the functionality is remove in Java 17.
>> > https://docs.oracle.com/en/java/javase/16/docs/specs/man/java.html#extra-options-for-java
>> >
>> > The offending code appears in getEncoding() for shell/core/src/main/java/org/apache/karaf/shell/support/table/ShellTable.java
>> > Since the Should I create an issue in GitHub?
>> >
>> > ### Example Code
>> > import org.apache.karaf.shell.api.console.Session;
>> > import org.apache.karaf.shell.support.table.ShellTable;
>> > @Service
>> > @Command(scope = "bugdata", name = "appt-display", description = "Display an appoiment schedule")
>> > public class MyCommand implements Action {
>> > @Reference
>> > private Session session;
>> >
>> > @Override
>> > public Object execute() throws Exception {
>> > final var output = session.getConsole();
>> > final var table = new ShellTable();
>> > ...
>> > table.print(output);
>> > }
>> > }
>> >
>> >
>> > Paul Spencer
>>
>>
Re: Karaf 4.4.x "An illegal reflective access operation has occurred" when using ShellTable.print()
Posted by Paul Spencer <pa...@mindspring.com>.
JB,
I have not, but ShellTable in 4.4.9 is the same as 4.4.3. Line 190 is the
source of the illegal access warning.
Passing a non-null CharSet to table.print() avoids the encoding calculation
and warning
Paul Spencer
> On Jan 19, 2026, at 10:00 AM, Jean-Baptiste Onofré <jb...@nanthrax.net> wrote:
>
>
>
>
> Hi Paul
>
>
>
>
> Did you try with Karaf 4.4.9 ?
>
>
>
>
> Regards
>
> JB
>
>
>
>
> Le ven. 16 janv. 2026 à 16:10, Paul Spencer
> <[paulspencer@mindspring.com](mailto:paulspencer@mindspring.com)> a écrit :
>
>
>> To recreated:
> 1\. In session #1, Start Karaf using the command bin/karaf
> 2\. In session #2, Start Karaf using the command bin/client
> 3\. In session #2, execute the command writing the table, bugdata:display
> in this case.
> 4\. In session #1, The warning will be displayed only once.
>
> Additional behavior notes:
> \- `table.print(System.out)` does not generate the warning
> \- `table.print(session.getConsole())` will generate the warning on first
> use.
>
> Paul Spencer
>
>
> > On Jan 16, 2026, at 9:48 AM, Paul Spencer
> <[paulspencer@mindspring.com](mailto:paulspencer@mindspring.com)> wrote:
> >
> > Karaf: 4.4.3
> > Java Virtual Machine: OpenJDK 64-Bit Server VM version 11.0.2+9
> >
> > I am seeing the following error when using ShellTable.print() to shell's
> session console.
> >
> > WARNING: An illegal reflective access operation has occurred
> > WARNING: Illegal reflective access by
> org.apache.karaf.shell.support.table.ShellTable
> (jar:bundle://e299aef6-746a-44e6-b810-da872d8d9244_44.0:0/!/) to field
> java.io.PrintStream.charOut
> > WARNING: Please consider reporting this to the maintainers of
> org.apache.karaf.shell.support.table.ShellTable
> > WARNING: Use --illegal-access=warn to enable warnings of further illegal
> reflective access operations
> > WARNING: All illegal access operations will be denied in a future release
> >
> > The default for --illegal-access changes to deny in Java 16 and the
> functionality is remove in Java 17.
> >
> <https://docs.oracle.com/en/java/javase/16/docs/specs/man/java.html#extra-
> options-for-java>
> >
> > The offending code appears in getEncoding() for
> shell/core/src/main/java/org/apache/karaf/shell/support/table/ShellTable.java
> > Since the Should I create an issue in GitHub?
> >
> > ### Example Code
> > import org.apache.karaf.shell.api.console.Session;
> > import org.apache.karaf.shell.support.table.ShellTable;
> > @Service
> > @Command(scope = "bugdata", name = "appt-display", description = "Display
> an appoiment schedule")
> > public class MyCommand implements Action {
> > @Reference
> > private Session session;
> >
> > @Override
> > public Object execute() throws Exception {
> > final var output = session.getConsole();
> > final var table = new ShellTable();
> > ...
> > table.print(output);
> > }
> > }
> >
> >
> > Paul Spencer
>
>
>
Re: Karaf 4.4.x "An illegal reflective access operation has occurred" when using ShellTable.print()
Posted by Jean-Baptiste Onofré <jb...@nanthrax.net>.
Hi Paul
Did you try with Karaf 4.4.9 ?
Regards
JB
Le ven. 16 janv. 2026 à 16:10, Paul Spencer <pa...@mindspring.com> a
écrit :
> To recreated:
> 1. In session #1, Start Karaf using the command bin/karaf
> 2. In session #2, Start Karaf using the command bin/client
> 3. In session #2, execute the command writing the table, bugdata:display
> in this case.
> 4. In session #1, The warning will be displayed only once.
>
> Additional behavior notes:
> - `table.print(System.out)` does not generate the warning
> - `table.print(session.getConsole())` will generate the warning on first
> use.
>
> Paul Spencer
>
>
> > On Jan 16, 2026, at 9:48 AM, Paul Spencer <pa...@mindspring.com>
> wrote:
> >
> > Karaf: 4.4.3
> > Java Virtual Machine: OpenJDK 64-Bit Server VM version 11.0.2+9
> >
> > I am seeing the following error when using ShellTable.print() to shell's
> session console.
> >
> > WARNING: An illegal reflective access operation has occurred
> > WARNING: Illegal reflective access by
> org.apache.karaf.shell.support.table.ShellTable
> (jar:bundle://e299aef6-746a-44e6-b810-da872d8d9244_44.0:0/!/) to field
> java.io.PrintStream.charOut
> > WARNING: Please consider reporting this to the maintainers of
> org.apache.karaf.shell.support.table.ShellTable
> > WARNING: Use --illegal-access=warn to enable warnings of further illegal
> reflective access operations
> > WARNING: All illegal access operations will be denied in a future release
> >
> > The default for --illegal-access changes to deny in Java 16 and the
> functionality is remove in Java 17.
> >
> https://docs.oracle.com/en/java/javase/16/docs/specs/man/java.html#extra-options-for-java
> >
> > The offending code appears in getEncoding() for
> shell/core/src/main/java/org/apache/karaf/shell/support/table/ShellTable.java
> > Since the Should I create an issue in GitHub?
> >
> > ### Example Code
> > import org.apache.karaf.shell.api.console.Session;
> > import org.apache.karaf.shell.support.table.ShellTable;
> > @Service
> > @Command(scope = "bugdata", name = "appt-display", description =
> "Display an appoiment schedule")
> > public class MyCommand implements Action {
> > @Reference
> > private Session session;
> >
> > @Override
> > public Object execute() throws Exception {
> > final var output = session.getConsole();
> > final var table = new ShellTable();
> > ...
> > table.print(output);
> > }
> > }
> >
> >
> > Paul Spencer
>
>
>
Re: Karaf 4.4.x "An illegal reflective access operation has occurred" when using ShellTable.print()
Posted by Paul Spencer <pa...@mindspring.com>.
To recreated:
1. In session #1, Start Karaf using the command bin/karaf
2. In session #2, Start Karaf using the command bin/client
3. In session #2, execute the command writing the table, bugdata:display in this case.
4. In session #1, The warning will be displayed only once.
Additional behavior notes:
- `table.print(System.out)` does not generate the warning
- `table.print(session.getConsole())` will generate the warning on first use.
Paul Spencer
> On Jan 16, 2026, at 9:48 AM, Paul Spencer <pa...@mindspring.com> wrote:
>
> Karaf: 4.4.3
> Java Virtual Machine: OpenJDK 64-Bit Server VM version 11.0.2+9
>
> I am seeing the following error when using ShellTable.print() to shell's session console.
>
> WARNING: An illegal reflective access operation has occurred
> WARNING: Illegal reflective access by org.apache.karaf.shell.support.table.ShellTable (jar:bundle://e299aef6-746a-44e6-b810-da872d8d9244_44.0:0/!/) to field java.io.PrintStream.charOut
> WARNING: Please consider reporting this to the maintainers of org.apache.karaf.shell.support.table.ShellTable
> WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
> WARNING: All illegal access operations will be denied in a future release
>
> The default for --illegal-access changes to deny in Java 16 and the functionality is remove in Java 17.
> https://docs.oracle.com/en/java/javase/16/docs/specs/man/java.html#extra-options-for-java
>
> The offending code appears in getEncoding() for shell/core/src/main/java/org/apache/karaf/shell/support/table/ShellTable.java
> Since the Should I create an issue in GitHub?
>
> ### Example Code
> import org.apache.karaf.shell.api.console.Session;
> import org.apache.karaf.shell.support.table.ShellTable;
> @Service
> @Command(scope = "bugdata", name = "appt-display", description = "Display an appoiment schedule")
> public class MyCommand implements Action {
> @Reference
> private Session session;
>
> @Override
> public Object execute() throws Exception {
> final var output = session.getConsole();
> final var table = new ShellTable();
> ...
> table.print(output);
> }
> }
>
>
> Paul Spencer