Author: qmoriceau Date: 2013-05-28 12:03:26 +0200 (Tue, 28 May 2013) New Revision: 35 Url: http://chorem.org/projects/incubator/repository/revisions/35 Log: Les objets Java sont maintenant parser en JSON pour l'envois de donn?\195?\169es Added: jtimerhtml5/src/main/java/org/chorem/jtimer/TaskExclusionStrategy.java Modified: jtimerhtml5/pom.xml jtimerhtml5/src/main/java/org/chorem/jtimer/JTimer.java jtimerhtml5/src/main/java/org/chorem/jtimer/TaskService.java Modified: jtimerhtml5/pom.xml =================================================================== --- jtimerhtml5/pom.xml 2013-05-24 15:59:41 UTC (rev 34) +++ jtimerhtml5/pom.xml 2013-05-28 10:03:26 UTC (rev 35) @@ -110,20 +110,10 @@ </dependency> <dependency> - <groupId>com.fasterxml.jackson.core</groupId> - <artifactId>jackson-core</artifactId> - <version>2.2.1</version> + <groupId>com.google.code.gson</groupId> + <artifactId>gson</artifactId> + <version>2.2.4</version> </dependency> - <dependency> - <groupId>com.fasterxml.jackson.core</groupId> - <artifactId>jackson-databind</artifactId> - <version>2.2.1</version> - </dependency> - <dependency> - <groupId>com.fasterxml.jackson.core</groupId> - <artifactId>jackson-annotations</artifactId> - <version>2.2.1</version> - </dependency> </dependencies> </project> Modified: jtimerhtml5/src/main/java/org/chorem/jtimer/JTimer.java =================================================================== --- jtimerhtml5/src/main/java/org/chorem/jtimer/JTimer.java 2013-05-24 15:59:41 UTC (rev 34) +++ jtimerhtml5/src/main/java/org/chorem/jtimer/JTimer.java 2013-05-28 10:03:26 UTC (rev 35) @@ -2,8 +2,6 @@ import org.nuiton.util.ObjectUtil; -import com.fasterxml.jackson.databind.ObjectMapper; - import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; @@ -45,6 +43,12 @@ import javafx.util.Callback; import org.chorem.jtimer.storage.Storage; +import org.chorem.jtimer.TaskExclusionStrategy; +import org.chorem.jtimer.entities.TimerTask; + +import com.google.gson.ExclusionStrategy; +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; public class JTimer extends Application { @@ -299,8 +303,9 @@ public InputStream getInputStream() throws IOException {// /!\ passe deux fois ici dans l'execution de l'évenement. InputStream is = null; String content = new String(); - ObjectMapper mapper = new ObjectMapper(); - Object result = new Object(); + Object result; + ExclusionStrategy excludeTasks = new TaskExclusionStrategy(TimerTask.class); + Gson gson = new GsonBuilder().setExclusionStrategies(excludeTasks).create(); String[] param = new String[path.length-3]; for(int i=0;i<path.length-3;i++){ @@ -309,8 +314,8 @@ List<Method> m = ObjectUtil.getMethod(TaskService.class,path[2],false); try { result = ObjectUtil.call(ts, m.get(0), param); - content = mapper.writeValueAsString(result); - System.out.println(content); + content = gson.toJson(result); + System.out.println(content); } catch (IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); Added: jtimerhtml5/src/main/java/org/chorem/jtimer/TaskExclusionStrategy.java =================================================================== --- jtimerhtml5/src/main/java/org/chorem/jtimer/TaskExclusionStrategy.java (rev 0) +++ jtimerhtml5/src/main/java/org/chorem/jtimer/TaskExclusionStrategy.java 2013-05-28 10:03:26 UTC (rev 35) @@ -0,0 +1,27 @@ +package org.chorem.jtimer; + +import com.google.gson.ExclusionStrategy; +import com.google.gson.FieldAttributes; + +public class TaskExclusionStrategy implements ExclusionStrategy { + + + private final Class<?> excludedThisClass; + + public TaskExclusionStrategy(Class<?> excludedThisClass) { + this.excludedThisClass = excludedThisClass; + } + + @Override + public boolean shouldSkipClass(Class<?> clas_s) { + // TODO Auto-generated method stub + return false; + } + + @Override + public boolean shouldSkipField(FieldAttributes fieldAttributes) { + // TODO Auto-generated method stub + return ((fieldAttributes.getDeclaringClass()==excludedThisClass && fieldAttributes.getName().equals("parent")) || (fieldAttributes.getDeclaringClass()==excludedThisClass && fieldAttributes.getName().equals("subTasks"))); + } + +} \ No newline at end of file Modified: jtimerhtml5/src/main/java/org/chorem/jtimer/TaskService.java =================================================================== --- jtimerhtml5/src/main/java/org/chorem/jtimer/TaskService.java 2013-05-24 15:59:41 UTC (rev 34) +++ jtimerhtml5/src/main/java/org/chorem/jtimer/TaskService.java 2013-05-28 10:03:26 UTC (rev 35) @@ -2,13 +2,21 @@ import java.io.UnsupportedEncodingException; import java.net.URLDecoder; +import java.util.ArrayList; +import java.util.List; +import org.chorem.jtimer.entities.TimerTask; + public class TaskService { - public String getProjects(){ - return ("{\"projects\":[{\"number\":\"1\",\"name\":\"jTimer - html5\",\"timeToday\":\"01:24:58\",\"timeTotal\":\"13:25:32\",\"tasks\":[{\"number\":\"3\",\"name\":\"Interface html\",\"timeToday\":\"01:00:02\",\"timeTotal\":\"06:54:24\",\"tasks\":[]},{\"number\":\"9\",\"name\":\"Documentation\",\"timeToday\":\"00:24:56\",\"timeTotal\":\"06:31:07\",\"tasks\":[]}]}]}"); + public List<TimerTask> getProjects(){ + List<TimerTask> listT = new ArrayList<TimerTask>(); + listT.add(new TimerTask("salut salut")); + listT.add(new TimerTask("comment va ?")); + listT.add(new TimerTask("pas très bien...")); + return (listT); } - + public void addProject(String name){ System.out.println("newProject call"); }