Coming a little late to the party, but a couple of comments...

1) how about putting the factory classes in org.apache.beehive.netui.core.factory? This seems like infrastructure that could grow over time; would be nice to contain this growth in one place. :)

2) it's great to have the ability to create a Factory object in a way that doesn't require XMLBeans. In a world where a webapp's configuration lives inside of Spring or HiveMind, it seems good to keep knowledge of XMLBeans for config optional. The method:

  Factory.getFactory(ServletContext, Class, FactoryConfig)

serves this purpose well.

3) how about splitting the static getFactory(...) methods out of the abstract Factory base class and into a separate utility class? Just keeps these static factory methods (which some web-tier folks oppose) off of the Factory abstract base class. Though, the name FactoryFactory bothers me for some reason. :)

4) are Factory instances ever serialized? It seems like they could be given that they're Serializable. In the case where a Factory is serialized, is it up to a Factory client to reinit the ServletContext?




Rich Feit wrote:
For my part, that sounds like a good place!
Rich

Carlin Rogers wrote:

Yes, thanks Rich.

Also I was wondering if anyone felt strongly about where I move the Factory and FactoryConfig class. How about the
org.apache.beehive.netui.core package?

Carlin


On 6/24/05, Rich Feit <[EMAIL PROTECTED]> wrote:
I think you're right about all this -- seems like what needs to happen
is that there should be a method like this:
   public static Factory getFactory(ServletContext servletContext,
Class factoryType, FactoryConfig config)

which would be called by the current XmlBean-based getFactory().

Sound good?

Rich

Carlin Rogers wrote:

Sure, good idea. So the ServletContainerAdapter interface would
have a new method getFactory( Class factoryClass  ) where
Factory.class.isAssignableFrom( factoryClass ) must be true?

In my case, URLTemplatesFactory would need to extend Factory
and would implement the init() method where I'd use the
static method Factory.getFactory(). I noted that the Factory
class implementation takes a PageflowFactory object
(which extends an xmlbeans XmlObject) as an argument to
the static getFactory() method containing a String
for the class name of the factory... and then uses
DiscoveryUtils to get a class loader. Not sure this jibes
with what you were asking for.

For a generic Factory from the container adapter, I'm not sure
we'd always have an XmlObject to pass in. I'm now a little
confused as to how best to use the Factory class. Rich,
do you have more thoughts on this?

Thanks,
Carlin

On 6/24/05, Rich Feit <[EMAIL PROTECTED]> wrote:


Hi Carlin,

This makes sense to me.  As to getting a Factory from the
ServletContainerAdapter, would it be possible to have the method
signature take a base Class instead of String? Seems like we can avoid finding a classloader and loading the class each time, and in most cases
we'd be passing a statically-known Class.

Rich

Carlin Rogers wrote:



All,

I'm implementing a way to get a URLTemplateFactory from the
ServletContainerAdapter. However, I'm not sure a specific
method like this follows with the other methods that a
ServletContainerAdapter implementation provides.

One thought would be I'd like to have a generic way to get
a Factory from the the ServletContainerAdapter given a
class name.

We already do this using class names from the config file.
The generic Factory class is in the pageflow package.
It would be great to move this to the utils or core package
of NetUI. Then I could also add this to the ServletContainerAdapter.
I would also move the FactoryConfig class as well as we
already have other Config support in utils.

I don't think Factory or FactoryConfig are used by or
exposed to beehive users. It should be a safe move to make.

Opinions or concerns? Or other ideas for providing a generic
way to create a Factory from a container specific implementation?

Thanks,
Carlin











Reply via email to