Updated Turbine 3 to use Fulcrum Avalon Components

"Eric Pugh" <[email protected]> Fri, 12 Nov 2004 11:49:26 -0000
Newsgroups gmane.comp.jakarta.turbine.devel,gmane.mail.eyebrowse.devel
Message-ID <[email protected]>
Hi all,

I wanted to give you all a heads up before I start committing things.  I
have done some *massive* refactoring of Turbine 3 that has directly impacted
Scarab:

1) Moved the fulcrum-yaafi container into Turbine 3.  Turbine 3 now expects,
and indeed requires, Yaafi to function.
2) Moved the following services from the old Fulcrum to the new Avalon based
Fulcrum Components:
	a) Localization
	b) Pool
	c) Factory
	d) MimeType
	e) Parser
	f) Upload
This change, especially changing to the Fulcrum Parser component, led to
lots of issues with the imports throughout Scarab.  Lots of action classes
were updated to handle the new imports.
3) Removed all facade class usage.  Facade classes that don't add anything
don't help when using an IoC container.  They just make it harder to swap in
another implementation.  I've wiped them out of all the Fulcrum components,
which means a lot of updates throughout Turbine and Scarab codebase.
4) Refactored the ConfigureReport and Search actions.  They had tons of
looking up basic tools like the ScarabRequestTool or ScarabLocationTool.  I
was able to refactor that all out into a generic setup(data,context) method
called by all the doAction style methods.  I think this is a good pattern to
use on other action classes.
5) Moved remaining non Fulcrum code out of branch "PRE_AVALON_BRANCH" and
moved them directly into the jakarta-turbine-3 source tree:
	a) Security
	b) Intake
	c) Template
	d) Velocity
	e) Basic Old Fulcrum Service structure
6) Cleaned out all the moved over fulcrum code from Scarab.
7) Removed the old org.tigris.services.yaafi in favor of new
org.apache.turbine.services.yaafi


This has been about 3 days of work, including some real false starts..
However, I think this really helps get us closer to the goal of moving to
Turbine 2.4, as many of the services being used by Scarab on Turbine 3 are
shared by Turbine 2.4.  And, no longer requiring a weird branch of Fulcrum
to work with Turbine 3 makes me more confortable for testing and supporting
Scarab.

I've committed the code changes to Turbine 3.  If no one sees a reason not
to commit this code, I'd like to do it later today.

Everything *seems* to be running nicely, but we may run into issues as the
changes get more of a workout by different folks.

Eric