<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>https://ronveen.com/series/spring-ai-in-depth/</loc><lastmod>2026-07-03T00:00:00+00:00</lastmod></url><url><loc>https://ronveen.com/series/java-27/</loc><lastmod>2026-07-06T00:00:00+00:00</lastmod></url><url><loc>https://ronveen.com/series/claude-code/</loc><lastmod>2026-07-08T00:00:00+00:00</lastmod></url><url><loc>https://ronveen.com/series/java-26/</loc><lastmod>2026-03-06T00:00:00+00:00</lastmod></url><url><loc>https://ronveen.com/categories/ai/</loc><lastmod>2026-07-08T00:00:00+00:00</lastmod></url><url><loc>https://ronveen.com/categories/</loc><lastmod>2026-07-08T00:00:00+00:00</lastmod></url><url><loc>https://ronveen.com/posts/claude-code-07-lsp/</loc><lastmod>2026-07-08T00:00:00+00:00</lastmod></url><url><loc>https://ronveen.com/posts/</loc><lastmod>2026-07-08T00:00:00+00:00</lastmod></url><url><loc>https://ronveen.com/</loc><lastmod>2026-07-08T00:00:00+00:00</lastmod></url><url><loc>https://ronveen.com/series/</loc><lastmod>2026-07-08T00:00:00+00:00</lastmod></url><url><loc>https://ronveen.com/categories/java/</loc><lastmod>2026-07-06T00:00:00+00:00</lastmod></url><url><loc>https://ronveen.com/posts/jep-536-jfr-in-process-data-redaction/</loc><lastmod>2026-07-06T00:00:00+00:00</lastmod></url><url><loc>https://ronveen.com/posts/spring-ai-series-5-structured-outputs/</loc><lastmod>2026-07-03T00:00:00+00:00</lastmod></url><url><loc>https://ronveen.com/posts/claude-code-06-mcp/</loc><lastmod>2026-07-02T00:00:00+00:00</lastmod></url><url><loc>https://ronveen.com/posts/jep-534-compact-object-headers-by-default/</loc><lastmod>2026-06-29T00:00:00+00:00</lastmod></url><url><loc>https://ronveen.com/posts/spring-ai-in-depth-4-prompt-engineering/</loc><lastmod>2026-06-26T00:00:00+00:00</lastmod></url><url><loc>https://ronveen.com/posts/claude-code-part-5-custom-commands-automate-your-own-workflow/</loc><lastmod>2026-06-24T00:00:00+00:00</lastmod></url><url><loc>https://ronveen.com/categories/developer-tools/</loc><lastmod>2026-06-24T00:00:00+00:00</lastmod></url><url><loc>https://ronveen.com/posts/jep-533-structured-concurrency-gets-sharper-in-jdk-27/</loc><lastmod>2026-06-23T00:00:00+00:00</lastmod></url><url><loc>https://ronveen.com/posts/spring-ai-series-3-chatclient/</loc><lastmod>2026-06-19T00:00:00+00:00</lastmod></url><url><loc>https://ronveen.com/posts/claude-code-part-4-slash-commands/</loc><lastmod>2026-06-17T00:00:00+00:00</lastmod></url><url><loc>https://ronveen.com/posts/java-27-part-4-jep-532-primitive-types-in-patterns/</loc><lastmod>2026-06-15T00:00:00+00:00</lastmod></url><url><loc>https://ronveen.com/posts/spring-ai-series-2-setup-spring-ai/</loc><lastmod>2026-06-12T00:00:00+00:00</lastmod></url><url><loc>https://ronveen.com/posts/spring-ai-series-1-introduction-to-spring-ai/</loc><lastmod>2026-06-06T00:00:00+00:00</lastmod></url><url><loc>https://ronveen.com/posts/java-27-part-3-jep-531-lazy-constants-round-three/</loc><lastmod>2026-05-27T00:00:00+00:00</lastmod></url><url><loc>https://ronveen.com/posts/claude-code-03-skills/</loc><lastmod>2026-05-22T00:00:00+00:00</lastmod></url><url><loc>https://ronveen.com/posts/java-27-part-1-jep-523-g1-becomes-the-default-everywhere/</loc><lastmod>2026-05-22T00:00:00+00:00</lastmod></url><url><loc>https://ronveen.com/posts/claude-code-02-configuration/</loc><lastmod>2026-05-21T00:00:00+00:00</lastmod></url><url><loc>https://ronveen.com/posts/claude-code-01-introduction/</loc><lastmod>2026-05-20T00:00:00+00:00</lastmod></url><url><loc>https://ronveen.com/posts/java-27-overview/</loc><lastmod>2026-03-17T00:00:00+00:00</lastmod></url><url><loc>https://ronveen.com/posts/java-27-part-2-jep-527-post-quantum-hybrid-key-exchange-for-tls-1.3/</loc><lastmod>2026-03-15T00:00:00+00:00</lastmod></url><url><loc>https://ronveen.com/posts/java-26-part-10-jep-530-pattern-matching-for-primitives/</loc><lastmod>2026-03-06T00:00:00+00:00</lastmod></url><url><loc>https://ronveen.com/posts/java-26-part-9-jep-529-vector-api/</loc><lastmod>2026-03-05T00:00:00+00:00</lastmod></url><url><loc>https://ronveen.com/posts/java-26-part-8-jep-526-lazy-constants/</loc><lastmod>2026-03-01T00:00:00+00:00</lastmod></url><url><loc>https://ronveen.com/posts/java-26-part-7-jep-525-structured-concurrency/</loc><lastmod>2026-02-26T00:00:00+00:00</lastmod></url><url><loc>https://ronveen.com/posts/java-26-part-6-jep-524-pem-encodings-of-cryptographic-objects/</loc><lastmod>2026-02-12T00:00:00+00:00</lastmod></url><url><loc>https://ronveen.com/posts/java-26-part-5-jep-522-turbocharging-g1-with-double-buffering/</loc><lastmod>2026-02-02T00:00:00+00:00</lastmod></url><url><loc>https://ronveen.com/shorts/ollama/</loc><lastmod>2026-01-30T00:00:00+00:00</lastmod></url><url><loc>https://ronveen.com/shorts/</loc><lastmod>2026-01-30T00:00:00+00:00</lastmod></url><url><loc>https://ronveen.com/posts/java-26-part-4-jep-517-http/3-is-finally-here-natively/</loc><lastmod>2026-01-29T00:00:00+00:00</lastmod></url><url><loc>https://ronveen.com/about/</loc><lastmod>2026-01-24T00:00:00+00:00</lastmod></url><url><loc>https://ronveen.com/books/</loc><lastmod>2026-01-24T00:00:00+00:00</lastmod></url><url><loc>https://ronveen.com/posts/java-26-part-3-jep-516-ahead-of-time-object-caching-with-any-gc/</loc><lastmod>2026-01-20T00:00:00+00:00</lastmod></url><url><loc>https://ronveen.com/posts/java-26-part-2-jep-504-remove-the-applet-api/</loc><lastmod>2026-01-17T00:00:00+00:00</lastmod></url><url><loc>https://ronveen.com/posts/java-26-part-1-jep-500-prepare-final-mean-final/</loc><lastmod>2025-12-29T00:00:00+00:00</lastmod></url><url><loc>https://ronveen.com/posts/java-26/</loc><lastmod>2025-12-25T00:00:00+00:00</lastmod></url><url><loc>https://ronveen.com/conferences/</loc></url><url><loc>https://ronveen.com/search/</loc></url><url><loc>https://ronveen.com/shared/</loc></url><url><loc>https://ronveen.com/true/</loc></url></urlset>