Skip to content

Releases: Dockbox-OSS/Hartshorn

Release 0.6.1

01 Aug 18:22
5cf1072
Compare
Choose a tag to compare

Re-configures staging to include root module, and simplifies relation between root and parent modules

Release 0.6.0

01 Aug 17:36
157d47d
Compare
Choose a tag to compare

What's Changed

Full Changelog: 0.5.0...0.6.0

Release 0.5.0

29 Nov 18:47
8fcb8ca
Compare
Choose a tag to compare

Foreword

Release 0.5.0 marks a full year of development, which has introduced many new stabilizing features to the core of the Hartshorn framework. Various modules have been deprecated due to technical debt from mistakes made in early development. These modules will be re-developed over time, once sufficient specifications have been defined, and additional improvements have been made to ensure the stability of Hartshorn Core.

What's Changed

Full Changelog: 0.4.13...0.5.0

Release 0.4.13

15 Nov 18:55
d0644e9
Compare
Choose a tag to compare

Dependency updates

  • SLF4J was reverted from version 1.7.36 to version 2.0.0
  • Scala version 2.0.0 was added
  • Groovy version 4.0.2 was added
  • Reflections version 0.10.2 was removed

All changes

Full Changelog: 22.4...22.5

Release 0.4.12

03 Sep 11:19
3d85613
Compare
Choose a tag to compare

Preview: Hartshorn Scripting Language (HSL)

See #771 for complete details.

When first implementing the condition matcher API for (among others) providers, an important question arose; how do we handle complex single-use requirements? Any condition requires two things: a RequiresCondition stereotype, and a Condition implementation. While this is useful for common conditions, such as RequiresClass and RequiresActivator, this is not preferable for specific conditions which may only appear once or twice throughout an application.

A solution which can be seen across other frameworks is the use of scripting- and/or expression language solutions. This allows the use of expressions/scripting inside a condition, which evaluates a specific custom expression. Which would allow for near endless flexibility for end-users.

HSL is a custom interpreted language which integrates with Hartshorn to allow us to offer dynamic conditions to end-users. The syntax is inspired by Java, with minor influences from JavaScript.

Dependency updates

  • SLF4J was updated from version 1.7.36 to version 2.0.0
  • Javassist was updated from version 3.28.0-GA to version 3.29.1-GA
  • JUnit Jupiter was updated from version 5.8.2 to version 5.9.0
  • Mockito was updated from version 4.5.1 to version 4.7.0
  • Test Containers was updated from version 1.17.2 to version 1.17.3
  • Hibernate was updated from version 6.0.2.Final to version 6.1.2.Final
  • MySQL Connector was updated from version 8.0.29 to version 8.0.30
  • PostgreSQL was updated from version 42.3.6 to version 42.5.0
  • MariaDB Client was updated from version 3.0.5 to version 3.0.7
  • Derby was updated from version 10.14.2.0 to version 10.16.1.1
  • Microsoft SQL Server was updated from version 10.2.1.jre17 to version 11.2.0.jre17
  • Jakarta Servlet API was updated from version 5.0.0 to version 6.0.0
  • Jetty was updated from version 11.0.9 to version 11.0.11
  • Caffeine was updated from version 3.1.0 to version 3.1.1

All changes

Full Changelog: 22.3.1...22.4

Release 0.4.11.1

11 Jun 10:22
bbfd0b4
Compare
Choose a tag to compare

Minor bugfix release 0.4.11.1

What's Changed

Full Changelog: 22.3...22.3.1

Release 0.4.11

30 May 15:09
c07260c
Compare
Choose a tag to compare

What's Changed

Full Changelog: 22.2...22.3

Release 0.4.10

16 Feb 18:54
26e76bf
Compare
Choose a tag to compare

