<?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: How to make your Coherence objects forward and backward compatible with POF</title>
	<atom:link href="https://blackbeanbag.net/wp/2009/02/16/how-to-make-your-coherence-objects-forward-and-backward-compatible-with-pof/feed/" rel="self" type="application/rss+xml" />
	<link>https://blackbeanbag.net/wp/2009/02/16/how-to-make-your-coherence-objects-forward-and-backward-compatible-with-pof/</link>
	<description>Thoughts on software development and other stuff</description>
	<lastBuildDate>Sat, 20 Jul 2013 01:54:41 +0000</lastBuildDate>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=3.9.40</generator>
	<item>
		<title>By: Patrick Peralta</title>
		<link>https://blackbeanbag.net/wp/2009/02/16/how-to-make-your-coherence-objects-forward-and-backward-compatible-with-pof/comment-page-1/#comment-4470</link>
		<dc:creator><![CDATA[Patrick Peralta]]></dc:creator>
		<pubDate>Sun, 16 Dec 2012 17:40:25 +0000</pubDate>
		<guid isPermaLink="false">http://blackbeanbag.net/wp/?p=124#comment-4470</guid>
		<description><![CDATA[Hi Nagesh,

You have to configure a cache service with the POF serializer and the other cache service with the default &quot;java&quot; serializer. Take a look at http://docs.oracle.com/cd/E24290_01/coh.371/e22837/api_pof.htm (19.2.6.1 Configure the ConfigurablePofContext Class Per Service)  and http://docs.oracle.com/cd/E24290_01/coh.371/e22837/appendix_operational.htm#BAGEFCHC.]]></description>
		<content:encoded><![CDATA[<p>Hi Nagesh,</p>
<p>You have to configure a cache service with the POF serializer and the other cache service with the default &#8220;java&#8221; serializer. Take a look at <a href="http://docs.oracle.com/cd/E24290_01/coh.371/e22837/api_pof.htm" rel="nofollow">http://docs.oracle.com/cd/E24290_01/coh.371/e22837/api_pof.htm</a> (19.2.6.1 Configure the ConfigurablePofContext Class Per Service)  and <a href="http://docs.oracle.com/cd/E24290_01/coh.371/e22837/appendix_operational.htm#BAGEFCHC" rel="nofollow">http://docs.oracle.com/cd/E24290_01/coh.371/e22837/appendix_operational.htm#BAGEFCHC</a>.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nagesh</title>
		<link>https://blackbeanbag.net/wp/2009/02/16/how-to-make-your-coherence-objects-forward-and-backward-compatible-with-pof/comment-page-1/#comment-4467</link>
		<dc:creator><![CDATA[Nagesh]]></dc:creator>
		<pubDate>Thu, 13 Dec 2012 20:26:27 +0000</pubDate>
		<guid isPermaLink="false">http://blackbeanbag.net/wp/?p=124#comment-4467</guid>
		<description><![CDATA[Thank you for the prompt response on my questions. Do you happen to have the configuration which work for both serialization? I have tried to implement it some how it throws the &quot;Unknown User type&quot; when i tried to put the data in to the cache which i have not configured the POF.]]></description>
		<content:encoded><![CDATA[<p>Thank you for the prompt response on my questions. Do you happen to have the configuration which work for both serialization? I have tried to implement it some how it throws the &#8220;Unknown User type&#8221; when i tried to put the data in to the cache which i have not configured the POF.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Patrick Peralta</title>
		<link>https://blackbeanbag.net/wp/2009/02/16/how-to-make-your-coherence-objects-forward-and-backward-compatible-with-pof/comment-page-1/#comment-4466</link>
		<dc:creator><![CDATA[Patrick Peralta]]></dc:creator>
		<pubDate>Wed, 12 Dec 2012 21:53:15 +0000</pubDate>
		<guid isPermaLink="false">http://blackbeanbag.net/wp/?p=124#comment-4466</guid>
		<description><![CDATA[Hi Nagesh,

It is possible to configure different cache services with different serializers. This way you could run some of your caches with the default serializer and others with POF.

Also, I believe that POF now has support for annotations so you don&#039;t have to implement readExternal/writeExternal yourself; you should be able to simply annotate the fields that need to be serialized. I&#039;m not sure if/how this works with evolvable.]]></description>
		<content:encoded><![CDATA[<p>Hi Nagesh,</p>
<p>It is possible to configure different cache services with different serializers. This way you could run some of your caches with the default serializer and others with POF.</p>
<p>Also, I believe that POF now has support for annotations so you don&#8217;t have to implement readExternal/writeExternal yourself; you should be able to simply annotate the fields that need to be serialized. I&#8217;m not sure if/how this works with evolvable.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nagesh</title>
		<link>https://blackbeanbag.net/wp/2009/02/16/how-to-make-your-coherence-objects-forward-and-backward-compatible-with-pof/comment-page-1/#comment-4465</link>
		<dc:creator><![CDATA[Nagesh]]></dc:creator>
		<pubDate>Wed, 12 Dec 2012 15:00:34 +0000</pubDate>
		<guid isPermaLink="false">http://blackbeanbag.net/wp/?p=124#comment-4465</guid>
		<description><![CDATA[Thank you for providing the information. How do we want to gradually migrate the code to POF serialization? If one presently using the externalizableLite to serialize and deserialize the objects to and from coherence. To create the serialization routines for these objects is a big task, so, can we have gradual roll out of this functionality? This means we need to support the POF and externalizableLite in the same coherence cluster. Would it be possible? 

Again than you for giving the tips and suggesstions...]]></description>
		<content:encoded><![CDATA[<p>Thank you for providing the information. How do we want to gradually migrate the code to POF serialization? If one presently using the externalizableLite to serialize and deserialize the objects to and from coherence. To create the serialization routines for these objects is a big task, so, can we have gradual roll out of this functionality? This means we need to support the POF and externalizableLite in the same coherence cluster. Would it be possible? </p>
<p>Again than you for giving the tips and suggesstions&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Patrick Peralta</title>
		<link>https://blackbeanbag.net/wp/2009/02/16/how-to-make-your-coherence-objects-forward-and-backward-compatible-with-pof/comment-page-1/#comment-4459</link>
		<dc:creator><![CDATA[Patrick Peralta]]></dc:creator>
		<pubDate>Fri, 02 Nov 2012 13:20:26 +0000</pubDate>
		<guid isPermaLink="false">http://blackbeanbag.net/wp/?p=124#comment-4459</guid>
		<description><![CDATA[Hi Nagesh,

When you write your own serializer you&#039;ll have to handle the evolvable/versioning bits yourself. Aleks Seovic (the primary author of the Coherence book) has a good description of this in the POF chapter. You can also check out his abstract serializer that takes Evolvable into account:

https://github.com/aseovic/coherence-tools/blob/master/pof/src/main/java/com/seovic/pof/AbstractPofSerializer.java]]></description>
		<content:encoded><![CDATA[<p>Hi Nagesh,</p>
<p>When you write your own serializer you&#8217;ll have to handle the evolvable/versioning bits yourself. Aleks Seovic (the primary author of the Coherence book) has a good description of this in the POF chapter. You can also check out his abstract serializer that takes Evolvable into account:</p>
<p><a href="https://github.com/aseovic/coherence-tools/blob/master/pof/src/main/java/com/seovic/pof/AbstractPofSerializer.java" rel="nofollow">https://github.com/aseovic/coherence-tools/blob/master/pof/src/main/java/com/seovic/pof/AbstractPofSerializer.java</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nagesh</title>
		<link>https://blackbeanbag.net/wp/2009/02/16/how-to-make-your-coherence-objects-forward-and-backward-compatible-with-pof/comment-page-1/#comment-4458</link>
		<dc:creator><![CDATA[Nagesh]]></dc:creator>
		<pubDate>Fri, 02 Nov 2012 08:20:15 +0000</pubDate>
		<guid isPermaLink="false">http://blackbeanbag.net/wp/?p=124#comment-4458</guid>
		<description><![CDATA[This is excellent post on the POF, I have one question as people want to have a separation between the domain object and serialization routine. How does this work for the POFSeriablizable implementation?]]></description>
		<content:encoded><![CDATA[<p>This is excellent post on the POF, I have one question as people want to have a separation between the domain object and serialization routine. How does this work for the POFSeriablizable implementation?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Patrick Peralta</title>
		<link>https://blackbeanbag.net/wp/2009/02/16/how-to-make-your-coherence-objects-forward-and-backward-compatible-with-pof/comment-page-1/#comment-4423</link>
		<dc:creator><![CDATA[Patrick Peralta]]></dc:creator>
		<pubDate>Fri, 17 Feb 2012 13:15:52 +0000</pubDate>
		<guid isPermaLink="false">http://blackbeanbag.net/wp/?p=124#comment-4423</guid>
		<description><![CDATA[Coherence will also populate the version number on read:
&lt;code&gt;
// set the version identifier
boolean   fEvolvable = portable instanceof Evolvable;
Evolvable evolvable  = null;
if (fEvolvable)
    {
    evolvable = (Evolvable) portable;
    evolvable.setDataVersion(in.getVersionId());
    }

// read the object&#039;s properties
portable.readExternal(in);

// read any future properties
Binary binRemainder = in.readRemainder();
if (fEvolvable)
    {
    evolvable.setFutureData(binRemainder);
    }
&lt;/code&gt;]]></description>
		<content:encoded><![CDATA[<p>Coherence will also populate the version number on read:<br />
<code><br />
// set the version identifier<br />
boolean   fEvolvable = portable instanceof Evolvable;<br />
Evolvable evolvable  = null;<br />
if (fEvolvable)<br />
    {<br />
    evolvable = (Evolvable) portable;<br />
    evolvable.setDataVersion(in.getVersionId());<br />
    }</p>
<p>// read the object's properties<br />
portable.readExternal(in);</p>
<p>// read any future properties<br />
Binary binRemainder = in.readRemainder();<br />
if (fEvolvable)<br />
    {<br />
    evolvable.setFutureData(binRemainder);<br />
    }<br />
</code></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Patrick Peralta</title>
		<link>https://blackbeanbag.net/wp/2009/02/16/how-to-make-your-coherence-objects-forward-and-backward-compatible-with-pof/comment-page-1/#comment-4422</link>
		<dc:creator><![CDATA[Patrick Peralta]]></dc:creator>
		<pubDate>Fri, 17 Feb 2012 13:12:49 +0000</pubDate>
		<guid isPermaLink="false">http://blackbeanbag.net/wp/?p=124#comment-4422</guid>
		<description><![CDATA[Yes, this is correct. The Coherence PortableObjectSerializer does the following:

&lt;code&gt;
// set the version identifier
boolean   fEvolvable = portable instanceof Evolvable;
Evolvable evolvable  = null;
if (fEvolvable)
    {
    evolvable = (Evolvable) portable;
    out.setVersionId(Math.max(evolvable.getDataVersion(),
            evolvable.getImplVersion()));
    }

// write out the object&#039;s properties
portable.writeExternal(out);

// write out any future properties
Binary binRemainder = null;
if (fEvolvable)
    {
    binRemainder = evolvable.getFutureData();
    }
out.writeRemainder(binRemainder);
&lt;/code&gt;]]></description>
		<content:encoded><![CDATA[<p>Yes, this is correct. The Coherence PortableObjectSerializer does the following:</p>
<p><code><br />
// set the version identifier<br />
boolean   fEvolvable = portable instanceof Evolvable;<br />
Evolvable evolvable  = null;<br />
if (fEvolvable)<br />
    {<br />
    evolvable = (Evolvable) portable;<br />
    out.setVersionId(Math.max(evolvable.getDataVersion(),<br />
            evolvable.getImplVersion()));<br />
    }</p>
<p>// write out the object's properties<br />
portable.writeExternal(out);</p>
<p>// write out any future properties<br />
Binary binRemainder = null;<br />
if (fEvolvable)<br />
    {<br />
    binRemainder = evolvable.getFutureData();<br />
    }<br />
out.writeRemainder(binRemainder);<br />
</code></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: sc</title>
		<link>https://blackbeanbag.net/wp/2009/02/16/how-to-make-your-coherence-objects-forward-and-backward-compatible-with-pof/comment-page-1/#comment-4421</link>
		<dc:creator><![CDATA[sc]]></dc:creator>
		<pubDate>Fri, 17 Feb 2012 05:01:40 +0000</pubDate>
		<guid isPermaLink="false">http://blackbeanbag.net/wp/?p=124#comment-4421</guid>
		<description><![CDATA[By the way, you may want to check that the version number is correct before you attempt to read your new field.]]></description>
		<content:encoded><![CDATA[<p>By the way, you may want to check that the version number is correct before you attempt to read your new field.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: sc</title>
		<link>https://blackbeanbag.net/wp/2009/02/16/how-to-make-your-coherence-objects-forward-and-backward-compatible-with-pof/comment-page-1/#comment-4420</link>
		<dc:creator><![CDATA[sc]]></dc:creator>
		<pubDate>Fri, 17 Feb 2012 04:49:20 +0000</pubDate>
		<guid isPermaLink="false">http://blackbeanbag.net/wp/?p=124#comment-4420</guid>
		<description><![CDATA[In your original version of Person you are not storing or reading the future data OR the version number. I guess Coherence must be checking whether your object is instanceof Evolvable and doing that stuff for you.]]></description>
		<content:encoded><![CDATA[<p>In your original version of Person you are not storing or reading the future data OR the version number. I guess Coherence must be checking whether your object is instanceof Evolvable and doing that stuff for you.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
