class ServiceInfo {

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        ServiceInfo that = (ServiceInfo) o;

        if (ports != null ? !ports.equals(that.ports) : that.ports != null) return false;
        if (properties != null ? !properties.equals(that.properties) : that.properties != null) return false;
        if (!serviceName.equals(that.serviceName)) return false;
        if (!serviceType.equals(that.serviceType)) return false;
        if (!configId.equals(that.configId)) return false;
        if (!hostName.equals(that.hostName)) return false;

        return true;
    }

    public  ServiceInfo(String serviceName, String serviceType, Collection<PortInfo> ports, Map<String, String> properties,
                       String configId, String hostName);

}