David M Johnson wrote:


On Mar 1, 2006, at 3:26 AM, Sean Gilligan wrote:

I'm still trying to learn how the current Roller works before  seriously
proposing anything.  Further, I think that any serious changes that I
would propose are much more than I'd be able to make as a "Proposal with commitment". So the following stuff is just a handful of ideas. Some of the changes are indirectly related (like virtual hostnames) but I think they are relevant in the general context of site/template authoring.

Some broad goals (that could be implemented over time) would include:

A) Support virtual hostnames for weblogs, of either of two forms:
     i) yourhost.yourdomain.tld (any arbitrary domain)
    ii) yourhost.rollerdomain.tld  (similar to how Blogger works
             with yourblog.blogspot.com)


I believe Javalobby wants that one too.


B) New URLs for blogs pages with backward compatible support for old urls.
     i) Blog pages  could be at http://virtualdomain/path or
http://non-virtualdomain/handle/path rather than
http://domain/servlet-name/handle/path
    ii) Permalinks would not use ?entry=pemalink_name, but something
like /YYMM/permlink_name.html


Good stuff. I think everybody agrees that we need better URLs in Roller.


C) Support pluggable view layers in Page views, Feed views, etc. so view
technologies other than Velocity could be used.


I've never been very excited about supporting different view technologies because of the support and maintenance implications. So much of the Roller display logic is in those VelociMacros and that would have to be duplicated for each view technology.

But I would like to see Roller become more modular and pluggable. For example, moving app logic out of the Struts actions so that it's possible to replace the Struts/JSP UI with something else. I guess "pluggable view layers" is a similar concept; you want to be able to replace the Velocity based rendering engine with something else.


Dave makes an excellent point here. I completely agree that we do not want to be in the business of managing multiple templating language libraries.

I still agree with Sean that I have been somewhat disappointed with what Velocity supports, but maybe we can try and make positive contributions to Velocity rather than replacing it.



D) I'd love to see a template language like that from Blogger or Movable

    Type.
  http://help.blogger.com/bin/answer.py?answer=753&topic=39
http://www.sixapart.com/movabletype/docs/3.2/ a_template_tag_reference/
I'm a Velocity hacker myself, but I want users to be able to easily
modify/write templates themselves.


I don't see how those are easier than Velocity.


E) Create a blog template "View" component that could be re-used by
other Java-based blogs (such as Blojsom or Pebble) -- it could help
create critical mass for a larger library of templates.


Possibly, but those three systems have different object models and features. Seems highly unlikely that we'd be able to agree on a common object model, template languages, etc.


F) A template language compatible with Blogger or MovableType.
(Wordpress is popular and has a huge template library but IIRC it uses php in its templates.)


I like the compatible with Blojsom and Pebble idea better than this one.


G) A conversion tool to allow people to convert templates from other
systems.


Definitely a good idea.


OK, now for some concrete, implementation-level things we could do:

1) Convert all VelocityServlet-derived classes to be SpringMVC controllers. The basic SpringMVC Controller is about as simple and lightweight as VelocityServlet but allows for easier URL path map configuration and pluggable view implementations. Using SpringMVC would have two benefits: i) make supporting alternate URLs for content easier and ii) open the door to templates that don't use Velocity.

I've had good experiences with SpringMVC and would be willing to contribute to this development. I'm not ready to commit to a schedule yet. There may be alternatives to SpringMVC that are equivalent/better, but SpringMVC has worked well for me.


I'd like to keep the rendering engine part of Roller simple and with minimal dependencies, i.e. just Servlets and Velocity. I don't see why we need to pull in another MVC framework to do that. We already have a giant learning curve for new developers with all the frameworks and dependencies we have.

So, I guess I agree with your goals but not with the idea of bringing in SpringMVC.


I am also in strong agreement with Dave here. I am not in the mood to start introducing new libraries and frameworks just because they sound cool. There is nothing actually broken with the way our presentation layer is setup right now, so I don't see a big reason to change it.

However, I am willing to look into ways that SpringMVC could help with improving our urls and if I think the SpringMVC solution is compelling enough then I would be willing to start using it.

-- Allen


- Dave





Reply via email to