public void ReadPackage(IPackageInfo package, IPackageLog log)
        {
            _currentPackage = package;

            //double dispatch - hard to follow - at the moment
            package.LoadAssemblies(this);
        }
Ejemplo n.º 2
0
            protected void when_finding_packages(string dependency)
            {
                var dep = new WrapDescriptor();
                new DependsParser().Parse(dependency, dep);

                FoundPackage = Repository.Find(dep.Dependencies.First());
            }
Ejemplo n.º 3
0
 public void DeployDependency(IPackageInfo resolvedPackage,
     IPackagePublisher publisher)
 {
     var source = resolvedPackage.Load();
     using (var packageStream = source.OpenStream())
         publisher.Publish(resolvedPackage.FullName + ".wrap", packageStream);
 }
Ejemplo n.º 4
0
 // 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);
 }
Ejemplo n.º 5
0
 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);
 }
Ejemplo n.º 6
0
 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();
 }
Ejemplo n.º 7
0
 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;
 }
Ejemplo n.º 8
0
 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;
 }
Ejemplo n.º 9
0
        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();
        }
Ejemplo n.º 10
0
        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);
            }
        }
Ejemplo n.º 11
0
        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);
        }
Ejemplo n.º 12
0
        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;
        }
Ejemplo n.º 13
0
        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());
            });
        }
Ejemplo n.º 14
0
        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");
        }
Ejemplo n.º 15
0
 bool PackageShouldBeKept(IPackageInfo packageInfo)
 {
     bool matchesName = packageInfo.Name.EqualsNoCase(Name);
     bool matchesVersion = Version == null ? true : packageInfo.Version == Version;
     return !(matchesName && matchesVersion);
 }
Ejemplo n.º 16
0
 public PackageAddedResult(IPackageInfo package, IPackageRepository repository)
 {
     Package = package;
     Repository = repository;
 }
Ejemplo n.º 17
0
 public PackageUpdatedResult(IPackageInfo previousPackage, IPackageInfo package, IPackageRepository repository)
     : base(package, repository)
 {
     PreviousPackage = previousPackage;
 }
Ejemplo n.º 18
0
 public PackageLocation(IDirectory cacheDir, IPackageInfo package)
 {
     CacheDirectory = cacheDir;
     Package = package;
 }
Ejemplo n.º 19
0
 public PackageAddedResult(IPackageInfo package, ISupportPublishing repository)
 {
     Package = package;
     Repository = repository;
 }
Ejemplo n.º 20
0
 public void LogPackage(IPackageInfo package, IPackageLoader loader)
 {
     LogObject(package, "Loaded by " + loader);
     LogFor(loader).AddChild(package);
 }
Ejemplo n.º 21
0
 public PackageUpdatedResult(IPackageInfo previousPackage, IPackageInfo package, IPackageRepository repository)
     : base(package, repository)
 {
     PreviousPackage = previousPackage;
 }
Ejemplo n.º 22
0
 public MetricsServiceClient(string url, string sessionId, IPackageInfo packageInfo, IConnectivityService connectivityService, ILogger logger)
     : base(url, sessionId, packageInfo, connectivityService, logger)
 {
 }
Ejemplo n.º 23
0
 public PackageUninstaller(IPackageInfo packageInfo, IPackageFileList packageFileList)
 {
     this.packageInfo     = packageInfo;
     this.packageFileList = packageFileList;
 }
Ejemplo n.º 24
0
        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);
        }
Ejemplo n.º 25
0
 public BottleProvenance(IPackageInfo bottle)
 {
     _bottle = bottle;
 }
Ejemplo n.º 26
0
 public bool UpdatePackage(IPackageInfo package)
 {
     return(UpdatePackage(Locate(package?.Id), package.Version, package.Meta));
 }
Ejemplo n.º 27
0
 public bool RemovePackage(IPackageInfo package) => RemovePackage(package?.Id);
Ejemplo n.º 28
0
        /// <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);
            }
        }
Ejemplo n.º 29
0
 public bool Send(ITcpClientProxy target, IPackageInfo content)
 {
     return(Send(target, content.ToBytes()));
 }
Ejemplo n.º 30
0
 public void Nuke(IPackageInfo packageInfo)
 {
     _navigator.Nuke(packageInfo);
 }
