Skip to content

Commit 0d41383

Browse files
author
jbossorg-bot
committed
Published latest aggregated blog posts
1 parent ef24643 commit 0d41383

20 files changed

+126
-125
lines changed

src/content/posts-aggregator/1.json

+7-6
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
{
2-
"title": "Profiling to improve DMN file’s loading time",
3-
"link": "https://blog.kie.org/2022/06/profiling-to-improve-dmn-files-loading-time.html",
2+
"title": "Keycloak 18.0.2 released",
3+
"link": "https://www.keycloak.org/2022/06/keycloak-1802-released",
44
"author": [
55
{
6-
"name": "Daniel José dos Santos",
6+
"name": null,
77
"avatar": null
88
}
99
],
10-
"date": "2022-06-23T19:45:54.000Z",
11-
"feed_title": "KIE Community",
12-
"content": "One of my passions is to run profiling tools to find places in the code where performance improvements can be made. Sometimes, we are strongly convinced to know where bottlenecks are, and then, after running a profiler, find out that something completely different is making everything slow. This is one of those cases. In this article, I’ll show you how to profile a GWT application, the DMN Editor. WHAT IS PROFILING? In a nutshell: it is to run a tool against your running application that takes “snapshots” of what is being processed in terms of CPU, memory, I/O, and so on and at the end compare all the “snapshots” to see what it is being shown most of the time in those “snapshots”. FREE PRO-TIP RUNNING ANY PROFILING TOOL Sometimes the entire process that you want to analyze takes too much time, like minutes or even hours. You don’t need to run the profile for all that time otherwise you’ll produce an amount of data so big that analyzing that will be another problem. Of course, if the process takes, for example, 3 minutes but the first minute is slow because of one cause and the remaining minutes are slow because of another thing, a good strategy is to run the profile more times choosing the specific frame time that you want to analyze. WHAT TOOL DO I USE? For this scenario, which is to profile a GWT application, I use the Firefox Profiling Tool available in the Firefox Developer edition. Keep in mind that the tool choice depends on your programming language, where are you running your application (desktop, web), and so on THE REAL CASE In this scenario, we have a very large DMN model that was taking almost 4 minutes to load. And after being loaded, it still doesn’t seem that it was loaded like there is something that is still running in the background causing browser slowness and sometimes making it crash. To start I decided to analyze only the first 30 seconds to see if I got any clue there. RUNNING THE PROFILING TOOL All set, it’s time to run the DMN Editor for the first time! In the Firefox Developer, I hit F12 to show the developer tools. Then I go to the “Performance” tab. Finally, I started the loading of the DMN model which was taking too much time to load. I clicked on “Start recording” and waited a few seconds…. Clicked on “Capture record”. Firefox then loaded my data to profiler.firefox.com, and show me the results with the hot path expanded: Everything is clear now! The method _Kv_g being called by JcG_g called by sjm_g was my bottleneck! Wait… wait… what??? PROFILING GWT A part of our code is written in GWT. For those not aware: the code is written in Java and then “transpiled” to JavaScript. In other words, the code written in Java is “translated” to pure JavaScript code. But obfuscated (not readable by human beings). To debug we use a source map which is handled by the browser. Source map, as its names suggest, it is a “map” that tells the debugger what/where is the real code of the running code. So the method _Kv_g that we saw before is shown in the debugger like executeMyHappyMethod(). Or something like that. But unfortunately, it seems it doesn’t work for profiling. All we saw is the obfuscated code. But don’t panic. You just need to rebuild your application by changing the GWT transpiler from its default “generate obfuscated code” to “generate pretty code”. There are many ways to do that, it depends on the structure of your project but at the end of the day you just need to pass the parameter “-style PRETTY” to the GWT transpiler. In the case of our project, I had to change the pom.xml files to something like that: <plugin>   <groupId>org.codehaus.mojo</groupId>   <artifactId>gwt-maven-plugin</artifactId>   <configuration>   <style>PRETTY</style> (…) the rest of the settings Now everything is ready for a proper profiling phase. In the next post of this series, I finally show how we reduced the loading time of a file from around 3:53 minutes to 33 seconds with a simple change! Stay tuned! The post appeared first on ."
10+
"date": "2022-06-24T00:00:00.000Z",
11+
"feed_title": "Keycloak Blog",
12+
"feed_avatar": "https://www.gravatar.com/avatar/87fe00619f08c241da8dfb23d907ffa2?s=50",
13+
"content": "To download the release go to . MIGRATION FROM 17.0 Before you upgrade remember to backup your database. If you are not on the previous release refer to for a complete list of migration changes. ALL RESOLVED ISSUES BUGS * New admin console inaccessible keycloak admin/ui UPGRADING Before you upgrade remember to backup your database and check the for anything that may have changed."
1314
}

