Browse Source

adding support for multiple schedulers. need to test

master
jvilalta 14 years ago
parent
commit
61372cb5ab
12 changed files with 86246 additions and 322 deletions
  1. +197
    -193
      ClickForensics.Quartz.Manager/ClickForensics.Quartz.Manager.csproj
  2. +0
    -39
      ClickForensics.Quartz.Manager/MainForm.Designer.cs
  3. +76
    -90
      ClickForensics.Quartz.Manager/MainForm.cs
  4. +4
    -0
      ClickForensics.Quartz.Manager/packages.config
  5. BIN
      packages/log4net.1.2.10/lib/1.0/log4net.dll
  6. +28655
    -0
      packages/log4net.1.2.10/lib/1.0/log4net.xml
  7. BIN
      packages/log4net.1.2.10/lib/1.1/log4net.dll
  8. +28655
    -0
      packages/log4net.1.2.10/lib/1.1/log4net.xml
  9. BIN
      packages/log4net.1.2.10/lib/2.0/log4net.dll
  10. +28655
    -0
      packages/log4net.1.2.10/lib/2.0/log4net.xml
  11. BIN
      packages/log4net.1.2.10/log4net.1.2.10.nupkg
  12. +4
    -0
      packages/repositories.config

+ 197
- 193
ClickForensics.Quartz.Manager/ClickForensics.Quartz.Manager.csproj View File

