Releases: microsphere-projects/microsphere-java
v0.1.7
What's Changed
Module microsphere-java-core
-
[Features] Extended the
Versionclass to support pre-release versions (e.g.,1.2.3-alpha), including new fields, parsing logic, comparison, and string representation. This brings the implementation closer to full semantic versioning support. Improved thecompareToand equality logic to handle pre-release versions and added a dedicatedcomparePreReleasehelper. Refined version operator logic (EQ, LT, LE, GT, GE) to be null-safe and leverage the enhanced comparison logic. -
[Testing] Added a new test class
VersionOperatorTestto verify the correctness of version operator logic, including edge cases with nulls and invalid symbols. -
[Documentation] Updated JavaDoc and example usages across several classes to use standard generic syntax (
<E>,<String>) instead of escaped HTML entities. -
[Documentation] Enhanced the
Versionclass documentation to clearly specify supported version patterns and reference semantic versioning. -
[Dependency] Bump org.springframework:spring-framework-bom from 6.2.11 to 6.2.12 #206
-
[Dependency] Bump ch.qos.logback:logback-classic from 1.2.13 to 1.5.20 #207
-
[Dependency] Bump junit-jupiter.version from 5.13.4 to 6.0.1 #208
Documentation
- Major rewrite and expansion of
README.md: Adds a comprehensive introduction, feature list, module descriptions, getting started instructions (including Maven usage), code examples, build instructions, contribution guidelines, and links to documentation resources. This greatly improves the onboarding experience for new users and contributors.
Full Changelog: 0.1.6...0.1.7
v0.1.6
What's Changed
Enhancement
Module microsphere-java-core
-
[Features] Added a new utility method
toStringArray(Collection<String>)toStringUtilsto convert collections to string arrays safely, with null and empty handling. -
[Bugfix] Fixed substring calculation in
URLUtils.findSubProtocolsStringto correctly extract subprotocols. -
[Reactor] Refactored the
splitmethods inStringUtilsto handlenulland empty delimiters more robustly, improved signature annotations, and replaced the use ofStringTokenizerwith 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.javato use static imports for clarity and brevity. -
[JavaDoc] Updated Javadoc in
ClassPathUtilsto fix formatting of example usage. -
[Testing] Expanded and updated tests in
StringUtilsTestto cover new and edge cases for thesplitandtoStringArraymethods, ensuring correctness and compatibility with Spring's implementation. -
[Testing] Improved test logic in
FileUtilsTestby 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
What's Changed
Enhancement
Module microsphere-java-core
- [JSON] Added a comprehensive
escapemethod inJSONUtilsto 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
JSONUtilsfor simplification. [1] [2] [3] - [Collection] Improved the
addAllmethod inCollectionUtilsby renaming parameters for clarity and adding a new overload that supports adding all elements from anIterable, not just arrays. [1] [2] - [Collection] Added a new
ArrayStackclass, a non-thread-safe stack implementation based onArrayList, providing standard stack operations (push,pop,peek,empty, andsearch). - [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
ConfigurationPropertyJSONElementVisitorto fall back to the JavaDoc comment if the annotation's description attribute is blank. [1] [2] [3] - [Metadata] Added
MethodUtilsto the test classpath for annotation processor tests. [1] [2]
Full Changelog: 0.1.4...0.1.5
v0.1.4
What's Changed
Enhancement
Module microsphere-java-core
- [Metadata] Renamed
ConfigurationPropertyJSONGeneratortoConfigurationPropertyGenerator - [Metadata] a new
BeanMetadataclass to encapsulate Java Bean metadata, and adding a configurable cache forBeanMetadatainBeanUtils. - [Metadata] Added a new
BeanMetadataclass 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_LEVELStoDEFAULT_BEAN_PROPERTIES_MAX_RESOLVED_DEPTHfor clarity and consistency in configuration property naming. - [Beans] Enhanced
BeanUtilswith a configurable cache forBeanMetadatainstances, 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
ConfigurationPropertyJSONGeneratortoConfigurationPropertyGeneratorinConfigurationPropertyAnnotationProcessorandConfigurationPropertyJSONElementVisitor, including imports, field names, comments, and method calls.
Full Changelog: 0.1.3...0.1.4
v0.1.3
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 -
@Immutableand 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,DefaultConfigurationPropertyJSONGeneratorandReflectiveConfigurationPropertyJSONGenerator
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
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, andThrowableConsumer - [Collection] Refactor the classes :
DefaultEntry,EmptyDeque,ImmutableEntry,SingletonDeque,UnmodifiableDequeandUnmodifiableQueueto be top-level - [Collection] Introduced new API -
DelegatingDeque,DelegatingQueue,ReversedDeque,
Dependencies
- Update the
microsphere-buildfrom 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
What's Changed
Enhancement
- [Testing] Enhance testing coverage +11.05%
Module microsphere-java-core
- Adding the annotations :
@Nonnullan.d@Nullable. - Adding the
Converterbuild-in classes. - Adding
ThrowableBiConsumerandThrowableBiFunction
Module microsphere-annotation-processor
- Adding the SPI registration file for the Annotation processor.
- Generating
@ConfigurationPropertymetadata 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
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
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
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