Ejemplo n.º 31
0
 public void Push(IPackageInfo bottle)
 {
     _currentProvenance = (_currentProvenance ?? new ProvenanceChain(new Provenance[0])).Push(new BottleProvenance(bottle));
 }
Ejemplo n.º 32
0
 /// <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;
 }
Ejemplo n.º 33
0
 protected abstract void HandlePackage(IPackageInfo package);
Ejemplo n.º 34
0
 public PackageGacConflictResult(IPackageInfo packageInfo, IEnumerable <AssemblyName> assemblyNames)
 {
     _packageInfo   = packageInfo;
     _assemblyNames = assemblyNames;
 }
Ejemplo n.º 35
0
 // 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)
 {
 }
Ejemplo n.º 37
0
 public void Push(IPackageInfo bottle)
 {
     _currentProvenance = _currentProvenance.Push(new BottleProvenance(bottle));
 }
Ejemplo n.º 38
0
 public PackageLocked(IPackageInfo package) : base("Package '{0}' locked at version '{1}'.", package.Name, package.Version)
 {
     Package = package;
 }
Ejemplo n.º 39
0
 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);
 }
Ejemplo n.º 40
0
 protected bool VisitNodes(IPackageInfo from, PackageDependency dependency, IPackageInfo to)
 {
     visited.Add(to);
     return(true);
 }
Ejemplo n.º 41
0
 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));
 }
Ejemplo n.º 42
0
 public void LogPackage(IPackageInfo package, IPackageLoader loader)
 {
     LogObject(package, "Loaded by " + loader);
     LogFor(loader).AddChild(package);
 }
Ejemplo n.º 43
0
        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);
        }
Ejemplo n.º 44
0
 public void SetUp()
 {
     assembly = Assembly.GetExecutingAssembly();
     package  = new AssemblyPackageInfo(assembly);
 }
Ejemplo n.º 45
0
 public PackageAddedResult(IPackageInfo package, IPackageRepository repository)
 {
     Package    = package;
     Repository = repository;
 }
Ejemplo n.º 46
0
        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.");
            }
        }
Ejemplo n.º 47
0
 public void ReadPackage(IPackageInfo package)
 {
     _currentPackage = package;
     package.LoadAssemblies(this);
 }
Ejemplo n.º 48
0
 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);
 }
Ejemplo n.º 50
0
 public DirectionsServiceClient(string url, string sessionId, IPackageInfo packageInfo)
     : base(url, sessionId, packageInfo)
 {
 }
Ejemplo n.º 51
0
 public PackageInstallationCompleteEventArgs(IPackageInfo package, int packageIndex)
 {
     this.package      = package;
     this.packageIndex = packageIndex;
 }
Ejemplo n.º 52
0
 public void SetUp()
 {
     new FileSystem().DeleteDirectory("content");
     thePackage = new AssemblyPackageInfo(typeof(AssemblyPackageMarker).Assembly);
 }
Ejemplo n.º 53
0
 // 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));
 }
Ejemplo n.º 54
0
 public PackageDownloadStartEventArgs(IPackageInfo package, IFileDownload download)
 {
     this.package  = package;
     this.download = download;
 }
Ejemplo n.º 55
0
 protected bool VisitNodes(IPackageInfo from, PackageDependency dependency, IPackageInfo to)
 {
     visited.Add(to);
     return true;
 }
Ejemplo n.º 56
0
 public PackageLocation(IDirectory cacheDir, IPackageInfo package)
 {
     CacheDirectory = cacheDir;
     Package        = package;
 }
Ejemplo n.º 57
0
 public PackageUninstaller(IPackageInfo packageInfo, IPackageFileList packageFileList)
 {
     this.packageInfo = packageInfo;
     this.packageFileList = packageFileList;
 }
Ejemplo n.º 58
0
        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));
        }
Ejemplo n.º 59
0
 public reading_the_dynamicproxy_package()
 {
     given_repository();
     castle_proxy = Repository.PackagesByName["castle-dynamicproxy"].First();
 }
Ejemplo n.º 60
0
 public CompanyServiceClient(string url, string sessionId, IPackageInfo packageInfo, ICacheService cacheService, IConnectivityService connectivityService, ILogger logger)
     : base(url, sessionId, packageInfo, connectivityService, logger)
 {
     _cacheService = cacheService;
 }