What's Changed

  • #651 Add default org.slf4j.Logger binding to ApplicationLogger provided logger. See #652
  • #649 Don't attempt to access types from closed module(s). See #653
  • #639 Add permitProcessing to component stereotype. See #654
  • #640 Don't process non-explicit components. See #655
  • #658 Finalize deprecating for release 22.1. See #659
  • #657 Add test suite as separate module. See #660
  • #662 Resolve components being processed twice on partial prefixes. See #663
  • #661 Add field-support to @Provider. See #664
  • #667 Deprecate Tasks API. See #669
  • #670 Deprecate HartshornUtils#emptyMap. See #671
  • #672 Rename ambiguous ServiceMethodPostProcessor and ServiceAnnotatedMethodPostProcessor. See #673
  • #674 Update CLI pattern for readability. See #675
  • #666 Lazy-loading components and add required service activators to internal services. See #676
  • #668 Switch license to Apache 2.0. See #677
  • #680 Ensure ApplicationFactory modifiers are accessible during unit tests. See #682
  • #681 Clean up ordered processing in HartshornApplicationContext. See #683
  • #678 Implement Closeable in ApplicationContext. See #684
  • #679 Replace explicit Thread creation with managed service executor and refactor CommandListener. See #685
  • #687 Allow custom integer-based processor orders and internal separation of default application context. See #688
  • #689 Merge Hartshorn Config into Hartshorn Data. See #690
  • #691 Add support for wildcards with explicit upper bounds. See #692
  • #693 Add support for non-required factory validation. See #695
  • #694 Add activator filter to MVC initializer in HTTP Webserver initializer. See #696
  • #697 Service-based static @Provider binding and component binding migration. See #698
  • #700 Cleanup and deprecation notices for HartshornUtils and usages. See #701
  • #699 Component activation filtering and type presence checks. See #702
  • #703 (HEP) Updated dynamic object proxy API proposal. See #704
  • #665 Use proxy instance for non-abstract concrete methods. See #706
  • #707 Add missing implementation for StandardDelegatingApplicationContext #singleton(Key, S). See #709
  • #650 Automatic configuration filetype detection and #656 configuration fallback sources. See #710
  • #508 Remove packaged examples. See #711

Full Changelog: 22.1...22.2

Release 0.4.9

10 Jan 18:59
81dafae
Compare
Choose a tag to compare

