diff --git a/src/NHibernate.Test/NHibernate.Test.csproj b/src/NHibernate.Test/NHibernate.Test.csproj index 847d65739d3..5f128a63718 100644 --- a/src/NHibernate.Test/NHibernate.Test.csproj +++ b/src/NHibernate.Test/NHibernate.Test.csproj @@ -21,7 +21,7 @@ - + Always diff --git a/src/NHibernate.Tool.HbmXsd/HbmCodeGenerator.cs b/src/NHibernate.Tool.HbmXsd/HbmCodeGenerator.cs index 3dfad8f571a..6c72455c1d2 100644 --- a/src/NHibernate.Tool.HbmXsd/HbmCodeGenerator.cs +++ b/src/NHibernate.Tool.HbmXsd/HbmCodeGenerator.cs @@ -1,3 +1,4 @@ +using System; using System.CodeDom; using System.IO; using System.Xml.Schema; @@ -18,6 +19,8 @@ public void Execute(string outputFileName) { using (Stream stream = GetType().Assembly.GetManifestResourceStream(MappingSchemaResourceName)) { + if (stream == null) + throw new InvalidOperationException($"Unable to load resource {MappingSchemaResourceName}"); XmlSchema schema = XmlSchema.Read(stream, null); Execute(outputFileName, GeneratedCodeNamespace, schema); } diff --git a/src/NHibernate.Tool.HbmXsd/How to generate Hbm.generated.cs.txt b/src/NHibernate.Tool.HbmXsd/How to generate Hbm.generated.cs.txt index eea263dcf79..69bbbac382e 100644 --- a/src/NHibernate.Tool.HbmXsd/How to generate Hbm.generated.cs.txt +++ b/src/NHibernate.Tool.HbmXsd/How to generate Hbm.generated.cs.txt @@ -1,4 +1,4 @@ 1) Clean the "EveryThing" solution 2) Build all -3) open console and change dir to "src\NHibernate.Tool.HbmXsd\bin\Debug" -4) run: hbmxsd ..\..\..\NHibernate\Cfg\MappingSchema\Hbm.generated.cs +3) open console and change dir to "src\NHibernate.Tool.HbmXsd\bin\Debug\net461" +4) run: HbmXsd ..\..\..\..\NHibernate\Cfg\MappingSchema\Hbm.generated.cs diff --git a/src/NHibernate.Tool.HbmXsd/NHibernate.Tool.HbmXsd.csproj b/src/NHibernate.Tool.HbmXsd/NHibernate.Tool.HbmXsd.csproj index 3c1f65274d0..fca4c8ba503 100644 --- a/src/NHibernate.Tool.HbmXsd/NHibernate.Tool.HbmXsd.csproj +++ b/src/NHibernate.Tool.HbmXsd/NHibernate.Tool.HbmXsd.csproj @@ -2,6 +2,8 @@ net461 + Exe + NHibernate.Tool.HbmXsd.Program False False False @@ -9,10 +11,15 @@ False False False + HbmXsd + + + + diff --git a/src/NHibernate.Tool.HbmXsd/Program.cs b/src/NHibernate.Tool.HbmXsd/Program.cs index 0c3d957ea02..a2f65fa016d 100644 --- a/src/NHibernate.Tool.HbmXsd/Program.cs +++ b/src/NHibernate.Tool.HbmXsd/Program.cs @@ -1,4 +1,6 @@ +using System; using System.Globalization; +using System.IO; using System.Threading; namespace NHibernate.Tool.HbmXsd @@ -7,11 +9,21 @@ public class Program { private static void Main(string[] args) { - string outFile = args.Length == 0 ? @"..\..\..\NHibernate\Cfg\MappingSchema\Hbm.generated.cs" : args[0]; + string outFile = Path.GetFullPath(args.Length == 0 + ? @"..\..\..\..\NHibernate\Cfg\MappingSchema\Hbm.generated.cs" + : args[0]); + if (!Directory.Exists(Path.GetDirectoryName(outFile))) + { + Console.Error.WriteLine("Invalid target path: directory does not exist."); + Console.Error.WriteLine(outFile); + Environment.ExitCode = -1; + return; + } var currentUiCulture = new CultureInfo("en-us"); Thread.CurrentThread.CurrentCulture = currentUiCulture; Thread.CurrentThread.CurrentUICulture = currentUiCulture; new HbmCodeGenerator().Execute(outFile); + Console.WriteLine("Done"); } } } \ No newline at end of file diff --git a/src/NHibernate/Cfg/MappingSchema/Hbm.generated.cs b/src/NHibernate/Cfg/MappingSchema/Hbm.generated.cs index e9b347bfc8d..4d9215ce474 100644 --- a/src/NHibernate/Cfg/MappingSchema/Hbm.generated.cs +++ b/src/NHibernate/Cfg/MappingSchema/Hbm.generated.cs @@ -1627,6 +1627,7 @@ public partial class HbmClass { /// [System.Xml.Serialization.XmlElementAttribute("timestamp", typeof(HbmTimestamp))] + [System.Xml.Serialization.XmlElementAttribute("timestamputc", typeof(HbmTimestamputc))] [System.Xml.Serialization.XmlElementAttribute("version", typeof(HbmVersion))] public object Item1; @@ -3595,6 +3596,89 @@ public enum HbmVersionGeneration { Always, } + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "5.0.0.Alpha1")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="urn:nhibernate-mapping-2.2")] + [System.Xml.Serialization.XmlRootAttribute("timestamputc", Namespace="urn:nhibernate-mapping-2.2", IsNullable=false)] + public partial class HbmTimestamputc { + + /// + [System.Xml.Serialization.XmlElementAttribute("meta")] + public HbmMeta[] meta; + + /// + [System.Xml.Serialization.XmlAttributeAttribute()] + public string name; + + /// + [System.Xml.Serialization.XmlAttributeAttribute()] + public string node; + + /// + [System.Xml.Serialization.XmlAttributeAttribute()] + public string column; + + /// + [System.Xml.Serialization.XmlAttributeAttribute()] + public string access; + + /// + [System.Xml.Serialization.XmlAttributeAttribute("unsaved-value")] + public HbmTimestamputcUnsavedvalue unsavedvalue; + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool unsavedvalueSpecified; + + /// + [System.Xml.Serialization.XmlAttributeAttribute()] + [System.ComponentModel.DefaultValueAttribute(HbmTimestamputcSource.Vm)] + public HbmTimestamputcSource source; + + /// + [System.Xml.Serialization.XmlAttributeAttribute()] + [System.ComponentModel.DefaultValueAttribute(HbmVersionGeneration.Never)] + public HbmVersionGeneration generated; + + public HbmTimestamputc() { + this.source = HbmTimestamputcSource.Vm; + this.generated = HbmVersionGeneration.Never; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "5.0.0.Alpha1")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="urn:nhibernate-mapping-2.2")] + public enum HbmTimestamputcUnsavedvalue { + + /// + [System.Xml.Serialization.XmlEnumAttribute("null")] + Null, + + /// + [System.Xml.Serialization.XmlEnumAttribute("undefined")] + Undefined, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "5.0.0.Alpha1")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="urn:nhibernate-mapping-2.2")] + public enum HbmTimestamputcSource { + + /// + [System.Xml.Serialization.XmlEnumAttribute("vm")] + Vm, + + /// + [System.Xml.Serialization.XmlEnumAttribute("db")] + Db, + } + /// [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "5.0.0.Alpha1")] [System.SerializableAttribute()] @@ -4294,15 +4378,15 @@ public enum HbmFlushMode { /// [System.Xml.Serialization.XmlEnumAttribute("auto")] Auto, - + /// [System.Xml.Serialization.XmlEnumAttribute("manual")] Manual, - + /// [System.Xml.Serialization.XmlEnumAttribute("always")] Always, - + /// [System.Xml.Serialization.XmlEnumAttribute("never")] Never, diff --git a/src/NHibernate/NHibernate.csproj b/src/NHibernate/NHibernate.csproj index b87825c4103..efbd9899d8b 100644 --- a/src/NHibernate/NHibernate.csproj +++ b/src/NHibernate/NHibernate.csproj @@ -47,9 +47,6 @@ - - -