Skip to content

Releases: microsphere-projects/microsphere-java

v0.1.5

25 Aug 18:31
339f77d
Compare
Choose a tag to compare

What's Changed

Enhancement

Module microsphere-java-core

  • [JSON] Added a comprehensive escape method in JSONUtils to properly escape JSON strings, including control characters and special Unicode characters (\u2028, \u2029), and updated all relevant usages to use this method for safer JSON output. [1] [2] [3]
  • [JSON] Removed unused logger imports and related code from JSONUtils for simplification. [1] [2] [3]
  • [Collection] Improved the addAll method in CollectionUtils by renaming parameters for clarity and adding a new overload that supports adding all elements from an Iterable, not just arrays. [1] [2]
  • [Collection] Added a new ArrayStack class, a non-thread-safe stack implementation based on ArrayList, providing standard stack operations (push, pop, peek, empty, and search).
  • [Reflection] Added new static imports and constants to MethodUtils, including a new property name for banning methods via system properties, and improved documentation and usage examples for this feature. [1] [2] [3] [4]

Module microsphere-annotation-processor

  • [Metadata] Enhanced the description resolution in ConfigurationPropertyJSONElementVisitor to fall back to the JavaDoc comment if the annotation's description attribute is blank. [1] [2] [3]
  • [Metadata] Added MethodUtils to the test classpath for annotation processor tests. [1] [2]

Full Changelog: 0.1.4...0.1.5

v0.1.4

05 Aug 13:14
b3e128a
Compare
Choose a tag to compare

What's Changed

Enhancement

Module microsphere-java-core

  • [Metadata] Renamed ConfigurationPropertyJSONGenerator to ConfigurationPropertyGenerator
  • [Metadata] a new BeanMetadata class to encapsulate Java Bean metadata, and adding a configurable cache for BeanMetadata in BeanUtils.
  • [Metadata] Added a new BeanMetadata class to encapsulate Java Bean metadata, including property descriptors and bean class information, with utility methods for access and introspection. This provides a reusable and immutable representation of bean structure.
  • [Metadata] Renamed DEFAULT_BEAN_PROPERTIES_MAX_RESOLVED_LEVELS to DEFAULT_BEAN_PROPERTIES_MAX_RESOLVED_DEPTH for clarity and consistency in configuration property naming.
  • [Beans] Enhanced BeanUtils with a configurable cache for BeanMetadata instances, including new constants for cache size and property names, and a concurrent map for caching. This improves performance when repeatedly accessing bean metadata.

Module microsphere-annotation-processor

  • [JSON] Renamed all references of ConfigurationPropertyJSONGenerator to ConfigurationPropertyGenerator in ConfigurationPropertyAnnotationProcessor and ConfigurationPropertyJSONElementVisitor, including imports, field names, comments, and method calls.

Full Changelog: 0.1.3...0.1.4

v0.1.3

30 Jul 14:39
96abe7f
Compare
Choose a tag to compare

What's Changed

Enhancement

  • [JavaDoc] Enhanced the Javadoc with examples covering the core API or components
  • [Document] Added DeepWiki Badge

Module microsphere-java-core

  • [Annotation] Introduced a new Annotation - @Immutable and applied it on the nessessary targets
  • [Beans] Introduced a new Bean utilities class - BeanUtils
  • [Beans] Introduced a new Metadata class of configuration properties - ConfigurationProperty
  • [Metadata] Introduced some generator interfaces and classes - ConfigurationPropertyJSONGenerator, ConfigurationPropertyLoader, DefaultConfigurationPropertyJSONGenerator and ReflectiveConfigurationPropertyJSONGenerator

Dependencies

  • Bump junit-jupiter.version from 5.13.2 to 5.13.4

Module microsphere-annotation-processor

  • [JSON] Changed the JSON scheme generated by the annotation processor of ConfigurationProperty

Full Changelog: 0.1.2...0.1.3

v0.1.2

09 Jul 13:04
3be2c3d
Compare
Choose a tag to compare

What's Changed

Enhancement

  • [JavaDoc] Add the Javadoc with examples covering the core API or components

