/** * Copyright 2011 Intuit Inc. All Rights Reserved */ package com.intuit.tank; /* * #%L * JSF Support Beans * %% * Copyright (C) 2011 - 2015 Intuit Inc. * %% * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * #L% */ import java.io.Serializable; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; import javax.enterprise.context.SessionScoped; import javax.faces.model.SelectItem; import javax.inject.Named; import com.intuit.tank.harness.StopBehavior; import com.intuit.tank.logging.LoggingProfile; import com.intuit.tank.vm.settings.AgentConfig; import com.intuit.tank.vm.settings.LocationsConfig; import com.intuit.tank.vm.settings.ProductConfig; import com.intuit.tank.vm.settings.SelectableItem; import com.intuit.tank.vm.settings.TankConfig; import com.intuit.tank.vm.settings.VmInstanceType; /** * ProjectService * * @author dangleton * */ @Named @SessionScoped public class ProjectUtilBean implements Serializable { private static final long serialVersionUID = 1L; private SelectItem[] productNames; private SelectItem[] locations; private SelectItem[] reportingModes; private SelectItem[] loggingProfiles; private SelectItem[] stopBehaviors; private SelectItem[] vmInstanceTypes; private SelectItem[] tankClientTypes; /** * */ public ProjectUtilBean() { ProductConfig productConfig = new TankConfig().getProductConfig(); List<SelectableItem> products = productConfig.getProducts(); productNames = new SelectItem[products.size()]; for (int i = 0; i < products.size(); i++) { SelectableItem item = products.get(i); productNames[i] = new SelectItem(item.getValue(), item.getDisplayName()); } LocationsConfig locationsConfig = new TankConfig().getLocationsConfig(); List<SelectableItem> l = locationsConfig.getLocations(); locations = new SelectItem[l.size()]; for (int i = 0; i < l.size(); i++) { SelectableItem item = l.get(i); locations[i] = new SelectItem(item.getValue(), item.getDisplayName()); } AgentConfig agentConfig = new TankConfig().getAgentConfig(); Map<String, String> resultsTypeMap = agentConfig.getResultsTypeMap(); List<String> resultsTypes = new ArrayList<String>(resultsTypeMap.keySet()); Collections.sort(resultsTypes); reportingModes = new SelectItem[resultsTypes.size()]; for (int i = 0; i < resultsTypes.size(); i++) { String s = resultsTypes.get(i); reportingModes[i] = new SelectItem(resultsTypeMap.get(s), s); } loggingProfiles = new SelectItem[LoggingProfile.values().length]; for (int i = 0; i < LoggingProfile.values().length; i++) { LoggingProfile lp = LoggingProfile.values()[i]; loggingProfiles[i] = new SelectItem(lp.name(), lp.getDisplayName(), lp.getDescription()); } stopBehaviors = new SelectItem[StopBehavior.values().length]; for (int i = 0; i < StopBehavior.values().length; i++) { StopBehavior sb = StopBehavior.values()[i]; stopBehaviors[i] = new SelectItem(sb.name(), sb.getDisplay(), sb.getDescription()); } List<VmInstanceType> instanceTypes = new TankConfig().getVmManagerConfig().getInstanceTypes(); vmInstanceTypes = new SelectItem[instanceTypes.size()]; for (int i = 0; i < instanceTypes.size(); i++) { VmInstanceType type = instanceTypes.get(i); vmInstanceTypes[i] = new SelectItem(type.getName(), type.getName(), type.getDisplay()); } Map<String, String> tankClientMap = new TankConfig().getAgentConfig().getTankClientMap(); tankClientTypes = new SelectItem[tankClientMap.size()]; List<String> tcl = new ArrayList<String>(tankClientMap.keySet()); Collections.sort(tcl); for (int i = 0; i < tcl.size(); i++) { String key = tcl.get(i); String className = tankClientMap.get(key); tankClientTypes[i] = new SelectItem(className, key, key); } } /** * @return the tankClientTypes */ public SelectItem[] getTankClientTypes() { return tankClientTypes; } public SelectItem[] getLoggingProfiles() { return loggingProfiles; } /** * @return the vmInstanceTypes */ public SelectItem[] getVmInstanceTypes() { return vmInstanceTypes; } /** * @return the productNames */ public SelectItem[] getProductNames() { return productNames; } /** * @return the locations */ public SelectItem[] getLocations() { return locations; } /** * @return the reportingModes */ public SelectItem[] getReportingModes() { return reportingModes; } /** * @return the stopBehaviors */ public SelectItem[] getStopBehaviors() { return stopBehaviors; } }