Commit graph

83 commits

Author SHA1 Message Date
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
BaronGreenback 21f6d39432 copy constructor 2020-12-23 17:43:29 +00:00
BaronGreenback 62702fa3eb Changes as requested 2020-12-23 16:28:50 +00:00
BaronGreenback e8df9551ef
Update PluginManager.cs
Changed a to i
2020-12-23 10:31:11 +00:00
BaronGreenback 9a97933499
Update Emby.Server.Implementations/Plugins/PluginManager.cs
Co-authored-by: Claus Vium <cvium@users.noreply.github.com>
2020-12-23 10:29:21 +00:00
BaronGreenback 4ba4eefeeb
Update Emby.Server.Implementations/Plugins/PluginManager.cs
Co-authored-by: Claus Vium <cvium@users.noreply.github.com>
2020-12-23 10:26:02 +00:00
BaronGreenback 1f2ecd0775 Fix for DI. 2020-12-22 15:01:26 +00:00
BaronGreenback 621e6d28cd Fallback to default guid 2020-12-22 14:07:01 +00:00
BaronGreenback 3633996a53 New json converter implemented. 2020-12-21 09:01:59 +00:00