I was reviewing the project and realized that we're using all Play modules defined into project/plugin.sbt.
We could improve our dependency to Play only using the exact module that we need.
The two main problems we will suffer is that we use Results.Result as the main return from PdfGenerator.ok(...) as we can see at here and play.Environment as the helper class to get all resources (e.g. Images, CSS, etc) files from public folder.
From my research I see that we're using the following modules:
I believe that we could remove this method and return only byte[] and InputStream as the available returns to render the PDF and implement another way to get the resources from the public folder (maybe using something very similar to play.Environment implementation).
The benefits we could have are:
- Do not have to maintain all related modules from Play updated;
- Do not be exposed to all bugs related to all modules from Play;
- Significantly reduce the size of the project.
The malicious we could have:
- It's a breaking change feature, so, a Migration Guide is needed and could be not well received by the users;
- We couldn't know how to implement a good solution to get all resources files from
public folder.
Hope to hear more opinions.
I was reviewing the project and realized that we're using all Play modules defined into project/plugin.sbt.
We could improve our dependency to Play only using the exact module that we need.
The two main problems we will suffer is that we use
Results.Resultas the main return fromPdfGenerator.ok(...)as we can see at here andplay.Environmentas the helper class to get all resources (e.g. Images, CSS, etc) files frompublicfolder.From my research I see that we're using the following modules:
I believe that we could remove this method and return only
byte[]andInputStreamas the available returns to render the PDF and implement another way to get the resources from thepublicfolder (maybe using something very similar toplay.Environmentimplementation).The benefits we could have are:
The malicious we could have:
publicfolder.Hope to hear more opinions.