Jdk5JavaProcess.java
package org.cyclopsgroup.jmxterm.jdk5;
import java.io.IOException;
import org.apache.commons.lang3.Validate;
import org.cyclopsgroup.jmxterm.JavaProcess;
/**
* JDK5 specific implementation of {@link JavaProcess}
*
* @author <a href="mailto:jiaqi.guo@gmail.com">Jiaqi Guo</a>
*/
class Jdk5JavaProcess implements JavaProcess {
private final String command;
private final ConnectorAddressLink connectorAddressLink;
private final int processId;
private String url;
/**
* @param processId Platform PID of process
* @param command Original command
* @param connectorAddressLink A connector link
*/
Jdk5JavaProcess(int processId, String command, ConnectorAddressLink connectorAddressLink) {
Validate.isTrue(processId > 0, "Invalid process ID " + processId);
Validate.notNull(command, "Command line can't be NULL");
Validate.notNull(connectorAddressLink, "connectorAddressLink can't be NULL");
this.processId = processId;
this.command = command;
this.connectorAddressLink = connectorAddressLink;
}
@Override
public String getDisplayName() {
return command;
}
@Override
public int getProcessId() {
return processId;
}
@Override
public boolean isManageable() {
return url != null;
}
@Override
public void startManagementAgent() throws IOException {
if (url != null) {
return;
}
url = connectorAddressLink.importFrom(processId);
}
@Override
public String toUrl() {
return url;
}
}