package org.distributeme.core.interceptor.availabilitytesting; import net.anotheria.util.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.ArrayList; import java.util.List; /** * Utility to handle availabilitytesting properties.. * * @author lrosenberg * @version $Id: $Id */ public class PropertyInterceptorUtil { /** * Logger. */ private static final Logger log = LoggerFactory.getLogger(PropertyInterceptorUtil.class); /** * Configured service ids. */ private static List<String> serviceIds = extractServiceIds(); /** * <p>extractServiceIds.</p> * * @return a {@link java.util.List} object. */ public static List<String> extractServiceIds() { List<String> propertyValues = new ArrayList<String>(); String pValue = System.getProperty(Constants.PROPERTY_SERVICE_ID); if (pValue!=null && pValue.length()>0){ String tokens[] = StringUtils.tokenize(pValue, ','); for (String s : tokens) propertyValues.add(s); } return propertyValues; } /** * <p>getSlowDownTime.</p> * * @return a long. */ public static final long getSlowDownTime(){ try{ String slowDownTimeAsString = System.getProperty(Constants.PROPERTY_SLOWDOWN_TIME_IN_MILLIS); if (slowDownTimeAsString!=null && slowDownTimeAsString.length()>0){ return Long.parseLong(slowDownTimeAsString); } }catch(Exception e){ log.warn("Couldn't parse slowdowntime, returning default value "+Constants.DEFAULT_SLOW_DOWN_TIME, e); } return Constants.DEFAULT_SLOW_DOWN_TIME; } /** * <p>isServiceIdConfiguredByProperty.</p> * * @param serviceId a {@link java.lang.String} object. * @return a boolean. */ public static boolean isServiceIdConfiguredByProperty(String serviceId){ return serviceIds.contains(serviceId) || serviceIds.contains("*"); } /** * Returns true if the service should be flipped. * * @return a boolean. */ public static boolean flip(){ return false; } }