You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@labs.apache.org by si...@apache.org on 2008/11/27 17:08:21 UTC

svn commit: r721218 - in /labs/magma/trunk/foundation-jobs: ./ src/ src/main/ src/main/java/ src/main/java/org/ src/main/java/org/apache/ src/main/java/org/apache/magma/ src/main/java/org/apache/magma/jobs/ src/main/resources/ src/test/ src/test/java/ ...

Author: simoneg
Date: Thu Nov 27 08:08:20 2008
New Revision: 721218

URL: http://svn.apache.org/viewvc?rev=721218&view=rev
Log:
LABS-242 : Basic API for long running jobs

Added:
    labs/magma/trunk/foundation-jobs/pom.xml
    labs/magma/trunk/foundation-jobs/src/
    labs/magma/trunk/foundation-jobs/src/main/
    labs/magma/trunk/foundation-jobs/src/main/java/
    labs/magma/trunk/foundation-jobs/src/main/java/org/
    labs/magma/trunk/foundation-jobs/src/main/java/org/apache/
    labs/magma/trunk/foundation-jobs/src/main/java/org/apache/magma/
    labs/magma/trunk/foundation-jobs/src/main/java/org/apache/magma/jobs/
    labs/magma/trunk/foundation-jobs/src/main/java/org/apache/magma/jobs/Every.java
    labs/magma/trunk/foundation-jobs/src/main/java/org/apache/magma/jobs/FineEvery.java
    labs/magma/trunk/foundation-jobs/src/main/java/org/apache/magma/jobs/Job.java
    labs/magma/trunk/foundation-jobs/src/main/java/org/apache/magma/jobs/JobStatus.java
    labs/magma/trunk/foundation-jobs/src/main/java/org/apache/magma/jobs/JobsAreMagmaBeans.aj
    labs/magma/trunk/foundation-jobs/src/main/java/org/apache/magma/jobs/Report.java
    labs/magma/trunk/foundation-jobs/src/main/java/org/apache/magma/jobs/Scheduler.java
    labs/magma/trunk/foundation-jobs/src/main/java/org/apache/magma/jobs/SimpleTrigger.java
    labs/magma/trunk/foundation-jobs/src/main/java/org/apache/magma/jobs/Trigger.java
    labs/magma/trunk/foundation-jobs/src/main/resources/
    labs/magma/trunk/foundation-jobs/src/test/
    labs/magma/trunk/foundation-jobs/src/test/java/
    labs/magma/trunk/foundation-jobs/src/test/resources/

Added: labs/magma/trunk/foundation-jobs/pom.xml
URL: http://svn.apache.org/viewvc/labs/magma/trunk/foundation-jobs/pom.xml?rev=721218&view=auto
==============================================================================
--- labs/magma/trunk/foundation-jobs/pom.xml (added)
+++ labs/magma/trunk/foundation-jobs/pom.xml Thu Nov 27 08:08:20 2008
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <parent>
+    <artifactId>magma-parent</artifactId>
+    <groupId>org.apache.magma</groupId>
+    <version>1</version>
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.magma</groupId>
+  <artifactId>foundation-jobs</artifactId>
+  <name>Magma Foundation Jobs</name>
+  <version>0.0.1-SNAPSHOT</version>
+  <description/>
+  <packaging>magma</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.magma</groupId>
+      <artifactId>foundation-beans</artifactId>
+      <version>0.0.1-SNAPSHOT</version>
+    </dependency>
+  </dependencies>
+</project>
\ No newline at end of file

Added: labs/magma/trunk/foundation-jobs/src/main/java/org/apache/magma/jobs/Every.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/foundation-jobs/src/main/java/org/apache/magma/jobs/Every.java?rev=721218&view=auto
==============================================================================
--- labs/magma/trunk/foundation-jobs/src/main/java/org/apache/magma/jobs/Every.java (added)
+++ labs/magma/trunk/foundation-jobs/src/main/java/org/apache/magma/jobs/Every.java Thu Nov 27 08:08:20 2008
@@ -0,0 +1,28 @@
+package org.apache.magma.jobs;
+
+public enum Every implements SimpleTrigger {
+
+	MINUTE(new FineEvery(0,1,0)),
+	TEN_MINUTES(new FineEvery(0,10,0)),
+	HALF_HOUR(new FineEvery(0,30,0)),
+	HOUR(new FineEvery(1,0,0)),
+	FOUR_HOURS(new FineEvery(4,0,0)),
+	EIGHT_HOURS(new FineEvery(8,0,0)),
+	TWICE_A_DAY(new FineEvery(12,0,0)),
+	DAY(new FineEvery(1)),
+	TWO_DAYS(new FineEvery(2)),
+	WEEK(new FineEvery(7)),
+	TWO_WEEKS(new FineEvery(14)),
+	MONTH(new FineEvery(30));
+
+	private FineEvery fine;
+	
+	private Every(FineEvery fine) {
+		this.fine = fine;
+	}
+	
+	public long getEveryMillis() {
+		return fine.getEveryMillis();
+	}
+	
+}

