public HttpVersionSource(ILoggerFactory loggerFactory,
                          IVersionParser parser,
                          IHttpClientFactory httpClientFactory)
     : base(loggerFactory, parser)
 {
     _httpClientFactory = httpClientFactory;
 }
 public CreateReleaseHandler(IApplicationDbContext db, IClock clock, IVersionParser versionParser, ISortableVersionPrinter sortableVersionPrinter)
 {
     _db                     = db;
     _clock                  = clock;
     _versionParser          = versionParser;
     _sortableVersionPrinter = sortableVersionPrinter;
 }
Exemple #3
0
 /// <summary>
 /// Initializes a new instance of the <see cref="LoaderValidating"/> class.
 /// </summary>
 /// <param name="loader">The base loader instance.</param>
 /// <param name="versionParser">The version parser instance.</param>
 public LoaderValidating(ILoaderPackage loader, IVersionParser versionParser = null)
 {
     this.loader        = loader;
     this.versionParser = versionParser ?? new BVersionParser();
     errors             = new List <string>();
     warnings           = new List <string>();
 }
 public GetReleasesListHandler(IApplicationDbContext db, IVersionParser versionParser, ISortableVersionPrinter sortableVersionPrinter, IResourceUriGenerator resourceUriGenerator)
 {
     _db                     = db;
     _versionParser          = versionParser;
     _sortableVersionPrinter = sortableVersionPrinter;
     _resourceUriGenerator   = resourceUriGenerator;
 }
Exemple #5
0
 /// <summary>
 /// Initializes a new instance of the <see cref="RepositoryManager"/> class.
 /// </summary>
 public RepositoryManager(IIO io, Config config, IEventDispatcher eventDispatcher = null, IVersionParser versionParser = null)
 {
     this.io              = io;
     this.config          = config;
     this.eventDispatcher = eventDispatcher;
     this.versionParser   = versionParser ?? new BVersionParser();
     repositories         = new LinkedList <IRepository>();
     repositoryCreaters   = new Dictionary <string, RepositoryCreater>();
 }
Exemple #6
0
        /// <summary>
        /// Initializes a new instance of the <see cref="RepositoryBucket"/> class.
        /// </summary>
        public RepositoryBucket(
            ConfigRepositoryBucket configRepository,
            IIO io,
            Config config,
            ITransport transport             = null,
            IEventDispatcher eventDispatcher = null,
            IVersionParser versionParser     = null)
        {
            if (!Regex.IsMatch(configRepository.Uri, @"^[\w.]+\??://"))
            {
                // assume http as the default protocol
                configRepository.Uri = $"http://{configRepository.Uri}";
            }

            configRepository.Uri = configRepository.Uri.TrimEnd('/');

            if (configRepository.Uri.StartsWith("https?", StringComparison.OrdinalIgnoreCase))
            {
                configRepository.Uri = $"https{configRepository.Uri.Substring(6)}";
                uriIsIntelligent     = true;
            }

            if (!Uri.TryCreate(configRepository.Uri, UriKind.RelativeOrAbsolute, out _))
            {
                throw new ConfigException($"Invalid url given for Bucket repository: {configRepository.Uri}");
            }

            // changes will not be applied to configRepository.
            uri = configRepository.Uri;

            // force url for gxpack.org to repo.gxpack.org
            // without converting other addresses.
            var match = Regex.Match(configRepository.Uri, @"^(?<proto>https?)://gxpack\.org/?$", RegexOptions.IgnoreCase);

            if (match.Success)
            {
                uri = $"{match.Groups["proto"].Value}://repo.gxpack.org";
            }

            baseUri = Regex.Replace(uri, @"(?:/[^/\\\\]+\.json)?(?:[?#].*)?$", string.Empty).TrimEnd('/');

            this.configRepository = configRepository;
            this.io              = io;
            this.transport       = transport ?? new TransportHttp(io, config);
            this.eventDispatcher = eventDispatcher;
            this.versionParser   = versionParser ?? new BVersionParser();

            var cacheDir = Path.Combine(config.Get(Settings.CacheDir), CacheFileSystem.FormatCacheFolder(uri));

            cache          = new CacheFileSystem(cacheDir, io, "a-z0-9.$~");
            loader         = new LoaderPackage(versionParser);
            providersByUid = new Dictionary <int, IPackage>();
        }