src/content/posts-aggregator/10.json

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
{
2-
"title": "Vlog: WildFly gRPC",
3-
"link": "https://www.youtube.com/watch?v=UYSNM9Dy5M4",
2+
"title": "How to validate Jakarta REST parameters",
3+
"link": "http://www.mastertheboss.com/jboss-frameworks/resteasy/how-to-validate-jakarta-rest-endpoint-values/",
44
"author": [
55
{
6-
"name": "Harald Pehl",
6+
"name": "F.Marchioni",
77
"avatar": null
88
}
99
],
10-
"date": "2022-06-09T00:00:00.000Z",
11-
"feed_title": "WildFly",
12-
"content": ""
10+
"date": "2022-06-10T16:08:56.000Z",
11+
"feed_title": "Mastertheboss",
12+
"content": "This article is a walk through the available options to perform validation of REST Endpoint parameters using Jakarta EE. We will show both Bean validation and Entity validation of a REST Service endpoint. The Jakarta Bean Validation specification allows to define some validation rules, from some built-in on a single field to complex customer rules. ... The post appeared first on ."
1313
}

src/content/posts-aggregator/11.json

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
{
2-
"title": "Kogito 1.22.1 released!",
3-
"link": "https://blog.kie.org/2022/06/kogito-1-22-1-released.html",
2+
"title": "Vlog: WildFly gRPC",
3+
"link": "https://www.youtube.com/watch?v=UYSNM9Dy5M4",
44
"author": [
55
{
6-
"name": "Cristiano Nicolai",
6+
"name": "Harald Pehl",
77
"avatar": null
88
}
99
],
10-
"date": "2022-06-08T01:23:46.000Z",
11-
"feed_title": "KIE Community",
12-
"content": "We are glad to announce that the Kogito 1.22.1 release is now available! This goes hand in hand with , release. From a feature point of view, we included a series of new features and bug fixes, including: * Added support for models including collections at Data Index service * Support to access HTTP headers in Serverless Workflows started using REST. * Debug logger for processes in quarkus dev mode BREAKING CHANGES * Codegen maven step should be disable or there is a likely chance openapi in Serverless Workflow will stop working (Quarkiverse integration is enabled with codegen maven step and is still in experimental phase, some specs are working, but others not) * To disable this experimental change, please remove the maven goals “generate-code” and “generate-code-tests” from the Quarkus Maven Plugin in your pom.xml file. This will keep the old OpenAPI integration feature in place.  If you want to use the experimental feature, please add the goals mentioned above to your pom.xml file. The properties now must be changed to \"quarkus.rest-client.<class fqdn>.url\". The class FQDN can be found in \"target/generated-code/open-api-stream\". In the package \"api\" you will find the generated REST stubs that you need to use to properly configure the extension. Please for more information and the . In the next version we will support version (also see the ), which will favor the Quarkus REST Client integration and will make it easy to properly configure this integration.  For more details head to the complete . All artifacts are available now: * Kogito runtime artifacts are available on Maven Central. * Kogito examples can be found . * Kogito images are available on . * Kogito operator is available in the in OpenShift and Kubernetes. * Kogito tooling 0.19.0 artifacts are available at the . A detailed changelog for 1.22.0 can be found in as well as for . New to Kogito? Check out our website . Click the \"Get Started\" button. The post appeared first on . "
10+
"date": "2022-06-09T00:00:00.000Z",
11+
"feed_title": "WildFly",
12+
"content": ""
1313
}

0 commit comments

Comments
 (0)