Gigaspace API design – the GigaSpace write method

Now don’t get me wrong, I like gigaspaces and I am not into bashing someones API for the sake of it.  Take a look at the GigaSpace interface documented in javadoc: http://www.gigaspaces.com/docs/JavaDoc7.1/org/openspaces/core/GigaSpace.html Its time the API was cleaned up.  Take the write method for instance:

<T> LeaseContext<T> write(T entry,
                          long lease,
                          long timeout,
                          int modifiers)
                      throws DataAccessException

These are the things I dislike about it:
Continue reading

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)

TimeUnit use it more of the Time please!

Time for my first blog of the year. Yea! Mind you its a bit small, but then perhaps that is a good thing.

Look at these two setters. Setter methods like the first example are very common. Take a look at the second its so much better. With the second the responsibility to convert is neatly delegated to another class instead of forcing the user of the api to work it out. In addition the programmer can supply hours, minutes or any other that TimeUnit supports.

public void setDuration(long durationInMs) {
    this.duration = durationInMs;
}

public void setDuration(long duration, TimeUnit timeUnit) {
    this.duration = timeUnit.toMillis(duration);
}

TimeUnit was brought to you by: java.util.concurrent.TimeUnit! Its handy, so use it! ;-)

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)

Untangling a Gigaspace Pojo

I am going to build myself another example application.  I find these very handy for exploring ideas.  If you already have a project with hibernate, spring, gigaspaces and such setup, your much more likely to try a few ideas out, and then blog them.  So for a while this blog might be more quiet than usual.  I think I may use Roo to do it.  Roo looks like a great platform for quickly building something up for an experiment.  i.e You can throw together a new set of entities, and then build an example on top of them.  Before I begin, one last thing from my current experiments.

Sometimes JPA entity classes get hijacked.

Say for instance you have a need to pass entity classes to another system, via JAXB.  Its possible to use DTO objects for the transfer or you could just annotate the the entity classes.  In the example below, I wanted to fetch something from a database via JPA and write it into gigaspaces.  It soon gets messy your Entity classes start to become a hub in the middle of your application with things dipping into some of the classes and annotating them and throwing them here and there.
Continue reading

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)