@@ -1,93 +1,96 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>9.0.30729</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{D23DACFA-11A1-480E-A6C4-1F37B564523D}</ProjectGuid>
<OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>ClickForensics.Quartz.Manager</RootNamespace>
<AssemblyName>ClickForensics.Quartz.Manager</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<FileUpgradeFlags>
</FileUpgradeFlags>
<OldToolsVersion>3.5</OldToolsVersion>
<UpgradeBackupLocation />
<TargetFrameworkProfile />
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<IsWebBootstrapper>false</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="Common.Logging">
<HintPath>..\lib\Common.Logging.dll</HintPath>
</Reference>
<Reference Include="Quartz, Version=2.0.0.29445, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\quartznet\build\4.0\Debug\Quartz.Server\Quartz.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.configuration" />
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Xml.Linq">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Data.DataSetExtensions">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="AddJobForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="AddJobForm.Designer.cs">
<DependentUpon>AddJobForm.cs</DependentUpon>
</Compile>
<Compile Include="AddListenerForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="AddListenerForm.Designer.cs">
<DependentUpon>AddListenerForm.cs</DependentUpon>
</Compile>
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>9.0.30729</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{D23DACFA-11A1-480E-A6C4-1F37B564523D}</ProjectGuid>
<OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>ClickForensics.Quartz.Manager</RootNamespace>
<AssemblyName>ClickForensics.Quartz.Manager</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<FileUpgradeFlags>
</FileUpgradeFlags>
<OldToolsVersion>3.5</OldToolsVersion>
<UpgradeBackupLocation />
<TargetFrameworkProfile />
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<IsWebBootstrapper>false</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="Common.Logging">
<HintPath>..\lib\Common.Logging.dll</HintPath>
</Reference>
<Reference Include="log4net">
<HintPath>..\packages\log4net.1.2.10\lib\2.0\log4net.dll</HintPath>
</Reference>
<Reference Include="Quartz, Version=2.0.0.29445, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\quartznet\build\4.0\Debug\Quartz.Server\Quartz.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.configuration" />
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Xml.Linq">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Data.DataSetExtensions">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="AddJobForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="AddJobForm.Designer.cs">
<DependentUpon>AddJobForm.cs</DependentUpon>
</Compile>
<Compile Include="AddListenerForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="AddListenerForm.Designer.cs">
<DependentUpon>AddListenerForm.cs</DependentUpon>
</Compile>
<Compile Include="AssemblyRepository.cs" />
<Compile Include="ConnectionInfo.cs" />
<Compile Include="DeleteAssembliesForm.cs">
@@ -102,120 +105,121 @@
<Compile Include="SimpleTriggerDisplay.Designer.cs">
<DependentUpon>SimpleTriggerDisplay.cs</DependentUpon>
</Compile>
<Compile Include="ErrorDialog.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="ErrorDialog.Designer.cs">
<DependentUpon>ErrorDialog.cs</DependentUpon>
</Compile>
<Compile Include="JobType.cs" />
<Compile Include="NativeJobDetailDisplay.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="NativeJobDetailDisplay.Designer.cs">
<DependentUpon>NativeJobDetailDisplay.cs</DependentUpon>
</Compile>
<Compile Include="JobNode.cs" />
<Compile Include="MainForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="MainForm.Designer.cs">
<DependentUpon>MainForm.cs</DependentUpon>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<EmbeddedResource Include="AddJobForm.resx">
<DependentUpon>AddJobForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="AddListenerForm.resx">
<DependentUpon>AddListenerForm.cs</DependentUpon>
</EmbeddedResource>
<Compile Include="ErrorDialog.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="ErrorDialog.Designer.cs">
<DependentUpon>ErrorDialog.cs</DependentUpon>
</Compile>
<Compile Include="JobType.cs" />
<Compile Include="NativeJobDetailDisplay.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="NativeJobDetailDisplay.Designer.cs">
<DependentUpon>NativeJobDetailDisplay.cs</DependentUpon>
</Compile>
<Compile Include="JobNode.cs" />
<Compile Include="MainForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="MainForm.Designer.cs">
<DependentUpon>MainForm.cs</DependentUpon>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<EmbeddedResource Include="AddJobForm.resx">
<DependentUpon>AddJobForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="AddListenerForm.resx">
<DependentUpon>AddListenerForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="DeleteAssembliesForm.resx">
<DependentUpon>DeleteAssembliesForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="SimpleTriggerDisplay.resx">
<DependentUpon>SimpleTriggerDisplay.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="CronTriggerDisplay.resx">
<DependentUpon>CronTriggerDisplay.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="ErrorDialog.resx">
<DependentUpon>ErrorDialog.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="MainForm.resx">
<DependentUpon>MainForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="NativeJobDetailDisplay.resx">
<DependentUpon>NativeJobDetailDisplay.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="ServerConnectForm.resx">
<DependentUpon>ServerConnectForm.cs</DependentUpon>
</EmbeddedResource>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
<DesignTime>True</DesignTime>
</Compile>
<None Include="app.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
<Compile Include="QuartzScheduler.cs" />
<EmbeddedResource Include="CronTriggerDisplay.resx">
<DependentUpon>CronTriggerDisplay.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="ErrorDialog.resx">
<DependentUpon>ErrorDialog.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="MainForm.resx">
<DependentUpon>MainForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="NativeJobDetailDisplay.resx">
<DependentUpon>NativeJobDetailDisplay.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="ServerConnectForm.resx">
<DependentUpon>ServerConnectForm.cs</DependentUpon>
</EmbeddedResource>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
<DesignTime>True</DesignTime>
</Compile>
<None Include="app.config" />
<None Include="packages.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
<Compile Include="QuartzScheduler.cs" />
<Compile Include="RegistryStore.cs" />
<Compile Include="SchedulerNode.cs" />
<Compile Include="ServerConnectForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="ServerConnectForm.Designer.cs">
<DependentUpon>ServerConnectForm.cs</DependentUpon>
</Compile>
<Compile Include="CronTriggerDisplay.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="CronTriggerDisplay.Designer.cs">
<DependentUpon>CronTriggerDisplay.cs</DependentUpon>
</Compile>
<Compile Include="TriggerNode.cs" />
</ItemGroup>
<ItemGroup>
<Content Include="JobAssemblies.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
<Visible>False</Visible>
<ProductName>Windows Installer 3.1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Compile Include="SchedulerNode.cs" />
<Compile Include="ServerConnectForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="ServerConnectForm.Designer.cs">
<DependentUpon>ServerConnectForm.cs</DependentUpon>
</Compile>
<Compile Include="CronTriggerDisplay.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="CronTriggerDisplay.Designer.cs">
<DependentUpon>CronTriggerDisplay.cs</DependentUpon>
</Compile>
<Compile Include="TriggerNode.cs" />
</ItemGroup>
<ItemGroup>
<Content Include="JobAssemblies.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
<Visible>False</Visible>
<ProductName>Windows Installer 3.1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
-->
</Project>

