Changes for page [More extension repositories] Artifactory and Bintray
Last modified by Vincent Massol on 2024/02/26 17:57
From version 5.2
edited by Krzysztof Płachno
on 2017/06/09 15:08
on 2017/06/09 15:08
Change comment:
There is no comment for this version
To version 7.1
edited by Krzysztof Płachno
on 2017/06/09 15:11
on 2017/06/09 15:11
Change comment:
There is no comment for this version
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -1,7 +1,7 @@ 1 1 == Artifactory and Bintray == 2 2 3 3 4 -=== Investigation r aport ===4 +=== Investigation report === 5 5 6 6 7 7 There are two JFrog products: **Artifactory **and **Bintray**. At first glance they seem very similar. They both: ... ... @@ -55,7 +55,6 @@ 55 55 === Investigation report 2 === 56 56 57 57 58 - 59 59 ==== General: ==== 60 60 61 61 Potentially created ArtifactoryRepositoryManager BintrayRepositoryManager may implement apart from RespositoryManager interface, also Searchable interface. Currently only XWikiExtensionManager implements Searchable (AetherExtensionManager does not - Maven native operations does not provide searching options). ... ... @@ -81,8 +81,9 @@ 81 81 82 82 ==== Implementation design with reference to Artifactory and Bintray API ==== 83 83 84 -Resolving extension 85 85 84 +**Resolving extension** 85 + 86 86 * dedicated paths for downloads 87 87 * Artifactory\\ 88 88 ** Path: GET /repo-key/path/to/artifact.ext ... ... @@ -91,7 +91,7 @@ 91 91 ** Path: GET https:~/~/dl.bintray.com/:subject/:repo/:file_path 92 92 ** [[https:~~/~~/dl.bintray.com/cristof/xwiki-test/org/xwiki/contrib/application-office365/1.0.12345/:application-office365-1.0.12345.xar>>url:https://dl.bintray.com/cristof/xwiki-test/org/xwiki/contrib/application-office365/1.0.12345/:application-office365-1.0.12345.xar]] 93 93 94 -Obtaining available versions of extension 94 +**Obtaining available versions of extension** 95 95 96 96 * Artifactory\\ 97 97 ** special path for obtaining versions ... ... @@ -102,13 +102,13 @@ 102 102 ** Path: GET /search/packages/maven?g=:groupId&a=:artifactId&q=:query 103 103 ** Example: GET /search/packages/maven?g=org.xwiki.contrib&a=application-office365 104 104 105 -Searching 105 +**Searching:** 106 106 107 107 This is the biggest deal. Possible it should work as it does currently with XWikiExtensionManager. 108 108 How does searching in XWikiExtensionManager look like:XWikiExtensionManager utilizes Extension Repository Application API for searching: [[http:~~/~~/extensions.xwiki.org/xwiki/bin/view/Extension/Repository%20Module>>url:http://extensions.xwiki.org/xwiki/bin/view/Extension/Repository%20Module]]. Extension Repository Application doing search operation queries XWiki database (since during import of each extension to ERA - extension document page is created and extension's meta data is retrieved from pom and persisted in document xobjects in database). So the ERA search goes through extension metadata taken previously from pom properties like: <name> or <description> 109 109 110 110 111 -Artifactory provides multiple package search methods ([[https:~~/~~/www.jfrog.com/confluence/display/RTF/Artifactory+REST+API#ArtifactoryRESTAPI-SEARCHES>>url:https://www.jfrog.com/confluence/display/RTF/Artifactory+REST+API#ArtifactoryRESTAPI-SEARCHES]]) - for the scope of project following are interesting : 111 +Artifactory provides multiple package search methods ([[https:~~/~~/www.jfrog.com/confluence/display/RTF/Artifactory+REST+API#ArtifactoryRESTAPI-SEARCHES>>url:https://www.jfrog.com/confluence/display/RTF/Artifactory+REST+API#ArtifactoryRESTAPI-SEARCHES||style="background-color: rgb(255, 255, 255);"]]) - for the scope of project following are interesting : 112 112 113 113 * by name (in Artifactory GUI - Quick search): GET /api/search/artifact?name=name[&repos=x[,y]]\\ 114 114 ** the name parameter is supposed to somehow match the name of factual extension file e.g. '*office365*' matches 'application-office365-1.0.123456.xar' ... ... @@ -120,13 +120,15 @@ 120 120 ** GET /api/search/prop?[p1=v1,v2][&p2=v3][&repos=x[,y]] 121 121 ** to each uploaded package (to specific version or generally package as set of all versions) - you can specify in artifactory custom properties in form of Name:value and so you can later search packages according to those properties 122 122 123 + 123 123 Bintray provides searching facilities only by name and/or description 124 124 125 125 * GET /search/packages[?name=:name&desc=:desc] 126 126 * but those name and description are not imported from uploaded pom, but are inserted manually whilst uploading each package to Bintray 127 127 128 -Questions: 129 129 130 +=== Questions: === 131 + 130 130 * Is it important to provide searching in ArtifactoryRepositoryManager and BintrayRepositoryManager? If so how to design it's logic using described above Artifactory/Bintray api? 131 131 * How to cope with the fact, that artifactory/bintray repo may contain also other artifacts apart from Xwiki Extension. (In maven connection is not the problem - since maven does not expose searching feature and to download extension you need to specify its full id)\\ 132 132 ** Possible solution is that: on Artifactory/Bintray you may have plenty different, logically different maven repos. So prerequisite for connecting Artifactory/Bintray will be providing url to repo containing only xwiki valid extensions.