public void ReadPackage(IPackageInfo package, IPackageLog log) { _currentPackage = package; //double dispatch - hard to follow - at the moment package.LoadAssemblies(this); }
protected void when_finding_packages(string dependency) { var dep = new WrapDescriptor(); new DependsParser().Parse(dependency, dep); FoundPackage = Repository.Find(dep.Dependencies.First()); }
public void DeployDependency(IPackageInfo resolvedPackage, IPackagePublisher publisher) { var source = resolvedPackage.Load(); using (var packageStream = source.OpenStream()) publisher.Publish(resolvedPackage.FullName + ".wrap", packageStream); }
// TODO: Try to find the assembly file version here. public void LogAssembly(IPackageInfo package, Assembly assembly, string provenance) { LogObject(assembly, provenance); var packageLog = LogFor(package); packageLog.Trace("Loaded assembly " + assembly.GetName().FullName); packageLog.AddChild(assembly); }
public PackageInstaller(string packagePath, string packageDataDirectory, string basePath, IPackageInfo package, IPackageLoader loader) { this.packagePath = packagePath; this.packageDataDirectory = packageDataDirectory; this.basePath = basePath; this.package = package; this.loader = loader; packageZip = new ZipFile(packagePath); }
public void AddPackage(IPackageInfo package) { PackageButton button = new PackageButton("button" + buttons.Count, package); button.Click += new EventHandler<MouseButtonEventArgs>(button_Click); buttons.Add(button); vScroll.Maximum = System.Math.Max(1, buttons.Count - maxVisibleButtons); base.AddWidget(button); VerifyButtons(); }
bool VisitDependencyNode(IPackageInfo from, PackageDependency dependency, IPackageInfo to, PackageVisitor visitor, Dictionary<string,int> visitsLeft) { if (!visitor(from, dependency, to)) return false; if (DecreaseVisitCount(visitsLeft, to.Name) <= 0) { foreach (var dependencyNode in to.Dependencies) if (!VisitDependencyNode(to, dependencyNode, _byName[dependencyNode.Name], visitor, visitsLeft)) return false; } return true; }
public InMemoryPackage(IPackageInfo packageToCopy) : this() { Created = packageToCopy.Created; Dependencies = packageToCopy.Dependencies.ToList(); Anchored = packageToCopy.Anchored; Description = packageToCopy.Description; Name = packageToCopy.Name; Nuked = packageToCopy.Nuked; Source = packageToCopy.Source; Title = packageToCopy.Title; Version = packageToCopy.Version; }
IEnumerable<ResolvedDependency> ResolveAllDependencies(IPackageInfo parent, IEnumerable<WrapDependency> dependencies, IDictionary<string,string> dependencyOverrides, IEnumerable<IPackageRepository> repositories) { var packages = from dependency in dependencies let package = repositories .Where(x=> x != null) .Select(x => x.Find(dependency)) .FirstOrDefault(x=>x != null) select new ResolvedDependency { Dependency = dependency, Package = package, ParentPackage = parent }; foreach (var package in packages.Where(p=>p.Package != null)) packages = packages.Concat(ResolveAllDependencies(package.Package, package.Package.Dependencies, dependencyOverrides, repositories)); return packages.ToList(); }
public void LogAssembly(IPackageInfo package, Assembly assembly, string provenance) { try { var assVer = getVersion(assembly); LogObject(assembly, provenance); var packageLog = LogFor(package); packageLog.Trace("Loaded assembly '{0}' v{1}".ToFormat(assembly.GetName().FullName,assVer.FileVersion)); packageLog.AddChild(assembly); } catch (Exception ex) { throw new Exception("Trying to log assembly '{0}' in package '{1}' at {2}".ToFormat(assembly.FullName, package.Name, assembly.Location), ex); } }
public PackageButton(string name, IPackageInfo attachedPackage) : base(name) { this.attachedPackage = attachedPackage; this.Size = new Size(200, 50); base.Font = Graphics.FontManager.LoadFont("tahoma", 12); base.BackColor = Color.SteelBlue; base.HighlightType = SdlDotNet.Widgets.HighlightType.Color; base.HighlightColor = Color.LightSteelBlue; installedSurf = Graphics.SurfaceManager.LoadSurface(IO.Paths.GfxPath + "Updater\\package-installed.png"); base.Text = attachedPackage.FullID; base.Paint += new EventHandler(PackageButton_Paint); }
public void LoadPackage(byte[] assembly, IPackageInfo packageInfo) { if (packageAppDomain != null) { Unload(); } this.assemblyPath = assemblyPath; string fileNamespace = packageInfo.FullID; string dir = Path.GetDirectoryName(assemblyPath); //AppDomainSetup setup = AppDomain.CurrentDomain.SetupInformation; //setup.ApplicationBase = Environment.CurrentDirectory; packageAppDomain = AppDomain.CreateDomain(fileNamespace, null); // TODO: Load all the of the dependancies into memory too! //this.packageAppDomain.Load() Assembly loadedAssembly = this.packageAppDomain.Load(assembly); this.package = this.packageAppDomain.CreateInstance(loadedAssembly.FullName, "UpdatePackage.UpdatePackage").Unwrap() as IUpdatePackage; }
public void ExplodeAssembly(string applicationDirectory, Assembly assembly, IPackageInfo packageInfo) { var directory = BottleFiles.GetDirectoryForExplodedPackage(applicationDirectory, assembly.GetName().Name); var request = new ExplodeRequest{ Directory = directory, GetVersion = () => assembly.GetName().Version.ToString(), LogSameVersion = () => ConsoleWriter.Write("Assembly {0} has already been 'exploded' onto disk".ToFormat(assembly.GetName().FullName)), ExplodeAction = () => explodeAssembly(assembly, directory) }; explode(request); _fileSystem.ChildDirectoriesFor(directory).Each(child => { var name = Path.GetFileName(child); packageInfo.Files.RegisterFolder(name, child.ToFullPath()); }); }
public void SetUp() { var system = new FileSystem(); system.DeleteDirectory("package1"); system.CreateDirectory("package1"); system.CreateDirectory("package1", "bin"); system.CreateDirectory("package1", "WebContent"); system.CreateDirectory("package1", "Data"); theOriginalManifest = new PackageManifest(){ Assemblies = new string[]{"a", "b", "c"}, Name = "Extraordinary" }; theOriginalManifest.AddDependency("bottle1", true); theOriginalManifest.AddDependency("bottle2", true); theOriginalManifest.AddDependency("bottle3", false); theOriginalManifest.WriteTo("package1"); thePackage = new PackageManifestReader(new FileSystem(), directory => directory.AppendPath("WebContent")).LoadFromFolder("package1"); }
bool PackageShouldBeKept(IPackageInfo packageInfo) { bool matchesName = packageInfo.Name.EqualsNoCase(Name); bool matchesVersion = Version == null ? true : packageInfo.Version == Version; return !(matchesName && matchesVersion); }
public PackageAddedResult(IPackageInfo package, IPackageRepository repository) { Package = package; Repository = repository; }
public PackageUpdatedResult(IPackageInfo previousPackage, IPackageInfo package, IPackageRepository repository) : base(package, repository) { PreviousPackage = previousPackage; }
public PackageLocation(IDirectory cacheDir, IPackageInfo package) { CacheDirectory = cacheDir; Package = package; }
public PackageAddedResult(IPackageInfo package, ISupportPublishing repository) { Package = package; Repository = repository; }
public void LogPackage(IPackageInfo package, IPackageLoader loader) { LogObject(package, "Loaded by " + loader); LogFor(loader).AddChild(package); }
public MetricsServiceClient(string url, string sessionId, IPackageInfo packageInfo, IConnectivityService connectivityService, ILogger logger) : base(url, sessionId, packageInfo, connectivityService, logger) { }
public PackageUninstaller(IPackageInfo packageInfo, IPackageFileList packageFileList) { this.packageInfo = packageInfo; this.packageFileList = packageFileList; }
public CmtPaymentClient(string baseUrl, string sessionId, CmtPaymentSettings cmtSettings, IIPAddressManager ipAddressManager, IPackageInfo packageInfo, ILogger logger, IConnectivityService connectivityService) : base(baseUrl, sessionId, packageInfo, connectivityService) { _ipAddressManager = ipAddressManager; _logger = logger; CmtPaymentServiceClient = new CmtPaymentServiceClient(cmtSettings, null, packageInfo, logger, connectivityService); }
public BottleProvenance(IPackageInfo bottle) { _bottle = bottle; }
public bool UpdatePackage(IPackageInfo package) { return(UpdatePackage(Locate(package?.Id), package.Version, package.Meta)); }
public bool RemovePackage(IPackageInfo package) => RemovePackage(package?.Id);
/// <summary> /// 处理接收操作 /// 当一个异步接收操作完成时调用此方法 /// </summary> /// <param name="receiveContext">与完成Receive操作关联的SocketAsyncEventArg对象</param> private void ProcessReceive(SocketAsyncEventArgs receiveContext) { if (!IsSocketAlive(receiveContext)) { return; } // BytesTransferred属性提供在可接收或发送数据的异步套接字操作传输的字节数。 // 如果从读取操作返回零,则说明远程端已关闭了连接 if (receiveContext.BytesTransferred > 0) { if (receiveContext.SocketError == SocketError.Success) { try { ITcpClientProxy dataHandler = receiveContext.UserToken as ITcpClientProxy; //bool receiveComplete = dataHandler.ReceiveData(receiveContext); List <IPackageInfo> packages = null; bool receiveComplete = dataHandler.TryReceivePackages(receiveContext, out packages); if (receiveComplete) { // 调用消息接收完毕事件 try { this.OnMessageReceived(receiveContext); } catch (Exception ex) { _logger.Error(ex.StackTrace); } // 返回响应消息 // review: 这里应该用TryReceivePackages返回的集合? IPackageInfo response = dataHandler.ExchangedData as IPackageInfo; if (response != null) { SendReuseAsync(dataHandler, response.ToBytes()); } else if (this.Echo) { SendReuseAsync(dataHandler, dataHandler.LastReceivedBytes); } else { StartReceive(receiveContext); } //string exchnagedData = dataHandler.ExchangedData == null ? "" : dataHandler.ExchangedData.ToString(); ////todo: 消息分段发送 //if (string.IsNullOrEmpty(exchnagedData) && this.Echo) //{ // //dataHandler.Echo(receiveContext); // //Send(dataHandler, dataHandler.LastMessage.Content); // if (packages.Count > 0) // { // Send(dataHandler, packages[0].ToBytes()); // } // //Send(dataHandler, packages[0].ToBytes()); //} //else //{ // //Send(dataHandler, exchnagedData); //} //dataHandler.PrepareOutgoingData(dataHandler.SendContext, exchnagedData); //StartSend(dataHandler.SendContext); } else { // 如果没有读取完,继续接收下一段数据 StartReceive(receiveContext); } } catch (Exception ex) { _logger.Error("Unexpected error:" + ex.StackTrace); Console.WriteLine("Unexpected error:" + ex.StackTrace); } } else { Console.WriteLine("Socket接受时错误, 代号:" + receiveContext.SocketError); _logger.Error("Socket接受时错误, 代号:" + receiveContext.SocketError); this.ProcessError(receiveContext); } } else { // 如果远程端关闭了连接,这里也关闭Socket Console.WriteLine("平板端关闭了连接."); _logger.Error("平板端关闭了连接."); this.ProcessError(receiveContext); } }
public bool Send(ITcpClientProxy target, IPackageInfo content) { return(Send(target, content.ToBytes())); }
public void Nuke(IPackageInfo packageInfo) { _navigator.Nuke(packageInfo); }
public void Push(IPackageInfo bottle) { _currentProvenance = (_currentProvenance ?? new ProvenanceChain(new Provenance[0])).Push(new BottleProvenance(bottle)); }
/// <summary> /// Initializes a new instance of the <see cref="CommandExecutingContext" /> class. /// </summary> /// <param name="session">The session.</param> /// <param name="requestInfo">The request info.</param> /// <param name="command">The command.</param> public void Initialize(IAppSession session, IPackageInfo requestInfo, ICommand command) { Session = session; Request = requestInfo; CurrentCommand = command; }
protected abstract void HandlePackage(IPackageInfo package);
public PackageGacConflictResult(IPackageInfo packageInfo, IEnumerable <AssemblyName> assemblyNames) { _packageInfo = packageInfo; _assemblyNames = assemblyNames; }
// just in log to package public void LogDuplicateAssembly(IPackageInfo package, string assemblyName) { LogFor(package).Trace("Assembly '{0}' was ignored because it is already loaded".ToFormat(assemblyName)); }
public ExportDataServiceClient(string url, string sessionId, IPackageInfo packageInfo, IConnectivityService connectivityService) : base(url, sessionId, packageInfo, connectivityService, null) { }
public void Push(IPackageInfo bottle) { _currentProvenance = _currentProvenance.Push(new BottleProvenance(bottle)); }
public PackageLocked(IPackageInfo package) : base("Package '{0}' locked at version '{1}'.", package.Name, package.Version) { Package = package; }
protected bool VisitNodes(IPackageInfo from, PackageDependency dependency, IPackageInfo to) { visited.Add(to); return(true); }
public void LogAssemblyFailure(IPackageInfo package, string fileName, Exception exception) { var log = LogFor(package); log.MarkFailure(exception); log.Trace("Failed to load assembly at '{0}'".ToFormat(fileName)); }
internal void Nuke(IPackageInfo packageInfo) { if (packageInfo.Nuked) throw new InvalidOperationException("The package has already been nuked."); #pragma warning disable 612,618 var packageVersionNode = (from node in IndexDocument.Descendants("wrap") let versionAttribute = node.Attribute("version") let semverAttribute = node.Attribute("semantic-version") let nameAttribute = node.Attribute("name") where nameAttribute != null && nameAttribute.Value.EqualsNoCase(packageInfo.Name) && ((semverAttribute != null && semverAttribute.Value.Equals(packageInfo.SemanticVersion.ToString())) || (versionAttribute != null && versionAttribute.Value.Equals(packageInfo.Version.ToString()))) select node).FirstOrDefault(); #pragma warning restore 612,618 if (packageVersionNode == null) throw new InvalidOperationException( string.Format("The package {0} {1} does not exist in the index.", packageInfo.Name, packageInfo.SemanticVersion)); packageVersionNode.Add(new XAttribute("nuked", true)); SaveIndex(IndexDocument); }
public void SetUp() { assembly = Assembly.GetExecutingAssembly(); package = new AssemblyPackageInfo(assembly); }
void LoadDescriptor() { using (Stream zipStream = PackageFile.OpenRead()) using (var zip = new ZipFile(zipStream)) { var entries = zip.Cast<ZipEntry>(); ZipEntry descriptorFile = entries.FirstOrDefault(x => x.Name.EndsWith(".wrapdesc")); if (descriptorFile == null) throw new InvalidOperationException(String.Format("The package '{0}' doesn't contain a valid .wrapdesc file.", PackageFile.Name)); ZipEntry versionFile = entries.SingleOrDefault(x => x.Name.EqualsNoCase("version")); Version versionFromVersionFile = versionFile != null ? zip.Read(versionFile, x => x.ReadString().ToVersion()) : null; var descriptor = zip.Read(descriptorFile, x => new PackageDescriptorReader().Read(x)); _descriptor = new DefaultPackageInfo(PackageFile.Name, versionFromVersionFile, descriptor); if (Descriptor.Version == null) throw new InvalidOperationException("The package '{0}' doesn't have a valid version, looked in the 'wrapdesc' file, in 'version' and in the package file-name."); } }
public void ReadPackage(IPackageInfo package) { _currentPackage = package; package.LoadAssemblies(this); }
public PackageUpToDateResult(IPackageInfo existingUpToDateVersion, IPackageRepository repository) { Package = existingUpToDateVersion; DestinationRepository = repository; }
//why is this virtual? - for testing public virtual void LoadAssembliesFromPackage(IPackageInfo packageInfo) { _currentPackage = packageInfo; packageInfo.LoadAssemblies(this); }
public DirectionsServiceClient(string url, string sessionId, IPackageInfo packageInfo) : base(url, sessionId, packageInfo) { }
public PackageInstallationCompleteEventArgs(IPackageInfo package, int packageIndex) { this.package = package; this.packageIndex = packageIndex; }
public void SetUp() { new FileSystem().DeleteDirectory("content"); thePackage = new AssemblyPackageInfo(typeof(AssemblyPackageMarker).Assembly); }
public PackageDownloadStartEventArgs(IPackageInfo package, IFileDownload download) { this.package = package; this.download = download; }
protected bool VisitNodes(IPackageInfo from, PackageDependency dependency, IPackageInfo to) { visited.Add(to); return true; }
private static ConfigureSparkSettingsExpression registerViewFolder(ConfigureSparkExpression expression, IPackageInfo package) { var virtualFolderRoot = "~/{0}/{1}/{2}/views/".ToFormat(BottleFiles.ContentFolder, package.Name, BottleFiles.WebContentFolder); return(expression.Settings.AddViewFolder(virtualFolderRoot)); }
public reading_the_dynamicproxy_package() { given_repository(); castle_proxy = Repository.PackagesByName["castle-dynamicproxy"].First(); }
public CompanyServiceClient(string url, string sessionId, IPackageInfo packageInfo, ICacheService cacheService, IConnectivityService connectivityService, ILogger logger) : base(url, sessionId, packageInfo, connectivityService, logger) { _cacheService = cacheService; }