diff --git a/.gitignore b/.gitignore index a705e76..02df3c0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,26 @@ +# Ignore Maven target folder target/ -*.log + +# Intellij *.iml -*log.txt +*.ipr +*.iws +.idea + +# Eclipse +.settings/ +.classpath +.project +.factorypath + +# ignore NetBeans files +nbactions.xml +nb-configuration.xml +catalog.xml +nbproject + +# VS Code +**/.vscode/ + +# macOS Files +.DS_Store diff --git a/pom.xml b/pom.xml index 35973b0..178b0fc 100644 --- a/pom.xml +++ b/pom.xml @@ -16,88 +16,145 @@ UTF-8 - - 1.0.2.Final - 7.7.Final - - 1.0.3.Final + 3.11.5 + 10.0.0 + 5.0.0.Final - 2.1.1 + 4.9.6 + 3.1.0 + 4.9.2 + 3.4.0 - - 1.7 - 1.7 - 2.2.0 - 2.5 - 3.2.2 + + 17 + + true + + + ${project.build.directory}${file.separator}wildfly - org.jboss.spec - jboss-javaee-7.0 - ${version.jboss.spec.javaee.7.0} - pom + jakarta.platform + jakarta.jakartaee-bom + ${version.jakarta.ee} import + pom - - commons-codec - commons-codec - 1.10 + jakarta.annotation + jakarta.annotation-api + provided - - - - javax.enterprise - cdi-api + jakarta.enterprise + jakarta.enterprise.cdi-api provided - - - org.jboss.spec.javax.annotation - jboss-annotations-api_1.2_spec + jakarta.inject + jakarta.inject-api provided - - - org.jboss.spec.javax.ws.rs - jboss-jaxrs-api_2.0_spec + jakarta.json + jakarta.json-api provided - - javax.servlet - servlet-api - ${http-servlet.version} + jakarta.json.bind + jakarta.json.bind-api + provided + + + jakarta.servlet + jakarta.servlet-api + provided + + + jakarta.ws.rs + jakarta.ws.rs-api + provided + + + jakarta.xml.bind + jakarta.xml.bind-api provided io.gatling.highcharts gatling-charts-highcharts - ${gatling.version} + ${version.io.gatling} test + + org.eclipse.parsson + parsson + 1.1.6 + test + + org.json json - 20151123 + 20240303 test + + + + + maven-war-plugin + ${version.war.plugin} + + + false + + + + org.wildfly.plugins + wildfly-maven-plugin + ${version.wildfly.maven.plugin} + + ${jboss.home} + ${jboss.home} + + + org.wildfly + wildfly-ee-galleon-pack + + + + + + org.wildfly.channels + wildfly-ee + + + + + ee-core-profile-server + + + true + + + + + + single @@ -123,43 +180,24 @@ org.wildfly.plugins wildfly-maven-plugin - ${version.wildfly.maven.plugin} - - ${wildfly-hostname} - ${wildfly-port} - ${wildfly-username} - ${wildfly-password} - + - deploy + provision pre-integration-test - deploy + provision - - - - - - - - - server_as7 - - - !server - - - - ${project.artifactId} - - - org.jboss.as.plugins - jboss-as-maven-plugin - ${version.jboss.as.maven.plugin} - + + + start + pre-integration-test + + start + + + deploy pre-integration-test @@ -167,29 +205,7 @@ deploy - - - - - - - - server-undeploy - - - !server - - - - - - org.wildfly.plugins - wildfly-maven-plugin - ${version.wildfly.maven.plugin} - - true - - + undeploy post-integration-test @@ -197,6 +213,13 @@ undeploy + + shutdown + post-integration-test + + shutdown + + @@ -214,12 +237,24 @@ net.alchim31.maven scala-maven-plugin - ${scala-maven-plugin.version} + ${version.scala-maven-plugin} + + -deprecation + + + + test-scala-compile + + testCompile + + test-compile + + io.gatling gatling-maven-plugin - ${gatling.version} + ${version.gatling-maven-plugin} ${gatling.runMultipleSimulations} @@ -227,7 +262,8 @@ integration-test - execute + test + verify @@ -235,7 +271,7 @@ org.apache.maven.plugins maven-antrun-plugin - 1.8 + ${version.maven-ant-plugin} clean-pld-results @@ -257,8 +293,9 @@ - - + + + @@ -269,17 +306,4 @@ - - - - - maven-war-plugin - ${version.war.plugin} - - - false - - - - diff --git a/runStats.sh b/runStats.sh index 29a361e..a0785e9 100755 --- a/runStats.sh +++ b/runStats.sh @@ -11,13 +11,13 @@ SIMULATION_CLASS="org.jboss.perf.HashingServletSimulations\$Get" REQUESTS_PER_SECOND=$MIN_RPS NO_REPORTS=TRUE -HOST=_HOSTNAME_ +HOST="${HOSTNAME}" echo "Starting runs" while [ $REQUESTS_PER_SECOND -lt $MAX_RPS ] do echo "Running @: $REQUESTS_PER_SECOND" - mvn -P client gatling:execute -Dtest.host=$HOST -Dtest.rps=$REQUESTS_PER_SECOND -Dtest.rampUp=$RAMP_UP -Dtest.duration=$DURATION -Dtest.pauseTime=$THINK_TIME -Dgatling.simulationClass=$SIMULATION_CLASS -Dgatling.noReports=$NO_REPORTS -Dgatling.outputName=$REQUESTS_PER_SECOND + mvn -P client verify -Dtest.host=$HOST -Dtest.rps=$REQUESTS_PER_SECOND -Dtest.rampUp=$RAMP_UP -Dtest.duration=$DURATION -Dtest.pauseTime=$THINK_TIME -Dgatling.simulationClass=$SIMULATION_CLASS -Dgatling.noReports=$NO_REPORTS -Dgatling.outputName=$REQUESTS_PER_SECOND REQUESTS_PER_SECOND=$[$REQUESTS_PER_SECOND+$RPS_INCREMENT] done echo "done" diff --git a/src/main/java/org/jboss/perf/Activator.java b/src/main/java/org/jboss/perf/Activator.java index fbadcea..80eb597 100644 --- a/src/main/java/org/jboss/perf/Activator.java +++ b/src/main/java/org/jboss/perf/Activator.java @@ -1,11 +1,11 @@ package org.jboss.perf; -import javax.ws.rs.ApplicationPath; -import javax.ws.rs.NotFoundException; -import javax.ws.rs.core.Application; -import javax.ws.rs.core.Response; -import javax.ws.rs.ext.ExceptionMapper; -import javax.ws.rs.ext.Provider; +import jakarta.ws.rs.ApplicationPath; +import jakarta.ws.rs.NotFoundException; +import jakarta.ws.rs.core.Application; +import jakarta.ws.rs.core.Response; +import jakarta.ws.rs.ext.ExceptionMapper; +import jakarta.ws.rs.ext.Provider; /** * @author Radim Vansa <rvansa@redhat.com> diff --git a/src/main/java/org/jboss/perf/BytesHandler.java b/src/main/java/org/jboss/perf/BytesHandler.java index 64c154b..33e67b3 100644 --- a/src/main/java/org/jboss/perf/BytesHandler.java +++ b/src/main/java/org/jboss/perf/BytesHandler.java @@ -1,12 +1,12 @@ package org.jboss.perf; -import javax.ws.rs.Consumes; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; +import jakarta.ws.rs.Consumes; +import jakarta.ws.rs.GET; +import jakarta.ws.rs.POST; +import jakarta.ws.rs.PUT; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.Produces; +import jakarta.ws.rs.core.MediaType; import java.util.Random; diff --git a/src/main/java/org/jboss/perf/HashingServlet.java b/src/main/java/org/jboss/perf/HashingServlet.java index dd5d275..1a430f5 100644 --- a/src/main/java/org/jboss/perf/HashingServlet.java +++ b/src/main/java/org/jboss/perf/HashingServlet.java @@ -1,21 +1,27 @@ package org.jboss.perf; -import org.apache.commons.codec.binary.Hex; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; +import jakarta.servlet.ServletException; +import jakarta.servlet.annotation.WebServlet; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; + /** * Created by johara on 22/04/16. */ +@WebServlet("/test/HashingTest/") public class HashingServlet extends HttpServlet { - private ThreadLocal mdg = new ThreadLocal<>(); + + private static final char[] table = { + '0', '1', '2', '3', '4', '5', '6', '7', + '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' + }; + private final ThreadLocal mdg = new ThreadLocal<>(); public HashingServlet() { initialiseMessageDigest(); @@ -48,7 +54,7 @@ public void doGet(HttpServletRequest request, updateMdg(hash); for (int i = 0; i < max; i++) { - responseBuild.append(Hex.encodeHexString(getDigest())); + responseBuild.append(bytesToHexString(getDigest())); updateMdg(hash); } @@ -72,4 +78,12 @@ private void checkMdg() { initialiseMessageDigest(); } } + + private static String bytesToHexString(final byte[] bytes) { + final StringBuilder builder = new StringBuilder(bytes.length * 2); + for (byte b : bytes) { + builder.append(table[b >> 4 & 0x0f]).append(table[b & 0x0f]); + } + return builder.toString(); + } } diff --git a/src/main/java/org/jboss/perf/JaxbHandler.java b/src/main/java/org/jboss/perf/JaxbHandler.java index bca8a6f..e811eff 100644 --- a/src/main/java/org/jboss/perf/JaxbHandler.java +++ b/src/main/java/org/jboss/perf/JaxbHandler.java @@ -3,13 +3,13 @@ import org.jboss.perf.model.JaxbPerson; import org.jboss.perf.model.PojoPerson; -import javax.ws.rs.Consumes; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; +import jakarta.ws.rs.Consumes; +import jakarta.ws.rs.GET; +import jakarta.ws.rs.POST; +import jakarta.ws.rs.PUT; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.Produces; +import jakarta.ws.rs.core.MediaType; /** * @author Radim Vansa <rvansa@redhat.com> diff --git a/src/main/java/org/jboss/perf/ParamHandler.java b/src/main/java/org/jboss/perf/ParamHandler.java index 76e8797..7af84ea 100644 --- a/src/main/java/org/jboss/perf/ParamHandler.java +++ b/src/main/java/org/jboss/perf/ParamHandler.java @@ -2,17 +2,17 @@ import org.jboss.perf.model.TwoStrings; -import javax.ws.rs.CookieParam; -import javax.ws.rs.FormParam; -import javax.ws.rs.GET; -import javax.ws.rs.HeaderParam; -import javax.ws.rs.MatrixParam; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.QueryParam; -import javax.ws.rs.core.PathSegment; -import javax.ws.rs.core.Response; +import jakarta.ws.rs.CookieParam; +import jakarta.ws.rs.FormParam; +import jakarta.ws.rs.GET; +import jakarta.ws.rs.HeaderParam; +import jakarta.ws.rs.MatrixParam; +import jakarta.ws.rs.POST; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.PathParam; +import jakarta.ws.rs.QueryParam; +import jakarta.ws.rs.core.PathSegment; +import jakarta.ws.rs.core.Response; /** * @author Radim Vansa <rvansa@redhat.com> diff --git a/src/main/java/org/jboss/perf/PojoHandler.java b/src/main/java/org/jboss/perf/PojoHandler.java index b207809..0f6feba 100644 --- a/src/main/java/org/jboss/perf/PojoHandler.java +++ b/src/main/java/org/jboss/perf/PojoHandler.java @@ -2,13 +2,13 @@ import org.jboss.perf.model.PojoPerson; -import javax.ws.rs.Consumes; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; +import jakarta.ws.rs.Consumes; +import jakarta.ws.rs.GET; +import jakarta.ws.rs.POST; +import jakarta.ws.rs.PUT; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.Produces; +import jakarta.ws.rs.core.MediaType; /** * @author Radim Vansa <rvansa@redhat.com> diff --git a/src/main/java/org/jboss/perf/TextHandler.java b/src/main/java/org/jboss/perf/TextHandler.java index 2bb5910..29bc784 100644 --- a/src/main/java/org/jboss/perf/TextHandler.java +++ b/src/main/java/org/jboss/perf/TextHandler.java @@ -1,13 +1,13 @@ package org.jboss.perf; -import javax.ws.rs.Consumes; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; +import jakarta.ws.rs.Consumes; +import jakarta.ws.rs.GET; +import jakarta.ws.rs.POST; +import jakarta.ws.rs.PUT; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.Produces; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.core.Response; /** * @author Radim Vansa <rvansa@redhat.com> diff --git a/src/main/java/org/jboss/perf/model/JaxbPerson.java b/src/main/java/org/jboss/perf/model/JaxbPerson.java index b4606bf..fd0df3b 100644 --- a/src/main/java/org/jboss/perf/model/JaxbPerson.java +++ b/src/main/java/org/jboss/perf/model/JaxbPerson.java @@ -1,10 +1,10 @@ package org.jboss.perf.model; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlRootElement; /** * @author Radim Vansa <rvansa@redhat.com> diff --git a/src/main/webapp/WEB-INF/beans.xml b/src/main/webapp/WEB-INF/beans.xml index 460d1cf..e69de29 100644 --- a/src/main/webapp/WEB-INF/beans.xml +++ b/src/main/webapp/WEB-INF/beans.xml @@ -1,24 +0,0 @@ - - - - - diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml deleted file mode 100644 index ef244ad..0000000 --- a/src/main/webapp/WEB-INF/web.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - JavaServerFaces - - - - Test Servlet - org.jboss.perf.HashingServlet - 1 - - - - Test Servlet - /test/HashingTest/* - - - diff --git a/src/test/java/org/jboss/perf/PrintStats.java b/src/test/java/org/jboss/perf/PrintStats.java index 60296b1..76d291e 100644 --- a/src/test/java/org/jboss/perf/PrintStats.java +++ b/src/test/java/org/jboss/perf/PrintStats.java @@ -2,13 +2,13 @@ import org.json.JSONObject; -import java.io.File; import java.io.IOException; import java.nio.file.Files; -import java.nio.file.Paths; +import java.nio.file.Path; import java.util.Arrays; import java.util.Map; import java.util.TreeMap; +import java.util.stream.Stream; /** * This is here also as an example how to retrieve data in order to persist them, e.g. in PerfRepo @@ -16,116 +16,109 @@ * @author Radim Vansa <rvansa@redhat.com> */ public class PrintStats { - public static void main(String[] args) { - if (args.length != 1) { - throw new IllegalArgumentException("Expected single argument, got: " + Arrays.toString(args)); - } - File dir = new File(args[0]); - if (!dir.isDirectory()) { - throw new IllegalArgumentException(dir + " is not a directory"); - } - Map statsMap = new TreeMap<>(); - for (File subDir : dir.listFiles()) { - File statsFile = Paths.get(subDir.toString(), "js", "stats.js").toFile(); - if (!statsFile.exists()) { - System.err.printf("Cannot find file %s%n", statsFile.toString()); - } - try { - String allFile = new String(Files.readAllBytes(statsFile.toPath())); - int start = allFile.indexOf('{'); - int end = start + 1, brackets = 1; - for ( ;end < allFile.length() && brackets > 0; ++end) { - switch (allFile.charAt(end)) { - case '{': - ++brackets; - break; - case '}': - --brackets; - break; - } - } - JSONObject object = new JSONObject(allFile.substring(start, end)); - JSONObject contents = object.getJSONObject("contents"); - for (String req : contents.keySet()) { - JSONObject stats = contents.getJSONObject(req).getJSONObject("stats"); - String name = stats.getString("name"); - Stats data = new Stats(stats); - statsMap.put(name, data); - } - } catch (IOException e) { - System.err.printf("Cannot read file %s%n", statsFile.toString()); - } - - } + public static void main(String[] args) throws Exception { + if (args.length != 1) { + throw new IllegalArgumentException("Expected single argument, got: " + Arrays.toString(args)); + } + final Path dir = Path.of(args[0]); + if (!Files.isDirectory(dir)) { + throw new IllegalArgumentException(dir + " is not a directory"); + } + final Map statsMap = new TreeMap<>(); + try (Stream paths = Files.walk(dir)) { + paths.filter(f -> f.getFileName().toString().equals("stats.js")) + .forEach(statsFile -> { + try { + String allFile = new String(Files.readAllBytes(statsFile)); + final JSONObject contents = getJsonObject(allFile); + for (String req : contents.keySet()) { + JSONObject stats = contents.getJSONObject(req).getJSONObject("stats"); + String name = stats.getString("name"); + Stats data = new Stats(stats); + statsMap.put(name, data); + } + } catch (IOException e) { + System.err.printf("Cannot read file %s%n", statsFile.toString()); + } + }); + } - //remove stream and lambda to run on java 7 - need this to run on jboss web, jboss AS7 will not boot on java 8 -// int maxLenght = statsMap.keySet().stream().map( s -> s.length()).max(Integer::compare).get(); - int maxLenght = 0; + final int maxLength = statsMap.keySet().stream().map(String::length).max(Integer::compare).orElse(50); + String indent = indent(maxLength - 4); + System.out.println(); + System.out.printf("Test%s Requests Errors Mean Std.dev. Min Max 50th pct 75th pct 95th pct 99th pct%n", indent); + System.out.printf(" %s -------- -------- -------- -------- -------- -------- -------- -------- -------- --------%n", indent); + for (Map.Entry entry : statsMap.entrySet()) { + Stats s = entry.getValue(); + System.out.printf("%s%s %8d %8d %8d %8d %8d %8d %8d %8d %8d %8d%n", entry.getKey(), indent(maxLength - entry.getKey() + .length()), + s.requests.total, s.requests.ko, s.meanRT.ok, s.stdDev.ok, s.minRT.ok, s.maxRT.ok, s.pct50th.ok, s.pct75th.ok, s.pct95th.ok, s.pct99th.ok); + } + System.out.println(); + } - for(String key: statsMap.keySet()){ - if(key.length() > maxLenght){ - maxLenght = key.length(); - } - } - String indent = indent(maxLenght - 4); - System.out.println(); - System.out.printf("Test%s Requests Errors Mean Std.dev. Min Max 50th pct 75th pct 95th pct 99th pct%n", indent); - System.out.printf(" %s -------- -------- -------- -------- -------- -------- -------- -------- -------- --------%n", indent); - for (Map.Entry entry : statsMap.entrySet()) { - Stats s = entry.getValue(); - System.out.printf("%s%s %8d %8d %8d %8d %8d %8d %8d %8d %8d %8d%n", entry.getKey(), indent(maxLenght - entry.getKey().length()), - s.requests.total, s.requests.ko, s.meanRT.ok, s.stdDev.ok, s.minRT.ok, s.maxRT.ok, s.pct50th.ok, s.pct75th.ok, s.pct95th.ok, s.pct99th.ok); - } - System.out.println(); - } + private static JSONObject getJsonObject(final String allFile) { + int start = allFile.indexOf('{'); + int end = start + 1, brackets = 1; + for (; end < allFile.length() && brackets > 0; ++end) { + switch (allFile.charAt(end)) { + case '{': + ++brackets; + break; + case '}': + --brackets; + break; + } + } + JSONObject object = new JSONObject(allFile.substring(start, end)); + return object.getJSONObject("contents"); + } - private static String indent(int chars) { - StringBuilder sb = new StringBuilder(chars); - for (int i = 0; i < chars; ++i) sb.append(' '); - return sb.toString(); - } + private static String indent(int chars) { + return " ".repeat(Math.max(0, chars)); + } - private static class Metrics { - final int total; - final int ok; - final int ko; + private static class Metrics { + final int total; + final int ok; + final int ko; - public Metrics(JSONObject object) { - total = parseOrZero(object.getString("total")); - ok = parseOrZero(object.getString("ok")); - ko = parseOrZero(object.getString("ko")); - } + public Metrics(JSONObject object) { + total = parseOrZero(object.getString("total")); + ok = parseOrZero(object.getString("ok")); + ko = parseOrZero(object.getString("ko")); + } - private int parseOrZero(String str) { - try { - return Integer.parseInt(str); - } catch (NumberFormatException e) { - return 0; - } - } - } + private int parseOrZero(String str) { + try { + return Integer.parseInt(str); + } catch (NumberFormatException e) { + return 0; + } + } + } - private static class Stats { - final Metrics requests; - final Metrics minRT; - final Metrics maxRT; - final Metrics meanRT; - final Metrics stdDev; - final Metrics pct50th; - final Metrics pct75th; - final Metrics pct95th; - final Metrics pct99th; + private static class Stats { + final Metrics requests; + final Metrics minRT; + final Metrics maxRT; + final Metrics meanRT; + final Metrics stdDev; + final Metrics pct50th; + final Metrics pct75th; + final Metrics pct95th; + final Metrics pct99th; - public Stats(JSONObject object) { - requests = new Metrics(object.getJSONObject("numberOfRequests")); - minRT = new Metrics(object.getJSONObject("minResponseTime")); - maxRT = new Metrics(object.getJSONObject("maxResponseTime")); - meanRT = new Metrics(object.getJSONObject("meanResponseTime")); - stdDev = new Metrics(object.getJSONObject("standardDeviation")); - pct50th = new Metrics(object.getJSONObject("percentiles1")); - pct75th = new Metrics(object.getJSONObject("percentiles2")); - pct95th = new Metrics(object.getJSONObject("percentiles3")); - pct99th = new Metrics(object.getJSONObject("percentiles4")); - } - } + public Stats(JSONObject object) { + requests = new Metrics(object.getJSONObject("numberOfRequests")); + minRT = new Metrics(object.getJSONObject("minResponseTime")); + maxRT = new Metrics(object.getJSONObject("maxResponseTime")); + meanRT = new Metrics(object.getJSONObject("meanResponseTime")); + stdDev = new Metrics(object.getJSONObject("standardDeviation")); + pct50th = new Metrics(object.getJSONObject("percentiles1")); + pct75th = new Metrics(object.getJSONObject("percentiles2")); + pct95th = new Metrics(object.getJSONObject("percentiles3")); + pct99th = new Metrics(object.getJSONObject("percentiles4")); + } + } } diff --git a/src/test/scala/org/jboss/perf/AppBinary.scala b/src/test/scala/org/jboss/perf/AppBinary.scala index 27541f2..96d4f15 100644 --- a/src/test/scala/org/jboss/perf/AppBinary.scala +++ b/src/test/scala/org/jboss/perf/AppBinary.scala @@ -1,6 +1,6 @@ package org.jboss.perf -import javax.ws.rs.core.MediaType +import jakarta.ws.rs.core.MediaType import io.gatling.core.Predef._ diff --git a/src/test/scala/org/jboss/perf/AppHtml.scala b/src/test/scala/org/jboss/perf/AppHtml.scala index fd22788..fe3cbf7 100644 --- a/src/test/scala/org/jboss/perf/AppHtml.scala +++ b/src/test/scala/org/jboss/perf/AppHtml.scala @@ -1,6 +1,6 @@ package org.jboss.perf -import javax.ws.rs.core.MediaType +import jakarta.ws.rs.core.MediaType import io.gatling.core.Predef._ diff --git a/src/test/scala/org/jboss/perf/AppJson.scala b/src/test/scala/org/jboss/perf/AppJson.scala index 89048a9..1c237f0 100644 --- a/src/test/scala/org/jboss/perf/AppJson.scala +++ b/src/test/scala/org/jboss/perf/AppJson.scala @@ -1,6 +1,6 @@ package org.jboss.perf -import javax.ws.rs.core.MediaType +import jakarta.ws.rs.core.MediaType import io.gatling.core.Predef._ /** diff --git a/src/test/scala/org/jboss/perf/AppXml.scala b/src/test/scala/org/jboss/perf/AppXml.scala index 2c7affd..6b2b1e0 100644 --- a/src/test/scala/org/jboss/perf/AppXml.scala +++ b/src/test/scala/org/jboss/perf/AppXml.scala @@ -1,7 +1,7 @@ package org.jboss.perf -import javax.ws.rs.core.MediaType +import jakarta.ws.rs.core.MediaType import io.gatling.core.Predef._ diff --git a/src/test/scala/org/jboss/perf/BaseSimulation.scala b/src/test/scala/org/jboss/perf/BaseSimulation.scala index 8cfb8dc..6b4d8ef 100644 --- a/src/test/scala/org/jboss/perf/BaseSimulation.scala +++ b/src/test/scala/org/jboss/perf/BaseSimulation.scala @@ -5,7 +5,8 @@ import io.gatling.core.structure.ScenarioBuilder import io.gatling.http.Predef._ import io.gatling.http.request.builder.{HttpRequestBuilder, Http} -import scala.concurrent.duration._; +import scala.concurrent.duration._ +import scala.language.postfixOps /** * @author Radim Vansa <rvansa@redhat.com> @@ -19,7 +20,7 @@ abstract class BaseSimulation extends Simulation { val pauseTime = Integer.getInteger("test.pauseTime", 4); def protocolConf() = { - http.baseURL("http://" + host + ":" + port + Activator.ROOT_PATH).doNotTrackHeader("1").shareConnections + http.baseUrl("http://" + host + ":" + port + Activator.ROOT_PATH).doNotTrackHeader("1").shareConnections } def pre(scenarioBuilder: ScenarioBuilder) = scenarioBuilder @@ -27,7 +28,7 @@ abstract class BaseSimulation extends Simulation { def run(http: Http): HttpRequestBuilder; var name = getClass().getName(); - name = name.substring(name.lastIndexOf('.') + 1).replaceAllLiterally("$", "."); + name = name.substring(name.lastIndexOf('.') + 1).replace("$", "."); // setUp(pre(scenario(name).pause(pauseTime)).exec(run(http(name))) setUp(pre(scenario(name)).exec(run(http(name))) .inject( diff --git a/src/test/scala/org/jboss/perf/JaxbJsonSimulations.scala b/src/test/scala/org/jboss/perf/JaxbJsonSimulations.scala index 24e6b7f..ec51962 100644 --- a/src/test/scala/org/jboss/perf/JaxbJsonSimulations.scala +++ b/src/test/scala/org/jboss/perf/JaxbJsonSimulations.scala @@ -4,7 +4,9 @@ import io.gatling.core.Predef._ import io.gatling.core.body.StringBody import io.gatling.http.Predef._ import io.gatling.http.request.builder.Http -import org.jboss.perf.model.JaxbPerson; +import org.jboss.perf.model.JaxbPerson + +import java.nio.charset.StandardCharsets; /** * @author Radim Vansa <rvansa@redhat.com> @@ -18,13 +20,13 @@ object JaxbJsonSimulations { class Post extends BaseSimulation with AppJson { def run(http: Http) = { - http.post("/jaxb").body(new StringBody(JaxbPerson.JOHNNY_JSON)).check(status.is(204)); + http.post("/jaxb").body(new StringBody(JaxbPerson.JOHNNY_JSON, StandardCharsets.UTF_8)).check(status.is(204)); } } class Put extends BaseSimulation with AppJson { def run(http: Http) = { - http.put("/jaxb").body(new StringBody(JaxbPerson.JOHNNY_JSON)).check(status.is(200), bodyString.is(JaxbPerson.JOHNNY_JSON)); + http.put("/jaxb").body(new StringBody(JaxbPerson.JOHNNY_JSON, StandardCharsets.UTF_8)).check(status.is(200), bodyString.is(JaxbPerson.JOHNNY_JSON)); } } } diff --git a/src/test/scala/org/jboss/perf/JaxbXmlSimulations.scala b/src/test/scala/org/jboss/perf/JaxbXmlSimulations.scala index 16ea53d..2016185 100644 --- a/src/test/scala/org/jboss/perf/JaxbXmlSimulations.scala +++ b/src/test/scala/org/jboss/perf/JaxbXmlSimulations.scala @@ -4,7 +4,9 @@ import io.gatling.core.Predef._ import io.gatling.core.body.StringBody import io.gatling.http.Predef._ import io.gatling.http.request.builder.Http -import org.jboss.perf.model.JaxbPerson; +import org.jboss.perf.model.JaxbPerson + +import java.nio.charset.StandardCharsets; /** * @author Radim Vansa <rvansa@redhat.com> @@ -18,13 +20,13 @@ object JaxbXmlSimulations { class Post extends BaseSimulation with AppXml { def run(http: Http) = { - http.post("/jaxb").body(new StringBody(JaxbPerson.JOHNNY_XML)).check(status.is(204)); + http.post("/jaxb").body(new StringBody(JaxbPerson.JOHNNY_XML, StandardCharsets.UTF_8)).check(status.is(204)); } } class Put extends BaseSimulation with AppXml { def run(http: Http) = { - http.put("/jaxb").body(new StringBody(JaxbPerson.JOHNNY_XML)).check(status.is(200), bodyString.is(JaxbPerson.JOHNNY_XML)); + http.put("/jaxb").body(new StringBody(JaxbPerson.JOHNNY_XML, StandardCharsets.UTF_8)).check(status.is(200), bodyString.is(JaxbPerson.JOHNNY_XML)); } } } diff --git a/src/test/scala/org/jboss/perf/PojoJsonSimulations.scala b/src/test/scala/org/jboss/perf/PojoJsonSimulations.scala index 1711a09..ce56bfa 100644 --- a/src/test/scala/org/jboss/perf/PojoJsonSimulations.scala +++ b/src/test/scala/org/jboss/perf/PojoJsonSimulations.scala @@ -6,6 +6,8 @@ import io.gatling.http.Predef._ import io.gatling.http.request.builder.Http import org.jboss.perf.model.PojoPerson +import java.nio.charset.StandardCharsets + /** * @author Radim Vansa <rvansa@redhat.com> */ @@ -25,13 +27,13 @@ object PojoJsonSimulations { class Post extends BaseSimulation with AppJson { def run(http: Http) = { - http.post("/pojo").body(new StringBody(PojoPerson.JOHNNY_JSON)).check(status.is(204)); + http.post("/pojo").body(new StringBody(PojoPerson.JOHNNY_JSON, StandardCharsets.UTF_8)).check(status.is(204)); } } class Put extends BaseSimulation with AppJson { def run(http: Http) = { - http.put("/pojo").body(new StringBody(PojoPerson.JOHNNY_JSON)).check(status.is(200), bodyString.is(PojoPerson.JOHNNY_JSON)); + http.put("/pojo").body(new StringBody(PojoPerson.JOHNNY_JSON, StandardCharsets.UTF_8)).check(status.is(200), bodyString.is(PojoPerson.JOHNNY_JSON)); } } } diff --git a/src/test/scala/org/jboss/perf/TextSimulations.scala b/src/test/scala/org/jboss/perf/TextSimulations.scala index d8cd5f3..ad6ba75 100644 --- a/src/test/scala/org/jboss/perf/TextSimulations.scala +++ b/src/test/scala/org/jboss/perf/TextSimulations.scala @@ -1,6 +1,6 @@ package org.jboss.perf -import javax.ws.rs.core.MediaType +import jakarta.ws.rs.core.MediaType import io.gatling.core.Predef._ import io.gatling.http.Predef._