diff options
author | Justin Clarke Casey | 2009-02-16 19:33:11 +0000 |
---|---|---|
committer | Justin Clarke Casey | 2009-02-16 19:33:11 +0000 |
commit | 80759f708b1766b6fd36bbdb6ce69f292e64e2f0 (patch) | |
tree | 2ca913692571127b1b9bc5327ddc937b8d0211ab /OpenSim/Data/NHibernate | |
parent | line ending fixes and set native eol property (diff) | |
download | opensim-SC-80759f708b1766b6fd36bbdb6ce69f292e64e2f0.zip opensim-SC-80759f708b1766b6fd36bbdb6ce69f292e64e2f0.tar.gz opensim-SC-80759f708b1766b6fd36bbdb6ce69f292e64e2f0.tar.bz2 opensim-SC-80759f708b1766b6fd36bbdb6ce69f292e64e2f0.tar.xz |
* Apply http://opensimulator.org/mantis/view.php?id=3166
* Adds estate access list supports to NHibernate data module
* Thanks Tommil
Diffstat (limited to '')
12 files changed, 280 insertions, 62 deletions
diff --git a/OpenSim/Data/NHibernate/NHibernateAssetData.cs b/OpenSim/Data/NHibernate/NHibernateAssetData.cs index f8715cc..8f4877d 100644 --- a/OpenSim/Data/NHibernate/NHibernateAssetData.cs +++ b/OpenSim/Data/NHibernate/NHibernateAssetData.cs | |||
@@ -59,12 +59,12 @@ namespace OpenSim.Data.NHibernate | |||
59 | 59 | ||
60 | override public AssetBase FetchAsset(UUID uuid) | 60 | override public AssetBase FetchAsset(UUID uuid) |
61 | { | 61 | { |
62 | return (AssetBase)manager.Load(typeof(AssetBase), uuid); | 62 | return (AssetBase)manager.Get(typeof(AssetBase), uuid); |
63 | } | 63 | } |
64 | 64 | ||
65 | private void Save(AssetBase asset) | 65 | private void Save(AssetBase asset) |
66 | { | 66 | { |
67 | AssetBase temp = (AssetBase)manager.Load(typeof(AssetBase), asset.Metadata.FullID); | 67 | AssetBase temp = (AssetBase)manager.Get(typeof(AssetBase), asset.Metadata.FullID); |
68 | if (temp == null) | 68 | if (temp == null) |
69 | { | 69 | { |
70 | manager.Insert(asset); | 70 | manager.Insert(asset); |
diff --git a/OpenSim/Data/NHibernate/NHibernateEstateData.cs b/OpenSim/Data/NHibernate/NHibernateEstateData.cs index 3d74135..b16f6e1 100644 --- a/OpenSim/Data/NHibernate/NHibernateEstateData.cs +++ b/OpenSim/Data/NHibernate/NHibernateEstateData.cs | |||
@@ -89,7 +89,7 @@ namespace OpenSim.Data.NHibernate | |||
89 | // Ensure that estate settings exist for the link | 89 | // Ensure that estate settings exist for the link |
90 | if (link != null) | 90 | if (link != null) |
91 | { | 91 | { |
92 | if (manager.Load(typeof(EstateSettings), link.EstateID) == null) | 92 | if (manager.GetWithStatefullSession(typeof(EstateSettings), link.EstateID) == null) |
93 | { | 93 | { |
94 | // Delete broken link | 94 | // Delete broken link |
95 | manager.Delete(link); | 95 | manager.Delete(link); |
@@ -116,11 +116,11 @@ namespace OpenSim.Data.NHibernate | |||
116 | link.EstateRegionLinkID = UUID.Random(); | 116 | link.EstateRegionLinkID = UUID.Random(); |
117 | link.RegionID = regionID; | 117 | link.RegionID = regionID; |
118 | link.EstateID = estateID; | 118 | link.EstateID = estateID; |
119 | manager.Insert(link); | 119 | manager.InsertWithStatefullSession(link); |
120 | } | 120 | } |
121 | 121 | ||
122 | // Load estate settings according to the existing or created link. | 122 | // Load estate settings according to the existing or created link. |
123 | return (EstateSettings)manager.Load(typeof(EstateSettings), link.EstateID); | 123 | return (EstateSettings)manager.GetWithStatefullSession(typeof(EstateSettings), link.EstateID); |
124 | } | 124 | } |
125 | 125 | ||
126 | public void StoreEstateSettings(EstateSettings estateSettings) | 126 | public void StoreEstateSettings(EstateSettings estateSettings) |
@@ -128,7 +128,7 @@ namespace OpenSim.Data.NHibernate | |||
128 | // Estates are always updated when stored. | 128 | // Estates are always updated when stored. |
129 | // Insert is always done via. load method as with the current API | 129 | // Insert is always done via. load method as with the current API |
130 | // this is explicitly the only way to create region link. | 130 | // this is explicitly the only way to create region link. |
131 | manager.Update(estateSettings); | 131 | manager.UpdateWithStatefullSession(estateSettings); |
132 | } | 132 | } |
133 | 133 | ||
134 | #endregion | 134 | #endregion |
diff --git a/OpenSim/Data/NHibernate/NHibernateGridData.cs b/OpenSim/Data/NHibernate/NHibernateGridData.cs index e58d1ed..b89cefc 100644 --- a/OpenSim/Data/NHibernate/NHibernateGridData.cs +++ b/OpenSim/Data/NHibernate/NHibernateGridData.cs | |||
@@ -111,7 +111,7 @@ namespace OpenSim.Data.NHibernate | |||
111 | 111 | ||
112 | public override DataResponse AddProfile(RegionProfileData profile) | 112 | public override DataResponse AddProfile(RegionProfileData profile) |
113 | { | 113 | { |
114 | if (manager.Load(typeof(RegionProfileData), profile.Uuid) == null) | 114 | if (manager.Get(typeof(RegionProfileData), profile.Uuid) == null) |
115 | { | 115 | { |
116 | manager.Insert(profile); | 116 | manager.Insert(profile); |
117 | return DataResponse.RESPONSE_OK; | 117 | return DataResponse.RESPONSE_OK; |
@@ -124,7 +124,7 @@ namespace OpenSim.Data.NHibernate | |||
124 | 124 | ||
125 | public override DataResponse UpdateProfile(RegionProfileData profile) | 125 | public override DataResponse UpdateProfile(RegionProfileData profile) |
126 | { | 126 | { |
127 | if (manager.Load(typeof(RegionProfileData), profile.Uuid) != null) | 127 | if (manager.Get(typeof(RegionProfileData), profile.Uuid) != null) |
128 | { | 128 | { |
129 | manager.Update(profile); | 129 | manager.Update(profile); |
130 | return DataResponse.RESPONSE_OK; | 130 | return DataResponse.RESPONSE_OK; |
@@ -137,7 +137,7 @@ namespace OpenSim.Data.NHibernate | |||
137 | 137 | ||
138 | public override DataResponse DeleteProfile(string uuid) | 138 | public override DataResponse DeleteProfile(string uuid) |
139 | { | 139 | { |
140 | RegionProfileData regionProfileData = (RegionProfileData)manager.Load(typeof(RegionProfileData), new UUID(uuid)); | 140 | RegionProfileData regionProfileData = (RegionProfileData)manager.Get(typeof(RegionProfileData), new UUID(uuid)); |
141 | if (regionProfileData != null) | 141 | if (regionProfileData != null) |
142 | { | 142 | { |
143 | manager.Delete(regionProfileData); | 143 | manager.Delete(regionProfileData); |
@@ -148,7 +148,7 @@ namespace OpenSim.Data.NHibernate | |||
148 | 148 | ||
149 | public override RegionProfileData GetProfileByUUID(UUID UUID) | 149 | public override RegionProfileData GetProfileByUUID(UUID UUID) |
150 | { | 150 | { |
151 | return (RegionProfileData)manager.Load(typeof(RegionProfileData), UUID); | 151 | return (RegionProfileData)manager.Get(typeof(RegionProfileData), UUID); |
152 | } | 152 | } |
153 | 153 | ||
154 | public override RegionProfileData GetProfileByHandle(ulong regionHandle) | 154 | public override RegionProfileData GetProfileByHandle(ulong regionHandle) |
diff --git a/OpenSim/Data/NHibernate/NHibernateInventoryData.cs b/OpenSim/Data/NHibernate/NHibernateInventoryData.cs index 7657ae5..3e04417 100644 --- a/OpenSim/Data/NHibernate/NHibernateInventoryData.cs +++ b/OpenSim/Data/NHibernate/NHibernateInventoryData.cs | |||
@@ -110,7 +110,7 @@ namespace OpenSim.Data.NHibernate | |||
110 | try | 110 | try |
111 | { | 111 | { |
112 | m_log.InfoFormat("[NHIBERNATE] getInventoryItem {0}", item); | 112 | m_log.InfoFormat("[NHIBERNATE] getInventoryItem {0}", item); |
113 | return (InventoryItemBase)manager.Load(typeof(InventoryItemBase), item); | 113 | return (InventoryItemBase)manager.Get(typeof(InventoryItemBase), item); |
114 | } | 114 | } |
115 | catch | 115 | catch |
116 | { | 116 | { |
@@ -158,7 +158,7 @@ namespace OpenSim.Data.NHibernate | |||
158 | /// <param name="item"></param> | 158 | /// <param name="item"></param> |
159 | public void deleteInventoryItem(UUID itemID) | 159 | public void deleteInventoryItem(UUID itemID) |
160 | { | 160 | { |
161 | InventoryItemBase item = (InventoryItemBase)manager.Load(typeof(InventoryItemBase), itemID); | 161 | InventoryItemBase item = (InventoryItemBase)manager.Get(typeof(InventoryItemBase), itemID); |
162 | if (item != null) | 162 | if (item != null) |
163 | { | 163 | { |
164 | manager.Delete(item); | 164 | manager.Delete(item); |
@@ -179,7 +179,7 @@ namespace OpenSim.Data.NHibernate | |||
179 | { | 179 | { |
180 | try | 180 | try |
181 | { | 181 | { |
182 | return (InventoryFolderBase)manager.Load(typeof(InventoryFolderBase), folder); | 182 | return (InventoryFolderBase)manager.Get(typeof(InventoryFolderBase), folder); |
183 | } | 183 | } |
184 | catch | 184 | catch |
185 | { | 185 | { |
@@ -227,7 +227,7 @@ namespace OpenSim.Data.NHibernate | |||
227 | /// <param name="folder"></param> | 227 | /// <param name="folder"></param> |
228 | public void deleteInventoryFolder(UUID folderID) | 228 | public void deleteInventoryFolder(UUID folderID) |
229 | { | 229 | { |
230 | InventoryFolderBase item = (InventoryFolderBase)manager.Load(typeof(InventoryFolderBase), folderID); | 230 | InventoryFolderBase item = (InventoryFolderBase)manager.Get(typeof(InventoryFolderBase), folderID); |
231 | if (item != null) | 231 | if (item != null) |
232 | { | 232 | { |
233 | manager.Delete(item); | 233 | manager.Delete(item); |
diff --git a/OpenSim/Data/NHibernate/NHibernateManager.cs b/OpenSim/Data/NHibernate/NHibernateManager.cs index 26bc219..cef98f2 100644 --- a/OpenSim/Data/NHibernate/NHibernateManager.cs +++ b/OpenSim/Data/NHibernate/NHibernateManager.cs | |||
@@ -45,6 +45,43 @@ namespace OpenSim.Data.NHibernate | |||
45 | private Configuration configuration; | 45 | private Configuration configuration; |
46 | private ISessionFactory sessionFactory; | 46 | private ISessionFactory sessionFactory; |
47 | 47 | ||
48 | #region Initialization | ||
49 | |||
50 | /// <summary> | ||
51 | /// Initiate NHibernate Manager | ||
52 | /// </summary> | ||
53 | /// <param name="connect">NHibernate dialect, driver and connection string separated by ';'</param> | ||
54 | /// <param name="store">Name of the store</param> | ||
55 | public NHibernateManager(string connect, string store) | ||
56 | { | ||
57 | ParseConnectionString(connect); | ||
58 | |||
59 | //To create sql file uncomment code below and write the name of the file | ||
60 | //SchemaExport exp = new SchemaExport(cfg); | ||
61 | //exp.SetOutputFile("nameofthefile.sql"); | ||
62 | //exp.Create(false, true); | ||
63 | |||
64 | Assembly assembly = GetType().Assembly; | ||
65 | |||
66 | sessionFactory = configuration.BuildSessionFactory(); | ||
67 | RunMigration(dialect, assembly, store); | ||
68 | } | ||
69 | |||
70 | /// <summary> | ||
71 | /// Initiate NHibernate Manager with spesific assembly | ||
72 | /// </summary> | ||
73 | /// <param name="connect">NHibernate dialect, driver and connection string separated by ';'</param> | ||
74 | /// <param name="store">Name of the store</param> | ||
75 | /// <param name="assembly">Outside assembly to be included </param> | ||
76 | public NHibernateManager(string connect, string store, Assembly assembly) | ||
77 | { | ||
78 | ParseConnectionString(connect); | ||
79 | |||
80 | configuration.AddAssembly(assembly); | ||
81 | sessionFactory = configuration.BuildSessionFactory(); | ||
82 | RunMigration(dialect, assembly, store); | ||
83 | } | ||
84 | |||
48 | /// <summary> | 85 | /// <summary> |
49 | /// Parses the connection string and creates the NHibernate configuration | 86 | /// Parses the connection string and creates the NHibernate configuration |
50 | /// </summary> | 87 | /// </summary> |
@@ -72,7 +109,6 @@ namespace OpenSim.Data.NHibernate | |||
72 | "NHibernate.Driver." + parts[1]); | 109 | "NHibernate.Driver." + parts[1]); |
73 | configuration.SetProperty(Environment.ConnectionString, parts[2]); | 110 | configuration.SetProperty(Environment.ConnectionString, parts[2]); |
74 | configuration.AddAssembly("OpenSim.Data.NHibernate"); | 111 | configuration.AddAssembly("OpenSim.Data.NHibernate"); |
75 | |||
76 | } | 112 | } |
77 | 113 | ||
78 | /// <summary> | 114 | /// <summary> |
@@ -96,44 +132,42 @@ namespace OpenSim.Data.NHibernate | |||
96 | migration.Update(); | 132 | migration.Update(); |
97 | } | 133 | } |
98 | 134 | ||
135 | #endregion | ||
136 | |||
99 | /// <summary> | 137 | /// <summary> |
100 | /// Initiate NHibernate Manager | 138 | /// Gets object of given type from database with given id. |
139 | /// Uses stateless session for efficiency. | ||
101 | /// </summary> | 140 | /// </summary> |
102 | /// <param name="connect">NHibernate dialect, driver and connection string separated by ';'</param> | 141 | /// <param name="type">Type of the object.</param> |
103 | /// <param name="store">Name of the store</param> | 142 | /// <param name="id">Id of the object.</param> |
104 | public NHibernateManager(string connect, string store) | 143 | /// <returns>The object or null if object was not found.</returns> |
144 | public object Get(Type type, Object id) | ||
105 | { | 145 | { |
106 | ParseConnectionString(connect); | 146 | using (IStatelessSession session = sessionFactory.OpenStatelessSession()) |
107 | 147 | { | |
108 | //To create sql file uncomment code below and write the name of the file | 148 | object obj = null; |
109 | //SchemaExport exp = new SchemaExport(cfg); | 149 | try |
110 | //exp.SetOutputFile("nameofthefile.sql"); | 150 | { |
111 | //exp.Create(false, true); | 151 | obj = session.Get(type.FullName, id); |
112 | 152 | } | |
113 | Assembly assembly = GetType().Assembly; | 153 | catch (Exception e) |
114 | 154 | { | |
115 | sessionFactory = configuration.BuildSessionFactory(); | 155 | m_log.ErrorFormat("[NHIBERNATE] {0} of id {1} loading threw exception: " + e.ToString(), type.Name, id); |
116 | RunMigration(dialect, assembly, store); | 156 | } |
157 | return obj; | ||
158 | } | ||
117 | } | 159 | } |
118 | 160 | ||
119 | /// <summary> | 161 | /// <summary> |
120 | /// Initiate NHibernate Manager with spesific assembly | 162 | /// Gets object of given type from database with given id. |
163 | /// Use this method for objects containing collections. For flat objects stateless mode is more efficient. | ||
121 | /// </summary> | 164 | /// </summary> |
122 | /// <param name="connect">NHibernate dialect, driver and connection string separated by ';'</param> | 165 | /// <param name="type">Type of the object.</param> |
123 | /// <param name="store">Name of the store</param> | 166 | /// <param name="id">Id of the object.</param> |
124 | /// <param name="assembly">Outside assembly to be included </param> | 167 | /// <returns>The object or null if object was not found.</returns> |
125 | public NHibernateManager(string connect, string store, Assembly assembly) | 168 | public object GetWithStatefullSession(Type type, Object id) |
126 | { | 169 | { |
127 | ParseConnectionString(connect); | 170 | using (ISession session = sessionFactory.OpenSession()) |
128 | |||
129 | configuration.AddAssembly(assembly); | ||
130 | sessionFactory = configuration.BuildSessionFactory(); | ||
131 | RunMigration(dialect, assembly, store); | ||
132 | } | ||
133 | |||
134 | public object Load(Type type, Object id) | ||
135 | { | ||
136 | using (IStatelessSession session = sessionFactory.OpenStatelessSession()) | ||
137 | { | 171 | { |
138 | object obj = null; | 172 | object obj = null; |
139 | try | 173 | try |
@@ -146,9 +180,15 @@ namespace OpenSim.Data.NHibernate | |||
146 | } | 180 | } |
147 | return obj; | 181 | return obj; |
148 | } | 182 | } |
149 | 183 | ||
150 | } | 184 | } |
151 | 185 | ||
186 | /// <summary> | ||
187 | /// Inserts given object to database. | ||
188 | /// Uses stateless session for efficiency. | ||
189 | /// </summary> | ||
190 | /// <param name="obj">Object to be insterted.</param> | ||
191 | /// <returns>Identifier of the object. Useful for situations when NHibernate generates the identifier.</returns> | ||
152 | public object Insert(object obj) | 192 | public object Insert(object obj) |
153 | { | 193 | { |
154 | try | 194 | try |
@@ -170,6 +210,39 @@ namespace OpenSim.Data.NHibernate | |||
170 | } | 210 | } |
171 | } | 211 | } |
172 | 212 | ||
213 | /// <summary> | ||
214 | /// Inserts given object to database. | ||
215 | /// Use this method for objects containing collections. For flat objects stateless mode is more efficient. | ||
216 | /// </summary> | ||
217 | /// <param name="obj">Object to be insterted.</param> | ||
218 | /// <returns>Identifier of the object. Useful for situations when NHibernate generates the identifier.</returns> | ||
219 | public object InsertWithStatefullSession(object obj) | ||
220 | { | ||
221 | try | ||
222 | { | ||
223 | using (ISession session = sessionFactory.OpenSession()) | ||
224 | { | ||
225 | using (ITransaction transaction = session.BeginTransaction()) | ||
226 | { | ||
227 | Object identifier = session.Save(obj); | ||
228 | transaction.Commit(); | ||
229 | return identifier; | ||
230 | } | ||
231 | } | ||
232 | } | ||
233 | catch (Exception e) | ||
234 | { | ||
235 | m_log.Error("[NHIBERNATE] issue inserting object ", e); | ||
236 | return null; | ||
237 | } | ||
238 | } | ||
239 | |||
240 | /// <summary> | ||
241 | /// Updates given object to database. | ||
242 | /// Uses stateless session for efficiency. | ||
243 | /// </summary> | ||
244 | /// <param name="obj">Object to be updated.</param> | ||
245 | /// <returns>True if operation was succesful.</returns> | ||
173 | public bool Update(object obj) | 246 | public bool Update(object obj) |
174 | { | 247 | { |
175 | try | 248 | try |
@@ -191,6 +264,38 @@ namespace OpenSim.Data.NHibernate | |||
191 | } | 264 | } |
192 | } | 265 | } |
193 | 266 | ||
267 | /// <summary> | ||
268 | /// Updates given object to database. | ||
269 | /// Use this method for objects containing collections. For flat objects stateless mode is more efficient. | ||
270 | /// </summary> | ||
271 | /// <param name="obj">Object to be updated.</param> | ||
272 | /// <returns>True if operation was succesful.</returns> | ||
273 | public bool UpdateWithStatefullSession(object obj) | ||
274 | { | ||
275 | try | ||
276 | { | ||
277 | using (ISession session = sessionFactory.OpenSession()) | ||
278 | { | ||
279 | using (ITransaction transaction = session.BeginTransaction()) | ||
280 | { | ||
281 | session.Update(obj); | ||
282 | transaction.Commit(); | ||
283 | return true; | ||
284 | } | ||
285 | } | ||
286 | } | ||
287 | catch (Exception e) | ||
288 | { | ||
289 | m_log.Error("[NHIBERNATE] issue updating object ", e); | ||
290 | return false; | ||
291 | } | ||
292 | } | ||
293 | |||
294 | /// <summary> | ||
295 | /// Deletes given object from database. | ||
296 | /// </summary> | ||
297 | /// <param name="obj">Object to be deleted.</param> | ||
298 | /// <returns>True if operation was succesful.</returns> | ||
194 | public bool Delete(object obj) | 299 | public bool Delete(object obj) |
195 | { | 300 | { |
196 | try | 301 | try |
@@ -212,6 +317,18 @@ namespace OpenSim.Data.NHibernate | |||
212 | } | 317 | } |
213 | } | 318 | } |
214 | 319 | ||
320 | /// <summary> | ||
321 | /// Returns statefull session which can be used to execute custom nhibernate or sql queries. | ||
322 | /// </summary> | ||
323 | /// <returns>Statefull session</returns> | ||
324 | public ISession GetSession() | ||
325 | { | ||
326 | return sessionFactory.OpenSession(); | ||
327 | } | ||
328 | |||
329 | /// <summary> | ||
330 | /// Drops the database schema. This exist for unit tests. It should not be invoked from other than test teardown. | ||
331 | /// </summary> | ||
215 | public void DropSchema() | 332 | public void DropSchema() |
216 | { | 333 | { |
217 | SchemaExport export = new SchemaExport(this.configuration); | 334 | SchemaExport export = new SchemaExport(this.configuration); |
@@ -219,14 +336,10 @@ namespace OpenSim.Data.NHibernate | |||
219 | 336 | ||
220 | using (ISession session = sessionFactory.OpenSession()) | 337 | using (ISession session = sessionFactory.OpenSession()) |
221 | { | 338 | { |
222 | ISQLQuery sqlQuery=session.CreateSQLQuery("drop table migrations"); | 339 | ISQLQuery sqlQuery = session.CreateSQLQuery("drop table migrations"); |
223 | sqlQuery.ExecuteUpdate(); | 340 | sqlQuery.ExecuteUpdate(); |
224 | } | 341 | } |
225 | } | 342 | } |
226 | 343 | ||
227 | public ISession GetSession() | ||
228 | { | ||
229 | return sessionFactory.OpenSession(); | ||
230 | } | ||
231 | } | 344 | } |
232 | } | 345 | } |
diff --git a/OpenSim/Data/NHibernate/NHibernateRegionData.cs b/OpenSim/Data/NHibernate/NHibernateRegionData.cs index 78db52d..5af3d1a 100644 --- a/OpenSim/Data/NHibernate/NHibernateRegionData.cs +++ b/OpenSim/Data/NHibernate/NHibernateRegionData.cs | |||
@@ -63,7 +63,7 @@ namespace OpenSim.Data.NHibernate | |||
63 | 63 | ||
64 | public void StoreRegionSettings(RegionSettings rs) | 64 | public void StoreRegionSettings(RegionSettings rs) |
65 | { | 65 | { |
66 | RegionSettings oldRegionSettings = (RegionSettings)manager.Load(typeof(RegionSettings), rs.RegionUUID); | 66 | RegionSettings oldRegionSettings = (RegionSettings)manager.Get(typeof(RegionSettings), rs.RegionUUID); |
67 | if (oldRegionSettings != null) | 67 | if (oldRegionSettings != null) |
68 | { | 68 | { |
69 | manager.Update(rs); | 69 | manager.Update(rs); |
@@ -76,7 +76,7 @@ namespace OpenSim.Data.NHibernate | |||
76 | 76 | ||
77 | public RegionSettings LoadRegionSettings(UUID regionUUID) | 77 | public RegionSettings LoadRegionSettings(UUID regionUUID) |
78 | { | 78 | { |
79 | RegionSettings regionSettings = (RegionSettings) manager.Load(typeof(RegionSettings), regionUUID); | 79 | RegionSettings regionSettings = (RegionSettings) manager.Get(typeof(RegionSettings), regionUUID); |
80 | 80 | ||
81 | if (regionSettings == null) | 81 | if (regionSettings == null) |
82 | { | 82 | { |
@@ -96,7 +96,7 @@ namespace OpenSim.Data.NHibernate | |||
96 | { | 96 | { |
97 | try | 97 | try |
98 | { | 98 | { |
99 | SceneObjectPart old = (SceneObjectPart)manager.Load(typeof(SceneObjectPart), p.UUID); | 99 | SceneObjectPart old = (SceneObjectPart)manager.Get(typeof(SceneObjectPart), p.UUID); |
100 | if (old != null) | 100 | if (old != null) |
101 | { | 101 | { |
102 | m_log.InfoFormat("[NHIBERNATE] updating object {0}", p.UUID); | 102 | m_log.InfoFormat("[NHIBERNATE] updating object {0}", p.UUID); |
@@ -120,7 +120,7 @@ namespace OpenSim.Data.NHibernate | |||
120 | try | 120 | try |
121 | { | 121 | { |
122 | 122 | ||
123 | Terrain old = (Terrain)manager.Load(typeof(Terrain), t.RegionID); | 123 | Terrain old = (Terrain)manager.Get(typeof(Terrain), t.RegionID); |
124 | if (old != null) | 124 | if (old != null) |
125 | { | 125 | { |
126 | m_log.InfoFormat("[NHIBERNATE] updating terrain {0}", t.RegionID); | 126 | m_log.InfoFormat("[NHIBERNATE] updating terrain {0}", t.RegionID); |
@@ -279,7 +279,7 @@ namespace OpenSim.Data.NHibernate | |||
279 | /// <returns>Heightfield data</returns> | 279 | /// <returns>Heightfield data</returns> |
280 | public double[,] LoadTerrain(UUID regionID) | 280 | public double[,] LoadTerrain(UUID regionID) |
281 | { | 281 | { |
282 | Terrain t = (Terrain)manager.Load(typeof(Terrain), regionID); | 282 | Terrain t = (Terrain)manager.Get(typeof(Terrain), regionID); |
283 | if (t != null) | 283 | if (t != null) |
284 | { | 284 | { |
285 | return t.Doubles; | 285 | return t.Doubles; |
diff --git a/OpenSim/Data/NHibernate/NHibernateUserData.cs b/OpenSim/Data/NHibernate/NHibernateUserData.cs index 3f1f260..8aa4aa2 100644 --- a/OpenSim/Data/NHibernate/NHibernateUserData.cs +++ b/OpenSim/Data/NHibernate/NHibernateUserData.cs | |||
@@ -61,7 +61,7 @@ namespace OpenSim.Data.NHibernate | |||
61 | UserProfileData user = null; | 61 | UserProfileData user = null; |
62 | 62 | ||
63 | m_log.InfoFormat("[NHIBERNATE] ExistsUser; {0}", uuid); | 63 | m_log.InfoFormat("[NHIBERNATE] ExistsUser; {0}", uuid); |
64 | user = (UserProfileData)manager.Load(typeof(UserProfileData), uuid); | 64 | user = (UserProfileData)manager.Get(typeof(UserProfileData), uuid); |
65 | 65 | ||
66 | if (user == null) | 66 | if (user == null) |
67 | { | 67 | { |
@@ -78,7 +78,7 @@ namespace OpenSim.Data.NHibernate | |||
78 | UserProfileData user; | 78 | UserProfileData user; |
79 | m_log.InfoFormat("[NHIBERNATE] GetUserByUUID: {0} ", uuid); | 79 | m_log.InfoFormat("[NHIBERNATE] GetUserByUUID: {0} ", uuid); |
80 | 80 | ||
81 | user = (UserProfileData)manager.Load(typeof(UserProfileData), uuid); | 81 | user = (UserProfileData)manager.Get(typeof(UserProfileData), uuid); |
82 | if (user != null) | 82 | if (user != null) |
83 | { | 83 | { |
84 | UserAgentData agent = GetAgentByUUID(uuid); | 84 | UserAgentData agent = GetAgentByUUID(uuid); |
@@ -163,7 +163,7 @@ namespace OpenSim.Data.NHibernate | |||
163 | } | 163 | } |
164 | 164 | ||
165 | 165 | ||
166 | UserAgentData old = (UserAgentData)manager.Load(typeof(UserAgentData), agent.ProfileID); | 166 | UserAgentData old = (UserAgentData)manager.Get(typeof(UserAgentData), agent.ProfileID); |
167 | if (old != null) | 167 | if (old != null) |
168 | { | 168 | { |
169 | manager.Delete(old); | 169 | manager.Delete(old); |
@@ -182,7 +182,7 @@ namespace OpenSim.Data.NHibernate | |||
182 | override public UserAgentData GetAgentByUUID(UUID uuid) | 182 | override public UserAgentData GetAgentByUUID(UUID uuid) |
183 | { | 183 | { |
184 | m_log.InfoFormat("[NHIBERNATE] GetAgentByUUID: {0} ", uuid); | 184 | m_log.InfoFormat("[NHIBERNATE] GetAgentByUUID: {0} ", uuid); |
185 | return (UserAgentData)manager.Load(typeof(UserAgentData), uuid); | 185 | return (UserAgentData)manager.Get(typeof(UserAgentData), uuid); |
186 | } | 186 | } |
187 | 187 | ||
188 | override public UserProfileData GetUserByName(string fname, string lname) | 188 | override public UserProfileData GetUserByName(string fname, string lname) |
@@ -397,12 +397,12 @@ namespace OpenSim.Data.NHibernate | |||
397 | /// TODO: stubs for now to get us to a compiling state gently | 397 | /// TODO: stubs for now to get us to a compiling state gently |
398 | public override AvatarAppearance GetUserAppearance(UUID user) | 398 | public override AvatarAppearance GetUserAppearance(UUID user) |
399 | { | 399 | { |
400 | return (AvatarAppearance)manager.Load(typeof(AvatarAppearance), user); | 400 | return (AvatarAppearance)manager.Get(typeof(AvatarAppearance), user); |
401 | } | 401 | } |
402 | 402 | ||
403 | private bool ExistsAppearance(UUID uuid) | 403 | private bool ExistsAppearance(UUID uuid) |
404 | { | 404 | { |
405 | AvatarAppearance appearance = (AvatarAppearance)manager.Load(typeof(AvatarAppearance), uuid); | 405 | AvatarAppearance appearance = (AvatarAppearance)manager.Get(typeof(AvatarAppearance), uuid); |
406 | if (appearance == null) | 406 | if (appearance == null) |
407 | { | 407 | { |
408 | return false; | 408 | return false; |
diff --git a/OpenSim/Data/NHibernate/Resources/EstateSettings.hbm.xml b/OpenSim/Data/NHibernate/Resources/EstateSettings.hbm.xml index 2dc3949..d8c8975 100644 --- a/OpenSim/Data/NHibernate/Resources/EstateSettings.hbm.xml +++ b/OpenSim/Data/NHibernate/Resources/EstateSettings.hbm.xml | |||
@@ -35,5 +35,23 @@ | |||
35 | 35 | ||
36 | <property name="AbuseEmail" type="String" length="255" /> | 36 | <property name="AbuseEmail" type="String" length="255" /> |
37 | 37 | ||
38 | <array name="EstateManagers" table="EstateManagers" cascade="all"> | ||
39 | <key column="EstateID" /> | ||
40 | <index column="ArrayIndex" /> | ||
41 | <element column="ManagerID" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate" /> | ||
42 | </array> | ||
43 | |||
44 | <array name="EstateAccess" table="EstateUsers" cascade="all"> | ||
45 | <key column="EstateID" /> | ||
46 | <index column="ArrayIndex" /> | ||
47 | <element column="UserID" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate" /> | ||
48 | </array> | ||
49 | |||
50 | <array name="EstateGroups" table="EstateGroups" cascade="all"> | ||
51 | <key column="EstateID" /> | ||
52 | <index column="ArrayIndex" /> | ||
53 | <element column="GroupID" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate" /> | ||
54 | </array> | ||
55 | |||
38 | </class> | 56 | </class> |
39 | </hibernate-mapping> | 57 | </hibernate-mapping> |
diff --git a/OpenSim/Data/NHibernate/Resources/MsSql2005Dialect/001_EstateStore.sql b/OpenSim/Data/NHibernate/Resources/MsSql2005Dialect/001_EstateStore.sql index 4ca51be..b852cbc 100644 --- a/OpenSim/Data/NHibernate/Resources/MsSql2005Dialect/001_EstateStore.sql +++ b/OpenSim/Data/NHibernate/Resources/MsSql2005Dialect/001_EstateStore.sql | |||
@@ -38,3 +38,25 @@ CREATE TABLE EstateRegionLink ( | |||
38 | 38 | ||
39 | CREATE INDEX EstateRegionLinkEstateIDIndex ON EstateRegionLink (EstateID); | 39 | CREATE INDEX EstateRegionLinkEstateIDIndex ON EstateRegionLink (EstateID); |
40 | CREATE INDEX EstateRegionLinkERegionIDIndex ON EstateRegionLink (RegionID); | 40 | CREATE INDEX EstateRegionLinkERegionIDIndex ON EstateRegionLink (RegionID); |
41 | |||
42 | |||
43 | CREATE TABLE EstateManagers ( | ||
44 | EstateID INT NOT NULL, | ||
45 | ManagerID NVARCHAR(36) NOT NULL, | ||
46 | ArrayIndex INT NOT NULL, | ||
47 | PRIMARY KEY (EstateID,ArrayIndex) | ||
48 | ); | ||
49 | |||
50 | CREATE TABLE EstateUsers ( | ||
51 | EstateID INT NOT NULL, | ||
52 | UserID NVARCHAR(36) NOT NULL, | ||
53 | ArrayIndex INT NOT NULL, | ||
54 | PRIMARY KEY (EstateID,ArrayIndex) | ||
55 | ); | ||
56 | |||
57 | CREATE TABLE EstateGroups ( | ||
58 | EstateID INT NOT NULL, | ||
59 | GroupID NVARCHAR(36) NOT NULL, | ||
60 | ArrayIndex INT NOT NULL, | ||
61 | PRIMARY KEY (EstateID,ArrayIndex) | ||
62 | ); \ No newline at end of file | ||
diff --git a/OpenSim/Data/NHibernate/Resources/MySQLDialect/001_EstateStore.sql b/OpenSim/Data/NHibernate/Resources/MySQLDialect/001_EstateStore.sql index 2114186..69635d8 100644 --- a/OpenSim/Data/NHibernate/Resources/MySQLDialect/001_EstateStore.sql +++ b/OpenSim/Data/NHibernate/Resources/MySQLDialect/001_EstateStore.sql | |||
@@ -38,3 +38,25 @@ CREATE TABLE EstateRegionLink ( | |||
38 | 38 | ||
39 | CREATE INDEX EstateRegionLinkEstateIDIndex ON EstateRegionLink (EstateID); | 39 | CREATE INDEX EstateRegionLinkEstateIDIndex ON EstateRegionLink (EstateID); |
40 | CREATE INDEX EstateRegionLinkERegionIDIndex ON EstateRegionLink (RegionID); | 40 | CREATE INDEX EstateRegionLinkERegionIDIndex ON EstateRegionLink (RegionID); |
41 | |||
42 | CREATE TABLE EstateManagers ( | ||
43 | EstateID INT NOT NULL, | ||
44 | ManagerID VARCHAR(36) NOT NULL, | ||
45 | ArrayIndex INT NOT NULL, | ||
46 | PRIMARY KEY (EstateID,ArrayIndex) | ||
47 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Rev. 1'; | ||
48 | |||
49 | CREATE TABLE EstateUsers ( | ||
50 | EstateID INT NOT NULL, | ||
51 | UserID VARCHAR(36) NOT NULL, | ||
52 | ArrayIndex INT NOT NULL, | ||
53 | PRIMARY KEY (EstateID,ArrayIndex) | ||
54 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Rev. 1'; | ||
55 | |||
56 | CREATE TABLE EstateGroups ( | ||
57 | EstateID INT NOT NULL, | ||
58 | GroupID VARCHAR(36) NOT NULL, | ||
59 | ArrayIndex INT NOT NULL, | ||
60 | PRIMARY KEY (EstateID,ArrayIndex) | ||
61 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Rev. 1'; | ||
62 | |||
diff --git a/OpenSim/Data/NHibernate/Resources/PostgreSQLDialect/001_EstateStore.sql b/OpenSim/Data/NHibernate/Resources/PostgreSQLDialect/001_EstateStore.sql index e43fd86..d13a4d3 100644 --- a/OpenSim/Data/NHibernate/Resources/PostgreSQLDialect/001_EstateStore.sql +++ b/OpenSim/Data/NHibernate/Resources/PostgreSQLDialect/001_EstateStore.sql | |||
@@ -38,3 +38,25 @@ CREATE TABLE EstateRegionLink ( | |||
38 | 38 | ||
39 | CREATE INDEX EstateRegionLinkEstateIDIndex ON EstateRegionLink (EstateID); | 39 | CREATE INDEX EstateRegionLinkEstateIDIndex ON EstateRegionLink (EstateID); |
40 | CREATE INDEX EstateRegionLinkERegionIDIndex ON EstateRegionLink (RegionID); | 40 | CREATE INDEX EstateRegionLinkERegionIDIndex ON EstateRegionLink (RegionID); |
41 | |||
42 | |||
43 | CREATE TABLE EstateManagers ( | ||
44 | EstateID INT NOT NULL, | ||
45 | ManagerID VARCHAR(36) NOT NULL, | ||
46 | ArrayIndex INT NOT NULL, | ||
47 | PRIMARY KEY (EstateID,ArrayIndex) | ||
48 | ); | ||
49 | |||
50 | CREATE TABLE EstateUsers ( | ||
51 | EstateID INT NOT NULL, | ||
52 | UserID VARCHAR(36) NOT NULL, | ||
53 | ArrayIndex INT NOT NULL, | ||
54 | PRIMARY KEY (EstateID,ArrayIndex) | ||
55 | ); | ||
56 | |||
57 | CREATE TABLE EstateGroups ( | ||
58 | EstateID INT NOT NULL, | ||
59 | GroupID VARCHAR(36) NOT NULL, | ||
60 | ArrayIndex INT NOT NULL, | ||
61 | PRIMARY KEY (EstateID,ArrayIndex) | ||
62 | ); \ No newline at end of file | ||
diff --git a/OpenSim/Data/NHibernate/Resources/SQLiteDialect/001_EstateStore.sql b/OpenSim/Data/NHibernate/Resources/SQLiteDialect/001_EstateStore.sql index b540bc6..6e67630 100644 --- a/OpenSim/Data/NHibernate/Resources/SQLiteDialect/001_EstateStore.sql +++ b/OpenSim/Data/NHibernate/Resources/SQLiteDialect/001_EstateStore.sql | |||
@@ -38,3 +38,24 @@ CREATE TABLE EstateRegionLink ( | |||
38 | 38 | ||
39 | CREATE INDEX EstateRegionLinkEstateIDIndex ON EstateRegionLink (EstateID); | 39 | CREATE INDEX EstateRegionLinkEstateIDIndex ON EstateRegionLink (EstateID); |
40 | CREATE INDEX EstateRegionLinkERegionIDIndex ON EstateRegionLink (RegionID); | 40 | CREATE INDEX EstateRegionLinkERegionIDIndex ON EstateRegionLink (RegionID); |
41 | |||
42 | CREATE TABLE EstateManagers ( | ||
43 | EstateID INT NOT NULL, | ||
44 | ManagerID VARCHAR(36) NOT NULL, | ||
45 | ArrayIndex INT NOT NULL, | ||
46 | PRIMARY KEY (EstateID,ArrayIndex) | ||
47 | ); | ||
48 | |||
49 | CREATE TABLE EstateUsers ( | ||
50 | EstateID INT NOT NULL, | ||
51 | UserID VARCHAR(36) NOT NULL, | ||
52 | ArrayIndex INT NOT NULL, | ||
53 | PRIMARY KEY (EstateID,ArrayIndex) | ||
54 | ); | ||
55 | |||
56 | CREATE TABLE EstateGroups ( | ||
57 | EstateID INT NOT NULL, | ||
58 | GroupID VARCHAR(36) NOT NULL, | ||
59 | ArrayIndex INT NOT NULL, | ||
60 | PRIMARY KEY (EstateID,ArrayIndex) | ||
61 | ); | ||