{"action":"opened","issue":{"url":"https://api.github.com/repos/ControlSystemStudio/cs-studio/issues/1417","labels_url":"https://api.github.com/repos/ControlSystemStudio/cs-studio/issues/1417/labels{/name}","comments_url":"https://api.github.com/repos/ControlSystemStudio/cs-studio/issues/1417/comments","events_url":"https://api.github.com/repos/ControlSystemStudio/cs-studio/issues/1417/events","html_url":"https://github.com/ControlSystemStudio/cs-studio/issues/1417","id":114248657,"number":1417,"title":"Managing third party libraries","user":{"login":"shroffk","id":2111304,"avatar_url":"https://avatars.githubusercontent.com/u/2111304?v=3","gravatar_id":"","url":"https://api.github.com/users/shroffk","html_url":"https://github.com/shroffk","followers_url":"https://api.github.com/users/shroffk/followers","following_url":"https://api.github.com/users/shroffk/following{/other_user}","gists_url":"https://api.github.com/users/shroffk/gists{/gist_id}","starred_url":"https://api.github.com/users/shroffk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shroffk/subscriptions","organizations_url":"https://api.github.com/users/shroffk/orgs","repos_url":"https://api.github.com/users/shroffk/repos","events_url":"https://api.github.com/users/shroffk/events{/privacy}","received_events_url":"https://api.github.com/users/shroffk/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/ControlSystemStudio/cs-studio/labels/project","name":"project","color":"fbca04"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-10-30T11:02:35Z","updated_at":"2015-10-30T11:02:35Z","closed_at":null,"body":"Many of our plugins depend on third party libraries, after the new build system and repository cleanup there has been no clear idea as to how to manage these. There are currently two mechanism we can use.\r\n\r\n**Old System:**\r\nIn this case we simply copy the jars into a new bundle manually created by cs-studio developers.\r\n\r\nAdvantages\r\n- Cloning the git repository pulls in all the required binaries \r\n\r\nDisadvantages\r\n - The repository has binaries\r\n - Adding, removing, updating dependencies is more complicates, it requires manually adding new jars removing old ones, updating the export packages and the classpath.\r\n - Need a manually manage the dependencies (example https://github.com/ControlSystemStudio/cs-studio-thirdparty/tree/master/plugins/org.csstudio.platform.libs.jersey/lib)\r\n\r\n**Maven-Osgi-bundles:**\r\nIn this method, developers added the newly needed artifacts to the following pom,\r\nhttps://github.com/ControlSystemStudio/maven-osgi-bundles/blob/master/repository/pom.xml\r\nAfter the first mvn install, tycho-maven will pull all the third party libraries/artifacts and create the bundles from it.\r\n\r\nAdvantages\r\n - No binaries in the repository\r\n - Adding, removing and updating dependecies requires updating the pom and rebuilding this repo\r\n - Maven can do the dependency management\r\n\r\nDisadvantages\r\n - no documentation on how to use this\r\n - requires 2 networks calls (first to clone the repo, the second call is by maven which actually downloads the jars)...after which no further n/w calls should be necessary\r\n - while possible not sure how instruct maven to create bundles with the libraries untarred (for erformance reasons)\r\n\r\nNote:\r\nBoth systems can be used simultaneous\r\n\r\nComments? @kasemir @willrogers @berryma4 @utzeln \r\nWe could discuss this in more detail at the next meetins"}}