Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono-addins.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLluis Sanchez <lluis@novell.com>2007-04-04 20:09:32 +0400
committerLluis Sanchez <lluis@novell.com>2007-04-04 20:09:32 +0400
commit61c32269703b65d58dbf569c3bc7c552bc95cfea (patch)
tree5e2ef0fa824caa4e808abc41c23cd6f7ebfc4da1
parentbebb2a3c26afc46bfde443abeb25235e4c43321a (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
-rw-r--r--Mono.Addins/ChangeLog11
-rw-r--r--Mono.Addins/Makefile.am2
-rw-r--r--Mono.Addins/Mono.Addins.Database/AddinDatabase.cs51
-rw-r--r--Mono.Addins/Mono.Addins.Database/AddinUpdateData.cs24
-rw-r--r--Mono.Addins/Mono.Addins.Description/AddinDescription.cs34
-rw-r--r--Mono.Addins/Mono.Addins.Description/Condition.cs62
-rw-r--r--Mono.Addins/Mono.Addins.Description/ConditionCollection.cs13
-rw-r--r--Mono.Addins/Mono.Addins.Description/ExtensionPoint.cs10
-rw-r--r--Mono.Addins/Mono.Addins/AddinSessionService.cs4
-rw-r--r--Mono.Addins/Mono.Addins/ExtensionContext.cs8
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