package org.cloudfoundry.community.servicebroker.brooklyn.service; import java.util.Set; import java.util.concurrent.Future; import org.apache.brooklyn.util.exceptions.Exceptions; import org.apache.brooklyn.util.text.Strings; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.google.common.base.Objects; import com.google.common.base.Objects.ToStringHelper; import com.google.common.base.Throwables; public class ServiceUtil { private static final Logger LOG = LoggerFactory.getLogger(ServiceUtil.class); public static String getUniqueName(String name, Set<String> names) { name = getSafeName(name); if (!names.contains(name)) { names.add(name); return name; } int i = 1; while (names.contains(name + "_" + i)) { i++; } names.add(name + "_" + i); return name + "_" + i; } public static <V> V getFutureValueLoggingError(Future<V> future) { V v = null; try { v = future.get(); } catch (Exception e) { LOG.error(Throwables.getStackTraceAsString(e)); throw Exceptions.propagate(e); } return v; } public static String getSafeName(String name) { return Strings.makeValidJavaName(name).toLowerCase(); } }