May 02

IntelliJ IDEA 5.0: Web Productivity

IDE, Java, JavaScript, Tech 7 Comments »

It was good to hear that IntelliJ IDEA 5.0 is coming soon.

I am excited about some of the features like native SVN support etc, but to be honest what I really am into, is the JavaScript support.

At the moment, Visual Studio (Whidbey) has an awesome HTML/JavaScript story. You can select what browsers/standards you want to target and completion filters to the features supported by your set.

Now I won’t have to leave the world of IDEA to get my JavaScript support!

May 02

Using AOP to manage multiple products from one base

AOP, Java, Tech 2 Comments »

A group of people were talking at No Fluff Just Stuff, and Richard Monson-Haefel brought up using AOP to manage multiple products from one code base.

It can actually make a lot of sense. Imagine having a software product that has:

  • Express: A bunch of enterprise features are disabled
  • Standard: fully featured, but none of the hard core enterprise features
  • Enterprise: Enhanced enterprise features

Then there could be trail editions of the various products.

30 day aspect

To handle a trial period, an aspect could be woven into the code to handle all of the crippling.

For example, WebLogic used to let a few IP addresses to hit the server only. An aspect could track the incoming IPs and block after the allowed number come in (of course, some people just put WLS behind a proxy to trick it! Lots of 127.0.0.1 comes in ;).

This could be reused among all editions of the product.

Throttling aspect

Let’s say the Express edition only allows X concurrent uses of feature Y. A simple set of aspects could throttle the features.

Additional behaviour

Additional enhanced behaviour could get weaved into the core.

IBM Cloudscape vs. Apache Derby

There are rumours that IBM uses this technique already. With this, they can add in the enhanced transaction support and other features that make Cloudscape from Derby.