Browse Source

finally have a working build that actually connects to 2.0

master
jvilalta unknown 15 years ago
parent
commit
f2d0f2eef2
7 changed files with 70 additions and 70 deletions
  1. +22
    -20
      ClickForensics.Quartz.Manager/AddJobForm.cs
  2. +3
    -2
      ClickForensics.Quartz.Manager/ClickForensics.Quartz.Manager.csproj
  3. +11
    -11
      ClickForensics.Quartz.Manager/CronTriggerDisplay.cs
  4. +18
    -24
      ClickForensics.Quartz.Manager/MainForm.cs
  5. +13
    -10
      ClickForensics.Quartz.Manager/QuartzScheduler.cs
  6. +3
    -3
      ClickForensics.Quartz.Manager/TriggerNode.cs
  7. BIN
      lib/Common.Logging.dll

+ 22
- 20
ClickForensics.Quartz.Manager/AddJobForm.cs View File

@@ -12,6 +12,7 @@ using Quartz.Impl;
using Quartz.Impl.Triggers;
using Quartz.Job;
using System.IO;
using Quartz.Util;

namespace ClickForensics.Quartz.Manager
{
@@ -67,8 +68,8 @@ namespace ClickForensics.Quartz.Manager
setTriggerType();
txtCronExpression.Text = trigger.CronExpressionString;
txtTriggerDescription.Text = trigger.Description;
txtTriggerGroup.Text = trigger.Name.Group;
txtTriggerName.Text = trigger.Name;
txtTriggerGroup.Text = trigger.Key.Group;
txtTriggerName.Text = trigger.Key.Name;
}

private void setJobData(IJobDetail detail)
@@ -109,39 +110,40 @@ namespace ClickForensics.Quartz.Manager
private void btnAdd_Click(object sender, EventArgs e)
{
JobDetail = getJobDetail();
AbstractTrigger trigger = getTrigger();
Trigger.JobGroup = JobDetail.Key.Group;
Trigger.JobName = JobDetail.Key.Name;
ITrigger trigger = getTrigger(JobDetail);
this.Close();
}

private IJobDetail getJobDetail()
{
IJobDetail detail = new IJobDetail();
detail.Description = txtJobDescription.Text;
detail.Group = txtJobGroup.Text;
detail.JobDataMap = getJobDataMap();
detail.JobType = getJobType();
detail.Name = txtJobName.Text;
IJobDetail detail = JobBuilder
.NewJob()
.OfType(getJobType())
.WithDescription(txtJobDescription.Text)
.WithIdentity(new JobKey(txtJobName.Text, txtJobGroup.Text))
.UsingJobData(getJobDataMap())
.Build();

return detail;
}

private AbstractTrigger getTrigger()
private ITrigger getTrigger(IJobDetail jobDetail)
{
AbstractTrigger trigger;
var builder =
TriggerBuilder
.Create()
.ForJob(jobDetail)
.WithDescription(txtTriggerDescription.Text)
.WithIdentity(new TriggerKey(txtTriggerName.Text, txtTriggerGroup.Text));

if (cboTriggerType.SelectedText == "Simple")
{
trigger = new SimpleTrigger();
return builder.WithSchedule(SimpleScheduleBuilder.Create()).Build();
}
else
{
trigger = new CronTrigger();
((CronTrigger)trigger).CronExpressionString = txtCronExpression.Text;
return builder.WithSchedule(CronScheduleBuilder.CronSchedule(txtCronExpression.Text)).Build();
}
trigger.Description = txtTriggerDescription.Text;
trigger.Group = txtTriggerGroup.Text;
trigger.Name = txtTriggerName.Text;
return trigger;
}

private Type getJobType()


+ 3
- 2
ClickForensics.Quartz.Manager/ClickForensics.Quartz.Manager.csproj View File

@@ -54,8 +54,9 @@
<Reference Include="Common.Logging">
<HintPath>..\lib\Common.Logging.dll</HintPath>
</Reference>
<Reference Include="Quartz">
<HintPath>..\lib\Quartz.dll</HintPath>
<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" />


