Sunday, February 08, 2009

Getting involved with a newish project, Brix-CMS

Continuing my interest in all things Wicket, some months before Christmas I found an open source project called Brix CMS, currently hosted on Google Code. It seemed like a more agile fit for my needs regarding content driven websites, with high value placed on componentisation. Additionally the project owners are committers for Wicket, and have put a very well organised framework together in Brix, easily extensible, and very powerful.

I have bashed some sites together using Brix already for a range of clients for my company, and have been pleasantly surprised with how I have been able to apply the framework to so many different domains.

It is early days yet, but the discussion lists are picking up a little, and the roadmap looks promising. As a tool, it certainly fits my needs so I will be following it with great interest. Documentation is sparse but improving, and much of what you need to do to extend Brix is fairly intuitive.

Leveraging Wicket and Jackrabbit seems to provide such power and flexibility, I find it hard to go back to the ways of JSF or even worse Servlets and XSLT as some of my company's projects use. Cocoon with XSLT yes, Servlets with XSLT please no... no... no.

I am having a little difficulty getting my head around integration testing with Brix, the ability to test wicket pages in isolation is something I am missing, but hopefully I will find a way.


jeremy said...

Hi Ross,

My company is looking at using Brix heavily in our latest project however as a designer I find one issue very frustrating regarding content display, or more accurately, the entry of said content by a user.

Editing a page and being forced to enter only one block of html for it is limiting. What I want is a way to add say, 4 blocks of html onto a page i.e. the template a page uses can accept multiple html blocks. I can then wrap those blocks of content with html like divs, spans, etc... within the template html.

Using existing Brix notation the example could be: <brix:content id="block1">, <brix:content id="block2">, etc...

Have you got a solution or suggestion on how such support can be achieved without heavily modifying Brix itself?? We're looking at using Tiles and a separate backend database that stores the information. We then pass each tile an id and the appropriate info is retrieved.

This will work but wondering if there is a non-development solution we haven't thought of yet ;)

Thanks for any help you can provide, even if it's and answer of, no :P


Ross McDonald said...

Hi Jeremy.

From what I can gather your requirement is it to be able to add pure html fragments to your templates / pages.

Currently as you suspect, provision is made for only one 'brix:content' instance, and I agree with this design decision.

Where you definitely do have a good point, is in your suggestion that it should be possible to add tiles where there is no need for the standard packaging of Java and HTML.

As far as I am aware, Tiles do need to be Wicket panels, but it may be worth your while posting a question on the discussion list on whether it is possible to add pure HTML fragments, or build in the capability to do so.

Sorry I cannot help further at this point. Brix is young though, and new valid ideas are likely to be implemented.


- Ross