Skip to content

Releases: microsphere-projects/microsphere-java

v0.1.6

04 Oct 08:05
ec6cba8

Choose a tag to compare

What's Changed

Enhancement

Module microsphere-java-core

  • [Features] Added a new utility method toStringArray(Collection<String>) to StringUtils to convert collections to string arrays safely, with null and empty handling.

  • [Bugfix] Fixed substring calculation in URLUtils.findSubProtocolsString to correctly extract subprotocols.

  • [Reactor] Refactored the split methods in StringUtils to handle null and empty delimiters more robustly, improved signature annotations, and replaced the use of StringTokenizer with custom logic for better consistency and predictability. Also added comprehensive Javadoc examples.

  • [Reactor] Improved import statements and static import usage for clarity and consistency in several test files.

  • [Reactor] Updated annotation usage in TestAnnotation.java to use static imports for clarity and brevity.

  • [JavaDoc] Updated Javadoc in ClassPathUtils to fix formatting of example usage.

  • [Testing] Expanded and updated tests in StringUtilsTest to cover new and edge cases for the split and toStringArray methods, ensuring correctness and compatibility with Spring's implementation.

  • [Testing] Improved test logic in FileUtilsTest by refactoring exception handling into a separate method and ensuring proper executor shutdown and waiting, increasing reliability of concurrent tests.

  • [Testing] Made small test assertion changes and removed unnecessary checks in ClassDataRepositoryTest.

Project Policy and Build Updates

  • Added a contributor code of conduct to the project, outlining expected behavior and reporting mechanisms.

  • Updated the Maven build workflow to include Java 25 in the test matrix. (.github/workflows/maven-build.yml)

Full Changelog: 0.1.5...0.1.6

v0.1.5

25 Aug 18:31
339f77d

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

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

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

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

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

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

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

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

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