<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Spicefactory &#8211; Part 1: Spice IT up, with Parsley, Cinnamon and Pimento</title>
	<atom:link href="http://blog.xebia.com/2008/12/08/spicefactory-part-1-spice-it-up-with-parsley-cinnamon-and-pimento/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.xebia.com/2008/12/08/spicefactory-part-1-spice-it-up-with-parsley-cinnamon-and-pimento/</link>
	<description>Software development done right!</description>
	<lastBuildDate>Wed, 08 Feb 2012 14:41:38 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: Jeremy Flowers</title>
		<link>http://blog.xebia.com/2008/12/08/spicefactory-part-1-spice-it-up-with-parsley-cinnamon-and-pimento/#comment-94217</link>
		<dc:creator>Jeremy Flowers</dc:creator>
		<pubDate>Sat, 27 Feb 2010 21:01:47 +0000</pubDate>
		<guid isPermaLink="false">http://blog.xebia.com/?p=836#comment-94217</guid>
		<description>One thing I couldn&#039;t ascertain when I read the Pimento + Cinnamon docs was how you&#039;d be able to deal with things like validation - tackling the GORM constraints with a Flex front end. I think the Grails GraniteDS guys wrote their own templates and kept this stuff client-side - sounded half finished work from plug-in wiki too.
