<?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/"
	xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule"	>
<channel>
	<title>Comments on: A Brief Adventure with Universal Repositories and REST Web Services</title>
	<atom:link href="http://johannesbrodwall.com/2007/03/03/a-brief-adventure-with-universal-repositories-and-rest-web-services/feed/" rel="self" type="application/rss+xml" />
	<link>http://johannesbrodwall.com/2007/03/03/a-brief-adventure-with-universal-repositories-and-rest-web-services/</link>
	<description>Johannes Brodwall&#039;s Musings on Software Architecture and Programming</description>
	<lastBuildDate>Thu, 29 Jul 2010 15:37:26 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Johannes Brodwall</title>
		<link>http://johannesbrodwall.com/2007/03/03/a-brief-adventure-with-universal-repositories-and-rest-web-services/comment-page-1/#comment-10177</link>
		<dc:creator>Johannes Brodwall</dc:creator>
		<pubDate>Mon, 13 Aug 2007 19:33:27 +0000</pubDate>
		<guid isPermaLink="false">http://www.brodwall.com/johannes/blog/2007/03/03/a-brief-adventure-with-universal-repositories-and-rest-web-services/#comment-10177</guid>
		<description>Hi, Mats

I&#039;m thinking about GET as analogous to lazy loading proxies with Hibernate (or other persistence framework). This means that a GET request could either return a link, or the embedded object. Using the same analogy, PUT and POST requests can be similar to cascading saves, I think. This means that the onus is on the client to ensure that the correct state is transferred.

