Sergiu Dumitriu wrote: > Vincent Massol wrote: >> Very good! :) >> >> Some small comments: >> >> * Not sure why you call the class HelloWorldContextualizer instead of >> HelloWorldVelocityContextInitializer > > That's my fault, I used this name in an example I gave Anca.
It sounded good anyway, except for the situation mentioned by Vincent, when the name is "already taken". > >> * Might be good to have a small section about the fact that components >> remove the need for static code (for the best!) since you can have a >> component with a "singleton" lifecycle. >> * "and since we don't want to add the whole core and all its >> dependencies as a dependency of a simple lightweight component, ". >> Actually the real problem is that this would create a circular >> dependency since the core uses the components. > > This is already specified a bit further down, in the "Code outside > components" section. Anyway, I added a short note here, too. > >> * "In the component world, the current request information is held in >> an execution context. This is actually more powerful than the old >> XWiki context, as it is a generic execution context, and you can >> create one anytime you want and use it anyway you want. And you don't >> have to manually pass it around with all method calls, as execution >> contexts are managed by the Execution component, which you can use >> just like any other XWiki component.". We need to specify that it's a >> ThreadLocal implementation (meaning you get a new instance of the >> Execution context per thread). This means also that it's initialized >> by default at all XWiki entry points (i.e. where threads are created: >> Servlet, Portlet, Lucene thread, Stats thread, etc). > > It's a bit too technical IMHO. But perhaps it would be good to specify > this so that people creating new thread should know to take care of the > execution context. > >> * "If you need some functionality from the old core, consider >> rewriting that part as a new component first, and then use that new >> component from your code.". I'd rather ask to discuss it on the list >> so that we find a solution collaboratively > > Done. > >> I even learnt something! Good idea with the old xwikicontext cast to a >> Map, hasn't thought of that :) > > Actually, to make this fully useful, I'd like to change all setters to > put data held in fields in the map, too. > >> Excellent work Anca. >> >> Big +1 to link it from our dev practices document. >> >> Thanks >> -Vincent >> >> On Sep 29, 2008, at 8:33 PM, Anca Paula Luca wrote: >> >>> Hi devs, >>> >>> while developing my XWiki watch component, I've written a quick >>> start tutorial >>> on XWiki components, which I would like to add in the dedicated >>> section on >>> platform.xwiki.org. >>> >>> It is currently in draft version at >>> http://dev.xwiki.org/xwiki/bin/view/Drafts/CreatingComponents . >>> Please give it a >>> critical look and signal any errors that might have slipped or send >>> improvement >>> suggestions. >>> >>> Here's my +1 for taking it out of draft version, WDYT? >>> >>> Happy coding, >>> Anca Luca >>> _______________________________________________ >>> devs mailing list >>> [email protected] >>> http://lists.xwiki.org/mailman/listinfo/devs >> _______________________________________________ >> devs mailing list >> [email protected] >> http://lists.xwiki.org/mailman/listinfo/devs >> > > _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

