repaint-io / maven-tiles

Injecting maven configurations by composition rather than inheritance
154 stars 32 forks source link

Filter tiles from reactor, restore 3.3.9 support, fetch tiles from declared repositories, rewrite execution ids in profiles, inject tile dependencies #84

Closed bvella closed 5 years ago

bvella commented 5 years ago
talios commented 5 years ago

Everything seems to pass with the existing IT tests:

[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent!
[INFO] Building: civersion-tiletest/pom.xml
[INFO] run script verify.bsh
[INFO] ..SUCCESS (21.5 s)
[INFO] Building: frege-example/pom.xml
[INFO] run script verify.bsh
[INFO] ..SUCCESS (36.1 s)
[INFO] Building: remoteparent-test/pom.xml
[INFO] run script verify.bsh
[INFO] ..SUCCESS (8.2 s)
[INFO] Building: sitereporting-tiletest/pom.xml
[INFO] run script verify.bsh
[INFO] ..SUCCESS (66.5 s)
[INFO] Building: spring-boot/pom.xml
[INFO] run script verify.bsh
[INFO] ..SUCCESS (50.7 s)

Would it be possible to add another IT test that exercises this?

bvella commented 5 years ago

I added 2 tests: both tests include a tile in the reactor build, one specifies filtering in the pom and one does not. I am asserting that in the case with no filtering, the tile.xml file from the source folder is used and no filtering is done, and in the case of filtering, that a new file is generated in the target directory and the filtering is done.

For filtering I used @project.version@

I am not very familiar with the internals of maven, so feel free to suggest improvements to the code / tests.

As you may notice from the code / test, I am generating the filtered tile.xml file in target/tmp-tile as this is used temporarily during the start of the lifecycle. During the actual build, the proper tile is generated in target/generated-sources. Do you agree with the name of the temporary location? do you want to change it to something else?

bvella commented 5 years ago

There is a piece of code in TileModel that should prevent the execution id from being modified if the configuration attribute <tiles-keep-id> is added. It was not working for me, and in addition it was not modifying execution ids in profiles. I fixed it to work correctly and to replace execution ids in profiles with the same logic. Also added a test and updated the documentation. Let me know if this is fine.

bvella commented 5 years ago

I split this pr into 4 smaller prs: #86, #87, #88 and #89

talios commented 5 years ago

@bvella sweet - much nicer. Will go thru them tonight!