joshlong/the-spring-rest-stack 354
the deck to my talk on building more powerful REST APIs
neo4j/sdn-rx 63
Nextgen Spring Data module for Neo4j supporting (not only) reactive data access and immutable support
Sample project to show how Hades eases JPA repository implementation.
MongoSV Conference Material
michael-simons/ws-20170627-cluj 2
Workshop at Accesa
Demo web app from QCon London 2014
odrotbohm/hibernate-criteria-statistics 2
Sample projects on how to enable Criteria statistics in Hibernate with AspectJ until HHH-3452 gets fixed
Alfred Extension to create iOS Reminders
push eventst-tu-dresden/salespoint
commit sha 9c005a68606f3b3c8e4ffc65f519650b83e4e58d
#252 - Reduce visibility of StockShort event constructor.
push time in a day
issue closedst-tu-dresden/salespoint
Fire event on inventory stock change
This is useful to implement automatic triggers of re-stock, e.g. by creating a supplier order or the like.
closed time in a day
odrotbohmpush eventst-tu-dresden/salespoint
commit sha 7241e67a64272dfea82bfb688cf45a26c598b0bb
#252 - More events in Inventory. Decreasing the quantity of an InventoryItem now results in an internal QuantityReduced event being published. That is listened to by InternalInventoryListeners and verified against the threshold quanity defined via salespoint.inventory.restock-threshold (defaulting to Quantity.NONE). In case the current quantity is below that threshold a publicly consumable StockShort event is published that can be used to trigger further logic. Slightly tweaked the arrangement in Inventory event listening. The event types are now member classes of InventoryEvents. Listeners are grouped into InventoryListeners and the actual business logic executed for the OrderCompleted and OrderCanceled events has been moved into an internal InventoryManagement. Tweaked the Moduliths setup to always include the quantity module so that the Spring Boot type binding can be used in InventoryProperties. Had to let QuantityFormatter implement Converter as well and be annotated with @ConfigurationPropertiesBinding to be picked up. AbstractEntity now exposes ….hasId(…) for easier comparison.
commit sha 681180b375bdff8907e5a84ccd612e452bacb10b
#252 - Polishing. Missing license headers or updates to those. Trailing whitespace.
push time in a day
push eventodrotbohm/moduliths
commit sha 8c92c7adaf15ea0a4d541ca6086a83852f8cca1e
#126 - Allow more sophisticated matching on TypedPublishedEvents.
push time in a day
issue closedodrotbohm/moduliths
Add TypedPublishedEvents.matchingMapped(…)
As the constraints to select events for verification are usually focused on the event's payload it would be nice if there was API to easily map to the content and register a Predicate on that to filter the owning event.
class SomeEvent {
Payload payload;
}
// Before
events.ofType(SomeEvent.class).matching(it -> it.getPayload().equals(reference));
// After
events.ofType(SomeEvent.class).matchingMapped(SomeEvent::getPayload, reference::equals);
closed time in a day
odrotbohmpush eventodrotbohm/moduliths
commit sha 0ce8cb491e601e60143c729dc7867659f1a7259f
#126 - Allow more sophisticated matching on TypedPublishedEvents.
push time in a day
PR closed spring-projects/spring-data-commons
When accessed concurrently from multiple threads, Lazy.getNullable() could return null unexpectedly.
- [x] You have read the Spring Data contribution guidelines.
- [x] There is a ticket in the bug tracker for the project in our JIRA.
- [x] You use the code formatters provided here and have them applied to your changes. Don’t submit any formatting related changes.
- [ ] You submit test cases (unit or integration tests) that back your changes.
- [x] You added yourself as author in the headers of the classes you touched. Amend the date range in the Apache license header if needed. For new types, add the license header (copy from another file and set the current year only).
No test case provided in code as due to the nature of concurrency issues it is problematic to quickly test the issue. There's a test setup provided in the jira ticket.
pr closed time in a day
push eventspring-projects/spring-data-commons
commit sha 3a3f0befc90f04d9a2533b98a2c0161e06281711
DATACMNS-1806 - Prevent returning null from Lazy due to concurrency problem. When accessed concurrently from multiple threads, Lazy.getNullable() could return null unexpectedly. Original pull request: #468.
push time in a day
push eventspring-projects/spring-data-commons
commit sha 66b9eab2c02a6720116cf23a0f7f7babf164c825
DATACMNS-1806 - Prevent returning null from Lazy due to concurrency problem. When accessed concurrently from multiple threads, Lazy.getNullable() could return null unexpectedly. Original pull request: #468.
push time in a day
push eventspring-projects/spring-data-commons
commit sha a442b9002181fa6461490d105a28dd187dd3c38d
DATACMNS-1806 - Prevent returning null from Lazy due to concurrency problem. When accessed concurrently from multiple threads, Lazy.getNullable() could return null unexpectedly. Original pull request: #468.
commit sha e3e23828ef7abd3b339dab0f25c42b2620aaa797
DATACMNS-1806 - Polishing. Styilistic tweaks (we only qualify writing field access with this). Original pull request: #468.
push time in a day
push eventspring-projects/spring-data-commons
commit sha af9dd6110d70b16d2e8eea8002a64e61401d524e
DATACMNS-1726 - Polishing of nullability after Lombok removal. Reviewed visibility modifiers manually introduced constructors previously provided by Lombok. Also some nullability constraints have been accidentally changed by that.
push time in a day
issue commentjunit-team/junit5
Support named sources for DynamicTest.stream(…)
Lovely, looking forward!
comment created time in a day
issue openedodrotbohm/moduliths
Add TypedPublishedEvents.matchingMapped(…)
As the constraints to select events for verification are usually focused on the event's payload it would be nice if there was API to easily map to the content and register a Predicate on that to filter the owning event.
class SomeEvent {
Payload payload;
}
// Before
events.ofType(SomeEvent.class).matching(it -> it.getPayload().equals(reference));
// After
events.ofType(SomeEvent.class).matchingMapped(SomeEvent::getPayload, reference::equals);
created time in a day
PR closed spring-projects/spring-data-rest
We replaced the component scan in RespositoryRestMvcConfiguration with dedicated bean methods. This allows us to be more explicit in resolving required components, which is required for better support of GraalVM native image.
Relates to: spring-projects-experimental/spring-graalvm-native#192
pr closed time in a day
push eventspring-projects/spring-data-rest
commit sha 8ff438678dcc978e7a84f210ae7484cba6d8d16e
DATAREST-1567 - Replace component scan with explicit bean methods. We replaced the component scan in RespositoryRestMvcConfiguration with dedicated bean methods. This allows us to be more explicit in resolving required components, which is required for better support of GraalVM native image. Original pull request: #382.
commit sha 25cfb6ecb94d1256d81fbe7a3618bde531f48913
DATAREST-1567 - Polishing. Tweaked test setups to work without the explicit component scanning. Original pull request: #382.
push time in a day
push eventspring-projects/spring-data-rest
commit sha 3e84f19949733d7651369109096c6f1259719487
DATAREST-1567 - Replace component scan with explicit bean methods. We replaced the component scan in RespositoryRestMvcConfiguration with dedicated bean methods. This allows us to be more explicit in resolving required components, which is required for better support of GraalVM native image. Original pull request: #382.
commit sha 88ee3dd90ebdd4dffbee98be9ae7632954836c6d
DATAREST-1567 - Polishing. Tweaked test setups to work without the explicit component scanning. Original pull request: #382.
push time in a day
issue commentrzwitserloot/lombok
[BUG] Maven delombok plugin fails on JDK 15
Great one, @Rawi01. Thanks! 🙇
comment created time in 2 days
issue closedst-tu-dresden/salespoint
Rename …Manager interfaces to …Management
Avoids the impression that the concept is an actor on the system. Also hints at the interface being the primary abstraction to initially look at.
closed time in 2 days
odrotbohmissue commentst-tu-dresden/salespoint
Rename …Manager interfaces to …Management
Duplicates #328.
comment created time in 2 days
issue closedst-tu-dresden/salespoint
Rename …Manager classes to …Management
closed time in 2 days
odrotbohmpush eventst-tu-dresden/salespoint
commit sha ff9d07256f66790b0e3f61892124edd6b653fa8f
#328 - Renamed …Manager types to …Management. Removed deprecations and quite a few cleanups in test cases.
push time in 2 days
issue closedodrotbohm/moduliths
Allow creation of PublishedEvents from Spring Data aggregate
Spring Data provides means to register events for publication. It would be nice to be able to easily create a PublishedEvents instance from an aggregate instance for use in unit tests.
closed time in 2 days
odrotbohmissue closedst-tu-dresden/salespoint
Improve testing of events published by Order
closed time in 2 days
odrotbohmpush eventst-tu-dresden/salespoint
commit sha 6755f773c5a302183f7d939815830622de4ef65c
#327 - Improve on tests of events produced for Order. Added unit test to verify events being registered for order cancellation. Updated integration tests for order to also verify events being published. Upgrade to Moduliths 1.1 snapshots for test utilities.
push time in 2 days
issue openedst-tu-dresden/salespoint
Improve testing of events published by Order
created time in 2 days
push eventst-tu-dresden/salespoint
commit sha 4b11cdd15f2ce2f42147ad4643e0ae37b2c250df
#318 - Switch to GitHub Actions status badge.
push time in 2 days
push eventodrotbohm/moduliths
commit sha 081d392e9572505e5f154187da0281cc18066374
#125 - Introduce test helper to create a PublishedEvents from Spring Data aggregates.
push time in 2 days
issue openedodrotbohm/moduliths
Allow creation of PublishedEvents from Spring Data aggregate
Spring Data provides means to register events for publication. It would be nice to be able to easily create a PublishedEvents instance from an aggregate instance for use in unit tests.
created time in 2 days
push eventodrotbohm/moduliths
commit sha 213a9fafdb4fc37e12c670c00f9408fb051dc943
#124 - Allow programatic usage of PublishedEvents. Introduced PublishedEvents.of(…) to manually create instances of it for use in unit tests.
push time in 2 days
issue openedodrotbohm/moduliths
Allow programatic creation of PublishedEvents
created time in 2 days
issue closedst-tu-dresden/salespoint
Refactor OrderManager.cancel(…) to take a reason
closed time in 2 days
odrotbohmissue closedst-tu-dresden/salespoint
Replace Moduliths' @Event with jDDD's DomainEvent abstraction
closed time in 2 days
odrotbohmpush eventst-tu-dresden/salespoint
commit sha 3d4e290edcdbf75b26106238504f28ed0460ce21
#325 - Refactored OrderManager.cancel(…) to take a reason.
commit sha 5411e8a1072bafed6fcfb53312f71e8aefec943f
#326 - Move from Moduliths' @Event to jDDD's DomainEvent.
push time in 2 days
issue openedst-tu-dresden/salespoint
Replace Moduliths' @Event with jDDD's DomainEvent abstraction
created time in 2 days
issue openedst-tu-dresden/salespoint
Refactor OrderManager.cancel(…) to take a reason
created time in 2 days
issue commentst-tu-dresden/salespoint
Tweak CI build to continuously deploy snapshots and docs
We now build and deploy artifacts on every commit and deploy the documentation every night.
comment created time in 2 days
issue closedst-tu-dresden/salespoint
Tweak CI build to continuously deploy snapshots and docs
closed time in 2 days
odrotbohmissue closedst-tu-dresden/salespoint
Upgrade to Maven Asciidoctor Plugin 2.1
closed time in 2 days
odrotbohmpush eventst-tu-dresden/salespoint
commit sha cbecb726da26b081badfab48c6f8a33d33ef8e8a
#319 - Skip tests on deployment as they have just run before.
push time in 2 days
push eventst-tu-dresden/salespoint
commit sha f8ff5c57ae86900de6ac60e686e77ad8756cdfb4
#319 - Fix typo and cron expression in workflow.
push time in 2 days
push eventst-tu-dresden/salespoint
commit sha f34a6f24ec693f30d37e9339c59150e36170b128
#319 - Fix typo in workflow.
push time in 2 days
push eventst-tu-dresden/salespoint
commit sha 0a20afb365e05fabd048fbaefbb313d6d7654431
#319 - Revamped build to allow different CI jobs. Restructured the build to now contain a dedicated 'docs' profile that runs just enough tests to be able to render the Asciidoctor documentation. The default test run will exclude the documentation creation tests. This speeds up the standard build as it doesn't have to run that extra test and create the reference docs each and every time. There are now two GitHub workflows: - build.yaml - to package the artifact and deploy it into the Salespoint repository (on every commit to main) - docs.yaml - triggers doc specific build and deploys the docs and the website to the server (nightly) Tweaked the site upload to avoid attempting to chmod the uploaded files as it tries to do that on the root folder and the upload process hangs on that attempt.
commit sha 17857578a20740f70f2e95d5558151c46ff2feae
#323 - Update readme to reflect version change back to 7.3.
push time in 2 days
push eventst-tu-dresden/salespoint
commit sha 257830d5d66b028302c8491b5d00a807e77f8765
#319 - Make sure documentation is packaged and deployed.
push time in 2 days
push eventst-tu-dresden/salespoint
commit sha 53b55fbb00538179af11190fe7749fdb6d7c5c0a
#319 - Make sure documentation is packaged and deployed.
push time in 2 days
push eventst-tu-dresden/salespoint
commit sha b94dc25535092e7b8f01514b8ca15ba8db2c3d2b
#319 - Make sure documentation is packaged and deployed.
push time in 2 days
push eventst-tu-dresden/salespoint
commit sha 53a3eea4142d2832adc44167626e1f2d91961631
#323 - Switch version back to 7.3. Also remove redeclaration of Maven Compiler Plugin as the default setup does exactly the same.
commit sha a03abda065cd63f2d36302b39467f4479bebd45d
#324 - Upgrade to latest Asciidoctor.
push time in 2 days
push eventst-tu-dresden/salespoint
commit sha cb2bcf7529f58957477d7e9fe5146964a07a2abd
#319 - Let CI build deploy snapshots.
push time in 2 days
push eventst-tu-dresden/salespoint
commit sha 688f4096a7fddd2f1d6a34c2596a74ad2aed2a9f
#319 - Let CI build deploy snapshots.
push time in 2 days
push eventst-tu-dresden/salespoint
commit sha ad0c91dbbb6ca8b9f54d7ac2ad84618ddd2b6cc0
#319 - Let CI build deploy snapshots.
push time in 2 days
push eventst-tu-dresden/salespoint
commit sha 606519d4e51f00d7a9c4684b60ecfc812b07d611
#319 - Let CI build deploy snapshots.
push time in 2 days
push eventst-tu-dresden/salespoint
commit sha 514f460d38a94e083487596281d280e698c8f3c5
#319 - Let CI build deploy snapshots.
push time in 2 days
push eventst-tu-dresden/salespoint
commit sha 8c7b92f185b505400a2772bcdf96542f23bf6da6
#319 - Let CI build deploy snapshots.
push time in 2 days
push eventst-tu-dresden/salespoint
commit sha 222b6a71080fd56b01eef89e82639c7abd972db3
#319 - Let CI build deploy snapshots.
push time in 2 days
push eventst-tu-dresden/salespoint
commit sha 95456c6c83a9cce3a29e7eb61741aa7b97c84210
#319 - Let CI build deploy snapshots.
push time in 2 days
push eventst-tu-dresden/salespoint
commit sha 9999919df9d140f23410ae66a36cde3c43a22da6
#319 - Let CI build deploy snapshots.
push time in 2 days
push eventst-tu-dresden/salespoint
commit sha d1494078f1d0b37cd92b0be272edc51d9d75355a
#319 - Let CI build deploy snapshots.
push time in 2 days
push eventst-tu-dresden/salespoint
commit sha a8e67a83111eadd71116b7edb099209514df02c5
#319 - Let CI build deploy snapshots.
push time in 2 days
push eventst-tu-dresden/salespoint
commit sha bb9565b95e86488836208d3dc6085c7a0019cfed
#319 - Let CI build deploy snapshots.
push time in 2 days
push eventst-tu-dresden/salespoint
commit sha a82c7aada99a2a8b9351be10027d4ded29c486e0
#319 - Let CI build deploy snapshots.
push time in 2 days
push eventst-tu-dresden/salespoint
commit sha 52951276961a7d2b7af2766fe2819f3782911398
#319 - Let CI build deploy snapshots.
push time in 2 days
push eventst-tu-dresden/salespoint
commit sha 41316e80e6f4aeb5b2c7d1986c2e4df0755a24f3
#319 - Let CI build deploy snapshots.
push time in 2 days
issue closedst-tu-dresden/salespoint
Upgrade to Spring doc resources 0.2.2
closed time in 2 days
odrotbohmpush eventst-tu-dresden/salespoint
commit sha 5b09df551813e1868057074db25d0c7baac53148
#322 - Upgrade to Spring doc resources 0.2.2.
push time in 2 days
PR closed st-tu-dresden/salespoint
pr closed time in 2 days
push eventst-tu-dresden/salespoint
commit sha be0699542dada4b25d6bea055110e643fa30d306
#318 - Switch to GitHub actions.
commit sha f92525c03e9057044ce889954080eca45dbfe0cd
#318 - Remove CI config for Travis.
commit sha 03dc30d3fe987de529699f39215bfaec2f7d60fb
#320 - Fix broken Javadoc generation. Javadoc generation fails if you point it towards a library's Javadoc that is a module when your project itself isn't. https://bugs.openjdk.java.net/browse/JDK-8240169
commit sha 6925837163ed2ab75eeec33ca68cd8004d0687c8
#299 - Upgrade to Moduliths 1.0.
commit sha 84f1484cff1ff4425308f36ad3755fb898664967
#321 - Upgrade to Spring Boot 2.3.4. Removed obsolete Maven Enforcer Plugin version number. Added Lombok annotation processor to avoid warnings during build.
push time in 2 days
issue closedst-tu-dresden/salespoint
Quantities rendered from database values always contain ….00
The Lernraum revealed some weird behavior. Observably, Quantity instances loaded from the database always have decimal places. Turns out that QuantityAttributeConverter isn't applied actually. Assumingly die to Quantity being an @Embeddable.
If I actually apply the converter (by removing @Embeddable) queries start to fail, as they reference components of Quantity (like the amount) and the converter causing Hibernate to treat the value like an opaque string.
closed time in 2 days
odrotbohmpush eventst-tu-dresden/salespoint
commit sha 19bb68bc34eeb9d849984ab619b1c06aabb44019
#321 - Upgrade to Spring Boot 2.3.4. Removed obsolete Maven Enforcer Plugin version number. Added Lombok annotation processor to avoid warnings during build.
push time in 2 days
push eventst-tu-dresden/salespoint
commit sha e0b30afc0944e5214f88eb38db35f1cbfdd61a6e
#299 - Upgrade to Moduliths 1.0.
push time in 2 days
issue closedst-tu-dresden/salespoint
https://bugs.openjdk.java.net/browse/JDK-8240169
closed time in 2 days
odrotbohmpush eventst-tu-dresden/salespoint
commit sha 926fb496f58ee174764327d700a48e297279aac8
#320 - Fix broken Javadoc generation. Javadoc generation fails if you point it towards a library's Javadoc that is a module when your project itself isn't. https://bugs.openjdk.java.net/browse/JDK-8240169
push time in 2 days
issue openedst-tu-dresden/salespoint
https://bugs.openjdk.java.net/browse/JDK-8240169
created time in 2 days
issue openedst-tu-dresden/salespoint
Tweak CI build to continuously deploy snapshots and docs
created time in 2 days
issue closedst-tu-dresden/salespoint
Switch to GitHub action and remove Travis builds
closed time in 2 days
odrotbohmpush eventst-tu-dresden/salespoint
commit sha e58820576762339673be422cb434e17d6a1ce6a8
#318 - Remove CI config for Travis.
push time in 2 days
push eventst-tu-dresden/salespoint
commit sha 2f38e08cd78a7256b3cd0a78d45f4e879811a567
#318 - Switch to GitHub actions.
push time in 2 days
issue openedst-tu-dresden/salespoint
Switch to GitHub action and remove Travis builds
created time in 2 days
issue closedst-tu-dresden/salespoint
SalesPoint Javadoc search is not working
You can hover above the autocompleted names of salespointpackages but clicking leads to 404 :(
closed time in 2 days
phthalodaleissue openedrzwitserloot/lombok
[BUG] Maven delombok plugin fails on JDK 15
Describe the bug
Executing a Maven build with JDK 15 and the Maven Delombok plugin in version 1.18.12.0 leads to the following:
[ERROR] Failed to execute goal org.projectlombok:lombok-maven-plugin:1.18.12.0:delombok (default) on project salespoint-framework: Unable to delombok: InvocationTargetException: 'void com.sun.tools.javac.main.Arguments.init(java.lang.String, java.lang.String[])' -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.projectlombok:lombok-maven-plugin:1.18.12.0:delombok (default) on project salespoint-framework: Unable to delombok
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:64)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:564)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: org.apache.maven.plugin.MojoExecutionException: Unable to delombok
at lombok.maven.AbstractDelombokMojo.execute (AbstractDelombokMojo.java:196)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:64)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:564)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: java.lang.reflect.InvocationTargetException
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:64)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:564)
at lombok.launch.Delombok.delombok (Delombok.java:50)
at lombok.maven.AbstractDelombokMojo.execute (AbstractDelombokMojo.java:175)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:64)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:564)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: java.lang.NoSuchMethodError: 'void com.sun.tools.javac.main.Arguments.init(java.lang.String, java.lang.String[])'
at lombok.delombok.Delombok.delombok (Delombok.java:705)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:64)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:564)
at lombok.launch.Delombok.delombok (Delombok.java:50)
at lombok.maven.AbstractDelombokMojo.execute (AbstractDelombokMojo.java:175)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:64)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:564)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
created time in 3 days
issue closedodrotbohm/moduliths
Migrate a reasonably-sized application to a Modulith
In order to get some real-world experience, we should migrate a Spring Boot app with more than a couple hundred lines of code to a Modulith. For this to work, the library must have matured a bit and at least a snapshot should be released to Maven Central or JCenter.
closed time in 3 days
thombergsissue commentodrotbohm/moduliths
Migrate a reasonably-sized application to a Modulith
I think we can cross this off as we're 10 GA now and there are a couple of projects already using the library, most notably Quarano on the open-source side.
comment created time in 3 days
issue closedodrotbohm/moduliths
Make sure Spring test context caching works properly
closed time in 3 days
odrotbohmissue commentodrotbohm/moduliths
Make sure Spring test context caching works properly
That seems to be working properly, even in 1.0.
comment created time in 3 days
issue commentodrotbohm/moduliths
I wonder if that technical separation on the persistence context level has to be put in place as it clearly complicates the picture. The JPA @Table annotation allows to declare the schema an entity is supposed to live in. Using that and strictly governing that aggregates in one module must only refer to other aggregates by identifier, you should be able to get pretty far.
comment created time in 3 days
issue commentodrotbohm/moduliths
Feature: Report cross module transactions
That's an interesting suggestion. I wonder if you could elaborate on what this could look like. Currently we only "report" violations that are usually verified for in a test and which would break the latter. I don't think we'd want to break a build because of that because it might actually be generally acceptable if convenience trumps decoupling.
In general, we'd need to find components that invoke other components from other modules within a method marked as transactional. Tricky bit could be that that invocation of the other module component might be hidden behind an indirection: @-tx-method -> private method -> method invocation on other module component. Also, the invocation might be hidden behind an event publication that exists a listener for in the other module.
comment created time in 3 days
issue closedodrotbohm/moduliths
Improve handling of event listeners
Currently Spring application event listeners are not properly handled by the modules abstractions. Take the following structure for example:
com.acme.orders
+ ….Order (publishes OrderCreated events)
com.acme.accounting
o ….OrderEventListener
Further assume that OrderEventListener looks like this:
@Component
class OrderEventListener {
@EventListener
void on(OrderCreated event) { … }
}
As we currently only inspect type dependencies and interpret them as indicator for a downstream module dependency this scenario results in accounting to have a module dependency to orders. This is clearly wrong. I suggest to alter the model setup to change to the following:
- When collecting the module dependencies, explicitly check for modules annotated with
@EventListenerand make the nature of the dependency explicit (listens-to). - Do not consider this type dependency a module dependency or at least don't include the module referred to into the ones that need to be included when bootstrapping upstream dependencies.
- The additional meta-information can be included in the diagrams created in #16 to distinguish between the different module relationships.
closed time in 3 days
odrotbohmissue commentodrotbohm/moduliths
Improve handling of event listeners
That's been fixed a while ago. Event listeners are handled correctly and appear correctly in generated documentation etc.
comment created time in 3 days
issue commentrzwitserloot/lombok
Allow usage of annotations as meta-annotations
I might stretch the scope of the ticket a bit but would it be terribly hard to extend the functionality to not only react on annotations present but the type implementing another one? A use case I have is the following: in the jDDD library we expose interfaces that express DDD building blocks. There's also an annotation based model but interfaces allow us to express relationship constraints using generics. One of the interfaces is Identifier. Implementations usually look like this:
@EqualsAndHashCode
@RequiredArgsConstructor(staticName = "of")
@NoArgsConstructor(access = AccessLevel.PRIVATE, force = true)
class SomeIdentifier implements Identifier { … }
Having expressed the type to be an identifier via the interface already it would be cool if I could avoid the annotations by registering:
lombok.metaAnnotations = Identifier lombok.EqualsAndHashCode lombok.RequiredArgsConstructor(staticName = "of") lombok.NoArgsConstructor(access = lombok.AccessLevel.PRIVATE, force = true)
i.e. let the trigger of the annotations to be added be an interface instead of an annotation.
comment created time in 3 days
issue openedodrotbohm/jddd
Introduce annotations and types for CQRS / Event Sourcing
I just spoke to @abuijze of Axon Framework and we wondered whether it'd make sense to introduce annotations and types to declare CQRS / Event Sourcing building blocks:
@Command– type annotation@CommandHandler– method annotation@(Domain)EventHandler– method annotation@ViewModel/@Projection– type annotation
Axon also provides annotations for querying:
@Query@QueryHandler
but they seem to be a little more specific to Axon rather than a CQRS / ES concept that is to be mapped to types and packages in general.
Open questions
- Should this be a dedicated artifact (
jddd-cqrs) or a part of the already existingjddd-architectureartifact. As using CQRS / ES as implementation is a pretty significant decision, I personally tend to vote for the former as I wouldn't want to impose the types on the classpath of someone who just pulled in thejddd-architectureartifact on the classpath to e.g. demarcate layers. - Axon currently provides
@EventHandlerbut we have chosen@DomainEventin thejddd-eventsmodule. Thus, I'd vote to name the corresponding handler annotation@DomainEventHandlerfor consistency. @ViewModelor@Projection? I tend to vote for the former.
created time in 3 days
PR closed odrotbohm/moduliths
⚠️ Dependabot is rebasing this PR ⚠️
If you make any changes to it yourself then they will take precedence over the rebase.
Bumps nokogiri from 1.10.4 to 1.10.9. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/sparklemotion/nokogiri/releases">nokogiri's releases</a>.</em></p> <blockquote> <h2>1.10.9 / 2020-03-01</h2> <h3>Fixed</h3> <ul> <li>[MRI] Raise an exception when Nokogiri detects a specific libxml2 edge case involving blank Schema nodes wrapped by Ruby objects that would cause a segfault. Currently no fix is available upstream, so we're preventing a dangerous operation and informing users to code around it if possible. [<a href="https://github-redirect.dependabot.com/sparklemotion/nokogiri/issues/1985">#1985</a>, <a href="https://github-redirect.dependabot.com/sparklemotion/nokogiri/issues/2001">#2001</a>]</li> <li>[JRuby] Change <code>NodeSet#to_a</code> to return a RubyArray instead of Object, for compilation under JRuby 9.2.9 and later. [<a href="https://github-redirect.dependabot.com/sparklemotion/nokogiri/issues/1968">#1968</a>, <a href="https://github-redirect.dependabot.com/sparklemotion/nokogiri/issues/1969">#1969</a>] (Thanks, <a href="https://github.com/headius">@headius</a>!)</li> </ul> <h2>1.10.8 / 2020-02-10</h2> <h3>Security</h3> <p>[MRI] Pulled in upstream patch from libxml that addresses CVE-2020-7595. Full details are available in <a href="https://github-redirect.dependabot.com/sparklemotion/nokogiri/issues/1992">#1992</a>. Note that this patch is not yet (as of 2020-02-10) in an upstream release of libxml.</p> <h2>1.10.7 / 2019-12-03</h2> <h3>Bug</h3> <ul> <li>[MRI] Ensure the patch applied in v1.10.6 works with GNU <code>patch</code>. <a href="https://github-redirect.dependabot.com/sparklemotion/nokogiri/issues/1954">#1954</a></li> </ul> <h2>1.10.6 / 2019-12-03</h2> <h3>Bug</h3> <ul> <li>[MRI] Fix FreeBSD installation of vendored libxml2. [#1941, <a href="https://github-redirect.dependabot.com/sparklemotion/nokogiri/issues/1953">#1953</a>] (Thanks, <a href="https://github.com/nurse">@nurse</a>!)</li> </ul> <h2>1.10.5 / 2019-10-31</h2> <h3>Dependencies</h3> <ul> <li>[MRI] vendored libxml2 is updated from 2.9.9 to 2.9.10</li> <li>[MRI] vendored libxslt is updated from 1.1.33 to 1.1.34</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/sparklemotion/nokogiri/blob/v1.10.9/CHANGELOG.md">nokogiri's changelog</a>.</em></p> <blockquote> <h2>1.10.9 / 2020-03-01</h2> <h3>Fixed</h3> <ul> <li>[MRI] Raise an exception when Nokogiri detects a specific libxml2 edge case involving blank Schema nodes wrapped by Ruby objects that would cause a segfault. Currently no fix is available upstream, so we're preventing a dangerous operation and informing users to code around it if possible. [<a href="https://github-redirect.dependabot.com/sparklemotion/nokogiri/issues/1985">#1985</a>, <a href="https://github-redirect.dependabot.com/sparklemotion/nokogiri/issues/2001">#2001</a>]</li> <li>[JRuby] Change <code>NodeSet#to_a</code> to return a RubyArray instead of Object, for compilation under JRuby 9.2.9 and later. [<a href="https://github-redirect.dependabot.com/sparklemotion/nokogiri/issues/1968">#1968</a>, <a href="https://github-redirect.dependabot.com/sparklemotion/nokogiri/issues/1969">#1969</a>] (Thanks, <a href="https://github.com/headius">@headius</a>!)</li> </ul> <h2>1.10.8 / 2020-02-10</h2> <h3>Security</h3> <p>[MRI] Pulled in upstream patch from libxml that addresses CVE-2020-7595. Full details are available in <a href="https://github-redirect.dependabot.com/sparklemotion/nokogiri/issues/1992">#1992</a>. Note that this patch is not yet (as of 2020-02-10) in an upstream release of libxml.</p> <h2>1.10.7 / 2019-12-03</h2> <h3>Bug</h3> <ul> <li>[MRI] Ensure the patch applied in v1.10.6 works with GNU <code>patch</code>. <a href="https://github-redirect.dependabot.com/sparklemotion/nokogiri/issues/1954">#1954</a></li> </ul> <h2>1.10.6 / 2019-12-03</h2> <h3>Bug</h3> <ul> <li>[MRI] Fix FreeBSD installation of vendored libxml2. [#1941, <a href="https://github-redirect.dependabot.com/sparklemotion/nokogiri/issues/1953">#1953</a>] (Thanks, <a href="https://github.com/nurse">@nurse</a>!)</li> </ul> <h2>1.10.5 / 2019-10-31</h2> <h3>Security</h3> <p>[MRI] Vendored libxslt upgraded to v1.1.34 which addresses three CVEs for libxslt:</p> <ul> <li>CVE-2019-13117</li> <li>CVE-2019-13118</li> <li>CVE-2019-18197</li> <li>CVE-2019-19956</li> </ul> <p>More details are available at <a href="https://github-redirect.dependabot.com/sparklemotion/nokogiri/issues/1943">#1943</a>.</p> <h3>Dependencies</h3> <ul> <li>[MRI] vendored libxml2 is updated from 2.9.9 to 2.9.10</li> <li>[MRI] vendored libxslt is updated from 1.1.33 to 1.1.34</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/sparklemotion/nokogiri/commit/e2e191de387f854619bc8a3f9b39ca687fe0bf31"><code>e2e191d</code></a> version bump to v1.10.9</li> <li><a href="https://github.com/sparklemotion/nokogiri/commit/50f8fdeae4afb8582ff6347d7aa17822a1e11242"><code>50f8fde</code></a> update CHANGELOG</li> <li><a href="https://github.com/sparklemotion/nokogiri/commit/9b5deef76aeb5e3868cafb0b0956cca3708136f3"><code>9b5deef</code></a> Change return type to RubyArray</li> <li><a href="https://github.com/sparklemotion/nokogiri/commit/ae054f750283dccb1454d71dc00d0343dc2b1c60"><code>ae054f7</code></a> update CHANGELOG for <a href="https://github-redirect.dependabot.com/sparklemotion/nokogiri/issues/1985">#1985</a></li> <li><a href="https://github.com/sparklemotion/nokogiri/commit/71bcaf0bb1351c09e48f41f10314cb35bb4a4db4"><code>71bcaf0</code></a> Work around a bug in libxml2</li> <li><a href="https://github.com/sparklemotion/nokogiri/commit/6ce10d15d7af6ad65813a495eaf168f73eba211c"><code>6ce10d1</code></a> version bump to v1.10.8</li> <li><a href="https://github.com/sparklemotion/nokogiri/commit/2320f5bd6319dca9c68d85bbf41629bbf8052a49"><code>2320f5b</code></a> update CHANGELOG for v1.10.8</li> <li><a href="https://github.com/sparklemotion/nokogiri/commit/4a77fdb789aefed7ca65c7c7f57ad4dca0d3b209"><code>4a77fdb</code></a> remove patches from the hoe Manifest</li> <li><a href="https://github.com/sparklemotion/nokogiri/commit/570b6cbc5fbc5ee7ef969332c587b951ae35bcd0"><code>570b6cb</code></a> update to use rake-compiler ~1.1.0</li> <li><a href="https://github.com/sparklemotion/nokogiri/commit/2cdb68e95aa075ac36a08d4d82d9b410a950a051"><code>2cdb68e</code></a> backport libxml2 patch for CVE-2020-7595</li> <li>Additional commits viewable in <a href="https://github.com/sparklemotion/nokogiri/compare/v1.10.4...v1.10.9">compare view</a></li> </ul> </details> <br />
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
<details> <summary>Dependabot commands and options</summary> <br />
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot mergewill merge this PR after your CI passes on it@dependabot squash and mergewill squash and merge this PR after your CI passes on it@dependabot cancel mergewill cancel a previously requested merge and block automerging@dependabot reopenwill reopen this PR if it is closed@dependabot closewill close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)@dependabot use these labelswill set the current labels as the default for future PRs for this repo and language@dependabot use these reviewerswill set the current reviewers as the default for future PRs for this repo and language@dependabot use these assigneeswill set the current assignees as the default for future PRs for this repo and language@dependabot use this milestonewill set the current milestone as the default for future PRs for this repo and language
You can disable automated security fix PRs for this repo from the Security Alerts page.
</details>
pr closed time in 4 days