Author: echatellier Date: 2013-07-19 16:40:13 +0200 (Fri, 19 Jul 2013) New Revision: 2907 Url: http://chorem.org/projects/jtimer/repository/revisions/2907 Log: Add rest controller using webmotion Added: branches/ng-jtimer/jtimer-server/src/main/java/org/chorem/jtimer/services/ branches/ng-jtimer/jtimer-server/src/main/java/org/chorem/jtimer/web/ branches/ng-jtimer/jtimer-server/src/main/java/org/chorem/jtimer/web/RestController.java branches/ng-jtimer/jtimer-server/src/main/resources/mapping Removed: branches/ng-jtimer/jtimer-server/src/main/java/org/chorem/jtimer/ProxyService.java Modified: branches/ng-jtimer/jtimer-client/ branches/ng-jtimer/jtimer-server/pom.xml branches/ng-jtimer/jtimer-server/src/main/webapp/web/scripts/controllers.js branches/ng-jtimer/pom.xml Property changes on: branches/ng-jtimer/jtimer-client ___________________________________________________________________ Added: svn:ignore + .settings target .classpath .project Modified: branches/ng-jtimer/jtimer-server/pom.xml =================================================================== --- branches/ng-jtimer/jtimer-server/pom.xml 2013-07-19 14:01:18 UTC (rev 2906) +++ branches/ng-jtimer/jtimer-server/pom.xml 2013-07-19 14:40:13 UTC (rev 2907) @@ -27,21 +27,13 @@ <version>2.2.4</version> </dependency> <dependency> - <groupId>org.apache.geronimo.specs</groupId> - <artifactId>geronimo-servlet_3.0_spec</artifactId> + <groupId>org.debux.webmotion</groupId> + <artifactId>webmotion</artifactId> + <version>2.4-SNAPSHOT</version> </dependency> </dependencies> <build> - <resources> - <resource> - <directory>src/main/webapp</directory> - <includes> - <include>web/*.html</include> - </includes> - </resource> - </resources> - <plugins> <plugin> <groupId>org.eclipse.jetty</groupId> Deleted: branches/ng-jtimer/jtimer-server/src/main/java/org/chorem/jtimer/ProxyService.java =================================================================== --- branches/ng-jtimer/jtimer-server/src/main/java/org/chorem/jtimer/ProxyService.java 2013-07-19 14:01:18 UTC (rev 2906) +++ branches/ng-jtimer/jtimer-server/src/main/java/org/chorem/jtimer/ProxyService.java 2013-07-19 14:40:13 UTC (rev 2907) @@ -1,85 +0,0 @@ -package org.chorem.jtimer; - -import java.io.IOException; -import java.lang.reflect.Method; - -import javax.servlet.ServletException; -import javax.servlet.ServletOutputStream; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.chorem.jtimer.storage.Storage; - -import com.google.gson.Gson; - -public class ProxyService extends HttpServlet { - - /** serialVersionUID. */ - private static final long serialVersionUID = -5180281013629027617L; - - protected Storage storage; - - protected Gson gson; - - public ProxyService() { - storage = new Storage(); - gson = new Gson(); - } - - @Override - protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { - callMethod("get", req, resp); - } - - @Override - protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { - callMethod("get", req, resp); - } - - @Override - protected void doPut(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { - callMethod("get", req, resp); - } - - @Override - protected void doDelete(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { - callMethod("get", req, resp); - } - - protected void callMethod(String prefix, HttpServletRequest req, HttpServletResponse resp) throws IOException { - - String contextPath = req.getContextPath(); - String requestUri = req.getRequestURI(); - - String query = requestUri; - System.out.println("requestUri = " + requestUri); - if (query.startsWith("/rest/")) { - query = query.substring("/rest/".length()); - } - - String methodName = prefix + Character.toTitleCase(query.charAt(0)) + query.substring(1); - System.out.println("Callling method " + methodName); - Method[] methods = Storage.class.getMethods(); - Method method = null; - for (Method m : methods) { - if (m.getName().equalsIgnoreCase(methodName)) { - method = m; - } - } - - if (method == null) { - resp.sendError(HttpServletResponse.SC_NOT_FOUND); - } else { - try { - Object result = method.invoke(storage); - String json = gson.toJson(result); - resp.setContentType("application/json"); - ServletOutputStream out = resp.getOutputStream(); - out.print(json); - } catch (Exception e) { - e.printStackTrace(); - } - } - } -} Added: branches/ng-jtimer/jtimer-server/src/main/java/org/chorem/jtimer/web/RestController.java =================================================================== --- branches/ng-jtimer/jtimer-server/src/main/java/org/chorem/jtimer/web/RestController.java (rev 0) +++ branches/ng-jtimer/jtimer-server/src/main/java/org/chorem/jtimer/web/RestController.java 2013-07-19 14:40:13 UTC (rev 2907) @@ -0,0 +1,27 @@ +package org.chorem.jtimer.web; + +import java.util.ArrayList; +import java.util.List; + +import org.chorem.jtimer.entities.TimerProject; +import org.debux.webmotion.server.WebMotionController; +import org.debux.webmotion.server.render.Render; + +public class RestController extends WebMotionController { + + protected List<TimerProject> projects; + + public RestController() { + projects = new ArrayList<>(); + projects.add(new TimerProject("jTimer")); + projects.add(new TimerProject("Chorem")); + projects.add(new TimerProject("Wikitty")); + projects.add(new TimerProject("Nuiton-js")); + projects.add(new TimerProject("Angular")); + projects.add(new TimerProject("Isis-Fish")); + } + + public Render getProjects() { + return renderJSON(projects); + } +} Property changes on: branches/ng-jtimer/jtimer-server/src/main/java/org/chorem/jtimer/web/RestController.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/ng-jtimer/jtimer-server/src/main/resources/mapping =================================================================== --- branches/ng-jtimer/jtimer-server/src/main/resources/mapping (rev 0) +++ branches/ng-jtimer/jtimer-server/src/main/resources/mapping 2013-07-19 14:40:13 UTC (rev 2907) @@ -0,0 +1,5 @@ +[config] +package.base=org.chorem.jtimer.web + +[actions] +GET /rest/projects RestController.getProjects Modified: branches/ng-jtimer/jtimer-server/src/main/webapp/web/scripts/controllers.js =================================================================== --- branches/ng-jtimer/jtimer-server/src/main/webapp/web/scripts/controllers.js 2013-07-19 14:01:18 UTC (rev 2906) +++ branches/ng-jtimer/jtimer-server/src/main/webapp/web/scripts/controllers.js 2013-07-19 14:40:13 UTC (rev 2907) @@ -2,7 +2,7 @@ function JTimerController($scope, $http, $timeout) { $scope.projects; - $http.post("http://localhost:8888/rest/projects"). + $http.get("/rest/projects"). success(function(data, status, headers, config) { $scope.projects = data; }); Modified: branches/ng-jtimer/pom.xml =================================================================== --- branches/ng-jtimer/pom.xml 2013-07-19 14:01:18 UTC (rev 2906) +++ branches/ng-jtimer/pom.xml 2013-07-19 14:40:13 UTC (rev 2907) @@ -120,4 +120,11 @@ </dependency> </dependencies> </dependencyManagement> + + <repositories> + <repository> + <id>sonatype</id> + <url>https://oss.sonatype.org/content/groups/public/</url> + </repository> + </repositories> </project>