<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Maven on AI VOID</title><link>https://ai-blog.noorshomelab.dev/tags/maven/</link><description>Recent content in Maven on AI VOID</description><generator>Hugo</generator><language>en</language><lastBuildDate>Thu, 04 Dec 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://ai-blog.noorshomelab.dev/tags/maven/index.xml" rel="self" type="application/rss+xml"/><item><title>Chapter 1: Setting Up Your Java 25 Development Environment</title><link>https://ai-blog.noorshomelab.dev/java-mini-projects/ch01-java-25-environment/</link><pubDate>Thu, 04 Dec 2025 00:00:00 +0000</pubDate><guid>https://ai-blog.noorshomelab.dev/java-mini-projects/ch01-java-25-environment/</guid><description>&lt;h2 id="chapter-1-setting-up-your-java-25-development-environment"&gt;Chapter 1: Setting Up Your Java 25 Development Environment&lt;/h2&gt;
&lt;p&gt;Welcome to the first chapter of our comprehensive Java development journey! In this chapter, we will lay the essential groundwork for all subsequent projects by setting up a robust, production-ready Java 25 development environment. This foundational step is crucial as it ensures you have all the necessary tools and configurations in place to write, build, test, and deploy modern Java applications efficiently and effectively.&lt;/p&gt;</description></item><item><title>Chapter 2: Mastering Maven for Java Project Management</title><link>https://ai-blog.noorshomelab.dev/java-mini-projects/ch02-maven-project-management/</link><pubDate>Thu, 04 Dec 2025 00:00:00 +0000</pubDate><guid>https://ai-blog.noorshomelab.dev/java-mini-projects/ch02-maven-project-management/</guid><description>&lt;h2 id="chapter-2-mastering-maven-for-java-project-management"&gt;Chapter 2: Mastering Maven for Java Project Management&lt;/h2&gt;
&lt;p&gt;Welcome to Chapter 2 of our journey! In the previous chapter, we laid the groundwork by ensuring our development environment was properly set up with the latest Java Development Kit (JDK). With our tools in place, it&amp;rsquo;s time to elevate our project management capabilities.&lt;/p&gt;
&lt;p&gt;This chapter will guide you through setting up a robust, production-ready Java project using Apache Maven. Maven is an indispensable build automation tool used predominantly for Java projects. It standardizes project structures, manages dependencies, and automates the build process, from compilation and testing to packaging and deployment. By the end of this chapter, you will have a fully configured Maven project, complete with proper directory structure, dependency management, and a foundational setup for logging and testing, ready for us to start building our &amp;ldquo;Simple Calculator&amp;rdquo; application in the next chapter.&lt;/p&gt;</description></item><item><title>Advanced Test Framework Design &amp;amp; Parameterization</title><link>https://ai-blog.noorshomelab.dev/java-automation-testing/advanced_test_framework_design__parameterization/</link><pubDate>Sun, 14 Sep 2025 00:20:28 +0000</pubDate><guid>https://ai-blog.noorshomelab.dev/java-automation-testing/advanced_test_framework_design__parameterization/</guid><description>&lt;h1 id="advanced-test-framework-design--parameterization"&gt;Advanced Test Framework Design &amp;amp; Parameterization&lt;/h1&gt;
&lt;p&gt;&lt;em&gt;(Java, JUnit 5, Selenium, Appium, RestAssured, Maven/Gradle, CI/CD)&lt;/em&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Goal&lt;/strong&gt; – Build a robust, reusable, and maintainable test framework that can handle large‑scale test suites, data‑driven scenarios, and automated execution in a real‑world environment.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Audience&lt;/strong&gt; – Beginners who know basic Java, intermediate developers who have written simple tests, and advanced engineers who want to optimize, extend, and integrate frameworks at scale.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="table-of-contents"&gt;Table of Contents&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Section&lt;/th&gt;
&lt;th&gt;Topics&lt;/th&gt;
&lt;th&gt;Key Take‑aways&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1. Fundamentals&lt;/td&gt;
&lt;td&gt;Test data strategies, Parameterized tests, Listeners, Data providers, Suite execution&lt;/td&gt;
&lt;td&gt;Understand core concepts, use simple examples&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2. Implementation&lt;/td&gt;
&lt;td&gt;Practical code, project structure, integrations&lt;/td&gt;
&lt;td&gt;Hands‑on code snippets&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3. Advanced Topics&lt;/td&gt;
&lt;td&gt;Optimizations, parallelism, JUnit 5 extensions, AI‑driven data&lt;/td&gt;
&lt;td&gt;Expert techniques&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4. Real‑World Applications&lt;/td&gt;
&lt;td&gt;E‑commerce, Banking, Mobile, API, Performance&lt;/td&gt;
&lt;td&gt;Industry use‑cases&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5. Exercises&lt;/td&gt;
&lt;td&gt;Projects, challenges&lt;/td&gt;
&lt;td&gt;Skill‑building tasks&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="1-fundamentals"&gt;1. Fundamentals&lt;/h2&gt;
&lt;h3 id="11-design-test-data-strategies"&gt;1.1 Design Test Data Strategies&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Strategy&lt;/th&gt;
&lt;th&gt;When to Use&lt;/th&gt;
&lt;th&gt;Pros&lt;/th&gt;
&lt;th&gt;Cons&lt;/th&gt;
&lt;th&gt;Example&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Inline literals&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Small, static data&lt;/td&gt;
&lt;td&gt;Fast, no external files&lt;/td&gt;
&lt;td&gt;Hard to change, not reusable&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Property files&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Configuration, environment variables&lt;/td&gt;
&lt;td&gt;Easy to read, Java &lt;code&gt;Properties&lt;/code&gt; API&lt;/td&gt;
&lt;td&gt;No structure for complex data&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;JSON / YAML&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Hierarchical data, API payloads&lt;/td&gt;
&lt;td&gt;Human‑readable, supports nested objects&lt;/td&gt;
&lt;td&gt;Requires parsing library&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;CSV / TSV&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Tabular data, test matrix&lt;/td&gt;
&lt;td&gt;Simple, Excel‑friendly&lt;/td&gt;
&lt;td&gt;Limited data types&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;XML&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Legacy systems, configuration&lt;/td&gt;
&lt;td&gt;Standard, schema validation&lt;/td&gt;
&lt;td&gt;Verbose&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Database&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Large data sets, persistence&lt;/td&gt;
&lt;td&gt;Centralized, can be seeded&lt;/td&gt;
&lt;td&gt;Requires DB access, slower&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;In‑memory factories&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Dynamic data, random values&lt;/td&gt;
&lt;td&gt;Fast, test isolation&lt;/td&gt;
&lt;td&gt;Hard to reproduce failures&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Best practice:&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Chapter 6: Word Counter: String Manipulation &amp;amp; Collections</title><link>https://ai-blog.noorshomelab.dev/java-mini-projects/ch06-word-counter/</link><pubDate>Thu, 04 Dec 2025 00:00:00 +0000</pubDate><guid>https://ai-blog.noorshomelab.dev/java-mini-projects/ch06-word-counter/</guid><description>&lt;h2 id="chapter-6-word-counter-string-manipulation--collections"&gt;Chapter 6: Word Counter: String Manipulation &amp;amp; Collections&lt;/h2&gt;
&lt;p&gt;Welcome to Chapter 6 of our Java project series! In this chapter, we&amp;rsquo;re diving into the fascinating world of text processing by building a &amp;ldquo;Word Counter&amp;rdquo; application. This project will serve as an excellent exercise in mastering Java&amp;rsquo;s string manipulation capabilities and making effective use of its powerful Collections Framework, particularly &lt;code&gt;Maps&lt;/code&gt; and &lt;code&gt;Lists&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The ability to process and analyze text is a fundamental skill in many software development domains, from data science to natural language processing. By building a word counter, you&amp;rsquo;ll gain practical experience in tokenizing text, normalizing data, and efficiently storing and retrieving frequency counts. We&amp;rsquo;ll focus on creating clean, robust, and production-ready code that handles various input scenarios and adheres to modern Java best practices.&lt;/p&gt;</description></item><item><title>Continuous Integration &amp;amp; Deployment Automation</title><link>https://ai-blog.noorshomelab.dev/java-automation-testing/continuous_integration__deployment_automation/</link><pubDate>Sun, 14 Sep 2025 00:32:18 +0000</pubDate><guid>https://ai-blog.noorshomelab.dev/java-automation-testing/continuous_integration__deployment_automation/</guid><description>&lt;h1 id="continuous-integration--deployment-automation"&gt;Continuous Integration &amp;amp; Deployment Automation&lt;/h1&gt;
&lt;h2 id="java-automation-testing--from-beginner-to-advanced"&gt;Java Automation Testing – From Beginner to Advanced&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Goal:&lt;/strong&gt;&lt;br&gt;
Build a fully‑automated CI/CD pipeline that compiles, tests, deploys, runs smoke tests, and generates quality reports for a Java web application.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Audience:&lt;/strong&gt;&lt;br&gt;
1️⃣ &lt;strong&gt;Beginners&lt;/strong&gt; – want to understand the core concepts and get a simple pipeline running.&lt;br&gt;
2️⃣ &lt;strong&gt;Intermediate&lt;/strong&gt; – need a working implementation that can be extended.&lt;br&gt;
3️⃣ &lt;strong&gt;Advanced&lt;/strong&gt; – want optimisations, best‑practice patterns, and real‑world insights.&lt;/p&gt;</description></item><item><title>Chapter 15: Enterprise Java Evolution: From Javax to Jakarta EE</title><link>https://ai-blog.noorshomelab.dev/java-mastery-2025/chapter-15-jakarta-ee-evolution/</link><pubDate>Thu, 04 Dec 2025 00:00:00 +0000</pubDate><guid>https://ai-blog.noorshomelab.dev/java-mastery-2025/chapter-15-jakarta-ee-evolution/</guid><description>&lt;h2 id="chapter-15-enterprise-java-evolution-from-javax-to-jakarta-ee"&gt;Chapter 15: Enterprise Java Evolution: From Javax to Jakarta EE&lt;/h2&gt;
&lt;p&gt;Welcome to Chapter 15, future Java enterprise developers! So far, we&amp;rsquo;ve focused on &amp;ldquo;Standard Edition&amp;rdquo; Java (Java SE), building foundational skills that are crucial for any Java programmer. But what happens when you need to build applications that serve thousands or millions of users, handle complex transactions, integrate with various systems, and run reliably 24/7? That&amp;rsquo;s where &lt;strong&gt;Enterprise Java&lt;/strong&gt; comes in!&lt;/p&gt;</description></item><item><title>Chapter 18: Setting Up CI/CD with GitHub Actions</title><link>https://ai-blog.noorshomelab.dev/java-mini-projects/ch18-github-actions-cicd/</link><pubDate>Thu, 04 Dec 2025 00:00:00 +0000</pubDate><guid>https://ai-blog.noorshomelab.dev/java-mini-projects/ch18-github-actions-cicd/</guid><description>&lt;h2 id="chapter-18-setting-up-cicd-with-github-actions"&gt;Chapter 18: Setting Up CI/CD with GitHub Actions&lt;/h2&gt;
&lt;p&gt;Welcome to Chapter 18 of our comprehensive Java project guide! In this chapter, we&amp;rsquo;ll take a significant leap towards professional software development by implementing Continuous Integration/Continuous Deployment (CI/CD) for our &amp;ldquo;Basic To-Do List Application&amp;rdquo; using GitHub Actions. CI/CD is a set of practices that enable development teams to deliver code changes more frequently and reliably by automating the build, test, and deployment processes.&lt;/p&gt;</description></item></channel></rss>