Skip to content

ofek-malka/java-functional-selenium

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Java 8+ and Beyond - Modernized

License: Apache 2.0

Overview

This repository presents a modernized and expanded perspective on Java 8+ features, designed as a functional programming toolkit and an educational platform. It demonstrates contemporary approaches to core Java concepts, Stream API usage, and robust testing practices.

Originally based on the vinsguru/java-8-and-beyond project, this version significantly refactors examples to enhance clarity, functional purity, and adopts JUnit 5 for state-of-the-art testing.

Philosophy

  • Functional-first design: Emphasizes immutability, composability, and expressive APIs by leveraging Java 8+ functional programming features like Streams, Lambdas, and Optional.

  • Modern Testing: Fully embraces JUnit 5 (JUnit Jupiter) for comprehensive, parameterized, and more maintainable test suites, replacing older testing frameworks.

  • Educational focus: Intended to explore and teach advanced Java concepts, functional idioms, and modern testing methodologies.

  • Clarity over raw performance: While efficiency is considered, the design primarily favors code readability, functional purity, and illustrating best practices. Performance is not universally optimized for production workloads.

  • Minimal dependencies: Focuses on core Java capabilities to keep the learning platform clean and directly demonstrate language features.

  • Extensibility: Designed to evolve by incorporating additional modern Java patterns and testing examples over time.


Features

  • Comprehensive Stream API usage: Demonstrates powerful map, filter, reduce, flatMap, and other terminal/intermediate operations.

  • Lambda expressions and Method References: Practical examples illustrating concise and expressive code.

  • Robust input validation and error handling: Showcases effective exception management within functional pipelines.

  • Parameterized JUnit 5 tests: Extensive use of @ParameterizedTest for thorough and data-driven testing.

  • Flexible File and Classpath Resource Handling: Examples on accessing files relative to the current working directory, classpath resources, and user home directory.

  • Demonstrations of various core Java 8+ features and utilities.


Usage

  1. Clone the repository:

    git clone <your-repo-url>
  2. Build with Maven:

    mvn clean install
  3. Explore the examples and tests:

Dive into the src/main/java module to see the modernized code examples.

Check the src/test/java module for comprehensive JUnit 5 tests demonstrating usage and validation.


License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.


Contributing

Contributions are welcome! Please open issues or pull requests to suggest improvements or report bugs.


Contact

Ofek Malka
📧 om.ofekmalka@gmail.com


Enjoy exploring functional programming in Java! 🚀

About

Java 8+ Functional Programming Project with Streams, Lambdas, JUnit 5 & Selenium Examples

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published