1 /* 2 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"). 5 * You may not use this file except in compliance with the License. 6 * A copy of the License is located at 7 * 8 * http://aws.amazon.com/apache2.0 9 * 10 * or in the "license" file accompanying this file. This file is distributed 11 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 12 * express or implied. See the License for the specific language governing 13 * permissions and limitations under the License. 14 */ 15 16 package software.amazon.awssdk.benchmark.utils; 17 18 import com.fasterxml.jackson.databind.ObjectMapper; 19 import java.time.Instant; 20 import java.time.LocalDateTime; 21 import java.time.ZoneOffset; 22 import software.amazon.awssdk.core.SdkBytes; 23 import software.amazon.awssdk.services.protocolec2.model.AllTypesRequest; 24 25 /** 26 * Contains constants used by the benchmarks 27 */ 28 @SuppressWarnings("unchecked") 29 public final class BenchmarkConstant { 30 31 public static final String DEFAULT_JDK_SSL_PROVIDER = "jdk"; 32 public static final String OPEN_SSL_PROVIDER = "openssl"; 33 34 public static final int CONCURRENT_CALLS = 50; 35 36 public static final Instant TIMESTAMP_MEMBER = LocalDateTime.now().toInstant(ZoneOffset.UTC); 37 38 public static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); 39 40 public static final String ERROR_JSON_BODY = "{}"; 41 42 public static final String JSON_BODY = "{\"StringMember\":\"foo\",\"IntegerMember\":123,\"BooleanMember\":true," 43 + "\"FloatMember\":123.0,\"DoubleMember\":123.9,\"LongMember\":123," 44 + "\"SimpleList\":[\"so simple\"]," 45 + "\"ListOfStructs\":[{\"StringMember\":\"listOfStructs1\"}]," 46 + "\"TimestampMember\":1540982918.887," 47 + "\"StructWithNestedTimestampMember\":{\"NestedTimestamp\":1540982918.908}," 48 + "\"BlobArg\":\"aGVsbG8gd29ybGQ=\"}"; 49 50 public static final String XML_BODY = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><AllTypesResponse " 51 + "xmlns=\"https://restxml/\"><stringMember>foo</stringMember><integerMember>123" 52 + "</integerMember><booleanMember>true</booleanMember><floatMember>123" 53 + ".0</floatMember><doubleMember>123" 54 + ".9</doubleMember><longMember>123</longMember><simpleList><member>so " 55 + "simple</member></simpleList><listOfStructs><member><StringMember>listOfStructs1" 56 + "</StringMember></member></listOfStructs><timestampMember>2018-10-31T10:51:12" 57 + ".302183Z</timestampMember><structWithNestedTimestampMember><NestedTimestamp>2018" 58 + "-10-31T10:51:12.311305Z</NestedTimestamp></structWithNestedTimestampMember" 59 + "><blobArg>aGVsbG8gd29ybGQ=</blobArg></AllTypesResponse>"; 60 61 public static final String ERROR_XML_BODY = "<ErrorResponse>" 62 + " <Error>" 63 + " <Code>ImplicitPayloadException</Code>" 64 + " <Message>this is the service message</Message>" 65 + " <StringMember>foo</StringMember>" 66 + " <IntegerMember>42</IntegerMember>" 67 + " <LongMember>9001</LongMember>" 68 + " <DoubleMember>1234.56</DoubleMember>" 69 + " <FloatMember>789.10</FloatMember>" 70 + " <TimestampMember>2015-01-25T08:00:12Z</TimestampMember>" 71 + " <BooleanMember>true</BooleanMember>" 72 + " <BlobMember>dGhlcmUh</BlobMember>" 73 + " <ListMember>" 74 + " <member>valOne</member>" 75 + " <member>valTwo</member>" 76 + " </ListMember>" 77 + " <MapMember>" 78 + " <entry>" 79 + " <key>keyOne</key>" 80 + " <value>valOne</value>" 81 + " </entry>" 82 + " <entry>" 83 + " <key>keyTwo</key>" 84 + " <value>valTwo</value>" 85 + " </entry>" 86 + " </MapMember>" 87 + " <SimpleStructMember>" 88 + " <StringMember>foobar</StringMember>" 89 + " </SimpleStructMember>" 90 + " </Error>" 91 + "</ErrorResponse>"; 92 93 public static final software.amazon.awssdk.services.protocolrestxml.model.AllTypesRequest XML_ALL_TYPES_REQUEST = 94 software.amazon.awssdk.services.protocolrestxml.model.AllTypesRequest.builder() 95 .stringMember("foo") 96 .integerMember(123) 97 .booleanMember(true) 98 .floatMember(123.0f) 99 .doubleMember(123.9) 100 .longMember(123L) 101 .simpleStructMember(b -> b.stringMember( 102 "bar")) 103 .simpleList("so simple") 104 .listOfStructs(b -> b.stringMember( 105 "listOfStructs1").stringMember( 106 "listOfStructs1")) 107 .timestampMember( 108 TIMESTAMP_MEMBER) 109 .structWithNestedTimestampMember( 110 b -> b.nestedTimestamp(TIMESTAMP_MEMBER)) 111 .blobArg(SdkBytes.fromUtf8String("hello " 112 + "world")) 113 .build(); 114 public static final software.amazon.awssdk.services.protocolquery.model.AllTypesRequest QUERY_ALL_TYPES_REQUEST = 115 software.amazon.awssdk.services.protocolquery.model.AllTypesRequest.builder() 116 .stringMember("foo") 117 .integerMember(123) 118 .booleanMember(true) 119 .floatMember(123.0f) 120 .doubleMember(123.9) 121 .longMember(123L) 122 .simpleStructMember(b -> b.stringMember( 123 "bar")) 124 .simpleList("so simple") 125 .listOfStructs(b -> b.stringMember( 126 "listOfStructs1").stringMember( 127 "listOfStructs1")) 128 .timestampMember( 129 TIMESTAMP_MEMBER) 130 .structWithNestedTimestampMember( 131 b -> b.nestedTimestamp( 132 TIMESTAMP_MEMBER)) 133 .blobArg(SdkBytes.fromUtf8String("hello " + 134 "world")) 135 .build(); 136 137 138 public static final software.amazon.awssdk.services.protocolrestjson.model.AllTypesRequest JSON_ALL_TYPES_REQUEST = 139 software.amazon.awssdk.services.protocolrestjson.model.AllTypesRequest.builder() 140 .stringMember("foo") 141 .integerMember(123) 142 .booleanMember(true) 143 .floatMember(123.0f) 144 .doubleMember(123.9) 145 .longMember(123L) 146 .simpleList("so simple") 147 .listOfStructs(b -> b.stringMember( 148 "listOfStructs1").stringMember( 149 "listOfStructs1")) 150 .timestampMember( 151 TIMESTAMP_MEMBER) 152 .structWithNestedTimestampMember( 153 b -> b.nestedTimestamp( 154 TIMESTAMP_MEMBER)) 155 .blobArg(SdkBytes.fromUtf8String("hello " 156 + "world")) 157 .build(); 158 public static final AllTypesRequest EC2_ALL_TYPES_REQUEST = 159 AllTypesRequest.builder() 160 .stringMember("foo") 161 .integerMember(123) 162 .booleanMember(true) 163 .floatMember(123.0f) 164 .doubleMember(123.9) 165 .longMember(123L) 166 .simpleStructMember(b -> b.stringMember( 167 "bar")) 168 .simpleList("so simple") 169 .listOfStructs(b -> b.stringMember( 170 "listOfStructs1").stringMember( 171 "listOfStructs1")) 172 .timestampMember(TIMESTAMP_MEMBER) 173 .structWithNestedTimestampMember(b -> b.nestedTimestamp( 174 TIMESTAMP_MEMBER)) 175 .blobArg(SdkBytes.fromUtf8String("hello " 176 + "world")) 177 .build(); 178 BenchmarkConstant()179 private BenchmarkConstant() { 180 } 181 } 182