From: <fab...@us...> - 2008-09-18 11:41:08
|
Revision: 3763 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=3763&view=rev Author: fabiomaulo Date: 2008-09-18 18:41:18 +0000 (Thu, 18 Sep 2008) Log Message: ----------- Fix NH-1305 Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Cfg/Configuration.cs Modified: trunk/nhibernate/src/NHibernate/Cfg/Configuration.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Cfg/Configuration.cs 2008-09-14 14:09:37 UTC (rev 3762) +++ trunk/nhibernate/src/NHibernate/Cfg/Configuration.cs 2008-09-18 18:41:18 UTC (rev 3763) @@ -834,6 +834,15 @@ return ProxyTypeValidator.ValidateType(persistentClass.ProxyInterface); } + /// <summary> + /// Call this to ensure the mappings are fully compiled/built. Usefull to ensure getting + /// access to all information in the metamodel when calling e.g. getClassMappings(). + /// </summary> + public virtual void BuildMappings() + { + SecondPassCompile(); + } + /// <remarks> /// This method may be called many times!! /// </remarks> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <te...@us...> - 2008-09-27 11:56:43
|
Revision: 3788 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=3788&view=rev Author: tehlike Date: 2008-09-27 11:56:36 +0000 (Sat, 27 Sep 2008) Log Message: ----------- Adding log message when no HbmXml is found in a mapped assembly (Fix NH1496 by Victor Toni) Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Cfg/Configuration.cs Modified: trunk/nhibernate/src/NHibernate/Cfg/Configuration.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Cfg/Configuration.cs 2008-09-27 11:56:13 UTC (rev 3787) +++ trunk/nhibernate/src/NHibernate/Cfg/Configuration.cs 2008-09-27 11:56:36 UTC (rev 3788) @@ -613,7 +613,10 @@ public Configuration AddAssembly(Assembly assembly) { IList<string> resourceNames = GetAllHbmXmlResourceNames(assembly); - + if (resourceNames.Count == 0) + { + log.Warn("No mapped documents found in assembly: " + assembly.FullName); + } foreach (string name in resourceNames) { AddResource(name, assembly); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2009-01-10 15:54:36
|
Revision: 3991 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=3991&view=rev Author: fabiomaulo Date: 2009-01-10 15:54:30 +0000 (Sat, 10 Jan 2009) Log Message: ----------- Removed CLS-compliant warnings Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Cfg/Configuration.cs Modified: trunk/nhibernate/src/NHibernate/Cfg/Configuration.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Cfg/Configuration.cs 2009-01-10 15:42:47 UTC (rev 3990) +++ trunk/nhibernate/src/NHibernate/Cfg/Configuration.cs 2009-01-10 15:54:30 UTC (rev 3991) @@ -55,19 +55,13 @@ private string currentDocumentName; protected IDictionary<string, PersistentClass> classes; // entityName, PersistentClass - protected IDictionary<string, string> imports; protected IDictionary<string, NHibernate.Mapping.Collection> collections; protected IDictionary<string, Table> tables; - protected IDictionary<string, NamedQueryDefinition> namedQueries; - protected IDictionary<string, NamedSQLQueryDefinition> namedSqlQueries; - protected IDictionary<string, ResultSetMappingDefinition> sqlResultSetMappings; protected IList<SecondPassCommand> secondPasses; protected IList<Mappings.PropertyReference> propertyReferences; private IInterceptor interceptor; private IDictionary<string, string> properties; - protected IDictionary<string, FilterDefinition> filterDefinitions; protected IList<IAuxiliaryDatabaseObject> auxiliaryDatabaseObjects; - protected IDictionary<string, ISQLFunction> sqlFunctions; private INamingStrategy namingStrategy = DefaultNamingStrategy.Instance; private MappingsQueue mappingsQueue; @@ -88,19 +82,19 @@ protected void Reset() { classes = new Dictionary<string, PersistentClass>(); //new SequencedHashMap(); - to make NH-369 bug deterministic - imports = new Dictionary<string, string>(); + Imports = new Dictionary<string, string>(); collections = new Dictionary<string, NHibernate.Mapping.Collection>(); tables = new Dictionary<string, Table>(); - namedQueries = new Dictionary<string, NamedQueryDefinition>(); - namedSqlQueries = new Dictionary<string, NamedSQLQueryDefinition>(); - sqlResultSetMappings = new Dictionary<string, ResultSetMappingDefinition>(); + NamedQueries = new Dictionary<string, NamedQueryDefinition>(); + NamedSQLQueries = new Dictionary<string, NamedSQLQueryDefinition>(); + SqlResultSetMappings = new Dictionary<string, ResultSetMappingDefinition>(); secondPasses = new List<SecondPassCommand>(); propertyReferences = new List<Mappings.PropertyReference>(); - filterDefinitions = new Dictionary<string, FilterDefinition>(); + FilterDefinitions = new Dictionary<string, FilterDefinition>(); interceptor = emptyInterceptor; properties = Environment.Properties; auxiliaryDatabaseObjects = new List<IAuxiliaryDatabaseObject>(); - sqlFunctions = new Dictionary<string, ISQLFunction>(); + SqlFunctions = new Dictionary<string, ISQLFunction>(); mappingsQueue = new MappingsQueue(); eventListeners = new EventListeners(); typeDefs = new Dictionary<string, TypeDef>(); @@ -445,8 +439,8 @@ /// </summary> public Mappings CreateMappings(Dialect.Dialect dialect) { - return new Mappings(classes, collections, tables, namedQueries, namedSqlQueries, sqlResultSetMappings, imports, - secondPasses, propertyReferences, namingStrategy, typeDefs, filterDefinitions, extendsQueue, + return new Mappings(classes, collections, tables, NamedQueries, NamedSQLQueries, SqlResultSetMappings, Imports, + secondPasses, propertyReferences, namingStrategy, typeDefs, FilterDefinitions, extendsQueue, auxiliaryDatabaseObjects, tableNameBinding, columnNameBindingPerTable, defaultAssembly, defaultNamespace, dialect); } @@ -947,10 +941,7 @@ /// <summary> /// The named queries /// </summary> - public IDictionary<string, NamedQueryDefinition> NamedQueries - { - get { return namedQueries; } - } + public IDictionary<string, NamedQueryDefinition> NamedQueries { get; protected set; } private EventListeners GetInitializedEventListeners() { @@ -1295,7 +1286,7 @@ { throw new HibernateConfigException("<mapping> element in configuration specifies no attributes"); } - if (!string.IsNullOrEmpty(mc.Resource)) + if (!string.IsNullOrEmpty(mc.Resource) && !string.IsNullOrEmpty(mc.Assembly)) { log.Debug(hc.SessionFactory.Name + "<-" + mc.Resource + " in " + mc.Assembly); AddResource(mc.Resource, Assembly.Load(mc.Assembly)); @@ -1442,11 +1433,7 @@ /// <summary> /// Get the query language imports (entityName/className -> AssemblyQualifiedName) /// </summary> - /// <returns></returns> - public IDictionary<string, string> Imports - { - get { return imports; } - } + public IDictionary<string, string> Imports { get; protected set; } /// <summary> /// Create an object-oriented view of the configuration properties @@ -1463,7 +1450,7 @@ /// </summary> public IDictionary<string, NamedSQLQueryDefinition> NamedSQLQueries { - get { return namedSqlQueries; } + get; protected set; } /// <summary> @@ -1487,17 +1474,15 @@ public IDictionary<string, ResultSetMappingDefinition> SqlResultSetMappings { - get { return sqlResultSetMappings; } + get; + protected set; } - public IDictionary<string, FilterDefinition> FilterDefinitions - { - get { return filterDefinitions; } - } + public IDictionary<string, FilterDefinition> FilterDefinitions { get; protected set; } public void AddFilterDefinition(FilterDefinition definition) { - filterDefinitions.Add(definition.FilterName, definition); + FilterDefinitions.Add(definition.FilterName, definition); } public void AddAuxiliaryDatabaseObject(IAuxiliaryDatabaseObject obj) @@ -1505,14 +1490,11 @@ auxiliaryDatabaseObjects.Add(obj); } - public IDictionary<string, ISQLFunction> SqlFunctions - { - get { return sqlFunctions; } - } + public IDictionary<string, ISQLFunction> SqlFunctions { get; protected set; } public void AddSqlFunction(string functionName, ISQLFunction sqlFunction) { - sqlFunctions[functionName] = sqlFunction; + SqlFunctions[functionName] = sqlFunction; } #region NHibernate-Specific Members This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2009-06-23 20:09:54
|
Revision: 4519 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4519&view=rev Author: fabiomaulo Date: 2009-06-23 20:09:53 +0000 (Tue, 23 Jun 2009) Log Message: ----------- Minor (only reformatted) Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Cfg/Configuration.cs Modified: trunk/nhibernate/src/NHibernate/Cfg/Configuration.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Cfg/Configuration.cs 2009-06-23 17:51:48 UTC (rev 4518) +++ trunk/nhibernate/src/NHibernate/Cfg/Configuration.cs 2009-06-23 20:09:53 UTC (rev 4519) @@ -83,80 +83,74 @@ #region ISerializable Members public Configuration(SerializationInfo info, StreamingContext context) { - this.Reset(); + Reset(); - this.EntityNotFoundDelegate = GetSerialedObject<IEntityNotFoundDelegate>(info, "entityNotFoundDelegate"); + EntityNotFoundDelegate = GetSerialedObject<IEntityNotFoundDelegate>(info, "entityNotFoundDelegate"); + auxiliaryDatabaseObjects = GetSerialedObject<IList<IAuxiliaryDatabaseObject>>(info, "auxiliaryDatabaseObjects"); + classes = GetSerialedObject<IDictionary<string, PersistentClass>>(info, "classes"); + collections = GetSerialedObject<IDictionary<string, NHibernate.Mapping.Collection>>(info, "collections"); - this.auxiliaryDatabaseObjects = GetSerialedObject<IList<IAuxiliaryDatabaseObject>>(info, "auxiliaryDatabaseObjects"); - this.classes = GetSerialedObject<IDictionary<string, PersistentClass>>(info, "classes"); - this.collections = GetSerialedObject<IDictionary<string, NHibernate.Mapping.Collection>>(info, "collections"); - - this.columnNameBindingPerTable = GetSerialedObject<IDictionary<Table, Mappings.ColumnNames>>(info, - "columnNameBindingPerTable"); - this.defaultAssembly = GetSerialedObject<string>(info, "defaultAssembly"); - this.defaultNamespace = GetSerialedObject<string>(info, "defaultNamespace"); - this.eventListeners = GetSerialedObject<EventListeners>(info, "eventListeners"); + columnNameBindingPerTable = GetSerialedObject<IDictionary<Table, Mappings.ColumnNames>>(info, + "columnNameBindingPerTable"); + defaultAssembly = GetSerialedObject<string>(info, "defaultAssembly"); + defaultNamespace = GetSerialedObject<string>(info, "defaultNamespace"); + eventListeners = GetSerialedObject<EventListeners>(info, "eventListeners"); //this.extendsQueue = GetSerialedObject<ISet<ExtendsQueueEntry>>(info, "extendsQueue"); - this.FilterDefinitions = GetSerialedObject<IDictionary<string, FilterDefinition>>(info, "filterDefinitions"); - this.Imports = GetSerialedObject<IDictionary<string, string>>(info, "imports"); - this.interceptor = GetSerialedObject<IInterceptor>(info, "interceptor"); - this.mapping = GetSerialedObject<IMapping>(info, "mapping"); - this.NamedQueries = GetSerialedObject<IDictionary<string, NamedQueryDefinition>>(info, "namedQueries"); - this.NamedSQLQueries = GetSerialedObject<IDictionary<string, NamedSQLQueryDefinition>>(info, "namedSqlQueries"); - this.namingStrategy = GetSerialedObject<INamingStrategy>(info, "namingStrategy"); - this.properties = GetSerialedObject<IDictionary<string, string>>(info, "properties"); - this.propertyReferences = GetSerialedObject<IList<Mappings.PropertyReference>>(info, "propertyReferences"); - this.settingsFactory = GetSerialedObject<SettingsFactory>(info, "settingsFactory"); - this.SqlFunctions = GetSerialedObject<IDictionary<string, ISQLFunction>>(info, "sqlFunctions"); - this.SqlResultSetMappings = GetSerialedObject<IDictionary<string, ResultSetMappingDefinition>>(info, "sqlResultSetMappings"); - this.tableNameBinding = GetSerialedObject<IDictionary<string, Mappings.TableDescription>>(info, "tableNameBinding"); - this.tables = GetSerialedObject<IDictionary<string, Table>>(info, "tables"); - this.typeDefs = GetSerialedObject<IDictionary<string, TypeDef>>(info, "typeDefs"); - - - - - - + FilterDefinitions = GetSerialedObject<IDictionary<string, FilterDefinition>>(info, "filterDefinitions"); + Imports = GetSerialedObject<IDictionary<string, string>>(info, "imports"); + interceptor = GetSerialedObject<IInterceptor>(info, "interceptor"); + mapping = GetSerialedObject<IMapping>(info, "mapping"); + NamedQueries = GetSerialedObject<IDictionary<string, NamedQueryDefinition>>(info, "namedQueries"); + NamedSQLQueries = GetSerialedObject<IDictionary<string, NamedSQLQueryDefinition>>(info, "namedSqlQueries"); + namingStrategy = GetSerialedObject<INamingStrategy>(info, "namingStrategy"); + properties = GetSerialedObject<IDictionary<string, string>>(info, "properties"); + propertyReferences = GetSerialedObject<IList<Mappings.PropertyReference>>(info, "propertyReferences"); + settingsFactory = GetSerialedObject<SettingsFactory>(info, "settingsFactory"); + SqlFunctions = GetSerialedObject<IDictionary<string, ISQLFunction>>(info, "sqlFunctions"); + SqlResultSetMappings = GetSerialedObject<IDictionary<string, ResultSetMappingDefinition>>(info, + "sqlResultSetMappings"); + tableNameBinding = GetSerialedObject<IDictionary<string, Mappings.TableDescription>>(info, "tableNameBinding"); + tables = GetSerialedObject<IDictionary<string, Table>>(info, "tables"); + typeDefs = GetSerialedObject<IDictionary<string, TypeDef>>(info, "typeDefs"); } + private T GetSerialedObject<T>(SerializationInfo info, string name) { return (T)info.GetValue(name, typeof(T)); } + public void GetObjectData(SerializationInfo info, StreamingContext context) { ConfigureProxyFactoryFactory(); SecondPassCompile(); Validate(); - - - info.AddValue("entityNotFoundDelegate", this.EntityNotFoundDelegate); + info.AddValue("entityNotFoundDelegate", EntityNotFoundDelegate); - info.AddValue("auxiliaryDatabaseObjects", this.auxiliaryDatabaseObjects); - info.AddValue("classes", this.classes); - info.AddValue("collections", this.collections); - info.AddValue("columnNameBindingPerTable", this.columnNameBindingPerTable); - info.AddValue("defaultAssembly", this.defaultAssembly); - info.AddValue("defaultNamespace", this.defaultNamespace); - info.AddValue("eventListeners", this.eventListeners); + info.AddValue("auxiliaryDatabaseObjects", auxiliaryDatabaseObjects); + info.AddValue("classes", classes); + info.AddValue("collections", collections); + info.AddValue("columnNameBindingPerTable", columnNameBindingPerTable); + info.AddValue("defaultAssembly", defaultAssembly); + info.AddValue("defaultNamespace", defaultNamespace); + info.AddValue("eventListeners", eventListeners); //info.AddValue("extendsQueue", this.extendsQueue); - info.AddValue("filterDefinitions", this.FilterDefinitions); - info.AddValue("imports", this.Imports); - info.AddValue("interceptor", this.interceptor); - info.AddValue("mapping", this.mapping); - info.AddValue("namedQueries", this.NamedQueries); - info.AddValue("namedSqlQueries", this.NamedSQLQueries); - info.AddValue("namingStrategy", this.namingStrategy); - info.AddValue("properties", this.properties); - info.AddValue("propertyReferences", this.propertyReferences); - info.AddValue("settingsFactory", this.settingsFactory); - info.AddValue("sqlFunctions", this.SqlFunctions); - info.AddValue("sqlResultSetMappings", this.SqlResultSetMappings); - info.AddValue("tableNameBinding", this.tableNameBinding); - info.AddValue("tables", this.tables); - info.AddValue("typeDefs", this.typeDefs); + info.AddValue("filterDefinitions", FilterDefinitions); + info.AddValue("imports", Imports); + info.AddValue("interceptor", interceptor); + info.AddValue("mapping", mapping); + info.AddValue("namedQueries", NamedQueries); + info.AddValue("namedSqlQueries", NamedSQLQueries); + info.AddValue("namingStrategy", namingStrategy); + info.AddValue("properties", properties); + info.AddValue("propertyReferences", propertyReferences); + info.AddValue("settingsFactory", settingsFactory); + info.AddValue("sqlFunctions", SqlFunctions); + info.AddValue("sqlResultSetMappings", SqlResultSetMappings); + info.AddValue("tableNameBinding", tableNameBinding); + info.AddValue("tables", tables); + info.AddValue("typeDefs", typeDefs); } #endregion This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2009-06-26 14:20:25
|
Revision: 4534 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4534&view=rev Author: fabiomaulo Date: 2009-06-26 14:20:18 +0000 (Fri, 26 Jun 2009) Log Message: ----------- Merge from r4533 (fix NH-1853) Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Cfg/Configuration.cs Modified: trunk/nhibernate/src/NHibernate/Cfg/Configuration.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Cfg/Configuration.cs 2009-06-26 14:15:32 UTC (rev 4533) +++ trunk/nhibernate/src/NHibernate/Cfg/Configuration.cs 2009-06-26 14:20:18 UTC (rev 4534) @@ -643,7 +643,24 @@ } } - // Not ported - addResource(String path) - not applicable + /// <summary> + /// Adds the mappings from ebedded resources of the assembly. + /// </summary> + /// <param name="paths">Paths to the resource files in the assembly.</param> + /// <param name="assembly">The assembly that contains the resource files.</param> + /// <returns>This configuration object.</returns> + public Configuration AddResources(IEnumerable<string> paths, Assembly assembly) + { + if (paths == null) + { + throw new ArgumentNullException("paths"); + } + foreach (var path in paths) + { + AddResource(path, assembly); + } + return this; + } /// <summary> /// Read a mapping from an embedded resource, using a convention. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aye...@us...> - 2010-03-23 21:04:45
|
Revision: 4965 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4965&view=rev Author: ayenderahien Date: 2010-03-23 21:04:38 +0000 (Tue, 23 Mar 2010) Log Message: ----------- Adding the ability to append to the configuration listeners vs. override them directly. Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Cfg/Configuration.cs Modified: trunk/nhibernate/src/NHibernate/Cfg/Configuration.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Cfg/Configuration.cs 2010-03-22 15:17:58 UTC (rev 4964) +++ trunk/nhibernate/src/NHibernate/Cfg/Configuration.cs 2010-03-23 21:04:38 UTC (rev 4965) @@ -27,7 +27,7 @@ using NHibernate.Tool.hbm2ddl; using NHibernate.Type; using NHibernate.Util; -using Array=System.Array; +using Array = System.Array; using System.Runtime.Serialization; namespace NHibernate.Cfg @@ -48,7 +48,7 @@ /// </para> /// </remarks> [Serializable] - public class Configuration:ISerializable + public class Configuration : ISerializable { /// <summary>Default name for hibernate configuration file.</summary> public const string DefaultHibernateCfgFileName = "hibernate.cfg.xml"; @@ -75,7 +75,7 @@ protected IDictionary<string, Mappings.TableDescription> tableNameBinding; protected IDictionary<Table, Mappings.ColumnNames> columnNameBindingPerTable; - private static readonly ILog log = LogManager.GetLogger(typeof (Configuration)); + private static readonly ILog log = LogManager.GetLogger(typeof(Configuration)); protected internal SettingsFactory settingsFactory; @@ -92,7 +92,7 @@ collections = GetSerialedObject<IDictionary<string, NHibernate.Mapping.Collection>>(info, "collections"); columnNameBindingPerTable = GetSerialedObject<IDictionary<Table, Mappings.ColumnNames>>(info, - "columnNameBindingPerTable"); + "columnNameBindingPerTable"); defaultAssembly = GetSerialedObject<string>(info, "defaultAssembly"); defaultNamespace = GetSerialedObject<string>(info, "defaultNamespace"); eventListeners = GetSerialedObject<EventListeners>(info, "eventListeners"); @@ -109,7 +109,7 @@ settingsFactory = GetSerialedObject<SettingsFactory>(info, "settingsFactory"); SqlFunctions = GetSerialedObject<IDictionary<string, ISQLFunction>>(info, "sqlFunctions"); SqlResultSetMappings = GetSerialedObject<IDictionary<string, ResultSetMappingDefinition>>(info, - "sqlResultSetMappings"); + "sqlResultSetMappings"); tableNameBinding = GetSerialedObject<IDictionary<string, Mappings.TableDescription>>(info, "tableNameBinding"); tables = GetSerialedObject<IDictionary<string, Table>>(info, "tables"); typeDefs = GetSerialedObject<IDictionary<string, TypeDef>>(info, "typeDefs"); @@ -258,7 +258,7 @@ /// <summary> /// Create a new Configuration object. /// </summary> - public Configuration() : this(new SettingsFactory()) {} + public Configuration() : this(new SettingsFactory()) { } /// <summary> /// The class mappings @@ -509,17 +509,17 @@ } try { - Dialect.Dialect dialect = Dialect.Dialect.GetDialect(properties); - Mappings mappings = CreateMappings(dialect); + Dialect.Dialect dialect = Dialect.Dialect.GetDialect(properties); + Mappings mappings = CreateMappings(dialect); - new MappingRootBinder(mappings, dialect).Bind(mappingDocument); + new MappingRootBinder(mappings, dialect).Bind(mappingDocument); } catch (Exception e) { var message = documentFileName == null - ? "Could not compile deserialized mapping document." - : "Could not compile the mapping document: " + documentFileName; - LogAndThrow(new MappingException(message, e)); + ? "Could not compile deserialized mapping document." + : "Could not compile the mapping document: " + documentFileName; + LogAndThrow(new MappingException(message, e)); } } @@ -531,14 +531,14 @@ { ProcessPreMappingBuildProperties(); return new Mappings(classes, collections, tables, NamedQueries, NamedSQLQueries, SqlResultSetMappings, Imports, - secondPasses, filtersSecondPasses, propertyReferences, namingStrategy, typeDefs, FilterDefinitions, extendsQueue, - auxiliaryDatabaseObjects, tableNameBinding, columnNameBindingPerTable, defaultAssembly, - defaultNamespace, dialect); + secondPasses, filtersSecondPasses, propertyReferences, namingStrategy, typeDefs, FilterDefinitions, extendsQueue, + auxiliaryDatabaseObjects, tableNameBinding, columnNameBindingPerTable, defaultAssembly, + defaultNamespace, dialect); } private void ProcessPreMappingBuildProperties() { - if(preMappingBuildProcessed) + if (preMappingBuildProcessed) { return; } @@ -549,12 +549,12 @@ private void ConfigureCollectionTypeFactory() { var ctfc = GetProperty(Environment.CollectionTypeFactoryClass); - if(string.IsNullOrEmpty(ctfc)) + if (string.IsNullOrEmpty(ctfc)) { return; } var ictfc = Environment.BytecodeProvider as IInjectableCollectionTypeFactoryClass; - if(ictfc == null) + if (ictfc == null) { return; } @@ -927,13 +927,13 @@ var filterNames = new HashedSet<string>(); foreach (var filterDefinition in FilterDefinitions) { - if(filterDefinition.Value == null) + if (filterDefinition.Value == null) { // a class/collection has a filter but the filter-def was not added. filterNames.Add(filterDefinition.Key); } } - if(filterNames.Count > 0) + if (filterNames.Count > 0) { var message = new StringBuilder(); message.Append("filter-def for filter named "); @@ -965,7 +965,7 @@ // if you are going to remove this exception at least add a log.Error // because the usage of filter-def, outside its scope, may cause unexpected behaviour // during queries. - log.ErrorFormat("filter-def for filter named '{0}' was never used to filter classes nor collections.\r\nThis may result in unexpected behavior during queries", filterName); + log.ErrorFormat("filter-def for filter named '{0}' was never used to filter classes nor collections.\r\nThis may result in unexpected behavior during queries", filterName); } } } @@ -988,7 +988,7 @@ foreach (var clazz in classes.Values) { clazz.Validate(mapping); - + if (validateProxy) { ICollection<string> errors = ValidateProxyInterface(clazz, pvalidator); @@ -1067,7 +1067,7 @@ } Property prop = clazz.GetReferencedProperty(upr.propertyName); - ((SimpleValue) prop.Value).IsAlternateUniqueKey = true; + ((SimpleValue)prop.Value).IsAlternateUniqueKey = true; } //TODO: Somehow add the newly created foreign keys to the internal collection @@ -1086,11 +1086,11 @@ FilterDefinition filterDef; var filterName = filterSecondPassArgs.FilterName; FilterDefinitions.TryGetValue(filterName, out filterDef); - if(filterDef == null) + if (filterDef == null) { throw new MappingException("filter-def for filter named " + filterName + " was not found."); } - if(string.IsNullOrEmpty(filterDef.DefaultFilterCondition)) + if (string.IsNullOrEmpty(filterDef.DefaultFilterCondition)) { throw new MappingException("no filter condition found for filter: " + filterName); } @@ -1124,7 +1124,7 @@ if (!classes.TryGetValue(referencedEntityName, out referencedClass)) { string message = string.Format("An association from the table {0} refers to an unmapped class: {1}", fk.Table.Name, - referencedEntityName); + referencedEntityName); LogAndThrow(new MappingException(message)); } @@ -1441,7 +1441,7 @@ { // resource does not exist - throw appropriate exception throw new HibernateException("A ManifestResourceStream could not be created for the resource " + resourceName - + " in Assembly " + assembly.FullName); + + " in Assembly " + assembly.FullName); } return Configure(new XmlTextReader(stream)); @@ -1468,7 +1468,7 @@ if (textReader == null) { throw new HibernateConfigException("Could not configure NHibernate.", - new ArgumentException("A null value was passed in.", "textReader")); + new ArgumentException("A null value was passed in.", "textReader")); } try @@ -1556,7 +1556,7 @@ foreach (var lc in factoryConfiguration.Listeners) { log.Debug("Event listener: " + lc.Type + "=" + lc.Class); - SetListeners(lc.Type, new[] {lc.Class}); + SetListeners(lc.Type, new[] { lc.Class }); } if (!string.IsNullOrEmpty(factoryConfiguration.Name)) @@ -1572,7 +1572,7 @@ { try { - return (RootClass) GetClassMapping(clazz); + return (RootClass)GetClassMapping(clazz); } catch (InvalidCastException) { @@ -1669,7 +1669,8 @@ /// </summary> public IDictionary<string, NamedSQLQueryDefinition> NamedSQLQueries { - get; protected set; + get; + protected set; } /// <summary> @@ -1745,7 +1746,7 @@ hbmDocument.Load(reader); return new NamedXmlDocument(name, hbmDocument); } - catch(MappingException) + catch (MappingException) { throw; } @@ -1806,7 +1807,7 @@ private void ValidationHandler(object o, ValidationEventArgs args) { string message = string.Format("{0}({1},{2}): XML validation error: {3}", currentDocumentName, - args.Exception.LineNumber, args.Exception.LinePosition, args.Exception.Message); + args.Exception.LineNumber, args.Exception.LinePosition, args.Exception.Message); LogAndThrow(new MappingException(message, args.Exception)); } @@ -1849,7 +1850,7 @@ } else { - var listeners = (object[]) Array.CreateInstance(eventListeners.GetListenerClassFor(type), listenerClasses.Length); + var listeners = (object[])Array.CreateInstance(eventListeners.GetListenerClassFor(type), listenerClasses.Length); for (int i = 0; i < listeners.Length; i++) { try @@ -1881,7 +1882,7 @@ } else { - var listeners = (object[]) Array.CreateInstance(eventListeners.GetListenerClassFor(type), 1); + var listeners = (object[])Array.CreateInstance(eventListeners.GetListenerClassFor(type), 1); listeners[0] = listener; SetListeners(type, listeners); } @@ -1892,106 +1893,106 @@ switch (type) { case ListenerType.Autoflush: - eventListeners.AutoFlushEventListeners = new IAutoFlushEventListener[] {}; + eventListeners.AutoFlushEventListeners = new IAutoFlushEventListener[] { }; break; case ListenerType.Merge: - eventListeners.MergeEventListeners = new IMergeEventListener[] {}; + eventListeners.MergeEventListeners = new IMergeEventListener[] { }; break; case ListenerType.Create: - eventListeners.PersistEventListeners = new IPersistEventListener[] {}; + eventListeners.PersistEventListeners = new IPersistEventListener[] { }; break; case ListenerType.CreateOnFlush: - eventListeners.PersistOnFlushEventListeners = new IPersistEventListener[] {}; + eventListeners.PersistOnFlushEventListeners = new IPersistEventListener[] { }; break; case ListenerType.Delete: - eventListeners.DeleteEventListeners = new IDeleteEventListener[] {}; + eventListeners.DeleteEventListeners = new IDeleteEventListener[] { }; break; case ListenerType.DirtyCheck: - eventListeners.DirtyCheckEventListeners = new IDirtyCheckEventListener[] {}; + eventListeners.DirtyCheckEventListeners = new IDirtyCheckEventListener[] { }; break; case ListenerType.Evict: - eventListeners.EvictEventListeners = new IEvictEventListener[] {}; + eventListeners.EvictEventListeners = new IEvictEventListener[] { }; break; case ListenerType.Flush: - eventListeners.FlushEventListeners = new IFlushEventListener[] {}; + eventListeners.FlushEventListeners = new IFlushEventListener[] { }; break; case ListenerType.FlushEntity: - eventListeners.FlushEntityEventListeners = new IFlushEntityEventListener[] {}; + eventListeners.FlushEntityEventListeners = new IFlushEntityEventListener[] { }; break; case ListenerType.Load: - eventListeners.LoadEventListeners = new ILoadEventListener[] {}; + eventListeners.LoadEventListeners = new ILoadEventListener[] { }; break; case ListenerType.LoadCollection: - eventListeners.InitializeCollectionEventListeners = new IInitializeCollectionEventListener[] {}; + eventListeners.InitializeCollectionEventListeners = new IInitializeCollectionEventListener[] { }; break; case ListenerType.Lock: - eventListeners.LockEventListeners = new ILockEventListener[] {}; + eventListeners.LockEventListeners = new ILockEventListener[] { }; break; case ListenerType.Refresh: - eventListeners.RefreshEventListeners = new IRefreshEventListener[] {}; + eventListeners.RefreshEventListeners = new IRefreshEventListener[] { }; break; case ListenerType.Replicate: - eventListeners.ReplicateEventListeners = new IReplicateEventListener[] {}; + eventListeners.ReplicateEventListeners = new IReplicateEventListener[] { }; break; case ListenerType.SaveUpdate: - eventListeners.SaveOrUpdateEventListeners = new ISaveOrUpdateEventListener[] {}; + eventListeners.SaveOrUpdateEventListeners = new ISaveOrUpdateEventListener[] { }; break; case ListenerType.Save: - eventListeners.SaveEventListeners = new ISaveOrUpdateEventListener[] {}; + eventListeners.SaveEventListeners = new ISaveOrUpdateEventListener[] { }; break; case ListenerType.PreUpdate: - eventListeners.PreUpdateEventListeners = new IPreUpdateEventListener[] {}; + eventListeners.PreUpdateEventListeners = new IPreUpdateEventListener[] { }; break; case ListenerType.Update: - eventListeners.UpdateEventListeners = new ISaveOrUpdateEventListener[] {}; + eventListeners.UpdateEventListeners = new ISaveOrUpdateEventListener[] { }; break; case ListenerType.PreLoad: - eventListeners.PreLoadEventListeners = new IPreLoadEventListener[] {}; + eventListeners.PreLoadEventListeners = new IPreLoadEventListener[] { }; break; case ListenerType.PreDelete: - eventListeners.PreDeleteEventListeners = new IPreDeleteEventListener[] {}; + eventListeners.PreDeleteEventListeners = new IPreDeleteEventListener[] { }; break; case ListenerType.PreInsert: - eventListeners.PreInsertEventListeners = new IPreInsertEventListener[] {}; + eventListeners.PreInsertEventListeners = new IPreInsertEventListener[] { }; break; case ListenerType.PostLoad: - eventListeners.PostLoadEventListeners = new IPostLoadEventListener[] {}; + eventListeners.PostLoadEventListeners = new IPostLoadEventListener[] { }; break; case ListenerType.PostInsert: - eventListeners.PostInsertEventListeners = new IPostInsertEventListener[] {}; + eventListeners.PostInsertEventListeners = new IPostInsertEventListener[] { }; break; case ListenerType.PostUpdate: - eventListeners.PostUpdateEventListeners = new IPostUpdateEventListener[] {}; + eventListeners.PostUpdateEventListeners = new IPostUpdateEventListener[] { }; break; case ListenerType.PostDelete: - eventListeners.PostDeleteEventListeners = new IPostDeleteEventListener[] {}; + eventListeners.PostDeleteEventListeners = new IPostDeleteEventListener[] { }; break; case ListenerType.PostCommitUpdate: - eventListeners.PostCommitUpdateEventListeners = new IPostUpdateEventListener[] {}; + eventListeners.PostCommitUpdateEventListeners = new IPostUpdateEventListener[] { }; break; case ListenerType.PostCommitInsert: - eventListeners.PostCommitInsertEventListeners = new IPostInsertEventListener[] {}; + eventListeners.PostCommitInsertEventListeners = new IPostInsertEventListener[] { }; break; case ListenerType.PostCommitDelete: - eventListeners.PostCommitDeleteEventListeners = new IPostDeleteEventListener[] {}; + eventListeners.PostCommitDeleteEventListeners = new IPostDeleteEventListener[] { }; break; case ListenerType.PreCollectionRecreate: - eventListeners.PreCollectionRecreateEventListeners = new IPreCollectionRecreateEventListener[] {}; + eventListeners.PreCollectionRecreateEventListeners = new IPreCollectionRecreateEventListener[] { }; break; case ListenerType.PreCollectionRemove: - eventListeners.PreCollectionRemoveEventListeners = new IPreCollectionRemoveEventListener[] {}; + eventListeners.PreCollectionRemoveEventListeners = new IPreCollectionRemoveEventListener[] { }; break; case ListenerType.PreCollectionUpdate: - eventListeners.PreCollectionUpdateEventListeners = new IPreCollectionUpdateEventListener[] {}; + eventListeners.PreCollectionUpdateEventListeners = new IPreCollectionUpdateEventListener[] { }; break; case ListenerType.PostCollectionRecreate: - eventListeners.PostCollectionRecreateEventListeners = new IPostCollectionRecreateEventListener[] {}; + eventListeners.PostCollectionRecreateEventListeners = new IPostCollectionRecreateEventListener[] { }; break; case ListenerType.PostCollectionRemove: - eventListeners.PostCollectionRemoveEventListeners = new IPostCollectionRemoveEventListener[] {}; + eventListeners.PostCollectionRemoveEventListeners = new IPostCollectionRemoveEventListener[] { }; break; case ListenerType.PostCollectionUpdate: - eventListeners.PostCollectionUpdateEventListeners = new IPostCollectionUpdateEventListener[] {}; + eventListeners.PostCollectionUpdateEventListeners = new IPostCollectionUpdateEventListener[] { }; break; default: log.Warn("Unrecognized listener type [" + type + "]"); @@ -2015,106 +2016,106 @@ switch (type) { case ListenerType.Autoflush: - eventListeners.AutoFlushEventListeners = (IAutoFlushEventListener[]) listeners; + eventListeners.AutoFlushEventListeners = (IAutoFlushEventListener[])listeners; break; case ListenerType.Merge: - eventListeners.MergeEventListeners = (IMergeEventListener[]) listeners; + eventListeners.MergeEventListeners = (IMergeEventListener[])listeners; break; case ListenerType.Create: - eventListeners.PersistEventListeners = (IPersistEventListener[]) listeners; + eventListeners.PersistEventListeners = (IPersistEventListener[])listeners; break; case ListenerType.CreateOnFlush: - eventListeners.PersistOnFlushEventListeners = (IPersistEventListener[]) listeners; + eventListeners.PersistOnFlushEventListeners = (IPersistEventListener[])listeners; break; case ListenerType.Delete: - eventListeners.DeleteEventListeners = (IDeleteEventListener[]) listeners; + eventListeners.DeleteEventListeners = (IDeleteEventListener[])listeners; break; case ListenerType.DirtyCheck: - eventListeners.DirtyCheckEventListeners = (IDirtyCheckEventListener[]) listeners; + eventListeners.DirtyCheckEventListeners = (IDirtyCheckEventListener[])listeners; break; case ListenerType.Evict: - eventListeners.EvictEventListeners = (IEvictEventListener[]) listeners; + eventListeners.EvictEventListeners = (IEvictEventListener[])listeners; break; case ListenerType.Flush: - eventListeners.FlushEventListeners = (IFlushEventListener[]) listeners; + eventListeners.FlushEventListeners = (IFlushEventListener[])listeners; break; case ListenerType.FlushEntity: - eventListeners.FlushEntityEventListeners = (IFlushEntityEventListener[]) listeners; + eventListeners.FlushEntityEventListeners = (IFlushEntityEventListener[])listeners; break; case ListenerType.Load: - eventListeners.LoadEventListeners = (ILoadEventListener[]) listeners; + eventListeners.LoadEventListeners = (ILoadEventListener[])listeners; break; case ListenerType.LoadCollection: - eventListeners.InitializeCollectionEventListeners = (IInitializeCollectionEventListener[]) listeners; + eventListeners.InitializeCollectionEventListeners = (IInitializeCollectionEventListener[])listeners; break; case ListenerType.Lock: - eventListeners.LockEventListeners = (ILockEventListener[]) listeners; + eventListeners.LockEventListeners = (ILockEventListener[])listeners; break; case ListenerType.Refresh: - eventListeners.RefreshEventListeners = (IRefreshEventListener[]) listeners; + eventListeners.RefreshEventListeners = (IRefreshEventListener[])listeners; break; case ListenerType.Replicate: - eventListeners.ReplicateEventListeners = (IReplicateEventListener[]) listeners; + eventListeners.ReplicateEventListeners = (IReplicateEventListener[])listeners; break; case ListenerType.SaveUpdate: - eventListeners.SaveOrUpdateEventListeners = (ISaveOrUpdateEventListener[]) listeners; + eventListeners.SaveOrUpdateEventListeners = (ISaveOrUpdateEventListener[])listeners; break; case ListenerType.Save: - eventListeners.SaveEventListeners = (ISaveOrUpdateEventListener[]) listeners; + eventListeners.SaveEventListeners = (ISaveOrUpdateEventListener[])listeners; break; case ListenerType.PreUpdate: - eventListeners.PreUpdateEventListeners = (IPreUpdateEventListener[]) listeners; + eventListeners.PreUpdateEventListeners = (IPreUpdateEventListener[])listeners; break; case ListenerType.Update: - eventListeners.UpdateEventListeners = (ISaveOrUpdateEventListener[]) listeners; + eventListeners.UpdateEventListeners = (ISaveOrUpdateEventListener[])listeners; break; case ListenerType.PreLoad: - eventListeners.PreLoadEventListeners = (IPreLoadEventListener[]) listeners; + eventListeners.PreLoadEventListeners = (IPreLoadEventListener[])listeners; break; case ListenerType.PreDelete: - eventListeners.PreDeleteEventListeners = (IPreDeleteEventListener[]) listeners; + eventListeners.PreDeleteEventListeners = (IPreDeleteEventListener[])listeners; break; case ListenerType.PreInsert: - eventListeners.PreInsertEventListeners = (IPreInsertEventListener[]) listeners; + eventListeners.PreInsertEventListeners = (IPreInsertEventListener[])listeners; break; case ListenerType.PostLoad: - eventListeners.PostLoadEventListeners = (IPostLoadEventListener[]) listeners; + eventListeners.PostLoadEventListeners = (IPostLoadEventListener[])listeners; break; case ListenerType.PostInsert: - eventListeners.PostInsertEventListeners = (IPostInsertEventListener[]) listeners; + eventListeners.PostInsertEventListeners = (IPostInsertEventListener[])listeners; break; case ListenerType.PostUpdate: - eventListeners.PostUpdateEventListeners = (IPostUpdateEventListener[]) listeners; + eventListeners.PostUpdateEventListeners = (IPostUpdateEventListener[])listeners; break; case ListenerType.PostDelete: - eventListeners.PostDeleteEventListeners = (IPostDeleteEventListener[]) listeners; + eventListeners.PostDeleteEventListeners = (IPostDeleteEventListener[])listeners; break; case ListenerType.PostCommitUpdate: - eventListeners.PostCommitUpdateEventListeners = (IPostUpdateEventListener[]) listeners; + eventListeners.PostCommitUpdateEventListeners = (IPostUpdateEventListener[])listeners; break; case ListenerType.PostCommitInsert: - eventListeners.PostCommitInsertEventListeners = (IPostInsertEventListener[]) listeners; + eventListeners.PostCommitInsertEventListeners = (IPostInsertEventListener[])listeners; break; case ListenerType.PostCommitDelete: - eventListeners.PostCommitDeleteEventListeners = (IPostDeleteEventListener[]) listeners; + eventListeners.PostCommitDeleteEventListeners = (IPostDeleteEventListener[])listeners; break; case ListenerType.PreCollectionRecreate: - eventListeners.PreCollectionRecreateEventListeners = (IPreCollectionRecreateEventListener[]) listeners; + eventListeners.PreCollectionRecreateEventListeners = (IPreCollectionRecreateEventListener[])listeners; break; case ListenerType.PreCollectionRemove: - eventListeners.PreCollectionRemoveEventListeners = (IPreCollectionRemoveEventListener[]) listeners; + eventListeners.PreCollectionRemoveEventListeners = (IPreCollectionRemoveEventListener[])listeners; break; case ListenerType.PreCollectionUpdate: - eventListeners.PreCollectionUpdateEventListeners = (IPreCollectionUpdateEventListener[]) listeners; + eventListeners.PreCollectionUpdateEventListeners = (IPreCollectionUpdateEventListener[])listeners; break; case ListenerType.PostCollectionRecreate: - eventListeners.PostCollectionRecreateEventListeners = (IPostCollectionRecreateEventListener[]) listeners; + eventListeners.PostCollectionRecreateEventListeners = (IPostCollectionRecreateEventListener[])listeners; break; case ListenerType.PostCollectionRemove: - eventListeners.PostCollectionRemoveEventListeners = (IPostCollectionRemoveEventListener[]) listeners; + eventListeners.PostCollectionRemoveEventListeners = (IPostCollectionRemoveEventListener[])listeners; break; case ListenerType.PostCollectionUpdate: - eventListeners.PostCollectionUpdateEventListeners = (IPostCollectionUpdateEventListener[]) listeners; + eventListeners.PostCollectionUpdateEventListeners = (IPostCollectionUpdateEventListener[])listeners; break; default: log.Warn("Unrecognized listener type [" + type + "]"); @@ -2122,6 +2123,130 @@ } } + + /// <summary> + /// Append the listeners to the end of the currently configured + /// listeners + /// </summary> + public void AppendListeners(ListenerType type, object[] listeners) + { + switch (type) + { + case ListenerType.Autoflush: + eventListeners.AutoFlushEventListeners = AppendListeners(eventListeners.AutoFlushEventListeners, (IAutoFlushEventListener[])listeners); + break; + case ListenerType.Merge: + eventListeners.MergeEventListeners = AppendListeners(eventListeners.MergeEventListeners, (IMergeEventListener[])listeners); + break; + case ListenerType.Create: + eventListeners.PersistEventListeners = AppendListeners(eventListeners.PersistEventListeners, (IPersistEventListener[])listeners); + break; + case ListenerType.CreateOnFlush: + eventListeners.PersistOnFlushEventListeners = AppendListeners(eventListeners.PersistOnFlushEventListeners, (IPersistEventListener[])listeners); + break; + case ListenerType.Delete: + eventListeners.DeleteEventListeners = AppendListeners(eventListeners.DeleteEventListeners, (IDeleteEventListener[])listeners); + break; + case ListenerType.DirtyCheck: + eventListeners.DirtyCheckEventListeners = AppendListeners(eventListeners.DirtyCheckEventListeners, (IDirtyCheckEventListener[])listeners); + break; + case ListenerType.Evict: + eventListeners.EvictEventListeners = AppendListeners(eventListeners.EvictEventListeners, (IEvictEventListener[])listeners); + break; + case ListenerType.Flush: + eventListeners.FlushEventListeners = AppendListeners(eventListeners.FlushEventListeners, (IFlushEventListener[])listeners); + break; + case ListenerType.FlushEntity: + eventListeners.FlushEntityEventListeners = AppendListeners(eventListeners.FlushEntityEventListeners, (IFlushEntityEventListener[])listeners); + break; + case ListenerType.Load: + eventListeners.LoadEventListeners = AppendListeners(eventListeners.LoadEventListeners, (ILoadEventListener[])listeners); + break; + case ListenerType.LoadCollection: + eventListeners.InitializeCollectionEventListeners = AppendListeners(eventListeners.InitializeCollectionEventListeners, (IInitializeCollectionEventListener[])listeners); + break; + case ListenerType.Lock: + eventListeners.LockEventListeners = AppendListeners(eventListeners.LockEventListeners, (ILockEventListener[])listeners); + break; + case ListenerType.Refresh: + eventListeners.RefreshEventListeners = AppendListeners(eventListeners.RefreshEventListeners, (IRefreshEventListener[])listeners); + break; + case ListenerType.Replicate: + eventListeners.ReplicateEventListeners = AppendListeners(eventListeners.ReplicateEventListeners, (IReplicateEventListener[])listeners); + break; + case ListenerType.SaveUpdate: + eventListeners.SaveOrUpdateEventListeners = AppendListeners(eventListeners.SaveOrUpdateEventListeners, (ISaveOrUpdateEventListener[])listeners); + break; + case ListenerType.Save: + eventListeners.SaveEventListeners = AppendListeners(eventListeners.SaveEventListeners, (ISaveOrUpdateEventListener[])listeners); + break; + case ListenerType.PreUpdate: + eventListeners.PreUpdateEventListeners = AppendListeners(eventListeners.PreUpdateEventListeners, (IPreUpdateEventListener[])listeners); + break; + case ListenerType.Update: + eventListeners.UpdateEventListeners = AppendListeners(eventListeners.UpdateEventListeners, (ISaveOrUpdateEventListener[])listeners); + break; + case ListenerType.PreLoad: + eventListeners.PreLoadEventListeners = AppendListeners(eventListeners.PreLoadEventListeners, (IPreLoadEventListener[])listeners); + break; + case ListenerType.PreDelete: + eventListeners.PreDeleteEventListeners = AppendListeners(eventListeners.PreDeleteEventListeners, (IPreDeleteEventListener[])listeners); + break; + case ListenerType.PreInsert: + eventListeners.PreInsertEventListeners = AppendListeners(eventListeners.PreInsertEventListeners, (IPreInsertEventListener[])listeners); + break; + case ListenerType.PostLoad: + eventListeners.PostLoadEventListeners = AppendListeners(eventListeners.PostLoadEventListeners, (IPostLoadEventListener[])listeners); + break; + case ListenerType.PostInsert: + eventListeners.PostInsertEventListeners = AppendListeners(eventListeners.PostInsertEventListeners, (IPostInsertEventListener[])listeners); + break; + case ListenerType.PostUpdate: + eventListeners.PostUpdateEventListeners = AppendListeners(eventListeners.PostUpdateEventListeners, (IPostUpdateEventListener[])listeners); + break; + case ListenerType.PostDelete: + eventListeners.PostDeleteEventListeners = AppendListeners(eventListeners.PostDeleteEventListeners, (IPostDeleteEventListener[])listeners); + break; + case ListenerType.PostCommitUpdate: + eventListeners.PostCommitUpdateEventListeners = AppendListeners(eventListeners.PostCommitUpdateEventListeners, (IPostUpdateEventListener[])listeners); + break; + case ListenerType.PostCommitInsert: + eventListeners.PostCommitInsertEventListeners = AppendListeners(eventListeners.PostCommitInsertEventListeners, (IPostInsertEventListener[])listeners); + break; + case ListenerType.PostCommitDelete: + eventListeners.PostCommitDeleteEventListeners = AppendListeners(eventListeners.PostCommitDeleteEventListeners, (IPostDeleteEventListener[])listeners); + break; + case ListenerType.PreCollectionRecreate: + eventListeners.PreCollectionRecreateEventListeners = AppendListeners(eventListeners.PreCollectionRecreateEventListeners, (IPreCollectionRecreateEventListener[])listeners); + break; + case ListenerType.PreCollectionRemove: + eventListeners.PreCollectionRemoveEventListeners = AppendListeners(eventListeners.PreCollectionRemoveEventListeners, (IPreCollectionRemoveEventListener[])listeners); + break; + case ListenerType.PreCollectionUpdate: + eventListeners.PreCollectionUpdateEventListeners = AppendListeners(eventListeners.PreCollectionUpdateEventListeners, (IPreCollectionUpdateEventListener[])listeners); + break; + case ListenerType.PostCollectionRecreate: + eventListeners.PostCollectionRecreateEventListeners = AppendListeners(eventListeners.PostCollectionRecreateEventListeners, (IPostCollectionRecreateEventListener[])listeners); + break; + case ListenerType.PostCollectionRemove: + eventListeners.PostCollectionRemoveEventListeners = AppendListeners(eventListeners.PostCollectionRemoveEventListeners, (IPostCollectionRemoveEventListener[])listeners); + break; + case ListenerType.PostCollectionUpdate: + eventListeners.PostCollectionUpdateEventListeners = AppendListeners(eventListeners.PostCollectionUpdateEventListeners, (IPostCollectionUpdateEventListener[])listeners); + break; + default: + log.Warn("Unrecognized listener type [" + type + "]"); + break; + } + } + + private static T[] AppendListeners<T>(T[] existing, T[] listenersToAdd) + { + var list = new List<T>(existing ?? new T[0]); + list.AddRange(listenersToAdd); + return list.ToArray(); + } + ///<summary> /// Generate DDL for altering tables ///</summary> @@ -2139,7 +2264,7 @@ if (table.IsPhysicalTable && IncludeAction(table.SchemaActions, SchemaAction.Update)) { ITableMetadata tableInfo = databaseMetadata.GetTableMetadata(table.Name, table.Schema ?? defaultSchema, - table.Catalog ?? defaultCatalog, table.IsQuoted); + table.Catalog ?? defaultCatalog, table.IsQuoted); if (tableInfo == null) { script.Add(table.SqlCreateString(dialect, mapping, defaultCatalog, defaultSchema)); @@ -2160,7 +2285,7 @@ if (table.IsPhysicalTable && IncludeAction(table.SchemaActions, SchemaAction.Update)) { ITableMetadata tableInfo = databaseMetadata.GetTableMetadata(table.Name, table.Schema, table.Catalog, - table.IsQuoted); + table.IsQuoted); if (dialect.HasAlterTable) { @@ -2169,9 +2294,9 @@ if (fk.HasPhysicalConstraint && IncludeAction(fk.ReferencedTable.SchemaActions, SchemaAction.Update)) { bool create = tableInfo == null - || - (tableInfo.GetForeignKeyMetadata(fk.Name) == null - && (!(dialect is MySQLDialect) || tableInfo.GetIndexMetadata(fk.Name) == null)); + || + (tableInfo.GetForeignKeyMetadata(fk.Name) == null + && (!(dialect is MySQLDialect) || tableInfo.GetIndexMetadata(fk.Name) == null)); if (create) { script.Add(fk.SqlCreateString(dialect, mapping, defaultCatalog, defaultSchema)); @@ -2226,8 +2351,8 @@ table.isQuoted());*/ ITableMetadata tableInfo = databaseMetadata.GetTableMetadata( table.Name, - table.Schema??defaultSchema, - table.Catalog??defaultCatalog, + table.Schema ?? defaultSchema, + table.Catalog ?? defaultCatalog, table.IsQuoted); if (tableInfo == null) throw new HibernateException("Missing table: " + table.Name); @@ -2242,7 +2367,7 @@ string key = generator.GeneratorKey(); if (!databaseMetadata.IsSequence(key) && !databaseMetadata.IsTable(key)) { - throw new HibernateException(string.Format("Missing sequence or table: "+ key)); + throw new HibernateException(string.Format("Missing sequence or table: " + key)); } } } @@ -2258,7 +2383,7 @@ if (!pc.IsInherited) { var ig = - pc.Identifier.CreateIdentifierGenerator(dialect, defaultCatalog, defaultSchema, (RootClass) pc) as + pc.Identifier.CreateIdentifierGenerator(dialect, defaultCatalog, defaultSchema, (RootClass)pc) as IPersistentIdentifierGenerator; if (ig != null) @@ -2273,8 +2398,8 @@ if (collection.IsIdentified) { var ig = - ((IdentifierCollection) collection).Identifier.CreateIdentifierGenerator(dialect, defaultCatalog, defaultSchema, - null) as IPersistentIdentifierGenerator; + ((IdentifierCollection)collection).Identifier.CreateIdentifierGenerator(dialect, defaultCatalog, defaultSchema, + null) as IPersistentIdentifierGenerator; if (ig != null) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jul...@us...> - 2010-07-15 15:16:37
|
Revision: 5006 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5006&view=rev Author: julian-maughan Date: 2010-07-15 15:16:31 +0000 (Thu, 15 Jul 2010) Log Message: ----------- Corrected spelling error in comment on public AddResources method Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Cfg/Configuration.cs Modified: trunk/nhibernate/src/NHibernate/Cfg/Configuration.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Cfg/Configuration.cs 2010-07-15 10:01:40 UTC (rev 5005) +++ trunk/nhibernate/src/NHibernate/Cfg/Configuration.cs 2010-07-15 15:16:31 UTC (rev 5006) @@ -655,7 +655,7 @@ } /// <summary> - /// Adds the mappings from ebedded resources of the assembly. + /// Adds the mappings from embedded resources of the assembly. /// </summary> /// <param name="paths">Paths to the resource files in the assembly.</param> /// <param name="assembly">The assembly that contains the resource files.</param> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2010-09-28 21:23:14
|
Revision: 5228 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5228&view=rev Author: fabiomaulo Date: 2010-09-28 21:23:08 +0000 (Tue, 28 Sep 2010) Log Message: ----------- Fix NH-2352 Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Cfg/Configuration.cs Modified: trunk/nhibernate/src/NHibernate/Cfg/Configuration.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Cfg/Configuration.cs 2010-09-26 18:06:04 UTC (rev 5227) +++ trunk/nhibernate/src/NHibernate/Cfg/Configuration.cs 2010-09-28 21:23:08 UTC (rev 5228) @@ -1841,7 +1841,11 @@ protected virtual string GetDefaultConfigurationFilePath() { string baseDir = AppDomain.CurrentDomain.BaseDirectory; - string relativeSearchPath = AppDomain.CurrentDomain.RelativeSearchPath.Split(';').First(); + + // Note RelativeSearchPath can be null even if the doc say something else; don't remove the check + var searchPath = AppDomain.CurrentDomain.RelativeSearchPath ?? string.Empty; + + string relativeSearchPath = searchPath.Split(';').First(); string binPath = Path.Combine(baseDir, relativeSearchPath); return Path.Combine(binPath, DefaultHibernateCfgFileName); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2011-04-20 20:50:52
|
Revision: 5727 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5727&view=rev Author: fabiomaulo Date: 2011-04-20 20:50:46 +0000 (Wed, 20 Apr 2011) Log Message: ----------- making the XmlSerializer static to gain performance (at least for our tests) Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Cfg/Configuration.cs Modified: trunk/nhibernate/src/NHibernate/Cfg/Configuration.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Cfg/Configuration.cs 2011-04-20 20:31:21 UTC (rev 5726) +++ trunk/nhibernate/src/NHibernate/Cfg/Configuration.cs 2011-04-20 20:50:46 UTC (rev 5727) @@ -81,7 +81,7 @@ protected internal SettingsFactory settingsFactory; - private readonly XmlSerializer mappingDocumentSerializer = new XmlSerializer(typeof(HbmMapping)); + private static readonly XmlSerializer mappingDocumentSerializer = new XmlSerializer(typeof(HbmMapping)); #region ISerializable Members public Configuration(SerializationInfo info, StreamingContext context) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |