[Hippo-cms7-user] The HST2 tag Release-HSTTWO-v2_03_01 new features (Complete)

Ard Schrijvers a.schrijvers at onehippo.com
Wed Apr 1 13:53:39 CEST 2009

On Wed, Apr 1, 2009 at 1:20 PM, Jeroen Reijn <j.reijn at onehippo.com> wrote:
> Hi Ard,
> this looks really cool! Thanks for you hard work on this. It would be nice
> if the new artifacts could be deployed to the maven repository.

Yes, I certainly agree!! But uuhm, i think i need some help :-))

My machine did seem to have some troubles some time back with the
wagon (that is the plugin for deploying to a repo isn't?) plugin. Is
it for some linux user just an easy job or not? Though, I realize I
should be able to do so.. :-))

The 2.03.02 version will have some nice added features again, the main ones

1) Virtual hosting/domain mapping
2) Sitemap mounting / redirecting and shortlinks
3) Some enhancements to the ocm layer

And ofcourse any bug that is reported on this list :-))

So stay tuned,


> Regards,
> Jeroen
> Ard Schrijvers wrote:
>> I was not yet finished, see below the complete mail :-))
>> Hello,
>> besides numerous small fixes in the trunk, there have been added some
>> nice features to the Hst2 trunk, which I will tag within an hour,
>> becoming the Release-HSTTWO-v2_03_01 tag.  The coming week we will
>> implement in the trunk  virtual hosting (domain mapping) support
>> through the HST2 framework, after which I think we have all big parts
>> in place to build sites incredibly fast. Currently we have a mock
>> implementation for virtual hosting, so if you have a single site (no
>> subsites), I think the coming tag Release-HSTTWO-v2_03_01  has pretty
>> much everything in place for you. Below an update of added features
>> compared to the latest tag [1]
>> 1)  SiteMenu support from within the framework:
>> You can configure you own SiteMenu in the configuration, below
>> hst:sitemenus node. You can add multiple sitemenu's below this node. A
>> sitemenu node contains a tree of sitemenu items, for example:
>> hst:sitemenus
>>  `main
>>      |-home [home]
>>      `-news  [news]
>>           |-inland [news/inland]
>>           `-abroad [news/abroad]
>> Each sitemenu item *has to* have a property 'hst:referencesitemapitem'
>> pointing to some sitemap item (which is after the name in the [] ),
>> which is used for resolving the url. This hst:referencesitemapitem can
>> point to a sitemap item having a path with wildcards. For example, the
>> above sitemenu could very well work, for the sitemap tree below:
>> hst:sitemap
>>  |-home
>>  `-news
>>      ` *
>>         `**
>> where the sitemenu items inland and abroad would map to /news/*.
>> If now the url would be something like:
>> /news/inland/2009/09/NewsArt
>> then, in every component, you can ask for the SiteMenus object on the
>> HstRequestContext. If you then ask for menu "main", you will get the
>> SiteMenu main, and have item news and inland in the state expanded.
>> This is in short the SiteMenu, a good example will follow on short
>> notice
>> 2) Stateless form handling support: Some short time ago, people asked
>> about how form handling and alike can be handled best within the HST2.
>> A submitted form is always handled by some components doAction. After
>> the action, always a redirect will take place to the current url
>> (unless you do your own redirect). Now, typically, when a form did not
>> validate, you want to render the filled in fields again. A bad option
>> would be to store this in a http session in the action phase, because
>> you will loose your statelessness, ending up in mod_cache proxy kind
>> of difficulties and sticky sessions in a clustered environment (or
>> some advanced terracotta kind of clustered environment).
>> If you stick to the practices in the BaseFormHstComponent added to the
>> framework client, you will have stateless form handling, and no
>> problems with mod_cache or in clustered environments. Everything is
>> handled stateless. You can even restart the application (or one of the
>> apps in a cluster) while the user will not loose anything.
>> The application/site has a simple contact form example in the java
>> class Contact.java and the contact.jsp.
>> This example even allows you to navigate back to previously submitted
>> forms, even after restarting the application. Obviously, the backing
>> persistency layer is the repository, which is blistering fast for
>> these simple CRUD operation. Note that there is no such thing as
>> session management through the repository, nor will we add it. It is
>> based on redirecting after the doAction with a uuid, which is unique
>> (hence the expression uuid, duhh :-)) ), ensuring your page never
>> being loaded by mod_cache
>> 3) Component parameter inheritance:
>> Any parameters available on parent components, are also available in
>> descendants. Each child has access to all its ancestor parameters +
>> its own. If there is a name collision, ancestor parameters have
>> precedence. So if I am rendering an Archive, which has its own
>> parameter in the configuration pageSize=10, but there is an ancestor
>> with pageSize=3, then Archive will have pageSize = 3.
>> 4)  Some facility methods:
>> - like for HippoStdNode + subclasses you can test whether the object
>> reflects the same physical node as another object through:
>> ${document.equalComparator[anotherDoc]}. This is easy when for example
>> you have a leftmenu which is a search, where the item that is
>> currently displayed in the content has to be highlighted.
>> - For searching, you can create a Filter based on fully qualified
>> classname (as string) with
>> public HippoStdFilter createFilter(String fullQName) throws
>> FilterException
>> this is nice if you want the filter to be created from a repository
>> configured search.
>> - The HstBaseComponent has added :  public void
>> sendRedirect(HstRequest request, HstResponse response, String
>> redirectToSiteMapItemId), if in a doAction you want to redirect to a
>> sitemap item.
>> Obviously, many extra conveniences are added, but the 3 above I think
>> are handy to know about.
>> I guess this mail is already a bit long, although I only touched the
>> very basics of the added features. We'll try to set up some nice
>> examples in short notice.
>> Regards Ard and feedback is more then welcome (of course you may thank
>> the team for the wonderful power tool the HST2 IMO is, but wishes,
>> shortcomings, questions, are also really welcome, as well are
>> bugs...(if there are any :-)  )
>> [1]
>> https://svn.hippocms.org/repos/hippo/ecm/site-toolkit/tags/Release-HSTTWO-v2_03_00
>> _______________________________________________
>> Hippo-cms7-user mailing list and forums
>> http://www.onehippo.org/cms7/support/community.html
> _______________________________________________
> Hippo-cms7-user mailing list and forums
> http://www.onehippo.org/cms7/support/community.html

More information about the Hippo-cms7-user mailing list