Archive for August 2011

Maintain your daily Logs with Notepad

Do you wish to keep notes where the notes keep the date automatically? Well here is an awesome trick for you. All you need is notepad.

1) Open a blank notepad file.
2) Type .LOG in all caps at the top and hit enter.
3) Now save the file.
4) After closing the file, reopen it and notice that the date & time is now listed on the second line.
5) Also notice that the cursor is ready for you to start typing on the very next line.
6) Now every time you open it, type something on the next line and then save it, when you reopen it, it will have automatically saved the date and time on the last line.

It keeps a running record of date and time for each save. Now you have a cheap diary! Congrats!

Wednesday, August 31, 2011
Posted by Munish Gogna

Sphinx Search Code is available for download...

Hi Today I got an email from roger.xia from China regarding the Sphinx search article i posted few months back, he requested the source code so I uploaded the same on dzone, Any one who is interested in trying Sphinx free text search code can download it from dzone site.


Hi , Munish Gogna

I come from china , and i read your article about Sphinx, it was very useful for me, but i can't find the sample source code, can you send me a copy of the sample complete source code to me?
thank u very much !

best wishes.

Monday, August 22, 2011
Posted by Munish Gogna

Task Scheduling in JBoss Server ...

First thing I would like to admit is - Sorry for being away for so long !!!
Next let's quickly move to second thing which is the topic of today's very simple post - scheduling jobs in JBoss :)

In many projects there is a requirement for cron-like task scheduling, be it for batch processing, automatic system maintenance or some other regular job. Few days back I had to create a cron job to sync data from external source to the local database. I was having so many options to implement the functionality like:
  • java.util.Timer
  • EJB Timers
  • Unix Cron jobs
  • Quartz Scheduler
  • Custom Timer
But in the end I settled for a very simple solution (in terms of time it took to implement the whole stuff) that is as effective as anything mentioned above.

The good thing is, this Scheduler directly invokes a callback on an instance of a user defined class, or an operation of a user specified MBean. Let's say we want to print 'Hello World!' (our so called task) after every 30 seconds from the the time of deployment.
package com.gognamunish.test;
import org.jboss.varia.scheduler.Schedulable;
* Implement Schedulable interface and override perform() function. 
* @author Munish Gogna
public class HelloWorld implements Schedulable
    public void perform( Date now, long remainingRepetitions ) {
        System.out.println("Hello World");
Next just copy the following mbean definition in /deploy/scheduler-service.xml file of the Jboss profile.


Once the deployment is done, this task will be called after every 30 seconds, so easy and simple right? We can also pass input parameters to our target class using 'SchedulableArguments' attribute, just make sure you define the right constructor in the class that implements Schedulable interface. e.g If we want to pass the location and environment of the server, we have to add following lines to the mbean definition:

HelloWorld class now has to define a constructor as follow:
public HelloWorld (String location, String environment){

Note: This example has dependency on scheduler-plugin.jar which can be obtained from /common/lib folder of $JBOSS_HOME (it is sad that it's not available in maven or jboss repository)

Give it a Try !!!!
Sunday, August 7, 2011
Posted by Munish Gogna

Popular Post


enums (1) java (2) JAX-RS (1) JPA (1) mysql (1) request 2 (1) RESTful (1) sphinx (1) tomcat (1) web service (2) ws (2)