Skip to content
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

fix: Also take into account the application.properties value #19966

Closed
wants to merge 2 commits into from

Conversation

caalador
Copy link
Contributor

When checking for react enable
also look if we have a application.properties
with the vaadin.react.enable flag.

This is especially for production build when only
application.properties has react disabled.

Touches #19951 and #19911

When checking for react enable
also look if we have a application.properties
with the vaadin.react.enable flag.

Touches #19951 and #19911
// If we are enabling react we should for spring projects check the
// application.properties file flag also.
File resource = new File(buildDirectory,
"classes/application.properties");
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

application.yml/yaml are not supported?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is more of a test at the moment and as flow doesn't have any yaml handling libraries it would be a build by hand parsing.
Also not certain if the linking to spring specific property files is a good idea as it might lead to expectations in overall configuration.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This would also leave out all profile specific properties files application-{profile}.properties like application-prod.properties, application-dev.properties etc.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah that's also true.. I'm wondering if there could be some kind of way to get the available spring environment in the build so that spring would handle all their "property magic"

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The main problem with possibly trying to use spring tools is that the data is needed during plugin build time also and not just runtime.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One possibility could be to add to starter projects into pom.xml <properties><reactEnable>true</reactEnable></properties> and have in the default application.properties vaadin.react.enable=@reactEnable@.
This would sync the pom.xml and application.properties values for the flag.

The problem here is ofc that it could be removed by mistake and wouldn't help old projects.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Doesn't this require additional configuration? Like filtering of resources to work?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually it works out of the box for spring-boot: https://docs.spring.io/spring-boot/docs/2.0.0.M7/reference/html/howto-properties-and-configuration.html#howto-automatic-expansion-maven

If you use the spring-boot-starter-parent, you can then refer to your Maven ‘project properties’ with @..@ placeholders

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Without the starter parent you would need resource filtering and plugin delimiter configuration.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

vaadin.react.enable=@reactEnable@ looks good idea, but polluting starters with a property that most don't need is not so nice.
If the point is to avoid issues with vaadin.react.enable being added only to application.properties then better documentation could be enough. Also this @reactEnable@ should be mentioned somewhere.

Copy link

github-actions bot commented Sep 17, 2024

Test Results

1 135 files  ±0  1 135 suites  ±0   1h 26m 49s ⏱️ - 1m 25s
7 395 tests +2  7 345 ✅ +2  50 💤 ±0  0 ❌ ±0 
7 754 runs  +5  7 698 ✅ +9  56 💤  - 4  0 ❌ ±0 

Results for commit de06dd1. ± Comparison against base commit 2c25b82.

♻️ This comment has been updated with latest results.

Copy link

sonarcloud bot commented Sep 17, 2024

@caalador caalador closed this Sep 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants