New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
TODO : Reactive/Webflux support #7608
Comments
For information: there is currently no possibility for the entity auditing to get the current user from the ReactiveSecurityContextHolder. Hence createdBy and lastModifiedBy will have to be set explicitly. See https://jira.spring.io/browse/DATACMNS-1231 Also there is currently no support for security audits so they should be removed for now. |
Note on R2DBC : currently it's not perf enough to be considered in a real life app mainly because it doesn't support connection pooling yet. See progress on this in reactor/reactor#651 |
Cool ! Micrometer just works with Webflux ! |
@cbornet Seems in springfox project integration with SB 2.1.x has been merged... and it includes migration to swagger-ui 3. |
Yes. We need the v3 of Springfox to be released. I tried to use the snapshot but had a lot of issues so I'll wait for the release. As for swagger UI, we don't use the one packaged by Springfox so we could already do the move. |
Reactor now supports a reactive pool that could be useful for R2DBC connection pooling |
R2DBC 0.8.0 M8 is out now. |
Yes. I tested it and it does improve performance a lot. Great job ! |
As this is a very big one, I'm increasing the bug bounty to $500 ! |
It would probably be better to open individual issues for this. But I didn't want to cripple the issue tracker. Maybe I could open a dedicated repo where we can add smaller issues with smaller bounties ? |
@cbornet you can put them on the main repo as long as we have the correct labels (maybe have a specific one for reactive), and the original plan was to have smaller $100 tickets. So if you do that we could split/move the bug bounty, but at the moment we only got this one. |
About caching, there's currently no support for @Cacheable in spring data reactive. A reactor add-on can be used to wrap the CacheManager. Note that the CacheManager being a blocking API, it kind of defeats the async non-blocking pattern. For now, the best solution seems to be to disable the cache option for reactive apps. |
@cbornet I'd like to help get the Reactive support "good enough" to release as GA. Is this issue's TODO list up-to-date? If so, I can start working on OAuth support and maybe entity generation. Let me know. |
Yes the TODO is up to date. Your help on the OAuth support is very welcome if course 😀! Thanks a lot Matt ! |
Do you think all checkboxes are necessary for a GA release or can we hide some and add them as we implement them?
… On Dec 7, 2019, at 14:22, Christophe Bornet ***@***.***> wrote:
Yes the TODO is up to date. Your help on the OAuth support is very welcome if course 😀! Thanks a lot Matt !
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or unsubscribe.
|
Yes we can define what we want for a GA. For instance, do you think SQL support is mandatory ? |
@cbornet I started working on OAuth support in #11049. I created a sample app at https://github.com/mraible/jhipster-reactive-monolith-oauth2 and a PR that makes login work. I still need to add non-blocking support in |
Cool ! On my side, I've made progress with the r2dbc support. It's almost ready but it requires that we first upgrade to Spring 5.2. |
@cbornet Do you know how to get tests to work? I'm getting the following error when I run
|
@cbornet Nevermind. I was able to solve this warning by changing the junit exclusion to: <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency> I also realized you have to run |
FYI... it seems like a reactive monolith doesn't pass
Here's my .yo-rc.json: {
"generator-jhipster": {
"promptValues": {
"packageName": "com.mycompany.myapp",
"nativeLanguage": "en"
},
"jhipsterVersion": "6.7.1",
"applicationType": "monolith",
"baseName": "mono",
"packageName": "com.mycompany.myapp",
"packageFolder": "com/mycompany/myapp",
"serverPort": "8080",
"authenticationType": "oauth2",
"cacheProvider": "no",
"enableHibernateCache": false,
"websocket": false,
"databaseType": "mongodb",
"devDatabaseType": "mongodb",
"prodDatabaseType": "mongodb",
"searchEngine": false,
"messageBroker": false,
"serviceDiscoveryType": false,
"buildTool": "maven",
"enableSwaggerCodegen": false,
"embeddableLaunchScript": false,
"useSass": true,
"clientPackageManager": "npm",
"clientFramework": "angularX",
"clientTheme": "none",
"clientThemeVariant": "",
"creationTimestamp": 1582154650121,
"testFrameworks": ["protractor"],
"jhiPrefix": "jhi",
"entitySuffix": "",
"dtoSuffix": "DTO",
"otherModules": [],
"enableTranslation": true,
"nativeLanguage": "en",
"languages": ["en"],
"blueprints": [],
"reactive": true
}
} |
@jhipster/developers Spring Cloud Gateway integration seems to be good to go! Should I merge? I kept the Zuul code for Zuul for non-reactive apps. This means that we're just adding a feature, no breaking changes. |
@cbornet Adding support for Elasticsearch seems to be the last thing to do to close this issue. Is that correct? |
Indeed ! We could even open another issue for ES and close this one. |
OK. I'm removing it from here since it has it's own issue. |
@cbornet : I disagree about sharing the bounty because:
Just tell me. |
I also agree with Pascal, we have enough money to give more bounty
Thanks & Regards,
Deepu
…On Wed, Apr 8, 2020 at 3:47 PM Pascal Grimaud ***@***.***> wrote:
@cbornet <https://github.com/cbornet> : I disagree about sharing the
bounty because:
- it was so much work to achieve this
- as you was the lead on this part, you should take the main bounty
(500$) and it will be well deserved. But I'm not sure it would be enough...
we can discuss if you think it's not enough :)
- for other people who participated to this ticket, we can do separate
bounty (100$ or more if you think it's deserved) for each part
Just tell me.
What do you think ?
—
You are receiving this because you are on a team that was mentioned.
Reply to this email directly, view it on GitHub
<#7608 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAIOKF4MFQVFQLWPT5AI6X3RLR6APANCNFSM4E7OZQQA>
.
|
Thank you @cbornet, glad to hear that I helped. I totally agree with @pascalgrimaud, you deserve the whole bounty, and even more. |
@cbornet You did as much work as I did on the OIDC integration! +1 to give you the whole bounty. |
is there a sample code showing the reactive websocket with the features developed in this thread? |
Last time I checked, reactive WebSocket support was incomplete in Spring (no security and no STOMP). So it's currently not supported by JHipster. |
I have created a branch
reactive
to support reactive/webflux applications.This issue is a TODO list for what remains:
Related issues:
Blocked:
@Cacheable
methods [SPR-14235] spring-projects/spring-framework#17920Later:
The text was updated successfully, but these errors were encountered: