<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6469898881072045759</id><updated>2011-04-21T12:57:39.083-07:00</updated><category term='api rdoc'/><category term='simple_services plugin rails'/><category term='github'/><category term='requires_new'/><category term='analytics'/><category term='ejb'/><category term='spring java'/><category term='rubyforge'/><title type='text'>dectxn</title><subtitle type='html'>Rails Declarative Transactions Plugin
&lt;br&gt;&lt;br&gt;
&lt;a href="http://dectxn.rubyforge.org"&gt;http://dectxn.rubyforge.org&lt;/a&gt;</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://dectxn.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6469898881072045759/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://dectxn.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>soulware</name><uri>http://www.blogger.com/profile/13843184767907440598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>8</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6469898881072045759.post-8830650974374622907</id><published>2008-07-06T22:33:00.001-07:00</published><updated>2008-07-06T22:33:58.875-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='github'/><title type='text'>dectxn now on github</title><content type='html'>http://github.com/soulware/dectxn&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6469898881072045759-8830650974374622907?l=dectxn.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dectxn.blogspot.com/feeds/8830650974374622907/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6469898881072045759&amp;postID=8830650974374622907' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6469898881072045759/posts/default/8830650974374622907'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6469898881072045759/posts/default/8830650974374622907'/><link rel='alternate' type='text/html' href='http://dectxn.blogspot.com/2008/07/dectxn-now-on-github.html' title='dectxn now on github'/><author><name>soulware</name><uri>http://www.blogger.com/profile/13843184767907440598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6469898881072045759.post-3598546837758481543</id><published>2008-05-09T09:15:00.001-07:00</published><updated>2008-05-09T09:17:48.426-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='api rdoc'/><title type='text'>dectxn rdoc api now online</title><content type='html'>The &lt;a href="http://dectxn.rubyforge.org/rdoc"&gt;dectxn rdoc api&lt;/a&gt; is now available online.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6469898881072045759-3598546837758481543?l=dectxn.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dectxn.blogspot.com/feeds/3598546837758481543/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6469898881072045759&amp;postID=3598546837758481543' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6469898881072045759/posts/default/3598546837758481543'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6469898881072045759/posts/default/3598546837758481543'/><link rel='alternate' type='text/html' href='http://dectxn.blogspot.com/2008/05/dectxn-rdoc-api-now-online.html' title='dectxn rdoc api now online'/><author><name>soulware</name><uri>http://www.blogger.com/profile/13843184767907440598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6469898881072045759.post-6655904492535633581</id><published>2008-05-09T06:36:00.000-07:00</published><updated>2008-05-09T06:41:41.260-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='spring java'/><title type='text'>Transaction Suspension in Spring</title><content type='html'>The article "Implementing Transaction Suspension in Spring" is available at the following &lt;a href="http://dev2dev.bea.com/pub/a/2005/07/spring_transactions.html"&gt;link&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6469898881072045759-6655904492535633581?l=dectxn.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dectxn.blogspot.com/feeds/6655904492535633581/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6469898881072045759&amp;postID=6655904492535633581' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6469898881072045759/posts/default/6655904492535633581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6469898881072045759/posts/default/6655904492535633581'/><link rel='alternate' type='text/html' href='http://dectxn.blogspot.com/2008/05/transaction-suspension-in-spring.html' title='Transaction Suspension in Spring'/><author><name>soulware</name><uri>http://www.blogger.com/profile/13843184767907440598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6469898881072045759.post-3736266469430459738</id><published>2008-05-08T19:11:00.001-07:00</published><updated>2008-05-08T19:21:25.733-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='simple_services plugin rails'/><title type='text'>simple_services</title><content type='html'>There's another Rails plugin out there doing something pretty similar to dectxn, with a greater emphasis on "convention over configuration" - &lt;a href="http://opensource.thinkrelevance.com/wiki/simple_services"&gt;simple_services&lt;/a&gt;. simple_services provides a base class Service::Base and &lt;em&gt;all&lt;/em&gt; methods in &lt;em&gt;all&lt;/em&gt; subclasses will be automatically wrapped in a transaction (with an effective propagation attribute of &lt;em&gt;required&lt;/em&gt;).&lt;br /&gt;&lt;br /&gt;How would something like this be done in &lt;a href="http://dectxn.rubyforge.org"&gt;dectxn&lt;/a&gt;?&lt;br /&gt;&lt;br /&gt;&lt;code&gt;Txn::required :for_type =&gt; Service::Base, :calls_to =&gt; :all_methods&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6469898881072045759-3736266469430459738?l=dectxn.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dectxn.blogspot.com/feeds/3736266469430459738/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6469898881072045759&amp;postID=3736266469430459738' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6469898881072045759/posts/default/3736266469430459738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6469898881072045759/posts/default/3736266469430459738'/><link rel='alternate' type='text/html' href='http://dectxn.blogspot.com/2008/05/simpleservices.html' title='simple_services'/><author><name>soulware</name><uri>http://www.blogger.com/profile/13843184767907440598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6469898881072045759.post-6146016064988365811</id><published>2008-05-08T10:05:00.000-07:00</published><updated>2008-05-08T10:44:47.028-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ejb'/><category scheme='http://www.blogger.com/atom/ns#' term='requires_new'/><title type='text'>EJB 2.x transaction attributes</title><content type='html'>dectxn is heavily influenced by the declarative style of transaction management in the Java world. See these links for information on transaction &lt;a href="http://docs.sun.com/source/816-6101-10/ptrans.htm#1018168"&gt;attributes&lt;/a&gt; in EJB 2.x and how to &lt;a href="http://docs.sun.com/source/816-6101-10/ppropf.htm#1008928"&gt;specify&lt;/a&gt; them.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;TX_BEAN_MANAGED&lt;/li&gt;&lt;li&gt;TX_MANDATORY&lt;/li&gt;&lt;li&gt;TX_NOT_SUPPORTED&lt;/li&gt;&lt;li&gt;TX_REQUIRED&lt;/li&gt;&lt;li&gt;TX_REQUIRES_NEW&lt;/li&gt;&lt;li&gt;TX_SUPPORTS&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6469898881072045759-6146016064988365811?l=dectxn.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dectxn.blogspot.com/feeds/6146016064988365811/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6469898881072045759&amp;postID=6146016064988365811' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6469898881072045759/posts/default/6146016064988365811'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6469898881072045759/posts/default/6146016064988365811'/><link rel='alternate' type='text/html' href='http://dectxn.blogspot.com/2008/05/ejb-2x-transaction-attributes.html' title='EJB 2.x transaction attributes'/><author><name>soulware</name><uri>http://www.blogger.com/profile/13843184767907440598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6469898881072045759.post-1619855327734197312</id><published>2008-05-08T07:15:00.000-07:00</published><updated>2008-05-08T10:43:17.806-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='requires_new'/><title type='text'>Txn::requires_new</title><content type='html'>In the Java EE world the RequiresNew transaction attribute is &lt;a href="http://docs.sun.com/app/docs/doc/819-3669/6n5sg7cm3"&gt;defined&lt;/a&gt; as starting a new transaction after suspending any existing transaction. Transaction suspension is handled by the app server and support for this is app server specific.&lt;br /&gt;&lt;br /&gt;The default Spring &lt;a href="http://static.springframework.org/spring/docs/2.5.x/api/org/springframework/transaction/jta/JtaTransactionManager.html"&gt;JtaTransactionManager&lt;/a&gt; does not support PROPAGATION_REQUIRES_NEW. Transaction suspension support is app server specific (no standard JNDI location for the JTA transaction manager). See &lt;a href="http://dev2dev.bea.com/lpt/a/40"&gt;here&lt;/a&gt; for further information on transaction suspension in Spring. Spring will by default  throw an exception if a PROPAGATION_REQUIRES_NEW method is called from within an existing active tranaction.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://dectxn.rubyforge.org"&gt;dectxn&lt;/a&gt; Txn::requires_new follows the default Spring approach by raising a Txn::RequiresNewException if called from within an existing active transaction. If called with no active transaction it behaves as for Txn::required.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6469898881072045759-1619855327734197312?l=dectxn.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dectxn.blogspot.com/feeds/1619855327734197312/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6469898881072045759&amp;postID=1619855327734197312' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6469898881072045759/posts/default/1619855327734197312'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6469898881072045759/posts/default/1619855327734197312'/><link rel='alternate' type='text/html' href='http://dectxn.blogspot.com/2008/05/txnrequiresnew.html' title='Txn::requires_new'/><author><name>soulware</name><uri>http://www.blogger.com/profile/13843184767907440598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6469898881072045759.post-2569078001556569157</id><published>2008-05-07T19:37:00.000-07:00</published><updated>2008-05-08T06:22:22.047-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='analytics'/><title type='text'>google analytics</title><content type='html'>Google analytics are now being collected for both the &lt;a href="http://dectxn.rubyforge.org/"&gt;dectxn&lt;/a&gt; homepage and this &lt;a href="http://dectxn.blogspot.com/"&gt;blog&lt;/a&gt;. Wondering if its possible to embed the google analytics javascript in the generated rdoc. Not sure if accessing local rdoc page views would be recorded.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6469898881072045759-2569078001556569157?l=dectxn.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dectxn.blogspot.com/feeds/2569078001556569157/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6469898881072045759&amp;postID=2569078001556569157' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6469898881072045759/posts/default/2569078001556569157'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6469898881072045759/posts/default/2569078001556569157'/><link rel='alternate' type='text/html' href='http://dectxn.blogspot.com/2008/05/google-analytics.html' title='google analytics'/><author><name>soulware</name><uri>http://www.blogger.com/profile/13843184767907440598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6469898881072045759.post-7287825666519978534</id><published>2008-05-07T19:12:00.000-07:00</published><updated>2008-05-07T19:51:40.117-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rubyforge'/><title type='text'>dectxn available on rubyforge</title><content type='html'>Check out the &lt;a href="http://dectxn.rubyforge.org/"&gt;homepage&lt;/a&gt; and rubyforge &lt;a href="http://rubyforge.org/projects/dectxn/"&gt;project&lt;/a&gt; page. For those who don't know dectxn is a Ruby on Rails plugin that lets you use a declarative style of transaction management. For example -&lt;br /&gt;&lt;br /&gt;&lt;code&gt;   Txn::required :for_type =&gt; Account, :calls_to =&gt; :debit&lt;br /&gt;&lt;/code&gt;&lt;span style="display: block;" id="formatbar_Buttons"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6469898881072045759-7287825666519978534?l=dectxn.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dectxn.blogspot.com/feeds/7287825666519978534/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6469898881072045759&amp;postID=7287825666519978534' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6469898881072045759/posts/default/7287825666519978534'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6469898881072045759/posts/default/7287825666519978534'/><link rel='alternate' type='text/html' href='http://dectxn.blogspot.com/2008/05/dectxn-available-on-rubyforge.html' title='dectxn available on rubyforge'/><author><name>soulware</name><uri>http://www.blogger.com/profile/13843184767907440598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>