Added: labs/magma/trunk/foundation-jobs/src/main/java/org/apache/magma/jobs/FineEvery.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/foundation-jobs/src/main/java/org/apache/magma/jobs/FineEvery.java?rev=721218&view=auto
==============================================================================
--- labs/magma/trunk/foundation-jobs/src/main/java/org/apache/magma/jobs/FineEvery.java (added)
+++ labs/magma/trunk/foundation-jobs/src/main/java/org/apache/magma/jobs/FineEvery.java Thu Nov 27 08:08:20 2008
@@ -0,0 +1,21 @@
+package org.apache.magma.jobs;
+
+public class FineEvery implements SimpleTrigger {
+	
+	private long everyMillis = 0;
+
+	public long getEveryMillis() {
+		return everyMillis;
+	}
+	
+	public FineEvery(int hours, int minutes, int seconds) {
+		this.everyMillis = (((hours * 60) + minutes) * 60) + seconds;
+		this.everyMillis *= 1000;
+	}
+	
+	public FineEvery(int days) {
+		this.everyMillis = days * 24 * 60 * 60 * 1000;
+	}
+	
+
+}

Added: labs/magma/trunk/foundation-jobs/src/main/java/org/apache/magma/jobs/Job.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/foundation-jobs/src/main/java/org/apache/magma/jobs/Job.java?rev=721218&view=auto
==============================================================================
--- labs/magma/trunk/foundation-jobs/src/main/java/org/apache/magma/jobs/Job.java (added)
+++ labs/magma/trunk/foundation-jobs/src/main/java/org/apache/magma/jobs/Job.java Thu Nov 27 08:08:20 2008
@@ -0,0 +1,7 @@
+package org.apache.magma.jobs;
+
+import org.apache.magma.beans.MagmaBeanSupport;
+
+public interface Job extends Runnable {
+
+}

Added: labs/magma/trunk/foundation-jobs/src/main/java/org/apache/magma/jobs/JobStatus.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/foundation-jobs/src/main/java/org/apache/magma/jobs/JobStatus.java?rev=721218&view=auto
==============================================================================
--- labs/magma/trunk/foundation-jobs/src/main/java/org/apache/magma/jobs/JobStatus.java (added)
+++ labs/magma/trunk/foundation-jobs/src/main/java/org/apache/magma/jobs/JobStatus.java Thu Nov 27 08:08:20 2008
@@ -0,0 +1,18 @@
+package org.apache.magma.jobs;
+
+import java.util.Date;
+import java.util.Map;
+
+public interface JobStatus {
+
+	public int getId();
+	public Trigger getTrigger();
+	public Class<? extends Job> getJobClass();
+	public Job createInstance();
+	public Report getReport();
+	public boolean isRunning();
+	public Date getLastRun();
+	public String getName();
+	
+	
+}

Added: labs/magma/trunk/foundation-jobs/src/main/java/org/apache/magma/jobs/JobsAreMagmaBeans.aj
URL: http://svn.apache.org/viewvc/labs/magma/trunk/foundation-jobs/src/main/java/org/apache/magma/jobs/JobsAreMagmaBeans.aj?rev=721218&view=auto
==============================================================================
--- labs/magma/trunk/foundation-jobs/src/main/java/org/apache/magma/jobs/JobsAreMagmaBeans.aj (added)
+++ labs/magma/trunk/foundation-jobs/src/main/java/org/apache/magma/jobs/JobsAreMagmaBeans.aj Thu Nov 27 08:08:20 2008
@@ -0,0 +1,10 @@
+package org.apache.magma.jobs;
+
+import org.apache.magma.beans.MagmaBeanSupport;
+
+public aspect JobsAreMagmaBeans {
+
+	
+	declare parents: Job+ implements MagmaBeanSupport;
+	
+}