+ 0
- 39
ClickForensics.Quartz.Manager/MainForm.Designer.cs View File

@@ -112,45 +112,6 @@
this.addJobToolStripMenuItem.Text = "Add";
this.addJobToolStripMenuItem.Click += new System.EventHandler(this.addJobToolStripMenuItem_Click);
//
// listenersStripMenuItem
//
this.listenersStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.globalListenersToolStripMenuItem,
this.addJobListenerToolStripMenuItem});
this.listenersStripMenuItem.Enabled = false;
this.listenersStripMenuItem.Name = "listenersStripMenuItem";
this.listenersStripMenuItem.Size = new System.Drawing.Size(65, 20);
this.listenersStripMenuItem.Text = "Listeners";
//
// globalListenersToolStripMenuItem
//
this.globalListenersToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.addGlobalJobListenerToolStripMenuItem,
this.addTriggerListenerToolStripMenuItem});
this.globalListenersToolStripMenuItem.Name = "globalListenersToolStripMenuItem";
this.globalListenersToolStripMenuItem.Size = new System.Drawing.Size(161, 22);
this.globalListenersToolStripMenuItem.Text = "Global";
//
// addGlobalJobListenerToolStripMenuItem
//
this.addGlobalJobListenerToolStripMenuItem.Name = "addGlobalJobListenerToolStripMenuItem";
this.addGlobalJobListenerToolStripMenuItem.Size = new System.Drawing.Size(181, 22);
this.addGlobalJobListenerToolStripMenuItem.Text = "Add Job Listener";
this.addGlobalJobListenerToolStripMenuItem.Click += new System.EventHandler(this.addGlobalListenerToolStripMenuItem_Click);
//
// addTriggerListenerToolStripMenuItem
//
this.addTriggerListenerToolStripMenuItem.Name = "addTriggerListenerToolStripMenuItem";
this.addTriggerListenerToolStripMenuItem.Size = new System.Drawing.Size(181, 22);
this.addTriggerListenerToolStripMenuItem.Text = "Add Trigger Listener";
//
// addJobListenerToolStripMenuItem
//
this.addJobListenerToolStripMenuItem.Name = "addJobListenerToolStripMenuItem";
this.addJobListenerToolStripMenuItem.Size = new System.Drawing.Size(161, 22);
this.addJobListenerToolStripMenuItem.Text = "Add Job Listener";
this.addJobListenerToolStripMenuItem.Click += new System.EventHandler(this.addJobListenerToolStripMenuItem_Click);
//
// statusStrip1
//
this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {


+ 76
- 90
ClickForensics.Quartz.Manager/MainForm.cs View File

@@ -7,6 +7,7 @@ using System.Linq;
using System.Reflection;
using System.Text;
using System.Windows.Forms;
using Common.Logging;
using Quartz;
using Quartz.Collection;
using System.Net.Sockets;
@@ -24,14 +25,7 @@ namespace ClickForensics.Quartz.Manager
{
InitializeComponent();
jobGroupsTreeView.AfterSelect += new TreeViewEventHandler(jobGroupsTreeView_AfterSelect);
ctxScheduler.Opening += new CancelEventHandler(ctxScheduler_Opening);
jobGroupsTreeView.MouseDown += new MouseEventHandler(jobGroupsTreeView_MouseDown);
}
void ctxScheduler_Opening(object sender, CancelEventArgs e)
{
}
void jobGroupsTreeView_AfterSelect(object sender, TreeViewEventArgs e)
@@ -83,7 +77,8 @@ namespace ClickForensics.Quartz.Manager
private void setPauseButtonText()
{
TriggerNode node = (TriggerNode)jobGroupsTreeView.SelectedNode;
if (Scheduler.GetScheduler().GetTriggerState(node.Trigger.Key) == TriggerState.Paused)
QuartzScheduler scheduler = getScheduler(node);
if (scheduler.GetScheduler().GetTriggerState(node.Trigger.Key) == TriggerState.Paused)
{
btnPause.Text = "Resume";
}
@@ -102,11 +97,11 @@ namespace ClickForensics.Quartz.Manager
{
try
{
Scheduler = new QuartzScheduler(form.Server, form.Port, form.Scheduler);
serverConnectStatusLabel.Text = string.Format("Connected to {0}", Scheduler.Address);
QuartzScheduler scheduler = new QuartzScheduler(form.Server, form.Port, form.Scheduler);
serverConnectStatusLabel.Text = string.Format("Connected to {0}", scheduler.Address);
connectToolStripMenuItem.Enabled = false;
jobsToolStripMenuItem.Enabled = true;
loadJobGroups();
loadJobGroups(scheduler);
updateRunningJobs();
}
catch (SocketException ex)
@@ -119,18 +114,9 @@ namespace ClickForensics.Quartz.Manager
}
form.Close();
}
//loadGlobalTriggers();
}
//private void loadGlobalTriggers()
//{
// foreach (IJobListener jobListener in Scheduler.GetScheduler().GetJobDetail(null,null)..GlobalJobListeners)
// {
// globalTriggersListView.Items.Add(jobListener.Name);
// }
//}
private void loadJobGroups()
private void loadJobGroups(QuartzScheduler scheduler)
{
try
@@ -138,12 +124,17 @@ namespace ClickForensics.Quartz.Manager
this.Cursor = Cursors.WaitCursor;
jobDetailsToggle(false);
jobGroupsTreeView.Nodes.Clear();
SchedulerNode schedulerNode = new SchedulerNode(Scheduler);
SchedulerNode schedulerNode = new SchedulerNode(scheduler);
if (jobGroupsTreeView.Nodes.ContainsKey(schedulerNode.Name))
{
jobGroupsTreeView.Nodes.RemoveByKey(schedulerNode.Name);
}
schedulerNode.ContextMenuStrip = ctxScheduler;
jobGroupsTreeView.Nodes.Add(schedulerNode);
TreeNode jobGroupsNode = schedulerNode.Nodes.Add("Job Groups");
var jobGroups = Scheduler.GetScheduler().GetJobGroupNames();
var jobGroups = scheduler.GetScheduler().GetJobGroupNames();
foreach (string jobGroup in jobGroups)
{
TreeNode jobGroupNode = jobGroupsNode.Nodes.Add(jobGroup);
@@ -203,6 +194,7 @@ namespace ClickForensics.Quartz.Manager
}
catch (Exception ex)
{
_Log.Error("Error loading orphan jobs.", ex);
schedulerNode.Nodes.Add(string.Format("Unable to add job {0})", jobKey.Name));
}
}
@@ -230,53 +222,35 @@ namespace ClickForensics.Quartz.Manager
}
}
}
//private void loadJobs()
//{
// foreach (TreeNode node in jobGroupsTreeView.Nodes)
// {
// addJobNodes(node);
// }
//}
private void addJobNodes(TreeNode node)
{
string group = node.Parent.Text;
var groupMatcher = GroupMatcher<JobKey>.GroupContains(group);
var jobKeys = Scheduler.GetScheduler().GetJobKeys(groupMatcher);
QuartzScheduler scheduler = getScheduler(node);
var jobKeys = scheduler.GetScheduler().GetJobKeys(groupMatcher);
foreach (var jobKey in jobKeys)
{
try
{
IJobDetail detail = Scheduler.GetScheduler().GetJobDetail(jobKey);
IJobDetail detail = scheduler.GetScheduler().GetJobDetail(jobKey);
JobNode jobNode = new JobNode(detail);
node.Nodes.Add(jobNode);
addTriggerNodes(jobNode);
addListenerNodes(jobNode);
}
catch (Exception ex)
{
node.Nodes.Add(string.Format("Unknown Job Type ({0})", jobKey.Name));
//TODO: Do something useful with this exception. Most likely cause is the client does not have a copy of a given dll and can't load the type.
_Log.Error("Error loading jobs.", ex);
}
}
}
private void addListenerNodes(JobNode node)
{
string jobName = node.Text;
string jobGroupName = node.Parent.Text;
//TODO: see joblistenermanager get listeners
//string[] listenerNames = node.Detail.JobListenerNames;
//foreach (string listener in listenerNames)
//{
// node.Text = string.Format("JL {0}", listenerNames);
//}
//ISet set = Scheduler.GetScheduler().JobListenerNames;
}
private void addTriggerNodes(TreeNode treeNode)
{
var triggers = Scheduler.GetScheduler().GetTriggersOfJob(new JobKey(treeNode.Text, treeNode.Parent.Parent.Text));
QuartzScheduler scheduler = getScheduler(treeNode);
var triggers = scheduler.GetScheduler().GetTriggersOfJob(new JobKey(treeNode.Text, treeNode.Parent.Parent.Text));
TreeNode triggersNode = treeNode.Nodes.Add("Triggers");
foreach (var trigger in triggers)
{
@@ -309,54 +283,42 @@ namespace ClickForensics.Quartz.Manager
timer_Refresh_Running_Jobs.Stop();
listView_RunningJobs.Items.Clear();
DataTable table = Scheduler.GetRunningJobs();
foreach (DataRow row in table.Rows)
foreach (var quartzScheduler in getAllSchedulers())
{
//JobName JobDuration
ListViewItem item = new ListViewItem(new string[] { Convert.ToString(row["JobName"]), Convert.ToString(row["Runtime"]) });
listView_RunningJobs.Items.Add(item);
DataTable table = quartzScheduler.GetRunningJobs();
foreach (DataRow row in table.Rows)
{
ListViewItem item =
new ListViewItem(new string[] { Convert.ToString(row["JobName"]), Convert.ToString(row["Runtime"]) });
listView_RunningJobs.Items.Add(item);
}
}
StripStatusLabel_Jobs_Refresh_date.Text = DateTime.Now.ToString("yyyy.MM.dd HH:mm.ss");
//reset the timer ( documentation not clear if .stop = restart @ 0 in timing, but changing the interval sure should do that. )
int timer_was = timer_Refresh_Running_Jobs.Interval;
timer_Refresh_Running_Jobs.Interval = timer_was + 1;
timer_Refresh_Running_Jobs.Interval = timer_was;
timer_Refresh_Running_Jobs.Start();
}
catch (Exception ex)
{
_Log.Error("Unable to load running jobs", ex);
}
finally
{
this.Cursor = Cursors.Default;
}
}
public QuartzScheduler Scheduler { get; set; }
private void addGlobalListenerToolStripMenuItem_Click(object sender, EventArgs e)
{
AddListenerForm form = new AddListenerForm();
form.ListenerInterface = typeof(IJobListener);
form.ShowDialog();
JobDataMap map = new JobDataMap();
map.Add("type", form.ListenerType);
//Scheduler.ScheduleOneTimeJob(typeof(AddJobListenerJob), map, 0);
loadJobGroups();
}
private void addJobListenerToolStripMenuItem_Click(object sender, EventArgs e)
private List<QuartzScheduler> getAllSchedulers()
{
TreeNode selectedNode = jobGroupsTreeView.SelectedNode;
if (selectedNode != null && selectedNode is JobNode)
List<QuartzScheduler> schedulers = new List<QuartzScheduler>();
foreach (var node in jobGroupsTreeView.Nodes)
{
AddListenerForm form = new AddListenerForm();
form.ListenerInterface = typeof(IJobListener);
form.ShowDialog();
//JobHistoryListener listener = new JobHistoryListener();
//listener.Name = null;
//((JobNode)selectedNode).Detail.AddJobListener();
schedulers.Add(((SchedulerNode)node).Scheduler);
}
return schedulers;
}
private void addJobToolStripMenuItem_Click(object sender, EventArgs e)
@@ -365,11 +327,18 @@ namespace ClickForensics.Quartz.Manager
form.ShowDialog();
if (form.JobDetail != null && form.Trigger != null)
{
Scheduler.GetScheduler().ScheduleJob(form.JobDetail, form.Trigger);
loadJobGroups();
QuartzScheduler scheduler = getSelectedScheduler();
scheduler.GetScheduler().ScheduleJob(form.JobDetail, form.Trigger);
loadJobGroups(scheduler);
}
}
private QuartzScheduler getSelectedScheduler()
{
TreeNode node = jobGroupsTreeView.SelectedNode;
return getScheduler(node);
}
private void btnRefreshRunningJobs_Click(object sender, EventArgs e)
{
updateRunningJobs();
@@ -377,13 +346,18 @@ namespace ClickForensics.Quartz.Manager
private void btnRefreshJobGroups_Click(object sender, EventArgs e)
{
loadJobGroups();
List<QuartzScheduler> schedulers = getAllSchedulers();
foreach (var quartzScheduler in schedulers)
{
loadJobGroups(quartzScheduler);
}
}
private void btnRunJobNow_Click(object sender, EventArgs e)
{
JobNode node = (JobNode)jobGroupsTreeView.SelectedNode;
Scheduler.GetScheduler().TriggerJob(node.Detail.Key);
QuartzScheduler scheduler = getScheduler(node);
scheduler.GetScheduler().TriggerJob(node.Detail.Key);
}
private void btnDeleteJob_Click(object sender, EventArgs e)
@@ -392,41 +366,52 @@ namespace ClickForensics.Quartz.Manager
if (selectedNode is JobNode)
{
JobNode node = (JobNode)jobGroupsTreeView.SelectedNode;
Scheduler.GetScheduler().DeleteJob(node.Detail.Key);
QuartzScheduler scheduler = getScheduler(selectedNode);
scheduler.GetScheduler().DeleteJob(node.Detail.Key);
jobGroupsTreeView.SelectedNode.Remove();
}
if (selectedNode is TriggerNode)
{
Scheduler.GetScheduler().UnscheduleJob(((TriggerNode)selectedNode).Trigger.Key);
QuartzScheduler scheduler = getScheduler(selectedNode);
scheduler.GetScheduler().UnscheduleJob(((TriggerNode)selectedNode).Trigger.Key);
}
//loadJobGroups();
}
private void btnPause_Click(object sender, EventArgs e)
{
TriggerNode node = (TriggerNode)jobGroupsTreeView.SelectedNode;
if (Scheduler.GetScheduler().GetTriggerState(node.Trigger.Key) == TriggerState.Paused)
QuartzScheduler scheduler = getScheduler(node);
if (scheduler.GetScheduler().GetTriggerState(node.Trigger.Key) == TriggerState.Paused)
{
Scheduler.GetScheduler().ResumeTrigger(node.Trigger.Key);
scheduler.GetScheduler().ResumeTrigger(node.Trigger.Key);
}
else
{
Scheduler.GetScheduler().PauseTrigger(node.Trigger.Key);
scheduler.GetScheduler().PauseTrigger(node.Trigger.Key);
}
setPauseButtonText();
}
private QuartzScheduler getScheduler(TreeNode node)
{
if (node is SchedulerNode)
{
return ((SchedulerNode)node).Scheduler;
}
return getScheduler(node.Parent);
}
private void btnEdit_Click(object sender, EventArgs e)
{
TriggerNode node = (TriggerNode)jobGroupsTreeView.SelectedNode;
QuartzScheduler scheduler = getScheduler(node);
AddJobForm form = new AddJobForm(node);
form.ShowDialog();
if (form.JobDetail != null && form.Trigger != null)
{
Scheduler.GetScheduler().RescheduleJob(node.Trigger.Key, form.Trigger);
loadJobGroups();
scheduler.GetScheduler().RescheduleJob(node.Trigger.Key, form.Trigger);
loadJobGroups(scheduler);
}
}
@@ -462,6 +447,7 @@ namespace ClickForensics.Quartz.Manager
form.Close();
}
}
private static readonly ILog _Log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
}
}

+ 4
- 0
ClickForensics.Quartz.Manager/packages.config View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="log4net" version="1.2.10" />
</packages>

BIN
packages/log4net.1.2.10/lib/1.0/log4net.dll View File


+ 28655
- 0
packages/log4net.1.2.10/lib/1.0/log4net.xml
File diff suppressed because it is too large
View File


BIN
packages/log4net.1.2.10/lib/1.1/log4net.dll View File


+ 28655
- 0
packages/log4net.1.2.10/lib/1.1/log4net.xml
File diff suppressed because it is too large
View File


BIN
packages/log4net.1.2.10/lib/2.0/log4net.dll View File


+ 28655
- 0
packages/log4net.1.2.10/lib/2.0/log4net.xml
File diff suppressed because it is too large
View File


BIN
packages/log4net.1.2.10/log4net.1.2.10.nupkg View File


+ 4
- 0
packages/repositories.config View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<repositories>
<repository path="..\ClickForensics.Quartz.Manager\packages.config" />
</repositories>

Loading…
Cancel
Save