This example shows a class that represents the asadmin command create-mycontainer.
The usage statement for this command is as follows:
asadmin create-mycontainer --originator any-character-string [--description any-character-string] [--enabled {true|false}] any-character-string |
This command uses injection to specify that a running domain is required.
package com.example.mycontainer; import org.glassfish.api.admin.AdminCommand; import org.glassfish.api.admin.AdminCommandContext; import org.glassfish.api.I18n; import org.glassfish.api.Param; import org.jvnet.hk2.annotations.Service; import org.jvnet.hk2.annotations.Inject; import org.jvnet.hk2.annotations.Scoped; import org.jvnet.hk2.component.PerLookup; /** * Sample command */ @Service(name="create-mycontainer") @Scoped(PerLookup.class) public Class CreateMycontainer implements AdminCommand { @Inject Domain domain; @Param String originator; @Param(name="description", optional=true) @I18n("mydesc") String mycontainerDescription @Param (acceptableValues="true,false", defaultValue="false", optional=true) String enabled @Param(primary=true) String containername; /** * Executes the command with the command parameters passed as Properties * where the keys are the paramter names and the values the parameter values * @param context information */ public void execute(AdminCommandContext context) { // domain and originator are not null // mycontainerDescription can be null. } }
The following message text strings are defined in the file LocalStrings.properties for use by the command:
create-mycontainer.command=Creates a custom container create-mycontainer.command.originator=The originator of the container create-mycontainer.command.mydesc=A description of the container create-mycontainer.command.enabled=Whether the container is enabled or disabled create-mycontainer.command.containername=The container name
This example shows a class that represents the asadmin command list-runtime-environment. The command determines the operating system or runtime information for Enterprise Server
The usage statement for this command is as follows:
asadmin list-runtime-environment{runtime|os} |
package com.example.env.cli; import org.glassfish.api.admin.AdminCommand; import org.glassfish.api.admin.AdminCommandContext; import org.glassfish.api.ActionReport; import org.glassfish.api.I18n; import org.glassfish.api.ActionReport.ExitCode; import org.glassfish.api.Param; import org.jvnet.hk2.annotations.Service; import org.jvnet.hk2.annotations.Inject; import org.jvnet.hk2.annotations.Scoped; import org.jvnet.hk2.component.PerLookup; import java.lang.management.ManagementFactory; import java.lang.management.OperatingSystemMXBean; import java.lang.management.RuntimeMXBean; /** * Demos asadmin CLI extension * */ @Service(name="list-runtime-environment") @Scoped(PerLookup.class) public class ListRuntimeEnvironmentCommand implements AdminCommand { // this value can be either runtime or os for our demo @Param(primary=true) String inParam; public void execute(AdminCommandContext context) { ActionReport report = context.getActionReport(); report.setActionExitCode(ExitCode.SUCCESS); // If the inParam is 'os' then this command returns operating system info // and if the inParam is 'runtime' then it returns runtime info. // Both of the above are based on mxbeans. if ("os".equals(inParam)) { OperatingSystemMXBean osmb = ManagementFactory.getOperatingSystemMXBean(); report.setMessage("Your machine operating system name = " + osmb.getName()); } else if ("runtime".equals(inParam)) { RuntimeMXBean rtmb = ManagementFactory.getRuntimeMXBean(); report.setMessage("Your JVM name = " + rtmb.getVmName()); } else { report.setActionExitCode(ExitCode.FAILURE); report.setMessage("operand should be either 'os' or 'runtime'"); } } }