IP Library Granted Patent US 10,102,212
Granted Patent B2
US 10,102,212 · App. 13/607,342 · Granted Oct 16, 2018

Remote artifact repository

Inventors: Ondrej Zizka (Brno, CZ); Lukas Fryc (Brno, CZ)
Assignee: Red Hat, Inc.
G06F17/30091
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,102,212
App. No.
13/607,342
Granted
Oct 16, 2018
Kind
B2
Abstract

System for generating a pseudo-repository. The system scans a directory to detect compiled binary files, and assembles an index of the compiled binary files based on metadata describing the compiled binary files. Then the system generates a pseudo-repository based on the index that maps each compiled binary file with at least one associated artifact, wherein the pseudo-repository responds to client requests for one of the binary files.

Claims (53)

1. A system comprising:

a processing device; and

a memory, operatively coupled to the processing device, having stored therein instructions which, when executed by the processing device, cause the processing device to:

scan one or more directories to detect first metadata describing binary files each associated with one or more of a first plurality of software artifacts of a first data storage or with one or more of a second plurality of software artifacts of a second data storage, wherein the first plurality of software artifacts and the second plurality of software artifacts are associated with a software project;

assemble a metadata index comprising the first metadata, the binary files associated with the first metadata, and one or more mappings of each of the binary files to the one or more of the first plurality of software artifacts of the first data storage or to the one or more of the second plurality of software artifacts of the second data storage;

receive, from a client device via a network, a first Hypertext Transfer Protocol (HTTP) request for a first version of a first software artifact, wherein the first version of the first software artifact is associated with a first version of the software project, and wherein the first HTTP request comprises a first Uniform Resource Locator (URL) that identifies a first file location in the first data storage for the first version of the first software artifact and that includes second metadata describing the first version of the first software artifact;

determine that the first version of the first software artifact does not reside at the first file location in the first data storage;

translate the first HTTP request to the second data storage, wherein translation comprises:

parsing the first URL for the second metadata describing the first version of the first software artifact; and

using the metadata index to identify the second data storage in view of the second metadata describing the first version of the first software artifact;

submit to the second data storage a first query for the first version of the first software artifact;

determine, in response to the first query, that the first version of the first software artifact does not reside in the second data storage, and that a second version of the first software artifact resides in the second data storage, wherein the second version of the first software artifact is associated with a second version of the software project that precedes the first version of the software project;

send, to the client device, the second version of the first software artifact from the second data storage;

receive a second HTTP request for a first version of a second software artifact, wherein the first version of the second software artifact is associated with the first version of the software project, and wherein the second HTTP request comprises a second URL that is different than the first URL and that identifies a second file location for the first version of the second software artifact;

in response to a determination that the first version of the second software artifact resides at the second file location, send, to the client device, the first version of the second software artifact from the second file location to cause a build of the project to be generated using the second version of the first software artifact and the first version of the second software artifact.

2. The system of claim 1 , wherein the first software artifact comprises a library.

3. The system of claim 2 , wherein the library is a dynamic-link library.

4. The system of claim 1 , wherein the first software artifact comprises a compiled binary file.

5. The system of claim 1 , wherein the first software artifact comprises debugging information.

6. A method comprising:

scanning one or more directories to detect first metadata describing binary files each associated with one or more of a first plurality of software artifacts of a first data storage or with one or more of a second plurality of software artifacts of a second data storage, wherein the first plurality of software artifacts and the second plurality of software artifacts are associated with a software project;

assembling a metadata index comprising the first metadata, the binary files associated with the first metadata, and one or more mappings of each of the binary files to the one or more of the first plurality of software artifacts of the first data storage or to the one or more of the second plurality of software artifacts of the second data storage;

receiving, by a processing device from a client device via a network, a first Hypertext Transfer Protocol (HTTP) request for a first version of a first software artifact, wherein the first version of the first software artifact is associated with a first version of the software project, and wherein the first HTTP request comprises a first Uniform Resource Locator (URL) that identifies a first file location in the first data storage for the first version of the first software artifact and that includes second metadata describing the first version of the first software artifact;

determining, by the processing device, that the first version of the first software artifact does not reside at the first file location in the first data storage;

