<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>Jean Barmash</title>
	<atom:link href="http://blogs.alfresco.com/wp/jbarmash/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.alfresco.com/wp/jbarmash</link>
	<description>Alfresco in the Real World</description>
	<pubDate>Sun, 03 May 2009 21:24:29 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.1</generator>
	<language>en</language>
			<item>
		<title>Disabling Auditable Properties from Being Set Automatically</title>
		<link>http://blogs.alfresco.com/wp/jbarmash/2009/05/03/disabling-auditable-properties-from-being-set-automatically/</link>
		<comments>http://blogs.alfresco.com/wp/jbarmash/2009/05/03/disabling-auditable-properties-from-being-set-automatically/#comments</comments>
		<pubDate>Sun, 03 May 2009 19:46:13 +0000</pubDate>
		<dc:creator>Jean Barmash</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[alfresco tech]]></category>

		<category><![CDATA[dm]]></category>

		<category><![CDATA[content modeling]]></category>

		<category><![CDATA[migration]]></category>

		<guid isPermaLink="false">http://blogs.alfresco.com/wp/jbarmash/2009/05/03/disabling-auditable-properties-from-being-set-automatically/</guid>
		<description><![CDATA[When performing content ingestion, it is often needed to set some system properties that are governed by the Auditable Aspect.    These properties are cm:created, cm:creator, cm:modified, cm:modifier.    In 3.0 and 3.1, there is no explicit option to turn these off.   If this issue affects you, please vote [...]]]></description>
			<content:encoded><![CDATA[<p>When performing content ingestion, it is often needed to set some system properties that are governed by the Auditable Aspect.    These properties are cm:created, cm:creator, cm:modified, cm:modifier.    In 3.0 and 3.1, there is no explicit option to turn these off.   If this issue affects you, please vote for <a href="https://issues.alfresco.com/jira/browse/ETHREEOH-1791">this JIRA</a> ticket, but in the meantime, here is a way to get around this when you need to disable automatic setting of these properties temporarily.</p>
<p><strong>Note:</strong> we are using some trickery here, and doing things that aren&#8217;t typically recommended, so please be very careful and test things out in your environment.   This worked for me on Alfresco 3.0SP1.</p>
<p>The auditing properties are being set pretty deep inside the infrastructure code (class <span style="font-size: 10pt;font-family: Courier New;color: black">HibernateNodeDaoServiceImpl). </span>The code checks whether Auditable aspect is applied, and if so, it sets these properties explicitly. One way to disable this is by modifying the code.  The way to do it more cleanly is by temporarily changing contentModel.xml.    Auditable aspect applied is a mandatory aspect on cm:object, which is parent of cm:content.</p>
<p><strong>Step 1 - Disabling Automatic Setting of Auditable Properties<br />
</strong></p>
<p><span style="color: black">So my solution is to remove Auditable as a mandatory aspect and to add those properties to cm:object directly.   This is the new definition of cm:object.<br />
</span></p>
<p><span style="font-size: 10pt;font-family: Courier New;color: black"> &lt;type name=&#8221;cm:cmobject&#8221;&gt;<br />
</span></p>
<p><span style="font-size: 10pt;font-family: Courier New;color: black"> &lt;title&gt;Object&lt;/title&gt;<br />
</span></p>
<p><span style="font-size: 10pt;font-family: Courier New;color: black"> &lt;parent&gt;sys:base&lt;/parent&gt;<br />
</span></p>
<p><span style="font-size: 10pt;font-family: Courier New;color: black"> &lt;properties&gt;<br />
</span></p>
<p><span style="font-size: 10pt;font-family: Courier New;color: black"> &lt;property name=&#8221;cm:name&#8221;&gt;<br />
</span></p>
<p><span style="font-size: 10pt;font-family: Courier New;color: black"> &lt;title&gt;Name&lt;/title&gt;<br />
</span></p>
<p><span style="font-size: 10pt;font-family: Courier New;color: black"> &lt;type&gt;d:text&lt;/type&gt;<br />
</span></p>
<p><span style="font-size: 10pt;font-family: Courier New;color: black"> &lt;mandatory enforced=&#8221;true&#8221;&gt;true&lt;/mandatory&gt;<br />
</span></p>
<p><span style="font-size: 10pt;font-family: Courier New;color: black"> &lt;constraints&gt;<br />
</span></p>
<p><span style="font-size: 10pt;font-family: Courier New;color: black"> &lt;constraint ref=&#8221;cm:filename&#8221; /&gt;<br />
</span></p>
<p><span style="font-size: 10pt;font-family: Courier New;color: black"> &lt;/constraints&gt;<br />
</span></p>
<p><span style="font-size: 10pt;font-family: Courier New;color: black"> &lt;/property&gt;<br />
</span></p>
<p><span style="font-size: 10pt;font-family: Courier New;color: black"> &lt;!&#8211;temporary added properties to go around auditable &#8211;&gt;<br />
</span></p>
<p><span style="font-size: 10pt;font-family: Courier New;color: black"> &lt;property name=&#8221;cm:created&#8221;&gt;<br />
</span></p>
<p><span style="font-size: 10pt;font-family: Courier New;color: black"> &lt;title&gt;Created&lt;/title&gt;<br />
</span></p>
<p><span style="font-size: 10pt;font-family: Courier New;color: black"> &lt;type&gt;d:datetime&lt;/type&gt;<br />
</span></p>
<p><span style="font-size: 10pt;font-family: Courier New;color: black"> &lt;/property&gt;<br />
</span></p>
<p><span style="font-size: 10pt;font-family: Courier New;color: black"> &lt;property name=&#8221;cm:creator&#8221;&gt;<br />
</span></p>
<p><span style="font-size: 10pt;font-family: Courier New;color: black"> &lt;title&gt;Creator&lt;/title&gt;<br />
</span></p>
<p><span style="font-size: 10pt;font-family: Courier New;color: black"> &lt;type&gt;d:text&lt;/type&gt;<br />
</span></p>
<p><span style="font-size: 10pt;font-family: Courier New;color: black"> &lt;/property&gt;<br />
</span></p>
<p><span style="font-size: 10pt;font-family: Courier New;color: black"> &lt;property name=&#8221;cm:modified&#8221;&gt;<br />
</span></p>
<p><span style="font-size: 10pt;font-family: Courier New;color: black"> &lt;title&gt;Modified&lt;/title&gt;<br />
</span></p>
<p><span style="font-size: 10pt;font-family: Courier New;color: black"> &lt;type&gt;d:datetime&lt;/type&gt;<br />
</span></p>
<p><span style="font-size: 10pt;font-family: Courier New;color: black"> &lt;/property&gt;<br />
</span></p>
<p><span style="font-size: 10pt;font-family: Courier New;color: black"> &lt;property name=&#8221;cm:modifier&#8221;&gt;<br />
</span></p>
<p><span style="font-size: 10pt;font-family: Courier New;color: black"> &lt;title&gt;Modifier&lt;/title&gt;<br />
</span></p>
<p><span style="font-size: 10pt;font-family: Courier New;color: black"> &lt;type&gt;d:text&lt;/type&gt;<br />
</span></p>
<p><span style="font-size: 10pt;font-family: Courier New;color: black"> &lt;/property&gt;<br />
</span></p>
<p><span style="font-size: 10pt;font-family: Courier New;color: black"> &lt;property name=&#8221;cm:accessed&#8221;&gt;<br />
</span></p>
<p><span style="font-size: 10pt;font-family: Courier New;color: black"> &lt;title&gt;Accessed&lt;/title&gt;<br />
</span></p>
<p><span style="font-size: 10pt;font-family: Courier New;color: black"> &lt;type&gt;d:datetime&lt;/type&gt;<br />
</span></p>
<p><span style="font-size: 10pt;font-family: Courier New;color: black"> &lt;/property&gt;<br />
</span></p>
<p><span style="font-size: 10pt;font-family: Courier New;color: black"> &lt;/properties&gt;<br />
</span></p>
<p><span style="font-size: 10pt;font-family: Courier New;color: black"> &lt;!—- Disable Auditable Aspect<br />
</span></p>
<p><span style="font-size: 10pt;font-family: Courier New;color: black"> &lt;mandatory-aspects&gt;<br />
</span></p>
<p><span style="font-size: 10pt;font-family: Courier New;color: black"> &lt;aspect&gt;cm:auditable&lt;/aspect&gt;<br />
</span></p>
<p><span style="font-size: 10pt;font-family: Courier New;color: black"> &lt;/mandatory-aspects&gt;<br />
</span></p>
<p><span style="font-size: 10pt;font-family: Courier New;color: black"> &#8211;&gt;<br />
</span></p>
<p><span style="font-size: 10pt;font-family: Courier New;color: black"> &lt;/type&gt;<br />
</span></p>
<p>Additionally, for convenience, it&#8217;s a good idea to not make these protected, or enforce them as being mandatory, as they are on the original Auditable aspect.  As you can see, we commented out cm:auditable as mandatory aspect on this type, which means the code that sets these properties automatically will not get triggered.</p>
<p><strong>Step 2 – Show Properties in the User Interface<br />
</strong></p>
<p>The next step is cosmetic – we need to make these properties visible in our UI so it&#8217;s easier to test.   For that, you will need to edit CONFIGROOT\ web-client-config-properties.xml.  Add the auditable properties to &#8220;content&#8221; evaluator:</p>
<p><span style="font-family: Courier New"> &lt;config evaluator=&#8221;node-type&#8221; condition=&#8221;content&#8221;&gt;<br />
</span></p>
<p><span style="font-family: Courier New"> &lt;property-sheet&gt;<br />
</span></p>
<p><span style="font-family: Courier New"> &lt;show-property name=&#8221;creator&#8221;  /&gt;<br />
</span></p>
<p><span style="font-family: Courier New"> &lt;show-property name=&#8221;created&#8221;  /&gt;<br />
</span></p>
<p><span style="font-family: Courier New"> &lt;show-property name=&#8221;modifier&#8221; /&gt;<br />
</span></p>
<p><span style="font-family: Courier New"> &lt;show-property name=&#8221;modified&#8221; /&gt;<br />
</span></p>
<p>This will allow you to see these in the UI.</p>
<p><strong>Step 3 – Set Properties, Migrate Content, Perform Bulk Load, etc.<br />
</strong></p>
<p>After a server restart, you have now disabled the automatic setting of properties.  You can either set them programmatically (and your changes will no longer get intercepted), or manually through the UI.</p>
<div id="attachment_73" class="wp-caption alignnone" style="width: 510px"><a href="http://blogs.alfresco.com/wp/jbarmash/files/2009/05/auditableproperties.jpg"><img class="size-full wp-image-73" src="http://blogs.alfresco.com/wp/jbarmash/files/2009/05/auditableproperties.jpg" alt="Edit Auditable properties" width="500" height="111" /></a><p class="wp-caption-text">Edit Auditable properties</p></div>
<p><strong>Note:</strong> This is an all or nothing operation – you can&#8217;t have it automatically set some properties but not others (to do it you&#8217;d have to do metadata extraction or some kind of event handler).  This is why this is usually a temporary step as you are loading or migrating content.</p>
<p>After you are done with the content load, the next step is re-enable original model to ensure consistency.  You also have a bunch of nodes that don&#8217;t have Auditable Aspect applied, so we need to reapply it.</p>
<p><strong>Step 4 – Apply Auditable Aspect to Migrated Content<br />
</strong></p>
<p>First, you need to revert to the original content model.     To apply auditable aspect to many nodes, you typically write a JavaScript script that walks through the nodes and adds Auditable Aspect.<span style="font-family: Courier New"><br />
</span></p>
<p>For applying Auditable aspect manually, you&#8217;ll have to add some code to CONFIGROOT\web-client-config.xml so it shows u in Add Aspect action.</p>
<p><span style="font-family: Courier New">&lt;config evaluator=&#8221;string-compare&#8221; condition=&#8221;Action Wizards&#8221;&gt;<br />
</span></p>
<p><span style="font-family: Courier New"> &#8230;<br />
</span></p>
<p><span style="font-family: Courier New"> &lt;!&#8211; and the has-aspect condition &#8211;&gt;<br />
</span></p>
<p><span style="font-family: Courier New"> &lt;aspects&gt;<br />
&lt;aspect name=&#8221;generalclassifiable&#8221;/&gt;<br />
</span></p>
<p><span style="font-family: Courier New"> &lt;aspect name=&#8221;complianceable&#8221;/&gt;<br />
</span></p>
<p><span style="font-family: Courier New"> &lt;aspect name=&#8221;dublincore&#8221;/&gt;<br />
</span></p>
<p><span style="font-family: Courier New"><strong> &lt;aspect name=&#8221;auditable&#8221;/&gt;<br />
</strong></span></p>
<p><span style="font-family: Courier New"> &lt;aspect name=&#8221;effectivity&#8221;/&gt;<br />
</span></p>
<p><span style="font-family: Courier New"> &lt;aspect name=&#8221;summarizable&#8221;/&gt;<br />
</span></p>
<p><span style="font-family: Courier New"> &lt;aspect name=&#8221;versionable&#8221;/&gt;<br />
</span></p>
<p><span style="font-family: Courier New"> &lt;aspect name=&#8221;templatable&#8221;/&gt;<br />
</span></p>
<p><span style="font-family: Courier New"> &lt;aspect name=&#8221;emailed&#8221;/&gt;<br />
</span></p>
<p><span style="font-family: Courier New"> &lt;aspect name=&#8221;emailserver:aliasable&#8221;/&gt;<br />
</span></p>
<p><span style="font-family: Courier New"> &lt;aspect name=&#8221;taggable&#8221;/&gt;<br />
</span></p>
<p><span style="font-family: Courier New"> &lt;/aspects&gt;</span></p>
<p>Another possible solution that might preclude this is to have a rule that automatically adds the Auditable aspect as you create nodes, but I haven&#8217;t tested that yet.</p>
<p><strong>Step 5 – Restore original state of contentModel.xml and web-client-config-properties.xml<br />
</strong></p>
<p>To get everything back to a consistent state, you now have to restore your original contentModel and UI properties.   Because all nodes now have auditable aspect applied, as well as the properties that need to exist do in fact exist, Alfresco will now be able to pick it up from there and manage these properties the way it always does.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.alfresco.com/wp/jbarmash/2009/05/03/disabling-auditable-properties-from-being-set-automatically/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Great Surf / Share Learning Resource - Ed Loves Java</title>
		<link>http://blogs.alfresco.com/wp/jbarmash/2008/12/12/great-surf-share-learning-resource-ed-loves-java/</link>
		<comments>http://blogs.alfresco.com/wp/jbarmash/2008/12/12/great-surf-share-learning-resource-ed-loves-java/#comments</comments>
		<pubDate>Fri, 12 Dec 2008 13:59:39 +0000</pubDate>
		<dc:creator>Jean Barmash</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blogs.alfresco.com/wp/jbarmash/2008/12/12/great-surf-share-learning-resource-ed-loves-java/</guid>
		<description><![CDATA[I recently discovered a great set of blog posts digging into Surf and Share.&#160; Ed of EdLovesJava Blog has been playing around and doing some interesting things, first playing with the Surf platform, and now moving over to Share.&#160; There are six blog posts on Learning Surf, and two on Share.&#160;&#160; A good reading to [...]]]></description>
			<content:encoded><![CDATA[<p>I recently discovered a great set of blog posts digging into Surf and Share.&nbsp; Ed of <a href="http://edlovesjava.blogspot.com/">EdLovesJava Blog</a> has been playing around and doing some interesting things, first playing with the Surf platform, and now moving over to Share.&nbsp; There are six blog posts on Learning Surf, and two on Share.&nbsp;&nbsp; A good reading to expand your knowledge of Surf.&nbsp; </p>
<p>For a more introductory stuff on Surf, see the <a href="http://wiki.alfresco.com/wiki/Category:Surf_Platform">Surf Platform Category</a> on the Wiki</p>
<p>There is also a <a href="http://www.alfresco.com/about/events/2008/10/surfwebinar/index.jsp">webinar</a> I did a few weeks ago - that one runs through a basic technical overview of Surf and some basic extensions.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.alfresco.com/wp/jbarmash/2008/12/12/great-surf-share-learning-resource-ed-loves-java/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Occasional Windows Issue</title>
		<link>http://blogs.alfresco.com/wp/jbarmash/2008/12/03/occasional-windows-issue/</link>
		<comments>http://blogs.alfresco.com/wp/jbarmash/2008/12/03/occasional-windows-issue/#comments</comments>
		<pubDate>Wed, 03 Dec 2008 04:22:22 +0000</pubDate>
		<dc:creator>Jean Barmash</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blogs.alfresco.com/wp/jbarmash/2008/12/03/occasional-windows-issue/</guid>
		<description><![CDATA[I use Windows XP for development, and every so often, I had a strange issue.&#160; I would kill Alfresco, try to start it up again, but would get errors consistent with Alfresco still being up (JVM Bind error below).&#160; It&#8217;s caused by java trying to bind a port number, but the port already been taken.&#160; [...]]]></description>
			<content:encoded><![CDATA[<p><font face="Times New Roman"><font face="verdana">I use Windows XP for development, and every so often, I had a strange issue.&nbsp; I would kill Alfresco, try to start it up again, but would get errors consistent with Alfresco still being up (JVM Bind error below).&nbsp; It&#8217;s caused by java trying to bind a port number, but the port already been taken.&nbsp; </p>
<p></font></font><font face="Courier New">java.net.BindException: Address already in use: JVM_Bind<br />&nbsp;&nbsp;&nbsp; at java.net.PlainSocketImpl.socketBind(Native Method)<br />&nbsp;&nbsp;&nbsp; at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:359)<br />&nbsp;&nbsp;&nbsp; at java.net.ServerSocket.bind(ServerSocket.java:319)<font face="verdana"><br />
</font></font><br /><font face="Times New Roman"><font face="verdana">I double check that all of my java processes are killed, but no cigar.&nbsp; I even tried redirecting tomcat to another port until next reboot, but then I&#8217;d d also have to redirect RMI ports as well.</font><br /></font><font face="Courier New"><br /><font face="verdana"><br /></font></font><font face="verdana">I finally figured out the problem.&nbsp; The port references were kept by OpenOffice process soffice.bin.&nbsp; Killing it resolved the issue.&nbsp; <br /></font><font face="Courier New"><font face="verdana"><br /></font><br /></font></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.alfresco.com/wp/jbarmash/2008/12/03/occasional-windows-issue/feed/</wfw:commentRss>
		</item>
		<item>
		<title>XML Metadata Extraction for WCM</title>
		<link>http://blogs.alfresco.com/wp/jbarmash/2008/12/01/xml-metadata-extraction-for-wcm/</link>
		<comments>http://blogs.alfresco.com/wp/jbarmash/2008/12/01/xml-metadata-extraction-for-wcm/#comments</comments>
		<pubDate>Sun, 30 Nov 2008 23:11:16 +0000</pubDate>
		<dc:creator>Jean Barmash</dc:creator>
		
		<category><![CDATA[Repo]]></category>

		<category><![CDATA[UI Customization]]></category>

		<category><![CDATA[WCM]]></category>

		<category><![CDATA[alfresco tech]]></category>

		<guid isPermaLink="false">http://blogs.alfresco.com/wp/jbarmash/?p=57</guid>
		<description><![CDATA[While the XSDs in the WCM (AVM) are the equivalent of content models in DM, there is no effective way to search them. More specifically, it&#8217;s useful to be able to search based on a specific metadata elements in the generated XMLs, something that you need to do frequently in highly dynamic sites. In this [...]]]></description>
			<content:encoded><![CDATA[<p><span style="color: #1f497d">While the XSDs in the WCM (AVM) are the equivalent of content models in DM, there is no effective way to search them. More specifically, it&#8217;s useful to be able to search based on a specific metadata elements in the generated XMLs, something that you need to do frequently in highly dynamic sites. In this post, we&#8217;ll discuss the sample I created for this that&#8217;s in the <a href="http://community.alfresco.com/alfresco/n/showDocDetails/workspace/SpacesStore/fb282338-7381-11dd-b544-fb3e614dfb72">content community </a><a href="http://community.alfresco.com/alfresco/n/showDocDetails/workspace/SpacesStore/fb282338-7381-11dd-b544-fb3e614dfb72">here (registration required).</a></span></p>
<p><span style="color: #1f497d">In this example, I have a WCM content type defined through XSD press_release.xsd.&#160; I want to extract some metadata from it, for example, expiration date of the press release. The extraction process works similarly to the way things function on the DM side, with some gotchas. When extracting metadata, you need somewhere (properties) to store it.     <br /></span></p>
<p><span style="color: #1f497d">For WCM (where all the XML nodes are stored as wcm:avmplaincontent type), is by creating an aspect with the properties that you want to extract.&#160;&#160; This is important &#8211; it has to be an aspect. This aspect will automatically get applied appropriately, as we&#8217;ll see later. In the included example, I have a XSD that creates a press release.&#160; I want to extract and index three properties &#8211; abstract (string), expiration date (date), and numtimes (int). Here is the code (I removed all the indexing properties for simplicity)     <br /></span></p>
<p><span style="color: #1f497d">&lt;aspects&gt;     <br /></span></p>
<p><span style="color: #1f497d">&lt;aspect name=&quot;my:press_release_metadata&quot;&gt;     <br /></span></p>
<p><span style="color: #1f497d">&lt;title&gt;Sample Aspect for WCM - Press Release&lt;/title&gt;     <br /></span></p>
<p><span style="color: #1f497d">&lt;properties&gt;     <br /></span></p>
<blockquote><p><span style="color: #1f497d">&lt;property name=&quot;my:abstract&quot;&gt;       <br /></span></p>
<p><span style="color: #1f497d">&lt;type&gt;d:text&lt;/type&gt;       <br /></span></p>
<p><span style="color: #1f497d">&lt;/property&gt;       <br /></span></p>
<p><span style="color: #1f497d">&lt;property name=&quot;my:expiration_date&quot;&gt;       <br /></span></p>
<p><span style="color: #1f497d">&lt;type&gt;d:datetime&lt;/type&gt;       <br /></span></p>
<p><span style="color: #1f497d">&lt;/property&gt;       <br /></span></p>
<p><span style="color: #1f497d">&lt;property name=&quot;my:numtimes&quot;&gt;       <br /></span></p>
<p><span style="color: #1f497d">&lt;type&gt;d:int&lt;/type&gt;       <br /></span></p>
<p><span style="color: #1f497d">&lt;/property&gt;       <br /></span></p>
</blockquote>
<p><span style="color: #1f497d">&lt;/properties&gt;     <br /></span></p>
<p><span style="color: #1f497d">&lt;/aspect&gt;     <br /></span></p>
<p><span style="color: #1f497d">&lt;/aspects&gt;     <br /></span></p>
<p><span style="color: #1f497d">You&#8217;ll also need to expose your aspect properties in the UI through web-client-config-custom.xml </span></p>
<p style="margin-left: 36pt"><span style="color: #1f497d">&lt;config evaluator=&quot;aspect-name&quot; condition=&quot; my:press_release_metadata&quot;&gt; </span></p>
<p style="margin-left: 72pt"><span style="color: #1f497d">&lt;property-sheet&gt; </span></p>
<p style="margin-left: 108pt"><span style="color: #1f497d">&lt;show-property name=&quot;my:abstract&quot; /&gt; </span></p>
<p style="margin-left: 108pt"><span style="color: #1f497d">&lt;show-property name=&quot;my:expiration_date&quot; /&gt; </span></p>
<p style="margin-left: 108pt"><span style="color: #1f497d">&lt;show-property name=&quot;my:numtimes&quot; /&gt; </span></p>
<p style="margin-left: 72pt"><span style="color: #1f497d">&lt;/property-sheet&gt; </span></p>
<p style="margin-left: 36pt"><span style="color: #1f497d">&lt;/config&gt;     <br /></span></p>
<p><span style="color: #1f497d">Once I have the aspect in my content model (customModel.xml, which I introduce to the Data Dictionary through custom-model-context.xml), I can start configuring extraction process as outlined in wcm-xml-metadata-extracter-context.xml.&#160; There are two key sections: </span></p>
<ol>
<li>
<div><span style="color: #1f497d">Selector section (extracter.xml.sample.selector.XPathSelector bean), which looks inside the XML and maps it to the correct Extractor Bean.&#160; Since all the XForms of any type get saved as XML, we need to select the appropriate one (in this case pr:press_release). This configuration associates the specific XForm with a specific extraction definition. </span></div>
<p>&lt;bean id=&quot;extracter.xml.sample.selector.XPathSelector&quot; class=&quot;org.alfresco.repo.content.selector.XPathContentWorkerSelector&quot; init-method=&quot;init&quot;&gt; &lt;property name=&quot;workers&quot;&gt; &lt;map&gt; &lt;entry key=&quot;/pr:press_release&quot;&gt; &lt;ref bean=&quot;extracter.xml.sample.AlfrescoCustomModelMetadataExtracter&quot; /&gt; &lt;/entry&gt; &lt;/map&gt; &lt;/property&gt; &lt;/bean&gt;</p>
</li>
<li>
<div><span style="color: #1f497d">Extractor bean for each of the Web Content Types you defined.&#160; These have two parts: </span></div>
<p><span style="color: #1f497d">A. xpathMappingProperties &#8211; take an xpath expression that can extract value out of XML file and store it into internal Map.&#160; So, for example, the abstract property can be found through xpath expression &quot;/press_release/abstract&quot;.&#160; It then gets stored into &quot;abstract&quot; internal map property. </span></p>
<p style="margin-left: 11pt"><span style="color: #1f497d"><em>&lt;prop key=&quot;abstract&quot;&gt;/press_release/abstract&lt;/prop&gt; </em></span></p>
<p style="margin-left: 11pt"><span style="color: #1f497d">Note that we have to also specify namespace so Alfresco can resolve them appropriately:&#160;&#160;&#160; <em>           <br /></em></span></p>
<p style="margin-left: 11pt"><em><span style="color: #1f497d">&lt;prop key=&quot;namespace.prefix.pr&quot;&gt;</span>http://www.alfresco.org/alfresco/pr&lt;/prop<span style="color: #1f497d">&gt;</span></em> </p>
</li>
</ol>
<blockquote><p style="margin-left: 11pt">B<span style="color: #1f497d">. mappingProperties &#8211; takes the properties out of internal map, and puts it into the specified data dictionary property.&#160; <strong>Here is the key &#8211; the extractor finds the corresponding aspect and automatically (&quot;automagically&quot;) adds it to the Alfresco node. </strong>Before setting it, it checks for the target data type, and attempts to convert it to that type.&#160; In the example we are using, it takes out the internal map property &quot;abstract&quot; and sets it to property my:abstract. In this case the property is a string, so no conversion is really required. </span></p>
</blockquote>
<blockquote><p style="margin-left: 11pt"><span style="color: #1f497d">&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color: #1f497d"><em>&lt;prop key=&quot;abstract&quot;&gt;my:abstract&lt;/prop&gt; </em></span></p>
</blockquote>
<p><span style="color: #1f497d"><strong>Note on Converting Dates:</strong> When I did this initially, I got an exception for converting dates.&#160; This is because the XForms store dates in the format of 2008-04-28, and the automatic cast did not work.&#160; To remedy that, I added a configuration setting where I specified the correct date format for the extractor to use: &lt;property name=&quot;supportedDateFormats&quot;&gt; &lt;list&gt; &lt;value&gt;yyyy-MM-dd&lt;/value&gt; &lt;/list&gt; &lt;/property&gt; Note, that metadata extraction runs when you create content (in the user sandbox).&#160;&#160; They key here is that the aspect gets applied automatically by the extraction process &#8211; you don&#8217;t need to make sure it&#8217;s added. You don&#8217;t even see mention of the aspect anywhere in the configuration files. This is what is should look like in the example: </span></p>
<p style="text-align: center"><img alt="" src="http://blogs.alfresco.com/wp/jbarmash/files/2008/12/113008-2311-xmlmetadata1.png" /><span style="color: #1f497d">     <br /></span></p>
<p><span style="color: #1f497d">The Lucene indexing will happen when you promote the content to the staging sandbox.     <br /></span></p>
<p><span style="color: #1f497d">The indexing is governed by the settings on the properties you define on properties of the aspects (namely &lt;index&gt; element):     <br /></span></p>
<p><span style="color: #1f497d"></span></p>
<p><span style="color: #1f497d">&lt;property name=&quot;my:expiration_date&quot;&gt;</span></p>
<p style="margin-left: 36pt"><span style="color: #1f497d">&lt;type&gt;d:datetime&lt;/type&gt;     <br /></span></p>
<p style="margin-left: 36pt"><span style="color: #1f497d">&lt;index enabled=&quot;true&quot;&gt;     <br /></span></p>
<blockquote><p style="margin-left: 36pt"><span style="color: #1f497d">&lt;atomic&gt;true&lt;/atomic&gt;</span></p>
<p style="margin-left: 36pt"><span style="color: #1f497d"></span><span style="color: #1f497d">&lt;stored&gt;false&lt;/stored&gt;</span></p>
<p style="margin-left: 36pt"><span style="color: #1f497d"></span><span style="color: #1f497d">&lt;tokenised&gt;false&lt;/tokenised&gt;</span></p>
</blockquote>
<blockquote><p><span style="color: #1f497d">&lt;/index&gt;       <br /></span></p>
</blockquote>
<p><span style="color: #1f497d">&lt;/property&gt;</span></p>
<p><span style="color: #1f497d"></span></p>
<p><span style="color: #1f497d">You cannot search based on these properties from the Search UI, since this relates to the WCM content, but you can query this using the Node Browser for testing, or, of course, the ultimate goal is likely to expose this through some web scripts.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.alfresco.com/wp/jbarmash/2008/12/01/xml-metadata-extraction-for-wcm/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Call for Submissions / Feedback on Alfresco SDK</title>
		<link>http://blogs.alfresco.com/wp/jbarmash/2008/11/22/call-for-submissions-feedback-on-alfresco-sdk/</link>
		<comments>http://blogs.alfresco.com/wp/jbarmash/2008/11/22/call-for-submissions-feedback-on-alfresco-sdk/#comments</comments>
		<pubDate>Sat, 22 Nov 2008 09:50:19 +0000</pubDate>
		<dc:creator>Jean Barmash</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[sdk contributions community]]></category>

		<guid isPermaLink="false">http://blogs.alfresco.com/wp/jbarmash/?p=45</guid>
		<description><![CDATA[As somebody who spends a lot of time doing work for Alfresco customers, I use the Alfresco SDK all the time. It’s a great resource, though I felt that it can use a bit of loving to improve it and make it more user-friendly and useful. After having some discussions with engineering, I started work [...]]]></description>
			<content:encoded><![CDATA[<p>As somebody who spends a lot of time doing work for Alfresco customers, I use the <a href="http://wiki.alfresco.com/wiki/Alfresco_SDK">Alfresco SDK</a> all the time.<span> </span>It’s a great resource, though I felt that it can use a bit of loving to improve it and make it more user-friendly and useful.<span> </span>After having some discussions with engineering, I started work on this area, first focused on bringing it up to date.<span> </span>Additionally, we have a number of great additional samples, many posted on the <a href="http://community.alfresco.com/alfresco/n/browse/workspace/SpacesStore/c1b4ef0b-1ac6-11dd-9ff0-95220681812c">Developer Toolbox</a> , and the other goal of the effort is to incorporate those samples as more official ones as part of the SDK.<span> </span></p>
<p class="MsoNormal">In this post, I’ll talk about what I’ve been working on, ask for feedback, and also ask for contributions in improving the SDK.<span> </span>I’ve been working in a separate branch, so the changes are not available yet publically if you try to look for them.<span> </span></p>
<p class="MsoNormal">Phase I as outlined below is what I already completed.<span> </span>Next is Phase II, which mostly involves integrating some existing samples.<span> </span>I also outline some other samples I feel will be useful to have, and ask for ideas on other samples to add things that might be useful.<span> </span>The goal is to have a number of samples that are representative of development tasks that you need to perform when working on customer projects.<span> </span></p>
<p class="MsoNormal">Most of all, I ask for your feedback, and for any samples you may have that you think will be useful.<span> </span>I know they are out there.<span> </span>We are looking especially for samples that represent common development tasks.<span> </span><strong>Please contact me</strong> at jbarmash at alfresco dot com if you have something to contribute.<span> </span></p>
<p class="MsoNormal">I recently found a great service for gathering feedback, please add further suggestions there and vote for various improvement proposals.<span> </span></p>
<p class="MsoNormal"><a href="http://alfresco.uservoice.com/pages/sdk_improvement">http://alfresco.uservoice.com/pages/sdk_improvement</a></p>
<h2>Phase I - Already Completed:</h2>
<p class="MsoListParagraph"><strong>Bring SDK Up To Date</strong></p>
<ul>
<li>Added source code for packages introduces in 3.0</li>
<li>Added a few missing jars that were preventing running some samples in Eclipse</li>
</ul>
<p><strong>Improve Eclipse Experience</strong></p>
<ul>
<li>Renamed Sample Projects to organize them better</li>
<li>Reordered SDK Embedded jars to be more alphabetical</li>
<li>Added project for source files – importing projects into Eclipse will now have source code automatically attached.<span> </span>Before this, every time I’d download a new SDK and import it into Eclipse, I would have to manually attach the corresponding source files to the SDK (i.e. alfresco-repository.jar and alfresco-repository-src.zip).<span> </span>The goal is to <a href="http://wiki.alfresco.com/wiki/Alfresco_SDK#Associate_source_code_and_Javadocs_with_Alfresco_Libraries_.28optional.29">make this step</a> automatic.</li>
<li>Added a project for shared properties for Java Embedded Projects – can now set just one property file that will affect multiple projects.</li>
</ul>
<p class="MsoNormal">
<p><strong>Improve SDK Build Infrastructure</strong></p>
<ul>
<li>Integrated identical Build file for all projects</li>
<li>Automatically create AMP files based on directory structure convention.<span> </span>Can easily re-point the location of the SDK, to retarget against other SDKs.<span> </span>Creating AMP files is viewed as being hard, but it’s really not the build file I introduced will automatically create it for you as long as you follow a few conventions.<span> </span>I hope to go through it in a separate post, but <a href="http://community.alfresco.com/alfresco/n/browse/workspace/SpacesStore/10f051e0-b8d6-11dd-8f1d-55bcb6e8f010">here is a link to the project</a> so you can start using it right now.</li>
<li>Created <strong>master build file</strong> that allows to build all the SDK projects, including integrate a set of them into alfresco.war for easier testing.<span> </span>This one will not only be helpful for developers, but, once integrated into the alfresco build file, will allow us to identify any future regressions of SDK samples not building.<span> </span></li>
</ul>
<p class="MsoListParagraph"><strong>Improving Existing Samples </strong></p>
<ul>
<li>Reorganized projects to create AMP Files.<span> </span>This one is a big one in my mind – AMP is the standard extension mechanism that we encourage customers to use.<span> </span>Now everybody will have good samples on how they are supposed to be laid out.<span> </span></li>
</ul>
<p class="MsoNormal">
<h2>Phase II – Adding Existing Samples</h2>
<p class="MsoNormal">This is my next step – re-testing and adding samples <strong>we already have</strong>.<span> </span>Here they are, along with priorities:</p>
<ul>
<li>MUST<span> </span>- Exposing new Custom root object to FreeMarker</li>
<li>Test it for working with both Alfresco repo and Surf / Share.</li>
<li>MUST<span> </span>- Exposing new Custom root object to JavaScript<span> </span></li>
<li>Test it for working with both Alfresco repo and Surf / Share.</li>
<li>MUST - Standalone Custom Content Model Project, with validation check</li>
<li>MUST – WCM SampleFileSystemDeployment</li>
<li>MUST - WCM Metadata Extraction Sample from XML</li>
<li>MUST - Surf / Share Dashlet Samples</li>
<li>SHOULD - JSF Dialog backed by a Web Script</li>
<li>SHOULD<strong> –</strong> Custom Condition backed by a JavaScript (with UI).  Possibly simplify first.</li>
<li>COULD - Cascading Component Generator &amp; Lucene-backed Drop Down Component Generator (described here: - <a href="../2008/08/18/implementing-cascading-dropdowns-for-editing-properties/">http://blogs.alfresco.com/wp/jbarmash/2008/08/18/implementing-cascading-dropdowns-for-editing-properties/</a> ).<span> </span>There are some dependencies in the product for this that makes this a bit harder than a simple extension.</li>
</ul>
<h2>Phase III – Create New Samples<span> </span></h2>
<p class="MsoNormal">These we don’t have developed yet, and thus view them as secondary, though some of these are very important.<span> </span>Here I am looking for more feedback, as well as prioritization on what to do when we have time.<span> </span>You will notice that these are more repository-focused at this point – Surf / Share-oriented SDK samples is something we will revisit as well, but after this initial project.<span> </span></p>
<ul style="margin-top: 0in" type="disc">
<li class="MsoNormal">SHOULD - WCM - XForm Samples (move them from extras directory)</li>
<li class="MsoNormal">SHOULD - WCM - Custom Widget for XForms (supposedly we have something on this)</li>
<li class="MsoNormal">SHOULD - More standalone Web Script examples, including java-backed web scripts.<span> </span>There are many of these in existence, just need to find something representative.</li>
<li class="MsoNormal">SHOULD - Repository - Custom Transformer Sample</li>
<li class="MsoNormal">SHOULD - Repository - Custom Metadata Extraction Sample</li>
<li class="MsoNormal">COULD - Repository - Custom Authentication Component</li>
<li class="MsoNormal">COULD - Custom Behavior for Content Model</li>
<li class="MsoNormal">COULD - Custom Scheduled Job</li>
<li class="MsoNormal">COULD - AMP That<span> </span>Bootstraps some Data into the repository</li>
<li class="MsoNormal">COULD - Dynamic Content Models and AMP that automatically loads them</li>
</ul>
<h2>Call for Contributions</h2>
<p class="MsoNormal">This is where you can help.<span> </span>Any sample on the Phase III list, or whatever other samples you may already have, would be appreciated.<span> </span>Please contact me and tell me what you have that might be able to include (jbarmash at alfresco dot com).<span> </span>Normal code contributions will be followed, and we are happy to give you the credit you deserve of course.<span> </span>Improving the SDK and having a good set of samples to point customers to is something that should benefit the whole community, and let potential new developers to get up to speed more quickly.</p>
<p class="MsoNormal">And once again, if you have anything you’d like to contribute that may not be good as a sample, you can do that as well – email me or our community manager Nancy Garrity and we’ll post it up to the Developer Toolbox.<span> </span>You never know, she may even give you a t-shirt or a chumby.</p>
<p class="MsoNormal">Let’s use this link for ongoing discussion and prioritization of effort.<span> </span></p>
<p class="MsoNormal"><a href="http://alfresco.uservoice.com/pages/sdk_improvement">http://alfresco.uservoice.com/pages/sdk_improvement</a></p>
<p class="MsoNormal">Thanks!</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.alfresco.com/wp/jbarmash/2008/11/22/call-for-submissions-feedback-on-alfresco-sdk/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Dynamic Models in 3.0</title>
		<link>http://blogs.alfresco.com/wp/jbarmash/2008/11/18/dynamic-models-in-30/</link>
		<comments>http://blogs.alfresco.com/wp/jbarmash/2008/11/18/dynamic-models-in-30/#comments</comments>
		<pubDate>Tue, 18 Nov 2008 06:50:34 +0000</pubDate>
		<dc:creator>Jean Barmash</dc:creator>
		
		<category><![CDATA[UI Customization]]></category>

		<category><![CDATA[alfresco tech]]></category>

		<category><![CDATA[dynamic models]]></category>

		<guid isPermaLink="false">http://blogs.alfresco.com/wp/jbarmash/?p=42</guid>
		<description><![CDATA[One of the features in 3.0 that I am particular excited about is Dynamic Models (though they actually have been around since 2.9).  It allows changing the content model without having to restart the server.   While implemented to provide Multi-Tenancy capabilities, I am excited about it because it gets us much closer to having ability [...]]]></description>
			<content:encoded><![CDATA[<p>One of the features in 3.0 that I am particular excited about is <a href="http://wiki.alfresco.com/wiki/Dynamic_Models">Dynamic Models</a> (though they actually have been around since 2.9).  It allows changing the content model without having to restart the server.   While implemented to provide Multi-Tenancy capabilities, I am excited about it because it gets us much closer to having ability to have users create content models through UI.  In addition to dynamic modeling capability, you can now make some UI customizations, upload resource bundles, and add workflows, all without having to restart the server.  This is not only a great feature, but will save developers a lot of time.</p>
<p>To learn more about Dynamic Models, check out <a href="http://wiki.alfresco.com/wiki/Dynamic_Models">the wiki page</a>, and for a quick overview - see <a href="http://www.open-source-ecm.com/2008/11/alfresco-screencast-dynamic-models.html">this great Screencast</a> that J.M. Pascal created showing the Dynamic Models functionality.  Check it out, as well as <a href="http://www.open-source-ecm.com/">his blog</a> in general - he has a bunch of fun presentation about some other Alfresco concepts as well!</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.alfresco.com/wp/jbarmash/2008/11/18/dynamic-models-in-30/feed/</wfw:commentRss>
		</item>
		<item>
		<title>NY RoadShow</title>
		<link>http://blogs.alfresco.com/wp/jbarmash/2008/11/18/ny-roadshow/</link>
		<comments>http://blogs.alfresco.com/wp/jbarmash/2008/11/18/ny-roadshow/#comments</comments>
		<pubDate>Tue, 18 Nov 2008 06:23:30 +0000</pubDate>
		<dc:creator>Jean Barmash</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[new york]]></category>

		<category><![CDATA[roadshow]]></category>

		<guid isPermaLink="false">http://blogs.alfresco.com/wp/jbarmash/?p=40</guid>
		<description><![CDATA[NY Roadshow was last Friday in New York City.  It was a morning event, from nine till noon.  It was packed house, with about 40 attendees.
Some of the notable things from the event, (apart from my riveting demonstration of Alfresco Share of course), were the case studies:
 Harvard Business Publishing talked about their [...]]]></description>
			<content:encoded><![CDATA[<p>NY Roadshow was last Friday in New York City.  It was a morning event, from nine till noon.  It was packed house, with about 40 attendees.</p>
<p>Some of the notable things from the event, (apart from my riveting demonstration of Alfresco Share of course), were the case studies:</p>
<ul> <a href="http://www.hbsp.harvard.edu/hbsp/index.jsp"><strong>Harvard Business Publishing</strong></a> talked about their use of Alfresco.  Of particular interest was the fact that they are using Alfresco as an integrated content management application, both the Document Management as well as Web Content Management.   It sounds like they also integrated Alfresco with some interesting technologies, such as Synaptica for Taxonomy and Oracle ERP Suite.  They built up a custom interface with JBoss SEAM.  Their Web Content Management involves three web properties, and numerous micro-sites.  Other interesting integrations on the project were Endeca for Search, MarcLogic for XML storage, integration with Ad networks.   Because the presentation was more business focused, I&#8217;d like to learn more about some of the internals of these integrations.</ul>
<ul> <strong>Partner Red Hat (JBoss)</strong> spoke about how Open Source delivers true value to the consumers, and how portals help deliver that value.</ul>
<ul> Our partner <a href="http://www.rivetlogic.com"><strong>RivetLogic</strong></a> spoke about another  <a href="http://www.rivetlogic.com/Resources/Case-Studies">interesting case study</a> - <a href="http://www.connectedweddings.com/i/index.php">ConnectedWeddings.com</a>.  ConnectedWeddings received a grant from FaceBook fund to build their application on top of a true enterprise platform.   They chose Alfresco, and now they using Alfresco in conjunction with JBoss to power their Facebook application.  They can author content in Alfresco WCM and publish it to a delivery environment that surfaces content to Facebook, a website, and iPhone client.</ul>
<p>I enjoyed the event, especially since it kept at a brisk pace with a lot of content to cover.  I did get a sense that more of a deep dive into some of the 3.0 technologies might have been nice though.</p>
<p>One nice thing that came out of it is that I reconnected with my old college suitemate, who came to the event.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.alfresco.com/wp/jbarmash/2008/11/18/ny-roadshow/feed/</wfw:commentRss>
		</item>
		<item>
		<title>SD Dev Practices - Next Gen Runtimes</title>
		<link>http://blogs.alfresco.com/wp/jbarmash/2008/10/29/sd-dev-practices-next-gen-runtimes/</link>
		<comments>http://blogs.alfresco.com/wp/jbarmash/2008/10/29/sd-dev-practices-next-gen-runtimes/#comments</comments>
		<pubDate>Wed, 29 Oct 2008 18:15:29 +0000</pubDate>
		<dc:creator>Jean Barmash</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blogs.alfresco.com/wp/jbarmash/?p=38</guid>
		<description><![CDATA[Here is the presentation.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://blogs.alfresco.com/wp/jbarmash/files/2008/10/jean-barmash-next-generation-runtimes.pdf">Here is the presentation</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.alfresco.com/wp/jbarmash/2008/10/29/sd-dev-practices-next-gen-runtimes/feed/</wfw:commentRss>
		</item>
		<item>
		<title>SD Practices 2008 - Content Oriented Apps Presentation</title>
		<link>http://blogs.alfresco.com/wp/jbarmash/2008/10/28/sd-practices-2008-content-oriented-apps-presentation/</link>
		<comments>http://blogs.alfresco.com/wp/jbarmash/2008/10/28/sd-practices-2008-content-oriented-apps-presentation/#comments</comments>
		<pubDate>Tue, 28 Oct 2008 17:17:56 +0000</pubDate>
		<dc:creator>Jean Barmash</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blogs.alfresco.com/wp/jbarmash/?p=35</guid>
		<description><![CDATA[Here  is my presentation for the Content-Oriented Apps track.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://blogs.alfresco.com/wp/jbarmash/files/2008/10/sd-best-practices-2008-content-oriented-applications.pdf">Here </a> is my presentation for the Content-Oriented Apps track.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.alfresco.com/wp/jbarmash/2008/10/28/sd-practices-2008-content-oriented-apps-presentation/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Tech Talk Live Starts TODAY at 17:00 BST/ 16:00 UTC / 12:00pm EDT / 9:00am PDT</title>
		<link>http://blogs.alfresco.com/wp/jbarmash/2008/09/19/tech-talk-live-starts-today-at-1700-bst-1600-utc-1200pm-edt-900am-pdt/</link>
		<comments>http://blogs.alfresco.com/wp/jbarmash/2008/09/19/tech-talk-live-starts-today-at-1700-bst-1600-utc-1200pm-edt-900am-pdt/#comments</comments>
		<pubDate>Fri, 19 Sep 2008 15:53:37 +0000</pubDate>
		<dc:creator>Jean Barmash</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blogs.alfresco.com/jbarmash/?p=9</guid>
		<description><![CDATA[Alfresco Tech Talk Live is a series of regularly scheduled sessions where attendees get to guide the discussion. Alfresco will host the sessions along with a panel of subject matter experts who will be prepared to answer your questions.

Alfresco Tech Talk Live is a series of regularly scheduled sessions where attendees get to guide the [...]]]></description>
			<content:encoded><![CDATA[<p class="entry">Alfresco Tech Talk Live is a series of regularly scheduled sessions where attendees get to guide the discussion. Alfresco will host the sessions along with a panel of subject matter experts who will be prepared to answer your questions.</p>
<p><a title="00am PDT" rel="bookmark" href="http://blogs.alfresco.com/gang/?p=19"></a></p>
<p class="entry">Alfresco Tech Talk Live is a series of regularly scheduled sessions where attendees get to guide the discussion. Alfresco will host the sessions along with a panel of subject matter experts who will be prepared to answer your questions.</p>
<p>Today&#8217;s topics will include:</p>
<ul>
<li>CMIS Rollout</li>
<li>Alfresco Labs 3B Release</li>
<li>Much more!</li>
</ul>
<p>Learn more at: <a href="http://wiki.alfresco.com/wiki/live">http://wiki.alfresco.com/wiki/live</a></p>
<p>Join us at: <a href="http://alfresco.acrobat.com/live">http://alfresco.acrobat.com/live</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.alfresco.com/wp/jbarmash/2008/09/19/tech-talk-live-starts-today-at-1700-bst-1600-utc-1200pm-edt-900am-pdt/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
