Versions Compared

Key

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

...

State Chart XML is very useful to handler complex status transfer logic. Commons SCXML is an implementation aimed at creating and maintaining a Java SCXML engine capable of executing a state machine defined using a SCXML document, while abstracting out the environment interfaces. Now,more and more developers use it to help handler complex program logic,but edit a State Chart XML is so boring and mistakable.If a SCXML file is really so huge and complex,it will become too difficult to maintain and refactor or to test its logic validity.For example,if a SCXML flow has more than 20 States,it is possible to form an dead loop due to developer's glitch. In fact, the archives of the Apache Commons SCXML user mailing list will show many queries asking for it over the years.Obviously, Eclipse is the most power and popular Integration Develop Environment for developers, if it supplies an editor or even debuger for State Chart XML, isn't it cool ?

In fact, an open-source Eclipse-based plugin that uses visual state chart editors and generates SCXML documents is much needed – the archives of the Apache Commons user mailing list show many queries asking for it over the years. And SCXML commiters told me it is a good topic for a open source and GSoC endeavor.

This project aims to develop an GMF based Eclipse plunge-in visual editor which is capable of showing a graphical representation of the process model and allows for adding breakpoints to activities, variable modifications and managing the debugging process for SCXML.I have already done some work on both SCXML and Eclipse GMF,even i tried to implement a SCXML editor using GMF and got a little achievement,so i want to develop this editor with GMF and have enough confidence to finish it.

Usually,State Chart XML file will be running on a SCXML engine,such as our Commons SCXML,if some one only want to achieve the SCXML file's business logic,but do not want to or can not use some SCXML engine due to some reasons(for example,some guy want to run scxml on web page,but he can not find JavaScript SCXML engine, or some guys want to use SCXML to express his logic in Java,but he does not want to import so many jars),this tool can export SCXML file's logic to executeable Java),this code generation module will leverage the Commons SCXML APIs and assume those jars are available. In my plan, i will implement Java,JavaScript,C++ ,JavaScript and python code which has the same state logic translation with the SCXML filesupport for it.

So,I want to mainly complete the following funcitons:

  1. Create a Eclipse plunge-in and GMF based Visual editor for SCXML. This editor can be used to add or edit State Chart Diagram by drap and drop operations, and user can modify State properties of SCXML in Eclipes property view.
  2. State Chart XML export function. State Chart Diagram can be saved as a SCXML file.
  3. Implement debug function for the editor. This SCXML editor will integrate Apache Commons SCXML engine to run State Chart XML file, show context attributes and variables at the breakpoints.Implement step by step,state by state debug function.
  4. State Chart XML export function. State Chart Diagram can be saved as a SCXML file.
  5. Code generation function. This is a tentative job. In I will finish Java code generation module. And in the future,this tool will can generate Java,C+,JavaScript and Python codes according to State Chart Diagram. But as we know,i have only more than two months to finish a GSoC project,so, i will hold this as a long term open source project under Apache,during this summer,if i have enough time,i will finish Java code generation job.In the short run, i will implement JavaScript,C+ and Python code generation jobs.

...

  • March 29 - April 9: Submitting the project proposal
  • April 26 - May 24:Community Bonding Period (April 26 - May 24): Get to know mentors, read documentation, and prepare development environment.
  • May 25 - Jun 8: Implement GMF based basic visual editor for State Chart XML
  • Jun 9 - Jun 16: Implement properties edit operations in Eclipse property view, finish SCXML file export function
  • Jun 17 - Jun 2124: SCXML debuger design and validate
  • Jun 22 - Jun 30: Intergate with Apache Commons SCXML engine, implement debugor function coding job
  • Jul 1 - Jul 7: Finish SCXML document export design job,including generation guidance UI design and generate system design
  • Finish SCXML document export design job,including generation guidance UI design and generate system design
  • Jun 25 - Jun 28:Finish SCXML document generation coding job
  • Jun 29 - Jul 2:SCXML debuger design and validate
  • Jul 3 - Jul 12: Intergate with Apache Commons SCXML engine, implement debugor function Jul 8 - Jul 12:Finish SCXML document generation coding job
  • Jul 13 -Jul 31: Design Java code generation module, do my best to do more coding job for Java finish Java code generation module
  • Aug 1 - Aug 9: Write test cases to test generator,fix bugs do some improvement jobs
  • Aug 10 -Aug 16: Scrub code, write tests, improve documentation, etc
  • Aug 17 - Aug 20: Submit all my work

...

My name is Xunlong Gui.My major is computer scienece and technology,and i am a postgraduate student of University of Science and Technology Beijing.I am familar with Eclipse,Java,GMF,SCXML,XML,XSL and some other open source projects,such as struts,spring,jstl,dojo and so on and have several years of Java development experience.I am familiar with many project in Apache Foundation,Eclipse Foundation as well as Dojo Foundation .

My e-mail is , and my mobile phone number is 861013488831434. When i was working in IBM China,my mentor helped me a lot and know me well, if you are interested, my mentors may give you some impersonal evaluation about my ability and others. My mentor in IBM China Research Lab: Ping Pan/Email:panping@cn.ibm.com My mentor in IBM China Develop Lab: Qian Liang/Email:liangq@cn.ibm.com

My open source development experience:

  • Built a tool for struts2 to generate XML config file
  • Develop a Eclipse plugin for Apache SCXML engine which was a visualizing tool for navigating and editing complex SCXML state description XML.

What i did in my student period

...

CategoryHomepage