AmbulantRex 
							
						 
					 
					
						
						
						
						
							
						
						
							c717425549 
							
						 
					 
					
						
						
							
							Remove unnecessary type extension  and handle feedback.  
						
						
						
						
					 
					
						2023-04-16 18:47:57 -06:00 
						 
				 
			
				
					
						
							
							
								AmbulantRex 
							
						 
					 
					
						
						
						
						
							
						
						
							92f50054b2 
							
						 
					 
					
						
						
							
							Add explicit mapping instead of reflection to manifest reconciliation.  
						
						
						
						
					 
					
						2023-04-16 07:46:12 -06:00 
						 
				 
			
				
					
						
							
							
								AmbulantRex 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							4a0b135b7a 
							
						 
					 
					
						
						
							
							Merge branch 'jellyfin:master' into whitelist-dlls  
						
						
						
						
					 
					
						2023-04-15 07:11:33 -06:00 
						 
				 
			
				
					
						
							
							
								AmbulantRex 
							
						 
					 
					
						
						
						
						
							
						
						
							7dd4201971 
							
						 
					 
					
						
						
							
							Reconcile pre-packaged meta.json against manifest on install  
						
						
						
						
					 
					
						2023-04-09 10:53:09 -06:00 
						 
				 
			
				
					
						
							
							
								Stepan Goremykin 
							
						 
					 
					
						
						
						
						
							
						
						
							e74630a613 
							
						 
					 
					
						
						
							
							Use MinBy and MaxBy  
						
						
						
						
					 
					
						2023-04-01 23:00:51 +02:00 
						 
				 
			
				
					
						
							
							
								AmbulantRex 
							
						 
					 
					
						
						
						
						
							
						
						
							a944352aa8 
							
						 
					 
					
						
						
							
							Correct style inconsistencies  
						
						
						
						
					 
					
						2023-04-01 04:59:07 -06:00 
						 
				 
			
				
					
						
							
							
								AmbulantRex 
							
						 
					 
					
						
						
						
						
							
						
						
							677b1f8e34 
							
						 
					 
					
						
						
							
							Remove unnecessary using statements in PluginManager  
						
						
						
						
					 
					
						2023-03-30 12:56:57 -06:00 
						 
				 
			
				
					
						
							
							
								AmbulantRex 
							
						 
					 
					
						
						
						
						
							
						
						
							891b9f7a99 
							
						 
					 
					
						
						
							
							Add DLL whitelist support for plugins  
						
						
						
						
					 
					
						2023-03-30 08:59:21 -06:00 
						 
				 
			
				
					
						
							
							
								Patrick Barron 
							
						 
					 
					
						
						
						
						
							
						
						
							8cabac0cf2 
							
						 
					 
					
						
						
							
							Load all plugin assemblies before attempting to load types  
						
						
						
						
					 
					
						2023-01-18 10:26:39 -05:00 
						 
				 
			
				
					
						
							
							
								Patrick Barron 
							
						 
					 
					
						
						
						
						
							
						
						
							79a7815be7 
							
						 
					 
					
						
						
							
							Use one AssemblyLoadContext per plugin  
						
						
						
						
					 
					
						2023-01-17 18:49:00 -05:00 
						 
				 
			
				
					
						
							
							
								Patrick Barron 
							
						 
					 
					
						
						
						
						
							
						
						
							577d396649 
							
						 
					 
					
						
						
							
							Use custom plugin assembly load context  
						
						
						
						
					 
					
						2023-01-15 17:35:36 -05:00 
						 
				 
			
				
					
						
							
							
								Patrick Barron 
							
						 
					 
					
						
						
						
						
							
						
						
							a48f188874 
							
						 
					 
					
						
						
							
							Use separate assembly load contexts per plugin  
						
						
						
						
					 
					
						2023-01-15 17:00:38 -05:00 
						 
				 
			
				
					
						
							
							
								Patrick Barron 
							
						 
					 
					
						
						
						
						
							
						
						
							dc85d86ea1 
							
						 
					 
					
						
						
							
							Enable in-process restarting  
						
						
						
						
					 
					
						2023-01-15 15:56:18 -05:00 
						 
				 
			
				
					
						
							
							
								Bond_009 
							
						 
					 
					
						
						
						
						
							
						
						
							b366dc2e6e 
							
						 
					 
					
						
						
							
							Use ArgumentException.ThrowIfNullOrEmpty  
						
						
						
						
					 
					
						2022-12-07 16:43:59 +01:00 
						 
				 
			
				
					
						
							
							
								Bond_009 
							
						 
					 
					
						
						
						
						
							
						
						
							52194f56b5 
							
						 
					 
					
						
						
							
							Replace != null with is not null  
						
						
						
						
					 
					
						2022-12-05 15:01:13 +01:00 
						 
				 
			
				
					
						
							
							
								Bond_009 
							
						 
					 
					
						
						
						
						
							
						
						
							c7d50d640e 
							
						 
					 
					
						
						
							
							Replace == null with is null  
						
						
						
						
					 
					
						2022-12-05 15:00:20 +01:00 
						 
				 
			
				
					
						
							
							
								Cody Robibero 
							
						 
					 
					
						
						
						
						
							
						
						
							d7f0596d5d 
							
						 
					 
					
						
						
							
							Don't auto-update if plugin is pending restart  
						
						
						
						
					 
					
						2022-11-11 08:32:29 -07:00 
						 
				 
			
				
					
						
							
							
								Bond_009 
							
						 
					 
					
						
						
						
						
							
						
						
							a9a5fcde81 
							
						 
					 
					
						
						
							
							Use ArgumentNullException.ThrowIfNull helper method  
						
						... 
						
						
						
						Did a simple search/replace on the whole repo (except the RSSDP project)
