Jun Yang wrote:
BaTien,
Here is the email that we sent earlier. Please read the document Jetspeed Cornerstone Sample Code in particular. Let me know if you have any questions.
Thanks. I looked at cornerstone-demo. Here are my first impressions:
The cornerstone concept is very interesting, especially with its 4 dimensions of customizations: components, component relationships, control flows of components, and persistence of the customizations. It seems to me the framework will be much more useful with these additions:
1) Except of the bootstrap properties file, components (service) initialization centralized in 1 place using XML and Digester will make the naming much easier to follow and manage. The services not initialized via XML name-value settings can then proprammatically registered with empty context as demonstrated. The effort in this area is munimum but the benefit is significant. Many apache projects use Digester: Struts, Tiles, HiveMind.
In terms of "one place", Cornerstone already has all configuration in one place, the registry. It's just registry entries are in separate files. We tried to avoid having a single file on purpose so that adding or replacing something is just a matter of copying some files and removing something just a matter of deleting some files (vs. having to unserialize a file, modify and serialize it back (what if somebody else is holding onto a copy of the unserialized form of that file?)). I find difficult, for example, having to find the right place to insert/modify/delete in server.xml or web.xml. This is exactly what we tried to avoid.
Also, the registry implemented with properties files can support this: a whole "plane" of registry can be taken out for example when we delete the directory for that plane under registry. More concretely, the out-of-box registry plane is 100. So we have directory registry/100 under which is all configuraiton. Vendor 1 adds some customizations on top of that by adding a plane 150. So we have directory "100" and "150" under "registry" with everything in 150 overriding 100. Vendor 2 adds plane "170". So plane "170" overrides "150" which overrides "100". As a customer, you can easily take out vendor 1 or vendor 2's customizations by deleting directory "150" or "170".
However, it doesn't mean properties files are the only form of registry Cornerstone will ever see. It's just one of the possible implementations (albeit a simple yet powerful one). Anybody can add an implementation using XML or database (in the plans). This is the flexibility built into the core of Cornerstone. But it's the capabilities above that we want to retain.
2) Two things will make the framework instantly shine are best-of-breed CacheService and SpoolService besides the full working of the 4 dimensions of customization. I saw the tutorial of CacheService in developmnet cookbook but missing in the current cvs.
The Cisco production version of Cornerstone has both caching and pooling. They are not included in the Jetspeed version because they both have some dependencies on some internally developed components. Adding them back is very easy especially given the internal caching mechanism is just a layer on top of JCS Caching. For pooling, we can use one of the many available.
Hope Jun will have time to make cornerstone framework a real cornerstone of portal services.
Yes, we want to make Jetspeed shine with Cornerstone. Within Cisco, the buzz is getting around. We have some concrete projects that are using or going to use Cornerstone (remember one is in production already :)). On the other hand, as many have pointed out, Cornerstone is not a portal only framework. It can be used in any application that needs mass customization (well practically every single one does :))..
We are very excited at seeing so much positive feedback on this mailing list. Thank you all! Please contribute your great ideas so that we push it forward together!
Best Regards BaTien DBGROUPS
Jun
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
