diff options
Diffstat (limited to 'OpenSim/Region/Application/OpenSimBase.cs')
-rw-r--r-- | OpenSim/Region/Application/OpenSimBase.cs | 164 |
1 files changed, 1 insertions, 163 deletions
diff --git a/OpenSim/Region/Application/OpenSimBase.cs b/OpenSim/Region/Application/OpenSimBase.cs index cc1f59a..14ae5f1 100644 --- a/OpenSim/Region/Application/OpenSimBase.cs +++ b/OpenSim/Region/Application/OpenSimBase.cs | |||
@@ -281,7 +281,6 @@ namespace OpenSim | |||
281 | // Called from base.StartUp() | 281 | // Called from base.StartUp() |
282 | 282 | ||
283 | m_httpServerPort = m_networkServersInfo.HttpListenerPort; | 283 | m_httpServerPort = m_networkServersInfo.HttpListenerPort; |
284 | InitialiseAssetCache(); | ||
285 | m_sceneManager.OnRestartSim += handleRestartRegion; | 284 | m_sceneManager.OnRestartSim += handleRestartRegion; |
286 | } | 285 | } |
287 | 286 | ||
@@ -296,167 +295,6 @@ namespace OpenSim | |||
296 | /// returns an IAssetCache implementation, if possible. This is a virtual | 295 | /// returns an IAssetCache implementation, if possible. This is a virtual |
297 | /// method. | 296 | /// method. |
298 | /// </summary> | 297 | /// </summary> |
299 | protected virtual void InitialiseAssetCache() | ||
300 | { | ||
301 | LegacyAssetClientPluginInitialiser linit = null; | ||
302 | CryptoAssetClientPluginInitialiser cinit = null; | ||
303 | AssetClientPluginInitialiser init = null; | ||
304 | |||
305 | IAssetServer assetServer = null; | ||
306 | string mode = m_configSettings.AssetStorage; | ||
307 | |||
308 | if (mode == null | mode == String.Empty) | ||
309 | mode = "default"; | ||
310 | |||
311 | // If "default" is specified, then the value is adjusted | ||
312 | // according to whether or not the server is running in | ||
313 | // standalone mode. | ||
314 | if (mode.ToLower() == "default") | ||
315 | { | ||
316 | if (m_configSettings.Standalone == false) | ||
317 | mode = "grid"; | ||
318 | else | ||
319 | mode = "local"; | ||
320 | } | ||
321 | |||
322 | switch (mode.ToLower()) | ||
323 | { | ||
324 | // If grid is specified then the grid server is chose regardless | ||
325 | // of whether the server is standalone. | ||
326 | case "grid": | ||
327 | linit = new LegacyAssetClientPluginInitialiser(m_configSettings, m_networkServersInfo.AssetURL); | ||
328 | assetServer = loadAssetServer("Grid", linit); | ||
329 | break; | ||
330 | |||
331 | // If cryptogrid is specified then the cryptogrid server is chose regardless | ||
332 | // of whether the server is standalone. | ||
333 | case "cryptogrid": | ||
334 | cinit = new CryptoAssetClientPluginInitialiser(m_configSettings, m_networkServersInfo.AssetURL, | ||
335 | Environment.CurrentDirectory, true); | ||
336 | assetServer = loadAssetServer("Crypto", cinit); | ||
337 | break; | ||
338 | |||
339 | // If cryptogrid_eou is specified then the cryptogrid_eou server is chose regardless | ||
340 | // of whether the server is standalone. | ||
341 | case "cryptogrid_eou": | ||
342 | cinit = new CryptoAssetClientPluginInitialiser(m_configSettings, m_networkServersInfo.AssetURL, | ||
343 | Environment.CurrentDirectory, false); | ||
344 | assetServer = loadAssetServer("Crypto", cinit); | ||
345 | break; | ||
346 | |||
347 | // If file is specified then the file server is chose regardless | ||
348 | // of whether the server is standalone. | ||
349 | case "file": | ||
350 | linit = new LegacyAssetClientPluginInitialiser(m_configSettings, m_networkServersInfo.AssetURL); | ||
351 | assetServer = loadAssetServer("File", linit); | ||
352 | break; | ||
353 | |||
354 | // If local is specified then we're going to use the local SQL server | ||
355 | // implementation. We drop through, because that will be the fallback | ||
356 | // for the following default clause too. | ||
357 | case "local": | ||
358 | break; | ||
359 | |||
360 | // If the asset_database value is none of the previously mentioned strings, then we | ||
361 | // try to load a turnkey plugin that matches this value. If not we drop through to | ||
362 | // a local default. | ||
363 | default: | ||
364 | try | ||
365 | { | ||
366 | init = new AssetClientPluginInitialiser(m_configSettings); | ||
367 | assetServer = loadAssetServer(m_configSettings.AssetStorage, init); | ||
368 | break; | ||
369 | } | ||
370 | catch | ||
371 | { | ||
372 | } | ||
373 | m_log.Info("[OPENSIMBASE]: Default assetserver will be used"); | ||
374 | break; | ||
375 | } | ||
376 | |||
377 | // Open the local SQL-based database asset server | ||
378 | if (assetServer == null) | ||
379 | { | ||
380 | init = new AssetClientPluginInitialiser(m_configSettings); | ||
381 | SQLAssetServer sqlAssetServer = (SQLAssetServer) loadAssetServer("SQL", init); | ||
382 | sqlAssetServer.LoadDefaultAssets(m_configSettings.AssetSetsXMLFile); | ||
383 | assetServer = sqlAssetServer; | ||
384 | } | ||
385 | |||
386 | // Initialize the asset cache, passing a reference to the selected | ||
387 | // asset server interface. | ||
388 | m_assetCache = ResolveAssetCache(assetServer); | ||
389 | |||
390 | assetServer.Start(); | ||
391 | } | ||
392 | |||
393 | // This method loads the identified asset server, passing an approrpiately | ||
394 | // initialized Initialise wrapper. There should to be exactly one match, | ||
395 | // if not, then the first match is used. | ||
396 | private IAssetServer loadAssetServer(string id, PluginInitialiserBase pi) | ||
397 | { | ||
398 | if (id != null && id != String.Empty) | ||
399 | { | ||
400 | m_log.DebugFormat("[OPENSIMBASE] Attempting to load asset server id={0}", id); | ||
401 | |||
402 | try | ||
403 | { | ||
404 | PluginLoader<IAssetServer> loader = new PluginLoader<IAssetServer>(pi); | ||
405 | loader.AddFilter(PLUGIN_ASSET_SERVER_CLIENT, new PluginProviderFilter(id)); | ||
406 | loader.Load(PLUGIN_ASSET_SERVER_CLIENT); | ||
407 | |||
408 | if (loader.Plugins.Count > 0) | ||
409 | { | ||
410 | m_log.DebugFormat("[OPENSIMBASE] Asset server {0} loaded", id); | ||
411 | return (IAssetServer) loader.Plugins[0]; | ||
412 | } | ||
413 | } | ||
414 | catch (Exception e) | ||
415 | { | ||
416 | m_log.DebugFormat("[OPENSIMBASE] Asset server {0} not loaded ({1})", id, e.Message); | ||
417 | } | ||
418 | } | ||
419 | return null; | ||
420 | } | ||
421 | |||
422 | /// <summary> | ||
423 | /// Attempt to instantiate an IAssetCache implementation, using the | ||
424 | /// provided IAssetServer reference. | ||
425 | /// An asset cache implementation must provide a constructor that | ||
426 | /// accepts two parameters; | ||
427 | /// [1] A ConfigSettings reference. | ||
428 | /// [2] An IAssetServer reference. | ||
429 | /// The AssetCache value is obtained from the | ||
430 | /// [StartUp]/AssetCache value in the configuration file. | ||
431 | /// </summary> | ||
432 | protected virtual IAssetCache ResolveAssetCache(IAssetServer assetServer) | ||
433 | { | ||
434 | IAssetCache assetCache = null; | ||
435 | if (m_configSettings.AssetCache != null && m_configSettings.AssetCache != String.Empty) | ||
436 | { | ||
437 | m_log.DebugFormat("[OPENSIMBASE]: Attempting to load asset cache id = {0}", m_configSettings.AssetCache); | ||
438 | |||
439 | try | ||
440 | { | ||
441 | PluginInitialiserBase init = new AssetCachePluginInitialiser(m_configSettings, assetServer); | ||
442 | PluginLoader<IAssetCache> loader = new PluginLoader<IAssetCache>(init); | ||
443 | loader.AddFilter(PLUGIN_ASSET_CACHE, new PluginProviderFilter(m_configSettings.AssetCache)); | ||
444 | |||
445 | loader.Load(PLUGIN_ASSET_CACHE); | ||
446 | if (loader.Plugins.Count > 0) | ||
447 | assetCache = (IAssetCache) loader.Plugins[0]; | ||
448 | } | ||
449 | catch (Exception e) | ||
450 | { | ||
451 | m_log.Error("[OPENSIMBASE]: ResolveAssetCache failed"); | ||
452 | m_log.Error(e); | ||
453 | } | ||
454 | } | ||
455 | |||
456 | // If everything else fails, we force load the built-in asset cache | ||
457 | return (IAssetCache) ((assetCache != null) ? assetCache : new AssetCache(assetServer)); | ||
458 | } | ||
459 | |||
460 | public void ProcessLogin(bool LoginEnabled) | 298 | public void ProcessLogin(bool LoginEnabled) |
461 | { | 299 | { |
462 | if (LoginEnabled) | 300 | if (LoginEnabled) |
@@ -755,7 +593,7 @@ namespace OpenSim | |||
755 | 593 | ||
756 | return new Scene( | 594 | return new Scene( |
757 | regionInfo, circuitManager, m_commsManager, sceneGridService, | 595 | regionInfo, circuitManager, m_commsManager, sceneGridService, |
758 | storageManager, m_moduleLoader, m_configSettings.DumpAssetsToFile, m_configSettings.PhysicalPrim, | 596 | storageManager, m_moduleLoader, false, m_configSettings.PhysicalPrim, |
759 | m_configSettings.See_into_region_from_neighbor, m_config.Source, m_version); | 597 | m_configSettings.See_into_region_from_neighbor, m_config.Source, m_version); |
760 | } | 598 | } |
761 | 599 | ||