This reduces LOC and should improve performance (methods containing a throw statement don't get inlined)
```
if \((\w+) == null\)
\s+\{
\s+throw new ArgumentNullException\((.*)\);
\s+\}
```
```
ArgumentNullException.ThrowIfNull($1);
``` 
						
						
					 
					
						2022-10-06 20:21:23 +02:00 
						 
				 
			
				
					
						
							
							
								Bond_009 
							
						 
					 
					
						
						
						
						
							
						
						
							f50a250cd9 
							
						 
					 
					
						
						
							
							Optimize Guid comparisons  
						
						... 
						
						
						
						* Use Guid.Equals(Guid) instead of the == override
* Ban the usage of Guid.Equals(Object) to prevent accidental boxing
* Compare to default(Guid) instead of Guid.Empty 
						
						
					 
					
						2022-02-21 14:15:09 +01:00 
						 
				 
			
				
					
						
							
							
								Bond_009 
							
						 
					 
					
						
						
						
						
							
						
						
							ea8f40e84a 
							
						 
					 
					
						
						
							
							More cleanup  
						
						
						
						
					 
					
						2021-12-27 14:20:05 +00:00 
						 
				 
			
				
					
						
							
							
								cvium 
							
						 
					 
					
						
						
						
						
							
						
						
							d95c281142 
							
						 
					 
					
						
						
							
							Load all types when checking plugin DLLs  
						
						
						
						
					 
					
						2021-11-06 22:44:05 +01:00 
						 
				 
			
				
					
						
							
							
								Bond_009 
							
						 
					 
					
						
						
						
						
							
						
						
							79642af3b8 
							
						 
					 
					
						
						
							
							Fix some warnings  
						
						
						
						
					 
					
						2021-09-25 20:32:53 +02:00 
						 
				 
			
				
					
						
							
							
								Bond_009 
							
						 
					 
					
						
						
						
						
							
						
						
							e3dac4fda2 
							
						 
					 
					
						
						
							
							Use async FileStreams where it makes sense  
						
						
						
						
					 
					
						2021-09-02 14:02:04 +02:00 
						 
				 
			
				
					
						
							
							
								Bond_009 
							
						 
					 
					
						
						
						
						
							
						
						
							6f8ccab788 
							
						 
					 
					
						
						
							
							Move non-jellyfin extensions to separate project  
						
						
						
						
					 
					
						2021-06-19 18:04:46 +02:00 
						 
				 
			
				
					
						
							
							
								Bond_009 
							
						 
					 
					
						
						
						
						
							
						
						
							c78457e6d3 
							
						 
					 
					
						
						
							
							Minor fixes  
						
						
						
						
					 
					
						2021-06-06 18:11:51 +02:00 
						 
				 
			
				
					
						
							
							
								Bond_009 
							
						 
					 
					
						
						
						
						
							
						
						
							0bc0601442 
							
						 
					 
					
						
						
							
							Fix some warnings  
						
						
						
						
					 
					
						2021-05-28 14:33:54 +02:00 
						 
				 
			
				
					
						
							
							
								Bond_009 
							
						 
					 
					
						
						
						
						
							
						
						
							7e8428e588 
							
						 
					 
					
						
						
							
							Enable nullable reference types for Emby.Server.Implementations  
						
						
						
						
					 
					
						2021-05-20 22:48:53 +02:00 
						 
				 
			
				
					
						
							
							
								BaronGreenback 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							2e98de9062 
							
						 
					 
					
						
						
							
							Code Clean up: Convert to null-coalescing operator ?? ( #5845 )  
						
						... 
						
						
						
						Co-authored-by: Cody Robibero <cody@robibe.ro>
Co-authored-by: Patrick Barron <18354464+barronpm@users.noreply.github.com> 
						
						
					 
					
						2021-05-05 13:51:14 +02:00 
						 
				 
			
				
					
						
							
							
								BaronGreenback 
							
						 
					 
					
						
						
						
						
							
						
						
							bcba501dfb 
							
						 
					 
					
						
						
							
							minor optimization.  
						
						
						
						
					 
					
						2021-05-02 19:25:04 +01:00 
						 
				 
			
				
					
						
							
							
								BaronGreenback 
							
						 
					 
					
						
						
						
						
							
						
						
							65f880be32 
							
						 
					 
					
						
						
							
							Keep plugin status after update.  
						
						
						
						
					 
					
						2021-04-06 20:59:47 +01:00 
						 
				 
			
				
					
						
							
							
								Bond_009 
							
						 
					 
					
						
						
						
						
							
						
						
							a8ed753f6c 
							
						 
					 
					
						
						
							
							FxCop -> Net Analyzers (part 2)  
						
						
						
						
					 
					
						2021-03-13 22:33:28 +01:00 
						 
				 
			
				
					
						
							
							
								Bond_009 
							
						 
					 
					
						
						
						
						
							
						
						
							a6d0db5d04 
							
						 
					 
					
						
						
							
							100% branch coverage for DashboardController  
						
						
						
						
					 
					
						2021-03-05 11:15:14 +01:00 
						 
				 
			
				
					
						
							
							
								dkanada 
							
						 
					 
					
						
						
						
						
							
						
						
							9bfe945f6c 
							
						 
					 
					
						
						
							
							catch http exception and fix possible issues  
						
						
						
						
					 
					
						2021-02-24 00:03:26 +09:00 
						 
				 
			
				
					
						
							
							
								dkanada 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							fb2d178242 
							
						 
					 
					
						
						
							
							add await directive for image download  
						
						... 
						
						
						
						Co-authored-by: Cody Robibero <cody@robibe.ro> 
						
						
					 
					
						2021-02-23 23:39:33 +09:00 
						 
				 
			
				
					
						
							
							
								dkanada 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							e9030a62fb 
							
						 
					 
					
						
						
							
							remove useless call to dispose  
						
						... 
						
						
						
						Co-authored-by: Cody Robibero <cody@robibe.ro> 
						
						
					 
					
						2021-02-23 23:37:32 +09:00 
						 
				 
			
				
					
						
							
							
								dkanada 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							454deece13 
							
						 
					 
					
						
						
							
							improve performance in the wrong place  
						
						... 
						
						
						
						Co-authored-by: Cody Robibero <cody@robibe.ro> 
						
						
					 
					
						2021-02-23 23:36:49 +09:00 
						 
				 
			
				
					
						
							
							
								dkanada 
							
						 
					 
					
						
						
						
						
							
						
						
							64cc5889f2 
							
						 
					 
					
						
						
							
							add suggested changes  
						
						
						
						
					 
					
						2021-02-23 23:11:17 +09:00 
						 
				 
			
				
					
						
							
							
								dkanada 
							
						 
					 
					
						
						
						
						
							
						
						
							b18bb3d0de 
							
						 
					 
					
						
						
							
							update timestamp parse for plugins  
						
						
						
						
					 
					
						2021-02-23 19:22:20 +09:00 
						 
				 
			
				
					
						
							
							
								dkanada 
							
						 
					 
					
						
						
						
						
							
						
						
							9caf311925 
							
						 
					 
					
						
						
							
							handle plugin manifests automatically  
						
						
						
						
					 
					
						2021-02-12 22:33:10 +09:00 
						 
				 
			
				
					
						
							
							
								Bond_009 
							
						 
					 
					
						
						
						
						
							
						
						
							13c1c2815f 
							
						 
					 
					
						
						
							
							Add regression test for PluginManager.SaveManifest  
						
						
						
						
					 
					
						2021-02-08 17:10:20 +01:00 
						 
				 
			
				
					
						
							
							
								cvium 
							
						 
					 
					
						
						
						
						
							
						
						
							311b2f5012 
							
						 
					 
					
						
						
							
							Exclude BOM when writing meta.json plugin manifest  
						
						
						
						
					 
					
						2021-02-08 15:38:06 +01:00 
						 
				 
			
				
					
						
							
							
								dkanada 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							54a3ab15a3 
							
						 
					 
					
						
						
							
							Merge pull request  #5005  from jellyfin/bytes  
						
						... 
						
						
						
						JsonSerializer deserialize from bytes where possible 
						
						
					 
					
						2021-02-05 11:47:06 +09:00 
						 
				 
			
				
					
						
							
							
								David Ullmer 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							b014f2309d 
							
						 
					 
					
						
						
							
							Update Emby.Server.Implementations/Plugins/PluginManager.cs  
						
						... 
						
						
						
						Co-authored-by: Claus Vium <cvium@users.noreply.github.com> 
						
						
					 
					
						2021-01-25 09:44:06 +01:00 
						 
				 
			
				
					
						
							
							
								David 
							
						 
					 
					
						
						
						
						
							
						
						
							677bba742e 
							
						 
					 
					
						
						
							
							Remove try-catch nesting  
						
						
						
						
					 
					
						2021-01-24 13:34:22 +01:00 
						 
				 
			
				
					
						
							
							
								David 
							
						 
					 
					
						
						
						
						
							
						
						
							80f3e20394 
							
						 
					 
					
						
						
							
							Change plugin error message  
						
						
						
						
					 
					
						2021-01-24 13:22:04 +01:00 
						 
				 
			
				
					
						
							
							
								David Ullmer 
							
						 
					 
					
						
						
						
						
							
						
						
							4adbbb9f51 
							
						 
					 
					
						
						
							
							Catch TypeLoadException during plugin loading  
						
						
						
						
					 
					
						2021-01-24 00:58:52 +01:00 
						 
				 
			
				
					
						
							
							
								BaronGreenback 
							
						 
					 
					
						
						
						
						
							
						
						
							89046e1d97 
							
						 
					 
					
						
						
							
							Bug fixes  
						
						
						
						
					 
					
						2021-01-19 21:15:40 +00:00 
						 
				 
			
				
					
						
							
							
								Bond_009 
							
						 
					 
					
						
						
						
						
							
						
						
							1fdd2d6e05 
							
						 
					 
					
						
						
							
							Handle IO errors in LoadManifest  
						
						
						
						
					 
					
						2021-01-12 16:03:13 +01:00 
						 
				 
			
				
					
						
							
							
								Bond_009 
							
						 
					 
					
						
						
						
						
							
						
						
							1ea2b200c0 
							
						 
					 
					
						
						
							
							JsonSerializer deserialize from bytes where possible  
						
						... 
						
						
						
						This is faster and uses way less memory
```
BenchmarkDotNet=v0.12.1, OS=fedora 32
Intel Core i7-6700HQ CPU 2.60GHz (Skylake), 1 CPU, 8 logical and 4 physical cores
.NET Core SDK=5.0.100
  [Host]     : .NET Core 5.0.0 (CoreCLR 5.0.20.51904, CoreFX 5.0.20.51904), X64 RyuJIT
  DefaultJob : .NET Core 5.0.0 (CoreCLR 5.0.20.51904, CoreFX 5.0.20.51904), X64 RyuJIT
| Method |     Mean |   Error |  StdDev |   Gen 0 | Gen 1 | Gen 2 | Allocated |
|------- |---------:|--------:|--------:|--------:|------:|------:|----------:|
|  Bytes | 158.4 us | 2.56 us | 2.14 us | 16.8457 |     - |     - |  52.08 KB |
| String | 172.8 us | 0.78 us | 0.70 us | 41.5039 |     - |     - | 127.82 KB |
| Custom | 155.5 us | 2.95 us | 2.76 us | 10.0098 |     - |     - |  31.27 KB |
``` 
						
						
					 
					
						2021-01-12 15:28:02 +01:00 
						 
				 
			
				
					
						
							
							
								BaronGreenback 
							
						 
					 
					
						
						
						
						
							
						
						
							149c2b2169 
							
						 
					 
					
						
						
							
							Added referenced assembly failure detection, and DI failure protection.  
						
						
						
						
					 
					
						2020-12-31 11:39:34 +00:00