void Load(Assembly assembly) { IEnumerable <Assembly> dependencies = assembly.GetReferencedAssemblies() .Select(assemblyName => Assembly.Load(assemblyName)); JsiiAssemblyAttribute attribute = assembly.GetCustomAttribute <JsiiAssemblyAttribute>(); if (attribute == null) { return; } foreach (Assembly dependency in dependencies) { Load(dependency); } // find the .tgz resource var tarballResourceName = assembly.GetManifestResourceNames().FirstOrDefault(name => name.EndsWith(".tgz")); if (tarballResourceName == null) { throw new JsiiException("Cannot find embedded tarball resource in assembly " + assembly.GetName(), null); } IServiceProvider serviceProvider = ServiceContainer.ServiceProvider; IResourceExtractor extractor = serviceProvider.GetRequiredService <IResourceExtractor>(); var tarballPath = extractor.ExtractResource(assembly, tarballResourceName); IClient client = serviceProvider.GetRequiredService <IClient>(); client.LoadPackage(attribute.Name, attribute.Version, tarballPath); }
public void Return(IResourceExtractor resourceExtractor) { if (_objectDisposed) { throw new ObjectDisposedException(nameof(NetworkServicePool)); } _resourceExtractorPool.Add(resourceExtractor); }
public JsiiRuntimeProvider(IResourceExtractor resourceExtractor) { string[] files = { ENTRYPOINT, ENTRYPOINT + ".map", "mappings.wasm" }; // deploy embedded resources to the temp directory var assembly = Assembly.GetExecutingAssembly(); foreach (var name in files) { var resourceName = "Amazon.JSII.Runtime.jsii_runtime." + name; var path = resourceExtractor.ExtractResource(assembly, resourceName, "jsii-runtime", name); if (name == ENTRYPOINT) { JsiiRuntimePath = path; } } }
internal static void Load(Assembly assembly) { if (ProcessedAssemblies.Contains(GetAssemblyKey(assembly))) { return; } var attribute = assembly.GetCustomAttribute <JsiiAssemblyAttribute>(); if (attribute == null) { ProcessedAssemblies.Add(GetAssemblyKey(assembly)); return; } foreach (var referencedAssembly in assembly.GetReferencedAssemblies()) { var loadedReference = Assembly.Load(referencedAssembly); Load(loadedReference); } // find the .tgz resource var tarballResourceName = assembly.GetManifestResourceNames() .FirstOrDefault(name => name.EndsWith(".tgz", StringComparison.InvariantCultureIgnoreCase)); if (tarballResourceName == null) { throw new JsiiException("Cannot find embedded tarball resource in assembly " + assembly.GetName(), null); } IServiceProvider serviceProvider = ServiceContainer.ServiceProvider; IResourceExtractor extractor = serviceProvider.GetRequiredService <IResourceExtractor>(); var tarballPath = extractor.ExtractResource(assembly, tarballResourceName); IClient client = serviceProvider.GetRequiredService <IClient>(); client.LoadPackage(attribute.Name, attribute.Version, tarballPath); ProcessedAssemblies.Add(GetAssemblyKey(assembly)); string GetAssemblyKey(Assembly assemblyReference) => assemblyReference.GetName().FullName; }
public PostProcessorBlock(IResourceExtractor resourceExtractor, IResourceScope resourceScope, ILog log) { _log = log; _resourceScope = resourceScope; _resourceExtractor = resourceExtractor; }
public BrokenLinkCollectionWorkflow(CancellationToken cancellationToken, Configurations configurations, IStatistics statistics, IHardwareMonitor hardwareMonitor, IResourceExtractor resourceExtractor, IReportWriter reportWriter, ILog log, IResourceEnricher resourceEnricher, IResourceVerifier resourceVerifier, Func <IHtmlRenderer> getHtmlRenderer) { _log = log; _coordinatorBlock = new CoordinatorBlock(cancellationToken, log); _eventBroadcasterBlock = new EventBroadcasterBlock(cancellationToken); _processingResultGeneratorBlock = new ProcessingResultGeneratorBlock(cancellationToken, resourceExtractor, log); _reportWriterBlock = new ReportWriterBlock(cancellationToken, reportWriter, log); _resourceEnricherBlock = new ResourceEnricherBlock(cancellationToken, resourceEnricher, log); _resourceVerifierBlock = new ResourceVerifierBlock(cancellationToken, statistics, resourceVerifier, log); _htmlRendererBlock = new HtmlRendererBlock( cancellationToken, statistics, log, configurations, hardwareMonitor, getHtmlRenderer ); WireUpBlocks(); void WireUpBlocks() { var generalDataflowLinkOptions = new DataflowLinkOptions { PropagateCompletion = true }; _coordinatorBlock.LinkTo(NullTarget <Resource>(), PropagateNullObjectsOnly <Resource>()); _coordinatorBlock.LinkTo(_resourceEnricherBlock, generalDataflowLinkOptions); _resourceEnricherBlock.LinkTo(NullTarget <Resource>(), PropagateNullObjectsOnly <Resource>()); _resourceEnricherBlock.LinkTo(_resourceVerifierBlock, generalDataflowLinkOptions); _resourceEnricherBlock.FailedProcessingResults.LinkTo(_coordinatorBlock); _resourceVerifierBlock.LinkTo(NullTarget <Resource>(), PropagateNullObjectsOnly <Resource>()); _resourceVerifierBlock.LinkTo(_htmlRendererBlock, generalDataflowLinkOptions); _resourceVerifierBlock.FailedProcessingResults.LinkTo(_coordinatorBlock); _resourceVerifierBlock.VerificationResults.LinkTo(_reportWriterBlock); _resourceVerifierBlock.Events.LinkTo(_eventBroadcasterBlock); _htmlRendererBlock.LinkTo(NullTarget <RenderingResult>(), PropagateNullObjectsOnly <RenderingResult>()); _htmlRendererBlock.LinkTo(_processingResultGeneratorBlock, generalDataflowLinkOptions); _htmlRendererBlock.VerificationResults.LinkTo(_reportWriterBlock, generalDataflowLinkOptions); _htmlRendererBlock.FailedProcessingResults.LinkTo(_coordinatorBlock); _htmlRendererBlock.Events.LinkTo(_eventBroadcasterBlock, generalDataflowLinkOptions); _processingResultGeneratorBlock.LinkTo(NullTarget <ProcessingResult>(), PropagateNullObjectsOnly <ProcessingResult>()); _processingResultGeneratorBlock.LinkTo(_coordinatorBlock); _eventBroadcasterBlock.LinkTo(NullTarget <Event>(), PropagateNullObjectsOnly <Event>()); Predicate <T> PropagateNullObjectsOnly <T>() { return(@object => @object == null); } ITargetBlock <T> NullTarget <T>() { return(DataflowBlock.NullTarget <T>()); } } }
public ProcessingResultGeneratorBlock(CancellationToken cancellationToken, IResourceExtractor resourceExtractor, ILog log) : base(cancellationToken, maxDegreeOfParallelism: 300) { _log = log; _resourceExtractor = resourceExtractor; }
public DatabaseExtractor(IResourceExtractor extractor) { _extractor = extractor; }
public ResourceFileCreator(IResourceExtractor resourceExtractor) { this.resourceExtractor = resourceExtractor; }