<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Vijay Hiremath</title>
    <description>The latest articles on DEV Community by Vijay Hiremath (@vijayhiremath).</description>
    <link>https://dev.to/vijayhiremath</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3991786%2Fc5f6b3b8-ae43-446a-a7c4-7290a83f4648.jpg</url>
      <title>DEV Community: Vijay Hiremath</title>
      <link>https://dev.to/vijayhiremath</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vijayhiremath"/>
    <language>en</language>
    <item>
      <title>Jenkins open-source project (gradle-convention-plugin):</title>
      <dc:creator>Vijay Hiremath</dc:creator>
      <pubDate>Thu, 25 Jun 2026 16:00:59 +0000</pubDate>
      <link>https://dev.to/vijayhiremath/jenkins-open-source-project-gradle-convention-plugin-31im</link>
      <guid>https://dev.to/vijayhiremath/jenkins-open-source-project-gradle-convention-plugin-31im</guid>
      <description>&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Refactored Kotlin Test Utilities: Abstracted out duplicate initialization logic by introducing a reusable mock project builder function (createMockProjectBuilder()) natively in the Kotlin integration test suite. This utilizes fluent Kotlin builder patterns to cleanly handle the generation of version catalogs, settings scripts, and mock build properties, drastically reducing boilerplate code across the .kt test files.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Fixed Kotlin DSL Lifecycle Hooks: Migrated the plugin's configuration capture mechanism from whenObjectAdded to configurations.all. This leverages Kotlin lambda blocks to ensure that pre-existing target test configurations are correctly captured and dynamically processed by the Kotlin DSL rather than missed during eager registration.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Robust Kotlin Assertions: Replaced brittle, literal string test assertions with robust Kotlin regex patterns and Kotest matchers capable of dynamically verifying Gradle's dependency resolution arrow syntax style (group:artifact:old -&amp;gt; new).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Kotlin Environmental Fix: Resolved a Gradle TestKit failure (Unsupported class file major version 68) caused by TestKit isolation executing under a global Java 24 environment, by forcing the Kotlin compile tasks and the test runner to target Java 21 compatibility (Major version 65).&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>opensource</category>
      <category>discuss</category>
      <category>learning</category>
      <category>github</category>
    </item>
    <item>
      <title>Kotlin</title>
      <dc:creator>Vijay Hiremath</dc:creator>
      <pubDate>Sun, 21 Jun 2026 02:50:46 +0000</pubDate>
      <link>https://dev.to/vijayhiremath/kotlin-51he</link>
      <guid>https://dev.to/vijayhiremath/kotlin-51he</guid>
      <description>&lt;p&gt;🧪 JUnit Test Isolation — One Small Detail That Changed Everything&lt;/p&gt;

&lt;p&gt;Today I learned that JUnit creates a brand-new instance of your test class for every "&lt;a class="mentioned-user" href="https://dev.to/test"&gt;@test&lt;/a&gt;" method by default.&lt;/p&gt;

&lt;p&gt;"@TestInstance(TestInstance.Lifecycle.PER_METHOD)"&lt;/p&gt;

&lt;p&gt;What happens?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"test1()" runs → counter becomes "1"&lt;/li&gt;
&lt;li&gt;JUnit destroys that object&lt;/li&gt;
&lt;li&gt;"test2()" gets a fresh instance → counter starts at "0" again and becomes "2"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This prevents tests from accidentally sharing state and affecting each other.&lt;/p&gt;

&lt;p&gt;📁 Bonus Gradle Gotcha:&lt;/p&gt;

&lt;p&gt;If your tests are inside "src/main/kotlin", Gradle ignores them and shows:&lt;/p&gt;

&lt;p&gt;"Task :test NO-SOURCE"&lt;/p&gt;

&lt;p&gt;Move them to:&lt;/p&gt;

&lt;p&gt;"src/test/kotlin"&lt;/p&gt;

&lt;p&gt;and your tests run correctly. Use:&lt;/p&gt;

&lt;p&gt;"./gradlew test -i"&lt;/p&gt;

&lt;p&gt;to see "println()" output in the terminal.&lt;/p&gt;

&lt;p&gt;Small detail, big debugging lesson. 🚀&lt;/p&gt;

&lt;h1&gt;
  
  
  JUnit #Kotlin #Testing #Gradle #Java #AndroidDev
&lt;/h1&gt;

</description>
      <category>beginners</category>
      <category>programming</category>
      <category>testing</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Started Learning Kotlin</title>
      <dc:creator>Vijay Hiremath</dc:creator>
      <pubDate>Fri, 19 Jun 2026 04:32:45 +0000</pubDate>
      <link>https://dev.to/vijayhiremath/started-learning-kotlin-3333</link>
      <guid>https://dev.to/vijayhiremath/started-learning-kotlin-3333</guid>
      <description>&lt;p&gt;What I learned:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Kotlin release types: Experimental, Alpha, Beta, Stable&lt;/li&gt;
&lt;li&gt;Kotlin Evolution and Enhancement Process (KEEP)&lt;/li&gt;
&lt;li&gt;Kotlin versioning and release cycles&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;IntelliJ IDEA productivity features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Code Completion&lt;/li&gt;
&lt;li&gt;Find Action&lt;/li&gt;
&lt;li&gt;Navigation Commands&lt;/li&gt;
&lt;li&gt;Inspections and Quick Fixes&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Java ecosystem fundamentals:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;JVM&lt;/li&gt;
&lt;li&gt;JRE&lt;/li&gt;
&lt;li&gt;JDK&lt;/li&gt;
&lt;li&gt;JCL&lt;/li&gt;
&lt;li&gt;JAR&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;HotSpot JVM&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Java compiler (&lt;code&gt;javac&lt;/code&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Package naming conventions&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Kotlin project structure&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Variables and basic Kotlin syntax&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Kotlin #Java #Programming #JetBrains #AndroidDevelopment #SpringBoot #LearnInPublic
&lt;/h1&gt;

</description>
      <category>java</category>
      <category>learning</category>
      <category>productivity</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
