Big hacking weekend. Spent most of Saturday and Sunday working on OpenPrivacy... in one way or another.
Java is in need of a better component management framework. It is basically Component Oriented Programming so it is similar to XPCOM, COM, EJB, Avalon, etc. There are some Zen like differences that you only start to realize when you do a lot of Java stuff.
The system would be very thin and portable to any framework (Servlet, EJB, etc).
I came up with a basic set of initial requirements. Just soemthing I threw together.
- Talon should be able to use its own Components without causing holes in the system?????
- Cross platform, cross project, cross licensing
- Dual licensed BSD Style/GPL
- Thin factory/component mechanism for managing components.
- Question... what do I do about the interface??
- Initializes itself on request. Basically just a snap-in library that any application can use.
- Throw Exceptions if the object is not available
- Method to deliver properties to a component.
- XML component/object deployment mechanism.
- Serve up Component objects
- getInstance() releaseInstance( Component comp )
- If the object is a Singleton releaseInstance is redundant. It is necessary if it is a pool
- Support the ability to obtain an object by a Handle... Example... files, URLs, etc.
- Ship with some basic interfaces.
- Logger (Singleton) - BasicTextLogger - Log4JavaLoggerImpl
- PropertyManager - Implementations: - PropertyFileManager... properties backed by a file.
// get the number of objects available for use. - getFreeInstanceCount()
// total number of objects being used elsewhere... - getUsedInstanceCount()
// get the maximum number of objects to serve. - getMaxInstanceCount()
- Need to have a ComponentHandle object so that we have tight bindings between properties and handles.
- ComponentNotAvailableException if the Factory can not serve this.
Also spent more time thinking about how we are going to handle input into a Reputation Server... asumming it is a black box. Advogato of course is one of the examples. It would be a Reputation Calculation Engine and its integration within the system would be provided by Sierra.
Sierra is coming along nicely. Hopefully we will be able to officially announce something soon.
Also spent a few hours moving Arrowhead over into the Sourceforge CVS. Ant Unit Tests are now in Sierra and everything is running nice. Still have a lot of features I want to move over from Jetspeed though.... but no time.