translating the first HTTP request to the second data storage, wherein translation comprises:

parsing the first URL for the second metadata describing the first version of the first software artifact; and

using the metadata index to identify the second data storage in view of the second metadata describing the first version of the first software artifact;

submitting to the second data storage a first query for the first version of the first software artifact;

determining, in response to the first query, that the first version of the first software artifact does not reside in the second data storage, and that a second version of the first software artifact resides in the second data storage, wherein the second version of the first software artifact is associated with a second version of the software project that precedes the first version of the software project;

sending, to the client device, the second version of the first software artifact from the second data storage;

receiving, by the processing device, a second HTTP request for a first version of a second software artifact, wherein the first version of the second software artifact is associated with the first version of the software project, and wherein the second HTTP request comprises a second URL that is different than the first URL and that identifies a second file location for the first version of the second software artifact;

in response to a determination that the first version of the second software artifact resides at the second file location, sending, to the client device, the first version of the second software artifact from the second file location to cause a build of the project to be generated using the second version of the first software artifact and the first version of the second software artifact.

7. The method of claim 6 wherein the first software artifact comprises a library.

8. The method of claim 7 , wherein the library is a dynamic-link library.

9. The method of claim 6 wherein the first software artifact comprises a compiled binary file.

10. The method of claim 6 , wherein the first software artifact comprises debugging information.

11. A non-transitory computer-readable storage medium having stored therein instructions which, when executed by a processing device, cause the processing device to:

scan one or more directories to detect first metadata describing binary files each associated with one or more of a first plurality of software artifacts of a first data storage or with one or more of a second plurality of software artifacts of a second data storage, wherein the first plurality of software artifacts and the second plurality of software artifacts are associated with a software project;

assemble a metadata index comprising the first metadata, the binary files associated with the first metadata, and one or more mappings of each of the binary files to the one or more of the first plurality of software artifacts of the first data storage or to the one or more of the second plurality of software artifacts of the second data storage;

receive, by a processing device from a client device via a network, a first Hypertext Transfer Protocol (HTTP) request for a first version of a first software artifact, wherein the first version of the first software artifact is associated with a first version of the software project, and wherein the first HTTP request comprises a first Uniform Resource Locator (URL) that identifies a first file location in the first data storage for the first version of the first software artifact and that includes second metadata describing the first version of the first software artifact;

determine, by the processing device, that the first version of the first software artifact does not reside at the first file location in the first data storage;

translate the first HTTP request to the second data storage, wherein translation comprises:

parsing the first URL for the second metadata describing the first version of the first software artifact; and

using the metadata index to identify the second data storage in view of the second metadata describing the first version of the first software artifact;

submit to the second data storage a first query for the first version of the first software artifact;

determine, in response to the first query, that the first version of the first software artifact does not reside in the second data storage, and that a second version of the first software artifact resides in the second data storage, wherein the second version of the first software artifact is associated with a second version of the software project that precedes the first version of the software project;

send, to the client device, the second version of the first software artifact from the second data storage;

receive a second HTTP request for a first version of a second software artifact, wherein the first version of the second software artifact is associated with the first version of the software project, and wherein the second HTTP request comprises a second URL that is different than the first URL and that identifies a second file location for the first version of the second software artifact;

in response to a determination that the first version of the second software artifact resides at the second file location, send, to the client device, the first version of the second software artifact from the second file location to cause a build of the project to be generated using the second version of the first software artifact and the first version of the second software artifact.

12. The non-transitory computer-readable storage medium of claim 11 wherein the first software artifact comprises a library.

13. The non-transitory computer-readable storage medium of claim 12 , wherein the library is a dynamic-link library.

14. The non-transitory computer-readable storage medium of claim 11 wherein the first software artifact comprises debugging information.

15. The non-transitory computer-readable storage medium of claim 11 , wherein the first software artifact comprises a compiled binary file.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 7, 2012
From: ZIZKA, ONDREJ; FRYC, LUKAS
To: RED HAT, INC.
Reel/Frame 028920/0680 →
Continuity (1)
Related Publication 20140074849A1 · Mar 13, 2014
Cited By (1)
US 12,596,536