blob: 8d750b04167dd4b813e9bbca5c6263fed814c2d2 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.servicecomb.demo.perf;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import com.google.common.base.Strings;
@Component
public class PerfConfiguration {
public static int syncCount;
public static int asyncCount;
public static boolean sync;
public static String producer;
public static String id;
public static int step;
public static int all;
public static boolean fromDB;
public static int responseSize;
public static String responseData;
public static int redisClientCount;
public static String redisHost;
public static int redisPort;
public static String redisPassword;
public static String buildResponse(String from, String id) {
return new StringBuilder(64 + PerfConfiguration.responseData.length())
.append(id)
.append(" from ")
.append(from)
.append(": ")
.append(PerfConfiguration.responseData)
.toString();
}
@Value(value = "${response-size}")
public void setResponseSize(int responseSize) {
PerfConfiguration.responseSize = responseSize;
PerfConfiguration.responseData = Strings.repeat("a", responseSize);
}
@Value(value = "${sync-count}")
public void setSyncCount(int syncCount) {
PerfConfiguration.syncCount = syncCount;
}
@Value(value = "${async-count}")
public void setAsyncCount(int asyncCount) {
PerfConfiguration.asyncCount = asyncCount;
}
@Value(value = "${sync}")
public void setSync(boolean sync) {
PerfConfiguration.sync = sync;
}
@Value(value = "${producer}")
public void setProducer(String producer) {
PerfConfiguration.producer = producer;
}
@Value(value = "${id}")
public void setId(String id) {
PerfConfiguration.id = id;
}
@Value(value = "${step}")
public void setStep(int step) {
PerfConfiguration.step = step;
}
@Value(value = "${all}")
public void setAll(int all) {
PerfConfiguration.all = all;
}
@Value(value = "${fromDB}")
public void setFromDB(boolean fromDB) {
PerfConfiguration.fromDB = fromDB;
}
@Value(value = "${redis.client.count}")
public void setRedisClientCount(int redisClientCount) {
PerfConfiguration.redisClientCount = redisClientCount;
}
@Value(value = "${redis.host}")
public void setRedisHost(String redisHost) {
PerfConfiguration.redisHost = redisHost;
}
@Value(value = "${redis.port}")
public void setRedisPort(int redisPort) {
PerfConfiguration.redisPort = redisPort;
}
@Value(value = "${redis.password:}")
public void setRedisPassword(String redisPassword) {
if (StringUtils.isEmpty(redisPassword)) {
return;
}
PerfConfiguration.redisPassword = redisPassword;
}
}