Skip to content

Commit 65b2611

Browse files
committed
Added priorities to client specific packages.
1 parent 889030e commit 65b2611

File tree

9 files changed

+58
-1
lines changed

9 files changed

+58
-1
lines changed

Source/Platforms/Nancy/ExceptionlessNancyPlugin.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
using Exceptionless.Models.Data;
77

88
namespace Exceptionless.Nancy {
9+
[Priority(90)]
910
internal class ExceptionlessNancyPlugin : IEventPlugin {
1011
public void Run(EventPluginContext context) {
1112
//error.ExceptionlessClientInfo.Platform = "Nancy";

Source/Platforms/Web/ExceptionlessWebPlugin.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
using Exceptionless.Models.Data;
88

99
namespace Exceptionless.Web {
10+
[Priority(90)]
1011
internal class ExceptionlessWebPlugin : IEventPlugin {
1112
private const string TAGS_HTTP_CONTEXT_NAME = "Exceptionless.Tags";
1213

Source/Platforms/WebApi/ExceptionlessWebApiPlugin.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
using Exceptionless.Models.Data;
1414

1515
namespace Exceptionless.WebApi {
16+
[Priority(90)]
1617
internal class ExceptionlessWebApiPlugin : IEventPlugin {
1718
public void Run(EventPluginContext context) {
1819
if (!context.ContextData.ContainsKey("HttpActionContext"))

Source/Samples/SampleConsole/Plugins/SystemUptimePlugin.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
using Exceptionless.Models;
55

66
namespace Exceptionless.SampleConsole.Plugins {
7+
[Priority(100)]
78
public class SystemUptimePlugin : IEventPlugin {
89
public void Run(EventPluginContext context) {
910
// Only update feature usage events.

Source/Samples/SampleConsole/Program.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ private static void Main() {
6464

6565
ExceptionlessClient.Default.Configuration.UseTraceLogEntriesPlugin();
6666
ExceptionlessClient.Default.Configuration.AddPlugin<SystemUptimePlugin>();
67+
6768
ExceptionlessClient.Default.Configuration.AddPlugin(ctx => ctx.Event.Data[RandomData.GetWord()] = RandomData.GetWord());
6869
ExceptionlessClient.Default.Configuration.AddPlugin(ctx => ctx.Event.Data[RandomData.GetWord()] = RandomData.GetWord());
6970
ExceptionlessClient.Default.Configuration.AddPlugin(ctx => {

Source/Shared/Configuration/ExceptionlessConfiguration.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System;
22
using System.Collections.Generic;
3+
using System.Diagnostics;
34
using System.Linq;
45
using Exceptionless.Dependency;
56
using Exceptionless.Plugins;
@@ -179,7 +180,7 @@ public void AddDataExclusions(IEnumerable<string> exclusions) {
179180
/// The list of plugins that will be used in this configuration.
180181
/// </summary>
181182
public IEnumerable<PluginRegistration> Plugins {
182-
get { return _plugins.Values.OrderBy(e => e.Priority); }
183+
get { return _plugins.Values.OrderBy(e => e.Priority).ToList(); }
183184
}
184185

185186
/// <summary>
@@ -315,6 +316,7 @@ public ValidationResult() {
315316
public ICollection<string> Messages { get; private set; }
316317
}
317318

319+
[DebuggerDisplay("Key: {Key}, Priority: {Priority}")]
318320
public class PluginRegistration {
319321
private readonly Lazy<IEventPlugin> _plugin;
320322
public PluginRegistration(string key, int priority, Lazy<IEventPlugin> plugin) {
@@ -330,6 +332,10 @@ public PluginRegistration(string key, int priority, Lazy<IEventPlugin> plugin) {
330332
public IEventPlugin Plugin {
331333
get { return _plugin.Value; }
332334
}
335+
336+
public override string ToString() {
337+
return String.Format("Key: {0}, Priority: {1}", Key, Priority);
338+
}
333339
}
334340
}
335341
}

Source/Tests/Exceptionless.Tests.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,7 @@
135135
<Compile Include="Utility\InMemorySubmissionClient.cs" />
136136
<Compile Include="Utility\PasswordGenerator.cs" />
137137
<Compile Include="Utility\RandomEventGenerator.cs" />
138+
<Compile Include="Utility\TestOutputWriter.cs" />
138139
</ItemGroup>
139140
<ItemGroup>
140141
<None Include="app.config" />

Source/Tests/Plugins/PluginTests.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,17 @@
44
using Exceptionless.Plugins;
55
using Exceptionless.Plugins.Default;
66
using Exceptionless.Models;
7+
using Exceptionless.Tests.Utility;
78
using Xunit;
9+
using Xunit.Abstractions;
810

911
namespace Exceptionless.Tests.Plugins {
1012
public class PluginTests {
13+
private readonly TestOutputWriter _writer;
14+
public PluginTests(ITestOutputHelper output) {
15+
_writer = new TestOutputWriter(output);
16+
}
17+
1118
[Fact]
1219
public void ConfigurationDefaults_EnsureNoDuplicateTagsOrData() {
1320
var client = new ExceptionlessClient();
@@ -94,6 +101,13 @@ public void VerifyPriority() {
94101
Assert.Equal(typeof(EnvironmentInfoPlugin), plugins[5].Plugin.GetType());
95102
}
96103

104+
[Fact]
105+
public void ViewPriority() {
106+
var config = new ExceptionlessConfiguration(DependencyResolver.CreateDefault());
107+
foreach (var plugin in config.Plugins)
108+
_writer.WriteLine(plugin);
109+
}
110+
97111
public class PluginWithNoPriority : IEventPlugin {
98112
public void Run(EventPluginContext context) {}
99113
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
using System;
2+
using System.Diagnostics;
3+
using System.IO;
4+
using System.Text;
5+
using Xunit.Abstractions;
6+
7+
namespace Exceptionless.Tests.Utility {
8+
public class TestOutputWriter : TextWriter {
9+
private readonly ITestOutputHelper _output;
10+
11+
public TestOutputWriter(ITestOutputHelper output) {
12+
_output = output;
13+
}
14+
15+
public override Encoding Encoding {
16+
get { return Encoding.UTF8; }
17+
}
18+
19+
public override void WriteLine(string value) {
20+
try {
21+
_output.WriteLine(value);
22+
} catch (Exception ex) {
23+
Trace.WriteLine(ex);
24+
}
25+
}
26+
27+
public override void WriteLine() {
28+
WriteLine(String.Empty);
29+
}
30+
}
31+
}

0 commit comments

Comments
 (0)