From 16fa7f516a484e9f21fac34262214b3d9d761823 Mon Sep 17 00:00:00 2001 From: Mike Mazur Date: Mon, 16 Feb 2009 02:25:44 +0000 Subject: Converted to Linux newlines. --- .../AssetInventoryServer/AssetInventoryServer.cs | 534 ++++++++++----------- 1 file changed, 267 insertions(+), 267 deletions(-) (limited to 'OpenSim/Grid/AssetInventoryServer/AssetInventoryServer.cs') diff --git a/OpenSim/Grid/AssetInventoryServer/AssetInventoryServer.cs b/OpenSim/Grid/AssetInventoryServer/AssetInventoryServer.cs index a769448..8d71f72 100644 --- a/OpenSim/Grid/AssetInventoryServer/AssetInventoryServer.cs +++ b/OpenSim/Grid/AssetInventoryServer/AssetInventoryServer.cs @@ -1,267 +1,267 @@ -/* - * Copyright (c) 2008 Intel Corporation - * All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * -- Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * -- Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * -- Neither the name of the Intel Corporation nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A - * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE INTEL OR ITS - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -using System; -using System.Collections.Generic; -using System.IO; -using System.Net; -using System.Reflection; -using System.Security.Cryptography.X509Certificates; -using System.ServiceProcess; -using ExtensionLoader; -using ExtensionLoader.Config; -using HttpServer; -using log4net; -using OpenSim.Framework; - -namespace OpenSim.Grid.AssetInventoryServer -{ - public class AssetInventoryServer : ServiceBase - { - public const string CONFIG_FILE = "AssetInventoryServer.ini"; - - public WebServer HttpServer; - public IniConfigSource ConfigFile; - - public IAssetStorageProvider StorageProvider; - public IInventoryProvider InventoryProvider; - public IAuthenticationProvider AuthenticationProvider; - public IAuthorizationProvider AuthorizationProvider; - public IMetricsProvider MetricsProvider; - - private IAssetInventoryServerPlugin frontend; - - public AssetInventoryServer() - { - this.ServiceName = "OpenSimAssetInventoryServer"; - } - - public bool Start() - { - Logger.Log.Info("Starting Asset Server"); - List extensionList = null; - int port = 0; - X509Certificate2 serverCert = null; - - try { ConfigFile = new IniConfigSource(CONFIG_FILE); } - catch (Exception) - { - Logger.Log.Error("Failed to load the config file " + CONFIG_FILE); - return false; - } - - try - { - IConfig extensionConfig = ConfigFile.Configs["Config"]; - - // Load the port number to listen on - port = extensionConfig.GetInt("ListenPort"); - - // Load the server certificate file - string certFile = extensionConfig.GetString("SSLCertFile"); - if (!String.IsNullOrEmpty(certFile)) - serverCert = new X509Certificate2(certFile); - } - catch (Exception) - { - Logger.Log.Error("Failed to load [Config] section from " + CONFIG_FILE); - return false; - } - - try - { - // Load the extension list (and ordering) from our config file - IConfig extensionConfig = ConfigFile.Configs["Extensions"]; - extensionList = new List(extensionConfig.GetKeys()); - } - catch (Exception) - { - Logger.Log.Error("Failed to load [Extensions] section from " + CONFIG_FILE); - return false; - } - - //try - //{ - // // Create a reference list for C# extensions compiled at runtime - // List references = new List(); - // references.Add("OpenMetaverseTypes.dll"); - // references.Add("OpenMetaverse.dll"); - // references.Add("OpenMetaverse.StructuredData.dll"); - // references.Add("OpenMetaverse.Http.dll"); - // references.Add("ExtensionLoader.dll"); - // references.Add("AssetServer.exe"); - - // // Get a list of all of the members of AssetServer that are interfaces - // List assignables = ExtensionLoader.GetInterfaces(this); - - // // Load all of the extensions - // ExtensionLoader.LoadAllExtensions( - // Assembly.GetExecutingAssembly(), - // Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), - // extensionList, - // references, - // "AssetServer.*.dll", - // "AssetServer.*.cs", - // this, - // assignables); - //} - //catch (ExtensionException ex) - //{ - // Logger.Log.Error("Interface loading failed, shutting down: " + ex.Message); - // if (ex.InnerException != null) - // Logger.Log.Error(ex.InnerException.Message, ex.InnerException); - // Stop(); - // return false; - //} - - StorageProvider = LoadAssetInventoryServerPlugin("/OpenSim/AssetInventoryServer/StorageProvider") as IAssetStorageProvider; - - try - { - InitHttpServer(port, serverCert); - } - catch (Exception ex) - { - Logger.Log.Error("Initializing the HTTP server failed, shutting down: " + ex.Message); - Stop(); - return false; - } - - frontend = LoadAssetInventoryServerPlugin("/OpenSim/AssetInventoryServer/Frontend"); - - // Start all of the extensions - //foreach (IExtension extension in ExtensionLoader.Extensions) - //{ - // Logger.Log.Info("Starting extension " + extension.GetType().Name); - // extension.Start(this); - //} - - return true; - } - - public void Shutdown() - { - foreach (IExtension extension in ExtensionLoader.Extensions) - { - Logger.Log.Debug("Disposing extension " + extension.GetType().Name); - try { extension.Stop(); } - catch (Exception ex) - { Logger.Log.ErrorFormat("Failure shutting down extension {0}: {1}", extension.GetType().Name, ex.Message); } - } - - if (HttpServer != null) - HttpServer.Stop(); - } - - void InitHttpServer(int port, X509Certificate serverCert) - { - if (serverCert != null) - HttpServer = new WebServer(IPAddress.Any, port, serverCert, null, false); - else - HttpServer = new WebServer(IPAddress.Any, port); - - HttpServer.LogWriter = new log4netLogWriter(Logger.Log); - - HttpServer.Set404Handler( - delegate(IHttpClientContext client, IHttpRequest request, IHttpResponse response) - { - Logger.Log.Warn("Requested page was not found: " + request.Uri.PathAndQuery); - - string notFoundString = "Page Not FoundThe requested page or method was not found"; - byte[] buffer = System.Text.Encoding.UTF8.GetBytes(notFoundString); - response.Body.Write(buffer, 0, buffer.Length); - response.Status = HttpStatusCode.NotFound; - return true; - } - ); - - HttpServer.Start(); - - Logger.Log.Info("Asset server is listening on port " + port); - } - - #region ServiceBase Overrides - - protected override void OnStart(string[] args) - { - Start(); - } - protected override void OnStop() - { - Shutdown(); - } - - #endregion - - private IAssetInventoryServerPlugin LoadAssetInventoryServerPlugin(string addinPath) - { - PluginLoader loader = new PluginLoader(new AssetInventoryServerPluginInitialiser(this)); - - //loader.Add ("/OpenSim/AssetInventoryServer/StorageProvider", new PluginProviderFilter (provider)); - //loader.Add("/OpenSim/AssetInventoryServer/StorageProvider", new PluginCountConstraint(1)); - loader.Add(addinPath); - loader.Load(); - - return loader.Plugin; - } - } - - public class log4netLogWriter : ILogWriter - { - ILog Log; - - public log4netLogWriter(ILog log) - { - Log = log; - } - - public void Write(object source, LogPrio prio, string message) - { - switch (prio) - { - case LogPrio.Trace: - case LogPrio.Debug: - Log.DebugFormat("{0}: {1}", source, message); - break; - case LogPrio.Info: - Log.InfoFormat("{0}: {1}", source, message); - break; - case LogPrio.Warning: - Log.WarnFormat("{0}: {1}", source, message); - break; - case LogPrio.Error: - Log.ErrorFormat("{0}: {1}", source, message); - break; - case LogPrio.Fatal: - Log.FatalFormat("{0}: {1}", source, message); - break; - } - } - } -} +/* + * Copyright (c) 2008 Intel Corporation + * All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * -- Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * -- Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * -- Neither the name of the Intel Corporation nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE INTEL OR ITS + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +using System; +using System.Collections.Generic; +using System.IO; +using System.Net; +using System.Reflection; +using System.Security.Cryptography.X509Certificates; +using System.ServiceProcess; +using ExtensionLoader; +using ExtensionLoader.Config; +using HttpServer; +using log4net; +using OpenSim.Framework; + +namespace OpenSim.Grid.AssetInventoryServer +{ + public class AssetInventoryServer : ServiceBase + { + public const string CONFIG_FILE = "AssetInventoryServer.ini"; + + public WebServer HttpServer; + public IniConfigSource ConfigFile; + + public IAssetStorageProvider StorageProvider; + public IInventoryProvider InventoryProvider; + public IAuthenticationProvider AuthenticationProvider; + public IAuthorizationProvider AuthorizationProvider; + public IMetricsProvider MetricsProvider; + + private IAssetInventoryServerPlugin frontend; + + public AssetInventoryServer() + { + this.ServiceName = "OpenSimAssetInventoryServer"; + } + + public bool Start() + { + Logger.Log.Info("Starting Asset Server"); + List extensionList = null; + int port = 0; + X509Certificate2 serverCert = null; + + try { ConfigFile = new IniConfigSource(CONFIG_FILE); } + catch (Exception) + { + Logger.Log.Error("Failed to load the config file " + CONFIG_FILE); + return false; + } + + try + { + IConfig extensionConfig = ConfigFile.Configs["Config"]; + + // Load the port number to listen on + port = extensionConfig.GetInt("ListenPort"); + + // Load the server certificate file + string certFile = extensionConfig.GetString("SSLCertFile"); + if (!String.IsNullOrEmpty(certFile)) + serverCert = new X509Certificate2(certFile); + } + catch (Exception) + { + Logger.Log.Error("Failed to load [Config] section from " + CONFIG_FILE); + return false; + } + + try + { + // Load the extension list (and ordering) from our config file + IConfig extensionConfig = ConfigFile.Configs["Extensions"]; + extensionList = new List(extensionConfig.GetKeys()); + } + catch (Exception) + { + Logger.Log.Error("Failed to load [Extensions] section from " + CONFIG_FILE); + return false; + } + + //try + //{ + // // Create a reference list for C# extensions compiled at runtime + // List references = new List(); + // references.Add("OpenMetaverseTypes.dll"); + // references.Add("OpenMetaverse.dll"); + // references.Add("OpenMetaverse.StructuredData.dll"); + // references.Add("OpenMetaverse.Http.dll"); + // references.Add("ExtensionLoader.dll"); + // references.Add("AssetServer.exe"); + + // // Get a list of all of the members of AssetServer that are interfaces + // List assignables = ExtensionLoader.GetInterfaces(this); + + // // Load all of the extensions + // ExtensionLoader.LoadAllExtensions( + // Assembly.GetExecutingAssembly(), + // Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), + // extensionList, + // references, + // "AssetServer.*.dll", + // "AssetServer.*.cs", + // this, + // assignables); + //} + //catch (ExtensionException ex) + //{ + // Logger.Log.Error("Interface loading failed, shutting down: " + ex.Message); + // if (ex.InnerException != null) + // Logger.Log.Error(ex.InnerException.Message, ex.InnerException); + // Stop(); + // return false; + //} + + StorageProvider = LoadAssetInventoryServerPlugin("/OpenSim/AssetInventoryServer/StorageProvider") as IAssetStorageProvider; + + try + { + InitHttpServer(port, serverCert); + } + catch (Exception ex) + { + Logger.Log.Error("Initializing the HTTP server failed, shutting down: " + ex.Message); + Stop(); + return false; + } + + frontend = LoadAssetInventoryServerPlugin("/OpenSim/AssetInventoryServer/Frontend"); + + // Start all of the extensions + //foreach (IExtension extension in ExtensionLoader.Extensions) + //{ + // Logger.Log.Info("Starting extension " + extension.GetType().Name); + // extension.Start(this); + //} + + return true; + } + + public void Shutdown() + { + foreach (IExtension extension in ExtensionLoader.Extensions) + { + Logger.Log.Debug("Disposing extension " + extension.GetType().Name); + try { extension.Stop(); } + catch (Exception ex) + { Logger.Log.ErrorFormat("Failure shutting down extension {0}: {1}", extension.GetType().Name, ex.Message); } + } + + if (HttpServer != null) + HttpServer.Stop(); + } + + void InitHttpServer(int port, X509Certificate serverCert) + { + if (serverCert != null) + HttpServer = new WebServer(IPAddress.Any, port, serverCert, null, false); + else + HttpServer = new WebServer(IPAddress.Any, port); + + HttpServer.LogWriter = new log4netLogWriter(Logger.Log); + + HttpServer.Set404Handler( + delegate(IHttpClientContext client, IHttpRequest request, IHttpResponse response) + { + Logger.Log.Warn("Requested page was not found: " + request.Uri.PathAndQuery); + + string notFoundString = "Page Not FoundThe requested page or method was not found"; + byte[] buffer = System.Text.Encoding.UTF8.GetBytes(notFoundString); + response.Body.Write(buffer, 0, buffer.Length); + response.Status = HttpStatusCode.NotFound; + return true; + } + ); + + HttpServer.Start(); + + Logger.Log.Info("Asset server is listening on port " + port); + } + + #region ServiceBase Overrides + + protected override void OnStart(string[] args) + { + Start(); + } + protected override void OnStop() + { + Shutdown(); + } + + #endregion + + private IAssetInventoryServerPlugin LoadAssetInventoryServerPlugin(string addinPath) + { + PluginLoader loader = new PluginLoader(new AssetInventoryServerPluginInitialiser(this)); + + //loader.Add ("/OpenSim/AssetInventoryServer/StorageProvider", new PluginProviderFilter (provider)); + //loader.Add("/OpenSim/AssetInventoryServer/StorageProvider", new PluginCountConstraint(1)); + loader.Add(addinPath); + loader.Load(); + + return loader.Plugin; + } + } + + public class log4netLogWriter : ILogWriter + { + ILog Log; + + public log4netLogWriter(ILog log) + { + Log = log; + } + + public void Write(object source, LogPrio prio, string message) + { + switch (prio) + { + case LogPrio.Trace: + case LogPrio.Debug: + Log.DebugFormat("{0}: {1}", source, message); + break; + case LogPrio.Info: + Log.InfoFormat("{0}: {1}", source, message); + break; + case LogPrio.Warning: + Log.WarnFormat("{0}: {1}", source, message); + break; + case LogPrio.Error: + Log.ErrorFormat("{0}: {1}", source, message); + break; + case LogPrio.Fatal: + Log.FatalFormat("{0}: {1}", source, message); + break; + } + } + } +} -- cgit v1.1