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
Change comment: There is no comment for this version
To version 7.1
edited by Krzysztof Płachno
on 2017/06/09 15:11
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -1,7 +1,7 @@
1 1  == Artifactory and Bintray ==
2 2  
3 3  
4 -=== Investigation raport ===
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.

Get Connected