Skip to content

Commit 9d34c91

Browse files
committed
Merge remote-tracking branch 'refs/remotes/origin/dev'
2 parents 26da68d + d997741 commit 9d34c91

10 files changed

Lines changed: 63 additions & 28 deletions

File tree

src/CommonAssemblyInfo.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
[assembly: ComVisible(false)]
1515

16-
[assembly: AssemblyVersion("2.10.3.0")]
17-
[assembly: AssemblyFileVersion("2.10.3.0")]
16+
[assembly: AssemblyVersion("2.11.1.0")]
17+
[assembly: AssemblyFileVersion("2.11.1.0")]
1818

1919
[assembly: NeutralResourcesLanguage("en-US")]

src/NuGet.Server/Core/DefaultServiceResolver.cs

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,19 @@ public class DefaultServiceResolver
1212
: IServiceResolver
1313
{
1414
private readonly IHashProvider _hashProvider;
15-
private readonly IPackageService _packageService;
1615
private readonly IServerPackageRepository _packageRepository;
16+
private readonly IPackageAuthenticationService _packageAuthenticationService;
17+
private readonly IPackageService _packageService;
1718

1819
public DefaultServiceResolver()
1920
{
2021
_hashProvider = new CryptoHashProvider(Constants.HashAlgorithm);
2122

22-
_packageRepository = new ServerPackageRepository(PackageUtility.PackagePhysicalPath, _hashProvider, new TraceLogger());
23+
_packageRepository = new ServerPackageRepository(PackageUtility.PackagePhysicalPath, _hashProvider, new TraceLogger());
2324

24-
_packageService = new PackageService(_packageRepository, new PackageAuthenticationService());
25+
_packageAuthenticationService = new PackageAuthenticationService();
26+
27+
_packageService = new PackageService(_packageRepository, _packageAuthenticationService);
2528
}
2629

2730
public object Resolve(Type type)
@@ -31,14 +34,19 @@ public object Resolve(Type type)
3134
return _hashProvider;
3235
}
3336

34-
if (type == typeof(IPackageService))
37+
if (type == typeof(IServerPackageRepository))
3538
{
36-
return _packageService;
39+
return _packageRepository;
3740
}
3841

39-
if (type == typeof(IServerPackageRepository))
42+
if (type == typeof(IPackageAuthenticationService))
4043
{
41-
return _packageRepository;
44+
return _packageAuthenticationService;
45+
}
46+
47+
if (type == typeof(IPackageService))
48+
{
49+
return _packageService;
4250
}
4351

4452
return null;

