Author: echatellier Date: 2013-08-21 21:36:05 +0200 (Wed, 21 Aug 2013) New Revision: 2922 Url: http://chorem.org/projects/jtimer/repository/revisions/2922 Log: Begin rest service layer Added: branches/ng-jtimer/jtimer-server/src/main/java/org/chorem/jtimer/web/TaskResource.java branches/ng-jtimer/jtimer-server/src/main/java/org/chorem/jtimer/web/TasksResource.java branches/ng-jtimer/jtimer-server/src/main/java/org/chorem/jtimer/web/TimeResource.java Removed: branches/ng-jtimer/jtimer-server/src/main/java/org/chorem/jtimer/web/ProjectsResource.java Modified: branches/ng-jtimer/jtimer-server/src/main/java/org/chorem/jtimer/entities/TimerTask.java branches/ng-jtimer/jtimer-server/src/main/java/org/chorem/jtimer/storage/Storage.java branches/ng-jtimer/jtimer-server/src/main/java/org/chorem/jtimer/web/RestApplication.java Modified: branches/ng-jtimer/jtimer-server/src/main/java/org/chorem/jtimer/entities/TimerTask.java =================================================================== --- branches/ng-jtimer/jtimer-server/src/main/java/org/chorem/jtimer/entities/TimerTask.java 2013-08-21 19:35:21 UTC (rev 2921) +++ branches/ng-jtimer/jtimer-server/src/main/java/org/chorem/jtimer/entities/TimerTask.java 2013-08-21 19:36:05 UTC (rev 2922) @@ -26,11 +26,7 @@ package org.chorem.jtimer.entities; import java.io.Serializable; -import java.util.ArrayList; import java.util.Date; -import java.util.List; -import java.util.SortedMap; -import java.util.TreeMap; /** * Represents a task. @@ -62,29 +58,9 @@ protected boolean closed; /** - * Map calendar of day -> time (ms). (ordered on keys) - */ - protected SortedMap<Date, Long> allDaysTimes; - - /** - * Map date -> annotation text. - */ - protected SortedMap<Date, String> allDaysAnnotations; - - /** - * Sub tasks. - */ - protected List<TimerTask> subTasks; - - /** * Constructor. */ public TimerTask() { - //allDaysTimes = new DailySortedMap<Long>(); - // les annoation sont à la seconde pres - allDaysAnnotations = new TreeMap<Date, String>(); - subTasks = new ArrayList<TimerTask>(); - // wrong value to detect bug number = -1; } @@ -178,111 +154,4 @@ public void setClosed(boolean closed) { this.closed = closed; } - - /** - * Get task's subtasks. - * - * @return the subTasks - */ - public List<TimerTask> getSubTasks() { - return subTasks; - } - - /** - * Add task's subtask. - * - * Also add parent reference. - * - * @param t the task to add - * @return success flag - */ - public boolean addTask(TimerTask t) { - boolean result = subTasks.add(t); - return result; - } - - /** - * Add time. - * - * @param date date - * @param time time in ms - */ - public void setTime(Date date, Long time) { - allDaysTimes.put(date, time); - } - - /** - * Get time at date. - * - * @param date date - * @return time at specified date in ms - */ - public long getTime(Date date) { - long result = 0; - - Long t = allDaysTimes.get(date); - if (t != null) { - result = t.longValue(); - } - - return result; - } - - /** - * Return all data. Sorted on date. - * - * @return total duration of all projects - */ - public SortedMap<Date, Long> getAllDaysAndTimes() { - return allDaysTimes; - } - - /** - * Add annotation. - * - * @param date date - * @param note note text - */ - public void addAnnotation(Date date, String note) { - allDaysAnnotations.put(date, note); - } - - /** - * Return all annotation, sorted on date. - * - * @return annotations - */ - public SortedMap<Date, String> getAllDaysAnnotations() { - return allDaysAnnotations; - } - - /* - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return name + subTasks.toString(); - } - - /* - * @see java.lang.Object#hashCode() - */ - @Override - public int hashCode() { - int result = (int)(number % 31); - return result; - } - - /* - * @see java.lang.Object#equals(java.lang.Object) - */ - @Override - public boolean equals(Object o) { - - if (!(o instanceof TimerTask)) { - return false; - } - - return number == ((TimerTask)o).getNumber(); - } } \ No newline at end of file Modified: branches/ng-jtimer/jtimer-server/src/main/java/org/chorem/jtimer/storage/Storage.java =================================================================== --- branches/ng-jtimer/jtimer-server/src/main/java/org/chorem/jtimer/storage/Storage.java 2013-08-21 19:35:21 UTC (rev 2921) +++ branches/ng-jtimer/jtimer-server/src/main/java/org/chorem/jtimer/storage/Storage.java 2013-08-21 19:36:05 UTC (rev 2922) @@ -9,8 +9,6 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; -import java.util.Map; -import java.util.SortedMap; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -57,13 +55,6 @@ } catch (SQLException ex) { throw new StorageException("Can't open database", ex); } - - if (getProjectsCount() == 0) { - addProject(new TimerProject("Test1")); - addProject(new TimerProject("Test2")); - addProject(new TimerProject("Test3")); - addProject(new TimerProject("Test4")); - } } @Override @@ -389,7 +380,7 @@ } } - protected void saveTaskTimes(TimerTask task) throws SQLException { + /*protected void saveTaskTimes(TimerTask task) throws SQLException { // delete all PreparedStatement statement = null; @@ -418,7 +409,7 @@ } finally { closeStatement(statement); } - } + }*/ public void deleteProject(TimerProject project) { deleteTask(project); @@ -442,12 +433,12 @@ } - public void setTaskTime(TimerTask task, Date date, Long time) { + /*public void setTaskTime(TimerTask task, Date date, Long time) { try { saveTaskTimes(task); } catch (SQLException ex) { throw new StorageException("Can't set task time", ex); } - } + }*/ } \ No newline at end of file Deleted: branches/ng-jtimer/jtimer-server/src/main/java/org/chorem/jtimer/web/ProjectsResource.java =================================================================== --- branches/ng-jtimer/jtimer-server/src/main/java/org/chorem/jtimer/web/ProjectsResource.java 2013-08-21 19:35:21 UTC (rev 2921) +++ branches/ng-jtimer/jtimer-server/src/main/java/org/chorem/jtimer/web/ProjectsResource.java 2013-08-21 19:36:05 UTC (rev 2922) @@ -1,32 +0,0 @@ -package org.chorem.jtimer.web; - -import org.chorem.jtimer.entities.TimerProject; -import org.chorem.jtimer.storage.Storage; -import org.restlet.ext.jackson.JacksonRepresentation; -import org.restlet.representation.Representation; -import org.restlet.resource.Get; -import org.restlet.resource.ServerResource; - -public class ProjectsResource extends ServerResource { - - protected Storage storage; - - public ProjectsResource() { - storage = new Storage(); - - if (storage.getProjectsCount() == 0) { - storage.addProject(new TimerProject("jTimer")); - storage.addProject(new TimerProject("Chorem")); - storage.addProject(new TimerProject("Wikitty")); - storage.addProject(new TimerProject("Nuiton-js")); - storage.addProject(new TimerProject("Angular")); - storage.addProject(new TimerProject("Isis-Fish")); - } - } - - @Get("json") - public Representation getProjects() { - Representation jsonRep = new JacksonRepresentation<>(storage.getProjects()); - return jsonRep; - } -} Modified: branches/ng-jtimer/jtimer-server/src/main/java/org/chorem/jtimer/web/RestApplication.java =================================================================== --- branches/ng-jtimer/jtimer-server/src/main/java/org/chorem/jtimer/web/RestApplication.java 2013-08-21 19:35:21 UTC (rev 2921) +++ branches/ng-jtimer/jtimer-server/src/main/java/org/chorem/jtimer/web/RestApplication.java 2013-08-21 19:36:05 UTC (rev 2922) @@ -12,11 +12,13 @@ @Override public synchronized Restlet createInboundRoot() { // Create a router Restlet that routes each call to a - // new instance of HelloWorldResource. + // new instance of ProjectsResource. Router router = new Router(getContext()); // Defines only one route - router.attach("/projects", ProjectsResource.class); + router.attach("/tasks", TasksResource.class); + router.attach("/task/{task}", TaskResource.class); + router.attach("/task/{task}/time", TimeResource.class); return router; } Added: branches/ng-jtimer/jtimer-server/src/main/java/org/chorem/jtimer/web/TaskResource.java =================================================================== --- branches/ng-jtimer/jtimer-server/src/main/java/org/chorem/jtimer/web/TaskResource.java (rev 0) +++ branches/ng-jtimer/jtimer-server/src/main/java/org/chorem/jtimer/web/TaskResource.java 2013-08-21 19:36:05 UTC (rev 2922) @@ -0,0 +1,21 @@ +package org.chorem.jtimer.web; + +import org.restlet.data.MediaType; +import org.restlet.representation.Representation; +import org.restlet.representation.StringRepresentation; +import org.restlet.resource.Get; +import org.restlet.resource.ResourceException; +import org.restlet.resource.ServerResource; + +public class TaskResource extends ServerResource { + + @Override + protected void doInit() throws ResourceException { + + } + + @Get("json") + public Representation getTask() { + return new StringRepresentation("{}", MediaType.APPLICATION_JSON); + } +} Property changes on: branches/ng-jtimer/jtimer-server/src/main/java/org/chorem/jtimer/web/TaskResource.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Copied: branches/ng-jtimer/jtimer-server/src/main/java/org/chorem/jtimer/web/TasksResource.java (from rev 2917, branches/ng-jtimer/jtimer-server/src/main/java/org/chorem/jtimer/web/ProjectsResource.java) =================================================================== --- branches/ng-jtimer/jtimer-server/src/main/java/org/chorem/jtimer/web/TasksResource.java (rev 0) +++ branches/ng-jtimer/jtimer-server/src/main/java/org/chorem/jtimer/web/TasksResource.java 2013-08-21 19:36:05 UTC (rev 2922) @@ -0,0 +1,32 @@ +package org.chorem.jtimer.web; + +import org.chorem.jtimer.entities.TimerProject; +import org.chorem.jtimer.storage.Storage; +import org.restlet.ext.jackson.JacksonRepresentation; +import org.restlet.representation.Representation; +import org.restlet.resource.Get; +import org.restlet.resource.ServerResource; + +public class TasksResource extends ServerResource { + + protected Storage storage; + + public TasksResource() { + storage = new Storage(); + + if (storage.getProjectsCount() == 0) { + storage.addProject(new TimerProject("jTimer")); + storage.addProject(new TimerProject("Chorem")); + storage.addProject(new TimerProject("Wikitty")); + storage.addProject(new TimerProject("Nuiton-js")); + storage.addProject(new TimerProject("Angular")); + storage.addProject(new TimerProject("Isis-Fish")); + } + } + + @Get("json") + public Representation getTasks() { + Representation jsonRep = new JacksonRepresentation<>(storage.getProjects()); + return jsonRep; + } +} Added: branches/ng-jtimer/jtimer-server/src/main/java/org/chorem/jtimer/web/TimeResource.java =================================================================== --- branches/ng-jtimer/jtimer-server/src/main/java/org/chorem/jtimer/web/TimeResource.java (rev 0) +++ branches/ng-jtimer/jtimer-server/src/main/java/org/chorem/jtimer/web/TimeResource.java 2013-08-21 19:36:05 UTC (rev 2922) @@ -0,0 +1,7 @@ +package org.chorem.jtimer.web; + +import org.restlet.resource.ServerResource; + +public class TimeResource extends ServerResource { + +} Property changes on: branches/ng-jtimer/jtimer-server/src/main/java/org/chorem/jtimer/web/TimeResource.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native
participants (1)
-
echatellier@users.chorem.org