Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Issue raised: "To truly enforce the singleton pattern we should only provide private constructors and the single instance of the class should be created statically and returned via a public static method."
  • Response: Guice can call private constructors, so we full enforce the singleton model.

  • Issue raised: "I hope we won't be asking users to modify distributed code in order, for example, to add plugins or to swap a rendering model implementation."
  • Response: We won't require that. If you want to extend Roller's back-end you simply provide your own module class that injects the classes you want. You'll have to override one property in your roller-custom.properties file, but you will not have to touch a line of Roller code.

  • Issue raised: "From my perspective Spring is more mature, well-documented and tested, has a more open contribution model, and is in wider use amongst a broader community. Plus we have at least two committers that are using it in other settings."
  • Responses
    • Guice documentation is excellent and Guice is "simple and easy. It took me no time at all to figure out – no books or extra docs necessary."
    • "Guice now powers Google Adwords. You'd be hard pressed to find a more massively distributed, scalable, etc. Java app out there. So, I'm not particularly worried about Guice maturity and testing."
    • "Spring does not accept external committers and has no plans to do so," that's hardly an open contribution model.
  • Issue raised: "I hope we won't be asking users to modify distributed code in order, for example, to add plugins or to swap a rendering model implementation."
  • Response: We won't require that
    • .
    If you want to extend Roller's back-end you simply provide your own module class that injects the classes you want.

Design

List and describe new manager methods, Struts actions, JSP pages, macros, etc.

...

...

...

  • DatabaseProvider.java.

The Roller version of the database provider uses RollerConfig to configure the database.

Changes to Roller Planet

Roller Planet uses the very same setup as Roller Weblogger. As you'd expect there is a PlanetFactory and , which uses a PlanetModule . There's a PlanetDatabaseProvider that uses PlanetConfig to get database properties, etcto initialize Guice and create injected instances.

Changes to Weblogger's Planet integration

...

This is accomplished by a special Planet persistence strategy that uses RollerConfig called and is named HibernateRollerPlanetPersistenceStrategy. java. And we 'll need have a PlanetModule that specifies that strategy, which we call RollerPlanetModule.java.

...