What's Changed

  • #496 Add @RequestParam rule support to read query parameters from HttpServletRequest when populating servlet handle arguments. See #499
  • #497 Include default values when looking up annotation attribute hierarchy. See #498
  • #494 Resolve asynchronous access to thread-locked Scanner object in CommandCLI. See #495
  • #500 Remove FileManager and update fileroot usages. See #501
  • #516 Add onExit state observable. See #517
  • #509 Hartshorn Web MVC API and default FreeMarker implementation. See #513
  • #512 Allow serving static content through HttpWebServer. See #515
  • #514 Remove redundant inspection suppressions. See #518
  • #507 Final Key framework support removal. See #511
  • #519 Return persisted entity when updating or saving through JpaRepository. See #523
  • #520 Validate PersistenceConnection before opening session in HibernateJpaRepository. See #524
  • #521 Correctly pass exceptions in delegated methods. See #526
  • #531 Add #equals to AnnotatedElementContext to compare underlying reflected element directly for all contexts. See #533
  • #532 Include inherited protected methods in TypeContext#methods, keep #declaredMethods for type-declared methods. See #534
  • #535 Use annotation type instead of instance class for annotation cache. See #536
  • #529 QoL changes to TypeContext and associated contexts. See #530
  • #538 Remove static cache in component locator in favor of global state. See #544
  • #541 Remove duplicate activator check for processed components. See #543
  • #540 Resolve duplicate field injection when field is annotated with both @Inject and @Enable. See #547
  • #539 Migrate Log4J usage to Logback. See #545
  • #537 Use correct activator for HttpWebServerInitializer and specify presence of MVC activator for MVC servlets. See #546
  • #522 Correctly pass exceptions when handling servlets. See #525
  • #528 Change default flush mode to always be active for @Query methods. See #549
  • #527 Add support for Hibernate proxies. See #550
  • #551 Resolve non-blocking command CLI in async mode. See #552
  • #542 Defer instance proxies for non-components and resolve lost exceptions through type provisions. See #548
  • #570 Configuration based remotes for JpaRepository instances. See #571
  • #572 Microsoft SQL Server remote configuration for Data API. See #573
  • #574 Add type-erasure based 'unchecked' exception rethrowing. See #575
  • #576 Remove Except in favor of application-specific ExceptionHandler. See #578
  • #577 Remove Bindings utility class in favor of direct implementations. See #579
  • #580 Annotation support for test suite. See #581
  • #582 Component pre- and post processors to replace ComponentProcessor and ComponentModifier. See #583
  • #586 Replace processor storage with concurrent CustomMultiMap in HartshornApplicationContext. See #589
  • #588 Remove duplicated prefixes argument. See #590
  • #592 Allow reflecting on TypeContexts and add isTypeContext rule. See #593
  • #594 Resolve invocation of default methods in service proxies. See #595
  • #597 Add validated static invokers to MethodContexts. See #598
  • #596 Allow modification of ApplicationFactory during test initialization. See #600
  • #601 Allow modifying method invoker and access level. See #602
  • #599 Validate that components are registered when requested. See #603
  • #605 Add support for inline default values and collection specifications to @Value based configuration postprocessor. See #606
  • #607 Resolve direct use of Jackson data formats. See #608
  • #609 Resolve duplicate binding of overly specific packages when broader package is bound. See #610
  • #611 Filter synthetic bridge methods when looking up methods in TypeContexts. See #612
  • #613 Unify Modifier, LogLevelModifier, MetaProviderModifier, and DefaultModifiers. See #614
  • #615 Resolve StackOverflowError on circular dependencies and add support for private invokers. See #616
  • #617 Add component-level proxy permission and global validated proxy processor. See #618
  • #619 Add support for setter/method injection. See #620
  • #553 QoL issues by @pumbas600 in #554
  • #621 Do not overwrite redefined annotations in TypeContext annotation validation. See #626
  • #627 Resolve factory bindings not respecting correct binding priorities. See #629
  • #628 Expose declaring parent through executable element context. See #630
  • #625 Allow obtaining annotated annotations on a given element. See #631
  • #622 Disable automatic KeyGen activation. See #632
  • #624 Provide binding Key instead of TypeContext to component processors. See #633
  • RC Dependency check. See #634
  • #635 Resolve #equals failing on native proxy objects. See #637
  • #636 Recursively look for parameterized types in TypeContext#contextsFromParameterizedType. See #638
  • #623 Phased proxy method callbacks. See #645
  • #644 Restructure application factories and permit custom prefix context. See #646
  • #643 Transform @Binds into utility component stereotype. See #647
  • #584 Improve documentation on source classes. See #604

Full Changelog: 21.9...22.1

Release 0.4.8

11 Nov 17:54
a064aa2
Compare
Choose a tag to compare

Release revision 0.4.8

Changelog:

  • Merge strictly bound core modules #445
  • Generate module.pom artifacts instead of module-pom.xml #446
  • Remove pre-packaged JavaDocs #447
  • Subject permission API deprecation #448
  • Fix minor issues #454
  • Resolve usage of deprecated ObjectMapper configuration #455
  • Rename ambiguous types #456
  • Proxy-based implementation delegator for JpaRepository-based services #459
  • Add scanPackages to @ServiceActivator #460
  • Native QL and JPQL query integration #461
  • Restructure Language definitions into separate contract #462
  • Introduce delegate accessors with associated service modifiers, and allow low-level use of ProxyHandler #464
  • Translation bundles and i18n API redesign #465
  • Include @Named when constructing hierarchy Keys inside HartshornApplicationContext #469
  • Resolve incorrect application/json content-type, will now resolve based on mapping format or write as text/plain #470
  • Common parameter loader for shared and extensible parameter processing logic #474
  • Deprecate Attribute and AttributeHolder for removal #475
  • Implement service-based factory type provision #476
  • Finalize Attribute and AttributeHolder deprecation #478
  • JPA Pagination support #479
  • Remove duplicate command method presence validation #482
  • Resolve invalid log level WARN at CommandDefinitionContextImpl #483
  • Add isArray and elementType methods to TypeContext #485
  • Suppress continuous quality JAVA-W0243 on ternary operators #487
  • Application factory to replace bootstrapping #488
  • Automatic activation of component- processors and modifiers #491
  • Binding priority overrides for @Binds and @Provider #492