I added the following comment to this proposal.

I feel this is reinventing a poor man's version of the Spring BeanFactory ( http://www.springframework.org/docs/api/org/springframework/beans/factory/BeanFactory.html )
piece by piece. Why not use it?

This is ok as a temporary hack but please don't extend it into a pattern. I'd propose we replace the static configuration with a
Spring BeanFactory-based config.

--a.

----- Original Message ----- From: "Allen Gilliland" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Monday, October 16, 2006 10:19 PM
Subject: Re: Proposal_ImproveDatabaseConfig




Dave wrote:
On 10/16/06, Allen Gilliland <[EMAIL PROTECTED]> wrote:
I think there's 2 items mixed together here.  You are basically talking
about doing 2 things ...

For #1 I think what you have is fine, but I would ask if there is any
reason why we shouldn't just setup Roller to always define the
connection parameters via the roller config?  As I think about it more
it seems almost more complicated to have people configure their database
via a jndi datasource in their container when we could easily have them
put that same data in the roller config file, which they are supposed to
be modifying anyways.  Seems like that would make the installation
process a lot easier as well as accomplish this goal.

I agree. Configuration consolidation is a good thing.

How do people feel about making this change for 3.1?

Instead of instructing folks to setup the database configuration in
their app server config (roller.xml on Tomcat for example), we would
tell them to create a roller-custom.properties tile and define these
parameters:

  jdbc.driverClass=
  jdbc.connectionURL=
  jdbc.username=
  jdbc.password=

We'd also allow the option of using a JNDI datasource.

  jdbc.jndiDataSource=

I am not against this for 3.1 because I think it's a relatively small change, but we should probably think a little bit more about exactly what we want to support. Obviously using the first section of jdbc.* properties is pretty easy, but it then completely bypasses any option of using a connection pool which in my mind makes it's usefulness a bit limited. Many users may not know the difference, but maybe we should try and guide them?

If we want to we could include our own database pooling library, like c3p0, and manage the pool ourselves. It's probably even possible to set it up so that the properties jdbc.* allow the pool to be completely defined by the user, basically the same way resource-ref works in the web.xml. Then the user could even pick their own pooling software if they really wanted to.

Anyways, the main point is that it probably makes sense to think more about how this could work. Also, if we are doing this for the db connection, maybe we should do the same for the mail session?

-- Allen



For #2 I think it looks good as well, I would just drop it in the
business.runnable package.  The one thing I would consider changing is
instead of forcing people to use a taskrunner.properties file just to
set 2 properties, why not get them as cmd line arguments?  or possibly
jvm arguments?  i.e.

java -cp roller-planet.jar TaskRunner <task-class> <roller.dir> [jars.dir]

java -Droller.webapp.dir=<path> -Droller.jars.dir=<path> -cp
roller-planet.jar TaskRunner <task-class>

In my mind either of those options seems a little more straight forward
than doing the taskrunner.properties file.

Yep. I like the second option.

- Dave




Dave wrote:
> To make it easier to configure standalone tasks for the Planet Roller
> webapp, I've implemented some improvements in the way that the
> database connection is configured. I'd like to move that code into
> Roller proper so we can simplify the rollertask.sh script and setup.
>
> Here's the proposal:
>
http://rollerweblogger.org/wiki/Wiki.jsp?page=Proposal_ImproveDatabaseConfig
>
>
> And if you take a look at the TaskRunner and
> PlanetHibernatePersistenceStrategy (under sandbox/planetroller), you
> can see the code that does the work.
>
> - Dave



Reply via email to