Module microsphere-java-core

  • [Language] Introduced new API - MutableInteger
  • [Function] Introduced new convenience methods in ThrowableSupplier, ThrowableFunction, and ThrowableConsumer
  • [Collection] Refactor the classes : DefaultEntry , EmptyDeque , ImmutableEntry , SingletonDeque , UnmodifiableDeque and UnmodifiableQueue to be top-level
  • [Collection] Introduced new API - DelegatingDeque , DelegatingQueue , ReversedDeque ,

Dependencies

  • Update the microsphere-build from 0.1.0 to 0.2.0
  • Bump junit-jupiter.version from 5.13.1 to 5.13.2

Full Changelog: 0.1.1...0.1.2

v0.1.1

16 Jun 13:22
a6bf28d
Compare
Choose a tag to compare

What's Changed

Enhancement

  • [Testing] Enhance testing coverage +11.05%

Module microsphere-java-core

  • Adding the annotations : @Nonnull an.d @Nullable.
  • Adding the Converter build-in classes.
  • Adding ThrowableBiConsumer and ThrowableBiFunction

Module microsphere-annotation-processor

  • Adding the SPI registration file for the Annotation processor.
  • Generating @ConfigurationProperty metadata as the JSON content within the artifact's resource.
  • Refactoring several utility classes (TypeUtils, MethodUtils, MemberUtils, etc.) to improve modularity and maintainability.
  • Updated tests in MethodHandleUtilsTest to cover the new failure handling behavior.

Dependencies

  • Removing com.google.code.findbugs:jsr305
  • Bump junit-jupiter.version from 5.12.2 to 5.13.1 #157

Full Changelog: 0.1.0...0.1.1

0.1.0

26 Apr 04:39
ec99d1e
Compare
Choose a tag to compare

What's Changed

Bugfixes

  • A lot of bugfixes

Enhancement

  • [Testing] Enhance testing coverage #82

Dependencies

  • Bump com.google.code.findbugs:jsr305 from 3.0.1 to 3.0.2 by @dependabot in #47
  • Bump org.antlr:antlr4-runtime from 4.13.1 to 4.13.2 by @dependabot in #46
  • Bump junit-jupiter.version from 5.8.2 to 5.12.1 by @dependabot in #118

Full Changelog: 0.0.9...0.1.0

0.0.9

24 Dec 09:48
6c97cf7
Compare
Choose a tag to compare

What's Changed

  • [Enhancement] Add an annotation indicating the component since version #38
  • [Refactor] Change the logging level from DEBUG to TRACE for microsphere-java-core #39
  • [Security] Bump ch.qos.logback:logback-classic from 1.2.12 to 1.2.13 in /microsphere-java-parent by @dependabot in #34

Full Changelog: 0.0.8...0.0.9

v0.0.8

13 Dec 06:42
cae6eac
Compare
Choose a tag to compare

What's Changed

  • [Enhancement] Optimize the MethodUtils#findDeclaredMethod implementation #25
  • [Feature] A new method to assert for String not empty and not blank #28
  • [Feature] Add MethodDefinition #27
  • [Enhancement] The class 'Version' supports serialization #30
  • [Enhancement] Refactor Deprecation #31
  • [Feature] Introduce a new definition class for Java Reflection Members #29

Full Changelog: 0.0.7...0.0.8

0.0.7

26 Nov 07:44
d339814
Compare
Choose a tag to compare

What's Changed

New API Introduced

New Annotation

  • @Experimental : The marker annotation indicates a feature is experimental, it could be changed or even be removed in the future.

New Interface

  • Wrapper : The Wrapper interface.
  • DelegatingWrapper : Delegating Wrapper.
  • WrapperProcessor : The Processor for Wrapper.

New Class

  • Deprecation : The info class for deprecation.
  • Assert : The utility class for Assertion.

API Changed

  • BeanProperty : Make the fields to be final

Full Changelog: 0.0.6...0.0.7

v0.0.6

11 Jul 06:54
0b8df9e
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 0.0.5...0.0.6