[Nmailserver-commits] SF.net SVN: nmailserver: [173] NMail/trunk
Brought to you by:
dframpton-oss,
tmyroadctfig
|
From: <tmy...@us...> - 2007-03-08 09:51:11
|
Revision: 173
http://svn.sourceforge.net/nmailserver/?rev=173&view=rev
Author: tmyroadctfig
Date: 2007-03-08 01:51:12 -0800 (Thu, 08 Mar 2007)
Log Message:
-----------
Work on NHibernate local store data implementation.
Modified Paths:
--------------
NMail/trunk/NMail.LocalStoreData.MySql/Resources/NMail.LocalStoreData.MySql.hbm.xml
NMail/trunk/NMail.LocalStoreData.MySql/Resources/hibernate-configuration.xml
NMail/trunk/NMail.LocalStoreData.NHibernate/NMail.LocalStoreData.NHibernate.hbm.xml
Modified: NMail/trunk/NMail.LocalStoreData.MySql/Resources/NMail.LocalStoreData.MySql.hbm.xml
===================================================================
--- NMail/trunk/NMail.LocalStoreData.MySql/Resources/NMail.LocalStoreData.MySql.hbm.xml 2007-03-08 09:46:39 UTC (rev 172)
+++ NMail/trunk/NMail.LocalStoreData.MySql/Resources/NMail.LocalStoreData.MySql.hbm.xml 2007-03-08 09:51:12 UTC (rev 173)
@@ -1,7 +1,175 @@
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="NMail" assembly="NMail" default-lazy="false">
<!--
+
+ TODO:
+ - Message (parts)
+ - Objects
+ - ACLs (system)
+ -->
+
+ <!--
-
+ - Folder
+ -
+ -->
+ <class name="NMail.DataTypes.LocalStore.StoreFolder" table="Folder">
+ <id name="FolderId" type="Int32" unsaved-value="0">
+ <column name="FolderId" not-null="true"/>
+ <generator class="native" />
+ </id>
+
+ <property name="FullFolderName" not-null="true"/>
+
+ <property name="NameSpace" not-null="true" />
+
+ <!-- TODO: lookup how best to implement this nullable type... -->
+ <!-- <many-to-one name="ParentId" foreign-key="FolderId" /> -->
+ <!--<property name="ParentId" type="Int32?" />-->
+
+ <many-to-one name="OwnerUserId" class="NMail.DataTypes.LocalStore.LocalStoreUser" foreign-key="UserId"/>
+
+ <list name="ChildrenIds" cascade="all">
+ <key column="FolderId" />
+ <index column="ChildIndex" type="Int32" />
+ <one-to-many class="NMail.DataTypes.LocalStore.StoreFolder" />
+ </list>
+ </class>
+
+
+ <!--
+ -
+ - Local Store User
+ -
+ -->
+ <class name="NMail.DataTypes.LocalStore.LocalStoreUser" table="t_User">
+ <id name="UserId" type="Int32" unsaved-value="0">
+ <column name="UserId" not-null="true"/>
+ <generator class="native" />
+ </id>
+
+ <property name="Username" not-null="true"/>
+
+ <many-to-one name="UserFolderId" class="NMail.DataTypes.LocalStore.StoreFolder" foreign-key="FolderId" />
+
+ <property name="QuotaHardLimit" />
+
+ <property name="QuotaWarnLimit" />
+ </class>
+
+
+ <!--
+ -
+ - Local Store Group
+ -
+ -->
+ <class name="NMail.DataTypes.LocalStore.LocalStoreGroup" table="t_Group">
+ <id name="GroupId" type="Int32" unsaved-value="0">
+ <column name="GroupId" not-null="true"/>
+ <generator class="native" />
+ </id>
+
+ <property name="Name" not-null="true"/>
+
+ <list name="SubGroupIds" table="GroupSubGroups">
+ <key column="ParentGroupId" />
+ <index column="ChildIndex" type="Int32" />
+ <many-to-many column="GroupId" class="NMail.DataTypes.LocalStore.LocalStoreGroup" />
+ </list>
+
+ <list name="UserIds" table="GroupUsers">
+ <key column="GroupId" />
+ <index column="ChildIndex" type="Int32" />
+ <many-to-many column="UserId" class="NMail.DataTypes.LocalStore.LocalStoreUser" />
+ </list>
+ </class>
+
+
+ <!--
+ -
+ - Mail Domain
+ -
+ -->
+ <class name="NMail.DataTypes.LocalStore.MailDomain" table="MailDomain">
+ <id name="MailDomainId" type="Int32" unsaved-value="0">
+ <column name="MailDomainId" not-null="true"/>
+ <generator class="native" />
+ </id>
+
+ <property name="PrimaryHost" not-null="true" />
+
+ <list name="GroupIds" table="MailDomainGroups">
+ <key column="MailDomainId" />
+ <index column="ChildIndex" type="Int32" />
+ <many-to-many column="GroupId" class="NMail.DataTypes.LocalStore.LocalStoreGroup" />
+ </list>
+
+ <list name="UserIds" table="MailDomainUsers">
+ <key column="MailDomainId" />
+ <index column="ChildIndex" type="Int32" />
+ <many-to-many column="UserId" class="NMail.DataTypes.LocalStore.LocalStoreUser" />
+ </list>
+
+ <list name="AdditionalHosts" table="MailDomainHosts">
+ <key column="MailDomainId" />
+ <index column="ChildIndex" type="Int32" />
+ <element column="Host" unique="true" type="Serializable" />
+ </list>
+ </class>
+
+
+ <!--
+ -
+ - Folder ACL
+ -
+ -->
+ <class name="NMail.DataTypes.ACLs.StoreFolderAcl" table="StoreFolderAcl">
+ <id name="AclId" type="Int32" unsaved-value="0">
+ <column name="AclId" not-null="true"/>
+ <generator class="native" />
+ </id>
+
+ <many-to-one name="Folder" cascade="all" class="NMail.DataTypes.LocalStore.StoreFolder" not-null="true"/>
+
+ <map name="entries" access="field" table="StoreFolderAclEntries">
+ <key column="IdentifierId" />
+ <index column="Identifier" type="String" />
+ <element column="StoreFolderPrivilege" type="Int32" />
+ </map>
+ </class>
+
+
+ <!--
+ -
+ - Message
+ -
+ - ->
+ <class name="NMail.DataTypes.Message" table="Message">
+ <id name="MessageId" type="Int64" unsaved-value="0">
+ <column name="MessageId" not-null="true"/>
+ <generator class="native" />
+ </id>
+
+ <many-to-one name="FolderId" class="NMail.DataTypes.LocalStore.StoreFolder" foreign-key="FolderId" />
+
+ <!- -
+ FolderMessageId INT NOT NULL,
+
+ MimeMessage BOOLEAN NOT NULL,
+ Headers LONGBLOB NOT NULL,
+ Preamble LONGBLOB,
+ Postamble LONGBLOB,
+ MessageFlags INT NOT NULL,
+ Size INT NOT NULL,
+ InternalDate DATETIME NOT NULL,
+ PRIMARY KEY(MessageId),
+ INDEX FolderId (FolderId),
+ FOREIGN KEY (FolderId) REFERENCES Folder (FolderId) ON DELETE CASCADE - ->
+ </class> -->
+
+
+ <!--
+ -
- Calendar
-
-->
@@ -12,7 +180,7 @@
</id>
<property name="Name" not-null="true"/>
-
+
<!-- TODO: make this a many to one relationship with folder -->
<property name="ParentFolderId" />
@@ -36,8 +204,8 @@
<column name="CalendarEntryId" not-null="true"/>
<generator class="native" />
</id>
-
-
+
+
<!--
- Descriptive Properties
-->
@@ -48,20 +216,20 @@
<index column="CategoryIndex" type="Int32" />
<element column="Category" type="String" />
</list>
-
+
<property name="Description" />
-
+
<!--<property name="Status" />-->
-
+
<property name="Summary" />
-
-
+
+
<!--
- Date/Time Properties
-->
<property name="StartTime" not-null="true" />
-
+
<!--
- Relationship Component Properties
-->
@@ -80,21 +248,21 @@
class="NMail.DataTypes.Calendar.Calendar"
column="CalendarId" />
-
+
<!--
- Recurrence Component Properties
-->
<!-- one to many <property name="Recurrence" /> -->
-
+
<property name="RecurrenceId" />
-
+
<!--
- Change Management Component Properties
-->
<property name="Created" />
-
+
<property name="TimeStamp" />
<property name="LastModified" />
Modified: NMail/trunk/NMail.LocalStoreData.MySql/Resources/hibernate-configuration.xml
===================================================================
--- NMail/trunk/NMail.LocalStoreData.MySql/Resources/hibernate-configuration.xml 2007-03-08 09:46:39 UTC (rev 172)
+++ NMail/trunk/NMail.LocalStoreData.MySql/Resources/hibernate-configuration.xml 2007-03-08 09:51:12 UTC (rev 173)
@@ -2,8 +2,9 @@
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
- <property name="connection.driver_class">NHibernate.Driver.MySqlDataDriver</property>
- <property name="connection.connection_string">Database=NMailLocalStore;Uid=NMail;Password=moo</property>
- <property name="dialect">NHibernate.Dialect.MySQLDialect</property>
+ <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
+ <property name="connection.connection_string">Data Source=127.0.0.1;Initial Catalog=NMailLocalStore;Integrated Security=True</property>
+ <property name="dialect">NHibernate.Dialect.MsSql2005Dialect</property>
+ <property name="hibernate.query.substitutions">true 1, false 0</property>
</session-factory>
</hibernate-configuration>
Modified: NMail/trunk/NMail.LocalStoreData.NHibernate/NMail.LocalStoreData.NHibernate.hbm.xml
===================================================================
--- NMail/trunk/NMail.LocalStoreData.NHibernate/NMail.LocalStoreData.NHibernate.hbm.xml 2007-03-08 09:46:39 UTC (rev 172)
+++ NMail/trunk/NMail.LocalStoreData.NHibernate/NMail.LocalStoreData.NHibernate.hbm.xml 2007-03-08 09:51:12 UTC (rev 173)
@@ -12,6 +12,32 @@
- Mail domain
-->
+
+ <!--
+ -
+ - Folder
+ -
+ -->
+ <class name="NMail.DataTypes.LocalStore.StoreFolder" table="Folder">
+ <id name="FolderId" type="Int32" unsaved-value="0">
+ <column name="FolderId" not-null="true"/>
+ <generator class="native" />
+ </id>
+
+ <property name="Name" not-null="true"/>
+
+ <property name="NameSpace" not-null="true" />
+
+ <many-to-one name="ParentId" foreign-key="FolderId" />
+
+ <many-to-one name="OwnerUserId" class="NMail.DataTypes.LocalStore.LocalStoreUser" foreign-key="UserId"/>
+
+ <list name="ChildrenIds" cascade="all">
+ <key column="FolderId" />
+ <index column="ChildIndex" type="Int32" />
+ <one-to-many class="NMail.DataTypes.LocalStore.StoreFolder" />
+ </list>
+ </class>
<!--
-
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|