diff --git a/OpenSim/Region/OptionalModules/Asset/AssetInfoModule.cs b/OpenSim/Region/OptionalModules/Asset/AssetInfoModule.cs
new file mode 100644
index 0000000000..9ea63438df
--- /dev/null
+++ b/OpenSim/Region/OptionalModules/Asset/AssetInfoModule.cs
@@ -0,0 +1,134 @@
+/*
+ * 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 OpenSimulator 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 Mono.Addins;
+using Nini.Config;
+using OpenMetaverse;
+using OpenSim.Framework;
+using OpenSim.Framework.Console;
+using OpenSim.Region.Framework.Interfaces;
+using OpenSim.Region.Framework.Scenes;
+
+namespace OpenSim.Region.OptionalModules.Asset
+{
+ ///
+ /// A module that just holds commands for inspecting assets.
+ ///
+ [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "AssetInfoModule")]
+ public class AssetInfoModule : ISharedRegionModule
+ {
+// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
+
+ private Scene m_scene;
+
+ public string Name { get { return "Asset Information Module"; } }
+
+ public Type ReplaceableInterface { get { return null; } }
+
+ public void Initialise(IConfigSource source)
+ {
+// m_log.DebugFormat("[ASSET INFO MODULE]: INITIALIZED MODULE");
+ }
+
+ public void PostInitialise()
+ {
+// m_log.DebugFormat("[ASSET INFO MODULE]: POST INITIALIZED MODULE");
+ }
+
+ public void Close()
+ {
+// m_log.DebugFormat("[ASSET INFO MODULE]: CLOSED MODULE");
+ }
+
+ public void AddRegion(Scene scene)
+ {
+// m_log.DebugFormat("[ASSET INFO MODULE]: REGION {0} ADDED", scene.RegionInfo.RegionName);
+ }
+
+ public void RemoveRegion(Scene scene)
+ {
+// m_log.DebugFormat("[ASSET INFO MODULE]: REGION {0} REMOVED", scene.RegionInfo.RegionName);
+ }
+
+ public void RegionLoaded(Scene scene)
+ {
+// m_log.DebugFormat("[ASSET INFO MODULE]: REGION {0} LOADED", scene.RegionInfo.RegionName);
+
+ if (m_scene == null)
+ m_scene = scene;
+
+ MainConsole.Instance.Commands.AddCommand(
+ "asset", false, "dump asset",
+ "dump asset ",
+ "Dump an asset",
+ HandleDumpAsset);
+ }
+
+ void HandleDumpAsset(string module, string[] args)
+ {
+ if (args.Length < 3)
+ {
+ MainConsole.Instance.Output("Usage is dump asset ");
+ return;
+ }
+
+ UUID assetId;
+ string rawAssetId = args[2];
+
+ if (!UUID.TryParse(rawAssetId, out assetId))
+ {
+ MainConsole.Instance.OutputFormat("ERROR: {0} is not a valid ID format", rawAssetId);
+ return;
+ }
+
+ AssetBase asset = m_scene.AssetService.Get(assetId.ToString());
+ if (asset == null)
+ {
+ MainConsole.Instance.OutputFormat("ERROR: No asset found with ID {0}", assetId);
+ return;
+ }
+
+ string fileName = rawAssetId;
+
+ using (FileStream fs = new FileStream(fileName, FileMode.CreateNew))
+ {
+ using (BinaryWriter bw = new BinaryWriter(fs))
+ {
+ bw.Write(asset.Data);
+ }
+ }
+
+ MainConsole.Instance.OutputFormat("Asset dumped to file {0}", fileName);
+ }
+ }
+}
\ No newline at end of file
diff --git a/OpenSim/Region/OptionalModules/Scripting/Minimodule/Interfaces/IInventoryItem.cs b/OpenSim/Region/OptionalModules/Scripting/Minimodule/Interfaces/IInventoryItem.cs
index 16cd7e454e..a8e545cc06 100644
--- a/OpenSim/Region/OptionalModules/Scripting/Minimodule/Interfaces/IInventoryItem.cs
+++ b/OpenSim/Region/OptionalModules/Scripting/Minimodule/Interfaces/IInventoryItem.cs
@@ -30,8 +30,7 @@ using OpenMetaverse;
using OpenMetaverse.Assets;
namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
-{
-
+{
///
/// This implements the methods needed to operate on individual inventory items.
///
@@ -39,6 +38,6 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
{
int Type { get; }
UUID AssetID { get; }
- T RetrieveAsset() where T : Asset, new();
+ T RetrieveAsset() where T : OpenMetaverse.Assets.Asset, new();
}
}
diff --git a/OpenSim/Services/Connectors/Asset/AssetServiceConnector.cs b/OpenSim/Services/Connectors/Asset/AssetServiceConnector.cs
index d7b2ff85ed..e4c3eafb77 100644
--- a/OpenSim/Services/Connectors/Asset/AssetServiceConnector.cs
+++ b/OpenSim/Services/Connectors/Asset/AssetServiceConnector.cs
@@ -86,11 +86,8 @@ namespace OpenSim.Services.Connectors
m_log.Error("[ASSET CONNECTOR]: No Server URI named in section AssetService");
throw new Exception("Asset connector init error");
}
- m_ServerURI = serviceURI;
- MainConsole.Instance.Commands.AddCommand("asset", false, "dump asset",
- "dump asset ",
- "dump one cached asset", HandleDumpAsset);
+ m_ServerURI = serviceURI;
}
protected void SetCache(IImprovedAssetCache cache)
@@ -328,43 +325,5 @@ namespace OpenSim.Services.Connectors
}
return false;
}
-
- private void HandleDumpAsset(string module, string[] args)
- {
- if (args.Length != 4)
- {
- MainConsole.Instance.Output("Syntax: dump asset ");
- return;
- }
-
- UUID assetID;
-
- if (!UUID.TryParse(args[2], out assetID))
- {
- MainConsole.Instance.Output("Invalid asset ID");
- return;
- }
-
- if (m_Cache == null)
- {
- MainConsole.Instance.Output("Instance uses no cache");
- return;
- }
-
- AssetBase asset = m_Cache.Get(assetID.ToString());
-
- if (asset == null)
- {
- MainConsole.Instance.Output("Asset not found in cache");
- return;
- }
-
- string fileName = args[3];
-
- FileStream fs = File.Create(fileName);
- fs.Write(asset.Data, 0, asset.Data.Length);
-
- fs.Close();
- }
}
-}
+}
\ No newline at end of file