diff --git a/build/build.ps1 b/build/build.ps1
index 88a3b93dc4..306c5d395c 100644
--- a/build/build.ps1
+++ b/build/build.ps1
@@ -221,9 +221,10 @@
##
## src/Umbraco.Web.UI.NetCore/umbraco/config/appsettings-schema.json
&dotnet run --project "$($this.SolutionRoot)\src\JsonSchema\JsonSchema.csproj" `
- --outputFile "../src/Umbraco.Web.UI.NetCore/umbraco/config/appsettings-schema.json"`
--verbosity detailed `
- -c Release > "$($this.BuildTemp)\json.schema.log"
+ -c Release > "$($this.BuildTemp)\json.schema.log" `
+ -- `
+ --outputFile "$($this.BuildTemp)\WebApp\umbraco\config\appsettings-schema.json"
})
diff --git a/src/JsonSchema/AppSettings.cs b/src/JsonSchema/AppSettings.cs
index 0e2c6ce1b6..85d468b2df 100644
--- a/src/JsonSchema/AppSettings.cs
+++ b/src/JsonSchema/AppSettings.cs
@@ -56,7 +56,7 @@ namespace JsonSchema
{
public FormDesignSettings FormDesign { get; set; }
public PackageOptionSettings Options { get; set; }
- public SecuritySettings Security { get; set; }
+ public Umbraco.Forms.Core.Configuration.SecuritySettings Security { get; set; }
public FieldTypesDefinition FieldTypes { get; set; }
public class FieldTypesDefinition
diff --git a/src/JsonSchema/JsonSchema.csproj b/src/JsonSchema/JsonSchema.csproj
index 6236738b5d..25d4fa5498 100644
--- a/src/JsonSchema/JsonSchema.csproj
+++ b/src/JsonSchema/JsonSchema.csproj
@@ -10,11 +10,23 @@
-
+
+
+
+ $(UserProfile)\.nuget\packages\
+
+
+
+
+
+
+
+
+
diff --git a/src/JsonSchema/NamespacePrefixedSchemaNameGenerator.cs b/src/JsonSchema/NamespacePrefixedSchemaNameGenerator.cs
new file mode 100644
index 0000000000..77b7b8c474
--- /dev/null
+++ b/src/JsonSchema/NamespacePrefixedSchemaNameGenerator.cs
@@ -0,0 +1,13 @@
+using System;
+using NJsonSchema.Generation;
+
+namespace JsonSchema
+{
+ public class NamespacePrefixedSchemaNameGenerator : DefaultSchemaNameGenerator
+ {
+ public override string Generate(Type type)
+ {
+ return type.Namespace.Replace(".", String.Empty) + base.Generate(type);
+ }
+ }
+}
diff --git a/src/JsonSchema/PrefixedTypeNameGenerator.cs b/src/JsonSchema/PrefixedTypeNameGenerator.cs
index 1f78be467c..e9094f106d 100644
--- a/src/JsonSchema/PrefixedTypeNameGenerator.cs
+++ b/src/JsonSchema/PrefixedTypeNameGenerator.cs
@@ -16,6 +16,7 @@ namespace JsonSchema
/// The prefix to use.
public PrefixedTypeNameGenerator(string definitionPrefix) => _definitionPrefix = definitionPrefix;
+
///
public override string Generate(NJsonSchema.JsonSchema schema, string typeNameHint, IEnumerable reservedTypeNames)
=> $"{_definitionPrefix}{base.Generate(schema, typeNameHint, reservedTypeNames)}";
diff --git a/src/JsonSchema/Program.cs b/src/JsonSchema/Program.cs
index 698ad379ac..d8b31ad224 100644
--- a/src/JsonSchema/Program.cs
+++ b/src/JsonSchema/Program.cs
@@ -9,11 +9,8 @@ namespace JsonSchema
{
private class Options
{
- [Option('o', "outputFile", Required = false, HelpText = "Set path of the output file.", Default = "../Umbraco.Web.UI.NetCore/umbraco/config/appsettings-schema.json")]
+ [Option('o', "outputFile", Required = false, HelpText = "Set path of the output file.", Default = "../../../../Umbraco.Web.UI.NetCore/umbraco/config/appsettings-schema.json")]
public string OutputFile { get; set; }
-
- [Option('d', "definitionPrefix", Required = false, HelpText = "Set prefix used for all definisions.", Default = "umbraco")]
- public string DefinitionPrefix { get; set; }
}
public static async Task Main(string[] args)
@@ -33,13 +30,16 @@ namespace JsonSchema
private static async Task Execute(Options options)
{
- var generator = new UmbracoJsonSchemaGenerator(options.DefinitionPrefix);
+ var generator = new UmbracoJsonSchemaGenerator();
var schema = await generator.Generate();
var path = Path.GetFullPath(Path.Combine(Environment.CurrentDirectory, options.OutputFile));
+ Console.WriteLine("Path to use {0}",path);
+ Directory.CreateDirectory(Path.GetDirectoryName(path));
+ Console.WriteLine("Ensured directory exists");
await File.WriteAllTextAsync(path, schema);
- Console.WriteLine("File written at " + Path.GetFullPath(path));
+ Console.WriteLine("File written at {0}", path);
}
}
}
diff --git a/src/JsonSchema/UmbracoJsonSchemaGenerator.cs b/src/JsonSchema/UmbracoJsonSchemaGenerator.cs
index 8089952c5b..b6e516d0c5 100644
--- a/src/JsonSchema/UmbracoJsonSchemaGenerator.cs
+++ b/src/JsonSchema/UmbracoJsonSchemaGenerator.cs
@@ -18,8 +18,8 @@ namespace JsonSchema
/// Creates a new instance of .
///
/// The prefix to use for definitions generated.
- public UmbracoJsonSchemaGenerator(string definitionPrefix)
- => _innerGenerator = new JsonSchemaGenerator(new UmbracoJsonSchemaGeneratorSettings(definitionPrefix));
+ public UmbracoJsonSchemaGenerator()
+ => _innerGenerator = new JsonSchemaGenerator(new UmbracoJsonSchemaGeneratorSettings());
///
diff --git a/src/JsonSchema/UmbracoJsonSchemaGeneratorSettings.cs b/src/JsonSchema/UmbracoJsonSchemaGeneratorSettings.cs
index 92c8ced41c..c65ec5e4e2 100644
--- a/src/JsonSchema/UmbracoJsonSchemaGeneratorSettings.cs
+++ b/src/JsonSchema/UmbracoJsonSchemaGeneratorSettings.cs
@@ -11,13 +11,12 @@ namespace JsonSchema
/// Creates a new instance of .
///
/// The prefix to use for definitions generated.
- public UmbracoJsonSchemaGeneratorSettings(string definitionPrefix)
+ public UmbracoJsonSchemaGeneratorSettings()
{
AlwaysAllowAdditionalObjectProperties = true;
SerializerSettings = new JsonSerializerSettings();
- TypeNameGenerator = new PrefixedTypeNameGenerator(definitionPrefix);
DefaultReferenceTypeNullHandling = ReferenceTypeNullHandling.NotNull;
-
+ SchemaNameGenerator = new NamespacePrefixedSchemaNameGenerator();
SerializerSettings.Converters.Add(new StringEnumConverter());
}
}
diff --git a/src/Umbraco.Core/Umbraco.Core.csproj b/src/Umbraco.Core/Umbraco.Core.csproj
index 79ddbf201c..2a30778d80 100644
--- a/src/Umbraco.Core/Umbraco.Core.csproj
+++ b/src/Umbraco.Core/Umbraco.Core.csproj
@@ -8,6 +8,7 @@
Umbraco CMS Core
Contains the core assembly needed to run Umbraco Cms. This package only contains the assembly, and can be used for package development. Use the template in the Umbraco.Templates package to setup Umbraco
Umbraco CMS
+
diff --git a/src/Umbraco.Web.UI.NetCore/umbraco/config/appsettings-schema.json b/src/Umbraco.Web.UI.NetCore/umbraco/config/appsettings-schema.json
deleted file mode 100644
index a0236a17fb..0000000000
--- a/src/Umbraco.Web.UI.NetCore/umbraco/config/appsettings-schema.json
+++ /dev/null
@@ -1,2970 +0,0 @@
-{
- "title": "AppSettings",
- "$schema": "http://json-schema.org/draft-04/schema#",
- "type": "object",
- "definitions": {
- "webOptimizer": {
- "type": "object",
- "description": "Settings for WebOptimizer.Core",
- "properties": {
- "enableCaching": {
- "description": "Determines if the \"cache-control\" HTTP headers should be set and if conditional GET (304) requests should be supported. This could be helpful to disable while in development mode.",
- "type": "boolean"
- },
- "enableTagHelperBundling": {
- "description": "Determines if `