This is an automated email from the ASF dual-hosted git repository. kbowers pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/incubator-kie-kogito-benchmarks.git
commit f9ae5a96ef37b8de0549f29641632d404e9df1be Author: Marián Macik <[email protected]> AuthorDate: Tue Jun 1 23:31:41 2021 +0200 Tidy up, properly name modules, use logback instead of log4j2 --- {framework => kogito-benchmarks-framework}/pom.xml | 39 ++-- .../org/kie/kogito/benchmarks/framework/App.java | 4 +- .../kogito/benchmarks/framework/BuildResult.java | 0 .../kie/kogito/benchmarks/framework/Commands.java | 182 +-------------- .../benchmarks/framework/HTTPRequestInfo.java | 3 + .../kogito/benchmarks/framework/LogBuilder.java | 0 .../org/kie/kogito/benchmarks/framework/Logs.java | 65 +----- .../kie/kogito/benchmarks/framework/MvnCmds.java | 20 +- .../kie/kogito/benchmarks/framework/RunInfo.java | 3 + .../kogito/benchmarks/framework/URLContent.java | 0 .../kogito/benchmarks/framework/WebpageTester.java | 13 +- .../benchmarks/framework/WhitelistLogLines.java | 0 .../src/main/resources/CtrlC.exe | Bin .../src/main/resources/README.md | 0 .../smarthouse-02-dm-quarkus/threshold.properties | 0 .../threshold.properties | 0 .../smarthouse-03-dm-quarkus/threshold.properties | 0 .../threshold.properties | 0 {tests => kogito-benchmarks-tests}/pom.xml | 20 +- .../kogito/benchmarks/AbstractTemplateTest.java | 142 ++++++----- .../kogito/benchmarks/SmartHouse02QuarkusTest.java | 4 +- .../benchmarks/SmartHouse02SpringBootTest.java | 2 +- .../kogito/benchmarks/SmartHouse03QuarkusTest.java | 2 +- .../benchmarks/SmartHouse03SpringBootTest.java | 2 +- .../src/test/resources/logback-test.xml | 16 ++ pom.xml | 9 +- sample-kogito-app/pom.xml | 115 --------- .../src/main/java/mypackage/GreetingEndpoint.java | 47 ---- .../src/main/resources/LoanApplication.bpmn | 259 --------------------- .../src/main/resources/MortgageApproval.dmn | 81 ------- .../src/main/resources/application.properties | 36 --- sample-kogito-app/threshold.properties | 6 - .../kie/kogito/benchmarks/QuarkusSmallTest.java | 20 -- .../org/kie/kogito/benchmarks/QuarkusTest.java | 9 - tests/src/test/resources/log4j2.xml | 13 -- 35 files changed, 160 insertions(+), 952 deletions(-) diff --git a/framework/pom.xml b/kogito-benchmarks-framework/pom.xml similarity index 75% rename from framework/pom.xml rename to kogito-benchmarks-framework/pom.xml index bf46da0..dd5404f 100644 --- a/framework/pom.xml +++ b/kogito-benchmarks-framework/pom.xml @@ -10,10 +10,10 @@ <version>2.0.0-SNAPSHOT</version> </parent> - <artifactId>framework</artifactId> + <artifactId>kogito-benchmarks-framework</artifactId> - <name></name> - <description></description> + <name>Kogito :: Benchmarks :: Framework</name> + <description>Framework for starting, measuring and stopping Kogito apps</description> <properties> <log4j.version>2.13.2</log4j.version> @@ -59,16 +59,16 @@ <scope>compile</scope> </dependency> - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-api</artifactId> - <version>${log4j.version}</version> - </dependency> - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-core</artifactId> - <version>${log4j.version}</version> - </dependency> +<!-- <dependency>--> +<!-- <groupId>org.apache.logging.log4j</groupId>--> +<!-- <artifactId>log4j-api</artifactId>--> +<!-- <version>${log4j.version}</version>--> +<!-- </dependency>--> +<!-- <dependency>--> +<!-- <groupId>org.apache.logging.log4j</groupId>--> +<!-- <artifactId>log4j-core</artifactId>--> +<!-- <version>${log4j.version}</version>--> +<!-- </dependency>--> </dependencies> </dependencyManagement> @@ -77,11 +77,6 @@ <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> </dependency> - <dependency> - <groupId>org.jboss.logging</groupId> - <artifactId>jboss-logging</artifactId> - <version>3.4.1.Final</version> <!-- TODO find another logging library--> - </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter</artifactId> @@ -95,12 +90,12 @@ <!-- Logging --> <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-api</artifactId> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-api</artifactId> </dependency> <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-core</artifactId> + <groupId>ch.qos.logback</groupId> + <artifactId>logback-classic</artifactId> </dependency> </dependencies> diff --git a/framework/src/main/java/org/kie/kogito/benchmarks/framework/App.java b/kogito-benchmarks-framework/src/main/java/org/kie/kogito/benchmarks/framework/App.java similarity index 94% rename from framework/src/main/java/org/kie/kogito/benchmarks/framework/App.java rename to kogito-benchmarks-framework/src/main/java/org/kie/kogito/benchmarks/framework/App.java index e363ba9..ce16304 100644 --- a/framework/src/main/java/org/kie/kogito/benchmarks/framework/App.java +++ b/kogito-benchmarks-framework/src/main/java/org/kie/kogito/benchmarks/framework/App.java @@ -17,8 +17,8 @@ public enum App { SMARTHOUSE_02_QUARKUS_JVM("smarthouse-02-dm-quarkus", MvnCmds.QUARKUS_JVM, URLContent.SMARTHOUSE_02, WhitelistLogLines.EVERYTHING), SMARTHOUSE_03_QUARKUS_JVM("smarthouse-03-dm-quarkus", MvnCmds.QUARKUS_JVM, URLContent.SMARTHOUSE_03, WhitelistLogLines.EVERYTHING), - SMARTHOUSE_02_SPRING_BOOT("smarthouse-02-dm-springboot", MvnCmds.SPRING_BOOT_02_JVM, URLContent.SMARTHOUSE_02, WhitelistLogLines.EVERYTHING), - SMARTHOUSE_03_SPRING_BOOT("smarthouse-03-dm-springboot", MvnCmds.SPRING_BOOT_03_JVM, URLContent.SMARTHOUSE_03, WhitelistLogLines.EVERYTHING); + SMARTHOUSE_02_SPRING_BOOT("smarthouse-02-dm-springboot", MvnCmds.SPRING_BOOT_JVM, URLContent.SMARTHOUSE_02, WhitelistLogLines.EVERYTHING), + SMARTHOUSE_03_SPRING_BOOT("smarthouse-03-dm-springboot", MvnCmds.SPRING_BOOT_JVM, URLContent.SMARTHOUSE_03, WhitelistLogLines.EVERYTHING); public final String dir; public final MvnCmds mavenCommands; diff --git a/framework/src/main/java/org/kie/kogito/benchmarks/framework/BuildResult.java b/kogito-benchmarks-framework/src/main/java/org/kie/kogito/benchmarks/framework/BuildResult.java similarity index 100% rename from framework/src/main/java/org/kie/kogito/benchmarks/framework/BuildResult.java rename to kogito-benchmarks-framework/src/main/java/org/kie/kogito/benchmarks/framework/BuildResult.java diff --git a/framework/src/main/java/org/kie/kogito/benchmarks/framework/Commands.java b/kogito-benchmarks-framework/src/main/java/org/kie/kogito/benchmarks/framework/Commands.java similarity index 70% rename from framework/src/main/java/org/kie/kogito/benchmarks/framework/Commands.java rename to kogito-benchmarks-framework/src/main/java/org/kie/kogito/benchmarks/framework/Commands.java index 004af2e..37fe5b7 100644 --- a/framework/src/main/java/org/kie/kogito/benchmarks/framework/Commands.java +++ b/kogito-benchmarks-framework/src/main/java/org/kie/kogito/benchmarks/framework/Commands.java @@ -28,24 +28,16 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Collectors; -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.transform.Transformer; -import javax.xml.transform.TransformerFactory; -import javax.xml.transform.dom.DOMSource; -import javax.xml.transform.stream.StreamResult; - import org.apache.commons.lang3.StringUtils; import org.assertj.core.api.Assertions; -import org.jboss.logging.Logger; -import org.w3c.dom.Document; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import static org.kie.kogito.benchmarks.framework.Logs.appendln; import static org.kie.kogito.benchmarks.framework.Logs.appendlnSection; public class Commands { - private static final Logger LOGGER = Logger.getLogger(Commands.class.getName()); + private static final Logger logger = LoggerFactory.getLogger(Commands.class); public static final String BASE_DIR = getBaseDir(); public static final String APPS_DIR = getAppsDir(); @@ -113,7 +105,7 @@ public class Commands { return sys; } } - LOGGER.warn("Failed to detect quarkus.platform.version/QUARKUS_PLATFORM_VERSION, defaulting to getQuarkusVersion()."); + logger.warn("Failed to detect quarkus.platform.version/QUARKUS_PLATFORM_VERSION, defaulting to getQuarkusVersion()."); return getQuarkusVersion(); } @@ -166,36 +158,6 @@ public class Commands { return envPropertyValue; } - public static String getCodeQuarkusURL() { - return getCodeQuarkusURL("https://code.quarkus.io"); - } - - public static String getCodeQuarkusURL(String fallbackURL) { - String url = null; - for (String p : new String[] { "CODE_QUARKUS_URL", "code.quarkus.url" }) { - String env = System.getenv().get(p); - if (StringUtils.isNotBlank(env)) { - url = env; - break; - } - String sys = System.getProperty(p); - if (StringUtils.isNotBlank(sys)) { - url = sys; - break; - } - } - if (url == null) { - url = fallbackURL; - LOGGER.warn("Failed to detect code.quarkus.url/CODE_QUARKUS_URL env/sys props, defaulting to " + url); - return url; - } - Matcher m = trailingSlash.matcher(url); - if (m.find()) { - url = m.replaceAll(""); - } - return url; - } - public static void cleanTarget(App app) { String target = APPS_DIR + File.separator + app.dir + File.separator + "target"; String logs = APPS_DIR + File.separator + app.dir + File.separator + "logs"; @@ -231,13 +193,10 @@ public class Commands { List<String> cmd = getRunCommand(app.mavenCommands.mvnCmds[1]); appendln(whatIDidReport, appDir.getAbsolutePath()); appendlnSection(whatIDidReport, String.join(" ", cmd)); - long runStarts = System.currentTimeMillis(); Process pA = runCommand(cmd, appDir, runLogA); - long runEnds = System.currentTimeMillis(); - System.out.println("RunEnds (" + runEnds + ") - RunStarts (" + runStarts + ") : " + (runEnds - runStarts)); // Test web pages long timeToFirstOKRequest = WebpageTester.testWeb(app.urlContent.urlContent[0][0], 10, app.urlContent.urlContent[0][1], true); - LOGGER.info("Testing web page content..."); + logger.info("Testing web page content..."); for (String[] urlContent : app.urlContent.urlContent) { WebpageTester.testWeb(urlContent[0], 5, urlContent[1], false); } @@ -246,7 +205,7 @@ public class Commands { } public static void setCPUAffinity(RunInfo runInfo, int numOfCores) throws IOException, InterruptedException { - LOGGER.info("Setting CPU affinity of app to " + numOfCores + " core(s)"); + logger.info("Setting CPU affinity of app to " + numOfCores + " core(s)"); String listOfCores = "0-" + (numOfCores - 1); String processId = String.valueOf(runInfo.getProcess().pid()); ProcessBuilder pBuilder = new ProcessBuilder("taskset", "-cpa", listOfCores, processId); @@ -304,117 +263,6 @@ public class Commands { return Collections.unmodifiableList(buildCmd); } - // public static List<String> getBuildCommand(String[] baseCommand, String repoDir) { - // List<String> buildCmd = new ArrayList<>(); - // if (isThisWindows) { - // buildCmd.add("cmd"); - // buildCmd.add("/C"); - // } - // buildCmd.addAll(Arrays.asList(baseCommand)); - // buildCmd.add("-Dmaven.repo.local=" + repoDir); - // buildCmd.add("--settings=" + BASE_DIR + File.separator + App.GENERATED_SKELETON.dir + File.separator + "settings.xml"); - // - // return Collections.unmodifiableList(buildCmd); - // } - - // public static List<String> getGeneratorCommand(Set<TestFlags> flags, String[] baseCommand, String[] extensions, String repoDir) { - // List<String> generatorCmd = new ArrayList<>(); - // if (isThisWindows) { - // generatorCmd.add("cmd"); - // generatorCmd.add("/C"); - // } - // generatorCmd.addAll(Arrays.asList(baseCommand)); - // if (flags.contains(TestFlags.PRODUCT_BOM)) { - // generatorCmd.add("-DplatformArtifactId=quarkus-product-bom"); - // generatorCmd.add("-DplatformGroupId=com.redhat.quarkus"); - // generatorCmd.add("-DplatformVersion=" + getQuarkusPlatformVersion()); - // } else if (flags.contains(TestFlags.QUARKUS_BOM)) { - // generatorCmd.add("-DplatformArtifactId=quarkus-bom"); - // generatorCmd.add("-DplatformVersion=" + getQuarkusVersion()); - // } else if (flags.contains(TestFlags.UNIVERSE_BOM)) { - // generatorCmd.add("-DplatformArtifactId=quarkus-universe-bom"); - // generatorCmd.add("-DplatformVersion=" + getQuarkusVersion()); - // } else if (flags.contains(TestFlags.UNIVERSE_PRODUCT_BOM)) { - // generatorCmd.add("-DplatformArtifactId=quarkus-universe-bom"); - // generatorCmd.add("-DplatformGroupId=com.redhat.quarkus"); - // generatorCmd.add("-DplatformVersion=" + getQuarkusPlatformVersion()); - // } - // generatorCmd.add("-Dextensions=" + String.join(",", extensions)); - // generatorCmd.add("-Dmaven.repo.local=" + repoDir); - // generatorCmd.add("--settings=" + BASE_DIR + File.separator + App.GENERATED_SKELETON.dir + File.separator + "settings.xml"); - // - // return Collections.unmodifiableList(generatorCmd); - // } - - public static List<String> getGeneratorCommand(String[] baseCommand, String[] extensions) { - List<String> generatorCmd = new ArrayList<>(); - if (isThisWindows) { - generatorCmd.add("cmd"); - generatorCmd.add("/C"); - } - generatorCmd.addAll(Arrays.asList(baseCommand)); - generatorCmd.add("-DplatformVersion=" + getQuarkusVersion()); - generatorCmd.add("-Dextensions=" + String.join(",", extensions)); - generatorCmd.add("-Dmaven.repo.local=" + getLocalMavenRepoDir()); - - return Collections.unmodifiableList(generatorCmd); - } - - // /** - // * Download a zip file with an example project - // * - // * @param extensions collection of extension codes, @See {@link io.quarkus.ts.startstop.utils.CodeQuarkusExtensions} - // * @param destinationZipFile path where the zip file will be written - // * @return the actual URL used for audit and logging purposes - // * @throws IOException - // */ - // public static String download(Collection<CodeQuarkusExtensions> extensions, String destinationZipFile) throws IOException { - // String downloadURL = getCodeQuarkusURL() + "/api/download?s=" + - // extensions.stream().map(x -> x.shortId).collect(Collectors.joining(".")); - // try (ReadableByteChannel readableByteChannel = Channels.newChannel( - // new URL(downloadURL).openStream()); - // FileChannel fileChannel = new FileOutputStream(destinationZipFile).getChannel()) { - // fileChannel.transferFrom(readableByteChannel, 0, Long.MAX_VALUE); - // } - // return downloadURL; - // } - - public static File unzip(String zipFilePath, String destinationDir) throws InterruptedException, IOException { - ProcessBuilder pb; - if (isThisWindows) { - pb = new ProcessBuilder("powershell", "-c", "Expand-Archive", "-Path", zipFilePath, "-DestinationPath", destinationDir, "-Force"); - } else { - pb = new ProcessBuilder("unzip", "-o", zipFilePath, "-d", destinationDir); - } - Map<String, String> env = pb.environment(); - env.put("PATH", System.getenv("PATH")); - pb.directory(new File(destinationDir)); - pb.redirectErrorStream(true); - File unzipLog = new File(zipFilePath + ".log"); - unzipLog.delete(); - pb.redirectOutput(ProcessBuilder.Redirect.to(unzipLog)); - Process p = pb.start(); - p.waitFor(3, TimeUnit.MINUTES); - return unzipLog; - } - - public static void removeRepositoriesAndPluginRepositories(String pomFilePath) throws Exception { - File pomFile = new File(pomFilePath); - Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(pomFile); - NodeList repositories = doc.getElementsByTagName("repositories"); - if (repositories.getLength() == 1) { - Node node = repositories.item(0); - node.getParentNode().removeChild(node); - } - NodeList pluginRepositories = doc.getElementsByTagName("pluginRepositories"); - if (pluginRepositories.getLength() == 1) { - Node node = pluginRepositories.item(0); - node.getParentNode().removeChild(node); - } - Transformer transformer = TransformerFactory.newInstance().newTransformer(); - transformer.transform(new DOMSource(doc), new StreamResult(pomFile)); - } - public static boolean waitForTcpClosed(String host, int port, long loopTimeoutS) throws InterruptedException, UnknownHostException { InetAddress address = InetAddress.getByName(host); long now = System.currentTimeMillis(); @@ -428,7 +276,7 @@ public class Commands { socket.getOutputStream().write(1); socket.shutdownInput(); socket.shutdownOutput(); - LOGGER.info("Socket still available: " + host + ":" + port); + logger.info("Socket still available: " + host + ":" + port); } catch (IOException e) { // Exception thrown - socket is likely closed. return true; @@ -439,15 +287,7 @@ public class Commands { return false; } - // // TODO we should get rid of it once Quarkus progresses with walid config per extension in generated examples - // public static void confAppPropsForSkeleton(String appDir) throws IOException { - // // Config, see app-generated-skeleton/README.md - // String appPropsSrc = BASE_DIR + File.separator + App.GENERATED_SKELETON.dir + File.separator + "application.properties"; - // String appPropsDst = appDir + File.separator + "src" + File.separator + "main" + File.separator + "resources" + File.separator + "application.properties"; - // Files.copy(Paths.get(appPropsSrc), - // Paths.get(appPropsDst), StandardCopyOption.REPLACE_EXISTING); - // } - + // TODO this may be useful in the future public static void adjustPrettyPrintForJsonLogging(String appDir) throws IOException { Path appProps = Paths.get(appDir + File.separator + "src" + File.separator + "main" + File.separator + "resources" + File.separator + "application.properties"); Path appYaml = Paths.get(appDir + File.separator + "src" + File.separator + "main" + File.separator + "resources" + File.separator + "application.yml"); @@ -499,7 +339,7 @@ public class Commands { Runtime.getRuntime().exec(new String[] { "kill", force ? "-9" : "-15", Long.toString(pid) }); } } catch (IOException | InterruptedException e) { - LOGGER.error(e.getMessage(), e); + logger.error(e.getMessage(), e); } } @@ -593,7 +433,7 @@ public class Commands { * 3.473028811 seconds time elapsed */ - // Ask Karm about this + // TODO Ask Karm about this public static void processStopper(Process p, boolean force) throws InterruptedException, IOException { p.children().forEach(child -> { if (child.supportsNormalTermination()) { @@ -631,7 +471,7 @@ public class Commands { pb.redirectOutput(ProcessBuilder.Redirect.to(log)); Process p = null; try { - LOGGER.info("Running command: " + String.join(" ", command)); + logger.info("Running command: " + String.join(" ", command)); p = pb.start(); } catch (IOException e) { e.printStackTrace(); diff --git a/framework/src/main/java/org/kie/kogito/benchmarks/framework/HTTPRequestInfo.java b/kogito-benchmarks-framework/src/main/java/org/kie/kogito/benchmarks/framework/HTTPRequestInfo.java similarity index 99% rename from framework/src/main/java/org/kie/kogito/benchmarks/framework/HTTPRequestInfo.java rename to kogito-benchmarks-framework/src/main/java/org/kie/kogito/benchmarks/framework/HTTPRequestInfo.java index 98ac827..8c83b22 100644 --- a/framework/src/main/java/org/kie/kogito/benchmarks/framework/HTTPRequestInfo.java +++ b/kogito-benchmarks-framework/src/main/java/org/kie/kogito/benchmarks/framework/HTTPRequestInfo.java @@ -3,6 +3,9 @@ package org.kie.kogito.benchmarks.framework; import java.util.HashMap; import java.util.Map; +/** + * A class representing + */ public class HTTPRequestInfo { private String uri; diff --git a/framework/src/main/java/org/kie/kogito/benchmarks/framework/LogBuilder.java b/kogito-benchmarks-framework/src/main/java/org/kie/kogito/benchmarks/framework/LogBuilder.java similarity index 100% rename from framework/src/main/java/org/kie/kogito/benchmarks/framework/LogBuilder.java rename to kogito-benchmarks-framework/src/main/java/org/kie/kogito/benchmarks/framework/LogBuilder.java diff --git a/framework/src/main/java/org/kie/kogito/benchmarks/framework/Logs.java b/kogito-benchmarks-framework/src/main/java/org/kie/kogito/benchmarks/framework/Logs.java similarity index 82% rename from framework/src/main/java/org/kie/kogito/benchmarks/framework/Logs.java rename to kogito-benchmarks-framework/src/main/java/org/kie/kogito/benchmarks/framework/Logs.java index 2e2d031..4ec318e 100644 --- a/framework/src/main/java/org/kie/kogito/benchmarks/framework/Logs.java +++ b/kogito-benchmarks-framework/src/main/java/org/kie/kogito/benchmarks/framework/Logs.java @@ -16,7 +16,8 @@ import java.util.regex.Pattern; import java.util.stream.Collectors; import org.apache.commons.lang3.StringUtils; -import org.jboss.logging.Logger; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import static java.nio.charset.StandardCharsets.UTF_8; import static java.nio.file.StandardCopyOption.REPLACE_EXISTING; @@ -26,7 +27,7 @@ import static org.kie.kogito.benchmarks.framework.Commands.BASE_DIR; import static org.kie.kogito.benchmarks.framework.Commands.isThisWindows; public class Logs { - private static final Logger LOGGER = Logger.getLogger(Logs.class.getName()); + private static final Logger logger = LoggerFactory.getLogger(Logs.class); public static final String jarSuffix = "redhat"; private static final Pattern jarNamePattern = Pattern.compile("^((?!" + jarSuffix + ").)*jar$"); @@ -62,9 +63,9 @@ public class Logs { boolean error = warnErrorDetectionPattern.matcher(line).matches(); if (error) { if (isWhiteListed(app.whitelistLogLines.errs, line)) { - LOGGER.info(cmd.name() + " log for " + testMethod + " contains whitelisted error: `" + line + "'"); + logger.info(cmd.name() + " log for " + testMethod + " contains whitelisted error: `" + line + "'"); } else if (isWhiteListed(app.whitelistLogLines.platformErrs(), line)) { - LOGGER.info(cmd.name() + " log for " + testMethod + " contains platform specific whitelisted error: `" + line + "'"); + logger.info(cmd.name() + " log for " + testMethod + " contains platform specific whitelisted error: `" + line + "'"); } else { offendingLines.add(line); } @@ -113,36 +114,6 @@ public class Logs { return false; } - // public static void checkJarSuffixes(Set<TestFlags> flags, File appDir) throws IOException { - // if (flags.contains(TestFlags.PRODUCT_BOM) || flags.contains(TestFlags.UNIVERSE_PRODUCT_BOM)) { - // List<Path> possiblyUnwantedArtifacts = Logs.listJarsFailingNameCheck( - // appDir.getAbsolutePath() + File.separator + "target" + File.separator + "lib"); - // List<String> reportArtifacts = new ArrayList<>(); - // boolean containsNotWhitelisted = false; - // for (Path p : possiblyUnwantedArtifacts) { - // boolean found = false; - // for (String w : WhitelistProductBomJars.PRODUCT_BOM.jarNames) { - // if (p.toString().contains(w)) { - // found = true; - // break; - // } - // } - // if (found) { - // reportArtifacts.add("WHITELISTED: " + p); - // } else { - // containsNotWhitelisted = true; - // reportArtifacts.add(p.toString()); - // } - // } - // assertFalse(containsNotWhitelisted, "There are not-whitelisted artifacts without expected string " + jarSuffix + " suffix, see: \n" - // + String.join("\n", reportArtifacts)); - // if (!reportArtifacts.isEmpty()) { - // LOGGER.warn("There are whitelisted artifacts without expected string " + jarSuffix + " suffix, see: \n" - // + String.join("\n", reportArtifacts)); - // } - // } - // } - public static void checkThreshold(App app, MvnCmds cmd, long rssKb, long timeToFirstOKRequest, long timeToReloadedOKRequest) { String propPrefix = isThisWindows ? "windows" : "linux"; if (cmd.isJVM()) { @@ -180,7 +151,7 @@ public class Logs { public static void archiveLog(String testClass, String testMethod, File log) throws IOException { if (log == null || !log.exists()) { - LOGGER.warn("log must be a valid, existing file. Skipping operation."); + logger.warn("log must be a valid, existing file. Skipping operation."); return; } if (StringUtils.isBlank(testClass)) { @@ -242,7 +213,7 @@ public class Logs { Files.write(path, (log.headerCSV + "\n").getBytes(UTF_8), StandardOpenOption.CREATE); } Files.write(path, (log.lineCSV + "\n").getBytes(UTF_8), StandardOpenOption.APPEND); - LOGGER.info("\n" + log.headerCSV + "\n" + log.lineCSV); + logger.info("\n" + log.headerCSV + "\n" + log.lineCSV); } public static void logMeasurementsSummary(LogBuilder.Log log, Path path) throws IOException { @@ -273,7 +244,7 @@ public class Logs { Files.write(path, (lines.stream().collect(Collectors.joining(System.lineSeparator())) + System.lineSeparator()).getBytes()); - LOGGER.info("\n" + log.headerCSV + "\n" + log.lineCSV); + logger.info("\n" + log.headerCSV + "\n" + log.lineCSV); } private static String stripAppAndModeColumns(String line) { @@ -281,22 +252,6 @@ public class Logs { return line.substring(secondOccurrence + 1); } - /** - * List Jar file names failing regexp pattern check - * - * Note the pattern is hardcoded to look for jars not containing word 'redhat', - * but it could be easily generalized if needed. - * - * @param path to the root of directory tree - * @return list of offending jar paths - */ - public static List<Path> listJarsFailingNameCheck(String path) throws IOException { - return Files.find(Paths.get(path), - 500, //if this is not enough, something is broken anyway - (filePath, fileAttr) -> fileAttr.isRegularFile() && jarNamePattern.matcher(filePath.getFileName().toString()).matches()) - .collect(Collectors.toList()); - } - public static float[] parseStartStopTimestamps(File log, App app) throws IOException { float[] startedStopped = new float[] { -1f, -1f }; try (Scanner sc = new Scanner(log, UTF_8)) { @@ -328,12 +283,12 @@ public class Logs { } } if (startedStopped[0] == -1f) { - LOGGER.error("Parsing start time from log failed. " + + logger.error("Parsing start time from log failed. " + "Might not be the right time to call this method. The process might have ben killed before it wrote to log. " + "Find " + log.getName() + " in your target dir."); } if (startedStopped[1] == -1f && !app.isSpringBoot()) { // Spring Boot doesn't provide stop time - LOGGER.error("Parsing stop time from log failed. " + + logger.error("Parsing stop time from log failed. " + "Might not be the right time to call this method. The process might have been killed before it wrote to log. " + "Find " + log.getName() + " in your target dir."); } diff --git a/framework/src/main/java/org/kie/kogito/benchmarks/framework/MvnCmds.java b/kogito-benchmarks-framework/src/main/java/org/kie/kogito/benchmarks/framework/MvnCmds.java similarity index 69% rename from framework/src/main/java/org/kie/kogito/benchmarks/framework/MvnCmds.java rename to kogito-benchmarks-framework/src/main/java/org/kie/kogito/benchmarks/framework/MvnCmds.java index 9a2db59..b664ae8 100644 --- a/framework/src/main/java/org/kie/kogito/benchmarks/framework/MvnCmds.java +++ b/kogito-benchmarks-framework/src/main/java/org/kie/kogito/benchmarks/framework/MvnCmds.java @@ -10,14 +10,12 @@ public enum MvnCmds { new String[] { "mvn", "clean", "package", "-Dquarkus.package.output-name=quarkus" }, new String[] { "java", "-jar", "target/quarkus-runner.jar" } }), - SPRING_BOOT_02_JVM(new String[][] { - new String[] { "mvn", "clean", "package" }, // There is no possibility of changing the final name of the artifact - new String[] { "java", "-jar", "target/smarthouse.jar" } - }), - SPRING_BOOT_03_JVM(new String[][] { - new String[] { "mvn", "clean", "package" }, + SPRING_BOOT_JVM(new String[][] { + new String[] { "mvn", "clean", "package" }, // The JAR name is unified by setting finalName in the kie-assets-library repo new String[] { "java", "-jar", "target/smarthouse.jar" } }), + + // These are not used now but may be useful in the future DEV(new String[][] { new String[] { "mvn", "clean", "quarkus:dev", "-Dmaven.repo.local=" + getLocalMavenRepoDir() } }), @@ -26,16 +24,6 @@ public enum MvnCmds { getQuarkusNativeProperties().stream()).toArray(String[]::new), new String[] { Commands.isThisWindows ? "target\\quarkus-runner" : "./target/quarkus-runner" } }), - // GENERATOR(new String[][] { - // new String[] { - // "mvn", - // "io.quarkus:quarkus-maven-plugin:" + getQuarkusVersion() + ":create", - // "-DprojectGroupId=my-groupId", - // "-DprojectArtifactId=" + App.GENERATED_SKELETON.dir, - // "-DprojectVersion=1.0.0-SNAPSHOT", - // "-DpackageName=org.my.group" - // } - // }), MVNW_DEV(new String[][] { new String[] { Commands.MVNW, "quarkus:dev" } }), diff --git a/framework/src/main/java/org/kie/kogito/benchmarks/framework/RunInfo.java b/kogito-benchmarks-framework/src/main/java/org/kie/kogito/benchmarks/framework/RunInfo.java similarity index 89% rename from framework/src/main/java/org/kie/kogito/benchmarks/framework/RunInfo.java rename to kogito-benchmarks-framework/src/main/java/org/kie/kogito/benchmarks/framework/RunInfo.java index e7f4599..01f6d0a 100644 --- a/framework/src/main/java/org/kie/kogito/benchmarks/framework/RunInfo.java +++ b/kogito-benchmarks-framework/src/main/java/org/kie/kogito/benchmarks/framework/RunInfo.java @@ -2,6 +2,9 @@ package org.kie.kogito.benchmarks.framework; import java.io.File; +/** + * A class which holds information about a started application. + */ public class RunInfo { private final Process process; diff --git a/framework/src/main/java/org/kie/kogito/benchmarks/framework/URLContent.java b/kogito-benchmarks-framework/src/main/java/org/kie/kogito/benchmarks/framework/URLContent.java similarity index 100% rename from framework/src/main/java/org/kie/kogito/benchmarks/framework/URLContent.java rename to kogito-benchmarks-framework/src/main/java/org/kie/kogito/benchmarks/framework/URLContent.java diff --git a/framework/src/main/java/org/kie/kogito/benchmarks/framework/WebpageTester.java b/kogito-benchmarks-framework/src/main/java/org/kie/kogito/benchmarks/framework/WebpageTester.java similarity index 83% rename from framework/src/main/java/org/kie/kogito/benchmarks/framework/WebpageTester.java rename to kogito-benchmarks-framework/src/main/java/org/kie/kogito/benchmarks/framework/WebpageTester.java index f88118e..2a1eedf 100644 --- a/framework/src/main/java/org/kie/kogito/benchmarks/framework/WebpageTester.java +++ b/kogito-benchmarks-framework/src/main/java/org/kie/kogito/benchmarks/framework/WebpageTester.java @@ -7,12 +7,13 @@ import java.nio.charset.StandardCharsets; import java.util.Scanner; import org.apache.commons.lang3.StringUtils; -import org.jboss.logging.Logger; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import static org.junit.jupiter.api.Assertions.assertTrue; public class WebpageTester { - private static final Logger LOGGER = Logger.getLogger(WebpageTester.class.getName()); + private static final Logger logger = LoggerFactory.getLogger(WebpageTester.class); /** * Patiently try to wait for a web page and examine it @@ -34,7 +35,6 @@ public class WebpageTester { String webPage = ""; long now = System.currentTimeMillis(); - System.out.println("Now in the testWeb method: " + now); final long startTime = now; boolean found = false; long foundTimestamp = -1L; @@ -42,19 +42,16 @@ public class WebpageTester { URLConnection c = new URL(url).openConnection(); c.setRequestProperty("Accept", "*/*"); c.setConnectTimeout(500); - long requestStart = System.currentTimeMillis(); try (Scanner scanner = new Scanner(c.getInputStream(), StandardCharsets.UTF_8.toString())) { scanner.useDelimiter("\\A"); webPage = scanner.hasNext() ? scanner.next() : ""; } catch (Exception e) { - LOGGER.debug("Waiting `" + stringToLookFor + "' to appear on " + url); + logger.debug("Waiting `" + stringToLookFor + "' to appear on " + url); } if (webPage.contains(stringToLookFor)) { found = true; if (measureTime) { foundTimestamp = System.currentTimeMillis(); - System.out.println("Found timestamp " + foundTimestamp); - System.out.println("Request took " + (foundTimestamp - requestStart)); } break; } @@ -70,7 +67,7 @@ public class WebpageTester { (StringUtils.isNotBlank(webPage) ? webPage + " must contain string: " : "Empty webpage does not contain string: ") + "`" + stringToLookFor + "'"; if (!found) { - LOGGER.info(failureMessage); + logger.info(failureMessage); } assertTrue(found, failureMessage); return foundTimestamp - startTime; diff --git a/framework/src/main/java/org/kie/kogito/benchmarks/framework/WhitelistLogLines.java b/kogito-benchmarks-framework/src/main/java/org/kie/kogito/benchmarks/framework/WhitelistLogLines.java similarity index 100% rename from framework/src/main/java/org/kie/kogito/benchmarks/framework/WhitelistLogLines.java rename to kogito-benchmarks-framework/src/main/java/org/kie/kogito/benchmarks/framework/WhitelistLogLines.java diff --git a/framework/src/main/resources/CtrlC.exe b/kogito-benchmarks-framework/src/main/resources/CtrlC.exe similarity index 100% rename from framework/src/main/resources/CtrlC.exe rename to kogito-benchmarks-framework/src/main/resources/CtrlC.exe diff --git a/framework/src/main/resources/README.md b/kogito-benchmarks-framework/src/main/resources/README.md similarity index 100% rename from framework/src/main/resources/README.md rename to kogito-benchmarks-framework/src/main/resources/README.md diff --git a/framework/src/main/resources/smarthouse-02-dm-quarkus/threshold.properties b/kogito-benchmarks-framework/src/main/resources/smarthouse-02-dm-quarkus/threshold.properties similarity index 100% rename from framework/src/main/resources/smarthouse-02-dm-quarkus/threshold.properties rename to kogito-benchmarks-framework/src/main/resources/smarthouse-02-dm-quarkus/threshold.properties diff --git a/framework/src/main/resources/smarthouse-02-dm-springboot/threshold.properties b/kogito-benchmarks-framework/src/main/resources/smarthouse-02-dm-springboot/threshold.properties similarity index 100% rename from framework/src/main/resources/smarthouse-02-dm-springboot/threshold.properties rename to kogito-benchmarks-framework/src/main/resources/smarthouse-02-dm-springboot/threshold.properties diff --git a/framework/src/main/resources/smarthouse-03-dm-quarkus/threshold.properties b/kogito-benchmarks-framework/src/main/resources/smarthouse-03-dm-quarkus/threshold.properties similarity index 100% rename from framework/src/main/resources/smarthouse-03-dm-quarkus/threshold.properties rename to kogito-benchmarks-framework/src/main/resources/smarthouse-03-dm-quarkus/threshold.properties diff --git a/framework/src/main/resources/smarthouse-03-dm-springboot/threshold.properties b/kogito-benchmarks-framework/src/main/resources/smarthouse-03-dm-springboot/threshold.properties similarity index 100% rename from framework/src/main/resources/smarthouse-03-dm-springboot/threshold.properties rename to kogito-benchmarks-framework/src/main/resources/smarthouse-03-dm-springboot/threshold.properties diff --git a/tests/pom.xml b/kogito-benchmarks-tests/pom.xml similarity index 66% rename from tests/pom.xml rename to kogito-benchmarks-tests/pom.xml index 5274a7b..abd6d17 100644 --- a/tests/pom.xml +++ b/kogito-benchmarks-tests/pom.xml @@ -10,35 +10,43 @@ <version>2.0.0-SNAPSHOT</version> </parent> - <artifactId>tests</artifactId> + <artifactId>kogito-benchmarks-tests</artifactId> - <name></name> - <description></description> + <name>Kogito :: Benchmarks :: Tests</name> + <description>Benchmarks of sample Kogito apps themselves</description> <properties> + <!-- Skip benchmarks by default --> + <skipTests>true</skipTests> <appsDir>${project.parent.basedir}/</appsDir> + + <version.org.apache.httpcomponents>4.5.13</version.org.apache.httpcomponents> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>org.kie.kogito</groupId> - <artifactId>framework</artifactId> + <artifactId>kogito-benchmarks-framework</artifactId> <version>${project.version}</version> </dependency> + <dependency> + <groupId>org.apache.httpcomponents</groupId> + <artifactId>httpclient</artifactId> + <version>${version.org.apache.httpcomponents}</version> + </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>org.kie.kogito</groupId> - <artifactId>framework</artifactId> + <artifactId>kogito-benchmarks-framework</artifactId> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> - <version>4.5.13</version> </dependency> </dependencies> diff --git a/tests/src/test/java/org/kie/kogito/benchmarks/AbstractTemplateTest.java b/kogito-benchmarks-tests/src/test/java/org/kie/kogito/benchmarks/AbstractTemplateTest.java similarity index 76% rename from tests/src/test/java/org/kie/kogito/benchmarks/AbstractTemplateTest.java rename to kogito-benchmarks-tests/src/test/java/org/kie/kogito/benchmarks/AbstractTemplateTest.java index a8b9b11..80edb77 100644 --- a/tests/src/test/java/org/kie/kogito/benchmarks/AbstractTemplateTest.java +++ b/kogito-benchmarks-tests/src/test/java/org/kie/kogito/benchmarks/AbstractTemplateTest.java @@ -18,10 +18,7 @@ import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.util.EntityUtils; import org.assertj.core.api.Assertions; -import org.jboss.logging.Logger; -import org.junit.jupiter.api.MethodOrderer; import org.junit.jupiter.api.TestInfo; -import org.junit.jupiter.api.TestMethodOrder; import org.kie.kogito.benchmarks.framework.App; import org.kie.kogito.benchmarks.framework.BuildResult; import org.kie.kogito.benchmarks.framework.HTTPRequestInfo; @@ -29,6 +26,8 @@ import org.kie.kogito.benchmarks.framework.LogBuilder; import org.kie.kogito.benchmarks.framework.Logs; import org.kie.kogito.benchmarks.framework.MvnCmds; import org.kie.kogito.benchmarks.framework.RunInfo; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import static org.junit.jupiter.api.Assertions.assertTrue; import static org.kie.kogito.benchmarks.framework.Commands.buildApp; @@ -52,13 +51,13 @@ import static org.kie.kogito.benchmarks.framework.Logs.writeReport; public abstract class AbstractTemplateTest { - private static final Logger LOGGER = Logger.getLogger(AbstractTemplateTest.class.getName()); + private static final Logger logger = LoggerFactory.getLogger(AbstractTemplateTest.class); public static final int START_STOP_ITERATIONS = 3; public static final String LOCALHOST = "http://localhost:8080"; public void startStop(TestInfo testInfo, App app) throws IOException, InterruptedException { - LOGGER.info("Testing app startStop: " + app.toString() + ", mode: " + app.mavenCommands.toString()); + logger.info("Testing app startStop: " + app.toString() + ", mode: " + app.mavenCommands.toString()); Process pA = null; File buildLogA = null; @@ -89,7 +88,7 @@ public abstract class AbstractTemplateTest { List<Long> openedFilesValues = new ArrayList<>(START_STOP_ITERATIONS); for (int i = 0; i < START_STOP_ITERATIONS; i++) { - LOGGER.info("Running... round " + i); + logger.info("Running... round " + i); // Build buildResult = buildApp(app, mn, cn, whatIDidReport); buildLogA = buildResult.getBuildLog(); @@ -102,7 +101,7 @@ public abstract class AbstractTemplateTest { pA = runInfo.getProcess(); runLogA = runInfo.getRunLog(); - LOGGER.info("Terminate and scan logs..."); + logger.info("Terminate and scan logs..."); pA.getInputStream().available(); // TODO Ask Karm long rssKb = getRSSkB(pA.pid()); @@ -110,7 +109,7 @@ public abstract class AbstractTemplateTest { processStopper(pA, false); - LOGGER.info("Gonna wait for ports closed..."); + logger.info("Gonna wait for ports closed..."); // Release ports assertTrue(waitForTcpClosed("localhost", parsePort(app.urlContent.urlContent[0][0]), 60), "Main port is still open"); @@ -165,8 +164,8 @@ public abstract class AbstractTemplateTest { .build(); Logs.logMeasurementsSummary(log, measurementsSummary); - LOGGER.info("AVG timeToFirstOKRequest without min and max values: " + timeToFirstOKRequestAvgWithoutMinMax); - LOGGER.info("AVG rssKb without min and max values: " + rssKbAvgWithoutMinMax); + logger.info("AVG timeToFirstOKRequest without min and max values: " + timeToFirstOKRequestAvgWithoutMinMax); + logger.info("AVG rssKb without min and max values: " + rssKbAvgWithoutMinMax); checkThreshold(app, mvnCmds, rssKbAvgWithoutMinMax, timeToFirstOKRequestAvgWithoutMinMax, SKIP); } finally { // Make sure processes are down even if there was an exception / failure @@ -177,7 +176,6 @@ public abstract class AbstractTemplateTest { archiveLog(cn, mn, buildLogA); archiveLog(cn, mn, runLogA); writeReport(cn, mn, whatIDidReport.toString()); - //cleanTarget(app); } } @@ -188,7 +186,7 @@ public abstract class AbstractTemplateTest { } public void loadTest(TestInfo testInfo, App app, HTTPRequestInfo requestInfo) throws IOException, InterruptedException { - LOGGER.info("Testing app loadTest: " + app.toString() + ", mode: " + app.mavenCommands.toString()); + logger.info("Testing app loadTest: " + app.toString() + ", mode: " + app.mavenCommands.toString()); Process pA = null; File buildLogA = null; @@ -220,70 +218,67 @@ public abstract class AbstractTemplateTest { List<Long> values = new ArrayList<>(20000); - + // Intentionally commented, still considering implementing a pluggable REST client interface // Plain OLD Java "HTTP Client" -// long startTime = System.currentTimeMillis(); -// for (int i = 0; i < 20000; i++) { -// long requestStartTime = System.nanoTime(); -// HttpURLConnection c = (HttpURLConnection) new URL(requestInfo.getURI()).openConnection(); -// requestInfo.getHeaders().forEach(c::setRequestProperty); -// c.setRequestMethod(requestInfo.getMethod()); -// c.setDoOutput(true); -// c.setConnectTimeout(500); -// -// try (OutputStream os = c.getOutputStream()) { -// os.write(requestInfo.getBody().getBytes()); -// } -// -// try (Scanner scanner = new Scanner(c.getInputStream(), StandardCharsets.UTF_8.toString())) { -// Assertions.assertThat(c.getResponseCode()).isEqualTo(requestInfo.getExpectedResponseStatusCode()); -//// System.out.println("Response code: " + c.getResponseCode()); -// scanner.useDelimiter("\\A"); -// String webPage = scanner.hasNext() ? scanner.next() : ""; -//// System.out.println("Page is: " + webPage); -// } catch (Exception e) { -// LOGGER.info("Error when executing request on " + requestInfo.getURI(), e); -// } -// -// long requestEndTime = System.nanoTime(); -// long duration = requestEndTime - requestStartTime; -// values.add(duration); -//// System.out.println(duration); -// } -// long endTime = System.currentTimeMillis(); - + // long startTime = System.currentTimeMillis(); + // for (int i = 0; i < 20000; i++) { + // long requestStartTime = System.nanoTime(); + // HttpURLConnection c = (HttpURLConnection) new URL(requestInfo.getURI()).openConnection(); + // requestInfo.getHeaders().forEach(c::setRequestProperty); + // c.setRequestMethod(requestInfo.getMethod()); + // c.setDoOutput(true); + // c.setConnectTimeout(500); + // + // try (OutputStream os = c.getOutputStream()) { + // os.write(requestInfo.getBody().getBytes()); + // } + // + // try (Scanner scanner = new Scanner(c.getInputStream(), StandardCharsets.UTF_8.toString())) { + // Assertions.assertThat(c.getResponseCode()).isEqualTo(requestInfo.getExpectedResponseStatusCode()); + //// System.out.println("Response code: " + c.getResponseCode()); + // scanner.useDelimiter("\\A"); + // String webPage = scanner.hasNext() ? scanner.next() : ""; + //// System.out.println("Page is: " + webPage); + // } catch (Exception e) { + // LOGGER.info("Error when executing request on " + requestInfo.getURI(), e); + // } + // + // long requestEndTime = System.nanoTime(); + // long duration = requestEndTime - requestStartTime; + // values.add(duration); + //// System.out.println(duration); + // } + // long endTime = System.currentTimeMillis(); // Java 11 HTTP Client -// HttpClient httpClient = HttpClient.newHttpClient(); -// HttpRequest.Builder requestBuilder = HttpRequest.newBuilder(URI.create(requestInfo.getURI())) -// .POST(HttpRequest.BodyPublishers.ofString(requestInfo.getBody())); -// requestInfo.getHeaders().forEach(requestBuilder::header); -// HttpRequest request = requestBuilder.build(); -// -// -// -// -// long startTime = System.currentTimeMillis(); -// for (int i = 0; i < 20000; i++) { -// long requestStartTime = System.nanoTime(); -// HttpResponse<String> response = httpClient.send(request, HttpResponse.BodyHandlers.ofString()); -// Assertions.assertThat(response.statusCode()).isEqualTo(requestInfo.getExpectedResponseStatusCode()); -//// System.out.println("Response code: " + response.statusCode()); -//// System.out.println("Page is: " + response.body()); -// long requestEndTime = System.nanoTime(); -// long duration = requestEndTime - requestStartTime; -// values.add(duration); -//// System.out.println(duration); -// } -// long endTime = System.currentTimeMillis(); - - + // HttpClient httpClient = HttpClient.newHttpClient(); + // HttpRequest.Builder requestBuilder = HttpRequest.newBuilder(URI.create(requestInfo.getURI())) + // .POST(HttpRequest.BodyPublishers.ofString(requestInfo.getBody())); + // requestInfo.getHeaders().forEach(requestBuilder::header); + // HttpRequest request = requestBuilder.build(); + // + // + // + // + // long startTime = System.currentTimeMillis(); + // for (int i = 0; i < 20000; i++) { + // long requestStartTime = System.nanoTime(); + // HttpResponse<String> response = httpClient.send(request, HttpResponse.BodyHandlers.ofString()); + // Assertions.assertThat(response.statusCode()).isEqualTo(requestInfo.getExpectedResponseStatusCode()); + //// System.out.println("Response code: " + response.statusCode()); + //// System.out.println("Page is: " + response.body()); + // long requestEndTime = System.nanoTime(); + // long duration = requestEndTime - requestStartTime; + // values.add(duration); + //// System.out.println(duration); + // } + // long endTime = System.currentTimeMillis(); // Apache HTTP Client 4 long totalDuration; long firstResponseTime; - try (CloseableHttpClient client = HttpClients.createDefault()){ + try (CloseableHttpClient client = HttpClients.createDefault()) { HttpPost postRequest = new HttpPost(requestInfo.getURI()); postRequest.setEntity(new StringEntity(requestInfo.getBody())); requestInfo.getHeaders().forEach(postRequest::setHeader); @@ -301,6 +296,7 @@ public abstract class AbstractTemplateTest { totalDuration = endTime - startTime; } + // Intentionally left here until a proper reporting to a file is present System.out.println("First response time: " + firstResponseTime); System.out.println("First response times: " + values.stream().limit(100).collect(Collectors.toList())); System.out.println("Last response times: " + values.stream().skip(values.size() - 100).collect(Collectors.toList())); @@ -308,15 +304,15 @@ public abstract class AbstractTemplateTest { System.out.println("Total duration: " + totalDuration); long rssKbFinal = getRSSkB(pA.pid()); - long openedFiles = getOpenedFDs(pA.pid()); // TODO also do before the "test" itself? + long openedFiles = getOpenedFDs(pA.pid()); // TODO also do before the "test" itself? Maybe not needed as before is covered in a startStop test // Stop the App processStopper(pA, false); - LOGGER.info("Gonna wait for ports closed..."); + logger.info("Gonna wait for ports closed..."); // Release ports assertTrue(waitForTcpClosed("localhost", parsePort(app.urlContent.urlContent[0][0]), 60), - "Main port is still open"); + "Main port is still open"); checkLog(cn, mn, app, mvnCmds, runLogA); checkListeningHost(cn, mn, mvnCmds, runLogA); @@ -359,8 +355,6 @@ public abstract class AbstractTemplateTest { archiveLog(cn, mn, buildLogA); archiveLog(cn, mn, runLogA); writeReport(cn, mn, whatIDidReport.toString()); - //cleanTarget(app); - } } @@ -369,8 +363,6 @@ public abstract class AbstractTemplateTest { long requestStartTime = System.nanoTime(); try (CloseableHttpResponse response = client.execute(request)) { Assertions.assertThat(response.getStatusLine().getStatusCode()).isEqualTo(expectedResponseStatusCode); -// System.out.println("Response code: " + response.getStatusLine().getStatusCode()); -// System.out.println("Page is: " + EntityUtils.toString(response.getEntity())); EntityUtils.consume(response.getEntity()); } long requestEndTime = System.nanoTime(); diff --git a/tests/src/test/java/org/kie/kogito/benchmarks/SmartHouse02QuarkusTest.java b/kogito-benchmarks-tests/src/test/java/org/kie/kogito/benchmarks/SmartHouse02QuarkusTest.java similarity index 79% rename from tests/src/test/java/org/kie/kogito/benchmarks/SmartHouse02QuarkusTest.java rename to kogito-benchmarks-tests/src/test/java/org/kie/kogito/benchmarks/SmartHouse02QuarkusTest.java index 0e3661d..f537b47 100644 --- a/tests/src/test/java/org/kie/kogito/benchmarks/SmartHouse02QuarkusTest.java +++ b/kogito-benchmarks-tests/src/test/java/org/kie/kogito/benchmarks/SmartHouse02QuarkusTest.java @@ -1,7 +1,5 @@ package org.kie.kogito.benchmarks; -import static org.kie.kogito.benchmarks.framework.Logs.getLogsDir; - import java.io.IOException; import org.junit.jupiter.api.Test; @@ -28,7 +26,7 @@ public class SmartHouse02QuarkusTest extends AbstractTemplateTest { .header("Content-Type", "application/json") .expectedResponseStatusCode(200) .build(); // This may be directly replaced for example by Apache-specific class, but this keeps - // it detached from any framework + // it detached from any framework loadTest(testInfo, APP_TO_TEST, requestInfo); } diff --git a/tests/src/test/java/org/kie/kogito/benchmarks/SmartHouse02SpringBootTest.java b/kogito-benchmarks-tests/src/test/java/org/kie/kogito/benchmarks/SmartHouse02SpringBootTest.java similarity index 79% rename from tests/src/test/java/org/kie/kogito/benchmarks/SmartHouse02SpringBootTest.java rename to kogito-benchmarks-tests/src/test/java/org/kie/kogito/benchmarks/SmartHouse02SpringBootTest.java index dc6d7e9..c97db35 100644 --- a/tests/src/test/java/org/kie/kogito/benchmarks/SmartHouse02SpringBootTest.java +++ b/kogito-benchmarks-tests/src/test/java/org/kie/kogito/benchmarks/SmartHouse02SpringBootTest.java @@ -26,7 +26,7 @@ public class SmartHouse02SpringBootTest extends AbstractTemplateTest { .header("Content-Type", "application/json") .expectedResponseStatusCode(200) .build(); // This may be directly replaced for example by Apache-specific class, but this keeps - // it detached from any framework + // it detached from any framework loadTest(testInfo, APP_TO_TEST, requestInfo); } diff --git a/tests/src/test/java/org/kie/kogito/benchmarks/SmartHouse03QuarkusTest.java b/kogito-benchmarks-tests/src/test/java/org/kie/kogito/benchmarks/SmartHouse03QuarkusTest.java similarity index 79% rename from tests/src/test/java/org/kie/kogito/benchmarks/SmartHouse03QuarkusTest.java rename to kogito-benchmarks-tests/src/test/java/org/kie/kogito/benchmarks/SmartHouse03QuarkusTest.java index eaafc48..beee3bc 100644 --- a/tests/src/test/java/org/kie/kogito/benchmarks/SmartHouse03QuarkusTest.java +++ b/kogito-benchmarks-tests/src/test/java/org/kie/kogito/benchmarks/SmartHouse03QuarkusTest.java @@ -26,7 +26,7 @@ public class SmartHouse03QuarkusTest extends AbstractTemplateTest { .header("Content-Type", "application/json") .expectedResponseStatusCode(200) .build(); // This may be directly replaced for example by Apache-specific class, but this keeps - // it detached from any framework + // it detached from any framework loadTest(testInfo, APP_TO_TEST, requestInfo); } diff --git a/tests/src/test/java/org/kie/kogito/benchmarks/SmartHouse03SpringBootTest.java b/kogito-benchmarks-tests/src/test/java/org/kie/kogito/benchmarks/SmartHouse03SpringBootTest.java similarity index 79% rename from tests/src/test/java/org/kie/kogito/benchmarks/SmartHouse03SpringBootTest.java rename to kogito-benchmarks-tests/src/test/java/org/kie/kogito/benchmarks/SmartHouse03SpringBootTest.java index 1a79de9..f5c9e1e 100644 --- a/tests/src/test/java/org/kie/kogito/benchmarks/SmartHouse03SpringBootTest.java +++ b/kogito-benchmarks-tests/src/test/java/org/kie/kogito/benchmarks/SmartHouse03SpringBootTest.java @@ -26,7 +26,7 @@ public class SmartHouse03SpringBootTest extends AbstractTemplateTest { .header("Content-Type", "application/json") .expectedResponseStatusCode(200) .build(); // This may be directly replaced for example by Apache-specific class, but this keeps - // it detached from any framework + // it detached from any framework loadTest(testInfo, APP_TO_TEST, requestInfo); } diff --git a/kogito-benchmarks-tests/src/test/resources/logback-test.xml b/kogito-benchmarks-tests/src/test/resources/logback-test.xml new file mode 100644 index 0000000..af25563 --- /dev/null +++ b/kogito-benchmarks-tests/src/test/resources/logback-test.xml @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8"?> +<configuration> + + <appender name="consoleAppender" class="ch.qos.logback.core.ConsoleAppender"> + <encoder> + <!-- %l lowers performance --> + <!--<pattern>%d [%t] %-5p %l%n %m%n</pattern>--> + <pattern>%d [%cyan(%t)|%magenta(%C)] %highlight(%-5p) %m%n</pattern> + </encoder> + </appender> + + <root level="info"> + <appender-ref ref="consoleAppender" /> + </root> + +</configuration> \ No newline at end of file diff --git a/pom.xml b/pom.xml index c37181a..0a7d55d 100644 --- a/pom.xml +++ b/pom.xml @@ -13,17 +13,16 @@ <artifactId>kogito-benchmarks</artifactId> <packaging>pom</packaging> - <name></name> - <description></description> + <name>Kogito :: Benchmarks</name> + <description>Benchmarks of sample Kogito apps</description> <properties> <maven.compiler.release>11</maven.compiler.release> <!-- Mainly because of the additions to the Process API introduced in Java 9 --> </properties> <modules> - <module>framework</module> - <module>sample-kogito-app</module> - <module>tests</module> + <module>kogito-benchmarks-framework</module> + <module>kogito-benchmarks-tests</module> </modules> diff --git a/sample-kogito-app/pom.xml b/sample-kogito-app/pom.xml deleted file mode 100644 index e33c2b2..0000000 --- a/sample-kogito-app/pom.xml +++ /dev/null @@ -1,115 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project xmlns="http://maven.apache.org/POM/4.0.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <parent> - <groupId>org.kie.kogito</groupId> - <artifactId>kogito-benchmarks</artifactId> - <version>2.0.0-SNAPSHOT</version> - </parent> - - <artifactId>sample-kogito-app</artifactId> - - <properties> - <!-- Skip tests by default --> - <skipTests>true</skipTests> - <quarkus.version>1.11.5.Final</quarkus.version> - <kogito.version>1.4.1.Final</kogito.version> - <surefire.version>2.22.2</surefire.version> - <compiler.version>3.8.1</compiler.version> - - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <maven.compiler.release>11</maven.compiler.release> - </properties> - - <dependencyManagement> - <dependencies> - <dependency> - <groupId>org.kie.kogito</groupId> - <artifactId>kogito-quarkus-bom</artifactId> - <version>${kogito.version}</version> - <type>pom</type> - <scope>import</scope> - </dependency> - </dependencies> - </dependencyManagement> - - <dependencies> - <dependency> - <groupId>org.kie.kogito</groupId> - <artifactId>kogito-quarkus</artifactId> - </dependency> - <dependency> - <groupId>io.quarkus</groupId> - <artifactId>quarkus-resteasy</artifactId> - </dependency> - <dependency> - <groupId>io.quarkus</groupId> - <artifactId>quarkus-resteasy-jackson</artifactId> - </dependency> - <dependency> - <groupId>io.quarkus</groupId> - <artifactId>quarkus-smallrye-openapi</artifactId> - </dependency> - <dependency> - <groupId>io.quarkus</groupId> - <artifactId>quarkus-smallrye-health</artifactId> - </dependency> - <dependency> - <groupId>io.quarkus</groupId> - <artifactId>quarkus-arc</artifactId> - </dependency> - - <dependency> - <groupId>io.quarkus</groupId> - <artifactId>quarkus-junit5</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>io.rest-assured</groupId> - <artifactId>rest-assured</artifactId> - <scope>test</scope> - </dependency> - </dependencies> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>${compiler.version}</version> - <configuration> - <release>11</release> - </configuration> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-surefire-plugin</artifactId> - <version>${surefire.version}</version> - <configuration> - <systemPropertyVariables> - <java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager> - <maven.home>${maven.home}</maven.home> - </systemPropertyVariables> - </configuration> - </plugin> - <plugin> - <groupId>io.quarkus</groupId> - <artifactId>quarkus-maven-plugin</artifactId> - <version>${quarkus.version}</version> - <executions> - <execution> - <goals> - <goal>build</goal> - <goal>generate-code</goal> - <goal>generate-code-tests</goal> - </goals> - </execution> - </executions> - </plugin> - </plugins> - </build> - -</project> \ No newline at end of file diff --git a/sample-kogito-app/src/main/java/mypackage/GreetingEndpoint.java b/sample-kogito-app/src/main/java/mypackage/GreetingEndpoint.java deleted file mode 100644 index 812c1b5..0000000 --- a/sample-kogito-app/src/main/java/mypackage/GreetingEndpoint.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright 2021 Red Hat, Inc. and/or its affiliates. - * - * Licensed 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 mypackage; - -import java.text.SimpleDateFormat; -import java.util.Date; - -import javax.enterprise.event.Observes; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.QueryParam; -import javax.ws.rs.core.MediaType; - -import io.quarkus.runtime.StartupEvent; - -@Path("/") -public class GreetingEndpoint { - - private static final String template = "Hello, %s!"; - - @GET - @Path("/greeting") - @Produces(MediaType.APPLICATION_JSON) - public String greeting(@QueryParam("name") String name) { - System.out.println(new SimpleDateFormat("HH:mm:ss.SSS").format(new java.util.Date(System.currentTimeMillis()))); - String suffix = name != null ? name : "World"; - return String.valueOf(System.currentTimeMillis()); - } - - void onStart(@Observes StartupEvent startup) { - System.out.println(new SimpleDateFormat("HH:mm:ss.SSS").format(new Date())); - } -} \ No newline at end of file diff --git a/sample-kogito-app/src/main/resources/LoanApplication.bpmn b/sample-kogito-app/src/main/resources/LoanApplication.bpmn deleted file mode 100644 index df67fc3..0000000 --- a/sample-kogito-app/src/main/resources/LoanApplication.bpmn +++ /dev/null @@ -1,259 +0,0 @@ -<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:bpsim="http://www.bpsim.org/schemas/1.0" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:drools="http://www.jboss.org/drools" id="_an5RsHt5EDmPCqW-qXr3vw" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd http://www. [...] - <bpmn2:itemDefinition id="_amountItem" structureRef="Integer"/> - <bpmn2:itemDefinition id="_approvedItem" structureRef="Boolean"/> - <bpmn2:itemDefinition id="__A27A8002-A5DB-4448-9DC8-FC702E9AF322_namespaceInputXItem" structureRef="java.lang.String"/> - <bpmn2:itemDefinition id="__A27A8002-A5DB-4448-9DC8-FC702E9AF322_modelInputXItem" structureRef="java.lang.String"/> - <bpmn2:itemDefinition id="__A27A8002-A5DB-4448-9DC8-FC702E9AF322_decisionInputXItem" structureRef="java.lang.String"/> - <bpmn2:itemDefinition id="__A27A8002-A5DB-4448-9DC8-FC702E9AF322_amountInputXItem" structureRef="Integer"/> - <bpmn2:itemDefinition id="__A27A8002-A5DB-4448-9DC8-FC702E9AF322_mortgageApprovedOutputXItem" structureRef="Boolean"/> - <bpmn2:process id="LoanApplication" drools:packageName="com.example" drools:version="1.0" drools:adHoc="false" name="LoanApplication" isExecutable="true" processType="Public"> - <bpmn2:property id="amount" itemSubjectRef="_amountItem" name="amount"> - <bpmn2:extensionElements> - <drools:metaData name="customTags"> - <drools:metaValue><![CDATA[tracked]]></drools:metaValue> - </drools:metaData> - </bpmn2:extensionElements> - </bpmn2:property> - <bpmn2:property id="approved" itemSubjectRef="_approvedItem" name="approved"> - <bpmn2:extensionElements> - <drools:metaData name="customTags"> - <drools:metaValue><![CDATA[tracked]]></drools:metaValue> - </drools:metaData> - </bpmn2:extensionElements> - </bpmn2:property> - <bpmn2:sequenceFlow id="_CA9E497D-E2DE-47B3-8CB6-7CEB6BCC302A" sourceRef="_293C116F-8607-4D9C-AFFE-9901DF5B9D33" targetRef="_E7D37FE2-7E1C-4AE2-8D5B-22D6AF4F0F6E"/> - <bpmn2:sequenceFlow id="_2C3AB5A8-9862-4AEB-8B74-7274A67CAB71" sourceRef="_7CA472D9-AB07-42B5-9D05-C2F6661F033C" targetRef="_C4FB5974-F764-42C7-95AA-DE6F6F14D167"/> - <bpmn2:sequenceFlow id="_33084556-2A2C-44ED-92D6-53C4957E6670" sourceRef="_7CA472D9-AB07-42B5-9D05-C2F6661F033C" targetRef="_293C116F-8607-4D9C-AFFE-9901DF5B9D33"> - <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="http://www.java.com/java"><![CDATA[return approved;]]></bpmn2:conditionExpression> - </bpmn2:sequenceFlow> - <bpmn2:sequenceFlow id="_CC99D2A0-69E2-4488-A0DB-F01FB1DBE2CD" sourceRef="_A27A8002-A5DB-4448-9DC8-FC702E9AF322" targetRef="_7CA472D9-AB07-42B5-9D05-C2F6661F033C"/> - <bpmn2:sequenceFlow id="_C7CF5D2E-E5B1-4240-8DA8-4B75CE6EB936" sourceRef="_C4FB5974-F764-42C7-95AA-DE6F6F14D167" targetRef="_C8496017-134C-4C70-9D16-9E67C7D3CEBF"/> - <bpmn2:sequenceFlow id="_6FC874CA-F759-4F96-AE0E-9C397789E1C2" sourceRef="_0002A37F-EAEE-447C-A9D2-11458967B7AE" targetRef="_A27A8002-A5DB-4448-9DC8-FC702E9AF322"> - <bpmn2:extensionElements> - <drools:metaData name="isAutoConnection.source"> - <drools:metaValue><![CDATA[true]]></drools:metaValue> - </drools:metaData> - <drools:metaData name="isAutoConnection.target"> - <drools:metaValue><![CDATA[true]]></drools:metaValue> - </drools:metaData> - </bpmn2:extensionElements> - </bpmn2:sequenceFlow> - <bpmn2:scriptTask id="_C4FB5974-F764-42C7-95AA-DE6F6F14D167" name="Declined" scriptFormat="http://www.java.com/java"> - <bpmn2:extensionElements> - <drools:metaData name="elementname"> - <drools:metaValue><![CDATA[Declined]]></drools:metaValue> - </drools:metaData> - </bpmn2:extensionElements> - <bpmn2:incoming>_2C3AB5A8-9862-4AEB-8B74-7274A67CAB71</bpmn2:incoming> - <bpmn2:outgoing>_C7CF5D2E-E5B1-4240-8DA8-4B75CE6EB936</bpmn2:outgoing> - <bpmn2:script>System.out.println("Mortgage has been DECLINED");</bpmn2:script> - </bpmn2:scriptTask> - <bpmn2:scriptTask id="_293C116F-8607-4D9C-AFFE-9901DF5B9D33" name="Approved" scriptFormat="http://www.java.com/java"> - <bpmn2:extensionElements> - <drools:metaData name="elementname"> - <drools:metaValue><![CDATA[Approved]]></drools:metaValue> - </drools:metaData> - </bpmn2:extensionElements> - <bpmn2:incoming>_33084556-2A2C-44ED-92D6-53C4957E6670</bpmn2:incoming> - <bpmn2:outgoing>_CA9E497D-E2DE-47B3-8CB6-7CEB6BCC302A</bpmn2:outgoing> - <bpmn2:script>System.out.println("Mortgage has been APPROVED");</bpmn2:script> - </bpmn2:scriptTask> - <bpmn2:endEvent id="_E7D37FE2-7E1C-4AE2-8D5B-22D6AF4F0F6E"> - <bpmn2:incoming>_CA9E497D-E2DE-47B3-8CB6-7CEB6BCC302A</bpmn2:incoming> - </bpmn2:endEvent> - <bpmn2:exclusiveGateway id="_7CA472D9-AB07-42B5-9D05-C2F6661F033C" drools:dg="_2C3AB5A8-9862-4AEB-8B74-7274A67CAB71" gatewayDirection="Diverging" default="_2C3AB5A8-9862-4AEB-8B74-7274A67CAB71"> - <bpmn2:incoming>_CC99D2A0-69E2-4488-A0DB-F01FB1DBE2CD</bpmn2:incoming> - <bpmn2:outgoing>_33084556-2A2C-44ED-92D6-53C4957E6670</bpmn2:outgoing> - <bpmn2:outgoing>_2C3AB5A8-9862-4AEB-8B74-7274A67CAB71</bpmn2:outgoing> - </bpmn2:exclusiveGateway> - <bpmn2:businessRuleTask id="_A27A8002-A5DB-4448-9DC8-FC702E9AF322" name="Mortgage Approval" implementation="http://www.jboss.org/drools/dmn"> - <bpmn2:extensionElements> - <drools:metaData name="elementname"> - <drools:metaValue><![CDATA[Mortgage Approval]]></drools:metaValue> - </drools:metaData> - </bpmn2:extensionElements> - <bpmn2:incoming>_6FC874CA-F759-4F96-AE0E-9C397789E1C2</bpmn2:incoming> - <bpmn2:outgoing>_CC99D2A0-69E2-4488-A0DB-F01FB1DBE2CD</bpmn2:outgoing> - <bpmn2:ioSpecification> - <bpmn2:dataInput id="_A27A8002-A5DB-4448-9DC8-FC702E9AF322_namespaceInputX" drools:dtype="java.lang.String" itemSubjectRef="__A27A8002-A5DB-4448-9DC8-FC702E9AF322_namespaceInputXItem" name="namespace"/> - <bpmn2:dataInput id="_A27A8002-A5DB-4448-9DC8-FC702E9AF322_decisionInputX" drools:dtype="java.lang.String" itemSubjectRef="__A27A8002-A5DB-4448-9DC8-FC702E9AF322_decisionInputXItem" name="decision"/> - <bpmn2:dataInput id="_A27A8002-A5DB-4448-9DC8-FC702E9AF322_modelInputX" drools:dtype="java.lang.String" itemSubjectRef="__A27A8002-A5DB-4448-9DC8-FC702E9AF322_modelInputXItem" name="model"/> - <bpmn2:dataInput id="_A27A8002-A5DB-4448-9DC8-FC702E9AF322_amountInputX" drools:dtype="Integer" itemSubjectRef="__A27A8002-A5DB-4448-9DC8-FC702E9AF322_amountInputXItem" name="amount"/> - <bpmn2:dataOutput id="_A27A8002-A5DB-4448-9DC8-FC702E9AF322_mortgageApprovedOutputX" drools:dtype="Boolean" itemSubjectRef="__A27A8002-A5DB-4448-9DC8-FC702E9AF322_mortgageApprovedOutputXItem" name="mortgageApproved"/> - <bpmn2:inputSet> - <bpmn2:dataInputRefs>_A27A8002-A5DB-4448-9DC8-FC702E9AF322_namespaceInputX</bpmn2:dataInputRefs> - <bpmn2:dataInputRefs>_A27A8002-A5DB-4448-9DC8-FC702E9AF322_decisionInputX</bpmn2:dataInputRefs> - <bpmn2:dataInputRefs>_A27A8002-A5DB-4448-9DC8-FC702E9AF322_modelInputX</bpmn2:dataInputRefs> - <bpmn2:dataInputRefs>_A27A8002-A5DB-4448-9DC8-FC702E9AF322_amountInputX</bpmn2:dataInputRefs> - </bpmn2:inputSet> - <bpmn2:outputSet> - <bpmn2:dataOutputRefs>_A27A8002-A5DB-4448-9DC8-FC702E9AF322_mortgageApprovedOutputX</bpmn2:dataOutputRefs> - </bpmn2:outputSet> - </bpmn2:ioSpecification> - <bpmn2:dataInputAssociation> - <bpmn2:targetRef>_A27A8002-A5DB-4448-9DC8-FC702E9AF322_namespaceInputX</bpmn2:targetRef> - <bpmn2:assignment> - <bpmn2:from xsi:type="bpmn2:tFormalExpression"><![CDATA[https://kiegroup.org/dmn/_28B07541-BCAA-4D8D-B754-05ED035496BA]]></bpmn2:from> - <bpmn2:to xsi:type="bpmn2:tFormalExpression"><![CDATA[_A27A8002-A5DB-4448-9DC8-FC702E9AF322_namespaceInputX]]></bpmn2:to> - </bpmn2:assignment> - </bpmn2:dataInputAssociation> - <bpmn2:dataInputAssociation> - <bpmn2:targetRef>_A27A8002-A5DB-4448-9DC8-FC702E9AF322_decisionInputX</bpmn2:targetRef> - <bpmn2:assignment> - <bpmn2:from xsi:type="bpmn2:tFormalExpression"><![CDATA[MortgageApproved]]></bpmn2:from> - <bpmn2:to xsi:type="bpmn2:tFormalExpression"><![CDATA[_A27A8002-A5DB-4448-9DC8-FC702E9AF322_decisionInputX]]></bpmn2:to> - </bpmn2:assignment> - </bpmn2:dataInputAssociation> - <bpmn2:dataInputAssociation> - <bpmn2:targetRef>_A27A8002-A5DB-4448-9DC8-FC702E9AF322_modelInputX</bpmn2:targetRef> - <bpmn2:assignment> - <bpmn2:from xsi:type="bpmn2:tFormalExpression"><![CDATA[MortgageApproval]]></bpmn2:from> - <bpmn2:to xsi:type="bpmn2:tFormalExpression"><![CDATA[_A27A8002-A5DB-4448-9DC8-FC702E9AF322_modelInputX]]></bpmn2:to> - </bpmn2:assignment> - </bpmn2:dataInputAssociation> - <bpmn2:dataInputAssociation> - <bpmn2:sourceRef>amount</bpmn2:sourceRef> - <bpmn2:targetRef>_A27A8002-A5DB-4448-9DC8-FC702E9AF322_amountInputX</bpmn2:targetRef> - </bpmn2:dataInputAssociation> - <bpmn2:dataOutputAssociation> - <bpmn2:sourceRef>_A27A8002-A5DB-4448-9DC8-FC702E9AF322_mortgageApprovedOutputX</bpmn2:sourceRef> - <bpmn2:targetRef>approved</bpmn2:targetRef> - </bpmn2:dataOutputAssociation> - </bpmn2:businessRuleTask> - <bpmn2:endEvent id="_C8496017-134C-4C70-9D16-9E67C7D3CEBF"> - <bpmn2:incoming>_C7CF5D2E-E5B1-4240-8DA8-4B75CE6EB936</bpmn2:incoming> - </bpmn2:endEvent> - <bpmn2:startEvent id="_0002A37F-EAEE-447C-A9D2-11458967B7AE"> - <bpmn2:outgoing>_6FC874CA-F759-4F96-AE0E-9C397789E1C2</bpmn2:outgoing> - </bpmn2:startEvent> - </bpmn2:process> - <bpmndi:BPMNDiagram> - <bpmndi:BPMNPlane bpmnElement="LoanApplication"> - <bpmndi:BPMNShape id="shape__0002A37F-EAEE-447C-A9D2-11458967B7AE" bpmnElement="_0002A37F-EAEE-447C-A9D2-11458967B7AE"> - <dc:Bounds height="56" width="56" x="134" y="186"/> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="shape__C8496017-134C-4C70-9D16-9E67C7D3CEBF" bpmnElement="_C8496017-134C-4C70-9D16-9E67C7D3CEBF"> - <dc:Bounds height="56" width="56" x="830" y="262"/> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="shape__A27A8002-A5DB-4448-9DC8-FC702E9AF322" bpmnElement="_A27A8002-A5DB-4448-9DC8-FC702E9AF322"> - <dc:Bounds height="102" width="154" x="270" y="163"/> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="shape__7CA472D9-AB07-42B5-9D05-C2F6661F033C" bpmnElement="_7CA472D9-AB07-42B5-9D05-C2F6661F033C"> - <dc:Bounds height="56" width="56" x="504" y="186"/> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="shape__E7D37FE2-7E1C-4AE2-8D5B-22D6AF4F0F6E" bpmnElement="_E7D37FE2-7E1C-4AE2-8D5B-22D6AF4F0F6E"> - <dc:Bounds height="56" width="56" x="830" y="102"/> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="shape__293C116F-8607-4D9C-AFFE-9901DF5B9D33" bpmnElement="_293C116F-8607-4D9C-AFFE-9901DF5B9D33"> - <dc:Bounds height="102" width="154" x="618" y="79"/> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="shape__C4FB5974-F764-42C7-95AA-DE6F6F14D167" bpmnElement="_C4FB5974-F764-42C7-95AA-DE6F6F14D167"> - <dc:Bounds height="102" width="154" x="618" y="239"/> - </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="edge_shape__0002A37F-EAEE-447C-A9D2-11458967B7AE_to_shape__A27A8002-A5DB-4448-9DC8-FC702E9AF322" bpmnElement="_6FC874CA-F759-4F96-AE0E-9C397789E1C2"> - <di:waypoint x="190" y="214"/> - <di:waypoint x="270" y="214"/> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="edge_shape__C4FB5974-F764-42C7-95AA-DE6F6F14D167_to_shape__C8496017-134C-4C70-9D16-9E67C7D3CEBF" bpmnElement="_C7CF5D2E-E5B1-4240-8DA8-4B75CE6EB936"> - <di:waypoint x="695" y="290"/> - <di:waypoint x="830" y="290"/> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="edge_shape__A27A8002-A5DB-4448-9DC8-FC702E9AF322_to_shape__7CA472D9-AB07-42B5-9D05-C2F6661F033C" bpmnElement="_CC99D2A0-69E2-4488-A0DB-F01FB1DBE2CD"> - <di:waypoint x="424" y="214"/> - <di:waypoint x="504" y="214"/> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="edge_shape__7CA472D9-AB07-42B5-9D05-C2F6661F033C_to_shape__293C116F-8607-4D9C-AFFE-9901DF5B9D33" bpmnElement="_33084556-2A2C-44ED-92D6-53C4957E6670"> - <di:waypoint x="532" y="186"/> - <di:waypoint x="532" y="130"/> - <di:waypoint x="618" y="130"/> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="edge_shape__7CA472D9-AB07-42B5-9D05-C2F6661F033C_to_shape__C4FB5974-F764-42C7-95AA-DE6F6F14D167" bpmnElement="_2C3AB5A8-9862-4AEB-8B74-7274A67CAB71"> - <di:waypoint x="532" y="242"/> - <di:waypoint x="532.0000000000026" y="290"/> - <di:waypoint x="618" y="290"/> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="edge_shape__293C116F-8607-4D9C-AFFE-9901DF5B9D33_to_shape__E7D37FE2-7E1C-4AE2-8D5B-22D6AF4F0F6E" bpmnElement="_CA9E497D-E2DE-47B3-8CB6-7CEB6BCC302A"> - <di:waypoint x="695" y="130"/> - <di:waypoint x="830" y="130"/> - </bpmndi:BPMNEdge> - </bpmndi:BPMNPlane> - </bpmndi:BPMNDiagram> - <bpmn2:relationship type="BPSimData"> - <bpmn2:extensionElements> - <bpsim:BPSimData> - <bpsim:Scenario id="default" name="Simulationscenario"> - <bpsim:ScenarioParameters/> - <bpsim:ElementParameters elementRef="_0002A37F-EAEE-447C-A9D2-11458967B7AE"> - <bpsim:TimeParameters> - <bpsim:ProcessingTime> - <bpsim:NormalDistribution mean="0" standardDeviation="0"/> - </bpsim:ProcessingTime> - </bpsim:TimeParameters> - </bpsim:ElementParameters> - <bpsim:ElementParameters elementRef="_A27A8002-A5DB-4448-9DC8-FC702E9AF322"> - <bpsim:TimeParameters> - <bpsim:ProcessingTime> - <bpsim:NormalDistribution mean="0" standardDeviation="0"/> - </bpsim:ProcessingTime> - </bpsim:TimeParameters> - <bpsim:ResourceParameters> - <bpsim:Availability> - <bpsim:FloatingParameter value="0"/> - </bpsim:Availability> - <bpsim:Quantity> - <bpsim:FloatingParameter value="0"/> - </bpsim:Quantity> - </bpsim:ResourceParameters> - <bpsim:CostParameters> - <bpsim:UnitCost> - <bpsim:FloatingParameter value="0"/> - </bpsim:UnitCost> - </bpsim:CostParameters> - </bpsim:ElementParameters> - <bpsim:ElementParameters elementRef="_293C116F-8607-4D9C-AFFE-9901DF5B9D33"> - <bpsim:TimeParameters> - <bpsim:ProcessingTime> - <bpsim:NormalDistribution mean="0" standardDeviation="0"/> - </bpsim:ProcessingTime> - </bpsim:TimeParameters> - <bpsim:ResourceParameters> - <bpsim:Availability> - <bpsim:FloatingParameter value="0"/> - </bpsim:Availability> - <bpsim:Quantity> - <bpsim:FloatingParameter value="0"/> - </bpsim:Quantity> - </bpsim:ResourceParameters> - <bpsim:CostParameters> - <bpsim:UnitCost> - <bpsim:FloatingParameter value="0"/> - </bpsim:UnitCost> - </bpsim:CostParameters> - </bpsim:ElementParameters> - <bpsim:ElementParameters elementRef="_C4FB5974-F764-42C7-95AA-DE6F6F14D167"> - <bpsim:TimeParameters> - <bpsim:ProcessingTime> - <bpsim:NormalDistribution mean="0" standardDeviation="0"/> - </bpsim:ProcessingTime> - </bpsim:TimeParameters> - <bpsim:ResourceParameters> - <bpsim:Availability> - <bpsim:FloatingParameter value="0"/> - </bpsim:Availability> - <bpsim:Quantity> - <bpsim:FloatingParameter value="0"/> - </bpsim:Quantity> - </bpsim:ResourceParameters> - <bpsim:CostParameters> - <bpsim:UnitCost> - <bpsim:FloatingParameter value="0"/> - </bpsim:UnitCost> - </bpsim:CostParameters> - </bpsim:ElementParameters> - </bpsim:Scenario> - </bpsim:BPSimData> - </bpmn2:extensionElements> - <bpmn2:source>_an5RsHt5EDmPCqW-qXr3vw</bpmn2:source> - <bpmn2:target>_an5RsHt5EDmPCqW-qXr3vw</bpmn2:target> - </bpmn2:relationship> -</bpmn2:definitions> \ No newline at end of file diff --git a/sample-kogito-app/src/main/resources/MortgageApproval.dmn b/sample-kogito-app/src/main/resources/MortgageApproval.dmn deleted file mode 100644 index 3ca0ed3..0000000 --- a/sample-kogito-app/src/main/resources/MortgageApproval.dmn +++ /dev/null @@ -1,81 +0,0 @@ -<dmn:definitions xmlns:dmn="http://www.omg.org/spec/DMN/20180521/MODEL/" xmlns="https://kiegroup.org/dmn/_28B07541-BCAA-4D8D-B754-05ED035496BA" xmlns:feel="http://www.omg.org/spec/DMN/20180521/FEEL/" xmlns:kie="http://www.drools.org/kie/dmn/1.2" xmlns:dmndi="http://www.omg.org/spec/DMN/20180521/DMNDI/" xmlns:di="http://www.omg.org/spec/DMN/20180521/DI/" xmlns:dc="http://www.omg.org/spec/DMN/20180521/DC/" id="_905E3E6C-C346-4DA3-AA28-9ED076578E03" name="MortgageApproval" typeLanguage="htt [...] - <dmn:extensionElements/> - <dmn:inputData id="_23558138-A90D-4685-9B08-1ABD1DDD0A2A" name="amount"> - <dmn:extensionElements/> - <dmn:variable id="_F42026F3-B207-41FF-8177-9954910B16A7" name="amount"/> - </dmn:inputData> - <dmn:decision id="_B0928930-EC40-4726-B8B1-4D9D5AEF1C82" name="mortgageApproved"> - <dmn:extensionElements/> - <dmn:variable id="_C54E9DA3-878C-4713-B790-606CB9C01721" name="mortgageApproved" typeRef="boolean"/> - <dmn:informationRequirement id="_AF4E07ED-DE25-4E44-BB37-3FDF52056005"> - <dmn:requiredInput href="#_23558138-A90D-4685-9B08-1ABD1DDD0A2A"/> - </dmn:informationRequirement> - <dmn:decisionTable id="_1D72E97A-473F-460A-A2F1-6602AF93FE3B" hitPolicy="FIRST" preferredOrientation="Rule-as-Row"> - <dmn:input id="_3E5D7B3E-6C23-46B0-B385-2362EEB99ADB"> - <dmn:inputExpression id="_D4F176DB-19F7-4B89-A1C6-57C126B9C4C3" typeRef="number"> - <dmn:text>amount</dmn:text> - </dmn:inputExpression> - </dmn:input> - <dmn:output id="_2F517F3D-D449-4AAF-B150-B8DF82E3A1C3"/> - <dmn:annotation name="Description"/> - <dmn:rule id="_8C26AAB7-6CCE-4BD3-9F40-A0B7F0CC3848"> - <dmn:inputEntry id="_7E7C0CAF-CDCA-4313-BDA9-EE13BCA8CB84"> - <dmn:text><5000</dmn:text> - </dmn:inputEntry> - <dmn:outputEntry id="_67260421-5E3A-4131-BB54-8ACA4B36B2C3"> - <dmn:text>true</dmn:text> - </dmn:outputEntry> - <dmn:annotationEntry> - <dmn:text>Less than 5000 is OK</dmn:text> - </dmn:annotationEntry> - </dmn:rule> - <dmn:rule id="_55C03D40-47FF-43D9-A15E-B08E5C53AE0E"> - <dmn:inputEntry id="_07A49F5D-8932-441D-8AF7-59C93E7E5752"> - <dmn:text>>=5000</dmn:text> - </dmn:inputEntry> - <dmn:outputEntry id="_ABECCAE3-5CEA-45CC-B111-E504B0947318"> - <dmn:text>false</dmn:text> - </dmn:outputEntry> - <dmn:annotationEntry> - <dmn:text>5000 and more is too much</dmn:text> - </dmn:annotationEntry> - </dmn:rule> - </dmn:decisionTable> - </dmn:decision> - <dmndi:DMNDI> - <dmndi:DMNDiagram id="_18B53C8E-F1CA-40CC-B2FF-4310382BDF60" name="DRG"> - <di:extension> - <kie:ComponentsWidthsExtension> - <kie:ComponentWidths dmnElementRef="_1D72E97A-473F-460A-A2F1-6602AF93FE3B"> - <kie:width>50</kie:width> - <kie:width>100</kie:width> - <kie:width>190</kie:width> - <kie:width>355</kie:width> - </kie:ComponentWidths> - </kie:ComponentsWidthsExtension> - </di:extension> - <dmndi:DMNShape id="dmnshape-drg-_23558138-A90D-4685-9B08-1ABD1DDD0A2A" dmnElementRef="_23558138-A90D-4685-9B08-1ABD1DDD0A2A" isCollapsed="false"> - <dmndi:DMNStyle> - <dmndi:FillColor red="255" green="255" blue="255"/> - <dmndi:StrokeColor red="0" green="0" blue="0"/> - <dmndi:FontColor red="0" green="0" blue="0"/> - </dmndi:DMNStyle> - <dc:Bounds x="281" y="266" width="100" height="50"/> - <dmndi:DMNLabel/> - </dmndi:DMNShape> - <dmndi:DMNShape id="dmnshape-drg-_B0928930-EC40-4726-B8B1-4D9D5AEF1C82" dmnElementRef="_B0928930-EC40-4726-B8B1-4D9D5AEF1C82" isCollapsed="false"> - <dmndi:DMNStyle> - <dmndi:FillColor red="255" green="255" blue="255"/> - <dmndi:StrokeColor red="0" green="0" blue="0"/> - <dmndi:FontColor red="0" green="0" blue="0"/> - </dmndi:DMNStyle> - <dc:Bounds x="255" y="108" width="154" height="72"/> - <dmndi:DMNLabel/> - </dmndi:DMNShape> - <dmndi:DMNEdge id="dmnedge-drg-_AF4E07ED-DE25-4E44-BB37-3FDF52056005" dmnElementRef="_AF4E07ED-DE25-4E44-BB37-3FDF52056005"> - <di:waypoint x="331" y="291"/> - <di:waypoint x="332" y="180"/> - </dmndi:DMNEdge> - </dmndi:DMNDiagram> - </dmndi:DMNDI> -</dmn:definitions> \ No newline at end of file diff --git a/sample-kogito-app/src/main/resources/application.properties b/sample-kogito-app/src/main/resources/application.properties deleted file mode 100644 index a733bf3..0000000 --- a/sample-kogito-app/src/main/resources/application.properties +++ /dev/null @@ -1,36 +0,0 @@ -# -# Copyright 2020 Red Hat, Inc. and/or its affiliates. -# -# Licensed 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. -# - -#https://quarkus.io/guides/openapi-swaggerui -quarkus.swagger-ui.always-include=true - -kogito.service.url=http://localhost:8080 - -# events configuration - -kafka.bootstrap.servers=localhost:9092 - -mp.messaging.outgoing.kogito-processinstances-events.connector=smallrye-kafka -mp.messaging.outgoing.kogito-processinstances-events.topic=kogito-processinstances-events -mp.messaging.outgoing.kogito-processinstances-events.value.serializer=org.apache.kafka.common.serialization.StringSerializer - -mp.messaging.outgoing.kogito-usertaskinstances-events.connector=smallrye-kafka -mp.messaging.outgoing.kogito-usertaskinstances-events.topic=kogito-usertaskinstances-events -mp.messaging.outgoing.kogito-usertaskinstances-events.value.serializer=org.apache.kafka.common.serialization.StringSerializer - -mp.messaging.outgoing.kogito-variables-events.connector=smallrye-kafka -mp.messaging.outgoing.kogito-variables-events.topic=kogito-variables-events -mp.messaging.outgoing.kogito-variables-events.value.serializer=org.apache.kafka.common.serialization.StringSerializer \ No newline at end of file diff --git a/sample-kogito-app/threshold.properties b/sample-kogito-app/threshold.properties deleted file mode 100644 index ea23577..0000000 --- a/sample-kogito-app/threshold.properties +++ /dev/null @@ -1,6 +0,0 @@ -linux.jvm.time.to.first.ok.request.threshold.ms=3000 -linux.jvm.RSS.threshold.kB=380000 -linux.native.time.to.first.ok.request.threshold.ms=35 -linux.native.RSS.threshold.kB=90000 -windows.jvm.time.to.first.ok.request.threshold.ms=2000 -windows.jvm.RSS.threshold.kB=4000 diff --git a/tests/src/test/java/org/kie/kogito/benchmarks/QuarkusSmallTest.java b/tests/src/test/java/org/kie/kogito/benchmarks/QuarkusSmallTest.java deleted file mode 100644 index e012a7e..0000000 --- a/tests/src/test/java/org/kie/kogito/benchmarks/QuarkusSmallTest.java +++ /dev/null @@ -1,20 +0,0 @@ -package org.kie.kogito.benchmarks; - -import java.io.IOException; - -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.TestInfo; -import org.kie.kogito.benchmarks.framework.App; - -public class QuarkusSmallTest extends AbstractTemplateTest { - - private static final App APP_TO_TEST = App.SMARTHOUSE_02_QUARKUS_JVM; - - public void startStop(TestInfo testInfo) throws IOException, InterruptedException { - startStop(testInfo, APP_TO_TEST); - } - - public void loadTest(TestInfo testInfo) { - // TODO - } -} diff --git a/tests/src/test/java/org/kie/kogito/benchmarks/QuarkusTest.java b/tests/src/test/java/org/kie/kogito/benchmarks/QuarkusTest.java deleted file mode 100644 index 0a598e3..0000000 --- a/tests/src/test/java/org/kie/kogito/benchmarks/QuarkusTest.java +++ /dev/null @@ -1,9 +0,0 @@ -package org.kie.kogito.benchmarks; - -import org.kie.kogito.benchmarks.framework.MvnCmds; - -public abstract class QuarkusTest extends AbstractTemplateTest { - - protected static final MvnCmds MavenCommands = MvnCmds.QUARKUS_JVM; - -} diff --git a/tests/src/test/resources/log4j2.xml b/tests/src/test/resources/log4j2.xml deleted file mode 100644 index 1faad0e..0000000 --- a/tests/src/test/resources/log4j2.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<Configuration status="WARN"> - <Appenders> - <Console name="Console" target="SYSTEM_OUT"> - <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight{%-5p}{FATAL=red blink, ERROR=red, WARN=yellow bold, INFO=green, DEBUG=green bold, TRACE=blue} [%style{%C{1.}}{cyan}] (%style{%M}{magenta}) %m%n"/> - </Console> - </Appenders> - <Loggers> - <Root level="info"> - <AppenderRef ref="Console"/> - </Root> - </Loggers> -</Configuration> \ No newline at end of file --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