+ 11
- 11
ClickForensics.Quartz.Manager/CronTriggerDisplay.cs View File

@@ -21,35 +21,35 @@ namespace ClickForensics.Quartz.Manager

void CronTriggerDisplay_Load(object sender, EventArgs e)
{
txtCronExpression.Text = _trigger.CronExpressionString;
lblDescription.Text = _trigger.Description;
lblGroup.Text = _trigger.Group;
lblName.Text = _trigger.Name;
if (_trigger.GetNextFireTimeUtc().HasValue)
txtCronExpression.Text = _Trigger.CronExpressionString;
lblDescription.Text = _Trigger.Description;
lblGroup.Text = _Trigger.Key.Group;
lblName.Text = _Trigger.Key.Name;
if (_Trigger.GetNextFireTimeUtc().HasValue)
{
lblNextFireTime.Text = _trigger.GetNextFireTimeUtc().Value.ToLocalTime().ToString();
lblNextFireTime.Text = _Trigger.GetNextFireTimeUtc().Value.ToLocalTime().ToString();
}
else
{
lblNextFireTime.Text = "Unknown";
}

if (_trigger.GetPreviousFireTimeUtc().HasValue)
if (_Trigger.GetPreviousFireTimeUtc().HasValue)
{
lblPreviousFireTime.Text = _trigger.GetPreviousFireTimeUtc().Value.ToLocalTime().ToString();
lblPreviousFireTime.Text = _Trigger.GetPreviousFireTimeUtc().Value.ToLocalTime().ToString();
}
else
{
lblPreviousFireTime.Text = "Unknown";
}
}
public CronTriggerDisplay(CronTriggerImpl trigger)
public CronTriggerDisplay(ICronTrigger trigger)
: this()
{
_trigger = trigger;
_Trigger = trigger;

}

private CronTriggerImpl _trigger;
private ICronTrigger _Trigger;
}
}

+ 18
- 24
ClickForensics.Quartz.Manager/MainForm.cs View File

@@ -12,6 +12,7 @@ using System.Net.Sockets;
//using ClickForensics.Quartz.Jobs;
using System.IO;
using Quartz.Impl;
using Quartz.Impl.Matchers;
using Quartz.Impl.Triggers;