Added: labs/magma/trunk/foundation-jobs/src/main/java/org/apache/magma/jobs/Report.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/foundation-jobs/src/main/java/org/apache/magma/jobs/Report.java?rev=721218&view=auto
==============================================================================
--- labs/magma/trunk/foundation-jobs/src/main/java/org/apache/magma/jobs/Report.java (added)
+++ labs/magma/trunk/foundation-jobs/src/main/java/org/apache/magma/jobs/Report.java Thu Nov 27 08:08:20 2008
@@ -0,0 +1,65 @@
+package org.apache.magma.jobs;
+
+public class Report {
+
+	private String state = null;
+	private int total = 0;
+	private int done = 0;
+	private boolean running = false;
+	private Throwable error = null;
+	
+	public void started() {
+		this.running = true;
+	}
+	
+	public void finished() {
+		this.running = false;
+	}
+	
+	public void error(Throwable t) {
+		this.error = t;
+	}
+	
+	public void step() {
+		done++;
+	}
+
+	public String getState() {
+		return state;
+	}
+
+	public void setState(String state) {
+		this.state = state;
+	}
+
+	public int getTotal() {
+		return total;
+	}
+
+	public void setTotal(int total) {
+		this.total = total;
+	}
+
+	public int getDone() {
+		return done;
+	}
+	
+	public double getPercentDone() {
+		return ((double)this.done / (double)this.total) * 100d;
+	}
+	
+	public boolean isInError() {
+		return this.error != null;
+	}
+
+	public boolean isRunning() {
+		return running;
+	}
+
+	public Throwable getError() {
+		return error;
+	}
+	
+
+
+}

Added: labs/magma/trunk/foundation-jobs/src/main/java/org/apache/magma/jobs/Scheduler.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/foundation-jobs/src/main/java/org/apache/magma/jobs/Scheduler.java?rev=721218&view=auto
==============================================================================
--- labs/magma/trunk/foundation-jobs/src/main/java/org/apache/magma/jobs/Scheduler.java (added)
+++ labs/magma/trunk/foundation-jobs/src/main/java/org/apache/magma/jobs/Scheduler.java Thu Nov 27 08:08:20 2008
@@ -0,0 +1,17 @@
+package org.apache.magma.jobs;
+
+import java.util.List;
+
+public class Scheduler {
+
+	public void schedule(String name, Job job, Trigger trigger) {}
+	
+	public JobStatus run(String name, Job job) { return null; }
+	
+	public List<JobStatus> getRunning() { return null; }
+	public List<JobStatus> getScheduled() { return null; }
+	public List<JobStatus> getFinished() { return null; }
+	
+	public JobStatus getStatus(int id) { return null; }
+	
+}

Added: labs/magma/trunk/foundation-jobs/src/main/java/org/apache/magma/jobs/SimpleTrigger.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/foundation-jobs/src/main/java/org/apache/magma/jobs/SimpleTrigger.java?rev=721218&view=auto
==============================================================================
--- labs/magma/trunk/foundation-jobs/src/main/java/org/apache/magma/jobs/SimpleTrigger.java (added)
+++ labs/magma/trunk/foundation-jobs/src/main/java/org/apache/magma/jobs/SimpleTrigger.java Thu Nov 27 08:08:20 2008
@@ -0,0 +1,7 @@
+package org.apache.magma.jobs;
+
+public interface SimpleTrigger extends Trigger {
+
+	public long getEveryMillis();
+	
+}

Added: labs/magma/trunk/foundation-jobs/src/main/java/org/apache/magma/jobs/Trigger.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/foundation-jobs/src/main/java/org/apache/magma/jobs/Trigger.java?rev=721218&view=auto
==============================================================================
--- labs/magma/trunk/foundation-jobs/src/main/java/org/apache/magma/jobs/Trigger.java (added)
+++ labs/magma/trunk/foundation-jobs/src/main/java/org/apache/magma/jobs/Trigger.java Thu Nov 27 08:08:20 2008
@@ -0,0 +1,5 @@
+package org.apache.magma.jobs;
+
+public interface Trigger {
+
+}



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org