Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

To keep it simple, in our developpement we created two separate projects (we mean Eclipse/Maven projects) : One project for the client part where you will find al the GWT source code and one project for the backend part where stands the Sakai's tool code.

Thus, the developer can code and debug all in Java by working depending to his needs in the backend project or in the client project.

OpenSyllabus backend is organized as a classical Sakai's tool following a File Structure based on classic Sakai's tool directories, such as : API (interfaces), Impl (implementations) and Tool (webapp) directory. In the Tool directory, there are RPCServlets and RPCInterfaces for Remote Procedure Call exchanges in the src/Java folder. In addition, the Tool directory contains the Index.jsp and something new : the compiled GWT content (all the generated GWT stuff : pure JavaScript and HTML)in the src/webapp folder.

Code Structure

Frontend project

Backend project

GWT code

Sakai's tool code

client

API dir

public

Impl dir

shared

Tool dir

...

-

Java

webap

-

RPCServlets & RPCInterfaces

index.jsp + JS code & HTML

Development Cycle

Thus, the developer can code and debug all in Java by working depending to his needs in the backend project or in the client project.

Since the server is not available, in the client project you have to plan to write into your code mockups of server. For instance, you can simulate the server by using static fake data code.

We've found 3 possible use cases:

  • Use case A - client update only

When the developer has made a client code update only. In this use case, you have to invoke the javascript compilation then move the compiled javascript to the backend code. Also if your backend code is already deployed in Tomcat, just replace the javascript code by the new one.

  • Use case B - backend update only

You only have to invoke Sakai Application Compilation and deployment with maven.

  • Use case C - full compilation

The full compilation process is necessary when for example you change the interfaces of the RemoteProcedureCall.

Note

To save time, use hosted mode as much as possible for client code developments, because,it is faster than a GWT compilation.

Image Added