diff options
author | Lluis Sanchez <lluis@novell.com> | 2007-04-04 20:09:32 +0400 |
---|---|---|
committer | Lluis Sanchez <lluis@novell.com> | 2007-04-04 20:09:32 +0400 |
commit | 61c32269703b65d58dbf569c3bc7c552bc95cfea (patch) | |
tree | 5e2ef0fa824caa4e808abc41c23cd6f7ebfc4da1 /Mono.Addins | |
parent | bebb2a3c26afc46bfde443abeb25235e4c43321a (diff) |
* Mono.Addins/ExtensionContext.cs, Mono.Addins/AddinSessionService.cs,
Makefile.am, Mono.Addins.Description/AddinDescription.cs,
Mono.Addins.Description/ExtensionPoint.cs,
Mono.Addins.Database/AddinUpdateData.cs,
Mono.Addins.Database/AddinDatabase.cs: Use ISO-1 compliant c# only.
* Mono.Addins.Description/Condition.cs,
Mono.Addins.Description/ConditionCollection.cs: Removed unused
files.
svn path=/trunk/mono-addins/; revision=75396
Diffstat (limited to 'Mono.Addins')
-rw-r--r-- | Mono.Addins/ChangeLog | 11 | ||||
-rw-r--r-- | Mono.Addins/Makefile.am | 2 | ||||
-rw-r--r-- | Mono.Addins/Mono.Addins.Database/AddinDatabase.cs | 51 | ||||
-rw-r--r-- | Mono.Addins/Mono.Addins.Database/AddinUpdateData.cs | 24 | ||||
-rw-r--r-- | Mono.Addins/Mono.Addins.Description/AddinDescription.cs | 34 | ||||
-rw-r--r-- | Mono.Addins/Mono.Addins.Description/Condition.cs | 62 | ||||
-rw-r--r-- | Mono.Addins/Mono.Addins.Description/ConditionCollection.cs | 13 | ||||
-rw-r--r-- | Mono.Addins/Mono.Addins.Description/ExtensionPoint.cs | 10 | ||||
-rw-r--r-- | Mono.Addins/Mono.Addins/AddinSessionService.cs | 4 | ||||
-rw-r--r-- | Mono.Addins/Mono.Addins/ExtensionContext.cs | 8 |
10 files changed, 84 insertions, 135 deletions
diff --git a/Mono.Addins/ChangeLog b/Mono.Addins/ChangeLog index f3433e6..0c6efae 100644 --- a/Mono.Addins/ChangeLog +++ b/Mono.Addins/ChangeLog @@ -1,5 +1,16 @@ 2007-04-04 Lluis Sanchez Gual <lluis@novell.com> + * Mono.Addins/ExtensionContext.cs, Mono.Addins/AddinSessionService.cs, + Makefile.am, Mono.Addins.Description/AddinDescription.cs, + Mono.Addins.Description/ExtensionPoint.cs, + Mono.Addins.Database/AddinUpdateData.cs, + Mono.Addins.Database/AddinDatabase.cs: Use ISO-1 compliant c# only. + * Mono.Addins.Description/Condition.cs, + Mono.Addins.Description/ConditionCollection.cs: Removed unused + files. + +2007-04-04 Lluis Sanchez Gual <lluis@novell.com> + * Mono.Addins.csproj: Added msbuild project files. Patch by Matthijs ter Woord. diff --git a/Mono.Addins/Makefile.am b/Mono.Addins/Makefile.am index f47cbf8..4d6a402 100644 --- a/Mono.Addins/Makefile.am +++ b/Mono.Addins/Makefile.am @@ -1,6 +1,6 @@ ASSEMBLY_COMPILER_COMMAND = mcs -ASSEMBLY_COMPILER_FLAGS = -noconfig -codepage:utf8 -warn:4 -debug -d:DEBUG "-main:Mono.Addins.Database.SetupProcess" +ASSEMBLY_COMPILER_FLAGS = -langversion:ISO-1 -noconfig -codepage:utf8 -warn:4 -debug -d:DEBUG "-main:Mono.Addins.Database.SetupProcess" ASSEMBLY = ../bin/Mono.Addins.dll COMPILE_TARGET = exe PC_FILES_IN = mono-addins.pc.in diff --git a/Mono.Addins/Mono.Addins.Database/AddinDatabase.cs b/Mono.Addins/Mono.Addins.Database/AddinDatabase.cs index 25bbf25..402bbb6 100644 --- a/Mono.Addins/Mono.Addins.Database/AddinDatabase.cs +++ b/Mono.Addins/Mono.Addins.Database/AddinDatabase.cs @@ -853,25 +853,10 @@ namespace Mono.Addins.Database } - AddinScanResult scanResult = null; AddinScanner scanner = new AddinScanner (this); - ResolveEventHandler resolver = delegate (object s, ResolveEventArgs args) { - - if (scanResult == null) { - scanResult = new AddinScanResult (); - scanResult.LocateAssembliesOnly = true; - - foreach (string dir in registry.AddinDirectories) - scanner.ScanFolder (progressStatus, dir, scanResult); - } - - string afile = scanResult.GetAssemblyLocation (args.Name); - if (afile != null) - return Util.LoadAssemblyForReflection (afile); - else - return null; - }; + SingleFileAssemblyResolver res = new SingleFileAssemblyResolver (progressStatus, registry, scanner); + ResolveEventHandler resolver = new ResolveEventHandler (res.Resolve); EventInfo einfo = typeof(AppDomain).GetEvent ("ReflectionOnlyAssemblyResolve"); @@ -1136,6 +1121,38 @@ namespace Mono.Addins.Database } } } + + class SingleFileAssemblyResolver + { + AddinScanResult scanResult; + AddinScanner scanner; + AddinRegistry registry; + IProgressStatus progressStatus; + + public SingleFileAssemblyResolver (IProgressStatus progressStatus, AddinRegistry registry, AddinScanner scanner) + { + this.scanner = scanner; + this.registry = registry; + this.progressStatus = progressStatus; + } + + public Assembly Resolve (object s, ResolveEventArgs args) + { + if (scanResult == null) { + scanResult = new AddinScanResult (); + scanResult.LocateAssembliesOnly = true; + + foreach (string dir in registry.AddinDirectories) + scanner.ScanFolder (progressStatus, dir, scanResult); + } + + string afile = scanResult.GetAssemblyLocation (args.Name); + if (afile != null) + return Util.LoadAssemblyForReflection (afile); + else + return null; + } + } } diff --git a/Mono.Addins/Mono.Addins.Database/AddinUpdateData.cs b/Mono.Addins/Mono.Addins.Database/AddinUpdateData.cs index d5f8f25..4b76276 100644 --- a/Mono.Addins/Mono.Addins.Database/AddinUpdateData.cs +++ b/Mono.Addins/Mono.Addins.Database/AddinUpdateData.cs @@ -86,7 +86,7 @@ namespace Mono.Addins.Database rep.Description = description; ExtensionPoint ep = new ExtensionPoint (); ep.RootAddin = description.AddinId; - ep.NodeSet = nodeSet; + ep.SetNodeSet (nodeSet); rep.ExtensionPoint = ep; list.Add (rep); } @@ -154,16 +154,20 @@ namespace Mono.Addins.Database public IEnumerable GetUnresolvedExtensionPoints () { + ArrayList list = new ArrayList (); foreach (object ob in pathHash.Values) if (ob is ExtensionPoint) - yield return ob; + list.Add (ob); + return list; } public IEnumerable GetUnresolvedExtensionSets () { + ArrayList list = new ArrayList (); foreach (object ob in nodeSetHash.Values) if (ob is ExtensionPoint) - yield return ob; + list.Add (ob); + return list; } public void ResolveExtensions (IProgressStatus monitor, Hashtable descriptions) @@ -228,6 +232,8 @@ namespace Mono.Addins.Database IEnumerable GetExtensionInfo (Hashtable hash, string path, AddinDescription description, ModuleDescription module, bool lookInParents) { + ArrayList list = new ArrayList (); + object data = hash [path]; if (data == null && lookInParents) { // Root add-in extension points are registered before any other kind of extension, @@ -237,8 +243,7 @@ namespace Mono.Addins.Database if (data is ArrayList) { // Extension point which belongs to a root assembly. - foreach (object ob in GetRootExtensionInfo (hash, path, description, module, (ArrayList) data)) - yield return ob; + list.AddRange (GetRootExtensionInfo (hash, path, description, module, (ArrayList) data)); } else { ExtensionPoint info = (ExtensionPoint) data; @@ -247,18 +252,21 @@ namespace Mono.Addins.Database info.Path = path; hash [path] = info; } - yield return info; + list.Add (info); } + return list; } - IEnumerable GetRootExtensionInfo (Hashtable hash, string path, AddinDescription description, ModuleDescription module, ArrayList rootExtensionPoints) + ArrayList GetRootExtensionInfo (Hashtable hash, string path, AddinDescription description, ModuleDescription module, ArrayList rootExtensionPoints) { + ArrayList list = new ArrayList (); foreach (RootExtensionPoint rep in rootExtensionPoints) { // Find an extension point defined in a root add-in which is compatible with the version of the extender dependency if (IsAddinCompatible (rep.Description, description, module)) - yield return rep.ExtensionPoint; + list.Add (rep.ExtensionPoint); } + return list; } ExtensionPoint GetParentExtensionPoint (string path) diff --git a/Mono.Addins/Mono.Addins.Description/AddinDescription.cs b/Mono.Addins/Mono.Addins.Description/AddinDescription.cs index e811bc6..c18288d 100644 --- a/Mono.Addins/Mono.Addins.Description/AddinDescription.cs +++ b/Mono.Addins/Mono.Addins.Description/AddinDescription.cs @@ -375,32 +375,18 @@ namespace Mono.Addins.Description extensionPoints.SaveXml (elem); } - public static void Check (string fileName) - { - Read (fileName, true); - } - - public static AddinDescription Read (string fileName) - { - return Read (fileName, false); - } - - public static AddinDescription Read (Stream stream, string basePath) - { - return Read (stream, basePath, false); - } - - public static AddinDescription Read (string configFile, bool check) + + public static AddinDescription Read (string configFile) { AddinDescription config; using (Stream s = File.OpenRead (configFile)) { - config = Read (s, Path.GetDirectoryName (configFile), check); + config = Read (s, Path.GetDirectoryName (configFile)); } config.configFile = configFile; return config; } - public static AddinDescription Read (Stream stream, string basePath, bool check) + public static AddinDescription Read (Stream stream, string basePath) { AddinDescription config = new AddinDescription (); @@ -427,12 +413,6 @@ namespace Mono.Addins.Description config.basePath = elem.GetAttribute ("basePath"); config.isroot = elem.GetAttribute ("isroot") == "true" || elem.GetAttribute ("isroot") == "yes"; - foreach (string file in config.AllFiles) { - string asmFile = Path.Combine (basePath, file); - if (check && !File.Exists (asmFile)) - throw new InvalidOperationException ("The file '" + file + "' is referenced in the configuration file but it was not found in package."); - } - return config; } @@ -503,6 +483,12 @@ namespace Mono.Addins.Description errors.Add ("Attribute 'id' can't be empty for global node sets."); } + foreach (string file in AllFiles) { + string asmFile = Path.Combine (BasePath, file); + if (!File.Exists (asmFile)) + errors.Add ("The file '" + file + "' referenced in the manifest could not be found."); + } + return errors; } diff --git a/Mono.Addins/Mono.Addins.Description/Condition.cs b/Mono.Addins/Mono.Addins.Description/Condition.cs deleted file mode 100644 index d49bf2f..0000000 --- a/Mono.Addins/Mono.Addins.Description/Condition.cs +++ /dev/null @@ -1,62 +0,0 @@ - -using System; -using System.Xml; -using System.Collections.Specialized; -using Mono.Addins.Serialization; - -namespace Mono.Addins.Description -{ - public class Condition: ObjectDescription - { - string id; - string description; - string addinId; - - public string Id { - get { return id; } - set { id = value; } - } - - public string Description { - get { return description; } - set { description = value; } - } - - internal string AddinId { - get { return addinId; } - set { addinId = value; } - } - - internal override void Verify (string location, StringCollection errors) - { - VerifyNotEmpty (location + "Condition", errors, Id, "id"); - } - - internal Condition (XmlElement elem): base (elem) - { - id = elem.GetAttribute ("id"); - description = ReadXmlDescription (); - } - - internal override void SaveXml (XmlElement parent) - { - CreateElement (parent, "Condition"); - Element.SetAttribute ("id", id); - SaveXmlDescription (description); - } - - internal override void Write (BinaryXmlWriter writer) - { - writer.WriteValue ("id", id); - writer.WriteValue ("description", description); - writer.WriteValue ("addinId", addinId); - } - - internal override void Read (BinaryXmlReader reader) - { - id = reader.ReadStringValue ("id"); - description = reader.ReadStringValue ("description"); - addinId = reader.ReadStringValue ("addinId"); - } - } -} diff --git a/Mono.Addins/Mono.Addins.Description/ConditionCollection.cs b/Mono.Addins/Mono.Addins.Description/ConditionCollection.cs deleted file mode 100644 index d149fc7..0000000 --- a/Mono.Addins/Mono.Addins.Description/ConditionCollection.cs +++ /dev/null @@ -1,13 +0,0 @@ - -using System; -using System.Collections; - -namespace Mono.Addins.Description -{ - public class ConditionCollection: ObjectDescriptionCollection - { - public Condition this [int n] { - get { return (Condition) List [n]; } - } - } -} diff --git a/Mono.Addins/Mono.Addins.Description/ExtensionPoint.cs b/Mono.Addins/Mono.Addins.Description/ExtensionPoint.cs index 2fbb909..a8a0923 100644 --- a/Mono.Addins/Mono.Addins.Description/ExtensionPoint.cs +++ b/Mono.Addins/Mono.Addins.Description/ExtensionPoint.cs @@ -174,10 +174,12 @@ namespace Mono.Addins.Description } return nodeSet; } - internal set { - // Used only by the addin updater - nodeSet = value; - } + } + + internal void SetNodeSet (ExtensionNodeSet nset) + { + // Used only by the addin updater + nodeSet = nset; } public ConditionTypeDescriptionCollection Conditions { diff --git a/Mono.Addins/Mono.Addins/AddinSessionService.cs b/Mono.Addins/Mono.Addins/AddinSessionService.cs index 840ab7c..300548f 100644 --- a/Mono.Addins/Mono.Addins/AddinSessionService.cs +++ b/Mono.Addins/Mono.Addins/AddinSessionService.cs @@ -49,12 +49,12 @@ namespace Mono.Addins { defaultContext = new ExtensionContext (); ActivateRoots (); - AppDomain.CurrentDomain.AssemblyLoad += OnAssemblyLoaded; + AppDomain.CurrentDomain.AssemblyLoad += new AssemblyLoadEventHandler (OnAssemblyLoaded); } internal void Shutdown () { - AppDomain.CurrentDomain.AssemblyLoad -= OnAssemblyLoaded; + AppDomain.CurrentDomain.AssemblyLoad -= new AssemblyLoadEventHandler (OnAssemblyLoaded); defaultContext = null; loadedAddins.Clear (); defaultContext = null; diff --git a/Mono.Addins/Mono.Addins/ExtensionContext.cs b/Mono.Addins/Mono.Addins/ExtensionContext.cs index 1ef5d7f..20942fa 100644 --- a/Mono.Addins/Mono.Addins/ExtensionContext.cs +++ b/Mono.Addins/Mono.Addins/ExtensionContext.cs @@ -86,9 +86,9 @@ namespace Mono.Addins ConditionInfo info = CreateConditionInfo (id); ConditionType ot = info.CondType as ConditionType; if (ot != null) - ot.Changed -= OnConditionChanged; + ot.Changed -= new EventHandler (OnConditionChanged); info.CondType = type; - type.Changed += OnConditionChanged; + type.Changed += new EventHandler (OnConditionChanged); } public void RegisterCondition (string id, Type type) @@ -97,7 +97,7 @@ namespace Mono.Addins ConditionInfo info = CreateConditionInfo (id); ConditionType ot = info.CondType as ConditionType; if (ot != null) - ot.Changed -= OnConditionChanged; + ot.Changed -= new EventHandler (OnConditionChanged); info.CondType = type; } @@ -125,7 +125,7 @@ namespace Mono.Addins // The condition was registered as a type, create an instance now ct = (ConditionType) Activator.CreateInstance ((Type)info.CondType); ct.Id = id; - ct.Changed += OnConditionChanged; + ct.Changed += new EventHandler (OnConditionChanged); info.CondType = ct; } else |