Until the documentation is ready have a look at these configuration files,
they'll help you get started.

// The Blossom Team

On Wed, May 12, 2010 at 8:26 PM, Tobias Mattsson <[email protected]>wrote:

> We are pleased to announce the availability of Blossom 1.0
>
> Compared to previous versions Blossom now goes all-in to give you the full
> flexibility that Spring Framework can give you. Through a small set of
> annotations you can expose Spring Web MVC controllers as templates and
> paragraphs. Combined with the ability to create dialogs in code there's no
> more need to spend time adding configuration in the repository. We think
> we've reached our goal of zero configuration. Using code to create dialogs
> also adds a few novel features, such as adding options to a dialog at
> runtime, for instance by calling a backend webservice to discover the valid
> options, and to write custom dialog validation for user input.
>
> Another important new feature in 1.0 is that view rendering is performed by
> the magnolia rendering pipeline. This is important because it will give you
> all the nice to haves that Magnolia gives you, for instance in freemarker
> templates.
>
> Blossom is hosted on SourceForge, go there to download it
> https://sourceforge.net/projects/magnoliablossom/
>
> The documentation can be found in the Magnolia WIKI, go there for usage
> instructions
> http://wiki.magnolia-cms.com/display/WIKI/Magnolia+Blossom
>
> In the coming days we'll update the WIKI page for the new version.
>
> See below for instructions on updating from 0.5
>
> If you have any suggestions or if you've found a bug you're welcome to file
> a feature/support/bug request at SourceForge.
>
> Have fun, hope you like it!
>
>
> *Usage example*
>
> This is a brief example of how it's used, these classes are automatically
> exposed to Magnolia
>
> @Controller
> @Paragraph("Text")
> public class TextParagraph {
>
>   @TabFactory("Content")
>   public void addPropertiesTab(TabBuilder tab) {
>       tab.addFckEditor("text", "Text", "").setRequired(true);
>   }
>
>   @TabFactory("Margins")
>   public void addMarginTab(TabBuilder tab) {}
>
>   @RequestMapping("/text")
>   public String handleRequest() {
>       return "text.jsp";
>   }
> }
>
> @Controller
> @Template("Main")
> public class MainTemplate {
>
>   @DialogFactory("frontpage-properties")
>   public void addDialog(DialogBuilder dialog) {
>       DialogTabBuilder tab = dialog.addTab("Properties");
>       tab.addEdit("headline", "Headline", "The text to use as a headline");
>   }
>
>   @RequestMapping("/main")
>   public String handleRequest() {
>       return "mainTemplate.ftl";
>   }
> }
>
> @DialogFactory("main-properties")
> public class MainDialogFactory {
>
>   @TabFactory("Properties")
>   public void addPropertiesTab(TabBuilder tab) {}
> }
>
>
> *Upgrading from 0.5*
>
> As of version 1.0 Blossom gives you a much bigger feature set and some of
> the functionality in the previous version has matured. Unfortunately this
> means that some changes have to be made when upgrading. But don't worry,
> your content don't have to be touched.
>
> Added features:
>
> * Support for exposing controllers as Templates
> * Support for creating all types of dialogs with code
> * Localization support for paragraphs, dialogs and templates
> * Rendering of views is performed using the magnolia render chain, supports
> both JSP and freemarker
> * Ordering of dialog tabs is customizable with @TabOrder
> * The locale used by Magnolia can be made visible to Spring using
> MagnoliaLocaleResolver
> * Magnolia's localization mechanism can be bridged into Spring using
> MagnoliaMessageSource
> * JSP tag pecid-input is now also available as pecidInput
>
> Behind the scenes:
>
> * Blossom now expose controllers are normal paragraphs instead of using a
> placeholder paragraph
>   that delegates rendering to the controller. This is a much cleaner design
> and opens for migration
>   of existing content and paragraphs into using blossom.
> * Customization of the paragraph select dialog is no longer necessary.
>
> API Changes:
>
> * Paragraphs are no longer named after the handlerPath they're mapped to.
> I.e, a controller mapped
>   to /text that was previously referred to in templates as '/text' is now
> simply 'text'. This had to
>   be done in order to support migration of existing configured paragraphs
> into blossom. Using / in a
>   paragraph name was never a good idea in the first place. You don't have
> to specify a name on your
>   paragraph, it will automatically use the handlerPath stripped from any
> slashes as it's name.
> * @ParagraphTitle is renamed to @Pargraph and moves to
> se.issi.magnolia.module.blossom.annotation
> * @ParagraphDescription moves to se.issi.magnolia.module.blossom.annotation
> * DialogTabBuilder is renamed to TabBuilder
> * DialogTabBuilder.addText changes to TabBuilder.addEdit
> * Methods in DialogTabBuilder no longer throws RepositoryException
> * Methods in DialogTabBuilder now return the control they create
> * @DialogTabFactory is renamed to @TabFactory and moves to
> se.issi.magnolia.module.blossom.annotation
> * Ordering of tabs in dialogs are now set using the @TabOrder annotation
> * <blossom:handler-mapping /> is deprecated and removed
> * <blossom:paragraph-registry /> is renamed to <blossom:configuration />
> * Extension hooks in DefaultBlossomParagraphRegistry has new arguments
> * ValidatingParagraph is removed and replaced with @DialogValidator
> * Interface DialogCreator has changed and DefaultDialogCreator changes
> accordingly.
>
> // The Blossom Team
>

