From c8349e21c43b1232aa923783a39cca224460551a Mon Sep 17 00:00:00 2001 From: Jeff Ames Date: Sun, 21 Sep 2008 02:41:22 +0000 Subject: Update svn properties, minor formatting cleanup. --- .../ScriptEngine/ComponentLoader.cs | 200 +++++------ .../ScriptEngine/ComponentRegistry.cs | 134 ++++---- .../ScriptEngine/Components/CommandBase.cs | 88 ++--- .../ScriptEngine/Components/CompilerBase.cs | 88 ++--- .../ScriptEngine/Components/ComponentBase.cs | 104 +++--- .../ScriptEngine/Components/EventBase.cs | 88 ++--- .../ScriptEngine/Components/SchedulerBase.cs | 88 ++--- .../ScriptEngine/Properties/AssemblyInfo.cs | 72 ++-- .../ScriptEngine/RegionScriptEngineBase.cs | 364 ++++++++++----------- .../ScriptEngine/RegionScriptEnginePlugin.cs | 172 +++++----- .../ScriptEngine/ScriptEnginePlugin.cs | 178 +++++----- 11 files changed, 788 insertions(+), 788 deletions(-) (limited to 'OpenSim/ApplicationPlugins/ScriptEngine') diff --git a/OpenSim/ApplicationPlugins/ScriptEngine/ComponentLoader.cs b/OpenSim/ApplicationPlugins/ScriptEngine/ComponentLoader.cs index c89da81..0aa0525 100644 --- a/OpenSim/ApplicationPlugins/ScriptEngine/ComponentLoader.cs +++ b/OpenSim/ApplicationPlugins/ScriptEngine/ComponentLoader.cs @@ -1,101 +1,101 @@ -/* - * Copyright (c) Contributors, http://opensimulator.org/ - * See CONTRIBUTORS.TXT for a full list of copyright holders. - * - * 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 OpenSim Project 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 DEVELOPERS ``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 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.Reflection; -using System.Text; -using log4net; -using OpenSim.ApplicationPlugins.ScriptEngine.Components; - -namespace OpenSim.ApplicationPlugins.ScriptEngine -{ - /// - /// Used to load ScriptEngine component .dll's - /// - internal class ComponentLoader - { - internal static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); - private ScriptEnginePlugin scriptEnginePlugin; - public ComponentLoader(ScriptEnginePlugin sep) - { - scriptEnginePlugin = sep; - } - - /// - /// Load components from directory - /// - /// - public void Load(string directory) - { - // We may want to change how this functions as currently it required unique class names for each component - - foreach (string file in Directory.GetFiles(directory, "*.dll")) - { - //m_log.DebugFormat("[ScriptEngine]: Loading: [{0}].", file); - Assembly componentAssembly = Assembly.LoadFrom(file); - if (componentAssembly != null) - { - try - { - // Go through all types in the assembly - foreach (Type componentType in componentAssembly.GetTypes()) - { - if (componentType.IsPublic - && !componentType.IsAbstract) - { - if (componentType.IsSubclassOf(typeof (ComponentBase))) - { - // We have found an type which is derived from ProdiverBase, add it to provider list - m_log.InfoFormat("[ScriptEngine]: Adding component: {0}", componentType.Name); - lock (ComponentRegistry.providers) - { - ComponentRegistry.providers.Add(componentType.Name, componentType); - } - } - if (componentType.IsSubclassOf(typeof(RegionScriptEngineBase))) - { - // We have found an type which is derived from RegionScriptEngineBase, add it to engine list - m_log.InfoFormat("[ScriptEngine]: Adding script engine: {0}", componentType.Name); - lock (ComponentRegistry.scriptEngines) - { - ComponentRegistry.scriptEngines.Add(componentType.Name, componentType); - } - } - } - } - } - catch - (ReflectionTypeLoadException) - { - m_log.InfoFormat("[ScriptEngine]: Could not load types for [{0}].", componentAssembly.FullName); - } - } //if - } //foreach - } - } +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * 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 OpenSim Project 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 DEVELOPERS ``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 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.Reflection; +using System.Text; +using log4net; +using OpenSim.ApplicationPlugins.ScriptEngine.Components; + +namespace OpenSim.ApplicationPlugins.ScriptEngine +{ + /// + /// Used to load ScriptEngine component .dll's + /// + internal class ComponentLoader + { + internal static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); + private ScriptEnginePlugin scriptEnginePlugin; + public ComponentLoader(ScriptEnginePlugin sep) + { + scriptEnginePlugin = sep; + } + + /// + /// Load components from directory + /// + /// + public void Load(string directory) + { + // We may want to change how this functions as currently it required unique class names for each component + + foreach (string file in Directory.GetFiles(directory, "*.dll")) + { + //m_log.DebugFormat("[ScriptEngine]: Loading: [{0}].", file); + Assembly componentAssembly = Assembly.LoadFrom(file); + if (componentAssembly != null) + { + try + { + // Go through all types in the assembly + foreach (Type componentType in componentAssembly.GetTypes()) + { + if (componentType.IsPublic + && !componentType.IsAbstract) + { + if (componentType.IsSubclassOf(typeof (ComponentBase))) + { + // We have found an type which is derived from ProdiverBase, add it to provider list + m_log.InfoFormat("[ScriptEngine]: Adding component: {0}", componentType.Name); + lock (ComponentRegistry.providers) + { + ComponentRegistry.providers.Add(componentType.Name, componentType); + } + } + if (componentType.IsSubclassOf(typeof(RegionScriptEngineBase))) + { + // We have found an type which is derived from RegionScriptEngineBase, add it to engine list + m_log.InfoFormat("[ScriptEngine]: Adding script engine: {0}", componentType.Name); + lock (ComponentRegistry.scriptEngines) + { + ComponentRegistry.scriptEngines.Add(componentType.Name, componentType); + } + } + } + } + } + catch + (ReflectionTypeLoadException) + { + m_log.InfoFormat("[ScriptEngine]: Could not load types for [{0}].", componentAssembly.FullName); + } + } //if + } //foreach + } + } } \ No newline at end of file diff --git a/OpenSim/ApplicationPlugins/ScriptEngine/ComponentRegistry.cs b/OpenSim/ApplicationPlugins/ScriptEngine/ComponentRegistry.cs index dcb435d..5ffa490 100644 --- a/OpenSim/ApplicationPlugins/ScriptEngine/ComponentRegistry.cs +++ b/OpenSim/ApplicationPlugins/ScriptEngine/ComponentRegistry.cs @@ -1,68 +1,68 @@ -/* - * Copyright (c) Contributors, http://opensimulator.org/ - * See CONTRIBUTORS.TXT for a full list of copyright holders. - * - * 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 OpenSim Project 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 DEVELOPERS ``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 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.Text; -using OpenSim.ApplicationPlugins.ScriptEngine; -using OpenSim.ApplicationPlugins.ScriptEngine.Components; - -namespace OpenSim.ApplicationPlugins.ScriptEngine -{ - /// - /// Component providers - /// This is where any component (any part) of the Script Engine Component System (SECS) registers. - /// Nothing is instanciated at this point. The modules just need to register here to be available for any script engine. - /// - public static class ComponentRegistry - { - // Component providers are registered here wit a name (string) - // When a script engine is created the components are instanciated - public static Dictionary providers = new Dictionary(); - public static Dictionary scriptEngines = new Dictionary(); - - ///// - ///// Returns a list of ProviderBase objects which has been instanciated by their name - ///// - ///// List of Script Engine Components - ///// - //public static List GetComponents(string[] Providers) - //{ - // List pbl = new List(); - // if (Providers != null) - // { - // foreach (string p in Providers) - // { - // if (providers.ContainsKey(p)) - // pbl.Add(Activator.CreateInstance(providers[p]) as ComponentBase); - // } - // } - - // return pbl; - //} - - } +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * 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 OpenSim Project 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 DEVELOPERS ``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 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.Text; +using OpenSim.ApplicationPlugins.ScriptEngine; +using OpenSim.ApplicationPlugins.ScriptEngine.Components; + +namespace OpenSim.ApplicationPlugins.ScriptEngine +{ + /// + /// Component providers + /// This is where any component (any part) of the Script Engine Component System (SECS) registers. + /// Nothing is instanciated at this point. The modules just need to register here to be available for any script engine. + /// + public static class ComponentRegistry + { + // Component providers are registered here wit a name (string) + // When a script engine is created the components are instanciated + public static Dictionary providers = new Dictionary(); + public static Dictionary scriptEngines = new Dictionary(); + + ///// + ///// Returns a list of ProviderBase objects which has been instanciated by their name + ///// + ///// List of Script Engine Components + ///// + //public static List GetComponents(string[] Providers) + //{ + // List pbl = new List(); + // if (Providers != null) + // { + // foreach (string p in Providers) + // { + // if (providers.ContainsKey(p)) + // pbl.Add(Activator.CreateInstance(providers[p]) as ComponentBase); + // } + // } + + // return pbl; + //} + + } } \ No newline at end of file diff --git a/OpenSim/ApplicationPlugins/ScriptEngine/Components/CommandBase.cs b/OpenSim/ApplicationPlugins/ScriptEngine/Components/CommandBase.cs index 01a052f..4708554 100644 --- a/OpenSim/ApplicationPlugins/ScriptEngine/Components/CommandBase.cs +++ b/OpenSim/ApplicationPlugins/ScriptEngine/Components/CommandBase.cs @@ -1,45 +1,45 @@ -/* - * Copyright (c) Contributors, http://opensimulator.org/ - * See CONTRIBUTORS.TXT for a full list of copyright holders. - * - * 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 OpenSim Project 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 DEVELOPERS ``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 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.Text; - -namespace OpenSim.ApplicationPlugins.ScriptEngine.Components -{ - public abstract class CommandBase: ComponentBase - { - //public override iProviderBase CreateInstance() - //{ - // throw new NotImplementedException(); - //} - - //public override void Start() - //{ - // throw new NotImplementedException(); - //} - } +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * 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 OpenSim Project 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 DEVELOPERS ``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 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.Text; + +namespace OpenSim.ApplicationPlugins.ScriptEngine.Components +{ + public abstract class CommandBase: ComponentBase + { + //public override iProviderBase CreateInstance() + //{ + // throw new NotImplementedException(); + //} + + //public override void Start() + //{ + // throw new NotImplementedException(); + //} + } } \ No newline at end of file diff --git a/OpenSim/ApplicationPlugins/ScriptEngine/Components/CompilerBase.cs b/OpenSim/ApplicationPlugins/ScriptEngine/Components/CompilerBase.cs index 69b54a5..e62d1f2 100644 --- a/OpenSim/ApplicationPlugins/ScriptEngine/Components/CompilerBase.cs +++ b/OpenSim/ApplicationPlugins/ScriptEngine/Components/CompilerBase.cs @@ -1,45 +1,45 @@ -/* - * Copyright (c) Contributors, http://opensimulator.org/ - * See CONTRIBUTORS.TXT for a full list of copyright holders. - * - * 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 OpenSim Project 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 DEVELOPERS ``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 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.Text; - -namespace OpenSim.ApplicationPlugins.ScriptEngine.Components -{ - public abstract class CompilerBase: ComponentBase - { - //public override iProviderBase CreateInstance() - //{ - // throw new NotImplementedException(); - //} - - //public override void Start() - //{ - // throw new NotImplementedException(); - //} - } +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * 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 OpenSim Project 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 DEVELOPERS ``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 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.Text; + +namespace OpenSim.ApplicationPlugins.ScriptEngine.Components +{ + public abstract class CompilerBase: ComponentBase + { + //public override iProviderBase CreateInstance() + //{ + // throw new NotImplementedException(); + //} + + //public override void Start() + //{ + // throw new NotImplementedException(); + //} + } } \ No newline at end of file diff --git a/OpenSim/ApplicationPlugins/ScriptEngine/Components/ComponentBase.cs b/OpenSim/ApplicationPlugins/ScriptEngine/Components/ComponentBase.cs index 8879e53..48c6bfe 100644 --- a/OpenSim/ApplicationPlugins/ScriptEngine/Components/ComponentBase.cs +++ b/OpenSim/ApplicationPlugins/ScriptEngine/Components/ComponentBase.cs @@ -1,53 +1,53 @@ -/* - * Copyright (c) Contributors, http://opensimulator.org/ - * See CONTRIBUTORS.TXT for a full list of copyright holders. - * - * 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 OpenSim Project 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 DEVELOPERS ``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 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.Text; - -namespace OpenSim.ApplicationPlugins.ScriptEngine.Components -{ - /// - /// Generic baseclass for component providers - /// - public abstract class ComponentBase //: iProviderBase - { - //public abstract iProviderBase CreateInstance(); - public abstract void Start(); - public abstract void Close(); - public RegionScriptEngineBase scriptEngine; - public void Initialize(RegionScriptEngineBase ScriptEngine) - { - scriptEngine = ScriptEngine; - } - - static ComponentBase() - { - // We got loaded -- should we register now? - //OpenSim.ApplicationPlugins.ScriptEngine.ComponentProviders.providers.Add(GetType()); - } - } +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * 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 OpenSim Project 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 DEVELOPERS ``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 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.Text; + +namespace OpenSim.ApplicationPlugins.ScriptEngine.Components +{ + /// + /// Generic baseclass for component providers + /// + public abstract class ComponentBase //: iProviderBase + { + //public abstract iProviderBase CreateInstance(); + public abstract void Start(); + public abstract void Close(); + public RegionScriptEngineBase scriptEngine; + public void Initialize(RegionScriptEngineBase ScriptEngine) + { + scriptEngine = ScriptEngine; + } + + static ComponentBase() + { + // We got loaded -- should we register now? + //OpenSim.ApplicationPlugins.ScriptEngine.ComponentProviders.providers.Add(GetType()); + } + } } \ No newline at end of file diff --git a/OpenSim/ApplicationPlugins/ScriptEngine/Components/EventBase.cs b/OpenSim/ApplicationPlugins/ScriptEngine/Components/EventBase.cs index d9c29a9..1c0fd52 100644 --- a/OpenSim/ApplicationPlugins/ScriptEngine/Components/EventBase.cs +++ b/OpenSim/ApplicationPlugins/ScriptEngine/Components/EventBase.cs @@ -1,45 +1,45 @@ -/* - * Copyright (c) Contributors, http://opensimulator.org/ - * See CONTRIBUTORS.TXT for a full list of copyright holders. - * - * 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 OpenSim Project 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 DEVELOPERS ``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 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.Text; - -namespace OpenSim.ApplicationPlugins.ScriptEngine.Components -{ - public abstract class EventBase : ComponentBase - { - //public override iProviderBase CreateInstance() - //{ - // throw new NotImplementedException(); - //} - - //public override void Start() - //{ - // throw new NotImplementedException(); - //} - } +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * 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 OpenSim Project 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 DEVELOPERS ``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 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.Text; + +namespace OpenSim.ApplicationPlugins.ScriptEngine.Components +{ + public abstract class EventBase : ComponentBase + { + //public override iProviderBase CreateInstance() + //{ + // throw new NotImplementedException(); + //} + + //public override void Start() + //{ + // throw new NotImplementedException(); + //} + } } \ No newline at end of file diff --git a/OpenSim/ApplicationPlugins/ScriptEngine/Components/SchedulerBase.cs b/OpenSim/ApplicationPlugins/ScriptEngine/Components/SchedulerBase.cs index 7c19beb..9d5aff0 100644 --- a/OpenSim/ApplicationPlugins/ScriptEngine/Components/SchedulerBase.cs +++ b/OpenSim/ApplicationPlugins/ScriptEngine/Components/SchedulerBase.cs @@ -1,45 +1,45 @@ -/* - * Copyright (c) Contributors, http://opensimulator.org/ - * See CONTRIBUTORS.TXT for a full list of copyright holders. - * - * 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 OpenSim Project 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 DEVELOPERS ``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 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.Text; - -namespace OpenSim.ApplicationPlugins.ScriptEngine.Components -{ - public abstract class SchedulerBase: ComponentBase - { - //public override iProviderBase CreateInstance() - //{ - // throw new NotImplementedException(); - //} - - //public override void Start() - //{ - // throw new NotImplementedException(); - //} - } +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * 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 OpenSim Project 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 DEVELOPERS ``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 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.Text; + +namespace OpenSim.ApplicationPlugins.ScriptEngine.Components +{ + public abstract class SchedulerBase: ComponentBase + { + //public override iProviderBase CreateInstance() + //{ + // throw new NotImplementedException(); + //} + + //public override void Start() + //{ + // throw new NotImplementedException(); + //} + } } \ No newline at end of file diff --git a/OpenSim/ApplicationPlugins/ScriptEngine/Properties/AssemblyInfo.cs b/OpenSim/ApplicationPlugins/ScriptEngine/Properties/AssemblyInfo.cs index 166a6d7..a93f89c 100644 --- a/OpenSim/ApplicationPlugins/ScriptEngine/Properties/AssemblyInfo.cs +++ b/OpenSim/ApplicationPlugins/ScriptEngine/Properties/AssemblyInfo.cs @@ -1,36 +1,36 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("OpenSim.ApplicationPlugins.ScriptEngine")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Microsoft")] -[assembly: AssemblyProduct("OpenSim.ApplicationPlugins.ScriptEngine")] -[assembly: AssemblyCopyright("Copyright © Microsoft 2008")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("a234c402-3014-45de-9f6b-c024d9f71983")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("OpenSim.ApplicationPlugins.ScriptEngine")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Microsoft")] +[assembly: AssemblyProduct("OpenSim.ApplicationPlugins.ScriptEngine")] +[assembly: AssemblyCopyright("Copyright © Microsoft 2008")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("a234c402-3014-45de-9f6b-c024d9f71983")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/OpenSim/ApplicationPlugins/ScriptEngine/RegionScriptEngineBase.cs b/OpenSim/ApplicationPlugins/ScriptEngine/RegionScriptEngineBase.cs index ec676f2..e2731d7 100644 --- a/OpenSim/ApplicationPlugins/ScriptEngine/RegionScriptEngineBase.cs +++ b/OpenSim/ApplicationPlugins/ScriptEngine/RegionScriptEngineBase.cs @@ -1,182 +1,182 @@ -/* - * Copyright (c) Contributors, http://opensimulator.org/ - * See CONTRIBUTORS.TXT for a full list of copyright holders. - * - * 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 OpenSim Project 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 DEVELOPERS ``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 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.Reflection; -using System.Text; -using log4net; -using Nini.Config; -using OpenSim.ApplicationPlugins.ScriptEngine.Components; -using OpenSim.Region.Environment.Scenes; - -namespace OpenSim.ApplicationPlugins.ScriptEngine -{ - public abstract class RegionScriptEngineBase - { - - /// - /// Called on region initialize - /// - public abstract void Initialize(); - public abstract string Name { get; } - /// - /// Called before components receive Close() - /// - public abstract void PreClose(); - // Hold list of all the different components we have working for us - public List Components = new List(); - - public Scene m_Scene; - public IConfigSource m_ConfigSource; - public readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); - - public void Initialize(Scene scene, IConfigSource source) - { - // Region started - m_Scene = scene; - m_ConfigSource = source; - Initialize(); - } - - /// - /// Creates instances of script engine components inside "components" List - /// - /// Array of comonent names to initialize - public void InitializeComponents(string[] ComponentList) - { - // Take list of providers to initialize and make instances of them - foreach (string c in ComponentList) - { - m_log.Info("[" + Name + "]: Loading: " + c); - lock (Components) - { - lock (ComponentRegistry.providers) - { - try - { - if (ComponentRegistry.providers.ContainsKey(c)) - Components.Add(Activator.CreateInstance(ComponentRegistry.providers[c]) as ComponentBase); - else - m_log.Error("[" + Name + "]: Component \"" + c + "\" not found, can not load"); - } - catch (Exception ex) - { - m_log.Error("[" + Name + "]: Exception loading \"" + c + "\": " + ex.ToString()); - } - } - } - } - - - // Run Initialize on all our providers, hand over a reference of ourself. - foreach (ComponentBase p in Components.ToArray()) - { - try - { - p.Initialize(this); - } - catch (Exception ex) - { - lock (Components) - { - m_log.Error("[" + Name + "]: Error initializing \"" + p.GetType().FullName + "\": " + - ex.ToString()); - if (Components.Contains(p)) - Components.Remove(p); - } - } - } - // All modules has been initialized, call Start() on them. - foreach (ComponentBase p in Components.ToArray()) - { - try - { - p.Start(); - } - catch (Exception ex) - { - lock (Components) - { - m_log.Error("[" + Name + "]: Error starting \"" + p.GetType().FullName + "\": " + ex.ToString()); - if (Components.Contains(p)) - Components.Remove(p); - } - } - } - - } - - #region Functions to return lists based on type - // Predicate for searching List for a certain type - private static bool FindType(ComponentBase pb) - { - if (pb.GetType() is T) - return true; - return false; - } - public List GetCommandComponentList() - { - return Components.FindAll(FindType); - } - public List GetCompilerComponentList() - { - return Components.FindAll(FindType); - } - public List GetEventComponentList() - { - return Components.FindAll(FindType); - } - public List GetScheduleComponentList() - { - return Components.FindAll(FindType); - } - - #endregion - - public void Close() - { - // We need to shut down - - // First call abstracted PreClose() - PreClose(); - - // Then Call Close() on all components - foreach (ComponentBase p in Components.ToArray()) - { - try - { - p.Close(); - } - catch (Exception ex) - { - // TODO: Print error to console - } - } - } - } -} - +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * 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 OpenSim Project 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 DEVELOPERS ``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 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.Reflection; +using System.Text; +using log4net; +using Nini.Config; +using OpenSim.ApplicationPlugins.ScriptEngine.Components; +using OpenSim.Region.Environment.Scenes; + +namespace OpenSim.ApplicationPlugins.ScriptEngine +{ + public abstract class RegionScriptEngineBase + { + + /// + /// Called on region initialize + /// + public abstract void Initialize(); + public abstract string Name { get; } + /// + /// Called before components receive Close() + /// + public abstract void PreClose(); + // Hold list of all the different components we have working for us + public List Components = new List(); + + public Scene m_Scene; + public IConfigSource m_ConfigSource; + public readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); + + public void Initialize(Scene scene, IConfigSource source) + { + // Region started + m_Scene = scene; + m_ConfigSource = source; + Initialize(); + } + + /// + /// Creates instances of script engine components inside "components" List + /// + /// Array of comonent names to initialize + public void InitializeComponents(string[] ComponentList) + { + // Take list of providers to initialize and make instances of them + foreach (string c in ComponentList) + { + m_log.Info("[" + Name + "]: Loading: " + c); + lock (Components) + { + lock (ComponentRegistry.providers) + { + try + { + if (ComponentRegistry.providers.ContainsKey(c)) + Components.Add(Activator.CreateInstance(ComponentRegistry.providers[c]) as ComponentBase); + else + m_log.Error("[" + Name + "]: Component \"" + c + "\" not found, can not load"); + } + catch (Exception ex) + { + m_log.Error("[" + Name + "]: Exception loading \"" + c + "\": " + ex.ToString()); + } + } + } + } + + + // Run Initialize on all our providers, hand over a reference of ourself. + foreach (ComponentBase p in Components.ToArray()) + { + try + { + p.Initialize(this); + } + catch (Exception ex) + { + lock (Components) + { + m_log.Error("[" + Name + "]: Error initializing \"" + p.GetType().FullName + "\": " + + ex.ToString()); + if (Components.Contains(p)) + Components.Remove(p); + } + } + } + // All modules has been initialized, call Start() on them. + foreach (ComponentBase p in Components.ToArray()) + { + try + { + p.Start(); + } + catch (Exception ex) + { + lock (Components) + { + m_log.Error("[" + Name + "]: Error starting \"" + p.GetType().FullName + "\": " + ex.ToString()); + if (Components.Contains(p)) + Components.Remove(p); + } + } + } + + } + + #region Functions to return lists based on type + // Predicate for searching List for a certain type + private static bool FindType(ComponentBase pb) + { + if (pb.GetType() is T) + return true; + return false; + } + public List GetCommandComponentList() + { + return Components.FindAll(FindType); + } + public List GetCompilerComponentList() + { + return Components.FindAll(FindType); + } + public List GetEventComponentList() + { + return Components.FindAll(FindType); + } + public List GetScheduleComponentList() + { + return Components.FindAll(FindType); + } + + #endregion + + public void Close() + { + // We need to shut down + + // First call abstracted PreClose() + PreClose(); + + // Then Call Close() on all components + foreach (ComponentBase p in Components.ToArray()) + { + try + { + p.Close(); + } + catch (Exception ex) + { + // TODO: Print error to console + } + } + } + } +} + diff --git a/OpenSim/ApplicationPlugins/ScriptEngine/RegionScriptEnginePlugin.cs b/OpenSim/ApplicationPlugins/ScriptEngine/RegionScriptEnginePlugin.cs index 89fb47b..e85e4dd 100644 --- a/OpenSim/ApplicationPlugins/ScriptEngine/RegionScriptEnginePlugin.cs +++ b/OpenSim/ApplicationPlugins/ScriptEngine/RegionScriptEnginePlugin.cs @@ -1,86 +1,86 @@ -/* - * Copyright (c) Contributors, http://opensimulator.org/ - * See CONTRIBUTORS.TXT for a full list of copyright holders. - * - * 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 OpenSim Project 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 DEVELOPERS ``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 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.Text; -using Nini.Config; -using OpenSim.Region.Environment.Interfaces; -using OpenSim.Region.Environment.Scenes; - -namespace OpenSim.ApplicationPlugins.ScriptEngine -{ - public class RegionScriptEnginePlugin : IRegionModule - { - // This is a region module. - // This means: Every time a new region is created, a new instance of this module is also created. - // This module is responsible for starting the script engine for this region. - - private string tempScriptEngineName = "DotNetEngine"; - public RegionScriptEngineBase scriptEngine; - public void Initialise(Scene scene, IConfigSource source) - { - return; - // New region is being created - // Create a new script engine - try - { - lock (ComponentRegistry.scriptEngines) - { - scriptEngine = - Activator.CreateInstance(ComponentRegistry.scriptEngines[tempScriptEngineName]) as - RegionScriptEngineBase; - } - scriptEngine.Initialize(scene, source); - } - catch (Exception ex) - { - scriptEngine.m_log.Error("[ScriptEngine]: Unable to load engine \"" + tempScriptEngineName + "\": " + ex.ToString()); - } - } - - public void PostInitialise() - { - // Nothing - } - - public void Close() - { - if (scriptEngine != null) - scriptEngine.Close(); - } - - public string Name - { - get { return "ScriptEngine Region Loader"; } - } - - public bool IsSharedModule - { - get { return true; } - } - } -} +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * 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 OpenSim Project 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 DEVELOPERS ``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 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.Text; +using Nini.Config; +using OpenSim.Region.Environment.Interfaces; +using OpenSim.Region.Environment.Scenes; + +namespace OpenSim.ApplicationPlugins.ScriptEngine +{ + public class RegionScriptEnginePlugin : IRegionModule + { + // This is a region module. + // This means: Every time a new region is created, a new instance of this module is also created. + // This module is responsible for starting the script engine for this region. + + private string tempScriptEngineName = "DotNetEngine"; + public RegionScriptEngineBase scriptEngine; + public void Initialise(Scene scene, IConfigSource source) + { + return; + // New region is being created + // Create a new script engine + try + { + lock (ComponentRegistry.scriptEngines) + { + scriptEngine = + Activator.CreateInstance(ComponentRegistry.scriptEngines[tempScriptEngineName]) as + RegionScriptEngineBase; + } + scriptEngine.Initialize(scene, source); + } + catch (Exception ex) + { + scriptEngine.m_log.Error("[ScriptEngine]: Unable to load engine \"" + tempScriptEngineName + "\": " + ex.ToString()); + } + } + + public void PostInitialise() + { + // Nothing + } + + public void Close() + { + if (scriptEngine != null) + scriptEngine.Close(); + } + + public string Name + { + get { return "ScriptEngine Region Loader"; } + } + + public bool IsSharedModule + { + get { return true; } + } + } +} diff --git a/OpenSim/ApplicationPlugins/ScriptEngine/ScriptEnginePlugin.cs b/OpenSim/ApplicationPlugins/ScriptEngine/ScriptEnginePlugin.cs index cd584d5..32c7748 100644 --- a/OpenSim/ApplicationPlugins/ScriptEngine/ScriptEnginePlugin.cs +++ b/OpenSim/ApplicationPlugins/ScriptEngine/ScriptEnginePlugin.cs @@ -1,89 +1,89 @@ -/* - * Copyright (c) Contributors, http://opensimulator.org/ - * See CONTRIBUTORS.TXT for a full list of copyright holders. - * - * 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 OpenSim Project 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 DEVELOPERS ``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 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.Reflection; -using System.Text; -using log4net; - -namespace OpenSim.ApplicationPlugins.ScriptEngine -{ - public class ScriptEnginePlugin : IApplicationPlugin - { - internal static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); - internal OpenSimBase m_OpenSim; - private ComponentLoader pluginLoader; - - public void Initialise(OpenSimBase openSim) - { - // Our objective: Load component .dll's - m_OpenSim = openSim; - pluginLoader = new ComponentLoader(this); - - m_log.Info("[" + Name + "]: Script Engine Component System"); - m_log.Info("[" + Name + "]: Loading Script Engine Components"); - pluginLoader.Load("ScriptEngines"); - - } - #region IApplicationPlugin stuff - /// - /// Returns the plugin version - /// - /// Plugin version in MAJOR.MINOR.REVISION.BUILD format - public string Version - { - get { return "1.0.0.0"; } - } - - /// - /// Returns the plugin name - /// - /// Plugin name, eg MySQL User Provider - public string Name - { - get { return "ScriptEngine"; } - } - - /// - /// Default-initialises the plugin - /// - public void Initialise() - { - //throw new NotImplementedException(); - } - - /// - ///Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - /// - ///2 - public void Dispose() - { - //throw new NotImplementedException(); - } - #endregion - } -} +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * 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 OpenSim Project 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 DEVELOPERS ``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 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.Reflection; +using System.Text; +using log4net; + +namespace OpenSim.ApplicationPlugins.ScriptEngine +{ + public class ScriptEnginePlugin : IApplicationPlugin + { + internal static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); + internal OpenSimBase m_OpenSim; + private ComponentLoader pluginLoader; + + public void Initialise(OpenSimBase openSim) + { + // Our objective: Load component .dll's + m_OpenSim = openSim; + pluginLoader = new ComponentLoader(this); + + m_log.Info("[" + Name + "]: Script Engine Component System"); + m_log.Info("[" + Name + "]: Loading Script Engine Components"); + pluginLoader.Load("ScriptEngines"); + + } + #region IApplicationPlugin stuff + /// + /// Returns the plugin version + /// + /// Plugin version in MAJOR.MINOR.REVISION.BUILD format + public string Version + { + get { return "1.0.0.0"; } + } + + /// + /// Returns the plugin name + /// + /// Plugin name, eg MySQL User Provider + public string Name + { + get { return "ScriptEngine"; } + } + + /// + /// Default-initialises the plugin + /// + public void Initialise() + { + //throw new NotImplementedException(); + } + + /// + ///Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + /// + ///2 + public void Dispose() + { + //throw new NotImplementedException(); + } + #endregion + } +} -- cgit v1.1