Plugin produces "Cannot create an abstract class"
Greetings,
I have just installed Gemini 2.05 and I am very impressed. However before I purchase, I have been attempting to make a start on integrating Gemini with our Perforce source control system.
I have developed a basic plugin DLL according to the documentation but Gemini always spits an error to it's log stating that it "cannot create an abstract class".
I have checked all the forums and followed tha advice I have found there but this has not helped. I am deriving my class from AbstractIssueListener and have verified that I am overriding all the interface methods.
I though it might be that I was using VS.NET 2005 and .NET 2.0 but I have tried compiling my plugin using .NET 1.1 and this made no difference. I have also tried placing the plugin DLL in both the bin and bin/plugins directories just to be on the safe side.
I even copied the source code of the sample mail plugin and then stripped out all the SMPT and SQL code so that it provided a skeleton. Still I get the same error message.
What am I doing wrong?
Here is my code and I can provide a compiled version if required. Please help, this is a show stopper for us using Gemini.
--- Code ---
using System;
using CounterSoft.GeminiLib;
namespace CounterSoft.GeminiPlugins
{
public class MailPlugin : AbstractIssueListener
{
public MailPlugin()
{
try
{
// do nothing
}
catch(Exception ex)
{
GeminiHelper.LogException(ex);
}
}
public override string Description
{
get
{
return "MaxIT Perforce Plugin";
}
set
{
base.Description = value;
}
}
public override void IssueCreated(IssueEventArgs args)
{
try
{
// do nothing
}
catch(Exception ex)
{
GeminiHelper.LogException(ex);
}
}
public override void IssueUpdated(IssueEventArgs args)
{
try
{
// do nothing
}
catch(Exception ex)
{
GeminiHelper.LogException(ex);
}
}
public override void IssueCommented(IssueEventArgs args)
{
try
{
// do nothing
}
catch(Exception ex)
{
GeminiHelper.LogException(ex);
}
}
public override void IssueStatusChange(IssueEventArgs args)
{
try
{
// do nothing
}
catch(Exception ex)
{
GeminiHelper.LogException(ex);
}
}
public override void IssueResolutionChange(IssueEventArgs args)
{
try
{
// do nothing
}
catch(Exception ex)
{
GeminiHelper.LogException(ex);
}
}
public override void IssueDeleted(IssueEventArgs args)
{
try
{
// do nothing
}
catch(Exception ex)
{
GeminiHelper.LogException(ex);
}
}
public override void IssueAssigned(IssueEventArgs args)
{
try
{
// do nothing
}
catch(Exception ex)
{
GeminiHelper.LogException(ex);
}
}
public override void IssueClosed(IssueEventArgs args)
{
try
{
// do nothing
}
catch(Exception ex)
{
GeminiHelper.LogException(ex);
}
}
public override void IssueResolved(IssueEventArgs args)
{
try
{
// do nothing
}
catch(Exception ex)
{
GeminiHelper.LogException(ex);
}
}
public override void IssueWatcherAdded(IssueEventArgs args)
{
try
{
// do nothing
}
catch(Exception ex)
{
GeminiHelper.LogException(ex);
}
}
}
}
|
tblizard
· 1 |
|
| Wednesday, September 20, 2006, 6:34:23 PM | |




