MPS-extensions
MPS-extensions copied to clipboard
Provide standalone idea plugin(s) with common 3rd party libraries
Currently we already have org.apache.commons
plugin containing equaly named solution with some frequently used Apache Commons components, like IO
, Lang
and Math
. However, Collections
library is not included there, but rather within de.q60.shadowmodels
plugin (as part of the de.q60.mps.libs
solution) meaning that whoever wants to use Commons Collections, would need to depend on the complete shadowmodels plugin.
Also starting from MPS 2020.1, Google Guava library within MPS.Core solution is no more exposed, hence we need an access to it based on our own solution/plugin. Luckily, we have Google Guava already packaged in the aforementioned de.q60.mps.libs
solution.
Based on this, I would suggest to do following refactorings:
- extract
de.q60.mps.libs
solution into a separate plugin that can be used in MPS extensions and in all downstream projects without a need to depend on the shadowmodels plugin. - for consistency reasons, move Commons Collections to the existing
org.apache.commons
plugin/solution.
I would prefer if we would have different solutions for all the different apache commons libs. It is not a lot of overhead and makes it more obvious what you really depend on. Also future updates are easier.
I would prefer if we would have different solutions for all the different apache commons libs. It is not a lot of overhead and makes it more obvious what you really depend on. Also future updates are easier.
Ok, that a valid point. We can then consider refactoring Commons libs into separate plugins. In this case, I would also move Guava into a separate plugin.