Exemple #7
0
 /// <summary>
 /// Initializes a new instance of the <see cref="PluginManager"/> class.
 /// </summary>
 public PluginManager(IIO io, Bucket bucket, Bucket globalBucket = null, bool disablePlugins = false)
 {
     this.io             = io;
     this.bucket         = bucket;
     this.globalBucket   = globalBucket;
     this.disablePlugins = disablePlugins;
     versionParser       = new BVersionParser();
     plugins             = new List <IPlugin>();
     activatedPlugins    = new Dictionary <string, IList <IPlugin> >();
     loadedAssemblies    = new HashSet <string>();
     activatePackages    = new HashSet <string>();
 }
        /// <summary>
        /// Initializes a new instance of the <see cref="LoaderPackageRoot"/> class.
        /// </summary>
        public LoaderPackageRoot(RepositoryManager manager, Config config, IIO io = null, IVersionParser versionParser = null)
        {
            this.manager       = manager;
            this.config        = config;
            this.io            = io ?? IONull.That;
            this.versionParser = versionParser ?? new BVersionParser();

            stabilities = new Dictionary <string, Stabilities>();
            foreach (Stabilities stability in Enum.GetValues(typeof(Stabilities)))
            {
                var member = stability.GetAttribute <EnumMemberAttribute>();
                stabilities[member != null ? member.Value.ToLower() : stability.ToString().ToLower()] = stability;
            }
        }
Exemple #9
0
        /// <summary>
        /// Initializes a new instance of the <see cref="LoaderPackage"/> class.
        /// </summary>
        public LoaderPackage(IVersionParser versionParser = null)
        {
            packageCreaters = new Dictionary <Type, PackageCreater>
            {
                [typeof(IPackage)] = (name, version, versionPretty)
                                     => new Package(name, version, versionPretty),
                [typeof(IPackageComplete)] = (name, version, versionPretty)
                                             => new PackageComplete(name, version, versionPretty),
                [typeof(IPackageRoot)] = (name, version, versionPretty)
                                         => new PackageRoot(name, version, versionPretty),
            };

            this.versionParser = versionParser ?? new BVersionParser();
        }
Exemple #10
0
        /// <summary>
        /// Initializes a new instance of the <see cref="RepositoryVcs"/> class.
        /// </summary>
        /// <param name="configRepository">Represents the repository configuration file.</param>
        /// <param name="io">The input/output instance.</param>
        /// <param name="config">The global config file.</param>
        /// <param name="drivers">The vcs drivers factory.</param>
        /// <param name="versionCache">The version cache implementation.</param>
        /// <param name="versionParser">The version parser instance.</param>
        public RepositoryVcs(
            ConfigRepositoryVcs configRepository,
            IIO io,
            Config config,
            IDictionary <string, DriverCreater> drivers = null,
            IVersionCache versionCache   = null,
            IVersionParser versionParser = null)
        {
            this.configRepository = configRepository;
            this.config           = config;
            this.io            = io;
            this.versionCache  = versionCache;
            this.versionParser = versionParser ?? new BVersionParser();
            this.drivers       = drivers ?? CreateAndRegisterDefaultDrivers();
            emptyReferences    = new LinkedList <string>();
            type          = configRepository.Type;
            uri           = configRepository.Uri;
            isVerbose     = io.IsVerbose;
            isVeryVerbose = io.IsVeryVerbose;

            RegisterDefaultDrivers();
        }
Exemple #11
0
 public static void ConfigureVersioning(this HttpConfiguration configuration, IVersionParser parser)
 {
     configuration.Properties[typeof(IVersionParser)] = parser;
 }
 public UpdateBuilder UseParser(IVersionParser versionParser)
 {
     _updateBuilder.UseSource(_creator(versionParser));
     return(_updateBuilder);
 }
 public VersionSourceWithParser(ILoggerFactory loggerFactory,
                                IVersionParser parser)
 {
     _logger = loggerFactory.CreateLogger(GetType());
     _parser = parser;
 }
 public void Setup()
 {
     _sut = new VersionParser();
 }
Exemple #15
0
        /// <summary>
        /// Create a repository manager.
        /// </summary>
        public static RepositoryManager CreateManager(IIO io, Config config, IEventDispatcher eventDispatcher = null, IVersionParser versionParser = null)
        {
            var manager = new RepositoryManager(io, config, eventDispatcher, versionParser);

            Array.ForEach(
                new[] { "git", "vcs", "github", "gitlab" },
                (type) => manager.RegisterRepository(type, CreationVcs));

            manager.RegisterRepository("bucket", CreationBucket);
            manager.RegisterRepository("package", CreationPackage);

            return(manager);
        }
Exemple #16
0
        private static IRepository CreationPackage(ConfigRepository configRepository, IIO io, Config config, IEventDispatcher eventDispatcher, IVersionParser versionParser)
        {
            if (!(configRepository is ConfigRepositoryPackage configRepositoryPackage))
            {
                throw new InvalidArgumentException($"The repository configuration parameter is invalid and must be of type {nameof(ConfigRepositoryPackage)}");
            }

            return(new RepositoryPackage(configRepositoryPackage));
        }
Exemple #17
0
 public static IVersionParser GetVersionParser()
 {
     return(versionParser ?? (versionParser = new BVersionParser()));
 }