private final String asadminParentPath;
public DcomInfo(Node theNode) throws WindowsException {
// Create a resolver that can replace system properties in strings
// System Properties can change at any time so do NOT cache this object
TokenResolver resolver = new TokenResolver(
new HashMap<String, String>((Map) (System.getProperties())));
node = theNode;
if (node == null)
throw new WindowsException(
Strings.get("internal.error", "Node is null"));
if (!isDcomNode(node))
throw new WindowsException(Strings.get("not.dcom.node",
getNode().getName(), getNode().getType()));
SshConnector conn = node.getSshConnector();
if (conn == null)
throw new WindowsException(Strings.get("no.password"));
SshAuth auth = conn.getSshAuth();
if (auth == null)
throw new WindowsException(Strings.get("no.password"));
String notFinal = auth.getPassword();
if (!ok(notFinal))
throw new WindowsException(Strings.get("no.password"));
password = DcomUtils.resolvePassword(notFinal);
notFinal = node.getNodeHost();
if (!ok(notFinal))
notFinal = conn.getSshHost();
if (!ok(notFinal))
throw new WindowsException(Strings.get("no.host"));
host = resolver.resolve(notFinal);
notFinal = auth.getUserName();
if (!ok(notFinal))
notFinal = System.getProperty("user.name");
if (!ok(notFinal))
throw new WindowsException(Strings.get("no.username"));
user = resolver.resolve(notFinal);
notFinal = node.getWindowsDomain();
if (!ok(notFinal))
notFinal = host;
windowsDomain = resolver.resolve(notFinal);
notFinal = node.getInstallDirUnixStyle();
if (!ok(notFinal))
throw new WindowsException(Strings.get("no.lib.dir"));