20041028 Agenda

	Jim/Arthur to report on Server API meeting in Toronto
		(since Tim out)
	Naci/Chuck to report/present flexible project layout
	
	
	Jim:
	
	good meeting, appreciates complexity of the domain
	(much of the complexity hard to capture in use cases). 
	
	overall, not a lot of simplification possible. 
	
	* with the one exception of factoring out "project" 
	related things, and probably replacing with a 
	"module factory", where the project layout specific 
	code could go. (the project specific stuff is mostly 
	relevant during "publish" aspects and "project has changed" 
	aspects). 
	
	Once projects "removed" ... the "server core" and "module core" 
	should be fairly separate pieces. 
	
	This Needs a "concept document" describing domain. 
	* [task] Jim will produce a draft of the document, while
	ideas are fresh in his mind. 
	
	* Remaining (continuing) issue: They did not work on separation 
	of WST part and JST part. 
	
	Naci (and Chuck): 
	
	Naci presented the use-case/design document he has in development directory, 
	projectlayout-nmd.ppt. 
	
	Chuck will put his response to this document in development directory
	as well. (The gist of which is a certain role out of what's feasible 
	when, and some mention of successes in prototyping complex layouts using 
	linked folders/resources. (I got the impression that for main flexible 
	projects, there may be no need for improved Eclipse base support, but 
	need to confirm that with Chuch/Naci as this work progresses. 
	
	It was agreed a "concepts" document is needed here too, but 
	was decided to wait until we see Jim's draft of server part, 
	to decide how best to proceed. 
	
	
	Agenda for next week:
	
	Jim will discuss/present servers/modules concepts document. 
	