Changeset 8419


Ignore:
Timestamp:
Oct 18, 2019, 8:17:09 PM (2 years ago)
Author:
kopal
Message:
  • CrypToolStore:

a HandleRequestPublishedResourceListMessage now contains the file sizes of each resource file
revert and fixes in BuildWorker

Location:
trunk/LibSource/CrypToolStoreLib
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/LibSource/CrypToolStoreLib/CrypToolStoreBuildSystem/BuildWorker.cs

    r8224 r8419  
    6666
    6767        /// <summary>
    68         /// Name of the csproj files of the plugin
    69         /// </summary>
    70         private List<string> CSProjFileName
     68        /// Name of the csproj file of the plugin
     69        /// </summary>
     70        private string CSProjFileName
    7171        {
    7272            get;
     
    118118            ServerCertificate = serverCetificate;
    119119            Source = source;
    120             CSProjFileName = new List<string>();
    121120        }
    122121
     
    175174
    176175                // note: Also makes references to
    177                 // --> signing certificateStep
     176                // --> signing certificate
    178177                // --> custom build tasks
    179178                // --> ct2 libraries (CrypCore.dll and CrypPluginBase.dll)
     
    567566                if (name.ToLower().EndsWith(fileEnding))
    568567                {
    569                     CSProjFileName.Add(dir + "\\" + name);
     568                    CSProjFileName = name;
    570569                    counter++;
    571570                }
     
    590589        {
    591590            //Step 0: load csproj xml file
    592             foreach (var csprojFileName in CSProjFileName)
    593             {
    594                 XDocument csprojXDocument = XDocument.Load(csprojFileName);
    595 
    596                 XNamespace defaultNamespace = csprojXDocument.Root.GetDefaultNamespace();
    597 
    598                 //Step 1: change output path (of Release) to correct path
    599                 IEnumerable<XElement> outputPaths = csprojXDocument.Descendants();
    600 
    601                 bool changedOutputPath = false;
    602                 foreach (XElement outputPath in outputPaths)
    603                 {
    604                     if (outputPath.Name.LocalName.ToLower().Equals("outputpath") && outputPath.Value.ToLower().Contains("release"))
     591            XDocument csprojXDocument = XDocument.Load(CSProjFileName);
     592
     593            XNamespace defaultNamespace = csprojXDocument.Root.GetDefaultNamespace();
     594
     595            //Step 1: change output path (of Release) to correct path
     596            IEnumerable<XElement> outputPaths = csprojXDocument.Descendants();
     597
     598            bool changedOutputPath = false;
     599            foreach (XElement outputPath in outputPaths)
     600            {
     601                if (outputPath.Name.LocalName.ToLower().Equals("outputpath") && outputPath.Value.ToLower().Contains("release"))
     602                {                   
     603                    outputPath.Value = @"..\build_output\";
     604                    changedOutputPath = true;
     605                    Logger.LogText(@"(Buildstep 6) Changed output path of Release target", this, Logtype.Info);                   
     606                }
     607            }
     608           
     609            //Step 2: change project reference to correct path of CrypPluginBase
     610            IEnumerable<XElement> projectReferences = csprojXDocument.Descendants();
     611           
     612            bool changedCrypPluginBaseReference = false;
     613            foreach (XElement projectReference in projectReferences)
     614            {
     615                XAttribute includeAttribute = projectReference.Attribute("Include");
     616                if (projectReference.Name.LocalName.ToLower().Equals("projectreference") && includeAttribute != null && !string.IsNullOrEmpty(includeAttribute.Value) && includeAttribute.Value.ToLower().Contains("cryppluginbase"))
     617                {
     618                    //change include attribute value
     619                    includeAttribute.Value = @"CrypPluginBase";                   
     620
     621                    //change/add private element
     622                    XElement privateElement = projectReference.Element("Private");
     623                    if (privateElement != null)
    605624                    {
    606                         outputPath.Value = @"..\build_output\";
    607                         changedOutputPath = true;
    608                         Logger.LogText(@"(Buildstep 6) Changed output path of Release target", this, Logtype.Info);
     625                        privateElement.Value = "false";                       
    609626                    }
    610                 }
    611 
    612                 //Step 2: change project reference to correct path of CrypPluginBase
    613                 IEnumerable<XElement> projectReferences = csprojXDocument.Descendants();
    614 
    615                 bool changedCrypPluginBaseReference = false;
    616                 foreach (XElement projectReference in projectReferences)
    617                 {
    618                     XAttribute includeAttribute = projectReference.Attribute("Include");
    619                     if (projectReference.Name.LocalName.ToLower().Equals("projectreference") && includeAttribute != null && !string.IsNullOrEmpty(includeAttribute.Value) && includeAttribute.Value.ToLower().Contains("cryppluginbase"))
     627                    else
    620628                    {
    621                         //change include attribute value
    622                         includeAttribute.Value = @"CrypPluginBase";
    623 
    624                         //change/add private element
    625                         XElement privateElement = projectReference.Element("Private");
    626                         if (privateElement != null)
    627                         {
    628                             privateElement.Value = "false";
    629                         }
    630                         else
    631                         {
    632                             privateElement = new XElement(defaultNamespace + "Private");
    633                             privateElement.Value = "false";
    634                             projectReference.Add(privateElement);
    635                         }
    636 
    637                         //Change type of reference
    638                         projectReference.Name = defaultNamespace + "Reference";
    639 
    640                         //Add hint path to CrypPluginBase                   
    641                         XElement hintPathElement = new XElement(defaultNamespace + "HintPath");
    642                         hintPathElement.Value = @"..\..\..\CT2_Libraries\CrypPluginBase.dll";
    643                         projectReference.Add(hintPathElement);
    644 
    645                         changedCrypPluginBaseReference = true;
    646                         Logger.LogText("(Buildstep 6) Changed reference to CrypPluginBase", this, Logtype.Info);
     629                        privateElement = new XElement(defaultNamespace + "Private");
     630                        privateElement.Value = "false";
     631                        projectReference.Add(privateElement);
    647632                    }
    648                 }
    649 
    650                 if (!changedOutputPath)
    651                 {
    652                     Logger.LogText("(Buildstep 6) Did not find Release target to change output path of build", this, Logtype.Error);
    653                     return false;
    654                 }
    655                 if (!changedCrypPluginBaseReference)
    656                 {
    657                     Logger.LogText("(Buildstep 6) Did not find reference to CrypPluginBase.dll to change it", this, Logtype.Error);
    658                     return false;
    659                 }
    660                 csprojXDocument.Save(csprojFileName, SaveOptions.OmitDuplicateNamespaces);
    661                 Logger.LogText(String.Format("(Buildstep 6) Wrote changes to {0}", CSProjFileName), this, Logtype.Info);
    662             }
     633
     634                    //Change type of reference
     635                    projectReference.Name = defaultNamespace + "Reference";                   
     636
     637                    //Add hint path to CrypPluginBase                   
     638                    XElement hintPathElement = new XElement(defaultNamespace + "HintPath");
     639                    hintPathElement.Value = @"..\..\..\CT2_Libraries\CrypPluginBase.dll";
     640                    projectReference.Add(hintPathElement);
     641
     642                    changedCrypPluginBaseReference = true;
     643                    Logger.LogText("(Buildstep 6) Changed reference to CrypPluginBase", this, Logtype.Info);
     644                }
     645            }
     646
     647            if (!changedOutputPath)
     648            {
     649                Logger.LogText("(Buildstep 6) Did not find Release target to change output path of build", this, Logtype.Error);
     650                return false;
     651            }
     652            if (!changedCrypPluginBaseReference)
     653            {
     654                Logger.LogText("(Buildstep 6) Did not find reference to CrypPluginBase.dll to change it", this, Logtype.Error);
     655                return false;
     656            }           
     657            csprojXDocument.Save(CSProjFileName,SaveOptions.OmitDuplicateNamespaces);
     658            Logger.LogText(String.Format("(Buildstep 6) Wrote changes to {0}", CSProjFileName), this, Logtype.Info);
     659
    663660            return true;
    664661        }
  • trunk/LibSource/CrypToolStoreLib/CrypToolStoreLib/Server/Server.cs

    r8109 r8419  
    19371937                {
    19381938                    List<ResourceAndResourceData> resourcesAndResourceDatas = Database.GetPublishedResources(requestPublishedResourceListMessage.PublishState);
     1939                    foreach (ResourceAndResourceData resourceAndResourceData in resourcesAndResourceDatas)
     1940                    {
     1941                        try
     1942                        {
     1943                            string filename = Constants.CLIENTHANDLER_RESOURCEDATA_FOLDER + Path.DirectorySeparatorChar + "ResourceData-" + resourceAndResourceData.ResourceData.ResourceId + "-" + resourceAndResourceData.ResourceData.ResourceVersion + ".bin";
     1944                            FileInfo fileInfo = new FileInfo(filename);
     1945                            resourceAndResourceData.FileSize = fileInfo.Length;
     1946                        }
     1947                        catch (Exception)
     1948                        {
     1949                            resourceAndResourceData.FileSize = 0;
     1950                        }
     1951                    }
    19391952                    ResponsePublishedResourceListMessage response = new ResponsePublishedResourceListMessage();
    19401953                    response.ResourcesAndResourceDatas = resourcesAndResourceDatas;
Note: See TracChangeset for help on using the changeset viewer.