aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar vnugent <public@vaughnnugent.com>2024-01-06 13:09:27 -0500
committerLibravatar vnugent <public@vaughnnugent.com>2024-01-06 13:09:27 -0500
commit778ece00a279b176636f9a4314cd20bf7867793c (patch)
tree7b47afa4bf991ae4a05d1afa92e980205f32a013
parent0dc5bebe5073d9c5bcea2b567b2bef75ac86f1ff (diff)
initial migration to .net 8.0
-rw-r--r--lib/VNLib.Plugins.Extensions.Data/src/Storage/Exceptions/UndefinedBlobStateException.cs6
-rw-r--r--lib/VNLib.Plugins.Extensions.Data/src/VNLib.Plugins.Extensions.Data.csproj6
-rw-r--r--lib/VNLib.Plugins.Extensions.Loading.Sql/src/SqlDbConnectionLoader.cs3
-rw-r--r--lib/VNLib.Plugins.Extensions.Loading.Sql/src/VNLib.Plugins.Extensions.Loading.Sql.csproj12
-rw-r--r--lib/VNLib.Plugins.Extensions.Loading/src/Events/ConfigurableAsyncIntervalAttribute.cs19
-rw-r--r--lib/VNLib.Plugins.Extensions.Loading/src/LoadingExtensions.cs22
-rw-r--r--lib/VNLib.Plugins.Extensions.Loading/src/VNLib.Plugins.Extensions.Loading.csproj4
-rw-r--r--lib/VNLib.Plugins.Extensions.Validation/src/VNLib.Plugins.Extensions.Validation.csproj6
8 files changed, 37 insertions, 41 deletions
diff --git a/lib/VNLib.Plugins.Extensions.Data/src/Storage/Exceptions/UndefinedBlobStateException.cs b/lib/VNLib.Plugins.Extensions.Data/src/Storage/Exceptions/UndefinedBlobStateException.cs
index 8b4d81b..c52fed9 100644
--- a/lib/VNLib.Plugins.Extensions.Data/src/Storage/Exceptions/UndefinedBlobStateException.cs
+++ b/lib/VNLib.Plugins.Extensions.Data/src/Storage/Exceptions/UndefinedBlobStateException.cs
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2022 Vaughn Nugent
+* Copyright (c) 2024 Vaughn Nugent
*
* Library: VNLib
* Package: VNLib.Plugins.Extensions.Data
@@ -23,7 +23,7 @@
*/
using System;
-using System.Runtime.Serialization;
+
namespace VNLib.Plugins.Extensions.Data.Storage
{
@@ -39,7 +39,5 @@ namespace VNLib.Plugins.Extensions.Data.Storage
{}
public UndefinedBlobStateException(string message, Exception innerException) : base(message, innerException)
{}
- protected UndefinedBlobStateException(SerializationInfo info, StreamingContext context) : base(info, context)
- {}
}
} \ No newline at end of file
diff --git a/lib/VNLib.Plugins.Extensions.Data/src/VNLib.Plugins.Extensions.Data.csproj b/lib/VNLib.Plugins.Extensions.Data/src/VNLib.Plugins.Extensions.Data.csproj
index 2a5570c..7e9136f 100644
--- a/lib/VNLib.Plugins.Extensions.Data/src/VNLib.Plugins.Extensions.Data.csproj
+++ b/lib/VNLib.Plugins.Extensions.Data/src/VNLib.Plugins.Extensions.Data.csproj
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
- <TargetFramework>net6.0</TargetFramework>
+ <TargetFramework>net8.0</TargetFramework>
<RootNamespace>VNLib.Plugins.Extensions.Data</RootNamespace>
<AssemblyName>VNLib.Plugins.Extensions.Data</AssemblyName>
<Nullable>enable</Nullable>
@@ -17,7 +17,7 @@
<Product>VNLib.Plugins.Extensions.Data</Product>
<PackageId>VNLib.Plugins.Extensions.Data</PackageId>
<Description>An Essentials framework extension library that provides data structures for abstractions between data and databases, using the EntityFrameworkCore library and design patterns.</Description>
- <Copyright>Copyright © 2023 Vaughn Nugent</Copyright>
+ <Copyright>Copyright © 2024 Vaughn Nugent</Copyright>
<PackageProjectUrl>https://www.vaughnnugent.com/resources/software/modules/VNLib.Plugins.Extensions</PackageProjectUrl>
<RepositoryUrl>https://github.com/VnUgE/VNLib.Plugins.Extensions/tree/master/lib/VNLib.Plugins.Extensions.Data</RepositoryUrl>
</PropertyGroup>
@@ -47,7 +47,7 @@
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
- <PackageReference Include="Microsoft.EntityFrameworkCore" Version="6.0.25" />
+ <PackageReference Include="Microsoft.EntityFrameworkCore" Version="8.0.0" />
</ItemGroup>
<ItemGroup>
diff --git a/lib/VNLib.Plugins.Extensions.Loading.Sql/src/SqlDbConnectionLoader.cs b/lib/VNLib.Plugins.Extensions.Loading.Sql/src/SqlDbConnectionLoader.cs
index daddddb..803f36e 100644
--- a/lib/VNLib.Plugins.Extensions.Loading.Sql/src/SqlDbConnectionLoader.cs
+++ b/lib/VNLib.Plugins.Extensions.Loading.Sql/src/SqlDbConnectionLoader.cs
@@ -164,7 +164,8 @@ namespace VNLib.Plugins.Extensions.Loading.Sql
IntegratedSecurity = sqlConf["ms_security"].GetBoolean(),
Pooling = true,
MinPoolSize = sqlConf["min_pool_size"].GetInt32(),
- Replication = true
+ Replication = true,
+ TrustServerCertificate = sqlConf["trust_cert"].GetBoolean(),
};
string connectionString = sqlBuilder.ToString();
diff --git a/lib/VNLib.Plugins.Extensions.Loading.Sql/src/VNLib.Plugins.Extensions.Loading.Sql.csproj b/lib/VNLib.Plugins.Extensions.Loading.Sql/src/VNLib.Plugins.Extensions.Loading.Sql.csproj
index cfe469f..d923527 100644
--- a/lib/VNLib.Plugins.Extensions.Loading.Sql/src/VNLib.Plugins.Extensions.Loading.Sql.csproj
+++ b/lib/VNLib.Plugins.Extensions.Loading.Sql/src/VNLib.Plugins.Extensions.Loading.Sql.csproj
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
- <TargetFramework>net6.0</TargetFramework>
+ <TargetFramework>net8.0</TargetFramework>
<RootNamespace>VNLib.Plugins.Extensions.Loading.Sql</RootNamespace>
<AssemblyName>VNLib.Plugins.Extensions.Loading.Sql</AssemblyName>
<Nullable>enable</Nullable>
@@ -16,7 +16,7 @@
<Product>VNLib.Plugins.Extensions.Loading.Sql</Product>
<PackageId>VNLib.Plugins.Extensions.Loading.Sql</PackageId>
<Description>An Essentials framework extension library for configuring database connections using the EntityFrameworkCore patterns and abstractions. Supports MSSql, MySql and SqlLite database connections via plugin configuration.</Description>
- <Copyright>Copyright © 2023 Vaughn Nugent</Copyright>
+ <Copyright>Copyright © 2024 Vaughn Nugent</Copyright>
<PackageProjectUrl>https://www.vaughnnugent.com/resources/software/modules/VNLib.Plugins.Extensions</PackageProjectUrl>
<RepositoryUrl>https://github.com/VnUgE/VNLib.Plugins.Extensions/tree/master/lib/VNLib.Plugins.Extensions.Loading.Sql</RepositoryUrl>
</PropertyGroup>
@@ -38,10 +38,10 @@
</ItemGroup>
<ItemGroup>
- <PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="6.0.25" />
- <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="6.0.25" />
- <PackageReference Include="MySqlConnector" Version="2.3.1" />
- <PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="6.0.2" />
+ <PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="8.0.0" />
+ <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="8.0.0" />
+ <PackageReference Include="MySqlConnector" Version="2.3.3" />
+ <PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="7.0.0" />
</ItemGroup>
<ItemGroup>
diff --git a/lib/VNLib.Plugins.Extensions.Loading/src/Events/ConfigurableAsyncIntervalAttribute.cs b/lib/VNLib.Plugins.Extensions.Loading/src/Events/ConfigurableAsyncIntervalAttribute.cs
index 429cb18..171a9ae 100644
--- a/lib/VNLib.Plugins.Extensions.Loading/src/Events/ConfigurableAsyncIntervalAttribute.cs
+++ b/lib/VNLib.Plugins.Extensions.Loading/src/Events/ConfigurableAsyncIntervalAttribute.cs
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2022 Vaughn Nugent
+* Copyright (c) 2024 Vaughn Nugent
*
* Library: VNLib
* Package: VNLib.Plugins.Extensions.Loading
@@ -33,18 +33,25 @@ namespace VNLib.Plugins.Extensions.Loading.Events
[AttributeUsage(AttributeTargets.Method)]
public sealed class ConfigurableAsyncIntervalAttribute : Attribute
{
- internal readonly string IntervalPropertyName;
- internal readonly IntervalResultionType Resolution;
+ /// <summary>
+ /// The configuration property name for the event interval
+ /// </summary>
+ public string IntervalPropertyName { get; }
+
+ /// <summary>
+ /// The time resoltion for the event interval
+ /// </summary>
+ public IntervalResultionType Resolution { get; }
/// <summary>
/// Initializes a <see cref="ConfigurableAsyncIntervalAttribute"/> with the specified
/// interval property name
/// </summary>
- /// <param name="configPropName">The configuration property name for the event interval</param>
+ /// <param name="intervalPropertyName">The configuration property name for the event interval</param>
/// <param name="resolution">The time resoltion for the event interval</param>
- public ConfigurableAsyncIntervalAttribute(string configPropName, IntervalResultionType resolution)
+ public ConfigurableAsyncIntervalAttribute(string intervalPropertyName, IntervalResultionType resolution)
{
- IntervalPropertyName = configPropName;
+ IntervalPropertyName = intervalPropertyName;
Resolution = resolution;
}
}
diff --git a/lib/VNLib.Plugins.Extensions.Loading/src/LoadingExtensions.cs b/lib/VNLib.Plugins.Extensions.Loading/src/LoadingExtensions.cs
index 235aaf6..979ade2 100644
--- a/lib/VNLib.Plugins.Extensions.Loading/src/LoadingExtensions.cs
+++ b/lib/VNLib.Plugins.Extensions.Loading/src/LoadingExtensions.cs
@@ -373,21 +373,6 @@ namespace VNLib.Plugins.Extensions.Loading
}
/// <summary>
- /// Adds a service to the <see cref="IServiceContainer"/> using generics syntax
- /// </summary>
- /// <typeparam name="T"></typeparam>
- /// <param name="container"></param>
- /// <param name="service">The service instance to add to the container</param>
- /// <exception cref="ArgumentNullException"></exception>
- public static void AddService<T>(this IServiceContainer container, T service)
- {
- _ = container ?? throw new ArgumentNullException(nameof(container));
- _ = service ?? throw new ArgumentNullException(nameof(service));
-
- container.AddService(typeof(T), service);
- }
-
- /// <summary>
/// Creates a new instance of the desired service type from an external assembly and
/// caches the loaded assembly so it's never loaded more than once. Managed assembly
/// life cycles are managed by the plugin. Instances are treated as services and
@@ -433,7 +418,12 @@ namespace VNLib.Plugins.Extensions.Loading
}
/// <summary>
- ///
+ /// Exports a service of the desired type to the host application. Once the plugin
+ /// is done loading, the host will be able to access the service instance.
+ /// <para>
+ /// You should avoid mutating the service instance after the plugin has been
+ /// loaded, especially if you are using factory methods to create the service.
+ /// </para>
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="plugin"></param>
diff --git a/lib/VNLib.Plugins.Extensions.Loading/src/VNLib.Plugins.Extensions.Loading.csproj b/lib/VNLib.Plugins.Extensions.Loading/src/VNLib.Plugins.Extensions.Loading.csproj
index 1d2f57f..63bce5a 100644
--- a/lib/VNLib.Plugins.Extensions.Loading/src/VNLib.Plugins.Extensions.Loading.csproj
+++ b/lib/VNLib.Plugins.Extensions.Loading/src/VNLib.Plugins.Extensions.Loading.csproj
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
- <TargetFramework>net6.0</TargetFramework>
+ <TargetFramework>net8.0</TargetFramework>
<RootNamespace>VNLib.Plugins.Extensions.Loading</RootNamespace>
<AssemblyName>VNLib.Plugins.Extensions.Loading</AssemblyName>
<GenerateDocumentationFile>True</GenerateDocumentationFile>
@@ -16,7 +16,7 @@
<Product>VNLib.Plugins.Extensions.Loading</Product>
<PackageId>VNLib.Plugins.Extensions.Loading</PackageId>
<Description>An Essentials framework extension library for common loading/configuration/service operations. Enables rapid plugin and service development.</Description>
- <Copyright>Copyright © 2023 Vaughn Nugent</Copyright>
+ <Copyright>Copyright © 2024 Vaughn Nugent</Copyright>
<PackageProjectUrl>https://www.vaughnnugent.com/resources/software/modules/VNLib.Plugins.Extensions</PackageProjectUrl>
<RepositoryUrl>https://github.com/VnUgE/VNLib.Plugins.Extensions/tree/master/lib/VNLib.Plugins.Extensions.Loading</RepositoryUrl>
</PropertyGroup>
diff --git a/lib/VNLib.Plugins.Extensions.Validation/src/VNLib.Plugins.Extensions.Validation.csproj b/lib/VNLib.Plugins.Extensions.Validation/src/VNLib.Plugins.Extensions.Validation.csproj
index 95d9be3..d56576f 100644
--- a/lib/VNLib.Plugins.Extensions.Validation/src/VNLib.Plugins.Extensions.Validation.csproj
+++ b/lib/VNLib.Plugins.Extensions.Validation/src/VNLib.Plugins.Extensions.Validation.csproj
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
- <TargetFramework>net6.0</TargetFramework>
+ <TargetFramework>net8.0</TargetFramework>
<RootNamespace>VNLib.Plugins.Extensions.Validation</RootNamespace>
<AssemblyName>VNLib.Plugins.Extensions.Validation</AssemblyName>
<Nullable>enable</Nullable>
@@ -16,7 +16,7 @@
<Product>VNLib.Plugins.Extensions.Validation</Product>
<PackageId>VNLib.Plugins.Extensions.Validation</PackageId>
<Description>An Essentials framework extension library for extending FluentValidation validators for common checks including minium password validation.</Description>
- <Copyright>Copyright © 2023 Vaughn Nugent</Copyright>
+ <Copyright>Copyright © 2024 Vaughn Nugent</Copyright>
<PackageProjectUrl>https://www.vaughnnugent.com/resources/software/modules/VNLib.Plugins.Sessions</PackageProjectUrl>
<RepositoryUrl>https://github.com/VnUgE/VNLib.Plugins.Extensions/tree/master/lib/VNLib.Plugins.Extensions.Validation</RepositoryUrl>
</PropertyGroup>
@@ -46,7 +46,7 @@
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
- <PackageReference Include="FluentValidation" Version="11.8.1" />
+ <PackageReference Include="FluentValidation" Version="11.9.0" />
</ItemGroup>
<ItemGroup>