<?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: Hibernate for CF (and a new TransactionAdvice)</title>
	<atom:link href="http://www.barneyb.com/barneyblog/2008/08/19/hibernate-for-cf/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.barneyb.com/barneyblog/2008/08/19/hibernate-for-cf/</link>
	<description>Thoughts, rants, and even some code from the mind of Barney Boisvert.</description>
	<lastBuildDate>Thu, 11 Sep 2014 09:58:12 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Sean Corfield</title>
		<link>https://www.barneyb.com/barneyblog/2008/08/19/hibernate-for-cf/comment-page-1/#comment-117243</link>
		<dc:creator>Sean Corfield</dc:creator>
		<pubDate>Wed, 20 Aug 2008 22:59:38 +0000</pubDate>
		<guid isPermaLink="false">http://www.barneyb.com/barneyblog/?p=477#comment-117243</guid>
		<description>My team are mostly CFers from the ground up with some folks having more Java experience than others and some folks having more Flex experience than others. So far, everyone is liking their exposure to Groovy and building the entire backend for some AIR applications in Groovy and Java, leveraging Spring and Hibernate, is proving to be a fun and interesting experiment that will guide our technical decisions moving forward.</description>
		<content:encoded><![CDATA[<p>My team are mostly CFers from the ground up with some folks having more Java experience than others and some folks having more Flex experience than others. So far, everyone is liking their exposure to Groovy and building the entire backend for some AIR applications in Groovy and Java, leveraging Spring and Hibernate, is proving to be a fun and interesting experiment that will guide our technical decisions moving forward.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: barneyb</title>
		<link>https://www.barneyb.com/barneyblog/2008/08/19/hibernate-for-cf/comment-page-1/#comment-117134</link>
		<dc:creator>barneyb</dc:creator>
		<pubDate>Wed, 20 Aug 2008 16:18:23 +0000</pubDate>
		<guid isPermaLink="false">http://www.barneyb.com/barneyblog/?p=477#comment-117134</guid>
		<description>marc,

I&#039;m only using CF Groovy and Hibernate for personal projects, where I, surprise, work alone.  ;)  The framework was developed solely on personal time as well, and with basically zero hope of any at-work integration, at least where I work now.

At work we do a lot of interfacing with Java, and the CF Groovy integration would be very valuable, but the boss doesn&#039;t want to adopt any Groovy.  So we hack together all kinds of interesting stuff in CF, and occasionally shell out for some real Java (and all the compile, restart, etc. fun it brings).  One really good example is getting a java.util.List of content objects back from the CMS and wanting to sort the list.  You need a Comparator.  So instead of dropping a &lt;g:script&gt; tag with a one-line Comparator in there, we build a Java class, compile it, create a JAR, add it to the application&#039;s classpath, restart the container, and then see if it works.  It&#039;s retarded.

So we use CF (RAD, dynamic, no compile, limited in scope) and Java (non-RAD, static, compile, virtually unlimited).  Groovy (RAD, dynamic, no compile, virtually unlimited), on the other hand, is off the table.  It&#039;s a silly political distinction, but such is life.  But more to your point, I work on a team of 11, 7 of which are full-time developers (the rest are operational support people who write a lot of the view layer based on customer needs, and generally help the customers use the applications), and we all write both CF and Java.  So Groovy would not be anything of a stretch from a technical side.</description>
		<content:encoded><![CDATA[<p>marc,</p>
<p>I'm only using CF Groovy and Hibernate for personal projects, where I, surprise, work alone.  ;)  The framework was developed solely on personal time as well, and with basically zero hope of any at-work integration, at least where I work now.</p>
<p>At work we do a lot of interfacing with Java, and the CF Groovy integration would be very valuable, but the boss doesn't want to adopt any Groovy.  So we hack together all kinds of interesting stuff in CF, and occasionally shell out for some real Java (and all the compile, restart, etc. fun it brings).  One really good example is getting a java.util.List of content objects back from the CMS and wanting to sort the list.  You need a Comparator.  So instead of dropping a &lt;g:script&gt; tag with a one-line Comparator in there, we build a Java class, compile it, create a JAR, add it to the application's classpath, restart the container, and then see if it works.  It's retarded.</p>
<p>So we use CF (RAD, dynamic, no compile, limited in scope) and Java (non-RAD, static, compile, virtually unlimited).  Groovy (RAD, dynamic, no compile, virtually unlimited), on the other hand, is off the table.  It's a silly political distinction, but such is life.  But more to your point, I work on a team of 11, 7 of which are full-time developers (the rest are operational support people who write a lot of the view layer based on customer needs, and generally help the customers use the applications), and we all write both CF and Java.  So Groovy would not be anything of a stretch from a technical side.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: marc esher</title>
		<link>https://www.barneyb.com/barneyblog/2008/08/19/hibernate-for-cf/comment-page-1/#comment-117073</link>
		<dc:creator>marc esher</dc:creator>
		<pubDate>Wed, 20 Aug 2008 11:52:49 +0000</pubDate>
		<guid isPermaLink="false">http://www.barneyb.com/barneyblog/?p=477#comment-117073</guid>
		<description>Barney,
  Do you work alone, or with a very small team? I ask because one of the implications I&#039;d see here is a divergence among team members and their ability to maintain these applications. Without a strongly led effort to having the appropriate people learn groovy, I can see how you&#039;d quickly get stuck in a situation where you&#039;re the only one who can maintain the apps. And that&#039;s no fun. In addition, politically, what happens when you introduce this and you hit a lot of resistance from other team members who simply have no interest/need at all to learn this new language? On top of that, there&#039;s the director/VP level to deal with. So you&#039;re selling up and selling down.
 
 On smaller teams with really agile people and leadership, this sounds great. In larger IT departments with the whole gamut of skills... yikes.

  Again, I&#039;m asking only because I&#039;m curious if you&#039;re yet in a position where you&#039;re trying to introduce this and I&#039;m wondering how you&#039;re doing so, or if this is just a one-man-show at this point.

Thanks!

marc</description>
		<content:encoded><![CDATA[<p>Barney,<br />
  Do you work alone, or with a very small team? I ask because one of the implications I'd see here is a divergence among team members and their ability to maintain these applications. Without a strongly led effort to having the appropriate people learn groovy, I can see how you'd quickly get stuck in a situation where you're the only one who can maintain the apps. And that's no fun. In addition, politically, what happens when you introduce this and you hit a lot of resistance from other team members who simply have no interest/need at all to learn this new language? On top of that, there's the director/VP level to deal with. So you're selling up and selling down.</p>
<p> On smaller teams with really agile people and leadership, this sounds great. In larger IT departments with the whole gamut of skills&#8230; yikes.</p>
<p>  Again, I'm asking only because I'm curious if you're yet in a position where you're trying to introduce this and I'm wondering how you're doing so, or if this is just a one-man-show at this point.</p>
<p>Thanks!</p>
<p>marc</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Mandel</title>
		<link>https://www.barneyb.com/barneyblog/2008/08/19/hibernate-for-cf/comment-page-1/#comment-116887</link>
		<dc:creator>Mark Mandel</dc:creator>
		<pubDate>Tue, 19 Aug 2008 22:47:43 +0000</pubDate>
		<guid isPermaLink="false">http://www.barneyb.com/barneyblog/?p=477#comment-116887</guid>
		<description>Yeah.. the way to have some sort of generated dynamic proxy would be ideal (that was the thought I was having), rather than having to invoke CFCProxy directly.

There are performance implications, but I guess you have to pay a price somewhere if you want to hook CF into it.</description>
		<content:encoded><![CDATA[<p>Yeah.. the way to have some sort of generated dynamic proxy would be ideal (that was the thought I was having), rather than having to invoke CFCProxy directly.</p>
<p>There are performance implications, but I guess you have to pay a price somewhere if you want to hook CF into it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: barneyb</title>
		<link>https://www.barneyb.com/barneyblog/2008/08/19/hibernate-for-cf/comment-page-1/#comment-116884</link>
		<dc:creator>barneyb</dc:creator>
		<pubDate>Tue, 19 Aug 2008 22:40:03 +0000</pubDate>
		<guid isPermaLink="false">http://www.barneyb.com/barneyblog/?p=477#comment-116884</guid>
		<description>Mark,

With CFCProxy, you&#039;ll have to invoke some facade CFC that then delegates back to the &quot;real&quot; CFC instance, right?  It&#039;s been a while, but I don&#039;t recall being able to create a proxy for an existing instance.  I supposed if it&#039;s all generated it&#039;s not as much of a deal, but there&#039;s still performance implications.

I&#039;d love to see a good way to write more with Groovy, but not lose the CFML nature of the application.  Both have great strengths, but CF rather bastardized the many languages/one JVM model, which makes it hard.  To be fair, Groovy&#039;s done some of the same thing with it&#039;s MetaClass infrastructure, but if you don&#039;t use it (i.e. declare normal methods, fields, etc.) your Groovy objects are &quot;normal&quot; Java instances at runtime.  With CF you don&#039;t have that option.</description>
		<content:encoded><![CDATA[<p>Mark,</p>
<p>With CFCProxy, you'll have to invoke some facade CFC that then delegates back to the "real" CFC instance, right?  It's been a while, but I don't recall being able to create a proxy for an existing instance.  I supposed if it's all generated it's not as much of a deal, but there's still performance implications.</p>
<p>I'd love to see a good way to write more with Groovy, but not lose the CFML nature of the application.  Both have great strengths, but CF rather bastardized the many languages/one JVM model, which makes it hard.  To be fair, Groovy's done some of the same thing with it's MetaClass infrastructure, but if you don't use it (i.e. declare normal methods, fields, etc.) your Groovy objects are "normal" Java instances at runtime.  With CF you don't have that option.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Mandel</title>
		<link>https://www.barneyb.com/barneyblog/2008/08/19/hibernate-for-cf/comment-page-1/#comment-116880</link>
		<dc:creator>Mark Mandel</dc:creator>
		<pubDate>Tue, 19 Aug 2008 22:21:20 +0000</pubDate>
		<guid isPermaLink="false">http://www.barneyb.com/barneyblog/?p=477#comment-116880</guid>
		<description>This is something I have been pondering for a while, as I&#039;ve been toying with the idea of enabling Transfer to generate Java and/or Groovy objects.

What would be very handy is some transparent means to enable you to write your services in CFCs, but keep your business objects in Java/Groovy, and still be able to inject those CF CFCs into your Groovy/Java business objects, (Hopefully) in a very seamless manner, through the use of CFCProxy.

I haven&#039;t worked out all the details, but that way you could keep the RAD nature of CF, but still be able to push it into your Business Objects (much like I do now in CF)</description>
		<content:encoded><![CDATA[<p>This is something I have been pondering for a while, as I've been toying with the idea of enabling Transfer to generate Java and/or Groovy objects.</p>
<p>What would be very handy is some transparent means to enable you to write your services in CFCs, but keep your business objects in Java/Groovy, and still be able to inject those CF CFCs into your Groovy/Java business objects, (Hopefully) in a very seamless manner, through the use of CFCProxy.</p>
<p>I haven't worked out all the details, but that way you could keep the RAD nature of CF, but still be able to push it into your Business Objects (much like I do now in CF)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: barneyb</title>
		<link>https://www.barneyb.com/barneyblog/2008/08/19/hibernate-for-cf/comment-page-1/#comment-116873</link>
		<dc:creator>barneyb</dc:creator>
		<pubDate>Tue, 19 Aug 2008 22:00:33 +0000</pubDate>
		<guid isPermaLink="false">http://www.barneyb.com/barneyblog/?p=477#comment-116873</guid>
		<description>Sean,

Because I&#039;m still figuring out where everything best fits.  ;)  Writing whole classes in Groovy precludes the use of CFML, which is a significant ramification.  CFMAIL&#039;s really handy compared to managing a JavaMail interface manually, for example.  Much of what I&#039;m using Groovy for is more akin to using CFSCRIPT - an alternate/simpler/richer syntax for non-CFML-specific programming tasks.  Even simply things like [&quot;one&quot;, &quot;two&quot;, &quot;three&quot;].each{ /* do something */ } can be quite handy, and with the lack of overhead entering and leaving the Groovy runtime, there&#039;s little reason not to use that stuff, even if it wasn&#039;t the real point of the implementation.  Another problem is that while CF can call Groovy, Groovy can&#039;t call CF.  So once you cross into Groovy-land, you&#039;re stuck there.

The &quot;Groovy logic&quot; in the service and controller tiers is really service and controller logic.  It&#039;s not that I&#039;m spreading my business logic up the levels, more just that I&#039;m using it in places I hadn&#039;t really expected to initially.  When I was first building the whole framework, I was really envisioning a all-CF web/controller layer, a CFC-with-embedded-Groovy service layer, and then a Groovy-based persistence layer.  But in practice I&#039;m finding CF-with-embedded-Groovy web/controller, CFC service layer, and Groovy-based persistence.

At this point, I don&#039;t think implementing the service layer in Groovy is the right choice.  Sure, I&#039;m using bits of Groovy (both snippets and classes) to accomplish things, but the apps are still CFML apps, and I don&#039;t want that to change.  If I were doing more of a JEE-style of development, using Spring, Hibernate, and Groovy together to build backends would definitely be something to consider, but at this point, I want my CFML.  I&#039;m lazy, I don&#039;t always have a full IDE (emacs over SSH, anyone?), and the &quot;problems&quot; that CFML has aren&#039;t nearly as big a deal with Groovy for the entities.  If I were working on &quot;real&quot; projects where there was budget, timelines, resources, etc., I&#039;d undoubtedly make different decisions.</description>
		<content:encoded><![CDATA[<p>Sean,</p>
<p>Because I'm still figuring out where everything best fits.  ;)  Writing whole classes in Groovy precludes the use of CFML, which is a significant ramification.  CFMAIL's really handy compared to managing a JavaMail interface manually, for example.  Much of what I'm using Groovy for is more akin to using CFSCRIPT &#8211; an alternate/simpler/richer syntax for non-CFML-specific programming tasks.  Even simply things like ["one", "two", "three"].each{ /* do something */ } can be quite handy, and with the lack of overhead entering and leaving the Groovy runtime, there's little reason not to use that stuff, even if it wasn't the real point of the implementation.  Another problem is that while CF can call Groovy, Groovy can't call CF.  So once you cross into Groovy-land, you're stuck there.</p>
<p>The "Groovy logic" in the service and controller tiers is really service and controller logic.  It's not that I'm spreading my business logic up the levels, more just that I'm using it in places I hadn't really expected to initially.  When I was first building the whole framework, I was really envisioning a all-CF web/controller layer, a CFC-with-embedded-Groovy service layer, and then a Groovy-based persistence layer.  But in practice I'm finding CF-with-embedded-Groovy web/controller, CFC service layer, and Groovy-based persistence.</p>
<p>At this point, I don't think implementing the service layer in Groovy is the right choice.  Sure, I'm using bits of Groovy (both snippets and classes) to accomplish things, but the apps are still CFML apps, and I don't want that to change.  If I were doing more of a JEE-style of development, using Spring, Hibernate, and Groovy together to build backends would definitely be something to consider, but at this point, I want my CFML.  I'm lazy, I don't always have a full IDE (emacs over SSH, anyone?), and the "problems" that CFML has aren't nearly as big a deal with Groovy for the entities.  If I were working on "real" projects where there was budget, timelines, resources, etc., I'd undoubtedly make different decisions.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sean Corfield</title>
		<link>https://www.barneyb.com/barneyblog/2008/08/19/hibernate-for-cf/comment-page-1/#comment-116867</link>
		<dc:creator>Sean Corfield</dc:creator>
		<pubDate>Tue, 19 Aug 2008 21:26:53 +0000</pubDate>
		<guid isPermaLink="false">http://www.barneyb.com/barneyblog/?p=477#comment-116867</guid>
		<description>I&#039;m curious: given that Groovy is slowly infecting the upper layers of your applications, why not write richer business objects in Groovy, i.e., instead of adding Groovy logic in the service and controller tiers, why not push that down into the business objects themselves?

Like you, I&#039;m liking Groovy more and more (and I&#039;m only halfway through the Groovy Recipes book!).</description>
		<content:encoded><![CDATA[<p>I'm curious: given that Groovy is slowly infecting the upper layers of your applications, why not write richer business objects in Groovy, i.e., instead of adding Groovy logic in the service and controller tiers, why not push that down into the business objects themselves?</p>
<p>Like you, I'm liking Groovy more and more (and I'm only halfway through the Groovy Recipes book!).</p>
]]></content:encoded>
	</item>
</channel>
</rss>
