airavata-mft
airavata-mft copied to clipboard
Hierarchical class loaders for tranasports
Currently MFT standalone service and Agent bundles with all the available transport libraries. This makes the distribution very fat and prone to various dependency conflict issues. The ideal way is to have hierarchical class loaders to load transports [3] on demand and keep the main distribution light and simple. The ConnectorResolver and MetadataCollectorResolver should use separate class loaders to load jars for each transport. Libs for each transport can be organized in subdirectories of the lib directory of the distribution.
[1] https://github.com/apache/airavata-mft/blob/master/core/src/main/java/org/apache/airavata/mft/core/ConnectorResolver.java#L33 [2] https://github.com/apache/airavata-mft/blob/master/core/src/main/java/org/apache/airavata/mft/core/MetadataCollectorResolver.java [3] https://github.com/apache/airavata-mft/tree/master/transport