# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [1.2.1] - 2023-02-21

## Fixed

  - Fix potential `NullPointerException` thrown in `FieldSet` clinit depending on the computed clinit order.

## [1.2.0] - 2023-01-05

## Added

  - Add `ProtobufKernel.initialize()` API to initialize the library when it is embedded in a Kernel and its APIs are exposed to Features.

## [1.1.1] - 2022-10-21

### Fixed

  - Fix potential `NullPointerException` thrown in `MapFieldLite` clinit depending on the computed clinit order.

## [1.1.0] - 2022-07-13

### Changed

  - Marked APIs with annotations for Null Analysis.
 
### Fixed

  - Fix `UninitializedMessageException` method `getMissingFields()` systematically throwing a `NullPointerException` when called in Lite runtime; now returns `null`.

## [1.0.1] - 2022-05-09

### Fixed

  - Fix UnsupportedOperationException in MapFieldLite clinit.

## [1.0.0] - 2020-11-06

### Added

  - Add the classes of the Google's protobuf3 java part to support java files compiled by protoc with lite plugin.
  - Update the classes to make it run with MicroEJ:
    - Remove the use of reflection (performances decreased compared to Google's protobuf but no compatibility issue).
    - Remove the use of sun.misc.Unsafe library (native calls, performances decreased compared to Google's protobuf but no compatibility issue).
    - Remove `ObjectStreamException` thrown by the library as `ObjectStream` are not implemented in MicroEJ.
  - Add a subset of Google's unit tests and update it for this library.

---  
_Markdown_  
_Copyright 2020-2023 MicroEJ Corp. All rights reserved._  
_This library is provided in source code for use, modification and test, subject to license terms._  
_Any modification of the source code will break MicroEJ Corp. warranties on the whole library._  