protected void initLocalClusterNode() {
    InetAddress inetAddress = getBindInetAddress(_controlJChannel);

    ClusterNode clusterNode = new ClusterNode(PortalUUIDUtil.generate(), inetAddress);

    if (Validator.isNull(PropsValues.PORTAL_INSTANCE_PROTOCOL)) {
      _localClusterNode = clusterNode;

      return;
    }

    if (Validator.isNull(PropsValues.PORTAL_INSTANCE_INET_SOCKET_ADDRESS)) {
      throw new IllegalArgumentException(
          "Portal instance host name and port needs to be set in the "
              + "property \"portal.instance.inet.socket.address\"");
    }

    String[] parts =
        StringUtil.split(PropsValues.PORTAL_INSTANCE_INET_SOCKET_ADDRESS, CharPool.COLON);

    if (parts.length != 2) {
      throw new IllegalArgumentException(
          "Unable to parse the portal instance host name and port from "
              + PropsValues.PORTAL_INSTANCE_INET_SOCKET_ADDRESS);
    }

    InetAddress hostInetAddress = null;

    try {
      hostInetAddress = InetAddress.getByName(parts[0]);
    } catch (UnknownHostException uhe) {
      throw new IllegalArgumentException(
          "Unable to parse the portal instance host name and port from "
              + PropsValues.PORTAL_INSTANCE_INET_SOCKET_ADDRESS,
          uhe);
    }

    int port = -1;

    try {
      port = GetterUtil.getIntegerStrict(parts[1]);
    } catch (NumberFormatException nfe) {
      throw new IllegalArgumentException(
          "Unable to parse portal InetSocketAddress port from "
              + PropsValues.PORTAL_INSTANCE_INET_SOCKET_ADDRESS,
          nfe);
    }

    clusterNode.setPortalInetSocketAddress(new InetSocketAddress(hostInetAddress, port));

    clusterNode.setPortalProtocol(PropsValues.PORTAL_INSTANCE_PROTOCOL);

    _localClusterNode = clusterNode;
  }