MPS-extensions icon indicating copy to clipboard operation
MPS-extensions copied to clipboard

Provide standalone idea plugin(s) with common 3rd party libraries

Open wsafonov opened this issue 4 years ago • 2 comments

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.

wsafonov avatar Apr 06 '20 19:04 wsafonov

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.

bkolb avatar Apr 06 '20 20:04 bkolb

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.

wsafonov avatar Apr 06 '20 20:04 wsafonov