Does that make sense?</description>
		<content:encoded><![CDATA[<p>Hi, Mats</p>
<p>I&#8217;m thinking about GET as analogous to lazy loading proxies with Hibernate (or other persistence framework). This means that a GET request could either return a link, or the embedded object. Using the same analogy, PUT and POST requests can be similar to cascading saves, I think. This means that the onus is on the client to ensure that the correct state is transferred.</p>
<p>Does that make sense?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Johannes Brodwall</title>
		<link>http://johannesbrodwall.com/2007/03/03/a-brief-adventure-with-universal-repositories-and-rest-web-services/comment-page-1/#comment-84357</link>
		<dc:creator>Johannes Brodwall</dc:creator>
		<pubDate>Mon, 13 Aug 2007 17:33:27 +0000</pubDate>
		<guid isPermaLink="false">http://www.brodwall.com/johannes/blog/2007/03/03/a-brief-adventure-with-universal-repositories-and-rest-web-services/#comment-84357</guid>
		<description>Hi, Mats&lt;br&gt;&lt;br&gt;I&#039;m thinking about GET as analogous to lazy loading proxies with Hibernate (or other persistence framework). This means that a GET request could either return a link, or the embedded object. Using the same analogy, PUT and POST requests can be similar to cascading saves, I think. This means that the onus is on the client to ensure that the correct state is transferred.&lt;br&gt;&lt;br&gt;Does that make sense?</description>
		<content:encoded><![CDATA[<p>Hi, Mats</p>
<p>I&#39;m thinking about GET as analogous to lazy loading proxies with Hibernate (or other persistence framework). This means that a GET request could either return a link, or the embedded object. Using the same analogy, PUT and POST requests can be similar to cascading saves, I think. This means that the onus is on the client to ensure that the correct state is transferred.</p>
<p>Does that make sense?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mats</title>
		<link>http://johannesbrodwall.com/2007/03/03/a-brief-adventure-with-universal-repositories-and-rest-web-services/comment-page-1/#comment-10167</link>
		<dc:creator>Mats</dc:creator>
		<pubDate>Mon, 13 Aug 2007 13:33:22 +0000</pubDate>
		<guid isPermaLink="false">http://www.brodwall.com/johannes/blog/2007/03/03/a-brief-adventure-with-universal-repositories-and-rest-web-services/#comment-10167</guid>
		<description>When GETing it&#039;s pretty clear that if an object contains a reference to another object, it is either included in the returned document, or it is referenced.
When POSTing or PUTting, however, the situation is more complex. I don&#039;t think it matters if you are creating or updating, what to do with direct attributes are clear, but not with referenced objects. A referenced object might exist only on the client side, or it might be in the repository, but with different attributes. Do  you have a clear vision of how to handle this?</description>
		<content:encoded><![CDATA[<p>When GETing it&#8217;s pretty clear that if an object contains a reference to another object, it is either included in the returned document, or it is referenced.<br />
When POSTing or PUTting, however, the situation is more complex. I don&#8217;t think it matters if you are creating or updating, what to do with direct attributes are clear, but not with referenced objects. A referenced object might exist only on the client side, or it might be in the repository, but with different attributes. Do  you have a clear vision of how to handle this?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mats</title>
		<link>http://johannesbrodwall.com/2007/03/03/a-brief-adventure-with-universal-repositories-and-rest-web-services/comment-page-1/#comment-84356</link>
		<dc:creator>Mats</dc:creator>
		<pubDate>Mon, 13 Aug 2007 11:33:22 +0000</pubDate>
		<guid isPermaLink="false">http://www.brodwall.com/johannes/blog/2007/03/03/a-brief-adventure-with-universal-repositories-and-rest-web-services/#comment-84356</guid>
		<description>When GETing it&#039;s pretty clear that if an object contains a reference to another object, it is either included in the returned document, or it is referenced.&lt;br&gt;When POSTing or PUTting, however, the situation is more complex. I don&#039;t think it matters if you are creating or updating, what to do with direct attributes are clear, but not with referenced objects. A referenced object might exist only on the client side, or it might be in the repository, but with different attributes. Do  you have a clear vision of how to handle this?</description>
		<content:encoded><![CDATA[<p>When GETing it&#39;s pretty clear that if an object contains a reference to another object, it is either included in the returned document, or it is referenced.<br />When POSTing or PUTting, however, the situation is more complex. I don&#39;t think it matters if you are creating or updating, what to do with direct attributes are clear, but not with referenced objects. A referenced object might exist only on the client side, or it might be in the repository, but with different attributes. Do  you have a clear vision of how to handle this?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Johannes Brodwall</title>
		<link>http://johannesbrodwall.com/2007/03/03/a-brief-adventure-with-universal-repositories-and-rest-web-services/comment-page-1/#comment-8740</link>
		<dc:creator>Johannes Brodwall</dc:creator>
		<pubDate>Tue, 17 Jul 2007 00:08:23 +0000</pubDate>
		<guid isPermaLink="false">http://www.brodwall.com/johannes/blog/2007/03/03/a-brief-adventure-with-universal-repositories-and-rest-web-services/#comment-8740</guid>
		<description>Thanks for the good comments, Mats.

I have indeed considered using the Map interface. My main issue is how to treat keys during inserts. The Map interface is not designed for key generation purposes. I&#039;ve toyed with a few options, but found none that I like.

Using URLs as keys is actually one of the neat things about REST. This will become more obvious if I get around to publishing work on more complex models.

Regarding &quot;get&quot; versus &quot;retrieve&quot;. I choose &quot;retrieve&quot; because of the CRUD patterns (but I cowardly left &quot;insert&quot; as &quot;create&quot; to avoid the overloaded meaning of &quot;insert&quot;). Also, I wanted to remove the association with getters. But &quot;get&quot; might be a better name after all.</description>
		<content:encoded><![CDATA[<p>Thanks for the good comments, Mats.</p>
<p>I have indeed considered using the Map interface. My main issue is how to treat keys during inserts. The Map interface is not designed for key generation purposes. I&#8217;ve toyed with a few options, but found none that I like.</p>
<p>Using URLs as keys is actually one of the neat things about REST. This will become more obvious if I get around to publishing work on more complex models.</p>
<p>Regarding &#8220;get&#8221; versus &#8220;retrieve&#8221;. I choose &#8220;retrieve&#8221; because of the CRUD patterns (but I cowardly left &#8220;insert&#8221; as &#8220;create&#8221; to avoid the overloaded meaning of &#8220;insert&#8221;). Also, I wanted to remove the association with getters. But &#8220;get&#8221; might be a better name after all.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Johannes Brodwall</title>
		<link>http://johannesbrodwall.com/2007/03/03/a-brief-adventure-with-universal-repositories-and-rest-web-services/comment-page-1/#comment-84355</link>
		<dc:creator>Johannes Brodwall</dc:creator>
		<pubDate>Mon, 16 Jul 2007 22:08:23 +0000</pubDate>
		<guid isPermaLink="false">http://www.brodwall.com/johannes/blog/2007/03/03/a-brief-adventure-with-universal-repositories-and-rest-web-services/#comment-84355</guid>
		<description>Thanks for the good comments, Mats.&lt;br&gt;&lt;br&gt;I have indeed considered using the Map interface. My main issue is how to treat keys during inserts. The Map interface is not designed for key generation purposes. I&#039;ve toyed with a few options, but found none that I like.&lt;br&gt;&lt;br&gt;Using URLs as keys is actually one of the neat things about REST. This will become more obvious if I get around to publishing work on more complex models.&lt;br&gt;&lt;br&gt;Regarding &quot;get&quot; versus &quot;retrieve&quot;. I choose &quot;retrieve&quot; because of the CRUD patterns (but I cowardly left &quot;insert&quot; as &quot;create&quot; to avoid the overloaded meaning of &quot;insert&quot;). Also, I wanted to remove the association with getters. But &quot;get&quot; might be a better name after all.</description>
		<content:encoded><![CDATA[<p>Thanks for the good comments, Mats.</p>
<p>I have indeed considered using the Map interface. My main issue is how to treat keys during inserts. The Map interface is not designed for key generation purposes. I&#39;ve toyed with a few options, but found none that I like.</p>
<p>Using URLs as keys is actually one of the neat things about REST. This will become more obvious if I get around to publishing work on more complex models.</p>
<p>Regarding &#8220;get&#8221; versus &#8220;retrieve&#8221;. I choose &#8220;retrieve&#8221; because of the CRUD patterns (but I cowardly left &#8220;insert&#8221; as &#8220;create&#8221; to avoid the overloaded meaning of &#8220;insert&#8221;). Also, I wanted to remove the association with getters. But &#8220;get&#8221; might be a better name after all.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mats</title>
		<link>http://johannesbrodwall.com/2007/03/03/a-brief-adventure-with-universal-repositories-and-rest-web-services/comment-page-1/#comment-8348</link>
		<dc:creator>Mats</dc:creator>
		<pubDate>Wed, 11 Jul 2007 10:27:52 +0000</pubDate>
		<guid isPermaLink="false">http://www.brodwall.com/johannes/blog/2007/03/03/a-brief-adventure-with-universal-repositories-and-rest-web-services/#comment-8348</guid>
		<description>No problem, I can manage. Just wanted to give feedback in case you weren&#039;t aware. And thanks for the Maven tip.

Another thing is that the repository interface looks a lot like the Map interface. Make me wonder about the differences, such as method names (should &quot;retrieve&quot; be called &quot;get&quot;?), the type parameters (wouldn&#039;t it be nicer with a key type parameter?), would it be possible to go so far as to have Repository implement Map?

Also I didn&#039;t quite like the &quot;hack&quot; with URLs being used interchangeably with Keys, or the &quot;Long.valueOf(parts[1])&quot; in RESTRepositoryServlet.getKey where Keys are suddenly assumed/restricted to be Longs.

Not &quot;complaining&quot;, just trying to provide some humble feedback, hoping it might be of some interest.</description>
		<content:encoded><![CDATA[<p>No problem, I can manage. Just wanted to give feedback in case you weren&#8217;t aware. And thanks for the Maven tip.</p>
<p>Another thing is that the repository interface looks a lot like the Map interface. Make me wonder about the differences, such as method names (should &#8220;retrieve&#8221; be called &#8220;get&#8221;?), the type parameters (wouldn&#8217;t it be nicer with a key type parameter?), would it be possible to go so far as to have Repository implement Map?</p>
<p>Also I didn&#8217;t quite like the &#8220;hack&#8221; with URLs being used interchangeably with Keys, or the &#8220;Long.valueOf(parts[1])&#8221; in RESTRepositoryServlet.getKey where Keys are suddenly assumed/restricted to be Longs.</p>
<p>Not &#8220;complaining&#8221;, just trying to provide some humble feedback, hoping it might be of some interest.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mats</title>
		<link>http://johannesbrodwall.com/2007/03/03/a-brief-adventure-with-universal-repositories-and-rest-web-services/comment-page-1/#comment-84354</link>
		<dc:creator>Mats</dc:creator>
		<pubDate>Wed, 11 Jul 2007 08:27:52 +0000</pubDate>
		<guid isPermaLink="false">http://www.brodwall.com/johannes/blog/2007/03/03/a-brief-adventure-with-universal-repositories-and-rest-web-services/#comment-84354</guid>
		<description>No problem, I can manage. Just wanted to give feedback in case you weren&#039;t aware. And thanks for the Maven tip.&lt;br&gt;&lt;br&gt;Another thing is that the repository interface looks a lot like the Map interface. Make me wonder about the differences, such as method names (should &quot;retrieve&quot; be called &quot;get&quot;?), the type parameters (wouldn&#039;t it be nicer with a key type parameter?), would it be possible to go so far as to have Repository implement Map?&lt;br&gt;&lt;br&gt;Also I didn&#039;t quite like the &quot;hack&quot; with URLs being used interchangeably with Keys, or the &quot;Long.valueOf(parts[1])&quot; in RESTRepositoryServlet.getKey where Keys are suddenly assumed/restricted to be Longs.&lt;br&gt;&lt;br&gt;Not &quot;complaining&quot;, just trying to provide some humble feedback, hoping it might be of some interest.</description>
		<content:encoded><![CDATA[<p>No problem, I can manage. Just wanted to give feedback in case you weren&#39;t aware. And thanks for the Maven tip.</p>
<p>Another thing is that the repository interface looks a lot like the Map interface. Make me wonder about the differences, such as method names (should &#8220;retrieve&#8221; be called &#8220;get&#8221;?), the type parameters (wouldn&#39;t it be nicer with a key type parameter?), would it be possible to go so far as to have Repository implement Map?</p>
<p>Also I didn&#39;t quite like the &#8220;hack&#8221; with URLs being used interchangeably with Keys, or the &#8220;Long.valueOf(parts[1])&#8221; in RESTRepositoryServlet.getKey where Keys are suddenly assumed/restricted to be Longs.</p>
<p>Not &#8220;complaining&#8221;, just trying to provide some humble feedback, hoping it might be of some interest.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Johannes Brodwall</title>
		<link>http://johannesbrodwall.com/2007/03/03/a-brief-adventure-with-universal-repositories-and-rest-web-services/comment-page-1/#comment-8154</link>
		<dc:creator>Johannes Brodwall</dc:creator>
		<pubDate>Sun, 08 Jul 2007 17:26:56 +0000</pubDate>
		<guid isPermaLink="false">http://www.brodwall.com/johannes/blog/2007/03/03/a-brief-adventure-with-universal-repositories-and-rest-web-services/#comment-8154</guid>
		<description>Hi, Mats

Yeah, as it turns out, Spring is a dependency hog, and the other dependencies stack up.

If you&#039;re not doing it already, you really should use Maven to build this (and other) project. It really helps with dependency mess.

Sorry about the UrlMemoryRepository. I am reworking the code, and it is in a bit of an intermediate state right now. If this is a blocker for you, I can prioritize fixing it. Let me know.</description>
		<content:encoded><![CDATA[<p>Hi, Mats</p>
<p>Yeah, as it turns out, Spring is a dependency hog, and the other dependencies stack up.</p>
<p>If you&#8217;re not doing it already, you really should use Maven to build this (and other) project. It really helps with dependency mess.</p>
<p>Sorry about the UrlMemoryRepository. I am reworking the code, and it is in a bit of an intermediate state right now. If this is a blocker for you, I can prioritize fixing it. Let me know.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mats</title>
		<link>http://johannesbrodwall.com/2007/03/03/a-brief-adventure-with-universal-repositories-and-rest-web-services/comment-page-1/#comment-8146</link>
		<dc:creator>Mats</dc:creator>
		<pubDate>Sun, 08 Jul 2007 15:27:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.brodwall.com/johannes/blog/2007/03/03/a-brief-adventure-with-universal-repositories-and-rest-web-services/#comment-8146</guid>
		<description>Really elegant construction this.
When trying to run it, I had to add 10 external jars. Makes me wonder
if they&#039;re all really needed. Second, in the &quot;trade&quot; package there are
unresolved references to the ...rest.UrlMemoryRepository class.
Still, really cool stuff.</description>
		<content:encoded><![CDATA[<p>Really elegant construction this.<br />
When trying to run it, I had to add 10 external jars. Makes me wonder<br />
if they&#8217;re all really needed. Second, in the &#8220;trade&#8221; package there are<br />
unresolved references to the &#8230;rest.UrlMemoryRepository class.<br />
Still, really cool stuff.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