src/NuGet.Server/Infrastructure/ServerPackageRepository.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ private void AddPackagesFromDropFolder()
186186
try
187187
{
188188
// Create package
189-
var package = new ZipPackage(_fileSystem.OpenFile(packageFile));
189+
var package = new OptimizedZipPackage(_fileSystem, packageFile);
190190

191191
// Is it a symbols package?
192192
if (IgnoreSymbolsPackages && package.IsSymbolsPackage())
@@ -235,6 +235,8 @@ private void AddPackagesFromDropFolder()
235235
}
236236
finally
237237
{
238+
OptimizedZipPackage.PurgeCache();
239+
238240
MonitorFileSystem(true);
239241
}
240242
}
@@ -552,6 +554,8 @@ public void ClearCache()
552554
{
553555
lock (_syncLock)
554556
{
557+
OptimizedZipPackage.PurgeCache();
558+
555559
_serverPackageStore.Clear();
556560
_serverPackageStore.Persist();
557561
_logger.Log(LogLevel.Info, "Cleared package cache.");

src/NuGet.Server/NuGet.Server.csproj

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,11 +38,12 @@
3838
</Reference>
3939
<Reference Include="Newtonsoft.Json, Version=8.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
4040
<SpecificVersion>False</SpecificVersion>
41-
<HintPath>..\..\packages\Newtonsoft.Json.8.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
41+
<HintPath>..\..\packages\Newtonsoft.Json.8.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
4242
<Private>True</Private>
4343
</Reference>
44-
<Reference Include="NuGet.Core, Version=2.10.1.766, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
45-
<HintPath>..\..\packages\NuGet.Core.2.10.1\lib\net40-Client\NuGet.Core.dll</HintPath>
44+
<Reference Include="NuGet.Core, Version=2.11.1.812, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
45+
<SpecificVersion>False</SpecificVersion>
46+
<HintPath>..\..\packages\NuGet.Core.2.11.1\lib\net40-Client\NuGet.Core.dll</HintPath>
4647
<Private>True</Private>
4748
</Reference>
4849
<Reference Include="RouteMagic, Version=1.3.0.0, Culture=neutral, PublicKeyToken=84b59be021aa4cee, processorArchitecture=MSIL">

src/NuGet.Server/NuGet.Server.nuspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
<frameworkAssembly assemblyName="System.Data.Services" />
1717
</frameworkAssemblies>
1818
<dependencies>
19-
<dependency id="NuGet.Core" version="[2.10.1,)" />
19+
<dependency id="NuGet.Core" version="[2.11.1,)" />
2020
<dependency id="Microsoft.Web.Xdt" version="[2.1.1,)" />
2121
</dependencies>
2222
</metadata>

src/NuGet.Server/Publishing/PackageService.cs

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,23 +32,43 @@ public void CreatePackage(HttpContextBase context)
3232

3333
// Get the package from the request body
3434
// ReSharper disable once PossibleNullReferenceException
35-
var stream = request.Files.Count > 0 ? request.Files[0].InputStream : request.InputStream;
35+
var stream = request.Files.Count > 0
36+
? request.Files[0].InputStream
37+
: request.InputStream;
3638

37-
var package = new ZipPackage(stream);
39+
// Copy the package to a temporary file
40+
var temporaryFile = Path.GetTempFileName();
41+
using (var temporaryFileStream = File.Open(temporaryFile, FileMode.OpenOrCreate, FileAccess.ReadWrite))
42+
{
43+
stream.CopyTo(temporaryFileStream);
44+
}
45+
46+
var package = new OptimizedZipPackage(temporaryFile);
3847

39-
// Make sure they can access this package
48+
// Make sure the user can access this package
4049
if (Authenticate(context, apiKey, package.Id))
4150
{
4251
try
4352
{
4453
_serverRepository.AddPackage(package);
54+
4555
WriteStatus(context, HttpStatusCode.Created, "");
4656
}
4757
catch (InvalidOperationException ex)
4858
{
4959
WriteStatus(context, HttpStatusCode.InternalServerError, ex.Message);
5060
}
5161
}
62+
63+
package = null;
64+
try
65+
{
66+
File.Delete(temporaryFile);
67+
}
68+
catch (Exception)
69+
{
70+
WriteStatus(context, HttpStatusCode.InternalServerError, "Could not remove temporary upload file.");
71+
}
5272
}
5373

5474
public void PublishPackage(HttpContextBase context)

src/NuGet.Server/Strings.resx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,6 @@
121121
<value>Package {0} already exists. The server is configured to not allow overwriting packages that already exist.</value>
122122
</data>
123123
<data name="Error_SymbolsPackagesIgnored" xml:space="preserve">
124-
<value>Package {0} is a symbols package (it contains .pdb fiels and a /src folder). The server is configured to ignore symbols packages.</value>
124+
<value>Package {0} is a symbols package (it contains .pdb files and a /src folder). The server is configured to ignore symbols packages.</value>
125125
</data>
126126
</root>

src/NuGet.Server/packages.config

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
<packages>
33
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" />
44
<package id="Microsoft.Web.Xdt" version="2.1.1" targetFramework="net40" />
5-
<package id="Newtonsoft.Json" version="8.0.1" targetFramework="net45" />
6-
<package id="NuGet.Core" version="2.10.1" targetFramework="net40" />
5+
<package id="Newtonsoft.Json" version="8.0.3" targetFramework="net45" />
6+
<package id="NuGet.Core" version="2.11.1" targetFramework="net45" />
77
<package id="RouteMagic" version="1.3" targetFramework="net40" />
88
<package id="WebActivatorEx" version="2.1.0" targetFramework="net45" />
99
</packages>

test/NuGet.Server.Tests/NuGet.Server.Tests.csproj

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,17 +23,19 @@
2323
<HintPath>..\..\packages\Microsoft.Web.Xdt.2.1.1\lib\net40\Microsoft.Web.XmlTransform.dll</HintPath>
2424
<Private>True</Private>
2525
</Reference>
26-
<Reference Include="Moq, Version=4.2.1510.2205, Culture=neutral, PublicKeyToken=69f491c39445e920, processorArchitecture=MSIL">
27-
<HintPath>..\..\packages\Moq.4.2.1510.2205\lib\net40\Moq.dll</HintPath>
26+
<Reference Include="Moq, Version=4.5.0.0, Culture=neutral, PublicKeyToken=69f491c39445e920, processorArchitecture=MSIL">
27+
<SpecificVersion>False</SpecificVersion>
28+
<HintPath>..\..\packages\Moq.4.5.0\lib\net45\Moq.dll</HintPath>
2829
<Private>True</Private>
2930
</Reference>
3031
<Reference Include="Newtonsoft.Json, Version=8.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
3132
<SpecificVersion>False</SpecificVersion>
32-
<HintPath>..\..\packages\Newtonsoft.Json.8.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
33+
<HintPath>..\..\packages\Newtonsoft.Json.8.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
3334
<Private>True</Private>
3435
</Reference>
35-
<Reference Include="NuGet.Core, Version=2.10.1.766, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
36-
<HintPath>..\..\packages\NuGet.Core.2.10.1\lib\net40-Client\NuGet.Core.dll</HintPath>
36+
<Reference Include="NuGet.Core, Version=2.11.1.812, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
37+
<SpecificVersion>False</SpecificVersion>
38+
<HintPath>..\..\packages\NuGet.Core.2.11.1\lib\net40-Client\NuGet.Core.dll</HintPath>
3739
<Private>True</Private>
3840
</Reference>
3941
<Reference Include="System" />

test/NuGet.Server.Tests/packages.config

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<packages>
33
<package id="Microsoft.Web.Xdt" version="2.1.1" targetFramework="net45" />
4-
<package id="Moq" version="4.2.1510.2205" targetFramework="net45" />
5-
<package id="Newtonsoft.Json" version="8.0.1" targetFramework="net45" />
6-
<package id="NuGet.Core" version="2.10.1" targetFramework="net45" />
4+
<package id="Moq" version="4.5.0" targetFramework="net45" />
5+
<package id="Newtonsoft.Json" version="8.0.3" targetFramework="net45" />
6+
<package id="NuGet.Core" version="2.11.1" targetFramework="net45" />
77
<package id="xunit" version="2.1.0" targetFramework="net45" />
88
<package id="xunit.abstractions" version="2.0.0" targetFramework="net45" />
99
<package id="xunit.assert" version="2.1.0" targetFramework="net45" />

0 commit comments

Comments
 (0)