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'");
}
}
}