I posted a message on Jans forum...
http://www.spicefactory.org/forum/viewtopic.php?t=548</description>
		<content:encoded><![CDATA[<p>One thing I couldn&#8217;t ascertain when I read the Pimento + Cinnamon docs was how you&#8217;d be able to deal with things like validation &#8211; tackling the GORM constraints with a Flex front end. I think the Grails GraniteDS guys wrote their own templates and kept this stuff client-side &#8211; sounded half finished work from plug-in wiki too.<br />
I posted a message on Jans forum&#8230;<br />
<a href="http://www.spicefactory.org/forum/viewtopic.php?t=548" rel="nofollow">http://www.spicefactory.org/forum/viewtopic.php?t=548</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jens Halm</title>
		<link>http://blog.xebia.com/2008/12/08/spicefactory-part-1-spice-it-up-with-parsley-cinnamon-and-pimento/#comment-68517</link>
		<dc:creator>Jens Halm</dc:creator>
		<pubDate>Sat, 13 Dec 2008 16:33:34 +0000</pubDate>
		<guid isPermaLink="false">http://blog.xebia.com/?p=836#comment-68517</guid>
		<description>The interface was only a requirement because it is needed if you use Cinnamon&#039;s Java Client. It will then dynamically create the remote stub from the interface. For the server side an interface is indeed not required, as Cinnamon uses plain method invocation via reflection with its default service factories. So it was quite easy to relax that requirement, I had to change about 5 classes. As I don&#039;t know Grails I tested it with a Java Spring Bean that does not implement any interfaces. In this case Cinnamon now expects that either the annotations are on the implementation class or the exposed methods are declared in XML.

To try it out you have to build the Cinnamon jar from SVN. I also changed the XML Schema, making service-interface an optional attribute. You should now point the schemaLocation to http://www.spicefactory.org/cinnamon/schema/0.3.1/cinnamon-spring.xsd. Let me know if that works for you.

Regarding the access control: I probably should improve the docs to make it clearer. It&#039;s not our goal to include a full blown security framework. Rather we would start to integrate with existing solutions like Spring Security with upcoming releases. The global switches that were irritating for you were only introduced to offer some kind of easy base configuration. So if you know that you would not want to allow clients to freely build JPAQL queries in AS3, you could simply disallow some or all operations of the AS3 EntityManager and then use standard Spring Security Aspects on the custom services that you use to read and write these entities. 

If you DO want to use the AS3 EntityManager, you are right, you don&#039;t get much options for declarative security now and would have to write some interceptors. I&#039;ll evaluate (for Pimento 1.1) whether there is an elegant path to also integrate the AS3 EntityManager with something like Spring Security. Method level security wouldn&#039;t make sense in this case though, so I&#039;d have to look at their ACL stuff, with which I haven&#039;t worked yet.

Btw.: If you don&#039;t mind I would like to link to Part 2 of your blog post from the Pimento documentation for users who want to integrate Grails.</description>
		<content:encoded><![CDATA[<p>The interface was only a requirement because it is needed if you use Cinnamon&#8217;s Java Client. It will then dynamically create the remote stub from the interface. For the server side an interface is indeed not required, as Cinnamon uses plain method invocation via reflection with its default service factories. So it was quite easy to relax that requirement, I had to change about 5 classes. As I don&#8217;t know Grails I tested it with a Java Spring Bean that does not implement any interfaces. In this case Cinnamon now expects that either the annotations are on the implementation class or the exposed methods are declared in XML.</p>
<p>To try it out you have to build the Cinnamon jar from SVN. I also changed the XML Schema, making service-interface an optional attribute. You should now point the schemaLocation to <a href="http://www.spicefactory.org/cinnamon/schema/0.3.1/cinnamon-spring.xsd" rel="nofollow">http://www.spicefactory.org/cinnamon/schema/0.3.1/cinnamon-spring.xsd</a>. Let me know if that works for you.</p>
<p>Regarding the access control: I probably should improve the docs to make it clearer. It&#8217;s not our goal to include a full blown security framework. Rather we would start to integrate with existing solutions like Spring Security with upcoming releases. The global switches that were irritating for you were only introduced to offer some kind of easy base configuration. So if you know that you would not want to allow clients to freely build JPAQL queries in AS3, you could simply disallow some or all operations of the AS3 EntityManager and then use standard Spring Security Aspects on the custom services that you use to read and write these entities. </p>
<p>If you DO want to use the AS3 EntityManager, you are right, you don&#8217;t get much options for declarative security now and would have to write some interceptors. I&#8217;ll evaluate (for Pimento 1.1) whether there is an elegant path to also integrate the AS3 EntityManager with something like Spring Security. Method level security wouldn&#8217;t make sense in this case though, so I&#8217;d have to look at their ACL stuff, with which I haven&#8217;t worked yet.</p>
<p>Btw.: If you don&#8217;t mind I would like to link to Part 2 of your blog post from the Pimento documentation for users who want to integrate Grails.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Maarten Winkels</title>
		<link>http://blog.xebia.com/2008/12/08/spicefactory-part-1-spice-it-up-with-parsley-cinnamon-and-pimento/#comment-67933</link>
		<dc:creator>Maarten Winkels</dc:creator>
		<pubDate>Thu, 11 Dec 2008 03:29:57 +0000</pubDate>
		<guid isPermaLink="false">http://blog.xebia.com/?p=836#comment-67933</guid>
		<description>...and regarding the crude (or rather: coarse) access control: I think it is a bit coarse, since it doesn&#039;t allow for user or even role based rules. I guess this could be achieved by writing a custom interceptor though.</description>
		<content:encoded><![CDATA[<p>&#8230;and regarding the crude (or rather: coarse) access control: I think it is a bit coarse, since it doesn&#8217;t allow for user or even role based rules. I guess this could be achieved by writing a custom interceptor though.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Maarten Winkels</title>
		<link>http://blog.xebia.com/2008/12/08/spicefactory-part-1-spice-it-up-with-parsley-cinnamon-and-pimento/#comment-67932</link>
		<dc:creator>Maarten Winkels</dc:creator>
		<pubDate>Thu, 11 Dec 2008 03:25:04 +0000</pubDate>
		<guid isPermaLink="false">http://blog.xebia.com/?p=836#comment-67932</guid>
		<description>Hi Jens,

Thanks for your message.

I find the AS3 EntityManager approach very interesting. I think it will allow for very fast development, although I haven&#039;t experimented with it enough to support this claim. To make it usable in a larger project, I think a lot of logic will have to be build into interceptors to implement standard JEE features such as security or application specific features such as audit trails. The framework seems to provide these plug-in points.

If I understand it correctly, the other approach will not work for Grails services, since they don&#039;t have an interface as I explained in the blog. By quickly looking into the API documentation it seems like the SpringServiceFactory should be usable with Grails, since all Grails services are spring beans. The problem arises when creating a ServiceConfig object, which requires an interface constructor parameter and also checks that it is in fact an interface. Would it be possible to relax this requirement? I assume that the interface is used to create a proxy for the service. If so, maybe CGLib can be used to create proxies from concrete classes. This is the same approach that Spring uses.

Thanks for developing this interesting framework! I&#039;m looking forward to the 1.0 release.

Regards,

-Maarten Winkels</description>
		<content:encoded><![CDATA[<p>Hi Jens,</p>
<p>Thanks for your message.</p>
<p>I find the AS3 EntityManager approach very interesting. I think it will allow for very fast development, although I haven&#8217;t experimented with it enough to support this claim. To make it usable in a larger project, I think a lot of logic will have to be build into interceptors to implement standard JEE features such as security or application specific features such as audit trails. The framework seems to provide these plug-in points.</p>
<p>If I understand it correctly, the other approach will not work for Grails services, since they don&#8217;t have an interface as I explained in the blog. By quickly looking into the API documentation it seems like the SpringServiceFactory should be usable with Grails, since all Grails services are spring beans. The problem arises when creating a ServiceConfig object, which requires an interface constructor parameter and also checks that it is in fact an interface. Would it be possible to relax this requirement? I assume that the interface is used to create a proxy for the service. If so, maybe CGLib can be used to create proxies from concrete classes. This is the same approach that Spring uses.</p>
<p>Thanks for developing this interesting framework! I&#8217;m looking forward to the 1.0 release.</p>
<p>Regards,</p>
<p>-Maarten Winkels</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jens Halm</title>
		<link>http://blog.xebia.com/2008/12/08/spicefactory-part-1-spice-it-up-with-parsley-cinnamon-and-pimento/#comment-67500</link>
		<dc:creator>Jens Halm</dc:creator>
		<pubDate>Tue, 09 Dec 2008 09:42:00 +0000</pubDate>
		<guid isPermaLink="false">http://blog.xebia.com/?p=836#comment-67500</guid>
		<description>Hi Maarten,

as the Spicefactory lead developer I&#039;d like to comment on some of the issues you mentioned.

Regarding Pimento: Yes, the approach that you describe has pros and cons. That&#039;s the reason why Pimento actually supports two programming models, as described in the manual here: 
http://www.spicefactory.org/pimento/docs/1.0/manual/?page=programming&amp;section=intro
There may be use cases where using the AS3 EntityMangager might not be the best approach, for security reasons for example. In this case you can use the other programming model based on custom services and still benefit from some of Pimento&#039;s data management features (like the client cache or sending only change sets when updating entities for example). 

The existence of this second programming model is also the reason for the access control. Not sure why you find that crude, but the idea was, that you simply disallow queries on certain types of entities if you want to make sure that they can only be loaded through one of your custom services.

As for exposing Grails services for Cinnamon: It probably requires a custom ServiceFactory implementation. If you are interested in making this work, I&#039;d be happy to assist. I&#039;d need your help though as I don&#039;t know Grails (yet).</description>
		<content:encoded><![CDATA[<p>Hi Maarten,</p>
<p>as the Spicefactory lead developer I&#8217;d like to comment on some of the issues you mentioned.</p>
<p>Regarding Pimento: Yes, the approach that you describe has pros and cons. That&#8217;s the reason why Pimento actually supports two programming models, as described in the manual here:<br />
<a href="http://www.spicefactory.org/pimento/docs/1.0/manual/?page=programming&#038;section=intro" rel="nofollow">http://www.spicefactory.org/pimento/docs/1.0/manual/?page=programming&#038;section=intro</a><br />
There may be use cases where using the AS3 EntityMangager might not be the best approach, for security reasons for example. In this case you can use the other programming model based on custom services and still benefit from some of Pimento&#8217;s data management features (like the client cache or sending only change sets when updating entities for example). </p>
<p>The existence of this second programming model is also the reason for the access control. Not sure why you find that crude, but the idea was, that you simply disallow queries on certain types of entities if you want to make sure that they can only be loaded through one of your custom services.</p>
<p>As for exposing Grails services for Cinnamon: It probably requires a custom ServiceFactory implementation. If you are interested in making this work, I&#8217;d be happy to assist. I&#8217;d need your help though as I don&#8217;t know Grails (yet).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Shrikant Vashishtha</title>
		<link>http://blog.xebia.com/2008/12/08/spicefactory-part-1-spice-it-up-with-parsley-cinnamon-and-pimento/#comment-67470</link>
		<dc:creator>Shrikant Vashishtha</dc:creator>
		<pubDate>Tue, 09 Dec 2008 07:12:18 +0000</pubDate>
		<guid isPermaLink="false">http://blog.xebia.com/?p=836#comment-67470</guid>
		<description>Hi Maarten,

Did you get a chance to look at prana framework which provides Spring like IOC implementation?

It works well with Cairngorm and removes some of its problems (singleton, writing front-controllers and other dependencies related problems) To me it looks similar to Parsley.</description>
		<content:encoded><![CDATA[<p>Hi Maarten,</p>
<p>Did you get a chance to look at prana framework which provides Spring like IOC implementation?</p>
<p>It works well with Cairngorm and removes some of its problems (singleton, writing front-controllers and other dependencies related problems) To me it looks similar to Parsley.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
<!-- This Quick Cache file was built for (  blog.xebia.com/2008/12/08/spicefactory-part-1-spice-it-up-with-parsley-cinnamon-and-pimento/feed/ ) in 0.49743 seconds, on Feb 9th, 2012 at 9:57 pm UTC. -->
<!-- This Quick Cache file will automatically expire ( and be re-built automatically ) on Feb 9th, 2012 at 10:57 pm UTC -->