namespace ClickForensics.Quartz.Manager
@@ -59,9 +60,9 @@ namespace ClickForensics.Quartz.Manager
{
btnPause.Enabled = true;
setPauseButtonText();
if (((TriggerNode)e.Node).Trigger is CronTrigger)
if (((TriggerNode)e.Node).Trigger is ICronTrigger)
{
pnlDetails.Controls.Add(new CronTriggerDisplay((CronTrigger)((TriggerNode)e.Node).Trigger));
pnlDetails.Controls.Add(new CronTriggerDisplay((ICronTrigger)((TriggerNode)e.Node).Trigger));
jobDetailsToggle(true);
}
btnEdit.Enabled = true;
@@ -76,9 +77,7 @@ namespace ClickForensics.Quartz.Manager
private void setPauseButtonText()
{
TriggerNode node = (TriggerNode)jobGroupsTreeView.SelectedNode;
string name = node.Trigger.Name;
string group = node.Trigger.Group;
if (Scheduler.GetScheduler().GetTriggerState(name, group) == TriggerState.Paused)
if (Scheduler.GetScheduler().GetTriggerState(node.Trigger.Key) == TriggerState.Paused)
{
btnPause.Text = "Resume";
}
@@ -135,7 +134,7 @@ namespace ClickForensics.Quartz.Manager
schedulerNode.ContextMenuStrip = ctxScheduler;
jobGroupsTreeView.Nodes.Add(schedulerNode);
TreeNode jobGroupsNode = schedulerNode.Nodes.Add("Job Groups");
string[] jobGroups = Scheduler.GetScheduler().JobGroupNames;
var jobGroups = Scheduler.GetScheduler().GetJobGroupNames();
foreach (string jobGroup in jobGroups)
{
TreeNode jobGroupNode = jobGroupsNode.Nodes.Add(jobGroup);
@@ -188,12 +187,13 @@ namespace ClickForensics.Quartz.Manager
private void addJobNodes(TreeNode node)
{
string group = node.Parent.Text;
string[] jobs = Scheduler.GetScheduler().GetJobNames(group);
foreach (string jobName in jobs)
var groupMatcher = GroupMatcher<JobKey>.GroupContains(group);
var jobKeys = Scheduler.GetScheduler().GetJobKeys(groupMatcher);
foreach (var jobKey in jobKeys)
{
try
{
IJobDetail detail = Scheduler.GetScheduler().GetJobDetail(new JobKey(jobName, group));
IJobDetail detail = Scheduler.GetScheduler().GetJobDetail(jobKey);
JobNode jobNode = new JobNode(detail);
node.Nodes.Add(jobNode);
addTriggerNodes(jobNode);
@@ -221,9 +221,9 @@ namespace ClickForensics.Quartz.Manager

private void addTriggerNodes(TreeNode treeNode)
{
AbstractTrigger[] triggers = Scheduler.GetScheduler().GetTriggersOfJob(treeNode.Text, treeNode.Parent.Parent.Text);
var triggers = Scheduler.GetScheduler().GetTriggersOfJob(new JobKey(treeNode.Text, treeNode.Parent.Parent.Text));
TreeNode triggersNode = treeNode.Nodes.Add("Triggers");
foreach (AbstractTrigger trigger in triggers)
foreach (var trigger in triggers)
{
TriggerNode node = new TriggerNode(trigger);
triggersNode.Nodes.Add(node);
@@ -313,9 +313,7 @@ namespace ClickForensics.Quartz.Manager
private void btnRunJobNow_Click(object sender, EventArgs e)
{
JobNode node = (JobNode)jobGroupsTreeView.SelectedNode;
string job = node.Detail.Name;
string group = node.Detail.Group;
Scheduler.GetScheduler().TriggerJobWithVolatileTrigger(job, group);
Scheduler.GetScheduler().TriggerJob(node.Detail.Key);
}

private void btnDeleteJob_Click(object sender, EventArgs e)
@@ -324,15 +322,13 @@ namespace ClickForensics.Quartz.Manager
if (selectedNode is JobNode)
{
JobNode node = (JobNode)jobGroupsTreeView.SelectedNode;
string job = node.Detail.Name;
string group = node.Detail.Group;
Scheduler.GetScheduler().DeleteJob(job, group);
Scheduler.GetScheduler().DeleteJob(node.Detail.Key);
jobGroupsTreeView.SelectedNode.Remove();

}
if (selectedNode is TriggerNode)
{
Scheduler.GetScheduler().UnscheduleJob(((TriggerNode)selectedNode).Trigger.Name, ((TriggerNode)selectedNode).Trigger.Group);
Scheduler.GetScheduler().UnscheduleJob(((TriggerNode)selectedNode).Trigger.Key);
}

//loadJobGroups();
@@ -341,15 +337,13 @@ namespace ClickForensics.Quartz.Manager
private void btnPause_Click(object sender, EventArgs e)
{
TriggerNode node = (TriggerNode)jobGroupsTreeView.SelectedNode;
string name = node.Trigger.Name;
string group = node.Trigger.Group;
if (Scheduler.GetScheduler().GetTriggerState(name, group) == TriggerState.Paused)
if (Scheduler.GetScheduler().GetTriggerState(node.Trigger.Key) == TriggerState.Paused)
{
Scheduler.GetScheduler().ResumeTrigger(name, group);
Scheduler.GetScheduler().ResumeTrigger(node.Trigger.Key);
}
else
{
Scheduler.GetScheduler().PauseTrigger(name, group);
Scheduler.GetScheduler().PauseTrigger(node.Trigger.Key);
}
setPauseButtonText();
}
@@ -361,7 +355,7 @@ namespace ClickForensics.Quartz.Manager
form.ShowDialog();
if (form.JobDetail != null && form.Trigger != null)
{
Scheduler.GetScheduler().RescheduleJob(node.Trigger.Name, node.Trigger.Group, form.Trigger);
Scheduler.GetScheduler().RescheduleJob(node.Trigger.Key, form.Trigger);
loadJobGroups();
}
}


+ 13
- 10
ClickForensics.Quartz.Manager/QuartzScheduler.cs View File

@@ -147,14 +147,16 @@ namespace ClickForensics.Quartz.Manager
public void BackupToFile(System.IO.FileInfo file)
{
IScheduler scheduler = GetScheduler();
string[] jobGroupNames = scheduler.JobGroupNames;
var jobGroupNames = scheduler.GetJobGroupNames();
List<IJobDetail> jobDetails = new List<IJobDetail>();
foreach (var jobGroup in jobGroupNames)
{
string[] jobNames = scheduler.GetJobNames(jobGroup);
foreach (var jobName in jobNames)
var groupMatcher = GroupMatcher<JobKey>.GroupContains(jobGroup);

var jobKeys = scheduler.GetJobKeys(groupMatcher);
foreach (var jobKey in jobKeys)
{
jobDetails.Add(scheduler.GetJobDetail(jobName, jobGroup));
jobDetails.Add(scheduler.GetJobDetail(jobKey));
}
}
writeToFile(file, jobDetails);
@@ -173,16 +175,17 @@ namespace ClickForensics.Quartz.Manager
, new XAttribute("overwrite-existing-jobs", "true")
)
);
foreach (JobDetail detail in jobDetails)
foreach (IJobDetail detail in jobDetails)
{
doc.Root.Add(
new XElement(ns + "job"
, new XElement(ns + "job-detail"
, new XElement(ns + "name", detail.Name)
, new XElement(ns + "group", detail.Group)
, new XElement(ns + "name", detail.Key.Name)
, new XElement(ns + "group", detail.Key.Group)
, new XElement(ns + "description", detail.Description)
, new XElement(ns + "job-type", detail.JobType.FullName + "," + detail.JobType.Assembly.FullName)
, new XElement(ns + "volatile", detail.Volatile)
//TODO: Apparently volatile is no longer available. Check.
//, new XElement(ns + "volatile", detail.Volatile)
, new XElement(ns + "durable", detail.Durable)
, new XElement(ns + "recover", detail.RequestsRecovery)
, getJobDataMap(ns, detail.JobDataMap)
@@ -246,8 +249,8 @@ namespace ClickForensics.Quartz.Manager
private void addCommonTriggerData(XNamespace ns, XElement rootTriggerElement, AbstractTrigger trigger)
{
rootTriggerElement.Add(
new XElement(ns + "name", trigger.Name)
, new XElement(ns + "group", trigger.Group)
new XElement(ns + "name", trigger.Key.Name)
, new XElement(ns + "group", trigger.Key.Group)
, new XElement(ns + "description", trigger.Description)
, new XElement(ns + "misfire-instruction", getMisfireInstructionText(trigger))
//, new XElement(ns + "volatile", trigger.Volatile)


+ 3
- 3
ClickForensics.Quartz.Manager/TriggerNode.cs View File

@@ -10,12 +10,12 @@ namespace ClickForensics.Quartz.Manager
{
public class TriggerNode : TreeNode
{
public TriggerNode(AbstractTrigger trigger)
public TriggerNode(ITrigger trigger)
{
Text = trigger.Name;
Text = Trigger.Key.Name;

Trigger = trigger;
}
public AbstractTrigger Trigger { get; set; }
public ITrigger Trigger { get; set; }
}
}

BIN
lib/Common.Logging.dll View File


Loading…
Cancel
Save