- JavaDoc

# Jep Java

- Introduction
- Basic Usage
- Variables
- Data types
- Operators
- Functions
- Custom Functions
- BigDecimal
- Modules
- Printing
- FAQ
- Migration
- Version History

# Advanced Features

- Manipulating Expressions
- Components
- Configurable Parser
- Serialization
- Threads
- Localization
- Grammar
- Other advanced features
- Use of Design Patterns in Jep

# Migration Guide

## Migrating from Jep 3.x to Jep 4.x

### Java Version

Jep 4.1 requires Java 21 or higher. Update your project's Java version accordingly.

### JUnit Migration

Tests have been migrated from JUnit 4 to JUnit Jupiter (JUnit 5/6). Update test dependencies:

    // JUnit Jupiter dependencies (Maven)
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-api</artifactId>
        <version>6.0.3</version>
        <scope>test</scope>
    </dependency>

Key changes in test code:

- Replace `org.junit.Test` with `org.junit.jupiter.api.Test`
- Replace `org.junit.Assert` with `org.junit.jupiter.api.Assertions`
- `@Before` becomes `@BeforeEach`
- `@After` becomes `@AfterEach`

### Package Changes

The core API remains largely unchanged. The main breaking changes in Jep 4.1:

- Source and target Java version updated to Java 21
- Various new methods and classes added for lambda support and function descriptions

## Migrating from Jep 2.x to Jep 3.x

Jep 3 introduced significant API changes including the component-based architecture. See the Jep 2 Version History for details.