Comments (2)
I guess the problem here is that a MultipartFile
is directly backed by the input stream of the incoming request, which in turn is tied to the thread receiving it. Any chance you copy the content into a separate data structure first?
Just to make sure: it's not obvious from the code you showed what exactly happens to the MultipartImage
within ProductFile
. You just state “it is empty” without clarifying what “it” refers to.
Finally, the code in the listener looks a bit suspicious. Application module listeners are intended to react to completed units of work in a foreign model. They are not intended to re-implement a request/response via events. In other words, we recommend the original business transaction to result in a valid state and the events solely transferring pointers to that state.
from spring-modulith.
I guess the problem here is that a MultipartFile is directly backed by the input stream of the incoming request, which in turn is tied to the thread receiving it. Is there any chance you could copy the content into a separate data structure first?
This assumption is true. When passing a MultipartFile in the module listeners, it seems like the binary content of the MultipartFile is wiped out. That’s why I say it is empty upon reception.
Finally, the code in the listener looks a bit suspicious. Application module listeners are intended to react to completed units of work in a foreign model. They are not intended to re-implement a request/response via events. In other words, we recommend that the original business transaction results in a valid state and that the events solely transfer pointers to that state.
You’re also right here. After posting my issue, I reread DDD by Eric Evans and realized that I missed that point, each events should be propagate when the unit of work is completed. Thanks for your feedback.
from spring-modulith.
Related Issues (20)
- Module can't see its direct dependencies when bean only used in `ConstraintValidator` implementation
- Release 1.0.4
- Release 1.1.1
- Events published from event listener do not trigger listening event listeners HOT 2
- `@ApplicationModuleTest` fails to bootstrap external dependencies HOT 3
- Event externalisation with AMQP fails to complete HOT 5
- Invalid reference in event externalization section of reference docs
- `CompletedEventPublications` potentially not subject for DI
- `CompletedEventPublications` potentially not subject for DI
- `CompletedEventPublications` potentially not subject for DI
- Invalid reference in event externalization section of reference docs
- `@ApplicationModuleTest` unable to bootstrap module HOT 4
- Error encountered exiting Spring ApplicationContext at the end of a `@SpringBootTest` using Testcontainers & Modulith HOT 3
- `CompletedEventPublications.findAll()` returns incomplete publications
- `CompletedEventPublications.findAll()` returns incomplete publications
- `@ApplicationModuleTest` unable to bootstrap module
- Event externalization with AMQP fails to complete
- `@ApplicationModuleTest` unable to bootstrap module
- Potentially broken debug log output in `PersistentApplicationEventMulticaster`
- Upgrade to Spring Boot 3.3 M1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from spring-modulith.