Posts tagged ‘Grails Plugin’

CodeEditor versioning support

When I made a CodeEditor demo to Berkay who is the director of the IFountain, he suggested me to add versioning support to CodeEditor.  At IFountain we develop integration tools for IT departments. The main tool we focused is RapidInsight. It is implemented on the top of Grails Framework with a lot of modifications. It has a lot dynamic features.  This is because of the variability of customer requirements. We are integrating with a lot of different systems and we need to create appropriate models and appropriate integration scripts for our customers. Actually, technical customers can do scripting and other integration modifications easily in RapidInsight but first they have to know Groovy little bit.

When we deployed RapidInsight to any production environment, we change the main product and modify models or some scripts according to customer needs (and of course we use CodeEditor to make these changes). However, after a short time changes applied to main product are forgotten. And if we want to rollback changes and return to any of previous point, we should remember all the changes we made. This is very error prone. If you can not remember a change, you may introduce a bug. The versioning support will help users in situations like this.

Some of the expected features of CodeEditor versioning system may be listed as:

  • Users will be able to edit the code freely, these changes will not be applied to working copy till they commit these changes.
  • When user commits the changes, they will be applied to main product
  • Multiple users will be able to edit same file at the same time. However, if any conflict occurs, it is their responsibility to resolve these conflicts
  • Users will be able to return back to any version. All of the changes applied to working copy will be rolled back.
  • Users will be able to customize versioning mechanism. A default implementation (File based or embedded versioning system) will be distributed with plugin and users will be able to customize from a file located under services directory.

All of these features, will make CodeEditor benefical for all Grails Application. I am planning to implement and release it with the next version of CodeEditor.


May 27, 2009 at 9:35 pm Leave a comment

Log management in Grails Applications (Easy log management and continuous log viewing)

To me one of the most important features of the Grails is the ability to change application behavior in the runtime (We can reload application, controller, filters, gsp files and etc). Hence to change the code, to see the log files,  to back up logs, we need direct application server access. We use telnet, a lot of ssh utilities, or if we have direct access to server machine we can use file explorer and utilities on the machine. However, if we don’t have any of these tools or if we don’t have any direct access to machine, we are stuck.

Nowadays I am really curious about whether we can manage the whole application from the web without server access to solve the above problem. To do this, I started to implement CodeEditor. It goes fine and I will ad many more features to CodeEditor. But, I also think that managing logging mechanism of application is as important as to be able to change code from the web. So, I started to implement another plug-in which is called as LogManager.

LogManager will have the following functionalities:

  1. LogManager will have a viewer which is like UNIX tail tool which continuously follows specified file and it print any characters added to to file to screen. LogManager viewer will do the same functionality for Grails application log files. Users will be able to select a log file and file content will be sent to users viewer from server-side. Log file will continuously be polled and any change in the log file will be sent to user.
  2. LogManager will be able to roll any log file at any time.
  3. LogManager will be able change a lot of logging setting (setting log levels, adding/removing log appenders, etc.)
  4. LogManager will persist all of the settings.

I already implemented and finished item 1 and 2. Soon, I will release this plug-in with these functionalities. Later, I will implement item 3 and 4.

April 8, 2009 at 10:46 am 2 comments

My Twitter