----------------------------------------------------------------
For list details see
http://www.magnolia-cms.com/home/community/mailing-lists.html
To unsubscribe, E-mail to: <[email protected]>
----------------------------------------------------------------

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans";
	   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
	   xmlns:blossom="http://www.issi.se/schema/blossom";
	   xmlns:context="http://www.springframework.org/schema/context";
	   xsi:schemaLocation="
	   	http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
		http://www.issi.se/schema/blossom http://www.issi.se/schema/blossom-1.0.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd";>

	<context:annotation-config/>

	<context:component-scan base-package="se.issi.magnolia.module.blossom.sample" use-default-filters="false">
		<context:include-filter type="annotation" expression="se.issi.magnolia.module.blossom.annotation.Paragraph"/>
		<context:include-filter type="annotation" expression="se.issi.magnolia.module.blossom.annotation.Template"/>
		<context:include-filter type="annotation" expression="se.issi.magnolia.module.blossom.annotation.DialogFactory"/>
	</context:component-scan>

	<bean class="se.issi.magnolia.module.blossom.preexecution.BlossomHandlerMapping">
		<property name="targetHandlerMappings">
			<list>
				<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
					<property name="useDefaultSuffixPattern" value="false" />
				</bean>
				<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />
			</list>
		</property>
	</bean>

	<bean class="se.issi.magnolia.module.blossom.view.TemplateViewResolver">
		<property name="order" value="1" />
		<property name="prefix" value="/WEB-INF/views/templates/"/>
		<property name="viewNames" value="*.ftl"/>
		<property name="viewRenderer">
			<bean class="se.issi.magnolia.module.blossom.view.FreemarkerTemplateViewRenderer" />
		</property>
	</bean>

	<bean class="se.issi.magnolia.module.blossom.view.TemplateViewResolver">
		<property name="order" value="2" />
		<property name="prefix" value="/WEB-INF/views/templates/"/>
		<property name="viewNames" value="*.jsp"/>
		<property name="viewRenderer">
			<bean class="se.issi.magnolia.module.blossom.view.JspTemplateViewRenderer" />
		</property>
	</bean>

	<bean class="se.issi.magnolia.module.blossom.view.ParagraphViewResolver">
		<property name="prefix" value="/WEB-INF/views/paragraphs/"/>
		<property name="suffix" value=".jsp"/>
		<property name="viewRenderer">
			<bean class="se.issi.magnolia.module.blossom.view.JspParagraphViewRenderer" />
		</property>
	</bean>

</beans>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans";
	   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
	   xmlns:blossom="http://www.issi.se/schema/blossom";
	   xsi:schemaLocation="
		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
		http://www.issi.se/schema/blossom http://www.issi.se/schema/blossom-1.0.xsd";>

	<blossom:configuration />

	<bean id="messageSource" class="se.issi.magnolia.module.blossom.context.MagnoliaMessageSource" />

</beans>

Reply via email to