{"@attributes":{"version":"2.0"},"channel":{"title":"Java on \u00d6zkan Pakdil Software Engineer","link":"https:\/\/ozkanpakdil.github.io\/categories\/java\/","description":"Recent content in Java on \u00d6zkan Pakdil Software Engineer","image":{"title":"\u00d6zkan Pakdil Software Engineer","url":"https:\/\/ozkanpakdil.github.io\/images\/papermod-cover.png","link":"https:\/\/ozkanpakdil.github.io\/images\/papermod-cover.png"},"generator":"Hugo -- 0.148.2","language":"en","copyright":"\u00d6zkan Pakdil","lastBuildDate":"Mon, 29 Dec 2025 00:00:00 +0000","item":[{"title":"Eclipse Collections vs JDK Collections: A Performance Deep Dive","link":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2025\/eclipse-collections-vs-jdk-collections\/","pubDate":"Mon, 29 Dec 2025 00:00:00 +0000","guid":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2025\/eclipse-collections-vs-jdk-collections\/","description":"Comparing the performance of Eclipse Collections against standard JDK Collections using JMH benchmarks. Spoiler: EC is slightly faster!"},{"title":"MacOS on debian QEMU KVM","link":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2025\/13-11-macos-kvm\/","pubDate":"Thu, 13 Nov 2025 00:00:00 +0000","guid":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2025\/13-11-macos-kvm\/","description":"<h1 id=\"from-frustration-to-breakthrough-running-macos-on-kvm\">From Frustration to Breakthrough: Running macOS on KVM<\/h1>\n<p>For years, I chased the dream of running <strong>macOS in a virtual machine<\/strong>.<br>\nOn Windows, I tried VMware and VirtualBox countless times with different tutorials and blogs. Each attempt ended in frustration: crashes, unsupported hardware, endless configuration rabbit holes. It felt like a goal always just out of reach. And finally I found <a href=\"https:\/\/github.com\/kholia\/OSX-KVM\">https:\/\/github.com\/kholia\/OSX-KVM<\/a> it has the readme which explains the steps for setting up.<\/p>"},{"title":"Paint, a lightweight image editor for quick edits","link":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2025\/paint-lightweight-image-editor\/","pubDate":"Wed, 12 Nov 2025 00:00:00 +0000","guid":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2025\/paint-lightweight-image-editor\/","description":"<h2 id=\"why-i-built-paint\">Why I built Paint<\/h2>\n<p>Whenever I wanted to make a very small edit on my Debian laptop, crop a screenshot, add a quick arrow, or block out a small area, the system only had GIMP for editing images. Powerful, but heavy and slow for tiny, frequent tasks. I wanted something nimble: quick to open, easy to use, and focused on the common one-off edits people do dozens of times a day.<\/p>"},{"title":"GraalVM Native Image Agent - reachability metadata: how to run it, where files go","link":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2025\/09-16-graalvm-native-image-agent\/","pubDate":"Tue, 16 Sep 2025 00:00:00 +0000","guid":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2025\/09-16-graalvm-native-image-agent\/","description":"How to run the agent (generic Java) and where the metadata is used"},{"title":"The Pagination Pitfall: A React + Spring Boot Cautionary Tale","link":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2025\/pagination-pitfall-react-springboot\/","pubDate":"Thu, 07 Aug 2025 00:00:00 +0000","guid":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2025\/pagination-pitfall-react-springboot\/","description":"Why using client-side pagination for unknown data sizes in a React + Spring Boot app can backfire - and how to fix it with proper server-side pagination."},{"title":"A Retrospective on High-Traffic Systems, Garbage Collection Battles, and the Rise of G1","link":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2025\/2025-05-04-turkcell\/","pubDate":"Sun, 04 May 2025 00:00:30 +0000","guid":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2025\/2025-05-04-turkcell\/","description":"<h2 id=\"prologue-the-era-of-weblogic-and-apache-mod_weblogic\">Prologue: The Era of WebLogic and Apache Mod_WebLogic<\/h2>\n<p>It was 2012. Turkcell, Turkey\u2019s largest mobile operator, had 15 million subscribers, and the pressure was on. As part of the operations team for <a href=\"https:\/\/www.turkcell.com.tr\">www.turkcell.com.tr<\/a>, I managed a labyrinth of infrastructure: 10 strong\nlinux servers which had Weblogic installed humming behind Apache mod_weblogic proxies, serving dynamic requests while Apache handled static content. The e-commerce platform, Turkcell Shop, was my responsibility-where a\nsingle GC pause during peak traffic could mean thousands of failed transactions and angry customers.<\/p>"},{"title":"Handling Concurrent API Calls in Spring Boot","link":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2025\/2025-02-20-handling-concurrent-api-calls-in-spring-boot\/","pubDate":"Thu, 20 Feb 2025 00:00:30 +0000","guid":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2025\/2025-02-20-handling-concurrent-api-calls-in-spring-boot\/","description":"<p>When building Spring Boot applications, handling concurrent API calls efficiently is crucial to ensure optimal performance and scalability. Here are a few approaches to manage concurrent read and write operations:<\/p>\n<h3 id=\"handling-concurrent-read-api-calls\">Handling Concurrent Read API Calls<\/h3>\n<h4 id=\"asynchronous-methods\">Asynchronous Methods<\/h4>\n<p>Using <code>@Async<\/code> at <code>@Service<\/code> annotation and enabling asynchronous processing can help handle multiple API calls concurrently.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-java\" data-lang=\"java\"><span style=\"display:flex;\"><span><span style=\"color:#a6e22e\">@Async<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#66d9ef\">public<\/span> CompletableFuture<span style=\"color:#f92672\">&lt;<\/span>String<span style=\"color:#f92672\">&gt;<\/span> <span style=\"color:#a6e22e\">asyncMethod<\/span>() {\n<\/span><\/span><span style=\"display:flex;\"><span>    <span style=\"color:#75715e\">\/\/ Call external API<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">return<\/span> CompletableFuture.<span style=\"color:#a6e22e\">completedFuture<\/span>(<span style=\"color:#e6db74\">&#34;Result&#34;<\/span>);\n<\/span><\/span><span style=\"display:flex;\"><span>}\n<\/span><\/span><\/code><\/pre><\/div><h4 id=\"webclient-with-reactor\">WebClient with Reactor<\/h4>\n<p>Spring WebFlux&rsquo;s WebClient allows for reactive programming, making it easier to handle multiple API calls.<\/p>"},{"title":"What is load balancing and how to do it on client side","link":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2025\/2025-01-09-client-load-balancing\/","pubDate":"Thu, 09 Jan 2025 00:00:30 +0000","guid":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2025\/2025-01-09-client-load-balancing\/","description":"<p>&ldquo;Load balancing&rdquo; can be explained as maintaining any workload. For example if you have to serve 1000 breakfast in the morning you can divide the work among 2-3 or more caterers to lower the delivery\/preparation time.<\/p>\n<p>In the computer world, same logic applies, if you want to deliver fast, you can divide the work, for example for a website we can have 5-10 webserver, this way website will be delivered faster(especially during high traffic), this is server side.<\/p>"},{"title":"How to find java app hosting(ISP) or How to deploy Spring Boot website to Koyeb","link":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2025\/2025-01-01-deploy-spring-boot-to-cloud-koyeb\/","pubDate":"Wed, 01 Jan 2025 00:00:30 +0000","guid":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2025\/2025-01-01-deploy-spring-boot-to-cloud-koyeb\/","description":"<p>Spring boot is the most famous java framework, and I have been looking for a simple way to serve a java app on a hosting service(not dedicated which is very expensive not AWS\/Azure which are too complicated), Most shared hosting does not support java apps, they support php or asp or perl <a href=\"https:\/\/archive.ph\/iu7QS\">here<\/a> is the table for godaddy webhosting supported tech.<\/p>\n<p>I will explain how to deploy from dockerhub to Koyeb, or we can deploy from github repository too.<\/p>"},{"title":"HashMap collisions and how JDK handles it","link":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2024\/2024-11-27-java-hashmap-collisions\/","pubDate":"Wed, 27 Nov 2024 00:00:30 +0000","guid":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2024\/2024-11-27-java-hashmap-collisions\/","description":"<p>I was thinking on this question <code>How does HashMap handle collisions internally? What changes were introduced in Java 8 for its implementation?<\/code>\nand reading <a href=\"https:\/\/www.baeldung.com\/java-hashmap-advanced\">this blog<\/a> says<\/p>\n<blockquote>\n<p>On a final note, from Java 8, the linked lists are dynamically replaced with balanced binary search trees in collision resolution after the number of collisions in a given bucket location exceed a certain threshold.<\/p><\/blockquote>\n<p>Than I wonder how it works and went and found the <a href=\"https:\/\/github.com\/openjdk\/jdk\/blob\/9527586923d1e7d47d06456ed100a3d123e7a6d2\/src\/java.base\/share\/classes\/java\/util\/HashMap.java#L139\">source code of hash map<\/a> in openjdk. It is a very long class, almost 2600 lines, but so many comments \ud83e\udd13 it is not very common to see this much comment in a java code, anyway then I start reading it and wanted to note down how it behaves on collusion<\/p>"},{"title":"FFM (Foreign Function and Memory) Stdlib Example","link":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2024\/2024-11-11-java-ffm-stdlib\/","pubDate":"Mon, 11 Nov 2024 00:00:30 +0000","guid":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2024\/2024-11-11-java-ffm-stdlib\/","description":"<p>FFM is the new API trying to replace JNI and jep is <a href=\"https:\/\/openjdk.org\/jeps\/434\">here<\/a> It is basically calling functions outside of JVM or accessing memory not managed by JVM. I wanted to test can FFM beat regular Java API, below you can find a simple test doing math sin with FFM and with regular <code>Math.sin<\/code><\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-java\" data-lang=\"java\"><span style=\"display:flex;\"><span><span style=\"color:#f92672\">import<\/span> java.lang.foreign.FunctionDescriptor;\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f92672\">import<\/span> java.lang.foreign.Linker;\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f92672\">import<\/span> java.lang.foreign.MemorySegment;\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f92672\">import<\/span> java.lang.foreign.SymbolLookup;\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f92672\">import<\/span> java.lang.foreign.ValueLayout;\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#66d9ef\">public<\/span> <span style=\"color:#66d9ef\">class<\/span> <span style=\"color:#a6e22e\">FFMSinTest<\/span> {\n<\/span><\/span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">public<\/span> <span style=\"color:#66d9ef\">static<\/span> <span style=\"color:#66d9ef\">void<\/span> <span style=\"color:#a6e22e\">main<\/span>(String<span style=\"color:#f92672\">[]<\/span> args) <span style=\"color:#66d9ef\">throws<\/span> Throwable {\n<\/span><\/span><span style=\"display:flex;\"><span>        Linker linker <span style=\"color:#f92672\">=<\/span> Linker.<span style=\"color:#a6e22e\">nativeLinker<\/span>();\n<\/span><\/span><span style=\"display:flex;\"><span>        SymbolLookup stdlib <span style=\"color:#f92672\">=<\/span> linker.<span style=\"color:#a6e22e\">defaultLookup<\/span>();\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>        <span style=\"color:#75715e\">\/\/ Locate the &#34;sin&#34; function in the C math library<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>        MemorySegment sinAddress <span style=\"color:#f92672\">=<\/span> stdlib.<span style=\"color:#a6e22e\">find<\/span>(<span style=\"color:#e6db74\">&#34;sin&#34;<\/span>).<span style=\"color:#a6e22e\">orElseThrow<\/span>();\n<\/span><\/span><span style=\"display:flex;\"><span>        FunctionDescriptor descriptor <span style=\"color:#f92672\">=<\/span> FunctionDescriptor.<span style=\"color:#a6e22e\">of<\/span>(ValueLayout.<span style=\"color:#a6e22e\">JAVA_DOUBLE<\/span>, ValueLayout.<span style=\"color:#a6e22e\">JAVA_DOUBLE<\/span>);\n<\/span><\/span><span style=\"display:flex;\"><span>        <span style=\"color:#66d9ef\">var<\/span> sinHandle <span style=\"color:#f92672\">=<\/span> linker.<span style=\"color:#a6e22e\">downcallHandle<\/span>(sinAddress, descriptor);\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>        <span style=\"color:#66d9ef\">double<\/span> angle <span style=\"color:#f92672\">=<\/span> Math.<span style=\"color:#a6e22e\">PI<\/span> <span style=\"color:#f92672\">\/<\/span> 4;  <span style=\"color:#75715e\">\/\/ 45 degrees in radians<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>        <span style=\"color:#75715e\">\/\/ Timing Java&#39;s Math.sin()<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>        <span style=\"color:#66d9ef\">long<\/span> javaStartTime <span style=\"color:#f92672\">=<\/span> System.<span style=\"color:#a6e22e\">nanoTime<\/span>();\n<\/span><\/span><span style=\"display:flex;\"><span>        <span style=\"color:#66d9ef\">for<\/span> (<span style=\"color:#66d9ef\">int<\/span> i <span style=\"color:#f92672\">=<\/span> 0; i <span style=\"color:#f92672\">&lt;<\/span> 1_000_000; i<span style=\"color:#f92672\">++<\/span>) {\n<\/span><\/span><span style=\"display:flex;\"><span>            <span style=\"color:#66d9ef\">double<\/span> result <span style=\"color:#f92672\">=<\/span> Math.<span style=\"color:#a6e22e\">sin<\/span>(angle);\n<\/span><\/span><span style=\"display:flex;\"><span>        }\n<\/span><\/span><span style=\"display:flex;\"><span>        <span style=\"color:#66d9ef\">long<\/span> javaEndTime <span style=\"color:#f92672\">=<\/span> System.<span style=\"color:#a6e22e\">nanoTime<\/span>();\n<\/span><\/span><span style=\"display:flex;\"><span>        <span style=\"color:#66d9ef\">long<\/span> javaDuration <span style=\"color:#f92672\">=<\/span> javaEndTime <span style=\"color:#f92672\">-<\/span> javaStartTime;\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>        <span style=\"color:#75715e\">\/\/ Timing C sin via FFM<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>        <span style=\"color:#66d9ef\">long<\/span> ffmStartTime <span style=\"color:#f92672\">=<\/span> System.<span style=\"color:#a6e22e\">nanoTime<\/span>();\n<\/span><\/span><span style=\"display:flex;\"><span>        <span style=\"color:#66d9ef\">for<\/span> (<span style=\"color:#66d9ef\">int<\/span> i <span style=\"color:#f92672\">=<\/span> 0; i <span style=\"color:#f92672\">&lt;<\/span> 1_000_000; i<span style=\"color:#f92672\">++<\/span>) {\n<\/span><\/span><span style=\"display:flex;\"><span>            <span style=\"color:#66d9ef\">double<\/span> result <span style=\"color:#f92672\">=<\/span> (<span style=\"color:#66d9ef\">double<\/span>) sinHandle.<span style=\"color:#a6e22e\">invoke<\/span>(angle);\n<\/span><\/span><span style=\"display:flex;\"><span>        }\n<\/span><\/span><span style=\"display:flex;\"><span>        <span style=\"color:#66d9ef\">long<\/span> ffmEndTime <span style=\"color:#f92672\">=<\/span> System.<span style=\"color:#a6e22e\">nanoTime<\/span>();\n<\/span><\/span><span style=\"display:flex;\"><span>        <span style=\"color:#66d9ef\">long<\/span> ffmDuration <span style=\"color:#f92672\">=<\/span> ffmEndTime <span style=\"color:#f92672\">-<\/span> ffmStartTime;\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>        System.<span style=\"color:#a6e22e\">out<\/span>.<span style=\"color:#a6e22e\">println<\/span>(<span style=\"color:#e6db74\">&#34;Java Math.sin() took: &#34;<\/span> <span style=\"color:#f92672\">+<\/span> javaDuration <span style=\"color:#f92672\">\/<\/span> 1_000_000.<span style=\"color:#a6e22e\">0<\/span> <span style=\"color:#f92672\">+<\/span> <span style=\"color:#e6db74\">&#34; ms&#34;<\/span>);\n<\/span><\/span><span style=\"display:flex;\"><span>        System.<span style=\"color:#a6e22e\">out<\/span>.<span style=\"color:#a6e22e\">println<\/span>(<span style=\"color:#e6db74\">&#34;C sin (FFM) took: &#34;<\/span> <span style=\"color:#f92672\">+<\/span> ffmDuration <span style=\"color:#f92672\">\/<\/span> 1_000_000.<span style=\"color:#a6e22e\">0<\/span> <span style=\"color:#f92672\">+<\/span> <span style=\"color:#e6db74\">&#34; ms&#34;<\/span>);\n<\/span><\/span><span style=\"display:flex;\"><span>    }\n<\/span><\/span><span style=\"display:flex;\"><span>}\n<\/span><\/span><\/code><\/pre><\/div><p>And result is<\/p>"},{"title":"How to publish JetBrains Rider plugin for opentelemetry\/honeycomb","link":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2024\/2024-10-06-how-to-publish-jetbrains-plugin\/","pubDate":"Sun, 06 Oct 2024 00:00:30 +0000","guid":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2024\/2024-10-06-how-to-publish-jetbrains-plugin\/","description":"<p>I had the chance to work with honeycomb.io 2 weeks ago, mainly I was changing the code which sends data too appinsights azre now needed to send data to honeycomb too. It was not too complex but it is hard to catch those\nlog lines and make sure if we called the endpoint correctly and what data we sent. There is wonderful plugin for that for appinsights <a href=\"https:\/\/github.com\/Socolin\/ApplicationInsightsRiderPlugin\">https:\/\/github.com\/Socolin\/ApplicationInsightsRiderPlugin<\/a> but there was no plugin whcih can show opentelemetry calls, yes honeycomb.io uses OTEL protocol meaning opentelemetry which is kind of industry standard now for observability.<\/p>"},{"title":"Creating Installers for Java Applications with jpackage","link":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2024\/2024-06-29-jpackager\/","pubDate":"Sat, 29 Jun 2024 00:00:30 +0000","guid":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2024\/2024-06-29-jpackager\/","description":"<p>Jpackage, a powerful tool introduced in Java 14. In this blog post, I&rsquo;ll explore how to use jpackage to create installers for different operating systems, with a focus on creating an MSI installer for Windows.<\/p>\n<h2 id=\"what-is-jpackage\">What is jpackage?<\/h2>\n<p><a href=\"https:\/\/docs.oracle.com\/en\/java\/javase\/22\/jpackage\/packaging-overview.html\">jpackage<\/a> is a packaging tool that comes bundled with the Java Development Kit (JDK) since version 14. It allows developers to package Java applications into platform-specific packages that can be easily distributed and installed. It contains the JRE in the generated package and one trigger executable for specified platform. jpackage supports creating various types of installers, including:<\/p>"},{"title":"Spring boot 3 RestClient and RestTemplate logging http requests and response","link":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2024\/2024-05-18-http-logging\/","pubDate":"Sat, 18 May 2024 00:00:30 +0000","guid":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2024\/2024-05-18-http-logging\/","description":"<p>In Spring boot(SB) 2 the configuration was different, now in SB3 we need to configure the rest client differently. Before SB3 there was RestTemplate now there is new Rest api coming in spring world. Find more details <a href=\"https:\/\/spring.io\/blog\/2023\/07\/13\/new-in-spring-6-1-restclient\">here<\/a>.<\/p>\n<p>Adding the required dependency which will do the real http logging here.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-gradle\" data-lang=\"gradle\"><span style=\"display:flex;\"><span>    implementation <span style=\"color:#e6db74\">&#39;org.apache.httpcomponents.client5:httpclient5:5.3.1&#39;<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>The big difference is properties configuration, it is changed and not documented on spring site<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-properties\" data-lang=\"properties\"><span style=\"display:flex;\"><span><span style=\"color:#a6e22e\">logging.level.org.apache.hc.client5.http.wire<\/span><span style=\"color:#f92672\">=<\/span><span style=\"color:#e6db74\">DEBUG<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#a6e22e\">logging.level.org.apache.hc.client5.http<\/span><span style=\"color:#f92672\">=<\/span><span style=\"color:#e6db74\">DEBUG<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>Using only &ldquo;wire&rdquo; will give request\/response dump. And that extra http=DEBUG will give connection and more debug log, find it at the end of the page.<\/p>"},{"title":"How to use resources(file and memory) in try","link":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2024\/2024-04-18-use-resources-in-try\/","pubDate":"Thu, 18 Apr 2024 00:00:30 +0000","guid":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2024\/2024-04-18-use-resources-in-try\/","description":"<p>I wrote a small piece of code to do some pdf encryption with openpdf, and intellij`s sonarlint was complaining about &ldquo;Resources should be closed&rdquo; more details <a href=\"https:\/\/docs.oracle.com\/javase\/tutorial\/essential\/exceptions\/tryResourceClose.html\">here<\/a><\/p>\n<h1 id=\"non-compliant\">non compliant<\/h1>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-java\" data-lang=\"java\"><span style=\"display:flex;\"><span><span style=\"color:#66d9ef\">public<\/span> <span style=\"color:#66d9ef\">class<\/span> <span style=\"color:#a6e22e\">PasswordProtectedPDF<\/span> {\n<\/span><\/span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">private<\/span> <span style=\"color:#66d9ef\">static<\/span> <span style=\"color:#66d9ef\">final<\/span> Logger logger <span style=\"color:#f92672\">=<\/span> Logger.<span style=\"color:#a6e22e\">getLogger<\/span>(PasswordProtectedPDF.<span style=\"color:#a6e22e\">class<\/span>.<span style=\"color:#a6e22e\">getName<\/span>());\n<\/span><\/span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">static<\/span> <span style=\"color:#66d9ef\">final<\/span> String USER_PASSWORD <span style=\"color:#f92672\">=<\/span> <span style=\"color:#e6db74\">&#34;111&#34;<\/span>;\n<\/span><\/span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">static<\/span> <span style=\"color:#66d9ef\">final<\/span> String OWNER_PASSWORD <span style=\"color:#f92672\">=<\/span> <span style=\"color:#e6db74\">&#34;111&#34;<\/span>;\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">public<\/span> <span style=\"color:#66d9ef\">static<\/span> <span style=\"color:#66d9ef\">void<\/span> <span style=\"color:#a6e22e\">main<\/span>(String<span style=\"color:#f92672\">[]<\/span> args) {\n<\/span><\/span><span style=\"display:flex;\"><span>        <span style=\"color:#66d9ef\">try<\/span> {\n<\/span><\/span><span style=\"display:flex;\"><span>            File f <span style=\"color:#f92672\">=<\/span> <span style=\"color:#66d9ef\">new<\/span> File(<span style=\"color:#e6db74\">&#34;1_protected.pdf&#34;<\/span>);\n<\/span><\/span><span style=\"display:flex;\"><span>            FileOutputStream out <span style=\"color:#f92672\">=<\/span> <span style=\"color:#66d9ef\">new<\/span> FileOutputStream(f);\n<\/span><\/span><span style=\"display:flex;\"><span>            File pdfFile <span style=\"color:#f92672\">=<\/span> <span style=\"color:#66d9ef\">new<\/span> File(<span style=\"color:#e6db74\">&#34;1.pdf&#34;<\/span>);\n<\/span><\/span><span style=\"display:flex;\"><span>            PdfReader reader <span style=\"color:#f92672\">=<\/span> <span style=\"color:#66d9ef\">new<\/span> PdfReader(pdfFile.<span style=\"color:#a6e22e\">getPath<\/span>());\n<\/span><\/span><span style=\"display:flex;\"><span>            PdfStamper stamper <span style=\"color:#f92672\">=<\/span> <span style=\"color:#66d9ef\">new<\/span> PdfStamper(reader, out);\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>            HashMap<span style=\"color:#f92672\">&lt;<\/span>String, String<span style=\"color:#f92672\">&gt;<\/span> info <span style=\"color:#f92672\">=<\/span> <span style=\"color:#66d9ef\">new<\/span> HashMap<span style=\"color:#f92672\">&lt;&gt;<\/span>();\n<\/span><\/span><span style=\"display:flex;\"><span>            info.<span style=\"color:#a6e22e\">put<\/span>(<span style=\"color:#e6db74\">&#34;Producer&#34;<\/span>, <span style=\"color:#e6db74\">&#34;&#34;<\/span>);\n<\/span><\/span><span style=\"display:flex;\"><span>            reader.<span style=\"color:#a6e22e\">getInfo<\/span>().<span style=\"color:#a6e22e\">forEach<\/span>((key, value) <span style=\"color:#f92672\">-&gt;<\/span> {\n<\/span><\/span><span style=\"display:flex;\"><span>                logger.<span style=\"color:#a6e22e\">info<\/span>(<span style=\"color:#e6db74\">&#34;Key: &#34;<\/span> <span style=\"color:#f92672\">+<\/span> key <span style=\"color:#f92672\">+<\/span> <span style=\"color:#e6db74\">&#34;, Value: &#34;<\/span> <span style=\"color:#f92672\">+<\/span> value);\n<\/span><\/span><span style=\"display:flex;\"><span>            });\n<\/span><\/span><span style=\"display:flex;\"><span>            stamper.<span style=\"color:#a6e22e\">setInfoDictionary<\/span>(info);\n<\/span><\/span><span style=\"display:flex;\"><span>            stamper.<span style=\"color:#a6e22e\">setEncryption<\/span>(USER_PASSWORD.<span style=\"color:#a6e22e\">getBytes<\/span>(), OWNER_PASSWORD.<span style=\"color:#a6e22e\">getBytes<\/span>(), PdfWriter.<span style=\"color:#a6e22e\">ALLOW_PRINTING<\/span>, PdfWriter.<span style=\"color:#a6e22e\">ENCRYPTION_AES_128<\/span>);\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>            stamper.<span style=\"color:#a6e22e\">close<\/span>();\n<\/span><\/span><span style=\"display:flex;\"><span>            logger.<span style=\"color:#a6e22e\">info<\/span>(<span style=\"color:#e6db74\">&#34;Password protected PDF created successfully.&#34;<\/span>);\n<\/span><\/span><span style=\"display:flex;\"><span>        } <span style=\"color:#66d9ef\">catch<\/span> (IOException e) {\n<\/span><\/span><span style=\"display:flex;\"><span>            logger.<span style=\"color:#a6e22e\">severe<\/span>(<span style=\"color:#e6db74\">&#34;Error creating password protected PDF: &#34;<\/span> <span style=\"color:#f92672\">+<\/span> e.<span style=\"color:#a6e22e\">getMessage<\/span>());\n<\/span><\/span><span style=\"display:flex;\"><span>        }\n<\/span><\/span><span style=\"display:flex;\"><span>    }\n<\/span><\/span><span style=\"display:flex;\"><span>}\n<\/span><\/span><\/code><\/pre><\/div><h1 id=\"compliant\">Compliant<\/h1>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-java\" data-lang=\"java\"><span style=\"display:flex;\"><span><span style=\"color:#66d9ef\">public<\/span> <span style=\"color:#66d9ef\">class<\/span> <span style=\"color:#a6e22e\">PasswordProtectedPDF<\/span> {\n<\/span><\/span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">private<\/span> <span style=\"color:#66d9ef\">static<\/span> <span style=\"color:#66d9ef\">final<\/span> Logger logger <span style=\"color:#f92672\">=<\/span> Logger.<span style=\"color:#a6e22e\">getLogger<\/span>(PasswordProtectedPDF.<span style=\"color:#a6e22e\">class<\/span>.<span style=\"color:#a6e22e\">getName<\/span>());\n<\/span><\/span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">static<\/span> <span style=\"color:#66d9ef\">final<\/span> String USER_PASSWORD <span style=\"color:#f92672\">=<\/span> <span style=\"color:#e6db74\">&#34;111&#34;<\/span>;\n<\/span><\/span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">static<\/span> <span style=\"color:#66d9ef\">final<\/span> String OWNER_PASSWORD <span style=\"color:#f92672\">=<\/span> <span style=\"color:#e6db74\">&#34;111&#34;<\/span>;\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">public<\/span> <span style=\"color:#66d9ef\">static<\/span> <span style=\"color:#66d9ef\">void<\/span> <span style=\"color:#a6e22e\">main<\/span>(String<span style=\"color:#f92672\">[]<\/span> args) {\n<\/span><\/span><span style=\"display:flex;\"><span>        <span style=\"color:#66d9ef\">try<\/span> (\n<\/span><\/span><span style=\"display:flex;\"><span>                FileOutputStream out <span style=\"color:#f92672\">=<\/span> <span style=\"color:#66d9ef\">new<\/span> FileOutputStream(<span style=\"color:#66d9ef\">new<\/span> File(<span style=\"color:#e6db74\">&#34;1_protected.pdf&#34;<\/span>));\n<\/span><\/span><span style=\"display:flex;\"><span>                PdfReader reader <span style=\"color:#f92672\">=<\/span> <span style=\"color:#66d9ef\">new<\/span> PdfReader(<span style=\"color:#66d9ef\">new<\/span> File(<span style=\"color:#e6db74\">&#34;1.pdf&#34;<\/span>).<span style=\"color:#a6e22e\">getPath<\/span>())\n<\/span><\/span><span style=\"display:flex;\"><span>        ) {\n<\/span><\/span><span style=\"display:flex;\"><span>            PdfStamper stamper <span style=\"color:#f92672\">=<\/span> <span style=\"color:#66d9ef\">new<\/span> PdfStamper(reader, out);\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>            HashMap<span style=\"color:#f92672\">&lt;<\/span>String, String<span style=\"color:#f92672\">&gt;<\/span> info <span style=\"color:#f92672\">=<\/span> <span style=\"color:#66d9ef\">new<\/span> HashMap<span style=\"color:#f92672\">&lt;&gt;<\/span>();\n<\/span><\/span><span style=\"display:flex;\"><span>            info.<span style=\"color:#a6e22e\">put<\/span>(<span style=\"color:#e6db74\">&#34;Producer&#34;<\/span>, <span style=\"color:#e6db74\">&#34;&#34;<\/span>);\n<\/span><\/span><span style=\"display:flex;\"><span>            reader.<span style=\"color:#a6e22e\">getInfo<\/span>().<span style=\"color:#a6e22e\">forEach<\/span>((key, value) <span style=\"color:#f92672\">-&gt;<\/span> {\n<\/span><\/span><span style=\"display:flex;\"><span>                logger.<span style=\"color:#a6e22e\">info<\/span>(<span style=\"color:#e6db74\">&#34;Key: &#34;<\/span> <span style=\"color:#f92672\">+<\/span> key <span style=\"color:#f92672\">+<\/span> <span style=\"color:#e6db74\">&#34;, Value: &#34;<\/span> <span style=\"color:#f92672\">+<\/span> value);\n<\/span><\/span><span style=\"display:flex;\"><span>            });\n<\/span><\/span><span style=\"display:flex;\"><span>            stamper.<span style=\"color:#a6e22e\">setInfoDictionary<\/span>(info);\n<\/span><\/span><span style=\"display:flex;\"><span>            stamper.<span style=\"color:#a6e22e\">setEncryption<\/span>(USER_PASSWORD.<span style=\"color:#a6e22e\">getBytes<\/span>(), OWNER_PASSWORD.<span style=\"color:#a6e22e\">getBytes<\/span>(), PdfWriter.<span style=\"color:#a6e22e\">ALLOW_PRINTING<\/span>, PdfWriter.<span style=\"color:#a6e22e\">ENCRYPTION_AES_128<\/span>);\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>            stamper.<span style=\"color:#a6e22e\">close<\/span>();\n<\/span><\/span><span style=\"display:flex;\"><span>            logger.<span style=\"color:#a6e22e\">info<\/span>(<span style=\"color:#e6db74\">&#34;Password protected PDF created successfully.&#34;<\/span>);\n<\/span><\/span><span style=\"display:flex;\"><span>        } <span style=\"color:#66d9ef\">catch<\/span> (IOException e) {\n<\/span><\/span><span style=\"display:flex;\"><span>            logger.<span style=\"color:#a6e22e\">severe<\/span>(<span style=\"color:#e6db74\">&#34;Error creating password protected PDF: &#34;<\/span> <span style=\"color:#f92672\">+<\/span> e.<span style=\"color:#a6e22e\">getMessage<\/span>());\n<\/span><\/span><span style=\"display:flex;\"><span>        }\n<\/span><\/span><span style=\"display:flex;\"><span>    }\n<\/span><\/span><span style=\"display:flex;\"><span>}\n<\/span><\/span><\/code><\/pre><\/div><p>just a reminder we can define multiple resources in try block<\/p>"},{"title":"Character isEmoji and some others added to java 21","link":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2023\/2023-11-20-java-21-emojis\/","pubDate":"Mon, 20 Nov 2023 00:00:30 +0000","guid":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2023\/2023-11-20-java-21-emojis\/","description":"<p>In java 21 we get new API for emojis like below<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-java\" data-lang=\"java\"><span style=\"display:flex;\"><span>    isEmoji(<span style=\"color:#66d9ef\">int<\/span> codePoint)\n<\/span><\/span><span style=\"display:flex;\"><span>    isEmojiComponent(<span style=\"color:#66d9ef\">int<\/span> codePoint)\n<\/span><\/span><span style=\"display:flex;\"><span>    isEmojiModifier(<span style=\"color:#66d9ef\">int<\/span> codePoint)\n<\/span><\/span><span style=\"display:flex;\"><span>    isEmojiModifierBase(<span style=\"color:#66d9ef\">int<\/span> codePoint)\n<\/span><\/span><span style=\"display:flex;\"><span>    isEmojiPresentation(<span style=\"color:#66d9ef\">int<\/span> codePoint)\n<\/span><\/span><span style=\"display:flex;\"><span>    isExtendedPictographic(<span style=\"color:#66d9ef\">int<\/span> codePoint)\n<\/span><\/span><\/code><\/pre><\/div><p>here is a working example<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-java\" data-lang=\"java\"><span style=\"display:flex;\"><span><span style=\"color:#66d9ef\">public<\/span> <span style=\"color:#66d9ef\">static<\/span> <span style=\"color:#66d9ef\">void<\/span> <span style=\"color:#a6e22e\">main<\/span>(String<span style=\"color:#f92672\">[]<\/span> args) {\n<\/span><\/span><span style=\"display:flex;\"><span>    StringBuilder sb <span style=\"color:#f92672\">=<\/span> <span style=\"color:#66d9ef\">new<\/span> StringBuilder();\n<\/span><\/span><span style=\"display:flex;\"><span>    sb.<span style=\"color:#a6e22e\">appendCodePoint<\/span>(0x1F600); <span style=\"color:#75715e\">\/\/ Grinning face<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>    sb.<span style=\"color:#a6e22e\">appendCodePoint<\/span>(0x1F601); <span style=\"color:#75715e\">\/\/ Grinning face with big eyes<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>    sb.<span style=\"color:#a6e22e\">appendCodePoint<\/span>(0x1F602); <span style=\"color:#75715e\">\/\/ Grinning face with tears<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>    sb.<span style=\"color:#a6e22e\">appendCodePoint<\/span>(0x1F923); <span style=\"color:#75715e\">\/\/ Rolling on the floor laughing<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>    sb.<span style=\"color:#a6e22e\">appendCodePoint<\/span>(0x1F970); <span style=\"color:#75715e\">\/\/ Smiling face with hearts<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>    sb.<span style=\"color:#a6e22e\">appendCodePoint<\/span>(0x1F60D); <span style=\"color:#75715e\">\/\/ Smiling face with heart-eyes<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>    sb.<span style=\"color:#a6e22e\">appendCodePoint<\/span>(0x1F929); <span style=\"color:#75715e\">\/\/ Star-struck<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>    sb.<span style=\"color:#a6e22e\">appendCodePoint<\/span>(0x1F618); <span style=\"color:#75715e\">\/\/ Face blowing a kiss<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>    sb.<span style=\"color:#a6e22e\">appendCodePoint<\/span>(0x1F617); <span style=\"color:#75715e\">\/\/ Kissing face<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>    sb.<span style=\"color:#a6e22e\">appendCodePoint<\/span>(0x263A); <span style=\"color:#75715e\">\/\/ Smiling face<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>    System.<span style=\"color:#a6e22e\">out<\/span>.<span style=\"color:#a6e22e\">println<\/span>(sb);\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">var<\/span> codePoint <span style=\"color:#f92672\">=<\/span> Character.<span style=\"color:#a6e22e\">codePointAt<\/span>(<span style=\"color:#e6db74\">&#34;\ud83d\ude03&#34;<\/span>, 0);\n<\/span><\/span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">var<\/span> isEmoji <span style=\"color:#f92672\">=<\/span> Character.<span style=\"color:#a6e22e\">isEmoji<\/span>(codePoint);\n<\/span><\/span><span style=\"display:flex;\"><span>    System.<span style=\"color:#a6e22e\">out<\/span>.<span style=\"color:#a6e22e\">println<\/span>(<span style=\"color:#e6db74\">&#34;\ud83d\ude03 is an emoji: &#34;<\/span> <span style=\"color:#f92672\">+<\/span> isEmoji);\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">int<\/span><span style=\"color:#f92672\">[]<\/span> surrogates <span style=\"color:#f92672\">=<\/span> { 0xD83D, 0xDC7D };\n<\/span><\/span><span style=\"display:flex;\"><span>    String alienEmojiString <span style=\"color:#f92672\">=<\/span> <span style=\"color:#66d9ef\">new<\/span> String(surrogates, 0, surrogates.<span style=\"color:#a6e22e\">length<\/span>);\n<\/span><\/span><span style=\"display:flex;\"><span>    System.<span style=\"color:#a6e22e\">out<\/span>.<span style=\"color:#a6e22e\">println<\/span>(alienEmojiString);\n<\/span><\/span><span style=\"display:flex;\"><span>}\n<\/span><\/span><\/code><\/pre><\/div><p>seeing these emojis in vscode <img alt=\"vscode\" loading=\"lazy\" src=\"https:\/\/github.com\/ozkanpakdil\/ozkanpakdil.github.io\/assets\/604405\/b5d670e7-3e08-4dcc-8aed-5d57fa5edc86\"><\/p>"},{"title":"Ktor build with graalvm","link":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2022\/2022-11-13-ktor-graal\/","pubDate":"Sun, 13 Nov 2022 11:42:30 +0000","guid":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2022\/2022-11-13-ktor-graal\/","description":"<p>I wanted to test ktor.io with graalvm build, main problem is all code I found using gradle and my project is using mvn here is the <a href=\"https:\/\/github.com\/ozkanpakdil\/test-microservice-frameworks\/tree\/main\/ktor-demo\">code<\/a>. like other modules I needed to create reflect config json, otherwise ktor serialize is not working properly with graal and when I send a request to &ldquo;\/hello&rdquo; endpoint I got empty response. I tried to write myself but did not work and at the end I used command below<\/p>"},{"title":"Disable Spring Boot Hikari Datasource with aspectj","link":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2022\/2022-08-04-spring-boot-disable-datasource-hikaripool\/","pubDate":"Thu, 04 Aug 2022 11:42:30 +0000","guid":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2022\/2022-08-04-spring-boot-disable-datasource-hikaripool\/","description":"<p>There is database which will shutdown in uncertain future and application wants to be restarted and still working after that. In spring boot every datasource bean depends to some other bean, if we use <strong>@ConditionalOnProperty<\/strong> which actually not creates the bean after that other beans fails to initialize and app stop booting.<\/p>\n<p>If need to disable a datasource without deleting all the spring beans or without using <a href=\"https:\/\/docs.spring.io\/spring-boot\/docs\/current\/reference\/html\/features.html#features.developing-auto-configuration.condition-annotations.property-conditions\">@ConditionalOnProperty<\/a><\/p>\n<p>When @ConditionalOnProperty comes to scene it is like deleting or changing all other spring beans which is not really required if you just want to disable a datasource.<\/p>"},{"title":"Getting com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class","link":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2020\/2020-08-19-fasterxml-no-serializer-found-for-class\/","pubDate":"Wed, 19 Aug 2020 19:05:30 +0000","guid":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2020\/2020-08-19-fasterxml-no-serializer-found-for-class\/","description":"<p>I am trying to write small microservice benchmark for java, lately java microservice framework are popping up from every corner \ud83d\ude0a actually it is becoming little bit annoying, java world becoming js world.<\/p>\n<p>Anyway while writing some test I start getting the error below<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-bash\" data-lang=\"bash\"><span style=\"display:flex;\"><span>Internal Server Error\n<\/span><\/span><span style=\"display:flex;\"><span>Error handling d1e23f6f-3947-497a-be41-27ba9f7f4791-1, org.jboss.resteasy.spi.UnhandledException: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found <span style=\"color:#66d9ef\">for<\/span> class com.mascix.ApplicationInfo and no properties discovered to create BeanSerializer <span style=\"color:#f92672\">(<\/span>to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS<span style=\"color:#f92672\">)<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>The stacktrace below has been reversed to show the root cause first. Click Here to see the original stacktrace\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found <span style=\"color:#66d9ef\">for<\/span> class com.mascix.ApplicationInfo and no properties discovered to create BeanSerializer <span style=\"color:#f92672\">(<\/span>to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS<span style=\"color:#f92672\">)<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>\tat com.fasterxml.jackson.databind.exc.InvalidDefinitionException.from<span style=\"color:#f92672\">(<\/span>InvalidDefinitionException.java:77<span style=\"color:#f92672\">)<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>\tat com.fasterxml.jackson.databind.SerializerProvider.reportBadDefinition<span style=\"color:#f92672\">(<\/span>SerializerProvider.java:1277<span style=\"color:#f92672\">)<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>\tat com.fasterxml.jackson.databind.DatabindContext.reportBadDefinition<span style=\"color:#f92672\">(<\/span>DatabindContext.java:400<span style=\"color:#f92672\">)<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>This was coming from quarkus example. I got same error in spring boot and micronaut, my first approach was configure the bean or singleton and give<\/p>"},{"title":"How to build eclipse on locally in windows 10","link":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2020\/2020-08-15-build-eclipseon-windows\/","pubDate":"Sat, 15 Aug 2020 20:05:30 +0000","guid":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2020\/2020-08-15-build-eclipseon-windows\/","description":"<p>Best document I found is <a href=\"https:\/\/wiki.eclipse.org\/Platform-releng\/Platform_Build#Windows\">here<\/a>, main problem about the documentation is google :) whenever I search different versions of &ldquo;building eclipse in windows&rdquo; all results were related to how to build a project(java or anything else) in eclipse. And I decided to write this note blog just for future refference.<\/p>\n<p>I had some issues on the way<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-bash\" data-lang=\"bash\"><span style=\"display:flex;\"><span>fatal: cannot create directory at <span style=\"color:#e6db74\">&#39;bundles\/org.eclipse.equinox.p2.tests\/testData\/previousConfigurationFinder\/testSuccedingVersion\/matchFromSuccedingAndPreccedingWithDifferentPlatfrom\/org.eclipse.platform_3.8.0_11111111_linux-gtk-x86_64&#39;<\/span>: Filename too long\n<\/span><\/span><\/code><\/pre><\/div><p>and<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-bash\" data-lang=\"bash\"><span style=\"display:flex;\"><span>constituent<span style=\"color:#f92672\">[<\/span>40<span style=\"color:#f92672\">]<\/span>: file:\/C:\/ProgramData\/chocolatey\/lib\/maven\/apache-maven-3.6.3\/lib\/wagon-file-3.3.4.jar\n<\/span><\/span><span style=\"display:flex;\"><span>constituent<span style=\"color:#f92672\">[<\/span>41<span style=\"color:#f92672\">]<\/span>: file:\/C:\/ProgramData\/chocolatey\/lib\/maven\/apache-maven-3.6.3\/lib\/wagon-http-3.3.4-shaded.jar\n<\/span><\/span><span style=\"display:flex;\"><span>constituent<span style=\"color:#f92672\">[<\/span>42<span style=\"color:#f92672\">]<\/span>: file:\/C:\/ProgramData\/chocolatey\/lib\/maven\/apache-maven-3.6.3\/lib\/wagon-provider-api-3.3.4.jar\n<\/span><\/span><span style=\"display:flex;\"><span>---------------------------------------------------\n<\/span><\/span><span style=\"display:flex;\"><span>Exception in thread <span style=\"color:#e6db74\">&#34;main&#34;<\/span> java.lang.AssertionError: pom file must not be null from PolyglotModelManager as per API\n<\/span><\/span><span style=\"display:flex;\"><span>        at org.sonatype.maven.polyglot.TeslaModelProcessor.locatePom<span style=\"color:#f92672\">(<\/span>TeslaModelProcessor.java:64<span style=\"color:#f92672\">)<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>        at org.apache.maven.project.DefaultProjectBuilder.build<span style=\"color:#f92672\">(<\/span>DefaultProjectBuilder.java:500<span style=\"color:#f92672\">)<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>        at org.apache.maven.project.DefaultProjectBuilder.build<span style=\"color:#f92672\">(<\/span>DefaultProjectBuilder.java:414<span style=\"color:#f92672\">)<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>        at org.apache.maven.project.DefaultProjectBuilder.build<span style=\"color:#f92672\">(<\/span>DefaultProjectBuilder.java:377<span style=\"color:#f92672\">)<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>        at org.apache.maven.graph.DefaultGraphBuilder.collectProjects<span style=\"color:#f92672\">(<\/span>DefaultGraphBuilder.java:414<span style=\"color:#f92672\">)<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>        at org.apache.maven.graph.DefaultGraphBuilder.getProjectsForMavenReactor<span style=\"color:#f92672\">(<\/span>DefaultGraphBuilder.java:405<span style=\"color:#f92672\">)<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>        at org.apache.maven.graph.DefaultGraphBuilder.build<span style=\"color:#f92672\">(<\/span>DefaultGraphBuilder.java:82<span style=\"color:#f92672\">)<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>        at org.apache.maven.DefaultMaven.buildGraph<span style=\"color:#f92672\">(<\/span>DefaultMaven.java:507<span style=\"color:#f92672\">)<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>        at org.apache.maven.DefaultMaven.doExecute<span style=\"color:#f92672\">(<\/span>DefaultMaven.java:219<span style=\"color:#f92672\">)<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>        at org.apache.maven.DefaultMaven.doExecute<span style=\"color:#f92672\">(<\/span>DefaultMaven.java:192<span style=\"color:#f92672\">)<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>        at org.apache.maven.DefaultMaven.execute<span style=\"color:#f92672\">(<\/span>DefaultMaven.java:105<span style=\"color:#f92672\">)<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>or some git clone problems, you need to make sure there is no problem in git clone.<\/p>"},{"title":"Running multiple jdk in github action","link":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2020\/2020-07-29-multiple-jdk-on-github\/","pubDate":"Wed, 29 Jul 2020 20:05:30 +0000","guid":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2020\/2020-07-29-multiple-jdk-on-github\/","description":"<p><a href=\"https:\/\/github.com\/ozkanpakdil\/eclipse-collections-benchmark\/blob\/master\/.github\/workflows\/main.yml\">Here<\/a> is an example to show how multiple jdk run in one github action. And generate artifacts as test results<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#f92672\">jobs<\/span>:\n<\/span><\/span><span style=\"display:flex;\"><span>  <span style=\"color:#f92672\">build<\/span>:\n<\/span><\/span><span style=\"display:flex;\"><span>    <span style=\"color:#f92672\">runs-on<\/span>: <span style=\"color:#ae81ff\">ubuntu-latest<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>    <span style=\"color:#f92672\">strategy<\/span>:\n<\/span><\/span><span style=\"display:flex;\"><span>      <span style=\"color:#f92672\">matrix<\/span>:\n<\/span><\/span><span style=\"display:flex;\"><span>        <span style=\"color:#f92672\">java<\/span>: [<span style=\"color:#e6db74\">&#34;8&#34;<\/span>, <span style=\"color:#e6db74\">&#34;11&#34;<\/span>, <span style=\"color:#e6db74\">&#34;13&#34;<\/span>, <span style=\"color:#e6db74\">&#34;14&#34;<\/span>]\n<\/span><\/span><span style=\"display:flex;\"><span>    <span style=\"color:#f92672\">name<\/span>: <span style=\"color:#ae81ff\">Java ${{ matrix.java }} sample<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>    <span style=\"color:#f92672\">steps<\/span>:\n<\/span><\/span><\/code><\/pre><\/div><p>And to see how it looks in build, check any build in <a href=\"https:\/\/github.com\/ozkanpakdil\/eclipse-collections-benchmark\/actions\">https:\/\/github.com\/ozkanpakdil\/eclipse-collections-benchmark\/actions<\/a><\/p>"},{"title":"Eclipse collections benchmark in jdk 14 at home","link":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2020\/2020-07-25-eclipse-collections-jdk-14-benchmark\/","pubDate":"Sat, 25 Jul 2020 08:05:30 +0000","guid":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2020\/2020-07-25-eclipse-collections-jdk-14-benchmark\/","description":"<p>I was reading <a href=\"https:\/\/www.baeldung.com\/jdk-collections-vs-eclipse-collections\">eclipse collections benchmark doc<\/a> and realized that its little bit old and it was using jdk 11, in my local I have jdk 14 I wanted to run in my local and see the result. You can find eclipse collections <a href=\"https:\/\/github.com\/eclipse\/eclipse-collections\">here<\/a><\/p>\n<p>Below from my local<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-bash\" data-lang=\"bash\"><span style=\"display:flex;\"><span>D:<span style=\"color:#ae81ff\">\\t<\/span>mp<span style=\"color:#ae81ff\">\\b<\/span>enchmark-eclipse-collections&gt;java -jar target\/benchmarks.jar IntegerListFilter -rf json \n<\/span><\/span><span style=\"display:flex;\"><span>WARNING: An illegal reflective access operation has occurred\n<\/span><\/span><span style=\"display:flex;\"><span>WARNING: Illegal reflective access by org.openjdk.jmh.util.Utils <span style=\"color:#f92672\">(<\/span>file:\/D:\/tmp\/benchmark-eclipse-collections\/target\/benchmarks.jar<span style=\"color:#f92672\">)<\/span> to field java.io.PrintStream.charOut\n<\/span><\/span><span style=\"display:flex;\"><span>WARNING: Please consider reporting this to the maintainers of org.openjdk.jmh.util.Utils\n<\/span><\/span><span style=\"display:flex;\"><span>WARNING: Use --illegal-access<span style=\"color:#f92672\">=<\/span>warn to enable warnings of further illegal reflective access operations\n<\/span><\/span><span style=\"display:flex;\"><span>WARNING: All illegal access operations will be denied in a future release\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># JMH version: 1.23<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># VM version: JDK 14.0.2, OpenJDK 64-Bit Server VM, 14.0.2+12-46<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># VM invoker: C:\\Program Files\\OpenJDK\\jdk-14.0.2\\bin\\java.exe<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># VM options: &lt;none&gt;<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup: 5 iterations, 10 s each<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Measurement: 5 iterations, 10 s each<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Timeout: 10 min per iteration<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Threads: 1 thread, will synchronize iterations<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Benchmark mode: Throughput, ops\/time<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Benchmark: com.mascix.IntegerListFilter.ecMutableList<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Run progress: 0.00% complete, ETA 00:20:00<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Fork: 1 of 2<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   1: 123.880 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   2: 126.319 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   3: 123.222 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   4: 119.543 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   5: 118.171 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   1: 117.436 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   2: 119.494 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   3: 119.941 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   4: 117.819 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   5: 117.032 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Run progress: 8.33% complete, ETA 00:18:27<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Fork: 2 of 2<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   1: 113.457 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   2: 114.845 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   3: 116.863 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   4: 114.875 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   5: 114.185 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   1: 112.681 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   2: 113.452 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   3: 98.820 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   4: 99.360 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   5: 94.155 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>Result <span style=\"color:#e6db74\">&#34;com.mascix.IntegerListFilter.ecMutableList&#34;<\/span>:\n<\/span><\/span><span style=\"display:flex;\"><span>  111.019 \u00b1<span style=\"color:#f92672\">(<\/span>99.9%<span style=\"color:#f92672\">)<\/span> 14.717 ops\/s <span style=\"color:#f92672\">[<\/span>Average<span style=\"color:#f92672\">]<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>  <span style=\"color:#f92672\">(<\/span>min, avg, max<span style=\"color:#f92672\">)<\/span> <span style=\"color:#f92672\">=<\/span> <span style=\"color:#f92672\">(<\/span>94.155, 111.019, 119.941<span style=\"color:#f92672\">)<\/span>, stdev <span style=\"color:#f92672\">=<\/span> 9.734\n<\/span><\/span><span style=\"display:flex;\"><span>  CI <span style=\"color:#f92672\">(<\/span>99.9%<span style=\"color:#f92672\">)<\/span>: <span style=\"color:#f92672\">[<\/span>96.302, 125.736<span style=\"color:#f92672\">]<\/span> <span style=\"color:#f92672\">(<\/span>assumes normal distribution<span style=\"color:#f92672\">)<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># JMH version: 1.23<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># VM version: JDK 14.0.2, OpenJDK 64-Bit Server VM, 14.0.2+12-46<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># VM invoker: C:\\Program Files\\OpenJDK\\jdk-14.0.2\\bin\\java.exe<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># VM options: &lt;none&gt;<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup: 5 iterations, 10 s each<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Measurement: 5 iterations, 10 s each<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Timeout: 10 min per iteration<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Threads: 1 thread, will synchronize iterations<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Benchmark mode: Throughput, ops\/time<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Benchmark: com.mascix.IntegerListFilter.ecMutableListParallel<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Run progress: 16.67% complete, ETA 00:16:47<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Fork: 1 of 2<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   1: 407.722 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   2: 428.903 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   3: 429.079 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   4: 425.613 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   5: 424.238 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   1: 417.053 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   2: 398.756 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   3: 426.630 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   4: 424.554 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   5: 425.892 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Run progress: 25.00% complete, ETA 00:15:06<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Fork: 2 of 2<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   1: 397.275 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   2: 413.248 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   3: 418.206 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   4: 418.641 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   5: 418.441 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   1: 416.863 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   2: 404.348 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   3: 415.095 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   4: 419.154 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   5: 417.764 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>Result <span style=\"color:#e6db74\">&#34;com.mascix.IntegerListFilter.ecMutableListParallel&#34;<\/span>:\n<\/span><\/span><span style=\"display:flex;\"><span>  416.611 \u00b1<span style=\"color:#f92672\">(<\/span>99.9%<span style=\"color:#f92672\">)<\/span> 13.608 ops\/s <span style=\"color:#f92672\">[<\/span>Average<span style=\"color:#f92672\">]<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>  <span style=\"color:#f92672\">(<\/span>min, avg, max<span style=\"color:#f92672\">)<\/span> <span style=\"color:#f92672\">=<\/span> <span style=\"color:#f92672\">(<\/span>398.756, 416.611, 426.630<span style=\"color:#f92672\">)<\/span>, stdev <span style=\"color:#f92672\">=<\/span> 9.001\n<\/span><\/span><span style=\"display:flex;\"><span>  CI <span style=\"color:#f92672\">(<\/span>99.9%<span style=\"color:#f92672\">)<\/span>: <span style=\"color:#f92672\">[<\/span>403.003, 430.219<span style=\"color:#f92672\">]<\/span> <span style=\"color:#f92672\">(<\/span>assumes normal distribution<span style=\"color:#f92672\">)<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># JMH version: 1.23<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># VM version: JDK 14.0.2, OpenJDK 64-Bit Server VM, 14.0.2+12-46<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># VM invoker: C:\\Program Files\\OpenJDK\\jdk-14.0.2\\bin\\java.exe<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># VM options: &lt;none&gt;<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup: 5 iterations, 10 s each<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Measurement: 5 iterations, 10 s each<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Timeout: 10 min per iteration<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Threads: 1 thread, will synchronize iterations<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Benchmark mode: Throughput, ops\/time<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Benchmark: com.mascix.IntegerListFilter.ecPrimitive<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Run progress: 33.33% complete, ETA 00:13:25<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Fork: 1 of 2<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   1: 204.407 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   2: 204.898 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   3: 194.960 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   4: 178.705 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   5: 178.812 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   1: 180.376 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   2: 180.147 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   3: 180.086 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   4: 180.746 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   5: 178.752 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Run progress: 41.67% complete, ETA 00:11:44<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Fork: 2 of 2<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   1: 204.929 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   2: 208.244 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   3: 196.546 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   4: 179.767 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   5: 179.485 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   1: 177.174 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   2: 179.544 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   3: 179.982 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   4: 179.820 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   5: 180.402 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>Result <span style=\"color:#e6db74\">&#34;com.mascix.IntegerListFilter.ecPrimitive&#34;<\/span>:\n<\/span><\/span><span style=\"display:flex;\"><span>  179.703 \u00b1<span style=\"color:#f92672\">(<\/span>99.9%<span style=\"color:#f92672\">)<\/span> 1.577 ops\/s <span style=\"color:#f92672\">[<\/span>Average<span style=\"color:#f92672\">]<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>  <span style=\"color:#f92672\">(<\/span>min, avg, max<span style=\"color:#f92672\">)<\/span> <span style=\"color:#f92672\">=<\/span> <span style=\"color:#f92672\">(<\/span>177.174, 179.703, 180.746<span style=\"color:#f92672\">)<\/span>, stdev <span style=\"color:#f92672\">=<\/span> 1.043\n<\/span><\/span><span style=\"display:flex;\"><span>  CI <span style=\"color:#f92672\">(<\/span>99.9%<span style=\"color:#f92672\">)<\/span>: <span style=\"color:#f92672\">[<\/span>178.126, 181.280<span style=\"color:#f92672\">]<\/span> <span style=\"color:#f92672\">(<\/span>assumes normal distribution<span style=\"color:#f92672\">)<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># JMH version: 1.23<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># VM version: JDK 14.0.2, OpenJDK 64-Bit Server VM, 14.0.2+12-46<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># VM invoker: C:\\Program Files\\OpenJDK\\jdk-14.0.2\\bin\\java.exe<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># VM options: &lt;none&gt;<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup: 5 iterations, 10 s each<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Measurement: 5 iterations, 10 s each<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Timeout: 10 min per iteration<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Threads: 1 thread, will synchronize iterations<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Benchmark mode: Throughput, ops\/time<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Benchmark: com.mascix.IntegerListFilter.ecPrimitiveParallel<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Run progress: 50.00% complete, ETA 00:10:03<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Fork: 1 of 2<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   1: 642.962 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   2: 672.796 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   3: 674.110 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   4: 676.845 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   5: 671.605 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   1: 673.029 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   2: 673.294 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   3: 673.807 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   4: 673.549 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   5: 669.523 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Run progress: 58.33% complete, ETA 00:08:23<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Fork: 2 of 2<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   1: 651.860 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   2: 662.825 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   3: 649.972 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   4: 664.449 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   5: 672.883 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   1: 670.101 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   2: 668.074 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   3: 663.229 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   4: 661.291 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   5: 673.637 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>Result <span style=\"color:#e6db74\">&#34;com.mascix.IntegerListFilter.ecPrimitiveParallel&#34;<\/span>:\n<\/span><\/span><span style=\"display:flex;\"><span>  669.953 \u00b1<span style=\"color:#f92672\">(<\/span>99.9%<span style=\"color:#f92672\">)<\/span> 6.872 ops\/s <span style=\"color:#f92672\">[<\/span>Average<span style=\"color:#f92672\">]<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>  <span style=\"color:#f92672\">(<\/span>min, avg, max<span style=\"color:#f92672\">)<\/span> <span style=\"color:#f92672\">=<\/span> <span style=\"color:#f92672\">(<\/span>661.291, 669.953, 673.807<span style=\"color:#f92672\">)<\/span>, stdev <span style=\"color:#f92672\">=<\/span> 4.545\n<\/span><\/span><span style=\"display:flex;\"><span>  CI <span style=\"color:#f92672\">(<\/span>99.9%<span style=\"color:#f92672\">)<\/span>: <span style=\"color:#f92672\">[<\/span>663.081, 676.825<span style=\"color:#f92672\">]<\/span> <span style=\"color:#f92672\">(<\/span>assumes normal distribution<span style=\"color:#f92672\">)<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># JMH version: 1.23<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># VM version: JDK 14.0.2, OpenJDK 64-Bit Server VM, 14.0.2+12-46<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># VM invoker: C:\\Program Files\\OpenJDK\\jdk-14.0.2\\bin\\java.exe<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># VM options: &lt;none&gt;<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup: 5 iterations, 10 s each<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Measurement: 5 iterations, 10 s each<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Timeout: 10 min per iteration<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Threads: 1 thread, will synchronize iterations<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Benchmark mode: Throughput, ops\/time<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Benchmark: com.mascix.IntegerListFilter.jdkList<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Run progress: 66.67% complete, ETA 00:06:42<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Fork: 1 of 2<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   1: 131.019 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   2: 124.043 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   3: 126.349 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   4: 124.911 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   5: 122.685 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   1: 111.307 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   2: 124.077 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   3: 127.157 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   4: 125.571 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   5: 124.025 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Run progress: 75.00% complete, ETA 00:05:01<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Fork: 2 of 2<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   1: 129.972 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   2: 125.094 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   3: 124.477 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   4: 126.937 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   5: 119.262 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   1: 101.889 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   2: 103.344 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   3: 103.035 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   4: 104.170 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   5: 103.849 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>Result <span style=\"color:#e6db74\">&#34;com.mascix.IntegerListFilter.jdkList&#34;<\/span>:\n<\/span><\/span><span style=\"display:flex;\"><span>  112.842 \u00b1<span style=\"color:#f92672\">(<\/span>99.9%<span style=\"color:#f92672\">)<\/span> 16.585 ops\/s <span style=\"color:#f92672\">[<\/span>Average<span style=\"color:#f92672\">]<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>  <span style=\"color:#f92672\">(<\/span>min, avg, max<span style=\"color:#f92672\">)<\/span> <span style=\"color:#f92672\">=<\/span> <span style=\"color:#f92672\">(<\/span>101.889, 112.842, 127.157<span style=\"color:#f92672\">)<\/span>, stdev <span style=\"color:#f92672\">=<\/span> 10.970\n<\/span><\/span><span style=\"display:flex;\"><span>  CI <span style=\"color:#f92672\">(<\/span>99.9%<span style=\"color:#f92672\">)<\/span>: <span style=\"color:#f92672\">[<\/span>96.258, 129.427<span style=\"color:#f92672\">]<\/span> <span style=\"color:#f92672\">(<\/span>assumes normal distribution<span style=\"color:#f92672\">)<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># JMH version: 1.23<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># VM version: JDK 14.0.2, OpenJDK 64-Bit Server VM, 14.0.2+12-46<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># VM invoker: C:\\Program Files\\OpenJDK\\jdk-14.0.2\\bin\\java.exe<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># VM options: &lt;none&gt;<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup: 5 iterations, 10 s each<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Measurement: 5 iterations, 10 s each<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Timeout: 10 min per iteration<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Threads: 1 thread, will synchronize iterations<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Benchmark mode: Throughput, ops\/time<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Benchmark: com.mascix.IntegerListFilter.jdkListParallel<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Run progress: 83.33% complete, ETA 00:03:21<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Fork: 1 of 2<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   1: 335.071 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   2: 348.010 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   3: 349.900 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   4: 352.848 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   5: 354.569 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   1: 353.534 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   2: 353.295 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   3: 352.056 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   4: 349.989 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   5: 341.271 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Run progress: 91.67% complete, ETA 00:01:40<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Fork: 2 of 2<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   1: 334.725 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   2: 344.641 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   3: 348.182 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   4: 345.859 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Warmup Iteration   5: 345.038 ops\/s<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   1: 333.103 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   2: 321.674 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   3: 336.749 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   4: 341.546 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>Iteration   5: 322.156 ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>Result <span style=\"color:#e6db74\">&#34;com.mascix.IntegerListFilter.jdkListParallel&#34;<\/span>:\n<\/span><\/span><span style=\"display:flex;\"><span>  340.537 \u00b1<span style=\"color:#f92672\">(<\/span>99.9%<span style=\"color:#f92672\">)<\/span> 18.300 ops\/s <span style=\"color:#f92672\">[<\/span>Average<span style=\"color:#f92672\">]<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>  <span style=\"color:#f92672\">(<\/span>min, avg, max<span style=\"color:#f92672\">)<\/span> <span style=\"color:#f92672\">=<\/span> <span style=\"color:#f92672\">(<\/span>321.674, 340.537, 353.534<span style=\"color:#f92672\">)<\/span>, stdev <span style=\"color:#f92672\">=<\/span> 12.104\n<\/span><\/span><span style=\"display:flex;\"><span>  CI <span style=\"color:#f92672\">(<\/span>99.9%<span style=\"color:#f92672\">)<\/span>: <span style=\"color:#f92672\">[<\/span>322.238, 358.837<span style=\"color:#f92672\">]<\/span> <span style=\"color:#f92672\">(<\/span>assumes normal distribution<span style=\"color:#f92672\">)<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Run complete. Total time: 00:20:07<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>REMEMBER: The numbers below are just data. To gain reusable insights, you need to follow up on\n<\/span><\/span><span style=\"display:flex;\"><span>why the numbers are the way they are. Use profilers <span style=\"color:#f92672\">(<\/span>see -prof, -lprof<span style=\"color:#f92672\">)<\/span>, design factorial\n<\/span><\/span><span style=\"display:flex;\"><span>experiments, perform baseline and negative tests that provide experimental control, make sure\n<\/span><\/span><span style=\"display:flex;\"><span>the benchmarking environment is safe on JVM\/OS\/HW level, ask <span style=\"color:#66d9ef\">for<\/span> reviews from the domain experts.\n<\/span><\/span><span style=\"display:flex;\"><span>Do not assume the numbers tell you what you want them to tell.\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>Benchmark                                 Mode  Cnt    Score    Error  Units\n<\/span><\/span><span style=\"display:flex;\"><span>IntegerListFilter.ecMutableList          thrpt   <span style=\"color:#ae81ff\">10<\/span>  111.019 \u00b1 14.717  ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>IntegerListFilter.ecMutableListParallel  thrpt   <span style=\"color:#ae81ff\">10<\/span>  416.611 \u00b1 13.608  ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>IntegerListFilter.ecPrimitive            thrpt   <span style=\"color:#ae81ff\">10<\/span>  179.703 \u00b1  1.577  ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>IntegerListFilter.ecPrimitiveParallel    thrpt   <span style=\"color:#ae81ff\">10<\/span>  669.953 \u00b1  6.872  ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>IntegerListFilter.jdkList                thrpt   <span style=\"color:#ae81ff\">10<\/span>  112.842 \u00b1 16.585  ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>IntegerListFilter.jdkListParallel        thrpt   <span style=\"color:#ae81ff\">10<\/span>  340.537 \u00b1 18.300  ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>Benchmark result is saved to jmh-result.json\n<\/span><\/span><\/code><\/pre><\/div><div class=\"highlight\"><pre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-bash\" data-lang=\"bash\"><span style=\"display:flex;\"><span>Result <span style=\"color:#e6db74\">&#34;com.mascix.IntegerListSum.jdkListParallel&#34;<\/span>:\n<\/span><\/span><span style=\"display:flex;\"><span>  1130.600 \u00b1<span style=\"color:#f92672\">(<\/span>99.9%<span style=\"color:#f92672\">)<\/span> 7.078 ops\/s <span style=\"color:#f92672\">[<\/span>Average<span style=\"color:#f92672\">]<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>  <span style=\"color:#f92672\">(<\/span>min, avg, max<span style=\"color:#f92672\">)<\/span> <span style=\"color:#f92672\">=<\/span> <span style=\"color:#f92672\">(<\/span>1119.181, 1130.600, 1135.694<span style=\"color:#f92672\">)<\/span>, stdev <span style=\"color:#f92672\">=<\/span> 4.682\n<\/span><\/span><span style=\"display:flex;\"><span>  CI <span style=\"color:#f92672\">(<\/span>99.9%<span style=\"color:#f92672\">)<\/span>: <span style=\"color:#f92672\">[<\/span>1123.522, 1137.678<span style=\"color:#f92672\">]<\/span> <span style=\"color:#f92672\">(<\/span>assumes normal distribution<span style=\"color:#f92672\">)<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"># Run complete. Total time: 00:20:06<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>REMEMBER: The numbers below are just data. To gain reusable insights, you need to follow up on\n<\/span><\/span><span style=\"display:flex;\"><span>why the numbers are the way they are. Use profilers <span style=\"color:#f92672\">(<\/span>see -prof, -lprof<span style=\"color:#f92672\">)<\/span>, design factorial\n<\/span><\/span><span style=\"display:flex;\"><span>experiments, perform baseline and negative tests that provide experimental control, make sure\n<\/span><\/span><span style=\"display:flex;\"><span>the benchmarking environment is safe on JVM\/OS\/HW level, ask <span style=\"color:#66d9ef\">for<\/span> reviews from the domain experts.\n<\/span><\/span><span style=\"display:flex;\"><span>Do not assume the numbers tell you what you want them to tell.\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>Benchmark                              Mode  Cnt     Score     Error  Units\n<\/span><\/span><span style=\"display:flex;\"><span>IntegerListSum.ecMutableList          thrpt   <span style=\"color:#ae81ff\">10<\/span>   574.542 \u00b1  25.928  ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>IntegerListSum.ecMutableListParallel  thrpt   <span style=\"color:#ae81ff\">10<\/span>  1138.850 \u00b1  21.732  ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>IntegerListSum.ecPrimitive            thrpt   <span style=\"color:#ae81ff\">10<\/span>  3315.567 \u00b1   3.718  ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>IntegerListSum.ecPrimitiveParallel    thrpt   <span style=\"color:#ae81ff\">10<\/span>  8070.602 \u00b1 436.183  ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>IntegerListSum.jdkList                thrpt   <span style=\"color:#ae81ff\">10<\/span>   543.355 \u00b1  22.079  ops\/s\n<\/span><\/span><span style=\"display:flex;\"><span>IntegerListSum.jdkListParallel        thrpt   <span style=\"color:#ae81ff\">10<\/span>  1130.600 \u00b1   7.078  ops\/s\n<\/span><\/span><\/code><\/pre><\/div><p>You can find more results in jdk matrix from <a href=\"https:\/\/github.com\/ozkanpakdil\/eclipse-collections-benchmark\/actions\">eclipse collections benchmark<\/a><\/p>"},{"title":"Could not find MessageBodyWriter for response object of type: io.vertx.reactivex.core.buffer.Buffer of media type: text\/html;charset=UTF-8","link":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2020\/2020-06-02-quarkus-vertx-streamwriter-problem\/","pubDate":"Tue, 02 Jun 2020 08:05:30 +0000","guid":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2020\/2020-06-02-quarkus-vertx-streamwriter-problem\/","description":"<p>I was trying to use freemarker with quarkus and vertx. I start getting this error<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-bash\" data-lang=\"bash\"><span style=\"display:flex;\"><span>Could not find MessageBodyWriter <span style=\"color:#66d9ef\">for<\/span> response object of type: io.vertx.reactivex.core.buffer.Buffer of media type: text\/html;charset<span style=\"color:#f92672\">=<\/span>UTF-8\n<\/span><\/span><\/code><\/pre><\/div><p>And code look like below. I was trying to use reactive approach.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-java\" data-lang=\"java\"><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">@GET<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">@Produces<\/span>(MediaType.<span style=\"color:#a6e22e\">TEXT_HTML<\/span>)\n<\/span><\/span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">public<\/span> Uni<span style=\"color:#f92672\">&lt;<\/span>Object<span style=\"color:#f92672\">&gt;<\/span> <span style=\"color:#a6e22e\">doSomethingAsync<\/span>() <span style=\"color:#66d9ef\">throws<\/span> Exception {\n<\/span><\/span><span style=\"display:flex;\"><span>        io.<span style=\"color:#a6e22e\">vertx<\/span>.<span style=\"color:#a6e22e\">core<\/span>.<span style=\"color:#a6e22e\">Vertx<\/span> params <span style=\"color:#f92672\">=<\/span> vertx.<span style=\"color:#a6e22e\">getDelegate<\/span>();\n<\/span><\/span><span style=\"display:flex;\"><span>        io.<span style=\"color:#a6e22e\">vertx<\/span>.<span style=\"color:#a6e22e\">reactivex<\/span>.<span style=\"color:#a6e22e\">core<\/span>.<span style=\"color:#a6e22e\">Vertx<\/span> args <span style=\"color:#f92672\">=<\/span> <span style=\"color:#66d9ef\">new<\/span> io.<span style=\"color:#a6e22e\">vertx<\/span>.<span style=\"color:#a6e22e\">reactivex<\/span>.<span style=\"color:#a6e22e\">core<\/span>.<span style=\"color:#a6e22e\">Vertx<\/span>(params);\n<\/span><\/span><span style=\"display:flex;\"><span>        FreeMarkerTemplateEngine engine <span style=\"color:#f92672\">=<\/span> FreeMarkerTemplateEngine.<span style=\"color:#a6e22e\">create<\/span>(args);\n<\/span><\/span><span style=\"display:flex;\"><span>        List<span style=\"color:#f92672\">&lt;<\/span>ExampleObject<span style=\"color:#f92672\">&gt;<\/span> exs <span style=\"color:#f92672\">=<\/span> <span style=\"color:#66d9ef\">new<\/span> ArrayList<span style=\"color:#f92672\">&lt;&gt;<\/span>();\n<\/span><\/span><span style=\"display:flex;\"><span>        <span style=\"color:#66d9ef\">for<\/span> (<span style=\"color:#66d9ef\">int<\/span> i <span style=\"color:#f92672\">=<\/span> 0; i <span style=\"color:#f92672\">&lt;<\/span> 10; i<span style=\"color:#f92672\">++<\/span>) {\n<\/span><\/span><span style=\"display:flex;\"><span>            exs.<span style=\"color:#a6e22e\">add<\/span>(<span style=\"color:#66d9ef\">new<\/span> ExampleObject(<span style=\"color:#e6db74\">&#34;name:&#34;<\/span> <span style=\"color:#f92672\">+<\/span> i, <span style=\"color:#e6db74\">&#34;dev:&#34;<\/span> <span style=\"color:#f92672\">+<\/span> i));\n<\/span><\/span><span style=\"display:flex;\"><span>        }\n<\/span><\/span><span style=\"display:flex;\"><span>        HashMap data <span style=\"color:#f92672\">=<\/span> <span style=\"color:#66d9ef\">new<\/span> HashMap<span style=\"color:#f92672\">&lt;&gt;<\/span>();\n<\/span><\/span><span style=\"display:flex;\"><span>        data.<span style=\"color:#a6e22e\">put<\/span>(<span style=\"color:#e6db74\">&#34;title&#34;<\/span>, <span style=\"color:#e6db74\">&#34;Vert.x Web&#34;<\/span>);\n<\/span><\/span><span style=\"display:flex;\"><span>        data.<span style=\"color:#a6e22e\">put<\/span>(<span style=\"color:#e6db74\">&#34;exampleObject&#34;<\/span>, <span style=\"color:#66d9ef\">new<\/span> ExampleObject(<span style=\"color:#e6db74\">&#34;name&#34;<\/span>, <span style=\"color:#e6db74\">&#34;dev&#34;<\/span>));\n<\/span><\/span><span style=\"display:flex;\"><span>        data.<span style=\"color:#a6e22e\">put<\/span>(<span style=\"color:#e6db74\">&#34;systems&#34;<\/span>, exs);\n<\/span><\/span><span style=\"display:flex;\"><span>        Single<span style=\"color:#f92672\">&lt;<\/span>Buffer<span style=\"color:#f92672\">&gt;<\/span> rxRender <span style=\"color:#f92672\">=<\/span> engine.<span style=\"color:#a6e22e\">rxRender<\/span>(data, <span style=\"color:#e6db74\">&#34;\/templates\/index.htm&#34;<\/span>);\n<\/span><\/span><span style=\"display:flex;\"><span>        Buffer page <span style=\"color:#f92672\">=<\/span> <span style=\"color:#66d9ef\">null<\/span>;\n<\/span><\/span><span style=\"display:flex;\"><span>        <span style=\"color:#66d9ef\">try<\/span> {\n<\/span><\/span><span style=\"display:flex;\"><span>            page <span style=\"color:#f92672\">=<\/span> rxRender.<span style=\"color:#a6e22e\">toFuture<\/span>().<span style=\"color:#a6e22e\">get<\/span>();\n<\/span><\/span><span style=\"display:flex;\"><span>        } <span style=\"color:#66d9ef\">catch<\/span> (Exception ex) {\n<\/span><\/span><span style=\"display:flex;\"><span>            ex.<span style=\"color:#a6e22e\">printStackTrace<\/span>();\n<\/span><\/span><span style=\"display:flex;\"><span>            <span style=\"color:#75715e\">\/\/ e.printStacktrace();<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>        }\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>        <span style=\"color:#66d9ef\">return<\/span> Uni.<span style=\"color:#a6e22e\">createFrom<\/span>().<span style=\"color:#a6e22e\">item<\/span>(page);\n<\/span><\/span><span style=\"display:flex;\"><span>    }\n<\/span><\/span><\/code><\/pre><\/div><p>I check and could not find a proper solution here is how I solved it.<\/p>"},{"title":"Terrible android error","link":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2020\/2020-01-26-android-problem\/","pubDate":"Sun, 26 Jan 2020 08:05:30 +0000","guid":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2020\/2020-01-26-android-problem\/","description":"<p>While developing a small android application. I was thinking to use IntentService which is kind of a background worker for android platform. Then I found the need code and documentation and implemented yesterday. and code is compiling so today I wanted to see it in a real phone and started<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-bash\" data-lang=\"bash\"><span style=\"display:flex;\"><span> Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class <span style=\"color:#f92672\">{<\/span>com.mascix.fitinsta\/com.mascix.fitinsta.ServiceLayer<span style=\"color:#f92672\">}<\/span>; have you declared this activity in your AndroidManifest.xml?\n<\/span><\/span><\/code><\/pre><\/div><p>From this exception I understand that I am having a problem in androidmanifest.xml and since morning I was trying to fix it. And the result is it was code problem :)<\/p>"},{"title":"How to solve ripe.net access denied","link":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2018\/2018-05-23-solve-ripe-access-denied\/","pubDate":"Wed, 23 May 2018 08:05:30 +0000","guid":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2018\/2018-05-23-solve-ripe-access-denied\/","description":"<p>I have been using whois for a long time(around 10 years). and if you are sending this whois queries from same ip and higher then expected. you will start seeing ripe.net access denied results. one solution is restart your adsl modem. or start using another ip. and my solution is TOR :)<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-bash\" data-lang=\"bash\"><span style=\"display:flex;\"><span>sudo apt install tor torsocks\n<\/span><\/span><\/code><\/pre><\/div><p>you will need to configure torify check <a href=\"https:\/\/www.linux.com\/blog\/beginners-guide-tor-ubuntu\">https:\/\/www.linux.com\/blog\/beginners-guide-tor-ubuntu<\/a><\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-bash\" data-lang=\"bash\"><span style=\"display:flex;\"><span>torify whois 25.166.194.172\n<\/span><\/span><\/code><\/pre><\/div><p>and I did not wanted to run in my server. therefore amazon free instance and a micro service <a href=\"https:\/\/github.com\/ozkanpakdil\/CommandRunner\">https:\/\/github.com\/ozkanpakdil\/CommandRunner<\/a> did the trick.<\/p>"},{"title":"Oracle weblogic installation from console","link":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2016\/2016-07-01-oracle-weblogic-installation-from-console\/","pubDate":"Fri, 01 Jul 2016 11:30:30 +0000","guid":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2016\/2016-07-01-oracle-weblogic-installation-from-console\/","description":"<p>the -silent mode is actually console installation without gui.<\/p>\n<p>Create 2 files 1<\/p>\n<p>responseFile.properties<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-bash\" data-lang=\"bash\"><span style=\"display:flex;\"><span><span style=\"color:#f92672\">[<\/span>ENGINE<span style=\"color:#f92672\">]<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>Response File Version<span style=\"color:#f92672\">=<\/span>1.0.0.0.0\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f92672\">[<\/span>GENERIC<span style=\"color:#f92672\">]<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>ORACLE_HOME<span style=\"color:#f92672\">=<\/span>\/path-to-install-to\n<\/span><\/span><span style=\"display:flex;\"><span>INSTALL_TYPE<span style=\"color:#f92672\">=<\/span>WebLogic Server\n<\/span><\/span><span style=\"display:flex;\"><span>MYORACLESUPPORT_USERNAME<span style=\"color:#f92672\">=<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>MYORACLESUPPORT_PASSWORD<span style=\"color:#f92672\">=<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>DECLINE_SECURITY_UPDATES<span style=\"color:#f92672\">=<\/span>true\n<\/span><\/span><span style=\"display:flex;\"><span>SECURITY_UPDATES_VIA_MYORACLESUPPORT<span style=\"color:#f92672\">=<\/span>false\n<\/span><\/span><span style=\"display:flex;\"><span>PROXY_HOST<span style=\"color:#f92672\">=<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>PROXY_PORT<span style=\"color:#f92672\">=<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>PROXY_USER<span style=\"color:#f92672\">=<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>PROXY_PWD<span style=\"color:#f92672\">=<\/span>&lt;SECURE VALUE&gt;\n<\/span><\/span><span style=\"display:flex;\"><span>COLLECTOR_SUPPORTHUB_URL<span style=\"color:#f92672\">=<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>oraInst.loc<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-bash\" data-lang=\"bash\"><span style=\"display:flex;\"><span>inventory_loc<span style=\"color:#f92672\">=<\/span>\/inventory\/\n<\/span><\/span><span style=\"display:flex;\"><span>inst_group<span style=\"color:#f92672\">=<\/span>users\n<\/span><\/span><\/code><\/pre><\/div><p>Run this command in  shell<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-bash\" data-lang=\"bash\"><span style=\"display:flex;\"><span>java -jar fmw_12.2.1.1.0_wls.jar -silent -invPtrLoc \/fullpath\/oraInst.loc -responseFile \/fullpath\/responseFile.properties\n<\/span><\/span><\/code><\/pre><\/div><p>for windows<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-bash\" data-lang=\"bash\"><span style=\"display:flex;\"><span>java -jar fmw_12.2.1.1.0_wls.jar -silent -invPtrLoc c:<span style=\"color:#ae81ff\">\\o<\/span>racle<span style=\"color:#ae81ff\">\\o<\/span>raInst.loc -responseFile c:<span style=\"color:#ae81ff\">\\o<\/span>racle<span style=\"color:#ae81ff\">\\r<\/span>esponseFile.properties\n<\/span><\/span><\/code><\/pre><\/div><p>in responseFile.properties change<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-bash\" data-lang=\"bash\"><span style=\"display:flex;\"><span>ORACLE_HOME<span style=\"color:#f92672\">=<\/span>c:<span style=\"color:#ae81ff\">\\\\<\/span>some-path-to-install\n<\/span><\/span><\/code><\/pre><\/div>"},{"title":"different loops in two dimensional array","link":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2016\/2016-02-11-loop-two-dimension-array\/","pubDate":"Thu, 11 Feb 2016 11:30:30 +0000","guid":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2016\/2016-02-11-loop-two-dimension-array\/","description":"<p>I was trying to solve hackerrank questions. it has been long time I write anything directly related to arrays. mostly coding after some point is db related and mostly used lists there. anyway here is how you can solve <a href=\"https:\/\/www.hackerrank.com\/challenges\/diagonal-difference\">https:\/\/www.hackerrank.com\/challenges\/diagonal-difference<\/a> this question in O(n square) and O(n).<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-java\" data-lang=\"java\"><span style=\"display:flex;\"><span><span style=\"color:#f92672\">import<\/span> java.io.*;\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f92672\">import<\/span> java.util.*;\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#66d9ef\">public<\/span> <span style=\"color:#66d9ef\">class<\/span> <span style=\"color:#a6e22e\">Solution<\/span> {\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>\t<span style=\"color:#66d9ef\">public<\/span> <span style=\"color:#66d9ef\">static<\/span> <span style=\"color:#66d9ef\">void<\/span> <span style=\"color:#a6e22e\">main<\/span>(String<span style=\"color:#f92672\">[]<\/span> args) {\n<\/span><\/span><span style=\"display:flex;\"><span>\t\tScanner stdin <span style=\"color:#f92672\">=<\/span> <span style=\"color:#66d9ef\">new<\/span> Scanner(System.<span style=\"color:#a6e22e\">in<\/span>);\n<\/span><\/span><span style=\"display:flex;\"><span>\t\t<span style=\"color:#66d9ef\">final<\/span> <span style=\"color:#66d9ef\">int<\/span> n <span style=\"color:#f92672\">=<\/span> stdin.<span style=\"color:#a6e22e\">nextInt<\/span>();\n<\/span><\/span><span style=\"display:flex;\"><span>\t\t<span style=\"color:#66d9ef\">long<\/span> sum <span style=\"color:#f92672\">=<\/span> 0;\n<\/span><\/span><span style=\"display:flex;\"><span>\t\t<span style=\"color:#66d9ef\">long<\/span> sum1 <span style=\"color:#f92672\">=<\/span> 0;\n<\/span><\/span><span style=\"display:flex;\"><span>\t\t<span style=\"color:#66d9ef\">long<\/span><span style=\"color:#f92672\">[][]<\/span> matris <span style=\"color:#f92672\">=<\/span> <span style=\"color:#66d9ef\">new<\/span> <span style=\"color:#66d9ef\">long<\/span><span style=\"color:#f92672\">[<\/span>n<span style=\"color:#f92672\">][<\/span>n<span style=\"color:#f92672\">]<\/span>;\n<\/span><\/span><span style=\"display:flex;\"><span>\t\t<span style=\"color:#66d9ef\">for<\/span> (<span style=\"color:#66d9ef\">int<\/span> i <span style=\"color:#f92672\">=<\/span> 0; i <span style=\"color:#f92672\">&lt;<\/span> n; i<span style=\"color:#f92672\">++<\/span>) {\n<\/span><\/span><span style=\"display:flex;\"><span>\t\t\t<span style=\"color:#66d9ef\">for<\/span> (<span style=\"color:#66d9ef\">int<\/span> j <span style=\"color:#f92672\">=<\/span> 0; j <span style=\"color:#f92672\">&lt;<\/span> n; j<span style=\"color:#f92672\">++<\/span>) {\n<\/span><\/span><span style=\"display:flex;\"><span>\t\t\t\tmatris<span style=\"color:#f92672\">[<\/span>i<span style=\"color:#f92672\">][<\/span>j<span style=\"color:#f92672\">]<\/span> <span style=\"color:#f92672\">=<\/span> stdin.<span style=\"color:#a6e22e\">nextLong<\/span>();\n<\/span><\/span><span style=\"display:flex;\"><span>\t\t\t}\n<\/span><\/span><span style=\"display:flex;\"><span>\t\t}\n<\/span><\/span><span style=\"display:flex;\"><span>\t\t<span style=\"color:#66d9ef\">for<\/span> (<span style=\"color:#66d9ef\">int<\/span> i <span style=\"color:#f92672\">=<\/span> 0; i <span style=\"color:#f92672\">&lt;<\/span> n; i<span style=\"color:#f92672\">++<\/span>) {\n<\/span><\/span><span style=\"display:flex;\"><span>\t\t\t<span style=\"color:#75715e\">\/\/ System.out.println(matris[i][i]);<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>\t\t\tsum <span style=\"color:#f92672\">+=<\/span> matris<span style=\"color:#f92672\">[<\/span>i<span style=\"color:#f92672\">][<\/span>i<span style=\"color:#f92672\">]<\/span>;\n<\/span><\/span><span style=\"display:flex;\"><span>\t\t}\n<\/span><\/span><span style=\"display:flex;\"><span>\t\t<span style=\"color:#66d9ef\">for<\/span> (<span style=\"color:#66d9ef\">int<\/span> i <span style=\"color:#f92672\">=<\/span> 0; i <span style=\"color:#f92672\">&lt;<\/span> n; i<span style=\"color:#f92672\">++<\/span>) {\n<\/span><\/span><span style=\"display:flex;\"><span>\t\t\t<span style=\"color:#66d9ef\">for<\/span> (<span style=\"color:#66d9ef\">int<\/span> j <span style=\"color:#f92672\">=<\/span> 0; j <span style=\"color:#f92672\">&lt;<\/span> n; j<span style=\"color:#f92672\">++<\/span>) {\n<\/span><\/span><span style=\"display:flex;\"><span>\t\t\t\t<span style=\"color:#66d9ef\">if<\/span> (i <span style=\"color:#f92672\">+<\/span> j <span style=\"color:#f92672\">==<\/span> n <span style=\"color:#f92672\">-<\/span> 1) {\n<\/span><\/span><span style=\"display:flex;\"><span>\t\t\t\t\t<span style=\"color:#75715e\">\/\/ System.out.println(matris[i][j]);<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>\t\t\t\t\tsum1 <span style=\"color:#f92672\">+=<\/span> matris<span style=\"color:#f92672\">[<\/span>i<span style=\"color:#f92672\">][<\/span>j<span style=\"color:#f92672\">]<\/span>;\n<\/span><\/span><span style=\"display:flex;\"><span>\t\t\t\t}\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>\t\t\t}\n<\/span><\/span><span style=\"display:flex;\"><span>\t\t}\n<\/span><\/span><span style=\"display:flex;\"><span>\t\t<span style=\"color:#66d9ef\">for<\/span> (<span style=\"color:#66d9ef\">int<\/span> i <span style=\"color:#f92672\">=<\/span> n <span style=\"color:#f92672\">-<\/span> 1; i <span style=\"color:#f92672\">&gt;=<\/span> 0; i<span style=\"color:#f92672\">--<\/span>) {\n<\/span><\/span><span style=\"display:flex;\"><span>\t\t\tSystem.<span style=\"color:#a6e22e\">out<\/span>.<span style=\"color:#a6e22e\">println<\/span>(matris<span style=\"color:#f92672\">[<\/span>i<span style=\"color:#f92672\">][<\/span>n <span style=\"color:#f92672\">-<\/span> 1 <span style=\"color:#f92672\">-<\/span> i<span style=\"color:#f92672\">]<\/span>);\n<\/span><\/span><span style=\"display:flex;\"><span>\t\t}\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>\t\tSystem.<span style=\"color:#a6e22e\">out<\/span>.<span style=\"color:#a6e22e\">println<\/span>(Math.<span style=\"color:#a6e22e\">abs<\/span>(sum <span style=\"color:#f92672\">-<\/span> sum1));\n<\/span><\/span><span style=\"display:flex;\"><span>\t}\n<\/span><\/span><span style=\"display:flex;\"><span>}\n<\/span><\/span><\/code><\/pre><\/div>"},{"title":"adding jars to maven pom","link":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2015\/2015-11-01-add-jar-from-path\/","pubDate":"Sun, 01 Nov 2015 17:30:30 +0000","guid":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2015\/2015-11-01-add-jar-from-path\/","description":"<p>normally you dont need this but sometime you may need to work with some special products like weblogic. and you may just need to add a dependincy from already installed weblogic.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-xml\" data-lang=\"xml\"><span style=\"display:flex;\"><span><span style=\"color:#f92672\">&lt;dependency&gt;<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>                <span style=\"color:#f92672\">&lt;groupId&gt;<\/span>weblogic<span style=\"color:#f92672\">&lt;\/groupId&gt;<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>                <span style=\"color:#f92672\">&lt;artifactId&gt;<\/span>weblogic<span style=\"color:#f92672\">&lt;\/artifactId&gt;<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>                <span style=\"color:#f92672\">&lt;version&gt;<\/span>1<span style=\"color:#f92672\">&lt;\/version&gt;<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>                <span style=\"color:#f92672\">&lt;scope&gt;<\/span>system<span style=\"color:#f92672\">&lt;\/scope&gt;<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>                <span style=\"color:#f92672\">&lt;systemPath&gt;<\/span>C:\\wl12\\wlserver\\modules\\features\\weblogic.server.merged.jar<span style=\"color:#f92672\">&lt;\/systemPath&gt;<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f92672\">&lt;\/dependency&gt;<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>this is working in windows as you guess :)<\/p>"}]}}